31require
'../../main.inc.php';
32require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formfile.class.php';
33require_once DOL_DOCUMENT_ROOT.
'/core/lib/payments.lib.php';
34require_once DOL_DOCUMENT_ROOT.
'/fourn/class/fournisseur.class.php';
35require_once DOL_DOCUMENT_ROOT.
'/fourn/class/fournisseur.facture.class.php';
36require_once DOL_DOCUMENT_ROOT.
'/fourn/class/paiementfourn.class.php';
40$langs->loadLangs(array(
'banks',
'bills',
'companies',
'suppliers'));
45$action =
GETPOST(
'action',
'alpha');
46$confirm =
GETPOST(
'confirm',
'alpha');
54$hookmanager->initHooks(array(
'supplierpaymentcard',
'globalcard'));
57include DOL_DOCUMENT_ROOT.
'/core/actions_fetchobject.inc.php';
63 $socid = $user->socid;
67if ($socid && $socid !=
$object->thirdparty->id) {
76if ($action ==
'setnote' && ($user->hasRight(
"fournisseur",
"facture",
"creer") || $user->hasRight(
"supplier_invoice",
"creer"))) {
90if ($action ==
'confirm_delete' && $confirm ==
'yes' && $user->hasRight(
"fournisseur",
"facture",
"supprimer")) {
94 $result =
$object->delete($user);
97 header(
'Location: '.DOL_URL_ROOT.
'/fourn/paiement/list.php');
105if ($action ==
'confirm_validate' && $confirm ==
'yes' &&
106 ((!
getDolGlobalString(
'MAIN_USE_ADVANCED_PERMS') && ($user->hasRight(
"fournisseur",
"facture",
"creer") || $user->hasRight(
"supplier_invoice",
"creer")))
107 || (
getDolGlobalString(
'MAIN_USE_ADVANCED_PERMS') && $user->hasRight(
"fournisseur",
"supplier_invoice_advance",
"validate")))
112 if (
$object->validate() >= 0) {
114 header(
'Location: '.$_SERVER[
'PHP_SELF'].
'?id='.
$object->id);
122if ($action ==
'setnum_paiement' &&
GETPOST(
'num_paiement')) {
126 setEventMessages($langs->trans(
'PaymentNumberUpdateSucceeded'),
null,
'mesgs');
128 setEventMessages($langs->trans(
'PaymentNumberUpdateFailed'),
null,
'errors');
132if ($action ==
'setdatep' &&
GETPOST(
'datepday')) {
135 $res =
$object->update_date($datepaye);
137 setEventMessages($langs->trans(
'PaymentDateUpdateSucceeded'),
null,
'mesgs');
144$upload_dir = $conf->fournisseur->payment->dir_output;
146$permissiontoadd =
true;
147include DOL_DOCUMENT_ROOT.
'/core/actions_builddoc.inc.php';
150$triggersendname =
'PAYMENTRECEIPT_SENTBYMAIL';
152$autocopy =
'MAIN_MAIL_AUTOCOPY_SUPPLIER_INVOICE_TO';
153$trackid =
'pre'.$object->id;
154include DOL_DOCUMENT_ROOT.
'/core/actions_sendmails.inc.php';
165$form =
new Form($db);
168$head = payment_supplier_prepare_head(
$object);
170print
dol_get_fiche_head($head,
'payment', $langs->trans(
'SupplierPayment'), -1,
'payment');
176 if ($action ==
'delete') {
177 print $form->formconfirm($_SERVER[
'PHP_SELF'].
'?id='.
$object->id, $langs->trans(
"DeletePayment"), $langs->trans(
"ConfirmDeletePayment"),
'confirm_delete');
183 if ($action ==
'validate') {
184 print $form->formconfirm($_SERVER[
'PHP_SELF'].
'?id='.
$object->id, $langs->trans(
"ValidatePayment"), $langs->trans(
"ConfirmValidatePayment"),
'confirm_validate');
187 $linkback =
'<a href="'.DOL_URL_ROOT.
'/fourn/paiement/list.php'.(!empty($socid) ?
'?socid='.$socid :
'').
'">'.$langs->trans(
"BackToList").
'</a>';
190 dol_banner_tab(
$object,
'id', $linkback, 1,
'rowid',
'ref');
192 print
'<div class="fichecenter">';
193 print
'<div class="underbanner clearboth"></div>';
195 print
'<table class="border centpercent">';
203 print
'<tr><td class="titlefield">'.$form->editfieldkey(
"Date",
'datep',
$object->date,
$object,
$object->statut == 0 && ($user->hasRight(
"fournisseur",
"facture",
"creer") || $user->hasRight(
"supplier_invoice",
"creer"))).
'</td>';
205 print $form->editfieldval(
"Date",
'datep',
$object->date,
$object,
$object->statut == 0 && ($user->hasRight(
"fournisseur",
"facture",
"creer") || $user->hasRight(
"supplier_invoice",
"creer")),
'datehourpicker',
'',
null, $langs->trans(
'PaymentDateUpdateSucceeded'));
209 $labeltype = $langs->trans(
"PaymentType".
$object->type_code) !=
"PaymentType".$object->type_code ? $langs->trans(
"PaymentType".
$object->type_code) :
$object->type_label;
210 print
'<tr><td>'.$langs->trans(
'PaymentMode').
'</td>';
211 print
'<td>'.$labeltype;
212 print
$object->num_payment ?
' - '.$object->num_payment :
'';
224 print
'<tr><td>'.$langs->trans(
'Amount').
'</td>';
225 print
'<td><span class="amount">'.price(
$object->amount, 0, $langs, 0, 0, -1, $conf->currency).
'</span></td></tr>';
229 print
'<tr><td>'.$langs->trans(
'Status').
'</td>';
230 print
'<td>'.$object->getLibStatut(4).
'</td></tr>';
235 if (isModEnabled(
"bank")) {
238 $bankline->fetch(
$object->bank_line);
239 if ($bankline->rappro) {
241 $title_button =
dol_escape_htmltag($langs->transnoentitiesnoconv(
"CantRemoveConciliatedPayment"));
245 print
'<td>'.$langs->trans(
'BankAccount').
'</td>';
247 $accountstatic =
new Account($db);
248 $accountstatic->fetch($bankline->fk_account);
249 print $accountstatic->getNomUrl(1);
254 print
'<td>'.$langs->trans(
'BankTransactionLine').
'</td>';
256 print $bankline->getNomUrl(1, 0,
'showconciliated');
263 print
'<tr><td>'.$form->editfieldkey(
"Comments",
'note',
$object->note_private,
$object, ($user->hasRight(
"fournisseur",
"facture",
"creer") || $user->hasRight(
"supplier_invoice",
"creer"))).
'</td>';
265 print $form->editfieldval(
"Note",
'note',
$object->note_private,
$object, ($user->hasRight(
"fournisseur",
"facture",
"creer") || $user->hasRight(
"supplier_invoice",
"creer")),
'textarea');
277 $sql =
'SELECT f.rowid, f.rowid as facid, f.ref, f.ref_supplier, f.type, f.paye, f.total_ht, f.total_tva, f.total_ttc, f.datef as date, f.fk_statut as status,';
278 $sql .=
' pf.amount, s.nom as name, s.rowid as socid';
279 $sql .=
' FROM '.MAIN_DB_PREFIX.
'paiementfourn_facturefourn as pf,'.MAIN_DB_PREFIX.
'facture_fourn as f,'.MAIN_DB_PREFIX.
'societe as s';
280 $sql .=
' WHERE pf.fk_facturefourn = f.rowid AND f.fk_soc = s.rowid';
281 $sql .=
' AND pf.fk_paiementfourn = '.((int)
$object->id);
282 $resql = $db->query($sql);
284 $num = $db->num_rows($resql);
289 print
'<table class="noborder centpercent">';
290 print
'<tr class="liste_titre">';
291 print
'<td>'.$langs->trans(
'Invoice').
'</td>';
292 print
'<td>'.$langs->trans(
'RefSupplier').
'</td>';
293 print
'<td>'.$langs->trans(
'Company').
'</td>';
294 print
'<td class="right">'.$langs->trans(
'ExpectedToPay').
'</td>';
295 print
'<td class="right">'.$langs->trans(
'PayedByThisPayment').
'</td>';
296 print
'<td class="right">'.$langs->trans(
'Status').
'</td>';
303 $objp = $db->fetch_object($resql);
305 $facturestatic->id = $objp->facid;
306 $facturestatic->ref = ($objp->ref ? $objp->ref : $objp->rowid);
307 $facturestatic->date = $db->jdate($objp->date);
308 $facturestatic->type = $objp->type;
309 $facturestatic->total_ht = $objp->total_ht;
310 $facturestatic->total_tva = $objp->total_tva;
311 $facturestatic->total_ttc = $objp->total_ttc;
312 $facturestatic->statut = $objp->status;
313 $facturestatic->status = $objp->status;
314 $facturestatic->alreadypaid = -1;
316 print
'<tr class="oddeven">';
319 print $facturestatic->getNomUrl(1);
322 print
'<td>'.$objp->ref_supplier.
"</td>\n";
324 print
'<td><a href="'.DOL_URL_ROOT.
'/fourn/card.php?socid='.$objp->socid.
'">'.
img_object($langs->trans(
'ShowCompany'),
'company').
' '.$objp->name.
'</a></td>';
326 print
'<td class="right">'.price($objp->total_ttc).
'</td>';
328 print
'<td class="right">'.price($objp->amount).
'</td>';
330 print
'<td class="right">'.$facturestatic->LibStatut($objp->paye, $objp->status, 6, 1).
'</td>';
333 if ($objp->paye == 1) {
335 $title_button =
dol_escape_htmltag($langs->transnoentitiesnoconv(
"CantRemovePaymentWithOneInvoicePaid"));
337 $total = $total + $objp->amount;
356 print
'<div class="tabsAction">';
359 if ($user->socid == 0 && $action !=
'presend') {
360 $usercansend = (!
getDolGlobalString(
'MAIN_USE_ADVANCED_PERMS') || (
getDolGlobalString(
'MAIN_USE_ADVANCED_PERMS') && $user->hasRight(
"fournisseur",
"supplier_invoice_advance",
"send")));
362 print
'<a class="butAction" href="'.$_SERVER[
'PHP_SELF'].
'?id='.
$object->id.
'&action=presend&mode=init#formmailbeforetitle">'.$langs->trans(
'SendMail').
'</a>';
364 print
'<span class="butActionRefused classfortooltip">'.$langs->trans(
'SendMail').
'</span>';
370 if ($user->socid == 0 &&
$object->statut == 0 && $action ==
'') {
371 if ((!
getDolGlobalString(
'MAIN_USE_ADVANCED_PERMS') && ($user->hasRight(
"fournisseur",
"facture",
"creer") || $user->hasRight(
"supplier_invoice",
"creer")))
372 || (
getDolGlobalString(
'MAIN_USE_ADVANCED_PERMS') && $user->hasRight(
"fournisseur",
"supplier_invoice_advance",
"validate"))) {
373 print
'<a class="butAction" href="'.$_SERVER[
'PHP_SELF'].
'?id='.
$object->id.
'&action=validate&token='.
newToken().
'">'.$langs->trans(
'Valid').
'</a>';
379 if ($user->socid == 0 && $action !=
'presend') {
380 if ($user->hasRight(
'fournisseur',
'facture',
'supprimer')) {
384 print
dolGetButtonAction($title_button, $langs->trans(
"Delete"),
'delete', $_SERVER[
"PHP_SELF"].
'?id='.
$object->id.
'&action=delete&token='.
newToken(),
'delete', 0);
390 if ($action !=
'presend') {
391 print
'<div class="fichecenter"><div class="fichehalfleft">';
394 include_once DOL_DOCUMENT_ROOT.
'/core/modules/supplier_payment/modules_supplier_payment.php';
396 if (is_array($modellist)) {
399 $urlsource = $_SERVER[
'PHP_SELF'].
'?id='.
$object->id;
400 $genallowed = ($user->hasRight(
"fournisseur",
"facture",
"lire") || $user->hasRight(
"supplier_invoice",
"lire"));
401 $delallowed = ($user->hasRight(
"fournisseur",
"facture",
"creer") || $user->hasRight(
"supplier_invoice",
"creer"));
402 $modelpdf = (!empty(
$object->model_pdf) ?
$object->model_pdf : (!
getDolGlobalString(
'SUPPLIER_PAYMENT_ADDON_PDF') ?
'' : $conf->global->SUPPLIER_PAYMENT_ADDON_PDF));
404 print $formfile->showdocuments(
'supplier_payment', $ref, $filedir, $urlsource, $genallowed, $delallowed, $modelpdf, 1, 0, 0, 40, 0,
'',
'',
'',
$object->thirdparty->default_lang);
405 $somethingshown = $formfile->numoffiles;
408 print
'</div><div class="fichehalfright">';
417 print
'</div></div>';
422 $defaulttopic =
'SendPaymentReceipt';
423 $diroutput = $conf->fournisseur->payment->dir_output;
424 $autocopy =
'MAIN_MAIL_AUTOCOPY_SUPPLIER_INVOICE_TO';
425 $trackid =
'pre'.$object->id;
427 include DOL_DOCUMENT_ROOT.
'/core/tpl/card_presend.tpl.php';
429 $langs->load(
"errors");
430 print $langs->trans(
"ErrorRecordNotFound");
if( $user->socid > 0) if(! $user->hasRight('accounting', 'chartofaccount')) $object
if(!defined('NOREQUIRESOC')) if(!defined( 'NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined( 'NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined( 'NOREQUIREAJAX')) llxHeader()
Empty header.
Class to manage bank accounts.
Class to manage bank transaction lines.
Class to manage suppliers invoices.
static liste_modeles($db, $maxfilenamelength=0)
Return list of active generation models.
Class to manage payments for supplier invoices.
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.
newToken()
Return the value of token currently saved into session with name 'newtoken'.
dolGetButtonAction($label, $text='', $actionType='default', $url='', $id='', $userRight=1, $params=array())
Function dolGetButtonAction.
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_sanitizeFileName($str, $newstr='_', $unaccent=1)
Clean a string to use it as a file name.
dol_print_error($db=null, $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
getDolGlobalString($key, $default='')
Return dolibarr global constant string value.
dol_escape_htmltag($stringtoescape, $keepb=0, $keepn=0, $noescapetags='', $escapeonlyhtmltags=0, $cleanalsojavascript=0)
Returns text escaped for inclusion in HTML alt or title or value tags, or into values of HTML input f...
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.
accessforbidden($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program.