Proyectos de Subversion LeadersLinked - Services

Rev

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

Rev 246 Rev 283
Línea 4... Línea 4...
4
namespace LeadersLinked\Controller;
4
namespace LeadersLinked\Controller;
Línea 5... Línea 5...
5
 
5
 
6
use Laminas\Mvc\Controller\AbstractActionController;
6
use Laminas\Mvc\Controller\AbstractActionController;
7
use Laminas\View\Model\JsonModel;
7
use Laminas\View\Model\JsonModel;
8
use LeadersLinked\Library\Functions;
8
use LeadersLinked\Library\Functions;
9
use LeadersLinked\Mapper\CompanyMicrolearningCapsuleMapper;
9
use LeadersLinked\Mapper\MicrolearningCapsuleMapper;
10
use LeadersLinked\Mapper\QueryMapper;
10
use LeadersLinked\Mapper\QueryMapper;
11
use LeadersLinked\Mapper\UserMapper;
11
use LeadersLinked\Mapper\UserMapper;
12
use Laminas\Db\Sql\Select;
12
use Laminas\Db\Sql\Select;
13
use LeadersLinked\Mapper\CompanyMicrolearningCapsuleUserMapper;
13
use LeadersLinked\Mapper\MicrolearningCapsuleUserMapper;
14
use LeadersLinked\Mapper\CompanyMicrolearningCapsuleCommentMapper;
14
use LeadersLinked\Mapper\MicrolearningCapsuleCommentMapper;
15
use LeadersLinked\Form\Service\CapsuleCommentForm;
15
use LeadersLinked\Form\Service\CapsuleCommentForm;
16
use LeadersLinked\Model\CompanyMicrolearningCapsuleComment;
16
use LeadersLinked\Model\MicrolearningCapsuleComment;
17
use LeadersLinked\Model\CompanyMicrolearningCapsuleUser;
17
use LeadersLinked\Model\MicrolearningCapsuleUser;
18
use LeadersLinked\Model\CompanyMicrolearningAnswer;
18
use LeadersLinked\Model\MicrolearningAnswer;
19
use LeadersLinked\Mapper\CompanyMicrolearningUserProgressMapper;
19
use LeadersLinked\Mapper\MicrolearningUserProgressMapper;
20
use LeadersLinked\Mapper\CompanyMicrolearningSlideMapper;
20
use LeadersLinked\Mapper\MicrolearningSlideMapper;
21
use LeadersLinked\Mapper\CompanyMicrolearningUserLogMapper;
21
use LeadersLinked\Mapper\MicrolearningUserLogMapper;
22
use LeadersLinked\Model\CompanyMicrolearningUserLog;
22
use LeadersLinked\Model\MicrolearningUserLog;
23
use LeadersLinked\Mapper\CompanyMicrolearningTopicMapper;
23
use LeadersLinked\Mapper\MicrolearningTopicMapper;
24
use LeadersLinked\Mapper\CompanyMapper;
24
use LeadersLinked\Mapper\CompanyMapper;
25
use LeadersLinked\Model\CompanyMicrolearningUserProgress;
25
use LeadersLinked\Model\MicrolearningUserProgress;
26
use LeadersLinked\Mapper\CompanyMicrolearningExtendUserMapper;
26
use LeadersLinked\Mapper\MicrolearningExtendUserMapper;
27
use LeadersLinked\Mapper\CompanyMicrolearningExtendUserCompanyMapper;
27
use LeadersLinked\Mapper\MicrolearningExtendUserCompanyMapper;
28
use LeadersLinked\Mapper\CompanyMicrolearningExtendUserFunctionMapper;
28
use LeadersLinked\Mapper\MicrolearningExtendUserFunctionMapper;
29
use LeadersLinked\Mapper\CompanyMicrolearningExtendUserGroupMapper;
29
use LeadersLinked\Mapper\MicrolearningExtendUserGroupMapper;
30
use LeadersLinked\Mapper\CompanyMicrolearningExtendUserInstitutionMapper;
30
use LeadersLinked\Mapper\MicrolearningExtendUserInstitutionMapper;
31
use LeadersLinked\Mapper\CompanyMicrolearningExtendUserPartnerMapper;
31
use LeadersLinked\Mapper\MicrolearningExtendUserPartnerMapper;
32
use LeadersLinked\Mapper\CompanyMicrolearningExtendUserProgramMapper;
32
use LeadersLinked\Mapper\MicrolearningExtendUserProgramMapper;
33
use LeadersLinked\Mapper\CompanyMicrolearningExtendUserStudentTypeMapper;
33
use LeadersLinked\Mapper\MicrolearningExtendUserStudentTypeMapper;
34
use LeadersLinked\Mapper\CompanyMicrolearningExtendUserSectorMapper;
34
use LeadersLinked\Mapper\MicrolearningExtendUserSectorMapper;
35
use LeadersLinked\Mapper\CompanyMicrolearningQuizMapper;
35
use LeadersLinked\Mapper\MicrolearningQuizMapper;
36
use LeadersLinked\Mapper\CompanyMicrolearningQuestionMapper;
36
use LeadersLinked\Mapper\MicrolearningQuestionMapper;
37
use LeadersLinked\Mapper\CompanyMicrolearningAnswerMapper;
37
use LeadersLinked\Mapper\MicrolearningAnswerMapper;
-
 
38
use LeadersLinked\Model\MicrolearningSlide;
Línea 38... Línea 39...
38
use LeadersLinked\Model\CompanyMicrolearningSlide;
39
use LeadersLinked\Library\Storage;
39
 
40
 
40
 
41
 
Línea 146... Línea 147...
146
            
147
            
147
            $accessGrantedIds = $this->getAccessGranted();
148
            $accessGrantedIds = $this->getAccessGranted();
148
            $companyMapper = CompanyMapper::getInstance($this->adapter);
149
            $companyMapper = CompanyMapper::getInstance($this->adapter);
Línea -... Línea 150...
-
 
150
            $records = $companyMapper->fetchAllByIdsAndNetworkId($accessGrantedIds->companies, $currentNetwork->id);
Línea 149... Línea 151...
149
            $records = $companyMapper->fetchAllByIdsAndNetworkId($accessGrantedIds->companies, $currentNetwork->id);
151
            
150
            
152
            $storage = Storage::getInstance($this->config);
151
            
153
            
152
            $companies = [];
154
            $companies = [];
153
            foreach($records as $record)
155
            foreach($records as $record)
154
            {
156
            {
155
                array_push($companies, [
157
                array_push($companies, [
156
                    'uuid' => $record->uuid,
158
                    'uuid' => $record->uuid,
157
                    'name' => $record->name, 
159
                    'name' => $record->name, 
158
                    'image' => $this->url()->fromRoute('storage',['type' => 'company', 'code' => $record->uuid, 'filename' => $record->image], ['force_canonical' => true]),
160
                    'image' => $storage->getCompanyImage($record),
Línea 159... Línea 161...
159
                    'link_progress' => $this->url()->fromRoute('microlearning/progress',['id' => $record->uuid], ['force_canonical' => true]),
161
                    'link_progress' => $this->url()->fromRoute('microlearning/progress',['id' => $record->uuid], ['force_canonical' => true]),
Línea 186... Línea 188...
186
            $currentUserPlugin = $this->plugin('currentUserPlugin');
188
            $currentUserPlugin = $this->plugin('currentUserPlugin');
187
            $currentUser = $currentUserPlugin->getUser();
189
            $currentUser = $currentUserPlugin->getUser();
Línea 188... Línea 190...
188
            
190
            
Línea 189... Línea 191...
189
            $capsule_id = $this->params()->fromRoute('capsule_id');
191
            $capsule_id = $this->params()->fromRoute('capsule_id');
190
            
192
            
Línea 191... Línea 193...
191
            $capsuleMapper = CompanyMicrolearningCapsuleMapper::getInstance($this->adapter);
193
            $capsuleMapper = MicrolearningCapsuleMapper::getInstance($this->adapter);
192
            $capsule = $capsuleMapper->fetchOneByUuid($capsule_id);
194
            $capsule = $capsuleMapper->fetchOneByUuid($capsule_id);
193
            
195
            
Línea 198... Línea 200...
198
                    
200
                    
Línea 199... Línea 201...
199
                ]);
201
                ]);
Línea 200... Línea 202...
200
                
202
                
201
            }
203
            }
202
            
204
            
203
            $capsuleUserMapper = CompanyMicrolearningCapsuleUserMapper::getInstance($this->adapter);
205
            $capsuleUserMapper = MicrolearningCapsuleUserMapper::getInstance($this->adapter);
204
            $capsuleUser = $capsuleUserMapper->fetchOneByUserIdAndCapsuleId($currentUser->id, $capsule->id);
206
            $capsuleUser = $capsuleUserMapper->fetchOneByUserIdAndCapsuleId($currentUser->id, $capsule->id);
205
            if(! $capsuleUser) {
207
            if(! $capsuleUser) {
Línea 210... Línea 212...
210
            }
212
            }
Línea 211... Línea 213...
211
            
213
            
212
            $userMapper = UserMapper::getInstance($this->adapter);
214
            $userMapper = UserMapper::getInstance($this->adapter);
Línea -... Línea 215...
-
 
215
            $users = [];
-
 
216
            
-
 
217
            
213
            $users = [];
218
            $storage = Storage::getInstance($this->config);
214
            
219
            
Línea 215... Línea 220...
215
            $capsuleCommentMapper = CompanyMicrolearningCapsuleCommentMapper::getInstance($this->adapter);
220
            $capsuleCommentMapper = MicrolearningCapsuleCommentMapper::getInstance($this->adapter);
216
            $records = $capsuleCommentMapper->fetchAllByCapsuleId($capsule->id);
221
            $records = $capsuleCommentMapper->fetchAllByCapsuleId($capsule->id);
217
            
222
            
Línea 238... Línea 243...
238
                
243
                
Línea 239... Línea 244...
239
                $dt = \DateTime::createFromFormat('Y-m-d H:i:s', $record->added_on);
244
                $dt = \DateTime::createFromFormat('Y-m-d H:i:s', $record->added_on);
240
                
245
                
241
                array_push($comments, [
246
                array_push($comments, [
242
                    'date' => $dt->format($serviceDatetimeFormat),
247
                    'date' => $dt->format($serviceDatetimeFormat),
243
                    'image' => $this->url()->fromRoute('storage', ['type' => 'user', 'code' => $user->uuid, 'filename' => $user->image], ['force_canonical' => true]),
248
                    'image' => $storage->getUserImage($user),
244
                    'fullname' => trim(trim($user->first_name) . ' ' . trim($user->last_name)),
249
                    'fullname' => trim(trim($user->first_name) . ' ' . trim($user->last_name)),
245
                    'rating' => strval($record->rating),
250
                    'rating' => strval($record->rating),
246
                    'comment' => $record->comment,
251
                    'comment' => $record->comment,
Línea 283... Línea 288...
283
            $currentUser = $currentUserPlugin->getUser();
288
            $currentUser = $currentUserPlugin->getUser();
Línea 284... Línea 289...
284
            
289
            
285
            $capsule_id = $this->params()->fromRoute('capsule_id');
290
            $capsule_id = $this->params()->fromRoute('capsule_id');
Línea 286... Línea 291...
286
            $comment_id = $this->params()->fromRoute('comment_id');
291
            $comment_id = $this->params()->fromRoute('comment_id');
287
            
292
            
Línea 288... Línea 293...
288
            $capsuleMapper = CompanyMicrolearningCapsuleMapper::getInstance($this->adapter);
293
            $capsuleMapper = MicrolearningCapsuleMapper::getInstance($this->adapter);
289
            $capsule = $capsuleMapper->fetchOneByUuid($capsule_id);
294
            $capsule = $capsuleMapper->fetchOneByUuid($capsule_id);
290
            
295
            
Línea 295... Línea 300...
295
                    
300
                    
Línea 296... Línea 301...
296
                ]);
301
                ]);
