X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fgl.pl;h=fb0de34e94e94bc2a96e789b74129e53b69de362;hb=03d3d025ea4c8bea085fc7cdf1fe7be0b513eb63;hp=a0a1a73f3d2309a81131cad68114154eed7e0951;hpb=c497b0352f95a55d204101b70ac771b2dc21ddee;p=kivitendo-erp.git diff --git a/bin/mozilla/gl.pl b/bin/mozilla/gl.pl index a0a1a73f3..fb0de34e9 100644 --- a/bin/mozilla/gl.pl +++ b/bin/mozilla/gl.pl @@ -257,16 +257,16 @@ sub generate_report { my %myconfig = %main::myconfig; my $locale = $main::locale; - # generate_report wird beim ersten Aufruf per Weiter-Knopf und POST mit der hidden Variablen sort mit Wert "datesort" (früher "transdate" als Defaultsortiervariable) übertragen + # generate_report wird beim ersten Aufruf per Weiter-Knopf und POST mit der hidden Variablen sort mit Wert "datesort" (früher "transdate" als Defaultsortiervariable) übertragen #
# # form->{sort} setzen # # anhand von neuer Variable datesort wird jetzt $form->{sort} auf transdate oder gldate gesetzt - # damit ist die Hidden Variable "sort" wahrscheinlich sogar überflüssig + # damit ist die Hidden Variable "sort" wahrscheinlich sogar überflüssig - # ändert man die Sortierreihenfolge per Klick auf eine der Überschriften wird die Variable "sort" per GET übergeben, z.B. id,transdate, gldate, ... + # ändert man die Sortierreihenfolge per Klick auf eine der Überschriften wird die Variable "sort" per GET übergeben, z.B. id,transdate, gldate, ... # gl.pl?action=generate_report&employee=18383--Jan%20B%c3%bcren&datesort=transdate&category=X&l_transdate=Y&l_gldate=Y&l_id=Y&l_reference=Y&l_description=Y&l_source=Y&l_debit=Y&l_credit=Y&sort=gldate&sortdir=0 if ( $form->{sort} eq 'datesort' ) { # sollte bei einem Post (Aufruf aus Suchmaske) immer wahr sein @@ -304,19 +304,21 @@ sub generate_report { ); # add employee here, so that variable is still known and passed in url when choosing a different sort order in resulting table - my @hidden_variables = qw(accno source reference department description notes project_id datefrom dateto employee datesort category l_subtotal); + my @hidden_variables = qw(accno source reference department description notes project_id datefrom dateto employee_id datesort category l_subtotal); push @hidden_variables, map { "l_${_}" } @columns; foreach ( @hidden_variables ) { print URL "$_\n"; }; + my $employee = $form->{employee_id} ? SL::DB::Employee->new(id => $form->{employee_id})->load->name : ''; + my (@options, @date_options); push @options, $locale->text('Account') . " : $form->{accno} $form->{account_description}" if ($form->{accno}); push @options, $locale->text('Source') . " : $form->{source}" if ($form->{source}); push @options, $locale->text('Reference') . " : $form->{reference}" if ($form->{reference}); push @options, $locale->text('Description') . " : $form->{description}" if ($form->{description}); push @options, $locale->text('Notes') . " : $form->{notes}" if ($form->{notes}); - push @options, $locale->text('Employee') . " : $form->{employee_name}" if ($form->{employee_name}); + push @options, $locale->text('Employee') . " : $employee" if $employee; my $datesorttext = $form->{datesort} eq 'transdate' ? $locale->text('Invoice Date') : $locale->text('Booking Date'); push @date_options, "$datesorttext" if ($form->{datesort} and ($form->{datefrom} or $form->{dateto})); push @date_options, $locale->text('From'), $locale->date(\%myconfig, $form->{datefrom}, 1) if ($form->{datefrom}); @@ -671,8 +673,8 @@ sub display_rows { my %charts = (); my $taxchart_init; foreach my $item (@{ $form->{ALL_CHARTS} }) { - if ($item->{charttype} eq 'H'){ #falls überschrift - next; #überspringen (Bug 1150) + if ($item->{charttype} eq 'H'){ #falls ÃŒberschrift + next; #ÃŒberspringen (Bug 1150) } my $key = $item->{accno} . "--" . $item->{tax_id}; $taxchart_init = $item->{tax_id} unless (@chart_values); @@ -681,17 +683,6 @@ sub display_rows { $charts{$item->{accno}} = $item; } - my %taxchart_labels = (); - my @taxchart_values = (); - my %taxcharts = (); - foreach my $item (@{ $form->{ALL_TAXCHARTS} }) { - my $key = $item->{id} . "--" . $item->{rate}; - $taxchart_init = $key if ($taxchart_init == $item->{id}); - push(@taxchart_values, $key); - $taxchart_labels{$key} = $item->{taxdescription} . " " . $item->{rate} * 100 . ' %'; - $taxcharts{$item->{id}} = $item; - } - my ($source, $memo, $source_hidden, $memo_hidden); for my $i (1 .. $form->{rowcount}) { if ($form->{show_details}) { @@ -715,6 +706,20 @@ sub display_rows { my ($selected_accno, $selected_tax_id) = split(/--/, $selected_accno_full); my ($previous_accno, $previous_tax_id) = split(/--/, $form->{"previous_accno_$i"}); + my %taxchart_labels = (); + my @taxchart_values = (); + my %taxcharts = (); + my $filter_accno; + $filter_accno = $::form->{ALL_CHARTS}[0]->{accno}; + $filter_accno = $selected_accno if (!$init and $i < $form->{rowcount}); + foreach my $item ( GL->get_tax_dropdown($filter_accno) ) { + my $key = $item->{id} . "--" . $item->{rate}; + $taxchart_init = $key if ($taxchart_init == $item->{id}); + push(@taxchart_values, $key); + $taxchart_labels{$key} = $item->{taxdescription} . " " . $item->{rate} * 100 . ' %'; + $taxcharts{$item->{id}} = $item; + } + if ($previous_accno && ($previous_accno eq $selected_accno) && ($previous_tax_id ne $selected_tax_id)) { @@ -728,7 +733,7 @@ sub display_rows { my $accno = qq|| . NTI($cgi->popup_menu('-name' => "accno_$i", '-id' => "accno_$i", - '-onChange' => "setTaxkey($i)", + '-onChange' => "updateTaxes($i);", '-style' => 'width:200px', '-values' => \@chart_values, '-labels' => \%chart_labels, @@ -738,11 +743,11 @@ sub display_rows { . qq||; my $tax_ddbox = qq|| . NTI($cgi->popup_menu('-name' => "taxchart_$i", - '-id' => "taxchart_$i", - '-style' => 'width:200px', - '-values' => \@taxchart_values, - '-labels' => \%taxchart_labels, - '-default' => $selected_taxchart)) + '-id' => "taxchart_$i", + '-style' => 'width:200px', + '-values' => \@taxchart_values, + '-labels' => \%taxchart_labels, + '-default' => $selected_taxchart)) . qq||; my ($fx_transaction, $checked); @@ -860,8 +865,7 @@ sub form_header { "all" => 0, "old_id" => \@old_project_ids }, "charts" => { "key" => "ALL_CHARTS", - "transdate" => $::form->{transdate} }, - "taxcharts" => "ALL_TAXCHARTS"); + "transdate" => $::form->{transdate} }); GL->get_chart_balances('charts' => $::form->{ALL_CHARTS}); @@ -999,6 +1003,10 @@ sub post_transaction { my $debitcredit; my %split_safety = (); + my $dbh = $form->dbconnect_noauto(\%myconfig); + my ($notax_id) = selectrow_query($form, $dbh, "SELECT id FROM tax WHERE taxkey = 0 LIMIT 1", ); + $dbh->disconnect; + my @flds = qw(accno debit credit projectnumber fx_transaction source memo tax taxchart); for my $i (1 .. $form->{rowcount}) { @@ -1039,17 +1047,17 @@ sub post_transaction { $form->{debitlock} = 1; } if ($debitcredit && $credittax) { - $form->{"taxchart_$i"} = "0--0.00"; + $form->{"taxchart_$i"} = "$notax_id--0.00"; } if (!$debitcredit && $debittax) { - $form->{"taxchart_$i"} = "0--0.00"; + $form->{"taxchart_$i"} = "$notax_id--0.00"; } my $amount = ($form->{"debit_$i"} == 0) ? $form->{"credit_$i"} : $form->{"debit_$i"}; my $j = $#a; if (($debitcredit && $credittax) || (!$debitcredit && $debittax)) { - $form->{"taxchart_$i"} = "0--0.00"; + $form->{"taxchart_$i"} = "$notax_id--0.00"; $form->{"tax_$i"} = 0; } my ($taxkey, $rate) = split(/--/, $form->{"taxchart_$i"}); @@ -1107,6 +1115,9 @@ sub post_transaction { $form->{taxincluded} = 0 if !$taxtotal; # this is just for the wise guys + + $form->error($locale->text('Cannot post transaction above the maximum future booking date!')) + if ($form->date_max_future($form->{"transdate"}, \%myconfig)); $form->error($locale->text('Cannot post transaction for a closed period!')) if ($form->date_closed($form->{"transdate"}, \%myconfig)); if ($form->round_amount($debit, 2) != $form->round_amount($credit, 2)) { @@ -1213,4 +1224,23 @@ sub continue { call_sub($main::form->{nextsub}); } +sub get_tax_dropdown { + $main::lxdebug->enter_sub(); + + my $form = $main::form; + my @tax_accounts = GL->get_tax_dropdown($form->{accno}); + + foreach my $item (@tax_accounts) { + $item->{taxdescription} = $::locale->{iconv_utf8}->convert($item->{taxdescription}); + $item->{taxdescription} .= ' ' . $form->round_amount($item->{rate} * 100); + } + + $form->{TAX_ACCOUNTS} = [ @tax_accounts ]; + + print $form->ajax_response_header, $form->parse_html_template("gl/update_tax_accounts"); + + $main::lxdebug->leave_sub(); + +} + 1;