Skip to content

Commit

Permalink
daycoval retorno
Browse files Browse the repository at this point in the history
  • Loading branch information
eduardokum committed Oct 15, 2024
1 parent 82ba593 commit d1738a0
Show file tree
Hide file tree
Showing 2 changed files with 132 additions and 12 deletions.
130 changes: 127 additions & 3 deletions src/Cnab/Retorno/Cnab400/Banco/Daycoval.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,31 @@ class Daycoval extends AbstractRetorno implements RetornoCnab400
* @var array
*/
private $ocorrencias = [

'01' => 'Entrada Confirmada na CIP',
'02' => 'Entrada Confirmada',
'03' => 'Entrada Rejeitada',
'05' => 'Campo Livre Alterado',
'06' => 'Liquidação Normal',
'08' => 'Liquidação em Cartório',
'09' => 'Baixa Automática',
'10' => 'Baixa por ter sido liquidado',
'12' => 'Confirma Abatimento',
'13' => 'Abatimento Cancelado',
'14' => 'Vencimento Alterado',
'15' => 'Baixa Rejeitada',
'16' => 'Instrução Rejeitada',
'19' => 'Confirma Recebimento de Ordem de Protesto',
'20' => 'Confirma Recebimento de Ordem de Sustação',
'22' => 'Seu Número Alterado',
'23' => 'Título enviado para Cartório',
'24' => 'Confirma recebimento de ordem de não protestar',
'28' => 'Débito de tarifas/custas – Correspondentes',
'40' => 'Tarifa de entrada (debitada na liquidação)',
'43' => 'Baixado por ter sido protestado',
'96' => 'Tarifa sobre instruções – Mês anterior',
'97' => 'Tarifa sobre baixas – Mês anterior',
'98' => 'Tarifa sobre entradas – Mês anterior',
'99' => 'Tarifa sobre instrução de protesto/sustação – mês anterior',
];

