Proyectos de Subversion LeadersLinked - Backend

Rev

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

Rev 1101 Rev 1263
Línea 120... Línea 120...
120
                            'id' => $record->id,
120
                            'id' => $record->id,
121
                            'name' => $record->name,
121
                            'name' => $record->name,
122
                            'job_description' => $jobDescription->name,
122
                            'job_description' => $jobDescription->name,
123
                            'status' => $record->status,
123
                            'status' => $record->status,
124
                            'actions' => [
124
                            'actions' => [
-
 
125
                                'link_report' => $this->url()->fromRoute('performance-evaluation/forms/report', ['id' => $record->uuid]),
125
                                'link_edit' => $this->url()->fromRoute('performance-evaluation/forms/edit', ['id' => $record->uuid]),
126
                                'link_edit' => $this->url()->fromRoute('performance-evaluation/forms/edit', ['id' => $record->uuid]),
126
                                'link_delete' => $this->url()->fromRoute('performance-evaluation/forms/delete', ['id' => $record->uuid])
127
                                'link_delete' => $this->url()->fromRoute('performance-evaluation/forms/delete', ['id' => $record->uuid])
127
                            ]
128
                            ]
128
                        ];
129
                        ];
129
                    }
130
                    }
Línea 455... Línea 456...
455
        }
456
        }
Línea 456... Línea 457...
456
 
457
 
457
        return new JsonModel($data);
458
        return new JsonModel($data);
Línea -... Línea 459...
-
 
459
    }
-
 
460
 
-
 
461
 
-
 
