/**
  * Processa o arquivo de importação no ecidade
  *
  * @param integer $iIdUsuario identificador do usuario
  * @param string $sArquivoBase64 Texto do arquivo encodado em base64
  * @return mixed
  */
 public static function processarArquivo($oContador, $oContribuinte, $sArquivoBase64)
 {
     $sCpfCnpjContador = NULL;
     $iInscricaoMunicipalContribuinte = NULL;
     if ($oContador instanceof Administrativo_Model_Usuario) {
         $sCpfCnpjContador = $oContador->getCnpj();
     }
     if ($oContribuinte instanceof Contribuinte_Model_ContribuinteAbstract) {
         $iInscricaoMunicipalContribuinte = $oContribuinte->getInscricaoMunicipal();
     }
     /**
      * @todo O parâmetro $iIdUsuario foi inserido para pode importar arquivos por contador, analisar
      * melhor para tratar por um identificador que existam tanto no contador como no contribuinte
      */
     $aParametros = array('sCpfCnpjContador' => $sCpfCnpjContador, 'iInscricaoMunicipalContribuinte' => $iInscricaoMunicipalContribuinte, 'sArquivoEmBase64' => $sArquivoBase64);
     $oRetornoWebService = WebService_Model_Ecidade::processar('processamentoArquivoDMS', $aParametros);
     return $oRetornoWebService;
 }
 /**
  * Retorna os dados da prefeitura do webservice
  *
  * @tutorial Campos de Retorno para exemplo:
  *           $oRetorno->sDescricao                = PREFEITURA MUNICIPAL DE TESTE DO SUL
  *           $oRetorno->sDescricaoAbreviada       = PM TESTE DO SUL
  *           $oRetorno->sCnpj                     = XXXXXXXXXXXXXXX
  *           $oRetorno->sLogradouro               = LOGRADOURO DA PREFEITURA
  *           $oRetorno->sMunicipio                = MUNICIPIO
  *           $oRetorno->sBairro                   = BAIRRO
  *           $oRetorno->sTelefone                 = XX XXXXXXXX
  *           $oRetorno->sSite                     = www.prefeitura.rs.gov.br
  *           $oRetorno->sEmail                    = contato@prefeitura.rs.gov.br
  *           $oRetorno->iCodigoMunicipio          = 531654
  *           $oRetorno->iNumeroCgm                = 5
  *           $oRetorno->sLogoPrefeituraBaseEncode = files/imagens/brasao_5249e01492774.jpg
  * @return mixed
  * @throws Exception
  */
 public static function getDadosPrefeituraWebService()
 {
     try {
         $aValores = array('lprefeitura' => TRUE);
         $oDadosRetorno = WebService_Model_Ecidade::processar('DadosPrefeitura', $aValores);
         if ($oDadosRetorno->sLogoPrefeituraBaseEncode != '') {
             $sImagem = $oDadosRetorno->sLogoPrefeituraBaseEncode;
             $sImagem = str_replace('data:image/png;base64,', '', $sImagem);
             $sImagem = str_replace(' ', '+', $sImagem);
             $oImagemDados = base64_decode($sImagem);
             $sNomeArquivo = 'brasao.jpg';
             $lSucesso = file_put_contents('global/img/' . $sNomeArquivo, $oImagemDados);
             unset($oDadosRetorno->sLogoPrefeituraBaseEncode);
             if (!$lSucesso) {
                 DBSeller_Plugin_Notificacao::addErro('W005', 'Problemas ao importar o arquivo logo da prefeitura.');
                 throw new Exception('Problemas ao importar o arquivo logo da prefeitura.');
             }
         }
         return $oDadosRetorno;
     } catch (Exception $oErro) {
         DBSeller_Plugin_Notificacao::addErro('W006', "Erro para carregar dados da Prefeitura: {$oErro->getMessage()}");
         throw new Exception("Erro para carregar dados da Prefeitura: {$oErro->getMessage()}");
     }
 }
 /**
  * Método para alterar o logo do contribuinte no e-cidade
  *
  * @param $iInscricaoMunicipal
  * @param $aFiles
  *
  * @return bool
  */
 public static function setLogoByIm($iInscricaoMunicipal, $aFiles)
 {
     $bRetorno = TRUE;
     if (is_array($aFiles)) {
         $aArquivoLogo = array();
         $aImagemLogo = $aFiles['imagem_logo'];
         $iFileSize = !empty($aImagemLogo['size']) ? $aImagemLogo['size'] : 0;
         if ($iFileSize > 0) {
             $aArquivoLogo['encode'] = base64_encode(file_get_contents($aImagemLogo['tmp_name']));
             $aParametros = array('inscricao_municipal' => $iInscricaoMunicipal, 'arquivo' => $aArquivoLogo['encode']);
             $bRetorno = parent::processar('setEmpresaFotoPrincipal', $aParametros);
             if (empty($sRetorno)) {
                 $bRetorno = FALSE;
             }
         }
     }
     return $bRetorno;
 }
 /**
  * Cancela requisição de aidof
  *
  * @param integer $iCodigoRequisicao
  * @return StdClass
  */
 public static function cancelar($iCodigoRequisicao)
 {
     $aValores = array('codigorequisicao' => $iCodigoRequisicao);
     return parent::processar('cancelarRequisicaoAidof', $aValores);
 }
 /**
  * Classe responsável por remover o cgm
  * @param integer $iCodigoCgm
  * @throws Exception
  */
 public static function removerCgm($iCodigoCgm)
 {
     if ($iCodigoCgm == NULL) {
         throw new Exception('Código do Cgm não informado.');
     }
     $aDados = array('codigo_cgm' => $iCodigoCgm);
     return WebService_Model_Ecidade::processar('excluirCgm', $aDados);
 }
 /**
  * Retorna os dados do contribuinte atraves do Cnpj/cpf vindos do WebService
  * @param $sCpfCnpj
  *
  * @return mixed
  * @throws Exception
  */
 public static function getByCpfCnpjWebService($sCpfCnpj)
 {
     if ($sCpfCnpj == '') {
         throw new Exception('CPF / CNPJ não informados.');
     }
     $aParametros = array('cpfcnpj' => $sCpfCnpj);
     return WebService_Model_Ecidade::processar('pesquisaCgmByCpfCnpj', $aParametros);
 }
 /**
  * Gera declaracao de insencao de ISSQN Variavel (Declaracao de Sem Movimento)
  *
  * @return array|null
  * @throws Exception
  */
 public function gerarDeclaracaoSemMovimento()
 {
     try {
         $aParamentos = array('inscricaomunicipal' => $this->oContribuinte->getInscricaoMunicipal(), 'mes' => $this->iMesCompetencia, 'ano' => $this->iAnoCompetencia);
         $aRetorno = WebService_Model_Ecidade::processar('CancelamentoISSQNVariavel', $aParamentos);
     } catch (Exception $oErro) {
         DBSeller_Plugin_Notificacao::addErro('W007', "Erro ao declarar sem movimento: {${$oErro}->getMessage()}");
         throw new Exception(sprintf($this->translate->_('Erro ao declarar sem movimento: %s'), $oErro->getMessage()));
     }
     return $aRetorno;
 }
 /**
  * Pesquisa a situação da guia informando um conjunto de numpre e numpar
  *
  * @param $aDadosSituacao
  * @return array
  * @throws Exception
  */
 public static function pesquisaSituacaoGuias($aDadosSituacao)
 {
     // Verifica se foi informado uma coleção de numpre, numpar para consultar a situação
     if (!is_array($aDadosSituacao)) {
         throw new Exception('Informe os dados da guia para consultar a situação!');
     }
     $aParametros = array('aDadosSituacao' => $aDadosSituacao);
     $aRetornoSituacao = WebService_Model_Ecidade::processar('PesquisaSituacaoGuias', $aParametros);
     return $aRetornoSituacao;
 }