Completed
Push — master ( 6abb53...f63f4b )
by Laurent
02:02
created

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
/* Copyright (C) 2007-2015 Laurent Destailleur  <[email protected]>
3
 * Copyright (C) ---Put here your own copyright and developer email---
4
 *
5
 * This program is free software; you can redistribute it and/or modify
6
 * it under the terms of the GNU General Public License as published by
7
 * the Free Software Foundation; either version 3 of the License, or
8
 * (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17
 */
18
19
/**
20
 *    \file       flightlog/bbcvols_card.php
21
 *        \ingroup    flightlog
22
 *        \brief      This file is an example of a php page
23
 *                    Initialy built by build_class_from_table on 2017-02-09 11:10
24
 */
25
26
// Change this following line to use the correct relative path (../, ../../, etc)
27
$res = 0;
28
if (!$res && file_exists("../main.inc.php")) {
29
    $res = @include '../main.inc.php';
30
}                    // to work if your module directory is into dolibarr root htdocs directory
31
if (!$res && file_exists("../../main.inc.php")) {
32
    $res = @include '../../main.inc.php';
33
}            // to work if your module directory is into a subdir of root htdocs directory
34
if (!$res && file_exists("../../../dolibarr/htdocs/main.inc.php")) {
35
    $res = @include '../../../dolibarr/htdocs/main.inc.php';
36
}     // Used on dev env only
37
if (!$res && file_exists("../../../../dolibarr/htdocs/main.inc.php")) {
38
    $res = @include '../../../../dolibarr/htdocs/main.inc.php';
39
}   // Used on dev env only
40
if (!$res) {
41
    die("Include of main fails");
42
}
43
// Change this following line to use the correct relative path from htdocs
44
include_once(DOL_DOCUMENT_ROOT . '/core/class/html.formcompany.class.php');
45
46
dol_include_once('/flightlog/class/bbcvols.class.php');
47
dol_include_once('/flightlog/class/bbctypes.class.php');
48
dol_include_once('/flightlog/lib/flightLog.lib.php');
49
dol_include_once('/flightlog/lib/card.lib.php');
50
dol_include_once('/flightlog/lib/PilotService.php');
51
dol_include_once('/flightBalloon/bbc_ballons.class.php');
52
dol_include_once('/user/class/usergroup.class.php');
53
54
global $langs, $user;
55
56
// Load traductions files requiredby by page
57
$langs->load("mymodule@flightlog");
58
$langs->load("other");
59
60
// Get parameters
61
$id = GETPOST('id', 'int') ?: GETPOST('idBBC_vols', 'int');
62
$action = GETPOST('action', 'alpha');
63
$cancel = GETPOST('cancel');
64
$backtopage = GETPOST('backtopage');
65
$myparam = GETPOST('myparam', 'alpha');
66
67
$isAllowedEdit = ($user->rights->flightlog->vol->edit || ($user->rights->flightlog->vol->add && $object->fk_pilot == $user->id));
68
$isAllowedDelete = ($user->rights->flightlog->vol->delete || ($user->rights->flightlog->vol->add && $object->fk_pilot == $user->id && !$object->is_facture));
69
$permissiondellink=$user->rights->flightlog->vol->financial;
70
71
$search_idBBC_vols = GETPOST('search_idBBC_vols', 'int');
72
$search_lieuD = GETPOST('search_lieuD', 'alpha');
73
$search_lieuA = GETPOST('search_lieuA', 'alpha');
74
$search_heureD = GETPOST('search_heureD', 'alpha');
75
$search_heureA = GETPOST('search_heureA', 'alpha');
76
$search_BBC_ballons_idBBC_ballons = GETPOST('search_BBC_ballons_idBBC_ballons', 'int');
77
$search_nbrPax = GETPOST('search_nbrPax', 'int');
78
$search_remarque = GETPOST('search_remarque', 'alpha');
79
$search_incidents = GETPOST('search_incidents', 'alpha');
80
$search_fk_type = GETPOST('search_fk_type', 'int');
81
$search_fk_pilot = GETPOST('search_fk_pilot', 'int');
82
$search_fk_organisateur = GETPOST('search_fk_organisateur', 'int');
83
$search_is_facture = GETPOST('search_is_facture', 'int');
84
$search_kilometers = GETPOST('search_kilometers', 'int');
85
$search_cost = GETPOST('search_cost', 'alpha');
86
$search_fk_receiver = GETPOST('search_fk_receiver', 'int');
87
$search_justif_kilometers = GETPOST('search_justif_kilometers', 'alpha');
88
89
$pageTitle = "Fiche vol " . $id;
90
91
if (!$user->rights->flightlog->vol->access) {
92
    accessforbidden($langs->trans("Tu n'as pas accès au vol"));
93
}
94
95
if (empty($action) && empty($id) && empty($ref)) {
96
    $action = 'view';
97
}
98
99
$object = new Bbcvols($db);
100
$extrafields = new ExtraFields($db);
101
102
$receiver = new User($db);
103
104
$pilotService = new PilotService($db);
105
$pilot = new User($db);
106
107
$organisator = new User($db);
108
109
$flightType = new Bbctypes($db);
110
$balloon = new Bbc_ballons($db);
111
112
// fetch optionals attributes and labels
113
$extralabels = $extrafields->fetch_name_optionals_label($object->table_element);
114
115
// Load object
116
include DOL_DOCUMENT_ROOT . '/core/actions_fetchobject.inc.php';  // Must be include, not include_once  // Must be include, not include_once. Include fetch and fetch_thirdparty but not fetch_optionals
117
include DOL_DOCUMENT_ROOT.'/core/actions_dellink.inc.php';
118
119
// Initialize technical object to manage hooks of modules. Note that conf->hooks_modules contains array array
120
$hookmanager->initHooks(array('bbcvols'));
121
$object->ref = $object->idBBC_vols;
122
$receiver->fetch($object->fk_receiver);
123
$pilot->fetch($object->fk_pilot);
124
$organisator->fetch($object->fk_organisateur);
125
$flightType->fetch($object->fk_type);
126
$balloon->fetch($object->BBC_ballons_idBBC_ballons);
127
128
129
if (($action == "update" || $action == "edit") && !($user->rights->flightlog->vol->edit || ($user->rights->flightlog->vol->add && $object->fk_pilot == $user->id))) {
130
    setEventMessage("Ceci n'est pas un de tes vols tu ne peux l'editer ! ", 'errors');
131
    $action = 'view';
132
}
133
134
/*******************************************************************
135
 * ACTIONS
136
 *
137
 * Put here all code to do according to value of "action" parameter
138
 ********************************************************************/