Línea 297... Línea 302...
297
                
302
                
298
            }
303
            }
299
            
304
            
300
            $capsuleUserMapper = CompanyMicrolearningCapsuleUserMapper::getInstance($this->adapter);
305
            $capsuleUserMapper = MicrolearningCapsuleUserMapper::getInstance($this->adapter);
301
            $capsuleUser = $capsuleUserMapper->fetchOneByUserIdAndCapsuleId($currentUser->id, $capsule->id);
306
            $capsuleUser = $capsuleUserMapper->fetchOneByUserIdAndCapsuleId($currentUser->id, $capsule->id);
302
            if(! $capsuleUser) {
307
            if(! $capsuleUser) {
303
                return new JsonModel([
308
                return new JsonModel([
304
                    'success' => false,
309
                    'success' => false,
Línea 305... Línea 310...
305
                    'data' => 'ERROR_YOU_DO_NOT_HAVE_ACCESS_TO_THIS_CAPSULE',
310
                    'data' => 'ERROR_YOU_DO_NOT_HAVE_ACCESS_TO_THIS_CAPSULE',
306
                ]);
311
                ]);
Línea 307... Línea 312...
307
            }
312
            }
308
            
313
            
309
            $capsuleCommentMapper = CompanyMicrolearningCapsuleCommentMapper::getInstance($this->adapter);
314
            $capsuleCommentMapper = MicrolearningCapsuleCommentMapper::getInstance($this->adapter);
Línea 371... Línea 376...
371
            $currentUser = $currentUserPlugin->getUser();
376
            $currentUser = $currentUserPlugin->getUser();
Línea 372... Línea 377...
372
            
377
            
Línea 373... Línea 378...
373
            $capsule_id = $this->params()->fromRoute('capsule_id');
378
            $capsule_id = $this->params()->fromRoute('capsule_id');
374
            
379
            
Línea 375... Línea 380...
375
            
380
            
376
            $capsuleMapper = CompanyMicrolearningCapsuleMapper::getInstance($this->adapter);
381
            $capsuleMapper = MicrolearningCapsuleMapper::getInstance($this->adapter);
377
            $capsule = $capsuleMapper->fetchOneByUuid($capsule_id);
382
            $capsule = $capsuleMapper->fetchOneByUuid($capsule_id);
Línea 383... Línea 388...
383
                    
388
                    
Línea 384... Línea 389...
384
                ]);
389
                ]);
Línea 385... Línea 390...
385
                
390
                
386
            }
391
            }
387
            
392
            
388
            $capsuleUserMapper = CompanyMicrolearningCapsuleUserMapper::getInstance($this->adapter);
393
            $capsuleUserMapper = MicrolearningCapsuleUserMapper::getInstance($this->adapter);
389
            $capsuleUser = $capsuleUserMapper->fetchOneByUserIdAndCapsuleId($currentUser->id, $capsule->id);
394
            $capsuleUser = $capsuleUserMapper->fetchOneByUserIdAndCapsuleId($currentUser->id, $capsule->id);
