From 8775217e45b9de3aac48a4485eb51912cbc53e0c Mon Sep 17 00:00:00 2001 From: Thiago Souza Date: Wed, 17 Apr 2024 17:23:52 -0300 Subject: [PATCH] =?UTF-8?q?Refatora=C3=A7=C3=A3o:=20converter=20e-mails=20?= =?UTF-8?q?para=20min=C3=BAsculas=20na=20atualiza=C3=A7=C3=A3o=20de=20chav?= =?UTF-8?q?e=20PIX=20do=20Santander?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Este commit ajusta o módulo de processamento de chave PIX do Santander para garantir que todos os e-mails sejam convertidos para minúsculas. Essa mudança melhora a consistência dos dados e evita problemas relacionados à sensibilidade de maiúsculas e minúsculas em comparações e validações de e-mail. --- src/Cnab/Remessa/Cnab400/Banco/Santander.php | 2 +- src/Util.php | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/Cnab/Remessa/Cnab400/Banco/Santander.php b/src/Cnab/Remessa/Cnab400/Banco/Santander.php index a4007cf1..3c8c5832 100644 --- a/src/Cnab/Remessa/Cnab400/Banco/Santander.php +++ b/src/Cnab/Remessa/Cnab400/Banco/Santander.php @@ -258,7 +258,7 @@ public function addBoleto(BoletoContract $boleto) $this->add(25, 37, Util::formatCnab('9', $boleto->getValor(), 13, 2)); $this->add(38, 42, Util::formatCnab('9', 100, 5, 2)); $this->add(43, 43, Util::formatCnab('9', $tipoChave[$boleto->getPixChaveTipo()], 1)); - $this->add(44, 120, Util::formatCnab('X', $boleto->getPixChave(), 77)); + $this->add(44, 120, Util::formatCnab('Z', $boleto->getPixChave(), 77)); $this->add(121, 155, Util::formatCnab('X', $boleto->getID(), 35)); $this->add(156, 394, ''); $this->add(395, 400, Util::formatCnab('9', $this->iRegistros + 1, 6)); diff --git a/src/Util.php b/src/Util.php index bbd62e42..209e52bb 100644 --- a/src/Util.php +++ b/src/Util.php @@ -501,14 +501,19 @@ public static function formatCnab($tipo, $valor, $tamanho, $dec = 0, $sFill = '' $type = 's'; $valor = ($dec > 0) ? sprintf("%.{$dec}f", $valor) : $valor; $valor = str_replace([',', '.'], '', $valor); - } elseif (in_array($tipo, ['A', 'X'])) { + } elseif (in_array($tipo, ['A', 'X', 'Z'])) { // Adiciona 'x' como uma condição válida $left = '-'; $type = 's'; } else { throw new ValidationException('Tipo inválido'); } - return sprintf("%{$left}{$sFill}{$tamanho}{$type}", mb_substr($valor, 0, $tamanho)); + // Verifica se o tipo é 'x' minúsculo e então retorna a string em minúsculas + if ($tipo === 'Z') { + return strtolower(sprintf("%{$left}{$sFill}{$tamanho}{$type}", mb_substr($valor, 0, $tamanho))); + } else { + return sprintf("%{$left}{$sFill}{$tamanho}{$type}", mb_substr($valor, 0, $tamanho)); + } } /**