Completed
Push — master ( 0cae82...3ae2ae )
by Laurent
02:11
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/class/bbc_ballons.class.php');
52
dol_include_once('/user/class/usergroup.class.php');
53
54
global $langs, $user, $conf;
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
192
                include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
193
                $interface = new Interfaces($db);
194
                $result = $interface->run_triggers('BBC_FLIGHT_LOG_ADD_FLIGHT', $object, $user, $langs, $conf);
195
196
                $urltogo = $backtopage ? $backtopage : dol_buildpath('/flightlog/list.php', 1);
197
                header("Location: " . $urltogo);
198
                exit;
199
            }
200 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...
201
                // Creation KO
202
                if (!empty($object->errors)) {
203
                    setEventMessages(null, $object->errors, 'errors');
204
                } else {
205
                    setEventMessages($object->error, null, 'errors');
206
                }
207
                $action = 'create';
208
            }
209
        } else {
210
            $action = 'create';
211
        }
212
    }
213
214
    // Action to update record
215
    if ($action == 'update') {
216
        $error = 0;
217
218
        $object->date = dol_mktime(12, 0, 0, GETPOST("remonth"), GETPOST("reday"), GETPOST("reyear"));
219
        $object->idBBC_vols = GETPOST('idBBC_vols', 'int');
220
        $object->id = $object->idBBC_vols;
221
        $object->lieuD = GETPOST('lieuD', 'alpha');
222
        $object->lieuA = GETPOST('lieuA', 'alpha');
223
        $object->heureD = GETPOST('heureD_h', 'int') . ":" . GETPOST('heureD_m', 'int') . ":00";
224
        $object->heureA = GETPOST('heureA_h', 'int') . ":" . GETPOST('heureA_m', 'int') . ":00";
225
        $object->BBC_ballons_idBBC_ballons = GETPOST('BBC_ballons_idBBC_ballons', 'int');
226
        $object->nbrPax = GETPOST('nbrPax', 'alpha');
227
        $object->remarque = GETPOST('remarque', 'alpha');
228
        $object->incidents = GETPOST('incidents', 'alpha');
229
        $object->fk_type = GETPOST('fk_type', 'int');
230
        $object->fk_pilot = GETPOST('fk_pilot', 'int');
231
        $object->fk_organisateur = GETPOST('fk_organisateur', 'int');
232
        $object->kilometers = GETPOST('kilometers', 'int') ?: $object->kilometers;
233
        $object->cost = GETPOST('cost', 'alpha') ?: $object->cost;
234
        $object->fk_receiver = GETPOST('fk_receiver', 'int') ?: $object->fk_receiver;
235
        $object->justif_kilometers = GETPOST('justif_kilometers', 'alpha') ?: $object->justif_kilometers;
236
237
238
        //validation
239 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...
240
            $error++;
241
            setEventMessages($langs->transnoentitiesnoconv("ErrorFieldRequired",
242
                $langs->transnoentitiesnoconv("idBBC_vols")),
243
                null, 'errors');
244
        }
245
246
        if (!dol_validElement($object->lieuD)) {
247
            $error++;
248
            setEventMessage("Erreur le champ : lieu de décollage", 'errors');
249
        }
250
251
        if (!dol_validElement($object->lieuA)) {
252
            $error++;
253
            setEventMessage("Erreur le champ : lieu d'atterissage", 'errors');
254
        }
255
256
        $dateD = date_create_from_format("H:i:s", $object->heureD);
257
        $dateA = date_create_from_format("H:i:s", $object->heureA);
258
        if ($dateA <= $dateD) {
259
            $error++;
260
            setEventMessage("Erreur avec les heures de vol", 'errors');
261
        }
262
263
        if (!is_numeric($object->nbrPax) || $object->nbrPax < 0) {
264
            $error++;
265
            setEventMessage("Erreur le champ : nombre de passagers", 'errors');
266
        }
267
268
        if (!$pilotService->isPilot($object->fk_pilot)) {
269
            $error++;
270
            setEventMessage($langs->trans("Le pilote selectionne n'est pas pilote", 'errors'));
271
        }
272
273
        // action : edit
