Proyectos de Subversion LeadersLinked - Backend

Rev

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

Rev 16769 Rev 16797
Línea 22... Línea 22...
22
use LeadersLinked\Form\MyCoach\MyCoachCategoryUserForm;
22
use LeadersLinked\Form\MyCoach\MyCoachCategoryUserForm;
23
use LeadersLinked\Mapper\QueryMapper;
23
use LeadersLinked\Mapper\QueryMapper;
24
use Laminas\Paginator\Adapter\DbSelect;
24
use Laminas\Paginator\Adapter\DbSelect;
25
use Laminas\Paginator\Paginator;
25
use Laminas\Paginator\Paginator;
26
use LeadersLinked\Model\MyCoachCategoryUser;
26
use LeadersLinked\Model\MyCoachCategoryUser;
-
 
27
use LeadersLinked\Mapper\JobDescriptionMapper;
-
 
28
use LeadersLinked\Mapper\MyCoachCategoryJobDescriptionMapper;
-
 
29
use LeadersLinked\Model\User;
-
 
30
use LeadersLinked\Model\MyCoachCategoryJobDescription;
Línea 27... Línea 31...
27
 
31
 
Línea 28... Línea 32...
28
class MyCoachCategoryUserController extends AbstractActionController {
32
class MyCoachCategoryUserController extends AbstractActionController {
29
 
33
 
Línea 116... Línea 120...
116
                        'data' => [
120
                        'data' => [
117
                            'total' => 0,
121
                            'total' => 0,
118
                            'items' => [],
122
                            'items' => [],
119
                            'link_add' => '',
123
                            'link_add' => '',
120
                            'link_upload' => '',
124
                            'link_upload' => '',
-
 
125
                            'link_jobs_description' => '',
-
 
126
                            'roles' => [],
-
 
127
                            'jobs_description' =>  [],
121
                        ]
128
                        ]
122
                    ]);
129
                    ]);
Línea 123... Línea 130...
123
                    
130
                    
Línea 168... Línea 175...
168
                $acl = $this->getEvent()->getViewModel()->getVariable('acl');
175
                $acl = $this->getEvent()->getViewModel()->getVariable('acl');
169
                $allowAdd = $acl->isAllowed($currentUser->usertype_id, 'my-coach/categories/users/add');
176
                $allowAdd = $acl->isAllowed($currentUser->usertype_id, 'my-coach/categories/users/add');
170
                $allowEdit = $acl->isAllowed($currentUser->usertype_id, 'my-coach/categories/users/edit');
177
                $allowEdit = $acl->isAllowed($currentUser->usertype_id, 'my-coach/categories/users/edit');
171
                $allowDelete = $acl->isAllowed($currentUser->usertype_id, 'my-coach/categories/users/delete');
178
                $allowDelete = $acl->isAllowed($currentUser->usertype_id, 'my-coach/categories/users/delete');
172
                $allowUpload = $acl->isAllowed($currentUser->usertype_id, 'my-coach/categories/users/upload');
179
                $allowUpload = $acl->isAllowed($currentUser->usertype_id, 'my-coach/categories/users/upload');
-
 
180
                $allowJobsDescription = $acl->isAllowed($currentUser->usertype_id, 'my-coach/categories/users/jobs-description');
-
 
181
                
-
 
182
                
Línea 173... Línea 183...
173
                
183
                
Línea 174... Línea 184...
174
              
184
              
Línea 253... Línea 263...
253
                        MyCoachCategoryUser::ROLE_EDITOR => 'LABEL_EDITOR',
263
                        MyCoachCategoryUser::ROLE_EDITOR => 'LABEL_EDITOR',
254
                        MyCoachCategoryUser::ROLE_ADMINISTRATOR => 'LABEL_ADMINISTRATOR',
264
                        MyCoachCategoryUser::ROLE_ADMINISTRATOR => 'LABEL_ADMINISTRATOR',
255
                    ];
265
                    ];
256
                }
266
                }
Línea -... Línea 267...
-
 
267
                
-
 
268
                $jobs_description = [];
-
 
269
                
-
 
270
                
-
 
271
                $jobDescriptionMapper = JobDescriptionMapper::getInstance($this->adapter);
-
 
272
                $myCoachCategoryJobDescriptionMapper = MyCoachCategoryJobDescriptionMapper::getInstance($this->adapter);
-
 
