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