Přeskočit obsah

Konfigurace kooperací

Stavový model

Stav Jak vzniká Hook/akce
Draft Nově vytvořená kooperace (ručně nebo z Order BOM) CooperationManager
Ready Výchozí pro operace s pořadím 1 nebo pokud předchozí operace jsou Done determineCooperationStatus
Waiting Pokud předcházející operace nejsou hotové determineCooperationStatus
Ordered Odeslán e‑mail s PDF nebo ručně nastaveno Email/UpdateCooperationStatus / uživatel
Delivered Všechny CooperationItem mají stav Delivered SetItemsStatus / ProcessCooperationItem
Rejected / Canceled Ručně --

PreventDeliveredStatusChange brání změně stavu po doručení.

Položky kooperace

  • Vznikají v CooperationManager::createCooperationItemWithRelations – vazba na operaci, zakázku, produkt a projekt (pokud modul ProjectManagement).
  • ProcessCooperationItem:
  • u stavu WaitingForDelivery nastaví na operaci příznak isOrdered,
  • při Delivered doplní quantityDelivered na množství a propíše data potvrzení/dodání do položky kusovníku výrobní zakázky.
  • SetItemsStatus synchronizuje stav všech položek s kooperací a naopak, pokud všechny položky jsou doručené.

Objednání kusovníku

OrderBomProcessor generuje kooperace pro operace isPurchased=true a se zadaným dodavatelem:

  1. Zkontroluje, že u všech nakupovaných operací/dílů je vyplněn dodavatel (jinak vyhodí chybu missingSupplierForOperations).
  2. Vytvoří nebo najde Cooperation ve stavu Ready/Waiting podle pořadí operace.
  3. Vytvoří CooperationItem (množství podle ProductionOrder.quantityPlanned nebo předchozích operací) a propojí jej s operací.
  4. Nastaví na operaci hasOrderCreated = true a uloží ji.

Účetní a projektové dopady

  • Pokud je nainstalován modul Accounting, lze na kooperaci navázat přijaté faktury (supplierInvoice) – jejich grandTotalAmount vstupuje do nákladů zakázky.
  • Pokud je nainstalován ProjectManagement, CooperationManager připojí kooperaci k projektu získanému z hierarchie zakázky.