dolibarr  17.0.4
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
30 require '../main.inc.php';
31 require_once DOL_DOCUMENT_ROOT.'/core/lib/order.lib.php';
32 require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
33 require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php';
34 require_once DOL_DOCUMENT_ROOT.'/core/lib/sendings.lib.php';
35 require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
36 require_once DOL_DOCUMENT_ROOT.'/expedition/class/expedition.class.php';
37 if (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');
54 if (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;
60 if (!$sortorder) {
61  $sortorder = "ASC";
62 }
63 if (!$sortfield) {
64  $sortfield = "name";
65 }
66 
67 $object = new Expedition($db);
68 
69 if ($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
93 if ($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 
105 include DOL_DOCUMENT_ROOT.'/core/actions_linkedfiles.inc.php';
106 
107 
108 /*
109  * View
110  */
111 
112 llxHeader('', $langs->trans('Order'), 'EN:Customers_Orders|FR:expeditions_Clients|ES:Pedidos de clientes');
113 
114 $form = new Form($db);
115 
116 if ($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
201 llxFooter();
202 $db->close();
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.
if($cancel &&! $id) if($action=='add' &&! $cancel) if($action=='delete') if($id) $form
Actions.
Definition: card.php:143
if(!defined('NOTOKENRENEWAL')) if(!defined('NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined('NOREQUIREAJAX')) if(isset($_GET["hashp"]) &&!defined("NOLOGIN")) if((isset($_GET["modulepart"]) && $_GET["modulepart"]=='medias')) llxHeader()
Header empty.
Definition: document.php:80
llxFooter()
Footer empty.
Definition: document.php:89
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:61
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='')
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)
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.
GETPOSTISSET($paramname)
Return true if we are in a context of submitting the parameter $paramname from a POST of a form.
isModEnabled($module)
Is Dolibarr module enabled.
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.