Completed
Push — master ( f63f4b...0cae82 )
by Laurent
01:38
created

modFlightLog::activateTriggers()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 2
nc 1
nop 0
dl 0
loc 4
rs 10
c 0
b 0
f 0
1
<?php
2
/* Copyright (C) 2003      Rodolphe Quiedeville <[email protected]>
3
 * Copyright (C) 2004-2015 Laurent Destailleur  <[email protected]>
4
 * Copyright (C) 2005-2016 Regis Houssin        <[email protected]>
5
 *
6
 * This program is free software; you can redistribute it and/or modify
7
 * it under the terms of the GNU General Public License as published by
8
 * the Free Software Foundation; either version 3 of the License, or
9
 * (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18
 */
19
20
/**
21
 *    \defgroup   mymodule     Module MyModule
22
 *  \brief      Example of a module descriptor.
23
 *                Such a file must be copied into htdocs/mymodule/core/modules directory.
24
 *  \file       htdocs/mymodule/core/modules/modMyModule.class.php
25
 *  \ingroup    mymodule
26
 *  \brief      Description and activation file for module MyModule
27
 */
28
include_once DOL_DOCUMENT_ROOT . '/core/modules/DolibarrModules.class.php';
29
30
31
/**
32
 *  Description and activation class for module MyModule
33
 */
