Skip to content

Tok dat a Workflows

Detailní pohled na to, jak modul Výroba (AutoERP) pracuje s daty. Diagramy vycházejí přímo z implementace tříd, hooků a API v autoerp/production.

Životní cyklus výrobní zakázky

flowchart LR
    PM["Technologický postup / ProductionModel"] -->|FillFromModel hook| PO["Výrobní zakázka / ProductionOrder"]
    PO --> OPS["Operace / ProductionModelOperation"]
    PO --> BOM["Kusovník / ProductionModelItem"]
    OPS -->|ProcessWorkPerformed + CalculateTotalPrice| WORK["Vykonaná práce"]
    WORK -->|ProcessWorkPerformed| OPS_AGG["Agregované operace na zakázce"]
    OPS_AGG -->|ProductionContextUpdater + ProductionStatusManager| STATUS["Stav zakázky a položky"]
    STATUS -->|autoCompleteProductionOrders| RECEIPT["Příjemka hotového výrobku"]
  • FillFromModel kopíruje operace a kusovník, přidá speciální operace (kódy 998, 999) dle nastavení postupu.
  • ProcessWorkPerformed agreguje skutečné časy a množství zpět na operace zakázky.
  • ProductionStatusManager + ProductionContextUpdater drží stav zakázky/položky a vytváří příjemku (pokud není skipProductReceipt).

Objednání kusovníku (Order BOM)

flowchart LR
    PO["Výrobní zakázka"] -->|API order-bom| OB["OrderBomProcessor"]
    OB -->|validace dodavatelů| CHECK{Supplier OK?}
    CHECK -- ne --> ERR["ErrorFactory missingSupplierForOperations"]
    CHECK -- ano --> POM["PurchaseOrderManager"]
    CHECK -- ano --> COM["CooperationManager"]
    POM --> POI["PurchaseOrder + items"]
    COM --> COOP["Kooperace"]
    COOP --> CI["CooperationItem"]
    CI --> OPS["Operace označena jako objednaná"]
  • OrderBomProcessor prochází operace a nakupované položky a vynutí dodavatele (chování dle missingSupplierHandling).
  • PurchaseOrderManager vytváří PurchaseOrderItem a propojuje zakázku/projekt (pokud je modul Accounting/ProjectManagement nainstalován).
  • CooperationManager zakládá kooperaci + položky, které drží stav dodávky a aktualizují operaci.

Stavový motor operací a položek

stateDiagram-v2
    [*] --> Waiting
    Waiting --> InProcess : zpracované množství > 0
    Waiting --> InProcess : operace objednána (kooperace)
    InProcess --> Done : processedQuantity >= quantityPlanned
flowchart TD
    OPS["Operace"] -->|ProcessProductionModelOperation + UpdateActivity| ITEM["Stav položky kusovníku"]
    ITEM -->|ProductionStatusManager| PO[Stav výrobní zakázky]
  • ProcessProductionModelOperation přepočítává processedQuantity u kooperací a nastavuje status.
  • UpdateActivity zapíná isActive na první nebo navazující operaci a aktualizuje týmy zakázky.
  • ProductionStatusManager převádí stav operace na stav položky (WorkInProgress/WaitingForDelivery/Done) a zakázky (Draft/Planned/Ongoing/Completed) podle aktivních operací a konfigurace autoCompleteProductionOrders.

Materiálové a skladové toky

flowchart LR
    WORK[Vykonaná práce] -->|transactionCreation=goodsIssue| ISSUE[GoodsIssue]
    ISSUE --> STOCK_MINUS[StockIssuerService.issue]
    STATUS[Zakázka Completed] -->|ProductionContextUpdater| GR[GoodsReceipt]
    GR --> STOCK_PLUS[StockReceiverService.receive]
  • HandleTransactionCreation vytvoří výdejku z materiálů zadaných u WorkPerformed pouze pokud transactionCreation = goodsIssue a je znám productWarehouseId zakázky.
  • ProductionContextUpdater vytváří příjemku hotového výrobku při dokončení zakázky (pokud není skipProductReceipt), vypočítá jednotkovou cenu = totalProductionCost / quantityProduced.

Nákladové propojení na projekty a schvalování

flowchart LR
    WORK[Vykonaná práce] --> OPS
    OPS[Operace] --> COST[ProjectCost]
    COST --> PROJ[Projekt]
    WORK -->|isExtraWork & forceExtraWorkApproval| APPROVAL[ApprovalRecord]
    APPROVAL -->|Approved| REBOOK[CreateProjectCost re-run]
  • CreateProjectCost vytváří/aktualizuje ProjectCost na základě reálné sazby operace (HourRateCalculator) a hierarchie projektu výrobní zakázky.
  • Pokud je forceExtraWorkApproval zapnuto, náklady z extra práce se započtou až po schválení (UpdateProjectCostOnApproval).