Merge branch 'clients'
[kivitendo-erp.git] / bin / mozilla / gl.pl
index 626d688..c508ff1 100644 (file)
@@ -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|<td>| .
       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});
 
@@ -1111,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)) {
@@ -1217,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;