274
        if (!$error) {
275
            $result = $object->update($user);
276
            if ($result > 0) {
277
                $action = 'view';
278
279
                $receiver->fetch($object->fk_receiver);
280
                $pilot->fetch($object->fk_pilot);
281
                $organisator->fetch($object->fk_organisateur);
282
                $flightType->fetch($object->fk_type);
283
                $balloon->fetch($object->BBC_ballons_idBBC_ballons);
284
285 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...
286
                // Creation KO
287
                if (!empty($object->errors)) {
288
                    setEventMessages(null, $object->errors, 'errors');
289
                } else {
290
                    setEventMessages($object->error, null, 'errors');
291
                }
292
                $action = 'edit';
293
            }
294
        } else {
295
            $action = 'edit';
296
        }
297
    }
298
299
    // Action to delete
300
    if ($action == 'confirm_delete') {
301
        $result = $object->delete($user);
302
        if ($result > 0) {
303
            // Delete OK
304
            setEventMessages("RecordDeleted", null, 'mesgs');
305
            header("Location: " . dol_buildpath('/flightlog/list.php', 1));
306
            exit;
307 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...
308
            if (!empty($object->errors)) {
309
                setEventMessages(null, $object->errors, 'errors');
310
            } else {
311
                setEventMessages($object->error, null, 'errors');
312
            }
313
        }
314
    }
315
}
316
317
318
/***************************************************
319
 * VIEW
320
 *
321
 * Put here all code to build page
322
 ****************************************************/
