?iť?

Your IP : 3.141.7.186


Current Path : /home/scgforma/www/soc064/htdocs/compta/
Upload File :
Current File : /home/scgforma/www/soc064/htdocs/compta/accounting-files.php

<?php
/* Copyright (C) 2001-2006 Rodolphe Quiedeville <rodolphe@quiedeville.org>
 * Copyright (C) 2004-2019 Laurent Destailleur  <eldy@users.sourceforge.net>
 * Copyright (C) 2017      Pierre-Henry Favre   <support@atm-consulting.fr>
 *
 * 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
 * the Free Software Foundation; either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * 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, see <http://www.gnu.org/licenses/>.
 */
/**
 *  \file       htdocs/compta/accounting-files.php
 *  \ingroup    compta
 *  \brief      Page to show portoflio and files of a thirdparty and download it
 */
require '../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php';
require_once DOL_DOCUMENT_ROOT.'/compta/salaries/class/paymentsalary.class.php';
require_once DOL_DOCUMENT_ROOT.'/compta/sociales/class/chargesociales.class.php';
require_once DOL_DOCUMENT_ROOT.'/don/class/don.class.php';
require_once DOL_DOCUMENT_ROOT.'/expensereport/class/expensereport.class.php';
require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php';

$langs->loadLangs(array("accountancy", "bills", "companies", "salaries", "compta"));

$date_start =GETPOST('date_start', 'alpha');
$date_startDay= GETPOST('date_startday', 'int');
$date_startMonth= GETPOST('date_startmonth', 'int');
$date_startYear= GETPOST('date_startyear', 'int');
$date_start=($date_startDay)?dol_mktime(0, 0, 0, $date_startMonth, $date_startDay, $date_startYear):strtotime($date_start);
$date_stop =GETPOST('date_stop', 'alpha');
$date_stopDay= GETPOST('date_stopday', 'int');
$date_stopMonth= GETPOST('date_stopmonth', 'int');
$date_stopYear= GETPOST('date_stopyear', 'int');
//FIXME doldate
$date_stop=($date_stopDay)?dol_mktime(23, 59, 59, $date_stopMonth, $date_stopDay, $date_stopYear):strtotime($date_stop);
$action =GETPOST('action', 'alpha');

// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
$hookmanager->initHooks(array('comptafileslist','globallist'));

// Load variable for pagination
$limit = GETPOST('limit', 'int')?GETPOST('limit', 'int'):$conf->liste_limit;
$sortfield = GETPOST('sortfield', 'alpha');
$sortorder = GETPOST('sortorder', 'alpha');
$page = GETPOST('page', 'int');
if (empty($page) || $page == -1) { $page = 0; }     // If $page is not defined, or '' or -1
$offset = $limit * $page;
$pageprev = $page - 1;
$pagenext = $page + 1;
if (! $sortfield) $sortfield="date,item"; // Set here default search field
if (! $sortorder) $sortorder="DESC";


$arrayfields=array(
    'type'=>array('label'=>"Type", 'checked'=>1),
    'date'=>array('label'=>"Date", 'checked'=>1),
    //...
);

// Security check
if (empty($conf->comptabilite->enabled) && empty($conf->accounting->enabled)) {
    accessforbidden();
}
if ($user->societe_id > 0) {
    accessforbidden();
}

$entity = GETPOST('entity', 'int')?GETPOST('entity', 'int'):$conf->entity;


/*
 * Actions
 */


//$parameters = array('socid' => $id);
//$reshook = $hookmanager->executeHooks('doActions', $parameters, $object); // Note that $object may have been modified by some hooks
//if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');