139
140
$parameters = array();
141
$reshook = $hookmanager->executeHooks('doActions', $parameters, $object,
142
    $action);    // Note that $action and $object may have been modified by some hooks
143
if ($reshook < 0) {
144
    setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
145
}
146
147
if (empty($reshook)) {
148
149
    // Action to add record
150
    if ($action == 'add') {
151
152
        if (GETPOST('cancel')) {
153
            $urltogo = $backtopage ? $backtopage : dol_buildpath('/flightlog/list.php', 1);
154
            header("Location: " . $urltogo);
155
            exit;
156
        }
157
158
        $error = 0;
159
160
        /* object_prop_getpost_prop */
161
162
        $object->idBBC_vols = GETPOST('idBBC_vols', 'int');
163
        $object->lieuD = GETPOST('lieuD', 'alpha');
164
        $object->lieuA = GETPOST('lieuA', 'alpha');
165
        $object->heureD = GETPOST('heureD', 'alpha');
166
        $object->heureA = GETPOST('heureA', 'alpha');
167
        $object->BBC_ballons_idBBC_ballons = GETPOST('BBC_ballons_idBBC_ballons', 'int');
168
        $object->nbrPax = GETPOST('nbrPax', 'alpha');
169
        $object->remarque = GETPOST('remarque', 'alpha');
170
        $object->incidents = GETPOST('incidents', 'alpha');
171
        $object->fk_type = GETPOST('fk_type', 'int');
172
        $object->fk_pilot = GETPOST('fk_pilot', 'int');
173
        $object->fk_organisateur = GETPOST('fk_organisateur', 'int');
174
        $object->is_facture = GETPOST('is_facture', 'int');
175
        $object->kilometers = GETPOST('kilometers', 'int');
176
        $object->cost = GETPOST('cost', 'alpha');
177
        $object->fk_receiver = GETPOST('fk_receiver', 'int');
178
        $object->justif_kilometers = GETPOST('justif_kilometers', 'alpha');
179
180
181 View Code Duplication
        if (empty($object->idBBC_vols)) {
0 ignored issues
show
This code seems to be duplicated across your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
182
            $error++;
183
            setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("idBBC_vols")), null,
184
                'errors');
185
        }
