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