71 |
71 |
amount => { type => 'Rose::DB::Object::Metadata::Column::Numeric', text => t8('Amount'), },
|
72 |
72 |
credit_accname => { type => 'Rose::DB::Object::Metadata::Column::Text', text => t8('Credit Account Name'), },
|
73 |
73 |
credit_accno => { type => 'Rose::DB::Object::Metadata::Column::Text', text => t8('Credit Account'), },
|
|
74 |
credit_amount => { type => 'Rose::DB::Object::Metadata::Column::Text', text => t8('Credit Amount'), },
|
|
75 |
credit_tax => { type => 'Rose::DB::Object::Metadata::Column::Numeric', text => t8('Credit Tax (lit)'), },
|
74 |
76 |
debit_accname => { type => 'Rose::DB::Object::Metadata::Column::Text', text => t8('Debit Account Name'), },
|
75 |
77 |
debit_accno => { type => 'Rose::DB::Object::Metadata::Column::Text', text => t8('Debit Account'), },
|
|
78 |
debit_amount => { type => 'Rose::DB::Object::Metadata::Column::Text', text => t8('Debit Amount'), },
|
|
79 |
debit_tax => { type => 'Rose::DB::Object::Metadata::Column::Numeric', text => t8('Debit Tax (lit)'), },
|
76 |
80 |
invnumber => { type => 'Rose::DB::Object::Metadata::Column::Text', text => t8('Reference'), },
|
77 |
81 |
name => { type => 'Rose::DB::Object::Metadata::Column::Text', text => t8('Name'), },
|
78 |
82 |
notes => { type => 'Rose::DB::Object::Metadata::Column::Text', text => t8('Notes'), },
|
... | ... | |
93 |
97 |
customer_id vendor_id
|
94 |
98 |
name vcnumber
|
95 |
99 |
transdate invnumber amount
|
96 |
|
debit_accno debit_accname
|
97 |
|
credit_accno credit_accname
|
|
100 |
debit_accno debit_accname debit_amount debit_tax
|
|
101 |
credit_accno credit_accname credit_amount credit_tax
|
98 |
102 |
taxdescription tax
|
99 |
103 |
tax_accno tax_accname taxkey
|
100 |
104 |
notes itime
|
... | ... | |
444 |
448 |
$haben->{notes} //= '';
|
445 |
449 |
$haben->{notes} = SL::HTML::Util->strip($haben->{notes});
|
446 |
450 |
|
|
451 |
my $net_amount = defined $amount->{net_amount}
|
|
452 |
? $::form->format_amount($myconfig, abs($amount->{net_amount}), 5)
|
|
453 |
: 0;
|
|
454 |
my $tax_amount = defined $amount->{net_amount}
|
|
455 |
? $::form->format_amount($myconfig, abs($amount->{amount}) - abs($amount->{net_amount}), 5)
|
|
456 |
: 0;
|
|
457 |
|
447 |
458 |
my %row = (
|
448 |
459 |
amount => $::form->format_amount($myconfig, abs($amount->{amount}),5),
|
449 |
460 |
debit_accno => $soll->{accno},
|
450 |
461 |
debit_accname => $soll->{accname},
|
|
462 |
debit_amount => -$soll->{amount},
|
|
463 |
debit_tax => $soll->{tax_accno} ? $tax_amount : 0,
|
451 |
464 |
credit_accno => $haben->{accno},
|
452 |
465 |
credit_accname => $haben->{accname},
|
453 |
|
tax => defined $amount->{net_amount} ? $::form->format_amount($myconfig, abs($amount->{amount}) - abs($amount->{net_amount}), 5) : 0,
|
|
466 |
credit_amount => $haben->{amount},
|
|
467 |
credit_tax => $haben->{tax_accno} ? $tax_amount : 0,
|
|
468 |
tax => $tax_amount,
|
454 |
469 |
notes => $haben->{notes},
|
455 |
470 |
(map { ($_ => $tax->{$_}) } qw(taxkey tax_accname tax_accno taxdescription)),
|
456 |
471 |
(map { ($_ => ($haben->{$_} // $soll->{$_})) } qw(trans_id invnumber name vcnumber transdate itime customer_id vendor_id)),
|
457 |
472 |
);
|
458 |
473 |
|
|
474 |
# if ($row{debit_amount} + $row{debit_tax} - ($row{credit_amount} + $row{credit_tax}) > 0.005) {
|
|
475 |
# $::lxdebug->dump(0, "broken taxes", [ $transaction, \%row, $row{debit_amount} + $row{debit_tax}, $row{credit_amount} + $row{credit_tax} ]);
|
|
476 |
# }
|
|
477 |
|
459 |
478 |
_normalize_cell($_) for values %row; # see CAVEATS
|
460 |
479 |
|
461 |
480 |
$csv->print($fh, [ map { $row{$_} } @datev_columns ]);
|
GoBD: experimentelle Spaltung von Betrag und Steuer in Soll und Haben