X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/53a350d9969e12a73ba1673c2110d8669c07eed3..27e9e34d3e7535217351bbb2c787110fb23f6607:/SL/DB/Helper/ZUGFeRD.pm
diff --git a/SL/DB/Helper/ZUGFeRD.pm b/SL/DB/Helper/ZUGFeRD.pm
index ae64c7981..826cef1a9 100644
--- a/SL/DB/Helper/ZUGFeRD.pm
+++ b/SL/DB/Helper/ZUGFeRD.pm
@@ -50,7 +50,10 @@ sub _type_code {
# 381 (Credit note)
# 389 (Credit note, self billed invoice)
- return $type eq 'credit_note' ? 381 : 380;
+ return $type eq 'credit_note' ? 381
+ : $type eq 'invoice_storno' ? 457
+ : $type eq 'credit_note_storno' ? 458
+ : 380;
}
sub _unit_code {
@@ -365,6 +368,20 @@ sub _exchanged_document {
#
}
+sub _specified_tax_registration {
+ my ($ustid_nr, %params) = @_;
+
+ return unless $ustid_nr;
+
+ $ustid_nr = "DE$ustid_nr" unless $ustid_nr =~ m{^[A-Z]{2}};
+
+ #
+ $params{xml}->startTag("ram:SpecifiedTaxRegistration");
+ $params{xml}->dataElement("ram:ID", _u8($ustid_nr), "schemeID" => "VA");
+ $params{xml}->endTag;
+ #
+}
+
sub _seller_trade_party {
my ($self, %params) = @_;
@@ -411,15 +428,7 @@ sub _seller_trade_party {
#
}
- my $ustid_nr = $::instance_conf->get_co_ustid;
- if ($ustid_nr) {
- $ustid_nr = "DE$ustid_nr" unless $ustid_nr =~ m{^[A-Z]{2}};
- #
- $params{xml}->startTag("ram:SpecifiedTaxRegistration");
- $params{xml}->dataElement("ram:ID", _u8($ustid_nr), "schemeID" => "VA");
- $params{xml}->endTag;
- #
- }
+ _specified_tax_registration($::instance_conf->get_co_ustid, %params);
$params{xml}->endTag;
#
@@ -434,6 +443,7 @@ sub _buyer_trade_party {
$params{xml}->dataElement("ram:Name", _u8($self->customer->name));
_customer_postal_trade_address(%params, customer => $self->customer);
+ _specified_tax_registration($self->customer->ustid, %params);
$params{xml}->endTag;
#