/**
  * Gera a guia do prestador no eCidade
  *
  * @param                                $oContribuinte
  * @param Contribuinte_Model_Competencia $oCompetencia
  * @param DateTime                       $oDataPagamento
  * @param bool                           $lGerarPdf
  * @return mixed
  */
 public static function gerarGuiaNFSE($oContribuinte, Contribuinte_Model_Competencia $oCompetencia, DateTime $oDataPagamento, $lGerarPdf = TRUE)
 {
     try {
         $iMesCompetencia = $oCompetencia->getMesComp();
         $iAnoCompetencia = $oCompetencia->getAnoComp();
         $aNotas = $oCompetencia->getNotas();
         $sDataPagamento = $oDataPagamento->format('d/m/Y');
         $oUsuarioContribuinte = Administrativo_Model_UsuarioContribuinte::getById($oContribuinte->getIdUsuarioContribuinte());
         $oDoctrine = Zend_Registry::get('em');
         $oDoctrine->getConnection()->beginTransaction();
         // Salva guia antes de ser gerada
         $oGuia = new Contribuinte_Model_Guia();
         $oGuia->gerarGuiaPrestador($oContribuinte, $oCompetencia, $oDataPagamento);
         $oGuiaGerar = self::montaDadosGuia($oUsuarioContribuinte, $iAnoCompetencia, $iMesCompetencia, $aNotas, $sDataPagamento, $oGuia->getId());
         $oGuiaGerada = NULL;
         $oGuiaGerada = self::gerarGuia($oGuiaGerar, $sDataPagamento, Contribuinte_Model_GuiaEcidade::TIPO_DEBITO_VARIAVEL);
         // Complementa a guia com os dados retornados do webservice
         $oGuia->complementaGuiaPrestador($oGuiaGerada);
         if ($lGerarPdf) {
             $oGuiaGerada->arquivo_guia = Contribuinte_Model_GuiaEcidade::salvarPdf($oGuiaGerada->debito->dados_boleto->arquivo_guia, 'guia_substituto');
         }
         $oDoctrine->getConnection()->commit();
         return $oGuiaGerada;
     } catch (Exception $oError) {
         $oDoctrine->getConnection()->rollback();
         throw new Exception($oError->getMessage());
     }
 }
Exemplo n.º 2
0
 /**
  * Gera guia prestador
  *
  * @param Contribuinte_Model_ContribuinteAbstract $oContribuinte
  * @param stdClass                                $oGuiaGerada
  * @param Contribuinte_Model_Competencia          $oCompetencia
  * @param DateTime                                $oDataPagamento
  * @return object                                 $this
  */
 public function gerarGuiaPrestador(Contribuinte_Model_ContribuinteAbstract $oContribuinte, $oCompetencia, $oDataPagamento)
 {
     $oDebito = NULL;
     try {
         $this->setNumpre(NULL);
         $this->setAnoComp($oCompetencia->getAnoComp());
         $this->setMesComp($oCompetencia->getMesComp());
         $this->setIdContribuinte($oContribuinte->getIdUsuarioContribuinte());
         $this->setVencimento($oDataPagamento);
         $this->setSituacao(self::$ABERTA);
         $this->setTipo(self::$PRESTADOR);
         $this->setTipoDocumentoOrigem(self::$DOCUMENTO_ORIGEM_NFSE);
         // Adiciona as notas da guia
         $aNotasGuia = $oCompetencia->getNotas();
         foreach ($aNotasGuia as $oNota) {
             $this->addNota($oNota->getEntity());
         }
         $this->persist();
     } catch (Exception $oErro) {
         echo $oErro->getMessage();
     }
     return $this;
 }