390
            if(! $capsuleUser) {
395
            if(! $capsuleUser) {
Línea 407... Línea 412...
407
            
412
            
408
            if($form->isValid()) {
413
            if($form->isValid()) {
Línea 409... Línea 414...
409
                $dataPost = (array) $form->getData();
414
                $dataPost = (array) $form->getData();
410
                
415
                
411
                
416
                
412
                $capsuleComment = new CompanyMicrolearningCapsuleComment();
417
                $capsuleComment = new MicrolearningCapsuleComment();
413
                $capsuleComment->company_id = $capsule->company_id;
418
                $capsuleComment->company_id = $capsule->company_id;
414
                $capsuleComment->topic_id = $capsule->topic_id;
419
                $capsuleComment->topic_id = $capsule->topic_id;
415
                $capsuleComment->capsule_id = $capsule->id;
420
                $capsuleComment->capsule_id = $capsule->id;
416
                $capsuleComment->user_id = $currentUser->id;
421
                $capsuleComment->user_id = $currentUser->id;
Línea 417... Línea 422...
417
                $capsuleComment->comment = $dataPost['comment'];
422
                $capsuleComment->comment = $dataPost['comment'];
418
                $capsuleComment->rating = strval($dataPost['rating']);
423
                $capsuleComment->rating = strval($dataPost['rating']);
419
                $capsuleComment->added_on =  $dataPost['added_on'];
424
                $capsuleComment->added_on =  $dataPost['added_on'];
Línea 420... Línea 425...
420
                
425
                
Línea 491... Línea 496...
491
            $currentUser = $currentUserPlugin->getUser();
496
            $currentUser = $currentUserPlugin->getUser();
Línea 492... Línea 497...
492
            
497
            
Línea 493... Línea 498...
493
            $accessGrantedIds = $this->getAccessGranted();
498
            $accessGrantedIds = $this->getAccessGranted();
494
            
499
            
495
            
500
            
Línea 496... Línea 501...
496
            $userProgressMapper = CompanyMicrolearningUserProgressMapper::getInstance($this->adapter);
501
            $userProgressMapper = MicrolearningUserProgressMapper::getInstance($this->adapter);
-
 
502
            $userProgress = $userProgressMapper->fetchOneLastCapsuleInProgressByUserIdAndCapsuleIds($currentUser->id, $accessGrantedIds->capsules);
-
 
503
            $topicMapper = MicrolearningTopicMapper::getInstance($this->adapter);
-
 
504
            
497
            $userProgress = $userProgressMapper->fetchOneLastCapsuleInProgressByUserIdAndCapsuleIds($currentUser->id, $accessGrantedIds->capsules);
505
            if($userProgress) {
498
            $topicMapper = CompanyMicrolearningTopicMapper::getInstance($this->adapter);
506
                $storage = Storage::getInstance($this->config);
Línea 499... Línea 507...
499
            
507
                $path = $storage->getPathMicrolearningCapsule();
Línea 500... Línea 508...
500
            if($userProgress) {
508
                
Línea -... Línea 509...
-
 
509
                $capsuleMapper = MicrolearningCapsuleMapper::getInstance($this->adapter);
501
                $capsuleMapper = CompanyMicrolearningCapsuleMapper::getInstance($this->adapter);
510
                $capsule = $capsuleMapper->fetchOne($userProgress->capsule_id);
Línea 502... Línea 511...
502
                $capsule = $capsuleMapper->fetchOne($userProgress->capsule_id);
511
                
503
                
512
                $capsuleCommentMapper = MicrolearningCapsuleCommentMapper::getInstance($this->adapter);
504
                $capsuleCommentMapper = CompanyMicrolearningCapsuleCommentMapper::getInstance($this->adapter);
513
                
505
                
514
 
506
 
515
                $dataCountAndRatingAverage = $capsuleCommentMapper->fetchCountAndRatingAverage($capsule->company_id, $capsule->topic_id, $capsule->id);
507
                $dataCountAndRatingAverage = $capsuleCommentMapper->fetchCountAndRatingAverage($capsule->company_id, $capsule->topic_id, $capsule->id);
516
                
508
                
517
                
509
                $topic = $topicMapper->fetchOne($capsule->topic_id);
518
                $topic = $topicMapper->fetchOne($capsule->topic_id);
510
                
519
                
511
                $response = [
520
                $response = [
512
                    'success' => true,
521
                    'success' => true,
513
                    'data' => [
522
                    'data' => [
Línea 570... Línea 579...
570
            if(!in_array( $order_direction,['asc', 'desc'])) {
579
            if(!in_array( $order_direction,['asc', 'desc'])) {
571
                $order_field = 'asc';
580
                $order_field = 'asc';
572
            }
581
            }
Línea 573... Línea 582...
573
            
582
            
574
            
583
            
575
            $userProgressMapper = CompanyMicrolearningUserProgressMapper::getInstance($this->adapter);
584
            $userProgressMapper = MicrolearningUserProgressMapper::getInstance($this->adapter);
576
            $capsuleMapper = CompanyMicrolearningCapsuleMapper::getInstance($this->adapter);
585
            $capsuleMapper = MicrolearningCapsuleMapper::getInstance($this->adapter);
Línea 577... Línea 586...
577
            $capsuleCommentMapper = CompanyMicrolearningCapsuleCommentMapper::getInstance($this->adapter);
586
            $capsuleCommentMapper = MicrolearningCapsuleCommentMapper::getInstance($this->adapter);
Línea 578... Línea 587...
578
            $topicMapper = CompanyMicrolearningTopicMapper::getInstance($this->adapter);
587
            $topicMapper = MicrolearningTopicMapper::getInstance($this->adapter);
579
            
588
            
Línea -... Línea 589...
-
 
589
            $accessGranted = $this->getAccessGranted();
-
 
590
            
-
 
591
            
580
            $accessGranted = $this->getAccessGranted();
592
            $topics = [];
581
            
593
            $capsules = [];
582
            
594
            
583
            $topics = [];
595
            $storage = Storage::getInstance($this->config);
584
            $capsules = [];
596
            $path = $storage->getPathMicrolearningCapsule();
Línea 610... Línea 622...
610
                
622
                
611
                array_push($capsules, [
623
                array_push($capsules, [
612
                    'uuid'              => $capsule->uuid,
624
                    'uuid'              => $capsule->uuid,
613
                    'name'              => $capsule->name ? $capsule->name : '',
625
                    'name'              => $capsule->name ? $capsule->name : '',
614
                    'description'       => $capsule->description ? $capsule->description : '',
626
                    'description'       => $capsule->description ? $capsule->description : '',
615
                    'image'             => $capsule->image ? $this->url()->fromRoute('storage',['type' => 'microlearning-capsule', 'code' => $capsule->uuid, 'filename' => $capsule->image ], ['force_canonical' => true])  : '',
627
                    'image'             => $capsule->image ? $storage->getGenericImage($path, $capsule->uuid, $capsule->image)  : '',
616
                    'position'          => $capsule->order,
628
                    'position'          => $capsule->order,
617
                    'link_comments'     => $this->url()->fromRoute('microlearning/capsules-comments', ['capsule_id' => $capsule->uuid], ['force_canonical' => true]),
629
                    'link_comments'     => $this->url()->fromRoute('microlearning/capsules-comments', ['capsule_id' => $capsule->uuid], ['force_canonical' => true]),
618
                    'link_comment_add'  => $this->url()->fromRoute('microlearning/capsules-comments/add', ['capsule_id' => $capsule->uuid],['force_canonical' => true]),
630
                    'link_comment_add'  => $this->url()->fromRoute('microlearning/capsules-comments/add', ['capsule_id' => $capsule->uuid],['force_canonical' => true]),
619
                    'link_slides'       => $this->url()->fromRoute('microlearning/slides', ['topic_id' => $topic->uuid,  'capsule_id' => $capsule->uuid], ['force_canonical' => true]),
631
                    'link_slides'       => $this->url()->fromRoute('microlearning/slides', ['topic_id' => $topic->uuid,  'capsule_id' => $capsule->uuid], ['force_canonical' => true]),
Línea 706... Línea 718...
706
            
718
            
707
            if(!in_array( $order_direction,['asc', 'desc'])) {
719
            if(!in_array( $order_direction,['asc', 'desc'])) {
708
                $order_field = 'asc';
720
                $order_field = 'asc';
Línea 709... Línea 721...
709
            }
721
            }
710
            
722
            
711
            $userProgressMapper = CompanyMicrolearningUserProgressMapper::getInstance($this->adapter);
723
            $userProgressMapper = MicrolearningUserProgressMapper::getInstance($this->adapter);
712
            $capsuleMapper = CompanyMicrolearningCapsuleMapper::getInstance($this->adapter);
724
            $capsuleMapper = MicrolearningCapsuleMapper::getInstance($this->adapter);
Línea 713... Línea 725...
713
            $capsuleCommentMapper = CompanyMicrolearningCapsuleCommentMapper::getInstance($this->adapter);
725
            $capsuleCommentMapper = MicrolearningCapsuleCommentMapper::getInstance($this->adapter);
Línea 714... Línea 726...
714
            $topicMapper = CompanyMicrolearningTopicMapper::getInstance($this->adapter);
726
            $topicMapper = MicrolearningTopicMapper::getInstance($this->adapter);
715
            
727
            
Línea -... Línea 728...
-
 
728
            $accessGranted = $this->getAccessGranted();
-
 
729
            
-
 
730
            $topics = [];
716
            $accessGranted = $this->getAccessGranted();
731
            $capsules = [];
717
            
732
            
718
            $topics = [];
733
            $storage = Storage::getInstance($this->config);
719
            $capsules = [];
734
            $path = $storage->getPathMicrolearningCapsule();
720
            
735
            
Línea 752... Línea 767...
752
                
767
                
753
                array_push($capsules, [
768
                array_push($capsules, [
754
                    'uuid'              => $capsule->uuid,
769
                    'uuid'              => $capsule->uuid,
755
                    'name'              => $capsule->name ? $capsule->name : '',
770
                    'name'              => $capsule->name ? $capsule->name : '',
756
                    'description'       => $capsule->description ? $capsule->description : '',
771
                    'description'       => $capsule->description ? $capsule->description : '',
757
                    'image'             => $capsule->image ? $this->url()->fromRoute('storage',['type' => 'microlearning-capsule', 'code' => $capsule->uuid, 'filename' => $capsule->image ], ['force_canonical' => true])  : '',
772
                    'image'             => $capsule->image ? $storage->getGenericImage($path, $capsule->uuid, $capsule->image)  : '',
758
                    'position'          => $capsule->order,
773
                    'position'          => $capsule->order,
759
                    'link_comments'     => $this->url()->fromRoute('microlearning/capsules-comments', ['capsule_id' => $capsule->uuid], ['force_canonical' => true]),
774
                    'link_comments'     => $this->url()->fromRoute('microlearning/capsules-comments', ['capsule_id' => $capsule->uuid], ['force_canonical' => true]),
760
                    'link_comment_add'  => $this->url()->fromRoute('microlearning/capsules-comments/add', ['capsule_id' => $capsule->uuid],['force_canonical' => true]),
775
                    'link_comment_add'  => $this->url()->fromRoute('microlearning/capsules-comments/add', ['capsule_id' => $capsule->uuid],['force_canonical' => true]),
761
                    'link_slides'       => $this->url()->fromRoute('microlearning/slides', ['topic_id' => $topic->uuid,  'capsule_id' => $capsule->uuid], ['force_canonical' => true]),
776
                    'link_slides'       => $this->url()->fromRoute('microlearning/slides', ['topic_id' => $topic->uuid,  'capsule_id' => $capsule->uuid], ['force_canonical' => true]),
Línea 863... Línea 878...
863
            
878
            
864
            if(!in_array( $order_direction,['asc', 'desc'])) {
879
            if(!in_array( $order_direction,['asc', 'desc'])) {
865
                $order_field = 'asc';
880
                $order_field = 'asc';
Línea 866... Línea 881...
866
            }
881
            }
867
            
882
            
868
            $userProgressMapper = CompanyMicrolearningUserProgressMapper::getInstance($this->adapter);
883
            $userProgressMapper = MicrolearningUserProgressMapper::getInstance($this->adapter);
869
            $capsuleMapper = CompanyMicrolearningCapsuleMapper::getInstance($this->adapter);
884
            $capsuleMapper = MicrolearningCapsuleMapper::getInstance($this->adapter);
Línea 870... Línea 885...
870
            $capsuleCommentMapper = CompanyMicrolearningCapsuleCommentMapper::getInstance($this->adapter);
885
            $capsuleCommentMapper = MicrolearningCapsuleCommentMapper::getInstance($this->adapter);
Línea 871... Línea 886...
871
            $topicMapper = CompanyMicrolearningTopicMapper::getInstance($this->adapter);
886
            $topicMapper = MicrolearningTopicMapper::getInstance($this->adapter);
872
            
887
            
Línea -... Línea 888...
-
 
888
            $accessGranted = $this->getAccessGranted();
-
 
889
            
-
 
890
            $topics = [];
873
            $accessGranted = $this->getAccessGranted();
891
            $capsules = [];
874
            
892
            
875
            $topics = [];
893
            $storage = Storage::getInstance($this->config);
876
            $capsules = [];
894
            $path = $storage->getPathMicrolearningCapsule();
877
            
895
            
Línea 909... Línea 927...
909
                
927
                
910
                array_push($capsules, [
928
                array_push($capsules, [
911
                    'uuid'              => $capsule->uuid,
929
                    'uuid'              => $capsule->uuid,
912
                    'name'              => $capsule->name ? $capsule->name : '',
930
                    'name'              => $capsule->name ? $capsule->name : '',
913
                    'description'       => $capsule->description ? $capsule->description : '',
931
                    'description'       => $capsule->description ? $capsule->description : '',
914
                    'image'             => $capsule->image ? $this->url()->fromRoute('storage',['type' => 'microlearning-capsule', 'code' => $capsule->uuid, 'filename' => $capsule->image ], ['force_canonical' => true])  : '',
932
                    'image'             => $capsule->image ? $storage->getGenericImage($path, $capsule->uuid, $capsule->image)  : '',
915
                    'position'          => $capsule->order,
933
                    'position'          => $capsule->order,
916
                    'link_comments'     => $this->url()->fromRoute('microlearning/capsules-comments', ['capsule_id' => $capsule->uuid], ['force_canonical' => true]),
934
                    'link_comments'     => $this->url()->fromRoute('microlearning/capsules-comments', ['capsule_id' => $capsule->uuid], ['force_canonical' => true]),
917
                    'link_comment_add'  => $this->url()->fromRoute('microlearning/capsules-comments/add', ['capsule_id' => $capsule->uuid],['force_canonical' => true]),
935
                    'link_comment_add'  => $this->url()->fromRoute('microlearning/capsules-comments/add', ['capsule_id' => $capsule->uuid],['force_canonical' => true]),
918
                    'link_slides'       => $this->url()->fromRoute('microlearning/slides', ['topic_id' => $topic->uuid,  'capsule_id' => $capsule->uuid], ['force_canonical' => true]),
936
                    'link_slides'       => $this->url()->fromRoute('microlearning/slides', ['topic_id' => $topic->uuid,  'capsule_id' => $capsule->uuid], ['force_canonical' => true]),
Línea 1013... Línea 1031...
1013
            
1031
            
Línea 1014... Línea 1032...
1014
            
1032
            
1015
            $page = intval($this->params()->fromQuery('page'), 10);
1033
            $page = intval($this->params()->fromQuery('page'), 10);
1016
            
1034
            
1017
            $activities = [
1035
            $activities = [
1018
                CompanyMicrolearningUserLog::ACTIVITY_SIGNIN            => 'LABEL_MICROLEARNING_ACTIVITY_SIGNIN',
1036
                MicrolearningUserLog::ACTIVITY_SIGNIN            => 'LABEL_MICROLEARNING_ACTIVITY_SIGNIN',
1019
                CompanyMicrolearningUserLog::ACTIVITY_SIGNOUT           => 'LABEL_MICROLEARNING_ACTIVITY_SIGNOUT',
1037
                MicrolearningUserLog::ACTIVITY_SIGNOUT           => 'LABEL_MICROLEARNING_ACTIVITY_SIGNOUT',
1020
                CompanyMicrolearningUserLog::ACTIVITY_START_TOPIC       => 'LABEL_MICROLEARNING_ACTIVITY_START_TOPIC',
1038
                MicrolearningUserLog::ACTIVITY_START_TOPIC       => 'LABEL_MICROLEARNING_ACTIVITY_START_TOPIC',
1021
                CompanyMicrolearningUserLog::ACTIVITY_START_CAPSULE     => 'LABEL_MICROLEARNING_ACTIVITY_START_CAPSULE',
1039
                MicrolearningUserLog::ACTIVITY_START_CAPSULE     => 'LABEL_MICROLEARNING_ACTIVITY_START_CAPSULE',
1022
                CompanyMicrolearningUserLog::ACTIVITY_VIEW_SLIDE        => 'LABEL_MICROLEARNING_ACTIVITY_VIEW_SLIDE',
1040
                MicrolearningUserLog::ACTIVITY_VIEW_SLIDE        => 'LABEL_MICROLEARNING_ACTIVITY_VIEW_SLIDE',
1023
                CompanyMicrolearningUserLog::ACTIVITY_TAKE_A_TEST       => 'LABEL_MICROLEARNING_ACTIVITY_TAKE_A_TEST',
1041
                MicrolearningUserLog::ACTIVITY_TAKE_A_TEST       => 'LABEL_MICROLEARNING_ACTIVITY_TAKE_A_TEST',
1024
                CompanyMicrolearningUserLog::ACTIVITY_RETAKE_A_TEST     => 'LABEL_MICROLEARNING_ACTIVITY_RETAKE_A_TEST',
1042
                MicrolearningUserLog::ACTIVITY_RETAKE_A_TEST     => 'LABEL_MICROLEARNING_ACTIVITY_RETAKE_A_TEST',
1025
                CompanyMicrolearningUserLog::ACTIVITY_APPROVED_TEST     => 'LABEL_MICROLEARNING_ACTIVITY_APPROVED_TEST',
1043
                MicrolearningUserLog::ACTIVITY_APPROVED_TEST     => 'LABEL_MICROLEARNING_ACTIVITY_APPROVED_TEST',
Línea 1026... Línea 1044...
1026
                CompanyMicrolearningUserLog::ACTIVITY_COMPLETED_CAPSULE => 'LABEL_MICROLEARNING_ACTIVITY_COMPLETED_CAPSULE',
1044
                MicrolearningUserLog::ACTIVITY_COMPLETED_CAPSULE => 'LABEL_MICROLEARNING_ACTIVITY_COMPLETED_CAPSULE',
1027
                CompanyMicrolearningUserLog::ACTIVITY_COMPLETED_TOPIC   => 'LABEL_MICROLEARNING_ACTIVITY_COMPLETED_TOPIC',
1045
                MicrolearningUserLog::ACTIVITY_COMPLETED_TOPIC   => 'LABEL_MICROLEARNING_ACTIVITY_COMPLETED_TOPIC',
Línea 1028... Línea 1046...
1028
            ];
1046
            ];
1029
            
1047
            
1030
 
1048
 
1031
            
1049
            
Línea 1137... Línea 1155...
1137
            $capsuleStarted            = 0;
1155
            $capsuleStarted            = 0;
1138
            $capsuleToStart            = 0;
1156
            $capsuleToStart            = 0;
1139
            $percentCompleted          = 0;
1157
            $percentCompleted          = 0;
1140
            $percentIncompleted        = 100;
1158
            $percentIncompleted        = 100;
Línea 1141... Línea 1159...
1141
            
1159
            
1142
            $topicMapper = CompanyMicrolearningTopicMapper::getInstance($this->adapter);
1160
            $topicMapper = MicrolearningTopicMapper::getInstance($this->adapter);
Línea 1143... Línea 1161...
1143
            $topics = $topicMapper->fetchAllActiveByCompanyIdAndIds($company->id, $accessGrantedIds->topics);
1161
            $topics = $topicMapper->fetchAllActiveByCompanyIdAndIds($company->id, $accessGrantedIds->topics);
1144
            
1162
            
Línea 1145... Línea 1163...
1145
            $capsuleMapper = CompanyMicrolearningCapsuleMapper::getInstance($this->adapter);
1163
            $capsuleMapper = MicrolearningCapsuleMapper::getInstance($this->adapter);
1146
            $progressMapper = CompanyMicrolearningUserProgressMapper::getInstance($this->adapter);
1164
            $progressMapper = MicrolearningUserProgressMapper::getInstance($this->adapter);
1147
            
1165
            
Línea 1207... Línea 1225...
1207
            
1225
            
1208
            
1226
            
Línea 1209... Línea 1227...
1209
            $data = [];
1227
            $data = [];
1210
            $accessGrantedIds = $this->getAccessGranted();
1228
            $accessGrantedIds = $this->getAccessGranted();
Línea -... Línea 1229...
-
 
1229
            
-
 
1230
            $userProgressMapper = MicrolearningUserProgressMapper::getInstance($this->adapter);
Línea 1211... Línea 1231...
1211
            
1231
            $topicMapper = MicrolearningTopicMapper::getInstance($this->adapter);
1212
            $userProgressMapper = CompanyMicrolearningUserProgressMapper::getInstance($this->adapter);
1232
            
1213
            $topicMapper = CompanyMicrolearningTopicMapper::getInstance($this->adapter);
1233
            $storage = Storage::getInstance($this->config);
1214
            
1234
            $path = $storage->getPathMicrolearningTopic();
Línea 1233... Línea 1253...
1233
            
1253
            
1234
                array_push($data, [
1254
                array_push($data, [
1235
                    'uuid'          => $topic->uuid,
1255
                    'uuid'          => $topic->uuid,
1236
                    'name'          => $topic->name ? $topic->name : '',
1256
                    'name'          => $topic->name ? $topic->name : '',
1237
                    'description'   => $topic->description ? $topic->description : '',
1257
                    'description'   => $topic->description ? $topic->description : '',
1238
                    'image'         => $topic->image ? $this->url()->fromRoute('storage',['type' => 'microlearning-topic', 'code' => $topic->uuid, 'filename' => $topic->image ], ['force_canonical' => true]) : '',
1258
                    'image'         => $topic->image ? $storage->getGenericImage($path, $topic->uuid, $topic->image) : '',
1239
                    'progress'      => $progress,
1259
                    'progress'      => $progress,
1240
                    'completed'     => $completed,
1260
                    'completed'     => $completed,
1241
                    'order'         => $topic->order,
1261
                    'order'         => $topic->order,
1242
                    'added_on'      => $topic->added_on,
1262
                    'added_on'      => $topic->added_on,
Línea 1288... Línea 1308...
1288
            $currentUserPlugin = $this->plugin('currentUserPlugin');
1308
            $currentUserPlugin = $this->plugin('currentUserPlugin');
1289
            $currentUser = $currentUserPlugin->getUser();
1309
            $currentUser = $currentUserPlugin->getUser();
Línea 1290... Línea 1310...
1290
            
1310
            
1291
            
1311
            
1292
            $id = $this->params()->fromRoute('id');
1312
            $id = $this->params()->fromRoute('id');
Línea 1293... Línea 1313...
1293
            $topicMapper = CompanyMicrolearningTopicMapper::getInstance($this->adapter);
1313
            $topicMapper = MicrolearningTopicMapper::getInstance($this->adapter);
1294
            $topic = $topicMapper->fetchOneByUuid($id);
1314
            $topic = $topicMapper->fetchOneByUuid($id);
1295
            
1315
            
Línea 1311... Línea 1331...
1311
            
1331
            
1312
            
1332
            
Línea 1313... Línea 1333...
1313
            $data = [];
1333
            $data = [];
Línea 1314... Línea 1334...
1314
            $accessGrantedIds = $this->getAccessGranted();
1334
            $accessGrantedIds = $this->getAccessGranted();
1315
            
1335
            
1316
            $userProgressMapper = CompanyMicrolearningUserProgressMapper::getInstance($this->adapter);
1336
            $userProgressMapper = MicrolearningUserProgressMapper::getInstance($this->adapter);
1317
 
1337
 
1318
            $userProgress = $userProgressMapper->fetchOneByUserIdAndTopicId($currentUser->id, $id);
1338
            $userProgress = $userProgressMapper->fetchOneByUserIdAndTopicId($currentUser->id, $id);
1319
            if($userProgress) {
1339
            if($userProgress) {
1320
                $progress = $userProgress->progress;
1340
                $progress = $userProgress->progress;
1321
                $completed = $userProgress->completed;
1341
                $completed = $userProgress->completed;
Línea 1322... Línea -...
1322
            } else {
-
 
-
 
1342
            } else {
-
 
1343
                $progress = 0;
Línea 1323... Línea 1344...
1323
                $progress = 0;
1344
                $completed = 0;
1324
                $completed = 0;
1345
            }
1325
            }
1346
                
1326
                
1347
            $storage = Storage::getInstance($this->config);
1327
                
1348
            $path = $storage->getPathMicrolearningTopic();
1328
                
1349
                
1329
            $data = [
1350
            $data = [
1330
                'uuid'          => $topic->uuid,
1351
                'uuid'          => $topic->uuid,
1331
                'name'          => $topic->name ? $topic->name : '',
1352
                'name'          => $topic->name ? $topic->name : '',
1332
                'description'   => $topic->description ? $topic->description : '',
1353
                'description'   => $topic->description ? $topic->description : '',
Línea 1364... Línea 1385...
1364
            $currentUser = $currentUserPlugin->getUser();
1385
            $currentUser = $currentUserPlugin->getUser();
Línea 1365... Línea 1386...
1365
            
1386
            
1366
            
1387
            
1367
            
1388
            
Línea 1368... Línea 1389...
1368
            $topic_id = $this->params()->fromRoute('topic_id');
1389
            $topic_id = $this->params()->fromRoute('topic_id');
1369
            $topicMapper = CompanyMicrolearningTopicMapper::getInstance($this->adapter);
1390
            $topicMapper = MicrolearningTopicMapper::getInstance($this->adapter);
1370
            $topic = $topicMapper->fetchOneByUuid($topic_id);
1391
            $topic = $topicMapper->fetchOneByUuid($topic_id);
Línea 1388... Línea 1409...
1388
            
1409
            
Línea 1389... Línea 1410...
1389
            
1410
            
1390
            $data = [];
1411
            $data = [];
1391
          
1412
          
Línea -... Línea 1413...
-
 
1413
            
-
 
1414
            $capsuleMapper = MicrolearningCapsuleMapper::getInstance($this->adapter);
Línea 1392... Línea 1415...
1392
            
1415
            $userProgressMapper = MicrolearningUserProgressMapper::getInstance($this->adapter);
1393
            $capsuleMapper = CompanyMicrolearningCapsuleMapper::getInstance($this->adapter);
1416
            $capsuleCommentMapper = MicrolearningCapsuleCommentMapper::getInstance($this->adapter);
1394
            $userProgressMapper = CompanyMicrolearningUserProgressMapper::getInstance($this->adapter);
1417
     
Línea 1418... Línea 1441...
1418
                
1441
                
1419
                array_push($data, [
1442
                array_push($data, [
1420
                    'uuid'              => $capsule->uuid,
1443
                    'uuid'              => $capsule->uuid,
1421
                    'name'              => $capsule->name ? $capsule->name : '',
1444
                    'name'              => $capsule->name ? $capsule->name : '',
1422
                    'description'       => $capsule->description ? $capsule->description : '',
1445
                    'description'       => $capsule->description ? $capsule->description : '',
1423
                    'image'             => $capsule->image ? $this->url()->fromRoute('storage',['type' => 'microlearning-capsule', 'code' => $capsule->uuid, 'filename' => $capsule->image ], ['force_canonical' => true])  : '',
1446
                    'image'             => $capsule->image ? $storage->getGenericImage($path, $capsule->uuid, $capsule->image)  : '',
1424
                    'link_comments'     => $this->url()->fromRoute('microlearning/capsules-comments', ['capsule_id' => $capsule->uuid], ['force_canonical' => true]),
1447
                    'link_comments'     => $this->url()->fromRoute('microlearning/capsules-comments', ['capsule_id' => $capsule->uuid], ['force_canonical' => true]),
1425
                    'link_comment_add'  => $this->url()->fromRoute('microlearning/capsules-comments/add', ['capsule_id' => $capsule->uuid],['force_canonical' => true]),
1448
                    'link_comment_add'  => $this->url()->fromRoute('microlearning/capsules-comments/add', ['capsule_id' => $capsule->uuid],['force_canonical' => true]),
1426
                    'link_slides'       => $this->url()->fromRoute('microlearning/slides', ['topic_id' => $topic->uuid,  'capsule_id' => $capsule->uuid], ['force_canonical' => true]),
1449
                    'link_slides'       => $this->url()->fromRoute('microlearning/slides', ['topic_id' => $topic->uuid,  'capsule_id' => $capsule->uuid], ['force_canonical' => true]),
1427
                    'link_get'          => $this->url()->fromRoute('microlearning/get-capsule', ['id' => $capsule->uuid], ['force_canonical' => true]),
1450
                    'link_get'          => $this->url()->fromRoute('microlearning/get-capsule', ['id' => $capsule->uuid], ['force_canonical' => true]),
Línea 1478... Línea 1501...
1478
        if($request->isPost()) {
1501
        if($request->isPost()) {
1479
            $currentUserPlugin = $this->plugin('currentUserPlugin');
1502
            $currentUserPlugin = $this->plugin('currentUserPlugin');
1480
            $currentUser = $currentUserPlugin->getUser();
1503
            $currentUser = $currentUserPlugin->getUser();
Línea 1481... Línea 1504...
1481
            
1504
            
1482
            $slide_id = $this->params()->fromRoute('slide_id');
1505
            $slide_id = $this->params()->fromRoute('slide_id');
1483
            $slideMapper = CompanyMicrolearningSlideMapper::getInstance($this->adapter);
1506
            $slideMapper = MicrolearningSlideMapper::getInstance($this->adapter);
Línea 1484... Línea 1507...
1484
            $slide = $slideMapper->fetchOneByUuid($slide_id);
1507
            $slide = $slideMapper->fetchOneByUuid($slide_id);
1485
            
1508
            
1486
            if(!$slide) {
1509
            if(!$slide) {
1487
                return new JsonModel([
1510
                return new JsonModel([
1488
                    'success' => false,
1511
                    'success' => false,
1489
                    'data' => 'ERROR_SLIDE_NOT_FOUND'
1512
                    'data' => 'ERROR_SLIDE_NOT_FOUND'
Línea 1490... Línea 1513...
1490
                ]);
1513
                ]);
1491
            }
1514
            }
1492
            
1515
            
1493
            if($slide->type != CompanyMicrolearningSlide::TYPE_QUIZ) {
1516
            if($slide->type != MicrolearningSlide::TYPE_QUIZ) {
1494
                return new JsonModel([
1517
                return new JsonModel([
1495
                    'success' => false,
1518
                    'success' => false,
Línea 1496... Línea 1519...
1496
                    'data' => 'ERROR_SLIDE_IS_NOT_QUIZ'
1519
                    'data' => 'ERROR_SLIDE_IS_NOT_QUIZ'
1497
                ]);
1520
                ]);
Línea 1498... Línea 1521...
1498
            }
1521
            }
1499
            
1522
            
1500
            
1523
            
Línea 1516... Línea 1539...
1516
                    'success' => false,
1539
                    'success' => false,
1517
                    'data' => 'ERROR_YOU_DO_NOT_HAVE_ACCESS_TO_THIS_CAPSULE'
1540
                    'data' => 'ERROR_YOU_DO_NOT_HAVE_ACCESS_TO_THIS_CAPSULE'
1518
                ]);
1541
                ]);
1519
            }
1542
            }
Línea 1520... Línea 1543...
1520
            
1543
            
1521
            $userLogMapper = CompanyMicrolearningUserLogMapper::getInstance($this->adapter);
1544
            $userLogMapper = MicrolearningUserLogMapper::getInstance($this->adapter);
Línea 1522... Línea 1545...
1522
            $userLog = $userLogMapper->fetchOneTakeATestByUserIdAndSlideId($currentUser->id, $slide->id);
1545
            $userLog = $userLogMapper->fetchOneTakeATestByUserIdAndSlideId($currentUser->id, $slide->id);
1523
            
1546
            
1524
            if($userLog) {
1547
            if($userLog) {
1525
                $activity = CompanyMicrolearningUserLog::ACTIVITY_RETAKE_A_TEST;
1548
                $activity = MicrolearningUserLog::ACTIVITY_RETAKE_A_TEST;
1526
            } else {
1549
            } else {
Línea 1527... Línea 1550...
1527
                $activity = CompanyMicrolearningUserLog::ACTIVITY_TAKE_A_TEST;
1550
                $activity = MicrolearningUserLog::ACTIVITY_TAKE_A_TEST;
Línea 1528... Línea 1551...
1528
            }
1551
            }
1529
            
1552
            
1530
            $added_on = $userLogMapper->getDatebaseNow();
1553
            $added_on = $userLogMapper->getDatebaseNow();
1531
            
1554
            
1532
            $userLog = new CompanyMicrolearningUserLog();
1555
            $userLog = new MicrolearningUserLog();
1533
            $userLog->activity      = $activity;
1556
            $userLog->activity      = $activity;
Línea 1571... Línea 1594...
1571
            $currentUser = $currentUserPlugin->getUser();
1594
            $currentUser = $currentUserPlugin->getUser();
Línea 1572... Línea 1595...
1572
            
1595
            
1573
            
1596
            
1574
            
1597
            
Línea 1575... Línea 1598...
1575
            $capsule_id = $this->params()->fromRoute('id');
1598
            $capsule_id = $this->params()->fromRoute('id');
1576
            $capsuleMapper = CompanyMicrolearningCapsuleMapper::getInstance($this->adapter);
1599
            $capsuleMapper = MicrolearningCapsuleMapper::getInstance($this->adapter);
1577
            $capsule = $capsuleMapper->fetchOneByUuid($capsule_id);
1600
            $capsule = $capsuleMapper->fetchOneByUuid($capsule_id);
Línea 1593... Línea 1616...
1593
            }
1616
            }
Línea 1594... Línea 1617...
1594
            
1617
            
1595
    
1618
    
Línea 1596... Línea 1619...
1596
            
1619
            
1597
            
1620
            
Línea 1598... Línea 1621...
1598
            $topicMapper = CompanyMicrolearningTopicMapper::getInstance($this->adapter);
1621
            $topicMapper = MicrolearningTopicMapper::getInstance($this->adapter);
1599
            $topic = $topicMapper->fetchOne($capsule->topic_id);
1622
            $topic = $topicMapper->fetchOne($capsule->topic_id);
Línea 1613... Línea 1636...
1613
            }
1636
            }
Línea 1614... Línea 1637...
1614
                
1637
                
Línea 1615... Línea 1638...
1615
            $dataCountAndRatingAverage = $capsuleCommentMapper->fetchCountAndRatingAverage($capsule->company_id, $capsule->topic_id, $capsule->id);
1638
            $dataCountAndRatingAverage = $capsuleCommentMapper->fetchCountAndRatingAverage($capsule->company_id, $capsule->topic_id, $capsule->id);
1616
                
1639
                
Línea 1617... Línea 1640...
1617
            
1640
            
1618
            $slideMapper = CompanyMicrolearningSlideMapper::getInstance($this->adapter);
1641
            $slideMapper = MicrolearningSlideMapper::getInstance($this->adapter);
Línea 1629... Línea 1652...
1629
            } else {
1652
            } else {
1630
                $link_first_slide = '';
1653
                $link_first_slide = '';
1631
                $type_first_slide = '';
1654
                $type_first_slide = '';
1632
            }
1655
            }
Línea -... Línea 1656...
-
 
1656
                
-
 
1657
            $storage = Storage::getInstance($this->config);
Línea 1633... Línea 1658...
1633
                
1658
            $path = $storage->getPathMicrolearningCapsule();
1634
            
1659
            
1635
                
1660
                
1636
                
1661
                
1637
            $data = [
1662
            $data = [
1638
                    'uuid'              => $capsule->uuid,
1663
                    'uuid'              => $capsule->uuid,
1639
                    'name'              => $capsule->name ? $capsule->name : '',
1664
                    'name'              => $capsule->name ? $capsule->name : '',
1640
                    'description'       => $capsule->description ? $capsule->description : '',
1665
                    'description'       => $capsule->description ? $capsule->description : '',
1641
                    'image'             => $capsule->image ? $this->url()->fromRoute('storage',['type' => 'microlearning-capsule', 'code' => $capsule->uuid, 'filename' => $capsule->image ], ['force_canonical' => true])  : '',
1666
                    'image'             => $capsule->image ? $storage->getGenericImage($path, $capsule->uuid, $capsule->image)  : '',
1642
                    'link_comments'     => $this->url()->fromRoute('microlearning/capsules-comments', ['capsule_id' => $capsule->uuid], ['force_canonical' => true]),
1667
                    'link_comments'     => $this->url()->fromRoute('microlearning/capsules-comments', ['capsule_id' => $capsule->uuid], ['force_canonical' => true]),
Línea 1677... Línea 1702...
1677
            $currentUser = $currentUserPlugin->getUser();
1702
            $currentUser = $currentUserPlugin->getUser();
Línea 1678... Línea 1703...
1678
            
1703
            
1679
            
1704
            
1680
            
1705
            
Línea 1681... Línea 1706...
1681
            $topic_id = $this->params()->fromRoute('topic_id');
1706
            $topic_id = $this->params()->fromRoute('topic_id');
1682
            $topicMapper = CompanyMicrolearningTopicMapper::getInstance($this->adapter);
1707
            $topicMapper = MicrolearningTopicMapper::getInstance($this->adapter);
1683
            $topic = $topicMapper->fetchOneByUuid($topic_id);
1708
            $topic = $topicMapper->fetchOneByUuid($topic_id);
Línea 1697... Línea 1722...
1697
                    'data' => 'ERROR_YOU_DO_NOT_HAVE_ACCESS_TO_THIS_TOPIC'
1722
                    'data' => 'ERROR_YOU_DO_NOT_HAVE_ACCESS_TO_THIS_TOPIC'
1698
                ]);
1723
                ]);
1699
            }
1724
            }
Línea 1700... Línea 1725...
1700
            
1725
            
1701
            $capsule_id = $this->params()->fromRoute('capsule_id');
1726
            $capsule_id = $this->params()->fromRoute('capsule_id');
1702
            $capsuleMapper = CompanyMicrolearningCapsuleMapper::getInstance($this->adapter);
1727
            $capsuleMapper = MicrolearningCapsuleMapper::getInstance($this->adapter);
Línea 1703... Línea 1728...
1703
            $capsule = $capsuleMapper->fetchOneByUuid($capsule_id);
1728
            $capsule = $capsuleMapper->fetchOneByUuid($capsule_id);
1704
            
1729
            
1705
            if(!$capsule) {
1730
            if(!$capsule) {
Línea 1720... Línea 1745...
1720
            
1745
            
Línea 1721... Línea 1746...
1721
 
1746
 
Línea 1722... Línea 1747...
1722
            
1747
            
1723
            $data = [];
1748
            $data = [];
Línea -... Línea 1749...
-
 
1749
            
-
 
1750
            $quizMapper = MicrolearningQuizMapper::getInstance($this->adapter);
Línea 1724... Línea 1751...
1724
            
1751
            
1725
            $quizMapper = CompanyMicrolearningQuizMapper::getInstance($this->adapter);
1752
            $slideMapper = MicrolearningSlideMapper::getInstance($this->adapter);
1726
            
1753
            $userProgressMapper = MicrolearningUserProgressMapper::getInstance($this->adapter);
Línea 1743... Línea 1770...
1743
 
1770
 
1744
                
1771
                
Línea 1745... Línea 1772...
1745
                $link_take_a_test = '';
1772
                $link_take_a_test = '';
1746
                if($slide->quiz_id) {
1773
                if($slide->quiz_id) {
1747
                    
1774
                    
1748
                    $quizMapper = CompanyMicrolearningQuizMapper::getInstance($this->adapter);
1775
                    $quizMapper = MicrolearningQuizMapper::getInstance($this->adapter);
1749
                    $quiz = $quizMapper->fetchOne($slide->quiz_id);
1776
                    $quiz = $quizMapper->fetchOne($slide->quiz_id);
1750
                    if($quiz) {
1777
                    if($quiz) {
Línea 1761... Línea 1788...
1761
                    'quiz_data'             => $quiz_data,
1788
                    'quiz_data'             => $quiz_data,
1762
                    'uuid'                  => $slide->uuid,
1789
                    'uuid'                  => $slide->uuid,
1763
                    'name'                  => $slide->name ? $slide->name : '',
1790
                    'name'                  => $slide->name ? $slide->name : '',
1764
                    'description'           => $slide->description ? $slide->description : '',
1791
                    'description'           => $slide->description ? $slide->description : '',
1765
                    'type'                  => $slide->type,
1792
                    'type'                  => $slide->type,
1766
                    'background'            => $slide->background ? $this->url()->fromRoute('storage',['type' => 'microlearning-slide', 'code' => $slide->uuid, 'filename' => $slide->background], ['force_canonical' => true]) : '',
1793
                    'background'            => $slide->background ? $storage->getGenericImage($path, $slide->uuid, $slide->background) : '',
1767
                    'file'                  => $slide->file ? $this->url()->fromRoute('storage',['type' => 'microlearning-slide', 'code' => $slide->uuid, 'filename' => $slide->file], ['force_canonical' => true]) : '',
1794
                    'file'                  => $slide->file ? $storage->getGenericFile($path, $slide->uuid, $slide->file) : '',
1768
                    'order'                 => $slide->order,
1795
                    'order'                 => $slide->order,
1769
                    'completed'             => $completed,
1796
                    'completed'             => $completed,
1770
                    'link_get'              => $this->url()->fromRoute('microlearning/get-slide', ['id' => $slide->uuid], ['force_canonical' => true]),
1797
                    'link_get'              => $this->url()->fromRoute('microlearning/get-slide', ['id' => $slide->uuid], ['force_canonical' => true]),
1771
                    'link_sync'             => $this->url()->fromRoute('microlearning/sync', ['operation' => 'slide-view', 'topic_uuid' => $topic->uuid, 'capsule_uuid' => $capsule->uuid, 'slide_uuid' => $slide->uuid], ['force_canonical' => true]),
1798
                    'link_sync'             => $this->url()->fromRoute('microlearning/sync', ['operation' => 'slide-view', 'topic_uuid' => $topic->uuid, 'capsule_uuid' => $capsule->uuid, 'slide_uuid' => $slide->uuid], ['force_canonical' => true]),
1772
                    'link_take_a_test'      => $link_take_a_test,
1799
                    'link_take_a_test'      => $link_take_a_test,
Línea 1816... Línea 1843...
1816
    {
1843
    {
1817
        $serviceDatetimeFormat = $this->config['leaderslinked.services.datetime'];
1844
        $serviceDatetimeFormat = $this->config['leaderslinked.services.datetime'];
Línea 1818... Línea 1845...
1818
        
1845
        
Línea 1819... Línea 1846...
1819
        $data = [];
1846
        $data = [];
1820
        
1847
        
Línea 1821... Línea 1848...
1821
        $quizMapper = CompanyMicrolearningQuizMapper::getInstance($this->adapter);
1848
        $quizMapper = MicrolearningQuizMapper::getInstance($this->adapter);
1822
        $quiz = $quizMapper->fetchOne($id);
1849
        $quiz = $quizMapper->fetchOne($id);
1823
        
1850
        
Línea 1824... Línea 1851...
1824
        if(!$quiz) {
1851
        if(!$quiz) {
1825
            return [];
1852
            return [];
Línea 1826... Línea 1853...
1826
        }
1853
        }
1827
        
1854
        
Línea 1828... Línea 1855...
1828
        $companyMapper = CompanyMapper::getInstance($this->adapter);
1855
        $companyMapper = CompanyMapper::getInstance($this->adapter);
1829
        $company = $companyMapper->fetchOne($quiz->company_id);
1856
        $company = $companyMapper->fetchOne($quiz->company_id);
1830
        
1857
        
1831
        $questionMapper = CompanyMicrolearningQuestionMapper::getInstance($this->adapter);
1858
        $questionMapper = MicrolearningQuestionMapper::getInstance($this->adapter);
Línea 1900... Línea 1927...
1900
            $currentUser = $currentUserPlugin->getUser();
1927
            $currentUser = $currentUserPlugin->getUser();
Línea 1901... Línea 1928...
1901
            
1928
            
1902
            
1929
            
1903
            
1930
            
Línea 1904... Línea 1931...
1904
            $id = $this->params()->fromRoute('id');
1931
            $id = $this->params()->fromRoute('id');
1905
            $slideMapper = CompanyMicrolearningSlideMapper::getInstance($this->adapter);
1932
            $slideMapper = MicrolearningSlideMapper::getInstance($this->adapter);
1906
            $slide = $slideMapper->fetchOneByUuid($id);
1933
            $slide = $slideMapper->fetchOneByUuid($id);
Línea 1922... Línea 1949...
1922
                    'data' => 'ERROR_YOU_DO_NOT_HAVE_ACCESS_TO_THIS_CAPSULE'
1949
                    'data' => 'ERROR_YOU_DO_NOT_HAVE_ACCESS_TO_THIS_CAPSULE'
1923
                ]);
1950
                ]);
1924
            }
1951
            }
Línea 1925... Línea 1952...
1925
            
1952
            
1926
            
1953
            
Línea 1927... Línea 1954...
1927
            $topicMapper = CompanyMicrolearningTopicMapper::getInstance($this->adapter);
1954
            $topicMapper = MicrolearningTopicMapper::getInstance($this->adapter);
1928
            $topic = $topicMapper->fetchOne($slide->topic_id);
1955
            $topic = $topicMapper->fetchOne($slide->topic_id);
Línea 1929... Línea 1956...
1929
 
1956
 
1930
            $capsuleMapper =  CompanyMicrolearningCapsuleMapper::getInstance($this->adapter);
1957
            $capsuleMapper =  MicrolearningCapsuleMapper::getInstance($this->adapter);
Línea 1931... Línea 1958...
1931
            $capsule = $capsuleMapper->fetchOne($slide->capsule_id);
1958
            $capsule = $capsuleMapper->fetchOne($slide->capsule_id);
1932
            
1959
            
1933
            
1960
            
Línea 1948... Línea 1975...
1948
            $quiz_uuid = '';
1975
            $quiz_uuid = '';
1949
            $quiz_data = [];
1976
            $quiz_data = [];
1950
            $link_take_a_test = '';
1977
            $link_take_a_test = '';
1951
            if($slide->quiz_id) {
1978
            if($slide->quiz_id) {
Línea 1952... Línea 1979...
1952
            
1979
            
1953
                $quizMapper = CompanyMicrolearningQuizMapper::getInstance($this->adapter);
1980
                $quizMapper = MicrolearningQuizMapper::getInstance($this->adapter);
1954
                $quiz = $quizMapper->fetchOne($slide->quiz_id);
1981
                $quiz = $quizMapper->fetchOne($slide->quiz_id);
1955
                if($quiz) {
1982
                if($quiz) {
1956
                    $quiz_uuid = $quiz->uuid;
1983
                    $quiz_uuid = $quiz->uuid;
1957
                    $quiz_data = $this->getQuiz($slide->quiz_id);
1984
                    $quiz_data = $this->getQuiz($slide->quiz_id);
1958
                    $link_take_a_test = $this->url()->fromRoute('microlearning/take-a-test', ['slide_id' => $slide->uuid], ['force_canonical' => true]);
1985
                    $link_take_a_test = $this->url()->fromRoute('microlearning/take-a-test', ['slide_id' => $slide->uuid], ['force_canonical' => true]);
Línea 1959... Línea 1986...
1959
                }
1986
                }
Línea -... Línea 1987...
-
 
1987
                
-
 
1988
            } 
Línea 1960... Línea 1989...
1960
                
1989
                
1961
            } 
1990
            $storage = Storage::getInstance($this->config);
1962
                
1991
            $path = $storage->getPathMicrolearningSlide();
1963
                
1992
                
1964
            $data =[
1993
            $data =[
1965
                'quiz'              => $quiz_uuid,
1994
                'quiz'              => $quiz_uuid,
1966
                'quiz_data'         => $quiz_data,
1995
                'quiz_data'         => $quiz_data,
1967
                'uuid'              => $slide->uuid,
1996
                'uuid'              => $slide->uuid,
1968
                'name'              => $slide->name ? $slide->name : '',
1997
                'name'              => $slide->name ? $slide->name : '',
1969
                'description'       => $slide->description ? $slide->description : '',
1998
                'description'       => $slide->description ? $slide->description : '',
1970
                'type'              => $slide->type,
1999
                'type'              => $slide->type,
1971
                'background'        => $slide->background ? $this->url()->fromRoute('storage',['type' => 'microlearning-slide', 'code' => $slide->uuid, 'filename' => $slide->background], ['force_canonical' => true]) : '',
2000
                'background'        => $slide->background ? $storage->getGenericImage($path, $slide->uuid, $slide->background) : '',
1972
                'file'              => $slide->file ? $this->url()->fromRoute('storage',['type' => 'microlearning-slide', 'code' => $slide->uuid, 'filename' => $slide->file], ['force_canonical' => true]) : '',
2001
                'file'              => $slide->file ? $storage->getGenericFile($path, $slide->uuid, $slide->file) : '',
1973
                'order'             => $slide->order,
2002
                'order'             => $slide->order,
Línea 2003... Línea 2032...
2003
            
2032
            
Línea 2004... Línea 2033...
2004
            
2033
            
2005
            $accessGrantedIds = $this->getAccessGranted();
2034
            $accessGrantedIds = $this->getAccessGranted();
2006
            
2035
            
2007
            $companyMapper = CompanyMapper::getInstance($this->adapter);
2036
            $companyMapper = CompanyMapper::getInstance($this->adapter);
2008
            $companyExtendUserMapper = CompanyMicrolearningExtendUserMapper::getInstance($this->adapter);
2037
            $companyExtendUserMapper = MicrolearningExtendUserMapper::getInstance($this->adapter);
2009
            $companyExtendUserCompanyMapper = CompanyMicrolearningExtendUserCompanyMapper::getInstance($this->adapter);
2038
            $companyExtendUserCompanyMapper = MicrolearningExtendUserCompanyMapper::getInstance($this->adapter);
2010
            $companyExtendUserFunctionMapper = CompanyMicrolearningExtendUserFunctionMapper::getInstance($this->adapter);
2039
            $companyExtendUserFunctionMapper = MicrolearningExtendUserFunctionMapper::getInstance($this->adapter);
2011
            $companyExtendUserGroupMapper = CompanyMicrolearningExtendUserGroupMapper::getInstance($this->adapter);
2040
            $companyExtendUserGroupMapper = MicrolearningExtendUserGroupMapper::getInstance($this->adapter);
2012
            $companyExtendUserInstitutionMapper = CompanyMicrolearningExtendUserInstitutionMapper::getInstance($this->adapter);
2041
            $companyExtendUserInstitutionMapper = MicrolearningExtendUserInstitutionMapper::getInstance($this->adapter);
2013
            $companyExtendUserPartnerMapper = CompanyMicrolearningExtendUserPartnerMapper::getInstance($this->adapter);
2042
            $companyExtendUserPartnerMapper = MicrolearningExtendUserPartnerMapper::getInstance($this->adapter);
Línea -... Línea 2043...
-
 
2043
            $companyExtendUserProgramMapper = MicrolearningExtendUserProgramMapper::getInstance($this->adapter);
-
 
2044
            $companyExtendUserStudentTypeMapper = MicrolearningExtendUserStudentTypeMapper::getInstance($this->adapter);
Línea 2014... Línea 2045...
2014
            $companyExtendUserProgramMapper = CompanyMicrolearningExtendUserProgramMapper::getInstance($this->adapter);
2045
            $companyExtendUserSectorMapper = MicrolearningExtendUserSectorMapper::getInstance($this->adapter);
2015
            $companyExtendUserStudentTypeMapper = CompanyMicrolearningExtendUserStudentTypeMapper::getInstance($this->adapter);
2046
            
2016
            $companyExtendUserSectorMapper = CompanyMicrolearningExtendUserSectorMapper::getInstance($this->adapter);
2047
            $storage = Storage::getInstance($this->config);
2017
            
2048
           
Línea 2024... Línea 2055...
2024
                    continue;
2055
                    continue;
2025
                }
2056
                }
Línea 2026... Línea 2057...
2026
                
2057
                
2027
                $record = [
2058
                $record = [
2028
                    'name' => $company->name,
2059
                    'name' => $company->name,
2029
                    'image' => $this->url()->fromRoute('storage',['type' => 'company', 'code' => $company->uuid, 'filename' => $company->image], ['force_canonical' => true]),
2060
                    'image' => $storage->getCompanyImage($company),
2030
                    'details' => [],
2061
                    'details' => [],
Línea 2031... Línea 2062...
2031
                ];
2062
                ];
2032
                
2063
                
Línea 2166... Línea 2197...
2166
                            'data' => 'ERROR_INVALID_PARAMETERS'
2197
                            'data' => 'ERROR_INVALID_PARAMETERS'
2167
                        ]);
2198
                        ]);
2168
                    }
2199
                    }
Línea 2169... Línea 2200...
2169
                    
2200
                    
2170
                    
2201
                    
Línea 2171... Línea 2202...
2171
                    $topicMapper = CompanyMicrolearningTopicMapper::getInstance($this->adapter);
2202
                    $topicMapper = MicrolearningTopicMapper::getInstance($this->adapter);
2172
                    $topic = $topicMapper->fetchOneByUuid($topic_uuid);
2203
                    $topic = $topicMapper->fetchOneByUuid($topic_uuid);
2173
                    
2204
                    
Línea 2185... Línea 2216...
2185
                            'success' => false,
2216
                            'success' => false,
2186
                            'data' => 'ERROR_YOU_DO_NOT_HAVE_ACCESS_TO_THIS_TOPIC'
2217
                            'data' => 'ERROR_YOU_DO_NOT_HAVE_ACCESS_TO_THIS_TOPIC'
2187
                        ]);
2218
                        ]);
2188
                    }
2219
                    }
Línea 2189... Línea 2220...
2189
                    
2220
                    
2190
                    $capsuleMapper = CompanyMicrolearningCapsuleMapper::getInstance($this->adapter);
2221
                    $capsuleMapper = MicrolearningCapsuleMapper::getInstance($this->adapter);
Línea 2191... Línea 2222...
2191
                    $capsule = $capsuleMapper->fetchOneByUuid($capsule_uuid);
2222
                    $capsule = $capsuleMapper->fetchOneByUuid($capsule_uuid);
2192
                    
2223
                    
2193
                    if(!$capsule) {
2224
                    if(!$capsule) {
Línea 2202... Línea 2233...
2202
                            'success' => false,
2233
                            'success' => false,
2203
                            'data' => 'ERROR_YOU_DO_NOT_HAVE_ACCESS_TO_THIS_CAPSULE'
2234
                            'data' => 'ERROR_YOU_DO_NOT_HAVE_ACCESS_TO_THIS_CAPSULE'
2204
                        ]);
2235
                        ]);
2205
                    }
2236
                    }
Línea 2206... Línea 2237...
2206
                    
2237
                    
2207
                    $slideMapper = CompanyMicrolearningSlideMapper::getInstance($this->adapter);
2238
                    $slideMapper = MicrolearningSlideMapper::getInstance($this->adapter);
2208
                    $slide = $slideMapper->fetchOneByUuid($slide_uuid);
2239
                    $slide = $slideMapper->fetchOneByUuid($slide_uuid);
2209
                    if(!$slide) {
2240
                    if(!$slide) {
2210
                        return new JsonModel([
2241
                        return new JsonModel([
2211
                            'success' => false,
2242
                            'success' => false,
Línea 2220... Línea 2251...
2220
                        ]);
2251
                        ]);
Línea 2221... Línea 2252...
2221
                        
2252
                        
Línea 2222... Línea 2253...
2222
                    }
2253
                    }
Línea 2223... Línea 2254...
2223
                    
2254
                    
2224
                    
2255
                    
Línea 2225... Línea 2256...
2225
                    $userLogMapper = CompanyMicrolearningUserLogMapper::getInstance($this->adapter);
2256
                    $userLogMapper = MicrolearningUserLogMapper::getInstance($this->adapter);
2226
                    
2257
                    
Línea 2227... Línea 2258...
2227
                    $userProgressMapper = CompanyMicrolearningUserProgressMapper::getInstance($this->adapter);
2258
                    $userProgressMapper = MicrolearningUserProgressMapper::getInstance($this->adapter);
2228
                    $added_on = $userProgressMapper->getDatebaseNow();
2259
                    $added_on = $userProgressMapper->getDatebaseNow();
2229
                    
2260
                    
2230
                    
2261
                    
2231
                    $userProgressTopic = $userProgressMapper->fetchOneByUserIdAndTopicId($currentUser->id, $topic->id);
2262
                    $userProgressTopic = $userProgressMapper->fetchOneByUserIdAndTopicId($currentUser->id, $topic->id);
2232
                    if(!$userProgressTopic) {
2263
                    if(!$userProgressTopic) {
2233
                        
2264
                        
2234
                        $userProgressTopic = new CompanyMicrolearningUserProgress();
2265
                        $userProgressTopic = new MicrolearningUserProgress();
2235
                        $userProgressTopic->company_id                  = $slide->company_id;
2266
                        $userProgressTopic->company_id                  = $slide->company_id;
2236
                        $userProgressTopic->topic_id                    = $slide->topic_id;
2267
                        $userProgressTopic->topic_id                    = $slide->topic_id;
2237
                        $userProgressTopic->user_id                     = $currentUser->id;
2268
                        $userProgressTopic->user_id                     = $currentUser->id;
2238
                        $userProgressTopic->progress                    = 0;
2269
                        $userProgressTopic->progress                    = 0;
2239
                        $userProgressTopic->returning                   = 0;
2270
                        $userProgressTopic->returning                   = 0;
Línea 2240... Línea 2271...
2240
                        $userProgressTopic->returning_after_completed   = 0;
2271
                        $userProgressTopic->returning_after_completed   = 0;
Línea 2241... Línea 2272...
2241
                        $userProgressTopic->completed                   = 0;
2272
                        $userProgressTopic->completed                   = 0;
2242
                        $userProgressTopic->total_slides                = $slideMapper->fetchTotalCountByCompanyIdAndTopicId($slide->company_id, $slide->topic_id);
2273
                        $userProgressTopic->total_slides                = $slideMapper->fetchTotalCountByCompanyIdAndTopicId($slide->company_id, $slide->topic_id);
2243
                        $userProgressTopic->view_slides                 = 0;
2274
                        $userProgressTopic->view_slides                 = 0;
2244
                        $userProgressTopic->type                        = CompanyMicrolearningUserProgress::TYPE_TOPIC;
2275
                        $userProgressTopic->type                        = MicrolearningUserProgress::TYPE_TOPIC;
2245
                        $userProgressTopic->added_on                    = $added_on;
2276
                        $userProgressTopic->added_on                    = $added_on;
2246
                        $userProgressTopic->updated_on                  = $added_on;
2277
                        $userProgressTopic->updated_on                  = $added_on;
Línea 2270... Línea 2301...
2270
                    
2301
                    
2271
                    
2302
                    
Línea 2272... Línea 2303...
2272
                    $userProgressCapsule = $userProgressMapper->fetchOneByUseridAndCapsuleId($currentUser->id, $capsule->id);
2303
                    $userProgressCapsule = $userProgressMapper->fetchOneByUseridAndCapsuleId($currentUser->id, $capsule->id);
2273
                    if(!$userProgressCapsule) {
2304
                    if(!$userProgressCapsule) {
2274
                        
2305
                        
2275
                        $userProgressCapsule = new CompanyMicrolearningUserProgress();
2306
                        $userProgressCapsule = new MicrolearningUserProgress();
2276
                        $userProgressCapsule->company_id                  = $slide->company_id;
2307
                        $userProgressCapsule->company_id                  = $slide->company_id;
2277
                        $userProgressCapsule->topic_id                    = $slide->topic_id;
2308
                        $userProgressCapsule->topic_id                    = $slide->topic_id;
2278
                        $userProgressCapsule->capsule_id                  = $slide->capsule_id;
2309
                        $userProgressCapsule->capsule_id                  = $slide->capsule_id;
2279
                        $userProgressCapsule->user_id                     = $currentUser->id;
2310
                        $userProgressCapsule->user_id                     = $currentUser->id;
2280
                        $userProgressCapsule->progress                    = 0;
2311
                        $userProgressCapsule->progress                    = 0;
2281
                        $userProgressCapsule->returning                   = 0;
2312
                        $userProgressCapsule->returning                   = 0;
2282
                        $userProgressCapsule->returning_after_completed   = 0;
2313
                        $userProgressCapsule->returning_after_completed   = 0;
2283
                        $userProgressCapsule->completed                   = 0;
2314
                        $userProgressCapsule->completed                   = 0;
2284
                        $userProgressCapsule->total_slides                = $slideMapper->fetchTotalCountByCompanyIdAndTopicIdAndCapsuleId($slide->company_id, $slide->topic_id, $slide->capsule_id);
2315
                        $userProgressCapsule->total_slides                = $slideMapper->fetchTotalCountByCompanyIdAndTopicIdAndCapsuleId($slide->company_id, $slide->topic_id, $slide->capsule_id);
2285
                        $userProgressCapsule->view_slides                 = 0;
2316
                        $userProgressCapsule->view_slides                 = 0;
Línea 2286... Línea 2317...
2286
                        $userProgressCapsule->type                        = CompanyMicrolearningUserProgress::TYPE_CAPSULE;
2317
                        $userProgressCapsule->type                        = MicrolearningUserProgress::TYPE_CAPSULE;
Línea 2287... Línea 2318...
2287
                        $userProgressCapsule->added_on                    = $added_on;
2318
                        $userProgressCapsule->added_on                    = $added_on;
2288
                        $userProgressTopic->updated_on                    = $added_on;
2319
                        $userProgressTopic->updated_on                    = $added_on;
2289
                        
2320
                        
2290
                        if($userProgressMapper->insert($userProgressCapsule)) {
2321
                        if($userProgressMapper->insert($userProgressCapsule)) {
2291
                            
2322
                            
2292
                            $userLog = new CompanyMicrolearningUserLog();
2323
                            $userLog = new MicrolearningUserLog();
2293
                            $userLog->activity      = CompanyMicrolearningUserLog::ACTIVITY_START_CAPSULE;
2324
                            $userLog->activity      = MicrolearningUserLog::ACTIVITY_START_CAPSULE;
Línea 2312... Línea 2343...
2312
                    }
2343
                    }
Línea 2313... Línea 2344...
2313
                    
2344
                    
2314
                    
2345
                    
2315
                    $userProgressSlide = $userProgressMapper->fetchOneByUserIdAndSlideId($currentUser->id, $slide->id);
2346
                    $userProgressSlide = $userProgressMapper->fetchOneByUserIdAndSlideId($currentUser->id, $slide->id);
2316
                    if(!$userProgressSlide) {
2347
                    if(!$userProgressSlide) {
2317
                        $userProgressSlide = new CompanyMicrolearningUserProgress();
2348
                        $userProgressSlide = new MicrolearningUserProgress();
2318
                        $userProgressSlide->company_id                  = $slide->company_id;
2349
                        $userProgressSlide->company_id                  = $slide->company_id;
2319
                        $userProgressSlide->topic_id                    = $slide->topic_id;
2350
                        $userProgressSlide->topic_id                    = $slide->topic_id;
2320
                        $userProgressSlide->capsule_id                  = $slide->capsule_id;
2351
                        $userProgressSlide->capsule_id                  = $slide->capsule_id;
Línea 2324... Línea 2355...
2324
                        $userProgressSlide->returning                   = 0;
2355
                        $userProgressSlide->returning                   = 0;
2325
                        $userProgressSlide->returning_after_completed   = 0;
2356
                        $userProgressSlide->returning_after_completed   = 0;
2326
                        $userProgressSlide->completed                   = 1;
2357
                        $userProgressSlide->completed                   = 1;
2327
                        $userProgressSlide->total_slides                = 0;
2358
                        $userProgressSlide->total_slides                = 0;
2328
                        $userProgressSlide->view_slides                 = 0;
2359
                        $userProgressSlide->view_slides                 = 0;
2329
                        $userProgressSlide->type                        = CompanyMicrolearningUserProgress::TYPE_SLIDE;
2360
                        $userProgressSlide->type                        = MicrolearningUserProgress::TYPE_SLIDE;
2330
                        $userProgressSlide->added_on                    = $added_on;
2361
                        $userProgressSlide->added_on                    = $added_on;
2331
                        $userProgressSlide->updated_on                  = $added_on;
2362
                        $userProgressSlide->updated_on                  = $added_on;
Línea 2332... Línea 2363...
2332
                        
2363
                        
2333
                        if(!$userProgressMapper->insert($userProgressSlide)) {
2364
                        if(!$userProgressMapper->insert($userProgressSlide)) {
Línea 2336... Línea 2367...
2336
                                'data' => $userProgressMapper->getError()
2367
                                'data' => $userProgressMapper->getError()
2337
                            ]);
2368
                            ]);
2338
                        }
2369
                        }
2339
                    } 
2370
                    } 
Línea 2340... Línea 2371...
2340
                    
2371
                    
2341
                    $userLog = new CompanyMicrolearningUserLog();
2372
                    $userLog = new MicrolearningUserLog();
2342
                    $userLog->activity      = CompanyMicrolearningUserLog::ACTIVITY_VIEW_SLIDE;
2373
                    $userLog->activity      = MicrolearningUserLog::ACTIVITY_VIEW_SLIDE;
2343
                    $userLog->user_id       = $currentUser->id;
2374
                    $userLog->user_id       = $currentUser->id;
2344
                    $userLog->company_id    = $slide->company_id;
2375
                    $userLog->company_id    = $slide->company_id;
2345
                    $userLog->topic_id      = $slide->topic_id;
2376
                    $userLog->topic_id      = $slide->topic_id;
2346
                    $userLog->capsule_id    = $slide->capsule_id;
2377
                    $userLog->capsule_id    = $slide->capsule_id;
Línea 2394... Línea 2425...
2394
                        
2425
                        
2395
                        if($userProgressCapsule->progress >= 100) {
2426
                        if($userProgressCapsule->progress >= 100) {
2396
                            $closeCapsule = true;
2427
                            $closeCapsule = true;
Línea 2397... Línea -...
2397
                        }
-
 
-
 
2428
                        }
2398
                        
2429
                        
Línea 2399... Línea 2430...
2399
                       // print_r($userProgressCapsule);
2430
 
2400
                    }
2431
                    }
Línea 2419... Línea 2450...
2419
                        }
2450
                        }
