Přeskočit na hlavní obsah

Přehled parsování faktur

Tato dokumentace popisuje implementaci parsování faktur v systému EspoCRM. Modul umožňuje automatické zpracování faktur od dodavatelů, extrakci klíčových dat a jejich uložení do systému ve strukturované podobě.

Hlavní funkce

  • Automatické zpracování faktur: Modul dokáže analyzovat faktury v různých formátech a extrahovat z nich klíčové informace jako číslo faktury, datum vystavení, dodavatele, položky faktury a celkové částky.
  • Integrace s účty: Automaticky propojuje faktury s existujícími účty v systému na základě identifikačních údajů (IČO).
  • Správa položek faktury: Každá položka faktury je detailně zpracována včetně množství, jednotkové ceny, DPH a celkové částky.
  • Validace duplicit: Systém kontroluje duplicity faktur a jejich položek na základě unikátních identifikátorů.

Základní workflow

  • Příjem dat: Faktura je přijata ve formě strukturovaných dat (např. JSON).
  • Zpracování hlavičky faktury: Extrahují se základní údaje jako číslo faktury, datum vystavení, splatnost a měna.
  • Zpracování dodavatele: Informace o dodavateli jsou propojeny s existujícím účtem nebo vytvoří nový záznam.
  • Zpracování položek: Každá položka faktury je analyzována a převedena na strukturovaný formát.
  • Uložení do systému: Všechna data jsou uložena do příslušných entit v EspoCRM.

Závislosti

Modul spoléhá na následující komponenty EspoCRM:

  • Entity SupplierInvoice pro ukládání faktur
  • Entity Account pro správu dodavatelů
  • ORM vrstvu pro práci s databází
  • Logovací systém pro sledování chyb

Technické informace

Hlavní třídy

  • InvoiceLikeProvider: Abstraktní základní třída pro parsování faktur
  • SupplierInvoiceProvider: Konkrétní implementace pro faktury dodavatelů
  • ParsedData: Třída pro reprezentaci zpracovaných dat
  • InvoiceLikeItemDto: Data Transfer Object pro položky faktury

Klíčové metody

  • process(): Hlavní metoda pro zpracování faktury
  • setInvoiceData(): Nastaví data faktury včetně položek
  • updateSellerInformation(): Zpracuje informace o dodavateli
  • updateInvoiceItemLists(): Zpracuje seznam položek faktury

Datové struktury

Modul pracuje s následujícími hlavními datovými strukturami:

  • receivedData: Vstupní data faktury ve formě asociativního pole
  • parsedData: Instance třídy ParsedData obsahující zpracované údaje
  • InvoiceLikeItemDto: Objekty reprezentující jednotlivé položky faktury