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
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