Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SEPA-Abbuchungsdatum (BT-9) nicht exportiert (Mustang 2.5.6) #307

Open
akm0079 opened this issue Jan 25, 2023 · 2 comments
Open

SEPA-Abbuchungsdatum (BT-9) nicht exportiert (Mustang 2.5.6) #307

akm0079 opened this issue Jan 25, 2023 · 2 comments

Comments

@akm0079
Copy link

akm0079 commented Jan 25, 2023

Hallo,

ich versuche im SEPA Fall das Abbuchungsdatum in den Payment Terms mit auszugeben, und irgendwie fehlt das im resultierenden X-Rechnungs XML:

<ram:SpecifiedTradePaymentTerms>
        <ram:Description/>

       <!-- das DueDateDateTime ist nicht vorhanden -->
       <ram:DueDateDateTime>
          <udt:DateTimeString format="102">20221122</udt:DateTimeString>
        </ram:DueDateDateTime>


<ram:DirectDebitMandateID> mandatsNr </ram:DirectDebitMandateID>
</ram:SpecifiedTradePaymentTerms>

Nach Debuggen wird das Datum in der Klasse ZUGFeRD2PullProvider scheinbar nur für credit notes exportiert, aber nicht für Sepa/Abbuchungen (da hasDueDate auf true gesetzt wird nur wenn payment instanceof IZUGFeRDTradeSettlementPayment und nicht wenn payment instanceof IZUGFeRDTradeSettlementDebit ist) und nicht bei Rechnungskorrekturen (da in diesem Fall hasDueDate explizit auf false gesetzt wird):

if (trans.getTradeSettlement() != null) {
    for (final IZUGFeRDTradeSettlement payment : trans.getTradeSettlement()) {
				if (payment != null) {
					if (payment instanceof IZUGFeRDTradeSettlementPayment) {
						hasDueDate = true;
					}
					xml += payment.getSettlementXML();
				}
			}
		}

...


if ((trans.getDocumentCode() == **CORRECTEDINVOICE**)/*||(trans.getDocumentCode() == DocumentCodeTypeConstants.CREDITNOTE)*/) {
			hasDueDate = false;
}

...

if (hasDueDate &&  (trans.getDueDate() != null)) {
	xml += "<ram:DueDateDateTime>" // $NON-NLS-2$
		+ DATE.udtFormat(trans.getDueDate())
		+ "</ram:DueDateDateTime>";// 20130704

}

In der Spezifikation des XML-Mappings ("FACTUR-X 1.0.06 Technischer Anhang.pdf") habe ich die obigen Einschränkungen nicht gefunden. Das DueDateDateTime ist zum einen optional, und zum anderen steht in der Spec dazu lediglich:

"In case the Amount due for payment (BT-115) is positive, either the Payment due date (BT-9) or the Payment terms (BT-20) shall be present."

Sprich, es sollte entweder Description oder DueDateDateTime gesetzt werden oder beides. Und das unabhängig von der Rechnungsart bzw. Zahlungsweg.

Ist das ein Bug in der Implementierung oder übersehe ich etwas?

Danke für die Hilfe!

@jstaerk
Copy link
Collaborator

jstaerk commented Jan 26, 2023

Hi, das wäre ein Problem in der Implementierung aber ich bin irritiert, dass in dem Fall ZF2EdgeTest.testEdgeExport nicht fehl schlägt der explizit auf <ram:DueDateDateTime> prüft? hasDueDate wird da möglicherweise nicht erst in Z. 603 ( IZUGFeRDTradeSettlementDebit ) sondern schon in Z.593 gesetzt.

@jstaerk
Copy link
Collaborator

jstaerk commented Jan 30, 2023

und ist das evtl. verwandt mit #296 ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants