Proyectos de Subversion LeadersLinked - Backend

Rev

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

Rev 129 Rev 187
Línea 27... Línea 27...
27
use LeadersLinked\Mapper\CompanyMicrolearningExtendUserProgramMapper;
27
use LeadersLinked\Mapper\CompanyMicrolearningExtendUserProgramMapper;
28
use LeadersLinked\Mapper\CompanyMicrolearningExtendUserPartnerMapper;
28
use LeadersLinked\Mapper\CompanyMicrolearningExtendUserPartnerMapper;
29
use LeadersLinked\Mapper\CompanyMicrolearningExtendUserSectorMapper;
29
use LeadersLinked\Mapper\CompanyMicrolearningExtendUserSectorMapper;
30
use LeadersLinked\Mapper\CompanyMicrolearningExtendUserStudentTypeMapper;
30
use LeadersLinked\Mapper\CompanyMicrolearningExtendUserStudentTypeMapper;
31
use LeadersLinked\Mapper\CompanyMicrolearningExtendUserMapper;
31
use LeadersLinked\Mapper\CompanyMicrolearningExtendUserMapper;
-
 
32
use LeadersLinked\Mapper\CompanyMicrolearningTopicMapper;
32
use LeadersLinked\Mapper\DeviceMapper;
33
use LeadersLinked\Mapper\DeviceMapper;
33
use LeadersLinked\Model\Application;
34
use LeadersLinked\Model\Application;
34
use LeadersLinked\Mapper\CompanyMicrolearningUserMapper;
35
use LeadersLinked\Mapper\CompanyMicrolearningUserMapper;
35
use LeadersLinked\Model\CompanyMicrolearningExtendUser;
36
use LeadersLinked\Model\CompanyMicrolearningExtendUser;
-
 
37
use LeadersLinked\Form\TopicCapsuleForm;
-
 
38
use LeadersLinked\Mapper\CompanyMicrolearningCapsuleCommentMapper;
-
 
39
use Laminas\Hydrator\ArraySerializableHydrator;
-
 
40
use Laminas\Db\ResultSet\HydratingResultSet;
-
 
41
use Laminas\Paginator\Adapter\DbSelect;
-
 
42
use Laminas\Paginator\Paginator;
Línea 36... Línea 43...
36
 
43
 
37
 
44
 
38
class MicrolearningReportsController extends AbstractActionController
45
class MicrolearningReportsController extends AbstractActionController
Línea 498... Línea 505...
498
           'success' => false,
505
           'success' => false,
499
           'data' => 'ERROR_METHOD_NOT_ALLOWED'
506
           'data' => 'ERROR_METHOD_NOT_ALLOWED'
500
        ]);
507
        ]);
501
    }
508
    }
Línea -... Línea 509...
-
 
509
    
-
 
510
    public function progressForCapsuleAction()
-
 
511
    {
-
 
512
        
-
 
513
    }
-
 
514
    
502
    
515
    
503
    public function progressAction()
516
    public function progressAction()
Línea 504... Línea 517...
504
    {
517
    {
Línea 529... Línea 542...
529
                    }
542
                    }
Línea 530... Línea 543...
530
                    
543
                    
531
                }
544
                }
Línea -... Línea 545...
-
 
545
            }
-
 
546
            
532
            }
547
 
Línea -... Línea 548...
-
 
548
 
-
 
