PageRenderTime 19ms CodeModel.GetById 7ms app.highlight 9ms RepoModel.GetById 1ms app.codeStats 0ms

/htdocs/expedition/document.php

http://github.com/Dolibarr/dolibarr
PHP | 191 lines | 113 code | 34 blank | 44 comment | 24 complexity | ef1b53d6a4b6655aaacc64c7b9241f0e 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/expedition/document.php
 25 *	\ingroup    expedition
 26 *	\brief      Management page of documents attached to an expedition
 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/lib/sendings.lib.php';
 34require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
 35require_once DOL_DOCUMENT_ROOT.'/expedition/class/expedition.class.php';
 36if (!empty($conf->projet->enabled)) {
 37	require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
 38}
 39
 40// Load translation files required by the page
 41$langs->loadLangs(array('companies', 'other'));
 42
 43$action		= GETPOST('action', 'aZ09');
 44$confirm	= GETPOST('confirm');
 45$id			= GETPOST('id', 'int');
 46$ref		= GETPOST('ref');
 47
 48// Security check
 49if ($user->socid)
 50{
 51	$socid = $user->socid;
 52}
 53$result = restrictedArea($user, 'expedition', $id, '');
 54
 55// Get parameters
 56$limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit;
 57$sortfield = GETPOST("sortfield", 'alpha');
 58$sortorder = GETPOST("sortorder", 'alpha');
 59$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
 60if (empty($page) || $page == -1) { $page = 0; }     // If $page is not defined, or '' or -1
 61$offset = $limit * $page;
 62$pageprev = $page - 1;
 63$pagenext = $page + 1;
 64if (!$sortorder) $sortorder = "ASC";
 65if (!$sortfield) $sortfield = "name";
 66
 67$object = new Expedition($db);
 68
 69
 70/*
 71 * Actions
 72 */
 73if ($object->fetch($id))
 74{
 75	$object->fetch_thirdparty();
 76	$upload_dir = $conf->expedition->dir_output."/sending/".dol_sanitizeFileName($object->ref);
 77}
 78
 79include_once DOL_DOCUMENT_ROOT.'/core/actions_linkedfiles.inc.php';
 80
 81
 82/*
 83 * View
 84 */
 85
 86llxHeader('', $langs->trans('Order'), 'EN:Customers_Orders|FR:expeditions_Clients|ES:Pedidos de clientes');
 87
 88$form = new Form($db);
 89
 90if ($id > 0 || !empty($ref)) {
 91	if ($object->fetch($id, $ref)) {
 92		$object->fetch_thirdparty();
 93
 94		$upload_dir = $conf->expedition->dir_output.'/sending/'.dol_sanitizeFileName($object->ref);
 95
 96		$head = shipping_prepare_head($object);
 97		dol_fiche_head($head, 'documents', $langs->trans("Shipment"), -1, 'sending');
 98
 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		    $totalsize += $file['size'];
105		}
106
107		// Shipment card
108		$linkback = '<a href="'.DOL_URL_ROOT.'/expedition/list.php?restore_lastsearch_values=1'.(!empty($socid) ? '&socid='.$socid : '').'">'.$langs->trans("BackToList").'</a>';
109
110
111		$morehtmlref = '<div class="refidno">';
112		// Ref customer
113		$morehtmlref .= $form->editfieldkey("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', 0, 1);
114		$morehtmlref .= $form->editfieldval("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', null, null, '', 1);
115		// Thirdparty
116		$morehtmlref .= '<br>'.$langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1);
117
118		// Project
119		if (!empty($conf->projet->enabled)) {
120			$langs->load("projects");
121			$morehtmlref .= '<br>'.$langs->trans('Project').' ';
122			if (0) {    // Do not change on shipment
123				if ($action != 'classify') {
124					$morehtmlref .= '<a class="editfielda" href="'.$_SERVER['PHP_SELF'].'?action=classify&amp;id='.$object->id.'">'.img_edit($langs->transnoentitiesnoconv('SetProject')).'</a> : ';
125				}
126				if ($action == 'classify') {
127					// $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1);
128					$morehtmlref .= '<form method="post" action="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'">';
129					$morehtmlref .= '<input type="hidden" name="action" value="classin">';
130					$morehtmlref .= '<input type="hidden" name="token" value="'.newToken().'">';
131					$morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1);
132					$morehtmlref .= '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
133					$morehtmlref .= '</form>';
134				} else {
135					$morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1);
136				}
137			} else {
138				// We don't have project on shipment, so we will use the project or source object instead
139				// TODO Add project on shipment
140				$morehtmlref .= ' : ';
141				if (!empty($objectsrc->fk_project)) {
142					$proj = new Project($db);
143					$proj->fetch($objectsrc->fk_project);
144					$morehtmlref .= '<a href="'.DOL_URL_ROOT.'/projet/card.php?id='.$objectsrc->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.'/expedition/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 tableforfield centpercent">';
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
172		dol_fiche_end();
173
174		$modulepart = 'expedition';
175		$permission = $user->rights->expedition->creer;
176		$permtoedit = $user->rights->expedition->creer;
177		$param = '&id='.$object->id;
178		include_once DOL_DOCUMENT_ROOT.'/core/tpl/document_actions_post_headers.tpl.php';
179	}
180	else {
181		dol_print_error($db);
182	}
183}
184else {
185	header('Location: index.php');
186	exit;
187}
188
189// End of page
190llxFooter();
191$db->close();