Advertisement
majczel23000

[PBD] SP3

Jun 14th, 2018
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 1.42 KB | None | 0 0
  1. Tworzy zamowienie dla podanego produktu jezeli jego liczba sztuk jest mniejsza niz 20 (zamawia [20 - aktualna_liczba] * 3)
  2.  
  3.  
  4. DELIMITER //
  5. CREATE PROCEDURE zlozZamowienie(idProd int(8))
  6. BEGIN
  7.     SET @aktualnaLiczbaSztuk = (SELECT liczbaSztuk FROM produkt WHERE idProduktu = idProd);
  8.     IF(@aktualnaLiczbaSztuk < 20) THEN
  9.     BEGIN
  10.         SET @nrZam = (SELECT MAX(nrZamowienia) FROM zamowienie) + 1;
  11.         IF(@nrZam is NULL) THEN
  12.         BEGIN
  13.             SET @nrZam = 1;
  14.             SET @cena = (SELECT cenaZakupu FROM produkt WHERE idProduktu = idProd);
  15.             INSERT INTO ZAMOWIENIE (nrZamowienia, wartosc, dataZlozenia) VALUES(@nrZam, @cena * (20 - @aktualnaLiczbaSztuk) * 3, CURRENT_DATE());
  16.             INSERT INTO pozycjazamowienia (idProduktu, nrZamowienia, liczbSztuk) VALUES(idProd, @nrZam, (20 - @aktualnaLiczbaSztuk) * 3);
  17.         END;
  18.         ELSEIF(@nrZam is NOT NULL) THEN
  19.          BEGIN
  20.             SET @cena = (SELECT cenaZakupu FROM produkt WHERE idProduktu = idProd);
  21.             INSERT INTO ZAMOWIENIE (nrZamowienia, wartosc, dataZlozenia) VALUES(@nrZam, @cena * (20 - @aktualnaLiczbaSztuk) * 3, CURRENT_DATE());
  22.             INSERT INTO pozycjazamowienia (idProduktu, nrZamowienia, liczbSztuk) VALUES(idProd, @nrZam, (20 - @aktualnaLiczbaSztuk) * 3);
  23.         END;
  24.         ELSE SELECT "COS NIE TAK" AS Error;
  25.         END IF;
  26.     END;
  27.     ELSE SELECT "Liczba sztuk tego produktu większa lub równa 20" AS Informacja;
  28.     END IF;
  29. END//
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement