PageRenderTime 35ms CodeModel.GetById 25ms app.highlight 7ms RepoModel.GetById 1ms app.codeStats 0ms

/htdocs/commande/document.php

http://github.com/Dolibarr/dolibarr
PHP | 200 lines | 120 code | 37 blank | 43 comment | 24 complexity | 1a023052a4ede125018bcfc071b85012 MD5 | raw 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
 23/**
 24 *	\file       htdocs/commande/document.php
 25 *	\ingroup    order
 26 *	\brief      Management page of documents attached to an order
 27 */
 28
 29require '../main.inc.php';
 30require_once DOL_DOCUMENT_ROOT.'/core/lib/order.lib.php';
 31require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
 32require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php';
 33require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
 34require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php';
 35if (!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
 48if ($user->socid)
 49{
 50	$socid = $user->socid;
 51}
 52$result = restrictedArea($user, 'commande', $id, '');
 53
 54// Get parameters
 55$limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit;
 56$sortfield = GETPOST("sortfield", 'alpha');
 57$sortorder = GETPOST("sortorder", 'alpha');
 58$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
 59if (empty($page) || $page == -1) { $page = 0; }     // If $page is not defined, or '' or -1
 60$offset = $limit * $page;
 61$pageprev = $page - 1;
 62$pagenext = $page + 1;
 63
 64if (!empty($conf->global->MAIN_DOC_SORT_FIELD)) { $sortfield = $conf->global->MAIN_DOC_SORT_FIELD; }
 65if (!empty($conf->global->MAIN_DOC_SORT_ORDER)) { $sortorder = $conf->global->MAIN_DOC_SORT_ORDER; }
 66
 67if (!$sortorder) $sortorder = "ASC";
 68if (!$sortfield) $sortfield = "name";
 69
 70$object = new Commande($db);
 71
 72
 73/*
 74 * Actions
 75 */
 76
 77if ($object->fetch($id))
 78{
 79	$object->fetch_thirdparty();
 80	$upload_dir = $conf->commande->multidir_output[$object->entity]."/".dol_sanitizeFileName($object->ref);
 81}
 82
 83include_once DOL_DOCUMENT_ROOT.'/core/actions_linkedfiles.inc.php';
 84
 85
 86/*
 87 * View
 88 */
 89
 90llxHeader('', $langs->trans('Order'), 'EN:Customers_Orders|FR:Commandes_Clients|ES:Pedidos de clientes');
 91
 92$form = new Form($db);
 93
 94if ($id > 0 || !empty($ref))
 95{
 96	if ($object->fetch($id, $ref))
 97	{
 98		$object->fetch_thirdparty();
 99
100		$upload_dir = $conf->commande->multidir_output[$object->entity].'/'.dol_sanitizeFileName($object->ref);
101
102		$head = commande_prepare_head($object);
103		dol_fiche_head($head, 'documents', $langs->trans('CustomerOrder'), -1, 'order');
104
105		// Build file list
106		$filearray = dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview.*\.png)$', $sortfield, (strtolower($sortorder) == 'desc' ?SORT_DESC:SORT_ASC), 1);
107		$totalsize = 0;
108		foreach ($filearray as $key => $file)
109		{
110		    $totalsize += $file['size'];
111		}
112
113		// Order card
114
115		$linkback = '<a href="'.DOL_URL_ROOT.'/commande/list.php?restore_lastsearch_values=1'.(!empty($socid) ? '&socid='.$socid : '').'">'.$langs->trans("BackToList").'</a>';
116
117
118		$morehtmlref = '<div class="refidno">';
119		// Ref customer
120		$morehtmlref .= $form->editfieldkey("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', 0, 1);
121		$morehtmlref .= $form->editfieldval("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', null, null, '', 1);
122		// Thirdparty
123		$morehtmlref .= '<br>'.$langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1);
124		// Project
125		if (!empty($conf->projet->enabled))
126		{
127		    $langs->load("projects");
128		    $morehtmlref .= '<br>'.$langs->trans('Project').' ';
129		    if ($user->rights->commande->creer)
130		    {
131		        if ($action != 'classify') {
132		        	//$morehtmlref.='<a class="editfielda" href="' . $_SERVER['PHP_SELF'] . '?action=classify&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a> : ';
133					$morehtmlref .= ' : ';
134				}
135	            if ($action == 'classify') {
136	                //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1);
137	                $morehtmlref .= '<form method="post" action="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'">';
138	                $morehtmlref .= '<input type="hidden" name="action" value="classin">';
139	                $morehtmlref .= '<input type="hidden" name="token" value="'.newToken().'">';
140	                $morehtmlref .= $formproject->select_projects($object->thirdparty->id, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1);
141	                $morehtmlref .= '<input type="submit" class="button valignmiddle" value="'.$langs->trans("Modify").'">';
142	                $morehtmlref .= '</form>';
143	            } else {
144	                $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->thirdparty->id, $object->fk_project, 'none', 0, 0, 0, 1);
145	            }
146		    } else {
147		        if (!empty($object->fk_project)) {
148		            $proj = new Project($db);
149		            $proj->fetch($object->fk_project);
150		            $morehtmlref .= '<a href="'.DOL_URL_ROOT.'/projet/card.php?id='.$object->fk_project.'" title="'.$langs->trans('ShowProject').'">';
151		            $morehtmlref .= $proj->ref;
152		            $morehtmlref .= '</a>';
153		        } else {
154		            $morehtmlref .= '';
155		        }
156		    }
157		}
158		$morehtmlref .= '</div>';
159
160		// Order card
161
162		$linkback = '<a href="'.DOL_URL_ROOT.'/commande/list.php'.(!empty($socid) ? '?socid='.$socid : '').'">'.$langs->trans("BackToList").'</a>';
163
164		dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref);
165
166		print '<div class="fichecenter">';
167		print '<div class="underbanner clearboth"></div>';
168
169		print '<table class="border tableforfield centpercent">';
170
171		print '<tr><td class="titlefield">'.$langs->trans("NbOfAttachedFiles").'</td><td colspan="3">'.count($filearray).'</td></tr>';
172		print '<tr><td>'.$langs->trans("TotalSizeOfAttachedFiles").'</td><td colspan="3">'.dol_print_size($totalsize, 1, 1).'</td></tr>';
173
174		print "</table>\n";
175
176		print "</div>\n";
177
178		dol_fiche_end();
179
180		$modulepart = 'commande';
181		$permission = $user->rights->commande->creer;
182		$permtoedit = $user->rights->commande->creer;
183		$param = '&id='.$object->id.'&entity='.(!empty($object->entity) ? $object->entity : $conf->entity);
184		include_once DOL_DOCUMENT_ROOT.'/core/tpl/document_actions_post_headers.tpl.php';
185	}
186	else
187	{
188		dol_print_error($db);
189	}
190}
191else
192{
193	header('Location: index.php');
194	exit;
195}
196
197
198// End of page
199llxFooter();
200$db->close();