/** * @param object $oContribuinte * @param array $aDadosComuns * @param array $aDadosApuracaoMensal */ public function __construct($oContribuinte, array $aDadosComuns, array $aDadosApuracaoMensal) { $this->oContribuinte = Administrativo_Model_UsuarioContribuinte::getByAttribute('id', $oContribuinte->getContribuintes()); $this->carregaIdentificador($aDadosComuns[0], $aDadosApuracaoMensal[0]); $this->carregarDadosContas($aDadosComuns); $this->carregarDadosReceitas($aDadosApuracaoMensal); }
/** * Metodo inicial quando o usuairo for contribuinte */ public function contribuinteAction() { // Oculta breadcrumbs $this->view->oculta_breadcrumbs = TRUE; // Matar sessão quando acessado via menu if ($this->_getParam('alterar')) { $oSessao = new Zend_Session_Namespace('nfse'); $oSessao->contribuinte = NULL; $this->view->contribuinte = NULL; $this->_session->id = NULL; } if (!isset($this->_session->iUsuarioEscolhido) && $this->usuarioLogado->getPerfil()->getId() == 5) { $this->_redirector->gotoSimple('listar-cadastros', 'usuario-acesso', 'fiscal'); } // Verifica se a lista de contribuinte e diferente da lista vinculada ao usuario if ($this->view->user->getTipo() == Administrativo_Model_TipoUsuario::$CONTADOR) { $aContribuintes = Administrativo_Model_Empresa::getByCnpj(trim($this->view->user->getCnpj())); // atualiza a lista de contribuintes $this->view->user->atualizaListaContribuintes($aContribuintes); } else { $oContribuinte = $this->view->user->getUsuariosContribuintes(); $oContribuinte = $oContribuinte[0]; if ($oContribuinte->getIm()) { $aContribuintesInscricao = new Contribuinte_Model_Contribuinte(); $aContribuintes[] = $aContribuintesInscricao->getDadosContribuinteEcidade($oContribuinte->getIm()); } else { if ($oContribuinte->getCnpjCpf()) { $oContribuinteEventual = new Contribuinte_Model_ContribuinteEventual(); $aContribuintes[] = $oContribuinteEventual->getByCpfCnpjWebService($oContribuinte->getCnpjCpf()); } } } // atualiza o tipo de emissao e permissoes dos contribuintes Administrativo_Model_UsuarioContribuinte::atualizaTipoEmissao($aContribuintes); $aContribuintes = $this->view->user->getContribuintes(); $this->view->contribuintes = $aContribuintes; //carrega informativo do fiscal $oInformativo = Administrativo_Model_Informativo::getByAttribute('id', 1); //Verifica se retorna algo da coluna informativo if (!empty($oInformativo)) { $this->view->descricao = $oInformativo->getDescricao(); } if (count($this->view->contribuintes) == 1 && $this->_session->id == NULL) { $aContribuintes = each($this->view->contribuintes); $oContribuinte = $aContribuintes['value']; self::setContribuinte($oContribuinte); $this->_redirector->gotoSimple('contribuinte', 'index', 'contribuinte'); } // Reseta permissões new DBSeller_Acl_Setup(TRUE); }
/** * Processa o arquivo Webservice */ public function consultaDados($oParametros) { try { $sNomeTempArquivo = TEMP_PATH . "/ConsultarSituacaoLoteRps-" . time() . ".xml"; /* gravo o xml enviado */ $fp = fopen($sNomeTempArquivo, "w"); fwrite($fp, $oParametros); fclose($fp); /* carrega o arquivo em memoria para manipulação */ $oXml = simplexml_load_file($sNomeTempArquivo); $oRetorno = new StdClass(); $oRetorno->iNumeroLote = ''; $oRetorno->iSituacao = 1; $oParametrosArquivo = $oXml->ConsultarSituacaoLoteRpsEnvio; if (!$this->validarRequisicao($oParametrosArquivo)) { return $this->processaRetornoWebService($oRetorno); } /** * Busca usuário contribuinte pelo cnpj_cpf */ $oUsuarioContribuinte = Administrativo_Model_UsuarioContribuinte::getByAttribute('cnpj_cpf', $oParametrosArquivo->Prestador->Cnpj); if (empty($oUsuarioContribuinte)) { $this->adicionarInconsistencia('E45'); return $this->processaRetornoWebService($oRetorno); } $oProtocolo = Administrativo_Model_Protocolo::getByAttribute('protocolo', $oParametrosArquivo->Protocolo); if (!$oProtocolo) { // situação de não recebido $oRetorno->iNumeroLote = $oParametrosArquivo->Protocolo; $oRetorno->iSituacao = 1; return $this->processaRetornoWebService($oRetorno); } $oProtocoloImportacao = Contribuinte_Model_ProtocoloImportacao::getByAttribute('protocolo', $oProtocolo->getId()); if (!$oProtocoloImportacao->getImportacao()) { // situação de recebido mas processado com erro $oRetorno->iNumeroLote = $oProtocoloImportacao->getNumeroLote(); $oRetorno->iSituacao = 3; return $this->processaRetornoWebService($oRetorno); } // situação de recebido e processado com sucesso $oRetorno->iNumeroLote = $oProtocoloImportacao->getNumeroLote(); $oRetorno->iSituacao = 4; return $this->processaRetornoWebService($oRetorno); } catch (Exception $oErro) { return $oErro->getMessage(); } }
/** * Tela para o relatório evolutivo da arrecadação mês a mês por declarante por regime de competência */ public function consultaAction() { $oForm = new Fiscal_Form_RelatorioWebservice(); $this->view->form = $oForm; $this->view->headScript()->offsetSetFile(50, $this->view->baseUrl('/fiscal/js/relatorios/script-compartilhado.js')); if ($this->getRequest()->isPost()) { $aRetornoJson = array(); try { $aParametros = $this->getRequest()->getParams(); $iIdAcao = $aParametros['ambiente']; if ($aParametros['ambiente'] == 51) { $sAmbiente = 'Homologação'; } else { if ($aParametros['ambiente'] == 52) { $sAmbiente = 'Produção'; } } $aContribuinte = Administrativo_Model_UsuarioContribuinte::getContribuinteByAcao($iIdAcao); if (count($aContribuinte) == 0) { throw new Exception('Nenhum registro encontrado!'); } $oPdf = new Fiscal_Model_RelatorioWebservice(); $sNomeArquivo = 'contribuinte_webs_' . date('YmsdHis') . '.pdf'; $sCaminhoArquivo = TEMP_PATH . '/' . $sNomeArquivo; $oPdf->Open($sCaminhoArquivo); $oPdf->setAmbiente($sAmbiente); $oPdf->gerarPdf($aContribuinte, $sAmbiente); $oPdf->Output(); $aRetornoJson = array('status' => TRUE, 'url' => $this->view->baseUrl("/fiscal/relatorio-webservice/download/arquivo/{$sNomeArquivo}"), 'success' => $this->translate->_('Relatório gerado com sucesso.')); } catch (Exception $oErro) { $aRetornoJson['status'] = FALSE; $aRetornoJson['error'][] = $this->translate->_($oErro->getMessage()); } echo $this->getHelper('json')->sendJson($aRetornoJson); } }
/** * Prepara os dados para o cancelamento da nota * @param string $sParametroArquivo */ public function preparaDados($sParametroArquivo) { $this->oDadosXML = $this->validaXML($sParametroArquivo); /** * Verifica se existe inconsistencias */ if (count($this->aInconsistencias) == 0) { $sCnpj = (string) $this->oDadosXML->IdentificacaoNfse->Cnpj; $sNumero = (string) $this->oDadosXML->IdentificacaoNfse->Numero; $iInscricaoMunicipal = (string) $this->oDadosXML->IdentificacaoNfse->InscricaoMunicipal; $iNumero = (int) substr($sNumero, 4, 11); $aAtributosContriobuinte = array("cnpj_cpf" => $sCnpj, "im" => $iInscricaoMunicipal); $sAmbiente = Zend_Controller_Front::getInstance()->getRequest()->getActionName(); if (DBSeller_Plugin_Auth::checkPermissionWebservice($sCnpj, "webservice/{$sAmbiente}/recepcionar-lote-rps")) { $aContribuinte = Administrativo_Model_UsuarioContribuinte::getByAttributes($aAtributosContriobuinte); foreach ($aContribuinte as $oContribuinte) { $this->oContribuinte = $oContribuinte; } /** * Verifica se existe contribuinte com o CNPJ e Inscrição Municipal informado */ if (empty($this->oContribuinte)) { $this->adicionarInconsistencia('E44'); $this->adicionarInconsistencia('E50'); } else { $iIdContribuinte = $this->oContribuinte->getId(); $aAtributosNota = array("id_contribuinte" => $iIdContribuinte, "nota" => $iNumero); /** * Retornar a entidade do array de notas */ $aNotas = Contribuinte_Model_Nota::getByAttributes($aAtributosNota); foreach ($aNotas as $oNota) { $this->oNota = $oNota; } /** * Verifica se existe nota */ if (empty($this->oNota)) { $this->adicionarInconsistencia('E78'); } else { $bNotaCancelada = $this->oNota->getCancelada(); /** * Verifica se a nota já está cancelada */ if ($bNotaCancelada) { $this->adicionarInconsistencia('E79'); } } } } else { $this->adicionarInconsistencia('E157'); $this->adicionarInconsistencia('Usuário sem permissão!'); } } }
/** * Retorna a lista de id's dos usuarios contribuintes vinculados a mesmo * @return array */ public function getContribuintes() { if (count($this->aUsuariosContribuintes) == 0) { $aCamposPesquisa = array('cnpj_cpf' => $this->getCgcCpf()); $aUsuariosContribuintes = Administrativo_Model_UsuarioContribuinte::getByAttributes($aCamposPesquisa); foreach ($aUsuariosContribuintes as $oUsuarioContribuinte) { $this->aUsuariosContribuintes[] = $oUsuarioContribuinte->getId(); } } return $this->aUsuariosContribuintes; }
/** * @param integer $iIdContribuinte */ public static function consultaGuiasDesif($iIdContribuinte) { try { $oUsuarioContribuinte = Administrativo_Model_UsuarioContribuinte::getByAttribute('id', $iIdContribuinte); $em = parent::getEm(); $sDql = 'SELECT g FROM Contribuinte\\Guia g INNER JOIN Contribuinte\\DesifContaGuia d WITH g.id = d.guia'; $sDql .= ' WHERE g.id_contribuinte = :c AND g.tipo_documento_origem = :t'; $oQuery = $em->createQuery($sDql)->setParameters(array('t' => self::$DOCUMENTO_ORIGEM_NFSE, 'c' => $oUsuarioContribuinte->getEntity())); $aResultado = $oQuery->getResult(); $aGuias = array(); if ($aResultado != NULL) { foreach ($aResultado as $q) { $aGuias[] = new self($q); } } return $aGuias; } catch (Excpetion $oErro) { throw $oErro; } }
/** * Prepara os dados da guia a ser gerada * * @param Administrativo_Model_UsuarioContribuinte $oContribuinte * @param int $iAnoCompetencia * @param int $iMesCompetencia * @param array $aNotas * @param int $iIdGuia * @return object $oGuiaGerar */ public static function montaDadosGuia(Administrativo_Model_UsuarioContribuinte $oContribuinte, $iAnoCompetencia, $iMesCompetencia, $aNotas, $sDataPagamento, $iIdGuia) { $sData = DBSeller_Helper_Date_Date::invertDate($sDataPagamento); $oData = new DateTime($sData); $oGuiaGerar = new StdClass(); $oGuiaGerar->inscricao_municipal = $oContribuinte->getIm(); $oGuiaGerar->cpf_cnpj = $oContribuinte->getCnpjCpf(); $oGuiaGerar->numcgm = $oContribuinte->getCgm(); $oGuiaGerar->mes_competencia = $iMesCompetencia; $oGuiaGerar->ano_competencia = $iAnoCompetencia; $oGuiaGerar->codigo_guia = $iIdGuia; $aListaNotas = array(); foreach ($aNotas as $oDocumentoNota) { $oNota = new stdClass(); $oNota->numero_nota_fiscal = $oDocumentoNota->getNotaNumero(); $oNota->codigo_documento = $oDocumentoNota->getId(); $oNota->data_nota_fiscal = $oDocumentoNota->getNotaData()->format('Y-m-d'); $oNota->serie_nota_fiscal = $oDocumentoNota->getNotaSerie(); $oNota->valor_base_calculo = $oDocumentoNota->getServicoBaseCalculo(); $oNota->valor_deducao = $oDocumentoNota->getServicoValorDeducao(); $oNota->valor_imposto_retido = $oDocumentoNota->getServicoValorImposto(); $oNota->valor_servico_prestado = $oDocumentoNota->getServicoValorPagar(); $oNota->aliquota = $oDocumentoNota->getServicoAliquota(); $oNota->data_pagamento = $oData->format('Y-m-d'); $oNota->retido = $oDocumentoNota->getServicoImpostoRetido(); $oNota->situacao = $oDocumentoNota->getSituacaoDocumento() == 'N' ? '0' : '1'; $oNota->status = 1; $oNota->servico_prestado = urlencode($oDocumentoNota->getDescricaoServico()); // Serviços prestados if ($oDocumentoNota->getOperacao() == self::SERVICO_PRESTADO) { $oNota->cnpj_prestador = $oDocumentoNota->getPrestadorCpfCnpj(); $oNota->inscricao_prestador = $oDocumentoNota->getPrestadorInscricaoMunicipal(); $oNota->nome = urlencode($oDocumentoNota->getPrestadorRazaoSocial()); $oNota->operacao = 2; } else { $oNota->cnpj_prestador = $oDocumentoNota->getTomadorCpfCnpj(); $oNota->inscricao_prestador = $oDocumentoNota->getTomadorInscricaoMunicipal(); $oNota->nome = $oDocumentoNota->getTomadorRazaoSocial(); $oNota->operacao = 1; } // Limita para o tamanho do campo no ecidade if (strlen($oNota->nome) > 60) { $oNota->nome = substr($oNota->nome, 57) . '...'; } // Adiciona a nota na lista $aListaNotas[] = $oNota; } $oGuiaGerar->notas = $aListaNotas; return $oGuiaGerar; }
/** * Realiza a execução da pesquisa dos dados conforme arquivo de requisicao * * @param $sArquivo * @return string */ public function processar($sArquivo) { if (empty($sArquivo)) { $this->adicionarInconsistencia('E160'); } $sNomeTempArquivo = TEMP_PATH . "/ConsultarLoteRps-" . time() . ".xml"; /* gravo o xml enviado */ $fp = fopen($sNomeTempArquivo, "w"); fwrite($fp, $sArquivo); fclose($fp); $this->oRequisicao = simplexml_load_string($sArquivo); if (empty($this->oRequisicao)) { $this->adicionarInconsistencia('E160'); } if (!$this->validarRequisicao()) { return $this->escreverRetorno(); } $sCnpj = $this->oRequisicao->Prestador->Cnpj; $sNumeroProtocolo = $this->oRequisicao->Protocolo; $oUsuarioContribuinte = Administrativo_Model_UsuarioContribuinte::getByAttribute('cnpj_cpf', $sCnpj); if (empty($oUsuarioContribuinte)) { $this->adicionarInconsistencia('E45'); } $oProtocolo = Administrativo_Model_Protocolo::getByAttribute('protocolo', $sNumeroProtocolo); if (empty($oProtocolo)) { $this->adicionarInconsistencia('E86'); return $this->escreverRetorno(); } $oProtocoloImportacao = Contribuinte_Model_ProtocoloImportacao::getByAttribute('protocolo', $oProtocolo->getId()); if (!$oProtocoloImportacao->getImportacao()) { $this->adicionarInconsistencia('E86'); return $this->escreverRetorno(); } $this->aNotas = $oProtocoloImportacao->getNotasImportadas(); return $this->escreverRetorno(); }
/** * Informacoes da Dms filtrando por inscricao municipal, competencia e operacao. * * @param string|null $sCpfCnpj CPF/CNPJ do Contribuinte * @param integer $iMes Mês da competência * @param integer $iAno Ano da competência * @param string $sOperacao Tipo da Operacao Contribuinte_Model_Dms::SAIDA|Contribuinte_Model_Dms::ENTRADA * @return array * @throws Exception */ public static function getCompetenciaByCpfCnpj($sCpfCnpj = NULL, $iMes, $iAno, $sOperacao = self::SAIDA) { if ($sCpfCnpj == NULL) { throw new Exception('Parametro Cnpj/Cpf é obrigatório.'); } $aUsuariosContribuintes = Administrativo_Model_UsuarioContribuinte::getByAttribute('cnpj_cpf', $sCpfCnpj); if (!is_array($aUsuariosContribuintes)) { $aUsuariosContribuintes = array($aUsuariosContribuintes); } $aContribuintes = array(); foreach ($aUsuariosContribuintes as $oContribuinte) { $aContribuintes[] = $oContribuinte->getId(); } $sCampoPesquisa = array('id_contribuinte' => $aContribuintes, 'ano_comp' => $iAno, 'mes_comp' => $iMes, 'operacao' => $sOperacao); $sCamposOrdem = array('id' => 'DESC'); return self::getByAttributes($sCampoPesquisa, $sCamposOrdem); }
/** * Acition para para carregar o form de emissão de contas */ public function emitirContasAction() { $oContribuinte = $this->_session->contribuinte; $oUsuarioContribuinte = Administrativo_Model_UsuarioContribuinte::getByAttribute('id', $oContribuinte->getIdUsuarioContribuinte()); $aImportacaoDesif = Contribuinte_Model_ImportacaoDesif::getByAttribute('contribuinte', $oUsuarioContribuinte->getEntity()); if (!empty($aImportacaoDesif)) { if (is_array($aImportacaoDesif)) { foreach ($aImportacaoDesif as $oImportacaoDesif) { $aComp = array(); $aComp[] = substr($oImportacaoDesif->getCompetenciaInicial(), 0, 4); $aComp[] = substr($oImportacaoDesif->getCompetenciaInicial(), 4); $aCompetencias[$oImportacaoDesif->getId()] = implode("/", $aComp); } } else { $aComp = array(); $aComp[] = substr($aImportacaoDesif->getCompetenciaInicial(), 0, 4); $aComp[] = substr($aImportacaoDesif->getCompetenciaInicial(), 4); $aCompetencias[$aImportacaoDesif->getId()] = implode("/", $aComp); } $oForm = new Contribuinte_Form_EmitirContasDesif($aCompetencias); $this->view->oForm = $oForm; } }
/** * Geração do relatório de empresas omissas */ public function empresasOmissasGerarAction() { parent::noLayout(); $aValidacaoFormulario = self::validarFormulario(Fiscal_Form_Relatorio2::TIPO6); if (is_array($aValidacaoFormulario)) { exit($this->getHelper('json')->sendJson($aValidacaoFormulario)); } try { // Parâmetros do formulário $sOrdenacaoCampo = $this->getRequest()->getParam('ordenacao'); $sOrdenacaoDirecao = $this->getRequest()->getParam('ordem'); $sCompetenciaInicial = $this->getRequest()->getParam('data_competencia_inicial'); $sCompetenciaFinal = $this->getRequest()->getParam('data_competencia_final'); // Separa os meses e anos $iCompetenciaInicialMes = intval(substr($sCompetenciaInicial, 0, 2)); $iCompetenciaFinalMes = intval(substr($sCompetenciaFinal, 0, 2)); $iCompetenciaInicialAno = intval(substr($sCompetenciaInicial, -4)); $iCompetenciaFinalAno = intval(substr($sCompetenciaFinal, -4)); $sNomeArquivo = 'relatorio_empresas_omissas_' . date('YmdHis') . '.pdf'; $aDescricaoFiltros = array('inscricao_municipal' => 'Inscrição Municipal', 'nome' => 'Nome', 'asc' => 'Crescente', 'desc' => 'Decrescente'); $oPdf = new Fiscal_Model_Relatoriopdfmodelo1('L'); $oPdf->Open(APPLICATION_PATH . "/../public/tmp/{$sNomeArquivo}"); $oPdf->setLinhaFiltro('Relatório de Empresas Omissas'); $oPdf->setLinhaFiltro(''); $oPdf->setLinhaFiltro("FILTRO: Competência de {$sCompetenciaInicial} até {$sCompetenciaFinal}"); $oPdf->setLinhaFiltro("ORDEM: {$aDescricaoFiltros[$sOrdenacaoCampo]} ({$aDescricaoFiltros[$sOrdenacaoDirecao]})"); $oPdf->carregaDados(); $aUsuarioContribuintes = Administrativo_Model_UsuarioContribuinte::getPrestadores(); $aInscricoesMunicipaisContribuintes = array(); // Verifica se existem usuários contribuinte cadastrados if (count($aUsuarioContribuintes) == 0) { throw new Exception($this->translate->_('Não existem contribuintes cadastrados no sistema.')); } $aDeclaracaoIsentoValidos = array(); for ($iAno = 0; $iAno <= $iCompetenciaFinalAno - $iCompetenciaInicialAno; $iAno++) { $iAnoLoop = intval($iCompetenciaInicialAno) + $iAno; // Varre os meses for ($iMesLoop = 1; $iMesLoop <= 12; $iMesLoop++) { // Ignora os meses anteriores e seguintes aos meses inicial e final if ($iAnoLoop == $iCompetenciaInicialAno && $iMesLoop < $iCompetenciaInicialMes || $iAnoLoop == $iCompetenciaFinalAno && $iMesLoop > $iCompetenciaFinalMes) { continue; } // Varre a lista de usuários contribuintes, verificando quem tem movimentações foreach ($aUsuarioContribuintes as $oContribuinte) { // Verifica se tem movimentação $sSql = "SELECT 1 AS existe_movimento\n FROM view_nota_mais_dms\n WHERE (dms_operacao = 's' OR dms_operacao IS NULL) AND\n prestador_cnpjcpf = '{$oContribuinte->getCnpjCpf()}' AND\n documento_competencia_ano = {$iAnoLoop} AND\n documento_competencia_mes = {$iMesLoop}"; $oStatement = $this->oConexao->prepare($sSql); $oStatement->execute(); // Adiciona na lista somente os contribuinte sem movimentação no sistema if ($oStatement->rowCount() == 0) { // Informações complementares do contribuinte $oDadosContribuinteComplemento = Administrativo_Model_UsuarioContribuinteComplemento::getById($oContribuinte->getCnpjCpf()); // Variaveis do contribuinte $iInscricaoMunicipal = $oContribuinte->getIm(); $sRazaoSocial = $oDadosContribuinteComplemento->getRazaoSocial(); $sEndereco = $oDadosContribuinteComplemento->getEnderecoDescricao(); if (strlen(trim($iInscricaoMunicipal)) > 0) { // Dados dos contribuintes $aDeclaracaoIsentoValidos[$iAnoLoop][$iMesLoop][$iInscricaoMunicipal] = array('inscricao_municipal' => $iInscricaoMunicipal, 'nome' => DBSeller_Helper_String_Format::wordsCap($sRazaoSocial), 'endereco' => DBSeller_Helper_String_Format::wordsCap($sEndereco), 'telefone' => $oDadosContribuinteComplemento->getContatoTelefone(), 'competencia_ano' => $iAnoLoop, 'competencia_mes' => $iMesLoop); } // Lista para consulta no webservice $aInscricoesMunicipaisContribuintes[$iInscricaoMunicipal] = $iInscricaoMunicipal; } } } } // Mosta a lista de inscrições do contribuintes para verificação no webservice (separados por vírgula) $sInscricoesMunicipaisContribuintes = implode("','", $aInscricoesMunicipaisContribuintes); // Retorna apenas os contribuintes com declaração de insento $aDeclaracaoIsento = Contribuinte_Model_Competencia::getDeclaracaoSemMovimentoPorContribuintes($sInscricoesMunicipaisContribuintes); // Limpa as inscricoes com declaração de isenção foreach ($aDeclaracaoIsento as $oDeclaracaoIsento) { unset($aDeclaracaoIsentoValidos[$oDeclaracaoIsento->ano][$oDeclaracaoIsento->mes][$oDeclaracaoIsento->inscricao_municipal]); // Limpa dados do mes, caso não possua registros if (isset($aDeclaracaoIsentoValidos[$oDeclaracaoIsento->ano][$oDeclaracaoIsento->mes]) && count($aDeclaracaoIsentoValidos[$oDeclaracaoIsento->ano][$oDeclaracaoIsento->mes]) == 0) { unset($aDeclaracaoIsentoValidos[$oDeclaracaoIsento->ano][$oDeclaracaoIsento->mes]); } // Limpa dados do ano, caso não possua registros if (isset($aDeclaracaoIsentoValidos[$oDeclaracaoIsento->ano]) && count($aDeclaracaoIsentoValidos[$oDeclaracaoIsento->ano]) == 0) { unset($aDeclaracaoIsentoValidos[$oDeclaracaoIsento->ano]); } } if (count($aDeclaracaoIsentoValidos) == 0) { $sMensagemErro = 'Nenhuma informação foi encontrada neste período para geração do relatório.'; throw new Exception($this->translate->_($sMensagemErro)); } // Varre os anos for ($iAno = 0; $iAno <= $iCompetenciaFinalAno - $iCompetenciaInicialAno; $iAno++) { $iAnoLoop = intval($iCompetenciaInicialAno) + $iAno; // Varre os meses for ($iMesLoop = 1; $iMesLoop <= 12; $iMesLoop++) { // Ignora os meses anteriores e seguintes aos meses inicial e final if ($iAnoLoop == $iCompetenciaInicialAno && $iMesLoop < $iCompetenciaInicialMes || $iAnoLoop == $iCompetenciaFinalAno && $iMesLoop > $iCompetenciaFinalMes) { continue; } // Ordena o array pelo índice informado if (isset($aDeclaracaoIsentoValidos[$iAnoLoop][$iMesLoop])) { // Formata para mês por extenso $sMesExtenso = DBSeller_Helper_Date_Date::mesExtenso($iMesLoop); $oPdf->SetFont('Arial', 'B', 8); $oPdf->Cell(20, 5, utf8_decode('Competência:')); $oPdf->SetFont('Arial', NULL, 8); $oPdf->Cell(0, 5, utf8_decode("{$sMesExtenso}/{$iAnoLoop}")); $oPdf->Ln(5); $oPdf->SetFont('Arial', 'B', 8); $oPdf->Cell(28, 5, utf8_decode('Inscrição Municipal'), 1); $oPdf->Cell(100, 5, utf8_decode('Nome'), 1); $oPdf->Cell(117, 5, utf8_decode('Endereço'), 1); $oPdf->Cell(32, 5, utf8_decode('Telefone'), 1); $oPdf->Ln(5); $aDeclaracaoIsentoOrdenado = DBSeller_Helper_Array_Abstract::ordenarPorIndice($aDeclaracaoIsentoValidos[$iAnoLoop][$iMesLoop], $sOrdenacaoCampo, $sOrdenacaoDirecao, TRUE); $oPdf->SetFont('Arial', NULL, 8); foreach ($aDeclaracaoIsentoOrdenado as $oDeclaracaoIsentoOrdenado) { $oPdf->Cell(28, 5, utf8_decode($oDeclaracaoIsentoOrdenado['inscricao_municipal']), 1); $oPdf->Cell(100, 5, utf8_decode($oDeclaracaoIsentoOrdenado['nome']), 1); $oPdf->Cell(117, 5, utf8_decode($oDeclaracaoIsentoOrdenado['endereco']), 1); $oPdf->Cell(32, 5, utf8_decode($oDeclaracaoIsentoOrdenado['telefone']), 1); $oPdf->Ln(5); } $oPdf->Ln(5); $oPdf->proximaPagina(10); } } } $oPdf->Output(); $aRetornoJson['status'] = TRUE; $aRetornoJson['url'] = $this->view->baseUrl("tmp/{$sNomeArquivo}"); $aRetornoJson['success'] = $this->translate->_('Arquivo importado com sucesso.'); } catch (Exception $oErro) { $aRetornoJson['status'] = FALSE; $aRetornoJson['error'][] = $oErro->getMessage(); } echo $this->getHelper('json')->sendJson($aRetornoJson); }
/** * Busca permissões do usuário */ public function getPermissaoAction() { $iIdUsuarioContribuinte = $this->_getParam('usuario_contribuinte'); $oUsuarioContribuinte = Administrativo_Model_UsuarioContribuinte::getById($iIdUsuarioContribuinte); $aRetornoJson = array(); if ($oUsuarioContribuinte) { $aAcoes = $oUsuarioContribuinte->getAcoes(); foreach ($aAcoes as $oAcao) { $aRetornoJson[] = $oAcao->getId(); } } else { $iIdUsuario = $this->_getParam('usuario'); $oUsuario = Administrativo_Model_Usuario::getById($iIdUsuario); foreach ($oUsuario->getAcoes() as $oAcao) { $aRetornoJson[] = $oAcao->getId(); } } echo $this->getHelper('json')->sendJson($aRetornoJson); }
/** * Metodo Responsável por atualizar a lista de contribuintes * * @param array $contribuintes_novos */ public function atualizaListaContribuintes($contribuintes_novos) { $contribuintes_velhos = Administrativo_Model_UsuarioContribuinte::getByAttribute('usuario', $this->getId()); $novos_im = array(); $velhos_im = array(); // monta array de inscricoes novas. recebidas pelo webservice foreach ($contribuintes_novos as $c) { $novos_im[$c->attr('inscricao')] = $c; } if (!empty($contribuintes_velhos)) { // monta array de inscricoes velhas. recebidas do banco de dados if (is_array($contribuintes_velhos)) { foreach ($contribuintes_velhos as $c) { $velhos_im[$c->getIm()] = $c; } } else { $velhos_im[$contribuintes_velhos->getIm()] = $contribuintes_velhos; } } // diferença entre as novas e velhas são as inscricoes que precisam ser adicionadas $adicionar = array_diff_key($novos_im, $velhos_im); // diferença entre as velhas e as novas sao as incricões que precisam ser removidas $remover = array_diff_key($velhos_im, $novos_im); // Reabilita vinculos existentes foreach ($novos_im as $oNovoContribuinte) { if (isset($velhos_im[$oNovoContribuinte->attr('inscricao')])) { $oUsuarioContribuinteExistente = $velhos_im[$oNovoContribuinte->attr('inscricao')]; $oUsuarioContribuinteExistente->setHabilitado(TRUE); $oUsuarioContribuinteExistente->persist(); } } // Cria novos vinculos foreach ($adicionar as $oNovoContribuinte) { $oUsuarioContribuinte = new Administrativo_Model_UsuarioContribuinte(); $oUsuarioContribuinte->setUsuario($this->entity); $oUsuarioContribuinte->setIm($oNovoContribuinte->attr('inscricao')); $oUsuarioContribuinte->setCnpjCpf($oNovoContribuinte->attr('cnpj')); $oUsuarioContribuinte->setHabilitado(true); $this->addUsuarioContribuinte($oUsuarioContribuinte); $oUsuarioContribuinte->persist(); } // Desabilita o usuario contribuinte foreach ($remover as $oUsuarioRemover) { $oUsuarioRemover->setHabilitado(FALSE); $oUsuarioRemover->persist(); } }
/** * Método para confirmação do usuário eventual [json] * * @throws Exception * @return void */ public function confirmarAction() { $oFiltro = new Zend_Filter_Digits(); $aDados = $this->getRequest()->getParams(); $sCpfCnpj = DBSeller_Helper_Number_Format::unmaskCPF_CNPJ($aDados['cnpjcpf']); // Popula o formulario $oForm = new Default_Form_LiberacaoCadastro(); $oForm->populate($aDados); // Valida o formulario if ($oForm->isValid($aDados)) { if ($aDados['hash'] == NULL || $sCpfCnpj == NULL) { throw new Exception($this->translate->_('Campo(s) obrigatório(s) não informado(s).')); } $oDoctrine = Zend_Registry::get('em'); $oDoctrine->getConnection()->beginTransaction(); try { $oCadastroPessoa = Contribuinte_Model_CadastroPessoa::getByAttribute('hash', $aDados['hash']); if ($oCadastroPessoa == NULL) { $sMensagemErro = 'Dados informados não encontrados. Favor entrar em contato com o suporte da prefeitura.'; throw new Exception($this->translate->_($sMensagemErro)); } $iTipoLiberacaoUsuarioBloqueado = Contribuinte_Model_CadastroPessoa::TIPO_LIBERACAO_USUARIO_BLOQUEADO; if ($oCadastroPessoa->getTipoLiberacao() == $iTipoLiberacaoUsuarioBloqueado) { $sMensagemErro = 'Cadastro foi recusado. Favor entrar em contato com o setor de fiscalização.'; throw new Exception($this->translate->_($sMensagemErro)); } if ($sCpfCnpj != $oCadastroPessoa->getCpfcnpj()) { throw new Exception($this->translate->_('CNPJ/CPF informado não é o mesmo informado no cadastro.')); } $oUsuarioCadastrado = Administrativo_Model_Usuario::getByAttribute('email', $oCadastroPessoa->getEmail()); if ($oUsuarioCadastrado instanceof Administrativo_Model_Usuario) { $sLink = '<a href="' . $this->view->serverUrl('/auth/login/esqueci-minha-senha/') . '">Clique Aqui</a>'; $sMensagemErro = "Já encontramos um cadastro com este email.<br>Caso tenha esquecido sua senha. {$sLink}"; throw new Exception($this->translate->_($sMensagemErro)); } $oCgm = Contribuinte_Model_Cgm::getDadosCgm($sCpfCnpj); if ($oCadastroPessoa->getTipoLiberacao() == Contribuinte_Model_CadastroPessoa::TIPO_LIBERACAO_USUARIO && $oCgm == NULL) { $sErro = $this->translate->_('Parametros estão inválidos (CGM não existe), '); $sErro .= $this->translate->_('favor entrar em contato com o setor de fiscalização.'); throw new Exception($sErro); } if ($oCadastroPessoa->getTipoLiberacao() == Contribuinte_Model_CadastroPessoa::TIPO_LIBERACAO_USUARIO_CGM && $oCgm == NULL) { $oNovoCgm = new Contribuinte_Model_Cgm(); if (strlen($oCadastroPessoa->getCpfCnpj()) >= 14) { $oNovoCgm->setJuridico(TRUE); $oNovoCgm->setCNPJ($oCadastroPessoa->getCpfCnpj()); } else { $oNovoCgm->setJuridico(FALSE); $oNovoCgm->setCPF($oCadastroPessoa->getCpfCnpj()); } $sDescricaoMunicipio = Default_Model_Cadendermunicipio::getById($oCadastroPessoa->getCidade())->getNome(); $oNovoCgm->setNome($oCadastroPessoa->getNome()); $oNovoCgm->setEmail($oCadastroPessoa->getEmail()); $oNovoCgm->setCodigoIbgeCidade($oCadastroPessoa->getCidade()); $oNovoCgm->setDescricaoMunicipio($sDescricaoMunicipio); $oNovoCgm->setEstado($oCadastroPessoa->getEstado()); $oNovoCgm->setTelefone($oFiltro->filter($oCadastroPessoa->getTelefone())); $oNovoCgm->setCep($oFiltro->filter($oCadastroPessoa->getCep())); $oNovoCgm->setEnderecoEcidade(FALSE); if ($oCadastroPessoa->getCodBairro()) { $oNovoCgm->setEnderecoEcidade(TRUE); } $oNovoCgm->setCodigoBairro($oCadastroPessoa->getCodBairro()); $oNovoCgm->setCodigoLogradouro($oCadastroPessoa->getCodEndereco()); $oNovoCgm->setDescricaoBairro($oCadastroPessoa->getBairro()); $oNovoCgm->setDescricaoLogradouro($oCadastroPessoa->getEndereco()); $oNovoCgm->setNumeroLogradouro($oCadastroPessoa->getNumero()); $oNovoCgm->setComplemento($oCadastroPessoa->getComplemento()); $oCodigoCgm = $oNovoCgm->persist(); $iCodigoCgm = $oCodigoCgm->codigo_cgm; } else { $iCodigoCgm = $oCgm->getCodigoCgm(); } $aArraTipoLiberacao = array(Contribuinte_Model_CadastroPessoa::TIPO_LIBERACAO_USUARIO_CGM, Contribuinte_Model_CadastroPessoa::TIPO_LIBERACAO_USUARIO); if (in_array($oCadastroPessoa->getTipoLiberacao(), $aArraTipoLiberacao)) { // Usuário do sistema $oUsuarioSistema = new Administrativo_Model_Usuario(); $oUsuarioSistema->setNome($oCadastroPessoa->getNome()); $oUsuarioSistema->setTelefone($oFiltro->filter($oCadastroPessoa->getTelefone())); $oUsuarioSistema->setLogin($oCadastroPessoa->getCpfCnpj()); $oUsuarioSistema->setSenha($aDados['senha']); $oUsuarioSistema->setEmail($oCadastroPessoa->getEmail()); $oUsuarioSistema->setHabilitado(TRUE); $oUsuarioSistema->setAdministrativo(FALSE); $oUsuarioSistema->setTipo(Administrativo_Model_TipoUsuario::$CONTRIBUINTE); $oUsuarioSistema->setCgm($iCodigoCgm); $oUsuarioSistema->setCnpj($oCadastroPessoa->getCpfCnpj()); $oUsuarioSistema->setPerfil($oCadastroPessoa->getPerfil()->getEntity()); $oUsuarioSistema->adicionaAcoes($oCadastroPessoa->getPerfil()->getAcoes()); $oUsuarioSistema->persist(); // Criamos o usuario eventual; $oUsuarioEventual = new Administrativo_Model_UsuarioContribuinte(); $oUsuarioEventual->setCGM($iCodigoCgm); $oUsuarioEventual->setHabilitado(TRUE); $oUsuarioEventual->setTipoContribuinte(2); $oUsuarioEventual->setCnpjCpf($oCadastroPessoa->getCpfCnpj()); $oUsuarioEventual->setUsuario($oUsuarioSistema->getEntity()); $oUsuarioEventual->copiaPerfilAcoes($oCadastroPessoa->getPerfil()); $oUsuarioEventual->persist(); // Cadastro de Pessoa $oCadastroPessoa->setHash(NULL); $oCadastroPessoa->persist(); } $oDoctrine->getConnection()->commit(); $aRetornoJson['status'] = TRUE; $aRetornoJson['success'] = $this->translate->_('Cadastro efetuado com sucesso.'); $aRetornoJson['url'] = $this->view->serverUrl(); } catch (Exception $oErro) { $oDoctrine->getConnection()->rollback(); if (isset($oCodigoCgm) && isset($oCodigoCgm->codigo_cgm) && Contribuinte_Model_Cgm::removerCgm($oCodigoCgm->codigo_cgm)) { $oLog = Zend_Registry::get('logger'); $oLog->log("Erro ao excluir o CGM: {$oCodigoCgm->codigo_cgm}", Zend_Log::INFO, ' '); } $aRetornoJson['status'] = FALSE; $aRetornoJson['error'][] = $oErro->getMessage(); } } else { $aRetornoJson['status'] = FALSE; $aRetornoJson['fields'] = array_keys($oForm->getMessages()); $aRetornoJson['error'][] = $this->translate->_('Preencha os dados corretamente.'); } echo $this->getHelper('json')->sendJson($aRetornoJson); }
/** * Retorna uma instancia de Contribuinte atravéz do código do contribuinte. * * @param $iCodigoContribuinte * @return Contribuinte_Model_Contribuinte|null|object */ public static function getById($iCodigoContribuinte) { $oUsuarioContribuinte = Administrativo_Model_UsuarioContribuinte::getById($iCodigoContribuinte); $oContribuinteWebService = self::getDadosContribuinteEcidade($oUsuarioContribuinte->getIm()); if (empty($oContribuinteWebService)) { return NULL; } $oContribuinte = self::preencherInstanciaContribuinte($oContribuinteWebService); $oContribuinte->setIdUsuarioContribuinte($iCodigoContribuinte); return $oContribuinte; }
/** * Recursos / Previlegios */ protected function _setupResourcesPrivilegesUserAuth() { $aDadosLogin = Zend_Auth::getInstance()->getIdentity(); $oUsuario = Administrativo_Model_Usuario::getByAttribute('login', $aDadosLogin["login"]); $oContribuinte = new Zend_Session_Namespace('nfse'); if (!isset($oContribuinte->contribuinte)) { $aUsuarioAcoes = $oUsuario->getAcoes(); if (is_array($aUsuarioAcoes) && count($aUsuarioAcoes) > 0) { foreach ($aUsuarioAcoes as $oUsuarioAcao) { $sControle = $oUsuarioAcao->getControle()->getIdentidade(); $sModulo = $oUsuarioAcao->getControle()->getModulo()->getIdentidade(); $oResource = new Zend_Acl_Resource("{$sModulo}:{$sControle}"); if (!$this->_acl->has($oResource->getResourceId())) { $this->_acl->addResource($oResource); } $oAcoesExtra = explode(',', trim($oUsuarioAcao->getSubAcoes())); $aAcoesExtra = array_merge($oAcoesExtra, array($oUsuarioAcao->getAcaoAcl())); foreach ($aAcoesExtra as $sAcao) { if (empty($sAcao)) { continue; } $this->_acl->allow('Usuario', $oResource->getResourceId(), $sAcao); } } } } if (!empty($oContribuinte->contribuinte)) { $iCodigoUsuarioContribuinte = $oContribuinte->contribuinte->getIdUsuarioContribuinte(); $oUsuarioContribuinte = Administrativo_Model_UsuarioContribuinte::getById($iCodigoUsuarioContribuinte); foreach ($oUsuarioContribuinte->getUsuarioContribuinteAcoes() as $oPermissoes) { $oAcoesExtra = explode(',', trim($oPermissoes->getAcao()->getSubAcoes())); $aAcoesExtra = array_merge($oAcoesExtra, array($oPermissoes->getAcao()->getAcaoAcl())); $sModulo = $oPermissoes->getAcao()->getControle()->getModulo()->getIdentidade(); $sControle = $oPermissoes->getAcao()->getControle()->getIdentidade(); $oResource = new Zend_Acl_Resource("{$sModulo}:{$sControle}"); if (!$this->_acl->has($oResource->getResourceId())) { $this->_acl->addResource($oResource); } foreach ($aAcoesExtra as $sAcao) { if (empty($sAcao)) { continue; } $this->_acl->allow('Usuario', $oResource->getResourceId(), $sAcao); } } } }
/** * Retorna a instancia do contribuinte atraves do Cnpj/cpf * * @param string $sCpfCnpj * @return bool|Contribuinte_Model_ContribuinteEventual|object * @throws Exception */ public static function getByCpfCnpj($sCpfCnpj) { $oContribuinte = Administrativo_Model_UsuarioContribuinte::getByAttribute('cnpj_cpf', $sCpfCnpj); // Se retornar mais de um contribuinte pega o primeiro da lista if (is_array($oContribuinte)) { $oContribuinte = reset($oContribuinte); } if ($oContribuinte->getUsuario()->getCnpj() == '') { throw new Exception('Contribuinte eventual não possui CPF / CNPJ.'); } $oCgm = self::getByCpfCnpjWebService($sCpfCnpj); if (!empty($oCgm)) { $oContribuinteEventual = Contribuinte_Model_ContribuinteEventual::preencherInstanciaContribuinte($oCgm); $oContribuinteEventual->setIdUsuarioContribuinte($oContribuinte->getId()); return $oContribuinteEventual; } return FALSE; }
/** * Prepara os dados para processar o arquivo do webservice * * @param string $sArquivo * @return bool * @throws Exception */ public function preparaDados($sArquivo) { try { // Foi comentado o if de verificação pois estava ocorrendo um problema na emissão e retornava um arquivo em branco. // Somente em ambiente de desenvolvimento //if (APPLICATION_ENV == 'development') { $oDomDocument = new DOMDocument(); $oDomDocument->loadXml($sArquivo); $oData = new Zend_Date(); $this->sNomeArquivo = "/RecepcionarLote-{$oData->getTimestamp()}.xml"; $this->sCaminhoArquivo = TEMP_PATH; /** * Verifica se o caminho do arquivo não existe recria a pasta */ if (!file_exists($this->sCaminhoArquivo)) { mkdir($this->sCaminhoArquivo, 0777); } /** * Escreve os dados no arquivo */ $this->sCaminhoNomeArquivo = $this->sCaminhoArquivo . $this->sNomeArquivo; $aArquivo = fopen($this->sCaminhoNomeArquivo, 'w'); fputs($aArquivo, print_r($sArquivo, TRUE)); fclose($aArquivo); //} $oValidacao = new DBSeller_Helper_Xml_AssinaturaDigital($sArquivo); /** * Validação digital do arquivo */ if (!$oValidacao->validar()) { throw new Exception($oValidacao->getLastError()); } $oUsuario = Administrativo_Model_Usuario::getByAttribute('cnpj', $oValidacao->getCnpj()); if (!is_object($oUsuario)) { throw new Exception('Usuário contribuinte não existe!', 157); } /** * Busca usuário contribuinte através do usuário cadastrado */ $aUsuarioContribuinte = Administrativo_Model_UsuarioContribuinte::getByAttributes(array('usuario' => $oUsuario->getId(), 'cnpj_cpf' => $oUsuario->getCnpj())); if (!is_object($aUsuarioContribuinte[0])) { throw new Exception('Usuário contribuinte não encontrado!', 160); } /** * Seta os dados do contribuinte */ $this->oDadosUsuario = $oUsuario; $this->oContribuinte->sCpfCnpj = $aUsuarioContribuinte[0]->getCnpjCpf(); $this->oContribuinte->iCodigoUsuario = $oUsuario->getId(); $this->oContribuinte->iIdUsuarioContribuinte = $aUsuarioContribuinte[0]->getId(); /** * Atualiza os dados do contribuinte na sessão */ $oSessao = new Zend_Session_Namespace('nfse'); $oSessao->contribuinte = Contribuinte_Model_Contribuinte::getById($this->oContribuinte->iIdUsuarioContribuinte); return TRUE; } catch (Exception $oErro) { throw new Exception($oErro->getMessage(), $oErro->getCode()); } }
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()); } } }