323
324
llxHeader('', $pageTitle, '');
325
326
$form = new Form($db);
327
328
// Put here content of your page
329
330
print '<script type="text/javascript" language="javascript">
331
jQuery(document).ready(function() {
332
	function init_myfunc()
333
	{
334
		jQuery("#myid").removeAttr(\'disabled\');
335
		jQuery("#myid").attr(\'disabled\',\'disabled\');
336
	}
337
	init_myfunc();
338
	jQuery("#mybutton").click(function() {
339
		init_myfunc();
340
	});
341
});
342
</script>';
343
344
345
// Part to create
346
if ($action == 'create') {
347
    print load_fiche_titre($langs->trans("NewMyModule"));
348
349
    print '<form method="POST" action="' . $_SERVER["PHP_SELF"] . '">';
350
    print '<input type="hidden" name="action" value="add">';
351
    print '<input type="hidden" name="backtopage" value="' . $backtopage . '">';
352
353
    dol_fiche_head();
354
355
    print '<table class="border centpercent">' . "\n";
356
    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>';
357
    print '<tr><td class="fieldrequired">' . $langs->trans("FieldlieuD") . '</td><td><input class="flat" type="text" name="lieuD" value="' . GETPOST('lieuD') . '"></td></tr>';
358
    print '<tr><td class="fieldrequired">' . $langs->trans("FieldlieuA") . '</td><td><input class="flat" type="text" name="lieuA" value="' . GETPOST('lieuA') . '"></td></tr>';
359
    print '<tr><td class="fieldrequired">' . $langs->trans("FieldheureD") . '</td><td><input class="flat" type="text" name="heureD" value="' . GETPOST('heureD') . '"></td></tr>';
360
    print '<tr><td class="fieldrequired">' . $langs->trans("FieldheureA") . '</td><td><input class="flat" type="text" name="heureA" value="' . GETPOST('heureA') . '"></td></tr>';
361
    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>';
362
    print '<tr><td class="fieldrequired">' . $langs->trans("FieldnbrPax") . '</td><td><input class="flat" type="text" name="nbrPax" value="' . GETPOST('nbrPax') . '"></td></tr>';
363
    print '<tr><td class="fieldrequired">' . $langs->trans("Fieldremarque") . '</td><td><input class="flat" type="text" name="remarque" value="' . GETPOST('remarque') . '"></td></tr>';
364
    print '<tr><td class="fieldrequired">' . $langs->trans("Fieldincidents") . '</td><td><input class="flat" type="text" name="incidents" value="' . GETPOST('incidents') . '"></td></tr>';
365
    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>';
366
    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>';
367
    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>';
368
    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>';
369
    print '<tr><td class="fieldrequired">' . $langs->trans("Fieldkilometers") . '</td><td><input class="flat" type="text" name="kilometers" value="' . GETPOST('kilometers') . '"></td></tr>';
370
    print '<tr><td class="fieldrequired">' . $langs->trans("Fieldcost") . '</td><td><input class="flat" type="text" name="cost" value="' . GETPOST('cost') . '"></td></tr>';
371
    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>';
372
    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>';
373
374
    print '</table>' . "\n";
375
376
    dol_fiche_end();
377
378
    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>';
379
380
    print '</form>';
381
}
382
383
384
// Part to edit record
385
if (($id || $ref) && $action == 'edit') {
386
    print load_fiche_titre($langs->trans("MyModule"));
387
388
    print '<form method="POST" action="' . $_SERVER["PHP_SELF"] . '">';
389
    print '<input type="hidden" name="action" value="update">';
390
    print '<input type="hidden" name="backtopage" value="' . $backtopage . '">';
391
    print '<input type="hidden" name="idBBC_vols" value="' . $object->id . '">';
392
393
    dol_fiche_head();
394
395
    print '<table class="border centpercent">' . "\n";
396
397
    print "<tr><td class=\"fieldrequired\">" . $langs->trans("FieldDate") . "</td><td>";
398
    print $form->select_date($object->date, '', '', '', '', 'add', 1, 1);
399
    print "</td></tr>";
400
    print "<tr><td class=\"fieldrequired\">" . $langs->trans("FieldlieuD") . "</td><td><input class=\"flat\" type=\"text\" name=\"lieuD\" value=\"" . $object->lieuD . "\"></td></tr>";
401
    print "<tr><td class=\"fieldrequired\">" . $langs->trans("FieldlieuA") . "</td><td><input class=\"flat\" type=\"text\" name=\"lieuA\" value=\"" . $object->lieuA . "\"></td></tr>";
402
    print "<tr><td class=\"fieldrequired\">" . $langs->trans("FieldheureD") . "</td><td><input class=\"flat\" min=\"0\" max=\"23\" type=\"number\" name=\"heureD_h\" value=\"" . explode(":",
403
            $object->heureD)[0] . "\">h<input class=\"flat\" type=\"number\" min=\"0\" max=\"59\" name=\"heureD_m\" value=\"" . explode(":",
404
            $object->heureD)[1] . "\"></td></tr>";
405
    print "<tr><td class=\"fieldrequired\">" . $langs->trans("FieldheureA") . "</td><td><input class=\"flat\" type=\"number\" min=\"0\" max=\"23\" name=\"heureA_h\" value=\"" . explode(":",
406
            $object->heureA)[0] . "\">h<input class=\"flat\" type=\"number\" min=\"0\" max=\"59\" name=\"heureA_m\" value=\"" . explode(":",
407
            $object->heureA)[1] . "\"></td></tr>";
408
    print "<tr><td class=\"fieldrequired\">" . $langs->trans("FieldBBC_ballons_idBBC_ballons") . "</td><td>";
409
    select_balloons($object->BBC_ballons_idBBC_ballons, "BBC_ballons_idBBC_ballons");
410
    print "</td></tr>";
411
    print "<tr><td class=\"fieldrequired\">" . $langs->trans("FieldnbrPax") . "</td><td><input class=\"flat\" type=\"number\" name=\"nbrPax\" value=\"" . $object->nbrPax . "\"></td></tr>";
412
    print "<tr><td class=\"fieldrequired\">" . $langs->trans("Fieldremarque") . "</td><td><textarea class=\"flat\" name=\"remarque\">" . $object->remarque . "</textarea></td></tr>";
413
    print "<tr><td class=\"fieldrequired\">" . $langs->trans("Fieldincidents") . "</td><td><textarea class=\"flat\" name=\"incidents\">" . $object->incidents . "</textarea></td></tr>";
414
    print "<tr><td class=\"fieldrequired\">" . $langs->trans("Fieldfk_type") . "</td><td>";
415
    select_flight_type($object->fk_type, "fk_type");
416
    print "</td></tr>";
417
    print "<tr><td class=\"fieldrequired\">" . $langs->trans("Fieldfk_pilot") . "</td><td>" . $form->select_dolusers($object->fk_pilot,
418
            "fk_pilot", 0, '', 0, '', '', 0, 0, 0, '', 0, '', '', 1) . "</td></tr>";
419
    print "<tr><td class=\"fieldrequired\">" . $langs->trans("Fieldfk_organisateur") . "</td><td>" . $form->select_dolusers($object->fk_organisateur,
420
            "fk_organisateur") . "</td></tr>";
421
422
    if ($user->rights->flightlog->vol->financial || $user->id == $object->fk_pilot) {
423
        print "<tr><td class=\"fieldrequired\">" . $langs->trans("Fieldkilometers") . "</td><td><input class=\"flat\" type=\"number\" name=\"kilometers\" value=\"" . $object->kilometers . "\"></td></tr>";
424
        print "<tr><td class=\"fieldrequired\">" . $langs->trans("Fieldcost") . "</td><td><input class=\"flat\" type=\"number\" name=\"cost\" value=\"" . $object->cost . "\"></td></tr>";
425
        print "<tr><td class=\"fieldrequired\">" . $langs->trans("Fieldfk_receiver") . "</td><td>" . $form->select_dolusers($object->fk_receiver,
426
                "fk_receiver", true) . "</td></tr>";
427
        print "<tr><td class=\"fieldrequired\">" . $langs->trans("Fieldjustif_kilometers") . "</td><td><textarea class=\"flat\" name=\"justif_kilometers\">" . $object->justif_kilometers . "</textarea></td></tr>";
428
    }
429
    print '</table>';
430
431
    dol_fiche_end();
432
433
    print '<div class="center"><input type="submit" class="button" name="save" value="' . $langs->trans("Save") . '">';
434
    print ' &nbsp; <input type="submit" class="button" name="cancel" value="' . $langs->trans("Cancel") . '">';
435
    print '</div>';
436
437
    print '</form>';
438
}
439
440
441
// Part to show record
442
if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'create'))) {
443
    $res = $object->fetch_optionals($object->id, $extralabels);
444
445
    /*
446
             * Show tabs
447
             */
448
    $head = prepareFlightTabs($object);
449
450
    dol_fiche_head($head, 'general', $langs->trans("Vol"));
451
452
    $linkback = '<a href="' . DOL_URL_ROOT . '/flightlog/list.php">' . $langs->trans("BackToList") . '</a>';
453
    print $form->showrefnav($object, "idBBC_vols", $linkback, true, "idBBC_vols");
454
455
    if ($action == 'delete') {
456
        $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('DeleteMyOjbect'),
457
            $langs->trans('ConfirmDeleteMyObject'), 'confirm_delete', '', 0, 1);
458
        print $formconfirm;
459
    }
