Factur-X/ZUGFeRD: UStID-Nr des Kunden nur ausgeben, wenn tatsächlich angegeben
[kivitendo-erp.git] / SL / DB / Helper / ZUGFeRD.pm
index 99e0825..5455398 100644 (file)
@@ -214,7 +214,6 @@ sub _taxes {
     $info->{taxkey}    //= SL::DB::TaxKey->load_cached($item->{taxkey_id});
     $info->{tax}       //= SL::DB::Tax->load_cached($info->{taxkey}->tax_id);
     $info->{linetotal}  += $item->{linetotal};
-    $info->{tax_amount} += $item->{tax_amount};
   }
 
   foreach my $taxkey_id (sort keys %taxkey_info) {
@@ -223,7 +222,7 @@ sub _taxes {
 
     #     <ram:ApplicableTradeTax>
     $params{xml}->startTag("ram:ApplicableTradeTax");
-    $params{xml}->dataElement("ram:CalculatedAmount",      _r2($params{ptc_data}->{taxes}->{$info->{tax}->{chart_id}}));
+    $params{xml}->dataElement("ram:CalculatedAmount",      _r2($params{ptc_data}->{taxes_by_tax_id}->{$info->{taxkey}->tax_id}));
     $params{xml}->dataElement("ram:TypeCode",              "VAT");
     $params{xml}->dataElement("ram:BasisAmount",           _r2($info->{linetotal}));
     $params{xml}->dataElement("ram:CategoryCode",          $tax_info{code});
@@ -326,7 +325,7 @@ sub _totals {
 
   $params{xml}->dataElement("ram:LineTotalAmount",     _r2($self->netamount));
   $params{xml}->dataElement("ram:TaxBasisTotalAmount", _r2($self->netamount));
-  $params{xml}->dataElement("ram:TaxTotalAmount",      _r2(sum(values %{ $params{ptc_data}->{taxes} })), currencyID => "EUR");
+  $params{xml}->dataElement("ram:TaxTotalAmount",      _r2(sum(values %{ $params{ptc_data}->{taxes_by_tax_id} })), currencyID => "EUR");
   $params{xml}->dataElement("ram:GrandTotalAmount",    _r2($self->amount));
   $params{xml}->dataElement("ram:TotalPrepaidAmount",  _r2($self->paid));
   $params{xml}->dataElement("ram:DuePayableAmount",    _r2($self->amount - $self->paid));
@@ -436,7 +435,7 @@ sub _seller_trade_party {
   #         <ram:DefinedTradeContact>
   $params{xml}->startTag("ram:DefinedTradeContact");
 
-  $params{xml}->dataElement("ram:PersonName", _u8($sales_person_cfg{name} || $sales_person_cfg{login}));
+  $params{xml}->dataElement("ram:PersonName", _u8($sales_person->safe_name));
 
   if ($sales_person_cfg{tel}) {
     $params{xml}->startTag("ram:TelephoneUniversalCommunication");
@@ -478,7 +477,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);
+  _specified_tax_registration($self->customer->ustid, %params) if $self->customer->ustid;
 
   $params{xml}->endTag;
   #       </ram:BuyerTradeParty>