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