X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=inline;f=bin%2Fmozilla%2Fgl.pl;h=b6d9448287aecb53dfed9d9a52c86b7e4161d725;hb=98662ad2b031a81c88ce6da0babf6f9d0b37059a;hp=4491206110e12b35992edd4a13a120519ab0e599;hpb=2b89ec9756dc1d3525b6163fe4cf4f38af83f9d8;p=kivitendo-erp.git
diff --git a/bin/mozilla/gl.pl b/bin/mozilla/gl.pl
index 449120611..b6d944828 100644
--- a/bin/mozilla/gl.pl
+++ b/bin/mozilla/gl.pl
@@ -81,24 +81,14 @@ sub add {
# we use this only to set a default date
GL->transaction(\%myconfig, \%$form);
- map {
- $chart .=
- ""
- } @{ $form->{chart} };
map {
$tax .=
qq|"
- } @{ $form->{chart} };
map {
$tax .=
@@ -134,10 +120,6 @@ sub edit {
. ($_->{rate} * 100) . qq| %|
} @{ $form->{TAX} };
- $form->{chart} = $chart;
-
- $form->{taxchart} = $tax;
-
$form->{amount} = $form->format_amount(\%myconfig, $form->{amount}, 2);
# departments
@@ -166,6 +148,8 @@ sub edit {
$form->{"credit_$j"} += $form->{"tax_$j"};
}
}
+ $form->{"project_id_$j"} = $ref->{project_id};
+
} else {
$form->{"accno_$i"} = "$ref->{accno}--$ref->{tax_id}";
for (qw(fx_transaction source memo)) { $form->{"${_}_$i"} = $ref->{$_} }
@@ -177,6 +161,7 @@ sub edit {
$form->{"credit_$i"} = $ref->{amount};
}
$form->{"taxchart_$i"} = "0--0.00";
+ $form->{"project_id_$i"} = $ref->{project_id};
$i++;
}
if ($ref->{taxaccno} && !$tax) {
@@ -186,7 +171,6 @@ sub edit {
$taxaccno = "";
$tax = 0;
}
-
}
$form->{rowcount} = $i;
@@ -494,10 +478,14 @@ sub generate_report {
. $locale->date(\%myconfig, $form->{dateto}, 1);
}
- @columns =
- qw(transdate id reference description notes source debit debit_accno credit
- credit_accno debit_tax debit_tax_accno credit_tax credit_tax_accno accno
- gifi_accno projectnumbers);
+ @columns = $form->sort_columns( qw(
+ transdate id reference description
+ notes source debit debit_accno
+ credit credit_accno debit_tax debit_tax_accno
+ credit_tax credit_tax_accno accno gifi_accno
+ projectnumbers
+ )
+ );
if ($form->{accno} || $form->{gifi_accno}) {
@columns = grep !/(accno|gifi_accno)/, @columns;
@@ -778,11 +766,11 @@ sub generate_report {
}
$transdate = "";
- foreach $key (sort keys(%{ $ref->{transdate} })) {
+ foreach $key (sort keys(%{ $ref->{ac_transdate} })) {
if ($key == 0) {
- $transdate = "$ref->{transdate}{$key}";
+ $transdate = "$ref->{ac_transdate}{$key}";
} else {
- $transdate .= "
$ref->{transdate}{$key}";
+ $transdate .= "
$ref->{ac_transdate}{$key}";
}
}
@@ -833,6 +821,12 @@ sub generate_report {
map { $column_data{$_} = "
| " } @column_index;
+ my $balanced_ledger = $totaldebit
+ + $totaldebittax
+ - $totalcredit
+ - $totalcredittax;
+ # = 0 for balanced ledger
+
$column_data{debit} =
""
. $form->format_amount(\%myconfig, $totaldebit, 2, " ") . " | ";
@@ -857,6 +851,27 @@ sub generate_report {
print qq|
+ |;
+
+
+ if ( abs($balanced_ledger) > 0.001 ) {
+
+ print qq||
+ . $locale->text('Unbalanced Ledger')
+ . ": "
+ . $form->format_amount(\%myconfig, $balanced_ledger, 3, " ")
+
+ } elsif ( abs($balanced_ledger) <= 0.001 ) {
+
+ print qq| | |
+ . $locale->text('Balanced Ledger')
+
+ }
+
+
+ print qq|
+ |
+
@@ -1050,10 +1065,6 @@ sub display_rows {
$form->{totaldebit} = 0;
$form->{totalcredit} = 0;
- my $chart = $form->{chart};
- $chart = $form->unquote($chart);
- $form->{taxchart} = $form->unquote($form->{taxchart});
- $taxchart = $form->{taxchart};
my @old_project_ids = ();
map({ push(@old_project_ids, $form->{"project_id_$_"})
@@ -1061,7 +1072,10 @@ sub display_rows {
$form->get_lists("projects" => { "key" => "ALL_PROJECTS",
"all" => 0,
- "old_id" => \@old_project_ids });
+ "old_id" => \@old_project_ids },
+ "charts" => { "key" => "ALL_CHARTS",
+ "transdate" => $form->{transdate} },
+ "taxcharts" => "ALL_TAXCHARTS");
my %project_labels = ();
my @project_values = ("");
@@ -1070,28 +1084,79 @@ sub display_rows {
$project_labels{$item->{"id"}} = $item->{"projectnumber"};
}
+ my %chart_labels = ();
+ my @chart_values = ();
+ my %charts = ();
+ my $taxchart_init;
+ foreach my $item (@{ $form->{ALL_CHARTS} }) {
+ my $key = Q($item->{accno}) . "--" . Q($item->{tax_id});
+ $taxchart_init = $item->{taxkey_id} unless (@chart_values);
+ push(@chart_values, $key);
+ $chart_labels{$key} = H($item->{accno}) . "--" . H($item->{description});
+ $charts{$item->{accno}} = $item;
+ }
+
+ my %taxchart_labels = ();
+ my @taxchart_values = ();
+ my %taxcharts = ();
+ foreach my $item (@{ $form->{ALL_TAXCHARTS} }) {
+ my $key = Q($item->{id}) . "--" . Q($item->{rate});
+ $taxchart_init = $key if ($taxchart_init eq $item->{taxkey});
+ push(@taxchart_values, $key);
+ $taxchart_labels{$key} = H($item->{taxdescription}) . " " .
+ H($item->{rate} * 100) . ' %';
+ $taxcharts{$item->{id}} = $item;
+ }
+
for $i (1 .. $form->{rowcount}) {
$source = qq|
- | |;
+ | |;
$memo = qq|
- | |;
+ | |;
+
+ my $selected_accno_full;
+ my ($accno_row) = split(/--/, $form->{"accno_$i"});
+ my $item = $charts{$accno_row};
+ $selected_accno_full = "$item->{accno}--$item->{tax_id}";
+
+ my $selected_taxchart = $form->{"taxchart_$i"};
+ my ($selected_accno, $selected_tax_id) = split(/--/, $selected_accno_full);
+ my ($previous_accno, $previous_tax_id) = split(/--/, $form->{"previous_accno_$i"});
+
+ if ($previous_accno &&
+ ($previous_accno eq $selected_accno) &&
+ ($previous_tax_id ne $selected_tax_id)) {
+ my $item = $taxcharts{$selected_tax_id};
+ $selected_taxchart = "$item->{id}--$item->{rate}";
+ }
- if ($init) {
- $accno = qq|
- | |;
- $tax =
- qq| | |;
+ $selected_accno = '' if ($init);
+ $selected_taxchart = $taxchart_init unless ($selected_taxchart ne "");
+
+ $accno = qq|| .
+ NTI($cgi->popup_menu('-name' => "accno_$i",
+ '-id' => "accno_$i",
+ '-onChange' => "setTaxkey(this, $i)",
+ '-style' => 'width:200px',
+ '-values' => \@chart_values,
+ '-labels' => \%chart_labels,
+ '-default' => $selected_accno_full))
+ . $cgi->hidden('-name' => "previous_accno_$i",
+ '-default' => $selected_accno_full)
+ . qq| | |;
+ $tax = qq|| .
+ NTI($cgi->popup_menu('-name' => "taxchart_$i",
+ '-id' => "taxchart_$i",
+ '-style' => 'width:200px',
+ '-values' => \@taxchart_values,
+ '-labels' => \%taxchart_labels,
+ '-default' => $selected_taxchart))
+ . qq| | |;
+ if ($init) {
$korrektur =
- qq| | |;
+ qq||;
if ($form->{transfer}) {
$fx_transaction = qq|
| |
@@ -1119,23 +1184,6 @@ sub display_rows {
}
if ($i < $form->{rowcount}) {
-
- $accno = $chart;
- $chart_selected = $form->{"accno_$i"};
- $accno =~
- s/value=\"$chart_selected\"/value=\"$chart_selected\" selected/;
- $accno =
- qq| | |;
- $tax = $taxchart;
- $tax_selected = $form->{"taxchart_$i"};
- $tax =~ s/value=\"$tax_selected\"/value=\"$tax_selected\" selected/;
- $tax =
- qq| | |;
-
if ($form->{transfer}) {
$checked = ($form->{"fx_transaction_$i"}) ? "1" : "";
$x = ($checked) ? "x" : "";
@@ -1145,24 +1193,12 @@ sub display_rows {
}
$checked = ($form->{"korrektur_$i"}) ? "checked" : "";
$korrektur =
- qq| | |;
+ qq| | |;
$form->hide_form("accno_$i");
} else {
-
- $accno = qq|
- | |;
- $tax = qq|
- | |;
-
$korrektur =
- qq| | |;
+ qq| | |;
if ($form->{transfer}) {
$fx_transaction = qq|
|
@@ -1189,12 +1225,9 @@ sub display_rows {
print qq|
$accno
$fx_transaction
- |
- |
- |
+ |
+ |
+ |
$korrektur
$tax
$source
@@ -1252,7 +1285,7 @@ sub form_header {
qq||;
} else {
$description =
- qq||;
+ qq||;
}
$taxincluded = ($form->{taxincluded}) ? "checked" : "";
@@ -1281,7 +1314,7 @@ sub form_header {
# with JavaScript Calendar
$button1 = qq|
-
+ |
text('button') . qq|> |
|;
@@ -1293,7 +1326,7 @@ sub form_header {
# without JavaScript Calendar
$button1 =
- qq| | |;
+ qq| | |;
}
$form->header;
@@ -1308,8 +1341,6 @@ sub form_header {
{closedto}>
{locked}>
-
-
@@ -1322,7 +1353,7 @@ sub form_header {