Proyectos de Subversion LeadersLinked - Backend

Rev

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

Rev 4754 Rev 4855
Línea 10... Línea 10...
10
use Laminas\Log\LoggerInterface;
10
use Laminas\Log\LoggerInterface;
11
use Laminas\View\Model\ViewModel;
11
use Laminas\View\Model\ViewModel;
12
use Laminas\View\Model\JsonModel;
12
use Laminas\View\Model\JsonModel;
13
use LeadersLinked\Mapper\SurveyMapper;
13
use LeadersLinked\Mapper\SurveyMapper;
14
use LeadersLinked\Mapper\SurveyFormMapper;
14
use LeadersLinked\Mapper\SurveyFormMapper;
-
 
15
use LeadersLinked\Model\Location;
-
 
16
use LeadersLinked\Mapper\LocationMapper;
-
 
17
use LeadersLinked\Mapper\IndustryMapper;
-
 
18
use LeadersLinked\Mapper\JobDescriptionMapper;
-
 
19
use LeadersLinked\Mapper\BehaviorMapper;
-
 
20
use LeadersLinked\Mapper\JobDescriptionBehaviorCompetencyMapper;
-
 
21
use LeadersLinked\Mapper\CompanyMapper;
-
 
22
use LeadersLinked\Mapper\ServiceMapper;
-
 
23
use LeadersLinked\Model\Company;
-
 
24
use LeadersLinked\Mapper\JobCategoryMapper;
-
 
25
 
15
use LeadersLinked\Form\SurveyForm;
26
use LeadersLinked\Form\SurveyForm;
16
use LeadersLinked\Model\Survey;
27
use LeadersLinked\Model\Survey;
17
use LeadersLinked\Hydrator\ObjectPropertyHydrator;
28
use LeadersLinked\Hydrator\ObjectPropertyHydrator;
Línea 18... Línea 29...
18
 
29
 
Línea 238... Línea 249...
238
        }
249
        }
Línea 239... Línea 250...
239
 
250
 
240
        return new JsonModel($data);
251
        return new JsonModel($data);
Línea -... Línea 252...
-
 
252
    }
-
 
253
 
-
 
