/** * Adiciona permissões para o perfil */ public function setPerfilPerfisAction() { $iCodigoPerfil = $this->getRequest()->getParam('id'); $aPerfis = $this->getRequest()->getParam('perfilperfis'); $oPerfil = Administrativo_Model_Perfil::getById($iCodigoPerfil); $oPerfil->limparPerfis(); $aPerfilPerfis = array(); foreach ($aPerfis as $id => $sPerfil) { if ($sPerfil === 'on') { $aPerfilPerfis[] = Administrativo_Model_Perfil::getById($id); } } if ($aPerfilPerfis !== null) { $iCodigoPerfil = $oPerfil->getId(); $oPerfil->adicionaPerfis($aPerfilPerfis); } $this->_helper->getHelper('FlashMessenger')->addMessage(array('notice' => 'Permissões para perfis modificadas para o Perfil.')); $this->_redirector->gotoSimple('editar', 'perfil', 'administrativo', array('id' => $oPerfil->getId())); }
/** * Seta os dados para gravar a entidade * @param array $aDados dados para definir os dados da entidade */ public function setDadosEventual(array $aDados) { $oFiltro = new Zend_Filter_Digits(); if (!empty($aDados['id_perfil'])) { $this->setPerfil(Administrativo_Model_Perfil::getById($aDados['id_perfil'])); } if (!empty($aDados['cnpjcpf'])) { $this->setCpfcnpj($oFiltro->filter($aDados['cnpjcpf'])); } if (!empty($aDados['nome'])) { $this->setNome($aDados['nome']); } if (!empty($aDados['nome_fantasia'])) { $this->setNomeFantasia($aDados['nome_fantasia']); } if (!empty($aDados['cep'])) { $this->setCep($oFiltro->filter($aDados['cep'])); } if (!empty($aDados['estado'])) { $this->setEstado($aDados['estado']); } if (!empty($aDados['cidade'])) { $this->setCidade($aDados['cidade']); } if (!empty($aDados['bairro'])) { $this->setBairro($aDados['bairro']); } if (!empty($aDados['cod_bairro'])) { $this->setCodBairro($aDados['cod_bairro']); } if (!empty($aDados['endereco'])) { $this->setEndereco($aDados['endereco']); } if (!empty($aDados['cod_endereco'])) { $this->setCodEndereco($aDados['cod_endereco']); } if (!empty($aDados['numero'])) { $this->setNumero($aDados['numero']); } if (!empty($aDados['complemento'])) { $this->setComplemento($aDados['complemento']); } if (!empty($aDados['telefone'])) { $this->setTelefone($oFiltro->filter($aDados['telefone'])); } if (!empty($aDados['email'])) { $this->setEmail($aDados['email']); } if (!empty($aDados['hash'])) { $this->setHash($aDados['hash']); } if (!empty($aDados['tipo_liberacao'])) { $this->setTipoLiberacao($aDados['tipo_liberacao']); } if (!empty($aDados['data_cadastro'])) { $this->setDataCadastro($aDados['data_cadastro']); } else { $this->setDataCadastro(new DateTime()); } return true; }
/** * Trata os dados do formulário para serem salvos no banco de dados * * @param array $aDados * @return $this|bool */ public function persist(array $aDados = NULL) { if (!is_array($aDados)) { return self::persistUsuario(); } if (empty($aDados['senha'])) { unset($aDados['senha']); } $aValidaDados = $this->isValid($aDados); if ($aValidaDados['valid']) { // seta atributos para serem salvos no banco, habilitado sempre inicia como true if (isset($aDados['nome'])) { $this->entity->setNome($aDados['nome']); } if (isset($aDados['fone'])) { $this->entity->setTelefone(DBSeller_Helper_Number_Format::getNumbers($aDados['fone'])); } if (isset($aDados['login'])) { $this->entity->setLogin($aDados['login']); } if (isset($aDados['senha'])) { $this->entity->setSenha($aDados['senha']); } if (isset($aDados['email'])) { $this->entity->setEmail($aDados['email']); } if (isset($aDados['habilitado'])) { $this->entity->setHabilitado(true); } if (isset($aDados['administrativo'])) { $this->entity->setAdministrativo($aDados['administrativo']); } if (isset($aDados['tipo'])) { $this->entity->setTipo($aDados['tipo']); } if (isset($aDados['cgm'])) { $this->entity->setCgm(DBSeller_Helper_Number_Format::getNumbers($aDados['cgm'])); } if (isset($aDados['cnpj'])) { $this->entity->setCnpj(DBSeller_Helper_Number_Format::getNumbers($aDados['cnpj'])); } if (isset($aDados['perfil'])) { if (is_numeric($aDados['perfil'])) { $aDados['perfil'] = Administrativo_Model_Perfil::getById($aDados['perfil'])->getEntity(); } $this->entity->setPerfil($aDados['perfil']); } if ($this->getId() === NULL) { // Verifica se o tipo de usuário é Contador e e se for vincula as empresas enviadas pelo e-cidade if ($this->getTipo() == Administrativo_Model_TipoUsuario::$CONTADOR) { $aEmpresas = Administrativo_Model_Empresa::getByCnpj($this->getCnpj()); // Vincula ações de contribuintes $this->vinculaEmpresas($aEmpresas); } // Verifica se o usuário é do tipo Contribuinte para vincular a empresa if ($this->getTipo() == Administrativo_Model_TipoUsuario::$CONTRIBUINTE) { $oEmpresa = Contribuinte_Model_Contribuinte::getByCpfCnpj($this->getCnpj()); $oUsuarioContribuinte = new Administrativo_Model_UsuarioContribuinte(); $oUsuarioContribuinte->setIm($oEmpresa->getInscricaoMunicipal()); $oUsuarioContribuinte->setCnpjCpf($oEmpresa->getCgcCpf()); $oUsuarioContribuinte->setUsuario($this->entity); $oUsuarioContribuinte->setHabilitado(true); // Verifica a inscrição municipal informada if (!empty($aDados['insc_municipal'])) { $oUsuarioContribuinte->setIm($aDados['insc_municipal']); } $this->addUsuarioContribuinte($oUsuarioContribuinte); // Salva os dados complementares do usuário contribuinte if ($oEmpresa instanceof Contribuinte_Model_Contribuinte) { self::salvarDadosComplementaresUsuarioContribuinte($oEmpresa->getInscricaoMunicipal()); } } // Vincula ações administrativas $aAcoes = $this->getPerfil()->getAcoes(); $aAcoesAdministrativas = array(); foreach ($aAcoes as $oAcao) { $aAcoesAdministrativas[] = $oAcao; } $this->adicionaAcoes($aAcoesAdministrativas); } $this->em->persist($this->entity); $this->em->flush(); return $this; } else { return $aValidaDados['errors']; } }
public static function atualizaTipoEmissao($aContribuintesAtualizar) { if (!is_array($aContribuintesAtualizar) && count($aContribuintesAtualizar) <= 0) { throw new Exception('Problemas ao atualizar tipo de emissão dos contribuintes!'); } foreach ($aContribuintesAtualizar as $aUsuarioContribuinteAtualizar) { $aUsuarioContribuinte = NULL; $iTipoEmissaoWeb = NULL; $iWebServiceUsuarioTipoEmissao = NULL; if ($aUsuarioContribuinteAtualizar == NULL) { throw new Exception('Problemas ao atualizar tipo de emissão dos contribuintes!'); } if (in_array('attr', get_class_methods($aUsuarioContribuinteAtualizar))) { $iTipoEmissaoWeb = $aUsuarioContribuinteAtualizar->attr('tipo_emissao'); $iWebServiceUsuarioTipoEmissao = !empty($iTipoEmissaoWeb) ? $iTipoEmissaoWeb : 9; $aUsuarioContribuintes = Administrativo_Model_UsuarioContribuinte::getByAttribute('cnpj_cpf', $aUsuarioContribuinteAtualizar->attr('cnpj')); $iCgm = $aUsuarioContribuinteAtualizar->attr('cgm'); } else { // quando o usuario é tomador que não tem inscrição os dados vem de outro metodo webservice if (empty($aUsuarioContribuinteAtualizar->cgccpf) || empty($aUsuarioContribuinteAtualizar->tipo_emissao)) { $aUsuarioContribuinteAtualizar->cgccpf = $aUsuarioContribuinteAtualizar->iCnpj; $aUsuarioContribuinteAtualizar->tipo_emissao = 9; //tipo emissao tomador $aUsuarioContribuinteAtualizar->numero_cgm = $aUsuarioContribuinteAtualizar->iCodigoCgm; } $iTipoEmissaoWeb = $aUsuarioContribuinteAtualizar->tipo_emissao; $iWebServiceUsuarioTipoEmissao = !empty($iTipoEmissaoWeb) ? $iTipoEmissaoWeb : 9; $aUsuarioContribuintes = Administrativo_Model_UsuarioContribuinte::getByAttribute('cnpj_cpf', $aUsuarioContribuinteAtualizar->cgccpf); $iCgm = $aUsuarioContribuinteAtualizar->numero_cgm; } if (!is_array($aUsuarioContribuintes)) { $aUsuarioContribuintes = array($aUsuarioContribuintes); } foreach ($aUsuarioContribuintes as $oContribuinte) { if (!$oContribuinte instanceof Administrativo_Model_UsuarioContribuinte) { continue; } if ($iTipoEmissaoWeb == $oContribuinte->getTipoEmissao()) { continue; } $aTiposEmissao = array(Contribuinte_Model_ContribuinteAbstract::TIPO_EMISSAO_DMS, Contribuinte_Model_ContribuinteAbstract::TIPO_EMISSAO_NOTA); $iTipoContribuinte = Administrativo_Model_UsuarioContribuinte::CONTRIBUINTE_MUNICIPAL; $iCgmAtualizar = NULL; if (!in_array($iWebServiceUsuarioTipoEmissao, $aTiposEmissao)) { $iTipoContribuinte = Administrativo_Model_UsuarioContribuinte::CONTRIBUINTE_EVENTUAL; $iCgmAtualizar = $iCgm; } $aDados = array('usuario' => $oContribuinte->getUsuario(), 'contribuinte' => $oContribuinte->getIm(), 'cnpj_cpf' => $oContribuinte->getCnpjCpf(), 'tipo_emissao' => $iWebServiceUsuarioTipoEmissao, 'tipo_contribuinte' => $iTipoContribuinte, 'cgm' => $iCgmAtualizar); $oContribuinte->persist($aDados); $oContribuinte->limparAcoes(TRUE); $oTipoEmissaoPerfil = $oContribuinte->getPerfilTipoEmissao($iWebServiceUsuarioTipoEmissao); $oPerfil = Administrativo_Model_Perfil::getById($oTipoEmissaoPerfil->iCodigoPerfil); $oContribuinte->adicionaAcoes($oPerfil->getAcoes()); } } }