186
187
        if (!$error) {
188
            $result = $object->create($user);
189
            if ($result > 0) {
190
                // Creation OK
191
                $urltogo = $backtopage ? $backtopage : dol_buildpath('/flightlog/list.php', 1);
192
                header("Location: " . $urltogo);
193
                exit;
194
            }
195
            {
196
                // Creation KO
197 View Code Duplication
                if (!empty($object->errors)) {
0 ignored issues
show
This code seems to be duplicated across your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
198
                    setEventMessages(null, $object->errors, 'errors');
199
                } else {
200
                    setEventMessages($object->error, null, 'errors');
201
                }
202
                $action = 'create';
203
            }
204
        } else {
205
            $action = 'create';
206
        }
207
    }
208
209
    // Action to update record
210
    if ($action == 'update') {
211
        $error = 0;
212
213
        $object->date = dol_mktime(12, 0, 0, GETPOST("remonth"), GETPOST("reday"), GETPOST("reyear"));
214
        $object->idBBC_vols = GETPOST('idBBC_vols', 'int');
215
        $object->id = $object->idBBC_vols;
216
        $object->lieuD = GETPOST('lieuD', 'alpha');
217
        $object->lieuA = GETPOST('lieuA', 'alpha');
218
        $object->heureD = GETPOST('heureD_h', 'int') . ":" . GETPOST('heureD_m', 'int') . ":00";
219
        $object->heureA = GETPOST('heureA_h', 'int') . ":" . GETPOST('heureA_m', 'int') . ":00";
220
        $object->BBC_ballons_idBBC_ballons = GETPOST('BBC_ballons_idBBC_ballons', 'int');
221
        $object->nbrPax = GETPOST('nbrPax', 'alpha');
222
        $object->remarque = GETPOST('remarque', 'alpha');
223
        $object->incidents = GETPOST('incidents', 'alpha');
224
        $object->fk_type = GETPOST('fk_type', 'int');
225
        $object->fk_pilot = GETPOST('fk_pilot', 'int');
226
        $object->fk_organisateur = GETPOST('fk_organisateur', 'int');
227
        $object->kilometers = GETPOST('kilometers', 'int') ?: $object->kilometers;
228
        $object->cost = GETPOST('cost', 'alpha') ?: $object->cost;
229
        $object->fk_receiver = GETPOST('fk_receiver', 'int') ?: $object->fk_receiver;
230
        $object->justif_kilometers = GETPOST('justif_kilometers', 'alpha') ?: $object->justif_kilometers;
231
232
233
        //validation
234 View Code Duplication
        if (empty($object->idBBC_vols)) {
0 ignored issues
show
This code seems to be duplicated across your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
235
            $error++;
236
            setEventMessages($langs->transnoentitiesnoconv("ErrorFieldRequired",
237
                $langs->transnoentitiesnoconv("idBBC_vols")),
238
                null, 'errors');
239
        }
240
241
        if (!dol_validElement($object->lieuD)) {
242
            $error++;
243
            setEventMessage("Erreur le champ : lieu de décollage", 'errors');
244
        }
245
246
        if (!dol_validElement($object->lieuA)) {
247
            $error++;
248
            setEventMessage("Erreur le champ : lieu d'atterissage", 'errors');
249
        }
250
251
        $dateD = date_create_from_format("H:i:s", $object->heureD);
252
        $dateA = date_create_from_format("H:i:s", $object->heureA);
253
        if ($dateA <= $dateD) {
254
            $error++;
255
            setEventMessage("Erreur avec les heures de vol", 'errors');
256
        }
257
258
        if (!is_numeric($object->nbrPax) || $object->nbrPax < 0) {
259
            $error++;
260
            setEventMessage("Erreur le champ : nombre de passagers", 'errors');
261
        }
262
263
        if (!$pilotService->isPilot($object->fk_pilot)) {
264
            $error++;
265
            setEventMessage($langs->trans("Le pilote selectionne n'est pas pilote", 'errors'));
266
        }
267
268
        // action : edit
269
        if (!$error) {
270
            $result = $object->update($user);
271
            if ($result > 0) {
272
                $action = 'view';
273
274
                $receiver->fetch($object->fk_receiver);
275
                $pilot->fetch($object->fk_pilot);
276
                $organisator->fetch($object->fk_organisateur);
277
                $flightType->fetch($object->fk_type);
278
                $balloon->fetch($object->BBC_ballons_idBBC_ballons);
279
280 View Code Duplication
            } else {
0 ignored issues
show
This code seems to be duplicated across your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
281
                // Creation KO
282
                if (!empty($object->errors)) {
283
                    setEventMessages(null, $object->errors, 'errors');
284
                } else {
285
                    setEventMessages($object->error, null, 'errors');
286
                }
287
                $action = 'edit';
288
            }
289
        } else {
290
            $action = 'edit';
291
        }
292
    }
