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) 2013 Cédric Salvador <csalvador@gpcsolutions.fr>
7 * Copyright (C) 2017 Ferran Marcet <fmarcet@2byte.es>
8 * Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
9 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 3 of the License, or
13 * (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public License
21 * along with this program. If not, see <https://www.gnu.org/licenses/>.
22 */
23
30// Load Dolibarr environment
31require '../main.inc.php';
32require_once DOL_DOCUMENT_ROOT.'/core/lib/order.lib.php';
33require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
34require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php';
35require_once DOL_DOCUMENT_ROOT.'/core/lib/sendings.lib.php';
36require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
37require_once DOL_DOCUMENT_ROOT.'/expedition/class/expedition.class.php';
38if (isModEnabled('project')) {
39 require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
40}
41
50// Load translation files required by the page
51$langs->loadLangs(array('companies', 'other'));
52
53$action = GETPOST('action', 'aZ09');
54$confirm = GETPOST('confirm');
55$id = GETPOSTINT('id');
56$ref = GETPOST('ref');
57
58// Get parameters
59$limit = GETPOSTINT('limit') ? GETPOSTINT('limit') : $conf->liste_limit;
60$sortfield = GETPOST('sortfield', 'aZ09comma');
61$sortorder = GETPOST('sortorder', 'aZ09comma');
62$page = GETPOSTISSET('pageplusone') ? (GETPOSTINT('pageplusone') - 1) : GETPOSTINT("page");
63if (empty($page) || $page == -1) {
64 $page = 0;
65} // If $page is not defined, or '' or -1
66$offset = $limit * $page;
67$pageprev = $page - 1;
68$pagenext = $page + 1;
69if (!$sortorder) {
70 $sortorder = "ASC";
71}
72if (!$sortfield) {
73 $sortfield = "name";
74}
75
76$object = new Expedition($db);
77
78if ($id > 0 || !empty($ref)) {
79 $object->fetch($id, $ref);
80 $object->fetch_thirdparty();
81
82 if (!empty($object->origin)) {
83 $typeobject = $object->origin;
84 $origin = $object->origin;
85 $object->fetch_origin();
86 }
87
88 // Linked documents
89 if ($typeobject == 'commande' && $object->origin_object->id && isModEnabled('order')) {
90 $objectsrc = new Commande($db);
91 $objectsrc->fetch($object->origin_object->id);
92 }
93 if ($typeobject == 'propal' && $object->origin_object->id && isModEnabled("propal")) {
94 $objectsrc = new Propal($db);
95 $objectsrc->fetch($object->origin_object->id);
96 }
97
98 $upload_dir = $conf->expedition->dir_output."/sending/".dol_sanitizeFileName($object->ref);
99}
100
101// Security check
102if ($user->socid) {
103 $socid = $user->socid;
104}
105$result = restrictedArea($user, 'expedition', $object->id, '');
106
107$permissiontoadd = $user->hasRight('expedition', 'creer'); // Used by the include of actions_dellink.inc.php
108
109
110/*
111 * Actions
112 */
113
114include DOL_DOCUMENT_ROOT.'/core/actions_linkedfiles.inc.php';
115
116
117/*
118 * View
119 */
120
121llxHeader('', $langs->trans('Order'), 'EN:Customers_Orders|FR:expeditions_Clients|ES:Pedidos de clientes', '', 0, 0, '', '', '', 'mod-expedition page-card_document');
122
123$form = new Form($db);
124
125if ($id > 0 || !empty($ref)) {
126 if ($object->fetch($id, $ref)) {
127 $object->fetch_thirdparty();
128
129 $upload_dir = $conf->expedition->dir_output.'/sending/'.dol_sanitizeFileName($object->ref);
130
131 $head = shipping_prepare_head($object);
132 print dol_get_fiche_head($head, 'documents', $langs->trans("Shipment"), -1, $object->picto);
133
134
135 // Build file list
136 $filearray = dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview.*\.png)$', $sortfield, (strtolower($sortorder) == 'desc' ? SORT_DESC : SORT_ASC), 1);
137 $totalsize = 0;
138 foreach ($filearray as $key => $file) {
139 $totalsize += $file['size'];
140 }
141
142 // Shipment card
143 $linkback = '<a href="'.DOL_URL_ROOT.'/expedition/list.php?restore_lastsearch_values=1'.(!empty($socid) ? '&socid='.$socid : '').'">'.$langs->trans("BackToList").'</a>';
144
145
146 $morehtmlref = '<div class="refidno">';
147 // Ref customer
148 $morehtmlref .= $form->editfieldkey("RefCustomer", 'ref_customer', $object->ref_customer, $object, 0, 'string', '', 0, 1);
149 $morehtmlref .= $form->editfieldval("RefCustomer", 'ref_customer', $object->ref_customer, $object, 0, 'string', '', null, null, '', 1);
150 // Thirdparty
151 $morehtmlref .= '<br>'.$object->thirdparty->getNomUrl(1);
152
153 // Project
154 if (isModEnabled('project')) {
155 $langs->load("projects");
156 $morehtmlref .= '<br>';
157 if (0) { // Do not change on shipment
158 $morehtmlref .= img_picto($langs->trans("Project"), 'project', 'class="pictofixedwidth"');
159 if ($action != 'classify') {
160 $morehtmlref .= '<a class="editfielda" href="'.$_SERVER['PHP_SELF'].'?action=classify&token='.newToken().'&id='.$object->id.'">'.img_edit($langs->transnoentitiesnoconv('SetProject')).'</a> ';
161 }
162 $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $objectsrc->socid, $objectsrc->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, 0, 0, 1, '', 'maxwidth300');
163 } else {
164 if (!empty($objectsrc->fk_project)) {
165 $proj = new Project($db);
166 $proj->fetch($objectsrc->fk_project);
167 $morehtmlref .= $proj->getNomUrl(1);
168 if ($proj->title) {
169 $morehtmlref .= '<span class="opacitymedium"> - '.dol_escape_htmltag($proj->title).'</span>';
170 }
171 }
172 }
173 }
174 $morehtmlref .= '</div>';
175
176 // Order card
177
178 $linkback = '<a href="'.DOL_URL_ROOT.'/expedition/list.php'.(!empty($socid) ? '?socid='.$socid : '').'">'.$langs->trans("BackToList").'</a>';
179
180 dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref);
181
182 print '<div class="fichecenter">';
183 print '<div class="underbanner clearboth"></div>';
184
185 print '<table class="border tableforfield centpercent">';
186
187 print '<tr><td class="titlefield">'.$langs->trans("NbOfAttachedFiles").'</td><td colspan="3">'.count($filearray).'</td></tr>';
188 print '<tr><td>'.$langs->trans("TotalSizeOfAttachedFiles").'</td><td colspan="3">'.dol_print_size($totalsize, 1, 1).'</td></tr>';
189
190 print "</table>\n";
191
192 print "</div>\n";
193
194 print dol_get_fiche_end();
195
196 $modulepart = 'expedition';
197 $permissiontoadd = $user->hasRight('expedition', 'creer');
198 $permtoedit = $user->hasRight('expedition', 'creer');
199 $param = '&id='.$object->id;
200 include DOL_DOCUMENT_ROOT.'/core/tpl/document_actions_post_headers.tpl.php';
201 } else {
202 dol_print_error($db);
203 }
204} else {
205 header('Location: index.php');
206 exit;
207}
208
209// End of page
210llxFooter();
211$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 customers orders.
Class to manage generation of HTML components Only common components must be here.
Class to manage projects.
Class to manage proposals.
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.
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2)
Show picto whatever it's its name (generic function)
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.
newToken()
Return the value of token currently saved into session with name 'newtoken'.
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_print_error($db=null, $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
img_edit($titlealt='default', $float=0, $other='')
Show logo edit/modify fiche.
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.
shipping_prepare_head($object)
Prepare array with list of tabs.