Přeskočit na hlavní obsah

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á navigace
  • GET /ProductionOrder/:id/bottomPanel/WorksPerformed: Agregace odvedených prací

Work Tracking & Performance

  • GET /ProductionOrder/:id/bottomPanel/RelatedOperations: Operace s live náklady
  • POST /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říjemky
  • GET /ProductionOrder/:id/bottomPanel/ReceivedDeliveryNotes: Dodací listy

Production Actions

  • POST /ProductionOrder/orderBom/:id: Zpracování kusovníku
  • POST /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

  1. Analýza požadavků → určení produktu a množství
  2. Výběr ProductionModel → výchozí vs custom výrobní postup
  3. Vytvoření ProductionOrder → s automatickým BOM a operacemi
  4. Material coordination → rezervace a nákup materials
  5. 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

  1. BOM Explosion → automatické generování material requirements
  2. Availability Check → kontrola skladových zásob
  3. Procurement Trigger → automatické vytvoření nákupních objednávek
  4. Delivery Tracking → sledování dodávek přes Cooperation
  5. Material Readiness → validace před production start
  6. Consumption Recording → evidence skutečné spotřeby

C) Subcontracting (Cooperation) Workflow

Business účel: Efektivní management externí výroby

  1. External Work Identification → označení operací pro outsourcing
  2. Cooperation Creation → vytvoření zakázky pro dodavatele
  3. PO Generation → automatické purchase order generation
  4. Progress Tracking → sledování delivery status
  5. Quality Control → příjem a kontrola externí práce
  6. Cost Integration → zahrnutí external costs do total costs

D) Cost Control Workflow

Business účel: Transparentní sledování a kontrola nákladů

  1. Cost Planning → estimate z ProductionModel standards
  2. Real-time Tracking → WorkPerformed cost accumulation
  3. Variance Analysis → actual vs planned cost comparison
  4. Extra Work Management → approval a tracking nadprácí
  5. Cost Allocation → distribution to Projects a Customers
  6. 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

  1. 📋 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
  2. 🏭 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
  3. 💰 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.)
  4. 🔧 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
  5. 🤝 Kooperace a Subdodávky

    • Management externích výrobních partnerů
    • Sledování dodávek od kooperantů
    • Automatizace schvalovacích procesů
  6. 📊 Sledování Výkonu

    • Evidence skutečně odpracovaného času
    • Porovnání plán vs. skutečnost
    • Analýzy efektivity výrobních procesů
  7. 📦 Warehouse Integrace

    • Automatické rezervace materiálů pro výrobu
    • Goods issue/receipt procesy
    • Propojení s warehouse management systémem
  8. 🌍 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