/**
  * 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();
     }
 }
 /**
  * Reemite a guia de pagamento das Guias de DMS
  */
 public function reemitirDmsGuiaAction()
 {
     parent::noTemplate();
     $iIdGuia = $this->getRequest()->getParam('guia', NULL);
     $sDataGuia = $this->getRequest()->getParam('data_guia', NULL);
     $oGuia = Contribuinte_Model_Guia::getById($iIdGuia);
     $oDadosGuia = $oGuia->getEntity();
     if ($this->getRequest()->isPost()) {
         $oValidaDatas = new Zend_Validate_Date();
         $sDataValidacao = DBSeller_Helper_Date_Date::invertDate($sDataGuia, '');
         if ($sDataValidacao < date('Ymd')) {
             $this->view->message = $this->translate->_('Informe uma data posterior a data atual.');
         } else {
             if (!$oValidaDatas->isValid($sDataGuia)) {
                 $this->view->message = $this->translate->_('Informe uma data para pagamento válida.');
             } else {
                 $aNovaGuia = $oGuia->reemitir($sDataGuia);
                 $this->view->arquivo = $aNovaGuia['arquivo'];
                 $this->view->guia = $aNovaGuia['objeto'];
             }
         }
     }
     $oFormCompetencia = new Contribuinte_Form_GuiaCompetencia();
     $oFormCompetencia->setAction('/contribuinte/guia/reemitir-dms-guia');
     $oFormCompetencia->removeElement('total_iss');
     $oFormCompetencia->removeElement('total_servico');
     $oFormCompetencia->getElement('data_guia')->setValue(date('d/m/Y'));
     $oFormCompetencia->preencheDms($oDadosGuia);
     $this->view->form = $oFormCompetencia;
 }