293
294
    // Action to delete
295
    if ($action == 'confirm_delete') {
296
        $result = $object->delete($user);
297
        if ($result > 0) {
298
            // Delete OK
299
            setEventMessages("RecordDeleted", null, 'mesgs');
300
            header("Location: " . dol_buildpath('/flightlog/list.php', 1));
301
            exit;
302 View Code Duplication
        } else {
0 ignored issues
show
This code seems to be duplicated across your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
303
            if (!empty($object->errors)) {
304
                setEventMessages(null, $object->errors, 'errors');
305
            } else {
306
                setEventMessages($object->error, null, 'errors');
307
            }
308
        }
309
    }
310
}
311
312
313
/***************************************************
314
 * VIEW
315
 *
316
 * Put here all code to build page
317
 ****************************************************/
318
319
llxHeader('', $pageTitle, '');
320
321
$form = new Form($db);
322
323
324
// Put here content of your page
325
326
print '<script type="text/javascript" language="javascript">
327
jQuery(document).ready(function() {
328
	function init_myfunc()
329
	{
330
		jQuery("#myid").removeAttr(\'disabled\');
331
		jQuery("#myid").attr(\'disabled\',\'disabled\');
332
	}
333
	init_myfunc();
334
	jQuery("#mybutton").click(function() {
335
		init_myfunc();
336
	});
337
});
338
</script>';
339
340
341
// Part to create
342
if ($action == 'create') {
343
    print load_fiche_titre($langs->trans("NewMyModule"));
344
345
    print '<form method="POST" action="' . $_SERVER["PHP_SELF"] . '">';
346
    print '<input type="hidden" name="action" value="add">';
347
    print '<input type="hidden" name="backtopage" value="' . $backtopage . '">';
348
349
    dol_fiche_head();
350
351
    print '<table class="border centpercent">' . "\n";
352
    print '<tr><td class="fieldrequired">' . $langs->trans("FieldidBBC_vols") . '</td><td><input class="flat" type="text" name="idBBC_vols" value="' . GETPOST('idBBC_vols') . '"></td></tr>';
353
    print '<tr><td class="fieldrequired">' . $langs->trans("FieldlieuD") . '</td><td><input class="flat" type="text" name="lieuD" value="' . GETPOST('lieuD') . '"></td></tr>';
354
    print '<tr><td class="fieldrequired">' . $langs->trans("FieldlieuA") . '</td><td><input class="flat" type="text" name="lieuA" value="' . GETPOST('lieuA') . '"></td></tr>';
355
    print '<tr><td class="fieldrequired">' . $langs->trans("FieldheureD") . '</td><td><input class="flat" type="text" name="heureD" value="' . GETPOST('heureD') . '"></td></tr>';
356
    print '<tr><td class="fieldrequired">' . $langs->trans("FieldheureA") . '</td><td><input class="flat" type="text" name="heureA" value="' . GETPOST('heureA') . '"></td></tr>';
357
    print '<tr><td class="fieldrequired">' . $langs->trans("FieldBBC_ballons_idBBC_ballons") . '</td><td><input class="flat" type="text" name="BBC_ballons_idBBC_ballons" value="' . GETPOST('BBC_ballons_idBBC_ballons') . '"></td></tr>';
358
    print '<tr><td class="fieldrequired">' . $langs->trans("FieldnbrPax") . '</td><td><input class="flat" type="text" name="nbrPax" value="' . GETPOST('nbrPax') . '"></td></tr>';
359
    print '<tr><td class="fieldrequired">' . $langs->trans("Fieldremarque") . '</td><td><input class="flat" type="text" name="remarque" value="' . GETPOST('remarque') . '"></td></tr>';
360
    print '<tr><td class="fieldrequired">' . $langs->trans("Fieldincidents") . '</td><td><input class="flat" type="text" name="incidents" value="' . GETPOST('incidents') . '"></td></tr>';
361
    print '<tr><td class="fieldrequired">' . $langs->trans("Fieldfk_type") . '</td><td><input class="flat" type="text" name="fk_type" value="' . GETPOST('fk_type') . '"></td></tr>';
362
    print '<tr><td class="fieldrequired">' . $langs->trans("Fieldfk_pilot") . '</td><td><input class="flat" type="text" name="fk_pilot" value="' . GETPOST('fk_pilot') . '"></td></tr>';
363
    print '<tr><td class="fieldrequired">' . $langs->trans("Fieldfk_organisateur") . '</td><td><input class="flat" type="text" name="fk_organisateur" value="' . GETPOST('fk_organisateur') . '"></td></tr>';
364
    print '<tr><td class="fieldrequired">' . $langs->trans("Fieldis_facture") . '</td><td><input class="flat" type="text" name="is_facture" value="' . GETPOST('is_facture') . '"></td></tr>';
365
    print '<tr><td class="fieldrequired">' . $langs->trans("Fieldkilometers") . '</td><td><input class="flat" type="text" name="kilometers" value="' . GETPOST('kilometers') . '"></td></tr>';
366
    print '<tr><td class="fieldrequired">' . $langs->trans("Fieldcost") . '</td><td><input class="flat" type="text" name="cost" value="' . GETPOST('cost') . '"></td></tr>';
367
    print '<tr><td class="fieldrequired">' . $langs->trans("Fieldfk_receiver") . '</td><td><input class="flat" type="text" name="fk_receiver" value="' . GETPOST('fk_receiver') . '"></td></tr>';
368
    print '<tr><td class="fieldrequired">' . $langs->trans("Fieldjustif_kilometers") . '</td><td><input class="flat" type="text" name="justif_kilometers" value="' . GETPOST('justif_kilometers') . '"></td></tr>';
369
370
    print '</table>' . "\n";
371
372
    dol_fiche_end();
373
374
    print '<div class="center"><input type="submit" class="button" name="add" value="' . $langs->trans("Create") . '"> &nbsp; <input type="submit" class="button" name="cancel" value="' . $langs->trans("Cancel") . '"></div>';
375
376
    print '</form>';
377
}
378
379
380
// Part to edit record
381
if (($id || $ref) && $action == 'edit') {
382
    print load_fiche_titre($langs->trans("MyModule"));
383
384
    print '<form method="POST" action="' . $_SERVER["PHP_SELF"] . '">';
385
    print '<input type="hidden" name="action" value="update">';
386
    print '<input type="hidden" name="backtopage" value="' . $backtopage . '">';
387
    print '<input type="hidden" name="idBBC_vols" value="' . $object->id . '">';
388
389
    dol_fiche_head();
390
391
    print '<table class="border centpercent">' . "\n";
392
393
    print "<tr><td class=\"fieldrequired\">" . $langs->trans("FieldDate") . "</td><td>";
394
    print $form->select_date($object->date, '', '', '', '', 'add', 1, 1);
395
    print "</td></tr>";
396
    print "<tr><td class=\"fieldrequired\">" . $langs->trans("FieldlieuD") . "</td><td><input class=\"flat\" type=\"text\" name=\"lieuD\" value=\"" . $object->lieuD . "\"></td></tr>";
397
    print "<tr><td class=\"fieldrequired\">" . $langs->trans("FieldlieuA") . "</td><td><input class=\"flat\" type=\"text\" name=\"lieuA\" value=\"" . $object->lieuA . "\"></td></tr>";
398
    print "<tr><td class=\"fieldrequired\">" . $langs->trans("FieldheureD") . "</td><td><input class=\"flat\" min=\"0\" max=\"23\" type=\"number\" name=\"heureD_h\" value=\"" . explode(":",
399
            $object->heureD)[0] . "\">h<input class=\"flat\" type=\"number\" min=\"0\" max=\"59\" name=\"heureD_m\" value=\"" . explode(":",
400
            $object->heureD)[1] . "\"></td></tr>";
401
    print "<tr><td class=\"fieldrequired\">" . $langs->trans("FieldheureA") . "</td><td><input class=\"flat\" type=\"number\" min=\"0\" max=\"23\" name=\"heureA_h\" value=\"" . explode(":",
402
            $object->heureA)[0] . "\">h<input class=\"flat\" type=\"number\" min=\"0\" max=\"59\" name=\"heureA_m\" value=\"" . explode(":",
403
            $object->heureA)[1] . "\"></td></tr>";
404
    print "<tr><td class=\"fieldrequired\">" . $langs->trans("FieldBBC_ballons_idBBC_ballons") . "</td><td>";
405
    select_balloons($object->BBC_ballons_idBBC_ballons, "BBC_ballons_idBBC_ballons");
406
    print "</td></tr>";
407
    print "<tr><td class=\"fieldrequired\">" . $langs->trans("FieldnbrPax") . "</td><td><input class=\"flat\" type=\"number\" name=\"nbrPax\" value=\"" . $object->nbrPax . "\"></td></tr>";
408
    print "<tr><td class=\"fieldrequired\">" . $langs->trans("Fieldremarque") . "</td><td><textarea class=\"flat\" name=\"remarque\">" . $object->remarque . "</textarea></td></tr>";
409
    print "<tr><td class=\"fieldrequired\">" . $langs->trans("Fieldincidents") . "</td><td><textarea class=\"flat\" name=\"incidents\">" . $object->incidents . "</textarea></td></tr>";
410
    print "<tr><td class=\"fieldrequired\">" . $langs->trans("Fieldfk_type") . "</td><td>";
411
    select_flight_type($object->fk_type, "fk_type");
412
    print "</td></tr>";
413
    print "<tr><td class=\"fieldrequired\">" . $langs->trans("Fieldfk_pilot") . "</td><td>" . $form->select_dolusers($object->fk_pilot,
414
            "fk_pilot", 0, '', 0, '', '', 0, 0, 0, '', 0, '', '', 1) . "</td></tr>";
415
    print "<tr><td class=\"fieldrequired\">" . $langs->trans("Fieldfk_organisateur") . "</td><td>" . $form->select_dolusers($object->fk_organisateur,
416
            "fk_organisateur") . "</td></tr>";
417
418
    if ($user->rights->flightlog->vol->financial || $user->id == $object->fk_pilot) {
419
        print "<tr><td class=\"fieldrequired\">" . $langs->trans("Fieldkilometers") . "</td><td><input class=\"flat\" type=\"number\" name=\"kilometers\" value=\"" . $object->kilometers . "\"></td></tr>";
420
        print "<tr><td class=\"fieldrequired\">" . $langs->trans("Fieldcost") . "</td><td><input class=\"flat\" type=\"number\" name=\"cost\" value=\"" . $object->cost . "\"></td></tr>";
421
        print "<tr><td class=\"fieldrequired\">" . $langs->trans("Fieldfk_receiver") . "</td><td>" . $form->select_dolusers($object->fk_receiver,
422
                "fk_receiver", true) . "</td></tr>";
423
        print "<tr><td class=\"fieldrequired\">" . $langs->trans("Fieldjustif_kilometers") . "</td><td><textarea class=\"flat\" name=\"justif_kilometers\">" . $object->justif_kilometers . "</textarea></td></tr>";
424
    }
425
    print '</table>';
426
427
    dol_fiche_end();
428
429
    print '<div class="center"><input type="submit" class="button" name="save" value="' . $langs->trans("Save") . '">';
430
    print ' &nbsp; <input type="submit" class="button" name="cancel" value="' . $langs->trans("Cancel") . '">';
431
    print '</div>';
432
433
    print '</form>';
434
}
435
436
437
// Part to show record
438
if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'create'))) {
439
    $res = $object->fetch_optionals($object->id, $extralabels);
440
441
    /*
442
             * Show tabs
443
             */
444
    $head = prepareFlightTabs($object);
445
446
    dol_fiche_head($head, 'general', $langs->trans("Vol"));
447
448
    $linkback = '<a href="' . DOL_URL_ROOT . '/flightlog/list.php">' . $langs->trans("BackToList") . '</a>';
449
    print $form->showrefnav($object, "idBBC_vols", $linkback, true, "idBBC_vols");
450
451
    if ($action == 'delete') {
452
        $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('DeleteMyOjbect'),
453
            $langs->trans('ConfirmDeleteMyObject'), 'confirm_delete', '', 0, 1);
454
        print $formconfirm;
455
    }
