Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 17002 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 17002 Rev 17023
Línea 38... Línea 38...
38
    /**
38
    /**
39
     *
39
     *
40
     * @var \Laminas\Db\Adapter\AdapterInterface
40
     * @var \Laminas\Db\Adapter\AdapterInterface
41
     */
41
     */
42
    private $adapter;
42
    private $adapter;
43
    
43
 
44
    /**
44
    /**
45
     *
45
     *
46
     * @var \LeadersLinked\Cache\CacheInterface
46
     * @var \LeadersLinked\Cache\CacheInterface
47
     */
47
     */
48
    private $cache;
48
    private $cache;
49
    
49
 
50
    
50
 
51
    /**
51
    /**
52
     *
52
     *
53
     * @var \Laminas\Log\LoggerInterface
53
     * @var \Laminas\Log\LoggerInterface
54
     */
54
     */
55
    private $logger;
55
    private $logger;
56
    
56
 
57
    /**
57
    /**
58
     *
58
     *
59
     * @var array
59
     * @var array
60
     */
60
     */
61
    private $config;
61
    private $config;
62
    
62
 
63
    
63
 
64
    /**
64
    /**
65
     *
65
     *
66
     * @var \Laminas\Mvc\I18n\Translator
66
     * @var \Laminas\Mvc\I18n\Translator
67
     */
67
     */
68
    private $translator;
68
    private $translator;
69
    
69
 
70
    
70
 