Línea 2420... Línea 2451...
2420
                        
2451
                        
2421
                        if($userProgressTopic->progress >= 100) {
2452
                        if($userProgressTopic->progress >= 100) {
2422
                            $closeTopic = true;
2453
                            $closeTopic = true;
2423
                        }
-
 
2424
                        
-
 
2425
                        //print_r($userProgressTopic);
-
 
2426
                        
-
 
2427
                        
2454
                        }
Línea 2428... Línea 2455...
2428
                    }
2455
                    }
2429
                    
2456
                    
Línea 2459... Línea 2486...
2459
                            'data' => 'ERROR_INVALID_PARAMETERS'
2486
                            'data' => 'ERROR_INVALID_PARAMETERS'
2460
                        ]);
2487
                        ]);
2461
                    }
2488
                    }
Línea 2462... Línea 2489...
2462
                    
2489
                    
2463
                    
2490
                    
Línea 2464... Línea 2491...
2464
                    $topicMapper = CompanyMicrolearningTopicMapper::getInstance($this->adapter);
2491
                    $topicMapper = MicrolearningTopicMapper::getInstance($this->adapter);
2465
                    $topic = $topicMapper->fetchOneByUuid($topic_uuid);
2492
                    $topic = $topicMapper->fetchOneByUuid($topic_uuid);