/**
Expand All @@ -33,7 +57,108 @@ class Daycoval extends AbstractRetorno implements RetornoCnab400
* @var array
*/
private $rejeicoes = [

'03' => [
'03' => 'CEP inválido – Não temos cobrador – Cobrador não Localizado',
'04' => 'Sigla do Estado inválida',
'05' => 'Data de Vencimento inválida ou fora do prazo mínimo',
'06' => 'Código do Banco inválido',
'08' => 'Nome do sacado não informado',
'10' => 'Logradouro não informado',
'14' => 'Registro em duplicidade',
'19' => 'Data de desconto inválida ou maior que a data de vencimento',
'20' => 'Valor de IOF não numérico',
'21' => 'Movimento para título não cadastrado no sistema',
'22' => 'Valor de desconto + abatimento maior que o valor do título',
'25' => 'CNPJ ou CPF do sacado inválido (aceito com restrições)',
'26' => 'Espécies de documento inválida (difere de 01...10,13 e 99)',
'27' => 'Data de emissão do título inválida',
'28' => 'Seu número não informado',
'29' => 'CEP é igual a espaço ou zeros; ou não numérico',
'30' => 'Valor do título não numérico ou inválido',
'36' => 'Valor de permanência não numérico',
'37' => 'Valor de permanência inconsistente, pois, dentro de um mês, será maior que o valor do título',
'38' => 'Valor de desconto/abatimento não numérico ou inválido',
'39' => 'Valor de abatimento não numérico',
'42' => 'Título já existente em nossos registros. Nosso número não aceito',
'43' => 'Título enviado em duplicidade nesse movimento',
'44' => 'Título zerado ou em branco; ou não numérico na remessa',
'46' => 'Título enviado fora da faixa de Nosso Número, estipulada para o cliente',
'51' => 'Tipo/Número de Inscrição Sacador/Avalista Inválido',
'52' => 'Sacador/Avalista não informado',
'53' => 'Prazo de vencimento do título excede ao da contratação',
'54' => 'Banco informado não é nosso correspondente 140-142',
'55' => 'Banco correspondente informado não cobra este CEP ou não possui faixas de CEP cadastradas',
'56' => 'Nosso número no correspondente não foi informado',
'57' => 'Remessa contendo duas instruções incompatíveis – não protestar e dias de protesto ou prazo para protesto inválido',
'58' => 'Entradas Rejeitadas – Reprovado no Represamento para Análise',
'60' => 'CNPJ/CPF do sacado inválido – título recusado',
'87' => 'Excede Prazo máximo entre emissão e vencimento',
'99' => 'Título não acatado pelo banco – entrar em contato Gerente da conta',
'AA' => 'Serviço de Cobrança inválido',
'AB' => 'Nossa Carteira inválida',
'AE' => 'Título não possui abatimento',
'AI' => 'Nossa Cobrança inválida',
'AJ' => 'Modalidade com bancos correspondentes inválida',
'AL' => 'Sacado impedido de entrar nesta cobrança',
'AU' => 'Data de ocorrência inválida',
'AV' => 'Valor de tarifa de cobrança inválida',
'AX' => 'Título em pagamento parcial',
'BC' => 'Análise gerencial-sacado inválido p/operação crédito',
'BD' => 'Análise gerencial-sacado inadimplente',
'BE' => 'Análise gerencial-sacado difere do exigido',
'BF' => 'Análise gerencial-vencto excede vencto da operação de crédito',
'BG' => 'Análise gerencial-sacado com baixa liquidez',
'BH' => 'Análise gerencial-sacado excede concentração',
'CC' => 'Valor de iof incompatível com a espécie documento',
'CD' => 'Efetivação de protesto sem agenda válida',
'CE' => 'Título não aceito - pessoa física',
'CF' => 'Excede prazo máximo da entrada ao vencimento',
'CG' => 'Título não aceito – por análise gerencial',
'CH' => 'Título em espera – em análise pelo banco',
'CJ' => 'Análise gerencial-vencto do titulo abaixo przcurto',
'CK' => 'Análise gerencial-vencto do titulo abaixo przlongo',
'CS' => 'Título rejeitado pela checagem de duplicatas',
'DA' => 'Análise gerencial – Entrada de Título Descontado com limite cancelado',
'DB' => 'Análise gerencial – Entrada de Título Descontado com limite vencido',
'DC' => 'Análise gerencial - cedente com limite cancelado',
'DD' => 'Análise gerencial – cedente é sacado e teve seu limite cancelado',
'DE' => 'Análise gerencial - apontamento no Serasa',
'DG' => 'Endereço sacador/avalista não informado',
'DH' => 'Cep do sacador/avalista não informado',
'DI' => 'Cidade do sacador/avalista não informado',
'DJ' => 'Estado do sacador/avalista inválido ou não informado',
'DM' => 'Cliente sem Código de Flash cadastrado no cobrador',
'DN' => 'Título Descontado com Prazo ZERO – Recusado',
'DP' => 'Data de Referência menor que a Data de Emissão do Título',
'DT' => 'Nosso Número do Correspondente não deve ser informado',
'EB' => 'HSBC não aceita endereço de sacado com mais de 38 caracteres',
],
'15' => [
'05' => 'Solicitação de baixa para título já baixado ou liquidado',
'06' => 'Solicitação de baixa para título não registrado no sistema',
'08' => 'Solicitação de baixa para título em float',
],
'16' => [
'04' => 'Data de Vencimento não numérica ou inválida',
'05' => 'Data de vencimento inválida ou fora do prazo mínimo',
'14' => 'Registro em duplicidade',
'19' => 'Data de desconto inválida ou maior que a data de vencimento',
'20' => 'Campo livre informado',
'21' => 'Título não registrado no sistema',
'22' => 'Título baixado ou liquidado',
'26' => 'Espécie de documento inválida',
'27' => 'Instrução não aceita, por não ter sido emitida ordem de protesto ao cartório',
'28' => 'Título tem instrução de cartório ativa',
'29' => 'Título não tem instrução de cartório ativa',
'30' => 'Existe instrução de não protestar, ativa para o título',
'36' => 'Valor de permanência (mora) não numérico',
'37' => 'Título Descontado - Instrução não permitida para a carteira',
'38' => 'Valor do abatimento não numérico ou maior que a soma do valor do título + permanência + multa',
'39' => 'Título em cartório',
'40' => 'Instrução recusada - cobrança vinculada / caucionada',
'44' => 'Título zerado ou em branco ou não numérico na remessa',
'99' => 'Ocorrência desconhecida na remessa',
],
];

