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) 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  *
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 <http://www.gnu.org/licenses/>.
22  */
23 
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/fourn.lib.php';
35 require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
36 require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php';
37 if (! empty($conf->projet->enabled)) {
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("bills", "orders", "sendings", "companies", "deliveries", "products", "stocks","other"));
43 
44 $id = GETPOST('id','int');
45 $ref = GETPOST('ref', 'alpha');
46 $action = GETPOST('action','alpha');
47 $confirm = GETPOST('confirm','alpha');
48 
49 // Security check
50 if ($user->societe_id) $socid=$user->societe_id;
51 $result = restrictedArea($user, 'fournisseur', $id, 'commande_fournisseur', 'commande');
52 
53 // Get parameters
54 $sortfield = GETPOST("sortfield",'alpha');
55 $sortorder = GETPOST("sortorder",'alpha');
56 $page = GETPOST("page",'int');
57 if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1
58 $offset = $conf->liste_limit * $page;
59 $pageprev = $page - 1;
60 $pagenext = $page + 1;
61 if (! $sortorder) $sortorder="ASC";
62 if (! $sortfield) $sortfield="name";
63 
64 
65 $object = new CommandeFournisseur($db);
66 if ($object->fetch($id,$ref) < 0)
67 {
68  dol_print_error($db);
69  exit;
70 }
71 
72 $upload_dir = $conf->fournisseur->commande->dir_output.'/'.dol_sanitizeFileName($object->ref);
73 $object->fetch_thirdparty();
74 
75 
76 /*
77  * Actions
78  */
79 
80 include_once DOL_DOCUMENT_ROOT . '/core/actions_linkedfiles.inc.php';
81 
82 
83 /*
84  * View
85  */
86 
87 $form = new Form($db);
88 
89 if ($object->id > 0)
90 {
91  $help_url='EN:Module_Suppliers_Orders|FR:CommandeFournisseur|ES:Módulo_Pedidos_a_proveedores';
92  llxHeader('',$langs->trans("Order"),$help_url);
93 
94  $object->fetch_thirdparty();
95 
96  $author = new User($db);
97  $author->fetch($object->user_author_id);
98 
99  $head = ordersupplier_prepare_head($object);
100 
101  dol_fiche_head($head, 'documents', $langs->trans('SupplierOrder'), -1, 'order');
102 
103 
104  // Build file list
105  $filearray=dol_dir_list($upload_dir,"files",0,'','(\.meta|_preview.*\.png)$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
106  $totalsize=0;
107  foreach($filearray as $key => $file)
108  {
109  $totalsize+=$file['size'];
110  }
111 
112  // Supplier order card
113 
114  $linkback = '<a href="'.DOL_URL_ROOT.'/fourn/commande/list.php'.(! empty($socid)?'?socid='.$socid:'').'">'.$langs->trans("BackToList").'</a>';
115 
116  $morehtmlref='<div class="refidno">';
117  // Ref supplier
118  $morehtmlref.=$form->editfieldkey("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', 0, 1);
119  $morehtmlref.=$form->editfieldval("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', null, null, '', 1);
120  // Thirdparty
121  $morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1);
122  // Project
123  if (! empty($conf->projet->enabled))
124  {
125  $langs->load("projects");
126  $morehtmlref.='<br>'.$langs->trans('Project') . ' ';
127  if ($user->rights->fournisseur->commande->creer)
128  {
129  if ($action != 'classify')
130  //$morehtmlref.='<a href="' . $_SERVER['PHP_SELF'] . '?action=classify&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a> : ';
131  $morehtmlref.=' : ';
132  if ($action == 'classify') {
133  //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1);
134  $morehtmlref.='<form method="post" action="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'">';
135  $morehtmlref.='<input type="hidden" name="action" value="classin">';
136  $morehtmlref.='<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
137  $morehtmlref.=$formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1);
138  $morehtmlref.='<input type="submit" class="button valignmiddle" value="'.$langs->trans("Modify").'">';
139  $morehtmlref.='</form>';
140  } else {
141  $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1);
142  }
143  } else {
144  if (! empty($object->fk_project)) {
145  $proj = new Project($db);
146  $proj->fetch($object->fk_project);
147  $morehtmlref.='<a href="'.DOL_URL_ROOT.'/projet/card.php?id=' . $object->fk_project . '" title="' . $langs->trans('ShowProject') . '">';
148  $morehtmlref.=$proj->ref;
149  $morehtmlref.='</a>';
150  } else {
151  $morehtmlref.='';
152  }
153  }
154  }
155  $morehtmlref.='</div>';
156 
157  dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref);
158 
159 
160  print '<div class="fichecenter">';
161  print '<div class="underbanner clearboth"></div>';
162 
163  print '<table class="border" width="100%">';
164  print '<tr><td class="titlefield">'.$langs->trans("NbOfAttachedFiles").'</td><td colspan="3">'.count($filearray).'</td></tr>';
165  print '<tr><td>'.$langs->trans("TotalSizeOfAttachedFiles").'</td><td colspan="3">'.dol_print_size($totalsize,1,1).'</td></tr>';
166  print "</table>\n";
167 
168  print "</div>\n";
169 
170  dol_fiche_end();
171 
172 
173  $modulepart = 'commande_fournisseur';
174  $permission = $user->rights->fournisseur->commande->creer;
175  $permtoedit = $user->rights->fournisseur->commande->creer;
176  $param = '&id=' . $object->id;
177  include_once DOL_DOCUMENT_ROOT . '/core/tpl/document_actions_post_headers.tpl.php';
178 }
179 else
180 {
181  header('Location: index.php');
182  exit;
183 }
184 
185 // End of page
186 llxFooter();
187 $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
ordersupplier_prepare_head($object)
Prepare array with list of tabs.
Definition: fourn.lib.php:102
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.
Class to manage Dolibarr users.
Definition: user.class.php:41
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.
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
Class to manage predefined suppliers products.
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