$nummoeda = "9";
$fator_vencimento = fator_vencimento($dadosboleto["data_vencimento"]);
//valor tem 10 digitos, sem virgula
$valor = formata_numero($dadosboleto["valor_boleto"], 10, 0, "valor");
//agencia é 4 digitos
$agencia = formata_numero($dadosboleto["agencia"], 4, 0);
//conta é 5 digitos
$conta = formata_numero($dadosboleto["conta"], 5, 0);
//dv da conta
$conta_dv = formata_numero($dadosboleto["conta_dv"], 1, 0);
//carteira é 2 caracteres
$carteira = $dadosboleto["carteira"];
//nosso número (sem dv) é 10 digitos
$nnum = $dadosboleto["inicio_nosso_numero"] . formata_numero($dadosboleto["nosso_numero"], 8, 0);
//dv do nosso número
$dv_nosso_numero = digitoVerificador_nossonumero($nnum);
$nossonumero_dv = "{$nnum}{$dv_nosso_numero}";
//conta cedente (sem dv) é 11 digitos
$conta_cedente = formata_numero($dadosboleto["conta_cedente"], 11, 0);
//dv da conta cedente
$conta_cedente_dv = formata_numero($dadosboleto["conta_cedente_dv"], 1, 0);
$ag_contacedente = $agencia . $conta_cedente;
// 43 numeros para o calculo do digito verificador do codigo de barras
$dv = digitoVerificador_barra("{$codigobanco}{$nummoeda}{$fator_vencimento}{$valor}{$nnum}{$ag_contacedente}", 9, 0);
// Numero para o codigo de barras com 44 digitos
$linha = "{$codigobanco}{$nummoeda}{$dv}{$fator_vencimento}{$valor}{$nnum}{$ag_contacedente}";
$nossonumero = substr($nossonumero_dv, 0, 10) . '-' . substr($nossonumero_dv, 10, 1);
$agencia_codigo = $agencia . " / " . $conta_cedente . "-" . $conta_cedente_dv;
$dadosboleto["codigo_barras"] = $linha;
$dadosboleto["linha_digitavel"] = monta_linha_digitavel($linha);
$dadosboleto["agencia_codigo"] = $agencia_codigo;
Beispiel #2
0
$conta_dv = formata_numero($dadosboleto["conta_dv"], 1, 0);
//carteira é 2 caracteres
$carteira = $dadosboleto["carteira"];
//conta cedente (sem dv) com 6 digitos
$conta_cedente = formata_numero($dadosboleto["conta_cedente"], 6, 0);
//dv da conta cedente
$conta_cedente_dv = digitoVerificador_cedente($conta_cedente);
//campo livre (sem dv) é 24 digitos
$campo_livre = $conta_cedente . $conta_cedente_dv . formata_numero($dadosboleto["nosso_numero1"], 3, 0) . formata_numero($dadosboleto["nosso_numero_const1"], 1, 0) . formata_numero($dadosboleto["nosso_numero2"], 3, 0) . formata_numero($dadosboleto["nosso_numero_const2"], 1, 0) . formata_numero($dadosboleto["nosso_numero3"], 9, 0);
//dv do campo livre
$dv_campo_livre = digitoVerificador_nossonumero($campo_livre);
$campo_livre_com_dv = "{$campo_livre}{$dv_campo_livre}";
//nosso número (sem dv) é 17 digitos
$nnum = formata_numero($dadosboleto["nosso_numero_const1"], 1, 0) . formata_numero($dadosboleto["nosso_numero_const2"], 1, 0) . formata_numero($dadosboleto["nosso_numero1"], 3, 0) . formata_numero($dadosboleto["nosso_numero2"], 3, 0) . formata_numero($dadosboleto["nosso_numero3"], 9, 0);
//nosso número completo (com dv) com 18 digitos
$nossonumero = $nnum . digitoVerificador_nossonumero($nnum);
// 43 numeros para o calculo do digito verificador do codigo de barras
$dv = digitoVerificador_barra("{$codigobanco}{$nummoeda}{$fator_vencimento}{$valor}{$campo_livre_com_dv}", 9, 0);
// Numero para o codigo de barras com 44 digitos
$linha = "{$codigobanco}{$nummoeda}{$dv}{$fator_vencimento}{$valor}{$campo_livre_com_dv}";
$agencia_codigo = $agencia . " / " . $conta_cedente . "-" . $conta_cedente_dv;
$dadosboleto["codigo_barras"] = $linha;
$dadosboleto["linha_digitavel"] = monta_linha_digitavel($linha);
$dadosboleto["agencia_codigo"] = $agencia_codigo;
$dadosboleto["nosso_numero"] = $nossonumero;
$dadosboleto["codigo_banco_com_dv"] = $codigo_banco_com_dv;
function digitoVerificador_nossonumero($numero)
{
    $resto2 = modulo_11($numero, 9, 1);
    $digito = 11 - $resto2;
    if ($digito == 10 || $digito == 11) {
$conta_dv = formata_numero($dadosboleto["conta_dv"], 1, 0);
//carteira é 2 caracteres
$carteira = $dadosboleto["carteira"];
//fillers - zeros Obs: filler1 contera 1 quando houver valor expresso no campo valor
$filler1 = 1;
$filler2 = 0;
// Byte de Identificação do cedente 1 - Cooperativa; 2 a 9 - Cedente
$byteidt = $dadosboleto["byte_idt"];
// Codigo referente ao tipo de cobrança: "3" - SICREDI
$tipo_cobranca = 3;
// Codigo referente ao tipo de carteira: "1" - Carteira Simples
$tipo_carteira = 1;
//nosso número (sem dv) é 8 digitos
$nnum = $dadosboleto["inicio_nosso_numero"] . $byteidt . formata_numero($dadosboleto["nosso_numero"], 5, 0);
//calculo do DV do nosso número
$dv_nosso_numero = digitoVerificador_nossonumero("{$agencia}{$posto}{$conta}{$nnum}");
$nossonumero_dv = "{$nnum}{$dv_nosso_numero}";
//formação do campo livre
$campolivre = "{$tipo_cobranca}{$tipo_carteira}{$nossonumero_dv}{$agencia}{$posto}{$conta}{$filler1}{$filler2}";
$campolivre_dv = $campolivre . digitoVerificador_campolivre($campolivre);
// 43 numeros para o calculo do digito verificador do codigo de barras
$dv = digitoVerificador_barra("{$codigobanco}{$nummoeda}{$fator_vencimento}{$valor}{$campolivre_dv}", 9, 0);
// Numero para o codigo de barras com 44 digitos
$linha = "{$codigobanco}{$nummoeda}{$dv}{$fator_vencimento}{$valor}{$campolivre_dv}";
// Formata strings para impressao no boleto
$nossonumero = substr($nossonumero_dv, 0, 2) . '/' . substr($nossonumero_dv, 2, 6) . '-' . substr($nossonumero_dv, 8, 1);
$agencia_codigo = $agencia . "." . $posto . "." . $conta;
$dadosboleto["codigo_barras"] = $linha;
$dadosboleto["linha_digitavel"] = monta_linha_digitavel($linha);
$dadosboleto["agencia_codigo"] = $agencia_codigo;
$dadosboleto["nosso_numero"] = $nossonumero;
$modalidade == "01" ? $modalidade_c1 = 1 : $modalidade_c1;
$modalidade == "04" ? $modalidade_c1 = 4 : $modalidade_c1;
$modalidade == "09" ? $modalidade_c1 = 9 : $modalidade_c1;
$modalidade == "13" ? $modalidade_c1 = 3 : $modalidade_c1;
$modalidade == "16" ? $modalidade_c1 = 6 : $modalidade_c1;
$modalidade == "17" ? $modalidade_c1 = 7 : $modalidade_c1;
$modalidade == "18" ? $modalidade_c1 = 8 : $modalidade_c1;
//nosso número (sem dv) é 9 digitos
$nnum = $dadosboleto["inicio_nosso_numero"] . formata_numero($dadosboleto["nosso_numero"], 7, 0);
//Agencia sem o digito + modalidade convertida e conta sem o dígito
$ag_contacedente = $agencia . $modalidade_c1 . $conta_cedente;
//
$carteira == 5 ? $prefixo = "9" : $prefixo;
$carteira == 1 ? $prefixo = "0" : $prefixo;
//Calcula o digito verificador do nosso número
$dv_nosso_numero = digitoVerificador_nossonumero($nnum, $conta_cedente, $conta_cedente_dv, $agencia, $modalidade);
$nossonumero_dv = "{$nnum}{$dv_nosso_numero}";
//pega o nosso numero a partir da 2º posição
$nnum = substr($nnum, 1);
//numero para o calculo dos dígitos verificadores da posição 43 e 44
$calcdv1 = $prefixo . $nnum . $ag_contacedente . $codigobanco;
//Gera os dígitos verificadores da posição 43 e 44
$dv1 = geraDv43($calcdv1);
$dv2 = geraDv44("{$calcdv1}{$dv1}");
//Se vier 2 caracteres significa que o dv2 deu 1 então o dv1 e o dv2 foi recalculado e retornado nesta string(Coisa do manual do banco =D !)
if (strlen($dv2) == 2) {
    $dv1 = substr($dv2, 0, 1);
    $dv2 = substr($dv2, 1, 1);
}
// DONE: Bugfix 2007-03-25 Francisco Ernesto Teixeira <*****@*****.**>
// Notice: Undefined variable: dv in funcoes_nossacaixa.php on line 93
function geraNossoNumero($ndoc)
{
    return $ndoc . "-" . digitoVerificador_nossonumero($ndoc);
}