/**
  * Consulta notas para exportar RPS
  */
 public function rpsConsultarAction()
 {
     parent::noTemplate();
     $aParametros = $this->getRequest()->getParams();
     /**
      * Verifica se foi informado mês e ano da competência
      */
     if (!empty($aParametros['mes_competencia']) && !empty($aParametros['ano_competencia'])) {
         $oContribuinte = $this->_session->contribuinte;
         $sCodigosContribuintes = implode(',', $oContribuinte->getContribuintes());
         $oPaginatorAdapter = new DBSeller_Controller_Paginator(Contribuinte_Model_Nota::getQuery(), 'Contribuinte_Model_Nota', 'Contribuinte\\Nota');
         /**
          * Monta a query de consulta
          */
         $oPaginatorAdapter->where("e.id_contribuinte in ({$sCodigosContribuintes})");
         $oPaginatorAdapter->andWhere("e.mes_comp = {$aParametros['mes_competencia']}");
         $oPaginatorAdapter->andWhere("e.ano_comp = {$aParametros['ano_competencia']}");
         if (!empty($aParametros['numero_rps'])) {
             $oPaginatorAdapter->andWhere("e.nota = {$aParametros['numero_rps']}");
         }
         $oPaginatorAdapter->orderBy('e.nota', 'DESC');
         /**
          * Monta a paginação do GridPanel
          */
         $oResultado = new Zend_Paginator($oPaginatorAdapter);
         $oResultado->setItemCountPerPage(10);
         $oResultado->setCurrentPageNumber($this->_request->getParam('page'));
         foreach ($oResultado as $oNota) {
             $oNota->oContribuinte = $oContribuinte;
             $oNota->lNaoGeraGuia = !$oNota->getEmite_guia();
             $oNota->lGuiaEmitida = Contribuinte_Model_Guia::existeGuia($oContribuinte, $oNota->getMes_comp(), $oNota->getAno_comp(), Contribuinte_Model_Guia::$DOCUMENTO_ORIGEM_NFSE);
             /**
              * Informações da nota substituta
              */
             $oNota->oNotaSubstituida = NULL;
             if ($oNota->getIdNotaSubstituida()) {
                 $oNota->oNotaSubstituida = Contribuinte_Model_Nota::getById($oNota->getIdNotaSubstituida());
             }
             /**
              * Informações da nota substituta
              */
             $oNota->oNotaSubstituta = NULL;
             if ($oNota->getIdNotaSubstituta()) {
                 $oNota->oNotaSubstituta = Contribuinte_Model_Nota::getById($oNota->getIdNotaSubstituta());
             }
         }
         /**
          * Valores da pesquisa para montar a paginação
          */
         if (is_array($aParametros)) {
             foreach ($aParametros as $sParametro => $sParametroValor) {
                 if ($sParametroValor) {
                     $sParametroValor = str_replace('/', '-', $sParametroValor);
                     $this->view->sBusca .= "{$sParametro}/{$sParametroValor}/";
                 }
             }
         }
         $this->view->oDadosNota = $oResultado;
     }
 }
コード例 #2
0
 public function indexAction()
 {
     parent::noTemplate();
     $oForm = new Contribuinte_Form_Tomador();
     if ($this->getRequest()->isPost()) {
         $aDados = $this->getRequest()->getPost();
         $oForm->preenche($aDados);
         if (!$oForm->isValid($aDados)) {
             $this->view->form = $oForm;
             $this->getResponse()->setHttpResponseCode(406);
             // Evita o Fechamento da Modal JS
         } else {
             $iCodigoIbge = Administrativo_Model_Prefeitura::getDadosPrefeituraBase()->getIbge();
             if ($aDados['z01_munic'] == $iCodigoIbge) {
                 $aDados['z01_bairro'] = $aDados['z01_bairro_munic'];
                 $aDados['z01_ender'] = $aDados['z01_ender_munic'];
             } else {
                 $aDados['z01_bairro'] = $aDados['z01_bairro_fora'];
                 $aDados['z01_ender'] = $aDados['z01_ender_fora'];
             }
             // Salva Novo CGM (eCidade)
             //Contribuinte_Model_Cgm::persist($aDados);
             // Salva Novo Tomador (NFSE)
             $aDadosNfse = array();
             $aDadosNfse['t_cnpjcpf'] = $aDados['z01_cgccpf'];
             $aDadosNfse['t_razao_social'] = $aDados['z01_nome'];
             $aDadosNfse['t_cod_pais'] = $aDados['z01_nome'];
             $aDadosNfse['t_uf'] = $aDados['z01_uf'];
             $aDadosNfse['t_cod_municipio'] = $aDados['z01_munic'];
             $aDadosNfse['t_cep'] = $aDados['z01_cep'];
             $aDadosNfse['t_bairro'] = $aDados['z01_bairro_fora'];
             $aDadosNfse['t_endereco'] = $aDados['z01_ender_fora'];
             $aDadosNfse['t_endereco_numero'] = $aDados['z01_numero'];
             $aDadosNfse['t_endereco_comp'] = $aDados['z01_compl'];
             $aDadosNfse['t_telefone'] = $aDados['z01_telef'];
             $aDadosNfse['t_email'] = $aDados['z01_email'];
             $oTomador = new Contribuinte_Model_TomadorBase();
             $oTomador->persist($aDadosNfse);
             $this->_helper->getHelper('FlashMessenger')->addMessage(array('success' => 'Tomador cadastrado com sucesso.'));
             return;
         }
     } else {
         $this->view->form = $oForm;
     }
 }
