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