IS::get_customer auf neue DBUtils umgestellt,
authorSven Schöling <s.schoeling@linet-services.de>
Thu, 22 Mar 2007 15:36:43 +0000 (15:36 +0000)
committerSven Schöling <s.schoeling@linet-services.de>
Thu, 22 Mar 2007 15:36:43 +0000 (15:36 +0000)
neue DBUtils funktion selectfirst_hashref_query

SL/DBUtils.pm
SL/IS.pm

index 7a0b9cf..7145dc2 100644 (file)
@@ -4,7 +4,7 @@ require Exporter;
 @ISA = qw(Exporter);
 
 @EXPORT = qw(conv_i conv_date conv_dateq do_query selectrow_query do_statement
-             dump_query quote_db_date selectall_hashref_query
+             dump_query quote_db_date selectall_hashref_query selectfirst_hashref_query
              prepare_execute_query);
 
 sub conv_i {
@@ -110,5 +110,14 @@ sub selectall_hashref_query {
   return $result;
 }
 
+sub selectfirst_hashref_query {
+  my ($form, $dbh, $query) = splice(@_, 0, 3);
+
+  my $sth = prepare_execute_query($form, $dbh, $query, @_);
+  my $ref = $sth->fetchrow_hashref();
+  $sth->finish();
+
+  return $ref;
+}
 
 1;
index cd860ae..6c0f71b 100644 (file)
--- a/SL/IS.pm
+++ b/SL/IS.pm
@@ -1689,42 +1689,24 @@ sub get_customer {
                  FROM customer c
                 LEFT JOIN business b ON (b.id = c.business_id)
                  LEFT JOIN payment_terms pt ON c.payment_id = pt.id
-                WHERE c.id = $form->{customer_id}|;
-  my $sth = $dbh->prepare($query);
-  $sth->execute || $form->dberror($query);
-
-  $ref = $sth->fetchrow_hashref(NAME_lc);
-
+                WHERE c.id = ?|;
+  $ref = selectfirst_hashref_query($form, $dbh, $query, $form->{customer_id});
   map { $form->{$_} = $ref->{$_} } keys %$ref;
-  $sth->finish;
-
-  my $query = qq|SELECT sum(a.amount-a.paid) AS dunning_amount FROM ar a WHERE a.paid < a.amount AND a.customer_id=$form->{customer_id} AND a.dunning_id IS NOT NULL|;
-  my $sth = $dbh->prepare($query);
-
-  $sth->execute || $form->dberror($query);
-  
-  $ref = $sth->fetchrow_hashref(NAME_lc);
 
+  my $query = qq|SELECT sum(a.amount - a.paid) AS dunning_amount FROM ar a 
+                 WHERE a.paid < a.amount AND a.customer_id = ? AND a.dunning_id IS NOT NULL|;
+  $ref = selectfirst_hashref_query($form, $dbh, $query, $form->{customer_id});
   map { $form->{$_} = $ref->{$_} } keys %$ref;
-  $sth->finish;
-
-  #print(STDERR "DUNNING AMOUTN $form->{dunning_amount}\n");
-
-  my $query = qq|SELECT dnn.dunning_description AS max_dunning_level FROM dunning_config dnn WHERE id in (select dunning_id from ar WHERE paid < amount AND customer_id=$form->{customer_id} AND dunning_id IS NOT NULL) ORDER BY dunning_level DESC LIMIT 1|;
-  my $sth = $dbh->prepare($query);
-
-  $sth->execute || $form->dberror($query);
-
-  $ref = $sth->fetchrow_hashref(NAME_lc);
 
+  my $query = qq|SELECT dnn.dunning_description AS max_dunning_level FROM dunning_config dnn 
+                 WHERE id in (SELECT dunning_id from ar WHERE paid < amount AND customer_id = ? AND dunning_id IS NOT NULL)
+                 ORDER BY dunning_level DESC LIMIT 1|;
+  $ref = selectfirst_hashref_query($form, $dbh, $query, $form->{customer_id});
   map { $form->{$_} = $ref->{$_} } keys %$ref;
-  $sth->finish;
-  #print(STDERR "LEVEL $form->{max_dunning_level}\n");
-
 
   #check whether payment_terms are better than old payment_terms
   if (($form->{payment_id} ne "") && ($form->{customer_payment_id} ne "")) {
-    my $query = qq|select (select ranking from payment_terms WHERE id = $form->{payment_id}), (select ranking from payment_terms WHERE id = $form->{customer_payment_id})|;
+    my $query = qq|SELECT (SELECT ranking from payment_terms WHERE id = $form->{payment_id}), (SELECT ranking FROM payment_terms WHERE id = $form->{customer_payment_id})|;
     my $stw = $dbh->prepare($query);
     $stw->execute || $form->dberror($query);
     ($old_ranking, $new_ranking) = $stw->fetchrow_array;