コード例 #3
0
 /**
  * Action responsável por listar as contas
  */
 public function listarContasAction()
 {
     if ($this->getRequest()->isPost()) {
         parent::noTemplate();
         $aRecord = array();
         $iLimit = $this->_request->getParam('rows');
         $iPage = $this->_request->getParam('page');
         $sSord = $this->_request->getParam('sord');
         $oPaginatorAdapter = new DBSeller_Controller_Paginator(Contribuinte_Model_PlanoContaAbrasf::getQuery(), 'Contribuinte_Model_PlanoContaAbrasf', 'Contribuinte\\PlanoContaAbrasf');
         /**
          * Ordena os registros
          */
         $oPaginatorAdapter->orderBy("e.id, e.conta_abrasf", $sSord);
         /**
          * Monta a paginação do GridPanel
          */
         $oResultado = new Zend_Paginator($oPaginatorAdapter);
         $oResultado->setItemCountPerPage($iLimit);
         $oResultado->setCurrentPageNumber($iPage);
         $iTotal = $oResultado->getTotalItemCount();
         $iTotalPages = $iTotal > 0 && $iLimit > 0 ? ceil($iTotal / $iLimit) : 0;
         foreach ($oResultado as $oPlanoContaAbrasf) {
             $oDadosColuna = new StdClass();
             $oDadosColuna->id = $oPlanoContaAbrasf->getId();
             $oDadosColuna->conta_abrasf = $oPlanoContaAbrasf->getContaAbrasf();
             $oDadosColuna->titulo_contabil_desc = $oPlanoContaAbrasf->getTituloContabilDesc();
             $oDadosColuna->tributavel = $oPlanoContaAbrasf->getTributavel();
             $oDadosColuna->obrigatorio = $oPlanoContaAbrasf->getObrigatorio();
             $aRecord[] = $oDadosColuna;
         }
         /**
          * Parametros de retorno do AJAX
          */
         $aRetornoJson = array('total' => $iTotalPages, 'page' => $iPage, 'records' => $iTotal, 'rows' => $aRecord);
         echo $this->getHelper('json')->sendJson($aRetornoJson);
     }
 }
コード例 #4
0
 /**
  * Emite e gera as guias conforme a receita e aliquota informadas
  */
 public function emitirGuiaAction()
 {
     parent::noTemplate();
     $aParametros = $this->getAllParams();
     try {
         $iIdImportacao = $aParametros['id'];
         $fAliquota = $aParametros['aliq_issqn'] ? $aParametros['aliq_issqn'] : NULL;
         $oContribuinte = $this->_session->contribuinte;
         $aReceitaDesif = Contribuinte_Model_ImportacaoDesif::getTotalReceitaGuiaDesif($oContribuinte, $iIdImportacao, $fAliquota);
         $sTotalReceita = DBSeller_Helper_Number_Format::toMoney($aReceitaDesif->total_receita, 2, 'R$ ');
         $sTotalIss = DBSeller_Helper_Number_Format::toMoney($aReceitaDesif->total_iss, 2, 'R$ ');
         $oFormEmitirGuia = new Contribuinte_Form_GuiaCompetencia();
         $oFormEmitirGuia->setName('form-emitir-guia');
         $oFormEmitirGuia->setAction('/contribuinte/guia-desif/emitir-guia');
         $oFormEmitirGuia->getElement('ano')->setValue($aReceitaDesif->ano_competencia);
         $oFormEmitirGuia->getElement('mes')->setValue($aReceitaDesif->mes_competencia);
         $oFormEmitirGuia->getElement('aliq_issqn')->setValue($fAliquota);
         $oFormEmitirGuia->getElement('total_servico')->setValue($sTotalReceita);
         $oFormEmitirGuia->getElement('total_iss')->setValue($sTotalIss);
         $oFormEmitirGuia->getElement('data_guia')->setValue(date('d/m/Y'));
         $this->view->form = $oFormEmitirGuia;
         // Verifica se for enviado os dados via $_POST
         if ($this->getRequest()->isPost()) {
             // Formata a data de pagamento da guia
             $sDataInvertida = DBSeller_Helper_Date_Date::invertDate($this->getRequest()->getParam('data_guia'));
             $oDataPagamento = new DateTime($sDataInvertida);
             // Gera a guia e emite o PDF da geração
             $oGuia = Contribuinte_Model_GuiaEcidade::gerarGuiaDesif($oContribuinte, $aParametros['ano'], $aParametros['mes'], $oDataPagamento, $fAliquota, true);
             $this->view->arquivo = $oGuia->arquivo_guia;
         }
     } catch (Exception $oErro) {
         $this->view->mensagem_erro = $oErro->getMessage();
     }
 }
