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| |
|
-
+
| . $locale->text('Date') . qq| |
$button1
@@ -1258,7 +1310,7 @@ sub form_header {
| . $locale->text('Belegnummer') . qq| |
|
-
+
| . $locale->text('Buchungsdatum') . qq| |
{gldate} $readonly> |
@@ -1272,8 +1324,8 @@ sub form_header {
if ($form->{id}) {
print qq|
- | . $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"}
| | | | |