WebshopApi: falsche sql update Abhängigkeit
[kivitendo-erp.git] / SL / CA.pm
index e24be69..d954482 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?
@@ -134,7 +136,6 @@ sub all_accounts {
   }
 
   $sth->finish;
-  $dbh->disconnect;
 
   $main::lxdebug->leave_sub();
 }
@@ -144,8 +145,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 = ?|;
@@ -182,13 +182,6 @@ sub all_transactions {
 
   my $sortorder = join ', ',
     $form->sort_columns(qw(transdate reference description));
-  my $false = ($myconfig->{dbdriver} eq 'Pg') ? "FALSE" : q|'0'|;
-
-  # Oracle workaround, use ordinal positions
-  my %ordinal = (transdate   => 4,
-                 reference   => 2,
-                 description => 3);
-  map { $sortorder =~ s/$_/$ordinal{$_}/ } keys %ordinal;
 
   my ($null, $department_id) = split(/--/, $form->{department});
   my ($dpt_where, $dpt_join, @department_values);
@@ -272,7 +265,7 @@ sub all_transactions {
     # get all transactions
     $query =
       qq|SELECT a.id, a.reference, a.description, ac.transdate, ac.chart_id, | .
-      qq|  $false AS invoice, ac.amount, 'gl' as module, | .
+      qq|  FALSE AS invoice, ac.amount, 'gl' as module, | .
       qq§(SELECT accno||'--'||rate FROM tax LEFT JOIN chart ON (tax.chart_id=chart.id) WHERE tax.id = (SELECT tax_id FROM taxkeys WHERE taxkey_id = ac.taxkey AND taxkeys.startdate <= ac.transdate ORDER BY taxkeys.startdate DESC LIMIT 1)) AS taxinfo, ac.source || ' ' || ac.memo AS memo § .
       qq|FROM acc_trans ac, gl a | .
       $dpt_join .
@@ -323,10 +316,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 .=
@@ -373,8 +366,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
@@ -431,7 +424,6 @@ sub all_transactions {
   }
 
   $sth->finish;
-  $dbh->disconnect;
 
   $main::lxdebug->leave_sub();
 }