Přeskočit na hlavní obsah

Datové struktury parsování faktur

Tato část dokumentace detailně popisuje datové struktury používané v modulu pro parsování faktur.

InvoiceLikeItemDto

Tato třída reprezentuje jednotlivou položku faktury. Obsahuje všechny relevantní atributy položky včetně:

  • Názvu a popisu
  • Množství a měrné jednotky
  • Jednotkové ceny a celkové částky
  • Informací o DPH

Klíčové vlastnosti

  • name: Název položky
  • description: Podrobný popis
  • quantity: Množství
  • unit: Měrná jednotka
  • unitPrice: Jednotková cena
  • total: Celková částka
  • taxAmount: Částka DPH
  • withTaxes: Příznak zda cena obsahuje DPH

Metody

  • toArray(): Převede DTO na asociativní pole
  • Magické metody pro přístup k vlastnostem (__get, __set)

ParsedData

Tato třída slouží jako kontejner pro všechna zpracovaná data z faktury. Umožňuje:

  • Ukládání atributů hlavní entity (faktury)
  • Správu souvisejících entit (dodavatelé, kontakty)
  • Validaci unikátnosti záznamů

Klíčové vlastnosti

  • entityType: Typ entity (např. 'SupplierInvoice')
  • attributes: Atributy entity
  • relatedEntities: Pole souvisejících entit
  • uniqueFields: Pole unikátních identifikátorů

Metody

  • addRelatedEntity(): Přidá související entitu
  • isEntityDuplicate(): Kontroluje duplicitu entity
  • toRaw(): Exportuje data do pole
  • fromRaw(): Načte data z pole
  • apply(): Uloží data do databáze

Technické informace

InvoiceLikeItemDto

class InvoiceLikeItemDto {
public ?string $name = null;
public ?string $description = null;
public ?float $quantity = null;
// ... další vlastnosti ...
}

ParsedData

class ParsedData {
protected string $entityType;
protected array $attributes = [];
protected array $relatedEntities = [];
// ... další vlastnosti ...
}

Mapování polí

Modul používá několik mapování pro převod mezi zdrojovými daty a entitami:

  • getMainInvoiceFieldsMap(): Mapuje hlavní pole faktury
  • getAccountFieldsMap(): Mapuje pole účtu
  • getStandardItemFieldMap(): Mapuje pole položek faktury