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"]
FillFromModelkopíruje operace a kusovník, přidá speciální operace (kódy 998, 999) dle nastavení postupu.ProcessWorkPerformedagreguje skutečné časy a množství zpět na operace zakázky.ProductionStatusManager+ProductionContextUpdaterdrží 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á"]
OrderBomProcessorprochází operace a nakupované položky a vynutí dodavatele (chování dlemissingSupplierHandling).PurchaseOrderManagervytváříPurchaseOrderItema propojuje zakázku/projekt (pokud je modul Accounting/ProjectManagement nainstalován).CooperationManagerzaklá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]
ProcessProductionModelOperationpřepočítáváprocessedQuantityu kooperací a nastavujestatus.UpdateActivityzapínáisActivena první nebo navazující operaci a aktualizuje týmy zakázky.ProductionStatusManagerpřevádí stav operace na stav položky (WorkInProgress/WaitingForDelivery/Done) a zakázky (Draft/Planned/Ongoing/Completed) podle aktivních operací a konfiguraceautoCompleteProductionOrders.
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]
HandleTransactionCreationvytvoří výdejku z materiálů zadaných uWorkPerformedpouze pokudtransactionCreation = goodsIssuea je známproductWarehouseIdzakázky.ProductionContextUpdatervytváří 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]
CreateProjectCostvytváří/aktualizujeProjectCostna základě reálné sazby operace (HourRateCalculator) a hierarchie projektu výrobní zakázky.- Pokud je
forceExtraWorkApprovalzapnuto, náklady z extra práce se započtou až po schválení (UpdateProjectCostOnApproval).