public function updateEnterpriseTransaction($ficha, $enterpriseRow, $addressEnterpriseRow, $presidentRow, $addressPresidentRow, $userRow) { $User = new Model_User(); $President = new Model_President(); $PresidentProgram = new Model_PresidentProgram(); //$Eligibility = new Model_Eligibility(); $AddressEnterprise = new Model_AddressEnterprise(); $AddressPresident = new Model_AddressPresident(); $modelEntCatAwardCompetition = new Model_EnterpriseCategoryAwardCompetition(); $modelLogCadastroEmpresa = new Model_LogCadastroEmpresa(); // dados Empresa $registerEnterpriseData = $ficha['enterprise']; // dados endereço da empresa $registerAddressEnterpriseData = $ficha['addressEnterprise']; $registerAddressPresidentData = $ficha['addressPresident']; $registerAddressEnterpriseData['enterprise_id'] = $enterpriseRow->getId(); $registerAddressPresidentData['president_id'] = $presidentRow->getId(); // dados do presidente da empresa $registerPresidentData = $ficha['president']; $registerPresidentData['enterprise_id'] = $enterpriseRow->getId(); $registerPresidentData['hasnt_email'] = isset($ficha['enterprise']['hasnt_email']) ? $ficha['enterprise']['hasnt_email'] : 0; // dados do programa do presidente da empresa $registerPresidentProgramData = isset($ficha['presidentProgram']) ? $ficha['presidentProgram'] : null; // dados do usuário $registerUserData = isset($ficha['user']) ? $ficha['user'] : array(); $registerUserData['first_name'] = $registerPresidentData['name']; $registerUserData['surname'] = $registerPresidentData['nick_name']; $registerUserData['email'] = $registerPresidentData['email']; $registerUserData['login'] = $registerPresidentData['cpf']; $registerLogCadastro = $ficha['log_empresa']; $presidentId = $presidentRow->getId(); // start transaction externo Zend_Registry::get('db')->beginTransaction(); try { $hasntEmail = $registerPresidentData['hasnt_email']; $enterpriseEmail = isset($ficha['enterprise']['email_default']) ? $ficha['enterprise']['email_default'] : ''; $this->validateEmail($enterpriseRow->getId(), $enterpriseEmail, $hasntEmail); $this->validateLandline($ficha['enterprise']['phone']); $programaId = Zend_Registry::get('configDb')->competitionId; // Validação Categoria do Premio $updateCategoryAward = $this->validCategoryAward($registerEnterpriseData); if (!$updateCategoryAward['status']) { throw new Vtx_UserException($updateCategoryAward['messageError'], 10); } // 1.1 Empresa $updateEnterprise = $this->updateEnterprise($enterpriseRow, $registerEnterpriseData); if (!$updateEnterprise['status']) { throw new Vtx_UserException($updateEnterprise['messageError'], 10); } // elegibilidade para questionario de diagnostico //$Eligibility->doDiagnosticoEligibility($updateEnterprise['row']); // 1.2 Endereço da Empresa $updateAddressEnterprise = $AddressEnterprise->updateAddressEnterprise($addressEnterpriseRow, $registerAddressEnterpriseData); if (!$updateAddressEnterprise['status']) { throw new Vtx_UserException($updateAddressEnterprise['messageError'], 10); } // validação dos campos NewsLetter da Candidata (President) $newsLetterValid = $President->isValidNewsletter($ficha['newsletter'], $registerPresidentData); if (!$newsLetterValid['status']) { throw new Vtx_UserException($newsLetterValid['messageError']); } // 2.1 Presidente da Empresa $registerPresidentData['agree'] = $presidentRow->getAgree(); $updatePresident = $President->updatePresident($presidentRow, $registerPresidentData); if (!$updatePresident['status']) { throw new Vtx_UserException($updatePresident['messageError']); } // 2.2 Endereço da Presidente (candidata) $updateAddressPresident = $AddressPresident->updateAddressPresident($addressPresidentRow, $registerAddressPresidentData); if (!$updateAddressPresident['status']) { throw new Vtx_UserException($updateAddressPresident['messageError']); } // 2.3 Programa do Presidente da Empresa if ($registerPresidentProgramData) { $PresidentProgram->deleteAllPresidentProgramByPresidentId($presidentId); $createPresidentProgram = $PresidentProgram->createPresidentProgramByPresidentId($registerPresidentProgramData, $presidentId); if (!$createPresidentProgram['status']) { throw new Vtx_UserException($createPresidentProgram['messageError']); } } $enterpriseId = $enterpriseRow->getId(); $hasCurrentECAC = $modelEntCatAwardCompetition->hasECAC($enterpriseId, $programaId); if (!$hasCurrentECAC) { $registerECAC = array(); $registerECAC['enterprise_id'] = $enterpriseId; $registerECAC['competition_id'] = $programaId; $registerECAC['category_award_id'] = $registerEnterpriseData['category_award_id']; $insertECAC = $modelEntCatAwardCompetition->createECAC($registerECAC); if (!$insertECAC['status']) { throw new Vtx_UserException($insertECAC['messageError']); } // Log Cadastro da Empresa - ACEITE $logCadastroEmpresa['user_id_log'] = $registerLogCadastro['user_id_log']; $logCadastroEmpresa['enterprise_id'] = $enterpriseId; $logCadastroEmpresa['programa_id'] = $programaId; $logCadastroEmpresa['acao'] = 'aceite'; $insertlogCadastroEmpresa = $modelLogCadastroEmpresa->createLogCadastroEmpresa($logCadastroEmpresa); if (!$insertlogCadastroEmpresa['status']) { throw new Vtx_UserException($insertlogCadastroEmpresa['messageError']); } } // 3.1 Usuário (nome + sobrenome) $updateUser = $User->updateUser($userRow, $registerUserData); if (!$updateUser['status']) { throw new Vtx_UserException($updateUser['messageError']); } // Envia email com login/senha pro responsavel pelo cadastro $pass = isset($registerUserData['keypass']) ? $registerUserData['keypass'] : null; $enterpriseEmail = $registerEnterpriseData['email_default']; $presidentEmail = $registerPresidentData['email']; if ($enterpriseEmail != '') { $this->sendMailEdit($enterpriseEmail, $registerUserData['first_name'], $registerUserData['login'], $pass, $enterpriseId); if ($enterpriseEmail != $presidentEmail) { $this->sendMailEdit($presidentEmail, $registerPresidentData['name'], $registerPresidentData['cpf'], $pass, $enterpriseId); } } // Log Cadastro da Empresa - EDICAO CADASTRO $logCadastroEmpresa['user_id_log'] = $registerLogCadastro['user_id_log']; $logCadastroEmpresa['enterprise_id'] = $enterpriseId; $logCadastroEmpresa['programa_id'] = $programaId; $logCadastroEmpresa['acao'] = 'edicao_cadastro'; $insertlogCadastroEmpresaCad = $modelLogCadastroEmpresa->createLogCadastroEmpresa($logCadastroEmpresa); if (!$insertlogCadastroEmpresaCad['status']) { throw new Vtx_UserException($insertlogCadastroEmpresaCad['messageError']); } // update // end transaction externo Zend_Registry::get('db')->commit(); return array('status' => true); } catch (Vtx_UserException $e) { Zend_Registry::get('db')->rollBack(); return array('status' => false, 'messageError' => $e->getMessage(), 'errorCode' => $e->getCode()); } catch (Exception $e) { Zend_Registry::get('db')->rollBack(); throw new Exception($e); } }
public function verificacaoAction() { $seconds = 360; //3 minutos set_time_limit($seconds); $limit = $this->_getParam('limit'); $enterpriseProgramaIdMaiorQue = $this->_getParam('maiorque'); //mpe9 / mpe9 if (isset($limit) && isset($enterpriseProgramaIdMaiorQue)) { /**************************************************************/ //Ex: http://site-ambiente/questionnaire/devolutive/index/?limit=10&maiorque=96 $QUEM_FARA_PROCESSAMENTO = "Pontuacao_Em_Massa"; //Devolutiva_Em_Massa $this->Devolutive->setStartProcessamentoEmMassa(true); //execucao em massa de geracao devolutiva $this->cligrava($limit, $enterpriseProgramaIdMaiorQue, $QUEM_FARA_PROCESSAMENTO); exit; } /*if (!$this->getRequest()->isPost()) { return; } * */ $this->questionnaire_id = $this->_getParam('qstn'); if (!$this->questionnaire_id) { $this->questionnaire_id = $this->Questionnaire->getCurrentExecution()->getId(); } //////////////////////// // Calcula Pontuacao Caracteristica Empreendedora // $n = new Model_BlockEnterpreneurGrade(); // $QuestionnaireId=50; // $BlockId=60; // $UserId=2; // $CompetitionId = 2013; // $x = $n->execProcPontuacaoGrade($QuestionnaireId, $BlockId, $UserId, $CompetitionId ); // //$x = $n->getBlockById(105); // var_dump($x); // die; //////////////////////// $questionnaire_id = $this->questionnaire_id; //$user_id = Zend_Auth::getInstance()->getIdentity()->getUserId(); $user_id = $this->enterprise->getUserIdByIdKey($this->_getParam('enterprise-id-key')); //$user_id = $this->_getParam('enterprise-user'); $enterprise = $this->enterprise->getEnterpriseByUserId($user_id); $enterpriseId = $enterprise->getId(); //desabilita layout $this->_helper->layout()->disableLayout(); $this->_helper->viewRenderer->setNoRender(true); //recupera e valida questionario if (!$this->recuperaValidaQuestionario($questionnaire_id)) { $this->view->questionnaire_id = ""; throw new Exception($this->_messagesError['questionnaireNotExists']); return; } //relatoNotAnswered if (!$this->report->getCurrentEnterpriseReportByEnterpriseId($enterpriseId)) { $this->view->questionnaire_id = ""; $this->view->messageError = $this->_messagesError['relatoNotAnswered']; //echo 'relato nao respondido: '.$this->view->messageError; return; } //verifica se questoes foram respondidas if (!$this->verificaQuestoesRespondidas($questionnaire_id, $user_id)) { $this->view->questionnaire_id = ""; $this->view->messageError = $this->_messagesError['questionnaireNotFullyAnswered']; return; } //permissoes de acesso $userLogged = Zend_Auth::getInstance()->getIdentity(); $this->loggedUserId = $userLogged->getUserId(); $permissionEvaluationOfResponse = $this->Acl->isAllowed($userLogged->getRole(), 'management:questionnaire', 'evaluation-of-response'); //seta dados para objeto Devolutive $this->Devolutive->setDevolutiveId($this->devolutive_id); $this->Devolutive->setIsRA($permissionEvaluationOfResponse); $this->Devolutive->setQuestionnaireId($questionnaire_id); $this->Devolutive->setUserId($user_id); //ids dos blocos sao setados $this->validaBlocosQuestionario($questionnaire_id); $competitionId = Zend_Registry::get('configDb')->competitionId; //exec procedures $this->processaCaracteristicaEmpreendedora($questionnaire_id, $user_id, $this->Devolutive->getBlockIdEmpreendedorismo(), $competitionId); /** faz geracao e processamento do Protocolo Id da devolutiva **/ $geraProtocolo = $this->modelProtocolo->geracaoDoProtocolo($this->view, $this->Devolutive, $this->Execution, new Model_User(), $questionnaire_id, $user_id, $this->loggedUserId, $competitionId, $permissionEvaluationOfResponse); /** * model responsavel pelas regras negocio de geracao da devolutiva */ $devolutiveAlreadyExists = $this->Devolutive->devolutivaJaExiste(); $devolutivePath = $this->Devolutive->makePdfDevolutive(); if ($geraProtocolo) { //se protocolo foi gerado //grava caminho da devolutiva gerada na tabela de protocolo devolutiva $this->modelProtocolo->updateDevolutivaPath($devolutivePath, $this->Devolutive->getProtocoloIdDevolutiva()); } //valores default para Pontuacao $this->Devolutive->configuraGravaPontuacaoExecution($user_id); //recupera pontuacao e processa pontuacao $this->Devolutive->processaPontuacaoBlocosDeUmQuestionario(); if (!$devolutiveAlreadyExists) { $pdf = new Report_Devolutive_PDF($this->Devolutive, APPLICATION_PATH . '/../htdocs' . $devolutivePath); $pdf->saveToFile(); } if ($devolutivePath and $geraProtocolo) { $modelLogCadastroEmpresa = new Model_LogCadastroEmpresa(); // Insere LOG de quem gerou o PDF. $modelLogCadastroEmpresa->createLogDevolutiva($this->loggedUserId, $enterpriseId); } //informa url onde o pdf da devolutiva foi gravado if ($devolutivePath) { $this->view->itemSuccess = true; $this->view->devolutive = $devolutivePath; //link para regerar a devolutive $this->view->regerar_devolutive = $this->view->baseUrl('questionnaire/respond') . "/index/geraDevolutiva/1/regerar/1/enterprise-id-key/" . $this->_getParam('enterprise-id-key'); $this->view->permissaoCadastrar = $this->Acl->isAllowed($this->auth->getIdentity()->getRole(), 'management:enterprise', 'cadastro'); return; } $this->view->messageError = 'Náo foi possível a geração da devolutiva.'; }
public function editAction() { $Acl = Zend_Registry::get('acl'); $auth = Zend_Auth::getInstance(); $User = new Model_User(); $President = new Model_President(); $PresidentProgram = new Model_PresidentProgram(); $modelLogCadastroEmpresa = new Model_LogCadastroEmpresa(); $UserLocality = new Model_UserLocality(); $AddressEnterprise = new Model_AddressEnterprise(); $AddressPresident = new Model_AddressPresident(); $this->_helper->viewRenderer->setRender('index'); $this->view->editStatus = false; $this->view->editByAdmin = false; if ($this->_getParam('id_key') and ($Acl->isAllowed($this->userLogged->getRole(), 'questionnaire:register', 'publisher') or $Acl->isAllowed($this->userLogged->getRole(), 'questionnaire:register', 'acompanhacadastro'))) { $enterpriseIdKey = $this->_getParam('id_key'); $enterpriseRow = $this->Enterprise->getEnterpriseByIdKey($enterpriseIdKey); $userLocalityGetEnterprise = $UserLocality->getUserLocalityByEnterpriseId($enterpriseRow->getId()); if (!$userLocalityGetEnterprise) { throw new Exception('Nenhum usuário relacionado nesta empresa.'); } $this->view->editStatus = true; $this->view->enterpriseIdKey = $enterpriseIdKey; $userId = $userLocalityGetEnterprise->getUserId(); $this->view->editByAdmin = true; } else { $userId = $this->userLogged->getUserId(); } $userRow = $User->getUserById($userId); $userLocalityRow = $UserLocality->getUserLocalityByUserId($userRow->getId()); $enterpriseRow = $this->Enterprise->getEnterpriseById($userLocalityRow->getEnterpriseId()); $presidentRow = $President->getPresidentByEnterpriseId($enterpriseRow->getId()); $addressPresidentRow = $AddressPresident->getAddressPresidentByPresidentId($presidentRow->getId()); $presidentProgramRow = $PresidentProgram->getAllPresidentProgramByPresidentId($presidentRow->getId()); $addressEnterpriseRow = $AddressEnterprise->getAddressEnterpriseByEnterpriseId($enterpriseRow->getId()); $logCadastradoPor = $modelLogCadastroEmpresa->getLogCadastroEmpresaByEnterpriseId($enterpriseRow->getId()); $cadastroNome = 'Site'; $cadastroCriadoEm = '00:00:00'; if ($logCadastradoPor) { if ($logCadastradoPor->getUserIdLog() != $userLocalityRow->getUserId()) { $cadastroNome = $User->getUserById($logCadastradoPor->getUserIdLog())->getFirstName(); } $cadastroCriadoEm = $logCadastradoPor->getCriadoEm(); } $this->view->logCadastroEmpresa = array('NomeCadastro' => $cadastroNome, 'CriadoEm' => $cadastroCriadoEm); if (!$enterpriseRow || !$presidentRow) { throw new Exception('Usuário inválido, não encontrado.'); } $this->view->userIdview = $userId; $this->view->enterpriseIdview = $enterpriseRow->getId(); // $modelQuest = new Model_Questionnaire(); // // $arrTerminoEtapas = $modelQuest->terminoEtapas($enterpriseRow, $userId); // // var_dump($arrTerminoEtapas); $this->view->getAllStates = $this->State->getAll(); if ($addressEnterpriseRow) { $this->view->getAllCities = $this->City->getAllCityByStateId($addressEnterpriseRow->getStateId()); //$this->view->getAllNeighborhoods = $this->Neighborhood->getAllNeighborhoodByCityId($addressEnterpriseRow->getCityId()); $this->view->getAllNeighborhoods = $addressEnterpriseRow->getCityId() ? $this->Neighborhood->getAllNeighborhoodByCityId($addressEnterpriseRow->getCityId()) : null; } if ($addressPresidentRow) { $this->view->getAllCitiesPresident = $this->City->getAllCityByStateId($addressPresidentRow->getStateId()); //$this->view->getAllNeighborhoodsPresident = $this->Neighborhood->getAllNeighborhoodByCityId($addressPresidentRow->getCityId()); $this->view->getAllNeighborhoodsPresident = $addressPresidentRow->getCityId() ? $this->Neighborhood->getAllNeighborhoodByCityId($addressPresidentRow->getCityId()) : null; } $this->view->getAllPositions = $this->Position->getAll(); $this->view->getAllEducations = $this->Education->getAll(); $this->view->getAllMetier = $this->Metier->getAll(); $this->view->getAllPresidentProgramType = $this->modelPresidentProgramType->getAll(); $this->view->hasECAC = $this->modelEnterpriseCategoryAwardCompetition->hasECAC($enterpriseRow->getId(), Zend_Registry::get('configDb')->competitionId); $hasntEmail = $enterpriseRow->getHasntEmail(); $hasntEmail = isset($hasntEmail) ? $hasntEmail : 1; $this->view->registerEnterpriseData = array('cnpj' => $enterpriseRow->getCnpj(), 'category_award_id' => $enterpriseRow->getCategoryAwardId(), 'category_sector_id' => $enterpriseRow->getCategorySectorId(), 'state_registration' => $enterpriseRow->getStateRegistration(), 'dap' => $enterpriseRow->getDap(), 'register_ministry_fisher' => $enterpriseRow->getRegisterMinistryFisher(), 'company_history' => $enterpriseRow->getCompanyHistory(), 'site' => $enterpriseRow->getSite(), 'status' => $enterpriseRow->getStatus(), 'social_name' => $enterpriseRow->getSocialName(), 'fantasy_name' => $enterpriseRow->getFantasyName(), 'creation_date' => $enterpriseRow->getCreationDate(), 'employees_quantity' => $enterpriseRow->getEmployeesQuantity(), 'phone' => $enterpriseRow->getPhone(), 'email_default' => $enterpriseRow->getEmailDefault(), 'annual_revenue' => $enterpriseRow->getAnnualRevenue(), 'cnae' => $enterpriseRow->getCnae(), 'nirf' => $enterpriseRow->getNirf(), 'farm_size' => $enterpriseRow->getFarmSize(), 'hasnt_email' => $hasntEmail); if ($addressEnterpriseRow) { $this->view->registerAddressEnterpriseData = array('cep' => $addressEnterpriseRow->getCep(), 'state_id' => $addressEnterpriseRow->getStateId(), 'city_id' => $addressEnterpriseRow->getCityId(), 'name_full_log' => $addressEnterpriseRow->getStreetNameFull(), 'street_number' => $addressEnterpriseRow->getStreetNumber(), 'street_completion' => $addressEnterpriseRow->getStreetCompletion(), 'neighborhood_id' => $addressEnterpriseRow->getNeighborhoodId()); } $this->view->registerPresidentData = array('enterprise_id' => $presidentRow->getEnterpriseId(), 'education_id' => $presidentRow->getEducationId(), 'position_id' => $presidentRow->getPositionId(), 'find_us_id' => $presidentRow->getFindUsId(), 'nick_name' => $presidentRow->getNickName(), 'cellphone' => $presidentRow->getCellphone(), 'newsletter_email' => $presidentRow->getNewsletterEmail(), 'newsletter_mail' => $presidentRow->getNewsletterMail(), 'newsletter_sms' => $presidentRow->getNewsletterSms(), 'agree' => $presidentRow->getAgree(), 'name' => $presidentRow->getName(), 'cpf' => $presidentRow->getCpf(), 'email' => $presidentRow->getEmail(), 'phone' => $presidentRow->getPhone(), 'born_date' => $presidentRow->getBornDate(), 'gender' => $presidentRow->getGender()); if ($addressPresidentRow) { $this->view->registerAddressPresidentData = array('cep' => $addressPresidentRow->getCep(), 'state_id' => $addressPresidentRow->getStateId(), 'city_id' => $addressPresidentRow->getCityId(), 'name_full_log' => $addressPresidentRow->getStreetNameFull(), 'street_number' => $addressPresidentRow->getStreetNumber(), 'street_completion' => $addressPresidentRow->getStreetCompletion(), 'neighborhood_id' => $addressPresidentRow->getNeighborhoodId()); } $this->view->registerPresidentProgramData = $presidentProgramRow; $this->view->registerUserData = array('first_name' => $userRow->getFirstName(), 'surname' => $userRow->getSurname(), 'password_hint' => $userRow->getPasswordHint()); $this->view->hasEligibility = $hasEligibility = $this->Enterprise->hasEligibilityRules($enterpriseRow->getIdKey()); if ($this->_getParam('forward', null) == true) { return; } if (!$this->getRequest()->isPost()) { return; } $ficha = $this->_getAllParams(); $ficha['log_empresa']['user_id_log'] = $this->userLogged->getUserId(); unset($this->view->editStatus); unset($this->view->getAllStates); unset($this->view->getAllCities); unset($this->view->getAllNeighborhoods); unset($this->view->getAllCitiesPresident); unset($this->view->getAllNeighborhoodsPresident); unset($this->view->getAllPositions); unset($this->view->getAllEducations); unset($this->view->getAllMetier); unset($this->view->getAllPresidentProgramType); unset($this->view->hasECAC); unset($this->view->registerEnterpriseData); unset($this->view->registerAddressEnterpriseData); unset($this->view->registerPresidentData); unset($this->view->registerAddressPresidentData); unset($this->view->registerPresidentProgramData); unset($this->view->registerUserData); unset($this->view->editByAdmin); // $this->view->registerData = $ficha; $updateEnterpriseTransaction = $this->Enterprise->updateEnterpriseTransaction($ficha, $enterpriseRow, $addressEnterpriseRow, $presidentRow, $addressPresidentRow, $userRow); if (!$updateEnterpriseTransaction['status']) { $this->view->messageError = $updateEnterpriseTransaction['messageError']; $this->view->errorCode = $updateEnterpriseTransaction['errorCode']; return; } $this->view->itemSuccess = true; $emailEnterprise = isset($ficha['enterprise']['email_default']) ? $ficha['enterprise']['email_default'] : ''; $socialName = $ficha['enterprise']['social_name']; $cnpj = $ficha['enterprise']['cnpj']; if ($this->view->itemSuccess && ($emailEnterprise == null || $emailEnterprise == '')) { $stateId = $ficha['addressEnterprise']['state_id']; $this->sendWhiteListMail($stateId, $socialName, $cnpj); } $hasEligibility = $this->Enterprise->hasEligibilityRules($enterpriseRow->getIdKey()); if ($Acl->isAllowed($auth->getIdentity()->getRole(), 'questionnaire:register', 'publisher')) { $this->view->loadUrlRegister = $this->view->baseUrl('/management/enterprise/success/itemEditSuccess/true/social_name/' . urlencode($ficha['enterprise']['social_name']) . '/enterpriseIdKey/' . $enterpriseIdKey . '/hasEligibility/' . $hasEligibility); return; } if ($Acl->isAllowed($auth->getIdentity()->getRole(), 'questionnaire:register', 'index')) { $this->view->loadUrlRegister = $this->view->baseUrl('/questionnaire/register/success/itemEditSuccess/true/hasEligibility/' . $hasEligibility); return; } }