Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 561 | Ir a la última revisión | | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
66 efrain 1
<?php
2
declare(strict_types=1);
3
 
4
namespace LeadersLinked\Controller;
5
 
6
use Laminas\Db\Adapter\AdapterInterface;
7
use Laminas\Cache\Storage\Adapter\AbstractAdapter;
8
use Laminas\Mvc\Controller\AbstractActionController;
9
use LeadersLinked\Hydrator\ObjectPropertyHydrator;
10
use Laminas\Log\LoggerInterface;
11
use Laminas\View\Model\ViewModel;
12
use Laminas\View\Model\JsonModel;
13
use LeadersLinked\Library\Functions;
14
use LeadersLinked\Mapper\JobDescriptionMapper;
15
use LeadersLinked\Mapper\CompetencyTypeMapper;
16
use LeadersLinked\Model\JobDescription;
17
use LeadersLinked\Form\JobDescriptionForm;
18
use LeadersLinked\Mapper\CompetencyMapper;
19
use LeadersLinked\Mapper\JobDescriptionCompetencyMapper;
20
use LeadersLinked\Mapper\JobDescriptionSubordinateMapper;
21
use LeadersLinked\Model\JobDescriptionCompetency;
22
use LeadersLinked\Model\JobDescriptionSubordinate;
23
 
24
 
