Proyectos de Subversion LeadersLinked - Backend

Rev

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

Rev 15030 Rev 15079
Línea 22... Línea 22...
22
use LeadersLinked\Mapper\CompetencyTypeMapper;
22
use LeadersLinked\Mapper\CompetencyTypeMapper;
23
use LeadersLinked\Mapper\CompetencyBehaviorMapper;
23
use LeadersLinked\Mapper\CompetencyBehaviorMapper;
24
use LeadersLinked\Mapper\BehaviorMapper;
24
use LeadersLinked\Mapper\BehaviorMapper;
25
use LeadersLinked\Mapper\JobDescriptionBehaviorCompetencyMapper;
25
use LeadersLinked\Mapper\JobDescriptionBehaviorCompetencyMapper;
26
use LeadersLinked\Mapper\CompanyMapper;
26
use LeadersLinked\Mapper\CompanyMapper;
-
 
27
use LeadersLinked\Mapper\JobDescriptionSubordinateMapper;
27
use LeadersLinked\Model\Company;
28
use LeadersLinked\Model\Company;
Línea 28... Línea 29...
28
 
29
 
Línea 29... Línea 30...
29
class PerformanceEvaluationFormController extends AbstractActionController {
30
class PerformanceEvaluationFormController extends AbstractActionController {
Línea 581... Línea 582...
581
     * @param Company $currentCompany
582
     * @param Company $currentCompany
582
     * @param CompanyPerformanceEvaluationForm $performanceEvaluation
583
     * @param CompanyPerformanceEvaluationForm $performanceEvaluation
583
     * @param array $competencies
584
     * @param array $competencies
584
     * @return mixed
585
     * @return mixed
585
     */
586
     */
586
    public function renderPDF($currentCompany, $performanceEvaluation, $competencies) {
587
    public function renderPDF($company, $performanceEvaluation, $competencies) {
Línea 587... Línea 588...
587
 
588
 
588
        //Generate New PDF
589
        //Generate New PDF
Línea 589... Línea -...
589
        $pdf = new PerformanceEvaluationPdf();
-
 
590
 
-
 
591
        $pdf->header = '';
-
 
592
        $pdf->footer = '';
-
 
593
 
590
        $pdf = new PerformanceEvaluationPdf();
594
        if ($currentCompany) {
591
 
595
            //get company Data
592
        $target_path = $this->config['leaderslinked.fullpath.company'] . DIRECTORY_SEPARATOR . $company->uuid;
596
            $companyMapper = CompanyMapper::getInstance($this->adapter);
-
 
597
            $company = $companyMapper->fetchOne($currentCompany->id);
593
        $header = $company->header ? $target_path . DIRECTORY_SEPARATOR . $company->header : '';
-
 
594
        if(empty($header) || !file_exists($header)) {
598
 
595
            $header = $this->config['leaderslinked.images_default.company_pdf_header'];
599
            $target_path = $this->config['leaderslinked.fullpath.company'] . DIRECTORY_SEPARATOR . $company->uuid;
596
        }
-
 
597
        
600
 
598
        $footer = $company->footer ? $target_path . DIRECTORY_SEPARATOR . $company->footer : '';
601
            $pdf->header = $company->header ? $target_path . DIRECTORY_SEPARATOR . $company->header : '';
599
        if(empty($footer) || !file_exists($footer)) {
-
 
600
            $footer = $this->config['leaderslinked.images_default.company_pdf_footer'];
-
 
601
        }
-
 
602
        
Línea 602... Línea 603...
602
            $pdf->footer = $company->footer ? $target_path . DIRECTORY_SEPARATOR . $company->footer : '';
603
        $pdf->header = $header;
Línea 603... Línea 604...
603
        }
604
        $pdf->footer = $footer;
604
 
605
 
Línea 694... Línea 695...
694
            }
695
            }
695
        }
696
        }
Línea 696... Línea 697...
696
 
697
 
697
        return $pdf->Output();
698
        return $pdf->Output();
-
 
699
    }
-
 
700
    
-
 
701
    public function jobDescriptionAction()
-
 