2466
                    
2493
                    
Línea 2478... Línea 2505...
2478
                            'success' => false,
2505
                            'success' => false,
2479
                            'data' => 'ERROR_YOU_DO_NOT_HAVE_ACCESS_TO_THIS_TOPIC'
2506
                            'data' => 'ERROR_YOU_DO_NOT_HAVE_ACCESS_TO_THIS_TOPIC'
2480
                        ]);
2507
                        ]);
2481
                    }
2508
                    }
Línea 2482... Línea 2509...
2482
                    
2509
                    
2483
                    $capsuleMapper = CompanyMicrolearningCapsuleMapper::getInstance($this->adapter);
2510
                    $capsuleMapper = MicrolearningCapsuleMapper::getInstance($this->adapter);
Línea 2484... Línea 2511...
2484
                    $capsule = $capsuleMapper->fetchOneByUuid($capsule_uuid);
2511
                    $capsule = $capsuleMapper->fetchOneByUuid($capsule_uuid);
2485
                    
2512
                    
2486
                    if(!$capsule) {
2513
                    if(!$capsule) {
Línea 2496... Línea 2523...
2496
                            'data' => 'ERROR_YOU_DO_NOT_HAVE_ACCESS_TO_THIS_CAPSULE'
2523
                            'data' => 'ERROR_YOU_DO_NOT_HAVE_ACCESS_TO_THIS_CAPSULE'
2497
                        ]);