25
class JobDescriptionController extends AbstractActionController
26
{
27
    /**
28
     *
29
     * @var AdapterInterface
30
     */
31
    private $adapter;
32
 
33
 
34
    /**
35
     *
36
     * @var AbstractAdapter
37
     */
38
    private $cache;
39
 
40
    /**
41
     *
42
     * @var  LoggerInterface
43
     */
44
    private $logger;
45
 
46
 
47
    /**
48
     *
49
     * @var array
50
     */
51
    private $config;
52
 
53
 
54
    /**
55
     *
56
     * @param AdapterInterface $adapter
57
     * @param AbstractAdapter $cache
58
     * @param LoggerInterface $logger
59
     * @param array $config
60
     */
61
    public function __construct($adapter, $cache , $logger, $config)
62
    {
63
        $this->adapter      = $adapter;
64
        $this->cache        = $cache;
65
        $this->logger       = $logger;
66
        $this->config       = $config;
67
 
68
    }
69
 
70
    public function indexAction()
71
    {
72
        $currentUserPlugin = $this->plugin('currentUserPlugin');
73
        $currentUser = $currentUserPlugin->getUser();
74
        $currentCompany = $currentUserPlugin->getCompany();
75
 
76
        $request = $this->getRequest();
77
 
78
        $headers  = $request->getHeaders();
79
 
80
        $request = $this->getRequest();
81
        if($request->isGet()) {
82
 
83
 
84
            $headers  = $request->getHeaders();
85
 
86
            $isJson = false;
87
            if($headers->has('Accept')) {
88
                $accept = $headers->get('Accept');
89
 
90
                $prioritized = $accept->getPrioritized();
91
 
92
                foreach($prioritized as $key => $value) {
93
                    $raw = trim($value->getRaw());
94
 
95
                    if(!$isJson) {
96
                        $isJson = strpos($raw, 'json');
97
                    }
98
 
99
                }
100
            }
101
 
102
            if($isJson) {
103
                $search = $this->params()->fromQuery('search', []);
104
                $search = empty($search['value']) ? '' : filter_var($search['value'], FILTER_SANITIZE_STRING);
105
 
106
                $page               = intval($this->params()->fromQuery('start', 1), 10);
107
                $records_x_page     = intval($this->params()->fromQuery('length', 10), 10);
108
                $order =  $this->params()->fromQuery('order', []);
109
                $order_field        = empty($order[0]['column']) ? 99 :  intval($order[0]['column'], 10);
110
                $order_direction    = empty($order[0]['dir']) ? 'ASC' : strtoupper(filter_var( $order[0]['dir'], FILTER_SANITIZE_STRING));
111
 
112
                $fields =  ['name'];
113
                $order_field = isset($fields[$order_field]) ? $fields[$order_field] : 'name';
114
 
115
                if(!in_array($order_direction, ['ASC', 'DESC'])) {
116
                    $order_direction = 'ASC';
117
                }
118
 
119
                $jobDescriptionMapper = JobDescriptionMapper::getInstance($this->adapter);
120
                $paginator = $jobDescriptionMapper->fetchAllDataTableByCompanyId($currentCompany->id, $search, $page, $records_x_page, $order_field, $order_direction);
121
 
122
                $items = [];
123
                $records = $paginator->getCurrentItems();
124
                foreach($records as $record)
125
                {
126
 
127
 
128
 
129
                    $item = [
130
                        'name' => $record->name,
131
                        'status' => $record->status,
132
                        'actions' => [
133
                            'link_edit' => $this->url()->fromRoute('settings/jobs-description/edit', ['id' => $record->uuid ]),
134
                            'link_delete' => $this->url()->fromRoute('settings/jobs-description/delete', ['id' => $record->uuid  ])
135
                        ]
136
                    ];
137
 
138
                    array_push($items, $item);
139
                }
140
 
141
                return new JsonModel([
142
                    'success' => true,
143
                    'data' => [
144
                        'items' => $items,
145
                        'total' => $paginator->getTotalItemCount(),
146
                    ]
147
                ]);
148
 
149
 
150
            } else  {
151
                $form = new JobDescriptionForm($this->adapter, $currentCompany->id);
152
 
153
                $this->layout()->setTemplate('layout/layout-backend');
154
                $viewModel = new ViewModel();
155
                $viewModel->setTemplate('leaders-linked/jobs-description/index.phtml');
156
                $viewModel->setVariable('form', $form);
157
                return $viewModel ;
158
            }
159
 
160
        } else {
161
            return new JsonModel([
162
                'success' => false,
163
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
164
            ]);;
165
        }
166
    }
167
 
168
    public function addAction()
169
    {
170
        $currentUserPlugin = $this->plugin('currentUserPlugin');
171
        $currentUser = $currentUserPlugin->getUser();
172
        $currentCompany = $currentUserPlugin->getCompany();
173
 
174
        $request = $this->getRequest();
175
 
176
 
177
        if($request->isGet()) {
178
 
179
            $data = [
180
               'competency_types' => [],
181
               'competencies' => [],
182
               'jobs_description' => [],
183
            ];
184
 
185
            $competencyTypeMapper = CompetencyTypeMapper::getInstance($this->adapter);
186
            $records = $competencyTypeMapper->fetchAllByCompanyId($currentCompany->id);
187
 
188
            $competencyTypesUUID = [];
189
            foreach($records as $record)
190
            {
191
                array_push($data['competency_types'], [
192
                    'competency_type_id' => $record->uuid,
193
                    'name' => $record->name,
194
                ]);
195
 
196
                $competencyTypesUUID[$record->id] = $record->uuid;
197
            }
198
 
199
 
200
 
201
            $competencyMapper = CompetencyMapper::getInstance($this->adapter);
202
            $records = $competencyMapper->fetchAllActiveByCompanyId($currentCompany->id);
203
 
204
 
205
            foreach($records as $record)
206
            {
207
                if(isset($competencyTypesUUID[$record->competency_type_id])) {
208
 
209
                    array_push($data['competencies'], [
210
                        'competency_type_id' => $competencyTypesUUID[$record->competency_type_id],
211
                        'competency_id' => $record->uuid,
212
                        'name' => $record->name,
213
                    ]);
214
                }
215
            }
216
 
217
            $jobDescriptionMapper = JobDescriptionMapper::getInstance($this->adapter);
218
            $records = $jobDescriptionMapper->fetchAllActiveByCompanyId($currentCompany->id);
219
 
220
            foreach($records as $record)
221
            {
222
                array_push($data['jobs_description'], [
223
                    'job_description_id' => $record->uuid,
224
                    'name' => $record->name
225
                ]);
226
            }
227
 
228
 
229
            $data = [
230
                'success'   => true,
231
                'data'      => $data,
232
            ];
233
 
234
 
235
            return new JsonModel($data);
236
 
237
 
238
        } else  if($request->isPost()) {
239
            $form = new  JobDescriptionForm($this->adapter, $currentCompany->id);
240
            $dataPost = $request->getPost()->toArray();
241
 
242
 
243
 
244
 
245
 
246
            $form->setData($dataPost);
247
 
248
            if($form->isValid()) {
249
                $dataPost = (array) $form->getData();
250
                $dataPost['status'] = $dataPost['status'] ? $dataPost['status'] : JobDescription::STATUS_INACTIVE;
251
 
252
 
253
                $jobDescriptionMapper = JobDescriptionMapper::getInstance($this->adapter);
254
 
255
                if(!empty($dataPost['job_description_id_boss'])) {
256
 
257
                    $jobDescriptionBoss = $jobDescriptionMapper->fetchOneByUuid($dataPost['job_description_id_boss']);
258
                    if($jobDescriptionBoss) {
259
                        if($jobDescriptionBoss->company_id == $currentCompany->id) {
260
                            $dataPost['job_description_id_boss'] = $jobDescriptionBoss->id;
261
                        } else {
262
                            $dataPost['job_description_id_boss'] = null;
263
                        }
264
                    } else {
265
                        $dataPost['job_description_id_boss'] = null;
266
                    }
267
                }
268
 
269
 
270
 
271
                $hydrator = new ObjectPropertyHydrator();
272
                $jobDescription = new JobDescription();
273
 
274
                $hydrator->hydrate($dataPost, $jobDescription);
275
 
276
                if($currentCompany) {
277
                    $jobDescription->company_id = $currentCompany->id;
278
                }
279
 
280
 
281
                $jobDescriptionMapper = JobDescriptionMapper::getInstance($this->adapter);
282
                $result = $jobDescriptionMapper->insert($jobDescription);
283
 
284
 
285
                if($result) {
286
                    $jobDescriptionSubordinateMapper = JobDescriptionSubordinateMapper::getInstance($this->adapter);
287
                    $jobDescriptionSubordinateMapper->deleteAllByJobDescriptionIdTopLevel($jobDescription->id);
288
 
289
                    $jobDescriptionCompetencyMapper = JobDescriptionCompetencyMapper::getInstance($this->adapter);
290
                    $jobDescriptionCompetencyMapper->deleteAllBJobDescriptionId($jobDescription->id);
291
 
292
 
293
                    $competencyMapper = CompetencyMapper::getInstance($this->adapter);
294
                    $competencies = $competencyMapper->fetchAllActiveByCompanyId($currentCompany->id);
295
 
296
 
297
                    foreach($competencies as $competency)
298
                    {
299
                        $level = filter_var($this->params()->fromPost('competency_level' . $competency->uuid, ''), FILTER_SANITIZE_NUMBER_INT);
300
                        if(in_array($level, [1, 2, 3, 4])) {
301
                            $jobDescriptionCompetency = new JobDescriptionCompetency();
302
                            $jobDescriptionCompetency->competency_id = $competency->id;
303
                            $jobDescriptionCompetency->job_description_id = $jobDescription->id;
304
                            $jobDescriptionCompetency->level = $level;
305
                            $jobDescriptionCompetencyMapper->insert($jobDescriptionCompetency);
306
                        }
307
                    }
308
 
309
 
310
                    $jobsDescriptionListingSubordinate = $jobDescriptionMapper->fetchAllActiveByCompanyIdWhereIdNotEqual($currentCompany->id, $jobDescription->id);
311
                    foreach($jobsDescriptionListingSubordinate as $jobDescriptionListingSubordinate)
312
                    {
313
                        $job_description_subordinate = filter_var($this->params()->fromPost('job_description_id_subordinate' . $jobDescriptionListingSubordinate->uuid, ''), FILTER_SANITIZE_STRING);
314
                        if($job_description_subordinate) {
315
                            $jobDescriptionSubordinate = new JobDescriptionSubordinate();
316
                            $jobDescriptionSubordinate->job_description_id_top_level = $jobDescription->id;
317
                            $jobDescriptionSubordinate->job_description_id_low_level = $jobDescriptionListingSubordinate->id;
318
                            $jobDescriptionSubordinateMapper->insert($jobDescriptionSubordinate);
319
                        }
320
                    }
321
 
322
 
323
 
324
                    $this->logger->info('Se agrego el cargo ' . $jobDescription->name, ['user_id' => $currentUser->id, 'ip' => Functions::getUserIP()]);
325
 
326
                    $data = [
327
                        'success'   => true,
328
                        'data'   => 'LABEL_RECORD_ADDED'
329
                    ];
330
                } else {
331
                    $data = [
332
                        'success'   => false,
333
                        'data'      => $jobDescriptionMapper->getError()
334
                    ];
335
 
336
                }
337
 
338
                return new JsonModel($data);
339
 
340
            } else {
341
                $messages = [];
342
                $form_messages = (array) $form->getMessages();
343
                foreach($form_messages  as $fieldname => $field_messages)
344
                {
345
 
346
                    $messages[$fieldname] = array_values($field_messages);
347
                }
348
 
349
                return new JsonModel([
350
                    'success'   => false,
351
                    'data'   => $messages
352
                ]);
353
            }
354
 
355
        } else {
356
            $data = [
357
                'success' => false,
358
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
359
            ];
360
 
361
            return new JsonModel($data);
362
        }
363
 
364
        return new JsonModel($data);
365
    }
366
 
367
    public function editAction()
368
    {
369
        $currentUserPlugin = $this->plugin('currentUserPlugin');
370
        $currentUser = $currentUserPlugin->getUser();
371
        $currentCompany = $currentUserPlugin->getCompany();
372
 
373
        $request = $this->getRequest();
374
        $uuid = $this->params()->fromRoute('id');
375
 
376
 
377
        if(!$uuid) {
378
            $data = [
379
                'success'   => false,
380
                'data'   => 'ERROR_INVALID_PARAMETER'
381
            ];
382
 
383
            return new JsonModel($data);
384
        }
385
 
386
        $jobDescriptionMapper = JobDescriptionMapper::getInstance($this->adapter);
387
        $jobDescription = $jobDescriptionMapper->fetchOneByUuid($uuid);
388
        if(!$jobDescription) {
389
            $data = [
390
                'success'   => false,
391
                'data'   => 'ERROR_RECORD_NOT_FOUND'
392
            ];
393
 
394
            return new JsonModel($data);
395
        }
396
 
397
        if($jobDescription->company_id != $currentCompany->id) {
398
            $data = [
399
                'success'   => false,
400
                'data'   => 'ERROR_UNAUTHORIZED'
401
            ];
402
 
403
            return new JsonModel($data);
404
        }
405
 
406
 
407
        if($request->isPost()) {
408
            $form = new JobDescriptionForm($this->adapter, $currentCompany->id, $jobDescription->id);
409
            $dataPost = $request->getPost()->toArray();
410
 
411
 
412
            $form->setData($dataPost);
413
 
414
            if($form->isValid()) {
415
                $dataPost = (array) $form->getData();
416
                $dataPost['status'] = $dataPost['status'] ? $dataPost['status'] : JobDescription::STATUS_INACTIVE;
417
 
418
 
419
                if(!empty($dataPost['job_description_id_boss'])) {
420
 
421
                    $jobDescriptionBoss = $jobDescriptionMapper->fetchOneByUuid($dataPost['job_description_id_boss']);
422
                    if($jobDescriptionBoss) {
423
                        if($jobDescriptionBoss->id != $jobDescription->id && $jobDescriptionBoss->company_id == $currentCompany->id) {
424
                            $dataPost['job_description_id_boss'] = $jobDescriptionBoss->id;
425
                        } else {
426
                            $dataPost['job_description_id_boss'] = null;
427
                        }
428
                    } else {
429
                        $dataPost['job_description_id_boss'] = null;
430
                    }
431
                }
432
 
433
 
434
 
435
                $hydrator = new ObjectPropertyHydrator();
436
                $hydrator->hydrate($dataPost, $jobDescription);
437
 
438
                $result = $jobDescriptionMapper->update($jobDescription);
439
 
440
                if($result) {
441
 
442
                    $jobDescriptionSubordinateMapper = JobDescriptionSubordinateMapper::getInstance($this->adapter);
443
                    $jobDescriptionSubordinateMapper->deleteAllByJobDescriptionIdTopLevel($jobDescription->id);
444
 
445
                    $jobDescriptionCompetencyMapper = JobDescriptionCompetencyMapper::getInstance($this->adapter);
446
                    $jobDescriptionCompetencyMapper->deleteAllBJobDescriptionId($jobDescription->id);
447
 
448
 
449
                    $competencyMapper = CompetencyMapper::getInstance($this->adapter);
450
                    $competencies = $competencyMapper->fetchAllActiveByCompanyId($currentCompany->id);
451
 
452
 
453
                    foreach($competencies as $competency)
454
                    {
455
                        $level = filter_var($this->params()->fromPost('competency_level' . $competency->uuid, ''), FILTER_SANITIZE_NUMBER_INT);
456
                        if(in_array($level, [ 1, 2, 3, 4])) {
457
                            $jobDescriptionCompetency = new JobDescriptionCompetency();
458
                            $jobDescriptionCompetency->competency_id = $competency->id;
459
                            $jobDescriptionCompetency->job_description_id = $jobDescription->id;
460
                            $jobDescriptionCompetency->level = $level;
461
                            $jobDescriptionCompetencyMapper->insert($jobDescriptionCompetency);
462
                        }
463
                    }
464
 
465
 
466
                    $jobsDescriptionListingSubordinate = $jobDescriptionMapper->fetchAllActiveByCompanyIdWhereIdNotEqual($currentCompany->id, $jobDescription->id);
467
                    foreach($jobsDescriptionListingSubordinate as $jobDescriptionListingSubordinate)
468
                    {
469
                        $job_description_subordinate = filter_var($this->params()->fromPost('job_description_id_subordinate' . $jobDescriptionListingSubordinate->uuid, ''), FILTER_SANITIZE_STRING);
470
                        if($job_description_subordinate) {
471
                            $jobDescriptionSubordinate = new JobDescriptionSubordinate();
472
                            $jobDescriptionSubordinate->job_description_id_top_level = $jobDescription->id;
473
                            $jobDescriptionSubordinate->job_description_id_low_level = $jobDescriptionListingSubordinate->id;
474
                            $jobDescriptionSubordinateMapper->insert($jobDescriptionSubordinate);
475
                        }
476
                    }
477
 
478
 
479
                    $this->logger->info('Se actualizo el cargo ' . $jobDescription->name, ['user_id' => $currentUser->id, 'ip' => Functions::getUserIP()]);
480
 
481
                    $data = [
482
                        'success' => true,
483
                        'data' => 'LABEL_RECORD_UPDATED'
484
                    ];
485
                } else {
486
                    $data = [
487
                        'success'   => false,
488
                        'data'      => $jobDescriptionMapper->getError()
489
                    ];
490
                }
491
 
492
                return new JsonModel($data);
493
 
494
            } else {
495
                $messages = [];
496
                $form_messages = (array) $form->getMessages();
497
                foreach($form_messages  as $fieldname => $field_messages)
498
                {
499
                    $messages[$fieldname] = array_values($field_messages);
500
                }
501
 
502
                return new JsonModel([
503
                    'success'   => false,
504
                    'data'   => $messages
505
                ]);
506
            }
507
        } else if ($request->isGet()) {
508
 
509
            $hydrator = new ObjectPropertyHydrator();
510
 
511
            $data = $hydrator->extract($jobDescription);
512
 
513
            if(!empty($data['job_description_id_boss'])) {
514
 
515
                $jobDescriptionBoss = $jobDescriptionMapper->fetchOne($data['job_description_id_boss']);
516
                if($jobDescriptionBoss) {
517
                    $data['job_description_id_boss'] = $jobDescriptionBoss->uuid;
518
                } else {
519
                    $data['job_description_id_boss'] = '';
520
                }
521
            } else {
522
                $data['job_description_id_boss'] = '';
523
            }
524
 
525
 
526
            $data['competency_types'] = [];
527
 
528
            $competencyTypeMapper = CompetencyTypeMapper::getInstance($this->adapter);
529
            $records = $competencyTypeMapper->fetchAllByCompanyId($currentCompany->id);
530
 
531
            $competencyTypesUUID = [];
532
            foreach($records as $record)
533
            {
534
                array_push($data['competency_types'], [
535
                    'competency_type_id' => $record->uuid,
536
                    'name' => $record->name,
537
                ]);
538
 
539
                $competencyTypesUUID[$record->id] = $record->uuid;
540
            }
541
 
542
            $data['competencies'] = [];
543
 
544
 
545
            $jobDescriptionCompetencyMapper = JobDescriptionCompetencyMapper::getInstance($this->adapter);
546
 
547
            $competencyMapper = CompetencyMapper::getInstance($this->adapter);
548
            $records = $competencyMapper->fetchAllActiveByCompanyId($currentCompany->id);
549
 
550
 
551
            foreach($records as $record)
552
            {
553
                if(isset($competencyTypesUUID[ $record->competency_type_id ])) {
554
 
555
 
556
                    $level = 0;
557
                    $jobDescriptionCompetency = $jobDescriptionCompetencyMapper->fetchOneByJobDescriptionIdAndCompetencyId($jobDescription->id, $record->id);
558
                    if($jobDescriptionCompetency) {
559
                        $level = $jobDescriptionCompetency->level;
560
                    }
561
 
562
 
563
                    array_push($data['competencies'], [
564
                        'competency_type_id' => $competencyTypesUUID[$record->competency_type_id],
565
                        'competency_id' => $record->uuid,
566
                        'name' => $record->name,
567
                        'level' => $level
568
                    ]);
569
                }
570
            }
571
 
572
            $data['jobs_description'] = [];
573
 
574
            $jobsDescriptionUUID = [];
575
            $jobDescriptionMapper = JobDescriptionMapper::getInstance($this->adapter);
576
            $records = $jobDescriptionMapper->fetchAllActiveByCompanyId($currentCompany->id);
577
 
578
            foreach($records as $record)
579
            {
580
                if($record->id == $jobDescription->id) {
581
                    continue;
582
                }
583
 
584
                $jobsDescriptionUUID[ $record->id ] = $record->uuid;
585
 
586
 
587
                array_push($data['jobs_description'], [
588
                    'job_description_id' => $record->uuid,
589
                    'name' => $record->name
590
                ]);
591
            }
592
 
593
            $data['subordinates'] = [];
594
            $jobDescriptionSubordinateMapper = JobDescriptionSubordinateMapper::getInstance($this->adapter);
595
            $records = $jobDescriptionSubordinateMapper->fetchAllByJobDescriptionIdTopLevel($jobDescription->id);
596
 
597
 
598
            foreach($records as $record)
599
            {
600
 
601
                if(isset($jobsDescriptionUUID[$record->job_description_id_low_level])) {
602
 
603
 
604
                    array_push($data['subordinates'], $jobsDescriptionUUID[$record->job_description_id_low_level]);
605
                }
606
            }
607
 
608
 
609
 
610
            $response = [
611
                'success' => true,
612
                'data' => $data
613
            ];
614
 
615
            return new JsonModel($response);
616
        } else {
617
            $data = [
618
                'success' => false,
619
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
620
            ];
621
 
622
            return new JsonModel($data);
623
        }
624
 
625
        return new JsonModel($data);
626
    }
627
 
628
    public function deleteAction()
629
    {
630
        $currentUserPlugin = $this->plugin('currentUserPlugin');
631
        $currentUser = $currentUserPlugin->getUser();
632
        $currentCompany = $currentUserPlugin->getCompany();
633
 
634
        $request = $this->getRequest();
635
        $uuid = $this->params()->fromRoute('id');
636
 
637
        if(!$uuid) {
638
            $data = [
639
                'success'   => false,
640
                'data'   => 'ERROR_INVALID_PARAMETER'
641
            ];
642
 
643
            return new JsonModel($data);
644
        }
645
 
646
 
647
        $jobDescriptionMapper = JobDescriptionMapper::getInstance($this->adapter);
648
        $jobDescription = $jobDescriptionMapper->fetchOneByUuid($uuid);
649
        if(!$jobDescription) {
650
            $data = [
651
                'success'   => false,
652
                'data'   => 'ERROR_RECORD_NOT_FOUND'
653
            ];
654
 
655
            return new JsonModel($data);
656
        }
657
 
658
        if($jobDescription->company_id != $currentCompany->id) {
659
            $data = [
660
                'success'   => false,
661
                'data'   => 'ERROR_UNAUTHORIZED'
662
            ];
663
 
664
            return new JsonModel($data);
665
        }
666
 
667
 
668
        if($request->isPost()) {
669
            $result = $jobDescriptionMapper->delete($jobDescription);
670
            if($result) {
671
                $this->logger->info('Se borro el cargo de trabajo ' . $jobDescription->name, ['user_id' => $currentUser->id, 'ip' => Functions::getUserIP()]);
672
 
673
                $data = [
674
                    'success' => true,
675
                    'data' => 'LABEL_RECORD_DELETED'
676
                ];
677
            } else {
678
 
679
                $data = [
680
                    'success'   => false,
681
                    'data'      => $jobDescriptionMapper->getError()
682
                ];
683
 
684
                return new JsonModel($data);
685
            }
686
 
687
        } else {
688
            $data = [
689
                'success' => false,
690
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
691
            ];
692
 
693
            return new JsonModel($data);
694
        }
695
 
696
        return new JsonModel($data);
697
    }
698
 
699
 
700
}