Přeskočit na obsah

Upravení dat dokumentu

Tento obsah zatím není dostupný ve vašem jazyce.

Pokud potřebujete upravit data odesílaná do Fakturoidu za účelem vytvoření dokumentu, můžete k tomu využít připravený filtr.

apply_filters( 'wpify_woo_fakturoid_invoice_data', $data, $order, $wc_order, $document_type );
ParametrTypPopis
$dataarrayData dokumentu k odeslání
$orderOrderModelModel objednávky s Fakturoid daty
$wc_orderWC_OrderWooCommerce objednávka
$document_typestringTyp dokumentu: proforma, invoice, correction
$data = array(
'document_type' // typ dokumentu: proforma, invoice, correction
'subject_id' // id kontaktu z Fakturoidu
'payment_method' // platební metoda z Fakturoidu
'order_number' // číslo objednávky
'vat_price_mode' // cenový režim DPH: without_vat, from_total_with_vat
'currency' // měna
'subject_custom_id' // id přihlášeného uživatele (je-li nastaven search_contact)
'number_format_id' // id číselné řady
'variable_symbol' // variabilní symbol
'round_total' // zaokrouhlení celkové částky (true/false)
'language' // jazyk faktury (cs, sk, en, de, ...)
);
$data += array(
'client_has_delivery_address' // true pokud má doručovací adresu
'client_delivery_name' // jméno/firma na doručovací adrese
'client_delivery_street' // ulice doručovací adresy
'client_delivery_city' // město doručovací adresy
'client_delivery_zip' // PSČ doručovací adresy
'client_delivery_country' // země doručovací adresy
);
$data += array(
'bank_account_id' // id bankovního účtu ve Fakturoidu
'bank_account' // číslo bankovního účtu
'iban' // IBAN
'swift_bic' // SWIFT/BIC kód
);
$data += array(
'paypal' // true pro zobrazení PayPal tlačítka na webfaktuře
'gopay' // true pro zobrazení GoPay tlačítka na webfaktuře
);

Reverse charge (přenesená daňová povinnost)

Section titled “Reverse charge (přenesená daňová povinnost)”
$data += array(
'transferred_tax_liability' // true pro přenesenou daňovou povinnost (jen v rámci EU)
);

Přenesená daňová povinnost se nastavuje pouze pro B2B prodeje v rámci EU (zákazník má platné VAT ID a je v jiné EU zemi). Pro export mimo EU se transferred_tax_liability nenastavuje.

$data += array(
'oss' // 'goods' nebo 'service' pro B2C prodeje do jiných EU zemí
);

OSS se nastavuje pro B2C prodeje (objednávka s DPH) do jiných EU zemí:

  • goods – pro prodej zboží (používá doručovací adresu)
  • service – pro prodej služeb (používá fakturační adresu)
$data += array(
'show_already_paid_note_in_pdf' // true pro zobrazení poznámky "Uhrazeno" na faktuře
);

Poznámka o zaplacení se nastavuje automaticky, pokud bude faktura ihned po vytvoření označena jako uhrazená. Plugin tuto informaci předává interně z handle_documents() na základě nastavení platební brány (status_mark_fakturoid_paid). Pro opravné doklady je vždy true, protože jsou vždy ihned uhrazeny.

$data += array(
'proforma' // true je-li proforma
'correction' // true je-li opravný doklad
'correction_id' // id opravovaného dokladu
'note' // poznámka (důvod opravy)
);
$data['lines'] = array(
array(
'name' // název produktu
'quantity' // množství
'unit_price' // cena za jednotku
'vat_rate' // hodnota DPH (pokud jsou daně zapnuty)
'unit_name' // jednotka množství (ks, kg, ...)
'sku' // SKU produktu (pokud je zapnuto)
),
// další položky...
);

Ve výchozím stavu se jednotka množství nastavuje z pole „Název jednotky množství” v nastavení pluginu (prázdné = neodesílá se). Tento filtr použijte pro dynamické nastavení jednotky podle produktu.

/**
* Edit Fakturoid document data - add unit name
*
* @param array $data Data
* @param OrderModel $order Order model with Fakturoid data
* @param WC_Order $wc_order WC order
* @param string $document_type Document type
*
* @return array
*/
function edit_fakturoid_invoice_data( $data, $order, $wc_order, $document_type ): array {
foreach ( $data['lines'] as $key => $line ) {
$data['lines'][ $key ]['unit_name'] = 'ks';
}
return $data;
}
add_filter( 'wpify_woo_fakturoid_invoice_data', 'edit_fakturoid_invoice_data', 10, 4 );

Ve výchozím stavu se splatnost (due) nenastavuje a použije se výchozí hodnota z nastavení Fakturoidu. Tento filtr použijte pro různou splatnost podle typu dokumentu.

/**
* Modify invoice data based on document type
*
* @param array $data Data
* @param OrderModel $order Order model
* @param WC_Order $wc_order WC order
* @param string $document_type Document type: proforma, invoice, correction
*
* @return array
*/
function modify_invoice_by_type( $data, $order, $wc_order, $document_type ): array {
if ( $document_type === 'proforma' ) {
$data['due'] = 7; // splatnost 7 dní pro proformy
} elseif ( $document_type === 'invoice' ) {
$data['due'] = 14; // splatnost 14 dní pro faktury
}
return $data;
}
add_filter( 'wpify_woo_fakturoid_invoice_data', 'modify_invoice_by_type', 10, 4 );

Ve výchozím stavu se poznámka (note) neodesílá. Tento filtr použijte pro přidání vlastní poznámky na fakturu.

/**
* Add custom note to invoice
*
* @param array $data Data
* @param OrderModel $order Order model
* @param WC_Order $wc_order WC order
* @param string $document_type Document type
*
* @return array
*/
function add_custom_invoice_note( $data, $order, $wc_order, $document_type ): array {
// Nepřepisovat poznámku u opravných dokladů - obsahuje důvod opravy
if ( $document_type === 'correction' ) {
return $data;
}
$data['note'] = 'Děkujeme za Váš nákup!';
return $data;
}
add_filter( 'wpify_woo_fakturoid_invoice_data', 'add_custom_invoice_note', 10, 4 );

Změna číselné řady podle platební metody

Section titled “Změna číselné řady podle platební metody”

Ve výchozím stavu se používá číselná řada nastavená v administraci pluginu (pole „Číselná řada faktur”). Tento filtr použijte pro dynamickou změnu podle podmínek.

/**
* Change number format based on payment method
*
* @param array $data Data
* @param OrderModel $order Order model
* @param WC_Order $wc_order WC order
* @param string $document_type Document type
*
* @return array
*/
function change_number_format_by_payment( $data, $order, $wc_order, $document_type ): array {
if ( $wc_order->get_payment_method() === 'cod' ) {
$data['number_format_id'] = 12345; // ID číselné řady z Fakturoidu pro dobírku
}
return $data;
}
add_filter( 'wpify_woo_fakturoid_invoice_data', 'change_number_format_by_payment', 10, 4 );

Vlastní funkci můžete vložit buď do tzv. child šablony nebo pomocí pluginu Code Snippets.