2524
                        ]);
2498
                    }
2525
                    }
Línea 2499... Línea 2526...
2499
                    
2526
                    
Línea 2500... Línea 2527...
2500
                    
2527
                    
2501
                    $userLogMapper = CompanyMicrolearningUserLogMapper::getInstance($this->adapter);
2528
                    $userLogMapper = MicrolearningUserLogMapper::getInstance($this->adapter);
Línea 2502... Línea 2529...
2502
                    
2529
                    
2503
                    $userProgressMapper = CompanyMicrolearningUserProgressMapper::getInstance($this->adapter);
2530
                    $userProgressMapper = MicrolearningUserProgressMapper::getInstance($this->adapter);
2504
                    $updated_on = $userProgressMapper->getDatebaseNow();
2531
                    $updated_on = $userProgressMapper->getDatebaseNow();
Línea 2523... Línea 2550...
2523
                    $userProgressCapsule->updated_on = $updated_on;
2550
                    $userProgressCapsule->updated_on = $updated_on;
Línea 2524... Línea 2551...
2524
                    
2551
                    
Línea 2525... Línea 2552...
2525
                    if($userProgressMapper->update($userProgressCapsule)) {
2552
                    if($userProgressMapper->update($userProgressCapsule)) {
2526
                        
2553
                        
2527
                        
2554
                        
2528
                        $userLog = new CompanyMicrolearningUserLog();
2555
                        $userLog = new MicrolearningUserLog();
2529
                        $userLog->activity      = CompanyMicrolearningUserLog::ACTIVITY_COMPLETED_CAPSULE;
2556
                        $userLog->activity      = MicrolearningUserLog::ACTIVITY_COMPLETED_CAPSULE;
2530
                        $userLog->user_id       = $currentUser->id;
2557
                        $userLog->user_id       = $currentUser->id;
2531
                        $userLog->company_id    = $capsule->company_id;
2558
                        $userLog->company_id    = $capsule->company_id;
Línea 2565... Línea 2592...
2565
                            'data' => 'ERROR_INVALID_PARAMETERS'
2592
                            'data' => 'ERROR_INVALID_PARAMETERS'
2566
                        ]);