549
            if($isJson) {
-
 
550
                
-
 
551
                $company_id = filter_var($this->params()->fromQuery('company_id', ''), FILTER_SANITIZE_STRING);
-
 
552
                $function_id = filter_var($this->params()->fromQuery('function_id', ''), FILTER_SANITIZE_STRING);
533
            
553
                $group_id = filter_var($this->params()->fromQuery('group_id', ''), FILTER_SANITIZE_STRING);
-
 
554
                $institution_id = filter_var($this->params()->fromQuery('institution_id', ''), FILTER_SANITIZE_STRING);
-
 
555
                $program_id = filter_var($this->params()->fromQuery('program_id', ''), FILTER_SANITIZE_STRING);
Línea 534... Línea -...
534
            if($isJson) {
-
 
535
                
-
 
Línea -... Línea 556...
-
 
556
                $partner_id = filter_var($this->params()->fromQuery('partner_id', ''), FILTER_SANITIZE_STRING);
-
 
557
                $sector_id = filter_var($this->params()->fromQuery('sector_id', ''), FILTER_SANITIZE_STRING);
-
 
558
                $student_type_id = filter_var($this->params()->fromQuery('student_type_id', ''), FILTER_SANITIZE_STRING);
536
                $date = date('Y-m-d');
559
                
-
 
560
                
-
 
561
 
-
 
562
                
-
 
563
                if($company_id) {
-
 
564
                    $extendUserCompanyMapper = CompanyMicrolearningExtendUserCompanyMapper::getInstance($this->adapter);
-
 
565
                    $extendUserCompany = $extendUserCompanyMapper->fetchOneByUuid($company_id);
-
 
566
                    
-
 
567
 
-
 
568
                    
-
 
569
                    if($extendUserCompany) {
-
 
570
                        $company_id = $extendUserCompany->id;
Línea 537... Línea -...
537
                
-
 
Línea -... Línea 571...
-
 
571
                    } else {
-
 
572
                        $company_id = 0;
-
 
573
                    }
-
 
574
                }
-
 
575
                
-
 
576
  
-
 
577
                
-
 
578
                if($function_id) {
-
 
579
                    $extendUserFunctionMapper = CompanyMicrolearningExtendUserFunctionMapper::getInstance($this->adapter);
-
 
580
                    $extendUserFunction = $extendUserFunctionMapper->fetchOneByUuid($function_id);
-
 
581
                    
-
 
582
                    if($extendUserFunction) {
-
 
583
                        $function_id = $extendUserFunction->id;
-
 
584
                    } else {
-
 
585
                        $function_id = 0;
-
 
586
                    }
-
 
587
                }
-
 
588
                
-
 
589
                if($group_id) {
-
 
590
                    $extendUserGroupMapper = CompanyMicrolearningExtendUserGroupMapper::getInstance($this->adapter);
-
 
591
                    $extendUserGroup = $extendUserGroupMapper->fetchOneByUuid($group_id);
-
 
592
                    
-
 
593
                    if($extendUserGroup) {
-
 
594
                        $group_id = $extendUserGroup->id;
-
 
595
                    } else {
-
 
596
                        $group_id = 0;
-
 
597
                    }
-
 
598
                }
-
 
599
                
-
 
600
                if($institution_id) {
-
 
601
                    $extendUserInstitutionMapper = CompanyMicrolearningExtendUserInstitutionMapper::getInstance($this->adapter);
-
 
602
                    $extendUserInstitution = $extendUserInstitutionMapper->fetchOneByUuid($institution_id);
-
 
603
                    if($extendUserInstitution) {
-
 
604
                        $institution_id = $extendUserInstitution->id;
-
 
605
                    } else {
-
 
606
                        $institution_id = 0;
-
 
607
                    }
-
 
608
                }
-
 
609
                
-
 
610
                if($program_id) {
-
 
611
                    $extendUserProgramMapper = CompanyMicrolearningExtendUserProgramMapper::getInstance($this->adapter);
-
 
612
                    $extendUserProgram = $extendUserProgramMapper->fetchOneByUuid($program_id);
-
 
613
                    
-
 
614
                    if($extendUserProgram) {
-
 
615
                        $program_id = $extendUserProgram->id;
-
 
616
                    } else {
-
 
617
                        $program_id = 0;
-
 
618
                    }
-
 
619
                    
-
 
620
                    
-
 
621
                }
-
 
622
                
-
 
623
                if($partner_id) {
-
 
624
                    $extendUserPartnerMapper = CompanyMicrolearningExtendUserPartnerMapper::getInstance($this->adapter);
-
 
625
                    $extendUserPartner = $extendUserPartnerMapper->fetchOneByUuid($partner_id);
-
 
626
                    if($extendUserPartner) {
-
 
627
                        $partner_id = $extendUserPartner;
-
 
628
                    } else {
-
 
629
                        $partner_id = 0;
-
 
630
                    }
-
 
631
                }
-
 
632
                
-
 
633
                if($sector_id) {
-
 
634
                    $extendUserSectorMapper = CompanyMicrolearningExtendUserSectorMapper::getInstance($this->adapter);
Línea -... Línea 635...
-
 
635
                    $extendUserSector = $extendUserSectorMapper->fetchOneByUuid($sector_id);
-
 
636
                    if($extendUserSector) {
-
 
637
                        $sector_id = $extendUserSector->id;
-
 
638
                    } else {
-
 
639
                        $sector_id = 0;
-
 
640
                    }
-
 
641
                }
-
 
642
                
-
 
643
                if($student_type_id) {
-
 
644
                    $extendUserStudentTypeMapper = CompanyMicrolearningExtendUserStudentTypeMapper::getInstance($this->adapter);
Línea 538... Línea 645...
538
                $companyMicrolearningProgressMapper = CompanyMicrolearningUserProgressMapper::getInstance($this->adapter);
645
                    $extendUserStudentType = $extendUserStudentTypeMapper->fetchOneByUuid($student_type_id);
Línea 539... Línea 646...
539
                $companyMicrolearningUserLogMapper = CompanyMicrolearningUserLogMapper::getInstance($this->adapter);
646
                    
540
                
647
                    if($extendUserStudentType) {
541
                $companyMicrolearningCapsuleUserMapper = CompanyMicrolearningCapsuleUserMapper::getInstance($this->adapter);
648
                        $student_type_id = $extendUserStudentType->id;
542
  
649
                    } else {
543
                $companyMicrolearningSlideMapper = CompanyMicrolearningSlideMapper::getInstance($this->adapter);
-
 
544
                
-
 
545
                
-
 
546
                
-
 
-
 
650
                        $student_type_id = 0;
-
 
651
                    }
-
 
652
                }
Línea 547... Línea -...
547
                $queryMapper = QueryMapper::getInstance($this->adapter);
-
 
Línea 548... Línea 653...
548
                
653
                
549
                $selectCapsuleUser = $queryMapper->getSql()->select();
654
                $queryMapper = QueryMapper::getInstance($this->adapter);
550
                $selectCapsuleUser->columns(['user_id' => new Expression('DISTINCT(user_id)')  ]);
655
                
-
 
656
                $selectUsers = $queryMapper->getSql()->select();
-
 
657
                $selectUsers->columns(['user_id' => new Expression('DISTINCT(user_id)')]);
-
 
658
                $selectUsers->from(CompanyMicrolearningCapsuleUserMapper::_TABLE);
551
                $selectCapsuleUser->from(CompanyMicrolearningCapsuleUserMapper::_TABLE);
659
                $selectUsers->where->equalTo('company_id', $currentCompany->id);
-
 
660
                
-
 
661
 
-
 
662
                
-
 
663
                
-
 
664
                
-
 
665
                $select = $queryMapper->getSql()->select();
-
 
666
                $select->columns(['id' , 'uuid', 'first_name', 'last_name', 'email']);
-
 
667
                $select->from([ 'u' => UserMapper::_TABLE]);
-
 
668
                
-
 
669
                
-
 
670
                
-
 
671
                $select->where->in('u.id', $selectUsers);
-
 
672
                if( $company_id || $function_id  || $group_id || $institution_id || $program_id || $partner_id ||  $sector_id || $student_type_id ) {
-
 
673
                    
-
 
674
                    $select->join(['e' => CompanyMicrolearningExtendUserMapper::_TABLE], 'e.user_id = u.id', []);
-
 
675
                    
-
 
676
                }
-
 
677
                
-
 
678
 
-
 
679
                if($company_id) {
-
 
680
                    $select->where->equalTo('e.extend_company_id', $company_id);
-
 
681
                }
-
 
682
                
-
 
683
                if($function_id) {
-
 
684
                    $select->where->equalTo('e.extend_function_id', $function_id);
-
 
685
                    
-
 
686
                }
-
 
687
                if($group_id) {
-
 
688
                    $select->where->equalTo('e.extend_group_id', $group_id);
-
 
689
                }
-
 
690
                
-
 
691
                if($institution_id) {
-
 
692
                    $select->where->equalTo('e.extend_institution_id', $institution_id);
-
 
693
                }
-
 
694
                
-
 
695
                if($program_id) {
-
 
696
                    $select->where->equalTo('e.extend_program_id', $program_id);
-
 
697
                }
552
                $selectCapsuleUser->where->equalTo('company_id', $currentCompany->id);
698
                
-
 
699
                if($partner_id) {
-
 
700
                    $select->where->equalTo('e.extend_partner_id', $partner_id);
-
 
701
                }
-
 
702
                
-
 
703
                if($sector_id) {
-
 
704
                    $select->where->equalTo('e.extend_sector_id', $sector_id);
-
 
705
                }
-
 
706
                
-
 
707
                if($student_type_id) {
-
 
708
                    $select->where->equalTo('e.extend_student_type_id', $student_type_id);
-
 
709
                }
-
 
710
                $select->order(['u.first_name', 'u.last_name']);
-
 
711
                
-
 
712
               // echo $select->getSqlString($this->adapter->platform); exit;
-
 
713
                
-
 
714
                
-
 
715
 
-
 
716
                
-
 
717
                
-
 
718
                
-
 
719
                /*
-
 
720
                 echo 'company_id 1 =  '. $company_id . PHP_EOL;
Línea -... Línea 721...
-
 
721
                 echo 'function_id 1 =  '. $function_id . PHP_EOL;
-
 
722
                 echo 'group_id 1 =  '. $group_id . PHP_EOL;
-
 
723
                 echo 'institution_id 1 =  '. $institution_id . PHP_EOL;
-
 
724
                 echo 'program_id 1 =  '. $program_id . PHP_EOL;
-
 
725
                 echo 'partner_id 1 =  '. $partner_id . PHP_EOL;
-
 
726
                 echo 'sector_id 1 =  '. $sector_id . PHP_EOL;
-
 
727
                 echo 'student_type_id 1 =  '. $student_type_id . PHP_EOL;
-
 
728
                 exit;
-
 
729
                 */
-
 
730
                
-
 
731
                
Línea 553... Línea -...
553
                $selectCapsuleUser->where->nest->equalTo('access', CompanyMicrolearningCapsuleUser::ACCESS_UNLIMITED)->or->nest()
-
 
554
                ->equalTo('access', CompanyMicrolearningCapsuleUser::ACCESS_PAY_PERIOD)
732
                
-
 
733
                
-
 
734
                
555
                ->and->lessThanOrEqualTo(new Expression('DATE(paid_from)'), $date)
735
 
556
                ->and->greaterThanOrEqualTo(new Expression('DATE(paid_to)'), $date )->unnest()->unnest();
736
                $companyMicrolearningProgressMapper = CompanyMicrolearningUserProgressMapper::getInstance($this->adapter);
-
 
737
                $companyMicrolearningUserLogMapper = CompanyMicrolearningUserLogMapper::getInstance($this->adapter);
-
 
738
                
557
                
739
                $companyMicrolearningCapsuleUserMapper = CompanyMicrolearningCapsuleUserMapper::getInstance($this->adapter);
-
 
740
                
-
 
741
               // $companyMicrolearningSlideMapper = CompanyMicrolearningSlideMapper::getInstance($this->adapter);
-
 
742
                
558
                //echo $select->getSqlString($this->adapter->platform); exit;
743
                
559
                
744
                
560
                $select = $queryMapper->getSql()->select();
745
                $students = [];
Línea 561... Línea -...
561
                $select->columns(['id' , 'uuid', 'first_name', 'last_name', 'email']);
-
 
562
                $select->from(UserMapper::_TABLE);
-
 
563
                $select->where->in('id', $selectCapsuleUser);
-
 
-
 
746
                
-
 
747
                $records = $queryMapper->fetchAll($select);
-
 
748
                
-
 
749
                
-
 
750
                foreach($records as $record)
Línea 564... Línea 751...
564
                $select->order(['first_name', 'last_name']);
751
                {
565
                
752
         
566
                
753
 
-
 
754
                    $capsules               = $companyMicrolearningCapsuleUserMapper->fetchAllActiveByUserId($record['id']);
-
 
755
                    
567
                
756
                    
568
                $students = []; 
757
 
569
                $records = $queryMapper->fetchAll($select);
758
                    $totalCapsules          = count($capsules);
570
                foreach($records as $record)
759
                    $totalCapsulesStarted   = 0;
571
                {
760
                    $totalCapsulesCompleted = 0;
572
                    $capsules               = $companyMicrolearningCapsuleUserMapper->fetchAllActiveByUserId($record['id']);
-
 
573
                    $totalCapsules          = count($capsules);
-
 
574
                    $totalCapsulesStarted   = 0;
-
 
575
                    $totalCapsulesCompleted = 0;
-
 
576
                    
-
 
577
                    $totalSlides            = 0;
-
 
578
                    $totalSlidesStarted     = 0; 
-
 
579
                    $totalSlidesCompleted   = 0; 
-
 
580
                    
-
 
581
                    foreach($capsules as $capsule)
-
 
582
                    {
-
 
583
                        $userProgress = $companyMicrolearningProgressMapper->fetchOneByUseridAndCapsuleId($capsule->user_id, $capsule->capsule_id);
-
 
584
                        if($userProgress) {
-
 
585
                            $totalCapsulesStarted++;
-
 
586
                            if($userProgress->completed) {
-
 
587
                                $totalCapsulesCompleted++;
-
 
588
                            } 
761
                    
-
 
762
                    
Línea 589... Línea 763...
589
                        }
763
        
Línea 590... Línea -...
590
                        
-
 
Línea -... Línea 764...
-
 
764
                    
-
 
765
                    
-
 
766
 
-
 
767
                    
-
 
768
                    foreach($capsules as $capsule)
-
 
769
                    {
-
 
770
                        $userProgress = $companyMicrolearningProgressMapper->fetchOneByUseridAndCapsuleId($capsule->user_id, $capsule->capsule_id);
-
 
771
                       
-
 
772
      
-
 
773
                        if($userProgress) {
591
                        $slides = $companyMicrolearningSlideMapper->fetchAllByCompanyIdAndTopicIdAndCapsuleId($capsule->company_id, $capsule->topic_id, $capsule->capsule_id); 
774
                            $totalCapsulesStarted++;
592
                        $totalSlides = count($slides);
775
                            if($userProgress->completed) {
593
                        foreach($slides as $slide)
776
                                $totalCapsulesCompleted++;
594
                        { 
777
                            }
595
                        
778
                        }
-
 
779
                       
596
                             $userProgress = $companyMicrolearningProgressMapper->fetchOneByUserIdAndSlideId($capsule->user_id, $slide->id); 
780
                        
597
                             if($userProgress) {
781
                        
598
                                 
782
                    }
599
                                 $totalSlidesStarted++; 
783
                    
600
                                 if($userProgress->completed) {
-
 
601
                                     $totalSlidesCompleted++;
-
 
602
                                 } 
784
                    
603
                                 
-
 
-
 
785
                    
604
                             } 
786
      
605
                        }
787
                    if($totalCapsulesCompleted > 0 && $totalCapsules > 0) {
606
                        
788
                        $total_capsules_percentaje = intval ( ($totalCapsulesCompleted * 100 ) / $totalCapsules);
607
                        
789
                    }  else {
608
                    }
790
                        $total_capsules_percentaje = 0;
609
                    
791
                    }
610
  
792
                    
611
                    
793
  
612
                    $student = [
794
                 
613
                        'uuid' => $record['uuid'],
795
                    $student = [
614
                        'first_name' => $record['first_name'],
796
                        'uuid' => $record['uuid'],
Línea 641... Línea 823...
641
                    if($last_added_on) {
823
                    if($last_added_on) {
642
                        $dt = \DateTime::createFromFormat('Y-m-d H:i:s', $last_added_on);
824
                        $dt = \DateTime::createFromFormat('Y-m-d H:i:s', $last_added_on);
643
                        if($dt) {
825
                        if($dt) {
644
                            $student['last_date'] = $dt->format('d/m/Y');
826
                            $student['last_date'] = $dt->format('d/m/Y');
645
                            $student['last_time'] = $dt->format('h:i a');
827
                            $student['last_time'] = $dt->format('h:i a');
646
                        } 
828
                        }
647
                    }
829
                    }
648
     
830
       
649
                    array_push($students, $student);
831
                    array_push($students, $student);
-
 
832
                   
Línea 650... Línea 833...
650
                    
833
                    
Línea -... Línea 834...
-
 
834
                    
-
 
835
                }
Línea 651... Línea 836...
651
                    
836
                
652
                }
837
                
653
                
838
                //print_r($students);
Línea 654... Línea 839...
654
                
839
                
Línea 655... Línea 840...
655
                
840
                
Línea 656... Línea 841...
656
                
841
                
Línea 670... Línea 855...
670
                $this->layout()->setTemplate('layout/layout-backend.phtml');
855
                $this->layout()->setTemplate('layout/layout-backend.phtml');
671
                $viewModel = new ViewModel();
856
                $viewModel = new ViewModel();
672
                $viewModel->setTemplate('leaders-linked/microlearning-reports/progress.phtml');
857
                $viewModel->setTemplate('leaders-linked/microlearning-reports/progress.phtml');
673
                $viewModel->setVariables([
858
                $viewModel->setVariables([
674
                    'form' => $form
859
                    'form' => $form
675
                ]); 
860
                ]);
676
                return $viewModel ;
861
                return $viewModel ;
677
            }
862
            }
678
        }
863
        }