$filesarray=array();
$result=false;
if (($action=="searchfiles" || $action=="dl" )) {

	if (empty($date_start))
	{
		setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("DateStart")), null, 'errors');
		$error++;
	}
	if (empty($date_stop))
	{
		setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("DateEnd")), null, 'errors');
		$error++;
	}

	if (! $error)
	{
		$wheretail=" '".$db->idate($date_start)."' AND '".$db->idate($date_stop)."'";

		$sql="SELECT t.rowid as id, t.ref, t.paye as paid, total as total_ht, total_ttc, tva as total_vat, fk_soc, t.datef as date, 'Invoice' as item, s.nom as thirdparty_name, s.code_client as thirdparty_code, c.code as country_code, s.tva_intra as vatnum";
	    $sql.=" FROM ".MAIN_DB_PREFIX."facture as t LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON s.rowid = t.fk_soc LEFT JOIN ".MAIN_DB_PREFIX."c_country as c ON c.rowid = s.fk_pays";
	    $sql.=" WHERE datef between ".$wheretail;
	    $sql.=" AND t.entity IN (".($entity==1?'0,1':$entity).')';
	    $sql.=" AND t.fk_statut <> ".Facture::STATUS_DRAFT;
	    $sql.=" UNION ALL";
	    $sql.=" SELECT t.rowid as id, t.ref, paye as paid, total_ht, total_ttc, total_tva as total_vat, fk_soc, datef as date, 'SupplierInvoice' as item, s.nom as thirdparty_name, s.code_fournisseur as thirdparty_code, c.code as country_code, s.tva_intra as vatnum";
	    $sql.=" FROM ".MAIN_DB_PREFIX."facture_fourn as t LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON s.rowid = t.fk_soc LEFT JOIN ".MAIN_DB_PREFIX."c_country as c ON c.rowid = s.fk_pays";
	    $sql.=" WHERE datef between ".$wheretail;
	    $sql.=" AND t.entity IN (".($entity==1?'0,1':$entity).')';
	    $sql.=" AND t.fk_statut <> ".FactureFournisseur::STATUS_DRAFT;
	    $sql.=" UNION ALL";
	    $sql.=" SELECT t.rowid as id, t.ref, paid, total_ht, total_ttc, total_tva as total_vat, fk_user_author as fk_soc, date_fin as date, 'ExpenseReport' as item, CONCAT(CONCAT(u.lastname, ' '), u.firstname) as thirdparty_name, '' as thirdparty_code, c.code as country_code, '' as vatnum";
	    $sql.=" FROM ".MAIN_DB_PREFIX."expensereport as t LEFT JOIN ".MAIN_DB_PREFIX."user as u ON u.rowid = t.fk_user_author LEFT JOIN ".MAIN_DB_PREFIX."c_country as c ON c.rowid = u.fk_country";
	    $sql.=" WHERE date_fin between  ".$wheretail;
	    $sql.=" AND t.entity IN (".($entity==1?'0,1':$entity).')';
	    $sql.=" AND t.fk_statut <> ".ExpenseReport::STATUS_DRAFT;
	    $sql.=" UNION ALL";
	    $sql.=" SELECT t.rowid as id, t.ref, paid, amount as total_ht, amount as total_ttc, 0 as total_vat, 0 as fk_soc, datedon as date, 'Donation' as item, t.societe as thirdparty_name, '' as thirdparty_code, c.code as country_code, '' as vatnum";
	    $sql.=" FROM ".MAIN_DB_PREFIX."don as t LEFT JOIN ".MAIN_DB_PREFIX."c_country as c ON c.rowid = t.fk_country";
	    $sql.=" WHERE datedon between ".$wheretail;
	    $sql.=" AND t.entity IN (".($entity==1?'0,1':$entity).')';
	    $sql.=" AND t.fk_statut <> ".Don::STATUS_DRAFT;
	    $sql.=" UNION ALL";
	    $sql.=" SELECT t.rowid as id, t.label as ref, 1 as paid, amount as total_ht, amount as total_ttc, 0 as total_vat, t.fk_user as fk_soc, datep as date, 'SalaryPayment' as item, CONCAT(CONCAT(u.lastname, ' '), u.firstname)  as thirdparty_name, '' as thirdparty_code, c.code as country_code, '' as vatnum";
	    $sql.=" FROM ".MAIN_DB_PREFIX."payment_salary as t LEFT JOIN ".MAIN_DB_PREFIX."user as u ON u.rowid = t.fk_user LEFT JOIN ".MAIN_DB_PREFIX."c_country as c ON c.rowid = u.fk_country";
	    $sql.=" WHERE datep between ".$wheretail;
	    $sql.=" AND t.entity IN (".($entity==1?'0,1':$entity).')';
	    //$sql.=" AND fk_statut <> ".PaymentSalary::STATUS_DRAFT;
	    $sql.=" UNION ALL";
	    $sql.=" SELECT t.rowid as id, t.libelle as ref, paye as paid, amount as total_ht, amount as total_ttc, 0 as total_tva, 0 as fk_soc, date_creation as date, 'SocialContributions' as item, '' as thirdparty_name, '' as thirdparty_code, '' as country_code, '' as vatnum";
	    $sql.=" FROM ".MAIN_DB_PREFIX."chargesociales as t";
	    $sql.=" WHERE date_creation between ".$wheretail;
	    $sql.=" AND t.entity IN (".($entity==1?'0,1':$entity).')';
	    //$sql.=" AND fk_statut <> ".ChargeSociales::STATUS_DRAFT;
	    $sql.= $db->order($sortfield, $sortorder);
		//print $sql;

	    $resd = $db->query($sql);
	    $files=array();
	    $link='';

	    if ($resd)
	    {
	        $numd = $db->num_rows($resd);

	        $tmpinvoice=new Facture($db);
	        $tmpinvoicesupplier=new FactureFournisseur($db);
	        $tmpdonation=new Don($db);

	        $upload_dir ='';
	        $i=0;
	        while ($i < $numd)
	        {
	            $objd = $db->fetch_object($resd);

	            switch($objd->item)
	            {
	                case "Invoice":
	                	$subdir = '';
	                	$subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->ref);
	                	$upload_dir = $conf->facture->dir_output.'/'.$subdir;
	                	$link="document.php?modulepart=facture&file=".str_replace('/', '%2F', $subdir).'%2F';
	                	break;
	                case "SupplierInvoice":
	                	$tmpinvoicesupplier->fetch($objd->id);
	                	$subdir = get_exdir($tmpinvoicesupplier->id, 2, 0, 1, $tmpinvoicesupplier, 'invoice_supplier');		// TODO Use first file
	                	$subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->ref);
	                	$upload_dir = $conf->fournisseur->facture->dir_output.'/'.$subdir;
	                	$link="document.php?modulepart=facture_fournisseur&file=".str_replace('/', '%2F', $subdir).'%2F';
	                	break;
	                case "ExpenseReport":
	                	$subdir = '';
	                	$subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->ref);
	                	$upload_dir = $conf->expensereport->dir_output.'/'.$subdir;
	                	$link="document.php?modulepart=expensereport&file=".str_replace('/', '%2F', $subdir).'%2F';
	                	break;
	                case "SalaryPayment":
	                	$subdir = '';
	                	$subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->id);
	                	$upload_dir = $conf->salaries->dir_output.'/'.$subdir;
	                	$link="document.php?modulepart=salaries&file=".str_replace('/', '%2F', $subdir).'%2F';
	                	break;
	                case "Donation":
	                	$tmpdonation->fetch($objp->id);
	                	$subdir=get_exdir(0, 0, 0, 0, $tmpdonation, 'donation');
	                	$subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->id);
	                	$upload_dir = $conf->don->dir_output . '/' . $subdir;
	                	$link="document.php?modulepart=don&file=".str_replace('/', '%2F', $subdir).'%2F';
	                	break;
	                case "SocialContributions":
	                	$subdir = '';
	                	$subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->id);
	                	$upload_dir = $conf->tax->dir_output . '/' . $subdir;
	                	$link="document.php?modulepart=tax&file=".str_replace('/', '%2F', $subdir).'%2F';
	                	break;
	                default:
	                    $subdir='';
	                    $upload_dir='';
	                    $link='';
	                    break;
	            }

	            if (!empty($upload_dir))
	            {
	                $result=true;
	                $files=dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview\.png)$', '', SORT_ASC, 1);
	                //var_dump($upload_dir);
	                if (count($files) < 1)
	                {
	                	$nofile['id']=$objd->id;
	                	$nofile['date']=$db->idate($objd->date);
	                    $nofile['paid']=$objd->paid;
	                    $nofile['amount_ht']=$objd->total_ht;
	                    $nofile['amount_ttc']=$objd->total_ttc;
	                    $nofile['amount_vat']=$objd->total_vat;
	                    $nofile['ref']=($objd->ref ? $objd->ref : $objd->id);
	                    $nofile['fk']=$objd->fk_soc;
	                    $nofile['item']=$objd->item;
	                    $nofile['thirdparty_name']=$objd->thirdparty_name;
	                    $nofile['thirdparty_code']=$objd->thirdparty_code;
	                    $nofile['country_code']=$objd->country_code;
	                    $nofile['vatnum']=$objd->vatnum;

	                    $filesarray[]=$nofile;
	                }
	                else
	                {
	                    foreach ($files as $key => $file)
	                    {
	                    	$file['id']=$objd->id;
	                    	$file['date']=$db->idate($objd->date);
	                        $file['paid']=$objd->paid;
	                        $file['amount_ht']=$objd->total_ht;
	                        $file['amount_ttc']=$objd->total_ttc;
	                        $file['amount_vat']=$objd->total_vat;
	                        $file['ref']=($objd->ref ? $objd->ref : $objd->id);
	                        $file['fk']=$objd->fk_soc;
	                        $file['item']=$objd->item;

	                        $file['thirdparty_name']=$objd->thirdparty_name;
	                        $file['thirdparty_code']=$objd->thirdparty_code;
	                        $file['country_code']=$objd->country_code;
	                        $file['vatnum']=$objd->vatnum;

	                        $file['link']=$link.$file['name'];
	                        $file['relpathnamelang'] = $langs->trans($file['item']).'/'.$file['name'];

	                        $filesarray[]=$file;
	                    }
	                }
	            }
	            $i++;
	        }
	    }
	    else
	    {
	        dol_print_error($db);
	    }

	    $db->free($resd);
	}
}