コード例 #5
0
 /**
  * Salva as contas selecionadas para emissão da Guia DES-IF
  */
 public function salvarEmissaoAction()
 {
     parent::noTemplate();
     $aParametro = $this->_request->getPost();
     if (!empty($aParametro['selecionados'])) {
         $aParametro['selecionados'] = array_unique($aParametro['selecionados']);
     } else {
         $aParametro['selecionados'] = array();
     }
     $oDesifContaGuia = new Contribuinte_Model_DesifContaGuia();
     $aRetornoJson = $oDesifContaGuia->salvarEmissaoContas($aParametro);
     echo $this->getHelper('json')->sendJson($aRetornoJson);
 }
コード例 #6
0
 /**
  * Lista de DMS Saida
  */
 public function emissaoDmsListaAction()
 {
     parent::noTemplate();
     $iMes = $this->_getParam('mes_competencia', NULL);
     $iAno = $this->_getParam('ano_competencia', NULL);
     $sDmsTipo = $this->_getParam('tipo', NULL);
     $oContribuinte = $this->_session->contribuinte;
     $oDms = new Contribuinte_Model_Dms();
     $aResultado = $oDms->getDMSSemGuiaNaCompetencia($oContribuinte, $iAno, $iMes, $sDmsTipo);
     // Filtra as notas isentas
     foreach ($aResultado as $oDms) {
         $bEmiteGuia = FALSE;
         $iQuantidadeNotas = 0;
         $fValorGuia = 0;
         // Notas de DMS
         foreach ($oDms->getDmsNotas() as $oNota) {
             // Ignora notas prestadas e retidas pelo tomador
             if ($oDms->getOperacao() == 's' && $oNota->getServicoImpostoRetido() == TRUE) {
                 continue;
             }
             // Ignora notas tomadas e retidas pelo tomador
             if ($oDms->getOperacao() == 'e' && $oNota->getServicoImpostoRetido() == FALSE) {
                 continue;
             }
             // nota: anulada, extraviada ou cancelada
             if ($oNota->getStatus() == 5 || in_array($oNota->getSituacaoDocumento(), array('E', 'C'))) {
                 continue;
             }
             // verifica se o contribuinte emite guia
             if ($oNota->getEmiteGuia()) {
                 $iQuantidadeNotas++;
                 $fValorGuia += $oNota->getServicoValorImposto();
                 $bEmiteGuia = TRUE;
             }
         }
         // Adiciona a quantidade e o valor total das DMS agrupadas
         $oDms->iQuantidadeNotas = $iQuantidadeNotas;
         $oDms->fValorGuia = $fValorGuia;
         if ($bEmiteGuia) {
             $aListaDms[] = $oDms;
         }
     }
     $this->view->aDms = isset($aListaDms) ? $aListaDms : array();
     $this->view->urlEdicaoDms = '/contribuinte/dms/emissao-manual-saida';
     if ($sDmsTipo == Contribuinte_Model_Dms::ENTRADA) {
         $this->view->urlEdicaoDms = '/contribuinte/dms/emissao-manual-entrada';
     }
 }
コード例 #7
0
 /**
  * Documentação para importação de arquivos
  */
 public function importacaoDocumentacaoAction()
 {
     parent::noTemplate();
     $sFormato = $this->getRequest()->getParam('formato', 'html');
     $oTiposDocumento = new Contribuinte_Model_Nota();
     $this->view->aTiposDocumento = $oTiposDocumento->getDescricaoTipoNota($oTiposDocumento::GRUPO_NOTA_DMS);
     // Ordena por código os tipos de documento
     asort($this->view->aTiposDocumento);
     // Gera o pdf
     if ($sFormato == 'pdf') {
         $sHtml = $this->view->render('dms/importacao-documentacao.phtml');
         $this->renderPdf($sHtml, 'Documentação para Importação de DMS', array('format' => 'A4'));
     }
 }
コード例 #8
0
 /**
  * Cancela NFSE
  */
 public function cancelarAction()
 {
     parent::noTemplate();
     $aDados = $this->getRequest()->getParams();
     $oNota = Contribuinte_Model_Nota::getById($aDados['id']);
     $oContribuinte = $this->_session->contribuinte;
     $oValidadorEmail = new Zend_Validate_EmailAddress();
     $oForm = new Contribuinte_Form_NotaCancelar();
     $oForm->getElement('id')->setValue($aDados['id']);
     if ($oNota instanceof Contribuinte_Model_Nota && $oValidadorEmail->isValid($oNota->getT_email())) {
         $oForm->getElement('email')->setValue($oNota->getT_email());
     }
     $this->view->nota = $aDados['numero'];
     $this->view->form = $oForm;
 }