Proyectos de Subversion LeadersLinked - Backend

Rev

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

Rev 1 Rev 2
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\DeviceMapper;
-
 
33
use LeadersLinked\Model\Application;
Línea 32... Línea 34...
32
 
34
 
33
 
35
 
34
class MicrolearningReportsController extends AbstractActionController
36
class MicrolearningReportsController extends AbstractActionController
Línea 68... Línea 70...
68
        $this->config       = $config;
70
        $this->config       = $config;
Línea 69... Línea 71...
69
       
71
       
Línea -... Línea 72...
-
 
72
     
-
 
73
    }
-
 
74
    
-
 
75
    
-
 
76
    public function indexAction() 
-
 
77
    {
-
 
78
        
-
 
79
        $this->layout()->setTemplate('layout/layout-backend.phtml');
-
 
80
        $viewModel = new ViewModel();
-
 
81
        $viewModel->setTemplate('leaders-linked/microlearning-reports/index.phtml');
Línea 70... Línea 82...
70
     
82
        return $viewModel ;
71
    }
83
    }
Línea 484... Línea 496...
484
           'success' => false,
496
           'success' => false,
485
           'data' => 'ERROR_METHOD_NOT_ALLOWED'
497
           'data' => 'ERROR_METHOD_NOT_ALLOWED'
486
        ]);
498
        ]);
487
    }
499
    }
Línea 488... Línea 500...
488
    
500
    
489
    public function reportsAction()
501
    public function progressAction()
Línea 490... Línea 502...
490
    {
502
    {
491
        
503
        
Línea 653... Línea 665...
653
                $form = new ExtendUserMicrolearningForm($this->adapter, $currentCompany->id);
665
                $form = new ExtendUserMicrolearningForm($this->adapter, $currentCompany->id);
Línea 654... Línea 666...
654
                
666
                
655
                
667
                
656
                $this->layout()->setTemplate('layout/layout-backend.phtml');
668
                $this->layout()->setTemplate('layout/layout-backend.phtml');
657
                $viewModel = new ViewModel();
669
                $viewModel = new ViewModel();
658
                $viewModel->setTemplate('leaders-linked/microlearning-reports/reports.phtml');
670
                $viewModel->setTemplate('leaders-linked/microlearning-reports/progress.phtml');
659
                $viewModel->setVariables([
671
                $viewModel->setVariables([
660
                    'form' => $form
672
                    'form' => $form
661
                ]); 
673
                ]); 
662
                return $viewModel ;
674
                return $viewModel ;
Línea 663... Línea 675...
663
            }
675
            }
-
 
676
        }
-
 
677
        
-
 
678
        return new JsonModel([
-
 
679
            'success' => false,
-
 
680
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
-
 
681
        ]);
-
 
682
    }
-
 
683
    
-
 
684
    public function devicesAction()
-
 