/*
 *ZIP creation
 */

$dirfortmpfile = ($conf->accounting->dir_temp ? $conf->accounting->dir_temp : $conf->comptabilite->dir_temp);
if (empty($dirfortmpfile))
{
	setEventMessages($langs->trans("ErrorNoAccountingModuleEnabled"), null, 'errors');
	$error++;
}


if ($result && $action == "dl" && ! $error)
{
	if (! extension_loaded('zip'))
	{
		setEventMessages('PHPZIPExtentionNotLoaded', null, 'errors');
		exit;
	}

    dol_mkdir($dirfortmpfile);

    $log=$langs->transnoentitiesnoconv("Type").','.$langs->transnoentitiesnoconv("Date").','.$langs->transnoentitiesnoconv("Ref").','.$langs->transnoentitiesnoconv("TotalHT").','.$langs->transnoentitiesnoconv("TotalTTC").','.$langs->transnoentitiesnoconv("TotalVAT").','.$langs->transnoentitiesnoconv("Paid").',filename,item_id,'.$langs->transnoentitiesnoconv("ThirdParty").','.$langs->transnoentitiesnoconv("Code").','.$langs->transnoentitiesnoconv("Country").','.$langs->transnoentitiesnoconv("VATIntra")."\n";
    $zipname = $dirfortmpfile.'/'.dol_print_date($date_start, 'dayrfc')."-".dol_print_date($date_stop, 'dayrfc').'_export.zip';

    dol_delete_file($zipname);

    $zip = new ZipArchive;
    $res = $zip->open($zipname, ZipArchive::OVERWRITE|ZipArchive::CREATE);
    if ($res)
    {
        foreach ($filesarray as $key => $file)
        {
            if (file_exists($file["fullname"])) $zip->addFile($file["fullname"], $file["relpathnamelang"]); //
            $log.=$file['item'].','.dol_print_date($file['date'], 'dayrfc').','.$file['ref'].','.$file['amount_ht'].','.$file['amount_ttc'].','.$file['amount_vat'].','.$file['paid'].','.$file["name"].','.$file['fk'].','.$file['thirdparty_name'].','.$file['thirdparty_code'].','.$file['country_code'].',"'.$file['vatnum'].'"'."\n";
        }
        $zip->addFromString('transactions.csv', $log);
        $zip->close();

        ///Then download the zipped file.
        header('Content-Type: application/zip');
        header('Content-disposition: attachment; filename='.basename($zipname));
        header('Content-Length: ' . filesize($zipname));
        readfile($zipname);

        dol_delete_file($zipname);

        exit();
    }
    else
    {
    	setEventMessages($langs->trans("FailedToOpenFile", $zipname), null, 'errors');
    }
}


