コード例 #1
0
 /**
  * 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()));
 }
コード例 #2
0
 /**
  * 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;
 }
コード例 #3
0
 /**
  * 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'];
     }
 }
コード例 #4
0
 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());
         }
     }
 }