254
    public function segmentedAction() {
-
 
255
        $request = $this->getRequest();
-
 
256
        $currentUserPlugin = $this->plugin('currentUserPlugin');
-
 
257
        $currentCompany = $currentUserPlugin->getCompany();
-
 
258
        $currentUser = $currentUserPlugin->getUser();
-
 
259
 
-
 
260
        $request = $this->getRequest();
-
 
261
        $uuid = $this->params()->fromRoute('id');
-
 
262
 
-
 
263
 
-
 
264
        if (!$uuid) {
-
 
265
            $data = [
-
 
266
                'success' => false,
-
 
267
                'data' => 'ERROR_INVALID_PARAMETER'
-
 
268
            ];
-
 
269
 
-
 
270
            return new JsonModel($data);
-
 
271
        }
-
 
272
 
-
 
273
        $surveyMapper = SurveyMapper::getInstance($this->adapter);
-
 
274
        $survey = $surveyMapper->fetchOneByUuid($uuid);
-
 
275
        if (!$survey) {
-
 
276
            $data = [
-
 
277
                'success' => false,
-
 
278
                'data' => 'ERROR_RECORD_NOT_FOUND'
-
 
279
            ];
-
 
280
 
-
 
281
            return new JsonModel($data);
-
 
282
        }
-
 
283
 
-
 
284
        if ($survey->company_id != $currentCompany->id) {
-
 
285
            return new JsonModel([
-
 
286
                'success' => false,
-
 
287
                'data' => 'ERROR_UNAUTHORIZED'
-
 
288
            ]);
-
 
289
        }
-
 
290
        if($request->isGet()){
-
 
291
            $location = new Location();
-
 
292
            $hydrator->hydrate($dataPost, $location);
-
 
293
            
-
 
294
            $locationMapper= LocationMapper::getInstance($this->adapter);
-
 
295
            $result = $locationMapper->insert($location);
-
 
296
 
-
 
297
            $survey = new Survey();
-
 
298
            $hydrator->hydrate($dataPost, $survey);
-
 
299
 
-
 
300
            $survey->location_id = $location->id;
-
 
301
            $survey->company_id = $currentCompany->id;
-
 
302
 
-
 
303
            $jobDescriptionMapper = JobDescriptionMapper::getInstance($this->adapter);
-
 
304
            $jobDescription = $jobDescriptionMapper->fetchAllByCompanyId($currentCompany->id);
-
 
305
            
-
 
306
            $jobCategoryMapper = JobCategoryMapper::getInstance($this->adapter);
-
 
307
            $jobCategory = $jobCategoryMapper->fetchAllByCompanyId($currentCompany->id);
-
 
308
            
-
 
309
            $industryMapper = IndustryMapper::getInstance($this->adapter);
-
 
310
            $industry = $industryMapper->fetchAllByCompanyId($currentCompany->id);
-
 
311
            
-
 
312
            $serviceMapper = ServiceMapper::getInstance($this->adapter);
-
 
313
            $service = $serviceMapper->fetchAllByCompanyId($currentCompany->id);
-
 
314
            
-
 
315
        } else if($request->isPost()){
-
 
316
            $form = new SurveyForm($this->adapter, $currentCompany->id);
-
 
317
            $dataPost = $request->getPost()->toArray();
-
 
318
            $form->setData($dataPost);
-
 
319
 
-
 
320
            if ($form->isValid()) {
-
 
321
                $dataPost = (array) $form->getData();
-
 
322
 
-
 
323
                $hydrator = new ObjectPropertyHydrator();
-
 
324
 
-
 
325
                $location = new Location();
-
 
326
                $hydrator->hydrate($dataPost, $location);
-
 
327
                
-
 
328
                $locationMapper= LocationMapper::getInstance($this->adapter);
-
 
329
                $resultLocation = $locationMapper->insert($location);
-
 
330
 
-
 
331
 
-
 
332
                if (!$resultLocation) {
-
 
333
                    return new JsonModel([
-
 
334
                        'success'   => false,
-
 
335
                        'data' => 'ERROR_THERE_WAS_AN_ERROR'                       
-
 
336
                    ]);
-
 
337
                }
-
 
338
 
-
 
339
                $jobDescription = new SurveyJobDescription();
-
 
340
                $jobCategory = new SurveyJobCategory();
-
 
341
                $industry = new SurveyIndustry();
-
 
342
                $service = new SurveyService();
-
 
343
                $hydrator->hydrate($dataPost, $vacancy);
-
 
344
 
-
 
345
                $jobDescriptionMapper = JobDescriptionMapper::getInstance($this->adapter);
-
 
346
                $jobDescription = $jobDescriptionMapper->fetchOneByUuid($dataPost['job_description_id']);
-
 
347
                $jobDescription->job_description_id = $jobDescription->id;
-
 
348
 
-
 
349
                $jobCategoryMapper = JobCategoryMapper::getInstance($this->adapter);
-
 
350
                $jobCategory = $jobCategoryMapper->fetchOneByUuid( $dataPost['job_category_id']);
-
 
351
                $jobCategory->job_category_id = $jobCategory->id;
-
 
352
 
-
 
353
                $industryMapper = IndustryMapper::getInstance($this->adapter);
-
 
354
                $industry = $industryMapper->fetchOneByUuid($dataPost['industry_id']);
-
 
355
                $industry->industry_id = $industry->id;
-
 
356
 
-
 
357
                $serviceMapper = ServiceMapper::getInstance($this->adapter);
-
 
358
                $service = $serviceMapper->fetchOneByUuid($dataPost['service_id']);
-
 
359
                $service->service_id = $service->id;
-
 
360
 
-
 
361
                $recruitmentSelectionVacancyMapper = RecruitmentSelectionVacancyMapper::getInstance($this->adapter);
-
 
362
 
-
 
363
                $result = $recruitmentSelectionVacancyMapper->insert($vacancy);
-
 
364
 
-
 
365
                if ($result) {
-
 
366
                    $this->logger->info('Se agrego el proceso de reclutamiento' . $vacancy->name, ['user_id' => $currentUser->id, 'ip' => Functions::getUserIP()]);
-
 
367
 
-
 
368
                    $data = [
-
 
369
                        'success' => true,
-
 
370
                        'data' => 'LABEL_RECORD_ADDED'
-
 
371
                    ];
-
 
372
 
-
 
373
                } else {
-
 
374
                    $data = [
-
 
375
                        'success' => false,
-
 
376
                        'data' => $recruitmentSelectionVacancyMapper->getError()
-
 
377
                    ];
-
 
378
                }
-
 
379
 
-
 
380
                return new JsonModel($data);
-
 
381
            } else {
-
 
382
                $messages = [];
-
 
383
                $form_messages = (array) $form->getMessages();
-
 
384
                foreach ($form_messages as $fieldname => $field_messages) {
-
 
385
 
-
 
386
                    $messages[$fieldname] = array_values($field_messages);
-
 
387
                }
-
 
388
 
-
 
389
                return new JsonModel([
-
 
390
                    'success' => false,
-
 
391
                    'data' => $messages
-
 
392
                ]);
-
 
393
            }
-
 
394
        } else {
-
 
395
            $data = [
-
 
396
                'success' => false,
-
 
397
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
-
 
398
            ];
-
 
399
 
-
 
400
            return new JsonModel($data);
-
 
401
        }
-
 
402
 
-
 
403
        return new JsonModel($data);
-
 
404
        
241
    }
405
    }
242
 
406
 
243
    public function editAction() {
407
    public function editAction() {
244
        $request = $this->getRequest();
408
        $request = $this->getRequest();
245
        $currentUserPlugin = $this->plugin('currentUserPlugin');
409
        $currentUserPlugin = $this->plugin('currentUserPlugin');