460
461
    print '<table class="border centpercent">' . "\n";
462
463
464
    print '<tr><td class="fieldrequired">' . $langs->trans("FieldidBBC_vols") . '</td><td>' . $object->idBBC_vols . '</td></tr>';
465
    print '<tr><td class="fieldrequired">' . $langs->trans("Fielddate") . '</td><td>' . dol_print_date($object->date) . '</td></tr>';
466
    print '<tr><td class="fieldrequired">' . $langs->trans("FieldlieuD") . '</td><td>' . $object->lieuD . '</td></tr>';
467
    print '<tr><td class="fieldrequired">' . $langs->trans("FieldlieuA") . '</td><td>' . $object->lieuA . '</td></tr>';
468
    print '<tr><td class="fieldrequired">' . $langs->trans("FieldheureD") . '</td><td>' . $object->heureD . '</td></tr>';
469
    print '<tr><td class="fieldrequired">' . $langs->trans("FieldheureA") . '</td><td>' . $object->heureA . '</td></tr>';
470
    print '<tr><td class="fieldrequired">' . $langs->trans("FieldBBC_ballons_idBBC_ballons") . '</td><td>' . $balloon->immat . '</td></tr>';
471
    print '<tr><td class="fieldrequired">' . $langs->trans("FieldnbrPax") . '</td><td>' . $object->nbrPax . '</td></tr>';
472
    print '<tr><td class="fieldrequired">' . $langs->trans("Fieldfk_type") . '</td><td>' . $object->fk_type . '</td></tr>';
473
    print '<tr><td class="fieldrequired">' . $langs->trans("Fieldfk_pilot") . '</td><td>' . $pilot->getNomUrl(1) . '</td></tr>';
474
    print '<tr><td class="fieldrequired">' . $langs->trans("Fieldfk_organisateur") . '</td><td>' . $organisator->getNomUrl(1) . '</td></tr>';
475
476
    print '</table>';
477
478
    dol_fiche_end();
479
480
    // Buttons
481
    print '<div class="tabsAction">' . "\n";
482
    $parameters = array();
483
    $reshook = $hookmanager->executeHooks('addMoreActionsButtons', $parameters, $object,
484
        $action);    // Note that $action and $object may have been modified by hook
485
    if ($reshook < 0) {
486
        setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
487
    }
488
489 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...
490
        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";
491
    }
492
493 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...
494
        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";
495
    }
496
497 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...
498
        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";
499
    }
500
501
    print '</div>' . "\n";
502
503
    if($user->rights->flightlog->vol->financial){
504
        print '<div class="fichecenter"><div class="fichehalfleft">';
505
        $form->showLinkedObjectBlock($object);
506
        print '</div></div>';
507
    }
508
509
}
510
511
512
// End of page
513
llxFooter();
514
$db->close();
515