Issues (2811)

public/htdocs/contrat/document.php (1 issue)

Labels
Severity
1
<?php
2
3
/* Copyright (C) 2003-2007  Rodolphe Quiedeville        <[email protected]>
4
 * Copyright (C) 2004-2009	Laurent Destailleur		    <[email protected]>
5
 * Copyright (C) 2005		Marc Barilley / Ocebo	    <[email protected]>
6
 * Copyright (C) 2005-2012	Regis Houssin			    <[email protected]>
7
 * Copyright (C) 2005		Simon TOSSER			    <[email protected]>
8
 * Copyright (C) 2013		Cédric Salvador			    <[email protected]>
9
 * Copyright (C) 2017       Ferran Marcet       	    <[email protected]>
10
 * Copyright (C) 2024       Rafael San José             <[email protected]>
11
 *
12
 * This program is free software; you can redistribute it and/or modify
13
 * it under the terms of the GNU General Public License as published by
14
 * the Free Software Foundation; either version 3 of the License, or
15
 * (at your option) any later version.
16
 *
17
 * This program is distributed in the hope that it will be useful,
18
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20
 * GNU General Public License for more details.
21
 *
22
 * You should have received a copy of the GNU General Public License
23
 * along with this program. If not, see <https://www.gnu.org/licenses/>.
24
 */
25
26
use Dolibarr\Code\Contrat\Classes\Contrat;
27
use Dolibarr\Code\Core\Classes\Form;
28
use Dolibarr\Code\Projet\Classes\Project;
29
use Dolibarr\Lib\ViewMain;
30
31
/**
32
 *       \file       htdocs/contrat/document.php
33
 *       \ingroup    contrat
34
 *       \brief      Page des documents joints sur les contrats
35
 */
36
37
require constant('DOL_DOCUMENT_ROOT') . '/main.inc.php';
38
require_once constant('DOL_DOCUMENT_ROOT') . '/core/lib/contract.lib.php';
39
require_once constant('DOL_DOCUMENT_ROOT') . '/core/lib/files.lib.php';
40
require_once constant('DOL_DOCUMENT_ROOT') . '/core/lib/images.lib.php';
41
42
// Load translation files required by the page
43
$langs->loadLangs(array('other', 'products', 'contracts'));
44
45
$action = GETPOST('action', 'alpha');
46
$confirm = GETPOST('confirm', 'alpha');
47
$id = GETPOSTINT('id');
48
$ref = GETPOST('ref', 'alpha');
49
50
// Security check
51
if ($user->socid > 0) {
52
    $action = '';
53
    $socid = $user->socid;
54
}
55
56
// Get parameters
57
$limit = GETPOSTINT('limit') ? GETPOSTINT('limit') : $conf->liste_limit;
58
$sortfield = GETPOST('sortfield', 'aZ09comma');
59
$sortorder = GETPOST('sortorder', 'aZ09comma');
60
$page = GETPOSTISSET('pageplusone') ? (GETPOSTINT('pageplusone') - 1) : GETPOSTINT("page");
61
if (empty($page) || $page == -1) {
62
    $page = 0;
63
}     // If $page is not defined, or '' or -1
64
$offset = $limit * $page;
65
$pageprev = $page - 1;
66
$pagenext = $page + 1;
67
if (!$sortorder) {
68
    $sortorder = "ASC";
69
}
70
if (!$sortfield) {
71
    $sortfield = "name";
72
}
73
74
75
$object = new Contrat($db);
76
$object->fetch($id, $ref);
77
if ($object->id > 0) {
78
    $object->fetch_thirdparty();
79
}
80
81
$upload_dir = $conf->contrat->multidir_output[$object->entity] . '/' . dol_sanitizeFileName($object->ref);
82
$modulepart = 'contract';
83
84
// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
85
$hookmanager->initHooks(array('contractcard', 'globalcard'));
86
87
$permissiontoadd = $user->hasRight('contrat', 'creer'); // Used by the include of actions_dellink.inc.php
88
89
$result = restrictedArea($user, 'contrat', $object->id);
90
91
92
/*
93
 * Actions
94
 */
95
96
include DOL_DOCUMENT_ROOT . '/core/actions_linkedfiles.inc.php';
97
98
99
/*
100
 *
101
 */
102
103
$form = new Form($db);
104
105
$title = $langs->trans("Contract");
106
$help_url = 'EN:Module_Contracts|FR:Module_Contrat';
107
108
ViewMain::llxHeader('', $title, $help_url);
109
110
111
if ($object->id) {
112
    $head = contract_prepare_head($object);
113
114
    print dol_get_fiche_head($head, 'documents', $langs->trans("Contract"), -1, 'contract');
115
116
117
    // Build file list
118
    $filearray = dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview.*\.png)$', $sortfield, (strtolower($sortorder) == 'desc' ? SORT_DESC : SORT_ASC), 1);
