Mozart Produkcja–kawałek SQL, porównywanie wartości RW i PW

Poniżej przykład zapytania SQL, które pozwoli sprawdzić, czy wartość dokumentu PW nie jest mniejsza od wartości dokumentu RW na zleceniu. Spotkałem się z taką sytuacją w trakcie wdrożenia, gdy osoba odpowiedzialna za konfigurację Subiekt Nexo zmieniła ceny dokumentów PW w Subiekcie bez poinformowania mnie o tym. Efektem było wystawienie błędnych dokumentów PW, dokumenty miały zaniżoną wartość. Problemem okazało się wstawianie ceny według cennika.

Problem rozwiązaliśmy poprzez poprawienie konfiguracji, ale na wszelki wypadek dodaliśmy w konfiguracji programu Mozart Produkcja możliwość wymuszenia kontroli i wyświetlania komunikatu o takiej sytuacji. Dodatkowo stworzyliśmy raport, który pozwala na weryfikację wartości dla wybranego okresu czasu.

Mozart Produkcja

http://produkcjaprogramy.pl

DECLARE @ZlecProdId int
DECLARE @Roznica decimal
DECLARE MY_CURSOR CURSOR
  LOCAL STATIC READ_ONLY FORWARD_ONLY
FOR
select distinct ZlecProd from xpoDokumenty where ZlecProd is not null;
OPEN MY_CURSOR
FETCH NEXT FROM MY_CURSOR INTO @ZlecProdId
WHILE @@FETCH_STATUS = 0
BEGIN
    SET @Roznica = (select sum(dok.Wartosc * iif( dok.typ = 1, -1, 1) )
    from xpoDokumenty dok where  ZlecProd = @ZlecProdId)
    IF @Roznica < 0
        BEGIN
            PRINT 'Zlecenie : ' + CAST(@ZlecProdId  AS NVARCHAR(100))+ '|| Roznica : ' + CAST(@Roznica AS NVARCHAR(100))
        END
    –Do something with Id here   
    FETCH NEXT FROM MY_CURSOR INTO @ZlecProdId
END
CLOSE MY_CURSOR
DEALLOCATE MY_CURSOR

Dodaj komentarz

Twój adres email nie zostanie opublikowany.