/**
Expand Down Expand Up @@ -89,7 +214,6 @@ protected function processarDetalhe(array $detalhe)
->setValor(Util::nFloat($this->rem(153, 165, $detalhe) / 100, 2, false))
->setValorTarifa(Util::nFloat($this->rem(176, 188, $detalhe) / 100, 2, false))
->setValorIOF(Util::nFloat($this->rem(215, 227, $detalhe) / 100, 2, false))
->setValorAbatimento(Util::nFloat($this->rem(228, 240, $detalhe) / 100, 2, false))
->setValorDesconto(Util::nFloat($this->rem(241, 253, $detalhe) / 100, 2, false))
->setValorRecebido(Util::nFloat($this->rem(254, 266, $detalhe) / 100, 2, false))
->setValorMora(Util::nFloat($this->rem(267, 279, $detalhe) / 100, 2, false));
Expand Down
14 changes: 5 additions & 9 deletions src/Util.php
Original file line number Diff line number Diff line change
Expand Up @@ -510,9 +510,9 @@ public static function formatCnab($tipo, $valor, $tamanho, $dec = 0, $sFill = ''

// 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)));
return strtolower(sprintf("%$left$sFill$tamanho$type", mb_substr($valor, 0, $tamanho)));
} else {
return sprintf("%{$left}{$sFill}{$tamanho}{$type}", mb_substr($valor, 0, $tamanho));
return sprintf("%$left$sFill$tamanho$type", mb_substr($valor, 0, $tamanho));
}
}

Expand Down Expand Up @@ -896,7 +896,7 @@ public static function isCnab400($content)
/**
* @param $file
*
* @return array|bool
* @return array
*/
public static function file2array($file)
{
Expand Down Expand Up @@ -1101,7 +1101,7 @@ public static function getBancoClass($banco)
*/
public static function addPessoa(&$property, $obj)
{
if (is_subclass_of($obj, 'Eduardokum\\LaravelBoleto\\Contracts\\Pessoa')) {
if (is_subclass_of($obj, "Eduardokum\LaravelBoleto\Contracts\Pessoa")) {
$property = $obj;

return $obj;
Expand All @@ -1123,7 +1123,7 @@ public static function addPessoa(&$property, $obj)
*/
public static function addNotaFiscal(&$property, $obj)
{
if (is_subclass_of($obj, 'Eduardokum\\LaravelBoleto\\Contracts\\NotaFiscal')) {
if (is_subclass_of($obj, "Eduardokum\LaravelBoleto\Contracts\NotaFiscal")) {
$property[] = $obj;

return $obj;
Expand Down Expand Up @@ -1192,12 +1192,10 @@ public static function validarCpf($cpf)
}
for ($s = 10, $n = 0, $i = 0; $s >= 2; $n += $c[$i++] * $s--);
if ($c[9] != ((($n %= 11) < 2) ? 0 : 11 - $n)) {

return false;
}
for ($s = 11, $n = 0, $i = 0; $s >= 2; $n += $c[$i++] * $s--);
if ($c[10] != ((($n %= 11) < 2) ? 0 : 11 - $n)) {

return false;
}

Expand All @@ -1217,12 +1215,10 @@ public static function validarCnpj($cnpj)
}
for ($i = 0, $n = 0; $i < 12; $n += $c[$i] * $b[++$i]);
if ($c[12] != ((($n %= 11) < 2) ? 0 : 11 - $n)) {

return false;
}
for ($i = 0, $n = 0; $i <= 12; $n += $c[$i] * $b[$i++]);
if ($c[13] != ((($n %= 11) < 2) ? 0 : 11 - $n)) {

return false;
}

Expand Down

0 comments on commit d1738a0

Please sign in to comment.