Proyectos de Subversion LeadersLinked - Backend

Rev

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

Rev 646 Rev 649
Línea 1... Línea 1...
1
<?php
1
<?php
-
 
2
 
2
declare(strict_types=1);
3
declare(strict_types=1);
Línea 3... Línea 4...
3
 
4
 
Línea 4... Línea 5...
4
namespace LeadersLinked\Controller;
5
namespace LeadersLinked\Controller;
Línea 20... Línea 21...
20
use LeadersLinked\Mapper\JobDescriptionCompetencyMapper;
21
use LeadersLinked\Mapper\JobDescriptionCompetencyMapper;
21
use LeadersLinked\Mapper\JobDescriptionSubordinateMapper;
22
use LeadersLinked\Mapper\JobDescriptionSubordinateMapper;
22
use LeadersLinked\Model\JobDescriptionCompetency;
23
use LeadersLinked\Model\JobDescriptionCompetency;
23
use LeadersLinked\Model\JobDescriptionSubordinate;
24
use LeadersLinked\Model\JobDescriptionSubordinate;
Línea -... Línea 25...
-
 
25
 
Línea 24... Línea -...
24
 
-
 
25
 
-
 
26
class JobDescriptionController extends AbstractActionController
26
class JobDescriptionController extends AbstractActionController {
27
{
27
 
28
    /**
28
    /**
29
     *
29
     *
30
     * @var AdapterInterface
30
     * @var AdapterInterface
31
     */
-
 
32
    private $adapter;
31
     */
33
    
32
    private $adapter;
34
    
33
 
35
    /**
34
    /**
36
     *
35
     *
37
     * @var AbstractAdapter
36
     * @var AbstractAdapter
38
     */
37
     */
39
    private $cache;
38
    private $cache;
40
    
39
 
41
    /**
40
    /**
42
     *
41
     *
43
     * @var  LoggerInterface
42
     * @var  LoggerInterface
Línea 44... Línea -...
44
     */
-
 
45
    private $logger;
43
     */
46
 
44
    private $logger;
47
    
45
 
48
    /**
46
    /**
49
     *
47
     *
50
     * @var array
-
 
51
     */
48
     * @var array
52
    private $config;
49
     */
53
    
50
    private $config;
54
    
51
 
55
    /**
52
    /**
56
     *
53
     *
57
     * @param AdapterInterface $adapter
54
     * @param AdapterInterface $adapter
58
     * @param AbstractAdapter $cache
55
     * @param AbstractAdapter $cache
59
     * @param LoggerInterface $logger
56
     * @param LoggerInterface $logger
60
     * @param array $config
-
 
61
     */
57
     * @param array $config
62
    public function __construct($adapter, $cache , $logger, $config)
58
     */
63
    {
59
    public function __construct($adapter, $cache, $logger, $config) {
64
        $this->adapter      = $adapter;
60
        $this->adapter = $adapter;
65
        $this->cache        = $cache;
-
 
66
        $this->logger       = $logger;
61
        $this->cache = $cache;
67
        $this->config       = $config;
62
        $this->logger = $logger;
68
        
63
        $this->config = $config;
69
    }
-
 
70
    
64
    }
71
    public function indexAction()
65
 
72
    {
66
    public function indexAction() {
73
        $currentUserPlugin = $this->plugin('currentUserPlugin');
67
        $currentUserPlugin = $this->plugin('currentUserPlugin');
74
        $currentUser = $currentUserPlugin->getUser();
68
        $currentUser = $currentUserPlugin->getUser();
75
        $currentCompany = $currentUserPlugin->getCompany();
69
        $currentCompany = $currentUserPlugin->getCompany();
76
        
70
 
77
        $request = $this->getRequest();
71
        $request = $this->getRequest();
78
        
72
 
79
        $headers  = $request->getHeaders();
73
        $headers = $request->getHeaders();
80
        
74
 
81
        $request = $this->getRequest();
75
        $request = $this->getRequest();
82
        if($request->isGet()) {
76
        if ($request->isGet()) {
83
            
77
 
84
            
78
 
85
            $headers  = $request->getHeaders();
79
            $headers = $request->getHeaders();
86
            
80
 
87
            $isJson = false;
81
            $isJson = false;
88
            if($headers->has('Accept')) {
82
            if ($headers->has('Accept')) {
89
                $accept = $headers->get('Accept');
83
                $accept = $headers->get('Accept');
90
                
84
 
91
                $prioritized = $accept->getPrioritized();
85
                $prioritized = $accept->getPrioritized();
92
                
86
 
93
                foreach($prioritized as $key => $value) {
87
                foreach ($prioritized as $key => $value) {
94
                    $raw = trim($value->getRaw());
88
                    $raw = trim($value->getRaw());
95
                    
89
 
96
                    if(!$isJson) {
-
 
97
                        $isJson = strpos($raw, 'json');
90
                    if (!$isJson) {
98
                    }
91
                        $isJson = strpos($raw, 'json');
99
                    
92
                    }
100
                }
93
                }
101
            }
94
            }
102
            
95
 
103
            if($isJson) {
96
            if ($isJson) {
104
                $search = $this->params()->fromQuery('search', []);
97
                $search = $this->params()->fromQuery('search', []);
105
                $search = empty($search['value']) ? '' : filter_var($search['value'], FILTER_SANITIZE_STRING);
98
                $search = empty($search['value']) ? '' : filter_var($search['value'], FILTER_SANITIZE_STRING);
106
                
99
 
107
                $page               = intval($this->params()->fromQuery('start', 1), 10);
100
                $page = intval($this->params()->fromQuery('start', 1), 10);
108
                $records_x_page     = intval($this->params()->fromQuery('length', 10), 10);
101
                $records_x_page = intval($this->params()->fromQuery('length', 10), 10);
109
                $order =  $this->params()->fromQuery('order', []);
102
                $order = $this->params()->fromQuery('order', []);
110
                $order_field        = empty($order[0]['column']) ? 99 :  intval($order[0]['column'], 10);
103
                $order_field = empty($order[0]['column']) ? 99 : intval($order[0]['column'], 10);
111
                $order_direction    = empty($order[0]['dir']) ? 'ASC' : strtoupper(filter_var( $order[0]['dir'], FILTER_SANITIZE_STRING));
104
                $order_direction = empty($order[0]['dir']) ? 'ASC' : strtoupper(filter_var($order[0]['dir'], FILTER_SANITIZE_STRING));
112
    
105
 
113
                $fields =  ['name'];
106
                $fields = ['name'];
114
                $order_field = isset($fields[$order_field]) ? $fields[$order_field] : 'name';
107
                $order_field = isset($fields[$order_field]) ? $fields[$order_field] : 'name';
115
                
108
 
116
                if(!in_array($order_direction, ['ASC', 'DESC'])) {
109
                if (!in_array($order_direction, ['ASC', 'DESC'])) {
117
                    $order_direction = 'ASC';
110
                    $order_direction = 'ASC';
118
                }
111
                }
Línea 119... Línea 112...
119
    
112
 
120
                $jobDescriptionMapper = JobDescriptionMapper::getInstance($this->adapter);
113
                $jobDescriptionMapper = JobDescriptionMapper::getInstance($this->adapter);
121
                $paginator = $jobDescriptionMapper->fetchAllDataTableByCompanyId($currentCompany->id, $search, $page, $records_x_page, $order_field, $order_direction);
114
                $paginator = $jobDescriptionMapper->fetchAllDataTableByCompanyId($currentCompany->id, $search, $page, $records_x_page, $order_field, $order_direction);
122
 
-
 
123
                $items = [];
115
 
124
                $records = $paginator->getCurrentItems();
116
                $items = [];
125
                foreach($records as $record)
117
                $records = $paginator->getCurrentItems();
126
                {
118
                foreach ($records as $record) {
127
                    
119
 
128
                    
120
 
129
                    
121
 
130
                    $item = [
122
                    $item = [
131
                        'name' => $record->name,
123
                        'name' => $record->name,
132
                        'status' => $record->status,
124
                        'status' => $record->status,
133
                        'actions' => [
125
                        'actions' => [
134
                            'link_report'=> $this->url()->fromRoute('settings/jobs-description/report', ['id' => $record->uuid ]),
126
                            'link_report' => $this->url()->fromRoute('settings/jobs-description/report', ['id' => $record->uuid]),
135
                            'link_edit' => $this->url()->fromRoute('settings/jobs-description/edit', ['id' => $record->uuid ]),
127
                            'link_edit' => $this->url()->fromRoute('settings/jobs-description/edit', ['id' => $record->uuid]),
136
                            'link_delete' => $this->url()->fromRoute('settings/jobs-description/delete', ['id' => $record->uuid  ])
128
                            'link_delete' => $this->url()->fromRoute('settings/jobs-description/delete', ['id' => $record->uuid])
137
                        ] 
129
                        ]
138
                    ];
130
                    ];
139
                    
131
 
140
                    array_push($items, $item);
132
                    array_push($items, $item);
141
                }
133
                }
142
                
134
 
143
                return new JsonModel([
135
                return new JsonModel([
144
                    'success' => true,
136
                    'success' => true,
145
                    'data' => [
137
                    'data' => [
146
                        'items' => $items,
-
 
147
                        'total' => $paginator->getTotalItemCount(),
-
 
148
                    ]
138
                        'items' => $items,
149
                ]);
139
                        'total' => $paginator->getTotalItemCount(),
150
                
140
                    ]
151
                
141
                ]);
152
            } else  {
142
            } else {
153
                $form = new JobDescriptionForm($this->adapter, $currentCompany->id);
143
                $form = new JobDescriptionForm($this->adapter, $currentCompany->id);
154
                
144
 
155
                $this->layout()->setTemplate('layout/layout-backend');
145
                $this->layout()->setTemplate('layout/layout-backend');
156
                $viewModel = new ViewModel();
146
                $viewModel = new ViewModel();
157
                $viewModel->setTemplate('leaders-linked/jobs-description/index.phtml');
-
 
158
                $viewModel->setVariable('form', $form);
147
                $viewModel->setTemplate('leaders-linked/jobs-description/index.phtml');
159
                return $viewModel ;
148
                $viewModel->setVariable('form', $form);
160
            } 
149
                return $viewModel;
161
          
150
            }
162
        } else {
151
        } else {
-
 
152
            return new JsonModel([
163
            return new JsonModel([
153
                'success' => false,
164
                'success' => false,
154
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
165
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
155
            ]);
166
            ]);;
156
            ;
167
        }
-
 
168
    }
157
        }
169
    
158
    }
170
    public function addAction()
159
 
171
    {
160
    public function addAction() {
172
        $currentUserPlugin = $this->plugin('currentUserPlugin');
161
        $currentUserPlugin = $this->plugin('currentUserPlugin');
173
        $currentUser = $currentUserPlugin->getUser();
162
        $currentUser = $currentUserPlugin->getUser();
174
        $currentCompany = $currentUserPlugin->getCompany();
163
        $currentCompany = $currentUserPlugin->getCompany();
175
        
164
 
176
        $request = $this->getRequest();
165
        $request = $this->getRequest();
177
        
166
 
178
        
167
 
179
        if($request->isGet()) {
168
        if ($request->isGet()) {
180
            
169
 
181
            $data = [
170
            $data = [
182
               'competency_types' => [],
171
                'competency_types' => [],
183
               'competencies' => [],
172
                'competencies' => [],
184
               'jobs_description' => [],
173
                'jobs_description' => [],
185
            ];
174
            ];
186
            
175
 
187
            $competencyTypeMapper = CompetencyTypeMapper::getInstance($this->adapter);
176
            $competencyTypeMapper = CompetencyTypeMapper::getInstance($this->adapter);
188
            $records = $competencyTypeMapper->fetchAllByCompanyId($currentCompany->id);
-
 
189
            
177
            $records = $competencyTypeMapper->fetchAllByCompanyId($currentCompany->id);
190
            $competencyTypesUUID = [];
178
 
191
            foreach($records as $record) 
179
            $competencyTypesUUID = [];
192
            {
180
            foreach ($records as $record) {
193
                array_push($data['competency_types'], [
181
                array_push($data['competency_types'], [
194
                    'competency_type_id' => $record->uuid,
182
                    'competency_type_id' => $record->uuid,
195
                    'name' => $record->name,
183
                    'name' => $record->name,
196
                ]);
184
                ]);
197
                
185
 
Línea 198... Línea 186...
198
                $competencyTypesUUID[$record->id] = $record->uuid;
186
                $competencyTypesUUID[$record->id] = $record->uuid;
199
            }
187
            }
200
            
188
 
201
            
189
 
202
 
190
 
203
            $competencyMapper = CompetencyMapper::getInstance($this->adapter);
-
 
204
            $records = $competencyMapper->fetchAllActiveByCompanyId($currentCompany->id);
191
            $competencyMapper = CompetencyMapper::getInstance($this->adapter);
205
            
192
            $records = $competencyMapper->fetchAllActiveByCompanyId($currentCompany->id);
206
            
193
 
207
            foreach($records as $record)
194
 
208
            {
195
            foreach ($records as $record) {
209
                if(isset($competencyTypesUUID[$record->competency_type_id])) {
196
                if (isset($competencyTypesUUID[$record->competency_type_id])) {
210
                    
197
 
211
                    array_push($data['competencies'], [
198
                    array_push($data['competencies'], [
212
                        'competency_type_id' => $competencyTypesUUID[$record->competency_type_id],
199
                        'competency_type_id' => $competencyTypesUUID[$record->competency_type_id],
213
                        'competency_id' => $record->uuid,
200
                        'competency_id' => $record->uuid,
214
                        'name' => $record->name,
201
                        'name' => $record->name,
215
                    ]);    
202
                    ]);
216
                }
203
                }
217
            }
204
            }
218
            
-
 
219
            $jobDescriptionMapper = JobDescriptionMapper::getInstance($this->adapter);
205
 
220
            $records = $jobDescriptionMapper->fetchAllActiveByCompanyId($currentCompany->id);
206
            $jobDescriptionMapper = JobDescriptionMapper::getInstance($this->adapter);
221
            
207
            $records = $jobDescriptionMapper->fetchAllActiveByCompanyId($currentCompany->id);
222
            foreach($records as $record)
208
 
223
            {
209
            foreach ($records as $record) {
224
                array_push($data['jobs_description'], [
210
                array_push($data['jobs_description'], [
225
                    'job_description_id' => $record->uuid,
211
                    'job_description_id' => $record->uuid,
226
                    'name' => $record->name
212
                    'name' => $record->name
227
                ]);
213
                ]);
228
            }
214
            }
229
            
215
 
230
            
216
 
231
            $data = [
217
            $data = [
232
                'success'   => true,
218
                'success' => true,
233
                'data'      => $data,
-
 
234
            ];
-
 
235
                
219
                'data' => $data,
236
            
220
            ];
237
            return new JsonModel($data);
221
 
238
            
222
 
239
            
223
            return new JsonModel($data);
240
        } else  if($request->isPost()) {
224
        } else if ($request->isPost()) {
241
            $form = new  JobDescriptionForm($this->adapter, $currentCompany->id);
225
            $form = new JobDescriptionForm($this->adapter, $currentCompany->id);
242
            $dataPost = $request->getPost()->toArray();
226
            $dataPost = $request->getPost()->toArray();
243
            
227
 
244
            
228
 
245
            
229
 
246
            
230
 
247
            
231
 
248
            $form->setData($dataPost);
232
            $form->setData($dataPost);
249
            
233
 
250
            if($form->isValid()) {
234
            if ($form->isValid()) {
251
                $dataPost = (array) $form->getData();
235
                $dataPost = (array) $form->getData();
252
                $dataPost['status'] = $dataPost['status'] ? $dataPost['status'] : JobDescription::STATUS_INACTIVE;
236
                $dataPost['status'] = $dataPost['status'] ? $dataPost['status'] : JobDescription::STATUS_INACTIVE;
253
                
237
 
254
                
238
 
255
                $jobDescriptionMapper = JobDescriptionMapper::getInstance($this->adapter);
239
                $jobDescriptionMapper = JobDescriptionMapper::getInstance($this->adapter);
256
                
240
 
257
                if(!empty($dataPost['job_description_id_boss'])) {
241
                if (!empty($dataPost['job_description_id_boss'])) {
258
                    
242
 
259
                    $jobDescriptionBoss = $jobDescriptionMapper->fetchOneByUuid($dataPost['job_description_id_boss']);
243
                    $jobDescriptionBoss = $jobDescriptionMapper->fetchOneByUuid($dataPost['job_description_id_boss']);
260
                    if($jobDescriptionBoss) {
244
                    if ($jobDescriptionBoss) {
261
                        if($jobDescriptionBoss->company_id == $currentCompany->id) {
245
                        if ($jobDescriptionBoss->company_id == $currentCompany->id) {
262
                            $dataPost['job_description_id_boss'] = $jobDescriptionBoss->id;
246
                            $dataPost['job_description_id_boss'] = $jobDescriptionBoss->id;
263
                        } else {
247
                        } else {
264
                            $dataPost['job_description_id_boss'] = null;
248
                            $dataPost['job_description_id_boss'] = null;
265
                        }
249
                        }
Línea 266... Línea 250...
266
                    } else {
250
                    } else {
267
                        $dataPost['job_description_id_boss'] = null;
251
                        $dataPost['job_description_id_boss'] = null;
268
                    }
252
                    }
269
                }
253
                }
270
                
254
 
271
 
255
 
272
 
256
 
273
                $hydrator = new ObjectPropertyHydrator();
257
                $hydrator = new ObjectPropertyHydrator();
274
                $jobDescription = new JobDescription();
258
                $jobDescription = new JobDescription();
Línea 275... Línea 259...
275
                
259
 
276
                $hydrator->hydrate($dataPost, $jobDescription);
260
                $hydrator->hydrate($dataPost, $jobDescription);
277
                
261
 
278
                if($currentCompany) {
262
                if ($currentCompany) {
279
                    $jobDescription->company_id = $currentCompany->id;
263
                    $jobDescription->company_id = $currentCompany->id;
280
                }
264
                }
281
                
265
 
282
 
266
 
283
                $jobDescriptionMapper = JobDescriptionMapper::getInstance($this->adapter);
267
                $jobDescriptionMapper = JobDescriptionMapper::getInstance($this->adapter);
284
                $result = $jobDescriptionMapper->insert($jobDescription);
268
                $result = $jobDescriptionMapper->insert($jobDescription);
285
                
269
 
286
                
270
 
287
                if($result) {
271
                if ($result) {
288
                    $jobDescriptionSubordinateMapper = JobDescriptionSubordinateMapper::getInstance($this->adapter);
272
                    $jobDescriptionSubordinateMapper = JobDescriptionSubordinateMapper::getInstance($this->adapter);
289
                    $jobDescriptionSubordinateMapper->deleteAllByJobDescriptionIdTopLevel($jobDescription->id);
273
                    $jobDescriptionSubordinateMapper->deleteAllByJobDescriptionIdTopLevel($jobDescription->id);
290
                    
274
 
291
                    $jobDescriptionCompetencyMapper = JobDescriptionCompetencyMapper::getInstance($this->adapter);
275
                    $jobDescriptionCompetencyMapper = JobDescriptionCompetencyMapper::getInstance($this->adapter);
292
                    $jobDescriptionCompetencyMapper->deleteAllBJobDescriptionId($jobDescription->id);
-
 
293
                    
276
                    $jobDescriptionCompetencyMapper->deleteAllBJobDescriptionId($jobDescription->id);
294
                    
277
 
295
                    $competencyMapper = CompetencyMapper::getInstance($this->adapter);
278
 
296
                    $competencies = $competencyMapper->fetchAllActiveByCompanyId($currentCompany->id);
279
                    $competencyMapper = CompetencyMapper::getInstance($this->adapter);
297
                    
280
                    $competencies = $competencyMapper->fetchAllActiveByCompanyId($currentCompany->id);
298
                    
281
 
299
                    foreach($competencies as $competency)
282
 
300
                    {
283
                    foreach ($competencies as $competency) {
301
                        $level = filter_var($this->params()->fromPost('competency_level' . $competency->uuid, ''), FILTER_SANITIZE_NUMBER_INT);
284
                        $level = filter_var($this->params()->fromPost('competency_level' . $competency->uuid, ''), FILTER_SANITIZE_NUMBER_INT);
302
                        if(in_array($level, [1, 2, 3, 4])) {
285
                        if (in_array($level, [1, 2, 3, 4])) {
303
                            $jobDescriptionCompetency = new JobDescriptionCompetency();
286
                            $jobDescriptionCompetency = new JobDescriptionCompetency();
304
                            $jobDescriptionCompetency->competency_id = $competency->id;
287
                            $jobDescriptionCompetency->competency_id = $competency->id;
305
                            $jobDescriptionCompetency->job_description_id = $jobDescription->id;
288
                            $jobDescriptionCompetency->job_description_id = $jobDescription->id;
306
                            $jobDescriptionCompetency->level = $level;
-
 
307
                            $jobDescriptionCompetencyMapper->insert($jobDescriptionCompetency);
289
                            $jobDescriptionCompetency->level = $level;
308
                        }
290
                            $jobDescriptionCompetencyMapper->insert($jobDescriptionCompetency);
309
                    }
291
                        }
310
                    
292
                    }
311
                    
293
 
312
                    $jobsDescriptionListingSubordinate = $jobDescriptionMapper->fetchAllActiveByCompanyIdWhereIdNotEqual($currentCompany->id, $jobDescription->id);
294
 
313
                    foreach($jobsDescriptionListingSubordinate as $jobDescriptionListingSubordinate)
295
                    $jobsDescriptionListingSubordinate = $jobDescriptionMapper->fetchAllActiveByCompanyIdWhereIdNotEqual($currentCompany->id, $jobDescription->id);
314
                    {
296
                    foreach ($jobsDescriptionListingSubordinate as $jobDescriptionListingSubordinate) {
315
                        $job_description_subordinate = filter_var($this->params()->fromPost('job_description_id_subordinate' . $jobDescriptionListingSubordinate->uuid, ''), FILTER_SANITIZE_STRING);
297
                        $job_description_subordinate = filter_var($this->params()->fromPost('job_description_id_subordinate' . $jobDescriptionListingSubordinate->uuid, ''), FILTER_SANITIZE_STRING);
316
                        if($job_description_subordinate) {
298
                        if ($job_description_subordinate) {
317
                            $jobDescriptionSubordinate = new JobDescriptionSubordinate();
299
                            $jobDescriptionSubordinate = new JobDescriptionSubordinate();
318
                            $jobDescriptionSubordinate->job_description_id_top_level = $jobDescription->id;
300
                            $jobDescriptionSubordinate->job_description_id_top_level = $jobDescription->id;
319
                            $jobDescriptionSubordinate->job_description_id_low_level = $jobDescriptionListingSubordinate->id;
301
                            $jobDescriptionSubordinate->job_description_id_low_level = $jobDescriptionListingSubordinate->id;
320
                            $jobDescriptionSubordinateMapper->insert($jobDescriptionSubordinate);
302
                            $jobDescriptionSubordinateMapper->insert($jobDescriptionSubordinate);
321
                        }
303
                        }
322
                    }
304
                    }
323
                    
305
 
324
                    
306
 
325
                    
307
 
326
                    $this->logger->info('Se agrego el cargo ' . $jobDescription->name, ['user_id' => $currentUser->id, 'ip' => Functions::getUserIP()]);
308
                    $this->logger->info('Se agrego el cargo ' . $jobDescription->name, ['user_id' => $currentUser->id, 'ip' => Functions::getUserIP()]);
327
                    
309
 
328
                    $data = [
310
                    $data = [
329
                        'success'   => true,
-
 
330
                        'data'   => 'LABEL_RECORD_ADDED'
311
                        'success' => true,
331
                    ];
312
                        'data' => 'LABEL_RECORD_ADDED'
332
                } else {
313
                    ];
333
                    $data = [
-
 
334
                        'success'   => false,
314
                } else {
335
                        'data'      => $jobDescriptionMapper->getError()
315
                    $data = [
336
                    ];
316
                        'success' => false,
337
                    
317
                        'data' => $jobDescriptionMapper->getError()
338
                }
-
 
339
                
318
                    ];
340
                return new JsonModel($data);
319
                }
341
                
320
 
342
            } else {
321
                return new JsonModel($data);
343
                $messages = [];
322
            } else {
344
                $form_messages = (array) $form->getMessages();
323
                $messages = [];
345
                foreach($form_messages  as $fieldname => $field_messages)
324
                $form_messages = (array) $form->getMessages();
346
                {
325
                foreach ($form_messages as $fieldname => $field_messages) {
347
                    
326
 
348
                    $messages[$fieldname] = array_values($field_messages);
-
 
349
                }
327
                    $messages[$fieldname] = array_values($field_messages);
350
                
328
                }
351
                return new JsonModel([
329
 
352
                    'success'   => false,
330
                return new JsonModel([
353
                    'data'   => $messages
331
                    'success' => false,
354
                ]);
332
                    'data' => $messages
355
            }
333
                ]);
356
 
334
            }
357
        } else {
335
        } else {
358
            $data = [
336
            $data = [
359
                'success' => false,
337
                'success' => false,
360
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
338
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
361
            ];
339
            ];
362
            
-
 
363
            return new JsonModel($data);
340
 
364
        }
341
            return new JsonModel($data);
365
        
342
        }
366
        return new JsonModel($data);
343
 
367
    }
344
        return new JsonModel($data);
368
    
345
    }
Línea 369... Línea 346...
369
    public function editAction()
346
 
370
    {
347
    public function editAction() {
371
        $currentUserPlugin = $this->plugin('currentUserPlugin');
348
        $currentUserPlugin = $this->plugin('currentUserPlugin');
372
        $currentUser = $currentUserPlugin->getUser();
349
        $currentUser = $currentUserPlugin->getUser();
373
        $currentCompany = $currentUserPlugin->getCompany();
350
        $currentCompany = $currentUserPlugin->getCompany();
374
        
351
 
375
        $request = $this->getRequest();
352
        $request = $this->getRequest();
376
        $uuid = $this->params()->fromRoute('id');
353
        $uuid = $this->params()->fromRoute('id');
377
 
354
 
Línea 378... Línea 355...
378
        
355
 
379
        if(!$uuid) {
356
        if (!$uuid) {
380
            $data = [
357
            $data = [
381
                'success'   => false,
358
                'success' => false,
382
                'data'   => 'ERROR_INVALID_PARAMETER'
359
                'data' => 'ERROR_INVALID_PARAMETER'
383
            ];
360
            ];
384
            
361
 
385
            return new JsonModel($data);
362
            return new JsonModel($data);
386
        }
363
        }
387
 
364
 
388
        $jobDescriptionMapper = JobDescriptionMapper::getInstance($this->adapter);
365
        $jobDescriptionMapper = JobDescriptionMapper::getInstance($this->adapter);
389
        $jobDescription = $jobDescriptionMapper->fetchOneByUuid($uuid);
366
        $jobDescription = $jobDescriptionMapper->fetchOneByUuid($uuid);
390
        if(!$jobDescription) {
367
        if (!$jobDescription) {
391
            $data = [
368
            $data = [
392
                'success'   => false,
369
                'success' => false,
393
                'data'   => 'ERROR_RECORD_NOT_FOUND'
370
                'data' => 'ERROR_RECORD_NOT_FOUND'
394
            ];
371
            ];
395
            
372
 
396
            return new JsonModel($data);
373
            return new JsonModel($data);
Línea 397... Línea 374...
397
        }
374
        }
398
        
375
 
399
        if($jobDescription->company_id != $currentCompany->id) {
376
        if ($jobDescription->company_id != $currentCompany->id) {
400
            $data = [
377
            $data = [
401
                'success'   => false,
378
                'success' => false,
402
                'data'   => 'ERROR_UNAUTHORIZED'
379
                'data' => 'ERROR_UNAUTHORIZED'
403
            ];
380
            ];
404
                
381
 
405
            return new JsonModel($data);
382
            return new JsonModel($data);
406
        }
383
        }
407
 
384
 
408
        
385
 
409
        if($request->isPost()) {
386
        if ($request->isPost()) {
410
            $form = new JobDescriptionForm($this->adapter, $currentCompany->id, $jobDescription->id);
387
            $form = new JobDescriptionForm($this->adapter, $currentCompany->id, $jobDescription->id);
411
            $dataPost = $request->getPost()->toArray();
388
            $dataPost = $request->getPost()->toArray();
412
           
389
 
413
            
390
 
414
            $form->setData($dataPost);
391
            $form->setData($dataPost);
415
            
392
 
416
            if($form->isValid()) {
393
            if ($form->isValid()) {
417
                $dataPost = (array) $form->getData();
394
                $dataPost = (array) $form->getData();
418
                $dataPost['status'] = $dataPost['status'] ? $dataPost['status'] : JobDescription::STATUS_INACTIVE;
395
                $dataPost['status'] = $dataPost['status'] ? $dataPost['status'] : JobDescription::STATUS_INACTIVE;
419
                
396
 
420
                
397
 
421
                if(!empty($dataPost['job_description_id_boss'])) {
398
                if (!empty($dataPost['job_description_id_boss'])) {
422
                    
399
 
423
                    $jobDescriptionBoss = $jobDescriptionMapper->fetchOneByUuid($dataPost['job_description_id_boss']);
400
                    $jobDescriptionBoss = $jobDescriptionMapper->fetchOneByUuid($dataPost['job_description_id_boss']);
424
                    if($jobDescriptionBoss) {
401
                    if ($jobDescriptionBoss) {
425
                        if($jobDescriptionBoss->id != $jobDescription->id && $jobDescriptionBoss->company_id == $currentCompany->id) {
402
                        if ($jobDescriptionBoss->id != $jobDescription->id && $jobDescriptionBoss->company_id == $currentCompany->id) {
426
                            $dataPost['job_description_id_boss'] = $jobDescriptionBoss->id;
403
                            $dataPost['job_description_id_boss'] = $jobDescriptionBoss->id;
427
                        } else {
404
                        } else {
Línea 428... Línea 405...
428
                            $dataPost['job_description_id_boss'] = null;
405
                            $dataPost['job_description_id_boss'] = null;
429
                        }
406
                        }
430
                    } else {
407
                    } else {
431
                        $dataPost['job_description_id_boss'] = null;
408
                        $dataPost['job_description_id_boss'] = null;
432
                    }
409
                    }
433
                }
410
                }
434
                
411
 
435
                
412
 
436
 
413
 
437
                $hydrator = new ObjectPropertyHydrator();
414
                $hydrator = new ObjectPropertyHydrator();
438
                $hydrator->hydrate($dataPost, $jobDescription);
415
                $hydrator->hydrate($dataPost, $jobDescription);
439
 
416
 
440
                $result = $jobDescriptionMapper->update($jobDescription);
417
                $result = $jobDescriptionMapper->update($jobDescription);
441
                
418
 
442
                if($result) {
419
                if ($result) {
443
                    
420
 
444
                    $jobDescriptionSubordinateMapper = JobDescriptionSubordinateMapper::getInstance($this->adapter);
-
 
445
                    $jobDescriptionSubordinateMapper->deleteAllByJobDescriptionIdTopLevel($jobDescription->id);
421
                    $jobDescriptionSubordinateMapper = JobDescriptionSubordinateMapper::getInstance($this->adapter);
446
                    
422
                    $jobDescriptionSubordinateMapper->deleteAllByJobDescriptionIdTopLevel($jobDescription->id);
447
                    $jobDescriptionCompetencyMapper = JobDescriptionCompetencyMapper::getInstance($this->adapter);
423
 
448
                    $jobDescriptionCompetencyMapper->deleteAllBJobDescriptionId($jobDescription->id);
424
                    $jobDescriptionCompetencyMapper = JobDescriptionCompetencyMapper::getInstance($this->adapter);
449
                    
425
                    $jobDescriptionCompetencyMapper->deleteAllBJobDescriptionId($jobDescription->id);
450
                    
426
 
451
                    $competencyMapper = CompetencyMapper::getInstance($this->adapter);
427
 
452
                    $competencies = $competencyMapper->fetchAllActiveByCompanyId($currentCompany->id);
428
                    $competencyMapper = CompetencyMapper::getInstance($this->adapter);
453
                    
429
                    $competencies = $competencyMapper->fetchAllActiveByCompanyId($currentCompany->id);
454
                    
430
 
455
                    foreach($competencies as $competency)
431
 
456
                    {
432
                    foreach ($competencies as $competency) {
457
                        $level = filter_var($this->params()->fromPost('competency_level' . $competency->uuid, ''), FILTER_SANITIZE_NUMBER_INT);
433
                        $level = filter_var($this->params()->fromPost('competency_level' . $competency->uuid, ''), FILTER_SANITIZE_NUMBER_INT);
458
                        if(in_array($level, [ 1, 2, 3, 4])) {
-
 
459
                            $jobDescriptionCompetency = new JobDescriptionCompetency();
434
                        if (in_array($level, [1, 2, 3, 4])) {
460
                            $jobDescriptionCompetency->competency_id = $competency->id;
435
                            $jobDescriptionCompetency = new JobDescriptionCompetency();
461
                            $jobDescriptionCompetency->job_description_id = $jobDescription->id;
436
                            $jobDescriptionCompetency->competency_id = $competency->id;
462
                            $jobDescriptionCompetency->level = $level;
437
                            $jobDescriptionCompetency->job_description_id = $jobDescription->id;
463
                            $jobDescriptionCompetencyMapper->insert($jobDescriptionCompetency);
438
                            $jobDescriptionCompetency->level = $level;
464
                        }
439
                            $jobDescriptionCompetencyMapper->insert($jobDescriptionCompetency);
465
                    }
440
                        }
466
                    
441
                    }
467
                    
442
 
468
                    $jobsDescriptionListingSubordinate = $jobDescriptionMapper->fetchAllActiveByCompanyIdWhereIdNotEqual($currentCompany->id, $jobDescription->id);
443
 
469
                    foreach($jobsDescriptionListingSubordinate as $jobDescriptionListingSubordinate)
444
                    $jobsDescriptionListingSubordinate = $jobDescriptionMapper->fetchAllActiveByCompanyIdWhereIdNotEqual($currentCompany->id, $jobDescription->id);
470
                    {
445
                    foreach ($jobsDescriptionListingSubordinate as $jobDescriptionListingSubordinate) {
471
                        $job_description_subordinate = filter_var($this->params()->fromPost('job_description_id_subordinate' . $jobDescriptionListingSubordinate->uuid, ''), FILTER_SANITIZE_STRING);
446
                        $job_description_subordinate = filter_var($this->params()->fromPost('job_description_id_subordinate' . $jobDescriptionListingSubordinate->uuid, ''), FILTER_SANITIZE_STRING);
472
                        if($job_description_subordinate) {
447
                        if ($job_description_subordinate) {
473
                            $jobDescriptionSubordinate = new JobDescriptionSubordinate();
448
                            $jobDescriptionSubordinate = new JobDescriptionSubordinate();
474
                            $jobDescriptionSubordinate->job_description_id_top_level = $jobDescription->id;
449
                            $jobDescriptionSubordinate->job_description_id_top_level = $jobDescription->id;
475
                            $jobDescriptionSubordinate->job_description_id_low_level = $jobDescriptionListingSubordinate->id;
450
                            $jobDescriptionSubordinate->job_description_id_low_level = $jobDescriptionListingSubordinate->id;
476
                            $jobDescriptionSubordinateMapper->insert($jobDescriptionSubordinate);
451
                            $jobDescriptionSubordinateMapper->insert($jobDescriptionSubordinate);
477
                        }
452
                        }
478
                    }
453
                    }
479
                    
454
 
480
                    
455
 
481
                    $this->logger->info('Se actualizo el cargo ' . $jobDescription->name, ['user_id' => $currentUser->id, 'ip' => Functions::getUserIP()]);
456
                    $this->logger->info('Se actualizo el cargo ' . $jobDescription->name, ['user_id' => $currentUser->id, 'ip' => Functions::getUserIP()]);
482
                    
457
 
483
                    $data = [
-
 
484
                        'success' => true,
458
                    $data = [
485
                        'data' => 'LABEL_RECORD_UPDATED'
459
                        'success' => true,
486
                    ];
460
                        'data' => 'LABEL_RECORD_UPDATED'
487
                } else {
461
                    ];
488
                    $data = [
-
 
489
                        'success'   => false,
462
                } else {
490
                        'data'      => $jobDescriptionMapper->getError()
463
                    $data = [
491
                    ];
464
                        'success' => false,
492
                }
465
                        'data' => $jobDescriptionMapper->getError()
493
                
466
                    ];
494
                return new JsonModel($data);
467
                }
495
                
468
 
496
            } else {
469
                return new JsonModel($data);
497
                $messages = [];
470
            } else {
Línea 498... Línea 471...
498
                $form_messages = (array) $form->getMessages();
471
                $messages = [];
499
                foreach($form_messages  as $fieldname => $field_messages)
472
                $form_messages = (array) $form->getMessages();
500
                {
473
                foreach ($form_messages as $fieldname => $field_messages) {
501
                    $messages[$fieldname] = array_values($field_messages);
474
                    $messages[$fieldname] = array_values($field_messages);
502
                }
475
                }
503
                
476
 
504
                return new JsonModel([
477
                return new JsonModel([
505
                    'success'   => false,
478
                    'success' => false,
506
                    'data'   => $messages
479
                    'data' => $messages
507
                ]);
480
                ]);
508
            }
481
            }
509
        } else if ($request->isGet()) {
482
        } else if ($request->isGet()) {
510
 
483
 
511
            $hydrator = new ObjectPropertyHydrator();
484
            $hydrator = new ObjectPropertyHydrator();
512
            
485
 
513
            $data = $hydrator->extract($jobDescription);
486
            $data = $hydrator->extract($jobDescription);
Línea 514... Línea 487...
514
            
487
 
515
            if(!empty($data['job_description_id_boss'])) {
488
            if (!empty($data['job_description_id_boss'])) {
516
                
489
 
517
                $jobDescriptionBoss = $jobDescriptionMapper->fetchOne($data['job_description_id_boss']);
490
                $jobDescriptionBoss = $jobDescriptionMapper->fetchOne($data['job_description_id_boss']);
518
                if($jobDescriptionBoss) {
491
                if ($jobDescriptionBoss) {
519
                    $data['job_description_id_boss'] = $jobDescriptionBoss->uuid;
492
                    $data['job_description_id_boss'] = $jobDescriptionBoss->uuid;
520
                } else {
493
                } else {
521
                    $data['job_description_id_boss'] = '';
-
 
522
                }
494
                    $data['job_description_id_boss'] = '';
523
            } else {
495
                }
524
                $data['job_description_id_boss'] = '';
496
            } else {
525
            }
497
                $data['job_description_id_boss'] = '';
526
            
498
            }
527
 
499
 
528
            $data['competency_types'] = [];
500
 
529
            
501
            $data['competency_types'] = [];
530
            $competencyTypeMapper = CompetencyTypeMapper::getInstance($this->adapter);
502
 
531
            $records = $competencyTypeMapper->fetchAllByCompanyId($currentCompany->id);
503
            $competencyTypeMapper = CompetencyTypeMapper::getInstance($this->adapter);
532
            
504
            $records = $competencyTypeMapper->fetchAllByCompanyId($currentCompany->id);
533
            $competencyTypesUUID = [];
505
 
534
            foreach($records as $record)
506
            $competencyTypesUUID = [];
535
            {
507
            foreach ($records as $record) {
536
                array_push($data['competency_types'], [
508
                array_push($data['competency_types'], [
537
                    'competency_type_id' => $record->uuid,
509
                    'competency_type_id' => $record->uuid,
538
                    'name' => $record->name,
510
                    'name' => $record->name,
539
                ]);
511
                ]);
540
                
-
 
541
                $competencyTypesUUID[$record->id] = $record->uuid;
512
 
542
            }
513
                $competencyTypesUUID[$record->id] = $record->uuid;
543
            
514
            }
544
            $data['competencies'] = [];
515
 
545
            
516
            $data['competencies'] = [];
546
            
517
 
547
            $jobDescriptionCompetencyMapper = JobDescriptionCompetencyMapper::getInstance($this->adapter);
518
 
548
            
519
            $jobDescriptionCompetencyMapper = JobDescriptionCompetencyMapper::getInstance($this->adapter);
549
            $competencyMapper = CompetencyMapper::getInstance($this->adapter);
520
 
550
            $records = $competencyMapper->fetchAllActiveByCompanyId($currentCompany->id);
521
            $competencyMapper = CompetencyMapper::getInstance($this->adapter);
551
            
522
            $records = $competencyMapper->fetchAllActiveByCompanyId($currentCompany->id);
552
            
523
 
553
            foreach($records as $record)
524
 
554
            {
525
            foreach ($records as $record) {
555
                if(isset($competencyTypesUUID[ $record->competency_type_id ])) {
526
                if (isset($competencyTypesUUID[$record->competency_type_id])) {
556
                    
527
 
557
                    
528
 
558
                    $level = 0;
529
                    $level = 0;
559
                    $jobDescriptionCompetency = $jobDescriptionCompetencyMapper->fetchOneByJobDescriptionIdAndCompetencyId($jobDescription->id, $record->id);
530
                    $jobDescriptionCompetency = $jobDescriptionCompetencyMapper->fetchOneByJobDescriptionIdAndCompetencyId($jobDescription->id, $record->id);
560
                    if($jobDescriptionCompetency) {
531
                    if ($jobDescriptionCompetency) {
561
                        $level = $jobDescriptionCompetency->level;
532
                        $level = $jobDescriptionCompetency->level;
562
                    }
533
                    }
563
                    
534
 
564
                
535
 
565
                    array_push($data['competencies'], [
536
                    array_push($data['competencies'], [
566
                        'competency_type_id' => $competencyTypesUUID[$record->competency_type_id],
537
                        'competency_type_id' => $competencyTypesUUID[$record->competency_type_id],
567
                        'competency_id' => $record->uuid,
-
 
568
                        'name' => $record->name,
538
                        'competency_id' => $record->uuid,
569
                        'level' => $level
539
                        'name' => $record->name,
570
                    ]);
540
                        'level' => $level
571
                }
541
                    ]);
572
            }
542
                }
573
            
543
            }
574
            $data['jobs_description'] = [];
544
 
575
            
545
            $data['jobs_description'] = [];
576
            $jobsDescriptionUUID = [];
546
 
577
            $jobDescriptionMapper = JobDescriptionMapper::getInstance($this->adapter);
547
            $jobsDescriptionUUID = [];
578
            $records = $jobDescriptionMapper->fetchAllActiveByCompanyId($currentCompany->id);
548
            $jobDescriptionMapper = JobDescriptionMapper::getInstance($this->adapter);
579
            
549
            $records = $jobDescriptionMapper->fetchAllActiveByCompanyId($currentCompany->id);
580
            foreach($records as $record)
550
 
581
            {
551
            foreach ($records as $record) {
582
                if($record->id == $jobDescription->id) {
552
                if ($record->id == $jobDescription->id) {
583
                    continue;
553
                    continue;
584
                }
-
 
Línea -... Línea 554...
-
 
554
                }
585
                
555
 
586
                $jobsDescriptionUUID[ $record->id ] = $record->uuid;
-
 
587
                
556
                $jobsDescriptionUUID[$record->id] = $record->uuid;
588
                
557
 
589
                array_push($data['jobs_description'], [
558
 
590
                    'job_description_id' => $record->uuid,
559
                array_push($data['jobs_description'], [
591
                    'name' => $record->name
560
                    'job_description_id' => $record->uuid,
592
                ]);
561
                    'name' => $record->name
593
            }
562
                ]);
594
            
563
            }
595
            $data['subordinates'] = [];
564
 
Línea 596... Línea 565...
596
            $jobDescriptionSubordinateMapper = JobDescriptionSubordinateMapper::getInstance($this->adapter);
565
            $data['subordinates'] = [];
597
            $records = $jobDescriptionSubordinateMapper->fetchAllByJobDescriptionIdTopLevel($jobDescription->id);
566
            $jobDescriptionSubordinateMapper = JobDescriptionSubordinateMapper::getInstance($this->adapter);
598
            
567
            $records = $jobDescriptionSubordinateMapper->fetchAllByJobDescriptionIdTopLevel($jobDescription->id);
599
 
568
 
600
            foreach($records as $record)
569
 
601
            {
570
            foreach ($records as $record) {
602
                
571
 
603
                if(isset($jobsDescriptionUUID[$record->job_description_id_low_level])) {
572
                if (isset($jobsDescriptionUUID[$record->job_description_id_low_level])) {
604
                
573
 
605
                
574
 
606
                    array_push($data['subordinates'], $jobsDescriptionUUID[$record->job_description_id_low_level]);
575
                    array_push($data['subordinates'], $jobsDescriptionUUID[$record->job_description_id_low_level]);
607
                }
576
                }
608
            }
577
            }
609
            
578
 
610
            
579
 
611
 
580
 
612
            $response = [
581
            $response = [
613
                'success' => true,
582
                'success' => true,
614
                'data' => $data
583
                'data' => $data
615
            ];
-
 
616
            
584
            ];
617
            return new JsonModel($response);
585
 
618
        } else {
586
            return new JsonModel($response);
619
            $data = [
587
        } else {
620
                'success' => false,
588
            $data = [
621
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
589
                'success' => false,
622
            ];
590
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
623
            
591
            ];
624
            return new JsonModel($data);
592
 
625
        }
593
            return new JsonModel($data);
626
        
594
        }
627
        return new JsonModel($data);
595
 
628
    }
596
        return new JsonModel($data);
629
    
597
    }
630
    public function deleteAction()
598
 
631
    {
599
    public function deleteAction() {
632
        $currentUserPlugin = $this->plugin('currentUserPlugin');
600
        $currentUserPlugin = $this->plugin('currentUserPlugin');
633
        $currentUser = $currentUserPlugin->getUser();
601
        $currentUser = $currentUserPlugin->getUser();
634
        $currentCompany = $currentUserPlugin->getCompany();
602
        $currentCompany = $currentUserPlugin->getCompany();
635
        
603
 
636
        $request = $this->getRequest();
604
        $request = $this->getRequest();
637
        $uuid = $this->params()->fromRoute('id');
605
        $uuid = $this->params()->fromRoute('id');
638
        
606
 
639
        if(!$uuid) {
607
        if (!$uuid) {
640
            $data = [
608
            $data = [
641
                'success'   => false,
609
                'success' => false,
642
                'data'   => 'ERROR_INVALID_PARAMETER'
610
                'data' => 'ERROR_INVALID_PARAMETER'
643
            ];
611
            ];
644
            
612
 
645
            return new JsonModel($data);
613
            return new JsonModel($data);
646
        }
614
        }
647
        
615
 
648
                
616
 
649
        $jobDescriptionMapper = JobDescriptionMapper::getInstance($this->adapter);
617
        $jobDescriptionMapper = JobDescriptionMapper::getInstance($this->adapter);
650
        $jobDescription = $jobDescriptionMapper->fetchOneByUuid($uuid);
618
        $jobDescription = $jobDescriptionMapper->fetchOneByUuid($uuid);
651
        if(!$jobDescription) {
619
        if (!$jobDescription) {
Línea 652... Línea 620...
652
            $data = [
620
            $data = [
653
                'success'   => false,
621
                'success' => false,
654
                'data'   => 'ERROR_RECORD_NOT_FOUND'
622
                'data' => 'ERROR_RECORD_NOT_FOUND'
655
            ];
623
            ];
656
            
624
 
657
            return new JsonModel($data);
625
            return new JsonModel($data);
658
        }
626
        }
659
        
627
 
660
        if($jobDescription->company_id != $currentCompany->id) {
628
        if ($jobDescription->company_id != $currentCompany->id) {
661
            $data = [
629
            $data = [
662
                'success'   => false,
630
                'success' => false,
Línea 663... Línea 631...
663
                'data'   => 'ERROR_UNAUTHORIZED'
631
                'data' => 'ERROR_UNAUTHORIZED'
664
            ];
632
            ];
665
                
633
 
666
            return new JsonModel($data);
634
            return new JsonModel($data);
Línea 667... Línea 635...
667
        }
635
        }
668
 
636
 
669
        
-
 
670
        if($request->isPost()) {
637
 
671
            $result = $jobDescriptionMapper->delete($jobDescription);
638
        if ($request->isPost()) {
672
            if($result) {
639
            $result = $jobDescriptionMapper->delete($jobDescription);
673
                $this->logger->info('Se borro el cargo de trabajo ' . $jobDescription->name, ['user_id' => $currentUser->id, 'ip' => Functions::getUserIP()]);
640
            if ($result) {
674
                
641
                $this->logger->info('Se borro el cargo de trabajo ' . $jobDescription->name, ['user_id' => $currentUser->id, 'ip' => Functions::getUserIP()]);
675
                $data = [
642
 
676
                    'success' => true,
643
                $data = [
677
                    'data' => 'LABEL_RECORD_DELETED'
644
                    'success' => true,
678
                ];
645
                    'data' => 'LABEL_RECORD_DELETED'
679
            } else {
646
                ];
680
 
647
            } else {
Línea 681... Línea -...
681
                $data = [
-
 
682
                    'success'   => false,
648
 
683
                    'data'      => $jobDescriptionMapper->getError()
-
 
684
                ];
649
                $data = [
685
 
650
                    'success' => false,
686
                return new JsonModel($data);
651
                    'data' => $jobDescriptionMapper->getError()
687
            }
652
                ];
688
 
653
 
689
        } else {
654
                return new JsonModel($data);
Línea 690... Línea 655...
690
            $data = [
655
            }
691
                'success' => false,
656
        } else {
692
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
657
            $data = [
693
            ];
658
                'success' => false,
694
            
659
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
695
            return new JsonModel($data);
660
            ];
696
        }
661
 
697
        
662
            return new JsonModel($data);
698
        return new JsonModel($data);
663
        }
Línea 699... Línea 664...
699
    }
664
 
700
 
665
        return new JsonModel($data);
701
 
666
    }
702
    public function reportAction()
667
 
703
    {
668
    public function reportAction() {
704
        $currentUserPlugin = $this->plugin('currentUserPlugin');
669
        $currentUserPlugin = $this->plugin('currentUserPlugin');
705
        $currentUser = $currentUserPlugin->getUser();
670
        $currentUser = $currentUserPlugin->getUser();
706
        $currentCompany = $currentUserPlugin->getCompany();
671
        $currentCompany = $currentUserPlugin->getCompany();
707
        
672
 
708
        $request = $this->getRequest();
673
        $request = $this->getRequest();
709
        $uuid = $this->params()->fromRoute('id');
674
        $uuid = $this->params()->fromRoute('id');
710
 
675
 
711
        
676
 
712
        if(!$uuid) {
677
        if (!$uuid) {
713
            $data = [
678
            $data = [
714
                'success'   => false,
679
                'success' => false,
715
                'data'   => 'ERROR_INVALID_PARAMETER'
680
                'data' => 'ERROR_INVALID_PARAMETER'
716
            ];
681
            ];
717
            
682
 
Línea 718... Línea 683...
718
            return new JsonModel($data);
683
            return new JsonModel($data);
719
        }
684
        }
Línea 720... Línea 685...
720
 
685
 
721
        $jobDescriptionMapper = JobDescriptionMapper::getInstance($this->adapter);
-
 
722
        $jobDescription = $jobDescriptionMapper->fetchOneByUuid($uuid);
686
        $jobDescriptionMapper = JobDescriptionMapper::getInstance($this->adapter);
723
        if(!$jobDescription) {
687
        $jobDescription = $jobDescriptionMapper->fetchOneByUuid($uuid);
724
            $data = [
688
        if (!$jobDescription) {
725
                'success'   => false,
689
            $data = [
726
                'data'   => 'ERROR_RECORD_NOT_FOUND'
690
                'success' => false,
727
            ];
691
                'data' => 'ERROR_RECORD_NOT_FOUND'
728
            
692
            ];
729
            return new JsonModel($data);
693
 
730
        }
694
            return new JsonModel($data);
731
        
695
        }
732
        if($jobDescription->company_id != $currentCompany->id) {
696
 
733
            $data = [
-
 
Línea 734... Línea 697...
734
                'success'   => false,
697
        if ($jobDescription->company_id != $currentCompany->id) {
Línea 735... Línea 698...
735
                'data'   => 'ERROR_UNAUTHORIZED'
698
            $data = [
Línea 736... Línea 699...
736
            ];
699
                'success' => false,
737
                
700
                'data' => 'ERROR_UNAUTHORIZED'
Línea 738... Línea 701...
738
            return new JsonModel($data);
701
            ];
739
        }
702
 
Línea 740... Línea 703...
740
 
703
            return new JsonModel($data);
-
 
704
        }
-
 
705
 
-
 
706
 
-
 
707
        if ($request->isGet()) {
-
 
708
 
-
 
709
            return $this->renderPdf($jobDescription);
-
 
710
        } else {
-
 
711
            $data = [
-
 
712
                'success' => false,
-
 
713
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
-
 
714
            ];
-
 
715
 
-
 
716
            return new JsonModel($data);
-
 
717
        }
-
 
718
 
-
 
719
        return new JsonModel($data);
-
 
720
    }
-
 
721
 
-
 
722
    public function renderPDF($jobDescription) {
-
 
723
 
-
 
724
 
-
 
725
 
-
 
726
 
-
 
727
        //Generate New PDF
-
 
728
        $pdf = new JobPDF();
-
 
729
 
-
 
730
        $pdf->AliasNbPages();
-
 
731
        $pdf->AddPage();
-
 
732
 
-
 
733
        $header = array('Columna 1', 'Columna 2');
741
        
734
        
742
        if ($request->isGet()) {
735
        // Job Description Name
743
 
736
        
744
            return $this->renderPdf($jobDescription);
737
        $job_descrition[] = array(
745
        
738
                'title' => 'Categoría Laboral:',
746
        } else {
739
                'content' => $jobDescription->name
-
 
740
        );
-
 
741
                
-
 
742
        $pdf->singleTable('Nombre del puesto de trabajo', $job_descrition);
-
 
743
 
-
 
744
 
747
            $data = [
745
         //Hierarchical Relationship
748
                'success' => false,
746
        
749
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
747
        
750
            ];
748
        $jobDescriptionBoss = $jobDescriptionMapper->fetchOne($jobDescription->job_description_id_boss);
751
            
749
        
752
            return new JsonModel($data);
-
 
753
        }
750
        $data['subordinates'] = [];
754
        
-
 
755
        return new JsonModel($data);
751
        $jobDescriptionSubordinateMapper = JobDescriptionSubordinateMapper::getInstance($this->adapter);
756
    }
752
        $records = $jobDescriptionSubordinateMapper->fetchAllByJobDescriptionIdTopLevel($jobDescription->id);
-
 
753
 
-
 
754
 
-
 
755
        foreach ($records as $record) {
-
 
756
 
757
    
757
            if (isset($jobsDescriptionUUID[$record->job_description_id_low_level])) {
758
 
758
                array_push($data['subordinates'], $jobsDescriptionUUID[$record->job_description_id_low_level]);
-
 
759
            }
759
    public function renderPDF($jobDescription) {
760
        }
760
 
761
 
-
 
762
 
-
 
763
 
-
 
764
        $pdf->singleTable(
761
       
765
                'Relación jerárquica', [
762
 
766
            array(
Línea 763... Línea -...
763
 
-
 
Línea 764... Línea -...
764
        //Generate New PDF
-
 
765
        $pdf = new JobPDF();
-
 
766
 
-
 
767
        $pdf->AliasNbPages();
-
 
768
        $pdf->AddPage();
-
 
769
 
-
 
770
        $header=array('Columna 1','Columna 2');
-
 
Línea 771... Línea -...
771
        $pdf->singleTable(
-
 
Línea 772... Línea -...
772
            'Nombre del puesto de trabajo',[
-
 
773
            array(
-
 
774
                'title'=>'Categoría Laboral:',
-
 
775
                'content'=>$jobDescription->name
-
 
776
            )]);
-
 
777
 
-
 
778
            
-
 
779
 
-
 
Línea 780... Línea -...
780
            $pdf->singleTable(
-
 
Línea 781... Línea -...
781
                'Relación jerárquica',[
-
 
782
 
-
 
783
                array(
-
 
784
                    'title'=>'Depende a: ',
-
 
785
                    'content'=>$jobDescription->name
-
 
786
                ),
-
 
Línea 787... Línea 767...
787
                array(
767
                'title' => 'Depende a: ',
788
                    'title'=>'Supervisa a: ',
768
                'content' => $jobDescription->name
789
                    'content'=>$jobDescription->name
769
            ),
790
                )
770
            array(