dolibarr 19.0.3
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
33require '../../main.inc.php';
34require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
35require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php';
36require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
37require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php';
38require_once DOL_DOCUMENT_ROOT.'/core/lib/fourn.lib.php';
39require_once DOL_DOCUMENT_ROOT.'/fourn/class/paiementfourn.class.php';
40if (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
57if ($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');
67if (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;
73if (!$sortorder) {
74 $sortorder = "ASC";
75}
76if (!$sortfield) {
77 $sortfield = "name";
78}
79
80// Load object
81$object = new PaiementFourn($db);
82if ($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->hasRight("fournisseur", "facture", "creer") || $user->hasRight("supplier_invoice", "creer")); // Used by the include of actions_setnotes.inc.php
89
90
91/*
92 * Actions
93 */
94
95include 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');
105llxHeader('', $title);
106
107if ($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->hasRight("fournisseur", "facture", "creer") || $user->hasRight("supplier_invoice", "creer")), 'datehourpicker', '', null, 3).': ';
118 $morehtmlref .= $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'));
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
185llxFooter();
186$db->close();
if(!defined('NOREQUIRESOC')) if(!defined( 'NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined( 'NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined( 'NOREQUIREAJAX')) llxHeader()
Empty header.
Definition wrapper.php:55
llxFooter()
Empty footer.
Definition wrapper.php:69
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.
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:62
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='', $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.
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.
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.