2593
                        ]);
2567
                    }
2594
                    }
Línea 2568... Línea 2595...
2568
                    
2595
                    
2569
                    
2596
                    
Línea 2570... Línea 2597...
2570
                    $topicMapper = CompanyMicrolearningTopicMapper::getInstance($this->adapter);
2597
                    $topicMapper = MicrolearningTopicMapper::getInstance($this->adapter);
2571
                    $topic = $topicMapper->fetchOneByUuid($topic_uuid);
2598
                    $topic = $topicMapper->fetchOneByUuid($topic_uuid);
2572
                    
2599
                    
Línea 2587... Línea 2614...
2587
                    }
2614
                    }
Línea 2588... Línea 2615...
2588
                    
2615
                    
Línea 2589... Línea 2616...
2589
                 
2616
                 
2590
                    
2617
                    
Línea 2591... Línea 2618...
2591
                    
2618
                    
2592
                    $userLogMapper = CompanyMicrolearningUserLogMapper::getInstance($this->adapter);
2619
                    $userLogMapper = MicrolearningUserLogMapper::getInstance($this->adapter);
2593
                    
2620
                    
Línea 2613... Línea 2640...
2613
                    $userProgressTopic->completed = 1;
2640
                    $userProgressTopic->completed = 1;
2614
                    $userProgressTopic->updated_on = $updated_on;
