]> wagnertech.de Git - mfinanz.git/blobdiff - SL/CA.pm
Spalte taxnumber aus Tabelle tax entfernt
[mfinanz.git] / SL / CA.pm
index ef6e9c373b5ce32533dd0e64c808823f29ca49a7..85f8dfdb9e5c2fc01c39ba8d6ce1066e07f14840 100644 (file)
--- a/SL/CA.pm
+++ b/SL/CA.pm
@@ -1,4 +1,4 @@
-  #=====================================================================
+#=====================================================================
 # LX-Office ERP
 # Copyright (C) 2004
 # Based on SQL-Ledger Version 2.1.9
@@ -25,7 +25,8 @@
 # GNU General Public License for more details.
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
-# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+# MA 02110-1335, USA.
 #======================================================================
 # chart of accounts
 #
@@ -40,6 +41,7 @@ use strict;
 package CA;
 use Data::Dumper;
 use SL::DBUtils;
+use SL::DB;
 
 sub all_accounts {
   $main::lxdebug->enter_sub();
@@ -49,7 +51,7 @@ sub all_accounts {
   my (%amount, $acc_cash_where);
 
   # connect to database
-  my $dbh = $form->dbconnect($myconfig);
+  my $dbh = SL::DB->client->dbh;
 
   # bug 1071 Warum sollte bei Erreichen eines neuen Jahres die Kontenübersicht nur noch die
   # bereits bebuchten Konten anzeigen?
@@ -102,7 +104,7 @@ sub all_accounts {
       comma(tk.startdate::text) AS startdate,
       comma(tk.taxkey_id::text) AS taxkey,
       comma(tx.taxdescription || to_char (tx.rate, '99V99' ) || '%') AS taxdescription,
-      comma(tx.taxnumber::text) AS taxaccount,
+      comma(taxchart.accno::text) AS taxaccount,
       comma(tk.pos_ustva::text) AS tk_ustva,
       ( SELECT accno
       FROM chart c2
@@ -111,6 +113,7 @@ sub all_accounts {
     FROM chart c
     LEFT JOIN taxkeys tk ON (c.id = tk.chart_id)
     LEFT JOIN tax tx ON (tk.tax_id = tx.id)
+    LEFT JOIN chart taxchart ON (taxchart.id = tx.chart_id)
     WHERE 1=1
     $where
     GROUP BY c.accno, c.id, c.description, c.charttype,
@@ -134,7 +137,6 @@ sub all_accounts {
   }
 
   $sth->finish;
-  $dbh->disconnect;
 
   $main::lxdebug->leave_sub();
 }
@@ -144,8 +146,7 @@ sub all_transactions {
 
   my ($self, $myconfig, $form) = @_;
 
-  # connect to database
-  my $dbh = $form->dbconnect($myconfig);
+  my $dbh = SL::DB->client->dbh;
 
   # get chart_id
   my $query = qq|SELECT id FROM chart WHERE accno = ?|;
@@ -316,10 +317,10 @@ sub all_transactions {
 # RP->trial_balance() I tried to figure out which bizarre flow through the
 # program would happen to set that var, so that it would be used here later on,
 # (which would be nonsense, since you would normally load chart before
-# claculating balance of said charts) and then decided that any mechanic that
+# calculating balance of said charts) and then decided that any mechanic that
 # complex should fail anyway.
 
-# if anyone is missing a time check on charts, that broke arounf the time
+# if anyone is missing a time check on charts, that broke around the time
 # trial_balance was rewritten, this would be it
 
       $query .=
@@ -366,8 +367,8 @@ sub all_transactions {
   }
 
   my $sort = grep({ $form->{sort} eq $_ } qw(transdate reference description)) ? $form->{sort} : 'transdate';
-
-  $query .= qq|ORDER BY $sort|;
+  my $sort2 = ($sort eq 'reference')?'transdate':'reference';
+  $query .= qq|ORDER BY $sort , $sort2 |;
   my $sth = prepare_execute_query($form, $dbh, $query, @values);
 
   #get detail information for each transaction
@@ -424,7 +425,6 @@ sub all_transactions {
   }
 
   $sth->finish;
-  $dbh->disconnect;
 
   $main::lxdebug->leave_sub();
 }