Skip to content

Commit

Permalink
Merge pull request #264 from devguar/master
Browse files Browse the repository at this point in the history
Rejeições equivocadas no retorno do Sicredi
  • Loading branch information
eduardokum authored Feb 12, 2018
2 parents 9daa55c + e109456 commit c476b69
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 27 deletions.
Binary file modified manuais/SICREDI/manual-cnab-400.pdf
Binary file not shown.
14 changes: 10 additions & 4 deletions src/Cnab/Remessa/Cnab400/Banco/Banrisul.php
Original file line number Diff line number Diff line change
Expand Up @@ -295,10 +295,16 @@ public function addBoleto(BoletoContract $boleto)
$this->add(327, 334, Util::formatCnab('9L', $boleto->getPagador()->getCep(), 8));
$this->add(335, 349, Util::formatCnab('X', $boleto->getPagador()->getCidade(), 15));
$this->add(350, 351, Util::formatCnab('X', $boleto->getPagador()->getUf(), 2));
$this->add(352, 355, Util::formatCnab('9', 0, 3));
$this->add(356, 357, '');
$this->add(358, 369, '00');
$this->add(370, 371, Util::formatCnab('9', $boleto->getDiasProtesto($boleto->getDiasBaixaAutomatica()), 2));

if ($this->isCarteiraRSX()){
$this->add(352, 371, '');
}else{
$this->add(352, 355, Util::formatCnab('9', 0, 4));
$this->add(356, 357, '');
$this->add(358, 369, Util::formatCnab('9', 0, 12));
$this->add(370, 371, Util::formatCnab('9', $boleto->getDiasProtesto($boleto->getDiasBaixaAutomatica()), 2));
}

$this->add(372, 394, '');
$this->add(395, 400, Util::formatCnab('9', $this->iRegistros + 1, 6));

Expand Down
1 change: 1 addition & 0 deletions src/Cnab/Retorno/Cnab400/Banco/Banrisul.php
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,7 @@ protected function init()
{
$this->totais = [
'liquidados' => 0,
'erros' => 0,
'entradas' => 0,
'baixados' => 0,
'protestados' => 0,
Expand Down
33 changes: 10 additions & 23 deletions src/Cnab/Retorno/Cnab400/Banco/Sicredi.php
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,6 @@ class Sicredi extends AbstractRetorno implements RetornoCnab400
'08' => 'Nosso número inválido',
'09' => 'Nosso número duplicado',
'10' => 'Carteira inválida',
'14' => 'Título protestado',
'15' => 'Cooperativa/carteira/agência/conta/nosso número inválidos',
'16' => 'Data de vencimento inválida',
'17' => 'Data de vencimento anterior à data de emissão',
Expand Down Expand Up @@ -96,7 +95,6 @@ class Sicredi extends AbstractRetorno implements RetornoCnab400
'A5' => 'Pagador não cadastrado',
'A6' => 'Data da instrução/ocorrência inválida',
'A7' => 'Ocorrência não pode ser comandada',
'A8' => 'Recebimento da liquidação fora da rede Sicredi - via compensação eletrônica',
'B4' => 'Tipo de moeda inválido',
'B5' => 'Tipo de desconto/juros inválido',
'B6' => 'Mensagem padrão não cadastrada',
Expand Down Expand Up @@ -150,10 +148,7 @@ class Sicredi extends AbstractRetorno implements RetornoCnab400
'H2' => 'Sustação judicial',
'H3' => 'Pagador não encontrado',
'H4' => 'Alteração de carteira',
'H5' => 'Recebimento de liquidação fora da rede Sicredi – VLB Inferior – Via Compensação',
'H6' => 'Recebimento de liquidação fora da rede Sicredi – VLB Superior – Via Compensação',
'H7' => 'Espécie de documento necessita beneficiário ou avalista PJ',
'H8' => 'Recebimento de liquidação fora da rede Sicredi – Contingência Via Compe',
'H9' => 'Dados do título não conferem com disquete',
'I1' => 'Pagador e Sacador Avalista são a mesma pessoa',
'I2' => 'Aguardar um dia útil após o vencimento para protestar',
Expand Down Expand Up @@ -187,20 +182,7 @@ class Sicredi extends AbstractRetorno implements RetornoCnab400
'L3' => 'Apresentante não aceita publicação de edital',
'L4' => 'Dados do Pagador em Branco ou inválido',
'L5' => 'Código do Pagador na agência beneficiária está duplicado',
'M1' => 'Reconhecimento da dívida pelo pagador',
'M2' => 'Não reconhecimento da dívida pelo pagador',
'X1' => 'Regularização centralizadora – Rede Sicredi',
'X2' => 'Regularização centralizadora – Compensação',
'X3' => 'Regularização centralizadora – Banco correspondente',
'X4' => 'Regularização centralizadora - VLB Inferior - via compensação',
'X5' => 'Regularização centralizadora - VLB Superior - via compensação',
'X0' => 'Pago com cheque',
'X6' => 'Pago com cheque – bloqueado 24 horas',
'X7' => 'Pago com cheque – bloqueado 48 horas',
'X8' => 'Pago com cheque – bloqueado 72 horas',
'X9' => 'Pago com cheque – bloqueado 96 horas',
'XA' => 'Pago com cheque – bloqueado 120 horas',
'XB' => 'Pago com cheque – bloqueado 144 horas',
];

/**
Expand Down Expand Up @@ -236,7 +218,9 @@ protected function processarHeader(array $header)
protected function processarDetalhe(array $detalhe)
{
$d = $this->detalheAtual();

$d->setNossoNumero($this->rem(48, 62, $detalhe))
->setNumeroControle($this->rem(117, 126, $detalhe))
->setNumeroDocumento($this->rem(117, 126, $detalhe))
->setOcorrencia($this->rem(109, 110, $detalhe))
->setOcorrenciaDescricao(array_get($this->ocorrencias, $d->getOcorrencia(), 'Desconhecida'))
Expand All @@ -252,10 +236,7 @@ protected function processarDetalhe(array $detalhe)
->setDataCredito($this->rem(329, 336, $detalhe), 'Ymd');

if ($d->hasOcorrencia('06', '15', '16')) {
$this->totais['valor_recebido'] += $d->getValorRecebido();
}

if ($d->hasOcorrencia('06', '15', '16')) {
$this->totais['valor_recebido'] += $d->getValorRecebido();
$this->totais['liquidados']++;
$d->setOcorrenciaTipo($d::OCORRENCIA_LIQUIDADA);
} elseif ($d->hasOcorrencia('02')) {
Expand Down Expand Up @@ -283,8 +264,14 @@ protected function processarDetalhe(array $detalhe)
$error[] = array_get($this->rejeicoes, $errorsRetorno[0], '');
$error[] = array_get($this->rejeicoes, $errorsRetorno[1], '');
$error[] = array_get($this->rejeicoes, $errorsRetorno[2], '');
$error[] = array_get($this->rejeicoes, $errorsRetorno[3], '');
$error[] = array_get($this->rejeicoes, $errorsRetorno[4], '');
$d->setError(implode(PHP_EOL, $error));

$error = array_filter($error);

if (count($error) > 0){
$d->setError(implode(PHP_EOL, $error));
}
}

return true;
Expand Down

0 comments on commit c476b69

Please sign in to comment.