Proyectos de Subversion LeadersLinked - Backend

Rev

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

Rev 2126 Rev 14612
Línea 38... Línea 38...
38
use LeadersLinked\Mapper\CompanyMicrolearningCapsuleCommentMapper;
38
use LeadersLinked\Mapper\CompanyMicrolearningCapsuleCommentMapper;
39
use Laminas\Hydrator\ArraySerializableHydrator;
39
use Laminas\Hydrator\ArraySerializableHydrator;
40
use Laminas\Db\ResultSet\HydratingResultSet;
40
use Laminas\Db\ResultSet\HydratingResultSet;
41
use Laminas\Paginator\Adapter\DbSelect;
41
use Laminas\Paginator\Adapter\DbSelect;
42
use Laminas\Paginator\Paginator;
42
use Laminas\Paginator\Paginator;
-
 
43
use LeadersLinked\Model\CompanyMicrolearningUserProgress;
Línea 43... Línea 44...
43
 
44
 
44
 
45
 
45
class MicrolearningReportsController extends AbstractActionController
46
class MicrolearningReportsController extends AbstractActionController
Línea 1224... Línea 1225...
1224
        }
1225
        }
1225
    }
1226
    }
Línea 1226... Línea 1227...
1226
    
1227
    
1227
    
1228
    
1228
    
1229
    
1229
    public function progressForCapsulesAction()
1230
    public function progressForCapsuleAction()
1230
    {
1231
    {
Línea 1252... Línea 1253...
1252
                        $isJson = strpos($raw, 'json');
1253
                        $isJson = strpos($raw, 'json');
1253
                    }
1254
                    }
Línea 1254... Línea 1255...
1254
                    
1255
                    
1255
                }
1256
                }
-
 
1257
            }
1256
            }
1258
 
1257
            
1259
   
-
 
1260
            if($isJson) {
-
 
1261
 
1258
            if($isJson) {
1262
                
1259
                $topic_uuid     = filter_var($this->params()->fromQuery('topic_uuid'), FILTER_SANITIZE_STRING);
1263
                $topic_uuid     = filter_var($this->params()->fromQuery('topic_uuid'), FILTER_SANITIZE_STRING);
Línea 1260... Línea 1264...
1260
                $capsule_uuid   = filter_var($this->params()->fromQuery('capsule_uuid'), FILTER_SANITIZE_STRING);
1264
                $capsule_uuid   = filter_var($this->params()->fromQuery('capsule_uuid'), FILTER_SANITIZE_STRING);
1261
                
-
 
1262
                $data = [
-
 
1263
                    'items' => [] ,
-
 
1264
                    'total' => 0,
1265
                
Línea 1265... Línea 1266...
1265
                    
1266
                $data = [
1266
                ];
1267
                ];
Línea 1289... Línea 1290...
1289
                        'success' => true,
1290
                        'success' => true,
1290
                        'data' => 'ERROR_UNAUTHORIZED'
1291
                        'data' => 'ERROR_UNAUTHORIZED'
1291
                    ]);
1292
                    ]);
1292
                }
1293
                }
Línea 1293... Línea 1294...
1293
                
1294
                
Línea 1294... Línea 1295...
1294
                
1295
 
1295
                
1296
                
1296
                if(!$capsule_uuid) {
1297
                if(!$capsule_uuid) {
Línea 1307... Línea 1308...
1307
                        $capsules[ $record->uuid ] = $record->name;
1308
                        $capsules[ $record->uuid ] = $record->name;
1308
                    }
1309
                    }
Línea 1309... Línea 1310...
1309
                    
1310
                    
1310
                    $data['capsules']  = $capsules;
1311
                    $data['capsules']  = $capsules;
1311
                }
1312
                }
1312
                
-
 
