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');
47$sortorder =
GETPOST(
'sortorder',
'aZ09comma');
48$sortfield =
GETPOST(
'sortfield',
'aZ09comma');
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') {
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,
GETPOSTINT(
'motif'), $daterej, $lipre->bon_rowid,
GETPOSTINT(
'facturer'));
114 header(
"Location: line.php?id=".urlencode((
string) ($id)).
'&type='.urlencode((
string) ($type)));
122 header(
"Location: line.php?id=".urlencode((
string) ($id)).
'&type='.urlencode((
string) ($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 print
'<tr><td class="titlefield">'.$langs->trans(
"WithdrawalsReceipts").
'</td><td>';
172 print $bon->getNomUrl(1).
'</td></tr>';
174 print
'<tr><td>'.$langs->trans(
"Date").
'</td><td>'.
dol_print_date($bon->datec,
'day').
'</td></tr>';
176 print
'<tr><td>'.$langs->trans(
"Amount").
'</td><td><span class="amount">'.
price($lipre->amount).
'</span></td></tr>';
178 print
'<tr><td>'.$langs->trans(
"Status").
'</td><td>'.$lipre->LibStatut($lipre->statut, 1).
'</td></tr>';
180 if ($lipre->statut == 3) {
182 $resf = $rej->fetch($lipre->id);
184 print
'<tr><td>'.$langs->trans(
"RefusedReason").
'</td><td>'.$rej->motif.
'</td></tr>';
186 print
'<tr><td>'.$langs->trans(
"RefusedData").
'</td><td>';
187 if ($rej->date_rejet == 0) {
189 print $langs->trans(
"Unknown");
195 print
'<tr><td>'.$langs->trans(
"RefusedInvoicing").
'</td><td>'.$rej->invoicing.
'</td></tr>';
197 print
'<tr><td>'.$resf.
'</td></tr>';
208 if ($action ==
'rejet' && $user->hasRight(
'prelevement',
'bons',
'credit')) {
210 $soc->fetch($lipre->socid);
214 print
'<form name="confirm_rejet" method="post" action="'.DOL_URL_ROOT.
'/compta/prelevement/line.php?id='.$id.
'">';
215 print
'<input type="hidden" name="token" value="'.newToken().
'">';
216 print
'<input type="hidden" name="action" value="confirm_rejet">';
217 print
'<input type="hidden" name="type" value="'.$type.
'">';
219 print
'<div class="div-table-responsive-no-min">';
220 print
'<table class="noborder centpercent">';
222 print
'<tr class="liste_titre">';
223 print
'<td>'.$langs->trans(
"WithdrawalRefused").
'</td>';
228 print
'<tr><td class="valid">'.$langs->trans(
"WithdrawalRefusedConfirm").
' '.$soc->name.
' ?</td>';
229 print
'<td class="valid">';
230 print $form->selectyesno(
"confirm", 1, 0);
234 print
'<tr><td class="fieldrequired valid">'.$langs->trans(
"RefusedData").
'</td>';
235 print
'<td class="valid">';
236 print $form->selectDate(
'',
'', 0, 0, 0,
"confirm_rejet");
240 print
'<tr><td class="fieldrequired valid">'.$langs->trans(
"RefusedReason").
'</td>';
241 print
'<td class="valid">';
242 print $form->selectarray(
"motif", $rej->motifs, GETPOSTISSET(
'motif') ?
GETPOSTINT(
'motif') :
'');
246 print
'<tr><td class="fieldrequired valid">';
247 print $form->textwithpicto($langs->trans(
"RefusedInvoicing"), $langs->trans(
"DirectDebitRefusedInvoicingDesc"));
249 print
'<td class="valid">';
250 print $form->selectarray(
"facturer", $rej->labelsofinvoicing, GETPOSTISSET(
'facturer') ?
GETPOSTINT(
'facturer') :
'', 0);
257 print
'<div class="center"><input type="submit" class="button button-save" value='.$langs->trans(
"Confirm").
'></div>';
264 print
'<div class="tabsAction">';
267 if ($bon->statut == BonPrelevement::STATUS_CREDITED) {
268 if ($lipre->statut == 2) {
269 if ($user->hasRight(
'prelevement',
'bons',
'credit')) {
270 print
'<a class="butActionDelete" href="line.php?action=rejet&type='.$type.
'&id='.$lipre->id.
'">'.$langs->trans(
"StandingOrderReject").
'</a>';
272 print
'<a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans(
"NotAllowed").
'">'.$langs->trans(
"StandingOrderReject").
'</a>';
276 print
'<a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans(
"NotPossibleForThisStatusOfWithdrawReceiptORLine").
'">'.$langs->trans(
"StandingOrderReject").
'</a>';
285 $sql =
"SELECT pf.rowid";
286 $sql .=
" ,f.rowid as facid, f.ref as ref, f.total_ttc, f.paye, f.fk_statut";
287 $sql .=
" , s.rowid as socid, s.nom as name";
291 $sql .=
" FROM ".MAIN_DB_PREFIX.
"prelevement_bons as p";
292 $sql .=
" , ".MAIN_DB_PREFIX.
"prelevement_lignes as pl";
293 $sql .=
" , ".MAIN_DB_PREFIX.
"prelevement as pf";
294 if ($type ==
'bank-transfer') {
295 $sql .=
" , ".MAIN_DB_PREFIX.
"facture_fourn as f";
297 $sql .=
" , ".MAIN_DB_PREFIX.
"facture as f";
299 $sql .=
" , ".MAIN_DB_PREFIX.
"societe as s";
300 $sql .=
" WHERE pf.fk_prelevement_lignes = pl.rowid";
301 $sql .=
" AND pl.fk_prelevement_bons = p.rowid";
302 $sql .=
" AND f.fk_soc = s.rowid";
303 if ($type ==
'bank-transfer') {
304 $sql .=
" AND pf.fk_facture_fourn = f.rowid";
306 $sql .=
" AND pf.fk_facture = f.rowid";
308 $sql .=
" AND f.entity IN (".getEntity(
'invoice').
")";
309 $sql .=
" AND pl.rowid = ".((int) $id);
311 $sql .=
" AND s.rowid = ".((int) $socid);
315 $nbtotalofrecords =
'';
318 $sqlforcount = preg_replace(
'/^'.preg_quote($sqlfields,
'/').
'/',
'SELECT COUNT(*) as nbtotalofrecords', $sql);
319 $sqlforcount = preg_replace(
'/GROUP BY .*$/',
'', $sqlforcount);
320 $resql = $db->query($sqlforcount);
322 $objforcount = $db->fetch_object($resql);
323 $nbtotalofrecords = $objforcount->nbtotalofrecords;
328 if (($page * $limit) > $nbtotalofrecords) {
335 $result = $db->query($sql);
337 $sql .= $db->order($sortfield, $sortorder);
338 $sql .= $db->plimit($conf->liste_limit + 1, $offset);
340 $result = $db->query($sql);
343 $num = $db->num_rows($result);
346 $urladd =
"&id=".urlencode((
string) ($id));
347 $title = $langs->trans(
"Bills");
348 if ($type ==
'bank-transfer') {
349 $title = $langs->trans(
"SupplierInvoices");
352 print_barre_liste($title, $page,
"factures.php", $urladd, $sortfield, $sortorder,
'', $num, $nbtotalofrecords,
'');
354 print
"\n<!-- debut table -->\n";
355 print
'<table class="noborder" width="100%" cellpadding="4">';
356 print
'<tr class="liste_titre">';
357 print
'<td>'.$langs->trans(
"Invoice").
'</td>';
358 print
'<td>'.$langs->trans(
"ThirdParty").
'</td>';
359 print
'<td class="right">'.$langs->trans(
"Amount").
'</td><td class="right">'.$langs->trans(
"Status").
'</td>';
364 while ($i < min($num, $conf->liste_limit)) {
365 $obj = $db->fetch_object($result);
367 print
'<tr class="oddeven"><td>';
369 print
'<a href="'.DOL_URL_ROOT.
'/compta/facture/card.php?facid='.$obj->facid.
'">';
370 print
img_object($langs->trans(
"ShowBill"),
"bill");
373 if ($type ==
'bank-transfer') {
374 print
'<a href="'.DOL_URL_ROOT.
'/fourn/facture/card.php?facid='.$obj->facid.
'">'.$obj->ref.
"</a></td>\n";
376 print
'<a href="'.DOL_URL_ROOT.
'/compta/facture/card.php?facid='.$obj->facid.
'">'.$obj->ref.
"</a></td>\n";
379 if ($type ==
'bank-transfer') {
380 print
'<td><a href="'.DOL_URL_ROOT.
'/fourn/card.php?socid='.$obj->socid.
'">';
382 print
'<td><a href="'.DOL_URL_ROOT.
'/comm/card.php?socid='.$obj->socid.
'">';
384 print
img_object($langs->trans(
"ShowCompany"),
"company").
' '.$obj->name.
"</a></td>\n";
386 print
'<td class="right"><span class="amount">'.price($obj->total_ttc).
"</span></td>\n";
388 print
'<td class="right">';
389 $invoicestatic->fetch($obj->facid);
390 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 information (by default a local PHP server timestamp) Rep...
img_object($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0)
Show a picto called object_picto (generic function)
GETPOSTINT($paramname, $method=0)
Return the value of a $_GET or $_POST supervariable, converted into integer.
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_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_now($mode='auto')
Return date for now.
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
dol_print_date($time, $format='', $tzoutput='auto', $outputlangs=null, $encodetooutput=false)
Output date in a string format according to outputlangs (or langs if not defined).
print_barre_liste($title, $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.
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.
dol_print_error($db=null, $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
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.