X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fgl.pl;h=c508ff1f7b5a8c3b997726daa1a1f3c173786111;hb=44d893c2d2589ac8d09d255f9be0e38d74c48407;hp=a0a1a73f3d2309a81131cad68114154eed7e0951;hpb=008c2e1529744e195616ac2cbf7736f06a90816e;p=kivitendo-erp.git diff --git a/bin/mozilla/gl.pl b/bin/mozilla/gl.pl index a0a1a73f3..c508ff1f7 100644 --- a/bin/mozilla/gl.pl +++ b/bin/mozilla/gl.pl @@ -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}); @@ -684,7 +686,7 @@ sub display_rows { my %taxchart_labels = (); my @taxchart_values = (); my %taxcharts = (); - foreach my $item (@{ $form->{ALL_TAXCHARTS} }) { + foreach my $item (@{ $form->{TAX_ACCOUNTS} }) { my $key = $item->{id} . "--" . $item->{rate}; $taxchart_init = $key if ($taxchart_init == $item->{id}); push(@taxchart_values, $key); @@ -728,7 +730,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, @@ -860,8 +862,10 @@ sub form_header { "all" => 0, "old_id" => \@old_project_ids }, "charts" => { "key" => "ALL_CHARTS", - "transdate" => $::form->{transdate} }, - "taxcharts" => "ALL_TAXCHARTS"); + "transdate" => $::form->{transdate} }); + + $::form->{accno} = $::form->{ALL_CHARTS}[0]->{accno}; + GL->get_tax_dropdown(); 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,21 @@ sub continue { call_sub($main::form->{nextsub}); } +sub get_tax_dropdown { + + my $form = $main::form; + $main::lxdebug->enter_sub(); + GL->get_tax_dropdown(); + + foreach my $item (@{ $form->{TAX_ACCOUNTS} }) { + $item->{taxdescription} = $::locale->{iconv_utf8}->convert($item->{taxdescription}); + $item->{taxdescription} .= ' ' . $form->round_amount($item->{rate} * 100); + } + + print $form->ajax_response_header, $form->parse_html_template("gl/update_tax_accounts"); + + $main::lxdebug->leave_sub(); + +} + 1;