30require
'../../main.inc.php';
31require_once DOL_DOCUMENT_ROOT.
'/compta/prelevement/class/bonprelevement.class.php';
32require_once DOL_DOCUMENT_ROOT.
'/compta/prelevement/class/ligneprelevement.class.php';
33require_once DOL_DOCUMENT_ROOT.
'/compta/prelevement/class/rejetprelevement.class.php';
34require_once DOL_DOCUMENT_ROOT.
'/compta/paiement/class/paiement.class.php';
35require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/account.class.php';
38$langs->loadlangs(array(
'banks',
'categories',
'bills',
'companies',
'withdrawals'));
41$action =
GETPOST(
'action',
'aZ09');
48$sortorder =
GETPOST(
'sortorder',
'aZ09comma');
49$sortfield =
GETPOST(
'sortfield',
'aZ09comma');
51if (empty($page) || $page < 0 ||
GETPOST(
'button_search',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha')) {
55$offset = $limit * $page;
59if ($sortorder ==
"") {
62if ($sortfield ==
"") {
63 $sortfield =
"pl.fk_soc";
67if ($type ==
'bank-transfer') {
68 $result =
restrictedArea($user,
'paymentbybanktransfer',
'',
'',
'');
73if ($type ==
'bank-transfer') {
74 $permissiontoadd = $user->hasRight(
'paymentbybanktransfer',
'create');
76 $permissiontoadd = $user->hasRight(
'prelevement',
'bons',
'creer');
86if ($action ==
'confirm_rejet' && $permissiontoadd) {
87 if (
GETPOST(
"confirm") ==
'yes') {
93 if (empty($daterej)) {
95 setEventMessages($langs->trans(
"ErrorFieldRequired", $langs->transnoentitiesnoconv(
"Date")),
null,
'errors');
96 } elseif ($daterej >
dol_now()) {
98 $langs->load(
"error");
99 setEventMessages($langs->transnoentities(
"ErrorDateMustBeBeforeToday"),
null,
'errors');
102 if (
GETPOST(
'motif',
'alpha') == 0) {
104 setEventMessages($langs->trans(
"ErrorFieldRequired", $langs->transnoentities(
"RefusedReason")),
null,
'errors');
110 if ($lipre->fetch($id) == 0) {
113 $result = $rej->create($user, $id,
GETPOSTINT(
'motif'), $daterej, $lipre->bon_rowid,
GETPOSTINT(
'facturer'));
116 header(
"Location: line.php?id=".urlencode((
string) ($id)).
'&type='.urlencode((
string) ($type)));
124 header(
"Location: line.php?id=".urlencode((
string) ($id)).
'&type='.urlencode((
string) ($type)));
134$form =
new Form($db);
136if ($type ==
'bank-transfer') {
137 require_once DOL_DOCUMENT_ROOT.
'/fourn/class/fournisseur.facture.class.php';
140 require_once DOL_DOCUMENT_ROOT.
'/compta/facture/class/facture.class.php';
141 $invoicestatic =
new Facture($db);
144$title = $langs->trans(
"WithdrawalsLine");
145if ($type ==
'bank-transfer') {
146 $title = $langs->trans(
"CreditTransferLine");
154$head[$h][0] = DOL_URL_ROOT.
'/compta/prelevement/line.php?id='.((int) $id).
'&type='.urlencode($type);
155$head[$h][1] = $title;
163 if ($lipre->fetch($id) >= 0) {
165 $bon->fetch($lipre->bon_rowid);
169 print
'<table class="border centpercent tableforfield">';
171 print
'<tr><td class="titlefield">'.$langs->trans(
"Ref").
'</td><td>';
172 print
$id.
'</td></tr>';
174 print
'<tr><td class="titlefield">'.$langs->trans(
"WithdrawalsReceipts").
'</td><td>';
175 print $bon->getNomUrl(1).
'</td></tr>';
177 print
'<tr><td>'.$langs->trans(
"Date").
'</td><td>'.
dol_print_date($bon->datec,
'day').
'</td></tr>';
179 print
'<tr><td>'.$langs->trans(
"Amount").
'</td><td><span class="amount">'.
price($lipre->amount).
'</span></td></tr>';
181 print
'<tr><td>'.$langs->trans(
"Status").
'</td><td>'.$lipre->LibStatut($lipre->statut, 1).
'</td></tr>';
183 if ($lipre->statut == 3) {
185 $resf = $rej->fetch($lipre->id);
187 print
'<tr><td>'.$langs->trans(
"RefusedReason").
'</td><td>'.$rej->motif.
'</td></tr>';
189 print
'<tr><td>'.$langs->trans(
"RefusedData").
'</td><td>';
190 if ($rej->date_rejet == 0) {
192 print $langs->trans(
"Unknown");
198 print
'<tr><td>'.$langs->trans(
"RefusedInvoicing").
'</td><td>'.$rej->invoicing.
'</td></tr>';
200 print
'<tr><td>'.$resf.
'</td></tr>';
211 if ($action ==
'rejet' && $user->hasRight(
'prelevement',
'bons',
'credit')) {
213 $soc->fetch($lipre->socid);
217 print
'<form name="confirm_rejet" method="post" action="'.DOL_URL_ROOT.
'/compta/prelevement/line.php?id='.
$id.
'">';
218 print
'<input type="hidden" name="token" value="'.newToken().
'">';
219 print
'<input type="hidden" name="action" value="confirm_rejet">';
220 print
'<input type="hidden" name="type" value="'.$type.
'">';
222 print
'<div class="div-table-responsive-no-min">';
223 print
'<table class="noborder centpercent">';
225 print
'<tr class="liste_titre">';
226 print
'<td>'.$langs->trans(
"WithdrawalRefused").
'</td>';
231 print
'<tr><td class="valid">'.$langs->trans(
"WithdrawalRefusedConfirm").
' '.$soc->name.
' ?</td>';
232 print
'<td class="valid">';
233 print $form->selectyesno(
"confirm", 1, 0);
237 print
'<tr><td class="fieldrequired valid">'.$langs->trans(
"RefusedData").
'</td>';
238 print
'<td class="valid">';
239 print $form->selectDate(
'',
'', 0, 0, 0,
"confirm_rejet");
243 print
'<tr><td class="fieldrequired valid">'.$langs->trans(
"RefusedReason").
'</td>';
244 print
'<td class="valid">';
245 print $form->selectarray(
"motif", $rej->motifs, GETPOSTISSET(
'motif') ?
GETPOSTINT(
'motif') :
'');
249 print
'<tr><td class="fieldrequired valid">';
250 print $form->textwithpicto($langs->trans(
"RefusedInvoicing"), $langs->trans(
"DirectDebitRefusedInvoicingDesc"));
252 print
'<td class="valid">';
253 print $form->selectarray(
"facturer", $rej->labelsofinvoicing, GETPOSTISSET(
'facturer') ?
GETPOSTINT(
'facturer') :
'', 0);
260 print
'<div class="center"><input type="submit" class="button button-save" value='.$langs->trans(
"Confirm").
'></div>';
267 print
'<div class="tabsAction">';
270 if (is_object($bon) && $bon->statut == BonPrelevement::STATUS_CREDITED) {
271 if ($lipre->statut == 2) {
272 if ($user->hasRight(
'prelevement',
'bons',
'credit')) {
273 print
'<a class="butActionDelete" href="line.php?action=rejet&type='.$type.
'&id='.$lipre->id.
'">'.$langs->trans(
"StandingOrderReject").
'</a>';
275 print
'<a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans(
"NotAllowed").
'">'.$langs->trans(
"StandingOrderReject").
'</a>';
279 print
'<a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans(
"NotPossibleForThisStatusOfWithdrawReceiptORLine").
'">'.$langs->trans(
"StandingOrderReject").
'</a>';
288 $sql =
"SELECT pf.rowid";
289 $sql .=
" ,f.rowid as facid, f.ref as ref, f.total_ttc, f.paye, f.fk_statut";
290 $sql .=
" , s.rowid as socid, s.nom as name";
294 $sql .=
" FROM ".MAIN_DB_PREFIX.
"prelevement_bons as p";
295 $sql .=
" , ".MAIN_DB_PREFIX.
"prelevement_lignes as pl";
296 $sql .=
" , ".MAIN_DB_PREFIX.
"prelevement as pf";
297 if ($type ==
'bank-transfer') {
298 $sql .=
" , ".MAIN_DB_PREFIX.
"facture_fourn as f";
300 $sql .=
" , ".MAIN_DB_PREFIX.
"facture as f";
302 $sql .=
" , ".MAIN_DB_PREFIX.
"societe as s";
303 $sql .=
" WHERE pf.fk_prelevement_lignes = pl.rowid";
304 $sql .=
" AND pl.fk_prelevement_bons = p.rowid";
305 $sql .=
" AND f.fk_soc = s.rowid";
306 if ($type ==
'bank-transfer') {
307 $sql .=
" AND pf.fk_facture_fourn = f.rowid";
309 $sql .=
" AND pf.fk_facture = f.rowid";
311 $sql .=
" AND f.entity IN (".getEntity(
'invoice').
")";
312 $sql .=
" AND pl.rowid = ".((int) $id);
314 $sql .=
" AND s.rowid = ".((int) $socid);
318 $nbtotalofrecords =
'';
321 $sqlforcount = preg_replace(
'/^'.preg_quote($sqlfields,
'/').
'/',
'SELECT COUNT(*) as nbtotalofrecords', $sql);
322 $sqlforcount = preg_replace(
'/GROUP BY .*$/',
'', $sqlforcount);
323 $resql = $db->query($sqlforcount);
325 $objforcount = $db->fetch_object($resql);
326 $nbtotalofrecords = $objforcount->nbtotalofrecords;
331 if (($page * $limit) > $nbtotalofrecords) {
338 $result = $db->query($sql);
340 $sql .= $db->order($sortfield, $sortorder);
341 $sql .= $db->plimit($conf->liste_limit + 1, $offset);
343 $result = $db->query($sql);
346 $num = $db->num_rows($result);
349 $urladd =
"&id=".urlencode((
string) ($id));
350 $title = $langs->trans(
"Bills");
351 if ($type ==
'bank-transfer') {
352 $title = $langs->trans(
"SupplierInvoices");
355 print_barre_liste($title, $page,
"factures.php", $urladd, $sortfield, $sortorder,
'', $num, $nbtotalofrecords,
'');
357 print
"\n<!-- debut table -->\n";
358 print
'<table class="noborder" width="100%" cellpadding="4">';
359 print
'<tr class="liste_titre">';
360 print
'<td>'.$langs->trans(
"Invoice").
'</td>';
361 print
'<td>'.$langs->trans(
"ThirdParty").
'</td>';
362 print
'<td class="right">'.$langs->trans(
"Amount").
'</td><td class="right">'.$langs->trans(
"Status").
'</td>';
367 while ($i < min($num, $conf->liste_limit)) {
368 $obj = $db->fetch_object($result);
370 print
'<tr class="oddeven"><td>';
372 print
'<a href="'.DOL_URL_ROOT.
'/compta/facture/card.php?facid='.$obj->facid.
'">';
373 print
img_object($langs->trans(
"ShowBill"),
"bill");
376 if ($type ==
'bank-transfer') {
377 print
'<a href="'.DOL_URL_ROOT.
'/fourn/facture/card.php?facid='.$obj->facid.
'">'.$obj->ref.
"</a></td>\n";
379 print
'<a href="'.DOL_URL_ROOT.
'/compta/facture/card.php?facid='.$obj->facid.
'">'.$obj->ref.
"</a></td>\n";
382 if ($type ==
'bank-transfer') {
383 print
'<td><a href="'.DOL_URL_ROOT.
'/fourn/card.php?socid='.$obj->socid.
'">';
385 print
'<td><a href="'.DOL_URL_ROOT.
'/comm/card.php?socid='.$obj->socid.
'">';
387 print
img_object($langs->trans(
"ShowCompany"),
"company").
' '.$obj->name.
"</a></td>\n";
389 print
'<td class="right"><span class="amount">'.price($obj->total_ttc).
"</span></td>\n";
391 print
'<td class="right">';
392 $invoicestatic->fetch($obj->facid);
393 print $invoicestatic->getLibStatut(5);
if(!defined('NOREQUIRESOC')) if(!defined( 'NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined( 'NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined( 'NOREQUIREAJAX')) llxHeader($head='', $title='', $help_url='', $target='', $disablejs=0, $disablehead=0, $arrayofjs='', $arrayofcss='', $morequerystring='', $morecssonbody='', $replacemainareaby='', $disablenofollow=0, $disablenoindex=0)
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.