Fixed issue: Using addDocumentAllowanceCharge with Code SERVICE_OUTSIDE_SCOPE_OF_TAX never passes validation because Taxtype is omitted if you pass no VAT rate #195
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
When trying to set a document allowance with tax code SERVICE_OUTSIDE_SCOPE_OF_TAX and zero rate, it would never pass Zugferd validation.
The problem is that SERVICE_OUTSIDE_SCOPE_OF_TAX does not allow a rate to be set at all.
But if I null the rate in $document->addDocumentAllowanceCharge() the resulting XML would also not pass the validation as no tax information will be set, at all.
Issue type
How Has This Been Tested?
Before patch:
Neither
$document->addDocumentAllowanceCharge(abs($item->net_price_for_item), false, ZugferdDutyTaxFeeCategories::SERVICE_OUTSIDE_SCOPE_OF_TAX, "VAT", null, null, null, null, null, null, ZugferdAllowanceCodes::DISCOUNT);
nor
$document->addDocumentAllowanceCharge(abs($item->net_price_for_item), false, ZugferdDutyTaxFeeCategories::SERVICE_OUTSIDE_SCOPE_OF_TAX, "VAT", 0, null, null, null, null, null, ZugferdAllowanceCodes::DISCOUNT);
resulted in a valid document.
After applying the patch
$document->addDocumentAllowanceCharge(abs($item->net_price_for_item), false, ZugferdDutyTaxFeeCategories::SERVICE_OUTSIDE_SCOPE_OF_TAX, "VAT", null, null, null, null, null, null, ZugferdAllowanceCodes::DISCOUNT);
tests valid (and is IMHO the correct behaviour as no tax rate should be applied)
Test Configuration:
Using Mustang Project and online Zugferd validators to confirm my findings.
Checklist: