2012-06-09 19:16:31 +02:00
< ? php
/* Copyright ( C ) 2002 - 2006 Rodolphe Quiedeville < rodolphe @ quiedeville . org >
* Copyright ( C ) 2004 Eric Seigne < eric . seigne @ ryxeo . com >
* Copyright ( C ) 2004 - 2012 Laurent Destailleur < eldy @ users . sourceforge . net >
* Copyright ( C ) 2005 Marc Barilley / Ocebo < marc @ ocebo . com >
2013-04-19 09:48:55 +02:00
* Copyright ( C ) 2005 - 2013 Regis Houssin < regis . houssin @ capnetworks . com >
2012-06-09 19:16:31 +02:00
* Copyright ( C ) 2006 Andre Cianfarani < acianfa @ free . fr >
* Copyright ( C ) 2010 - 2012 Juanjo Menent < jmenent @ 2 byte . es >
* Copyright ( C ) 2012 Christophe Battarel < christophe . battarel @ altairis . fr >
2013-04-09 17:18:07 +02:00
* Copyright ( C ) 2013 Florian Henry < florian . henry @ open - concept . pro >
2013-09-10 16:43:06 +02:00
* Copyright ( C ) 2013 Cédric Salvador < csalvador @ gpcsolutions . fr >
2012-06-09 19:16:31 +02:00
*
* 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
2013-01-16 15:36:08 +01:00
* the Free Software Foundation ; either version 3 of the License , or
2012-06-09 19:16:31 +02:00
* ( 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 />.
*/
/**
2012-06-11 19:28:04 +02:00
* \file htdocs / compta / facture / list . php
2012-06-09 19:16:31 +02:00
* \ingroup facture
* \brief Page to create / see an invoice
*/
2012-08-22 23:24:21 +02:00
require '../../main.inc.php' ;
2012-08-22 23:11:24 +02:00
require_once DOL_DOCUMENT_ROOT . '/core/class/html.formfile.class.php' ;
require_once DOL_DOCUMENT_ROOT . '/core/class/html.formother.class.php' ;
require_once DOL_DOCUMENT_ROOT . '/core/modules/facture/modules_facture.php' ;
require_once DOL_DOCUMENT_ROOT . '/compta/facture/class/facture.class.php' ;
require_once DOL_DOCUMENT_ROOT . '/core/class/discount.class.php' ;
require_once DOL_DOCUMENT_ROOT . '/compta/paiement/class/paiement.class.php' ;
require_once DOL_DOCUMENT_ROOT . '/core/lib/functions2.lib.php' ;
require_once DOL_DOCUMENT_ROOT . '/core/lib/invoice.lib.php' ;
require_once DOL_DOCUMENT_ROOT . '/core/lib/date.lib.php' ;
if ( ! empty ( $conf -> commande -> enabled )) require_once DOL_DOCUMENT_ROOT . '/commande/class/commande.class.php' ;
2012-07-23 21:31:10 +02:00
if ( ! empty ( $conf -> projet -> enabled ))
2012-06-09 19:16:31 +02:00
{
2012-08-22 23:11:24 +02:00
require_once DOL_DOCUMENT_ROOT . '/projet/class/project.class.php' ;
2012-06-09 19:16:31 +02:00
}
$langs -> load ( 'bills' );
$langs -> load ( 'companies' );
$langs -> load ( 'products' );
$langs -> load ( 'main' );
$sall = trim ( GETPOST ( 'sall' ));
$projectid = ( GETPOST ( 'projectid' ) ? GETPOST ( 'projectid' , 'int' ) : 0 );
$id = ( GETPOST ( 'id' , 'int' ) ? GETPOST ( 'id' , 'int' ) : GETPOST ( 'facid' , 'int' )); // For backward compatibility
$ref = GETPOST ( 'ref' , 'alpha' );
$socid = GETPOST ( 'socid' , 'int' );
$action = GETPOST ( 'action' , 'alpha' );
$confirm = GETPOST ( 'confirm' , 'alpha' );
$lineid = GETPOST ( 'lineid' , 'int' );
$userid = GETPOST ( 'userid' , 'int' );
$search_ref = GETPOST ( 'sf_ref' ) ? GETPOST ( 'sf_ref' , 'alpha' ) : GETPOST ( 'search_ref' , 'alpha' );
2013-10-07 21:58:12 +02:00
$search_refcustomer = GETPOST ( 'search_refcustomer' , 'alpha' );
2012-06-09 19:16:31 +02:00
$search_societe = GETPOST ( 'search_societe' , 'alpha' );
$search_montant_ht = GETPOST ( 'search_montant_ht' , 'alpha' );
$search_montant_ttc = GETPOST ( 'search_montant_ttc' , 'alpha' );
2013-07-26 11:27:56 +02:00
$search_status = GETPOST ( 'search_status' , 'alpha' );
2012-06-09 19:16:31 +02:00
$sortfield = GETPOST ( " sortfield " , 'alpha' );
$sortorder = GETPOST ( " sortorder " , 'alpha' );
$page = GETPOST ( " page " , 'int' );
if ( $page == - 1 ) {
$page = 0 ;
}
$offset = $conf -> liste_limit * $page ;
if ( ! $sortorder ) $sortorder = 'DESC' ;
if ( ! $sortfield ) $sortfield = 'f.datef' ;
$limit = $conf -> liste_limit ;
$pageprev = $page - 1 ;
$pagenext = $page + 1 ;
$search_user = GETPOST ( 'search_user' , 'int' );
2012-07-23 21:40:34 +02:00
$search_sale = GETPOST ( 'search_sale' , 'int' );
2012-06-09 19:16:31 +02:00
$day = GETPOST ( 'day' , 'int' );
$month = GETPOST ( 'month' , 'int' );
$year = GETPOST ( 'year' , 'int' );
2012-07-23 21:40:34 +02:00
$filtre = GETPOST ( 'filtre' );
2012-06-09 19:16:31 +02:00
// Security check
$fieldid = ( ! empty ( $ref ) ? 'facnumber' : 'rowid' );
2012-07-23 21:40:34 +02:00
if ( ! empty ( $user -> societe_id )) $socid = $user -> societe_id ;
2012-06-09 19:16:31 +02:00
$result = restrictedArea ( $user , 'facture' , $id , '' , '' , 'fk_soc' , $fieldid );
$object = new Facture ( $db );
// Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array
2013-05-28 18:35:15 +02:00
$hookmanager -> initHooks ( array ( 'invoicelist' ));
2012-06-09 19:16:31 +02:00
$now = dol_now ();
/*
* Actions
*/
$parameters = array ( 'socid' => $socid );
$reshook = $hookmanager -> executeHooks ( 'doActions' , $parameters , $object , $action ); // Note that $action and $object may have been modified by some hooks
2012-06-23 20:39:20 +02:00
// Do we click on purge search criteria ?
if ( GETPOST ( " button_removefilter_x " ))
{
$search_categ = '' ;
$search_user = '' ;
$search_sale = '' ;
$search_ref = '' ;
$search_refcustomer = '' ;
$search_societe = '' ;
$search_montant_ht = '' ;
2013-07-26 11:27:56 +02:00
$search_montant_ttc = '' ;
$search_status = '' ;
2012-06-23 20:39:20 +02:00
$year = '' ;
$month = '' ;
}
2012-06-09 19:16:31 +02:00
/*
* View
*/
llxHeader ( '' , $langs -> trans ( 'Bill' ), 'EN:Customers_Invoices|FR:Factures_Clients|ES:Facturas_a_clientes' );
$form = new Form ( $db );
2012-06-23 20:39:20 +02:00
$formother = new FormOther ( $db );
2012-06-09 19:16:31 +02:00
$formfile = new FormFile ( $db );
$bankaccountstatic = new Account ( $db );
$facturestatic = new Facture ( $db );
if ( ! $sall ) $sql = 'SELECT' ;
else $sql = 'SELECT DISTINCT' ;
2013-10-07 21:58:12 +02:00
$sql .= ' f.rowid as facid, f.facnumber, f.ref_client, f.type, f.note_private, f.increment, f.total as total_ht, f.tva as total_tva, f.total_ttc,' ;
2012-06-09 19:16:31 +02:00
$sql .= ' f.datef as df, f.date_lim_reglement as datelimite,' ;
2013-04-09 17:18:07 +02:00
$sql .= ' f.paye as paye, f.fk_statut,' ;
2013-10-22 12:47:26 +02:00
$sql .= ' s.nom, s.rowid as socid, s.code_client, s.client ' ;
2012-06-09 19:16:31 +02:00
if ( ! $sall ) $sql .= ', SUM(pf.amount) as am' ; // To be able to sort on status
$sql .= ' FROM ' . MAIN_DB_PREFIX . 'societe as s' ;
$sql .= ', ' . MAIN_DB_PREFIX . 'facture as f' ;
if ( ! $sall ) $sql .= ' LEFT JOIN ' . MAIN_DB_PREFIX . 'paiement_facture as pf ON pf.fk_facture = f.rowid' ;
else $sql .= ' LEFT JOIN ' . MAIN_DB_PREFIX . 'facturedet as fd ON fd.fk_facture = f.rowid' ;
2012-06-23 20:39:20 +02:00
// We'll need this table joined to the select in order to filter by sale
if ( $search_sale > 0 || ( ! $user -> rights -> societe -> client -> voir && ! $socid )) $sql .= " , " . MAIN_DB_PREFIX . " societe_commerciaux as sc " ;
2012-06-09 19:16:31 +02:00
if ( $search_user > 0 )
{
$sql .= " , " . MAIN_DB_PREFIX . " element_contact as ec " ;
$sql .= " , " . MAIN_DB_PREFIX . " c_type_contact as tc " ;
}
$sql .= ' WHERE f.fk_soc = s.rowid' ;
$sql .= " AND f.entity = " . $conf -> entity ;
if ( ! $user -> rights -> societe -> client -> voir && ! $socid ) $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = " . $user -> id ;
if ( $socid ) $sql .= ' AND s.rowid = ' . $socid ;
if ( $userid )
{
if ( $userid == - 1 ) $sql .= ' AND f.fk_user_author IS NULL' ;
else $sql .= ' AND f.fk_user_author = ' . $userid ;
}
2012-07-23 21:40:34 +02:00
if ( $filtre )
2012-06-09 19:16:31 +02:00
{
2012-07-23 21:40:34 +02:00
$aFilter = explode ( ',' , $filtre );
foreach ( $aFilter as $filter )
2012-06-09 19:16:31 +02:00
{
2012-07-23 21:40:34 +02:00
$filt = explode ( ':' , $filter );
2012-06-09 19:16:31 +02:00
$sql .= ' AND ' . trim ( $filt [ 0 ]) . ' = ' . trim ( $filt [ 1 ]);
}
}
if ( $search_ref )
{
2013-09-13 10:52:04 +02:00
$sql .= natural_search ( 'f.facnumber' , $search_ref );
2012-06-09 19:16:31 +02:00
}
2013-10-07 21:58:12 +02:00
if ( $search_refcustomer )
{
$sql .= natural_search ( 'f.ref_client' , $search_refcustomer );
}
2012-06-09 19:16:31 +02:00
if ( $search_societe )
{
2013-09-13 10:52:04 +02:00
$sql .= natural_search ( 's.nom' , $search_societe );
2012-06-09 19:16:31 +02:00
}
if ( $search_montant_ht )
{
2013-04-19 09:48:55 +02:00
$sql .= ' AND f.total = \'' . $db -> escape ( price2num ( trim ( $search_montant_ht ))) . '\'' ;
2012-06-09 19:16:31 +02:00
}
if ( $search_montant_ttc )
{
2013-04-19 09:48:55 +02:00
$sql .= ' AND f.total_ttc = \'' . $db -> escape ( price2num ( trim ( $search_montant_ttc ))) . '\'' ;
2012-06-09 19:16:31 +02:00
}
2013-07-26 11:27:56 +02:00
if ( $search_status != '' )
{
$sql .= " AND f.fk_statut = ' " . $db -> escape ( $search_status ) . " ' " ;
}
2012-06-09 19:16:31 +02:00
if ( $month > 0 )
{
if ( $year > 0 && empty ( $day ))
$sql .= " AND f.datef BETWEEN ' " . $db -> idate ( dol_get_first_day ( $year , $month , false )) . " ' AND ' " . $db -> idate ( dol_get_last_day ( $year , $month , false )) . " ' " ;
else if ( $year > 0 && ! empty ( $day ))
$sql .= " AND f.datef BETWEEN ' " . $db -> idate ( dol_mktime ( 0 , 0 , 0 , $month , $day , $year )) . " ' AND ' " . $db -> idate ( dol_mktime ( 23 , 59 , 59 , $month , $day , $year )) . " ' " ;
else
$sql .= " AND date_format(f.datef, '%m') = ' " . $month . " ' " ;
}
else if ( $year > 0 )
{
$sql .= " AND f.datef BETWEEN ' " . $db -> idate ( dol_get_first_day ( $year , 1 , false )) . " ' AND ' " . $db -> idate ( dol_get_last_day ( $year , 12 , false )) . " ' " ;
}
2012-06-23 20:39:20 +02:00
if ( $search_sale > 0 ) $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = " . $search_sale ;
2012-06-09 19:16:31 +02:00
if ( $search_user > 0 )
{
$sql .= " AND ec.fk_c_type_contact = tc.rowid AND tc.element='facture' AND tc.source='internal' AND ec.element_id = f.rowid AND ec.fk_socpeople = " . $search_user ;
}
if ( ! $sall )
{
2013-04-23 14:48:34 +02:00
$sql .= ' GROUP BY f.rowid, f.facnumber, f.type, f.increment, f.total,f.tva, f.total_ttc,' ;
2012-06-09 19:16:31 +02:00
$sql .= ' f.datef, f.date_lim_reglement,' ;
2013-04-09 17:18:07 +02:00
$sql .= ' f.paye, f.fk_statut,' ;
2013-09-10 11:10:42 +02:00
$sql .= ' s.nom, s.rowid, f.note_private' ;
2012-06-09 19:16:31 +02:00
}
else
{
2013-09-10 16:43:06 +02:00
$sql .= natural_search ( array ( 's.nom' , 'f.facnumber' , 'f.note_public' , 'fd.description' ), $sall );
2012-06-09 19:16:31 +02:00
}
$sql .= ' ORDER BY ' ;
$listfield = explode ( ',' , $sortfield );
foreach ( $listfield as $key => $value ) $sql .= $listfield [ $key ] . ' ' . $sortorder . ',' ;
$sql .= ' f.rowid DESC ' ;
2014-05-12 11:00:58 +02:00
$nbtotalofrecords = 0 ;
if ( empty ( $conf -> global -> MAIN_DISABLE_FULL_SCANLIST ))
{
$result = $db -> query ( $sql );
$nbtotalofrecords = $db -> num_rows ( $result );
}
2012-06-09 19:16:31 +02:00
$sql .= $db -> plimit ( $limit + 1 , $offset );
//print $sql;
$resql = $db -> query ( $sql );
if ( $resql )
{
$num = $db -> num_rows ( $resql );
if ( $socid )
{
$soc = new Societe ( $db );
$soc -> fetch ( $socid );
}
$param = '&socid=' . $socid ;
2012-06-23 20:39:20 +02:00
if ( $month ) $param .= '&month=' . $month ;
if ( $year ) $param .= '&year=' . $year ;
if ( $search_ref ) $param .= '&search_ref=' . $search_ref ;
2013-10-07 21:58:12 +02:00
if ( $search_refcustomer ) $param .= '&search_refcustomer=' . $search_refcustomer ;
2012-06-23 20:39:20 +02:00
if ( $search_societe ) $param .= '&search_societe=' . $search_societe ;
if ( $search_sale > 0 ) $param .= '&search_sale=' . $search_sale ;
if ( $search_user > 0 ) $param .= '&search_user=' . $search_user ;
2012-06-09 19:16:31 +02:00
if ( $search_montant_ht ) $param .= '&search_montant_ht=' . $search_montant_ht ;
if ( $search_montant_ttc ) $param .= '&search_montant_ttc=' . $search_montant_ttc ;
2014-05-12 11:00:58 +02:00
print_barre_liste ( $langs -> trans ( 'BillsCustomers' ) . ' ' . ( $socid ? ' ' . $soc -> nom : '' ), $page , $_SERVER [ " PHP_SELF " ], $param , $sortfield , $sortorder , '' , $num , $nbtotalofrecords );
2012-06-09 19:16:31 +02:00
$i = 0 ;
print '<form method="GET" action="' . $_SERVER [ " PHP_SELF " ] . '">' . " \n " ;
print '<table class="liste" width="100%">' ;
2012-06-23 20:39:20 +02:00
// If the user can view prospects other than his'
2012-07-23 21:40:34 +02:00
$moreforfilter = '' ;
2012-06-23 20:39:20 +02:00
if ( $user -> rights -> societe -> client -> voir || $socid )
{
2012-10-13 17:00:38 +02:00
$langs -> load ( " commercial " );
$moreforfilter .= $langs -> trans ( 'ThirdPartiesOfSaleRepresentative' ) . ': ' ;
2012-06-23 20:39:20 +02:00
$moreforfilter .= $formother -> select_salesrepresentatives ( $search_sale , 'search_sale' , $user );
$moreforfilter .= ' ' ;
}
2012-06-09 19:16:31 +02:00
// If the user can view prospects other than his'
if ( $user -> rights -> societe -> client -> voir || $socid )
{
$moreforfilter .= $langs -> trans ( 'LinkedToSpecificUsers' ) . ': ' ;
$moreforfilter .= $form -> select_dolusers ( $search_user , 'search_user' , 1 );
}
if ( $moreforfilter )
{
print '<tr class="liste_titre">' ;
2013-10-07 21:58:12 +02:00
print '<td class="liste_titre" colspan="10">' ;
2012-06-09 19:16:31 +02:00
print $moreforfilter ;
print '</td></tr>' ;
}
print '<tr class="liste_titre">' ;
print_liste_field_titre ( $langs -> trans ( 'Ref' ), $_SERVER [ 'PHP_SELF' ], 'f.facnumber' , '' , $param , '' , $sortfield , $sortorder );
2013-10-07 21:58:12 +02:00
print_liste_field_titre ( $langs -> trans ( 'RefCustomer' ), $_SERVER [ " PHP_SELF " ], 'f.ref_client' , '' , $param , '' , $sortfield , $sortorder );
2012-06-09 19:16:31 +02:00
print_liste_field_titre ( $langs -> trans ( 'Date' ), $_SERVER [ 'PHP_SELF' ], 'f.datef' , '' , $param , 'align="center"' , $sortfield , $sortorder );
print_liste_field_titre ( $langs -> trans ( " DateDue " ), $_SERVER [ 'PHP_SELF' ], " f.date_lim_reglement " , '' , $param , 'align="center"' , $sortfield , $sortorder );
print_liste_field_titre ( $langs -> trans ( 'Company' ), $_SERVER [ 'PHP_SELF' ], 's.nom' , '' , $param , '' , $sortfield , $sortorder );
print_liste_field_titre ( $langs -> trans ( 'AmountHT' ), $_SERVER [ 'PHP_SELF' ], 'f.total' , '' , $param , 'align="right"' , $sortfield , $sortorder );
2012-08-16 20:11:48 +02:00
print_liste_field_titre ( $langs -> trans ( 'AmountVAT' ), $_SERVER [ 'PHP_SELF' ], 'f.tva' , '' , $param , 'align="right"' , $sortfield , $sortorder );
2012-06-09 19:16:31 +02:00
print_liste_field_titre ( $langs -> trans ( 'AmountTTC' ), $_SERVER [ 'PHP_SELF' ], 'f.total_ttc' , '' , $param , 'align="right"' , $sortfield , $sortorder );
print_liste_field_titre ( $langs -> trans ( 'Received' ), $_SERVER [ 'PHP_SELF' ], 'am' , '' , $param , 'align="right"' , $sortfield , $sortorder );
print_liste_field_titre ( $langs -> trans ( 'Status' ), $_SERVER [ 'PHP_SELF' ], 'fk_statut,paye,am' , '' , $param , 'align="right"' , $sortfield , $sortorder );
//print '<td class="liste_titre"> </td>';
print '</tr>' ;
// Filters lines
print '<tr class="liste_titre">' ;
print '<td class="liste_titre" align="left">' ;
2013-10-07 21:58:12 +02:00
print '<input class="flat" size="6" type="text" name="search_ref" value="' . $search_ref . '">' ;
2012-06-09 19:16:31 +02:00
print '</td>' ;
2013-10-07 21:58:12 +02:00
print '<td class="liste_titre">' ;
print '<input class="flat" size="6" type="text" name="search_refcustomer" value="' . $search_refcustomer . '">' ;
print '</td>' ;
2012-06-09 19:16:31 +02:00
print '<td class="liste_titre" align="center">' ;
if ( ! empty ( $conf -> global -> MAIN_LIST_FILTER_ON_DAY )) print '<input class="flat" type="text" size="1" maxlength="2" name="day" value="' . $day . '">' ;
print '<input class="flat" type="text" size="1" maxlength="2" name="month" value="' . $month . '">' ;
2012-06-23 20:39:20 +02:00
$formother -> select_year ( $year ? $year :- 1 , 'year' , 1 , 20 , 5 );
2012-06-09 19:16:31 +02:00
print '</td>' ;
print '<td class="liste_titre" align="left"> </td>' ;
2012-08-16 20:11:48 +02:00
print '<td class="liste_titre" align="left"><input class="flat" type="text" name="search_societe" value="' . $search_societe . '"></td>' ;
print '<td class="liste_titre" align="right"><input class="flat" type="text" size="10" name="search_montant_ht" value="' . $search_montant_ht . '"></td>' ;
print '<td class="liste_titre" align="right"> </td>' ;
print '<td class="liste_titre" align="right"><input class="flat" type="text" size="10" name="search_montant_ttc" value="' . $search_montant_ttc . '"></td>' ;
print '<td class="liste_titre" align="right"> </td>' ;
2014-01-13 10:10:17 +01:00
print '<td class="liste_titre" align="right"><input type="image" class="liste_titre" name="button_search" src="' . img_picto ( $langs -> trans ( " Search " ), 'search.png' , '' , '' , 1 ) . '" value="' . dol_escape_htmltag ( $langs -> trans ( " Search " )) . '" title="' . dol_escape_htmltag ( $langs -> trans ( " Search " )) . '">' ;
2012-06-09 19:16:31 +02:00
print " </td></tr> \n " ;
if ( $num > 0 )
{
$var = True ;
2012-08-16 20:11:48 +02:00
$total_ht = 0 ;
$total_tva = 0 ;
2012-07-23 21:40:34 +02:00
$total_ttc = 0 ;
2012-06-09 19:16:31 +02:00
$totalrecu = 0 ;
while ( $i < min ( $num , $limit ))
{
$objp = $db -> fetch_object ( $resql );
$var =! $var ;
$datelimit = $db -> jdate ( $objp -> datelimite );
print '<tr ' . $bc [ $var ] . '>' ;
2013-04-25 01:13:13 +02:00
print '<td class="nowrap">' ;
2012-06-09 19:16:31 +02:00
$facturestatic -> id = $objp -> facid ;
$facturestatic -> ref = $objp -> facnumber ;
$facturestatic -> type = $objp -> type ;
2012-06-11 19:28:04 +02:00
$notetoshow = dol_string_nohtmltag (( $user -> societe_id > 0 ? $objp -> note_public : $objp -> note ), 1 );
2012-06-09 19:16:31 +02:00
$paiement = $facturestatic -> getSommePaiement ();
print '<table class="nobordernopadding"><tr class="nocellnopadd">' ;
2013-04-25 01:13:13 +02:00
print '<td class="nobordernopadding nowrap">' ;
2012-06-11 19:28:04 +02:00
print $facturestatic -> getNomUrl ( 1 , '' , 200 , 0 , $notetoshow );
2012-06-09 19:16:31 +02:00
print $objp -> increment ;
print '</td>' ;
2013-08-06 19:12:26 +02:00
print '<td style="min-width: 20px" class="nobordernopadding nowrap">' ;
if ( ! empty ( $objp -> note_private ))
{
print ' <span class="note">' ;
print '<a href="' . DOL_URL_ROOT . '/compta/facture/note.php?id=' . $objp -> facid . '">' . img_picto ( $langs -> trans ( " ViewPrivateNote " ), 'object_generic' ) . '</a>' ;
print '</span>' ;
}
2012-06-09 19:16:31 +02:00
$filename = dol_sanitizeFileName ( $objp -> facnumber );
$filedir = $conf -> facture -> dir_output . '/' . dol_sanitizeFileName ( $objp -> facnumber );
2012-08-16 20:11:48 +02:00
$urlsource = $_SERVER [ 'PHP_SELF' ] . '?id=' . $objp -> facid ;
2012-09-15 09:02:20 +02:00
print $formfile -> getDocumentsLink ( $facturestatic -> element , $filename , $filedir );
2013-08-06 19:12:26 +02:00
print '</td>' ;
2012-06-11 19:28:04 +02:00
print '</tr>' ;
print '</table>' ;
2012-06-09 19:16:31 +02:00
print " </td> \n " ;
2013-10-07 21:58:12 +02:00
// Customer ref
print '<td class="nowrap">' ;
print $objp -> ref_client ;
print '</td>' ;
// Date
print '<td align="center" class="nowrap">' ;
2012-06-09 19:16:31 +02:00
print dol_print_date ( $db -> jdate ( $objp -> df ), 'day' );
print '</td>' ;
// Date limit
2013-10-07 21:58:12 +02:00
print '<td align="center" class="nowrap">' . dol_print_date ( $datelimit , 'day' );
2012-06-09 19:16:31 +02:00
if ( $datelimit < ( $now - $conf -> facture -> client -> warning_delay ) && ! $objp -> paye && $objp -> fk_statut == 1 && ! $paiement )
{
print img_warning ( $langs -> trans ( 'Late' ));
}
print '</td>' ;
print '<td>' ;
$thirdparty = new Societe ( $db );
$thirdparty -> id = $objp -> socid ;
$thirdparty -> nom = $objp -> nom ;
2013-10-22 12:47:26 +02:00
$thirdparty -> client = $objp -> client ;
$thirdparty -> code_client = $objp -> code_client ;
2012-06-09 19:16:31 +02:00
print $thirdparty -> getNomUrl ( 1 , 'customer' );
print '</td>' ;
2013-07-01 01:59:07 +02:00
print '<td align="right">' . price ( $objp -> total_ht , 0 , $langs ) . '</td>' ;
2012-08-16 20:11:48 +02:00
2013-07-01 01:59:07 +02:00
print '<td align="right">' . price ( $objp -> total_tva , 0 , $langs ) . '</td>' ;
2012-06-09 19:16:31 +02:00
2013-07-01 01:59:07 +02:00
print '<td align="right">' . price ( $objp -> total_ttc , 0 , $langs ) . '</td>' ;
2012-06-09 19:16:31 +02:00
2013-07-01 01:59:07 +02:00
print '<td align="right">' . ( ! empty ( $paiement ) ? price ( $paiement , 0 , $langs ) : ' ' ) . '</td>' ;
2012-06-09 19:16:31 +02:00
// Affiche statut de la facture
2013-04-25 01:13:13 +02:00
print '<td align="right" class="nowrap">' ;
2012-06-09 19:16:31 +02:00
print $facturestatic -> LibStatut ( $objp -> paye , $objp -> fk_statut , 5 , $paiement , $objp -> type );
print " </td> " ;
//print "<td> </td>";
print " </tr> \n " ;
2012-08-16 20:11:48 +02:00
$total_ht += $objp -> total_ht ;
$total_tva += $objp -> total_tva ;
2012-06-09 19:16:31 +02:00
$total_ttc += $objp -> total_ttc ;
$totalrecu += $paiement ;
$i ++ ;
}
if (( $offset + $num ) <= $limit )
{
// Print total
print '<tr class="liste_total">' ;
2013-10-07 21:58:12 +02:00
print '<td class="liste_total" colspan="5" align="left">' . $langs -> trans ( 'Total' ) . '</td>' ;
2013-07-01 01:59:07 +02:00
print '<td class="liste_total" align="right">' . price ( $total_ht , 0 , $langs ) . '</td>' ;
print '<td class="liste_total" align="right">' . price ( $total_tva , 0 , $langs ) . '</td>' ;
print '<td class="liste_total" align="right">' . price ( $total_ttc , 0 , $langs ) . '</td>' ;
print '<td class="liste_total" align="right">' . price ( $totalrecu , 0 , $langs ) . '</td>' ;
2012-06-09 19:16:31 +02:00
print '<td class="liste_total" align="center"> </td>' ;
print '</tr>' ;
}
}
print " </table> \n " ;
print " </form> \n " ;
$db -> free ( $resql );
}
else
{
dol_print_error ( $db );
}
llxFooter ();
$db -> close ();
?>