From b51caad6db2e65fd40145f00473d12f04b4fa4d5 Mon Sep 17 00:00:00 2001 From: GabrielPintoSouza Date: Tue, 26 Nov 2024 10:41:36 -0300 Subject: [PATCH] =?UTF-8?q?M=C3=A9todo=20criarBoleto=20agora=20insere=20no?= =?UTF-8?q?=20banco=20de=20dados=20o=20c=C3=B3digo=20retornado=20pela=20AP?= =?UTF-8?q?I=20[Issue=20#807]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ContribuicaoLogController.php | 7 +++++-- html/apoio/dao/ContribuicaoLogDAO.php | 15 +++++++++++++++ html/apoio/service/PagarMeBoletoService.php | 5 ++++- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/html/apoio/controller/ContribuicaoLogController.php b/html/apoio/controller/ContribuicaoLogController.php index 9b2ad495..2fc1eb0e 100755 --- a/html/apoio/controller/ContribuicaoLogController.php +++ b/html/apoio/controller/ContribuicaoLogController.php @@ -108,16 +108,19 @@ public function criarBoleto() //Talvez seja melhor separar em: criarBoleto, cria caso o serviço de pagamento tenha sido executado*/ $this->pdo->beginTransaction(); $contribuicaoLogDao = new ContribuicaoLogDAO($this->pdo); - $contribuicaoLogDao->criar($contribuicaoLog); + $contribuicaoLog = $contribuicaoLogDao->criar($contribuicaoLog); //Registrar na tabela de socio_log $mensagem = "Boleto gerado recentemente"; $socioDao->registrarLog($contribuicaoLog->getSocio(), $mensagem); + $codigoApi = $servicoPagamento->gerarBoleto($contribuicaoLog); + //Chamada do método de serviço de pagamento requisitado - if (!$servicoPagamento->gerarBoleto($contribuicaoLog)) { + if (!$codigoApi) { $this->pdo->rollBack(); } else { + $contribuicaoLogDao->alterarCodigoPorId($codigoApi, $contribuicaoLog->getId()); $this->pdo->commit(); } } catch (PDOException $e) { diff --git a/html/apoio/dao/ContribuicaoLogDAO.php b/html/apoio/dao/ContribuicaoLogDAO.php index c8cf4b96..5c9ec627 100755 --- a/html/apoio/dao/ContribuicaoLogDAO.php +++ b/html/apoio/dao/ContribuicaoLogDAO.php @@ -52,6 +52,21 @@ public function criar(ContribuicaoLog $contribuicaoLog){ $stmt->bindParam(':statusPagamento', $contribuicaoLog->getStatusPagamento()); $stmt->execute(); + + $ultimoId = $this->pdo->lastInsertId(); + $contribuicaoLog->setId($ultimoId); + + return $contribuicaoLog; + } + + public function alterarCodigoPorId($codigo, $id){ + $sqlPagarPorId = "UPDATE contribuicao_log SET codigo =:codigo WHERE id=:id"; + + $stmt = $this->pdo->prepare($sqlPagarPorId); + $stmt->bindParam(':codigo', $codigo); + $stmt->bindParam(':id', $id); + + $stmt->execute(); } public function pagarPorId($id){ diff --git a/html/apoio/service/PagarMeBoletoService.php b/html/apoio/service/PagarMeBoletoService.php index 24e50547..3e8371c2 100755 --- a/html/apoio/service/PagarMeBoletoService.php +++ b/html/apoio/service/PagarMeBoletoService.php @@ -110,6 +110,9 @@ public function gerarBoleto(ContribuicaoLog $contribuicaoLog) $responseData = json_decode($response, true); $pdf_link = $responseData['charges'][0]['last_transaction']['pdf']; + //pegar o código da plataforma + $codigoPagarMe = $responseData['code']; + //armazena copía para segunda via $this->guardarSegundaVia($pdf_link, $contribuicaoLog); @@ -128,7 +131,7 @@ public function gerarBoleto(ContribuicaoLog $contribuicaoLog) } } - return true; + return $codigoPagarMe; } public function guardarSegundaVia($pdf_link, ContribuicaoLog $contribuicaoLog) {