X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fgl.pl;h=da2da5b37dc84cca62c6141a1a0c3bde72be2ba1;hb=32ebe005ef3be63e188a653c7a831a39eb0f8e63;hp=3433b47f05b26287d4e292b851bdda04c285cf3c;hpb=c1c68d325862924ce923738ba525f550b0ac824d;p=kivitendo-erp.git diff --git a/bin/mozilla/gl.pl b/bin/mozilla/gl.pl index 3433b47f0..da2da5b37 100644 --- a/bin/mozilla/gl.pl +++ b/bin/mozilla/gl.pl @@ -391,7 +391,7 @@ sub generate_report { $form->{title} = $locale->text('General Ledger'); - $ml = ($form->{ml} =~ /(A|E)/) ? -1 : 1; + $ml = ($form->{ml} =~ /(A|E|Q)/) ? -1 : 1; unless ($form->{category} eq 'X') { $form->{title} .= " : " . $locale->text($acctype{ $form->{category} }); @@ -616,18 +616,18 @@ sub generate_report { |; } - + $form->{balance} *= $ml; foreach $ref (@{ $form->{GL} }) { - + $form->{balance} *= $ml; # if item ne sort print subtotal if ($form->{l_subtotal} eq 'Y') { if ($sameitem ne $ref->{ $form->{sort} }) { &gl_subtotal; } } - foreach $key (sort keys(%{ $ref->{amount} })) { - $form->{balance} += $ref->{amount}{$key}; - } + #foreach $key (sort keys(%{ $ref->{amount} })) { + # $form->{balance} += $ref->{amount}{$key}; + #} $debit = ""; foreach $key (sort keys(%{ $ref->{debit} })) { @@ -639,6 +639,7 @@ sub generate_report { $debit .= "
" . $form->format_amount(\%myconfig, $ref->{debit}{$key}, 2, 0); } + $form->{balance} = abs($form->{balance}) - abs($ref->{debit}{$key}); } $credit = ""; @@ -651,6 +652,7 @@ sub generate_report { $credit .= "
" . $form->format_amount(\%myconfig, $ref->{credit}{$key}, 2, 0); } + $form->{balance} = abs($form->{balance}) - abs( $ref->{credit}{$key}); } $debittax = ""; @@ -664,6 +666,7 @@ sub generate_report { $debittax .= "
" . $form->format_amount(\%myconfig, $ref->{debit_tax}{$key}, 2, 0); } + $form->{balance} = abs($form->{balance}) - abs($ref->{debit_tax}{$key}); } $credittax = ""; @@ -677,6 +680,7 @@ sub generate_report { $credittax .= "
" . $form->format_amount(\%myconfig, $ref->{credit_tax}{$key}, 2, 0); } + $form->{balance} = abs($form->{balance}) - abs($ref->{credit_tax}{$key}); } $debitaccno = ""; @@ -769,7 +773,7 @@ sub generate_report { "{gifi_accno}&callback=$callback>$ref->{gifi_accno} "; $column_data{balance} = "" - . $form->format_amount(\%myconfig, $form->{balance} * $ml, 2, 0) + . $form->format_amount(\%myconfig, $form->{balance}, 2, 0) . ""; $i++; @@ -899,11 +903,16 @@ sub update { $form->{oldtransdate} = $form->{transdate}; } - my @a = (); - my $count = 0; - my $debittax = 0; - my $credittax = 0; - my @flds = + my @a = (); + my $count = 0; + my $debittax = 0; + my $credittax = 0; + my $debitcount = 0; + my $creditcount = 0; + $debitlock = 0; + $creditlock = 0; + + my @flds = qw(accno debit credit projectnumber fx_transaction source memo tax taxchart); for my $i (1 .. $form->{rowcount}) { @@ -916,6 +925,36 @@ sub update { push @a, {}; $debitcredit = ($form->{"debit_$i"} == 0) ? "0" : "1"; + if ($debitcredit) { + $debitcount++; + } else { + $creditcount++; + } + + if (($debitcount >= 2) && ($creditcount == 2)) { + $form->{"credit_$i"} = 0; + $form->{"tax_$i"} = 0; + $creditcount--; + $creditlock = 1; + } + if (($creditcount >= 2) && ($debitcount == 2)) { + $form->{"debit_$i"} = 0; + $form->{"tax_$i"} = 0; + $debitcount--; + $debitlock = 1; + } + if (($creditcount == 1) && ($debitcount == 2)) { + $creditlock = 1; + } + if (($creditcount == 2) && ($debitcount == 1)) { + $debitlock = 1; + } + if ($debitcredit && $credittax) { + $form->{"taxchart_$i"} = "0--0.00"; + } + if (!$debitcredit && $debittax) { + $form->{"taxchart_$i"} = "0--0.00"; + } $amount = ($form->{"debit_$i"} == 0) ? $form->{"credit_$i"} @@ -1027,9 +1066,13 @@ sub display_rows { } } else { - - $form->{totaldebit} += $form->{"debit_$i"}; - $form->{totalcredit} += $form->{"credit_$i"}; + if ($form->{"debit_$i"} != 0) { + $form->{totaldebit} += $form->{"debit_$i"}; + $form->{totaldebit} += $form->{"tax_$i"}; + } else { + $form->{totalcredit} += $form->{"credit_$i"}; + $form->{totalcredit} += $form->{"tax_$i"}; + } for (qw(debit credit tax)) { $form->{"${_}_$i"} = @@ -1102,14 +1145,23 @@ sub display_rows { } } } + my $debitreadonly = ""; + my $creditreadonly = ""; + if ($i == $form->{rowcount}) { + if ($debitlock) { + $debitreadonly = "readonly"; + } elsif ($creditlock) { + $creditreadonly = "readonly"; + } + } print qq| $accno $fx_transaction + . ($i + 6 + (($i - 1) * 8)) . qq| $debitreadonly> + . ($i + 7 + (($i - 1) * 8)) . qq| $creditreadonly> $korrektur @@ -1241,10 +1293,10 @@ sub form_header { - +
| . $locale->text('Reference') . qq|| . $locale->text('Reference') . qq| - +
$button1 @@ -1258,7 +1310,7 @@ sub form_header {
| . $locale->text('Date') . qq|| . $locale->text('Belegnummer') . qq| - +
@@ -1272,8 +1324,8 @@ sub form_header { if ($form->{id}) { print qq| - - + +
| . $locale->text('Buchungsdatum') . qq| {gldate} $readonly>
| . $locale->text('Description') . qq|$description| . $locale->text('Description') . qq|$description @@ -1294,8 +1346,8 @@ sub form_header { } else { print qq| - - + +
| . $locale->text('Description') . qq|$description| . $locale->text('Description') . qq|$description @@ -1308,6 +1360,7 @@ sub form_header { } print qq| + +
+ + + + +
| @@ -1343,11 +1396,19 @@ sub form_footer { map { $form->{$_} = - $form->format_amount(\%myconfig, $form->{$_}, $decimalplaces, " ") + $form->format_amount(\%myconfig, $form->{$_}, 2, " ") } qw(totaldebit totalcredit); print qq| +
$form->{totaldebit} $form->{totalcredit}
+
{path}> @@ -1463,11 +1524,16 @@ sub post { # check project &check_project; - my @a = (); - my $count = 0; - my $debittax = 0; - my $credittax = 0; - my @flds = + my @a = (); + my $count = 0; + my $debittax = 0; + my $credittax = 0; + my $debitcount = 0; + my $creditcount = 0; + $creditlock = 0; + $debitlock = 0; + + my @flds = qw(accno debit credit projectnumber fx_transaction source memo tax taxchart); for my $i (1 .. $form->{rowcount}) { @@ -1480,6 +1546,37 @@ sub post { push @a, {}; $debitcredit = ($form->{"debit_$i"} == 0) ? "0" : "1"; + + if ($debitcredit) { + $debitcount++; + } else { + $creditcount++; + } + + if (($debitcount >= 2) && ($creditcount == 2)) { + $form->{"credit_$i"} = 0; + $form->{"tax_$i"} = 0; + $creditcount--; + $creditlock = 1; + } + if (($creditcount >= 2) && ($debitcount == 2)) { + $form->{"debit_$i"} = 0; + $form->{"tax_$i"} = 0; + $debitcount--; + $debitlock = 1; + } + if (($creditcount == 1) && ($debitcount == 2)) { + $creditlock = 1; + } + if (($creditcount == 2) && ($debitcount == 1)) { + $debitlock = 1; + } + if ($debitcredit && $credittax) { + $form->{"taxchart_$i"} = "0--0.00"; + } + if (!$debitcredit && $debittax) { + $form->{"taxchart_$i"} = "0--0.00"; + } $amount = ($form->{"debit_$i"} == 0) ? $form->{"credit_$i"}