Proyectos de Subversion LeadersLinked - Backend

Rev

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

Rev 187 Rev 483
Línea 545... Línea 545...
545
            }
545
            }
Línea 546... Línea 546...
546
            
546
            
547
 
-
 
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);
-
 
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);
-
 
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);
-
 
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;
-
 
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);
-
 
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);
-
 
645
                    $extendUserStudentType = $extendUserStudentTypeMapper->fetchOneByUuid($student_type_id);
-
 
646
                    
-
 
647
                    if($extendUserStudentType) {
-
 
648
                        $student_type_id = $extendUserStudentType->id;
-
 
649
                    } else {
-
 
650
                        $student_type_id = 0;
547
 
651
                    }
548
 
Línea 652... Línea 549...
652
                }
549
            if($isJson) {
653
                
550
         
654
                $queryMapper = QueryMapper::getInstance($this->adapter);
551
                $queryMapper = QueryMapper::getInstance($this->adapter);
Línea 667... Línea 564...
667
                $select->from([ 'u' => UserMapper::_TABLE]);
564
                $select->from([ 'u' => UserMapper::_TABLE]);
Línea 668... Línea 565...
668
                
565
                
669
                
-
 
670
                
566
                
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
                }
-
 
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) {
567
                
Línea 708... Línea 568...
708
                    $select->where->equalTo('e.extend_student_type_id', $student_type_id);
568
                $select->where->in('u.id', $selectUsers);
709
                }
-
 
710
                $select->order(['u.first_name', 'u.last_name']);
569
   
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;
-
 
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;
-
 
Línea 729... Línea 570...
729
                 */
570
                $select->order(['u.first_name', 'u.last_name']);
730
                
571
                
Línea 852... Línea 693...
852
                $form = new ExtendUserMicrolearningForm($this->adapter, $currentCompany->id);
693
                $form = new ExtendUserMicrolearningForm($this->adapter, $currentCompany->id);
Línea 853... Línea 694...
853
                
694
                
854
                
695
                
855
                $this->layout()->setTemplate('layout/layout-backend.phtml');
696
                $this->layout()->setTemplate('layout/layout-backend.phtml');
856
                $viewModel = new ViewModel();
697
                $viewModel = new ViewModel();
857
                $viewModel->setTemplate('leaders-linked/microlearning-reports/progress.phtml');
698
                $viewModel->setTemplate('leaders-linked/microlearning-reports/progress-for-capsule.phtml');
858
                $viewModel->setVariables([
699
                $viewModel->setVariables([
859
                    'form' => $form
700
                    'form' => $form
860
                ]);
701
                ]);
Línea 1386... Línea 1227...
1386
        }
1227
        }
1387
    }
1228
    }
Línea -... Línea 1229...
-
 
1229
    
-
 
1230
    
-
 
1231
    
-
 
1232
    public function progressForCapsulesAction()
-
 