702
    {
-
 
703
        
-
 
704
        
-
 
705
        $request = $this->getRequest();
-
 
706
        if ($request->isGet()) {
-
 
707
            
-
 
708
            $currentUserPlugin = $this->plugin('currentUserPlugin');
-
 
709
            $currentUser = $currentUserPlugin->getUser();
-
 
710
            $currentCompany = $currentUserPlugin->getCompany();
-
 
711
            
-
 
712
            
-
 
713
            $uuid = $this->params()->fromQuery('id');
-
 
714
            
-
 
715
            if (!$uuid) {
-
 
716
                $data = [
-
 
717
                    'success' => false,
-
 
718
                    'data' => 'ERROR_INVALID_PARAMETER'
-
 
719
                ];
-
 
720
                
-
 
721
                return new JsonModel($data);
-
 
722
            }
-
 
723
            
-
 
724
            $jobDescriptionMapper = JobDescriptionMapper::getInstance($this->adapter);
-
 
725
            $jobDescription = $jobDescriptionMapper->fetchOneByUuid($uuid);
-
 
726
            if (!$jobDescription) {
-
 
727
                $data = [
-
 
728
                    'success' => false,
-
 
729
                    'data' => 'ERROR_RECORD_NOT_FOUND'
-
 
730
                ];
-
 
731
                
-
 
732
                return new JsonModel($data);
-
 
733
            }
-
 
734
            
-
 
735
            if ($currentCompany && $jobDescription->company_id != $currentCompany->id) {
-
 
736
                $data = [
-
 
737
                    'success' => false,
-
 
738
                    'data' => 'ERROR_UNAUTHORIZED'
-
 
739
                ];
-
 
740
                
-
 
741
                return new JsonModel($data);
-
 
742
            }
-
 
743
            
-
 
744
            $hydrator = new ObjectPropertyHydrator();
-
 
745
            
-
 
746
            $data = $hydrator->extract($jobDescription);
-
 
747
            
-
 
748
            if (!empty($data['job_description_id_boss'])) {
-
 
749
                
-
 
750
                $jobDescriptionBoss = $jobDescriptionMapper->fetchOne($data['job_description_id_boss']);
-
 
751
                if ($jobDescriptionBoss) {
-
 
752
                    $data['job_description_id_boss'] = $jobDescriptionBoss->uuid;
-
 
753
                } else {
-
 
754
                    $data['job_description_id_boss'] = '';
-
 
755
                }
-
 
756
            } else {
-
 
757
                $data['job_description_id_boss'] = '';
-
 
758
            }
-
 
759
            
-
 
760
            
-
 
761
            $data['competency_types'] = [];
-
 
762
            
-
 
763
            $competencyTypeMapper = CompetencyTypeMapper::getInstance($this->adapter);
-
 
764
            
-
 
765
            $data['supervisers'] = $currentCompany ?
-
 
766
            $jobDescriptionMapper->fetchAllByCompanyId($currentCompany->id) :
-
 
767
            $jobDescriptionMapper->fetchAllActivesByDefault();
-
 
768
            
-
 
769
            $records = $currentCompany ?
-
 
770
            $competencyTypeMapper->fetchAllByCompanyId($currentCompany->id) :
-
 
771
            $competencyTypeMapper->fetchAllActivesByDefault();
-
 
772
            
-
 
773
            $competencyTypesUUID = [];
-
 
774
            foreach ($records as $record) {
-
 
775
                array_push($data['competency_types'], [
-
 
776
                    'competency_type_id' => $record->uuid,
-
 
777
                    'name' => $record->name
-
 
778
                ]);
-
 
779
                
-
 
780
                $competencyTypesUUID[$record->id] = $record->uuid;
-
 
781
            }
-
 
782
            
-
 
783
            $data['competencies'] = [];
-
 
784
            $data['competencies_selected'] = [];
-
 
785
            
-
 
786
            $jobDescriptionCompetencyMapper = JobDescriptionCompetencyMapper::getInstance($this->adapter);
-
 
787
            $competencyBehaviorMapper = CompetencyBehaviorMapper::getInstance($this->adapter);
-
 
788
            $behaviorMapper = BehaviorMapper::getInstance($this->adapter);
-
 
789
            $jobDescriptionBehaviorCompetencyMapper = JobDescriptionBehaviorCompetencyMapper::getInstance($this->adapter);
-
 
790
            $competencyMapper = CompetencyMapper::getInstance($this->adapter);
-
 
791
            
-
 
792
            $records = $currentCompany ?
-
 
793
            $competencyMapper->fetchAllActiveByCompanyId($currentCompany->id) :
-
 
794
            $competencyMapper->fetchAllByDefault();
-
 
795
            
-
 
796
            foreach ($records as $record) {
-
 
797
                if (isset($competencyTypesUUID[$record->competency_type_id])) {
-
 
798
                    
-
 
799
                    
-
 
800
                    $behaviorCompetencies = $competencyBehaviorMapper->fetchAllByCompetencyId($record->id);
-
 
801
                    $behaviors = [];
-
 
802
                    $behaviors_selected = [];
-
 
803
                    
-
 
804
                    foreach ($behaviorCompetencies as $rows) {
-
 
805
                        
-
 
806
                        $behavior = $behaviorMapper->fetchOne($rows->behavior_id);
-
 
807
                        if ($behavior) {
-
 
808
                            array_push($behaviors, [
-
 
809
                                'behavior_id' => $behavior->id,
-
 
810
                                'competency_id' => $record->uuid,
-
 
811
                                'description' => $behavior->description,
-
 
812
                                'level' => 0
-
 
813
                            ]);
-
 
814
                        }
-
 
815
                    }
-
 
816
                    
-
 
817
                    $jobDescriptionCompetency = $jobDescriptionCompetencyMapper->fetchOneByJobDescriptionIdAndCompetencyId($jobDescription->id, $record->id);
-
 
818
                    if ($jobDescriptionCompetency) {
-
 
819
                        
-
 
820
                        foreach ($behaviorCompetencies as $rows) {
-
 
821
                            
-
 
822
                            $behavior = $behaviorMapper->fetchOne($rows->behavior_id);
-
 
823
                            $jobDescriptionBehaviorCompetency = $jobDescriptionBehaviorCompetencyMapper->fetchOneByBehavior($jobDescription->id, $record->id, $rows->behavior_id);
-
 
824
                            
-
 
825
                            if ($behavior && $jobDescriptionBehaviorCompetency) {
-
 
826
                                
-
 
827
                                array_push($behaviors_selected, [
-
 
828
                                    'behavior_id' => $behavior->id,
-
 
829
                                    'competency_id' => $record->uuid,
-
 
830
                                    'description' => $behavior->description,
-
 
831
                                    'level' => $jobDescriptionBehaviorCompetency->level
-
 
832
                                ]);
-
 
833
                            }
-
 
834
                        }
-
 
835
                        array_push($data['competencies_selected'], [
-
 
836
                            'competency_type_id' => $competencyTypesUUID[$record->competency_type_id],
-
 
837
                            'competency_id' => $record->uuid,
-
 
838
                            'name' => $record->name,
-
 
839
                            'behaviors' => $behaviors_selected
-
 
840
                        ]);
-
 
841
                    }
-
 
842
                    
-
 
843
                    array_push($data['competencies'], [
-
 
844
                        'competency_type_id' => $competencyTypesUUID[$record->competency_type_id],
-
 
845
                        'competency_id' => $record->uuid,
-
 
846
                        'name' => $record->name,
-
 
847
                        'behaviors' => $behaviors
-
 
848
                    ]);
-
 
849
                }
-
 
850
            }
-
 
851
            
-
 
852
            $data['jobs_description'] = [];
-
 
853
            
-
 
854
            $jobsDescriptionUUID = [];
-
 
855
            $jobDescriptionMapper = JobDescriptionMapper::getInstance($this->adapter);
-
 
856
            
-
 
857
            $jobDescriptionMapper = JobDescriptionMapper::getInstance($this->adapter);
-
 
858
            $records = $currentCompany ?
-
 
859
            $jobDescriptionMapper->fetchAllActiveByCompanyId($currentCompany->id) :
-
 
860
            $jobDescriptionMapper->fetchAllByDefault();
-
 
861
            
-
 
862
            foreach ($records as $record) {
-
 
863
                
-
 
864
                $jobsDescriptionUUID[$record->id] = $record->uuid;
-
 
865
                if ($record->id != $jobDescription->id) {
-
 
866
                    array_push($data['jobs_description'], [
-
 
867
                        'job_description_id' => $record->uuid,
-
 
868
                        'name' => $record->name
-
 
869
                    ]);
-
 
870
                }
-
 
871
            }
-
 
872
            
-
 
873
            $data['subordinates_selected'] = [];
-
 
874
            $jobDescriptionSubordinateMapper = JobDescriptionSubordinateMapper::getInstance($this->adapter);
-
 
875
            $records = $jobDescriptionSubordinateMapper->fetchAllByJobDescriptionIdTopLevel($jobDescription->id);
-
 
876
            
-
 
877
            foreach ($records as $record) {
-
 
878
                
-
 
879
                if (isset($jobsDescriptionUUID[$record->job_description_id_low_level])) {
-
 
880
                    
-
 
881
                    $jobDescriptionSub = $jobDescriptionMapper->fetchOne($record->job_description_id_low_level);
-
 
882
                    if ($jobDescriptionSub) {
-
 
883
                        
-
 
884
                        array_push($data['subordinates_selected'], [
-
 
885
                            'job_description_id' => $jobDescriptionSub->uuid,
-
 
886
                            'name' => $jobDescriptionSub->name
-
 
887
                        ]);
-
 
888
                    }
-
 
889
                }
-
 
890
            }
-
 
891
            
-
 
892
            $response = [
-
 
893
                'success' => true,
-
 
894
                'data' => $data
-
 
895
            ];
-
 
896
            
-
 
897
            return new JsonModel($response);
-
 
898
            
-
 
899
        } else {
-
 
900
            $data = [
-
 
901
                'success' => false,
-
 
902
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
-
 
903
            ];
-
 
904
            
-
 
905
            return new JsonModel($data);
-
 
906
        }
Línea 698... Línea 907...
698
    }
907
    }