456
457
    print '<table class="border centpercent">' . "\n";
458
459
460
    print '<tr><td class="fieldrequired">' . $langs->trans("FieldidBBC_vols") . '</td><td>' . $object->idBBC_vols . '</td></tr>';
461
    print '<tr><td class="fieldrequired">' . $langs->trans("Fielddate") . '</td><td>' . dol_print_date($object->date) . '</td></tr>';
462
    print '<tr><td class="fieldrequired">' . $langs->trans("FieldlieuD") . '</td><td>' . $object->lieuD . '</td></tr>';
463
    print '<tr><td class="fieldrequired">' . $langs->trans("FieldlieuA") . '</td><td>' . $object->lieuA . '</td></tr>';
464
    print '<tr><td class="fieldrequired">' . $langs->trans("FieldheureD") . '</td><td>' . $object->heureD . '</td></tr>';
465
    print '<tr><td class="fieldrequired">' . $langs->trans("FieldheureA") . '</td><td>' . $object->heureA . '</td></tr>';
466
    print '<tr><td class="fieldrequired">' . $langs->trans("FieldBBC_ballons_idBBC_ballons") . '</td><td>' . $balloon->immat . '</td></tr>';
467
    print '<tr><td class="fieldrequired">' . $langs->trans("FieldnbrPax") . '</td><td>' . $object->nbrPax . '</td></tr>';
