27 require
'../main.inc.php';
28 require_once DOL_DOCUMENT_ROOT.
'/core/lib/company.lib.php';
29 require_once DOL_DOCUMENT_ROOT.
'/compta/facture/class/facture.class.php';
30 require_once DOL_DOCUMENT_ROOT.
'/compta/paiement/class/paiement.class.php';
33 $langs->load(
"companies");
35 $langs->load(
"bills");
52 $hookmanager->initHooks(array(
'recapcomptacard',
'globalcard'));
55 $limit =
GETPOST(
'limit',
'int') ?
GETPOST(
'limit',
'int') : $conf->liste_limit;
56 $sortfield =
GETPOST(
'sortfield',
'aZ09comma');
57 $sortorder =
GETPOST(
'sortorder',
'aZ09comma');
59 if (empty($page) || $page == -1) {
62 $offset = $limit * $page;
63 $pageprev = $page - 1;
64 $pagenext = $page + 1;
66 $sortfield =
"f.datef,f.rowid";
74 'f.datef'=>array(
'label'=>
"Date",
'checked'=>1),
79 $hookmanager->initHooks(array(
'supplierbalencelist',
'globalcard'));
84 $parameters = array(
'socid' => $id);
85 $reshook = $hookmanager->executeHooks(
'doActions', $parameters, $object);
98 $userstatic =
new User($db);
100 $title = $langs->trans(
"ThirdParty").
' - '.$langs->trans(
"Summary");
101 if (!empty($conf->global->MAIN_HTML_TITLE) && preg_match(
'/thirdpartynameonly/', $conf->global->MAIN_HTML_TITLE) && $object->name) {
102 $title = $object->name.
' - '.$langs->trans(
"Summary");
104 $help_url =
'EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas';
111 $param .=
'&socid='.$id;
116 print
dol_get_fiche_head($head,
'customer', $langs->trans(
"ThirdParty"), 0,
'company');
117 dol_banner_tab($object,
'socid',
'', ($user->socid ? 0 : 1),
'rowid',
'nom',
'',
'', 0,
'',
'', 1);
120 if (
isModEnabled(
'facture') && $user->rights->facture->lire) {
124 print
'<table class="noborder tagtable liste centpercent">';
125 print
'<tr class="liste_titre">';
126 if (!empty($arrayfields[
'f.datef'][
'checked'])) {
127 print_liste_field_titre($arrayfields[
'f.datef'][
'label'], $_SERVER[
"PHP_SELF"],
"f.datef",
"", $param,
'align="center" class="nowrap"', $sortfield, $sortorder);
129 print
'<td>'.$langs->trans(
"Element").
'</td>';
130 print
'<td>'.$langs->trans(
"Status").
'</td>';
131 print
'<td class="right">'.$langs->trans(
"Debit").
'</td>';
132 print
'<td class="right">'.$langs->trans(
"Credit").
'</td>';
133 print
'<td class="right">'.$langs->trans(
"Balance").
'</td>';
134 print
'<td class="right">'.$langs->trans(
"Author").
'</td>';
139 $sql =
"SELECT s.nom, s.rowid as socid, f.ref, f.total_ttc, f.datef as df,";
140 $sql .=
" f.paye as paye, f.fk_statut as statut, f.rowid as facid,";
141 $sql .=
" u.login, u.rowid as userid";
142 $sql .=
" FROM ".MAIN_DB_PREFIX.
"societe as s,".MAIN_DB_PREFIX.
"facture as f,".MAIN_DB_PREFIX.
"user as u";
143 $sql .=
" WHERE f.fk_soc = s.rowid AND s.rowid = ".((int) $object->id);
144 $sql .=
" AND f.entity IN (".getEntity(
'invoice').
")";
145 $sql .=
" AND f.fk_user_valid = u.rowid";
146 $sql .= $db->order($sortfield, $sortorder);
148 $resql = $db->query($sql);
150 $num = $db->num_rows(
$resql);
153 for ($i = 0; $i < $num; $i++) {
154 $objf = $db->fetch_object(
$resql);
157 $ret = $fac->fetch($objf->facid);
159 print $fac->error.
"<br>";
162 $totalpaid = $fac->getSommePaiement();
164 $userstatic->id = $objf->userid;
165 $userstatic->login = $objf->login;
168 'fk_facture' => $objf->facid,
169 'date' => $fac->date,
170 'datefieldforsort' => $fac->date.
'-'.$fac->ref,
171 'link' => $fac->getNomUrl(1),
172 'status' => $fac->getLibStatut(2, $totalpaid),
173 'amount' => $fac->total_ttc,
174 'author' => $userstatic->getLoginUrl(1)
177 $parameters = array(
'socid' => $id,
'values' => &$values,
'fac' => $fac,
'userstatic' => $userstatic);
178 $reshook = $hookmanager->executeHooks(
'facdao', $parameters, $object);
186 $sql =
"SELECT p.rowid, p.datep as dp, pf.amount, p.statut,";
187 $sql .=
" p.fk_user_creat, u.login, u.rowid as userid";
188 $sql .=
" FROM ".MAIN_DB_PREFIX.
"paiement_facture as pf,";
189 $sql .=
" ".MAIN_DB_PREFIX.
"paiement as p";
190 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"user as u ON p.fk_user_creat = u.rowid";
191 $sql .=
" WHERE pf.fk_paiement = p.rowid";
192 $sql .=
" AND p.entity = ".$conf->entity;
193 $sql .=
" AND pf.fk_facture = ".((int) $fac->id);
194 $sql .=
" ORDER BY p.datep ASC, p.rowid ASC";
196 $resqlp = $db->query($sql);
198 $nump = $db->num_rows($resqlp);
202 $objp = $db->fetch_object($resqlp);
205 $paymentstatic->id = $objp->rowid;
207 $userstatic->id = $objp->userid;
208 $userstatic->login = $objp->login;
211 'fk_paiement' => $objp->rowid,
212 'date' => $db->jdate($objp->dp),
213 'datefieldforsort' => $db->jdate($objp->dp).
'-'.$fac->ref,
214 'link' => $langs->trans(
"Payment").
' '.$paymentstatic->getNomUrl(1),
216 'amount' => -$objp->amount,
217 'author' => $userstatic->getLoginUrl(1)
220 $parameters = array(
'socid' => $id,
'values' => &$values,
'fac' => $fac,
'userstatic' => $userstatic,
'paymentstatic' => $paymentstatic);
221 $reshook = $hookmanager->executeHooks(
'paydao', $parameters, $object);
241 print
'<tr class="oddeven"><td colspan="7">'.$langs->trans(
"NoInvoice").
'</td></tr>';
248 foreach ($TData as &$data1) {
249 $balance += $data1[
'amount'];
250 $data1[
'balance'] += $balance;
260 foreach ($TData as $data) {
262 if (!empty($data[
'fk_facture'])) {
263 $html_class =
'facid-'.$data[
'fk_facture'];
264 } elseif (!empty($data[
'fk_paiement'])) {
265 $html_class =
'payid-'.$data[
'fk_paiement'];
268 print
'<tr class="oddeven '.$html_class.
'">';
271 if (!empty($data[
'fk_facture'])) {
274 print
'<td class="center" title="'.dol_escape_htmltag($datedetail).
'">';
278 print
'<td>'.$data[
'link'].
"</td>\n";
280 print
'<td class="left">'.$data[
'status'].
'</td>';
282 print
'<td class="right">'.(($data[
'amount'] > 0) ?
price(abs($data[
'amount'])) :
'').
"</td>\n";
284 $totalDebit += ($data[
'amount'] > 0) ? abs($data[
'amount']) : 0;
286 print
'<td class="right">'.(($data[
'amount'] > 0) ?
'' :
price(abs($data[
'amount']))).
"</td>\n";
287 $totalCredit += ($data[
'amount'] > 0) ? 0 : abs($data[
'amount']);
290 print
'<td class="right"><span class="amount">'.price($data[
'balance']).
"</span></td>\n";
293 print
'<td class="nowrap right">';
294 print $data[
'author'];
300 print
'<tr class="liste_total">';
301 print
'<td colspan="3"> </td>';
302 print
'<td class="right">'.price($totalDebit).
'</td>';
303 print
'<td class="right">'.price($totalCredit).
'</td>';
304 print
'<td class="right">'.price(
price2num($totalDebit - $totalCredit,
'MT')).
'</td>';
if(GETPOST('button_removefilter_x', 'alpha')||GETPOST('button_removefilter.x', 'alpha')||GETPOST('button_removefilter', 'alpha')) if(GETPOST('button_search_x', 'alpha')||GETPOST('button_search.x', 'alpha')||GETPOST('button_search', 'alpha')) if($action=="save" &&empty($cancel)) $help_url
View.
if(!defined('NOREQUIRESOC')) if(!defined('NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined('NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined('NOREQUIREAJAX')) llxHeader()
Empty header.
Class to manage invoices.
Class to manage payments of customer invoices.
Class to manage third parties objects (customers, suppliers, prospects...)
Class to manage Dolibarr users.
societe_prepare_head(Societe $object)
Return array of tabs to used on pages for third parties cards.
if(isModEnabled('facture') &&!empty($user->rights->facture->lire)) if((isModEnabled('fournisseur') &&empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) && $user->hasRight("fournisseur", "facture", "lire"))||(isModEnabled('supplier_invoice') && $user->hasRight("supplier_invoice", "lire"))) if(isModEnabled('don') &&!empty($user->rights->don->lire)) if(isModEnabled('tax') &&!empty($user->rights->tax->charges->lire)) if(isModEnabled('facture') &&isModEnabled('commande') && $user->hasRight("commande", "lire") &&empty($conf->global->WORKFLOW_DISABLE_CREATE_INVOICE_FROM_ORDER)) $resql
Social contributions to pay.
if($cancel &&! $id) if($action=='add' &&! $cancel) if($action=='delete') if($id) $form
Actions.
dol_banner_tab($object, $paramid, $morehtml='', $shownav=1, $fieldid='rowid', $fieldref='ref', $morehtmlref='', $moreparam='', $nodbprefix=0, $morehtmlleft='', $morehtmlstatus='', $onlybanner=0, $morehtmlright='')
Show tab footer of a card.
load_fiche_titre($titre, $morehtmlright='', $picto='generic', $pictoisfullpath=0, $id='', $morecssontable='', $morehtmlcenter='')
Load a title with picto.
dol_get_fiche_head($links=array(), $active='', $title='', $notab=0, $picto='', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limittoshow=0, $moretabssuffix='')
Show tabs of a record.
price2num($amount, $rounding='', $option=0)
Function that return a number with universal decimal format (decimal separator is '.
dol_print_error($db='', $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
dol_get_fiche_end($notab=0)
Return tab footer of a card.
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='')
Set event messages in dol_events session object.
price($amount, $form=0, $outlangs='', $trunc=1, $rounding=-1, $forcerounding=-1, $currency_code='')
Function to format a value into an amount for visual output Function used into PDF and HTML pages.
dol_print_date($time, $format='', $tzoutput='auto', $outputlangs='', $encodetooutput=false)
Output date in a string format according to outputlangs (or langs if not defined).
dol_sort_array(&$array, $index, $order='asc', $natsort=0, $case_sensitive=0, $keepindex=0)
Advanced sort array by second index function, which produces ascending (default) or descending output...
print_liste_field_titre($name, $file="", $field="", $begin="", $moreparam="", $moreattrib="", $sortfield="", $sortorder="", $prefix="", $tooltip="", $forcenowrapcolumntitle=0)
Show title line of an array.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
GETPOSTISSET($paramname)
Return true if we are in a context of submitting the parameter $paramname from a POST of a form.
isModEnabled($module)
Is Dolibarr module enabled.
restrictedArea(User $user, $features, $object=0, $tableandshare='', $feature2='', $dbt_keyfield='fk_soc', $dbt_select='rowid', $isdraft=0, $mode=0)
Check permissions of a user to show a page and an object.