/** * 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()); } }
/** * 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; }