Skip to content

Latest commit

 

History

History
110 lines (74 loc) · 5.99 KB

File metadata and controls

110 lines (74 loc) · 5.99 KB

abraflexi-ipex (Česky)

Tento dokument popisuje českou### Tok zpracování

  1. Z IPEX API se vytvoří měsíční (postpaid) objednávky.
  2. Najdou se připravené objednávky s daným produktem.
  3. Seskupí se podle zákazníka a sečte se sumCelkem.
  4. Pokud součet > limit → vytvoří se faktura, připojí výpis hovorů, objednávky se označí jako hotové.
  5. Jinak objednávky zůstavají připravené pro pozdější navýšení.

Řízení PDF seznamů hovorů

Při vytváření objednávek a zpracování prepaid hovorů se automaticky generují PDF seznamy hovorů, které se:

  • Připojují k objednávkám v AbraFlexi jako přílohy
  • Odesílají emailem zákazníkům na jejich kontaktní adresu

Toto chování lze řídit pomocí proměnných prostředí:

  • ATTACH_CALL_LIST_PDF=false – zakáže připojování PDF k objednávkám/fakturám
  • SEND_CALL_LIST_EMAIL=false – zakáže odesílání emailů zákazníkům

Optimalizace: PDF se generuje pouze pokud bude použito. Pokud jsou obě možnosti zakázané, PDF se vůbec negeneruje, což šetří čas a systémové prostředky.

Výchozí hodnoty jsou true pro zachování kompatibility se stávajícím chováním.ntaci k integraci IPEX ↔ AbraFlexi se zaměřením na logiku minimální fakturace.

Logika minimální fakturace (Invoicing Threshold)

Aby se nevystavovaly zbytečně malé faktury, integrace používá konfigurovatelný minimální limit (threshold) pro vystavení faktury.

Hlavní principy

  • ABRAFLEXI_MINIMAL_INVOICING – minimální částka nutná k vystavení faktury (výchozí 50.00)
  • Objednávky ve stavu stavDoklObch.pripraveno obsahující produkt ABRAFLEXI_PRODUCT (default IPEX_POSTPAID) se seskupí podle zákazníka (firma).
  • Sečte se jejich sumCelkem.
  • Faktura vznikne pouze pokud součet > ABRAFLEXI_MINIMAL_INVOICING (přísné větší, nikoli >=).
  • Pokud je součet pod nebo roven limitu, do výsledku se zapíše např. 123.45 < 200 a faktura se nyní nevytvoří.
  • Pokud kód zákazníka (podřetězcově) figuruje v ABRAFLEXI_SKIPLIST, fakturace se přeskočí bez ohledu na částku.
  • ABRAFLEXI_CREATE_EMPTY_ORDERS umožní evidenčně vytvořit i nulové objednávky (např. pro přiložení výpisu hovorů a sledování zpracování měsíce).

Přesný mechanismus pro 0 Kč objednávky

  1. Pokud je ABRAFLEXI_CREATE_EMPTY_ORDERS=true, vytvoří se objednávka i za měsíc, kde je cena 0 Kč.
  2. Tato objednávka je ve stavu stavDoklObch.pripraveno stejně jako ostatní měsíce.
  3. Fakturace se spouští nad součtem sumCelkem všech připravených objednávek zákazníka.
  4. Dokud součet nepřekročí ABRAFLEXI_MINIMAL_INVOICING, faktura nevznikne a objednávky (včetně 0 Kč) zůstávají připravené.
  5. Jakmile součet limit překročí, do jedné faktury se přenesou všechny relevantní připravené objednávky zákazníka, tedy i měsíce s 0 Kč.
  6. Po vytvoření faktury se zdrojové objednávky označí jako stavDoklObch.hotovo.

Poznámka: Pokud je ABRAFLEXI_CREATE_EMPTY_ORDERS=false, 0 Kč objednávky se nevytvářejí, a tedy se do budoucí faktury nemají odkud přenést.

Používané proměnné prostředí

Základní konfigurace

  • ABRAFLEXI_MINIMAL_INVOICING – limit pro fakturaci
  • ABRAFLEXI_PRODUCT – kód produktu, který musí být v objednávce přítomen
  • ABRAFLEXI_ORDERTYPE – typ objednávkového dokladu
  • ABRAFLEXI_DOCTYPE – typ výsledné faktury
  • ABRAFLEXI_SKIPLIST – seznam kódů zákazníků k přeskočení (vyhledává se podřetězec)
  • ABRAFLEXI_SEND – zda označit fakturu k odeslání e‑mailem
  • ABRAFLEXI_CREATE_EMPTY_ORDERS – vytváření prázdných (nulových) objednávek

Řízení PDF a emailů

  • ATTACH_CALL_LIST_PDF – povolit/zakázat připojování PDF seznamu hovorů k objednávkám/fakturám (true/false, výchozí: true)
  • SEND_CALL_LIST_EMAIL – povolit/zakázat odesílání PDF emailem zákazníkům (true/false, výchozí: true)

Poznámka: PDF se generuje pouze pokud bude použito - tj. alespoň jedna z možností (ATTACH_CALL_LIST_PDF nebo SEND_CALL_LIST_EMAIL) je povolena.

Časové nastavení

  • MONTH_OFFSET – posun měsíce pro zpracování (záporné hodnoty pro minulé měsíce, např. -1 pro minulý měsíc)

Hraniční čas z IPEX API

  • IPEX účtuje období od hraničního času posledního dne měsíce 00:00.
  • Typický příklad z API: 31.12.2025 00:00.
  • Pro účely našeho měsíčního zpracování je tento okamžik interpretován jako začátek následujícího dne, tj. 1.1.2026.
  • Proto je při generování objednávek hodnota datTermin ukládána jako dateStart + 1 den, aby nedocházelo k posunu období při dotazech od 00:00.

Výstup

  • RESULT_FILE – cesta k souboru pro uložení výsledků zpracování

Hraniční situace

  • Součet přesně rovný limitu → nevystaví se (protože podmínka je >)
  • Zákazník bez e‑mailu → faktura/výpis se vytvoří, ale e‑mail se nepošle
  • Skip list má přednost před částkou
  • Není-li žádná připravená objednávka, nic se nefakturuje

Doporučená možná vylepšení

  • Změnit podmínku na >= pokud chcete zahrnout přesně dosažený limit
  • Místo podřetězcového hledání ve skiplistu použít strukturované parsování (CSV + exact match)
  • Přidat testy pro: pod limitem, rovno limitu, nad limitem, ve skiplistu

Tok zpracování

  1. Z IPEX API se vytvoří měsíční (postpaid) objednávky.
  2. Najdou se připravené objednávky s daným produktem.
  3. Seskupí se podle zákazníka a sečte se sumCelkem.
  4. Pokud součet > limit → vytvoří se faktura, připojí výpis hovorů, objednávky se označí jako hotové.
  5. Jinak objednávky zůstávají připravené pro pozdější navýšení.
  6. To zahrnuje i nulové objednávky: pokud byly vytvořeny, přenesou se do faktury v okamžiku pozdějšího překročení limitu.

Pokud potřebujete další části dokumentace v češtině, lze je sem doplnit.