685
    {
-
 
686
        
-
 
687
        
-
 
688
        $currentUserPlugin = $this->plugin('currentUserPlugin');
-
 
689
        $currentUser = $currentUserPlugin->getUser();
-
 
690
        $currentCompany = $currentUserPlugin->getCompany();
-
 
691
        
-
 
692
        
-
 
693
        $request = $this->getRequest();
-
 
694
        if($request->isGet()) {
-
 
695
            
-
 
696
            
-
 
697
            $headers  = $request->getHeaders();
-
 
698
            
-
 
699
            $isJson = false;
-
 
700
            if($headers->has('Accept')) {
-
 
701
                $accept = $headers->get('Accept');
-
 
702
                
-
 
703
                $prioritized = $accept->getPrioritized();
-
 
704
                
-
 
705
                foreach($prioritized as $key => $value) {
-
 
706
                    $raw = trim($value->getRaw());
-
 
707
                    
-
 
708
                    if(!$isJson) {
-
 
709
                        $isJson = strpos($raw, 'json');
-
 
710
                    }
-
 
711
                    
-
 
712
                }
-
 
713
            }
-
 
714
            
-
 
715
            if($isJson) {
-
 
716
                
-
 
717
                $date = date('Y-m-d');
-
 
718
                $deviceMapper = DeviceMapper::getInstance($this->adapter);
-
 
719
                
-
 
720
                
-
 
721
                $queryMapper = QueryMapper::getInstance($this->adapter);
-
 
722
                
-
 
723
                $selectCapsuleUser = $queryMapper->getSql()->select();
-
 
724
                $selectCapsuleUser->columns(['user_id' => new Expression('DISTINCT(user_id)')  ]);
-
 
725
                $selectCapsuleUser->from(CompanyMicrolearningCapsuleUserMapper::_TABLE);
-
 
726
                $selectCapsuleUser->where->equalTo('company_id', $currentCompany->id);
-
 
727
                $selectCapsuleUser->where->nest->equalTo('access', CompanyMicrolearningCapsuleUser::ACCESS_UNLIMITED)->or->nest()
-
 
728
                ->equalTo('access', CompanyMicrolearningCapsuleUser::ACCESS_PAY_PERIOD)
-
 
729
                ->and->lessThanOrEqualTo(new Expression('DATE(paid_from)'), $date)
-
 
730
                ->and->greaterThanOrEqualTo(new Expression('DATE(paid_to)'), $date )->unnest()->unnest();
-
 
731
                
-
 
732
                //echo $select->getSqlString($this->adapter->platform); exit;
-
 
733
                
-
 
734
                $select = $queryMapper->getSql()->select();
-
 
735
                $select->columns(['id' , 'uuid', 'first_name', 'last_name', 'email']);
-
 
736
                $select->from(UserMapper::_TABLE);
-
 
737
                $select->where->in('id', $selectCapsuleUser);
-
 
738
                $select->order(['first_name', 'last_name']);
-
 
739
                
-
 
740
                
-
 
741
                
-
 
742
                $students = [];
-
 
743
                $records = $queryMapper->fetchAll($select);
-
 
744
                foreach($records as $record)
-
 
745
                {
-
 
746
                    
-
 
747
                    
-
 
748
                    $record_devices = $deviceMapper->fetchAllByUserId($record['id']);
-
 
749
                    
-
 
750
                    $devices = [];
-
 
751
                    foreach($record_devices as $device)
-
 
752
                    {
-
 
753
                        /*if($device->application_id != Application::LEADERSLINKED) {
-
 
754
                            continue;
-
 
755
                        }*/
-
 
756
                        
-
 
757
                        $dt = \DateTime::createFromFormat('Y-m-d H:i:s', $device->updated_on);
-
 
758
                        
-
 
759
                        array_push($devices, [
-
 
760
                            'brand' => $device->brand,
-
 
761
                            'manufacturer' => $device->manufacturer,
-
 
762
                            'model' => $device->model,
-
 
763
                            'platform' => $device->platform,
-
 
764
                            'version' => $device->version,
-
 
765
                            'token' => $device->token ? 'LABEL_YES' : 'LABEL_NO',
-
 
766
                            'updated_on' => $dt->format('d/m/Y h:i a')
-
 
767
                        ]);
-
 
768
                    }
-
 
769
                    
-
 
770
                    
-
 
771
                    $student = [
-
 
772
                        'uuid' => $record['uuid'],
-
 
773
                        'first_name' => $record['first_name'],
-
 
774
                        'last_name' => $record['last_name'],
-
 
775
                        'email' => $record['email'],
-
 
776
                        'devices' => $devices
-
 
777
                    ];
-
 
778
                    
-
 
779
                    array_push($students, $student);
-
 
780
                    
-
 
781
                    
-
 
782
                }
-
 
783
                
-
 
784
                
-
 
785
                
-
 
786
                
-
 
787
                return new JsonModel([
-
 
788
                    'success' => true,
-
 
789
                    'data' => $students
-
 
790
                    
-
 
791
                ]);
-
 
792
                
-
 
793
            } else {
-
 
794
                
-
 
795
                
-
 
796
                
-
 
797
                $form = new ExtendUserMicrolearningForm($this->adapter, $currentCompany->id);
-
 
798
                
-
 
799
                
-
 
800
                $this->layout()->setTemplate('layout/layout-backend.phtml');
-
 
801
                $viewModel = new ViewModel();
-
 
802
                $viewModel->setTemplate('leaders-linked/microlearning-reports/devices.phtml');
-
 
803
                $viewModel->setVariables([
-
 
804
                    'form' => $form
-
 
805
                ]);
-
 
806
                return $viewModel ;
-
 
807
            }
664
        }
808
        }
665
        
809
        
666
        return new JsonModel([
810
        return new JsonModel([
667
            'success' => false,
811
            'success' => false,