From a1fb21114b7c7158e05d4d53338f373b6181f228 Mon Sep 17 00:00:00 2001
From: Juanjo Menent <jmenent@2byte.es>
Date: Fri, 28 Mar 2014 18:31:43 +0100
Subject: [PATCH] New: Add some hooks for financial reports

---
 ChangeLog                              |  1 +
 htdocs/compta/localtax/clients.php     | 18 ++++++++++++++++--
 htdocs/compta/localtax/index.php       | 12 +++++++++++-
 htdocs/compta/resultat/clientfourn.php | 11 +++++++++++
 htdocs/compta/resultat/index.php       |  9 +++++++--
 htdocs/compta/tva/clients.php          | 15 +++++++++++++++
 htdocs/compta/tva/index.php            | 10 ++++++++++
 htdocs/compta/tva/quadri_detail.php    | 12 +++++++++++-
 8 files changed, 82 insertions(+), 6 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 0a2c5118d95..88fdeafe29b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -65,6 +65,7 @@ For developers:
        action buttons into an element.
 - New: Normalize code for barcode generation to match other modules.
 - New: Uniformize code for contacts forms.
+- New: Add some hooks for financial reports.
 
 WARNING: Following change may create regression for some external modules, but was necessary to make
 Dolibarr better:
diff --git a/htdocs/compta/localtax/clients.php b/htdocs/compta/localtax/clients.php
index 72b02194bc1..097a89c3918 100644
--- a/htdocs/compta/localtax/clients.php
+++ b/htdocs/compta/localtax/clients.php
@@ -1,5 +1,6 @@
 <?php
 /* Copyright (C) 2011	Juanjo Menent <jmenent@2byte.es>
+ * Copyright (C) 2014	   Ferran Marcet        <fmarcet@2byte.es>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -153,6 +154,17 @@ print "<td align=\"right\">".$vatcust."</td>";
 print "</tr>\n";
 
 $coll_list = vat_by_thirdparty($db,0,$date_start,$date_end,$modetax,'sell');
+
+$action = "tvaclient";
+$object = &$coll_list;
+$parameters["mode"] = $modetax;
+$parameters["start"] = $date_start;
+$parameters["end"] = $date_end;
+$parameters["direction"] = 'sell';
+// Initialize technical object to manage hooks of expenses. Note that conf->hooks_modules contains array array
+$hookmanager->initHooks(array('externalbalance'));
+$reshook=$hookmanager->executeHooks('addStatisticLine',$parameters,$object,$action);    // Note that $action and $object may have been modified by some hooks
+
 if (is_array($coll_list))
 {
 	$var=true;
@@ -160,7 +172,7 @@ if (is_array($coll_list))
 	$i = 1;
 	foreach($coll_list as $coll)
 	{
-		if(($min == 0 or ($min > 0 && $coll->amount > $min)) && $coll->localtax2>0)
+		if(($min == 0 or ($min > 0 && $coll->amount > $min)) && $coll->localtax2!=0)
 		{
 			$var=!$var;
 			$intra = str_replace($find,$replace,$coll->tva_intra);
@@ -222,6 +234,8 @@ print "</tr>\n";
 $company_static=new Societe($db);
 
 $coll_list = vat_by_thirdparty($db,0,$date_start,$date_end,$modetax,'buy');
+$parameters["direction"] = 'buy';
+$reshook=$hookmanager->executeHooks('addStatisticLine',$parameters,$object,$action);    // Note that $action and $object may have been modified by some hooks
 if (is_array($coll_list))
 {
 	$var=true;
@@ -229,7 +243,7 @@ if (is_array($coll_list))
 	$i = 1;
 	foreach($coll_list as $coll)
 	{
-		if(($min == 0 or ($min > 0 && $coll->amount > $min)) && $coll->localtax2>0)
+		if(($min == 0 or ($min > 0 && $coll->amount > $min)) && $coll->localtax2!=0)
 		{
 			$var=!$var;
 			$intra = str_replace($find,$replace,$coll->tva_intra);
diff --git a/htdocs/compta/localtax/index.php b/htdocs/compta/localtax/index.php
index aaa36a7edd7..25f0e95fd5c 100644
--- a/htdocs/compta/localtax/index.php
+++ b/htdocs/compta/localtax/index.php
@@ -1,5 +1,6 @@
 <?php
 /* Copyright (C) 2011 		Juanjo Menent		<jmenent@2byte.es>
+ * Copyright (C) 2014	   Ferran Marcet        <fmarcet@2byte.es>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -134,6 +135,15 @@ for ($m = 1 ; $m < 13 ; $m++ )
 {
     $coll_listsell = vat_by_date($db, $y, 0, 0, 0, $modetax, 'sell', $m);
     $coll_listbuy = vat_by_date($db, $y, 0, 0, 0, $modetax, 'buy', $m);
+    
+    $action = "tva";
+    $object = array(&$coll_listsell, &$coll_listbuy);
+    $parameters["mode"] = $modetax;
+    $parameters["year"] = $y;
+    $parameters["month"] = $m;
+    // Initialize technical object to manage hooks of expenses. Note that conf->hooks_modules contains array array
+    $hookmanager->initHooks(array('externalbalance'));
+    $reshook=$hookmanager->executeHooks('addStatisticLine',$parameters,$object,$action);    // Note that $action and $object may have been modified by some hooks
 
     if (! is_array($coll_listbuy) && $coll_listbuy == -1)
     {
@@ -181,7 +191,7 @@ for ($m = 1 ; $m < 13 ; $m++ )
         print '<td align="right">'.$langs->trans("SubTotal").':</td>';
         print '<td class="nowrap" align="right">'.price($subtotalcoll).'</td>';
         print '<td class="nowrap" align="right">'.price($subtotalpaye).'</td>';
-        print '<td class="nowrap" align="right">'.price($subtotalpaye).'</td>';
+        print '<td class="nowrap" align="right">'.price($subtotal).'</td>';
         print '<td>&nbsp;</td></tr>';
         $i = 0;
         $subtotalcoll=0; $subtotalpaye=0; $subtotal=0;
diff --git a/htdocs/compta/resultat/clientfourn.php b/htdocs/compta/resultat/clientfourn.php
index d28f457fb2b..15722966004 100644
--- a/htdocs/compta/resultat/clientfourn.php
+++ b/htdocs/compta/resultat/clientfourn.php
@@ -2,6 +2,7 @@
 /* Copyright (C) 2002-2006 Rodolphe Quiedeville <rodolphe@quiedeville.org>
  * Copyright (C) 2004-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
  * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
+ * Copyright (C) 2014	   Ferran Marcet        <fmarcet@2byte.es>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -729,6 +730,16 @@ if ($mysoc->tva_assuj != 'franchise')	// Assujeti
     print '</tr>';
 }
 
+$action = "balanceclient";
+$object = array(&$total_ht, &$total_ttc);
+$parameters["mode"] = $modecompta;
+$parameters["date_start"] = $date_start;
+$parameters["date_end"] = $date_end;
+$parameters["bc"] = $bc;
+// Initialize technical object to manage hooks of expenses. Note that conf->hooks_modules contains array array
+$hookmanager->initHooks(array('externalbalance'));
+$reshook=$hookmanager->executeHooks('addStatisticLine',$parameters,$object,$action);    // Note that $action and $object may have been modified by some hooks
+print $hookmanager->resPrint;
 
 if ($mysoc->tva_assuj != 'franchise')	// Assujeti
 {
diff --git a/htdocs/compta/resultat/index.php b/htdocs/compta/resultat/index.php
index e4ead871b42..a56551f234b 100644
--- a/htdocs/compta/resultat/index.php
+++ b/htdocs/compta/resultat/index.php
@@ -2,6 +2,7 @@
 /* Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
  * Copyright (C) 2004-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
  * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
+ * Copyright (C) 2014	   Ferran Marcet        <fmarcet@2byte.es>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -461,8 +462,12 @@ if ($result) {
 } else {
 	dol_print_error($db);
 }
-
-
+$action = "balance";
+$object = array(&$encaiss, &$encaiss_ttc, &$decaiss, &$decaiss_ttc);
+$parameters["mode"] = $modecompta;
+// Initialize technical object to manage hooks of expenses. Note that conf->hooks_modules contains array array
+$hookmanager->initHooks(array('externalbalance'));
+$reshook=$hookmanager->executeHooks('addStatisticLine',$parameters,$object,$action);    // Note that $action and $object may have been modified by some hooks
 
 /*
  * Show result array
diff --git a/htdocs/compta/tva/clients.php b/htdocs/compta/tva/clients.php
index fbde1584541..84857a35130 100644
--- a/htdocs/compta/tva/clients.php
+++ b/htdocs/compta/tva/clients.php
@@ -3,6 +3,7 @@
  * Copyright (C) 2004      Eric Seigne          <eric.seigne@ryxeo.com>
  * Copyright (C) 2004-2013 Laurent Destailleur  <eldy@users.sourceforge.net>
  * Copyright (C) 2006      Yannick Warnier      <ywarnier@beeznest.org>
+ * Copyright (C) 2014	   Ferran Marcet        <fmarcet@2byte.es>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -185,6 +186,17 @@ print "<td align=\"right\">".$vatcust."</td>";
 print "</tr>\n";
 
 $coll_list = vat_by_thirdparty($db,0,$date_start,$date_end,$modetax,'sell');
+
+$action = "tvaclient";
+$object = &$coll_list;
+$parameters["mode"] = $modetax;
+$parameters["start"] = $date_start;
+$parameters["end"] = $date_end;
+$parameters["direction"] = 'sell';
+// Initialize technical object to manage hooks of expenses. Note that conf->hooks_modules contains array array
+$hookmanager->initHooks(array('externalbalance'));
+$reshook=$hookmanager->executeHooks('addStatisticLine',$parameters,$object,$action);    // Note that $action and $object may have been modified by some hooks
+
 if (is_array($coll_list))
 {
 	$var=true;
@@ -263,6 +275,9 @@ print "</tr>\n";
 $company_static=new Societe($db);
 
 $coll_list = vat_by_thirdparty($db,0,$date_start,$date_end,$modetax,'buy');
+
+$parameters["direction"] = 'buy';
+$reshook=$hookmanager->executeHooks('addStatisticLine',$parameters,$object,$action);    // Note that $action and $object may have been modified by some hooks
 if (is_array($coll_list))
 {
 	$var=true;
diff --git a/htdocs/compta/tva/index.php b/htdocs/compta/tva/index.php
index 4bab6f143d1..91094e7b52d 100644
--- a/htdocs/compta/tva/index.php
+++ b/htdocs/compta/tva/index.php
@@ -3,6 +3,7 @@
  * Copyright (C) 2004      Eric Seigne          <eric.seigne@ryxeo.com>
  * Copyright (C) 2004-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
  * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
+ * Copyright (C) 2014	   Ferran Marcet        <fmarcet@2byte.es>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -153,6 +154,15 @@ for ($m = 1 ; $m < 13 ; $m++ )
 {
     $coll_listsell = vat_by_date($db, $y, 0, 0, 0, $modetax, 'sell', $m);
     $coll_listbuy = vat_by_date($db, $y, 0, 0, 0, $modetax, 'buy', $m);
+    
+    $action = "tva";
+    $object = array(&$coll_listsell, &$coll_listbuy);
+    $parameters["mode"] = $modetax;
+    $parameters["year"] = $y;
+    $parameters["month"] = $m;
+    // Initialize technical object to manage hooks of expenses. Note that conf->hooks_modules contains array array
+    $hookmanager->initHooks(array('externalbalance'));
+    $reshook=$hookmanager->executeHooks('addStatisticLine',$parameters,$object,$action);    // Note that $action and $object may have been modified by some hooks
 
     if (! is_array($coll_listbuy) && $coll_listbuy == -1)
     {
diff --git a/htdocs/compta/tva/quadri_detail.php b/htdocs/compta/tva/quadri_detail.php
index cc084655bf0..b39befd8ad6 100644
--- a/htdocs/compta/tva/quadri_detail.php
+++ b/htdocs/compta/tva/quadri_detail.php
@@ -3,6 +3,7 @@
  * Copyright (C) 2004      Eric Seigne          <eric.seigne@ryxeo.com>
  * Copyright (C) 2004-2013 Laurent Destailleur  <eldy@users.sourceforge.net>
  * Copyright (C) 2006-2007 Yannick Warnier      <ywarnier@beeznest.org>
+ * Copyright (C) 2014	   Ferran Marcet        <fmarcet@2byte.es>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -318,7 +319,16 @@ else
 	print '<td align="right">'.$langs->trans("AmountHTVATRealReceived").'</td>';
 	print '<td align="right">'.$vatcust.'</td>';
 	print '</tr>';
-
+	
+	$action = "tvadetail";
+	$parameters["mode"] = $modetax;
+	$parameters["start"] = $date_start;
+	$parameters["end"] = $date_end;
+	$object = array(&$x_coll, &$x_paye, &$x_both);
+	// Initialize technical object to manage hooks of expenses. Note that conf->hooks_modules contains array array
+	$hookmanager->initHooks(array('externalbalance'));
+	$reshook=$hookmanager->executeHooks('addStatisticLine',$parameters,$object,$action);    // Note that $action and $object may have been modified by some hooks
+	
 	foreach(array_keys($x_coll) as $rate)
 	{
 		$subtot_coll_total_ht = 0;
-- 
GitLab