468
    print '<tr><td class="fieldrequired">' . $langs->trans("Fieldfk_type") . '</td><td>' . $object->fk_type . '</td></tr>';
469
    print '<tr><td class="fieldrequired">' . $langs->trans("Fieldfk_pilot") . '</td><td>' . $pilot->getNomUrl(1) . '</td></tr>';
470
    print '<tr><td class="fieldrequired">' . $langs->trans("Fieldfk_organisateur") . '</td><td>' . $organisator->getNomUrl(1) . '</td></tr>';
471
472
    print '</table>';
473
474
    dol_fiche_end();
475
476
    // Buttons
477
    print '<div class="tabsAction">' . "\n";
478
    $parameters = array();
479
    $reshook = $hookmanager->executeHooks('addMoreActionsButtons', $parameters, $object,
480
        $action);    // Note that $action and $object may have been modified by hook
481
    if ($reshook < 0) {
482
        setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
483
    }
484
485 View Code Duplication
    if ($user->rights->flightlog->vol->edit || ($user->rights->flightlog->vol->add && $object->fk_pilot == $user->id)) {
0 ignored issues
show
This code seems to be duplicated across your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
486
        print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&amp;action=edit">' . $langs->trans("Modify") . '</a></div>' . "\n";
487
    }
488
489 View Code Duplication
    if ($user->rights->flightlog->vol->delete || ($user->rights->flightlog->vol->add && $object->fk_pilot == $user->id && !$object->is_facture)) {
0 ignored issues
show
This code seems to be duplicated across your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
490
        print '<div class="inline-block divButAction"><a class="butActionDelete" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&amp;action=delete">' . $langs->trans('Delete') . '</a></div>' . "\n";
491
    }
492
493 View Code Duplication
    if($user->rights->flightlog->vol->financial && $object->fk_type == 2 && !$object->hasFacture()){
0 ignored issues
show
This code seems to be duplicated across your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
494
        print '<div class="inline-block divButAction"><a class="butAction" href="' . DOL_URL_ROOT . '/flightlog/facture.php?id=' . $object->id.'">' . $langs->trans("Facturer") . '</a></div>' . "\n";
495
    }
496
497
    print '</div>' . "\n";
498
499
    if($user->rights->flightlog->vol->financial){
500
        print '<div class="fichecenter"><div class="fichehalfleft">';
501
        $form->showLinkedObjectBlock($object);
502
        print '</div></div>';
503
    }
504
505
}
506
507
508
// End of page
509
llxFooter();
510
$db->close();
511