462
    public function takeaTestAction() {
-
 
463
        $currentUserPlugin = $this->plugin('currentUserPlugin');
-
 
464
        $currentUser = $currentUserPlugin->getUser();
-
 
465
 
-
 
466
        $uuid = $this->params()->fromRoute('id');
-
 
467
 
-
 
468
        $companyPerformanceEvaluationFormMapper = CompanyPerformanceEvaluationFormMapper::getInstance($this->adapter);
-
 
469
        $companyPerformanceEvaluationForm = $companyPerformanceEvaluationFormMapper->fetchOneByUuid($uuid);
-
 
470
 
-
 
471
        if (!$companyPerformanceEvaluationForm) {
-
 
472
            return new JsonModel([
-
 
473
                'success' => false,
-
 
474
                'data' => 'ERROR_FORM_EVALUATION_NOT_FOUND'
-
 
475
            ]);
-
 
476
        }
-
 
477
 
-
 
478
        if ($companyPerformanceEvaluationForm->status == CompanyPerformanceEvaluationForm::STATUS_INACTIVE) {
-
 
479
            return new JsonModel([
-
 
480
                'success' => false,
-
 
481
                'data' => 'ERROR_FORM_EVALUATION_IS_INACTIVE'
-
 
482
            ]);
-
 
483
        }
-
 
484
 
-
 
485
 
-
 
486
        $companyPerformanceEvaluationFormUserMapper = CompanyPerformanceEvaluationFormUserMapper::getInstance($this->adapter);
-
 
487
        $companyPerformanceEvaluationFormUser = $companyPerformanceEvaluationFormUserMapper->fetchOneByFormIdAndUserId($companyPerformanceEvaluationForm->id, $currentUser->id);
-
 
488
        if (!$companyPerformanceEvaluationFormUser) {
-
 
489
            return new JsonModel([
-
 
490
                'success' => false,
-
 
491
                'data' => 'ERROR_FORM_EVALUATION_YOU_CAN_NOT_TAKE'
-
 
492
            ]);
-
 
493
        }
-
 
494
 
-
 
495
 
-
 
496
        $companyPerformanceEvaluationTestMapper = CompanyPerformanceEvaluationTestMapper::getInstance($this->adapter);
-
 
497
        $companyPerformanceEvaluationTest = $companyPerformanceEvaluationTestMapper->fetchOneBy($companyPerformanceEvaluationForm->id, $currentUser->id);
-
 
498
 
-
 
499
        if ($companyPerformanceEvaluationTest && $companyPerformanceEvaluationTest->status != CompanyPerformanceEvaluationTest::STATUS_DRAFT) {
-
 
500
            return new JsonModel([
-
 
501
                'success' => false,
-
 
502
                'data' => 'ERROR_FORM_EVALUATION_ALREADY_YOUR_APPLICATION_IN_THIS_TEST'
-
 
503
            ]);
-
 
504
        }
-
 
505
 
-
 
506
        $request = $this->getRequest();
-
 
507
        if ($request->isGet()) {
-
 
508
 
-
 
509
 
-
 
510
 
-
 
511
            // set content 
-
 
512
 
-
 
513
            $content = $companyPerformanceEvaluationTest && $companyPerformanceEvaluationTest->status == CompanyPerformanceEvaluationTest::STATUS_DRAFT ?
-
 
514
                    json_decode($companyPerformanceEvaluationTest->content, true) :
-
 
515
                    json_decode($companyPerformanceEvaluationForm->content, true);
-
 
516
 
-
 
517
            
-
 
518
            //Competencies
-
 
519
 
-
 
520
            $jobDescriptionCompetencyMapper = JobDescriptionCompetencyMapper::getInstance($this->adapter);
-
 
521
            $competencyMapper = CompetencyMapper::getInstance($this->adapter);
-
 
522
            $competenceTypeMapper = CompetencyTypeMapper::getInstance($this->adapter);
-
 
523
            $behaviorCompetencyMapper = BehaviorCompetencyMapper::getInstance($this->adapter);
-
 
524
            $jobDescriptionBehaviorCompetencyMapper = JobDescriptionBehaviorCompetencyMapper::getInstance($this->adapter);
-
 
525
            $behaviorMapper = BehaviorsMapper::getInstance($this->adapter);
-
 
526
 
-
 
527
            $competencies = [];
-
 
528
 
-
 
529
            $jobDescriptionCompetency = $jobDescriptionCompetencyMapper->fetchByJobDescriptionId($companyPerformanceEvaluationForm->job_description_id);
-
 
530
 
-
 
531
            foreach ($jobDescriptionCompetency as $record) {
-
 
532
 
-
 
533
 
-
 
534
                $competency = $competencyMapper->fetchOne($record->competency_id);
-
 
535
                $competenceType = $competenceTypeMapper->fetchOne($competency->competency_type_id);
-
 
536
 
-
 
537
                if($competency && $competenceType){
-
 
538
 
-
 
539
                    $behaviorCompetencies = $behaviorCompetencyMapper->fetchByCompetencyId($competency->id);
-
 
540
                    $behaviors = [];
-
 
541
    
-
 
542
                    foreach ($behaviorCompetencies as $rows) {
-
 
543
    
-
 
544
                        $behavior = $behaviorMapper->fetchOne($rows->behavior_id);
-
 
545
                        $jobDescriptionBehaviorCompetency = $jobDescriptionBehaviorCompetencyMapper->fetchOneByBehavior($companyPerformanceEvaluationForm->job_description_id, $record->competency_id, $rows->behavior_id);
-
 
546
    
-
 
547
                        if ($behavior && $jobDescriptionBehaviorCompetency) {
-
 
548
    
-
 
549
                            array_push($behaviors, [
-
 
550
                                'id_section' => $competency->uuid,
-
 
551
                                'id_option' => $behavior->uuid,
-
 
552
                                'title' => $behavior->description,
-
 
553
                                'level' => $jobDescriptionBehaviorCompetency->level,
-
 
554
                                'answer' => ''
-
 
555
                            ]);
-
 
556
                        }
-
 
557
                    }
-
 
558
    
-
 
559
                    array_push($competencies, [
-
 
560
                        'id_section' => $competency->uuid,
-
 
561
                        'title' => $competenceType->name. '  '.$competency->name,
-
 
562
                        'text' => $competency->description,
-
 
563
                        'type'=>'competency',
-
 
564
                        'options' => $behaviors
-
 
565
                    ]);
-
 
566
 
-
 
567
                }
-
 
568
 
-
 
569
            }
-
 
570
 
-
 
571
            return new JsonModel([
-
 
572
                'success' => true,
-
 
573
                'data' => [
-
 
574
                    'name' => $companyPerformanceEvaluationForm->name,
-
 
575
                    'description' => $companyPerformanceEvaluationForm->description,
-
 
576
                    'text' => $companyPerformanceEvaluationForm->text,
-
 
577
                    'competencies'=>$competencies,
-
 
578
                    'content' => $content,
-
 
579
                ]
-
 
580
            ]);
-
 
581
        }
-
 
582
 
-
 
583
        if ($request->isPost()) {
-
 
584
            $form = new PerformanceEvaluationTestForm();
-
 
585
            $dataPost = $request->getPost()->toArray();
-
 
586
 
-
 
587
            $form->setData($dataPost);
-
 
588
 
-
 
589
            if ($form->isValid()) {
-
 
590
 
-
 
591
 
-
 
592
                $dataPost = (array) $form->getData();
-
 
593
 
-
 
594
                $performanceEvaluationTest = new CompanyPerformanceEvaluationTest();
-
 
595
                $performanceEvaluationTest->company_id = $companyPerformanceEvaluationForm->company_id;
-
 
596
                $performanceEvaluationTest->form_id = $companyPerformanceEvaluationForm->id;
-
 
597
                $performanceEvaluationTest->user_id = $currentUser->id;
-
 
598
                $performanceEvaluationTest->status = $dataPost['status'];
-
 
599
                $performanceEvaluationTest->content = $dataPost['content'];
-
 
600
 
-
 
601
 
-
 
602
                //Check if the form is already registered
-
 
603
                $companyPerformanceEvaluationTest = $companyPerformanceEvaluationTestMapper->fetchOneBy($companyPerformanceEvaluationForm->id, $currentUser->id);
-
 
604
 
-
 
605
 
-
 
606
                $result = $companyPerformanceEvaluationTest ?
-
 
607
                        $companyPerformanceEvaluationTestMapper->update($performanceEvaluationTest, $companyPerformanceEvaluationTest->id) :
-
 
608
                        $companyPerformanceEvaluationTestMapper->insert($performanceEvaluationTest);
-
 
609
 
-
 
610
 
-
 
611
                if ($result) {
-
 
612
                    $this->logger->info('Se agrego un nuevo test de auto-evaluación : ' . $companyPerformanceEvaluationForm->name, ['user_id' => $currentUser->id, 'ip' => Functions::getUserIP()]);
-
 
613
 
-
 
614
                    $data = [
-
 
615
                        'success' => true,
-
 
616
                        'data' => $companyPerformanceEvaluationTest ? 'LABEL_RECORD_UPDATED' : 'LABEL_RECORD_ADDED'
-
 
617
                    ];
-
 
618
                } else {
-
 
619
                    $data = [
-
 
620
                        'success' => false,
-
 
621
                        'data' => $companyPerformanceEvaluationTestMapper->getError()
-
 
622
                    ];
-
 
623
                }
-
 
624
 
-
 
625
                return new JsonModel($data);
-
 
626
            } else {
-
 
627
                $messages = [];
-
 
628
                $form_messages = (array) $form->getMessages();
-
 
629
                foreach ($form_messages as $fieldname => $field_messages) {
-
 
630
 
-
 
631
                    $messages[$fieldname] = array_values($field_messages);
-
 
632
                }
-
 
633
 
-
 
634
                return new JsonModel([
-
 
635
                    'success' => false,
-
 
636
                    'data' => $messages
-
 
637
                ]);
-
 
638
            }
-
 
639
        }
-
 
640
 
-
 
641
        return new JsonModel([
-
 
642
            'success' => false,
-
 
643
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
-
 
644
        ]);
458
    }
645
    }