---------------------------
-- Check constraintek    --
-- Kapitany  2007.02.28. --
---------------------------

-- besorolasok

alter table besorolasok
  add constraint besorolasok_ch1 check (tipus in ('S','T'));

--fizetesmod

alter table fizetesmod
  add constraint fizetesmod_ch1 check (halasztott_fizetesu in (0,1));

alter table fizetesmod
  add constraint fizetesmod_ch2 check (postakoltseg in (0,1));

-- iso_statusz

alter table iso_statusz
  add constraint iso_statusz_ch1 check (engedely in (0,1));

-- kedvezmeny

alter table kedvezmeny
  add constraint kedvezmeny_ch1 check (kotott_fizetesmod in (0,1));

-- mozgasnem

alter table mozgasnem
  add constraint mozgasnem_ch1 check (tipus in (1,2,3));

alter table mozgasnem
  add constraint mozgasnem_ch2 check (bizonylat_kapcsolat in (0,3,4,5));

-- raktar_nevek

alter table raktar_nevek
  add constraint raktar_nevek_ch1 check (raktar_tipus in (1,2,3));

alter table raktar_nevek
  add constraint raktar_nevek_ch2 check (kapcsolt_partner in (0,1));

-- partner

alter table partner
  add constraint partner_ch1 check (partner_tipus in (1,2,3,4,5));

-- partner_cimtar

alter table partner_cimtar
  add constraint partner_cimtar_ch1 check (cim_tipus in (1,2,3));

-- penzeszkoz_nevek

alter table penzeszkoz_nevek
  add constraint penzeszkoz_nevek_ch1 check (tipus in (1,2));

alter table penzeszkoz_nevek
  add constraint penzeszkoz_nevek_ch2 check (alapertelmezett in (0,1));


-----------------------------
-- Drop default utasitasok --
-- Kapitany 2007.02.28.    --
-----------------------------

alter table kedvezmeny
 alter column fizetesmod drop default;

alter table partner
 alter column iso_engedely drop default;

alter table partner_emailtar
 alter column partner_kod drop default;

alter table penzeszkoz_nevek
 alter column tipus drop default;

alter table raktar_nevek
 alter column partner_kod drop default;

alter table tetel_egysegar
 alter column afa_kulcs drop default;

------------------------------
-- Foreign key constraintek --
-- Kapitany 2007.02.28.     --
------------------------------

-- deviza_arfolyam

alter table deviza_arfolyam
  add constraint deviza_arfolyam_fk1 foreign key (deviza_nev) references deviza (nev);


-- kedvezmeny

-- Itt a fizetesmod mezo default 0, ami nem szerepel a fizetesmod tablaban!
update kedvezmeny
   set fizetesmod = null
 where fizetesmod = 0;

alter table kedvezmeny
  add constraint kedvezmeny_fk1 foreign key (fizetesmod) references fizetesmod (kod);


-- mozgasnem

alter table mozgasnem
  add constraint mozgasnem_fk1 foreign key (forras_raktar) references raktar_nevek (kod);

-- ez itt nem ment...

alter table mozgasnem
  add constraint mozgasnem_fk2 foreign key (cel_raktar) references raktar_nevek (kod);


-- raktar_nevek
-- itt gond van a default 0 miatt!

alter table raktar_nevek
  add constraint raktar_nevek_fk1 foreign key (partner_kod) references partner (kod);


-- partner_csoport_egysegarak

alter table partner_csoport_egysegarak
  add constraint partner_csoport_egysegarak_fk1 foreign key (partner_csoport_kod) references partner_csoport (kod);

alter table partner_csoport_egysegarak
  add constraint partner_csoport_egysegarak_fk2 foreign key (egysegar) references egysegarak (kod);

alter table partner_csoport_egysegarak
  add constraint partner_csoport_egysegarak_fk3 foreign key (fajta1) references tetel_fajtak (kod);

alter table partner_csoport_egysegarak
  add constraint partner_csoport_egysegarak_fk4 foreign key (fajta2) references tetel_fajtak (kod);

alter table partner_csoport_egysegarak
  add constraint partner_csoport_egysegarak_fk5 foreign key (fajta3) references tetel_fajtak (kod);




-- partner

alter table partner
  add constraint partner_fk1 foreign key (fizetesmod) references fizetesmod (kod);

alter table partner
  add constraint partner_fk2 foreign key (uzletkoto_kod) references uzletkoto (kod);

alter table partner
  add constraint partner_fk3 foreign key (partner_csoport_kod) references partner_csoport (kod);


update partner
   set iso_engedely = null
 where iso_engedely = 0;

alter table partner
  add constraint partner_fk4 foreign key (iso_engedely) references iso_statusz (kod);


-- partner_kedvezmeny

alter table partner_kedvezmeny
  add constraint partner_kedvezmeny_fk1 foreign key (kedvezmeny_kod) references kedvezmeny (kod);

alter table partner_kedvezmeny
  add constraint partner_kedvezmeny_fk2 foreign key (partner_kod) references partner (kod);


-- partner_cimtar

