dolibarr  9.0.0
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 <http://www.gnu.org/licenses/>.
21  */
22 
29 require '../main.inc.php';
30 require_once DOL_DOCUMENT_ROOT.'/core/lib/order.lib.php';
31 require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
32 require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php';
33 require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
34 require_once DOL_DOCUMENT_ROOT .'/commande/class/commande.class.php';
35 if (! empty($conf->projet->enabled)) {
36  require_once DOL_DOCUMENT_ROOT . '/projet/class/project.class.php';
37 }
38 
39 // Load translation files required by the page
40 $langs->loadLangs(array('companies', 'other'));
41 
42 $action = GETPOST('action','aZ09');
43 $confirm = GETPOST('confirm');
44 $id = GETPOST('id','int');
45 $ref = GETPOST('ref');
46 
47 // Security check
48 if ($user->societe_id)
49 {
50  $socid = $user->societe_id;
51 }
52 $result=restrictedArea($user,'commande',$id,'');
53 
54 // Get parameters
55 $sortfield = GETPOST("sortfield",'alpha');
56 $sortorder = GETPOST("sortorder",'alpha');
57 $page = GETPOST("page",'int');
58 if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1
59 $offset = $conf->liste_limit * $page;
60 $pageprev = $page - 1;
61 $pagenext = $page + 1;
62 if (! $sortorder) $sortorder="ASC";
63 if (! $sortfield) $sortfield="name";
64 
65 $object = new Commande($db);
66 
67 
68 /*
69  * Actions
70  */
71 
72 if ($object->fetch($id))
73 {
74  $object->fetch_thirdparty();
75  $upload_dir = $conf->commande->dir_output . "/" . dol_sanitizeFileName($object->ref);
76 }
77 
78 include_once DOL_DOCUMENT_ROOT . '/core/actions_linkedfiles.inc.php';
79 
80 
81 /*
82  * View
83  */
84 
85 llxHeader('',$langs->trans('Order'),'EN:Customers_Orders|FR:Commandes_Clients|ES:Pedidos de clientes');
86 
87 $form = new Form($db);
88 
89 if ($id > 0 || ! empty($ref))
90 {
91  if ($object->fetch($id, $ref))
92  {
93  $object->fetch_thirdparty();
94 
95  $upload_dir = $conf->commande->dir_output.'/'.dol_sanitizeFileName($object->ref);
96 
97  $head = commande_prepare_head($object);
98  dol_fiche_head($head, 'documents', $langs->trans('CustomerOrder'), -1, 'order');
99 
100  // Build file list
101  $filearray=dol_dir_list($upload_dir,"files",0,'','(\.meta|_preview.*\.png)$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
102  $totalsize=0;
103  foreach($filearray as $key => $file)
104  {
105  $totalsize+=$file['size'];
106  }
107 
108  // Order card
109 
110  $linkback = '<a href="' . DOL_URL_ROOT . '/commande/list.php?restore_lastsearch_values=1' . (! empty($socid) ? '&socid=' . $socid : '') . '">' . $langs->trans("BackToList") . '</a>';
111 
112 
113  $morehtmlref='<div class="refidno">';
114  // Ref customer
115  $morehtmlref.=$form->editfieldkey("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', 0, 1);
116  $morehtmlref.=$form->editfieldval("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', null, null, '', 1);
117  // Thirdparty
118  $morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1);
119  // Project
120  if (! empty($conf->projet->enabled))
121  {
122  $langs->load("projects");
123  $morehtmlref.='<br>'.$langs->trans('Project') . ' ';
124  if ($user->rights->commande->creer)
125  {
126  if ($action != 'classify')
127  //$morehtmlref.='<a href="' . $_SERVER['PHP_SELF'] . '?action=classify&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a> : ';
128  $morehtmlref.=' : ';
129  if ($action == 'classify') {
130  //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1);
131  $morehtmlref.='<form method="post" action="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'">';
132  $morehtmlref.='<input type="hidden" name="action" value="classin">';
133  $morehtmlref.='<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
134  $morehtmlref.=$formproject->select_projects($object->thirdparty->id, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1);
135  $morehtmlref.='<input type="submit" class="button valignmiddle" value="'.$langs->trans("Modify").'">';
136  $morehtmlref.='</form>';
137  } else {
138  $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->thirdparty->id, $object->fk_project, 'none', 0, 0, 0, 1);
139  }
140  } else {
141  if (! empty($object->fk_project)) {
142  $proj = new Project($db);
143  $proj->fetch($object->fk_project);
144  $morehtmlref.='<a href="'.DOL_URL_ROOT.'/projet/card.php?id=' . $object->fk_project . '" title="' . $langs->trans('ShowProject') . '">';
145  $morehtmlref.=$proj->ref;
146  $morehtmlref.='</a>';
147  } else {
148  $morehtmlref.='';
149  }
150  }
151  }
152  $morehtmlref.='</div>';
153 
154  // Order card
155 
156  $linkback = '<a href="' . DOL_URL_ROOT . '/commande/list.php' . (! empty($socid) ? '?socid=' . $socid : '') . '">' . $langs->trans("BackToList") . '</a>';
157 
158  dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref);
159 
160  print '<div class="fichecenter">';
161  print '<div class="underbanner clearboth"></div>';
162 
163  print '<table class="border" width="100%">';
164 
165  print '<tr><td class="titlefield">'.$langs->trans("NbOfAttachedFiles").'</td><td colspan="3">'.count($filearray).'</td></tr>';
166  print '<tr><td>'.$langs->trans("TotalSizeOfAttachedFiles").'</td><td colspan="3">'.dol_print_size($totalsize,1,1).'</td></tr>';
167 
168  print "</table>\n";
169 
170  print "</div>\n";
171 
173 
174  $modulepart = 'commande';
175  $permission = $user->rights->commande->creer;
176  $permtoedit = $user->rights->commande->creer;
177  $param = '&id=' . $object->id;
178  include_once DOL_DOCUMENT_ROOT . '/core/tpl/document_actions_post_headers.tpl.php';
179  }
180  else
181  {
182  dol_print_error($db);
183  }
184 }
185 else
186 {
187  header('Location: index.php');
188  exit;
189 }
190 
191 
192 // End of page
193 llxFooter();
194 $db->close();
GETPOST($paramname, $check='none', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
print
Draft customers invoices.
Definition: index.php:91
dol_sanitizeFileName($str, $newstr='_', $unaccent=1)
Clean a string to use it as a file name.
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_print_error($db='', $error='', $errors=null)
Affiche message erreur system avec toutes les informations pour faciliter le diagnostic et la remonte...
Class to manage generation of HTML components Only common components must be here.
Class to manage projects.
dol_fiche_end($notab=0)
Show tab footer of a card.
Class to manage customers orders.
dol_dir_list($path, $types="all", $recursive=0, $filter="", $excludefilter=null, $sortcriteria="name", $sortorder=SORT_ASC, $mode=0, $nohook=0, $relativename="", $donotfollowsymlinks=0)
Scan a directory and return a list of files/directories.
Definition: files.lib.php:59
commande_prepare_head(Commande $object)
Prepare array with list of tabs.
Definition: order.lib.php:34
dol_print_size($size, $shortvalue=0, $shortunit=0)
Return string with formated size.
restrictedArea($user, $features, $objectid=0, $tableandshare='', $feature2='', $dbt_keyfield='fk_soc', $dbt_select='rowid', $isdraft=0)
Check permissions of a user to show a page and an object.
llxFooter()
Footer empty.
Definition: document.php:68
dol_fiche_head($links=array(), $active='0', $title='', $notab=0, $picto='', $pictoisfullpath=0, $morehtmlright='', $morecss='')
Show tab header of a card.
if(isset($_GET["hashp"]) &&! defined("NOLOGIN")) if((isset($_GET["modulepart"]) && $_GET["modulepart"]=='medias')) llxHeader()
Header empty.
Definition: document.php:60