/*
 * View
 */

$form = new Form($db);
$userstatic=new User($db);

$title=$langs->trans("ComptaFiles").' - '.$langs->trans("List");

llxHeader('', $title, $help_url);

$h=0;
$head[$h][0] = $_SERVER["PHP_SELF"].$varlink;
$head[$h][1] = $langs->trans("AccountantFiles");
$head[$h][2] = 'AccountancyFiles';

dol_fiche_head($head, 'AccountancyFiles');


print '<form name="searchfiles" action="?action=searchfiles'.$tail.'" method="POST" >'."\n";
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print $langs->trans("ReportPeriod").': '.$form->selectDate($date_start, 'date_start', 0, 0, 0, "", 1, 1, 0);
print ' - '.$form->selectDate($date_stop, 'date_stop', 0, 0, 0, "", 1, 1, 0)."\n</a>";

// Export is for current company only !
if (! empty($conf->multicompany->enabled) && is_object($mc))
{
	print '<span class="marginleftonly marginrightonly">('.$langs->trans("Entity").' : ';
	$mc->dao->getEntities();
	$mc->dao->fetch($conf->entity);
	print $mc->dao->label;
	print ")</span>\n";
}

print '<input class="button" type="submit" name="search" value="'.$langs->trans("Search").'">';

print '</form>'."\n";