273
                $records = $myCoachCategoryJobDescriptionMapper->fetchAllByCategoryId($myCoachCategory->id);
-
 
274
                foreach($records as $record)
-
 
275
                {
-
 
276
                    $jobDescription = $jobDescriptionMapper->fetchOne($record->job_description_id);
-
 
277
                    array_push($jobs_description, $jobDescription->uuid);
-
 
278
                }
-
 
279
                
-
 
280
                
Línea 257... Línea 281...
257
                
281
                
258
                
282
                
259
 
283
 
260
                return new JsonModel([
284
                return new JsonModel([
261
                    'success' => true,
285
                    'success' => true,
262
                    'data' => [
286
                    'data' => [
263
                        'total' => $paginator->getTotalItemCount(),
287
                        'total' => $paginator->getTotalItemCount(),
264
                        'items' => $items,
288
                        'items' => $items,
-
 
289
                        'link_add' => $allowAdd ? $this->url()->fromRoute('my-coach/categories/users/add', ['id' => $myCoachCategory->uuid ] ) : '',
-
 
290
                        'link_upload' => $allowUpload ? $this->url()->fromRoute('my-coach/categories/users/upload', ['id' => $myCoachCategory->uuid ] ) : '',
-
 
291
                        'roles' => $roles,
265
                        'link_add' => $allowAdd ? $this->url()->fromRoute('my-coach/categories/users/add', ['id' => $myCoachCategory->uuid ] ) : '',
292
                        'link_jobs_description' => $allowJobsDescription ? $this->url()->fromRoute('my-coach/categories/users/jobs-description', ['id' => $myCoachCategory->uuid ] ) : '',
266
                        'link_upload' => $allowUpload ? $this->url()->fromRoute('my-coach/categories/users/upload', ['id' => $myCoachCategory->uuid ] ) : '',
293
                        'roles' => $roles,
267
                        'roles' => $roles,
294
                        'jobs_description' =>  $jobs_description,
-
 
295
                    ]
-
 
296
                ]);
-
 
297
            } else {
-
 
298
                $jobDescriptionIdBoss = 0;
Línea 268... Línea 299...
268
                    ]
299
                $jobDescriptionMapper = JobDescriptionMapper::getInstance($this->adapter);
269
                ]);
300
                $jobsDescription = $this->recursiveLoad($currentUser, $currentCompany, $jobDescriptionMapper, $jobDescriptionIdBoss);
Línea 277... Línea 308...
277
                $viewModel = new ViewModel();
308
                $viewModel = new ViewModel();
278
                $viewModel->setTemplate('leaders-linked/my-coach-category-users/index.phtml');
309
                $viewModel->setTemplate('leaders-linked/my-coach-category-users/index.phtml');
279
                $viewModel->setVariables([
310
                $viewModel->setVariables([
280
                    'form' =>  $form,
311
                    'form' =>  $form,
281
                    'formFilter' => $formFilter,
312
                    'formFilter' => $formFilter,
-
 
313
                    'jobsDescription' => $jobsDescription,
-
 
314
                    'companyName' => $currentCompany->name,
282
                ]);
315
                ]);
283
                return $viewModel;
316
                return $viewModel;
284
            }
317
            }
285
        } else {
318
        } else {
286
            return new JsonModel([
319
            return new JsonModel([
Línea 288... Línea 321...
288
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
321
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
289
            ]);
322
            ]);
290
        }
323
        }
Línea 291... Línea 324...
291
 
324
 
-
 
325
    }
-
 
326
    
-
 
327
    
-
 
328
    /**
-
 
329
     *
-
 
330
     * @param User $currentUser
-
 
331
     * @param Company $currentCompany
-
 
332
     * @param JobDescriptionMapper $jobDescriptionMapper
-
 
333
     * @param int $jobDescriptionIdBoss
-
 
334
     * @return array
-
 
335
     */
-
 
336
    private function recursiveLoad($currentUser, $currentCompany, $jobDescriptionMapper, $jobDescriptionIdBoss)
-
 
337
    {
-
 
338
        $items = [];
-
 
339
        $records = $jobDescriptionMapper->fetchAllByCompanyIdAndJobDescriptionIdBoss($currentCompany->id, $jobDescriptionIdBoss);
-
 
340
        
-
 
341
        
-
 
342
        foreach($records as $record)
-
 
343
        {
-
 
344
            
-
 
345
            
-
 
346
            
-
 
347
            array_push($items, [
-
 
348
                'uuid' => $record->uuid,
-
 
349
                'name' => $record->name,
-
 
350
                'children' => $this->recursiveLoad($currentUser, $currentCompany, $jobDescriptionMapper, $record->id),
-
 
351
            ]);
-
 
352
        }
-
 
353
        
-
 
354
        return $items;
-
 
355
    }
