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.