1313
                if(!$capsule_uuid) {
-
 
1314
                    return new JsonModel([
-
 
1315
                        'success' => true,
-
 
1316
                        'data' => $data
-
 
1317
                    ]);
1313
 
1318
                    
-
 
Línea 1319... Línea 1314...
1319
                }
1314
         
1320
                
1315
                
Línea 1335... Línea 1330...
1335
                        'success' => true,
1330
                        'success' => true,
1336
                        'data' => 'ERROR_UNAUTHORIZED'
1331
                        'data' => 'ERROR_UNAUTHORIZED'
1337
                    ]);
1332
                    ]);
1338
                }
1333
                }
Línea 1339... Línea 1334...
1339
                
1334
                
1340
                
-
 
1341
                $search = $this->params()->fromQuery('search', []);
-
 
1342
                $search = empty($search['value']) ? '' : filter_var($search['value'], FILTER_SANITIZE_STRING);
-
 
1343
                
-
 
1344
                $page               = intval($this->params()->fromQuery('start', 1), 10);
-
 
1345
                $records_x_page     = intval($this->params()->fromQuery('length', 10), 10);
-
 
1346
                $order =  $this->params()->fromQuery('order', []);
-
 
1347
                $order_field        = empty($order[0]['column']) ? 99 :  intval($order[0]['column'], 10);
-
 
1348
                $order_direction    = empty($order[0]['dir']) ? 'ASC' : strtoupper(filter_var( $order[0]['dir'], FILTER_SANITIZE_STRING));
-
 
1349
                
-
 
1350
                $fields =  ['uuid', 'first_name', 'last_name', 'email', 'rating', 'comment', 'added_on'];
-
 
1351
                $order_field = isset($fields[$order_field]) ? $fields[$order_field] : 'added_on';
-
 
1352
                
-
 
1353
                if(!in_array($order_direction, ['ASC', 'DESC'])) {
-
 
1354
                    $order_direction = 'DESC';
-
 
Línea 1355... Línea 1335...
1355
                }
1335
 
1356
                
1336
                
1357
                
1337
                
1358
                $queryMapper = QueryMapper::getInstance($this->adapter);
1338
                $queryMapper = QueryMapper::getInstance($this->adapter);
1359
                $sql = $queryMapper->getSql();
1339
                $sql = $queryMapper->getSql();
1360
                $select = $sql->select();
1340
                $select = $sql->select();
1361
                $select->columns(['access', 'paid_from', 'paid_to', 'added_on', 'updated_on']);
1341
                $select->columns(['progress', 'total_slides', 'view_slides', 'completed', 'returning_after_completed', 'added_on', 'updated_on']);
-
 
1342
                $select->from(['tb1' => CompanyMicrolearningUserProgressMapper::_TABLE] );
1362
                $select->from(['tb1' => CompanyMicrolearningCapsuleCommentMapper::_TABLE] );
1343
                $select->join(['tb2' => UserMapper::_TABLE], 'tb1.user_id = tb2.id', ['uuid', 'first_name', 'last_name', 'email']);
1363
                $select->join(['tb2' => UserMapper::_TABLE], 'tb1.user_id = tb2.id', ['uuid', 'first_name', 'last_name', 'email']);
1344
                $select->where->equalTo('tb1.company_id', $capsule->company_id);
-
 
1345
                $select->where->equalTo('tb1.type', CompanyMicrolearningUserProgress::TYPE_CAPSULE);
Línea 1364... Línea -...
1364
                $select->where->equalTo('tb1.company_id', $capsule->company_id);
-
 
1365
                $select->where->equalTo('tb1.topic_id', $capsule->topic_id);
-
 
1366
                $select->where->equalTo('tb1.capsule_id', $capsule->id);
-
 
1367
                
-
 
1368
                if($search) {
-
 
1369
                    $select->where->nest()
-
 
1370
                    ->like('first_name', '%' . $search . '%')
1346
                $select->where->equalTo('tb1.topic_id', $capsule->topic_id);
1371
                    ->or->like('last_name', '%' . $search . '%')
-
 
1372
                    ->or->like('email', '%' . $search . '%')
-
 
1373
                    ->unnest();
-
 
1374
                    
-
 
1375
                }