119
    $totalsize = 0;
120
    foreach ($filearray as $key => $file) {
121
        $totalsize += $file['size'];
122
    }
123
124
125
    // Contract card
126
127
    $linkback = '<a href="' . constant('BASE_URL') . '/contrat/list.php?restore_lastsearch_values=1' . (!empty($socid) ? '&socid=' . $socid : '') . '">' . $langs->trans("BackToList") . '</a>';
128
129
130
    $morehtmlref = '';
131
    //if (!empty($modCodeContract->code_auto)) {
132
    $morehtmlref .= $object->ref;
133
    /*} else {
134
     $morehtmlref.=$form->editfieldkey("",'ref',$object->ref,0,'string','',0,3);
135
    $morehtmlref.=$form->editfieldval("",'ref',$object->ref,0,'string','',0,2);
136
    }*/
137
138
    $morehtmlref .= '<div class="refidno">';
139
    // Ref customer
140
    $morehtmlref .= $form->editfieldkey("RefCustomer", 'ref_customer', $object->ref_customer, $object, 0, 'string', '', 0, 1);
141
    $morehtmlref .= $form->editfieldval("RefCustomer", 'ref_customer', $object->ref_customer, $object, 0, 'string', '', null, null, '', 1, 'getFormatedCustomerRef');
142
    // Ref supplier
143
    $morehtmlref .= '<br>';
144
    $morehtmlref .= $form->editfieldkey("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', 0, 1);
145
    $morehtmlref .= $form->editfieldval("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', null, null, '', 1, 'getFormatedSupplierRef');
146
    // Thirdparty
147
    $morehtmlref .= '<br>' . $object->thirdparty->getNomUrl(1);
0 ignored issues
show
The method getNomUrl() does not exist on null. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

147
    $morehtmlref .= '<br>' . $object->thirdparty->/** @scrutinizer ignore-call */ getNomUrl(1);

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
148
    if (!getDolGlobalString('MAIN_DISABLE_OTHER_LINK') && $object->thirdparty->id > 0) {
149
        $morehtmlref .= ' (<a href="' . constant('BASE_URL') . '/contrat/list.php?socid=' . $object->thirdparty->id . '&search_name=' . urlencode($object->thirdparty->name) . '">' . $langs->trans("OtherContracts") . '</a>)';
150
    }
151
    // Project
152
    if (isModEnabled('project')) {
153
        $langs->load("projects");
154
        $morehtmlref .= '<br>';
155
        if (0) {
156
            $morehtmlref .= img_picto($langs->trans("Project"), 'project', 'class="pictofixedwidth"');
157
            if ($action != 'classify') {
158
                $morehtmlref .= '<a class="editfielda" href="' . $_SERVER['PHP_SELF'] . '?action=classify&token=' . newToken() . '&id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a> ';
159
            }
160
            $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, 0, 0, 1, '', 'maxwidth300');
161
        } else {
162
            if (!empty($object->fk_project)) {
163
                $proj = new Project($db);
164
                $proj->fetch($object->fk_project);
165
                $morehtmlref .= $proj->getNomUrl(1);
166
                if ($proj->title) {
167
                    $morehtmlref .= '<span class="opacitymedium"> - ' . dol_escape_htmltag($proj->title) . '</span>';
168
                }
169
            }
170
        }
171
    }
172
    $morehtmlref .= '</div>';
173
174
175
    dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'none', $morehtmlref);
176
177
178
    print '<div class="fichecenter">';
179
    print '<div class="underbanner clearboth"></div>';
180
181
    print '<table class="border tableforfield centpercent">';
182
    print '<tr><td class="titlefield">' . $langs->trans("NbOfAttachedFiles") . '</td><td colspan="3">' . count($filearray) . '</td></tr>';
183
    print '<tr><td>' . $langs->trans("TotalSizeOfAttachedFiles") . '</td><td colspan="3">' . dol_print_size($totalsize, 1, 1) . '</td></tr>';
184
    print '</table>';
185
186
    print '</div>';
187
188
    print dol_get_fiche_end();
189
190
    $modulepart = 'contract';
191
    $permissiontoadd = $user->hasRight('contrat', 'creer');
192
    $permtoedit = $user->hasRight('contrat', 'creer');
193
    $param = '&id=' . $object->id;
194
    include DOL_DOCUMENT_ROOT . '/core/tpl/document_actions_post_headers.tpl.php';
195
} else {
196
    print $langs->trans("ErrorUnknown");
197
}
198
199
200
ViewMain::llxFooter();
201
$db->close();
202