Línea 292... Línea 356...
292
    }
356
    
293
 
357
 
294
    public function addAction() 
358
    public function addAction() 
295
    { 
359
    { 
Línea 597... Línea 661...
597
 
661
 
Línea 598... Línea 662...
598
        
662
        
-
 
663
        return new JsonModel($data);
-
 
664
 
-
 
665
    }
-
 
666
    
-
 
667
    
-
 
668
    
-
 
669
    public function jobsDescriptionAction()
-
 
670
    {
-
 
671
        $request = $this->getRequest();
-
 
672
        $currentUserPlugin = $this->plugin('currentUserPlugin');
-
 
673
        $currentCompany = $currentUserPlugin->getCompany();
-
 
674
        $currentUser = $currentUserPlugin->getUser();
-
 
675
        
-
 
676
        $request = $this->getRequest();
-
 
677
        $uuid = $this->params()->fromRoute('id');
-
 
678
        
-
 
679
        
-
 
680
        
-
 
681
        $myCoachCategoryMapper = MyCoachCategoryMapper::getInstance($this->adapter);
-
 
682
        $myCoachCategory = $myCoachCategoryMapper->fetchOneByUuid($uuid);
-
 
683
        
-
 
684
        if(!$myCoachCategory) {
-
 
685
            return new JsonModel([
-
 
686
                'success' => false,
-
 
687
                'data' => 'ERROR_MY_COACH_CATEGORY_NOT_FOUND'
-
 
688
            ]);
-
 
689
        }
-
 
690
        
-
 
691
        if($myCoachCategory->company_id != $currentCompany->id) {
-
 
692
            return new JsonModel([
-
 
693
                'success' => false,
-
 
694
                'data' => 'ERROR_MY_COACH_CATEGORY_IS_OTHER_COMPANY'
-
 
695
            ]);
-
 
696
        }
-
 
697
        
-
 
698
        if ($request->isPost()) {
-
 
699
            
-
 
700
            $myCoachCategoryJobDescriptionMapper = MyCoachCategoryJobDescriptionMapper::getInstance($this->adapter);
-
 
701
            $myCoachCategoryJobDescriptionMapper->deleteAllByCategoryId($myCoachCategory->id);
-
 
702
            
-
 
703
            $jobDescriptionMapper = JobDescriptionMapper::getInstance($this->adapter);
-
 
704
            $jobs_description_uuid = $this->params()->fromPost('job_description_id');
-
 
705
            
-
 
706
            if(!empty($jobs_description_uuid)) {
-
 
707
                
-
 
708
                foreach($jobs_description_uuid as $job_description_uuid)
-
 
709
                {
-
 
710
                    $jobDescription = $jobDescriptionMapper->fetchOneByUuid($job_description_uuid);
-
 
711
                    
-
 
712
                    
-
 
713
                    if($jobDescription && $jobDescription->company_id == $currentCompany->id) {
-
 
714
                        
-
 
715
                        
-
 
716
                        $myCoachCategoryJobDescription = new  MyCoachCategoryJobDescription();
-
 
717
                        $myCoachCategoryJobDescription->category_id = $myCoachCategory->id;
-
 
718
                        $myCoachCategoryJobDescription->job_description_id = $jobDescription->id;
-
 
719
                        
-
 
720
                        
-
 
721
                        $myCoachCategoryJobDescriptionMapper->insert($myCoachCategoryJobDescription);
-
 
722
                    }
-
 
723
                    
-
 
724
                }
-
 
725
            }
-
 
726
            
-
 
727
            
-
 
728
            $data = [
-
 
729
                'success' => true,
-
 
730
                'data' => 'LABEL_RECORD_UPDATED'
-
 
731
            ];
-
 
732
            
-
 
733
        } else {
-
 
734
            $data = [
-
 
735
                'success' => false,
-
 
736
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
-
 
737
            ];
-
 
738
            
-
 
739
            
-
 
740
        }
-
 
741
        
-
 
742
        
-
 
743
        return new JsonModel($data);
599
        return new JsonModel($data);
744
        
600
 
745
    }