Example #1
0
 public function createUserTransaction($registerRowData)
 {
     $userLocality = new Model_UserLocality();
     $aclModel = new Model_Acl();
     $registerUserData = $registerRowData['user'];
     $userLocalityRowData = $registerRowData['userLocality'];
     $roleRowData = $registerRowData['userRole'];
     // start transaction externo
     Zend_Registry::get('db')->beginTransaction();
     try {
         if (isset($roleRowData['role_id'])) {
             if (empty($roleRowData['role_id'])) {
                 $errorRole = array('status' => false, 'messageError' => 'Escolha o Perfil.');
                 throw new Vtx_UserException($errorRole['messageError']);
             }
             $roleRow = $aclModel->getRoleById($roleRowData['role_id']);
         }
         // 1.1 Insert Responsável pelo preenchimento - usuário do sistema
         if (isset($registerUserData['set_login_cpf']) and $registerUserData['set_login_cpf'] == '1') {
             $registerUserData['login'] = $registerUserData['cpf'];
         }
         $insertUser = $this->createUser($registerUserData);
         if (!$insertUser['status']) {
             throw new Vtx_UserException($insertUser['messageError']);
         }
         // 2.1 Insert Relação UserLocality
         if (isset($userLocalityRowData['regional_id'])) {
             if ($roleRow->getIsSystemAdmin() == 0) {
                 // verificar se a role não é isSystemAdmin()
                 if (empty($userLocalityRowData['regional_id'])) {
                     $errorRegional = array('status' => false, 'messageError' => 'Escolha a Regional.');
                     throw new Vtx_UserException($errorRegional['messageError']);
                 }
             } else {
                 $userLocalityRowData['regional_id'] = null;
             }
         }
         $registerUserLocalityData['user_id'] = $insertUser['lastInsertId'];
         $registerUserLocalityData['regional_id'] = $userLocalityRowData['regional_id'];
         $insertUserLocality = $userLocality->createUserLocality($registerUserLocalityData);
         if (!$insertUserLocality['status']) {
             throw new Vtx_UserException($insertUserLocality['messageError']);
         }
         // Envia email com login/senha para o novo usuário.
         if (APPLICATION_ENV != 'development') {
             if ($registerUserData['email'] != null && $registerUserData['email'] != '') {
                 $dataMail['email'] = $registerUserData['email'];
                 $dataMail['first_name'] = $registerUserData['first_name'];
                 $dataMail['login'] = $registerUserData['login'];
                 $dataMail['password'] = $registerUserData['keypass'];
                 $this->sendMailUser($dataMail, 'insert');
             }
         }
         // 3.1 Insert User Role
         $aclModel->setUserRole($insertUser['lastInsertId'], $roleRowData['role_id']);
         // 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());
     } catch (Exception $e) {
         Zend_Registry::get('db')->rollBack();
         throw new Exception($e);
     }
 }
