Production Module - Kompletní Technická Dokumentace
Přehled systému
Production module je pokročilý systém pro řízení výroby v EspoCRM, navržený pro kompletní správu výrobních procesů od plánování po dokončení. Modul obsahuje 15 základních entit organizovaných do funkčních skupin, 26 automatizačních hooků, 13 API endpointů a sofistikované frontend komponenty.
1. BUSINESS MODEL A ENTITNÍ NAVAZNOSTI
1.1 Centrální Business Flow
Product → ProductionModel → ProductionOrder → WorkPerformed → ProjectCost
↓ ↓ ↓ ↓
BillOfMaterials Operations Cooperations MaterialConsumption
1.2 Klíčové Business Navaznosti
ProductionOrder - Centrální řídící entita, která:
- Automaticky generuje kusovník z ProductionModel šablony
- Rezervuje materiály ve skladě při změně na Planned status
- Spouští kooperace pro outsourcované operace
- Agreguje náklady z všech WorkPerformed aktivit
- Sleduje milestone progress přes Gate systém (A,B,E,F)
Status propagace - Změny statusu se automaticky šíří:
- ProductionOrder → všechny Operations a Cooperations
- WorkPerformed completion → vytvoření ProjectCost záznamu
- Cooperation delivery → update material availability
Cost calculation flow - Náklady se počítají hierarchicky:
- WorkPerformed (labor) → Operation → ProductionOrder → Project
- Material costs z ProductionModelItem quantities
1.3 Základní Výrobní Entity
Modul obsahuje 15 základních entit organizovaných do funkčních skupin. Detailní technické informace o všech entitách a jejich polích viz sekce "2. Kompletní popis entit a polí".
1.4 Pracovní Management Entity
1.5 Externí Práce a Kooperace
Entity pro správu externí výrobní práce: Cooperation, CooperationItem, GateModel. Detailní technické informace viz sekce "2. Kompletní popis entit a polí".
2. DETAILNÍ KONFIGURACE
2.1 EntityDefs - Struktura entit
Každá entita má komplexní entityDef konfiguraci zahrnující:
- Field definitions s typy, vazbami a validacemi
- Relationship definitions pro vazby mezi entitami
- Index definitions pro optimalizaci výkonu
- Hook configurations pro automatizace
2.2 ClientDefs - Frontend chování
ProductionOrder:
- Intelligent handlers: Dynamic model loading, smart field visibility
WorkPerformed:
- modalEditView: Specializovaný modal pro rychlé zadávání práce
- Dynamic logic: Kontextově závislá viditelnost polí
2.3 Layouts - Uživatelské rozhraní
ProductionOrder Detail Layout:
- Multi-tab struktura: Overview, Plan, Tree, Settings
- Bottom panels: 6 specializovaných panelů v záložkách
- Action buttons: Order BOM, Perform Work, Create Production Model
List layouts: Optimalizované pro různé kontexty (normal, small, material, item)
2.4 Scopes - Oprávnění
Komplexní ACL systém s:
- Entity-level permissions: Create, read, edit, delete
- Field-level security: Citlivá pole chráněná podle rolí
- Stream permissions: Sledování aktivit podle oprávnění
2.5 RecordDefs - Field processors
Field processors:
- QuantityOrderedLoader: Dynamické načítání objednaných množství
- TotalAvailableQuantityLoader: Výpočty dostupných množství
- TotalProductionCostLoader: Nákladové výpočty
3. HOOKS A AUTOMATIZACE
Modul obsahuje 26 automatizačních hooků implementujících business logiku. Detailní popis viz sekce "3. Hooks a business logika".
4. FRONTEND KOMPONENTY
4.1 Views a Handlers
ProductionOrder Dynamic Handler
- Automatic Production Model Loading: Inteligentní načítání operací a kusovníku
- Smart Product Selection: Auto-vyplnění na základě produktových defaultů
- Real-time Synchronization: Aktualizace při změnách kooperací
Perform Work Handler (TypeScript)
- Context-Aware Quick Entry: Specializovaný modal pro rychlé zadávání práce
- User Context Integration: Předvyplnění z kontextu uživatele
- Intelligent Visibility: Dynamické skrývání podle statusu výroby
4.2 User Interface Features
ProductionOrder Central Interface:
- Multi-tab Detail View: 4 specializované záložky
- Bottom Panels: 6 custom panelů organizovaných do záložek
- Smart Action Buttons: 4 kontextově závislá tlačítka
Layout Configurations:
- Wide Interface: Optimalizované pro komplexní výrobní data
- Context-Aware: Adaptace podle datového kontextu
- Dynamic Logic: Sofistikované podmíněné zobrazování polí
5. API ENDPOINTY
5.1 Production Order Management (11 endpoints)
Hierarchical Structure
GET /ProductionOrder/ChildrenOf/:id: Hierarchická navigaceGET /ProductionOrder/:id/bottomPanel/WorksPerformed: Agregace odvedených prací
Work Tracking & Performance
GET /ProductionOrder/:id/bottomPanel/RelatedOperations: Operace s live nákladyPOST /ProductionOrder/takeFromWarehouse/:id: Dokončení výroby
Cooperation Management
GET /ProductionOrder/:id/bottomPanel/Cooperations: Seznam kooperacíGET /ProductionOrder/:id/bottomPanel/CooperationItems: Detailní položky s filtrováním
Inventory Integration
GET /ProductionOrder/:id/bottomPanel/GoodsReceipts: PříjemkyGET /ProductionOrder/:id/bottomPanel/ReceivedDeliveryNotes: Dodací listy
Production Actions
POST /ProductionOrder/orderBom/:id: Zpracování kusovníkuPOST /ProductionOrder/:id/createProductionModel: Vytvoření modelu ze stromu
5.3 Services Architecture
Core Business Logic Services:
- ProductionOrder Service: Hierarchická navigace a správa operací
- WorkPerformed Service: Komplexní výpočty nákladů
- ProductionModelOperation Service: Individuální výpočty nákladů operací
- Cooperation Service: Správa kooperací a emailů
6. BUSINESS WORKFLOWS A USER SCÉNÁŘE
6.1 Klíčové Business Workflows
A) Production Planning Workflow
Business účel: Efektivní plánování výroby na základě poptávky
- Analýza požadavků → určení produktu a množství
- Výběr ProductionModel → výchozí vs custom výrobní postup
- Vytvoření ProductionOrder → s automatickým BOM a operacemi
- Material coordination → rezervace a nákup materials
- Timeline optimization → Gate plánování a critical path
B) Material Management Workflow
Business účel: Zajištění materiálové připravenosti pro výrobu
- BOM Explosion → automatické generování material requirements
- Availability Check → kontrola skladových zásob
- Procurement Trigger → automatické vytvoření nákupních objednávek
- Delivery Tracking → sledování dodávek přes Cooperation
- Material Readiness → validace před production start
- Consumption Recording → evidence skutečné spotřeby
C) Subcontracting (Cooperation) Workflow
Business účel: Efektivní management externí výroby
- External Work Identification → označení operací pro outsourcing
- Cooperation Creation → vytvoření zakázky pro dodavatele
- PO Generation → automatické purchase order generation
- Progress Tracking → sledování delivery status
- Quality Control → příjem a kontrola externí práce
- Cost Integration → zahrnutí external costs do total costs
D) Cost Control Workflow
Business účel: Transparentní sledování a kontrola nákladů
- Cost Planning → estimate z ProductionModel standards
- Real-time Tracking → WorkPerformed cost accumulation
- Variance Analysis → actual vs planned cost comparison
- Extra Work Management → approval a tracking nadprácí
- Cost Allocation → distribution to Projects a Customers
- Profitability Analysis → margin calculation a reporting
6.2 User Role Scénáře
Production Manager
Scénář: "Potřebuji vytvořit production order pro complex product"
- Vstup: Customer order, product specification, delivery date
- Proces: Product selection → ProductionModel choice → capacity check → order creation
- Rozhodnutí: Standard vs custom process, internal vs outsourced operations
- Výstup: Fully planned ProductionOrder s materials a operations
Scénář: "Chci sledovat progress všech běžících zakázek"
-
Dashboard: Status overview všech ProductionOrders
-
Gate tracking: Milestone progress a delays
-
Cost performance: Budget vs actual spending
Operations Worker
Scénář: "Musím zaznamenat více práce kvůli quality problému"
- Context: Unexpected rework, quality issue, material problem
- Extra Work: Categorization, approval workflow, cost classification
- Recording: WorkPerformed s reason codes a time tracking
- Impact: Automatic cost calculation a project notification
Scénář: "Potřebuji zkontrolovat material availability pro operation"
- Dependency check: Material readiness před operation start
- Alternative sourcing: Pokud materiál není available
- Timeline adjustment: Impact na production schedule
Warehouse Manager
Scénář: "Material není dostupný, jak to ovlivní production"
- Impact analysis: Which ProductionOrders are affected
- Timeline adjustment: Delay propagation přes Gate system
- Communication: Automatic notifications stakeholders
Finance Manager
Scénář: "Proč jsou production costs vyšší než plánované"
- Cost breakdown: Labor, materials, overhead allocation
- Variance analysis: Planned vs actual s root causes
- Extra work analysis: Unexpected costs a approval audit
- Profitability impact: Margin erosion a corrective actions
6.3 Gate System Business Guide
Gate A - Base Design: Design completion milestone
- Business trigger: Engineering sign-off
- Dependencies: Product specification, customer requirements
- Impact: Material ordering can begin
- Timeline: Critical path for project delivery
Gate B - Detail Design: Manufacturing readiness milestone
- Business trigger: Production documentation complete
- Dependencies: Gate A completion, engineering review
- Impact: Production can start, operations defined
- Timeline: Manufacturing lead time starts
Gate E - Production Complete: Manufacturing milestone
- Business trigger: All operations finished
- Dependencies: WorkPerformed completion, quality approval
- Impact: Product ready for delivery
- Timeline: Customer delivery date achieved
Gate F - Project Closure: Final business milestone
- Business trigger: Customer acceptance, financial closure
- Dependencies: Gate E, invoicing, payment
- Impact: Project profitability finalized
- Timeline: Cash flow completion
6.4 Status Transition Business Rules
Draft → Planned: Production Ready Validation
- Business požadavky: BOM kompletní, materials identifikovány, capacity potvrzena
- Automatic actions: Material reservations, supplier notifications
- Business impact: Commitment to delivery timeline
Planned → Ongoing: Production Start Authorization
- Automatic actions: Work scheduling, progress tracking activation
- Business impact: Resource allocation, cost accumulation starts
Ongoing → Completed: Production Finish Validation
- Business požadavky: All operations finished, quality approved, materials consumed
- Automatic actions: Final cost calculation, inventory updates, project cost creation
- Business impact: Product ready for delivery, profitability calculation
Any → On-Hold: Exception Handling
- Business triggers: Material shortage, quality issues, customer changes
- Automatic actions: Resource reallocation, timeline recalculation, stakeholder notification
- Business impact: Delivery delay, cost implications, alternative planning
6.5 Cost Transparency and Control
Cost Build-up Structure:
- Material Costs: ProductionModelItem quantities × current purchase prices
- Overhead Allocation: Configurable percentage based on direct costs
Real-time Cost Tracking:
- Budget vs Actual: Continuous comparison with alerts for overruns
- Variance Analysis: Automatic identification of cost deviations
- Approval Workflow: Extra work requires manager approval before cost inclusion
- Project Integration: Production costs automatically flow to project accounting
Cost Control Mechanisms:
- Rate History: All rate changes tracked with effective dates
- Extra Work Categories: Distinction between normal and exceptional work
- Cost Center Allocation: Proper attribution to organizational units
- Currency Handling: Multi-currency support for international operations
7. TECHNICKÉ IMPLEMENTAČNÍ POZNÁMKY
7.1 Performance Optimizations
- Raw SQL queries pro komplexní data retrieval
- Selective hook skipping pro performance-critical operace
- Efficient data loading a caching strategie
7.2 Error Handling
- Exception handling s graceful degradation
- Extensive logging pro debugging
- User-friendly error messages
- Transaction management pro data consistency
7.3 Integration Dependencies
Viz detailní sekce "7. Integrace s jinými moduly".
7.4 Extensibility Patterns
- Template-based entity extensions
- Hook-based business logic customization
- Service-oriented architecture pro complex calculations
- Metadata-driven UI customization
2. KOMPLETNÍ POPIS ENTIT A POLÍ
2.1 ProductionOrder (Výrobní zakázka)
Účel entity: Hlavní řídící entita celého výrobního procesu. Reprezentuje konkrétní zakázku na výrobu určitého množství produktu podle technologického postupu.
Role v systému: Centrální bod pro plánování, realizaci a kontrolu výroby. Propojuje všechny ostatní entity production modulu.
Základní pole:
name (typ: varchar, max: 100)
- Účel: Název výrobní zakázky pro identifikaci
- Validace: Povinné, pattern: $noBadCharacters, trim: true
- Business logika: Používá se pro vyhledávání a identifikaci v seznamech
referenceIdentifier (typ: varchar, max: 30)
- Účel: Unikátní identifikátor zakázky (např. VP-25-00001)
- Validace: Duplikace ignorována
- Business logika: Ruční nebo automatické přiřazování čísel zakázek
automaticReferenceIdentifier (typ: sequenceNumber)
- Účel: Automatické generování čísel ve formátu VP-{YY}-{number}
- Konfigurace: Reset ročně, 5místné číslo s paddingem
- Business logika: Defaultně zakázáno, aktivuje se v nastavení
status (typ: enum, default: "Draft")
- Účel: Aktuální stav výrobní zakázky
- Možné hodnoty:
- Draft (Návrh)
- Planned (Naplánováno)
- Ongoing (Probíhající)
- Completed (Dokončeno)
- Canceled (Zrušeno)
- Open (Otevřeno)
- On-Hold (Pozastaveno)
- Business logika: Ovlivňuje možnosti úprav a další workflow
Množstevní pole:
quantityPlanned (typ: floatWithUnit, default: 1)
- Účel: Plánované množství k výrobě
- Jednotky: ks, bal, set, kpl
- Validace: min: 0, povinné
- Business logika: Ovlivňuje výpočty materiálových potřeb
quantityProduced (typ: floatWithUnit, default: 0)
- Účel: Skutečně vyrobené množství
- Vlastnosti: clientReadOnly: true, duplicateIgnore: true
- Business logika: Automaticky aktualizováno na základě odvedených prací
quantitySparePart (typ: floatWithUnit, default: 0)
- Účel: Množství náhradních dílů k výrobě
- Jednotky: ks, bal, set, kpl
- Business logika: Přidává se k hlavnímu množství
quantityNotSparePart (typ: floatWithUnit, default: 0)
- Účel: Množství hlavního produktu k výrobě
- Business logika: Doplňuje quantitySparePart
Gate pole (Projektové řízení):
gateA (typ: date)
- Účel: BASE Design - Základní konstrukční návrh
- Tooltip: Začíná po dokončení přípravných operací (Gate 1). Obsahuje mechanickou a elektro konstrukci.
- Business logika: Řídí fáze projektového řízení
gateA1 (typ: date)
- Účel: Automaticky vypočítané datum dokončení BASE Design
- Tooltip: Vypočítává se na základě pracovních dnů a operací
- Business logika: Automatické plánování termínů
gateB (typ: date)
- Účel: Detail Design - Detailní dokumentace
- Tooltip: Začíná po dokončení BASE Design (Gate A). Obsahuje detailní výkresy, kusovníky a přípravu pro výrobu.
gateB1 (typ: date)
- Účel: Automaticky vypočítané datum dokončení Detail Design
- Business logika: Navazuje na gateA
materialReadinessDate (typ: date)
- Účel: Nákup/zajištění komponent (Gate D)
- Tooltip: Ručně zadané datum, kdy musí být všechny komponenty k dispozici
- Business logika: Referenční datum pro automatický výpočet gateD1
gateD1 (typ: date)
- Účel: Automaticky vypočítané datum dostupnosti materiálu
- Business logika: Odpovídá materialReadinessDate
gateE (typ: date)
- Účel: Výroba (interní přejímka)
- Tooltip: Začíná po dostupnosti materiálu (Gate D). Obsahuje fyzickou výrobu, montáž a interní kontrolu.
gateE1 (typ: date)
- Účel: Automaticky vypočítané datum dokončení výroby
gateF (typ: date)
- Účel: Úpravy (přejímka)
- Tooltip: Začíná po dokončení výroby (Gate E). Obsahuje testování, úpravy podle požadavků a finální přejímku.
gateF1 (typ: date)
- Účel: Automaticky vypočítané datum finální přejímky
Kontrolní pole:
g030Ctrl (typ: varchar, max: 100)
- Účel: Stav kontroly materiálové připravenosti
- Tooltip: 'On-hold' = čeká se na materiál, 'Open' = materiál je k dispozici
- Business logika: Manuální "brzda" v procesu
allOperationsCompleted (typ: bool, default: false)
- Účel: Indikátor dokončení všech operací
- Vlastnosti: clientReadOnly: true
- Business logika: Automaticky nastavované na základě stavu operací
Technické pole:
autoProcessStockPutOperation (typ: bool, default: false)
- Účel: Automatické zpracování operace naskladnění
- Tooltip: Pokud je povoleno, dokončení operace 'Naskladnění' (kód 999) automaticky vytvoří příjemku a aktualizuje vyrobené množství
- Business logika: Ovlivňuje workflow dokončování výroby
skipProductReceipt (typ: bool, default: false)
- Účel: Přeskočení příjemky produktu
- Tooltip: Pokud je povoleno, po dokončení výroby se nevytvoří příjemka na hlavní produkt
- Business logika: Pro výrobu pouze dílů bez finálního produktu
surface (typ: floatWithUnit, physicalQuantity: "area")
- Účel: Povrchová plocha produktu
- Jednotky: mm²
- Business logika: Pro výpočty povrchových úprav
qrCode (typ: barcode, codeType: "QRcode")
- Účel: QR kód pro identifikaci zakázky
- Business logika: Pro mobilní aplikace a skenování
Datumy:
startDate (typ: date)
- Účel: Datum zahájení výroby (Gate1)
- Business logika: Plánování zdrojů
endDate (typ: date)
- Účel: Datum ukončení výroby
- Business logika: Termínové plánování
Nákladové pole:
totalProductionCost (typ: currency)
- Účel: Celková výrobní cena
- Vlastnosti: readOnly: true, notStorable: true
- Tooltip: Zahrnuje náklady na materiál, práci a další přímé náklady
- Business logika: Vypočítává se automaticky z nákladů všech operací a materiálů
Vztahová pole (relationships):
product (typ: belongsTo → Product)
- Účel: Vyráběný produkt
- Kardinalita: N:1
- Business logika: Definuje co se vyrábí
- Filtry: Pouze produkty typu "Product"
productionModel (typ: belongsTo → ProductionModel)
- Účel: Použitý technologický postup
- Kardinalita: N:1
- Business logika: Definuje jak se vyrábí
- View: production:views/production-order/fields/production-model
productWarehouse (typ: belongsTo → Warehouse)
- Účel: Sklad pro uložení výrobku
- Validace: Povinné
- Tooltip: Sklad, do kterého bude uložen vyrobený produkt po dokončení výroby
productWarehousePosition (typ: belongsTo → WarehousePosition)
- Účel: Pozice ve skladu pro výrobek
- Tooltip: Pozice ve skladu, na kterou bude uložen vyrobený produkt
assignedUser (typ: belongsTo → User)
- Účel: Odpovědná osoba za zakázku
- Validace: Povinné
- View: views/fields/assigned-user
teams (typ: hasMany → Team)
- Účel: Týmy s přístupem k zakázce
- Relation: EntityTeam
billOfMaterials (typ: hasChildren → ProductionModelItem)
- Účel: Kusovník - seznam materiálů
- Vlastnosti:
- recordListEnabled: true
- recordListLayout: "listSmall"
- dynamicHandler: production:handlers/production-order/bill-of-materials-dynamic-handler
- view: production:views/production-order/fields/bill-of-materials
- Business logika: Kopíruje se z production modelu a upravuje se dle potřeby
operations (typ: hasChildren → ProductionModelOperation)
- Účel: Seznam výrobních operací
- Vlastnosti:
- recordListLayout: "listForProductionOrder"
- recordListOrderByField: "order"
- Business logika: Seřazené operace dle pořadí
worksPerformed (typ: hasChildren → WorkPerformed)
- Účel: Odvedené práce na zakázce
- Vlastnosti:
- recordListLayout: "listForProductionOrder"
- recordListLayoutSuperCompact: "listSmall"
- Business logika: Záznam skutečné práce
cooperations (typ: hasMany → Cooperation)
- Účel: Externí kooperace
- Business logika: Napojení na externí dodavatele
cooperationItems (typ: hasChildren → CooperationItem)
- Účel: Položky kooperací
- Vlastnosti: clientReadOnly: true
goodsReceipts (typ: hasChildren → GoodsReceipt)
- Účel: Příjemky materiálu
- Business logika: Skladové pohyby
goodsIssues (typ: hasChildren → GoodsIssue)
- Účel: Výdejky materiálu
- Business logika: Skladové pohyby
attachments (typ: hasChildren → Attachment)
- Účel: Přílohy k zakázce
- Business logika: Výkresy, dokumentace
bomFiles (typ: hasChildren → Attachment)
- Účel: Mechanické kusovníky
- Relation: attachments (utility: true)
electroBomFiles (typ: hasChildren → Attachment)
- Účel: Elektro kusovníky
- Relation: attachments
parentProductionOrder (typ: belongsTo → ProductionOrder)
- Účel: Rodičovská výrobní zakázka
- Vlastnosti: clientReadOnly: true, nonStorable: true
- Business logika: Pro hierarchii zakázek
gateModel (typ: belongsTo → GateModel)
- Účel: Model gate projektového řízení
- Business logika: Definuje fáze projektu
Vypočítané pole:
tree (typ: base)
- Účel: Strom hierarchie zakázek
- View: production:views/production-order/fields/production-tree
- Business logika: Zobrazení podřízených zakázek
2.2 ProductionModel (Technologický postup)
Účel entity: Šablona definující způsob výroby konkrétního produktu. Obsahuje kusovník (bill of materials) a seznam operací.
Role v systému: Standardizace výrobních procesů, možnost opakovaného použití pro více zakázek.
Základní pole:
name (typ: varchar)
- Účel: Název technologického postupu
- Validace: pattern: $noBadCharacters, trim: true
- Business logika: Identifikace v seznamech
product (typ: belongsTo → Product)
- Účel: Produkt, pro který je postup určen
- Validace: Povinné
- Business logika: Definuje co se bude vyrábět
quantity (typ: floatWithUnit, default: 1)
- Účel: Základní množství pro postup
- Validace: Povinné, min: 0
- Tooltip: Referenční množství pro výpočty
- Business logika: Základ pro škálování při výrobě
status (typ: enum, default: "Draft")
- Možné hodnoty:
- Draft (Návrh)
- Active (Aktivní)
- Business logika: Pouze aktivní postupy lze použít pro výrobu
default (typ: bool)
- Účel: Označení jako výchozí postup pro produkt
- Tooltip: Pokud je povoleno, tento technologický postup bude automaticky použit jako výchozí pro přiřazený produkt
- Business logika: Automatické použití při vytváření zakázek
alwaysAddWarehousePlacement (typ: bool)
- Účel: Automatické přidání operace umístění na sklad
- Tooltip: Vždy přidá umístění na sklad jako poslední operaci
- Business logika: Standardizace końcových operací
alwaysAddQualityControl (typ: bool)
- Účel: Automatické přidání kontroly kvality
- Tooltip: Vždy přidá kontrolu kvality jako předposlední operaci
- Business logika: Zajištění kvality výroby
description (typ: text)
- Účel: Detailní popis postupu
- Business logika: Dokumentace pro výrobní pracovníky
Vztahová pole:
billOfMaterials (typ: hasChildren → ProductionModelItem)
- Účel: Materiálová rozpiska
- Vlastnosti:
- recordListLayout: "listForProductionModel"
- recordListMandatorySelectAttributeList: obsahuje všechny klíčové atributy
- createWhenDuplicating: true
- removeAfterParent: true
- Validace: Povinné
- Business logika: Seznam všech potřebných materiálů a komponent
operations (typ: hasChildren → ProductionModelOperation)
- Účel: Seznam výrobních operací
- Vlastnosti:
- recordListOrderByField: "order"
- createWhenDuplicating: true
- Validace: Povinné
- Business logika: Seřazený postup výrobních kroků
productionOrders (typ: hasMany → ProductionOrder)
- Účel: Výrobní zakázky používající tento postup
- Business logika: Historie použití postupu
defaultOfProduct (typ: hasOne → Product)
- Účel: Produkt, pro který je tento postup výchozí
- Business logika: Reverzní vztah k Product.defaultProductionModel
2.3 ProductionModelItem (Položka kusovníku)
Účel entity: Reprezentuje jednu položku (materiál/komponentu) v kusovníku technologického postupu.
Role v systému: Definice materiálových potřeb, dodavatelů, skladových míst pro jednotlivé komponenty.
Základní pole:
name (typ: varchar)
- Účel: Název položky kusovníku
- Validace: Povinné, clientReadOnly: false
- Select: Automaticky z product.name přes leftJoin
- Business logika: Zobrazovaný název v seznamech
product (typ: belongsTo → Product)
- Účel: Referenční produkt/materiál
- Validace: Povinné, compact: true
- Business logika: Definuje co se spotřebovává
quantity (typ: floatWithUnit, default: 1)
- Účel: Potřebné množství na jednotku výroby
- Jednotky: ks, bal, set, kpl
- Validace: Povinné, min: 0, compact: true
- Business logika: Základ pro výpočet celkové potřeby
order (typ: int)
- Účel: Pořadí v kusovníku
- Vlastnosti: clientReadOnly: true
- Business logika: Řazení položek v seznamech
status (typ: enum, default: "-")
- Možné hodnoty:
- "-" (Nevyřízeno)
- "InProduction" (Ve výrobě)
- "WorkInprogress" (Rozpracováno)
- "Done" (Hotovo)
- "InProcessOfInquiring" (Poptávka)
- "InProcessOfOrdering" (Objednávání)
- "InCooperation" (V kooperaci)
- "WaitingForDelivery" (Čeká na dodání)
- "Delivered" (Dodáno)
- Business logika: Sledování stavu zajištění materiálu
Množstevní pole (vypočítané):
quantityWithdrawnPlanned (typ: floatWithUnit)
- Účel: Plánované množství k výdeji
- Vlastnosti: nonStorable: true, clientReadOnly: true
- Business logika: Vypočítává se na základě výrobní zakázky
quantityWithdrawnActual (typ: floatWithUnit)
- Účel: Skutečně vydané množství
- Vlastnosti: nonStorable: true, clientReadOnly: true
- Business logika: Sledování skutečné spotřeby
quantityRemaining (typ: floatWithUnit)
- Účel: Zbývající množství k zajištění
- Vlastnosti: nonStorable: true, tooltip: true
- Business logika: Automaticky vypočítané množství, které je ještě potřeba zajistit (nakoupit nebo vyrobit)
- Výpočet: max(0, požadované - dostupné - objednané - rezervované)
- Field Loader: QuantityRemainingLoader
quantityRequired (typ: floatWithUnit)
- Účel: Objednané množství z nákupních objednávek
- Vlastnosti: nonStorable: true
- Business logika: Sledování aktivních objednávek (kromě archivovaných)
- Field Loader: QuantityRequiredLoader
quantityReserved (typ: floatWithUnit)
- Účel: Rezervované množství
- Vlastnosti: nonStorable: true
- Business logika: Rezervace na skladě
warehouseQuantity (typ: floatWithUnit)
- Účel: Celkové dostupné množství na skladě
- Vlastnosti: nonStorable: true, clientReadOnly: true
- Business logika: Součet skladových zásob
- Field Loader: WarehouseQuantityLoader
Technická pole:
norm (typ: varchar, length: 50)
- Účel: Technická norma materiálu
- Business logika: Specifikace materiálu
thickness (typ: float)
- Účel: Tloušťka materiálu
- Business logika: Technické parametry
batch (typ: int)
- Účel: Číslo šarže
- Business logika: Sledovatelnost materiálu
itemType (typ: enum, default: "-")
- Účel: Typ položky kusovníku
- Business logika: Kategorizace položek
revision (typ: varchar)
- Účel: Revize výkresu/specifikace
- Business logika: Správa verzí
independent (typ: bool, default: false)
- Účel: Nezávislá položka
- Tooltip: Položka nezávislá na hlavním produktu
- Vlastnosti: directEdit: true
- Business logika: Speciální zpracování
isPurchasedItem (typ: bool, default: false)
- Účel: Nakupovaná položka
- Tooltip: Označení nakupovaných vs. vyráběných položek
- Vlastnosti: directEdit: true
- Business logika: Ovlivňuje workflow objednávání
Datumy:
materialReadinessDate (typ: date)
- Účel: Datum potřeby materiálu
- Business logika: Plánování objednávek
dateOrdered (typ: date, compact: true)
- Účel: Datum objednání
- Business logika: Sledování objednávek
dateConfirmed (typ: date, compact: true)
- Účel: Datum potvrzení dodání
- Business logika: Tracking dodávek
dateDelivered (typ: date, compact: true)
- Účel: Datum skutečného dodání
- Business logika: Dokončení procesu
Dodavatelské pole:
supplier (typ: belongsTo → Account)
-
Účel: Hlavní dodavatel položky
-
Business logika: Preferovaný dodavatel
-
Účel: Seznam možných dodavatelů
-
Vlastnosti: readOnly: true
-
Business logika: Alternativní dodavatelé
hasSupplierForAllOperations (typ: bool, default: false)
- Účel: Indikátor dostupnosti dodavatelů
- Business logika: Kontrola kompletnosti
Skladové pole:
warehouse (typ: belongsTo → Warehouse, compact: true)
- Účel: Sklad pro materiál
- Business logika: Místo uskladnění
warehousePosition (typ: belongsTo → WarehousePosition, compact: true)
- Účel: Pozice ve skladu
- Business logika: Přesná lokalizace
Vztahová pole:
parent (typ: belongsToParent)
- Účel: Rodičovská entita
- Business logika: Hierarchická struktura
productionModelOperation (typ: belongsTo → ProductionModelOperation)
- Účel: Operace, ke které položka patří
- Business logika: Přiřazení k výrobnímu kroku
operations (typ: linkMultiple → Operation)
- Účel: Související operace
- View: production:views/fields/production-operations
- Business logika: Operace zpracovávající materiál
productionOrder (typ: hasOne → ProductionOrder)
- Účel: Výrobní zakázka používající položku
- Business logika: Zpětný odkaz na zakázku
workPerformed (typ: belongsTo → WorkPerformed)
- Účel: Odvedená práce spotřebovávající materiál
- Business logika: Sledování spotřeby
Vyhledávací pole (nonStorable):
operationAssignedUser (typ: belongsTo → User)
- Účel: Odpovědný za operaci
- Vlastnosti: clientReadOnly: true, nonStorable: true
- Business logika: Filtrování dle odpovědnosti
project (typ: belongsTo → Project)
- Účel: Souvisí s projektem
- Vlastnosti: clientReadOnly: true, nonStorable: true
- Business logika: Projektové filtrování
fulfilled (typ: bool)
- Účel: Splněno/zajištěno
- Vlastnosti: clientReadOnly: true, nonStorable: true
- Business logika: Filtr hotových položek
operation (typ: belongsTo → Operation)
- Účel: Typ operace
- Vlastnosti: clientReadOnly: true, nonStorable: true
- Business logika: Filtrování dle operací
isReserved (typ: bool)
- Účel: Materiál je rezervován
- Vlastnosti: clientReadOnly: true
- Business logika: Rezervace na skladě
2.4 ProductionModelOperation (Operace)
Účel entity: Reprezentuje jeden výrobní krok v technologickém postupu s definicí času, zdrojů a nákladů.
Role v systému: Detailní plánování výrobních kroků, alokace zdrojů, kalkulace nákladů.
Základní pole:
name (typ: varchar)
- Účel: Název operace
- Business logika: Identifikace kroku v postupu
operation (typ: belongsTo → Operation)
- Účel: Typ/druh operace z katalogu
- Validace: Povinné, compact: true
- Business logika: Standardizace operací
order (typ: int)
- Účel: Pořadí operace v postupu
- Business logika: Sekvence výrobních kroků
status (typ: enum, default: "Waiting")
- Možné hodnoty:
- "Waiting" (Čekající)
- "In Process" (Probíhá)
- "Done" (Hotovo)
- Business logika: Sledování postupu výroby
Časová pole:
dateStart (typ: datetime, default: "nyní")
- Účel: Plánované zahájení operace
- Vlastnosti: audited: true
- Business logika: Časové plánování
dateEnd (typ: datetime, default: "nyní")
- Účel: Plánované ukončení operace
- Validace: after: "dateStart", afterOrEqual: true
- Business logika: Výpočet trvání
duration (typ: duration)
- Účel: Celková doba operace
- Vlastnosti: start: "dateStart", end: "dateEnd"
- Možné hodnoty: 0, 300, 600, 900, 1800, 2700, 3600, 7200, 43200 sekund
- Select: TIMESTAMPDIFF_SECOND:(dateStart, dateEnd)
- Business logika: Automatický výpočet z dat
Detailní časová pole:
preparationDateStart (typ: datetime, default: "nyní")
- Účel: Začátek přípravy operace
- Vlastnosti: audited: true
- Business logika: Sledování přípravných prací
preparationDateEnd (typ: datetime, default: "nyní")
- Účel: Konec přípravy operace
- Validace: after: "preparationDateStart"
- Business logika: Čas potřebný na přípravu
preparationDuration (typ: duration)
- Účel: Doba přípravy
- Vlastnosti: start: "preparationDateStart", end: "preparationDateEnd"
- Business logika: Výpočet přípravného času
Časové standardy:
preparationTime (typ: float, default: 0)
- Účel: Standardní čas přípravy v hodinách
- Tooltip: Normový čas pro přípravu operace
- Business logika: Plánování a kalkulace
productionTime (typ: float, default: 0)
- Účel: Standardní výrobní čas v hodinách
- Tooltip: Normový čas pro samotnou výrobu
- Business logika: Časové normy
interoperationTime (typ: float, default: 0)
- Účel: Meziopečekní čas v hodinách
- Tooltip: Čas mezi operacemi
- Business logika: Plánování návaznosti
time (typ: float, default: 0)
- Účel: Celkový standardní čas
- Tooltip: Součet všech časových složek
- Business logika: Normování operací
realDuration (typ: float)
- Účel: Skutečně naměřená doba
- Business logika: Porovnání se standardy
Zdroje a pracovníci:
machine (typ: belongsTo → Machine, compact: true)
- Účel: Přiřazený stroj
- Business logika: Alokace strojních kapacit
workPlace (typ: belongsTo → WorkPlace, compact: true)
-
Účel: Pracoviště operace
-
Business logika: Organizace výroby
-
Účel: Výrobní středisko
-
Business logika: Nákladová střediska
assignedUser (typ: belongsTo → User, compact: true)
- Účel: Odpovědný pracovník
- Business logika: Přiřazení odpovědnosti
teams (typ: hasMany → Team)
- Účel: Týmy s přístupem
- Relation: EntityTeam
- Business logika: Oprávnění a přístupy
Ekonomické pole:
manHour (typ: currency, default: 0)
- Účel: Sazba za lidskou práci
- Default měna: CZK
- Business logika: Náklady na práci
machineHour (typ: currency, default: 0)
- Účel: Sazba za strojní hodinu
- Default měna: CZK
- Business logika: Strojní náklady
workPlaceHour (typ: currency, default: 0)
-
Účel: Sazba za pracoviště
-
Default měna: CZK
-
Business logika: Režijní náklady pracoviště
-
Účel: Sazba za středisko
-
Default měna: CZK
-
Business logika: Režijní náklady střediska
totalOperationPrice (typ: currency, default: 0)
- Účel: Celková cena operace
- Vlastnosti: clientReadOnly: true
- Default měna: CZK
- Business logika: Automatický výpočet ze všech nákladových složek
Výrobní charakteristiky:
isPurchased (typ: bool)
- Účel: Nakupovaná operace (externí)
- Vlastnosti: directEdit: true
- Tooltip: Operace prováděná externím dodavatelem
- Business logika: Rozlišení interní vs. externí práce
isProduction (typ: bool)
- Účel: Výrobní operace (interní)
- Vlastnosti: directEdit: true
- Tooltip: Operace prováděná vlastními silami
- Business logika: Doplněk k isPurchased
isActive (typ: bool, default: false)
- Účel: Operace je aktivní
- Vlastnosti: audited: true
- Business logika: Sledování stavu operace
isOrdered (typ: bool, default: false)
- Účel: Operace je objednaná (u externích)
- Vlastnosti: audited: true
- Business logika: Tracking objednávek kooperací
Kooperace:
supplier (typ: belongsTo → Account, compact: true)
- Účel: Externí dodavatel operace
- View: production:views/production-model-operation/fields/operation
- Business logika: Kooperace s externími firmami
cooperationItems (typ: hasMany → CooperationItem)
- Účel: Položky kooperací
- Vlastnosti:
- clientReadOnly: true
- recordListLayout: "listSmall"
- recordListOrderByField: "order"
- Business logika: Detaily externích prací
hasOrderCreated (typ: bool, default: false)
- Účel: Je vytvořena objednávka
- Vlastnosti: audited: true
- Business logika: Sledování objednávacího procesu
dateOrdered (typ: date, compact: true)
- Účel: Datum objednání operace
- Business logika: Termínové plánování externích prací
Výkonnostní pole:
processedQuantity (typ: float, default: 0)
- Účel: Zpracované množství
- Vlastnosti: clientReadOnly: true
- Tooltip: Množství skutečně zpracované operací
- Business logika: Sledování postupu výroby
Vztahová pole:
parent (typ: belongsToParent)
- Možné entity: ProductionModel, ProductionOrder, WorkPerformed, GateModel
- Účel: Rodičovská entita
- Business logika: Kontextové zařazení operace
parentType (typ: varchar, max: 100)
- Účel: Typ rodičovské entity
- Business logika: Rozlišení kontextu použití
2.5 WorkPerformed (Odvedená práce)
Účel entity: Záznam skutečně provedené práce na výrobní zakázce s časovým a množstevním vyúčtováním.
Role v systému: Sledování skutečného postupu výroby, evidence času a spotřebovaných materiálů.
Základní pole:
name (typ: varchar)
- Účel: Název odvedené práce
- Validace: pattern: $noBadCharacters, trim: true
- Business logika: Identifikace pracovního záznamu
parent (typ: linkParent)
- Možné entity: ProductionOrder
- Validace: Povinné
- Business logika: Vazba na výrobní zakázku
assignedUser (typ: belongsTo → User)
- Účel: Pracovník, který práci provedl
- Validace: Povinné
- View: views/fields/assigned-user
- Business logika: Identifikace odpovědné osoby
processedQuantity (typ: int, default: 0)
- Účel: Zpracované množství
- Validace: min: 0
- Business logika: Měření výkonu práce
description (typ: text)
- Účel: Detailní popis provedené práce
- Business logika: Dokumentace aktivity
Systémová pole:
transactionCreation (typ: enum, default: "auto")
- Účel: Způsob vytváření skladových transakcí
- Možné hodnoty:
- "auto" (Automaticky)
- "goodsIssue" (Výdejka)
- "goodsReceipt" (Příjemka)
- "none" (Žádná)
- Tooltip: Ovládání automatického vytváření skladových pohybů
- Business logika: Integrace se skladovým hospodářstvím
completeOperations (typ: bool)
- Účel: Dokončit operace při uložení
- Tooltip: Označí související operace jako dokončené
- Business logika: Automatická aktualizace statusů
Ekonomické pole:
totalOperationAmount (typ: currency)
- Účel: Celková částka za operace
- Vlastnosti: readOnly: true
- Business logika: Součet nákladů všech operací
Vztahová pole:
operations (typ: hasChildren → ProductionModelOperation)
- Účel: Seznam provedených operací
- Vlastnosti:
- recordListLayout: "listSmallForWorkPerformed"
- recordListOrderByField: "order"
- recordListDynamicHandler: production:handlers/production-model-operation/record-list-dynamic-handler
- removeAfterParent: true
- Business logika: Detaily provedených výrobních kroků
materials (typ: hasMany → ProductionModelItem)
- Účel: Spotřebované materiály
- Vlastnosti:
- recordListLayout: "listMaterialForWorkPerformed"
- removeAfterParent: true
- Business logika: Evidence spotřeby materiálu
teams (typ: hasMany → Team)
- Účel: Týmy s přístupem
- Relation: EntityTeam
- Business logika: Oprávnění k záznamu
Speciální práce:
isExtraWork (typ: bool, default: false)
- Účel: Označení mimořádné práce
- Vlastnosti: readOnlyAfterCreate: true
- Business logika: Rozlišení standardní vs. mimořádné práce
extraWorkDescription (typ: text)
- Účel: Popis mimořádné práce
- Vlastnosti: readOnlyAfterCreate: true
- Business logika: Dokumentace důvodu mimořádné práce
extraWorkCode (typ: varchar)
- Účel: Kód typu mimořádné práce
- View: production:views/work-performed/fields/extra-work-code
- Vlastnosti: readOnlyAfterCreate: true
- Business logika: Kategorizace mimořádných prací
extraWorkOrigin (typ: varchar)
- Účel: Původ mimořádné práce
- View: production:views/work-performed/fields/extra-work-origin
- Vlastnosti: readOnlyAfterCreate: true
- Business logika: Sledování příčin mimořádných prací
extraWorkNature (typ: varchar)
- Účel: Povaha mimořádné práce
- View: production:views/work-performed/fields/extra-work-nature
- Vlastnosti: readOnlyAfterCreate: true
- Business logika: Klasifikace typu mimořádné práce
Účel entity: Organizační jednotka výroby reprezentující skupinu pracovišť se společným vedením a nákladovým účtováním.
Role v systému: Nákladová střediska, alokace lidských zdrojů, měření výkonnosti výroby.
Základní pole:
name (typ: varchar)
- Účel: Název výrobního střediska
- Validace: pattern: $noBadCharacters, trim: true
- Business logika: Identifikace střediska v organizační struktuře
internalCode (typ: varchar, max: 100)
- Účel: Interní kód střediska
- Business logika: Kódování pro účetní systémy
code (typ: varchar, max: 100)
- Účel: Externí kód střediska
- Business logika: Identifikace pro externí systémy
description (typ: text)
- Účel: Detailní popis střediska
- Business logika: Dokumentace účelu a činnosti
Ekonomické pole:
hourlyRate (typ: currency)
- Účel: Hodinová sazba střediska
- Business logika: Základní nákladová sazba
revenue (typ: currency)
- Účel: Výnosy střediska
- Vlastnosti: clientReadOnly: true
- Business logika: Automatický výpočet z realizovaných prací
revenuePercentage (typ: float, min: 0, max: 100)
- Účel: Procentuální podíl na výnosech
- Vlastnosti: clientReadOnly: true
- Business logika: Měření příspěvku střediska
expenses (typ: currency)
- Účel: Náklady střediska
- Vlastnosti: clientReadOnly: true
- Business logika: Automatický výpočet nákladů
expensesPercentage (typ: float, min: 0, max: 100)
- Účel: Procentuální podíl na nákladech
- Vlastnosti: clientReadOnly: true
- Business logika: Analýza nákladovosti
Výkonnostní pole:
workedHours (typ: float)
- Účel: Odpracované hodiny
- Jednotka: h (hodiny)
- Vlastnosti: useUnits: true, physicalQuantity: "time"
- Business logika: Sledování využití kapacit
Vztahová pole:
assignedUser (typ: belongsTo → User)
- Účel: Vedoucí střediska
- Validace: Povinné
- View: views/fields/assigned-user
- Business logika: Odpovědnost za středisko
teams (typ: hasMany → Team)
- Účel: Týmy přiřazené ke středisku
- Relation: EntityTeam
- Business logika: Organizační struktura
humanResources (typ: hasMany → HumanResource)
- Účel: Lidské zdroje střediska
- Business logika: Alokace pracovníků
machines (typ: hasMany → Machine)
- Účel: Stroje přiřazené ke středisku
- Business logika: Strojní kapacity střediska
workPlaces (typ: hasMany → WorkPlace)
- Účel: Pracoviště ve středisku
- Business logika: Organizační struktura
warehouses (typ: hasMany → Warehouse)
- Účel: Sklady spravované střediskem
- Business logika: Správa skladů
operations (typ: hasMany → Operation)
-
Účel: Operace prováděné střediskem
-
Business logika: Specializace střediska
cooperations (typ: hasMany → Cooperation)
- Účel: Kooperace řízené střediskem
- Business logika: Externí spolupráce
Historie a alokace:
-
Účel: Historie změn sazeb
-
Vlastnosti:
- clientReadOnly: true
- recordListCreateDisabled: true
- removeAfterParent: true
-
Business logika: Sledování vývoje nákladů
-
Účel: Alokace kapacit střediska
-
Business logika: Plánování vytížení
productionModel (typ: belongsTo → ProductionModel)
- Účel: Výchozí technologický postup
- Business logika: Standardizace postupů střediska
2.7 WorkPlace (Pracoviště)
Účel entity: Konkrétní fyzické místo výroby v rámci výrobního střediska s přiřazenými pracovníky a stroji.
Role v systému: Detailní organizace výroby, přiřazení zdrojů, sledování využití pracovišť.
Základní pole:
name (typ: varchar)
- Účel: Název pracoviště
- Validace: Povinné, pattern: $noBadCharacters, trim: true
- Business logika: Identifikace konkrétního místa
internalCode (typ: varchar, max: 100)
- Účel: Interní kód pracoviště
- Business logika: Kódování pro vnitřní potřeby
code (typ: varchar, max: 100)
- Účel: Externí kód pracoviště
- Business logika: Identifikace pro externí systémy
description (typ: text)
- Účel: Popis pracoviště a jeho vybavení
- Business logika: Dokumentace kapacit
Ekonomické pole:
hourlyRate (typ: currency)
- Účel: Hodinová sazba pracoviště
- Business logika: Nákladová kalkulace
revenue (typ: currency)
- Účel: Výnosy pracoviště
- Vlastnosti: clientReadOnly: true
- Business logika: Měření výkonnosti
revenuePercentage (typ: float, min: 0, max: 100)
- Účel: Procentuální podíl na výnosech
- Vlastnosti: clientReadOnly: true
- Business logika: Analýza příspěvku
expenses (typ: currency)
- Účel: Náklady pracoviště
- Vlastnosti: clientReadOnly: true
- Business logika: Sledování nákladovosti
expensesPercentage (typ: float, min: 0, max: 100)
- Účel: Procentuální podíl na nákladech
- Vlastnosti: clientReadOnly: true
- Business logika: Nákladová analýza
Výkonnostní pole:
workedHours (typ: float)
- Účel: Odpracované hodiny na pracovišti
- Jednotka: h (hodiny)
- Vlastnosti: useUnits: true, physicalQuantity: "time"
- Business logika: Sledování využití
isManufacturing (typ: bool)
- Účel: Výrobní pracoviště
- Validace: notNull: true
- Business logika: Rozlišení typu pracoviště
Vztahová pole:
- Účel: Nadřazené výrobní středisko
- Business logika: Organizační struktura
assignedUsers (typ: hasMany → User)
- Účel: Pracovníci přiřazení k pracovišti
- View: views/fields/assigned-users
- Vlastnosti: maxCount: 10
- Business logika: Alokace lidských zdrojů
teams (typ: hasMany → Team)
- Účel: Týmy s přístupem k pracovišti
- Relation: EntityTeam
- Business logika: Oprávnění
machines (typ: hasMany → Machine)
- Účel: Stroje na pracovišti
- Business logika: Strojní vybavení
operations (typ: hasMany → Operation)
- Účel: Operace prováděné na pracovišti
- Relation: operationWorkPlace
- Business logika: Specializace pracoviště
Historie sazeb:
workPlaceRateHistoryRecords (typ: hasMany → WorkPlaceRateHistoryRecord)
- Účel: Historie změn hodinových sazeb
- Vlastnosti:
- clientReadOnly: true
- recordListCreateDisabled: true
- removeAfterParent: true
- Business logika: Sledování vývoje nákladů
relatedOperations (typ: hasMany → ProductionModelOperation)
- Účel: Související operace výrobní zakázky
- Business logika: Přehled aktuálních prací
2.8 Machine (Stroj)
Účel entity: Výrobní zařízení s technickými parametry, dokumentací a přiřazením k operacím.
Role v systému: Správa strojního parku, plánování využití, sledování údržby, kalkulace strojních nákladů.
Základní pole:
name (typ: varchar)
- Účel: Název/označení stroje
- Validace: Povinné, trim: true
- Business logika: Identifikace stroje
registrationnumber (typ: varchar, max: 100)
- Účel: Registrační číslo stroje
- Business logika: Úřední evidence
model (typ: varchar)
- Účel: Model stroje
- Vlastnosti: trim: true
- Business logika: Technická specifikace
serialNumber (typ: varchar)
- Účel: Sériové číslo
- Vlastnosti: trim: true
- Business logika: Unikátní identifikace
manufacturer (typ: varchar)
- Účel: Výrobce stroje
- Business logika: Informace o původu
manufacturingDate (typ: varchar)
- Účel: Datum výroby
- Business logika: Stáří stroje
Technické parametry:
machineType (typ: enum, default: "CNC")
- Možné hodnoty:
- "CNC" (CNC stroj)
- "Laser" (Laser)
- "3DPrinter" (3D tiskárna)
- "Drill" (Vrtačka)
- "Grinder" (Bruska)
- "Saw" (Pila)
- "Lathe" (Soustruh)
- "wirecutter" (Řezač drátu)
- Business logika: Kategorizace strojů
powerConsumption (typ: floatWithUnit)
- Účel: Příkon stroje
- Jednotky: kW, HP
- Default: null kW
- Business logika: Energetické náklady
weight (typ: floatWithUnit)
- Účel: Hmotnost stroje
- Jednotky: kg, t
- Default: null kg
- Business logika: Technické údaje
location (typ: varchar)
- Účel: Umístění stroje
- Vlastnosti: trim: true
- Business logika: Lokalizace ve výrobě
Údržba:
lastInspectionDate (typ: date)
- Účel: Datum poslední kontroly
- Business logika: Plánování údržby
revisionValidity (typ: date)
- Účel: Platnost revize
- Business logika: Právní požadavky
Ekonomické pole:
machineRate (typ: currency)
- Účel: Hodinová sazba stroje
- Business logika: Kalkulace strojních nákladů
Identifikace:
qrCode (typ: barcode, codeType: "QRcode")
- Účel: QR kód pro identifikaci
- Business logika: Mobilní aplikace
Vztahová pole:
- Účel: Středisko, kam stroj patří
- Business logika: Organizační zařazení
workPlace (typ: belongsTo → WorkPlace)
- Účel: Konkrétní pracoviště stroje
- Business logika: Fyzické umístění
operation (typ: belongsTo → Operation)
- Účel: Hlavní operace prováděná strojem
- Validace: Povinné
- Business logika: Specializace stroje
assignedUsers (typ: hasMany → User)
- Účel: Oprávnění obsluha stroje
- View: views/fields/assigned-users
- Vlastnosti: maxCount: 10
- Business logika: Bezpečnost provozu
worksPerformed (typ: hasMany → WorkPerformed)
- Účel: Práce provedené na stroji
- Business logika: Historie využití
Dokumentace:
documentation (typ: attachmentMultiple)
- Účel: Technická dokumentace stroje
- Vlastnosti:
- previewSize: "medium"
- copyAttachmentsButton: true
- zipAttachmentsButton: true
- Business logika: Manuály, návody, certifikáty
description (typ: varchar)
- Účel: Popis stroje a jeho funkcí
- Business logika: Dodatečné informace
2.9 Operation (Typ operace)
Účel entity: Katalog možných výrobních operací s definicí dodavatelů, strojů a charakteristik.
Role v systému: Standardizace výrobních procesů, správa katalogu operací, definice dodavatelských vazeb.
Základní pole:
name (typ: varchar)
- Účel: Název typu operace
- Validace: pattern: $noBadCharacters, trim: true
- Business logika: Identifikace v katalogu
code (typ: varchar, max: 20)
- Účel: Kód operace pro systémy
- Business logika: Standardizace kódování
symbol (typ: varchar, max: 10)
- Účel: Zkratka operace
- Business logika: Kompaktní označení
order (typ: int)
- Účel: Pořadí v seznamu operací
- Business logika: Řazení katalogu
description (typ: text)
- Účel: Detailní popis operace
- Business logika: Dokumentace postupu
Charakteristiky operace:
type (typ: enum, default: "-")
- Možné hodnoty:
- "-" (Neurčeno)
- "Surface Treatment" (Povrchová úprava)
- "Heat Treatment" (Tepelné zpracování)
- Business logika: Kategorizace operací
dependencyType (typ: enum, default: "FF")
- Možné hodnoty:
- "FS" (Finish to Start - dokončení→začátek)
- "FF" (Finish to Finish - dokončení→dokončení)
- "SS" (Start to Start - začátek→začátek)
- "SF" (Start to Finish - začátek→dokončení)
- Business logika: Projektové řízení závislostí
time (typ: float)
- Účel: Standardní čas operace
- Tooltip: Normový čas v hodinách
- Business logika: Časové plánování
Typ realizace:
isPurchased (typ: bool)
- Účel: Nakupovaná operace (externí)
- Vlastnosti: directEdit: true
- Tooltip: Operace prováděná externími dodavateli
- Business logika: Rozlišení interní vs. externí
isProduction (typ: bool)
- Účel: Výrobní operace (interní)
- Vlastnosti: directEdit: true
- Tooltip: Operace prováděná vlastními silami
- Business logika: Doplněk k isPurchased
Vztahová pole:
assignedUser (typ: belongsTo → User)
- Účel: Odpovědný za operaci
- Validace: Povinné
- View: views/fields/assigned-user
- Business logika: Vlastnictví operace
teams (typ: hasMany → Team)
- Účel: Týmy s přístupem
- Relation: EntityTeam
- Business logika: Oprávnění
machines (typ: hasMany → Machine)
-
Účel: Stroje schopné operaci
-
Business logika: Technické požadavky
-
Účel: Externí dodavatelé operace
-
Filtry: Pouze typu "Supplier"
-
Business logika: Seznam kooperačních partnerů
primarySupplier (typ: belongsTo → Account)
-
Účel: Preferovaný dodavatel
-
Business logika: Výchozí volba pro externí práce
-
Účel: Střediska schopná operaci
-
Business logika: Organizační kapacity
workPlaces (typ: hasMany → WorkPlace)
- Účel: Pracoviště pro operaci
- Relation: operationWorkPlace
- Business logika: Fyzické možnosti
productionModelOperations (typ: hasMany → ProductionModelOperation)
- Účel: Použití v technologických postupech
- Business logika: Historia aplikace
2.10 Cooperation (Kooperace)
Účel entity: Správa externí spolupráce s dodavateli na outsourcovaných výrobních operacích.
Role v systému: Objednávání externích prací, sledování dodávek, fakturace kooperací.
Základní pole:
name (typ: varchar, max: 100)
- Účel: Název kooperace
- Validace: Povinné, pattern: $noBadCharacters, trim: true
- Business logika: Identifikace v seznamach
referenceIdentifier (typ: varchar, max: 30)
- Účel: Identifikátor kooperace
- Vlastnosti: duplicateIgnore: true
- Business logika: Unikátní číslo kooperace
automaticReferenceIdentifier (typ: sequenceNumber)
- Účel: Automatické číslování
- Formát: KO-{YY}-{number}
- Konfigurace: Reset ročně, 5místné číslo
- Vlastnosti: disabled: true (defaultně vypnuto)
description (typ: text)
- Účel: Popis kooperace
- Business logika: Detaily požadavků
Statusy a data:
status (typ: enum, default: "Draft")
- Možné hodnoty:
- "Draft" (Návrh)
- "Ready" (Připraveno)
- "Waiting" (Čekající)
- "Ordered" (Objednáno)
- "Delivered" (Dodáno)
- "Rejected" (Odmítnuto)
- "Canceled" (Zrušeno)
- Business logika: Životní cyklus kooperace
dateOrdered (typ: datetime, default: "nyní")
- Účel: Datum objednání
- Business logika: Záznam objednávky
dateDelivered (typ: datetime)
- Účel: Datum dodání
- Business logika: Dokončení kooperace
Dodavatel a logistika:
supplier (typ: belongsTo → Account)
- Účel: Externí dodavatel
- Business logika: Kooperační partner
deliveryMethod (typ: enum, default: "-")
- Možné hodnoty:
- "-" (Neurčeno)
- "Pickup" (Vyzvednutí)
- "Delivery" (Dodání)
- Business logika: Způsob předání
Ekonomické pole:
taxClass (typ: belongsTo → TaxClass)
- Účel: Daňová třída
- View: product-base:views/fields/tax-class
- Business logika: Daňové kalkulace
taxRate (typ: percentage)
- Účel: Daňová sazba
- Business logika: Výpočet DPH
amount (typ: currency)
- Účel: Základní částka bez DPH
- Vlastnosti: clientReadOnly: true
- Default měna: CZK
- Business logika: Suma položek
taxAmount (typ: currency)
- Účel: Částka DPH
- Vlastnosti: clientReadOnly: true
- Default měna: CZK
- Business logika: Vypočítaná daň
grandTotalAmount (typ: currency)
- Účel: Celková částka s DPH
- Vlastnosti: clientReadOnly: true
- Default měna: CZK
- Business logika: Finální cena
Dodatečné náklady:
shippingCost (typ: currency)
- Účel: Náklady na dopravu
- View: product-base:views/fields/currency-amount-only
- Business logika: Dopravné
shippingCostTaxRate (typ: percentage)
- Účel: DPH na dopravu
- Business logika: Daň z dopravného
wrappingCost (typ: currency)
- Účel: Náklady na balení
- View: product-base:views/fields/currency-amount-only
- Business logika: Balné
wrappingCostTaxRate (typ: percentage)
- Účel: DPH na balení
- Business logika: Daň z balného
weight (typ: float, min: 0)
- Účel: Celková hmotnost
- Vlastnosti: clientReadOnly: true
- Business logika: Suma hmotností položek
Platební podmínky:
paymentMethod (typ: enum, default: "-")
- Možné hodnoty:
- "-" (Neurčeno)
- "BankTransfer" (Bankovní převod)
- "Card" (Karta)
- "Cash" (Hotově)
- "CashOnDelivery" (Dobírka)
- Tooltip: Způsob úhrady
- Business logika: Finanční podmínky
sicCode (typ: varchar, max: 20)
- Účel: Kód odvětví
- Business logika: Klasifikace činnosti
Adresy:
billingAddress (typ: address)
- Účel: Fakturační adresa
- Relations: supplier, billingContact
- Vlastnosti: autoFill: true
- Business logika: Automatické vyplnění z dodavatele
billingContact (typ: belongsTo → Contact)
- Účel: Fakturační kontakt
- View: accounting:views/invoice/fields/contact
- Business logika: Osoba pro faktury
Texty:
textBeforeItems (typ: wysiwyg)
- Účel: Text před položkami
- Business logika: Úvodní informace
textAfterItems (typ: wysiwyg)
- Účel: Text za položkami
- Business logika: Závěrečné podmínky
Vztahová pole:
productionOrders (typ: hasMany → ProductionOrder)
-
Účel: Související výrobní zakázky
-
Validace: Povinné
-
Business logika: Kontext kooperace
-
Účel: Středisko řídící kooperaci
-
Business logika: Organizační odpovědnost
items (typ: hasMany → CooperationItem)
- Účel: Položky kooperace
- View: production:views/fields/items
- Vlastnosti:
- recordListLayout: "listItem"
- recordListOrderByField: "order"
- createWhenDuplicating: true
- removeAfterParent: true
- Business logika: Detailní specifikace požadavků
additionalCosts (typ: hasMany → AdditionalCost)
- Účel: Dodatečné náklady
- Vlastnosti:
- recordListLayout: "listSmall"
- recordListMandatorySelectAttributeList: ["amount", "taxRate"]
- removeAfterParent: true
- Business logika: Přirážky a poplatky
assignedUsers (typ: hasMany → User)
- Účel: Odpovědní pracovníci
- View: views/fields/assigned-users
- Vlastnosti: maxCount: 10
- Business logika: Řízení kooperace
teams (typ: hasMany → Team)
- Účel: Týmy s přístupem
- Relation: EntityTeam
- Business logika: Oprávnění
emails (typ: hasChildren → Email)
- Účel: E-mailová komunikace
- Business logika: Historie komunikace
receivedDeliveryNotes (typ: hasChildren → ReceivedDeliveryNote)
- Účel: Přijaté dodací listy
- Business logika: Dokumentace dodávek
deliveryNoteItems (typ: hasChildren → DeliveryNoteItem)
- Účel: Položky dodacích listů
- Business logika: Detaily dodávek
2.11 CooperationItem (Položka kooperace)
Účel entity: Konkrétní položka v externí objednávce s cenami, množstvími a termíny dodání.
Role v systému: Detailní specifikace externích prací, sledování dodávek, fakturace po položkách.
Základní pole:
name (typ: varchar)
- Účel: Název položky
- Validace: Povinné, pattern: $noBadCharacters
- View: production:views/cooperation-item/fields/name
- Vlastnosti: compact: true
- Business logika: Identifikace položky
tempIdentifier (typ: varchar)
- Účel: Dočasný identifikátor
- Vlastnosti: clientReadOnly: true
- Business logika: Technické ID pro frontend
type (typ: enum, default: "normal")
- Možné hodnoty:
- "normal" (Normální)
- "discount" (Sleva)
- "wrapping" (Balení)
- "shipping" (Doprava)
- Validace: Povinné
- Business logika: Typ položky pro kalkulaci
order (typ: int)
- Účel: Pořadí položky
- Business logika: Řazení v seznamu
Vztahy:
cooperation (typ: belongsTo → Cooperation, compact: true)
- Účel: Nadřazená kooperace
- Business logika: Kontext položky
itemParent (typ: belongsToParent, compact: true)
- Možné entity: ProductionOrder
- Validace: readOnlyAfterCreate: true
- Business logika: Původní zakázka
operation (typ: belongsTo → ProductionModelOperation)
- Účel: Související operace
- Validace: Povinné
- Business logika: Kontext výrobního kroku
product (typ: belongsTo → Product)
- Účel: Produkt/služba
- Business logika: Co se objednává
supplier (typ: belongsTo → Account)
- Účel: Dodavatel položky
- Vlastnosti: readOnly: true, notSortable: true
- Business logika: Automaticky z cooperation
Množstevní pole:
quantity (typ: floatWithUnit, default: 1)
- Účel: Objednané množství
- Jednotky: ks, bal, set, kpl
- Validace: notNull: true, compact: true
- Business logika: Základ pro kalkulace
quantityNeeded (typ: floatWithUnit, default: 0)
- Účel: Potřebné množství
- Jednotky: ks, bal, set, kpl
- Validace: notNull: true, compact: true
- Business logika: Požadavek z výroby
quantityConfirmed (typ: floatWithUnit, default: 0)
- Účel: Potvrzené množství dodavatelem
- Jednotky: ks, bal, set, kpl
- Vlastnosti: compact: true
- Business logika: Závazek dodavatele
quantityDelivered (typ: floatWithUnit, default: 0)
- Účel: Skutečně dodané množství
- Jednotky: ks, bal, set, kpl
- Vlastnosti: compact: true
- Business logika: Plnění objednávky
toBeDelivered (typ: floatWithUnit)
- Účel: Zbývá dodat
- Vlastnosti: notStorable: true, clientReadOnly: true, compact: true
- Tooltip: Vypočítává se z potvrzeného a dodaného množství
- Select: SUB:(quantityConfirmed, MUL:(quantityDelivered, IF:(...)))
- Business logika: Automatický výpočet nedodělku
Statusy:
status (typ: enum, default: "-")
- Možné hodnoty:
- "-" (Nevyřízeno)
- "WaitingForDelivery" (Čeká na dodání)
- "Delivered" (Dodáno)
- "ReadyToClose" (Připraveno k uzavření)
- "Closed" (Uzavřeno)
- Business logika: Životní cyklus položky
cooperationStatus (typ: foreign)
- Účel: Status nadřazené kooperace
- Link: cooperation, field: status
- View: views/fields/foreign-enum
- Business logika: Přehled stavu kooperace
Ekonomické pole:
unitPrice (typ: currency, default: 0)
- Účel: Jednotková cena
- Validace: Povinné, compact: true
- Business logika: Základ kalkulace
discount (typ: percentage, default: 0)
- Účel: Sleva v procentech
- Business logika: Cenová úprava
amount (typ: currency)
- Účel: Částka bez DPH
- Vlastnosti: clientReadOnly: true, compact: true
- Business logika: Vypočítává se z množství a ceny
taxRate (typ: percentage, min: 0, max: 100, default: 0)
- Účel: Daňová sazba
- Business logika: Výpočet DPH
taxAmount (typ: currency)
- Účel: Částka DPH
- Vlastnosti: clientReadOnly: true, compact: true
- Business logika: Vypočítaná daň
amountWithTax (typ: currency)
- Účel: Částka s DPH
- Vlastnosti: clientReadOnly: true, compact: true
- Business logika: Celková cena položky
withTax (typ: bool)
- Účel: Cena zahrnuje DPH
- Validace: notNull: true
- Business logika: Způsob zadávání cen
Hmotnostní pole:
unitWeight (typ: float, min: 0)
- Účel: Hmotnost za jednotku
- Business logika: Logistické údaje
weight (typ: floatWithUnit, min: 0)
- Účel: Celková hmotnost
- Jednotky: kg, t
- Default: 1 kg
- Vlastnosti: clientReadOnly: true
- Business logika: Vypočítává se z množství
Termíny:
materialReadinessDate (typ: date)
- Účel: Datum potřeby materiálu
- Business logika: Plánování dodávek
confirmedDeliveryDate (typ: date, compact: true)
- Účel: Potvrzený termín dodání
- Business logika: Závazek dodavatele
deliveryDate (typ: date, compact: true)
- Účel: Skutečný termín dodání
- Business logika: Realizace
Platební podmínky:
paymentMethod (typ: enum, default: "BankTransfer")
- Možné hodnoty:
- "-" (Neurčeno)
- "BankTransfer" (Bankovní převod)
- "Card" (Karta)
- "Cash" (Hotově)
- "CashOnDelivery" (Dobírka)
- Business logika: Způsob úhrady
Administrativní pole:
description (typ: text)
- Účel: Podrobný popis položky
- Business logika: Specifikace požadavků
assignedUser (typ: belongsTo → User)
- Účel: Odpovědný za položku
- View: views/fields/assigned-user
- Business logika: Sledování odpovědnosti
teams (typ: hasMany → Team)
- Účel: Týmy s přístupem
- Relation: EntityTeam
- Business logika: Oprávnění
deliveryNoteItems (typ: hasChildren → DeliveryNoteItem)
- Účel: Položky dodacích listů
- Business logika: Dokumentace dodávek
3. HOOKS - DETAILNÍ ANALÝZA OBCHODNÍCH PRAVIDEL
Production modul obsahuje rozsáhlý systém hooků implementujících komplex business logiky:
3.1 ProductionOrder Hooks
ProcessProductionOrder.php
- Kdy se spouští: AfterSave (pouze pro existující entity)
- Účel: Aktualizace kontextu výrobní zakázky
- Business rules: Volá ProductionContextUpdater pro synchronizaci stavu
- Parametry: $order = 10
FillFromModel.php
- Kdy se spouští: BeforeSave/AfterSave
- Účel: Naplnění zakázky z technologického postupu
- Business rules: Kopírování kusovníku a operací z ProductionModel
CreateChildOrders.php
- Kdy se spouští: AfterSave
- Účel: Vytváření podřízených zakázek pro materiály
- Business rules: Pro materiály s vlastním výchozím postupem
SetG030Ctrl.php
- Kdy se spouští: BeforeSave
- Účel: Nastavení kontrolního stavu materiálové připravenosti
- Business rules: Automatické řízení "brzd" ve výrobě
CalculateGates.php
- Kdy se spouští: BeforeSave/AfterSave
- Účel: Výpočet projektových gate podle operací
- Business rules: Automatické plánování termínů fází
SetBomFields.php
- Kdy se spouští: BeforeSave
- Účel: Nastavení polí kusovníku
- Business rules: Výpočet množstevních údajů
PreventCompletedOrderModification.php
- Kdy se spouští: BeforeSave
- Účel: Ochrana dokončených zakázek před úpravami
- Business rules: Validace na základě statusu
3.2 ProductionModel Hooks
SetAsDefault.php
- Kdy se spouští: AfterSave
- Účel: Nastavení jako výchozí postup pro produkt
- Business rules: Pouze jeden výchozí postup na produkt
UpdateOperationReferences.php
- Kdy se spouští: AfterSave
- Účel: Aktualizace odkazů v operacích
- Business rules: Synchronizace změn postupu
3.3 ProductionModelOperation Hooks
ProcessProductionModelOperation.php
- Kdy se spouští: AfterSave
- Účel: Zpracování změn operace
- Business rules: Aktualizace souvisejících entit
SetFields.php
- Kdy se spouští: BeforeSave
- Účel: Automatické vyplnění polí operace
- Business rules: Odvození dat z katalogových operací
CalculateTotalPrice.php
- Kdy se spouští: BeforeSave/AfterSave
- Účel: Výpočet celkové ceny operace
- Business rules: Součet všech nákladových složek
UpdateDateOrdered.php
- Kdy se spouští: AfterSave
- Účel: Aktualizace data objednání
- Business rules: Sledování termínů kooperací
UpdateActivity.php
- Kdy se spouští: AfterSave
- Účel: Aktualizace aktivity operace
- Business rules: Synchronizace stavů
UpdateParentContext.php
- Kdy se spouští: AfterSave
- Účel: Aktualizace kontextu rodičovské entity
- Business rules: Propagace změn nahoru
3.4 ProductionModelItem Hooks
SetDefaultFields.php
- Kdy se spouští: BeforeSave
- Účel: Nastavení výchozích hodnot položky
- Business rules: Odvození z produktu
CalculateItemOperations.php
- Kdy se spouští: AfterSave
- Účel: Výpočet operací pro položku
- Business rules: Přiřazení operací dle postupu
3.5 WorkPerformed Hooks
ProcessWorkPerformed.php
- Kdy se spouští: AfterSave
- Účel: Zpracování odvedené práce
- Business rules:
- Vytvoření skladových transakcí
- Aktualizace množství na zakázce
- Dokončení operací
CreateProjectCost.php
- Kdy se spouští: AfterSave
- Účel: Vytvoření projektových nákladů
- Business rules: Kalkulace nákladů pro projekt
UpdateRateHistory.php
- Kdy se spouští: AfterSave při změně sazby
- Účel: Záznam historie změn sazeb
- Business rules: Auditní trail nákladových sazeb
3.7 Cooperation Hooks
SetStatusDates.php
- Kdy se spouští: BeforeSave
- Účel: Nastavení dat dle statusu
- Business rules: Automatické datum při změně statusu
SetItemsStatus.php
- Kdy se spouští: AfterSave
- Účel: Synchronizace statusů položek
- Business rules: Propagace stavu na položky
PreventDeliveredStatusChange.php
- Kdy se spouští: BeforeSave
- Účel: Ochrana dodaných kooperací
- Business rules: Validace změn statusu
3.8 CooperationItem Hooks
ProcessCooperationItem.php
- Kdy se spouští: AfterSave
- Účel: Zpracování změn položky kooperace
- Business rules: Přepočty a validace
3.9 Společné Hooks
Common/SetReferenceIdentifier.php
- Kdy se spouští: BeforeSave (více entit)
- Účel: Automatické generování identifikátorů
- Business rules: Sekvence čísel pro různé entity
Operation/FillDefaultAttributes.php
- Kdy se spouští: BeforeSave (Operation)
- Účel: Naplnění výchozích atributů
- Business rules: Standardizace operačních dat
Operation/PrimarySupplier.php
- Kdy se spouští: AfterSave (Operation)
- Účel: Správa primárního dodavatele
- Business rules: Automatické nastavení preferovaného dodavatele
4. FRONTEND KOMPONENTY
4.1 Views (Pohledy)
production-order/fields/
- production-tree.js - Stromové zobrazení hierarchie zakázek
- production-model.js - Výběr technologického postupu
- bill-of-materials.js - Správa kusovníku
- take-from-warehouse.js - Výdej ze skladu
- perform-work.js - Odvádění práce
- perform-remaining-work.js - Dokončení zbývající práce
production-model-operation/fields/
- operation.ts - Výběr operace (TypeScript)
work-performed/fields/
- extra-work-origin.js - Původ mimořádné práce
- extra-work-nature.js - Povaha mimořádné práce
Modální okna:
- work-performed/modals/edit.ts - Editace odvedené práce
- production-model-item/goods-restock-edit.ts - Editace doplnění zásob
4.2 Handlers (Obsluha událostí)
Dynamic Handlers:
- production-order/dynamic-handler.js - Dynamická logika zakázek
- production-order/bill-of-materials-dynamic-handler.js - Dynamika kusovníku
- work-performed/dynamic-handler.js - Dynamika odvedené práce
- items-record-list-dynamic-handler.js - Dynamika seznamů položek
Action Handlers:
- actions/product/create-production-model.js - Vytvoření postupu z produktu
- actions/production-order/create-production-model.ts - Vytvoření postupu ze zakázky
- actions/production-order/order-bom.ts - Objednání kusovníku
- actions/perform-work.ts - Provedení práce
Select Handlers:
- select/production-model-operation/operation.js - Výběr operace
4.3 Templates (Šablony)
HTML Templates:
- production-order/fields/production-tree.tpl - Šablona stromu zakázek
- production-order/fields/take-from-warehouse/list.tpl - Seznam výdejů
- production-order/fields/perform-remaining-work/list.tpl - Seznam zbývající práce
- production-order/list-tree-item.tpl - Položka v seznamu stromu
5. API A SERVICES
5.1 API Controllery
ProductionOrder API
- TakeFromWarehouse.php - API pro výdej materiálu ze skladu
- Funkce: Správa výdejů materiálu pro výrobní zakázky
5.2 Backend Services
WorkPlace.php
- Účel: Service pro správu pracovišť
- Funkce: CRUD operace, validace, business logika
CooperationItem.php
- Účel: Service pro položky kooperací
- Funkce: Kalkulace, validace, stav sledování
5.3 Backend Repositories
WorkPlace.php
- Účel: Datový přístup k pracovištím
- Funkce: Specializované dotazy, filtrování
7. INTEGRACE S JINÝMI MODULY
7.1 Warehouse Management
- GoodsIssue/GoodsReceipt - Skladové pohyby
- Warehouse/WarehousePosition - Správa skladů
- Automatické transakcee při odvedení práce
7.2 Product Base
- Product - Katalog produktů
- TaxClass - Daňové třídy
- Account jako Supplier - Dodavatelé
7.3 Project Management
- Project - Projektová vazba
- Gate modely - Projektové řízení
- Časové plánování
7.4 Accounting
- Currency - Měnové kalkulace
- ProjectCost - Projektové náklady
- ApprovalRecord - Schvalovací procesy
7.5 Human Resources
- HumanResource - Lidské zdroje
- User - Pracovníci a odpovědnosti
8. BEZPEČNOST A OPRÁVNĚNÍ
8.1 ACL (Access Control Lists)
- Detailní oprávnění na úrovni entit
- Řízení přístupu dle týmů a rolí
- Ochrana citlivých dat (náklady, ceny)
8.2 Field Level Security
- Skrytí nákladových polí před některými uživateli
- ReadOnly pole pro vypočítané hodnoty
- Validace business pravidel
8.3 Workflow Protection
- Ochrana dokončených zakázek před změnami
- Validace statusových přechodů
- Audit trail změn
9. VÝKONNOST A OPTIMALIZACE
9.1 Database Indexy
- Optimalizované indexy pro časté dotazy
- Composite indexy pro složené vyhledávání
- Unique indexy pro integritu dat
9.2 Caching Strategy
- Cachování výpočtů nákladů
- Optimalizace stromu zakázek
- Lazy loading vztahů
9.3 Query Optimization
- Selective loading mandatorních atributů
- Optimalizované joiny pro vztahy
- Pagination pro velké seznamy
10. MONITORING A LOGGING
10.1 Debug Information
- Detailní logování hooks
- Trace business logiky
- Performance monitoring
10.2 Error Handling
- Graceful degradation
- User-friendly chybové zprávy
- Automatické recovery mechanizmy
Production Module - Cenová Struktura
🏭 Základní Modul (Samostatné Licencování)
Klíčové Entity Systému
15+ základních entit organizovaných do funkčních skupin (detailní popis viz sekce "Kompletní popis entit a polí").
Základní Funkcionality Za Licenční Poplatek
-
📋 Technologické Modely (BOM)
- Definice výrobních postupů s operacemi, materiály a routing
- Multi-úrovňové BOM struktury
- Automatické kalkulace spotřeby materiálu
-
🏭 Výrobní Příkazy
- Kompletní lifecycle management výrobních zakázek
- Sledování stavu (Planned → InProgress → Completed)
- Automatické generování child orders pro složité struktury
-
💰 Nákladové Kalkulace
- HourRateCalculator pro přesné výpočty nákladů
- Kalkulace práce, materiálu, strojních nákladů a režie
- Podpora různých calculation modes (HourRate, SumRates, atd.)
-
🔧 Správa Výrobních Prostředků
- Kapacitní plánování work centers
- Alokace strojů a pracovišť k operacím
- Historie změn hodinových sazeb
-
🤝 Kooperace a Subdodávky
- Management externích výrobních partnerů
- Sledování dodávek od kooperantů
- Automatizace schvalovacích procesů
-
📊 Sledování Výkonu
- Evidence skutečně odpracovaného času
- Porovnání plán vs. skutečnost
- Analýzy efektivity výrobních procesů
-
📦 Warehouse Integrace
- Automatické rezervace materiálů pro výrobu
- Goods issue/receipt procesy
- Propojení s warehouse management systémem
-
🌍 Multi-jazyčná Podpora
- Plná lokalizace: čeština, slovenština, angličtina, němčina, ukrajinština
- Kompletní překlady všech interface prvků
⚙️ Implementace (30-50% základní ceny)
Povinné Nastavení Entity
1. Výrobní Infrastruktura:
- Stroje (Machine) - kompletní konfigurace všech výrobních strojů
- Technické parametry, kapacity, hodinové sazby
- Maintenance kalendáře a dostupnost
- Pracoviště (WorkPlace) - definice všech pracovních míst
-
Organizační struktura, odpovědnosti
-
Propojení se zaměstnanci (HumanResource)
-
Kapacitní plánování a alokace zdrojů
-
2. Technologické Procesy:
- Operace (Operation) - vytvoření katalogu všech výrobních operací
- Standardizace postupů, času, nákladů
- Definice quality controls a checkpoints
- Technologické Modely (ProductionModel) - BOM pro každý vyráběný produkt
- Multi-level struktury, alternativní postupy
- Optimalizace material flows
3. Ekonomické Nastavení:
- Hodinové Sazby - konfigurace cost calculation systému
- Sazby práce, strojů, indirect costs
- Historické tracking změn sazeb
Systémová Konfigurace
Integrace s Existujícími Moduly: Viz detailní sekce "7. Integrace s jinými moduly".
Workflow a Oprávnění:
- Nastavení approval procesů pro production orders
- Konfigurace user roles a access controls
- Customizace notification systému
Systémové Nastavení:
- Číslování production orders a identifikátorů
- Calendar a work schedules konfigurace
- Quality control checkpoints setup
Školení a Knowledge Transfer
Management Level:
- Přehled systému a business benefits
- KPI monitoring a reporting capabilities
- Strategic planning s využitím production data
Operational Level:
- Technologové: Správa BOM, operací a technologických modelů
- Plánovači: Vytváření a správa production orders
- Dělníci: Work performance tracking, odvádění práce
- Cooperation Managers: Externí kooperace a supplier management
Reporting a Analýzy:
- Cost analysis a profitability reports
- Efficiency metrics a performance tracking
- Capacity utilization analysis
Datová Migrace a Setup
Import Existujících Dat:
- BOM struktury z legacy systémů
- Katalogy operací, strojů a procesů
- Historická production data (pokud požadována)
- Supplier a cooperation agreements
Validace a Testing:
- End-to-end testing všech workflow
- Performance testing na production volumes
- User acceptance testing s klíčovými uživateli
🚀 Víceprácí - Custom Rozšíření
Důležité: Všechny customizace se implementují jako samostatné extensions, nikoli úpravy core production modulu. Tím zůstává zachována upgradeability a stability základního systému.
Pokročilé Workflow Customizace
1. Specializované Odvádění Práce
- Custom workflow pro specifické typy výroby (série, kusová, kontinuální)
- Mobilní interface pro tablet/smartphone reporting
- Barcode/QR code integration pro rychlé logování
- Real-time progress tracking s notifications
2. Advanced Cost Calculation
- Vlastní algoritmy pro specifické druhy kalkulací
- Activity-based costing (ABC) implementation
- Dynamic pricing models based na market conditions
- Predictive cost modeling s AI integration
3. Quality Management Integration
- QC checkpoints s automated testing equipment
- Statistical process control (SPC) monitoring
- Non-conformance tracking a corrective actions
- Supplier quality rating systems
Externí Integrace
ERP Systémy:
- Pohoda - real-time sync výrobních nákladů
- Money S3 - automated accounting entries
- SAP/Oracle - enterprise-level integration
- Custom connector development pro proprietary systémy
Výrobní Systémy:
- MES (Manufacturing Execution Systems) integration
- SCADA propojení pro real-time machine data
- IoT sensors pro automated data collection
- PLM (Product Lifecycle Management) connection
Advanced Analytics a Reporting
Business Intelligence:
- Power BI/Tableau dashboards integration
- Predictive maintenance scheduling
- Demand forecasting s machine learning
- Capacity optimization algorithms
Custom Reports:
- Specialized PDF výrobní dokumenty
- Real-time KPI dashboards
- Executive summary reports
- Regulatory compliance reporting
Rozšíření Inspirovaná Jano/Strunk Projekty
Z praktických zkušeností z deploymentů:
1. Specialized Workflow Patterns:
- Custom approval processes pro high-value orders
- Multi-stage quality gates pro critical components
- Flexible rework a scrap handling procedures
2. Integration Patterns:
- Accounting Module deep integration pro cost roll-up
- Project Management connection pro project-based manufacturing
- Approval Module integration pro complex authorization chains
3. Advanced Cost Tracking:
- Multi-currency support pro international operations
- Transfer pricing mezi cost centers
- Overhead allocation algorithms
- Profitability analysis po product lines
4. Operational Efficiency:
- Batch processing optimizations
- Setup time minimization algorithms
- Material waste tracking a reduction programs
- Energy consumption monitoring
💡 Implementační Strategie
Phased Rollout Approach
Fáze 1 - Core Setup (2-3 týdny)
- Basic entity configuration
- Essential workflows implementation
- Key user training
Fáze 2 - Advanced Features (2-4 týdny)
- Complex BOM structures
- Cost calculation fine-tuning
- Integration s warehouse/accounting
Fáze 3 - Optimization (1-2 týdny)
- Performance tuning
- Advanced reporting setup
- User feedback incorporation
Success Metrics
Operační KPIs:
- Reduction v manual data entry (target: 70%+)
- Improvement v cost calculation accuracy (target: 95%+)
- Decrease v production planning time (target: 50%+)
Business KPIs:
- Improved production cost visibility
- Faster response to customer inquiries
- Better resource utilization tracking
Dokumentace vytvořena pro Production Module v1.0+
Poslední aktualizace: Červenec 2025