Facebook
From Morose Giraffe, 3 Years ago, written in Oracle 9.2 PL/SQL.
This paste is a reply to Re: Re: Re: Re: Untitled from Aqua Kangaroo - view diff
Embed
Download Paste or View Raw
Hits: 280
  1. CREATE TRIGGER obrotfifo
  2. AFTER INSERT ON pozycjedokumentu
  3. FOR EACH ROW
  4. WHEN (NEW.handlowymagazynowy='M' AND NEW.kierunekmagazynu=-1)
  5.  
  6.  
  7. konroz NUMBER(10);
  8. dataroz DATE;
  9. iloscroz NUMBER;
  10. algo NUMBER(1);
  11. okres NUMBER(1);
  12. ile NUMBER;
  13. dataprz DATE;
  14. cena NUMBER(12,2);
  15. dokprz NUMBER(10);
  16. partia NUMBER(10);
  17. konprz NUMBER(10);
  18. magazyn NUMBER(10);
  19. pozdok NUMBER(10);
  20.  
  21. iloscroz:=:NEW.ilosc;
  22. SELECT kontrahent INTO konroz FROM DOKUMENTY
  23. WHERE id=:NEW.dokument;
  24. SELECT data INTO dataroz FROM DOKUMENTY
  25. WHERE id=:NEW.dokument;
  26. SELECT algorytm INTO algo FROM MAGAZYNY
  27. WHERE (id=:NEW.magazyn);
  28. SELECT id INTO okres FROM OKRESYMAGAZYNOWE
  29. WHERE (czyzamkniety='N');
  30.  
  31. GOTO skok;
  32.  
  33. <<skok2>>
  34. iloscroz:=(iloscroz-ile);
  35. DELETE FROM zasoby
  36. WHERE (towar=:NEW.towary AND data=dataprz);
  37.  
  38. <<skok>>
  39. SELECT MIN(data) INTO dataprz FROM ZASOBY
  40. WHERE (towar=:NEW.towary AND magazyn=magazynroz);
  41. SELECT ilosc INTO ile FROM zasoby
  42. WHERE (towar=:NEW.towary AND data=dataprz AND magazyn=:NEW.magazyn);
  43. SELECT cena INTO cena FROM zasoby
  44. WHERE (towar=:NEW.towary AND data=dataprz AND magazyn=:NEW.magazyn);
  45. SELECT dokument INTO dokprz FROM zasoby
  46. WHERE (towar=:NEW.towary AND data=dataprz AND magazyn=:NEW.magazyn);
  47. SELECT partiatowaru INTO partia FROM zasoby
  48. WHERE (towar=:NEW.towary AND data=dataprz AND magazyn=:NEW.magazyn);
  49. SELECT kontrahent INTO konprz FROM zasoby
  50. WHERE (towar=:NEW.towary AND data=dataprz AND magazyn=:NEW.magazyn);
  51. SELECT pozycjadokumentu INTO pozdok FROM zasoby
  52. WHERE (towar=:NEW.towary AND data=dataprz AND magazyn=:NEW.magazyn);
  53.  
  54. WHILE iloscroz >= ile AND algo=0 LOOP
  55.     INSERT INTO obroty
  56.     VALUES (s_id_ob.NEXTVAL, ile, cena, dataprz, :NEW.cena,
  57.     dataroz, dokprz, :NEW.dokument, partia, :NEW.towary, :NEW.magazyn,
  58.     okres, konprz, konroz, pozdok, :NEW.id);
  59. GOTO skok2;
  60.  
  61. IF algo=0 AND iloscroz !=0 THEN  
  62.   INSERT INTO obroty
  63.   VALUES (s_id_ob.NEXTVAL, iloscroz, cena, dataprz,
  64.   :NEW.cena, dataroz, dokprz, :NEW.dokument, partia, :NEW.towary,
  65.   :NEW.magazyn, okres, konprz, konroz, pozdok, :NEW.id);
  66.  
  67. UPDATE zasoby
  68.   SET ilosc = (ilosc-iloscroz)
  69.   WHERE towar=:NEW.towary AND data=dataprz;
  70.  
  71. /

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

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