Línea 679... Línea 864...
679
        
864
        
680
        return new JsonModel([
865
        return new JsonModel([
681
            'success' => false,
866
            'success' => false,
682
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
867
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
683
        ]);
868
        ]);
Línea -... Línea 869...
-
 
869
    }
684
    }
870
    
685
    
871
        
Línea 686... Línea 872...
686
    public function devicesAction()
872
    public function devicesAction()
Línea 849... Línea 1035...
849
                $select = $queryMapper->getSql()->select();
1035
                $select = $queryMapper->getSql()->select();
850
                $select->columns(['id' , 'uuid', 'first_name', 'last_name', 'email']);
1036
                $select->columns(['id' , 'uuid', 'first_name', 'last_name', 'email']);
851
                $select->from([ 'u' => UserMapper::_TABLE]);
1037
                $select->from([ 'u' => UserMapper::_TABLE]);
852
                if( $company_id || $function_id  || $group_id || $institution_id || $program_id || $partner_id ||  $sector_id || $student_type_id ) {
1038
                if( $company_id || $function_id  || $group_id || $institution_id || $program_id || $partner_id ||  $sector_id || $student_type_id ) {
Línea 853... Línea 1039...
853
                    
1039
                    
Línea 854... Línea 1040...
854
                    $select->join(['e' => CompanyMicrolearningExtendUserMapper::_TABLE], 'e.user_id = u.id');
1040
                    $select->join(['e' => CompanyMicrolearningExtendUserMapper::_TABLE], 'e.user_id = u.id', []);
Línea 855... Línea 1041...
855
                    
1041
                    
856
                }
1042
                }
