Der %%invoice_number%%-Platzhalter wird in Belegfeld 2 abgeschnitten

Fast alle Platzhalter werden direkt bei Erstellen von Buchungssätzen "ausgefüllt". Der Platzhalter für die Rechnungsnummern (z.B. %%invoice_number%%) wird jedoch erst beim Erstellen der eigentlichen Export-Datei ersetzt.

Das Belegfeld 2 kann gemäß DATEV-Format nur maximal 12 Zeichen enthalten. Daher wird der Platzhalter leider vom System abgeschnitten. Aus "%%invoice_number%%" wird dann nur noch %%invoice_nu", was nicht mehr erkannt wird.

Mit folgendem Code-Snippet kann man den Platzhalter wiederherstellen, sodass dann auch die Rechnungsnummer wieder ausgegeben wird.

// Belegfeld 2 trims everything to 12 characters, which is less than the full %%invoice_number%% placeholder;
// thus we have to restore this placeholder in this specific case...

add_filter( 'wcdtvfe_create_export_file_after_preprocessing', 'restore_full_invoice_placeholder', 5, 2);
        
function restore_full_invoice_placeholder( $accounting_record ) {
	echo ($accounting_record[ '012_note2' ]);
	if( isset( $accounting_record[ '012_note2' ] ) ) {
		echo "here";
		$accounting_record['012_note2'] = str_replace('%%invoice_nu', '%%invoice_number%%', $accounting_record['012_note2']); 
		echo "REPLACED";
		echo ($accounting_record[ '012_note2' ]);
		echo "<br/>";
	}
	return $accounting_record;
}

Sie haben Fragen oder möchten ein Angebot anfordern?

Jetzt Kontakt aufnehmen
crosslist