Buchungskonten in Verkaufsrechnungen anzeigen.
authorSven Schöling <s.schoeling@linet-services.de>
Tue, 25 Aug 2009 10:37:38 +0000 (12:37 +0200)
committerSven Schöling <s.schoeling@linet-services.de>
Tue, 25 Aug 2009 10:37:38 +0000 (12:37 +0200)
SL/AR.pm
bin/mozilla/ar.pl
locale/de/all
locale/de/ar

index 7357ae9..88ee519 100644 (file)
--- a/SL/AR.pm
+++ b/SL/AR.pm
@@ -407,12 +407,12 @@ sub ar_transactions {
   my ($self, $myconfig, $form) = @_;
 
   # connect to database
-  my $dbh = $form->dbconnect($myconfig);
+  my $dbh = $form->get_standard_dbh($myconfig);
 
   my @values;
 
   my $query =
-    qq|SELECT a.id, a.invnumber, a.ordnumber, a.transdate, | .
+    qq|SELECT DISTINCT a.id, a.invnumber, a.ordnumber, a.transdate, | .
     qq|  a.duedate, a.netamount, a.amount, a.paid, | .
     qq|  a.invoice, a.datepaid, a.terms, a.notes, a.shipvia, | .
     qq|  a.shippingpoint, a.storno, a.storno_id, a.globalproject_id, | .
@@ -423,14 +423,17 @@ sub ar_transactions {
     qq|  e.name AS employee, | .
     qq|  e2.name AS salesman, | .
     qq|  tz.description AS taxzone, | .
-    qq|  pt.description AS payment_terms | .
+    qq|  pt.description AS payment_terms, | .
+    qq{  ch.accno || ' -- ' || ch.description AS charts } .
     qq|FROM ar a | .
     qq|JOIN customer c ON (a.customer_id = c.id) | .
     qq|LEFT JOIN employee e ON (a.employee_id = e.id) | .
     qq|LEFT JOIN employee e2 ON (a.salesman_id = e2.id) | .
     qq|LEFT JOIN project pr ON (a.globalproject_id = pr.id)| .
     qq|LEFT JOIN tax_zones tz ON (tz.id = c.taxzone_id)| .
-    qq|LEFT JOIN payment_terms pt ON (pt.id = c.payment_id)|;
+    qq|LEFT JOIN payment_terms pt ON (pt.id = c.payment_id)| .
+    qq|LEFT JOIN acc_trans at ON (at.trans_id = a.id)| .
+    qq|INNER JOIN chart ch ON (ch.id = at.chart_id AND ch.link ~ 'AR[[:>:]]')|;
 
   my $where = "1 = 1";
   if ($form->{customer_id}) {
@@ -485,17 +488,9 @@ sub ar_transactions {
 
   $query .= " WHERE $where ORDER BY $sortorder";
 
-  my $sth = $dbh->prepare($query);
-  $sth->execute(@values) ||
-    $form->dberror($query . " (" . join(", ", @values) . ")");
+  my @result = selectall_hashref_query($form, $dbh, $query, @values);
 
-  $form->{AR} = [];
-  while (my $ar = $sth->fetchrow_hashref(NAME_lc)) {
-    push @{ $form->{AR} }, $ar;
-  }
-
-  $sth->finish;
-  $dbh->disconnect;
+  $form->{AR} = [ @result ];
 
   $main::lxdebug->leave_sub();
 }
index a86668c..f506cd9 100644 (file)
@@ -1428,6 +1428,8 @@ sub search {
           <tr>
                <td align=right><input name="l_payment_terms" class=checkbox type=checkbox value=Y></td>
                <td nowrap>| . $locale->text('Payment Terms') . qq|</td>
+               <td align=right><input name="l_charts" class=checkbox type=checkbox value=Y></td>
+               <td nowrap>| . $locale->text('Buchungskonto') . qq|</td>
           </tr>
 
            </table>
@@ -1498,7 +1500,7 @@ sub ar_transactions {
   @columns =
     qw(transdate id type invnumber ordnumber name netamount tax amount paid
        datepaid due duedate transaction_description notes salesman employee shippingpoint shipvia
-       marge_total marge_percent globalprojectnumber customernumber country ustid taxzone payment_terms);
+       marge_total marge_percent globalprojectnumber customernumber country ustid taxzone payment_terms charts);
 
   my @hidden_variables = map { "l_${_}" } @columns;
   push @hidden_variables, "l_subtotal", qw(open closed customer invnumber ordnumber transaction_description notes project_id transdatefrom transdateto);
@@ -1533,6 +1535,7 @@ sub ar_transactions {
     'ustid'                   => { 'text' => $locale->text('USt-IdNr.'), },
     'taxzone'                 => { 'text' => $locale->text('Steuersatz'), },
     'payment_terms'           => { 'text' => $locale->text('Payment Terms'), },
+    'charts'                  => { 'text' => $locale->text('Buchungskonto'), },
   );
 
   foreach my $name (qw(id transdate duedate invnumber ordnumber name datepaid employee shippingpoint shipvia transaction_description)) {
index ff5400e..f3125b0 100644 (file)
@@ -268,6 +268,7 @@ $self->{texts} = {
   'Buchungsdatum'               => 'Buchungsdatum',
   'Buchungsgruppe'              => 'Buchungsgruppe',
   'Buchungsgruppen'             => 'Buchungsgruppen',
+  'Buchungskonto'               => 'Buchungskonto',
   'Buchungsnummer'              => 'Buchungsnummer',
   'Business Number'             => 'Firmennummer',
   'Business Volume'             => 'Geschäftsvolumen',
index 695989d..268db0a 100644 (file)
@@ -27,6 +27,7 @@ $self->{texts} = {
   'Bin List'                    => 'Lagerliste',
   'Binding to the LDAP server as "#1" failed. Please check config/authentication.pl.' => 'Die Anmeldung am LDAP-Server als "#1" schlug fehl. Bitte &uuml;berpr&uuml;fen Sie die Angaben in config/authentication.pl.',
   'Bis'                         => 'bis',
+  'Buchungskonto'               => 'Buchungskonto',
   'CANCELED'                    => 'Storniert',
   'CR'                          => 'H',
   'CRM admin'                   => 'Administration',