34
class modFlightLog extends DolibarrModules
35
{
36
    const MENU_TYPE_LEFT = 'left';
37
    const MENU_TYPE_TOP = 'top';
38
39
    /**
40
     * @var array Indexed list of export IDs
41
     *
42
     */
43
    public $export_code = array();
44
45
    /**
46
     * @var array Indexed list of export names
47
     *
48
     */
49
    public $export_label = array();
50
51
    /**
52
     * @var array Indexed list of export enabling conditions
53
     *
54
     */
55
    public $export_enabled = array();
56
57
    /**
58
     * @var array Indexed list of export required permissions
59
     *
60
     */
61
    public $export_permission = array();
62
63
    /**
64
     * @var array Indexed list of export fields
65
     *
66
     */
67
    public $export_fields_array = array();
68
69
    /**
70
     * @var array Indexed list of export entities
71
     *
72
     */
73
    public $export_entities_array = array();
74
75
    /**
76
     * @var array Indexed list of export SQL queries start
77
     *
78
     */
79
    public $export_sql_start = array();
80
81
    /**
82
     * @var array Indexed list of export SQL queries end
83
     *
84
     */
85
    public $export_sql_end = array();
86
87
    public $export_TypeFields_array = [];
88
89
    /**
90
     * @var array
91
     */
92
    public $menus;
93
94
    /**
95
     * Constructor. Define names, constants, directories, boxes, permissions
96
     *
97
     * @param DoliDB $db Database handler
98
     */
99
    public function __construct($db)
100
    {
101
        global $langs, $conf;
102
103
        $this->db = $db;
104
105
        // Id for module (must be unique).
106
        $this->numero = 500000;
107
        // Key text used to identify module (for permissions, menus, etc...)
108
        $this->rights_class = 'flightlog';
109
110
        // Family can be 'crm','financial','hr','projects','products','ecm','technic','interface','other'
0 ignored issues
show
Unused Code Comprehensibility introduced by
71% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
111
        // It is used to group modules by family in module setup page
112
        $this->family = "Belgian Balloon Club";
113
        // Module position in the family
114
        $this->module_position = 500;
115
        // Gives the possibility to the module, to provide his own family info and position of this family (Overwrite $this->family and $this->module_position. Avoid this)
116
        //$this->familyinfo = array('myownfamily' => array('position' => '001', 'label' => $langs->trans("MyOwnFamily")));
0 ignored issues
show
Unused Code Comprehensibility introduced by
62% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
117
118
        // Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
119
        $this->name = preg_replace('/^mod/i', '', get_class($this));
120
        // Module description, used if translation string 'ModuleXXXDesc' not found (where XXX is value of numeric property 'numero' of module)
121
        $this->description = "Pilots flight log";
122
        $this->descriptionlong = "Manage flights and flight types for the Belgian Balloon Club";
123
        $this->editor_name = 'De Coninck Laurent';
124
        $this->editor_url = 'http://www.dolibarr.org';
125
126
        // Possible values for version are: 'development', 'experimental', 'dolibarr', 'dolibarr_deprecated' or a version string like 'x.y.z'
127
        $this->version = '1.1';
128
        // Key used in llx_const table to save module status enabled/disabled (where MYMODULE is value of property name of module in uppercase)
129
        $this->const_name = 'MAIN_MODULE_' . strtoupper($this->name);
130
        // Name of image file used for this module.
131
        // If file is in theme/yourtheme/img directory under name object_pictovalue.png, use this->picto='pictovalue'
132
        // If file is in module/img directory under name object_pictovalue.png, use this->picto='pictovalue@module'
133
        $this->picto = 'flight@flightlog';
134
135
        $this->module_parts = array();
136
137
        // Data directories to create when module is enabled.
138
        $this->dirs = array();
139
140
        // Config pages. Put here list of php page, stored into mymodule/admin directory, to use to setup module.
141
        $this->config_page_url = [
142
            "vol.php@flightlog",
143
        ];
144
145
        // Dependencies
146
        $this->hidden = false;
147
        $this->depends = array('modFlightBalloon');
148
        $this->requiredby = array();
149
        $this->conflictwith = array();
150
        $this->phpmin = array(5, 5);
151
        $this->need_dolibarr_version = array(4, 0);
152
        $this->langfiles = array("mymodule@flightlog");
153
154
        // Constants
155
        $this->initConstants();
156
157
        // Array to add new pages in new tabs
158
        $this->tabs = [
159
        ];
160
161
        if (!isset($conf->flightLog) || !isset($conf->flightLog->enabled)) {
162
            $conf->flightLog = new stdClass();
163
            $conf->flightLog->enabled = 0;
164
        }
165
166
        $this->boxes = [];
167
168
        $this->initDictionnaries();
169
        $this->initCronJobs();
170
        $this->initMenu();
171
        $this->initHooks();
172
        $this->initPermissions();
173
        $this->initExports();
174
175
        $this->activateTriggers();
176
        $this->initWorkflows();
177
    }
178
179
    /**
180
     *        Function called when module is enabled.
181
     *        The init function add constants, boxes, permissions and menus (defined in constructor) into Dolibarr database.
182
     *        It also creates data directories
183
     *
184
     * @param      string $options Options when enabling module ('', 'noboxes')
185
     *
186
     * @return     int                1 if OK, 0 if KO
187
     */
188
    public function init($options = '')
189
    {
190
        $sql = array();
191
192
        $this->_load_tables('/flightlog/sql/');
193
194
        return $this->_init($sql, $options);
195
    }
196
197
    /**
198
     * Function called when module is disabled.
199
     * Remove from database constants, boxes and permissions from Dolibarr database.
200
     * Data directories are not deleted
201
     *
202
     * @param      string $options Options when enabling module ('', 'noboxes')
203
     *
204
     * @return     int                1 if OK, 0 if KO
205
     */
206
    public function remove($options = '')
207
    {
208
        $sql = array();
209
210
        return $this->_remove($sql, $options);
211
    }
212
213
    /**
214
     * Init menu
215
     */
216
    private function initMenu()
217
    {
218
        $this->menus = array();
219
        $r = 0;
220
221
        $this->menu[$r] = array(
222
            'fk_menu'  => 'fk_mainmenu=flightlog',
223
            'type'     => self::MENU_TYPE_TOP,
224
            'titre'    => 'Carnet de vols',
225
            'mainmenu' => 'flightlog',
226
            'leftmenu' => 'readFlight',
227
            'url'      => '/flightlog/readFlights.php',
228
            'langs'    => 'mylangfile',
229
            'position' => 100,
230
            'enabled'  => '1',
231
            'perms'    => '$user->rights->flightlog->vol->access',
232
            'target'   => '',
233
            'user'     => 0
234
        );
235
        $r++;
236
237
        $this->menu[$r] = array(
238
            'fk_menu'  => 'fk_mainmenu=flightlog',
239
            'type'     => self::MENU_TYPE_LEFT,
240
            'titre'    => 'Ajouter un vol',
241
            'mainmenu' => 'flightlog',
242
            'leftmenu' => 'addFlight',
243
            'url'      => '/flightlog/addFlight.php',
244
            'langs'    => 'mylangfile',
245
            'position' => 101,
246
            'enabled'  => '1',
247
            'perms'    => '$user->rights->flightlog->vol->add',
248
            'target'   => '',
249
            'user'     => 2
250
        );
251
        $r++;
252
        $this->menu[$r] = array(
253
            'fk_menu'  => 'fk_mainmenu=flightlog',
254
            'type'     => self::MENU_TYPE_LEFT,
255
            'titre'    => 'Visualisation',
256
            'mainmenu' => 'flightlog',
257
            'leftmenu' => 'showFlight',
258
            'url'      => '/flightlog/readFlights.php',
259
            'langs'    => 'mylangfile',
260
            'position' => 102,
261
            'enabled'  => '1',
262
            'perms'    => '1',
263
            'target'   => '',
264
            'user'     => 2
265
        );
266
        $this->menu[$r] = array(
267
            'fk_menu'  => 'fk_mainmenu=flightlog',
268
            'type'     => self::MENU_TYPE_LEFT,
269
            'titre'    => 'Les vols',
270
            'mainmenu' => 'flightlog',
271
            'leftmenu' => 'flightlog',
272
            'url'      => '/flightlog/list.php',
273
            'langs'    => 'mylangfile',
274
            'position' => 105,
275
            'enabled'  => '1',
276
            'perms'    => '1',
277
            'target'   => '',
278
            'user'     => 2
279
        );
280
        $r++;
281
        $this->menu[$r] = array(
282
            'fk_menu'  => 'fk_mainmenu=flightlog',
283
            'type'     => self::MENU_TYPE_LEFT,
284
            'titre'    => 'Gestion',
285
            'mainmenu' => 'flightlog',
286
            'leftmenu' => 'management',
287
            'url'      => '',
288
            'langs'    => 'mylangfile',
289
            'position' => 106,
290
            'enabled'  => '1',
291
            'perms'    => '$user->rights->flightlog->vol->status||$user->rights->flightlog->vol->detail',
292
            'target'   => '',
293
            'user'     => 2
294
        );
295
        $r++;
296
        $this->menu[$r] = array(
297
            'fk_menu'  => 'fk_mainmenu=flightlog,fk_leftmenu=management',
298
            'type'     => self::MENU_TYPE_LEFT,
299
            'titre'    => 'Payement',
300
            'mainmenu' => 'flightlog',
301
            'leftmenu' => 'flightBilling',
302
            'url'      => '/flightlog/listFact.php?view=1',
303
            'langs'    => 'mylangfile',
304
            'position' => 107,
305
            'enabled'  => '1',
306
            'perms'    => '$user->rights->flightlog->vol->financial',
307
            'target'   => '',
308
            'user'     => 2
309
        );
310
        $r++;
311
        $this->menu[$r] = array(
312
            'fk_menu'  => 'fk_mainmenu=flightlog,fk_leftmenu=management',
313
            'type'     => self::MENU_TYPE_LEFT,
314
            'titre'    => 'Aviabel',
315
            'mainmenu' => 'flightlog',
316
            'leftmenu' => 'flightAviabel',
317
            'url'      => '/flightlog/listFact.php?view=2',
318
            'langs'    => 'mylangfile',
319
            'position' => 108,
320
            'enabled'  => '1',
321
            'perms'    => '$user->rights->flightlog->vol->detail',
322
            'target'   => '',
323
            'user'     => 2
324
        );
325
    }
326
327
    /**
328
     * Init permissions
329
     */
330
    private function initPermissions()
331
    {
332
        $this->rights = array();        // Permission array used by this module
333
        $r = 0;
334
335
        $this->rights[$r][0] = 9993;
336
        $this->rights[$r][1] = 'Permet d\'acceder au module des vols.';
337
        $this->rights[$r][3] = 0;
338
        $this->rights[$r][4] = 'vol';
339
        $this->rights[$r][5] = 'access';
340
        $r++;
341
342
        $this->rights[$r][0] = 9998;
343
        $this->rights[$r][1] = 'Enregistrer un nouveau vol.';
344
        $this->rights[$r][3] = 0;
345
        $this->rights[$r][4] = 'vol';
346
        $this->rights[$r][5] = 'add';
347
        $r++;
348
349
        $this->rights[$r][0] = 9997;
350
        $this->rights[$r][1] = 'Permet de facturer un vol.';
351
        $this->rights[$r][3] = 0;
352
        $this->rights[$r][4] = 'vol';
353
        $this->rights[$r][5] = 'status';
354
        $r++;
355
356
        $this->rights[$r][0] = 9996;
357
        $this->rights[$r][1] = 'Permet de supprimer un vol.';
358
        $this->rights[$r][3] = 0;
359
        $this->rights[$r][4] = 'vol';
360
        $this->rights[$r][5] = 'delete';
361
        $r++;
362
363
        $this->rights[$r][0] = 9995;
364
        $this->rights[$r][1] = 'Permet de modifier tous les vols.';
365
        $this->rights[$r][3] = 0;
366
        $this->rights[$r][4] = 'vol';
367
        $this->rights[$r][5] = 'edit';
368
        $r++;
369
370
        $this->rights[$r][0] = 9994;
371
        $this->rights[$r][1] = 'affiche les details de tous les ballons et de tous les pilotes.';
372
        $this->rights[$r][3] = 0;
373
        $this->rights[$r][4] = 'vol';
374
        $this->rights[$r][5] = 'detail';
375
        $r++;
376
377
        $this->rights[$r][0] = 9999;
378
        $this->rights[$r][1] = 'Gérer les aspects financier des vols';
379
        $this->rights[$r][3] = 0;
380
        $this->rights[$r][4] = 'vol';
381
        $this->rights[$r][5] = 'financial';
382
        $r++;
383
384
        $this->rights[$r][0] = 10000;
385
        $this->rights[$r][1] = 'Gérer des documents financiers';
386
        $this->rights[$r][3] = 0;
387
        $this->rights[$r][4] = 'vol';
388
        $this->rights[$r][5] = 'financialGenerateDocuments';
389
        $r++;
390
    }
391
392
    private function initCronJobs()
393
    {
394
        $this->cronjobs = array();            // List of cron jobs entries to add
395
        // Example: $this->cronjobs=array(0=>array('label'=>'My label', 'jobtype'=>'method', 'class'=>'/dir/class/file.class.php', 'objectname'=>'MyClass', 'method'=>'myMethod', 'parameters'=>'', 'comment'=>'Comment', 'frequency'=>2, 'unitfrequency'=>3600, 'test'=>true),
0 ignored issues
show
Unused Code Comprehensibility introduced by
75% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
396
        //                                1=>array('label'=>'My label', 'jobtype'=>'command', 'command'=>'', 'parameters'=>'', 'comment'=>'Comment', 'frequency'=>1, 'unitfrequency'=>3600*24, 'test'=>true)
0 ignored issues
show
Unused Code Comprehensibility introduced by
77% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
397
        // );
398
    }
399
400
    private function initDictionnaries()
401
    {
402
        $this->initFlightTypeDictionnary();
403
    }
404
405
    private function initFlightTypeDictionnary()
406
    {
407
        $this->dictionaries = array(
408
            'langs'          => 'mylangfile@mymodule',
409
            'tabname'        => array(MAIN_DB_PREFIX . "bbc_types"),
410
            'tablib'         => array("Types de vols"),
411
            'tabsql'         => array('SELECT f.idType, f.numero, f.nom, f.active FROM ' . MAIN_DB_PREFIX . 'bbc_types as f',),
412
            'tabsqlsort'     => array("numero ASC"),
413
            'tabfield'       => array("idType,numero,nom"),
414
            'tabfieldvalue'  => array("numero,nom"),
415
            'tabfieldinsert' => array("numero,nom"),
416
            'tabrowid'       => array("idType"),
417
            'tabcond'        => array('$conf->flightlog->enabled'),
418
        );
419
    }
420
421
    /**
422
     * Init hooks
423
     */
424
    private function initHooks()
425
    {
426
        if (!isset($this->module_parts["hooks"])) {
427
            $this->module_parts["hooks"] = [];
428
        }
429
430
        $this->module_parts["hooks"][] = "searchform";
431
        $this->module_parts["hooks"][] = "showLinkToObjectBlock";
432
        $this->module_parts["hooks"][] = "criccar";
433
434
    }
435
436
    private function initConstants()
437
    {
438
        $this->const = array(
439
            0 => [
440
                'BBC_FLIGHT_LOG_TAUX_REMB_KM',
441
                'chaine',
442
                '0.25',
443
                'Taux remboursement des kilomètres au BBC',
444
                true,
445
                'current',
446
                true
447
            ],
448
            1 => [
449
                'BBC_FLIGHT_LOG_UNIT_PRICE_MISSION',
450
                'chaine',
451
                '35',
452
                'Unit price special mission',
453
                true,
454
                'current',
455
                true
456
            ],
457
        );
458
    }
459
460
    /**
461
     * Init exports
462
     */
463
    private function initExports()
464
    {
465
        $r = 0;
466
        $this->addFullFlightsExport($r);
467
    }
468
469
    /**
470
     * @param int $r
471
     */
472
    private function addFullFlightsExport($r)
473
    {
474
        $this->export_code[$r] = $this->rights_class . '_' . $r;
475
        $this->export_label[$r] = 'Flights export';
476
        $this->export_enabled[$r] = '1';
477
        $this->export_permission[$r] = array(array("flightlog", "vol", "detail"));
478
        $this->export_fields_array[$r] = array(
479
            "flight.idBBC_vols" => "Identifiant",
480
            "flight.date" => "Date",
481
            "flight.lieuD" => "Lieu décollage ",
482
            "flight.lieuA" => "Lieu atterissage",
483
            "flight.heureD" => "Heure décollage",
484
            "flight.heureA" => "Heure atterissage",
485
            "flight.BBC_ballons_idBBC_ballons" => "Identifiant ballon",
486
            "flight.nbrPax" => "# pax",
487
            "flight.remarque" => "Remarque",
488
            "flight.incidents" => "Incidents",
489
            "flight.fk_type" => "Identifiant type",
490
            "flight.fk_pilot" => "Identifiant pilote",
491
            "flight.fk_organisateur" => "Identifiant organisateur",
492
            "flight.is_facture" => "Facture Oui/Non",
493
            "flight.kilometers" => "# Km",
494
            "flight.cost" => "Cout",
495
            "flight.fk_receiver" => "Identifiant receveur d'argent",
496
            "flight.justif_kilometers" => "Justificatif kilomètres",
497
            "balloon.immat" => "Immat.",
498
            "pilot.login" => "Pilote",
499
            "flightType.nom" => "Type de vol",
500
            "organisator.login" => "Organisateur",
501
            "receiver.login" => "Percepteur",
502
        );
503
504
        $this->export_TypeFields_array[$r] = [
505
            "flight.date" => "Date",
506
            "flight.lieuD" => "Text",
507
            "flight.lieuA" => "Text",
508
            "flight.heureD" => "Text",
509
            "flight.heureA" => "Text",
510
            "flight.BBC_ballons_idBBC_ballons" => implode(":", ["List", "bbc_ballons", "immat", "rowid"]),
511
            "flight.nbrPax" => "Numeric",
512
            "flight.remarque" => "Text",
513
            "flight.incidents" => "Text",
514
            "flight.fk_type" => implode(":", ["List", "bbc_types", "nom", "idType"]),
515
            "flight.fk_pilot" => implode(":", ["List", "user", "login", "rowid"]),
516
            "flight.fk_organisateur" => implode(":", ["List", "user", "login", "rowid"]),
517
            "flight.is_facture" => "Boolean",
518
            "flight.kilometers" => "Numeric",
519
            "flight.cost" => "Numeric",
520
            "flight.fk_receiver" => implode(":", ["List", "user", "login", "rowid"]),
521
            "flight.justif_kilometers" => "Text",
522
        ];
523
524
        $this->export_entities_array[$r] = array(
525
            "flight.idBBC_vols" => "Flight",
526
            "flight.date" => "Flight",
527
            "flight.lieuD" => "Flight",
528
            "flight.lieuA" => "Flight",
529
            "flight.heureD" => "Flight",
530
            "flight.heureA" => "Flight",
531
            "flight.BBC_ballons_idBBC_ballons" => "Flight",
532
            "flight.nbrPax" => "Flight",
533
            "flight.remarque" => "Flight",
534
            "flight.incidents" => "Flight",
535
            "flight.fk_type" => "Flight",
536
            "flight.fk_pilot" => "Flight",
537
            "flight.fk_organisateur" => "Flight",
538
            "flight.is_facture" => "Flight",
539
            "flight.kilometers" => "Flight",
540
            "flight.cost" => "Flight",
541
            "flight.fk_receiver" => "Flight",
542
            "flight.justif_kilometers" => "Flight",
543
            "balloon.immat" => "Balloon",
544
            "pilot.login" => "Pilot",
545
            "flightType.nom" => "FlightType",
546
            "organisator.login" => "Organisator",
547
            "receiver.login" => "Percepteur",
548
        );
549
        $this->export_sql_start[$r] = 'SELECT DISTINCT ';
550
        $this->export_sql_end[$r] = ' FROM ' . MAIN_DB_PREFIX . 'bbc_vols as flight';
551
        $this->export_sql_end[$r] .= ' LEFT JOIN ' . MAIN_DB_PREFIX . 'bbc_ballons as balloon on (flight.BBC_ballons_idBBC_ballons = balloon.rowid)';
552
        $this->export_sql_end[$r] .= ' LEFT JOIN ' . MAIN_DB_PREFIX . 'bbc_types as flightType on (flight.fk_type = flightType.idType)';
553
        $this->export_sql_end[$r] .= ' LEFT JOIN ' . MAIN_DB_PREFIX . 'user as pilot on (flight.fk_pilot = pilot.rowid)';
554
        $this->export_sql_end[$r] .= ' LEFT JOIN ' . MAIN_DB_PREFIX . 'user as organisator on (flight.fk_organisateur = organisator.rowid)';
555
        $this->export_sql_end[$r] .= ' LEFT JOIN ' . MAIN_DB_PREFIX . 'user as receiver on (flight.fk_receiver = receiver.rowid)';
556
        $this->export_sql_end[$r] .= ' WHERE 1 = 1';
557
    }
558
559
    /**
560
     * Activate triggers for this module
561
     */
562
    private function activateTriggers()
563
    {
564
        $this->module_parts['triggers'] = 1;
565
    }
566
567
    /**
568
     * Initialize all workflows
569
     */
570
    private function initWorkflows()
571
    {
572
        $this->module_parts['workflow'] = [
573
            "WORKFLOW_BBC_FLIGHTLOG_SEND_MAIL_ON_INCIDENT" => [
574
                'family' => 'create',
575
                'position' => 10,
576
                'enabled' => '1',
577
                'picto' => 'order'
578
            ],
579
        ];
580
    }
581
582
}
583
584