Code:
CREATE TABLE PROIZVODI (
ID INTEGER,
PROIZVOD VARCHAR(20) CHARACTER SET NONE COLLATE NONE,
CIJENA DECIMAL(12, 2));
CREATE TABLE RACUN (
ID INTEGER,
PROIZVODI_ID INTEGER,
KOLICINA DECIMAL(12, 2),
UKUPNO DECIMAL(12, 2));
CREATE TABLE PORACUNU (
ID INTEGER,
UKUPNO DECIMAL(12, 2));
CREATE TABLE POPROIZVODU (
ID INTEGER,
KOLICINA DECIMAL(12, 2),
UKUPNO DECIMAL(12, 2));
CREATE TABLE PROIZVODI (
ID INTEGER,
PROIZVOD VARCHAR(20) CHARACTER SET NONE COLLATE NONE,
CIJENA DECIMAL(12, 2));
CREATE TABLE RACUN (
ID INTEGER,
PROIZVODI_ID INTEGER,
KOLICINA DECIMAL(12, 2),
UKUPNO DECIMAL(12, 2));
CREATE TABLE PORACUNU (
ID INTEGER,
UKUPNO DECIMAL(12, 2));
CREATE TABLE POPROIZVODU (
ID INTEGER,
KOLICINA DECIMAL(12, 2),
UKUPNO DECIMAL(12, 2));
trigeri
Code:
CREATE TRIGGER ukupno FOR RACUN
ACTIVE BEFORE INSERT
POSITION 0
AS
BEGIN
NEW.UKUPNO=NEW.KOLICINA*(SELECT CIJENA FROM proizvodi where proizvodi.id=new.proizvodi_id);
END;
CREATE TRIGGER ukupno_po_racunu FOR RACUN
ACTIVE AFTER INSERT
POSITION 0
AS
DECLARE VARIABLE I INTEGER;
BEGIN
select count(*) from racun where racun.ID=new.id into :i;
if (i=1) then
BEGIN
insert into poracunu(ID,Ukupno) values(NEW.ID,0);
update poracunu set Ukupno=Ukupno+new.Ukupno where ID=NEW.ID;
END
else
begin
update poracunu set Ukupno=Ukupno+new.Ukupno where ID=NEW.ID;
end
END;
CREATE TRIGGER ukupno_po_proizvodu FOR RACUN
ACTIVE AFTER INSERT
POSITION 0
AS
DECLARE VARIABLE I INTEGER;
BEGIN
select count(*) from racun where proizvodi_id=new.proizvodi_id into i;
if (i=1) then
BEGIN
insert into poproizvodu(ID,kolicina,ukupno) values(NEW.proizvodi_id,0,0);
update POPROIZVODU set kolicina=kolicina+new.kolicina, ukupno=ukupno+new.ukupno where ID=NEW.proizvodi_id;
END
else
begin
update poproizvodu set kolicina=kolicina+new.kolicina,ukupno=ukupno+new.ukupno where ID=NEW.proizvodi_id;
end
END;
CREATE TRIGGER ukupno FOR RACUN
ACTIVE BEFORE INSERT
POSITION 0
AS
BEGIN
NEW.UKUPNO=NEW.KOLICINA*(SELECT CIJENA FROM proizvodi where proizvodi.id=new.proizvodi_id);
END;
CREATE TRIGGER ukupno_po_racunu FOR RACUN
ACTIVE AFTER INSERT
POSITION 0
AS
DECLARE VARIABLE I INTEGER;
BEGIN
select count(*) from racun where racun.ID=new.id into :i;
if (i=1) then
BEGIN
insert into poracunu(ID,Ukupno) values(NEW.ID,0);
update poracunu set Ukupno=Ukupno+new.Ukupno where ID=NEW.ID;
END
else
begin
update poracunu set Ukupno=Ukupno+new.Ukupno where ID=NEW.ID;
end
END;
CREATE TRIGGER ukupno_po_proizvodu FOR RACUN
ACTIVE AFTER INSERT
POSITION 0
AS
DECLARE VARIABLE I INTEGER;
BEGIN
select count(*) from racun where proizvodi_id=new.proizvodi_id into i;
if (i=1) then
BEGIN
insert into poproizvodu(ID,kolicina,ukupno) values(NEW.proizvodi_id,0,0);
update POPROIZVODU set kolicina=kolicina+new.kolicina, ukupno=ukupno+new.ukupno where ID=NEW.proizvodi_id;
END
else
begin
update poproizvodu set kolicina=kolicina+new.kolicina,ukupno=ukupno+new.ukupno where ID=NEW.proizvodi_id;
end
END;