-
 
1376
                
-
 
1377
                
-
 
1378
                $select->order($order_field . ' ' . $order_direction);
-
 
1379
                
-
 
1380
                $hydrator   = new ArraySerializableHydrator();
-
 
1381
                $resultset  = new HydratingResultSet($hydrator);
-
 
1382
                
-
 
1383
                $adapter = new DbSelect($select, $sql, $resultset);
-
 
1384
                $paginator = new Paginator($adapter);
1347
                $select->where->equalTo('tb1.capsule_id', $capsule->id);
1385
                $paginator->setItemCountPerPage($records_x_page);
1348
                $select->order('first_name ASC, last_name ASC');
1386
                $paginator->setCurrentPageNumber($page);
1349
                
1387
                
1350
 
1388
                
1351
              
Línea 1389... Línea 1352...
1389
                $items = [ ];
1352
                $items = [];
1390
                $records = $paginator->getCurrentItems();
1353
                $records = $queryMapper->fetchAll($select);
Línea -... Línea 1354...
-
 
1354
                foreach($records as $record)
-
 
1355
                {
-
 
1356
                    
Línea 1391... Línea 1357...
1391
                foreach($records as $record)
1357
                    
1392
                {
1358
                    
1393
                    
1359
                    $dt_added_on = \DateTime::createFromFormat('Y-m-d H:i:s', $record['added_on']);
1394
                    
1360
                    $added_on = $dt_added_on->format('d/m/Y h:i a');
1395
                    
1361
                    
1396
                    $dt_added_on = \DateTime::createFromFormat('Y-m-d H:i:s', $record['added_on']);
1362
                    $dt_updated_on = \DateTime::createFromFormat('Y-m-d H:i:s', $record['updated_on']);
1397
                    $added_on = $dt_added_on->format('d/m/Y h:i a');
1363
                    $updated_on = $dt_updated_on->format('d/m/Y h:i a');
-
 
1364
                    
-
 
1365
                    
-
 
1366
                    $item = [
1398
                    
1367
                        'uuid' => $record['uuid'],
-
 
1368
                        'first_name' => $record['first_name'],
1399
                    
1369
                        'last_name' => $record['last_name'],
Línea 1400... Línea 1370...
1400
                    $item = [
1370
                        'email' => $record['email'],
Línea 1401... Línea 1371...
1401
                        'uuid' => $record['uuid'],
1371
                        'completed' => $record['completed'],
Línea 1402... Línea 1372...
1402
                        'first_name' => $record['first_name'],
1372
                        'progress' => $record['progress'],
1403
                        'last_name' => $record['last_name'],
-
 
-
 
1373
                        'total_slides' => $record['total_slides'],
Línea 1404... Línea 1374...
1404
                        'email' => $record['email'],
1374
                        'view_slides' => $record['view_slides'],
1405
                        'rating' => $record['rating'],
1375
                        'returning_after_completed' => $record['returning_after_completed'],
1406
                        'text' => $record['text'],
1376
                        'added_on' => $added_on,
Línea 1436... Línea 1406...
1436
                
1406
                
1437
                
1407
                
1438
                
1408
                
1439
                $this->layout()->setTemplate('layout/layout-backend');
1409
                $this->layout()->setTemplate('layout/layout-backend');
1440
                $viewModel = new ViewModel();
1410
                $viewModel = new ViewModel();
1441
                $viewModel->setTemplate('leaders-linked/microlearning-reports/comments-for-capsule.phtml');
1411
                $viewModel->setTemplate('leaders-linked/microlearning-reports/progress-for-capsule.phtml');
Línea 1442... Línea 1412...
1442
                $viewModel->setVariables([
1412
                $viewModel->setVariables([