29require
'../../main.inc.php';
30require_once DOL_DOCUMENT_ROOT.
'/compta/prelevement/class/bonprelevement.class.php';
31require_once DOL_DOCUMENT_ROOT.
'/compta/prelevement/class/ligneprelevement.class.php';
32require_once DOL_DOCUMENT_ROOT.
'/compta/prelevement/class/rejetprelevement.class.php';
33require_once DOL_DOCUMENT_ROOT.
'/compta/paiement/class/paiement.class.php';
34require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/account.class.php';
37$langs->loadlangs(array(
'banks',
'categories',
'bills',
'companies',
'withdrawals'));
40$action =
GETPOST(
'action',
'aZ09');
42$socid =
GETPOST(
'socid',
'int');
46$limit =
GETPOST(
'limit',
'int') ?
GETPOST(
'limit',
'int') : $conf->liste_limit;
47$sortorder =
GETPOST(
'sortorder',
'aZ09comma');
48$sortfield =
GETPOST(
'sortfield',
'aZ09comma');
49$page = GETPOSTISSET(
'pageplusone') ? (
GETPOST(
'pageplusone') - 1) :
GETPOST(
"page",
'int');
50if (empty($page) || $page < 0 ||
GETPOST(
'button_search',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha')) {
54$offset = $limit * $page;
58if ($sortorder ==
"") {
61if ($sortfield ==
"") {
62 $sortfield =
"pl.fk_soc";
66if ($type ==
'bank-transfer') {
67 $result =
restrictedArea($user,
'paymentbybanktransfer',
'',
'',
'');
72if ($type ==
'bank-transfer') {
73 $permissiontoadd = $user->hasRight(
'paymentbybanktransfer',
'create');
75 $permissiontoadd = $user->hasRight(
'prelevement',
'bons',
'creer');
85if ($action ==
'confirm_rejet' && $permissiontoadd) {
86 if (
GETPOST(
"confirm") ==
'yes') {
87 if (
GETPOST(
'remonth',
'int')) {
91 if (empty($daterej)) {
93 setEventMessages($langs->trans(
"ErrorFieldRequired", $langs->transnoentitiesnoconv(
"Date")),
null,
'errors');
94 } elseif ($daterej >
dol_now()) {
96 $langs->load(
"error");
97 setEventMessages($langs->transnoentities(
"ErrorDateMustBeBeforeToday"),
null,
'errors');
100 if (
GETPOST(
'motif',
'alpha') == 0) {
102 setEventMessages($langs->trans(
"ErrorFieldRequired", $langs->transnoentities(
"RefusedReason")),
null,
'errors');
108 if ($lipre->fetch($id) == 0) {
111 $result = $rej->create($user, $id,
GETPOST(
'motif',
'alpha'), $daterej, $lipre->bon_rowid,
GETPOST(
'facturer',
'int'));
114 header(
"Location: line.php?id=".urlencode($id).
'&type='.urlencode($type));
122 header(
"Location: line.php?id=".urlencode($id).
'&type='.urlencode($type));
132$form =
new Form($db);
134if ($type ==
'bank-transfer') {
135 require_once DOL_DOCUMENT_ROOT.
'/fourn/class/fournisseur.facture.class.php';
138 require_once DOL_DOCUMENT_ROOT.
'/compta/facture/class/facture.class.php';
139 $invoicestatic =
new Facture($db);
142$title = $langs->trans(
"WithdrawalsLine");
143if ($type ==
'bank-transfer') {
144 $title = $langs->trans(
"CreditTransferLine");
152$head[$h][0] = DOL_URL_ROOT.
'/compta/prelevement/line.php?id='.((int) $id).
'&type='.urlencode($type);
153$head[$h][1] = $title;
160 if ($lipre->fetch($id) >= 0) {
162 $bon->fetch($lipre->bon_rowid);
166 print
'<table class="border centpercent tableforfield">';
168 print
'<tr><td class="titlefield">'.$langs->trans(
"Ref").
'</td><td>';
169 print $id.
'</td></tr>';
171 if ($type ==
'bank-transfer') {
172 print
'<tr><td class="titlefield">'.$langs->trans(
"BankTransfers").
'</td><td>';
174 print
'<tr><td class="titlefield">'.$langs->trans(
"WithdrawalsReceipts").
'</td><td>';
177 print $bon->getNomUrl(1).
'</td></tr>';
179 print
'<tr><td>'.$langs->trans(
"Date").
'</td><td>'.
dol_print_date($bon->datec,
'day').
'</td></tr>';
181 print
'<tr><td>'.$langs->trans(
"Amount").
'</td><td><span class="amount">'.
price($lipre->amount).
'</span></td></tr>';
183 print
'<tr><td>'.$langs->trans(
"Status").
'</td><td>'.$lipre->LibStatut($lipre->statut, 1).
'</td></tr>';
185 if ($lipre->statut == 3) {
187 $resf = $rej->fetch($lipre->id);
189 print
'<tr><td>'.$langs->trans(
"RefusedReason").
'</td><td>'.$rej->motif.
'</td></tr>';
191 print
'<tr><td>'.$langs->trans(
"RefusedData").
'</td><td>';
192 if ($rej->date_rejet == 0) {
194 print $langs->trans(
"Unknown");
200 print
'<tr><td>'.$langs->trans(
"RefusedInvoicing").
'</td><td>'.$rej->invoicing.
'</td></tr>';
202 print
'<tr><td>'.$resf.
'</td></tr>';
213 if ($action ==
'rejet' && $user->hasRight(
'prelevement',
'bons',
'credit')) {
215 $soc->fetch($lipre->socid);
219 print
'<form name="confirm_rejet" method="post" action="'.DOL_URL_ROOT.
'/compta/prelevement/line.php?id='.$id.
'">';
220 print
'<input type="hidden" name="token" value="'.newToken().
'">';
221 print
'<input type="hidden" name="action" value="confirm_rejet">';
222 print
'<input type="hidden" name="type" value="'.$type.
'">';
224 print
'<div class="div-table-responsive-no-min">';
225 print
'<table class="noborder centpercent">';
227 print
'<tr class="liste_titre">';
228 print
'<td>'.$langs->trans(
"WithdrawalRefused").
'</td>';
233 print
'<tr><td class="valid">'.$langs->trans(
"WithdrawalRefusedConfirm").
' '.$soc->name.
' ?</td>';
234 print
'<td class="valid">';
235 print $form->selectyesno(
"confirm", 1, 0);
239 print
'<tr><td class="fieldrequired valid">'.$langs->trans(
"RefusedData").
'</td>';
240 print
'<td class="valid">';
241 print $form->selectDate(
'',
'',
'',
'',
'',
"confirm_rejet");
245 print
'<tr><td class="fieldrequired valid">'.$langs->trans(
"RefusedReason").
'</td>';
246 print
'<td class="valid">';
247 print $form->selectarray(
"motif", $rej->motifs, GETPOSTISSET(
'motif') ?
GETPOST(
'motif',
'int') :
'');
251 print
'<tr><td class="fieldrequired valid">';
252 print $form->textwithpicto($langs->trans(
"RefusedInvoicing"), $langs->trans(
"DirectDebitRefusedInvoicingDesc"));
254 print
'<td class="valid">';
255 print $form->selectarray(
"facturer", $rej->labelsofinvoicing, GETPOSTISSET(
'facturer') ?
GETPOST(
'facturer',
'int') :
'', 0);
262 print
'<div class="center"><input type="submit" class="button button-save" value='.$langs->trans(
"Confirm").
'></div>';
269 print
'<div class="tabsAction">';
272 if ($bon->statut == BonPrelevement::STATUS_CREDITED) {
273 if ($lipre->statut == 2) {
274 if ($user->hasRight(
'prelevement',
'bons',
'credit')) {
275 print
'<a class="butActionDelete" href="line.php?action=rejet&type='.$type.
'&id='.$lipre->id.
'">'.$langs->trans(
"StandingOrderReject").
'</a>';
277 print
'<a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans(
"NotAllowed").
'">'.$langs->trans(
"StandingOrderReject").
'</a>';
281 print
'<a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans(
"NotPossibleForThisStatusOfWithdrawReceiptORLine").
'">'.$langs->trans(
"StandingOrderReject").
'</a>';
290 $sql =
"SELECT pf.rowid";
291 $sql .=
" ,f.rowid as facid, f.ref as ref, f.total_ttc, f.paye, f.fk_statut";
292 $sql .=
" , s.rowid as socid, s.nom as name";
296 $sql .=
" FROM ".MAIN_DB_PREFIX.
"prelevement_bons as p";
297 $sql .=
" , ".MAIN_DB_PREFIX.
"prelevement_lignes as pl";
298 $sql .=
" , ".MAIN_DB_PREFIX.
"prelevement as pf";
299 if ($type ==
'bank-transfer') {
300 $sql .=
" , ".MAIN_DB_PREFIX.
"facture_fourn as f";
302 $sql .=
" , ".MAIN_DB_PREFIX.
"facture as f";
304 $sql .=
" , ".MAIN_DB_PREFIX.
"societe as s";
305 $sql .=
" WHERE pf.fk_prelevement_lignes = pl.rowid";
306 $sql .=
" AND pl.fk_prelevement_bons = p.rowid";
307 $sql .=
" AND f.fk_soc = s.rowid";
308 if ($type ==
'bank-transfer') {
309 $sql .=
" AND pf.fk_facture_fourn = f.rowid";
311 $sql .=
" AND pf.fk_facture = f.rowid";
313 $sql .=
" AND f.entity IN (".getEntity(
'invoice').
")";
314 $sql .=
" AND pl.rowid = ".((int) $id);
316 $sql .=
" AND s.rowid = ".((int) $socid);
320 $nbtotalofrecords =
'';
323 $sqlforcount = preg_replace(
'/^'.preg_quote($sqlfields,
'/').
'/',
'SELECT COUNT(*) as nbtotalofrecords', $sql);
324 $sqlforcount = preg_replace(
'/GROUP BY .*$/',
'', $sqlforcount);
325 $resql = $db->query($sqlforcount);
327 $objforcount = $db->fetch_object($resql);
328 $nbtotalofrecords = $objforcount->nbtotalofrecords;
333 if (($page * $limit) > $nbtotalofrecords) {
340 $result = $db->query($sql);
342 $sql .= $db->order($sortfield, $sortorder);
343 $sql .= $db->plimit($conf->liste_limit + 1, $offset);
345 $result = $db->query($sql);
348 $num = $db->num_rows($result);
351 $urladd =
"&id=".urlencode($id);
352 $title = $langs->trans(
"Bills");
353 if ($type ==
'bank-transfer') {
354 $title = $langs->trans(
"SupplierInvoices");
357 print_barre_liste($title, $page,
"factures.php", $urladd, $sortfield, $sortorder,
'', $num, $nbtotalofrecords,
'');
359 print
"\n<!-- debut table -->\n";
360 print
'<table class="noborder" width="100%" cellpadding="4">';
361 print
'<tr class="liste_titre">';
362 print
'<td>'.$langs->trans(
"Invoice").
'</td>';
363 print
'<td>'.$langs->trans(
"ThirdParty").
'</td>';
364 print
'<td class="right">'.$langs->trans(
"Amount").
'</td><td class="right">'.$langs->trans(
"Status").
'</td>';
369 while ($i < min($num, $conf->liste_limit)) {
370 $obj = $db->fetch_object($result);
372 print
'<tr class="oddeven"><td>';
374 print
'<a href="'.DOL_URL_ROOT.
'/compta/facture/card.php?facid='.$obj->facid.
'">';
375 print
img_object($langs->trans(
"ShowBill"),
"bill");
378 if ($type ==
'bank-transfer') {
379 print
'<a href="'.DOL_URL_ROOT.
'/fourn/facture/card.php?facid='.$obj->facid.
'">'.$obj->ref.
"</a></td>\n";
381 print
'<a href="'.DOL_URL_ROOT.
'/compta/facture/card.php?facid='.$obj->facid.
'">'.$obj->ref.
"</a></td>\n";
384 if ($type ==
'bank-transfer') {
385 print
'<td><a href="'.DOL_URL_ROOT.
'/fourn/card.php?socid='.$obj->socid.
'">';
387 print
'<td><a href="'.DOL_URL_ROOT.
'/comm/card.php?socid='.$obj->socid.
'">';
389 print
img_object($langs->trans(
"ShowCompany"),
"company").
' '.$obj->name.
"</a></td>\n";
391 print
'<td class="right"><span class="amount">'.price($obj->total_ttc).
"</span></td>\n";
393 print
'<td class="right">';
394 $invoicestatic->fetch($obj->facid);
395 print $invoicestatic->getLibStatut(5);
if(!defined('NOREQUIRESOC')) if(!defined( 'NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined( 'NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined( 'NOREQUIREAJAX')) llxHeader()
Empty header.
Class to manage withdrawal receipts.
Class to manage suppliers invoices.
Class to manage invoices.
Class to manage withdrawals.
Class to manage standing orders rejects.
Class to manage third parties objects (customers, suppliers, prospects...)
dol_mktime($hour, $minute, $second, $month, $day, $year, $gm='auto', $check=1)
Return a timestamp date built from detailed informations (by default a local PHP server timestamp) Re...
dol_get_fiche_head($links=array(), $active='', $title='', $notab=0, $picto='', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limittoshow=0, $moretabssuffix='', $dragdropfile=0)
Show tabs of a record.
dol_print_error($db='', $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
img_object($titlealt, $picto, $moreatt='', $pictoisfullpath=false, $srconly=0, $notitle=0)
Show a picto called object_picto (generic function)
dol_get_fiche_end($notab=0)
Return tab footer of a card.
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_now($mode='auto')
Return date for now.
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0)
Set event messages in dol_events session object.
print_barre_liste($titre, $page, $file, $options='', $sortfield='', $sortorder='', $morehtmlcenter='', $num=-1, $totalnboflines='', $picto='generic', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limit=-1, $hideselectlimit=0, $hidenavigation=0, $pagenavastextinput=0, $morehtmlrightbeforearrow='')
Print a title with navigation controls for pagination.
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.