alter table partner_cimtar
  add constraint partner_cimtar_fk1 foreign key (partner_kod) references partner (kod);



-- partner_emailtar

alter table partner_emailtar
  add constraint partner_emailtar_fk1 foreign key (partner_kod) references partner (kod);


-- partner_emailtar_bejegyzes

alter table partner_emailtar_bejegyzes
  add constraint partner_emailtar_bejegyzes_fk1 foreign key (partner_kod) references partner (kod);

alter table partner_emailtar_bejegyzes
  add constraint partner_emailtar_bejegyzes_fk2 foreign key (partner_emailtar_kod) references partner_emailtar (kod);

alter table partner_emailtar_bejegyzes
  add constraint partner_emailtar_bejegyzes_fk3 foreign key (partner_email_lista_kod) references partner_email_lista (kod);



-- penzeszkoz_iktato

alter table penzeszkoz_iktato
  add constraint penzeszkoz_iktato_fk1 foreign key (partner_kod) references partner (kod);



-- szerzodes_fej

alter table szerzodes_fej
  add constraint szerzodes_fej_fk1 foreign key (deviza_nev) references deviza (nev);

alter table szerzodes_fej
  add constraint szerzodes_fej_fk2 foreign key (fizetesmod_kod) references fizetesmod (kod);

alter table szerzodes_fej
  add constraint szerzodes_fej_fk3 foreign key (mozgasnem_kod) references mozgasnem (kod);

alter table szerzodes_fej
  add constraint szerzodes_fej_fk4 foreign key (partner_kod) references partner (kod);


-- szerzodes

alter table szerzodes
  add constraint szerzodes_fk1 foreign key (afakulcs) references afa_kulcs (kod);

alter table szerzodes
  add constraint szerzodes_fk2 foreign key (cel_raktar_kod) references raktar_nevek (kod);

alter table szerzodes
  add constraint szerzodes_fk3 foreign key (forras_raktar_kod) references raktar_nevek (kod);



-- tetel

alter table tetel
  add constraint tetel_fk1 foreign key (afa_kulcs) references afa_kulcs (kod);

alter table tetel
  add constraint tetel_fk2 foreign key (mennyisegi_egyseg) references mennyisegi_egyseg (kod);



-- tetel_egysegar

-- Ezt jelenleg nem lehet ratenni, mert nullak vannak a mezoben (ami nem letezik az afa-kulcs torzsben)
-- A teszt miatt atirjuk valamire
-- A tipusuk sem egyezik meg...
update tetel_egysegar
   set afa_kulcs = 1
 where afa_kulcs = 0;

alter table tetel_egysegar
  add constraint tetel_egysegar_fk1 foreign key (afa_kulcs) references afa_kulcs (kod);

alter table tetel_egysegar
  add constraint tetel_egysegar_fk2 foreign key (egysegar_kod) references egysegarak (kod);



-- tetel_raktar

alter table tetel_raktar
  add constraint tetel_raktar_fk1 foreign key (raktar_kod) references raktar_nevek (kod);


-- raktar_mozgas_fej

alter table raktar_mozgas_fej
  add constraint raktar_mozgas_fej_fk1 foreign key (deviza_nev) references deviza (nev);

alter table raktar_mozgas_fej
  add constraint raktar_mozgas_fej_fk2 foreign key (fizetesmod_kod) references fizetesmod (kod);

alter table raktar_mozgas_fej
  add constraint raktar_mozgas_fej_fk3 foreign key (mozgasnem_kod) references mozgasnem (kod);

alter table raktar_mozgas_fej
  add constraint raktar_mozgas_fej_fk4 foreign key (partner_kod) references partner (kod);


-- leltar

alter table leltar
  add constraint leltar_fk1 foreign key (raktar_kod) references raktar_nevek (kod);



---------------------------------------
-- Idezojeles oszlopnevek modositasa --
-- 2007.03.05.                       --
---------------------------------------

-- Ezek szerintem foglalt nevek
-- Lehet, hogy nem indexnek kellene hivni
-- ALTER TABLE _grids RENAME "index" TO index;

-- munkatars.superuser: ezzel is valami hasonlo baj lehet


-- Ezek mukodnek

alter table raktar_mozgas rename "brutto_egysegar_HUF" to brutto_egysegar_huf;

alter table raktar_mozgas rename "netto_egysegar_HUF" to netto_egysegar_huf;

alter table raktar_mozgas_fej rename "Ido" to ido;

------------------------
-- Check constraintek --
-- 2007.03.05.        --
------------------------

alter table tetel
  add constraint tetel_ch1 check (tetel_tipus in (0,1,2,3,4,5,6,7));

alter table raktar_mozgas_fej
  add constraint raktar_mozgas_fej_ch1 check (bizonylat_fajta in (1,2,3,4,5,6,7));

-----------------------------
-- Drop default utasitasok --
-- Kapitany 2007.03.07.    --
-----------------------------

alter table partner
 alter column fizetesmod drop default;

alter table partner
 alter column uzletkoto_kod drop default;

alter table partner
 alter column partner_tipus drop default;

alter table partner_cimtar
 alter column partner_kod drop default;

