28 require
'../../main.inc.php';
29 require_once DOL_DOCUMENT_ROOT.
'/core/lib/bank.lib.php';
30 require_once DOL_DOCUMENT_ROOT.
'/societe/class/societe.class.php';
31 require_once DOL_DOCUMENT_ROOT.
'/compta/facture/class/facture.class.php';
32 require_once DOL_DOCUMENT_ROOT.
'/fourn/class/fournisseur.facture.class.php';
33 require_once DOL_DOCUMENT_ROOT.
'/compta/sociales/class/chargesociales.class.php';
34 require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/account.class.php';
37 $langs->loadLangs(array(
'banks',
'categories',
'bills',
'companies'));
45 $socid = $user->socid;
47 $result =
restrictedArea($user,
'banque', $id,
'bank_account&bank_account',
'',
'', $fieldid);
54 $hookmanager->initHooks(array(
'banktreso',
'globalcard'));
61 $title = $langs->trans(
"FinancialAccount").
' - '.$langs->trans(
"PlannedTransactions");
65 $societestatic =
new Societe($db);
66 $facturestatic =
new Facture($db);
80 if (
GETPOST(
"account",
'int')) {
81 $result = $object->fetch(
GETPOST(
"account",
'int'));
84 $result = $object->fetch(0,
GETPOST(
"ref"));
85 $_GET[
"account"] = $object->id;
91 print
dol_get_fiche_head($head,
'cash', $langs->trans(
"FinancialAccount"), 0,
'account');
93 $linkback =
'<a href="'.DOL_URL_ROOT.
'/compta/bank/list.php?restore_lastsearch_values=1">'.$langs->trans(
"BackToList").
'</a>';
97 dol_banner_tab($object,
'ref', $linkback, 1,
'ref',
'ref', $morehtmlref,
'', 0,
'',
'', 1);
106 $sql =
"SELECT 'invoice' as family, f.rowid as objid, f.ref as ref, f.total_ttc, f.type, f.date_lim_reglement as dlr,";
107 $sql .=
" s.rowid as socid, s.nom as name, s.fournisseur";
108 $sql .=
" FROM ".MAIN_DB_PREFIX.
"facture as f";
109 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"societe as s ON f.fk_soc = s.rowid";
110 $sql .=
" WHERE f.entity IN (".getEntity(
'invoice').
")";
111 $sql .=
" AND f.paye = 0 AND f.fk_statut = 1";
112 $sql .=
" AND (f.fk_account IN (0, ".$object->id.
") OR f.fk_account IS NULL)";
113 $sql .=
" ORDER BY dlr ASC";
117 $sql =
" SELECT 'invoice_supplier' as family, ff.rowid as objid, ff.ref as ref, ff.ref_supplier as ref_supplier, (-1*ff.total_ttc) as total_ttc, ff.type, ff.date_lim_reglement as dlr,";
118 $sql .=
" s.rowid as socid, s.nom as name, s.fournisseur";
119 $sql .=
" FROM ".MAIN_DB_PREFIX.
"facture_fourn as ff";
120 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"societe as s ON ff.fk_soc = s.rowid";
121 $sql .=
" WHERE ff.entity = ".$conf->entity;
122 $sql .=
" AND ff.paye = 0 AND fk_statut = 1";
123 $sql .=
" AND (ff.fk_account IN (0, ".$object->id.
") OR ff.fk_account IS NULL)";
124 $sql .=
" ORDER BY dlr ASC";
128 $sql =
" SELECT 'social_contribution' as family, cs.rowid as objid, cs.libelle as ref, (-1*cs.amount) as total_ttc, ccs.libelle as type, cs.date_ech as dlr,";
129 $sql .=
" 0 as socid, 'noname' as name, 0 as fournisseur";
130 $sql .=
" FROM ".MAIN_DB_PREFIX.
"chargesociales as cs";
131 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_chargesociales as ccs ON cs.fk_type = ccs.id";
132 $sql .=
" WHERE cs.entity = ".$conf->entity;
133 $sql .=
" AND cs.paye = 0";
134 $sql .=
" AND (cs.fk_account IN (0, ".$object->id.
") OR cs.fk_account IS NULL)";
135 $sql .=
" ORDER BY dlr ASC";
139 $parameters = array();
140 $reshook = $hookmanager->executeHooks(
'addMoreSQL', $parameters, $object, $action);
141 if (empty($reshook) and isset($hookmanager->resArray[
'sql'])) {
142 $sqls[] = $hookmanager->resArray[
'sql'];
146 $tab_sqlobjOrder = array();
147 $tab_sqlobj = array();
148 $nbtotalofrecords = 0;
150 foreach ($sqls as $sql) {
151 $resql = $db->query($sql);
153 $nbtotalofrecords += $db->num_rows(
$resql);
154 while ($sqlobj = $db->fetch_object(
$resql)) {
155 $tmpobj =
new stdClass();
156 $tmpobj->family = $sqlobj->family;
157 $tmpobj->objid = $sqlobj->objid;
158 $tmpobj->ref = $sqlobj->ref;
159 $tmpobj->total_ttc = $sqlobj->total_ttc;
160 $tmpobj->type = $sqlobj->type;
161 $tmpobj->dlr = $db->jdate($sqlobj->dlr);
162 $tmpobj->socid = $sqlobj->socid;
163 $tmpobj->name = $sqlobj->name;
164 $tmpobj->fournisseur = $sqlobj->fournisseur;
166 $tab_sqlobj[] = $tmpobj;
167 $tab_sqlobjOrder[] = $db->jdate($sqlobj->dlr);
178 $massactionbutton =
'';
184 print_barre_liste($langs->trans(
"RemainderToPay"), $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, $picto, 0, $morehtml,
'', $limit, 0, 0, 1);
187 $solde = $object->solde(0);
195 print
'<div class="div-table-responsive">';
196 print
'<table class="noborder centpercent">';
199 print
'<tr class="liste_titre">';
200 print
'<td>'.$langs->trans(
"DateDue").
'</td>';
201 print
'<td>'.$langs->trans(
"Description").
'</td>';
203 print
'<td>'.$langs->trans(
"Entity").
'</td>';
205 print
'<td>'.$langs->trans(
"ThirdParty").
'</td>';
206 print
'<td class="right">'.$langs->trans(
"Debit").
'</td>';
207 print
'<td class="right">'.$langs->trans(
"Credit").
'</td>';
208 print
'<td class="right" width="80">'.$langs->trans(
"BankBalance").
'</td>';
212 print
'<tr class="liste_total">';
213 print
'<td class="left" colspan="5">'.$langs->trans(
"CurrentBalance").
'</td>';
214 print
'<td class="nowrap right">'.price($solde).
'</td>';
219 array_multisort($tab_sqlobjOrder, $tab_sqlobj);
221 $num = count($tab_sqlobj);
229 $tmpobj = array_shift($tab_sqlobj);
231 if ($tmpobj->family ==
'invoice_supplier') {
237 $facturefournstatic->ref = $ref;
238 $facturefournstatic->id = $tmpobj->objid;
239 $facturefournstatic->type = $tmpobj->type;
240 $ref = $facturefournstatic->getNomUrl(1,
'');
242 $societestatic->id = $tmpobj->socid;
243 $societestatic->name = $tmpobj->name;
244 $refcomp = $societestatic->getNomUrl(1,
'', 24);
246 $totalpayment = -1 * $facturefournstatic->getSommePaiement();
249 if ($tmpobj->family ==
'invoice') {
250 $facturestatic->ref = $tmpobj->ref;
251 $facturestatic->id = $tmpobj->objid;
252 $facturestatic->type = $tmpobj->type;
253 $ref = $facturestatic->getNomUrl(1,
'');
255 $societestatic->id = $tmpobj->socid;
256 $societestatic->name = $tmpobj->name;
257 $refcomp = $societestatic->getNomUrl(1,
'', 24);
259 $totalpayment = $facturestatic->getSommePaiement();
260 $totalpayment += $facturestatic->getSumDepositsUsed();
261 $totalpayment += $facturestatic->getSumCreditNotesUsed();
263 if ($tmpobj->family ==
'social_contribution') {
264 $socialcontribstatic->ref = $tmpobj->ref;
265 $socialcontribstatic->id = $tmpobj->objid;
266 $socialcontribstatic->label = $tmpobj->type;
267 $ref = $socialcontribstatic->getNomUrl(1, 24);
269 $totalpayment = -1 * $socialcontribstatic->getSommePaiement();
272 $parameters = array(
'obj' => $tmpobj,
'ref' => $ref,
'refcomp' => $refcomp,
'totalpayment' => $totalpayment);
273 $reshook = $hookmanager->executeHooks(
'moreFamily', $parameters, $tmpobject, $action);
274 if (empty($reshook)) {
275 $ref = isset($hookmanager->resArray[
'ref']) ? $hookmanager->resArray[
'ref'] : $ref;
276 $refcomp = isset($hookmanager->resArray[
'refcomp']) ? $hookmanager->resArray[
'refcomp'] : $refcomp;
277 $totalpayment = isset($hookmanager->resArray[
'totalpayment']) ? $hookmanager->resArray[
'totalpayment'] : $totalpayment;
280 $total_ttc = $tmpobj->total_ttc;
282 $total_ttc = $tmpobj->total_ttc - $totalpayment;
284 $solde += $total_ttc;
289 print
'<tr class="oddeven">';
294 print $langs->trans(
"NotDefined");
297 print
"<td>".$ref.
"</td>";
298 if ($conf->global->MULTICOMPANY_INVOICE_SHARING_ENABLED) {
299 if ($tmpobj->family ==
'invoice') {
300 $mc->getInfo($tmpobj->entity);
301 print
"<td>".$mc->label.
"</td>";
306 print
"<td>".$refcomp.
"</td>";
307 if ($tmpobj->total_ttc < 0) {
308 print
'<td class="nowrap right">'.price(abs($total_ttc)).
"</td><td> </td>";
310 if ($tmpobj->total_ttc >= 0) {
311 print
'<td> </td><td class="nowrap right">'.price($total_ttc).
"</td>";
313 print
'<td class="nowrap right">'.price($solde).
'</td>';
324 $parameters = array(
'solde' => $solde);
325 $reshook = $hookmanager->executeHooks(
'printObjectLine', $parameters, $object, $action);
326 if (empty($reshook)) {
327 print $hookmanager->resPrint;
328 $solde = isset($hookmanager->resArray[
'solde']) ? $hookmanager->resArray[
'solde'] : $solde;
332 print
'<tr class="liste_total">';
333 print
'<td class="left" colspan="'.$colspan.
'">'.$langs->trans(
"FutureBalance").
' ('.$object->currency_code.
')</td>';
334 print
'<td class="nowrap right">'.price($solde, 0, $langs, 0, 0, -1, $object->currency_code).
'</td>';
340 print $langs->trans(
"ErrorBankAccountNotFound");