Advertisement
Guest User

Untitled

a guest
Dec 4th, 2017
413
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 23.45 KB | None | 0 0
  1. /* pierwsza tabel */
  2. create table dane_osobowe_pracownicy(
  3. pesel number(11, 0) primary key,
  4. imie varchar2(20),
  5. nazwisko varchar2(20) not null,
  6. data_urodzenia date,
  7. kontakt varchar(12) not null
  8. );
  9.  
  10. --drop table dane_osobowe_pracownicy;
  11. /*____________*/
  12.  
  13. /* druga tabel */
  14. create table oddzialy(
  15. id number(5,0) primary key,
  16. oddzial varchar2(20)
  17. );
  18.  
  19. --drop table oddzialy;
  20. /*____________*/
  21.  
  22. /* trzecia tabel */
  23. create table pracownicy(
  24. id number(5,0) primary key,
  25. id_oddzial number(5,0),
  26. kierownik_oddzialu number(5,0),
  27. stanowisko varchar2(20) not null,
  28. pensja number(6,0) check(pensja > 0),
  29. pesel number(11,0),
  30. constraint fk_pesel foreign key(pesel) references dane_osobowe_pracownicy(pesel),
  31. constraint fk_id_oddzialy foreign key (id_oddzial) references oddzialy(id),
  32. CONSTRAINT check_pensja
  33. CHECK (pensja > 0)
  34. );
  35.  
  36. --drop table pracownicy;
  37. /*____________*/
  38.  
  39. /* dodajemy danne do tabeli oddzialy */
  40. insert into oddzialy(id,oddzial) values
  41. (1,'Techniczny');
  42. insert into oddzialy(id,oddzial) values
  43. (2,'Obsluga klienta');
  44. insert into oddzialy(id,oddzial) values
  45. (3,'Kierowcy');
  46. insert into oddzialy(id,oddzial) values
  47. (4,'Administracja');
  48. insert into oddzialy(id,oddzial) values
  49. (5,'Piar');
  50. insert into oddzialy(id,oddzial) values
  51. (6,'IT');
  52. insert into oddzialy(id,oddzial) values
  53. (7,'Kontrola');
  54.  
  55.  
  56. select * from oddzialy;
  57. select * from pracownicy;
  58. /* _____________________ */
  59.  
  60. /* pierwsza funkcja trigger
  61. laczymy za pomoca tabeli pomocniczej */
  62. /*create or replace function add_pracownicy()
  63. returns trigger as
  64. $$
  65. declare
  66. imie_2 text;
  67. nazwisko_2 text;
  68. data_urodzenia_2 date;
  69. pesel_2 integer;
  70. kontakt_2 text;
  71. id_oddzial_2 bigint;
  72. kierownik_oddzialu_2 bigint;
  73. stanowisko_2 text;
  74. pensja_2 integer;
  75. id_2 integer;
  76. begin
  77. if TG_OP = 'INSERT' then
  78. imie_2 = new.imie;
  79. nazwisko_2 = new.nazwisko;
  80. data_urodzenia_2 = new.data_urodzenia;
  81. pesel_2 = new.pesel;
  82. kontakt_2 = new.kontakt;
  83. id_oddzial_2 = new.id_oddzial;
  84. kierownik_oddzialu_2 =new.kierownik_oddzialu;
  85. stanowisko_2 = new.stanowisko;
  86. pensja_2 = new.pensja;
  87. id_2 = new.id;
  88. insert into dane_osobowe_pracownicy (pesel,imie,nazwisko,data_urodzenia,kontakt)
  89. values (pesel_2,imie_2,nazwisko_2,data_urodzenia_2,kontakt_2);
  90. insert into pracownicy (id,id_oddzial,kierownik_oddzialu,stanowisko,pensja,pesel)
  91. values (id_2,id_oddzial_2,kierownik_oddzialu_2,stanowisko_2,pensja_2,pesel_2);
  92. return new;
  93. end if;
  94. if TG_OP = 'DELETE' then
  95. id_2=old.id;
  96. delete from dane_osobowe_pracownicy where id = id_2;
  97. delete from pracownicy where id=id_2;
  98. return old;
  99. end if;
  100. end;
  101. $$
  102. language 'plpgsql';*/
  103.  
  104.  
  105. create or replace trigger add_pracownicy
  106. after insert on pracownicy
  107. for each row
  108. declare
  109. imie_2 varchar2(20);
  110. nazwisko_2 varchar2(20);
  111. data_urodzenia_2 date;
  112. pesel_2 number(11,0);
  113. kontakt_2 varchar(12);
  114. id_oddzial_2 number(5,0);
  115. kierownik_oddzialu_2 number(5,0);
  116. stanowisko_2 varchar2(20);
  117. pensja_2 number(6,0);
  118. id_2 number(5,0);
  119. begin
  120. imie_2 := :new.imie;
  121. nazwisko_2 := :new.nazwisko;
  122. data_urodzenia_2 := :new.data_urodzenia;
  123. pesel_2 := :new.pesel;
  124. kontakt_2 := :new.kontakt;
  125. id_oddzial_2 := :new.id_oddzial;
  126. kierownik_oddzialu_2 := :new.kierownik_oddzialu;
  127. stanowisko_2 := :new.stanowisko;
  128. pensja_2 := :new.pensja;
  129. id_2 := :new.id;
  130. insert into dane_osobowe_pracownicy (pesel,imie,nazwisko,data_urodzenia,kontakt)
  131. values (pesel_2,imie_2,nazwisko_2,data_urodzenia_2,kontakt_2);
  132. insert into pracownicy (id,id_oddzial,kierownik_oddzialu,stanowisko,pensja,pesel)
  133. values (id_2,id_oddzial_2,kierownik_oddzialu_2,stanowisko_2,pensja_2,pesel_2);
  134. return new;
  135. end;
  136.  
  137. create table pomocnik_pracownicy
  138. (id bigint,
  139. imie text,
  140. nazwisko text,
  141. data_urodzenia date,
  142. pesel integer,
  143. kontakt text,
  144. id_oddzial bigint,
  145. kierownik_oddzialu bigint,
  146. stanowisko text,
  147. pensja integer
  148. );
  149.  
  150. create trigger add_to_pracownicy
  151. after insert or delete on pomocnik_pracownicy
  152. for each row execute
  153. procedure add_pracownicy();
  154.  
  155. drop function add_pracownicy();
  156. drop table pomocnik_pracownicy;
  157. drop trigger add_to_pracownicy on pomocnik_pracownicy;
  158.  
  159. /*______________________________________________________ */
  160.  
  161. /* dodajemy danne do tabeli pracownicy */
  162.  
  163. insert into pomocnik_pracownicy (id,imie,nazwisko,data_urodzenia,pesel,kontakt,id_oddzial,kierownik_oddzialu,stanowisko,pensja) values
  164. (1,'aleks','muzyko','26-10-1987','26109873','0982323',null,null,'dyrektor',15000),
  165. (2,'alek','murzykow','12-05-1977','21209873','09423423',null,null,'zam dyrektora',12000),
  166. (3,'robert','leitner','12-05-1997','321422973','robert.letr@gmqil.com',1,4,'mechanik',8000),
  167. (4,'robert','tercjak','26-05-1979','2131213','ul. wiitiga 28/12',1,4,'starszy mechanik',10000),
  168. (5,'marcin','pedzich','12-11-1990','1220173','u. myri 79',1,4,'mechanik',6000),
  169. (6,'angelika','pawlowskaja','26-12-1996','261219968','096060652',2,8,'obsluga klienta',4000),
  170. (7,'anastejsza','myszka','14-05-1990','1224213','0964012',2,8,'obsluga klienta',5000),
  171. (8,'anstejsza','braiko','19-01-1996','19011996','braiko@gmail.com',2,8,'obsluka klienta kierownik',5000),
  172. (9,'daniel','kroczak','12-05-1997','324223273','kroczak@gmqil.com',3,11,'kierowca autobusu',7500),
  173. (10,'marcin','janiak','26-05-1979','2431213','ul. wiitiga 18/1',3,11,'kierowca tramwaju',6000),
  174. (11,'marcin','pedzich','12-11-1990','65220173','560094121',3,11,'kierowca tramwaju',7500),
  175. (12,'Wolodymyr','romanowskyj','26-12-1986','2391368','096004652',4,14,'menedzer',8000),
  176. (13,'jola','zareba','14-05-1990','4124213','2364012',4,14,'menedzer',7000),
  177. (14,'jelezaweta','andrusyk','19-01-1996','111996','jelezaweta@gmail.com',4,14,'starszy menedzer',9000),
  178. (15,'maciej','janicki','21-10-1987','49873','0942621',5,15,'piar,reklama',7000),
  179. (16,'roman','pererwa','01-05-1989','244213','ul. traugutta 5',6,17,'programista',8000),
  180. (17,'roman','kawa','01-01-1990','40173','ul. wittiga 4/1003',6,17,'web developer',9000),
  181. (18,'artur','siedlecki','13-12-1986','451219968','0460652',6,17,'programista SQL',8000),
  182. (19,'ioann','sulyma','13-04-1996','13213','vano@gmail.com',7,19,'kontrola biletow',10000),
  183. (20,'diana','pidlesetska','01-03-1998','1393996','diano@gmail.com',7,19,'konotrola biletow',6000);
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190. /* restart dla typu bigserial jezeli bedzie potrzebny */
  191. alter sequence dane_osobowe_pracownicy_id_seq restart with 1;
  192. alter sequence pracownicy_id_seq restart with 1;
  193. alter sequence pomocnik_pracownicy_id_seq restart with 1;
  194. /* ___________________ */
  195.  
  196. select * from pracownicy;
  197. select * from dane_osobowe_pracownicy;
  198. select * from pomocnik_pracownicy;
  199.  
  200. delete from pracownicy;
  201. delete from dane_osobowe_pracownicy;
  202. delete from pomocnik_pracownicy;
  203.  
  204. /* _______________ */
  205.  
  206. /* czwarta tabela */
  207. create table dane_osobowe_klienci (
  208. pesel_klient bigint primary key,
  209. imie text,
  210. nazwisko text,
  211. kontakt text,
  212. id bigserial
  213. );
  214.  
  215. drop table dane_osobowe_klienci;
  216. /*_________________________*/
  217.  
  218. /* piata tabela klienci */
  219. create table klienci (
  220. id bigint primary key,
  221. usluga varchar check (usluga in ('bilet','oplata mandatu','inne')),
  222. id_oddzialu bigint check(id_oddzialu = 2),
  223. id_pracownika bigint ,
  224. pesel_klient bigint ,
  225. adres_punktu_obslugi text,
  226. kontakt_punktu_obslugi text,
  227. foreign key (pesel_klient) references dane_osobowe_klienci(pesel_klient)
  228. );
  229.  
  230. drop table klienci;
  231. delete from klienci;
  232.  
  233. select * from klienci;
  234. select * from oddzialy;
  235. select * from pracownicy;
  236.  
  237. /* szosta tabela */
  238. create table bilety (
  239. id bigint primary key,
  240. data_od date,
  241. waznosc integer,
  242. data_do date check (data_do>data_od),
  243. rodzaj text,
  244. cena integer,
  245. id_klienta bigint,
  246. foreign key (id_klienta) references klienci(id)
  247. );
  248.  
  249. drop table bilety;
  250. /*________________*/
  251.  
  252. /* siodma tabela */
  253. create table mandat(
  254. id bigint primary key,
  255. data_otrzymania date,
  256. kwota integer check (kwota > 0),
  257. status text check (status in('oplacone','aktywne')),
  258. data_oplaty date,
  259. id_kontrolera bigint,
  260. id_klienta bigint,
  261. foreign key (id_kontrolera) references pracownicy(id),
  262. foreign key (id_klienta) references klienci(id)
  263. );
  264.  
  265. drop table mandat;
  266.  
  267. select * from mandat
  268. order by id;
  269. /*_________*/
  270.  
  271.  
  272.  
  273. /* funckja zmienia status oplaty */
  274. create or replace function status_oplaty (id_1 bigint)
  275. returns integer as
  276. $$
  277. declare
  278. resp2 integer;
  279. begin
  280. update mandat
  281. set status = 'oplacone'
  282. where id=id_1;
  283. update mandat
  284. set data_oplaty = current_date
  285. where id=id_1;
  286. select id into resp2 from mandat
  287. where id = id_1;
  288. return resp2;
  289. end;
  290. $$
  291. language 'plpgsql' ;
  292.  
  293. select * from status_oplaty(10);
  294. select * from
  295. /* ________________- */
  296.  
  297. create table data_mandat_odsetki(
  298. id bigint,
  299. data_naliczania date
  300. );
  301.  
  302. select * from data_mandat_odsetki;
  303.  
  304. /* funkcja ktora licze odsetki od mandatu */
  305. create or replace function mandaty()
  306. returns integer as
  307. $$
  308. declare status_f text;
  309. data_otrzymania_mand date;
  310. liczba_dni integer;
  311. resp real;
  312. id_1 bigint;
  313. id_last bigint;
  314. data_naliczania_odsetek date;
  315. begin
  316. id_1 = (select id from mandat
  317. limit 1);
  318. id_last = ( select id from mandat
  319. order by id desc
  320. limit 1);
  321.  
  322. for i in id_1 .. id_last LOOP
  323. if i in (select id from mandat) then
  324.  
  325. status_f = (select status from mandat
  326. where id = i );
  327.  
  328. if status_f = 'aktywne' then
  329.  
  330. if (select data_naliczania from data_mandat_odsetki
  331. where id = i) <> current_date or (select data_naliczania from data_mandat_odsetki
  332. where id = i) is null then
  333.  
  334. data_otrzymania_mand = (select data_otrzymania from mandat
  335. where id = i);
  336.  
  337. liczba_dni := current_date - data_otrzymania_mand;
  338. if liczba_dni > 30 then
  339. update mandat
  340. set kwota = kwota + liczba_dni
  341. where id= i;
  342.  
  343. insert into data_mandat_odsetki(id,data_naliczania) values
  344. (i,current_date);
  345.  
  346.  
  347.  
  348. select kwota into resp from mandat
  349. where id = i;
  350. end if;
  351. end if;
  352. end if;
  353.  
  354. if status_f = 'oplacone' then
  355. update mandat
  356. set data_oplaty = current_date
  357. where id=i;
  358.  
  359. select kwota into resp from mandat;
  360.  
  361. end if;
  362. end if;
  363. end LOOP;
  364.  
  365. return resp;
  366.  
  367.  
  368.  
  369. end;
  370. $$
  371. language 'plpgsql' ;
  372.  
  373. select * from mandaty();
  374. drop function mandaty();
  375.  
  376. select * from mandat
  377. order by id;
  378. select * from klienci;
  379. select * from oddzialy;
  380. select * from pracownicy;
  381. /* ________________ */
  382.  
  383. /* osma taBELA */
  384. create table inne_sprawy (
  385. id bigint,
  386. id_klienta bigint references klienci(id),
  387. data_zgloszenia date,
  388. tresc text,
  389. status_sprawy text check(status_sprawy in ('aktywna','rozpatrzona')),
  390. id_menedzera bigint references pracownicy(id),
  391. odpowiedz_menedzera text,
  392. data_odpowiedzi date check (data_zgloszenia < data_odpowiedzi)
  393. );
  394.  
  395. select * from inne_sprawy;
  396. drop table inne_sprawy;
  397.  
  398. /* _______ */
  399. select * from klienci;
  400.  
  401. insert into klienci (usluga,id_oddzialu,id_pracownika,id_dane_osobowe_klienci) values
  402. ('bilet',2,6,1);
  403.  
  404. /* 9-ta */
  405. CREATE TABLE terminarz(
  406. id bigserial PRIMARY KEY,
  407. data timestamp DEFAULT CURRENT_TIMESTAMP,
  408. nr_linii text,
  409. id_nr_seryjny_pojazdu integer UNIQUE,
  410. id_pracownika integer,
  411. zmiana text);
  412.  
  413.  
  414. INSERT INTO terminarz(nr_linii,id_nr_seryjny_pojazdu,id_pracownika,zmiana)VALUES
  415. ('2',9,9,'pierwsza'),
  416. ('4',8,10,'pierwsza'),
  417. ('D',3,11,'pierwsza'),
  418. ('128',4,12,'czwarta'),
  419. ('8',10,13,'trzecia'),
  420. ('1',11,14,'druga'),
  421. ('A',7,15,'czwarta'),
  422. ('135',6,16,'trzecia'),
  423. ('6',1,17,'druga'),
  424. ('11',2,18,'druga'),
  425. ('33',5,19,'trzecia');
  426.  
  427. /* 10 -ta */
  428.  
  429. CREATE TABLE transport(
  430. nr_seryjny text,
  431. rodzaj_pojazdu text,
  432. id_stanu integer);
  433.  
  434. INSERT INTO transport(nr_seryjny,rodzaj_pojazdu,id_stanu)VALUES
  435. ('ZKM-1230001','autobus',1),
  436. ('ZKM-1230008','autobus',2),
  437. ('QRJ-5670013','tramwaj',1),
  438. ('QRJ-5670100','tramwaj',2),
  439. ('ZKM-1231028','autobus',3),
  440. ('ZKM-1230021','autobus',2),
  441. ('QRJ-5670001','tramwaj',1),
  442. ('QRJ-5670123','tramwaj',2),
  443. ('ZKM-1230122','autobus',1),
  444. ('ZKM-1230023','autobus',2),
  445. ('ZKM-1240001','autobus',3),
  446. ('QRJ-5670111','tramwaj',1),
  447. ('QRJ-5681245','tramwaj',3);
  448.  
  449.  
  450. / * 11 * /
  451. CREATE TABLE stan(
  452. id serial,
  453. stan_pojazdu text);
  454.  
  455. INSERT INTO stan(stan_pojazdu)VALUES
  456. ('w_trasie'),
  457. ('uszkodzony'),
  458. ('w_naprawie');
  459.  
  460.  
  461. select*from stan
  462. drop table terminarz
  463. /* ____ */
  464. /* dodajemy danne do tabeli klienci */
  465.  
  466. select * from klienci;
  467.  
  468.  
  469. create or replace function add_klienci()
  470. returns trigger as
  471. $$
  472. declare
  473. imie_3 text;
  474. nazwisko_3 text;
  475. pesel_klient_3 bigint;
  476. kontak_3 text;
  477. usluga_3 varchar;
  478. id_pracownika_3 bigint;
  479. data_od_3 date;
  480. waznosc_3 integer;
  481. data_do_3 date;
  482. rodzaj_3 text;
  483. cena_3 integer;
  484. id_klienta_3 bigint;
  485. data_otrzymania_4 date;
  486. kwota_4 integer;
  487. status_4 text;
  488. id_kontrolera_4 bigint;
  489. id_klienta_4 bigint;
  490. id_klienta_5 bigint;
  491. tresc_5 text;
  492. status_sprawy_5 text;
  493. id_menedzera_5 bigint;
  494. odpowiedz_menedzera_5 text;
  495. oddzial_pracownik_id bigint;
  496. id_oddzialu_3 bigint;
  497. adres_punktu_obslugi_3 text;
  498. kontakt_punktu_obslugi_3 text;
  499. id_3 bigint;
  500. pesel_klient_sprawdzam bigint;
  501. data_odpowiedzi_5 date;
  502. data_oplaty_4 date;
  503. data_zgloszenia_5 date;
  504. begin
  505. if TG_OP = 'INSERT' then
  506. imie_3 = new.imie;
  507. nazwisko_3 = new.nazwisko;
  508. pesel_klient_3 = new.pesel_klient;
  509. kontak_3 = new.kontakt;
  510. usluga_3 = new.usluga;
  511. id_pracownika_3 = new.id_pracownika;
  512.  
  513. id_oddzialu_3 = new.id_oddzialu;
  514. adres_punktu_obslugi_3 = new.adres_punktu_obslugi;
  515. kontakt_punktu_obslugi_3 = new.kontakt_punktu_obslugi;
  516.  
  517. id_3=new.id;
  518.  
  519.  
  520.  
  521.  
  522.  
  523. /* sprawdzamy peseli czy sa rowne jezeli tak to piszemy do tabeli bilety oraz klienci */
  524. if pesel_klient_3 in (select pesel_klient from klienci) then
  525.  
  526. if new.id_pracownika not in (select id from pracownicy
  527. where id_oddzial = 2) then
  528. raise exception '% blad dany pracownik nie pracuje w tym oddziale ',new.id_pracownika;
  529. end if;
  530.  
  531. insert into klienci(id,usluga,id_oddzialu,id_pracownika,pesel_klient,adres_punktu_obslugi,kontakt_punktu_obslugi) values
  532. (id_3,usluga_3,id_oddzialu_3,id_pracownika_3,pesel_klient_3,adres_punktu_obslugi_3,kontakt_punktu_obslugi_3);
  533.  
  534. if usluga_3 = 'bilet' then
  535. data_od_3 = new.data_od;
  536. waznosc_3 = new.waznosc;
  537. data_do_3 = new.data_do;
  538. rodzaj_3 = new.rodzaj;
  539. cena_3 = new.cena;
  540. id_klienta_3 = new.id_klienta;
  541.  
  542. insert into bilety(id,data_od,waznosc,data_do,rodzaj,cena,id_klienta) values
  543. (id_3,data_od_3,waznosc_3,data_do_3,rodzaj_3,cena_3,id_klienta_3);
  544.  
  545. elsif usluga_3 = 'oplata mandatu' then
  546. data_otrzymania_4 = new.data_otrzymania;
  547. kwota_4=new.kwota;
  548. status_4=new.status;
  549. id_kontrolera_4=new.id_kontrolera;
  550. id_klienta_4 = new.id_klienta;
  551. data_oplaty_4=new.data_oplaty;
  552. id_kontrolera_4 = new.id_kontrolera;
  553.  
  554. insert into mandat(id,data_otrzymania,kwota,status,data_oplaty,id_kontrolera,id_klienta) values
  555. (id_3,data_otrzymania_4,kwota_4,status_4,data_oplaty_4,id_kontrolera_4,id_klienta_4);
  556.  
  557. elsif usluga_3 = 'inne' then
  558. id_klienta_5=new.id_klienta;
  559. tresc_5=new.tresc;
  560. status_sprawy_5=new.status_sprawy;
  561. id_menedzera_5=new.id_menedzera;
  562. odpowiedz_menedzera_5=new.odpowiedz_menedzera;
  563. data_odpowiedzi_5=new.data_odpowiedzi;
  564. data_zgloszenia_5=new.data_zgloszenia;
  565.  
  566. insert into inne_sprawy(id,id_klienta,data_zgloszenia,tresc,status_sprawy,id_menedzera,odpowiedz_menedzera,data_odpowiedzi) values
  567. (id_3,id_klienta_5,data_zgloszenia_5,tresc_5,status_sprawy_5,id_menedzera_5,odpowiedz_menedzera_5,data_odpowiedzi_5);
  568. end if;
  569. return new;
  570. end if;
  571.  
  572. /* sprawdzamy peseli czy oni sa rowne jezeli nie to piszemy do tabeli */
  573. if pesel_klient_3 not in (select pesel_klient from klienci) or (select pesel_klient from klienci) is null then
  574.  
  575. /* dodajemy danne do tabeli */
  576. /*select * from dane_osobowe_klienci;*/
  577. insert into dane_osobowe_klienci(pesel_klient,imie,nazwisko,kontakt) values
  578. (pesel_klient_3,imie_3,nazwisko_3,kontak_3);
  579.  
  580. insert into klienci(id,usluga,id_oddzialu,id_pracownika,pesel_klient,adres_punktu_obslugi,kontakt_punktu_obslugi) values
  581. (id_3,usluga_3,id_oddzialu_3,id_pracownika_3,pesel_klient_3,adres_punktu_obslugi_3,kontakt_punktu_obslugi_3);
  582.  
  583. /* konczymy wprowadzenie dannych do tabeli klienci, sprawdzamy czy id_oddzialu i id_pracownika zgadzaja sie */
  584. /*oddzial_pracownik_id */
  585.  
  586. if new.id_pracownika not in (select id from pracownicy
  587. where id_oddzial = 2) then
  588. raise exception '% blad dany pracownik nie pracuje w tym oddziale ',new.id_pracownika;
  589. end if;
  590. /* koniec sprawdzania */
  591.  
  592. /* tabela bilet */
  593. if usluga_3 = 'bilet' then
  594. data_od_3 = new.data_od;
  595. waznosc_3 = new.waznosc;
  596. data_do_3 = new.data_do;
  597. rodzaj_3 = new.rodzaj;
  598. cena_3 = new.cena;
  599. id_klienta_3 = new.id_klienta;
  600. kontakt_punktu_obslugi_3 = new.kontakt_punktu_obslugi;
  601. insert into bilety(id,data_od,waznosc,data_do,rodzaj,cena,id_klienta) values
  602. (id_3,data_od_3,waznosc_3,data_do_3,rodzaj_3,cena_3,id_klienta_3);
  603. /* _________ */
  604. /* mandat */
  605. elsif usluga_3 = 'oplata mandatu' then
  606.  
  607. data_otrzymania_4 = new.data_otrzymania;
  608. kwota_4=new.kwota;
  609. status_4=new.status;
  610. id_kontrolera_4=new.id_kontrolera;
  611. id_klienta_4 = new.id_klienta;
  612. data_oplaty_4=new.data_oplaty;
  613. id_kontrolera_4 = new.id_kontrolera;
  614.  
  615. insert into mandat(id,data_otrzymania,kwota,status,data_oplaty,id_kontrolera,id_klienta) values
  616. (id_3,data_otrzymania_4,kwota_4,status_4,data_oplaty_4,id_kontrolera_4,id_klienta_4);
  617. /* _______________ */
  618. /* tabela inne */
  619. elsif usluga_3 = 'inne' then
  620.  
  621. id_klienta_5=new.id_klienta;
  622. tresc_5=new.tresc;
  623. status_sprawy_5=new.status_sprawy;
  624. id_menedzera_5=new.id_menedzera;
  625. odpowiedz_menedzera_5=new.odpowiedz_menedzera;
  626. data_odpowiedzi_5=new.data_odpowiedzi;
  627. data_zgloszenia_5 = new.data_zgloszenia;
  628.  
  629. insert into inne_sprawy(id,id_klienta,data_zgloszenia,tresc,status_sprawy,id_menedzera,odpowiedz_menedzera,data_odpowiedzi) values
  630. (id_3,id_klienta_5,data_zgloszenia_5,tresc_5,status_sprawy_5,id_menedzera_5,odpowiedz_menedzera_5,data_odpowiedzi_5);
  631. /* _____________________ */
  632. end if;
  633. return new;
  634. end if;
  635.  
  636. end if;
  637. end;
  638. $$
  639. language 'plpgsql';
  640.  
  641. drop function add_klienci();
  642.  
  643. create table pomocnik__klient_bilet (
  644. id bigint,
  645. imie text,
  646. nazwisko text,
  647. pesel_klient bigint,
  648. kontakt text,
  649. usluga text check(usluga in('bilet')) ,
  650. id_oddzialu bigint,
  651. id_pracownika bigint,
  652. adres_punktu_obslugi text,
  653. kontakt_punktu_obslugi text,
  654. data_od date,
  655. waznosc integer,
  656. data_do date,
  657. rodzaj text,
  658. cena integer,
  659. id_klienta bigint
  660. );
  661.  
  662. drop table pomocnik__klient_bilet;
  663.  
  664. create trigger add_to_klienci
  665. after insert on pomocnik__klient_bilet
  666. for each row execute
  667. procedure add_klienci();
  668.  
  669. drop trigger add_to_klienci on pomocnik__klient_bilet;
  670.  
  671.  
  672. create table pomocnik_klient_mandat (
  673. id bigint,
  674. imie text,
  675. nazwisko text,
  676. pesel_klient bigint,
  677. kontakt text,
  678. usluga text check(usluga in('oplata mandatu')) ,
  679. id_oddzialu bigint,
  680. id_pracownika bigint,
  681. adres_punktu_obslugi text,
  682. kontakt_punktu_obslugi text,
  683. data_otrzymania date,
  684. kwota integer,
  685. status text,
  686. data_oplaty date,
  687. id_kontrolera bigint,
  688. id_klienta bigint
  689. );
  690.  
  691. drop table pomocnik_klient_mandat;
  692.  
  693. create trigger add_to_klienci_mandat
  694. after insert on pomocnik_klient_mandat
  695. for each row execute
  696. procedure add_klienci();
  697.  
  698. drop trigger add_to_klienci_mandat on pomocnik_klient_mandat;
  699.  
  700.  
  701. create table pomocnik_klient_inne_sprawy (
  702. id bigint,
  703. imie text,
  704. nazwisko text,
  705. pesel_klient bigint,
  706. kontakt text,
  707. usluga text check(usluga in('inne')) ,
  708. id_oddzialu bigint,
  709. id_pracownika bigint,
  710. adres_punktu_obslugi text,
  711. kontakt_punktu_obslugi text,
  712. id_klienta bigint,
  713. data_zgloszenia date,
  714. tresc text,
  715. status_sprawy text,
  716. id_menedzera bigint,
  717. odpowiedz_menedzera text,
  718. data_odpowiedzi date
  719. );
  720.  
  721. drop table pomocnik_klient_inne_sprawy;
  722.  
  723.  
  724. create trigger add_to_klienci_mandat
  725. after insert on pomocnik_klient_inne_sprawy
  726. for each row execute
  727. procedure add_klienci();
  728.  
  729. drop trigger add_to_klienci_mandat on pomocnik_klient_inne_sprawy;
  730.  
  731.  
  732. /* add to bilet */
  733. insert into pomocnik__klient_bilet(id,imie,nazwisko,pesel_klient,kontakt,usluga,id_oddzialu,id_pracownika,
  734. adres_punktu_obslugi,kontakt_punktu_obslugi,data_od,waznosc,data_do,rodzaj,cena,id_klienta)
  735. values
  736. (1,'Arek','Mikuliszyn',123456,'marek@mail.ru','bilet',2,7,'trauguta 2','580987364','01-01-2017',4,'31-05-2017','ulgowy',150,1),
  737. (2,'Arek','Mikuliszyn',123489,'marek@mail.ru','bilet',2,7,'trauguta 2','580987364','01-01-2017',4,'31-05-2017','ulgowy',150,2),
  738. (3,'Arek','Mikuliszyn',423456,'marek@mail.ru','bilet',2,8,'trauguta 2','580987364','01-01-2017',4,'31-05-2017','ulgowy',150,3),
  739. (4,'Arek','Mikuliszyn',423456,'marek@mail.ru','bilet',2,8,'trauguta 2','580987364','01-01-2017',4,'31-05-2017','ulgowy',150,3),
  740. (5,'Arek','Mikuliszyn',423456,'marek@mail.ru','bilet',2,8,'trauguta 2','580987364','01-01-2017',4,'31-05-2017','ulgowy',150,3),
  741. (6,'Arek','Mikuliszyn',403456,'marek@mail.ru','bilet',2,6,'trauguta 2','580987364','01-01-2017',4,'31-05-2017','ulgowy',150,6);
  742. /* ______________________________- */
  743. select * from pracownicy;
  744. select * from klienci;
  745. /* add_to_mandat */
  746. insert into pomocnik_klient_mandat(id,imie,nazwisko,pesel_klient,kontakt,usluga,id_oddzialu,id_pracownika,
  747. adres_punktu_obslugi,kontakt_punktu_obslugi,data_otrzymania,kwota,status,data_oplaty,id_kontrolera,id_klienta)
  748. values
  749. (7,'Arek','Mikuliszyn',14566,'marek@mail.ru','oplata mandatu',2,7,'trauguta 2','580987364','25-04-2017',150,'oplacone','15-05-2017',19,7),
  750. (8,'Arek','Mikuliszyn',14332,'marek@mail.ru','oplata mandatu',2,7,'trauguta 2','580987364','25-04-2017',150,'aktywne',null,19,8),
  751. (9,'Arek','Mikuliszyn',1411,'marek@mail.ru','oplata mandatu',2,7,'trauguta 2','580987364','25-03-2017',150,'aktywne',null,19,9),
  752. (10,'Arek','Mikuliszyn',14533,'marek@mail.ru','oplata mandatu',2,7,'trauguta 2','580987364','01-04-2017',150,'aktywne',null,19,10),
  753. (11,'Arek','Mikuliszyn',14533,'marek@mail.ru','oplata mandatu',2,7,'trauguta 2','580987364','01-01-2017',150,'aktywne',null,19,10),
  754. (12,'Arek','Mikuliszyn',403456,'marek@mail.ru','oplata mandatu',2,7,'trauguta 2','580987364','27-04-2017',150,'aktywne',null,20,6),
  755. (15,'Arek','Mikuliszyn',403456,'marek@mail.ru','oplata mandatu',2,7,'trauguta 2','580987364','27-04-2017',150,'aktywne',null,19,6),
  756. (16,'Arek','Mikuliszyn',43456,'marek@mail.ru','oplata mandatu',2,7,'trauguta 2','580987364','27-03-2017',150,'aktywne',null,19,16);
  757.  
  758. /*__________________*/
  759.  
  760. select * from klienci;
  761. select * from dane_osobowe_klienci;
  762.  
  763. insert into pomocnik_klient_inne_sprawy(id,imie,nazwisko,pesel_klient,kontakt,usluga,id_oddzialu,id_pracownika,
  764. adres_punktu_obslugi,kontakt_punktu_obslugi,id_klienta,data_zgloszenia,tresc,status_sprawy,id_menedzera,odpowiedz_menedzera,data_odpowiedzi) values
  765. (13,'Arek','Mikuliszyn',333,'marek@mail.ru','inne',2,8,'trauguta 2','580987364',13,'17-04-2017','fdfsfsdfds','rozpatrzona',12,'32423424fds','14-05-2017'),
  766. (14,'Arek','Mikuliszyn',403456,'marek@mail.ru','inne',2,8,'trauguta 2','580987364',14,'25-04-2017','fdfsfsdfds','aktywna',null,null,null);
  767.  
  768.  
  769.  
  770.  
  771. select * from pracownicy;
  772. delete from dane_osobowe_klienci;
  773. select * from klienci;
  774. select * from pomocnik__klient_bilet;
  775. select * from dane_osobowe_klienci;
  776. select * from bilety;
  777. select * from mandat;
  778. select * from inne_sprawy;
  779.  
  780. alter sequence dane_osobowe_klienci_id_seq restart with 1;
  781. /*alter sequence klienci_id_seq restart with 1;
  782. alter sequence bilety_id_seq restart with 1;
  783. alter sequence pomocnik__klient_bilet_id_seq restart with 1; */
  784.  
  785.  
  786.  
  787.  
  788. delete from mandat;
  789. delete from dane_osobowe_klienci;
  790. delete from bilety;
  791. delete from mandat;
  792. delete from inne_sprawy;
  793.  
  794. delete from klienci;
  795. delete from pomocnik__klient_bilet;
  796.  
  797. delete from pomocnik__klient_bilet;
  798. delete from pomocnik_klient_mandat;
  799. delete from pomocnik_klient_inne_sprawy;
  800.  
  801.  
  802. select * from mandat;
  803. select * from inne_sprawy;
  804.  
  805. select * from bilety;
  806. select * from dane_osobowe_klienci;
  807. select * from klienci;
  808. select * from pracownicy;
  809. select * from dane_osobowe_pracownicy;
  810. select * from oddzialy;
  811. select * from pracownicy;
  812.  
  813. select * from pomocnik__klient_bilet;
  814. select * from pomocnik_klient_mandat;
  815. select * from pomocnik_klient_inne_sprawy;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement