8000 Linha Digitavel - Sicredi · Issue #173 · openboleto/openboleto · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
Linha Digitavel - Sicredi #173
Open
Open
@FabricioGRodrigues

Description

@FabricioGRodrigues

Estou tento dificuldade em gerar a linha digital dos boletos do sicredi.
Um exemplo:
74891.12222 00008.807182 62013.091004 1 89460000100000 - BANCO
74891.12222 00008.708 71800.013097 1 89460000100000 - Que eu gero,

A classe uso a mesma de exemplo.
https://github.com/openboleto/openboleto/blob/master/src/OpenBoleto/Banco/Sicredi.php

Unica modificação que faço é no getSequencial(), pois o numero que tenho no banco tem 222000088, e eu mantenho como no exemplo não gera o boleto :

/**
* Gera o Nosso Número.
*
* @return string
*/
protected function gerarNossoNumero() {
$ano = date("y");

    $numero = self::zeroFill($this->getAgencia(), 4) .
              self::zeroFill($this->getPosto(), 2) .
              self::zeroFill($this->getConta(), 5) .
              self::zeroFill($ano, 2) .
              $this->bytecode .
              self::zeroFill($this->getSequencial(), 9);

    $dv = static::modulo11($numero);

    return self::zeroFill($ano, 2) . '/' . $this->bytecode . self::zeroFill($this->getSequencial(), 9) . '-' . $dv['digito'];
}

/**
 * Método para gerar o código da posição de 20 a 44
 *
 * @return string
 * @throws \OpenBoleto\Exception
 */
public function getCampoLivre() {
    $numero = $this->tipoCobranca .
            '1' .
            self::zeroFill($this->getNossoNumero(false), 13) .
            self::zeroFill($this->getAgencia(), 4) .
            self::zeroFill($this->getPosto(), 2) .
            self::zeroFill($this->getConta(), 5) .
            '1' .
            '0';

    $dv = static::modulo11($numero);

    return $numero . $dv['digito'];
}

Na chamada da classe, está assim, pego os dados do banco.

$dados = $this->obtemDados($cid, "748");
$boleto = $dados["boleto"];
$sacado = $dados["sacado"];
$cedente = $dados["cedente"];

$objBoleto = new Sicredi([
// Parâmetros obrigatórios
"dataVencimento" => new DateTime($boleto["b748_data_venc"]),
"dataDocumento" => DateTime::createFromFormat(
"d/m/Y",
$boleto["b748_data_docu"]
),
"valor" => +preg_replace(
["/[^0-9\.\,]/", "/,/"],
["", "."],
$boleto["b748_valor"]
),
"sequencial" => substr($boleto["b748_no_banc"], 0, -1),
"carteiraDv" => substr($boleto["b748_no_banc"], -1),
'sacado' => $sacado,
'cedente' => $cedente,
"agencia" => str_pad($boleto["b748_empr_agen"], 4, "0", STR_PAD_LEFT),
"conta" => str_pad($boleto["b748_empr_cont"], 5, "0", STR_PAD_LEFT),
"contaDv" => $boleto["b748_empr_cont_dv"],
"carteira" => $boleto["b748_empr_cart"],
'numeroDocumento' => $boleto["b748_titu_parc"],
'descricaoDemonstrativo' => array(
$boleto["b748_clie_demo1"],
$boleto["b748_clie_demo2"],
),
'instrucoes' => array(
$boleto["b748_clie_inst1"],
$boleto["b748_clie_inst2"],
$boleto["b748_clie_inst3"],
$boleto["b748_clie_inst4"],
),
]);

Uso o openBoleto para outros bancos, e tudo ok. Esse eu não sei o que acontece.
Alguém tem alguma dica?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0