Example #2
0
 public function createEnterpriseTransaction($ficha)
 {
     $AddressEnterprise = new Model_AddressEnterprise();
     $AddressPresident = new Model_AddressPresident();
     $President = new Model_President();
     $PresidentProgram = new Model_PresidentProgram();
     $User = new Model_User();
     $UserLocality = new Model_UserLocality();
     $Acl = new Model_Acl();
     $modelEntCatAwardCompetition = new Model_EnterpriseCategoryAwardCompetition();
     $modelLogCadastroEmpresa = new Model_LogCadastroEmpresa();
     //$Eligibility = new Model_Eligibility();
     // dados da Empresa
     $registerEnterpriseData = $ficha['enterprise'];
     $registerEnterpriseData['status'] = 'A';
     // dados endereço da Empresa
     $registerAddressEnterpriseData = $ficha['addressEnterprise'];
     // dados da presidente da Empresa
     $registerPresidentData = $ficha['president'];
     $registerPresidentData['gender'] = 'F';
     $registerPresidentData['created'] = date('Y-m-d');
     $registerPresidentData['hasnt_email'] = isset($ficha['enterprise']['hasnt_email']) ? $ficha['enterprise']['hasnt_email'] : 0;
     // dados endereço da Empresa
     $registerAddressPresidentData = $ficha['addressPresident'];
     // dados do program do presidente da Empresa
     $registerPresidentProgramData = isset($ficha['presidentProgram']) ? $ficha['presidentProgram'] : null;
     // dados do usuário
     $registerUserData = $ficha['user'];
     $registerUserData['login'] = $registerPresidentData['cpf'];
     $registerUserData['first_name'] = $registerPresidentData['name'];
     $registerUserData['surname'] = isset($registerPresidentData['nick_name']) ? $registerPresidentData['nick_name'] : null;
     $registerUserData['email'] = $registerPresidentData['email'];
     $registerUserData['status'] = 'A';
     $registerLogCadastro = isset($ficha['log_cadastro_empresa']) ? $ficha['log_cadastro_empresa'] : false;
     // start transaction externo
     Zend_Registry::get('db')->beginTransaction();
     try {
         $enterpriseEmail = isset($ficha['enterprise']['email_default']) ? $ficha['enterprise']['email_default'] : '';
         $hasntEmail = isset($ficha['enterprise']['hasnt_email']) ? $ficha['enterprise']['hasnt_email'] : 0;
         $this->validateEmail(NULL, $enterpriseEmail, $hasntEmail);
         $this->validateLandline($ficha['enterprise']['phone']);
         // Validação Categoria do Premio
         $insertCategoryAward = $this->validCategoryAward($registerEnterpriseData);
         if (!$insertCategoryAward['status']) {
             throw new Vtx_UserException($insertCategoryAward['messageError'], 10);
         }
         // 1.1 Insert Empresa
         $insertEnterprise = $this->createEnterprise($registerEnterpriseData);
         if (!$insertEnterprise['status']) {
             throw new Vtx_UserException($insertEnterprise['messageError'], 10);
         }
         // elegibilidade para questionario de diagnostico
         //$Eligibility->doDiagnosticoEligibility($insertEnterprise['row']);
         // 1.2 Insert Endereço da Empresa
         $registerAddressEnterpriseData['enterprise_id'] = $insertEnterprise['lastInsertId'];
         $insertAddressEnterprise = $AddressEnterprise->createAddressEnterprise($registerAddressEnterpriseData);
         if (!$insertAddressEnterprise['status']) {
             throw new Vtx_UserException($insertAddressEnterprise['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 Insert Presidente da Empresa
         $registerPresidentData['enterprise_id'] = $insertEnterprise['lastInsertId'];
         $insertPresident = $President->createPresident($registerPresidentData);
         if (!$insertPresident['status']) {
             throw new Vtx_UserException($insertPresident['messageError']);
         }
         $registerECAC = array();
         $registerECAC['enterprise_id'] = $insertEnterprise['lastInsertId'];
         $registerECAC['competition_id'] = Zend_Registry::get('configDb')->competitionId;
         $registerECAC['category_award_id'] = $registerEnterpriseData['category_award_id'];
         $insertECAC = $modelEntCatAwardCompetition->createECAC($registerECAC);
         if (!$insertECAC['status']) {
             throw new Vtx_UserException($insertECAC['messageError']);
         }
         // 2.2 Insert Endereço da Presidente
         $registerAddressPresidentData['president_id'] = $insertPresident['lastInsertId'];
         $insertAddressPresident = $AddressPresident->createAddressPresident($registerAddressPresidentData);
         if (!$insertAddressPresident['status']) {
             throw new Vtx_UserException($insertAddressPresident['messageError']);
         }
         // 2.3 Programa do Presidente da Empresa
         if ($registerPresidentProgramData) {
             $presidentId = $insertPresident['lastInsertId'];
             $createPresidentProgram = $PresidentProgram->createPresidentProgramByPresidentId($registerPresidentProgramData, $presidentId);
             if (!$createPresidentProgram['status']) {
                 throw new Vtx_UserException($createPresidentProgram['messageError']);
             }
         }
         // 3.1 Insert Responsável pelo preenchimento - usuário do sistema
         if (isset($registerUserData['set_login_cpf']) and $registerUserData['set_login_cpf'] == '1') {
             $registerUserData['login'] = $registerUserData['cpf'];
         }
         $insertUser = $User->createUser($registerUserData);
         if (!$insertUser['status']) {
             throw new Vtx_UserException($insertUser['messageError']);
         }
         // 4.1 Insert Relação UserLocality
         $registerUserLocalityData['user_id'] = $insertUser['lastInsertId'];
         $registerUserLocalityData['enterprise_id'] = $insertEnterprise['lastInsertId'];
         $insertUserLocality = $UserLocality->createUserLocality($registerUserLocalityData);
         if (!$insertUserLocality['status']) {
             throw new Vtx_UserException($insertUserLocality['messageError']);
         }
         $enterpriseEmail = isset($registerEnterpriseData['email_default']) ? $registerEnterpriseData['email_default'] : '';
         $presidentEmail = isset($registerPresidentData['email']) ? $registerPresidentData['email'] : '';
         if ($enterpriseEmail != '') {
             // Envia email com login/senha pro responsavel pelo cadastro
             $this->sendMail($enterpriseEmail, $registerUserData['first_name'], $insertEnterprise['lastInsertId']);
             if ($enterpriseEmail != $presidentEmail) {
                 $this->sendMail($presidentEmail, $registerPresidentData['name'], $insertEnterprise['lastInsertId']);
             }
         }
         // 5.1 Insert User Role
         $Acl->setUserRole($insertUser['lastInsertId'], Zend_Registry::get('config')->acl->roleEnterpriseId);
         // 6.1 Log Cadastro da Empresa
         if (!$registerLogCadastro) {
             $registerLogCadastro['user_id_log'] = $insertUser['lastInsertId'];
         }
         $logCadastroEmpresa['user_id_log'] = $registerLogCadastro['user_id_log'];
         $logCadastroEmpresa['enterprise_id'] = $insertEnterprise['lastInsertId'];
         $logCadastroEmpresa['programa_id'] = Zend_Registry::get('configDb')->competitionId;
         $logCadastroEmpresa['acao'] = 'aceite';
         $insertlogCadastroEmpresa = $modelLogCadastroEmpresa->createLogCadastroEmpresa($logCadastroEmpresa);
         if (!$insertlogCadastroEmpresa['status']) {
             throw new Vtx_UserException($insertlogCadastroEmpresa['messageError']);
         }
         // end transaction externo
         Zend_Registry::get('db')->commit();
         return array('status' => true, 'lastInsertIdKey' => $insertEnterprise['lastInsertIdKey']);
         //throw new Vtx_UserException("Chegou aqui - gravacao ate o fim codigo");
     } 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);
     }
 }