SL/DB/BankTransaction.pm - carp statt die
[kivitendo-erp.git] / SL / GL.pm
index 594d57c..60b54e2 100644 (file)
--- a/SL/GL.pm
+++ b/SL/GL.pm
@@ -41,6 +41,7 @@ package GL;
 use Data::Dumper;
 use SL::DATEV qw(:CONSTANTS);
 use SL::DBUtils;
+use SL::Util qw(trim);
 
 use strict;
 
@@ -104,7 +105,7 @@ sub post_transaction {
     $query =
       qq|INSERT INTO gl (id, employee_id) | .
       qq|VALUES (?, (SELECT id FROM employee WHERE login = ?))|;
-    @values = ($form->{id}, $form->{login});
+    @values = ($form->{id}, $::myconfig{login});
     do_query($form, $dbh, $query, @values);
   }
 
@@ -196,8 +197,6 @@ sub post_transaction {
       exporttype => DATEV_ET_BUCHUNGEN,
       format     => DATEV_FORMAT_KNE,
       dbh        => $dbh,
-      from       => $transdate,
-      to         => $transdate,
       trans_id   => $form->{id},
     );
 
@@ -232,9 +231,9 @@ sub all_transactions {
     $glwhere .= qq| AND g.reference ILIKE ?|;
     $arwhere .= qq| AND a.invnumber ILIKE ?|;
     $apwhere .= qq| AND a.invnumber ILIKE ?|;
-    push(@glvalues, '%' . $form->{reference} . '%');
-    push(@arvalues, '%' . $form->{reference} . '%');
-    push(@apvalues, '%' . $form->{reference} . '%');
+    push(@glvalues, like($form->{reference}));
+    push(@arvalues, like($form->{reference}));
+    push(@apvalues, like($form->{reference}));
   }
 
   if ($form->{department}) {
@@ -251,39 +250,39 @@ sub all_transactions {
     $glwhere .= " AND ac.trans_id IN (SELECT trans_id from acc_trans WHERE source ILIKE ?)";
     $arwhere .= " AND ac.trans_id IN (SELECT trans_id from acc_trans WHERE source ILIKE ?)";
     $apwhere .= " AND ac.trans_id IN (SELECT trans_id from acc_trans WHERE source ILIKE ?)";
-    push(@glvalues, '%' . $form->{source} . '%');
-    push(@arvalues, '%' . $form->{source} . '%');
-    push(@apvalues, '%' . $form->{source} . '%');
+    push(@glvalues, like($form->{source}));
+    push(@arvalues, like($form->{source}));
+    push(@apvalues, like($form->{source}));
   }
 
   # default Datumseinschränkung falls nicht oder falsch übergeben (sollte nie passieren)
   $form->{datesort} = 'transdate' unless $form->{datesort} =~ /^(transdate|gldate)$/;
 
-  if ($form->{datefrom}) {
+  if (trim($form->{datefrom})) {
     $glwhere .= " AND ac.$form->{datesort} >= ?";
     $arwhere .= " AND ac.$form->{datesort} >= ?";
     $apwhere .= " AND ac.$form->{datesort} >= ?";
-    push(@glvalues, $form->{datefrom});
-    push(@arvalues, $form->{datefrom});
-    push(@apvalues, $form->{datefrom});
+    push(@glvalues, trim($form->{datefrom}));
+    push(@arvalues, trim($form->{datefrom}));
+    push(@apvalues, trim($form->{datefrom}));
   }
 
-  if ($form->{dateto}) {
+  if (trim($form->{dateto})) {
     $glwhere .= " AND ac.$form->{datesort} <= ?";
     $arwhere .= " AND ac.$form->{datesort} <= ?";
     $apwhere .= " AND ac.$form->{datesort} <= ?";
-    push(@glvalues, $form->{dateto});
-    push(@arvalues, $form->{dateto});
-    push(@apvalues, $form->{dateto});
+    push(@glvalues, trim($form->{dateto}));
+    push(@arvalues, trim($form->{dateto}));
+    push(@apvalues, trim($form->{dateto}));
   }
 
-  if ($form->{description}) {
+  if (trim($form->{description})) {
     $glwhere .= " AND g.description ILIKE ?";
     $arwhere .= " AND ct.name ILIKE ?";
     $apwhere .= " AND ct.name ILIKE ?";
-    push(@glvalues, '%' . $form->{description} . '%');
-    push(@arvalues, '%' . $form->{description} . '%');
-    push(@apvalues, '%' . $form->{description} . '%');
+    push(@glvalues, like($form->{description}));
+    push(@arvalues, like($form->{description}));
+    push(@apvalues, like($form->{description}));
   }
 
   if ($form->{employee_id}) {
@@ -295,13 +294,13 @@ sub all_transactions {
     push(@apvalues, conv_i($form->{employee_id}));
   }
 
-  if ($form->{notes}) {
+  if (trim($form->{notes})) {
     $glwhere .= " AND g.notes ILIKE ?";
     $arwhere .= " AND a.notes ILIKE ?";
     $apwhere .= " AND a.notes ILIKE ?";
-    push(@glvalues, '%' . $form->{notes} . '%');
-    push(@arvalues, '%' . $form->{notes} . '%');
-    push(@apvalues, '%' . $form->{notes} . '%');
+    push(@glvalues, like($form->{notes}));
+    push(@arvalues, like($form->{notes}));
+    push(@apvalues, like($form->{notes}));
   }
 
   if ($form->{accno}) {
@@ -724,10 +723,14 @@ sub storno {
   $query = qq|SELECT * FROM gl WHERE id = ?|;
   $storno_row = selectfirst_hashref_query($form, $dbh, $query, $id);
 
-  $storno_row->{id}        = $new_id;
-  $storno_row->{storno_id} = $id;
-  $storno_row->{storno}    = 't';
-  $storno_row->{reference} = 'Storno-' . $storno_row->{reference};
+  $storno_row->{id}          = $new_id;
+  $storno_row->{storno_id}   = $id;
+  $storno_row->{storno}      = 't';
+  $storno_row->{reference}   = 'Storno-' . $storno_row->{reference};
+
+  $query = qq|SELECT id FROM employee WHERE login = ?|;
+  my ($employee_id) = selectrow_query($form, $dbh, $query, $::myconfig{login});
+  $storno_row->{employee_id} = $employee_id;
 
   delete @$storno_row{qw(itime mtime gldate)};
 
@@ -789,23 +792,26 @@ sub get_chart_balances {
 }
 
 sub get_tax_dropdown {
+  my ($self, $accno) = @_;
+
   my $myconfig = \%main::myconfig;
   my $form = $main::form;
 
   my $dbh = $form->get_standard_dbh($myconfig);
 
   my $query = qq|SELECT category FROM chart WHERE accno = ?|;
-  my ($category) = selectrow_query($form, $dbh, $query, $form->{accno});
+  my ($category) = selectrow_query($form, $dbh, $query, $accno);
 
   $query = qq|SELECT * FROM tax WHERE chart_categories like '%$category%' order by taxkey, rate|;
 
   my $sth = prepare_execute_query($form, $dbh, $query);
 
-  $form->{TAX_ACCOUNTS} = [];
+  my @tax_accounts = ();
   while (my $ref = $sth->fetchrow_hashref("NAME_lc")) {
-    push(@{ $form->{TAX_ACCOUNTS} }, $ref);
+    push(@tax_accounts, $ref);
   }
 
+  return @tax_accounts;
 }
 
 1;