Faktury

Faktury

Funkční popis faktur je zde.

Konfigurační soubor se standardně nachází v adresáři config/module-edeeshop/features/order/invoice.xml.

Zkopírovat odkaz na sekciPříklad konfigurace

xml
1 <invoice>2    <autoSendInvoiceNotification>true</autoSendInvoiceNotification>3    <limits>4        <limit>5            <maxOccurrence>1</maxOccurrence>6            <type>STANDARD</type>7        </limit>8    </limits>9    <rules>10        <rule>11            <code>rule1</code>12            <dueDateDays>3</dueDateDays>13            <events>14                <event>15                    <constraint>eq(event.state.code,dispatched-order)</constraint>16                    <eventName>afterNewOrderStateCreatedEvent</eventName>17                    <expression>event.state.code == 'dispatched-order'</expression>18                    <order/>19                </event>20            </events>21            <invoiceType>STANDARD</invoiceType>22            <numberExpression>'F' + dateFormat('yyyy') + '-' + numberSeq(dateFormat('yyyy'),4)</numberExpression>23            <pathToLogo>/project/img/logo.png</pathToLogo>24            <priority>0</priority>25            <template>classpath:invoiceTemplate.jasper</template>26        </rule>27    </rules>28    <catalogSpecific>29        <catalogCode/>30        <autoSendInvoiceNotification>true</autoSendInvoiceNotification>31        <limits>32            <limit>33                <maxOccurrence>1</maxOccurrence>34                <type>STANDARD</type>35            </limit>36        </limits>37        <rules>38            <rule>39                <code>rule1</code>40                <dueDateDays>3</dueDateDays>41                <events>42                    <event>43                        <constraint>eq(event.state.code,dispatched-order)</constraint>44                        <eventName>afterNewOrderStateCreatedEvent</eventName>45                        <expression>event.state.code == 'dispatched-order'</expression>46                        <order/>47                    </event>48                </events>49                <invoiceType>STANDARD</invoiceType>50                <numberExpression>'F' + dateFormat('yyyy') + '-' + numberSeq(dateFormat('yyyy'),4)</numberExpression>51                <pathToLogo>/project/img/logo.png</pathToLogo>52                <priority>0</priority>53                <template>classpath:invoiceTemplate.jasper</template>54            </rule>55        </rules>56    </catalogSpecific>57</invoice>

Zkopírovat odkaz na sekciPopis

Zkopírovat odkaz na sekciinvoice

Konfigurace evidence faktur objednávek.

Vlastnosti této konfigurace lze specifikovat pro konkrétní katalog. Více zde.

VlastnostPopisHodnotaPovinnáVýchozí hodnota
autoSendInvoiceNotification

Příznak toho, zda se má notifikace o nové faktuře automaticky odeslat po uploudu z v administraci nebo po automatickém vygenerování faktury.

Default je true, tedy notifikace se odesílá.

boolean

-

true

limits/limit

Seznam limitů maximálního počtu faktur daného typu, které mohou být u objednávky evidovány.

Pokud je seznam prázdný, tak výchozí limit je nastaven pouze pro v počtu 1. Ostatní typy faktur jsou bez limitu.

List: limits/limit

-

-

rules/rule

Seznam pravidel, podle kterých se mají automaticky generovat faktury objednávky.

Pokud je seznam prázdný, faktury se automaticky negenerují.

List: rules/rule

-

-

catalogSpecific

Vlastnosti této konfigurace lze specifikovat pro konkrétní katalog. Více zde.

-

-

Zkopírovat odkaz na sekcilimits/limit

Seznam limitů maximálního počtu faktur daného typu, které mohou být u objednávky evidovány.

Pokud je seznam prázdný, tak výchozí limit je nastaven pouze pro v počtu 1. Ostatní typy faktur jsou bez limitu.

VlastnostPopisHodnotaPovinnáVýchozí hodnota
maxOccurrence

Maximální počet faktur daného typu, které mohou být u jedné objednávky evidovány.

Povinná hodnota.

Integer

-

-

type

Typ faktury, pro který se limit vztahuje.

Povinná hodnota.

  • STANDARD - Klasická standardní faktura.
  • ADVANCE - Zálohová faktura při platbě předem.
  • CREDIT_NOTE - Dobropis.

-

-

Zkopírovat odkaz na sekcirules/rule

Seznam pravidel, podle kterých se mají automaticky generovat faktury objednávky.

Pokud je seznam prázdný, faktury se automaticky negenerují.

VlastnostPopisHodnotaPovinnáVýchozí hodnota
code

Jedinečný kód pravidla.

String

-

-

dueDateDays

Na základě této hodnoty se generuje datum splatnosti do zálohové faktury. Hodnota určuje kolik dní od vytvoření faktury je datum splatnosti. Tedy pokud je hodnota např. 3 a datum vystavení faktury 1.1.2019, tak datum splatnosti je 4.1.2019.