71
    /**
71
    /**
72
     *
72
     *
73
     * @param \Laminas\Db\Adapter\AdapterInterface $adapter
73
     * @param \Laminas\Db\Adapter\AdapterInterface $adapter
74
     * @param \LeadersLinked\Cache\CacheInterface $cache
74
     * @param \LeadersLinked\Cache\CacheInterface $cache
75
     * @param \Laminas\Log\LoggerInterface LoggerInterface $logger
75
     * @param \Laminas\Log\LoggerInterface LoggerInterface $logger
Línea 127... Línea 127...
127
 
127
 
128
                $start = intval($this->params()->fromQuery('start', 0), 10);
128
                $start = intval($this->params()->fromQuery('start', 0), 10);
129
                $records_x_page = intval($this->params()->fromQuery('length', 10), 10);
129
                $records_x_page = intval($this->params()->fromQuery('length', 10), 10);
130
                $page =  intval($start / $records_x_page);
130
                $page =  intval($start / $records_x_page);
131
                $page++;
131
                $page++;
132
                
132
 
133
                $order = $this->params()->fromQuery('order', []);
133
                $order = $this->params()->fromQuery('order', []);
134
                $order_field = empty($order[0]['column']) ? 99 : intval($order[0]['column'], 10);
134
                $order_field = empty($order[0]['column']) ? 99 : intval($order[0]['column'], 10);
Línea 135... Línea 135...
135
                $order_direction = empty($order[0]['dir']) ? 'ASC' : Functions::sanitizeFilterString(filter_var($order[0]['dir']));
135
                $order_direction = empty($order[0]['dir']) ? 'ASC' : Functions::sanitizeFilterString(filter_var($order[0]['dir']));
Línea 147... Línea 147...
147
 
147
 
148
 
148
 
149
                $queryMapper = QueryMapper::getInstance($this->adapter);
149
                $queryMapper = QueryMapper::getInstance($this->adapter);
150
                $select = $queryMapper->getSql()->select();
150
                $select = $queryMapper->getSql()->select();
151
                $select->from(['tb1' => RecruitmentSelectionVacancyMapper::_TABLE]);
151
                $select->from(['tb1' => RecruitmentSelectionVacancyMapper::_TABLE]);
152
                $select->columns(['uuid', 'name', 'last_date', 'status']);
152
                $select->columns(['uuid', 'name', 'last_date', 'sta tus']);
153
                $select->join(['tb2' => JobDescriptionMapper::_TABLE], 'tb1.job_description_id = tb2.id AND tb1.company_id = tb2.company_id', ['job_description' => 'name']);
153
                $select->join(['tb2' => JobDescriptionMapper::_TABLE], 'tb1.job_description_id = tb2.id AND tb1.company_id = tb2.company_id', ['job_description' => 'name']);
154
                
154
 
155
                $select->where->equalTo('tb1.company_id', $currentCompany->id);
155
                $select->where->equalTo('tb1.company_id', $currentCompany->id);
156
                
156
 
157
                if($search) {
157
                if ($search) {
158
                    $select->where->like('tb1.name', '%' . $search . '%');
158
                    $select->where->like('tb1.name', '%' . $search . '%');
159
                }
159
                }
160
                $select->order($order_field . ' ' . $order_direction);
160
                $select->order($order_field . ' ' . $order_direction);
161
                
161
 
162
                //echo $select->getSqlString($this->adapter->platform); exit;
162
                //echo $select->getSqlString($this->adapter->platform); exit;
163
                
163
 
164
                $hydrator   = new ArraySerializableHydrator();
164
                $hydrator   = new ArraySerializableHydrator();
165
                $resultset  = new HydratingResultSet($hydrator);
165
                $resultset  = new HydratingResultSet($hydrator);
166
                
166
 
167
                $adapter = new DbSelect($select, $queryMapper->getSql(), $resultset);
167
                $adapter = new DbSelect($select, $queryMapper->getSql(), $resultset);
168
                $paginator = new Paginator($adapter);
168
                $paginator = new Paginator($adapter);
169
                $paginator->setItemCountPerPage($records_x_page);
169
                $paginator->setItemCountPerPage($records_x_page);
170
                $paginator->setCurrentPageNumber($page);
170
                $paginator->setCurrentPageNumber($page);
Línea 171... Línea 171...
171
                
171
 
172
                
172
 
Línea 173... Línea 173...
173
 
173
 
174
                $items = [];
174
                $items = [];
175
                $records = $paginator->getCurrentItems();
175
                $records = $paginator->getCurrentItems();
176
 
176
 
177
                foreach ($records as $record) {
177
                foreach ($records as $record) {
178
                    $dt = \DateTime::createFromFormat('Y-m-d', $record['last_date']);
178
                    $dt = \DateTime::createFromFormat('Y-m-d', $record['last_date']);
179
                    
-
 
180
                    
179
 
181
                    
180
 
182
                    switch($record['status'])
181
 
183
                    {
182
                    switch ($record['status']) {
184
                        case RecruitmentSelectionVacancy::STATUS_ACTIVE : 
183
                        case RecruitmentSelectionVacancy::STATUS_ACTIVE:
185
                            $status = 'LABEL_ACTIVE';
184
                            $status = 'LABEL_ACTIVE';
186
                            break;
185
                            break;
187
                            
186
 
188
                        case RecruitmentSelectionVacancy::STATUS_INACTIVE : 
187
                        case RecruitmentSelectionVacancy::STATUS_INACTIVE:
189
                            $status = 'LABEL_INACTIVE';
188
                            $status = 'LABEL_INACTIVE';
190
                            break;
189
                            break;
191
                            
190
 
192
                        case RecruitmentSelectionVacancy::STATUS_EXPIRED : 
191
                        case RecruitmentSelectionVacancy::STATUS_EXPIRED:
193
                            $status = 'LABEL_EXPIRED';
192
                            $status = 'LABEL_EXPIRED';
194
                            break;
193
                            break;
195
                            
194
 
196
                        case RecruitmentSelectionVacancy::STATUS_COMPLETED :
195
                        case RecruitmentSelectionVacancy::STATUS_COMPLETED:
197
                            $status = 'LABEL_COMPLETED';
196
                            $status = 'LABEL_COMPLETED';
198
                            break;
197
                            break;
199
                            
-
 
200
                        default :   
198
 
201
                            $status = 'LABEL_UNKNOWN';
199
                        default:
202
                            break;
200
                            $status = 'LABEL_UNKNOWN';
203
                            
201
                            break;
204
                    }
202
                    }
205
                    
203
 
206
                    
204
 
207
                    if($record['status'] == RecruitmentSelectionVacancy::STATUS_ACTIVE || $record['status'] ==  RecruitmentSelectionVacancy::STATUS_INACTIVE) {
205
                    if ($record['status'] == RecruitmentSelectionVacancy::STATUS_ACTIVE || $record['status'] ==  RecruitmentSelectionVacancy::STATUS_INACTIVE) {
208
                        $actions = [
206
                        $actions = [
209
                            'link_edit' => $allowEdit ? $this->url()->fromRoute('recruitment-and-selection/vacancies/edit', ['id' => $record['uuid']]) : '',
207
                            'link_edit' => $allowEdit ? $this->url()->fromRoute('recruitment-and-selection/vacancies/edit', ['id' => $record['uuid']]) : '',
210
                            'link_delete' => $allowDelete ? $this->url()->fromRoute('recruitment-and-selection/vacancies/delete', ['id' => $record['uuid']]) : ''
208
                            'link_delete' => $allowDelete ? $this->url()->fromRoute('recruitment-and-selection/vacancies/delete', ['id' => $record['uuid']]) : ''
211
                        ];
209
                        ];
212
                    } else {
210
                    } else {
213
                        
211
 
214
                        $actions = [
212
                        $actions = [
215
                            'link_edit' => '',
213
                            'link_edit' => '',
216
                            'link_delete' => '',
214
                            'link_delete' => '',
217
                        ]; 
215
                        ];
218
                    }
216
                    }
219
                    
217
 
220
                    $item = [
218
                    $item = [
221
                      'name' => $record['name'],
219
                        'name' => $record['name'],
222
                      'job_description' => $record['job_description'],
220
                        'job_description' => $record['job_description'],
223
                      'last_date' => $dt->format('d/m/Y'),
221
                        'last_date' => $dt->format('d/m/Y'),
Línea 224... Línea 222...
224
                      'status' => $status,
222
                        'status' => $status,
225
                      'actions' =>  $actions,
223
                        'actions' =>  $actions,
Línea 226... Línea 224...
226
                    ];
224
                    ];
Línea 261... Línea 259...
261
                }
259
                }
Línea 262... Línea 260...
262
 
260
 
263
                $records = $currentCompany ?
261
                $records = $currentCompany ?
264
                    $jobDescriptionMapper->fetchAllActiveByCompanyId($currentCompany->id) :
262
                    $jobDescriptionMapper->fetchAllActiveByCompanyId($currentCompany->id) :
265
                    $jobDescriptionMapper->fetchAllActiveByDefault();
263
                    $jobDescriptionMapper->fetchAllActiveByDefault();
266
                
264
 
267
                foreach ($records as $record) {
265
                foreach ($records as $record) {
268
                    $jobDescritions[$record->uuid] = $record->name;
266
                    $jobDescritions[$record->uuid] = $record->name;
Línea 300... Línea 298...
300
 
298
 
301
        if ($request->isPost()) {
299
        if ($request->isPost()) {
302
            $form = new RecruitmentSelectionVacancyForm($this->adapter, $currentCompany->id);
300
            $form = new RecruitmentSelectionVacancyForm($this->adapter, $currentCompany->id);
Línea 303... Línea 301...
303
            $dataPost = $request->getPost()->toArray();
301
            $dataPost = $request->getPost()->toArray();
304
 
302
 
305
            
303
 
306
            if(!empty($dataPost['last_date'])) {
304
            if (!empty($dataPost['last_date'])) {
307
                $dt = \DateTime::createFromFormat('d/m/Y', $dataPost['last_date']);
305
                $dt = \DateTime::createFromFormat('d/m/Y', $dataPost['last_date']);
308
                if($dt) {
306
                if ($dt) {
309
                    $dataPost['last_date'] = $dt->format('Y-m-d');
307
                    $dataPost['last_date'] = $dt->format('Y-m-d');
310
                } else {
308
                } else {
311
                    $dataPost['last_date'] = date('Y-m-d');
309
                    $dataPost['last_date'] = date('Y-m-d');
312
                }
310
                }
Línea 313... Línea 311...
313
            }
311
            }
Línea 314... Línea 312...
314
            
312
 
Línea 315... Línea 313...
315
 
313
 
316
 
314
 
Línea 317... Línea 315...
317
            $dataPost['status'] = isset($dataPost['status']) ? $dataPost['status'] : RecruitmentSelectionVacancy::STATUS_INACTIVE;
315
            $dataPost['status'] = isset($dataPost['status']) ? $dataPost['status'] : RecruitmentSelectionVacancy::STATUS_INACTIVE;
318
 
316
 
Línea 319... Línea 317...
319
            $form->setData($dataPost);
317
            $form->setData($dataPost);
320
 
318
 
Línea 444... Línea 442...
444
 
442
 
445
 
443
 
446
        if ($request->isPost()) {
444
        if ($request->isPost()) {
447
            $form = new RecruitmentSelectionVacancyForm($this->adapter, $currentCompany->id);
445
            $form = new RecruitmentSelectionVacancyForm($this->adapter, $currentCompany->id);
448
            $dataPost = $request->getPost()->toArray();
446
            $dataPost = $request->getPost()->toArray();
449
            
447
 
450
            if(!empty($dataPost['last_date'])) {
448
            if (!empty($dataPost['last_date'])) {
451
                $dt = \DateTime::createFromFormat('d/m/Y', $dataPost['last_date']);
449
                $dt = \DateTime::createFromFormat('d/m/Y', $dataPost['last_date']);
452
                if($dt) {
450
                if ($dt) {
453
                    $dataPost['last_date'] = $dt->format('Y-m-d');
451
                    $dataPost['last_date'] = $dt->format('Y-m-d');
454
                } else {
452
                } else {
455
                    $dataPost['last_date'] = date('Y-m-d');
453
                    $dataPost['last_date'] = date('Y-m-d');
456
                }
454
                }
457
            }
455
            }
Línea 458... Línea 456...
458
            
456
 
Línea 459... Línea 457...
459
            $dataPost['status'] = isset($dataPost['status']) ? $dataPost['status'] : RecruitmentSelectionVacancy::STATUS_INACTIVE;
457
            $dataPost['status'] = isset($dataPost['status']) ? $dataPost['status'] : RecruitmentSelectionVacancy::STATUS_INACTIVE;
Línea 467... Línea 465...
467
                $hydrator->hydrate($dataPost, $vacancy);
465
                $hydrator->hydrate($dataPost, $vacancy);
Línea 468... Línea 466...
468
 
466
 
469
                if (!$vacancy->status) {
467
                if (!$vacancy->status) {
470
                    $vacancy->status = RecruitmentSelectionVacancy::STATUS_INACTIVE;
468
                    $vacancy->status = RecruitmentSelectionVacancy::STATUS_INACTIVE;
471
                }
469
                }
472
                
470
 
473
                $locationMapper = LocationMapper::getInstance($this->adapter);
471
                $locationMapper = LocationMapper::getInstance($this->adapter);
474
                $location = $locationMapper->fetchOne($vacancy->location_id);
472
                $location = $locationMapper->fetchOne($vacancy->location_id);
475
                $hydrator->hydrate($dataPost, $location);
473
                $hydrator->hydrate($dataPost, $location);
Línea 484... Línea 482...
484
                $vacancy->job_category_id = $jobCategory->id;
482
                $vacancy->job_category_id = $jobCategory->id;
Línea 485... Línea 483...
485
 
483
 
486
                $industryMapper = IndustryMapper::getInstance($this->adapter);
484
                $industryMapper = IndustryMapper::getInstance($this->adapter);
487
                $industry = $industryMapper->fetchOneByUuid($dataPost['industry_id']);
485
                $industry = $industryMapper->fetchOneByUuid($dataPost['industry_id']);
488
                $vacancy->industry_id = $industry->id;
486
                $vacancy->industry_id = $industry->id;
Línea 489... Línea 487...
489
    
487
 
Línea 490... Línea 488...
490
 
488
 
Línea 523... Línea 521...
523
            $locationMapper = LocationMapper::getInstance($this->adapter);
521
            $locationMapper = LocationMapper::getInstance($this->adapter);
524
            $location = $locationMapper->fetchOne($vacancy->location_id);
522
            $location = $locationMapper->fetchOne($vacancy->location_id);
Línea 525... Línea 523...
525
 
523
 
526
            $jobDescriptionMapper = JobDescriptionMapper::getInstance($this->adapter);
524
            $jobDescriptionMapper = JobDescriptionMapper::getInstance($this->adapter);
527
            $jobDescription = $jobDescriptionMapper->fetchOne($vacancy->job_description_id);
525
            $jobDescription = $jobDescriptionMapper->fetchOne($vacancy->job_description_id);
528
            
526
 
529
            $jobCategoryMapper =  JobCategoryMapper::getInstance($this->adapter);
527
            $jobCategoryMapper =  JobCategoryMapper::getInstance($this->adapter);
530
            $jobCategory = $jobCategoryMapper->fetchOne($vacancy->job_category_id);
528
            $jobCategory = $jobCategoryMapper->fetchOne($vacancy->job_category_id);
531
            
529
 
532
            $industryMapper = IndustryMapper::getInstance($this->adapter);
530
            $industryMapper = IndustryMapper::getInstance($this->adapter);
533
            $industry = $industryMapper->fetchOne($vacancy->industry_id);
531
            $industry = $industryMapper->fetchOne($vacancy->industry_id);
534
            
532
 
535
            
533
 
536
            $dt = \DateTime::createFromFormat('Y-m-d', $vacancy->last_date);
534
            $dt = \DateTime::createFromFormat('Y-m-d', $vacancy->last_date);
Línea 537... Línea 535...
537
            $last_date = $dt->format('d/m/Y');
535
            $last_date = $dt->format('d/m/Y');
538
 
536
 
Línea 558... Línea 556...
558
                    'last_date' => $last_date,
556
                    'last_date' => $last_date,
559
                    'status' => $vacancy->status,
557
                    'status' => $vacancy->status,
Línea 560... Línea 558...
560
 
558
 
561
                ]
559
                ]
562
            ];
-
 
563
 
-
 
564
 
560
            ];
565
        } else {
561
        } else {
566
            $data = [
562
            $data = [
567
                'success' => false,
563
                'success' => false,
568
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
564
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
569
            ];
-
 
570
 
-
 
571
 
565
            ];
Línea 572... Línea 566...
572
        }
566
        }
573
 
567
 
Línea 640... Línea 634...
640
            return new JsonModel($data);
634
            return new JsonModel($data);
641
        }
635
        }
Línea 642... Línea 636...
642
 
636
 
643
        return new JsonModel($data);
637
        return new JsonModel($data);
644
    }
638
    }
645
    
639
 
646
    
640
 
647
    
641
 
648
    public function serialize($jobDescription)
642
    public function serialize($jobDescription)
649
    {
643
    {
650
        
644
 
651
        
645
 
652
        
646
 
653
        
647
 
654
        $behaviorMapper = BehaviorMapper::getInstance($this->adapter);
648
        $behaviorMapper = BehaviorMapper::getInstance($this->adapter);
655
        $competencyMapper = CompetencyMapper::getInstance($this->adapter);
649
        $competencyMapper = CompetencyMapper::getInstance($this->adapter);
656
        $competencyTypeMapper = CompetencyTypeMapper::getInstance($this->adapter);
650
        $competencyTypeMapper = CompetencyTypeMapper::getInstance($this->adapter);
657
        
651
 
658
        $competencyTypes = [];
652
        $competencyTypes = [];
659
        $competencies = [];
653
        $competencies = [];
660
        $behaviors = [];
654
        $behaviors = [];
661
        $competencies_selected = [];
655
        $competencies_selected = [];
662
        $subordinates_selected = [];
656
        $subordinates_selected = [];
663
        
657
 
664
        $jobDescriptionCompetencyMapper = JobDescriptionCompetencyMapper::getInstance($this->adapter);
658
        $jobDescriptionCompetencyMapper = JobDescriptionCompetencyMapper::getInstance($this->adapter);
665
        $jobDescriptionCompetencyBehaviorMapper = JobDescriptionCompetencyBehaviorMapper::getInstance($this->adapter);
659
        $jobDescriptionCompetencyBehaviorMapper = JobDescriptionCompetencyBehaviorMapper::getInstance($this->adapter);
666
        
660
 
667
        $jobDescriptionCompetencies = $jobDescriptionCompetencyMapper->fetchAllByJobDescriptionId($jobDescription->id);
661
        $jobDescriptionCompetencies = $jobDescriptionCompetencyMapper->fetchAllByJobDescriptionId($jobDescription->id);
668
        foreach($jobDescriptionCompetencies as $jobDescriptionCompetency)
-
 
669
        {
662
        foreach ($jobDescriptionCompetencies as $jobDescriptionCompetency) {
670
            
663
 
671
            if(isset($competencies[$jobDescriptionCompetency->competency_id])) {
664
            if (isset($competencies[$jobDescriptionCompetency->competency_id])) {
672
                $competency = $competencies[$jobDescriptionCompetency->competency_id];
665
                $competency = $competencies[$jobDescriptionCompetency->competency_id];
673
            } else {
666
            } else {
674
                
667
 
675
                $competency = $competencyMapper->fetchOne($jobDescriptionCompetency->competency_id);
668
                $competency = $competencyMapper->fetchOne($jobDescriptionCompetency->competency_id);
676
                if(!$competency) {
669
                if (!$competency) {
677
                    continue;
670
                    continue;
678
                }
671
                }
679
                
672
 
680
                
673
 
681
                
674
 
682
                $competencies[$jobDescriptionCompetency->competency_id] = new \stdClass();
675
                $competencies[$jobDescriptionCompetency->competency_id] = new \stdClass();
683
                $competencies[$jobDescriptionCompetency->competency_id]->uuid = $competency->uuid;
676
                $competencies[$jobDescriptionCompetency->competency_id]->uuid = $competency->uuid;
684
                $competencies[$jobDescriptionCompetency->competency_id]->name = $competency->name;
677
                $competencies[$jobDescriptionCompetency->competency_id]->name = $competency->name;
685
                $competencies[$jobDescriptionCompetency->competency_id]->description = $competency->description;
-
 
686
                
678
                $competencies[$jobDescriptionCompetency->competency_id]->description = $competency->description;
687
            }
679
            }
688
            
680
 
689
            
681
 
690
            if(isset($competencyTypes[$competency->competency_type_id])) {
682
            if (isset($competencyTypes[$competency->competency_type_id])) {
691
                $competencyType = $competencyTypes[$competency->competency_type_id];
683
                $competencyType = $competencyTypes[$competency->competency_type_id];
692
            } else {
684
            } else {
693
                
685
 
694
                $competencyType = $competencyTypeMapper->fetchOne($competency->competency_type_id);
686
                $competencyType = $competencyTypeMapper->fetchOne($competency->competency_type_id);
695
                if(!$competencyType) {
687
                if (!$competencyType) {
696
                    continue;
688
                    continue;
697
                }
689
                }
698
                
690
 
699
                $competencyTypes[$competency->competency_type_id] = new \stdClass();
691
                $competencyTypes[$competency->competency_type_id] = new \stdClass();
700
                $competencyTypes[$competency->competency_type_id]->uuid = $competencyType->uuid;
692
                $competencyTypes[$competency->competency_type_id]->uuid = $competencyType->uuid;
701
                $competencyTypes[$competency->competency_type_id]->name = $competencyType->name;
693
                $competencyTypes[$competency->competency_type_id]->name = $competencyType->name;
702
                $competencyTypes[$competency->competency_type_id]->description = $competencyType->description;
-
 
703
                
694
                $competencyTypes[$competency->competency_type_id]->description = $competencyType->description;
704
            }
695
            }
705
            
696
 
706
            $competency_selected = [
697
            $competency_selected = [
707
                'uuid' => $competency->uuid,
698
                'uuid' => $competency->uuid,
708
                'competency_type_uuid' => $competencyType->uuid,
699
                'competency_type_uuid' => $competencyType->uuid,
709
                'behaviors' => []
700
                'behaviors' => []
710
            ];
701
            ];
711
            
702
 
712
            
703
 
713
            $jobDescriptionCompetencyBehaviors = $jobDescriptionCompetencyBehaviorMapper->fetchAllByJobDescriptionIdAndCompetencyId($jobDescriptionCompetency->job_description_id, $jobDescriptionCompetency->competency_id);
704
            $jobDescriptionCompetencyBehaviors = $jobDescriptionCompetencyBehaviorMapper->fetchAllByJobDescriptionIdAndCompetencyId($jobDescriptionCompetency->job_description_id, $jobDescriptionCompetency->competency_id);
714
            foreach($jobDescriptionCompetencyBehaviors as $jobDescriptionCompetencyBehavior)
-
 
715
            {
705
            foreach ($jobDescriptionCompetencyBehaviors as $jobDescriptionCompetencyBehavior) {
716
                
706
 
717
                
707
 
718
                if(isset($behaviors[$jobDescriptionCompetencyBehavior->behavior_id])) {
708
                if (isset($behaviors[$jobDescriptionCompetencyBehavior->behavior_id])) {
719
                    $behavior = $behaviors[$jobDescriptionCompetencyBehavior->behavior_id];
709
                    $behavior = $behaviors[$jobDescriptionCompetencyBehavior->behavior_id];
720
                } else {
710
                } else {
721
                    
711
 
722
                    $behavior = $behaviorMapper->fetchOne($jobDescriptionCompetencyBehavior->behavior_id);
712
                    $behavior = $behaviorMapper->fetchOne($jobDescriptionCompetencyBehavior->behavior_id);
723
                    if(!$behavior) {
713
                    if (!$behavior) {
724
                        
714
 
725
                        continue;
715
                        continue;
726
                    }
716
                    }
727
                    
717
 
728
                    $behaviors[$jobDescriptionCompetencyBehavior->behavior_id] = new \stdClass();
718
                    $behaviors[$jobDescriptionCompetencyBehavior->behavior_id] = new \stdClass();
729
                    $behaviors[$jobDescriptionCompetencyBehavior->behavior_id]->uuid = $behavior->uuid;
719
                    $behaviors[$jobDescriptionCompetencyBehavior->behavior_id]->uuid = $behavior->uuid;
730
                    $behaviors[$jobDescriptionCompetencyBehavior->behavior_id]->description = $behavior->description;
-
 
731
                    
720
                    $behaviors[$jobDescriptionCompetencyBehavior->behavior_id]->description = $behavior->description;
732
                }
721
                }
733
                
722
 
734
                
723
 
735
                
724
 
736
                
725
 
737
                array_push($competency_selected['behaviors'], ['uuid' => $behavior->uuid, 'level' => $jobDescriptionCompetencyBehavior->level]);
-
 
738
                
-
 
739
                
726
                array_push($competency_selected['behaviors'], ['uuid' => $behavior->uuid, 'level' => $jobDescriptionCompetencyBehavior->level]);
740
            }
727
            }
741
            
728
 
742
            array_push($competencies_selected, $competency_selected);
-
 
743
            
-
 
744
            
-
 
745
            
729
            array_push($competencies_selected, $competency_selected);
746
        }
730
        }
747
        
731
 
748
        
732
 
749
        $jobDescriptionMapper = JobDescriptionMapper::getInstance($this->adapter);
733
        $jobDescriptionMapper = JobDescriptionMapper::getInstance($this->adapter);
750
        
734
 
751
        $jobDescriptionSubordinateMapper = JobDescriptionSubordinateMapper::getInstance($this->adapter);
735
        $jobDescriptionSubordinateMapper = JobDescriptionSubordinateMapper::getInstance($this->adapter);
752
        $jobDescriptionSubordinates = $jobDescriptionSubordinateMapper->fetchAllByJobDescriptionIdTopLevel($jobDescription->id);
736
        $jobDescriptionSubordinates = $jobDescriptionSubordinateMapper->fetchAllByJobDescriptionIdTopLevel($jobDescription->id);
753
        
737
 
754
        foreach($jobDescriptionSubordinates as $jobDescriptionSubordinate)
-
 
755
        {
738
        foreach ($jobDescriptionSubordinates as $jobDescriptionSubordinate) {
756
            $jobDescriptionForSubordinate = $jobDescriptionMapper->fetchOne($jobDescriptionSubordinate->job_description_id_low_level);
739
            $jobDescriptionForSubordinate = $jobDescriptionMapper->fetchOne($jobDescriptionSubordinate->job_description_id_low_level);
757
            if($jobDescriptionForSubordinate) {
740
            if ($jobDescriptionForSubordinate) {
758
                array_push($subordinates_selected, ['uuid' => $jobDescriptionForSubordinate->uuid ]);
741
                array_push($subordinates_selected, ['uuid' => $jobDescriptionForSubordinate->uuid]);
759
            }
-
 
760
            
-
 
761
            
-
 
762
            
742
            }
763
        }
743
        }
764
        
744
 
765
        if($jobDescription->job_description_id_boss) {
745
        if ($jobDescription->job_description_id_boss) {
766
            
746
 
767
            $jobDescriptionBoss = $jobDescriptionMapper->fetchOne($jobDescription->job_description_id_boss);
747
            $jobDescriptionBoss = $jobDescriptionMapper->fetchOne($jobDescription->job_description_id_boss);
768
            if($jobDescriptionBoss) {
748
            if ($jobDescriptionBoss) {
769
                $job_description_id_boss = $jobDescriptionBoss->uuid;
749
                $job_description_id_boss = $jobDescriptionBoss->uuid;
770
            }
750
            }
771
        } else {
751
        } else {
772
            $job_description_id_boss = '';
752
            $job_description_id_boss = '';
773
        }
753
        }
774
        
754
 
775
        $content = [
755
        $content = [
776
            'uuid' => $jobDescription->uuid,
756
            'uuid' => $jobDescription->uuid,
777
            'name' => $jobDescription->name,
757
            'name' => $jobDescription->name,
778
            'functions' => $jobDescription->functions,
758
            'functions' => $jobDescription->functions,
Línea 781... Línea 761...
781
            'competency_types' => $competencyTypes,
761
            'competency_types' => $competencyTypes,
782
            'competencies' => $competencies,
762
            'competencies' => $competencies,
783
            'behaviors' => $behaviors,
763
            'behaviors' => $behaviors,
784
            'competencies_selected' => $competencies_selected,
764
            'competencies_selected' => $competencies_selected,
785
            'subordinates_selected' => $subordinates_selected,
765
            'subordinates_selected' => $subordinates_selected,
786
            
766
 
787
        ];
767
        ];
788
        
768
 
789
        return json_encode($content);
769
        return json_encode($content);
790
    }
770
    }
791
}
771
}