Přeskočit na hlavní obsah

Produktová základna: Technická a Integrační architektura

1. Architektonický kontext

Modul product-base funguje jako vrstva Master Data Management (MDM) pro ERP sadu. Poskytuje základní záznamy "Materiálového kmene", které řídí logiku v Logistice, Výrobě a Financích. Sám neřeší skladové pohyby ani transakční deníky; definuje, co se přesouvá nebo prodává.

2. Graf závislostí

2.1 Příchozí závislosti (Kdo spoléhá na product-base)

Modul je pevnou závislostí pro následující vertikální řešení:

ModulPovaha závislostiKritičnost
Skladové hospodářství (Warehouse Management)Dědičnost a Rozšíření🔴 Kritická
Výroba (Production)Asociace🟠 Vysoká
Účetnictví (Accounting)Asociace🟡 Střední

2.2 Odchozí závislosti (Na čem product-base spoléhá)

ModulÚčel
AutocrmZákladní nástrojové třídy (ErrorFactory, ExtensionUtil), Rozšíření základního frameworku.

3. Detaily integrace

3.1 Integrace Skladového hospodářství

Typ: Hluboké provázání / Dědičnost Modul warehouse-management produkty nejen "používá"; rozšiřuje chování jádra produktové entity o přidání skladových schopností.

  • Dědičnost tříd:
    • Espo\Modules\WarehouseManagement\Entities\Product dědí z Espo\Modules\ProductBase\Entities\Product.
    • Espo\Modules\WarehouseManagement\Services\Product dědí z Espo\Modules\ProductBase\Services\Product.
  • Funkční rozšíření:
    • Informace o zásobách: Skladový modul volá ProductBase pro získání základních detailů položky a poté překrývá logiku StockHelper pro výpočet "Množství na skladě".
    • Doplňování zásob: Využívá strategie Espo\Modules\ProductBase\Tools\ProductSupplier pro určení, od koho nakoupit, když jsou zásoby nízké.
    • Serializace: Záznamy WarehouseItem odkazují přímo na entity ProductSerial definované v product-base.

3.2 Integrace Výroby

Typ: Asociativní / Definice kusovníku (BOM) Modul production spotřebovává definice Produktů pro sestavení Kusovníků (BOM) a sledování výstupu.

  • Odkazy entit:
    • Výrobní model (BOM): Entita "Hlavička" odkazuje na Product (co vyrábíme?).
    • Výrobní zakázka: Konkrétní práce na výrobu určitého množství Product.
    • Kooperační položka: Subdodavatelské položky odkazují na záznamy Product.
  • Využití služeb:
    • Logika výchozích hodnot: Hooks\ProductionModelItem\SetDefaultFields volá ProductService pro předvyplnění dat při přidávání položek do kusovníku.
    • Propagace ceny: Výrobní zakázky spoléhají na Cost Price (Nákladovou cenu) definovanou v ProductBase (přes ProductSupplierItem) pro odhad materiálových nákladů.

3.3 Integrace Účetnictví

Typ: Transakční / Řádkové položky Modul accounting vytváří snímek dat Produktu v čase vytvoření transakce.

  • Řádkové položky:
    • QuoteItem, SalesOrderItem, InvoiceItem a PurchaseOrderItem mají cizí klíče na Product.
  • Dodavatelská logika:
    • Ověření faktury: Hooks\SupplierInvoice\UpdateInvoiceItemProduct používá ProductSupplierItemService pro validaci cen dodavatele vůči hlavní smluvní ceně definované v product-base.
    • Zdanění: Používá TaxClass z product-base pro určení výchozích sazeb DPH pro řádkové položky.

4. Sdílené datové modely a rozhraní

4.1 Řetězec entity "Produkt"

Systém zachází s entitou Produkt jako s polymorfním objektem v závislosti na kontextu:

Zobrazit diagram

4.2 Klíčová rozhraní služeb

  • Espo\Modules\ProductBase\Tools\ProductSupplier\Factory:

    • Používáno: WarehouseManagement (GoodsRestock).
    • Účel: Poskytuje standardní způsob nalezení "Nejlepšího dodavatele" pro produkt (nejlevnější, nejrychlejší nebo primární) napříč moduly.
  • Espo\Modules\ProductBase\Services\Product::calculatePricing:

    • Používáno: Interními hooky product-base.
    • Dopad: Nepřímo ovlivňuje Accounting a Production zajištěním, že SalesPrice je vždy aktuální, než ji tyto moduly načtou.

5. Technická rizika a omezení

  1. Riziko cyklické závislosti: WarehouseManagement rozšiřuje ProductBase. Jakákoli změna služeb ProductBase musí být regresně testována vůči WarehouseManagement, protože přímo dědí logiku.
  2. Zamykání dat: ProductBase definuje "Locked" traity. Pokud je Produkt uzamčen, Production a Accounting nemohou měnit odvozená pole, což zajišťuje integritu dat napříč ERP.