Výchozí hodnota je 3.

Integer

-

3

events/event

Seznam událostí, na které reaguje toto pravidlo.

V případě, že alespoň jedna událost splňuje podmínky pro vypálenou aplikační událost (např. změna stavu objednávky), tak se toto pravidlo aplikuje.

Pravidlo vyžaduje alespoň jednu událost.

List: events/event

-

-

invoiceType

Typ faktury, které se má vygenerovat.

Výchozí hodnota je STANDARD.

  • STANDARD - Klasická standardní faktura.
  • ADVANCE - Zálohová faktura při platbě předem.
  • CREDIT_NOTE - Dobropis.

-

STANDARD

numberExpression

Výraz (SPeL), který definuje, jakým způsobem bude generováno číslo faktury.

Dostupné parametry ve SPeLu jsou:

  • data - objekt objednávky ()
  • dateFormat(String format) - metoda, která převede aktuální datum na string dle vstupního formátu
  • dateFormat(LocalDateTime date, String format) - metoda, která převede datum na vstupu na string dle vstupního formátu
  • numberSeq(String sequenceId, Int length) - metoda, která vrátí další číslo z číselné řady, který je určena parametrem 'sequenceId'. Parameter length určuje délku v řetězce výstupního řetězce, kdy číslo bude doplněno 0.
  • random(Int length) - metoda, která vrátí náhodné číslo. Parameter length určuje délku v řetězce výstupního řetězce.

Například výraz "'F' + dateFormat('yyyy') + '-' + numberSeq(dateFormat('yyyy'),4)" vygeneruje kód (pro rok 2022) "F2022-0001", "E2022-0002" atd.

Tento výraz je povinný v případě využití default implementace . V případě, že je na projektu vlastní implementace, tak tento výraz nemusí být povinný.

String

-

-

pathToLogo

Cesta k logu, které bude uvedeno na faktuře. Pokud není uvedeno, faktura bude bez loga.

Cesta musí být uvedena jako absolutní cesta na file-systému. Např. '/project/img/logo.png'.

String

-

-

priority

Priorita pravidla. V případě, že by objednávka splňovala více pravidel, aplikuje se ta s nejvyšší prioritou.

Výchozí hodnota je 0.

Integer

-

0

template

Cesta k šabloně faktury ve formátu jasper nebo jrxml (https://community.jaspersoft.com/documentation/tibco-jaspersoft-studio-user-guide/v630/jrxml-sources-and-jasper-files). Pokud je cesta k jrxml souboru, tak se šablona vždy kompiluje (vhodné pro ladění).

V produkčním prostředí je vhodnější použít zkompilovanou variantu s příponou jasper.

Pokud není definováno, použije se výchozí šablona.

resource

-

classpath:META-INF/lib_eshop_invoice_template/jasper/defaultInvoice.jasper

Zkopírovat odkaz na sekcievents/event

Seznam událostí, na které reaguje toto pravidlo.

V případě, že alespoň jedna událost splňuje podmínky pro vypálenou aplikační událost (např. změna stavu objednávky), tak se toto pravidlo aplikuje.

Pravidlo vyžaduje alespoň jednu událost.

VlastnostPopisHodnotaPovinnáVýchozí hodnota
constraint

Pravidlo schválí událost pokud vlastnosti této události splňují požadavky definované podmínky.

Podmínka může obsahovat libovolný standardní operátor: and, or, not, eq, isTrue, isFalse atd.

V rámci výrazu je možné se odkazovat na událost pomocí klíčového slova event. Příklad výrazu pro událost, která poskytuje vlastnosti state a order, může vypadat následovně:

1 and(2  eq(event.state.code,dispatched-order),3  isTrue(event.order.paid)4)

Více na TOBEDONE #1948 odkaz na dokumentaci constraint.

String

-

-

eventName

Název aplikační události.

Pokud název události odpovídá této hodnotě, aby mohla být podmínka splněna.

Pokud není vyplněno, název události se nekontroluje.

String

-

-

expression

Výraz (SpEL - Spring Expression Language), který se pro danou událost vyhodnocuje.

Podmínka je splněna pokud daný výraz vrací true. V rámci výrazu je možné se odkazovat na událost pomocí klíčového slova event.

Příklad výrazu pro událost, která poskytuje vlastnosti state a order, může vypadat následovně: (event.state.code == 'dispatched-order') &amp;&amp; (event.order.isPaid()).

Nepovinný hodnota.

String

-

-

order

Výraz (SPeL), který po vyhodnocení vrací z objednávku pro danou událost.

Objednávka je následně použita pro generování faktury.

Povinná hodnota.

String

-

-