Automatizační Služby
Kromě jednoduchých CRUD operací obsahuje modul Účetnictví několik specializovaných služeb a nástrojů, které řeší složitou obchodní logiku, integrace a validace.
VIES Validator (Ověření EU DPH)
Třída: Espo\Modules\Accounting\Tools\VIESValidator
Závislost: knihovna ibericode/vat
Tato služba ověřuje evropská DIČ (DPH čísla) vůči databázi VIES (VAT Information Exchange System).
Funkce
- Kontrola Formátu: Ověřuje regex formát DIČ pro konkrétní zemi.
- Kontrola Existence: Dotazuje se VIES API pro potvrzení, že subjekt je aktuálně registrován k DPH.
- Cachování: Odpovědi jsou ukládány do databáze (entita
VatNumberValidation) na 2 hodiny (VALID_SECONDS = 7200), aby se předešlo limitům API a zvýšila se rychlost.
ISDOC (Elektronická Fakturace)
Adresář: src/backend/Tools/Isdoc
Modul podporuje formát ISDOC (český standard pro elektronickou fakturaci).
Architektura
- ConverterFactory: Vytvoří příslušný převodník na základě typu dokumentu.
- ToIsdoc: Převede interní EspoCRM entity (Faktura) do XML struktury ISDOC.
- FromIsdoc: Parsuje příchozí ISDOC soubory pro vytvoření Přijatých faktur.
- DTO: Data Transfer Objects se používají k mapování XML uzlů na silné PHP typy před uložením.
Služba Převodu Dokumentů (Transferer)
Třída: Espo\Modules\Accounting\Tools\Order\Services\Transferer
Řeší převod jednoho typu dokumentu na jiný (např. Nabídka -> Objednávka -> Faktura).
Logika
- Kopírování: Zkopíruje společná pole (Fakturační/Dodací adresa, Měna, Nastavení daní).
- Mapování Položek: Převede položky řádků (
SalesOrderItem->InvoiceItem). - Reference: Propojí nový dokument se zdrojovým dokumentem pro zpětnou dohledatelnost.
- Aktualizace Stavu: Může aktualizovat stav zdrojového dokumentu (např. Nabídka -> "Převedena").
Služba InvoiceLike
Třída: Espo\Modules\Accounting\Classes\Abstract\Services\InvoiceLike
Základní třída služby, kterou rozšiřují Invoice, Quote, SalesOrder atd. Standardizuje:
- Generování Čísel: Logika dalšího čísla (Next number).
- Generování PDF: Vykreslení dokumentu do PDF pomocí šablon.
- Odesílání Emailů: Odeslání dokumentu zákazníkovi.