dolibarr 21.0.0-beta
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 * Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
11 *
12 * This program is free software; you can redistribute it and/or modify
13 * it under the terms of the GNU General Public License as published by
14 * the Free Software Foundation; either version 3 of the License, or
15 * (at your option) any later version.
16 *
17 * This program is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU General Public License for more details.
21 *
22 * You should have received a copy of the GNU General Public License
23 * along with this program. If not, see <https://www.gnu.org/licenses/>.
24 */
25
33// Load Dolibarr environment
34require '../../main.inc.php';
35require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
36require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php';
37require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
38require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php';
39require_once DOL_DOCUMENT_ROOT.'/core/lib/fourn.lib.php';
40require_once DOL_DOCUMENT_ROOT.'/fourn/class/paiementfourn.class.php';
41if (isModEnabled('project')) {
42 require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
43}
44
53// Load translation files required by the page
54$langs->loadLangs(array('banks', 'bills', 'companies', 'suppliers', 'other'));
55
56
57// Get Parameters
58$id = GETPOSTINT('id');
59$ref = GETPOST('ref', 'alpha');
60$action = GETPOST('action', 'aZ09');
61$confirm = GETPOST('confirm', 'alpha');
62
63
64// Security check
65if ($user->socid) {
66 $socid = $user->socid;
67}
68$result = restrictedArea($user, $object->element, $object->id, 'paiementfourn', '');
69
70// Get parameters
71$limit = GETPOSTINT('limit') ? GETPOSTINT('limit') : $conf->liste_limit;
72$sortfield = GETPOST('sortfield', 'aZ09comma');
73$sortorder = GETPOST('sortorder', 'aZ09comma');
74$page = GETPOSTISSET('pageplusone') ? (GETPOSTINT('pageplusone') - 1) : GETPOSTINT("page");
75if (empty($page) || $page == -1) {
76 $page = 0;
77} // If $page is not defined, or '' or -1
78$offset = $limit * $page;
79$pageprev = $page - 1;
80$pagenext = $page + 1;
81if (!$sortorder) {
82 $sortorder = "ASC";
83}
84if (!$sortfield) {
85 $sortfield = "name";
86}
87
88// Load object
89$object = new PaiementFourn($db);
90if ($object->fetch($id, $ref)) {
91 $object->fetch_thirdparty();
92 $ref = dol_sanitizeFileName($object->ref);
93 $upload_dir = $conf->fournisseur->payment->dir_output.'/'.dol_sanitizeFileName($object->ref);
94}
95
96$permissiontoadd = ($user->hasRight("fournisseur", "facture", "creer") || $user->hasRight("supplier_invoice", "creer")); // Used by the include of actions_setnotes.inc.php
97
98
99/*
100 * Actions
101 */
102
103include DOL_DOCUMENT_ROOT.'/core/actions_linkedfiles.inc.php';
104
105
106/*
107 * View
108 */
109
110$form = new Form($db);
111
112$title = $langs->trans('Payment')." - ".$langs->trans('Documents');
113llxHeader('', $title);
114
115if ($object->id > 0) {
116 $head = payment_supplier_prepare_head($object);
117 print dol_get_fiche_head($head, 'documents', $langs->trans("SupplierPayment"), -1, 'payment');
118
119 // Supplier order card
120 $linkback = '<a href="'.DOL_URL_ROOT.'/fourn/paiement/list.php'.(!empty($socid) ? '?socid='.$socid : '').'">'.$langs->trans("BackToList").'</a>';
121
122 $morehtmlref = '<div class="refidno">';
123
124 // Date of payment
125 $morehtmlref .= $form->editfieldkey("Date", 'datep', $object->date, $object, $object->statut == 0 && ($user->hasRight("fournisseur", "facture", "creer") || $user->hasRight("supplier_invoice", "creer")), 'datehourpicker', '', null, 3).': ';
126 $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'));
127
128 // Payment mode
129 $morehtmlref .= '<br>'.$langs->trans('PaymentMode').' : ';
130 $morehtmlref .= $langs->trans("PaymentType".$object->type_code) != "PaymentType".$object->type_code ? $langs->trans("PaymentType".$object->type_code) : $object->type_label;
131 $morehtmlref .= $object->num_payment ? ' - '.$object->num_payment : '';
132
133 // Thirdparty
134 $morehtmlref .= '<br>'.$object->thirdparty->getNomUrl(1);
135
136 // Amount
137 $morehtmlref .= '<br>'.$langs->trans('Amount').' : '. price($object->amount, 0, $langs, 0, 0, -1, $conf->currency);
138
139 $allow_delete = 1;
140 // Bank account
141 if (isModEnabled("bank")) {
142 if ($object->fk_account) {
143 $bankline = new AccountLine($db);
144 $bankline->fetch($object->bank_line);
145 if ($bankline->rappro) {
146 $allow_delete = 0;
147 $title_button = dol_escape_htmltag($langs->transnoentitiesnoconv("CantRemoveConciliatedPayment"));
148 }
149
150 $morehtmlref .= '<br>'.$langs->trans('BankAccount').' : ';
151 $accountstatic = new Account($db);
152 $accountstatic->fetch($bankline->fk_account);
153 $morehtmlref .= $accountstatic->getNomUrl(1);
154
155 $morehtmlref .= '<br>'.$langs->trans('BankTransactionLine').' : ';
156 $morehtmlref .= $bankline->getNomUrl(1, 0, 'showconciliated');
157 }
158 }
159
160 dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref);
161
162 // Build file list
163 $filearray = dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview.*\.png)$', $sortfield, (strtolower($sortorder) == 'desc' ? SORT_DESC : SORT_ASC), 1);
164 $totalsize = 0;
165 foreach ($filearray as $key => $file) {
166 $totalsize += $file['size'];
167 }
168
169 print '<div class="fichecenter">';
170 print '<div class="underbanner clearboth"></div>';
171
172 print '<table class="border tableforfield centpercent">';
173 print '<tr><td class="titlefield">'.$langs->trans("NbOfAttachedFiles").'</td><td colspan="3">'.count($filearray).'</td></tr>';
174 print '<tr><td>'.$langs->trans("TotalSizeOfAttachedFiles").'</td><td colspan="3">'.dol_print_size($totalsize, 1, 1).'</td></tr>';
175 print "</table>\n";
176
177 print "</div>\n";
178
179 print dol_get_fiche_end();
180
181 $modulepart = 'supplier_payment';
182 // TODO: get the appropriate permission
183 $permissiontoadd = true;
184 $permtoedit = true;
185 $param = '&id='.$object->id;
186 include DOL_DOCUMENT_ROOT.'/core/tpl/document_actions_post_headers.tpl.php';
187} else {
188 header('Location: index.php');
189 exit;
190}
191
192// End of page
193llxFooter();
194$db->close();
$id
Definition account.php:48
if( $user->socid > 0) if(! $user->hasRight('accounting', 'chartofaccount')) $object
Definition card.php:66
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.
Definition wrapper.php:71
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.
llxFooter()
Footer empty.
Definition document.php:107
dol_dir_list($utf8_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:63
dol_print_size($size, $shortvalue=0, $shortunit=0)
Return string with formatted size.
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.
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...
global $conf
The following vars must be defined: $type2label $form $conf, $lang, The following vars may also be de...
Definition member.php:79
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.