dol_fiche_end();

if (!empty($date_start) && !empty($date_stop))
{
    $param='action=searchfiles';
    $param.='&date_startday='.GETPOST('date_startday', 'int');
    $param.='&date_startmonth='.GETPOST('date_startmonth', 'int');
    $param.='&date_startyear='.GETPOST('date_startyear', 'int');
    $param.='&date_stopday='.GETPOST('date_stopday', 'int');
    $param.='&date_stopmonth='.GETPOST('date_stopmonth', 'int');
    $param.='&date_stopyear='.GETPOST('date_stopyear', 'int');

    print '<form name="dl" action="?action=dl" method="POST" >'."\n";
    print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';

    echo dol_print_date($date_start, 'day')." - ".dol_print_date($date_stop, 'day');

    print '<input type="hidden" name="date_start" value="'.dol_print_date($date_start, 'dayxcard').'" />';
    print '<input type="hidden" name="date_stop"  value="'.dol_print_date($date_stop, 'dayxcard').'" />';

    //print   '<input type="hidden" name="date_stopDay"  value="'.dol_print_date($date_stop, '%d').'" />';
    //print   '<input type="hidden" name="date_stopMonth"  value="'.dol_print_date($date_stop, '%m').'" />';
    //print   '<input type="hidden" name="date_stopYear"  value="'.dol_print_date($date_stop, '%Y').'" />';

    //print   '<input type="hidden" name="date_startDay"  value="'.dol_print_date($date_start, '%d').'" />';
    //print   '<input type="hidden" name="date_startMonth"  value="'.dol_print_date($date_start, '%m').'" />';
    //print   '<input type="hidden" name="date_startYear"  value="'.dol_print_date($date_start, '%m').'" />';

    print '<input class="butAction" type="submit" value="'.$langs->trans("Download").'" />';
    print '</form>'."\n";

    print '<br>';

    print '<div class="div-table-responsive">';		// You can use div-table-responsive-no-min if you dont need reserved height for your table
    print '<table class="noborder" width="100%">';
    print '<tr class="liste_titre">';
    print_liste_field_titre($arrayfields['type']['label'], $_SERVER["PHP_SELF"], "type", "", $param, '', $sortfield, $sortorder, 'nowrap ');
    print_liste_field_titre($arrayfields['date']['label'], $_SERVER["PHP_SELF"], "date", "", $param, '', $sortfield, $sortorder, 'center nowrap ');
    print '<td>'.$langs->trans("Ref").'</td>';
    print '<td>'.$langs->trans("Document").'</td>';
    print '<td>'.$langs->trans("Paid").'</td>';
    print '<td align="right">'.$langs->trans("TotalHT").'</td>';
    print '<td align="right">'.$langs->trans("TotalTTC").'</td>';
    print '<td align="right">'.$langs->trans("TotalVAT").'</td>';
	print '<td>'.$langs->trans("ThirdParty").'</td>';
	print '<td class="center">'.$langs->trans("Code").'</td>';
	print '<td class="center">'.$langs->trans("Country").'</td>';
    print '<td class="center">'.$langs->trans("VATIntra").'</td>';
    print '</tr>';
    if ($result)
    {
        $TData = dol_sort_array($filesarray, 'date', 'ASC');

        if (empty($TData))
        {
            print '<tr class="oddeven"><td colspan="7">'.$langs->trans("NoItem").'</td></tr>';
        }
        else
        {
            // Sort array by date ASC to calculate balance

            $totalET = 0;
            $totalIT = 0;
            $totalVAT = 0;
            $totalDebit = 0;
            $totalCredit = 0;

            // Display array
            foreach($TData as $data)
            {
                $html_class = '';
                //if (!empty($data['fk_facture'])) $html_class = 'facid-'.$data['fk_facture'];
                //elseif (!empty($data['fk_paiement'])) $html_class = 'payid-'.$data['fk_paiement'];
                print '<tr class="oddeven '.$html_class.'">';

                // Type
                print '<td>'.$langs->trans($data['item']).'</td>';

                // Date
                print '<td class="center">';
                print dol_print_date($data['date'], 'day');
                print "</td>\n";

                // Ref
                print '<td aling="left">'.$data['ref'].'</td>';

                // File link
                print '<td>';
                if ($data['link'])
                {
                	print '<a href='.DOL_URL_ROOT.'/'.$data['link'].' target="_blank">'.($data['name'] ? $data['name'] : $data['ref']).'</a>';
                }
                print "</td>\n";

                // Paid
                print '<td aling="left">'.$data['paid'].'</td>';

                // Total ET
                print '<td align="right">'.price($data['amount_ht'])."</td>\n";
                // Total IT
                print '<td align="right">'.price($data['amount_ttc'])."</td>\n";
                // Total VAT
                print '<td align="right">'.price($data['amount_vat'])."</td>\n";

                print '<td>'.$data['thirdparty_name']."</td>\n";

                print '<td class="center">'.$data['thirdparty_code']."</td>\n";

                print '<td class="center">'.$data['country_code']."</td>\n";

                print '<td align="right">'.$data['vatnum']."</td>\n";

                // Debit
                //print '<td align="right">'.(($data['amount_ttc'] > 0) ? price(abs($data['amount_ttc'])) : '')."</td>\n";
                // Credit
                //print '<td align="right">'.(($data['amount_ttc'] > 0) ? '' : price(abs($data['amount_ttc'])))."</td>\n";

                $totalET += $data['amount_ht'];
                $totalIT += $data['amount_ttc'];
                $totalVAT += $data['amount_vat'];

                $totalDebit += ($data['amount_ttc'] > 0) ? abs($data['amount_ttc']) : 0;
                $totalCredit += ($data['amount_ttc'] > 0) ? 0 : abs($data['amount_ttc']);

                // Balance
                //print '<td align="right">'.price($data['balance'])."</td>\n";

                print "</tr>\n";
            }

            print '<tr class="liste_total">';
            print '<td></td>';
            print '<td></td>';
            print '<td></td>';
            print '<td></td>';
            print '<td></td>';
            print '<td align="right">'.price(price2num($totalET, 'MT')).'</td>';
            print '<td align="right">'.price(price2num($totalIT, 'MT')).'</td>';
            print '<td align="right">'.price(price2num($totalVAT, 'MT')).'</td>';
            print '<td></td>';
            print '<td></td>';
            print '<td></td>';
            print '<td></td>';
            /*print '<td align="right">'.price($totalDebit).'</td>';
            print '<td align="right">'.price($totalCredit).'</td>';
            print '<td align="right">'.price(price2num($totalDebit - $totalCredit, 'MT')).'</td>';
			*/
            print "</tr>\n";
        }
    }
    print "</table>";
    print '</div>';
}


llxFooter();
$db->close();