Ten z modułu sprzedaż (zależnie od wersji i menu, powinien być w analityce sprzedaży, bezpośrednio w module albo w rachunkach otwartych).
Problem stwierdzony przy domyślnym ustawieniu, tj. "wg faktur i paragonów", po przefiltrowaniu wg osób. Po wybraniu użytkownika (filtr "Wystawił") raport daje zaniżony wynik.
Przyczyna: większość (sprawdzałem na kilku bazach, wynik oscyluje pomiędzy 80% a 90%) faktur nie ma wypełnionego pola FAKTURA_WYSTAWIL_ID, po którym raport filtruje sprzedaż.
Informacja o tym, kto wystawiał dokument, znajduje się w:
(1) widoku listy faktur, kolumna "Wystawił"
(2) polu FAKTURA.EMPLOYEE_ID
(3) polu FAKTURA.FAKTURA_WYSTAWIL
(4) polu FAKTURA.FAKTURA_WYSTAWIL_ID
(1) to nazwisko i imię użytkownika, który fakturę tworzył
(2) to id użytkownika, który faktycznie dokument tworzył
(3) to nazwisko i imię użytkownika z pola FAKTURA_WYSTAWIL_ID lub - jeśli jest ono puste - EMPLOYEE_ID
(4) to id użytkownika określonego w polu "Wystawił" formatki dokumentu
Więc o ile w widoku faktur zawsze mamy nazwisko osoby TWORZĄCEJ fakturę, to raport jest filtrowany wg osoby WYSTAWIAJĄCEJ fakturę, a ten zapis nie jest tworzony w bazie danych, o ile nie przeklikamy osoby wystawiającej w dokumencie. I raport łączny nijak nie zgodzi się z sumami na użytkownika.
Raport sprzedaży asortymentu
HotFix
Rozwiązaniem jest poniższy skrypt. Powoduje zapisanie id użytkownika wystawiającego (domyślnie- tworzący) dla nowych dokumentów, oraz uzupełnia dane w już istniejących dokumentach.
Kod: Zaznacz cały
SET TERM ^;
CREATE OR ALTER TRIGGER AJP_FAKTURA_WYSTAWIL FOR FAKTURA
ACTIVE BEFORE INSERT POSITION 1
AS
BEGIN
/*RAPORT SPRZEDAZY ASORTYMENTU - FILTR WG UZYTKOWNIKA*/
IF(NEW.FAKTURA_WYSTAWIL_ID IS NULL) THEN
NEW.FAKTURA_WYSTAWIL_ID = NEW.EMPLOYEE_ID;
END
^
SET TERM ;^
UPDATE FAKTURA SET FAKTURA_WYSTAWIL_ID = EMPLOYEE_ID WHERE FAKTURA_WYSTAWIL_ID IS NULL;
COMMIT;