Facebook
From Morose Giraffe, 8 Years ago, written in Oracle 9.2 PL/SQL.
This paste is a reply to Re: Re: Re: Re: Untitled from Aqua Kangaroo - go back
Embed
Viewing differences between Re: Re: Re: Re: Untitled and Re: Re: Re: Re: Re: Untitled
CREATE USER pracownik_hr IDENTIFIED BY hr105;
CREATE USER pracownik_log IDENTIFIED BY log568;
CREATE USER adminitrator2 IDENTIFIED BY admin222;
GRANT CONNECT, RESOURCE TO pracownik_hr;
GRANT CONNECT, RESOURCE TO pracownik_log;
GRANT DBA TO adminitrator2;
GRANT SELECT, INSERT, UPDATE, 
TRIGGER obrotfifo
AFTER INSERT ON pozycjedokumentu
FOR EACH ROW
WHEN (new.handlowymagazynowy='M' AND new.kierunekmagazynu=-1)

DECLARE

konroz NUMBER(10);
dataroz DATE;
iloscroz NUMBER;
algo NUMBER(1);
okres NUMBER(1);
ile NUMBER;
dataprz DATE;
cena NUMBER(12,2);
dokprz NUMBER(10);
partia NUMBER(10);
konprz NUMBER(10);
magazyn NUMBER(10);
pozdok NUMBER(10);

BEGIN
iloscroz:=:new.ilosc;
SELECT kontrahent INTO konroz FROM DOKUMENTY
WHERE id=:new.dokument;
SELECT data INTO dataroz FROM DOKUMENTY
WHERE id=:new.dokument;
SELECT algorytm INTO algo FROM MAGAZYNY
WHERE (id=:new.magazyn);
SELECT id INTO okres FROM OKRESYMAGAZYNOWE
WHERE (czyzamkniety='N');

GOTO skok;

<>
iloscroz:=(iloscroz-ile);
DELETE ON hr.pracownicy TO pracownik_hr;
GRANT SELECT, INSERT, UPDATE, DELETE ON adresy TO pracownik_log;
GRANT SELECT, INSERT, UPDATE, DELETE ON dokumenty TO pracownik_log;
FROM zasoby
WHERE (towar=:new.towary AND data=dataprz);

<>
SELECT min(data) INTO dataprz FROM ZASOBY
WHERE (towar=:new.towary AND magazyn=magazynroz);
SELECT ilosc INTO ile FROM zasoby
WHERE (towar=:new.towary AND data=dataprz AND magazyn=:new.magazyn);
SELECT cena INTO cena FROM zasoby
WHERE (towar=:new.towary AND data=dataprz AND magazyn=:new.magazyn);
SELECT dokument INTO dokprz FROM zasoby
WHERE (towar=:new.towary AND data=dataprz AND magazyn=:new.magazyn);
SELECT partiatowaru INTO partia FROM zasoby
WHERE (towar=:new.towary AND data=dataprz AND magazyn=:new.magazyn);
SELECT kontrahent INTO konprz FROM zasoby
WHERE (towar=:new.towary AND data=dataprz AND magazyn=:new.magazyn);
SELECT pozycjadokumentu INTO pozdok FROM zasoby
WHERE (towar=:new.towary AND data=dataprz AND magazyn=:new.magazyn);

WHILE iloscroz >= ile AND algo=0 LOOP
    INSERT INTO obroty
    VALUES (s_id_ob.nextval, ile, cena, dataprz, :new.cena,
    dataroz, dokprz, :new.dokument, partia, :new.towary, :new.magazyn, 
    okres, konprz, konroz, pozdok, :new.id);
GOTO skok2;
END LOOP;

IF algo=0 AND iloscroz !=0 THEN  
  INSERT INTO obroty
  VALUES (s_id_ob.nextval, iloscroz, cena, dataprz, 
  :new.cena, dataroz, dokprz, :new.dokument, partia, :new.towary,
  :new.magazyn, okres, konprz, konroz, pozdok, :new.id);
END IF;

UPDATE zasoby
  SET ilosc = (ilosc-iloscroz)
  WHERE towar=:new.towary AND data=dataprz;

END;
/

Replies to Re: Re: Re: Re: Re: Untitled rss

Title Name Language When
Re: Re: Re: Re: Re: Re: Untitled Sweltering Prairie Dog plsql 8 Years ago.