dolibarr  17.0.4
document.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (C) 2003-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
3  * Copyright (C) 2004-2016 Laurent Destailleur <eldy@users.sourceforge.net>
4  * Copyright (C) 2005 Marc Barilley / Ocebo <marc@ocebo.com>
5  * Copyright (C) 2005-2012 Regis Houssin <regis.houssin@inodbox.com>
6  * Copyright (C) 2012 Marcos García <marcosgdf@gmail.com>
7  * Copyright (C) 2013 Cédric Salvador <csalvador@gpcsolutions.fr>
8  * Copyright (C) 2017 Ferran Marcet <fmarcet@2byte.es>
9  * Copyright (C) 2021 Jesus Jerez <jesusballesteros@protonmail.com>
10  *
11  * This program is free software; you can redistribute it and/or modify
12  * it under the terms of the GNU General Public License as published by
13  * the Free Software Foundation; either version 3 of the License, or
14  * (at your option) any later version.
15  *
16  * This program is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19  * GNU General Public License for more details.
20  *
21  * You should have received a copy of the GNU General Public License
22  * along with this program. If not, see <https://www.gnu.org/licenses/>.
23  */
24 
32 // Load Dolibarr environment
33 require '../../main.inc.php';
34 require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
35 require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php';
36 require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
37 require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php';
38 require_once DOL_DOCUMENT_ROOT.'/core/lib/fourn.lib.php';
39 require_once DOL_DOCUMENT_ROOT.'/fourn/class/paiementfourn.class.php';
40 if (isModEnabled('project')) {
41  require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
42 }
43 
44 
45 // Load translation files required by the page
46 $langs->loadLangs(array('banks', 'bills', 'companies', 'suppliers', 'other'));
47 
48 
49 // Get Parameters
50 $id = GETPOST('id', 'int');
51 $ref = GETPOST('ref', 'alpha');
52 $action = GETPOST('action', 'aZ09');
53 $confirm = GETPOST('confirm', 'alpha');
54 
55 
56 // Security check
57 if ($user->socid) {
58  $socid = $user->socid;
59 }
60 $result = restrictedArea($user, $object->element, $object->id, 'paiementfourn', '');
61 
62 // Get parameters
63 $limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit;
64 $sortfield = GETPOST('sortfield', 'aZ09comma');
65 $sortorder = GETPOST('sortorder', 'aZ09comma');
66 $page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
67 if (empty($page) || $page == -1) {
68  $page = 0;
69 } // If $page is not defined, or '' or -1
70 $offset = $limit * $page;
71 $pageprev = $page - 1;
72 $pagenext = $page + 1;
73 if (!$sortorder) {
74  $sortorder = "ASC";
75 }
76 if (!$sortfield) {
77  $sortfield = "name";
78 }
79 
80 // Load object
81 $object = new PaiementFourn($db);
82 if ($object->fetch($id, $ref)) {
83  $object->fetch_thirdparty();
84  $ref = dol_sanitizeFileName($object->ref);
85  $upload_dir = $conf->fournisseur->payment->dir_output.'/'.dol_sanitizeFileName($object->ref);
86 }
87 
88 $permissiontoadd = ($user->rights->fournisseur->facture->creer || $user->rights->supplier_invoice->creer); // Used by the include of actions_setnotes.inc.php
89 
90 
91 /*
92  * Actions
93  */
94 
95 include DOL_DOCUMENT_ROOT.'/core/actions_linkedfiles.inc.php';
96 
97 
98 /*
99  * View
100  */
101 
102 $form = new Form($db);
103 
104 $title = $langs->trans('Payment')." - ".$langs->trans('Documents');
105 llxHeader('', $title);
106 
107 if ($object->id > 0) {
108  $head = payment_supplier_prepare_head($object);
109  print dol_get_fiche_head($head, 'documents', $langs->trans("SupplierPayment"), -1, 'payment');
110 
111  // Supplier order card
112  $linkback = '<a href="'.DOL_URL_ROOT.'/fourn/paiement/list.php'.(!empty($socid) ? '?socid='.$socid : '').'">'.$langs->trans("BackToList").'</a>';
113 
114  $morehtmlref = '<div class="refidno">';
115 
116  // Date of payment
117  $morehtmlref .= $form->editfieldkey("Date", 'datep', $object->date, $object, $object->statut == 0 && ($user->rights->fournisseur->facture->creer || $user->rights->supplier_invoice->creer), 'datehourpicker', '', null, 3).': ';
118  $morehtmlref .= $form->editfieldval("Date", 'datep', $object->date, $object, $object->statut == 0 && ($user->rights->fournisseur->facture->creer || $user->rights->supplier_invoice->creer), 'datehourpicker', '', null, $langs->trans('PaymentDateUpdateSucceeded'));
119 
120  // Payment mode
121  $morehtmlref .= '<br>'.$langs->trans('PaymentMode').' : ';
122  $morehtmlref .= $langs->trans("PaymentType".$object->type_code) != ("PaymentType".$object->type_code) ? $langs->trans("PaymentType".$object->type_code) : $object->type_label;
123  $morehtmlref .= $object->num_payment ? ' - '.$object->num_payment : '';
124 
125  // Thirdparty
126  $morehtmlref .= '<br>'.$object->thirdparty->getNomUrl(1);
127 
128  // Amount
129  $morehtmlref .= '<br>'.$langs->trans('Amount').' : '. price($object->amount, '', $langs, 0, 0, -1, $conf->currency);
130 
131  $allow_delete = 1;
132  // Bank account
133  if (isModEnabled("banque")) {
134  if ($object->fk_account) {
135  $bankline = new AccountLine($db);
136  $bankline->fetch($object->bank_line);
137  if ($bankline->rappro) {
138  $allow_delete = 0;
139  $title_button = dol_escape_htmltag($langs->transnoentitiesnoconv("CantRemoveConciliatedPayment"));
140  }
141 
142  $morehtmlref .= '<br>'.$langs->trans('BankAccount').' : ';
143  $accountstatic = new Account($db);
144  $accountstatic->fetch($bankline->fk_account);
145  $morehtmlref .= $accountstatic->getNomUrl(1);
146 
147  $morehtmlref .= '<br>'.$langs->trans('BankTransactionLine').' : ';
148  $morehtmlref .= $bankline->getNomUrl(1, 0, 'showconciliated');
149  }
150  }
151 
152  dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref);
153 
154  // Build file list
155  $filearray = dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview.*\.png)$', $sortfield, (strtolower($sortorder) == 'desc' ?SORT_DESC:SORT_ASC), 1);
156  $totalsize = 0;
157  foreach ($filearray as $key => $file) {
158  $totalsize += $file['size'];
159  }
160 
161  print '<div class="fichecenter">';
162  print '<div class="underbanner clearboth"></div>';
163 
164  print '<table class="border tableforfield centpercent">';
165  print '<tr><td class="titlefield">'.$langs->trans("NbOfAttachedFiles").'</td><td colspan="3">'.count($filearray).'</td></tr>';
166  print '<tr><td>'.$langs->trans("TotalSizeOfAttachedFiles").'</td><td colspan="3">'.dol_print_size($totalsize, 1, 1).'</td></tr>';
167  print "</table>\n";
168 
169  print "</div>\n";
170 
171  print dol_get_fiche_end();
172 
173  $modulepart = 'supplier_payment';
174  // TODO: get the appropriate permission
175  $permissiontoadd = true;
176  $permtoedit = true;
177  $param = '&id='.$object->id;
178  include DOL_DOCUMENT_ROOT.'/core/tpl/document_actions_post_headers.tpl.php';
179 } else {
180  header('Location: index.php');
181  exit;
182 }
183 
184 // End of page
185 llxFooter();
186 $db->close();
Class to manage bank accounts.
Class to manage bank transaction lines.
Class to manage generation of HTML components Only common components must be here.
Class to manage payments for supplier invoices.
if($cancel &&! $id) if($action=='add' &&! $cancel) if($action=='delete') if($id) $form
Actions.
Definition: card.php:143
if(!defined('NOTOKENRENEWAL')) if(!defined('NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined('NOREQUIREAJAX')) if(isset($_GET["hashp"]) &&!defined("NOLOGIN")) if((isset($_GET["modulepart"]) && $_GET["modulepart"]=='medias')) llxHeader()
Header empty.
Definition: document.php:80
llxFooter()
Footer empty.
Definition: document.php:89
dol_dir_list($path, $types="all", $recursive=0, $filter="", $excludefilter=null, $sortcriteria="name", $sortorder=SORT_ASC, $mode=0, $nohook=0, $relativename="", $donotfollowsymlinks=0, $nbsecondsold=0)
Scan a directory and return a list of files/directories.
Definition: files.lib.php:61
dol_print_size($size, $shortvalue=0, $shortunit=0)
Return string with formated size.
dol_banner_tab($object, $paramid, $morehtml='', $shownav=1, $fieldid='rowid', $fieldref='ref', $morehtmlref='', $moreparam='', $nodbprefix=0, $morehtmlleft='', $morehtmlstatus='', $onlybanner=0, $morehtmlright='')
Show tab footer of a card.
dol_get_fiche_head($links=array(), $active='', $title='', $notab=0, $picto='', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limittoshow=0, $moretabssuffix='')
Show tabs of a record.
dol_escape_htmltag($stringtoescape, $keepb=0, $keepn=0, $noescapetags='', $escapeonlyhtmltags=0)
Returns text escaped for inclusion in HTML alt or title tags, or into values of HTML input fields.
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.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
dol_sanitizeFileName($str, $newstr='_', $unaccent=1)
Clean a string to use it as a file name.
GETPOSTISSET($paramname)
Return true if we are in a context of submitting the parameter $paramname from a POST of a form.
isModEnabled($module)
Is Dolibarr module enabled.
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.