Poprzednim artykułem zakończyliśmy cykl Magik II – szybki start, opisujący podstawową funkcjonalność modułu. Obecnie zaczynamy kolejny cykl Magik II dla zaawansowanych, w którym przedstawimy budowę modułu oraz zaawansowane sposoby definiowania schematów księgowania. Pierwsza część poświęcona będzie Metadefinicjom, zaś pierwszy artykuł opisuje, w jaki sposób definiowane, przechowywane i stosowane są Definicje warunków.
Wprowadzenie
Podczas definiowania dekretów, schematów MPK, parametrów dokumentu czy VAT, możemy zdefiniować także warunki, po spełnieniu których nasza definicja będzie wykonana dla konkretnego importowanego dokumentu. Warunki definiujemy wybierając z listy dostępnych elementów interesującą nas pozycję oraz przypisując jej odpowiednią wartość. Wartość ta – w zależności od warunku – może być wpisana ręcznie lub także wybrana z listy dostępnych pozycji.
Listy dostępnych warunków różnią się, w zależności od typu dokumentu oraz miejsca, w którym budujemy definicję warunkową. Ich zawartość możemy modyfikować, zmieniając odpowiednio wartości przechowywane w metabazie (ręcznie lub poprzez automatyczną aktualizację Metabazy).
Dostęp do definicji warunków uzyskamy, wybierając w oknie Metadefinicje zakładkę Definicje warunków oraz wskazując typ dokumentu, którego definicje nas interesują.
Dla wybranego typu dokumentu możemy dodawać, usuwać lub modyfikować istniejące definicje warunków, wykorzystując przyciski znajdujące się z prawej strony okna.
Znaczenie poszczególnych pól w definicji warunku jest następujące:
- Nazwa warunku – nazwa pod jaką warunek pojawia się na liście dostępnych warunków; ma znaczenie wyłącznie informacyjne
- Zmienna – zmienna zdefiniowana w systemie, której wartość będzie porównywana z wartością użytą w warunku. Warunek działa w ten sposób, że podczas definicji przyporządkowujemy do danej zmiennej oczekiwaną wartość. Następnie podczas importu konkretnego dokumentu, do tej zmiennej ładowana jest wartość z tego właśnie dokumentu i porównywana z wartością zadaną w warunku. Jeśli są równe, warunek uznaje się za spełniony.
Przykład 1:
Definiując dekret dla faktury sprzedaży możemy zdefiniować warunek na grupę kontrahenta. Dany dekret ma się wykonać wtedy, gdy kontrahent należy do grupy Detaliści.
Od strony użytkowej warunek będzie wyglądał następująco:
Od strony technicznej oznacza to jednak, że zmiennej @id_grupy, która w definicji warunków związana jest z nazwą Grupa kontrahenta przypisano wartość 1, która z kolei przypisana jest nazwie Detaliści. (patrz niżej, na opis parametru Metoda wprowadzania wartości dokumentu). Przypisanie to tworzone jest w procesie aktualizacji metadefinicji i jest zgodne z definicją grup kontrahentów w bazie programu WAPRO Mag, z którego będą importowane dokumenty.
Podczas dekretacji konkretnego dokumentu (tj. w czasie przenoszenia danych do bufora dokumentów zadekretowanych), do zmiennej @id_grupy ładowane jest id grupy, do jakiej przypisany jest w bazie WAPRO Mag kontrahent występujący na tym dokumencie. Następnie sprawdzany jest warunek, czy aktualna wartość zmiennej zgadza się z wartością określoną w definicji warunku (w naszym przypadku – czy zmienna ta dla danego dokumentu ma wartość 1). Jeśli tak, warunek uważa się za spełniony.
Oczywiście – w ogólnym przypadku sprawdza się, czy warunek zachodzi, wykorzystując nie tylko znak równości, ale dowolny operator podany w jego definicji. Jeśliby bowiem warunek zdefiniować nieco inaczej, np. tak jak poniżej:
byłby on spełniony dla konkretnego dokumentu dopiero wtedy, gdyby zmienna @id_grupy przyjęła wartość różną od 1.
Obsługiwane typy dekretów
– pozwala na zdefiniowanie, dla jakich typów dekretów będzie można zastosować dany warunek. Jak wiadomo, dokumenty możemy dekretować pobierając dane z nagłówka lub pozycji (w przypadku wybranych dokumentów - także z powiązanych pozycji kosztowych). Niektóre warunki mają sens tylko dla danego typu kwot – w takim przypadku możemy spowodować, aby nie były dostępne na liście warunków w przypadku pozostałych typów:
Przykład 2:
Większość warunków można zastosować zarówno do dekretów czerpiących kwoty z nagłówka, jak i z pozycji dokumentu. Na przykład – pomimo, że kontrahent związany jest z nagłówkiem dokumentu, warunki nałożone na grupę, do jakiej należy mają sens także dla dekretów z pozycji, pozwalając chociażby dekretować na osobne konta partnerów będących firmami powiązanymi. Są jednak także takie warunki, które mają sens tylko dla jednego typu dekretu. Na przykład wszystkie warunki związane z artykułami (rodzaj artykułu, kategoria asortymentowa, indeks itp.) nie mogą być poprawnie zastosowane dla dekretów opartych o nagłówek dokumentu, ponieważ w jednym dokumencie może wystąpić wiele różnych artykułów (nie wiadomo byłoby, który artykuł wykorzystać do przypisania wartości zmiennej użytej w definicji warunku).
Zobaczmy, jak w praktyce działa ten parametr. W tym celu wykonajmy następujące czynności:
- Przechodzimy do okna Metadefinicje i wybieramy typ dokumentu Faktura sprzedaży oraz warunek Grupa kontrahenta
- Wybieramy przycisk Popraw, na ekranie wyświetla się okno definicji warunku, które powinno wyglądać następująco:
Zwróćmy uwagę, że parametr Obsługiwane typy dekretów ustawiony jest w taki sposób, aby warunek pojawiał się zarówno przy dekretacji kwot z nagłówka, jak i z pozycji dokumentu
Zmieniamy parametr Obsługiwane typy dekretów, tak aby obsługiwał on wyłącznie dekrety dla nagłówka dokumentu i zapisujemy zmiany
Zamykamy okno Metadefinicje i w oknie definiowania schematów wybieramy nasz przykładowy schemat oraz przycisk Popraw
Wybieramy z listy typów dokumentów FV Faktura sprzedaży, a następnie przyciskiem Dodaj otwieramy okno definicji nowego dekretu.
W oknie definiowania dekretu ustawiamy parametr Typ dekretu na wartość Dekret dla nagłówka następnie przyciskiem Dodaj w sekcji warunków rozpoczynamy dodawanie nowego warunku
Rozwijamy listę Nazwa rodzaju i sprawdzamy, że na tej liście jest rodzaj warunku Grupa kontrahenta.
Anulujemy warunek, następnie zmieniamy typ dekretu na Dekret dla pozycji dokumentu. Ponownie przyciskiem Dodaj rozpoczynamy dodawanie nowego warunku.
Zauważmy, że na liście rodzajów NIE MA rodzaju warunku Grupa kontrahenta. Wynika to właśnie z tego, że w Metadefinicjach ustaliliśmy, że ten rodzaj będzie dostępny wyłącznie dla dekretów pobieranych z nagłówka dokumentu.
Anulujemy zmiany w schemacie księgowania i wykonujemy następujące czynności:
- ponownie wchodzimy w Metadefinicje
- dla dokumentu Faktura sprzedaży i dla naszego warunku Grupa kontrahenta przestawiamy ponownie parametr Obsługiwane typy dekretów, tak aby obsługiwał zarówno dekrety z nagłówka jak i pozycji dokumentu
- po zapisaniu zmian sprawdzamy (w sposób analogiczny jak opisano wyżej), czy nasz parametr pojawił się w dostępnych rodzajach warunku. Powinien być dostępny zarówno dla kwot dekretowanych z nagłówka, jak i z pozycji dokumentu.
Warunek dostępny dla – określa miejsca, w których dany warunek pojawi się na liście dostępnych warunków
Przykład 3:
Zobaczymy na konkretnym przykładzie, jaki jest wpływ tego parametru na mechanizm definiowania schematów księgowania. Posłużymy się w tym celu znanym nam z poprzedniego przykładu warunkiem Grupa kontrahenta dla dokumentu Faktura sprzedaży. Wykonajmy następujące czynności:
- Przechodzimy do okna Metadefinicje i wybieramy typ dokumentu Faktura sprzedaży oraz warunek Grupa kontrahenta
- Wybieramy przycisk Popraw, na ekranie wyświetla się okno definicji warunku, które powinno wyglądać następująco:
Zwróćmy uwagę, że parametr Warunek dostępny dla ustawiony jest w taki sposób, aby pojawiał się we wszystkich możliwych miejscach
Zmieniamy ten parametr w taki sposób, aby warunek był dostępny wyłącznie przy definiowaniu parametrów dokumentu i zapisujemy zmiany:
Zamykamy okno Metadefinicje i w oknie definiowania schematów wybieramy nasz przykładowy schemat oraz przycisk Popraw
Sprawdzamy, czy nasz warunek jest dostępny podczas definicji dekretów. W tym celu:
- wybieramy z listy typów dokumentów FV Faktura sprzedaży, a następnie przyciskiem Dodaj otwieramy okno definicji nowego dekretu.
- w oknie definiowania dekretu ustawiamy parametr Typ dekretu na wartość Dekret dla nagłówka następnie przyciskiem Dodaj w sekcji warunków rozpoczynamy dodawanie nowego warunku.
- rozwijamy listę Nazwa rodzaju i sprawdzamy, że na tej liście NIE MA rodzaj warunku Grupa kontrahenta.
- analogicznie sprawdzamy listę warunków dla parametru Typ dekretu ustawionego na wartość Dekret dla pozycji dokumentu. I znowu – nasz warunek nie występuje na liście dostępnych rodzajów.
Sprawdzamy, czy nasz warunek jest dostępny podczas definiowania schematów dekretacji MPK. W tym celu:
- wybieramy z listy typów dokumentów FV Faktura sprzedaży, a następnie przyciskiem Dodaj otwieramy okno definicji nowego dekretu.
- przechodzimy na zakładkę Schematy MPK i wybieramy przycisk Dodaj.
- w oknie definiowania schematów MPK, przyciskiem Dodaj w sekcji warunków inicjujemy dodawanie nowego warunku.
- rozwijamy listę Nazwa rodzaju i sprawdzamy, że na tej liście NIE MA rodzaj warunku Grupa kontrahenta.
Sprawdzamy, czy nasz warunek dostępny jest na liście warunków, podczas ustawiania parametrów VAT. W tym celu:
- wracamy do okna definicji schematów i (nadal stojąc na dokumencie Faktura sprzedaży) wybieramy zakładkę Parametry VAT
- wybieramy przycisk Dodaj i w oknie definiowania parametru – analogicznie jak wyżej – sprawdzamy, czy na liście dostępnych rodzajów warunków występuje warunek Grupa kontrahenta
- zauważamy, że na tej liście NIE MA rodzaj warunku Grupa kontrahenta.
Analogicznie sprawdzamy, czy nasz warunek dostępny jest na liście warunków podczas ustawiania parametrów dokumentu. Tym razem warunek powinien być dostępny.
Ponownie otwieramy Metadefinicje i poprawiamy nasz warunek, tak aby parametr Warunek dostępny dla miał zaznaczone wszystkie opcje, tak jak przed rozpoczęciem naszego przykładu. Zapisujemy wynik i sprawdzamy (w sposób analogiczny jak wyżej – pamiętając o ustawieniu się na dokumencie Faktura sprzedaży), że teraz warunek dostępny jest we wszystkich opisanych wcześniej miejscach.
- Metoda wprowadzania wartości dla warunku – decyduje o tym, czy podczas definiowania warunku możemy przypisać do niego dowolną wartość (opcja wartość wprowadzana przez użytkownika) czy też wybrać jedną z wartości predefiniowanych (opcja wartość wybierana z listy wartości).
W tym drugim przypadku, przy pomocy przycisku Metabaza możemy zdefiniować elementy, które będą dostępne
- W polu Id wartości wpisujemy wartość, jaka będzie porównywana z naszą zmienną
- W polu Nazwa wartości wpisujemy nazwę, pod jaką dana pozycja wystąpi na liście dopuszczalnych wartości
Przykład 4:
Sprawdzimy na przykładzie, jak ustawienie parametru Metoda wprowadzania wartości dla warunku wpływa na sposób definiowania schematów księgowania. Do sprawdzenia użyjemy warunku Symbol waluty dla dokumentu Faktura sprzedaży. W tym celu:
Przechodzimy do okna Metadefinicje i wybieramy typ dokumentu Faktura sprzedaży oraz warunek Symbol waluty
Wybieramy przycisk Popraw, na ekranie wyświetla się okno definicji warunku, które powinno wyglądać następująco:
Zwróćmy uwagę, że parametr Metoda wprowadzania wartości… ustawiony jest na pozycji wartość wprowadzana przez użytkownika.
Sprawdzamy, jak takie ustawienie wpływa na sposób definiowania schematu. W tym celu:
- zamykamy okno definicji warunku bez zmiany parametrów, następnie zamykamy okno Metadefinicje i w oknie definiowania schematów wybieramy nasz przykładowy schemat oraz przycisk Popraw
- wybieramy dokument Faktura sprzedaży i przyciskiem Dodaj otwieramy okno definiowania dekretu.
- Przyciskiem Dodaj w sekcji warunków inicjujemy dodawanie nowego warunku, następnie z listy rodzajów warunku wybieramy pozycję Symbol waluty i operator „=”.
- Przechodząc do następnego pola zauważamy, że symbol waluty musimy wpisać ręcznie.
Anulujemy naszą definicję i wracamy do okienka Metadefinicje, w celu zmiany metody wprowadzania wartości. W tym celu:
- ponownie ustawiamy się na dokumencie Faktura sprzedaży oraz warunku Symbol waluty i wybieramy przycisk Popraw
- przechodzimy do parametru Metoda wprowadzania wartości… i ustawiamy go na wartość wartość wybierana z listy wartości z metabazy (LW)
- wybieramy przycisk Metabaza i definiujemy listę wartości, które będą dozwolone dla naszego warunku:
- zamykamy okno listy wartości, zapisujemy zmiany w definicji warunku i zamykamy okno Metadefinicje.
W definicji schematu księgowania sprawdzamy, jakie skutki spowodowała wprowadzona przez nas zmiana. W tym celu:
- wybieramy nasz schemat przykładowy i wybieramy przycisk Popraw
- ustawiamy się na dokumencie Faktura sprzedaży i ponownie wybieramy przycisk Popraw, otwierając okienko definicji dekretu
- Przyciskiem Dodaj w sekcji warunków inicjujemy dodawanie nowego warunku, następnie z listy rodzajów warunku wybieramy pozycję Symbol waluty i operator „=”.
- Przechodząc do następnego pola zauważmy, że tym razem symbolu waluty nie wpisujemy ręcznie, lecz wybieramy spośród pozycji zdefiniowanych poprzednio w Metabazie.
Zwróćmy uwagę, że na liście wyboru pojawiły się wartości wpisane uprzednio w kolumnie Nazwa wartości. Natomiast w procesie importu porównywana będzie wartość zmiennej, (do której zostanie zapisany symbol waluty wczytywanego dokumentu), z wartością pola Id wartości odpowiadającą wybranej pozycji (np. w naszym przypadku, jeśli z listy wybierzemy wartość Dolar, to do porównania będzie pobrane Id wartości USD.
W naszym przykładzie listę dopuszczalnych wartości wypełniliśmy ręcznie. Oczywiście należało w takim przypadku zadbać, aby zdefiniowane przez nas dla poszczególnych elementów listy Id wartości były zgodne z odpowiednimi wartościami przesyłanymi przez program WAPRO Mag. Inaczej niemożliwe byłoby spełnienie warunku nałożonego dla tworzonej definicji.
Aby uniknąć takiej rozbieżności, w wielu przypadkach listy dopuszczalnych wartości budowane są automatycznie na podstawie danych istniejących w bazie programu WAPRO Mag. Odbywa się to w procesie aktualizacji metabazy.
Przykład 5:
Prześledzimy proces aktualizacji listy wartości dla warunków na konkretnym przykładzie. W tym celu posłużymy się warunkiem Magazyn (symbol) dla dokumentu Faktura sprzedaży. Na początek wykonujemy następujące czynności:
Sprawdzamy, jakie wartości może przyjmować aktualnie przyjmować ten warunek. W tym celu:
- przechodzimy do okna Metadefinicje i wybieramy typ dokumentu Faktura sprzedaży oraz warunek Magazyn (symbol)
- wybieramy przycisk Popraw, a następnie w sekcji parametru Metoda wprowadzania wartości wybieramy przycisk Metabaza
- Uruchamiamy program WAPRO Mag i definiujemy dodatkowy magazyn.
Przechodzimy do programu WAPRO Fakir i w oknie Schematy księgowania aktualizujemy metabazę
Ponownie przechodzimy do okna Metadefinicje i dla naszego warunku (dokument Faktura sprzedaży, warunek Magazyn (symbol)) sprawdzamy, jak wygląda lista wartości. Okazuje się, że nasz nowo zdefiniowany magazyn został do tej listy automatycznie dodany.
Wartość w polu Id wartości odpowiada identyfikatorowi, pod jakim zapisany jest nasz magazyn w bazie danych programu WAPRO Mag (ta wartość będzie pobierana w procesie importu i porównywana ze zmienną naszego warunku, w tym wypadku ze zmienną @id_magazynu).