alter table partner_cimtar
 alter column cim_tipus drop default;

alter table partner_csoport_egysegarak
 alter column egysegar drop default;

alter table partner_emailtar_bejegyzes
 alter column partner_emailtar_kod drop default;

alter table partner_emailtar_bejegyzes
 alter column partner_email_lista_kod drop default;

alter table partner_emailtar_bejegyzes
 alter column partner_kod drop default;

alter table partner_kedvezmeny
 alter column partner_kod drop default;

alter table partner_kedvezmeny
 alter column kedvezmeny_kod drop default;

alter table raktar_mozgas
 alter column tetel_kod drop default;

alter table raktar_mozgas
 alter column forras_raktar_kod drop default;

alter table raktar_nevek
 alter column kapcsolt_partner drop default;

alter table raktar_nevek
 alter column partner_kod drop default;

alter table szerzodes
 alter column tetel_kod drop default;

alter table szerzodes
 alter column forras_raktar_kod drop default;

alter table szerzodes_fej
 alter column partner_kod drop default;

alter table tetel
 alter column tetel_tipus drop default;

alter table tetel
 alter column afa_kulcs drop default;

alter table tetel
 alter column mennyisegi_egyseg drop default;

alter table tetel_egysegar
 alter column tetel_kod drop default;

alter table tetel_egysegar
 alter column egysegar_kod drop default;

alter table tetel_egysegar
 alter column afa_kulcs drop default;

alter table tetel_raktar
 alter column tetel_kod drop default;

alter table tetel_raktar
 alter column raktar_kod drop default;


------------------------------
-- Foreign key constraintek --
-- 2007.03.18.              --
------------------------------

-- partner tabla kod mezojere hivatkozo tablak

alter table partner_cimtar
 drop constraint partner_cimtar_fk1;

alter table partner_cimtar
  add constraint partner_cimtar_fk1 foreign key (partner_kod) references partner (kod)
   on delete cascade;

alter table partner_emailtar
 drop constraint partner_emailtar_fk1;

alter table partner_emailtar
  add constraint partner_emailtar_fk1 foreign key (partner_kod) references partner (kod)
   on delete cascade;

alter table partner_kedvezmeny
 drop constraint partner_kedvezmeny_fk2;

alter table partner_kedvezmeny
  add constraint partner_kedvezmeny_fk2 foreign key (partner_kod) references partner (kod)
   on delete cascade;


-- tetel tabla kod mezojere hivatkozo tablak

-- tetel_egysegar

alter table tetel_egysegar
 drop constraint tetel_egysegar_fk1;

alter table tetel_egysegar
 drop constraint tetel_egysegar_fk2;

alter table tetel_egysegar
  add constraint tetel_egysegar_fk1 foreign key (tetel_kod) references tetel (kod)
   on delete cascade;

alter table tetel_egysegar
  add CONSTRAINT tetel_egysegar_fk2 FOREIGN KEY (egysegar_kod) REFERENCES egysegarak (kod)
   on delete cascade;


-- Kerdes, hogy ez kell-e???
-- Ha modositottam, a program hibat jelzett
-- alter table tetel_egysegar
--  alter afa_kulcs type int4;

alter table tetel_egysegar
  add CONSTRAINT tetel_egysegar_fk3 FOREIGN KEY (afa_kulcs) REFERENCES afa_kulcs (kod);



-- tetel_raktar

alter table tetel_raktar
 drop constraint tetel_raktar_fk1;

alter table tetel_raktar
  add constraint tetel_raktar_fk1 foreign key (tetel_kod) references tetel (kod)
   on delete cascade;

alter table tetel_raktar
  add CONSTRAINT tetel_raktar_fk2 FOREIGN KEY (raktar_kod) REFERENCES raktar_nevek (kod)
   on delete cascade;



-- leltar

alter table leltar
  add constraint leltar_fk2 foreign key (tetel_kod) references tetel (kod);



-- raktar_mozgas

alter table raktar_mozgas
  add constraint raktar_mozgas_fk1 foreign key (fej_kod) references raktar_mozgas_fej (kod)
 on delete cascade;

alter table raktar_mozgas
  add constraint raktar_mozgas_fk2 foreign key (tetel_kod) references tetel (kod);

alter table raktar_mozgas
  add constraint raktar_mozgas_fk3 foreign key (forras_raktar_kod) references raktar_nevek (kod);

alter table raktar_mozgas
  add constraint raktar_mozgas_fk4 foreign key (cel_raktar_kod) references raktar_nevek (kod);


-- Itt vannak hibas adatok, ezert toroljuk

delete from raktar_mozgas
 where afakulcs not in
(select kod
   from afa_kulcs);

alter table raktar_mozgas
  add constraint raktar_mozgas_fk5 foreign key (afakulcs) references afa_kulcs (kod);


-- szerzodes

alter table szerzodes
  add constraint szerzodes_fk4 foreign key (tetel_kod) references tetel (kod);

alter table szerzodes
  add constraint szerzodes_fk5 foreign key (fej_kod) references szerzodes_fej (kod)
   on delete cascade;









