From 7aab51a39089b1b47558333a3f85642649f01dfd Mon Sep 17 00:00:00 2001 From: OpenXE <> Date: Wed, 5 Apr 2023 11:45:20 +0200 Subject: [PATCH] fibu_buchungen vorschlag now includes saldo info --- www/pages/content/fibu_buchungen_zuordnen.tpl | 16 +- www/pages/fibu_buchungen.php | 155 ++++++++++++------ 2 files changed, 122 insertions(+), 49 deletions(-) diff --git a/www/pages/content/fibu_buchungen_zuordnen.tpl b/www/pages/content/fibu_buchungen_zuordnen.tpl index 03ac11d7..126647c0 100644 --- a/www/pages/content/fibu_buchungen_zuordnen.tpl +++ b/www/pages/content/fibu_buchungen_zuordnen.tpl @@ -2,7 +2,7 @@ -
+
[MESSAGE] [FORMHANDLEREVENT]
@@ -11,6 +11,20 @@
{|Offene Einzelsalden|} +
+
+
{|Filter|}
+
    +
  • + + +
  • +
+
+
[TAB1]
diff --git a/www/pages/fibu_buchungen.php b/www/pages/fibu_buchungen.php index 9586f777..b483f0e9 100644 --- a/www/pages/fibu_buchungen.php +++ b/www/pages/fibu_buchungen.php @@ -196,7 +196,7 @@ class Fibu_buchungen { $linkstart = '
'; - + $typ = $this->app->User->GetParameter('fibu_buchungen_doc_typ'); $objektlink = array ( @@ -233,6 +233,8 @@ class Fibu_buchungen { ['sql' => $this->app->erp->FormatUCfirst('COALESCE(fo.typ,\'\')')], ' ', ['sql' => 'COALESCE(fo.info,\'\')'], + ' ', + ['sql' => "if (SUM(fbd.betrag) IS NULL,'',CONCAT('(Saldo ',".$this->app->erp->FormatMenge('SUM(fbd.betrag)',2).",')'))"], ' ', 'app->erp->ConcatSQL($auswahl)." as auswahl, - salden.datum, - salden.typ, - salden.id, - salden.info, - salden.saldo, - salden.objektlink, - salden.saldonum, - ".$this->app->erp->ConcatSQL($vorschlaege)." as vorschlag, - ".$this->app->erp->ConcatSQL($werte)." as wert, - ".$this->app->erp->ConcatSQL($waehrungen)." as waehrung, - fo.typ as doc_typ, - fo.id as doc_id, - fo.info as doc_info, - ".$this->app->erp->ConcatSQL($doc)." as doc - FROM - ( - SELECT - ".$this->app->erp->FormatDate("fb.datum")." as datum, - fb.typ, - fb.id, - fo.info, - ".$this->app->erp->ConcatSQL($objektlink)." AS objektlink, - ".$this->app->erp->FormatMenge('SUM(COALESCE(fb.betrag,0))',2)."AS saldo, - SUM(betrag) AS saldonum, - fb.waehrung - FROM - `fibu_buchungen_alle` fb - INNER JOIN fibu_objekte fo ON - fb.typ = fo.typ AND fb.id = fo.id - WHERE (fb.typ = '".$typ."' OR '".$typ."' = '') - GROUP BY - fb.typ, - fb.id, - fb.waehrung - ) salden - LEFT JOIN fibu_objekte fo ON - salden.info LIKE CONCAT('%', fo.info, '%') - AND - salden.typ <> fo.typ AND fo.info <> '' - WHERE salden.saldonum <> 0) as erg + doc, + doc_id + FROM + ( + SELECT + '' AS dummy, + ".$this->app->erp->ConcatSQL($auswahl)." AS auswahl, + salden.datum, + salden.typ, + salden.id, + salden.info, + salden.saldo, + salden.objektlink, + salden.saldonum, + ".$this->app->erp->ConcatSQL($vorschlaege)." AS vorschlag, + ".$this->app->erp->ConcatSQL($werte)." AS wert, + ".$this->app->erp->ConcatSQL($waehrungen)." AS waehrung, + fo.typ AS doc_typ, + fo.id AS doc_id, + fo.info AS doc_info, + SUM(fbd.betrag) as doc_saldo, + ".$this->app->erp->ConcatSQL($doc)." AS doc + FROM + ( + SELECT + ".$this->app->erp->FormatDate(" fb.datum ")." AS datum, + fb.typ, + fb.id, + fo.info, + ".$this->app->erp->ConcatSQL($objektlink)." AS objektlink, + ".$this->app->erp->FormatMenge('SUM(COALESCE(fb.betrag,0))',2)." AS saldo, + SUM(betrag) AS saldonum, + fb.waehrung + FROM + `fibu_buchungen_alle` fb + INNER JOIN fibu_objekte fo ON + fb.typ = fo.typ AND fb.id = fo.id + WHERE + ( + fb.typ = '".$typ."' OR '".$typ."' = '' + ) + GROUP BY + fb.typ, + fb.id, + fb.waehrung + ) salden + LEFT JOIN( + SELECT + fo.typ, + fo.id, + fo.info + FROM + fibu_objekte fo + GROUP BY + fo.typ, + fo.id, + fo.info + ) AS fo + ON + salden.info LIKE CONCAT('%', fo.info, '%') AND salden.typ <> fo.typ AND fo.info <> '' + LEFT JOIN + fibu_buchungen_alle fbd + ON + fbd.typ = fo.typ AND fbd.id = fo.id + WHERE + salden.saldonum <> 0 + GROUP BY + salden.typ, + salden.id + ) AS erg "; $where = "1"; + + // Toggle filters + $this->app->Tpl->Add('JQUERYREADY', "$('#vorschlagfilter').click( function() { fnFilterColumn1( 0 ); } );"); + + for ($r = 1;$r <= 4;$r++) { + $this->app->Tpl->Add('JAVASCRIPT', ' + function fnFilterColumn' . $r . ' ( i ) + { + if(oMoreData' . $r . $name . '==1) + oMoreData' . $r . $name . ' = 0; + else + oMoreData' . $r . $name . ' = 1; + + $(\'#' . $name . '\').dataTable().fnFilter( + \'\', + i, + 0,0 + ); + } + '); + } + + + $more_data1 = $this->app->Secure->GetGET("more_data1"); + if ($more_data1 == 1) { + $where .= " AND doc_id IS NOT NULL"; + } else { + } + // END Toggle filters + + // $count = "SELECT count(DISTINCT id) FROM fibu_buchungen_alle WHERE $where"; $groupby = "GROUP BY typ, id";