Přeskočit na hlavní obsah

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

  1. Sčítání Položek: Iteuje přes všechny řádkové položky spojené s dokumentem.
  2. Seskupování Daní: Seskupuje částky podle sazby daně (např. 21%, 15%, 0%) pro výpočet rekapitulace DPH.
  3. Aplikace Slev:
    • Úroveň Řádku: Aplikováno na jednotlivé položky.
    • Úroveň Dokumentu: Aplikováno na mezisoučet (může být % nebo fixní částka).
  4. 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.