Finanční Výpočty
Integrita finančních dat závisí na centralizovaném výpočetním jádru umístěném v src/backend/Tools/Calculation. To zajišťuje, že součty, daně a zaokrouhlování jsou zpracovávány konzistentně napříč všemi typy dokumentů.
Výpočetní Jádro (Calculation Engine)
Třída: Espo\Modules\Accounting\Tools\Calculation\Service
Tato služba je vyvolána hookem AbstractRecalculate kdykoli je dokument uložen.
Hlavní Odpovědnosti
- Sčítání Položek: Iteuje přes všechny řádkové položky spojené s dokumentem.
- Seskupování Daní: Seskupuje částky podle sazby daně (např. 21%, 15%, 0%) pro výpočet rekapitulace DPH.
- Aplikace Slev:
- Úroveň Řádku: Aplikováno na jednotlivé položky.
- Úroveň Dokumentu: Aplikováno na mezisoučet (může být % nebo fixní částka).
- Zaokrouhlování: Aplikuje pravidla zaokrouhlování (např. na nejbližších 0.01 nebo 1.00) na základě nastavení
Currency(Měny).
Tok Dat
Sdílená Logika (InvoiceLike)
Třída: Espo\Modules\Accounting\Classes\Abstract\Services\InvoiceLike
Abstrakce InvoiceLike sjednocuje chování:
- Faktur
- Zálohových faktur
- Nabídek
- Objednávek
- Dobropisů
Zajišťuje, že pole jako billingAddress (fakturační adresa), shippingAddress (dodací adresa), accountId a currency (měna) se chovají identicky. Také spravuje Vztah Položek (Items Relationship), což zajišťuje, že přidání/odstranění položky správně spustí přepočet rodiče.