1233
    {
-
 
1234
        $currentUserPlugin = $this->plugin('currentUserPlugin');
-
 
1235
        $currentUser = $currentUserPlugin->getUser();
-
 
1236
        $currentCompany = $currentUserPlugin->getCompany();
-
 
1237
        
-
 
1238
        $request = $this->getRequest();
-
 
1239
        
-
 
1240
        if($request->isGet())
-
 
1241
        {
-
 
1242
            
-
 
1243
            $headers  = $request->getHeaders();
-
 
1244
            
-
 
1245
            $isJson = false;
-
 
1246
            if($headers->has('Accept')) {
-
 
1247
                $accept = $headers->get('Accept');
-
 
1248
                
-
 
1249
                $prioritized = $accept->getPrioritized();
-
 
1250
                
-
 
1251
                foreach($prioritized as $key => $value) {
-
 
1252
                    $raw = trim($value->getRaw());
-
 
1253
                    
-
 
1254
                    if(!$isJson) {
-
 
1255
                        $isJson = strpos($raw, 'json');
-
 
1256
                    }
-
 
1257
                    
-
 
1258
                }
-
 
1259
            }
-
 
1260
            
-
 
1261
            if($isJson) {
-
 
1262
                $topic_uuid     = filter_var($this->params()->fromQuery('topic_uuid'), FILTER_SANITIZE_STRING);
-
 
1263
                $capsule_uuid   = filter_var($this->params()->fromQuery('capsule_uuid'), FILTER_SANITIZE_STRING);
-
 
1264
                
-
 
1265
                $data = [
-
 
1266
                    'items' => [] ,
-
 
1267
                    'total' => 0,
-
 
1268
                    
-
 
1269
                ];
-
 
1270
                
-
 
1271
                
-
 
1272
                if(!$topic_uuid) {
-
 
1273
                    return new JsonModel([
-
 
1274
                        'success' => true,
-
 
1275
                        'data' => $data
-
 
1276
                    ]);
-
 
1277
                    
-
 
1278
                }
-
 
1279
                
-
 
1280
                
-
 
1281
                $topicMapper = CompanyMicrolearningTopicMapper::getInstance($this->adapter);
-
 
1282
                $topic = $topicMapper->fetchOneByUuid($topic_uuid);
-
 
1283
                if(!$topic) {
-
 
1284
                    return new JsonModel([
-
 
1285
                        'success' => true,
-
 
1286
                        'data' => 'ERROR_TOPIC_NOT_FOUND'
-
 
1287
                    ]);
-
 
1288
                }
-
 
1289
                
-
 
1290
                if($topic->company_id != $currentCompany->id) {
-
 
1291
                    return new JsonModel([
-
 
1292
                        'success' => true,
-
 
1293
                        'data' => 'ERROR_UNAUTHORIZED'
-
 
1294
                    ]);
-
 
1295
                }
-
 
1296
                
-
 
1297
                
-
 
1298
                
-
 
1299
                if(!$capsule_uuid) {
-
 
1300
                    $capsuleMapper = CompanyMicrolearningCapsuleMapper::getInstance($this->adapter);
-
 
1301
                    $records = $capsuleMapper->fetchAllByCompanyIdAndTopicId($topic->company_id, $topic->id);
-
 
1302
                    
-
 
1303
                    $capsules = [];
-
 
1304
                    foreach($records as $record)
-
 
1305
                    {
-
 
1306
                        if(!$capsule_uuid) {
-
 
1307
                            $capsule_uuid = $record->uuid;
-
 
1308
                        }
-
 
1309
                        
-
 
1310
                        $capsules[ $record->uuid ] = $record->name;
-
 
1311
                    }
-
 
1312
                    
-
 
1313
                    $data['capsules']  = $capsules;
-
 
1314
                }
-
 
1315
                
-
 
1316
                if(!$capsule_uuid) {
-
 
1317
                    return new JsonModel([
-
 
1318
                        'success' => true,
-
 
1319
                        'data' => $data
-
 
1320
                    ]);
-
 
1321
                    
-
 
1322
                }
-
 
1323
                
-
 
1324
                $capsuleMapper = CompanyMicrolearningCapsuleMapper::getInstance($this->adapter);
-
 
1325
                $capsule = $capsuleMapper->fetchOneByUuid($capsule_uuid);
-
 
1326
                
-
 
1327
                
-
 
1328
                
-
 
1329
                if(!$capsule) {
-
 
1330
                    return new JsonModel([
-
 
1331
                        'success' => true,
-
 
1332
                        'data' => 'ERROR_CAPSULE_NOT_FOUND'
-
 
1333
                    ]);
-
 
1334
                }
-
 
1335
                
-
 
1336
                if($capsule->topic_id != $topic->id) {
-
 
1337
                    return new JsonModel([
-
 
1338
                        'success' => true,
-
 
1339
                        'data' => 'ERROR_UNAUTHORIZED'
-
 
1340
                    ]);
-
 
1341
                }
-
 
1342
                
-
 
1343
                
-
 
1344
                $search = $this->params()->fromQuery('search', []);
-
 
1345
                $search = empty($search['value']) ? '' : filter_var($search['value'], FILTER_SANITIZE_STRING);
-
 
1346
                
-
 
1347
                $page               = intval($this->params()->fromQuery('start', 1), 10);
-
 
1348
                $records_x_page     = intval($this->params()->fromQuery('length', 10), 10);
-
 
1349
                $order =  $this->params()->fromQuery('order', []);
-
 
1350
                $order_field        = empty($order[0]['column']) ? 99 :  intval($order[0]['column'], 10);
-
 
1351
                $order_direction    = empty($order[0]['dir']) ? 'ASC' : strtoupper(filter_var( $order[0]['dir'], FILTER_SANITIZE_STRING));
-
 
1352
                
-
 
1353
                $fields =  ['uuid', 'first_name', 'last_name', 'email', 'rating', 'comment', 'added_on'];
-
 
1354
                $order_field = isset($fields[$order_field]) ? $fields[$order_field] : 'added_on';
-
 
1355
                
-
 
1356
                if(!in_array($order_direction, ['ASC', 'DESC'])) {
-
 
1357
                    $order_direction = 'DESC';
-
 
1358
                }
-
 
1359
                
-
 
1360
                
-
 
1361
                $queryMapper = QueryMapper::getInstance($this->adapter);
-
 
1362
                $sql = $queryMapper->getSql();
-
 
1363
                $select = $sql->select();
-
 
1364
                $select->columns(['access', 'paid_from', 'paid_to', 'added_on', 'updated_on']);
-
 
1365
                $select->from(['tb1' => CompanyMicrolearningCapsuleCommentMapper::_TABLE] );
-
 
1366
                $select->join(['tb2' => UserMapper::_TABLE], 'tb1.user_id = tb2.id', ['uuid', 'first_name', 'last_name', 'email']);
-
 
1367
                $select->where->equalTo('tb1.company_id', $capsule->company_id);
-
 
1368
                $select->where->equalTo('tb1.topic_id', $capsule->topic_id);
-
 
1369
                $select->where->equalTo('tb1.capsule_id', $capsule->id);
-
 
1370
                
-
 
1371
                if($search) {
-
 
1372
                    $select->where->nest()
-
 
1373
                    ->like('first_name', '%' . $search . '%')
-
 
1374
                    ->or->like('last_name', '%' . $search . '%')
-
 
1375
                    ->or->like('email', '%' . $search . '%')
-
 
1376
                    ->unnest();
-
 
1377
                    
-
 
1378
                }
-
 
1379
                
-
 
1380
                
-
 
1381
                $select->order($order_field . ' ' . $order_direction);
-
 
1382
                
-
 
1383
                $hydrator   = new ArraySerializableHydrator();
-
 
1384
                $resultset  = new HydratingResultSet($hydrator);
-
 
1385
                
-
 
1386
                $adapter = new DbSelect($select, $sql, $resultset);
-
 
1387
                $paginator = new Paginator($adapter);
-
 
1388
                $paginator->setItemCountPerPage($records_x_page);
-
 
1389
                $paginator->setCurrentPageNumber($page);
-
 
1390
                
-
 
1391
                
-
 
1392
                $items = [ ];
-
 
1393
                $records = $paginator->getCurrentItems();
-
 
1394
                foreach($records as $record)
-
 
1395
                {
-
 
1396
                    
-
 
1397
                    
-
 
1398
                    
-
 
1399
                    $dt_added_on = \DateTime::createFromFormat('Y-m-d H:i:s', $record['added_on']);
-
 
1400
                    $added_on = $dt_added_on->format('d/m/Y h:i a');
-
 
1401
                    
-
 
1402
                    
-
 
1403
                    $item = [
-
 
1404
                        'uuid' => $record['uuid'],
-
 
1405
                        'first_name' => $record['first_name'],
-
 
1406
                        'last_name' => $record['last_name'],
-
 
1407
                        'email' => $record['email'],
-
 
1408
                        'rating' => $record['rating'],
-
 
1409
                        'text' => $record['text'],
-
 
1410
                        'added_on' => $added_on,
-
 
1411
                    ];
-
 
1412
                    
-
 
1413
                    
-
 
1414
                    array_push($items, $item);
-
 
1415
                    
-
 
1416
                    
-
 
1417
                }
-
 
1418
                
-
 
1419
                $data['items'] = $items;
-
 
1420
                $data['total'] = $paginator->getTotalItemCount();
-
 
1421
                
-
 
1422
                
-
 
1423
                return new JsonModel([
-
 
1424
                    'success' => true,
-
 
1425
                    'data' => $data
-
 
1426
                ]);
-
 
1427
            } else {
-
 
1428
                $topicMapper = CompanyMicrolearningTopicMapper::getInstance($this->adapter);
-
 
1429
                $topics = $topicMapper->fetchAllByCompanyId($currentCompany->id);
-
 
1430
                
-
 
1431
                if($topics) {
-
 
1432
                    $topic_id = $topics[0]->id;
-
 
1433
                }  else {
-
 
1434
                    $topic_id = 0;
-
 
1435
                }
-
 
1436
                
-
 
1437
                
-
 
1438
                $form = new TopicCapsuleForm($this->adapter, $currentCompany->id, $topic_id);
-
 
1439
                
-
 
1440
                
-
 
1441
                
-
 
1442
                $this->layout()->setTemplate('layout/layout-backend');
-
 
1443
                $viewModel = new ViewModel();
-
 
1444
                $viewModel->setTemplate('leaders-linked/microlearning-reports/comments-for-capsule.phtml');
-
 
1445
                $viewModel->setVariables([
-
 
1446
                    'form' => $form,
-
 
1447
                ]);
-
 
1448
                
-
 
1449
                return $viewModel ;
-
 
1450
            }
-
 
1451
            
-
 
1452
        } else {
-
 
1453
            return new JsonModel([
-
 
1454
                'success' => false,
-
 
1455
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
-
 
1456
            ]);
-
 
1457
        }
-
 
1458
    }
-
 
1459
    
Línea 1388... Línea 1460...
1388
    
1460