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
32require '../../main.inc.php';
33require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
34require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php';
35require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.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';
39if (isModEnabled('project')) {
40 require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
41}
42
51// Load translation files required by the page
52$langs->loadLangs(array('bills', 'banks', 'companies', 'suppliers', 'other'));
53
54$id = GETPOST('id', 'int');
55$ref = GETPOST('ref', 'alpha');
56$action = GETPOST('action', 'aZ09');
57$confirm = GETPOST('confirm', 'alpha');
58
59// Security check
60if ($user->socid) {
61 $socid = $user->socid;
62}
63if ($object !== null) {
64 $result = restrictedArea($user, $object->element, $object->id, 'payment', '');
65}
66// Get parameters
67$limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit;
68$sortfield = GETPOST('sortfield', 'aZ09comma');
69$sortorder = GETPOST('sortorder', 'aZ09comma');
70$page = GETPOSTISSET('pageplusone') ? (GETPOSTINT('pageplusone') - 1) : GETPOSTINT('page');
71if (empty($page) || $page == -1) {
72 $page = 0;
73} // If $page is not defined, or '' or -1
74$offset = $limit * $page;
75$pageprev = $page - 1;
76$pagenext = $page + 1;
77if (!$sortorder) {
78 $sortorder = "ASC";
79}
80if (!$sortfield) {
81 $sortfield = "name";
82}
83
84// Load object
85$object = new Paiement($db);
86if ($object->fetch($id, $ref)) {
87 $object->fetch_thirdparty();
88 $ref = dol_sanitizeFileName($object->ref);
89 $upload_dir = $conf->compta->payment->dir_output.'/'.dol_sanitizeFileName($object->ref);
90} else {
91 $upload_dir = '';
92}
93
94
95$permissiontoadd = ($user->hasRight('facture', 'creer')); // Used by the include of actions_setnotes.inc.php
96
97/*
98 * Actions
99 */
100
101include DOL_DOCUMENT_ROOT.'/core/actions_linkedfiles.inc.php';
102
103
104/*
105 * View
106 */
107
108$form = new Form($db);
109
110$title = $langs->trans('Payment')." - ".$langs->trans('Documents');
111llxHeader('', $title);
112
113if ($object->id > 0) {
114 $head = payment_prepare_head($object);
115 print dol_get_fiche_head($head, 'documents', $langs->trans("Payment"), -1, 'payment');
116
117 // Supplier order card
118 $linkback = '<a href="'.DOL_URL_ROOT.'/compta/paiement/list.php'.(!empty($socid) ? '?socid='.$socid : '').'">'.$langs->trans("BackToList").'</a>';
119
120 $morehtmlref = '<div class="refidno">';
121
122 // Date of payment
123 $morehtmlref .= $form->editfieldkey("Date", 'datep', $object->date, $object, $object->statut == 0 && ($user->hasRight('facture', 'creer')), 'datehourpicker', '', 0, 3).': ';
124 $morehtmlref .= $form->editfieldval("Date", 'datep', $object->date, $object, $object->statut == 0 && ($user->hasRight('facture', 'creer')), 'datehourpicker', '', null, $langs->trans('PaymentDateUpdateSucceeded'));
125
126 // Payment mode
127 $morehtmlref .= '<br>'.$langs->trans('PaymentMode').' : ';
128 $morehtmlref .= $langs->trans("PaymentType".$object->type_code) != ("PaymentType".$object->type_code) ? $langs->trans("PaymentType".$object->type_code) : $object->type_label;
129 $morehtmlref .= $object->num_payment ? ' - '.$object->num_payment : '';
130
131 // Thirdparty
132 $morehtmlref .= '<br>'.$langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1);
133
134 // Amount
135 $morehtmlref .= '<br>'.$langs->trans('Amount').' : '. price($object->amount, 0, $langs, 0, 0, -1, $conf->currency);
136
137 $allow_delete = 1;
138 // Bank account
139 if (isModEnabled('bank')) {
140 if ($object->fk_account) {
141 $bankline = new AccountLine($db);
142 $bankline->fetch($object->bank_line);
143 if ($bankline->rappro) {
144 $allow_delete = 0;
145 $title_button = dol_escape_htmltag($langs->transnoentitiesnoconv("CantRemoveConciliatedPayment"));
146 }
147
148 $morehtmlref .= '<br>'.$langs->trans('BankAccount').' : ';
149 $accountstatic = new Account($db);
150 $accountstatic->fetch($bankline->fk_account);
151 $morehtmlref .= $accountstatic->getNomUrl(1);
152
153 $morehtmlref .= '<br>'.$langs->trans('BankTransactionLine').' : ';
154 $morehtmlref .= $bankline->getNomUrl(1, 0, 'showconciliated');
155 }
156 }
157
158 dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref);
159
160 // Build file list
161 $filearray = dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview.*\.png)$', $sortfield, (strtolower($sortorder) == 'desc' ?SORT_DESC:SORT_ASC), 1);
162 $totalsize = 0;
163 foreach ($filearray as $key => $file) {
164 $totalsize += $file['size'];
165 }
166
167 print '<div class="fichecenter">';
168 print '<div class="underbanner clearboth"></div>';
169
170 print '<table class="border tableforfield centpercent">';
171 print '<tr><td class="titlefield">'.$langs->trans("NbOfAttachedFiles").'</td><td colspan="3">'.count($filearray).'</td></tr>';
172 print '<tr><td>'.$langs->trans("TotalSizeOfAttachedFiles").'</td><td colspan="3">'.dol_print_size($totalsize, 1, 1).'</td></tr>';
173 print "</table>\n";
174
175 print "</div>\n";
176
177 print dol_get_fiche_end();
178
179 $modulepart = 'payment';
180 // TODO: get the appropriate permission
181 $permissiontoadd = true;
182 $permtoedit = true;
183 $param = '&id='.$object->id;
184 include DOL_DOCUMENT_ROOT.'/core/tpl/document_actions_post_headers.tpl.php';
185} else {
186 header('Location: index.php');
187 exit;
188}
189
190// End of page
191llxFooter();
192$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 of customer 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.