# Jak działa kontrola minimalnej wartości zamówienia?

Ten artykuł wyjaśnia, jak działa zaawansowana kontrola minimalnej wartości zamówienia w systemach cairo.ERP uwzględniając sumowanie wartości zamówień w obrębie dnia i trasy.

---

### **Nowe podejście do kontroli minimalnej wartości zamówienia**

W systemie cairo.ERP wprowadzono zaawansowaną kontrolę minimalnej wartości zamówienia. Dotychczas każde zamówienie było kontrolowane niezależnie. Obecnie, możliwe jest sumowanie wartości zamówień w obrębie tego samego dnia i trasy. Oznacza to, że możesz domawiać produkty, nawet jeśli pojedyncze, kolejne zamówienie nie przekracza ustalonego minimum, pod warunkiem że łączna wartość złożonych zamówień już je przekracza. Kontrola ta działa zarówno w ERP, API/Webservice.

---

### **Uruchamianie i konfiguracja**

Aby skonfigurować minimalną wartość zamówienia, przejdź do:

**ERP** &gt; **ADMINISTRACJA** &gt; **PARAMETRY** &gt; **DOKUMENTY HANDLOWE** &gt; **MINIMALNA WARTOŚĆ REZERWACJI**

Dostępne parametry to:

- **AKTYWNA**: Włącza lub wyłącza kontrolę minimalnej wartości rezerwacji (**NIE** / **tak**).
- **MINIMALNA WARTOŚĆ REZERWACJI NETTO**: Minimalna wartość rezerwacji, ustalana w walucie systemowej.
- **TRYB KONTROLI**: Określa, jak będzie kontrolowana minimalna wartość rezerwacji: 
    - **bieżąca rezerwacja**: Weryfikuje jedynie wartość aktualnie przetwarzanego zamówienia.
    - **rezerwacje zablokowane + asygnaty z trasy**: Weryfikuje bieżącą rezerwację plus wartość rezerwacji zablokowanych lub zamówionych zdalnie, a także asygnaty z bieżącego dnia – wszystko z bieżącego magazynu i trasy.

---

### **Ustawienia na kontrahencie**

Możesz również skonfigurować minimalną wartość zamówienia indywidualnie dla każdego kontrahenta:

**ERP** &gt; **KONTRAHENCI** &gt; **\[Enter\]** &gt;**WARUNKI HANDLOWE**

- **MINIMALNA WARTOŚĆ REZERWACJI NETTO**: Minimalna wartość rezerwacji netto, ustalana w walucie systemowej. 
    - Wartość 0 oznacza, że zastosowany zostanie parametr ogólny, czyli ustawienia z **ERP** &gt; **ADMINISTRACJA** &gt; **PARAMETRY** &gt; **DOKUMENTY HANDLOWE** &gt; **MINIMALNA WARTOŚĆ REZERWACJI**.

---

### **Działanie systemu**

- **Weryfikacja zamówienia**: W momencie wstawiania statusu **OK** na rezerwacji , system sprawdza, czy wartość zablokowanych pozycji na rezerwacji (w tym potencjalnie dostępnych pozycji, np. z ilością wirtualną), wraz z opcjonalnie innymi dokumentami klienta (zgodnie z parametrami), jest wyższa od ustalonego minimum.
- **Pierwsze zamówienie a domówienia**: Pierwsze zamówienie danego dnia musi przekraczać ustalony limit. Późniejsze domówienia są możliwe bez względu na ich pojedynczą wartość. Zamówienie poniżej minimalnej wartości nie powinno zostać utworzone.
- **Weryfikacja trasy i daty**: Jeśli parametr jest ustawiony na **RE blokowane + DD**, system sprawdza, czy pozostałe rezerwacje i asygnaty są przypisane do tej samej trasy. Dodatkowo, w przypadku asygnat, weryfikowana jest ta sama data, podczas gdy rezerwacje mogą być z innego dnia.
- **API/Webservice (doOrderProduct)**: Jeśli klient ma zdefiniowany próg minimalnej wartości rezerwacji, przed utworzeniem rezerwacji w funkcji **doOrderProduct** system weryfikuje wartość zamawianych towarów (z uwzględnieniem ilości wirtualnych), analogicznie jak w **doOrderClose**. 
    - W przypadku niepowodzenia generowany jest log: **"msg": "Wartość rezerwacji poniżej minimalnej wymaganej wartości netto"**.
    - Dodatkowe logi są zapisywane w pliku **check\_min\_wart.log**.
- **Realizacja zamówienia**: Jeśli wartości są zgodne z wymogami, rezerwacja otrzymuje status **OK** i zamówienie jest realizowane. W przeciwnym razie pojawia się komunikat błędu.