2641
                    $userProgressTopic->updated_on = $updated_on;
Línea 2615... Línea 2642...
2615
                    
2642
                    
Línea 2616... Línea 2643...
2616
                    if($userProgressMapper->update($userProgressTopic)) {
2643
                    if($userProgressMapper->update($userProgressTopic)) {
2617
                        
2644
                        
2618
                        $userLog = new CompanyMicrolearningUserLog();
2645
                        $userLog = new MicrolearningUserLog();
2619
                        $userLog->activity      = CompanyMicrolearningUserLog::ACTIVITY_COMPLETED_TOPIC;
2646
                        $userLog->activity      = MicrolearningUserLog::ACTIVITY_COMPLETED_TOPIC;
2620
                        $userLog->user_id       = $currentUser->id;
2647
                        $userLog->user_id       = $currentUser->id;
2621
                        $userLog->company_id    = $topic->company_id;
2648
                        $userLog->company_id    = $topic->company_id;
Línea 2670... Línea 2697...
2670
    private function getAccessGranted()
2697
    private function getAccessGranted()
2671
    {
2698
    {
2672
        $currentUserPlugin = $this->plugin('currentUserPlugin');
2699
        $currentUserPlugin = $this->plugin('currentUserPlugin');
2673
        $currentUser = $currentUserPlugin->getUser();
2700
        $currentUser = $currentUserPlugin->getUser();
Línea 2674... Línea 2701...
2674
        
2701
        
2675
        $capsuleUserMapper = CompanyMicrolearningCapsuleUserMapper::getInstance($this->adapter);
2702
        $capsuleUserMapper = MicrolearningCapsuleUserMapper::getInstance($this->adapter);
Línea 2676... Línea 2703...
2676
        $now = $capsuleUserMapper->getDatebaseNow();
2703
        $now = $capsuleUserMapper->getDatebaseNow();
Línea 2677... Línea 2704...
2677
        
2704
        
Línea 2678... Línea 2705...
2678
        $records = $capsuleUserMapper->fetchAllActiveByUserId($currentUser->id);
2705
        $records = $capsuleUserMapper->fetchAllActiveByUserId($currentUser->id);
2679
        
2706
        
2680
        $accessGrantedIds = new MicrolearningUserAccessGrantedIds();
2707
        $accessGrantedIds = new MicrolearningUserAccessGrantedIds();
2681
        
2708
        
2682
        
2709
        
2683
        foreach($records as $record)
2710
        foreach($records as $record)
2684
        {
2711
        {
2685
            if($record->access != CompanyMicrolearningCapsuleUser::ACCESS_UNLIMITED && $record->access != CompanyMicrolearningCapsuleUser::ACCESS_PAY_PERIOD) {
2712
            if($record->access != MicrolearningCapsuleUser::ACCESS_UNLIMITED && $record->access != MicrolearningCapsuleUser::ACCESS_PAY_PERIOD) {
2686
                continue;
2713
                continue;
2687
            }
2714
            }