Línea 917... Línea 1103...
917
                            'token' => $device->token ? 'LABEL_YES' : 'LABEL_NO',
1103
                            'token' => $device->token ? 'LABEL_YES' : 'LABEL_NO',
918
                            'updated_on' => $dt->format('d/m/Y h:i a')
1104
                            'updated_on' => $dt->format('d/m/Y h:i a')
919
                        ]);
1105
                        ]);
920
                    }
1106
                    }
Línea -... Línea 1107...
-
 
1107
                    
-
 
1108
                    if(empty($devices)) {
-
 
1109
                        continue;
-
 
1110
                        
-
 
1111
                    }
Línea 921... Línea 1112...
921
                    
1112
                     
922
                    
1113
                    
923
                    $student = [
1114
                    $student = [
924
                        'uuid' => $record['uuid'],
1115
                        'uuid' => $record['uuid'],
Línea 963... Línea 1154...
963
        return new JsonModel([
1154
        return new JsonModel([
964
            'success' => false,
1155
            'success' => false,
965
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
1156
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
966
        ]);
1157
        ]);
967
    }
1158
    }
-
 
1159
    
-
 
1160
    
-
 
1161
    public function comentsForCapsulesAction()
-
 
1162
    {
-
 
1163
        $currentUserPlugin = $this->plugin('currentUserPlugin');
-
 
1164
        $currentUser = $currentUserPlugin->getUser();
-
 
1165
        $currentCompany = $currentUserPlugin->getCompany();
-
 
1166
        
-
 
1167
        $request = $this->getRequest();
-
 
1168
        
-
 
1169
        if($request->isGet())
-
 
1170
        {
-
 
1171
            
-
 
1172
            $headers  = $request->getHeaders();
-
 
1173
            
-
 
1174
            $isJson = false;
-
 
1175
            if($headers->has('Accept')) {
-
 
1176
                $accept = $headers->get('Accept');
-
 
1177
                
-
 
1178
                $prioritized = $accept->getPrioritized();
-
 
1179
                
-
 
1180
                foreach($prioritized as $key => $value) {
-
 
1181
                    $raw = trim($value->getRaw());
-
 
1182
                    
-
 
1183
                    if(!$isJson) {
-
 
1184
                        $isJson = strpos($raw, 'json');
-
 
1185
                    }
-
 
1186
                    
-
 
1187
                }
-
 
1188
            }
-
 
1189
            
-
 
1190
            if($isJson) {
-
 
1191
                $topic_uuid     = filter_var($this->params()->fromQuery('topic_uuid'), FILTER_SANITIZE_STRING);
-
 
1192
                $capsule_uuid   = filter_var($this->params()->fromQuery('capsule_uuid'), FILTER_SANITIZE_STRING);
-
 
1193
                
-
 
1194
                $data = [
-
 
1195
                    'items' => [] ,
-
 
1196
                    'total' => 0,
-
 
1197
                    
-
 
1198
                ];
-
 
1199
                
-
 
1200
                
-
 
1201
                if(!$topic_uuid) {
-
 
1202
                    return new JsonModel([
-
 
1203
                        'success' => true,
-
 
1204
                        'data' => $data
-
 
1205
                    ]);
-
 
1206
                    
-
 
1207
                }
-
 
1208
                
-
 
1209
                
-
 
1210
                $topicMapper = CompanyMicrolearningTopicMapper::getInstance($this->adapter);
-
 
1211
                $topic = $topicMapper->fetchOneByUuid($topic_uuid);
-
 
1212
                if(!$topic) {
-
 
1213
                    return new JsonModel([
-
 
1214
                        'success' => true,
-
 
1215
                        'data' => 'ERROR_TOPIC_NOT_FOUND'
-
 
1216
                    ]);
-
 
1217
                }
-
 
1218
                
-
 
1219
                if($topic->company_id != $currentCompany->id) {
-
 
1220
                    return new JsonModel([
-
 
1221
                        'success' => true,
-
 
1222
                        'data' => 'ERROR_UNAUTHORIZED'
-
 
1223
                    ]);
-
 
1224
                }
-
 
1225
                
-
 
1226
                
-
 
1227
                
-
 
1228
                if(!$capsule_uuid) {
-
 
1229
                    $capsuleMapper = CompanyMicrolearningCapsuleMapper::getInstance($this->adapter);
-
 
1230
                    $records = $capsuleMapper->fetchAllByCompanyIdAndTopicId($topic->company_id, $topic->id);
-
 
1231
                    
-
 
1232
                    $capsules = [];
-
 
1233
                    foreach($records as $record)
-
 
1234
                    {
-
 
1235
                        if(!$capsule_uuid) {
-
 
1236
                            $capsule_uuid = $record->uuid;
-
 
1237
                        }
-
 
1238
                        
-
 
1239
                        $capsules[ $record->uuid ] = $record->name;
-
 
1240
                    }
-
 
1241
                    
-
 
1242
                    $data['capsules']  = $capsules;
-
 
1243
                }
-
 
1244
                
-
 
1245
                if(!$capsule_uuid) {
-
 
1246
                    return new JsonModel([
-
 
1247
                        'success' => true,
-
 
1248
                        'data' => $data
-
 
1249
                    ]);
-
 
1250
                    
-
 
1251
                }
-
 
1252
                
-
 
1253
                $capsuleMapper = CompanyMicrolearningCapsuleMapper::getInstance($this->adapter);
-
 
1254
                $capsule = $capsuleMapper->fetchOneByUuid($capsule_uuid);
-
 
1255
                
-
 
1256
                
-
 
1257
                
-
 
1258
                if(!$capsule) {
-
 
1259
                    return new JsonModel([
-
 
1260
                        'success' => true,
-
 
1261
                        'data' => 'ERROR_CAPSULE_NOT_FOUND'
-
 
1262
                    ]);
-
 
1263
                }
-
 
1264
                
-
 
1265
                if($capsule->topic_id != $topic->id) {
-
 
1266
                    return new JsonModel([
-
 
1267
                        'success' => true,
-
 
1268
                        'data' => 'ERROR_UNAUTHORIZED'
-
 
1269
                    ]);
-
 
1270
                }
-
 
1271
                
-
 
1272
 
-
 
1273
                $search = $this->params()->fromQuery('search', []);
-
 
1274
                $search = empty($search['value']) ? '' : filter_var($search['value'], FILTER_SANITIZE_STRING);
-
 
1275
                
-
 
1276
                $page               = intval($this->params()->fromQuery('start', 1), 10);
-
 
1277
                $records_x_page     = intval($this->params()->fromQuery('length', 10), 10);
-
 
1278
                $order =  $this->params()->fromQuery('order', []);
-
 
1279
                $order_field        = empty($order[0]['column']) ? 99 :  intval($order[0]['column'], 10);
-
 
1280
                $order_direction    = empty($order[0]['dir']) ? 'ASC' : strtoupper(filter_var( $order[0]['dir'], FILTER_SANITIZE_STRING));
-
 
1281
                
-
 
1282
                $fields =  ['uuid', 'first_name', 'last_name', 'email', 'rating', 'comment', 'added_on'];
-
 
1283
                $order_field = isset($fields[$order_field]) ? $fields[$order_field] : 'added_on';
-
 
1284
                
-
 
1285
                if(!in_array($order_direction, ['ASC', 'DESC'])) {
-
 
1286
                    $order_direction = 'DESC';
-
 
1287
                }
-
 
1288
                
-
 
1289
 
-
 
1290
                $queryMapper = QueryMapper::getInstance($this->adapter);
-
 
1291
                $sql = $queryMapper->getSql();
-
 
1292
                $select = $sql->select();
-
 
1293
                $select->columns(['access', 'paid_from', 'paid_to', 'added_on', 'updated_on']);
-
 
1294
                $select->from(['tb1' => CompanyMicrolearningCapsuleCommentMapper::_TABLE] );
-
 
1295
                $select->join(['tb2' => UserMapper::_TABLE], 'tb1.user_id = tb2.id', ['uuid', 'first_name', 'last_name', 'email']);
-
 
1296
                $select->where->equalTo('tb1.company_id', $capsule->company_id);
-
 
1297
                $select->where->equalTo('tb1.topic_id', $capsule->topic_id);
-
 
1298
                $select->where->equalTo('tb1.capsule_id', $capsule->id);
-
 
1299
                
-
 
1300
                if($search) {
-
 
1301
                    $select->where->nest()
-
 
1302
                    ->like('first_name', '%' . $search . '%')
-
 
1303
                    ->or->like('last_name', '%' . $search . '%')
-
 
1304
                    ->or->like('email', '%' . $search . '%')
-
 
1305
                    ->unnest();
-
 
1306
                    
-
 
1307
                }
-
 
1308
                
-
 
1309
                
-
 
1310
                $select->order($order_field . ' ' . $order_direction);
-
 
1311
                
-
 
1312
                $hydrator   = new ArraySerializableHydrator();
-
 
1313
                $resultset  = new HydratingResultSet($hydrator);
-
 
1314
                
-
 
1315
                $adapter = new DbSelect($select, $sql, $resultset);
-
 
1316
                $paginator = new Paginator($adapter);
-
 
1317
                $paginator->setItemCountPerPage($records_x_page);
-
 
1318
                $paginator->setCurrentPageNumber($page);
-
 
1319
                
-
 
1320
                
-
 
1321
                $items = [ ];
-
 
1322
                $records = $paginator->getCurrentItems();
-
 
1323
                foreach($records as $record)
-
 
1324
                {
-
 
1325
 
-
 
1326
                    
-
 
1327
                    
-
 
1328
                    $dt_added_on = \DateTime::createFromFormat('Y-m-d H:i:s', $record['added_on']);
-
 
1329
                    $added_on = $dt_added_on->format('d/m/Y h:i a');
-
 
1330
                    
-
 
1331
 
-
 
1332
                    $item = [
-
 
1333
                        'uuid' => $record['uuid'],
-
 
1334
                        'first_name' => $record['first_name'],
-
 
1335
                        'last_name' => $record['last_name'],
-
 
1336
                        'email' => $record['email'],
-
 
1337
                        'rating' => $record['rating'],
-
 
1338
                        'text' => $record['text'],
-
 
1339
                        'added_on' => $added_on,
-
 
1340
                    ];
-
 
1341
                    
-
 
1342
                    
-
 
1343
                    array_push($items, $item);
-
 
1344
                    
-
 
1345
                    
-
 
1346
                }
-
 
1347
                
-
 
1348
                $data['items'] = $items;
-
 
1349
                $data['total'] = $paginator->getTotalItemCount();
-
 
1350
                
-
 
1351
                
-
 
1352
                return new JsonModel([
-
 
1353
                    'success' => true,
-
 
1354
                    'data' => $data
-
 
1355
                ]);
-
 
1356
            } else {
-
 
1357
                $topicMapper = CompanyMicrolearningTopicMapper::getInstance($this->adapter);
-
 
1358
                $topics = $topicMapper->fetchAllByCompanyId($currentCompany->id);
-
 
1359
                
-
 
1360
                if($topics) {
-
 
1361
                    $topic_id = $topics[0]->id;
-
 
1362
                }  else {
-
 
1363
                    $topic_id = 0;
-
 
1364
                }
-
 
1365
                
-
 
1366
                
-
 
1367
                $form = new TopicCapsuleForm($this->adapter, $currentCompany->id, $topic_id);
-
 
1368
     
-
 
1369
                
-
 
1370
                
-
 
1371
                $this->layout()->setTemplate('layout/layout-backend');
-
 
1372
                $viewModel = new ViewModel();
-
 
1373
                $viewModel->setTemplate('leaders-linked/microlearning-reports/comments-for-capsule.phtml');
-
 
1374
                $viewModel->setVariables([
-
 
1375
                    'form' => $form,                    
-
 
1376
                ]);
-
 
1377
                
-
 
1378
                return $viewModel ;
-
 
1379
            }
-
 
1380
            
-
 
1381
        } else {
-
 
1382
            return new JsonModel([
-
 
1383
                'success' => false,
-
 
1384
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
-
 
1385
            ]);
-
 
1386
        }
-
 
1387
    }
-
 
1388
    
-
 
1389
    
-
 
1390
    
Línea 968... Línea 1391...
968
   
1391