1<?php
2/* Copyright (C) 2003-2004 Rodolphe Quiedeville  <rodolphe@quiedeville.org>
3 * Copyright (C) 2004-2017 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/comm/propal/document.php
25 *       \ingroup    propal
26 *       \brief      Management page of documents attached to a business proposal
27 */
28
29require '../../main.inc.php';
30require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php';
31require_once DOL_DOCUMENT_ROOT.'/core/lib/propal.lib.php';
32require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
33require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php';
34require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.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('propal', 'compta', 'other', 'companies'));
41
42$action = GETPOST('action', 'alpha');
43$confirm = GETPOST('confirm', 'alpha');
44$id = GETPOST('id', 'int');
45$ref = GETPOST('ref', 'alpha');
46
47// Security check
48$socid = '';
49if (!empty($user->socid)) {
50	$socid = $user->socid;
51}
52$result = restrictedArea($user, 'propal', $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) {
60	$page = 0;
61}     // If $page is not defined, or '' or -1
62$offset = $limit * $page;
63$pageprev = $page - 1;
64$pagenext = $page + 1;
65
66if (!empty($conf->global->MAIN_DOC_SORT_FIELD)) {
67	$sortfield = $conf->global->MAIN_DOC_SORT_FIELD;
68}
69if (!empty($conf->global->MAIN_DOC_SORT_ORDER)) {
70	$sortorder = $conf->global->MAIN_DOC_SORT_ORDER;
71}
72
73if (!$sortorder) {
74	$sortorder = "ASC";
75}
76if (!$sortfield) {
77	$sortfield = "name";
78}
79
80$object = new Propal($db);
81$object->fetch($id, $ref);
82
83$permissiontoadd = $user->rights->propale->creer;
84
85// Security check
86if (!empty($user->socid)) {
87	$socid = $user->socid;
88	$object->id = $user->socid;
89}
90restrictedArea($user, 'propal', $object->id);
91
92
93/*
94 * Actions
95 */
96
97if ($object->id > 0) {
98	$object->fetch_thirdparty();
99	$upload_dir = $conf->propal->multidir_output[$object->entity].'/'.dol_sanitizeFileName($object->ref);
100	include DOL_DOCUMENT_ROOT.'/core/actions_linkedfiles.inc.php';
101}
102
103
104/*
105 * View
106 */
107$title = $langs->trans('Proposal')." - ".$langs->trans('Documents');
108$help_url = 'EN:Commercial_Proposals|FR:Proposition_commerciale|ES:Presupuestos';
109llxHeader('', $title, $help_url);
110
111$form = new Form($db);
112
113if ($object->id > 0) {
114	$upload_dir = $conf->propal->multidir_output[$object->entity].'/'.dol_sanitizeFileName($object->ref);
115
116	$head = propal_prepare_head($object);
117	print dol_get_fiche_head($head, 'document', $langs->trans('Proposal'), -1, 'propal');
118
119	// Build file list
120	$filearray = dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview.*\.png)$', $sortfield, (strtolower($sortorder) == 'desc' ?SORT_DESC:SORT_ASC), 1);
121	$totalsize = 0;
122	foreach ($filearray as $key => $file) {
123		$totalsize += $file['size'];
124	}
125
126
127	// Proposal card
128
129	$linkback = '<a href="'.DOL_URL_ROOT.'/comm/propal/list.php?restore_lastsearch_values=1'.(!empty($socid) ? '&socid='.$socid : '').'">'.$langs->trans("BackToList").'</a>';
130
131
132	$morehtmlref = '<div class="refidno">';
133	// Ref customer
134	$morehtmlref .= $form->editfieldkey("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', 0, 1);
135	$morehtmlref .= $form->editfieldval("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', null, null, '', 1);
136	// Thirdparty
137	$morehtmlref .= '<br>'.$langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1, 'customer');
138	// Project
139	if (!empty($conf->projet->enabled)) {
140		$langs->load("projects");
141		$morehtmlref .= '<br>'.$langs->trans('Project').' ';
142		if ($user->rights->propal->creer) {
143			if ($action != 'classify') {
144				//$morehtmlref.='<a class="editfielda" href="' . $_SERVER['PHP_SELF'] . '?action=classify&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a>';
145				$morehtmlref .= ' : ';
146			}
147			if ($action == 'classify') {
148				//$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1);
149				$morehtmlref .= '<form method="post" action="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'">';
150				$morehtmlref .= '<input type="hidden" name="action" value="classin">';
151				$morehtmlref .= '<input type="hidden" name="token" value="'.newToken().'">';
152				$morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1);
153				$morehtmlref .= '<input type="submit" class="button valignmiddle" value="'.$langs->trans("Modify").'">';
154				$morehtmlref .= '</form>';
155			} else {
156				$morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1);
157			}
158		} else {
159			if (!empty($object->fk_project)) {
160				$proj = new Project($db);
161				$proj->fetch($object->fk_project);
162				$morehtmlref .= '<a href="'.DOL_URL_ROOT.'/projet/card.php?id='.$object->fk_project.'" title="'.$langs->trans('ShowProject').'">';
163				$morehtmlref .= $proj->ref;
164				$morehtmlref .= '</a>';
165			} else {
166				$morehtmlref .= '';
167			}
168		}
169	}
170	$morehtmlref .= '</div>';
171
172	dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref);
173
174
175	print '<div class="fichecenter">';
176	print '<div class="underbanner clearboth"></div>';
177
178	print '<table class="border tableforfield centpercent">';
179
180	// Files infos
181	print '<tr><td class="titlefield">'.$langs->trans("NbOfAttachedFiles").'</td><td>'.count($filearray).'</td></tr>';
182	print '<tr><td>'.$langs->trans("TotalSizeOfAttachedFiles").'</td><td>'.dol_print_size($totalsize, 1, 1).'</td></tr>';
183
184	print "</table>\n";
185
186	print '</div>';
187
188
189	print dol_get_fiche_end();
190
191	$modulepart = 'propal';
192	$permissiontoadd = $user->rights->propal->creer;
193	$permtoedit = $user->rights->propal->creer;
194	$param = '&id='.$object->id;
195	include DOL_DOCUMENT_ROOT.'/core/tpl/document_actions_post_headers.tpl.php';
196} else {
197	print $langs->trans("ErrorUnknown");
198}
199
200// End of page
201llxFooter();
202$db->close();
203