function monta_linha_digitavel($codigo) { // Posição Conteúdo // 1 a 3 Número do banco // 4 Código da Moeda - 9 para Real ou 8 - outras moedas // 5 Fixo "9' // 6 a 9 PSK - codigo cliente (4 primeiros digitos) // 10 a 12 Restante do PSK (3 digitos) // 13 a 19 7 primeiros digitos do Nosso Numero // 20 a 25 Restante do Nosso numero (8 digitos) - total 13 (incluindo digito verificador) // 26 a 26 IOS // 27 a 29 Tipo Modalidade Carteira // 30 a 30 Dígito verificador do código de barras // 31 a 34 Fator de vencimento (qtdade de dias desde 07/10/1997 até a data de vencimento) // 35 a 44 Valor do título // 1. Primeiro Grupo - composto pelo código do banco, código da moéda, Valor Fixo "9" // e 4 primeiros digitos do PSK (codigo do cliente) e DV (modulo10) deste campo $campo1 = substr($codigo, 0, 3) . substr($codigo, 3, 1) . substr($codigo, 19, 1) . substr($codigo, 20, 4); $campo1 = $campo1 . modulo_10($campo1); $campo1 = substr($campo1, 0, 5) . '.' . substr($campo1, 5); // 2. Segundo Grupo - composto pelas 3 últimas posiçoes do PSK e 7 primeiros dígitos do Nosso Número // e DV (modulo10) deste campo $campo2 = substr($codigo, 24, 10); $campo2 = $campo2 . modulo_10($campo2); $campo2 = substr($campo2, 0, 5) . '.' . substr($campo2, 5); // 3. Terceiro Grupo - Composto por : Restante do Nosso Numero (6 digitos), IOS, Modalidade da Carteira // e DV (modulo10) deste campo $campo3 = substr($codigo, 34, 10); $campo3 = $campo3 . modulo_10($campo3); $campo3 = substr($campo3, 0, 5) . '.' . substr($campo3, 5); // 4. Campo - digito verificador do codigo de barras $campo4 = substr($codigo, 4, 1); // 5. Campo composto pelo fator vencimento e valor nominal do documento, sem // indicacao de zeros a esquerda e sem edicao (sem ponto e virgula). Quando se // tratar de valor zerado, a representacao deve ser 0000000000 (dez zeros). $campo5 = substr($codigo, 5, 4) . substr($codigo, 9, 10); return "{$campo1} {$campo2} {$campo3} {$campo4} {$campo5}"; }
function monta_linha_digitavel($codigo) { // Posição Conteúdo // 1 a 3 Número do banco // 4 Código da Moeda - 9 para Real // 5 Digito verificador do Código de Barras // 6 a 9 Fator de Vencimento // 10 a 19 Valor (8 inteiros e 2 decimais) // 20 a 44 Campo Livre definido por cada banco (25 caracteres) // 1. Campo - composto pelo código do banco, código da moéda, as cinco primeiras posições // do campo livre e DV (modulo10) deste campo $p1 = substr($codigo, 0, 4); $p2 = substr($codigo, 19, 5); $p3 = modulo_10("{$p1}{$p2}"); $p4 = "{$p1}{$p2}{$p3}"; $p5 = substr($p4, 0, 5); $p6 = substr($p4, 5); $campo1 = "{$p5}.{$p6}"; // 2. Campo - composto pelas posiçoes 6 a 15 do campo livre // e livre e DV (modulo10) deste campo $p1 = substr($codigo, 24, 10); $p2 = modulo_10($p1); $p3 = "{$p1}{$p2}"; $p4 = substr($p3, 0, 5); $p5 = substr($p3, 5); $campo2 = "{$p4}.{$p5}"; // 3. Campo composto pelas posicoes 16 a 25 do campo livre // e livre e DV (modulo10) deste campo $p1 = substr($codigo, 34, 10); $p2 = modulo_10($p1); $p3 = "{$p1}{$p2}"; $p4 = substr($p3, 0, 5); $p5 = substr($p3, 5); $campo3 = "{$p4}.{$p5}"; // 4. Campo - digito verificador do codigo de barras $campo4 = substr($codigo, 4, 1); // 5. Campo composto pelo fator vencimento e valor nominal do documento, sem // indicacao de zeros a esquerda e sem edicao (sem ponto e virgula). Quando se // tratar de valor zerado, a representacao deve ser 000 (tres zeros). $p1 = substr($codigo, 5, 4); $p2 = substr($codigo, 9, 10); $campo5 = "{$p1}{$p2}"; return "{$campo1} {$campo2} {$campo3} {$campo4} {$campo5}"; }
function monta_linha_digitavel($codigo) { $banco = substr($codigo, 0, 3); $moeda = substr($codigo, 3, 1); $k = substr($codigo, 4, 1); $fator = substr($codigo, 5, 4); $valor = substr($codigo, 9, 10); $ch = substr($codigo, -25); $p1 = $banco . $moeda . substr($ch, 0, 5); $dv_1 = modulo_10($p1); $campo1 = substr($p1, 0, 5) . '.' . substr($p1, -4) . $dv_1; $p12 = substr($ch, 5, 10); $dv_2 = modulo_10($p12); $campo2 = substr($p12, 0, 5) . '.' . substr($p12, -5) . $dv_2; $p13 = substr($ch, 15, 10); $dv_3 = modulo_10($p13); $campo3 = substr($p13, 0, 5) . '.' . substr($p13, -5) . $dv_3; $campo4 = $k; // 5. Campo composto pelo valor nominal pelo valor nominal do documento, sem // indicacao de zeros a esquerda e sem edicao (sem ponto e virgula). Quando se // tratar de valor zerado, a representacao deve ser 000 (tres zeros). $campo5 = $fator . $valor; return "{$campo1} {$campo2} {$campo3} {$campo4} {$campo5}"; /* // Composição da Linha Digitável // Primeiro Campo $Wtemp=$codigobanco.$nummoeda.substr($chaveasbace,0,5); $campo1=$Wtemp.modulo_10($Wtemp); $campo1=substr($campo1,0,5).".".substr($campo1,5,5); // Segundo Campo $Wtemp=substr($chaveasbace,5,10); $campo2=$Wtemp.modulo_10($Wtemp); $campo2=substr($campo2,0,5).".".substr($campo2,5,6); // Terceiro Campo $Wtemp=substr($chaveasbace,15,10); $campo3=$Wtemp.modulo_10($Wtemp); $campo3=substr($campo3,0,5).".".substr($campo3,5,6); // Quarto Campo //$Wtemp=substr($chaveasbace,15,10); //$campo4=$Wtemp.modulo_10($Wtemp); //$campo4=substr($campo4,0,5).".".substr($campo4,5,6); // Quinto Campo $campo5=$fator_vencimento.$valor; echo "$campo1 $campo2 $campo3 $dv $campo5"; //$nossonumero = substr($nossonumero_dv,0,14).'-'.substr($nossonumero_dv,14,1); //$agencia_codigo = $agencia." / ". $conta ."-". $conta_dv; */ }
function monta_linha_digitavel($codigo) { // Posição Conteúdo // 1 a 3 Número do banco // 4 Código da Moeda - 9 para Real // 5 Digito verificador do Código de Barras // 6 a 9 Fator de Vencimento // 10 a 19 Valor (8 inteiros e 2 decimais) // Campo Livre definido por cada banco (25 caracteres) // 20 a 26 Código do Cedente // 27 a 39 Código do Documento // 40 a 43 Data de Vencimento em Juliano (mmmy) // 44 Código do aplicativo CNR = 2 // 1. Campo - composto pelo código do banco, código da moéda, as cinco primeiras posições // do campo livre e DV (modulo10) deste campo $campo1 = substr($codigo, 0, 4) . substr($codigo, 19, 5); $campo1 = $campo1 . modulo_10($campo1); $campo1 = substr($campo1, 0, 5) . '.' . substr($campo1, 5, 5); // 2. Campo - composto pelas posiçoes 6 a 15 do campo livre // e livre e DV (modulo10) deste campo $campo2 = substr($codigo, 24, 2) . substr($codigo, 26, 8); $campo2 = $campo2 . modulo_10($campo2); $campo2 = substr($campo2, 0, 5) . '.' . substr($campo2, 5, 6); // 3. Campo composto pelas posicoes 16 a 25 do campo livre // e livre e DV (modulo10) deste campo $campo3 = substr($codigo, 34, 5) . substr($codigo, 39, 4) . substr($codigo, 43, 1); $campo3 = $campo3 . modulo_10($campo3); $campo3 = substr($campo3, 0, 5) . '.' . substr($campo3, 5, 6); // 4. Campo - digito verificador do codigo de barras $campo4 = substr($codigo, 4, 1); // 5. Campo composto pelo fator vencimento e valor nominal do documento, sem // indicacao de zeros a esquerda e sem edicao (sem ponto e virgula). Quando se // tratar de valor zerado, a representacao deve ser 000 (tres zeros). $campo5 = substr($codigo, 5, 4) . substr($codigo, 9, 10); return "{$campo1} {$campo2} {$campo3} {$campo4} {$campo5}"; }
function monta_linha_digitavel($linha) { // Posição Conteúdo // 1 a 3 Número do banco // 4 Código da Moeda - 9 para Real // 5 Digito verificador do Código de Barras // 6 a 19 Valor (12 inteiros e 2 decimais) // 20 a 44 Campo Livre definido por cada banco // 1. Campo - composto pelo código do banco, código da moéda, as cinco primeiras posições // do campo livre e DV (modulo10) deste campo $p1 = substr($linha, 0, 4); $p2 = substr($linha, 19, 5); $p3 = modulo_10("$p1$p2"); $p4 = "$p1$p2$p3"; $p5 = substr($p4, 0, 5); $p6 = substr($p4, 5); $campo1 = "$p5.$p6"; // 2. Campo - composto pelas posiçoes 6 a 15 do campo livre // e livre e DV (modulo10) deste campo $p1 = substr($linha, 24, 10); $p2 = modulo_10($p1); $p3 = "$p1$p2"; $p4 = substr($p3, 0, 5); $p5 = substr($p3, 5); $campo2 = "$p4.$p5"; // 3. Campo composto pelas posicoes 16 a 25 do campo livre // e livre e DV (modulo10) deste campo $p1 = substr($linha, 34, 10); $p2 = modulo_10($p1); $p3 = "$p1$p2"; $p4 = substr($p3, 0, 5); $p5 = substr($p3, 5); $campo3 = "$p4.$p5"; // 4. Campo - digito verificador do codigo de barras $campo4 = substr($linha, 4, 1); // 5. Campo composto pelo valor nominal pelo valor nominal do documento, sem // indicacao de zeros a esquerda e sem edicao (sem ponto e virgula). Quando se // tratar de valor zerado, a representacao deve ser 000 (tres zeros). $campo5 = substr($linha, 5, 14); return "$campo1 $campo2 $campo3 $campo4 $campo5"; }
function monta_linha_digitavel($codigo) { $banco = substr($codigo, 0, 3); $moeda = substr($codigo, 3, 1); $k = substr($codigo, 4, 1); $fator = substr($codigo, 5, 4); $valor = substr($codigo, 9, 10); $cvt = substr($codigo, 19, 1); $codigo_cliente = substr($codigo, 20, 7); $zero = substr($codigo, 27, 2); $nossonumero_dv = substr($codigo, 29, 15); $p1 = $banco . $moeda . $cvt . substr($codigo_cliente, 0, 4); $dv_1 = modulo_10($p1); $campo1 = substr($p1, 0, 5) . '.' . substr($p1, -4) . $dv_1; $p12 = substr($codigo_cliente, 4, 3) . $zero . substr($nossonumero_dv, 0, 5); $dv_2 = modulo_10($p12); $campo2 = substr($p12, 0, 5) . '.' . substr($p12, -5) . $dv_2; $p13 = substr($nossonumero_dv, 5, 10); $dv_3 = modulo_10($p13); $campo3 = substr($p13, 0, 5) . '.' . substr($p13, -5) . $dv_3; $campo4 = $k; // 5. Campo composto pelo valor nominal pelo valor nominal do documento, sem // indicacao de zeros a esquerda e sem edicao (sem ponto e virgula). Quando se // tratar de valor zerado, a representacao deve ser 000 (tres zeros). $campo5 = $fator . $valor; return "{$campo1} {$campo2} {$campo3} {$campo4} {$campo5}"; }
function monta_linha_digitavel($linha) { // Posição Conteúdo // 1 a 3 Número do banco // 4 Código da Moeda - 9 para Real // 5 Digito verificador do Código de Barras // 6 a 19 Valor (12 inteiros e 2 decimais) // 20 a 44 Campo Livre definido por cada banco // 1. Campo - composto pelo código do banco, código da moéda, as cinco primeiras posições // do campo livre e DV (modulo10) deste campo $p1 = substr($linha, 0, 4); $p2 = substr($linha, 19, 5); //apenas o numero significativo do lado esquerdo da carteira e agencia $p3 = modulo_10("{$p1}{$p2}"); $p4 = "{$p1}{$p2}{$p3}"; $p5 = substr($p4, 0, 5); $p6 = substr($p4, 5); $campo1 = "{$p5}.{$p6}"; // 2. Campo - composto pelas posiçoes 6 a 15 do campo livre // e livre e DV (modulo10) deste campo //$p10 = substr($linha, 20, 2); //modalidade $p1 = substr($linha, 24, 10); //cod beneficiario e 1 digito do nosso numero $p2 = modulo_10("{$p1}"); $p3 = "{$p1}{$p2}"; $p4 = substr($p3, 0, 5); $p5 = substr($p3, 5); $campo2 = "{$p4}.{$p5}"; // 3. Campo composto pelas posicoes 16 a 25 do campo livre // e livre e DV (modulo10) deste campo $p1 = substr($linha, 34, 10); //7 digitos restantes do nosso número e numero parcela $p2 = modulo_10($p1); $p3 = "{$p1}{$p2}"; $p4 = substr($p3, 0, 5); $p5 = substr($p3, 5); $campo3 = "{$p4}.{$p5}"; // 4. Campo - digito verificador do codigo de barras $campo4 = substr($linha, 4, 1); // 5. Campo composto pelo valor nominal pelo valor nominal do documento, sem // indicacao de zeros a esquerda e sem edicao (sem ponto e virgula). Quando se // tratar de valor zerado, a representacao deve ser 000 (tres zeros). $campo5 = substr($linha, 5, 14); return "{$campo1} {$campo2} {$campo3} {$campo4} {$campo5}"; }
function monta_linha_digitavel($codigo) { // 01-03 -> Código do banco sem o digito // 04-04 -> Código da Moeda (9-Real) // 05-05 -> Dígito verificador do código de barras // 06-09 -> Fator de vencimento // 10-19 -> Valor Nominal do Título // 20-44 -> Campo Livre (Abaixo) // 20-23 -> Código da Agencia (sem dígito) // 24-05 -> Número da Carteira // 26-36 -> Nosso Número (sem dígito) // 37-43 -> Conta do Cedente (sem dígito) // 44-44 -> Zero (Fixo) // 1. Campo - composto pelo código do banco, código da moéda, as cinco primeiras posições // do campo livre e DV (modulo10) deste campo $p1 = substr($codigo, 0, 4); // Numero do banco + Carteira $p2 = substr($codigo, 19, 5); // 5 primeiras posições do campo livre $p3 = modulo_10("{$p1}{$p2}"); // Digito do campo 1 $p4 = "{$p1}{$p2}{$p3}"; // União $campo1 = substr($p4, 0, 5) . '.' . substr($p4, 5); // 2. Campo - composto pelas posiçoes 6 a 15 do campo livre // e livre e DV (modulo10) deste campo $p1 = substr($codigo, 24, 10); //Posições de 6 a 15 do campo livre $p2 = modulo_10($p1); //Digito do campo 2 $p3 = "{$p1}{$p2}"; $campo2 = substr($p3, 0, 5) . '.' . substr($p3, 5); // 3. Campo composto pelas posicoes 16 a 25 do campo livre // e livre e DV (modulo10) deste campo $p1 = substr($codigo, 34, 10); //Posições de 16 a 25 do campo livre $p2 = modulo_10($p1); //Digito do Campo 3 $p3 = "{$p1}{$p2}"; $campo3 = substr($p3, 0, 5) . '.' . substr($p3, 5); // 4. Campo - digito verificador do codigo de barras $campo4 = substr($codigo, 4, 1); // 5. Campo composto pelo fator vencimento e valor nominal do documento, sem // indicacao de zeros a esquerda e sem edicao (sem ponto e virgula). Quando se // tratar de valor zerado, a representacao deve ser 000 (tres zeros). $p1 = substr($codigo, 5, 4); $p2 = substr($codigo, 9, 10); $campo5 = "{$p1}{$p2}"; return "{$campo1} {$campo2} {$campo3} {$campo4} {$campo5}"; }
function monta_linha_digitavel($linha) { // 1º. Campo: composto pelo código de Banco, código da moeda, as cinco primeiras posições do campo livre e dígito verificador (módulo 10) deste campo; // 2º. Campo: composto pelas posições 6ª. à 15ª. do campo livre e dígito verificador (módulo 10) deste campo; // 3º. Campo: composto pelas posições 16ª. à 25ª. do campo livre e dígito verificador (módulo 10) deste campo; // 4º. Campo: Dígito verificador do código de barras (dígito de autoconferência); // 5º. Campo: Composto pelo Fator de Vencimento (anexo 7) e o Valor Nominal do documento, com a inclusão de zeros entre eles até compor as 14 posições do campo, e sem edição de ponto e vírgula. // Quando se tratar de bloqueto sem discriminação de valor no código de barras a representação deverá ser com zeros. $campo1 = substr($linha, 0, 3) . substr($linha, 3, 1) . substr($linha, 19, 5); $campo1Digito = modulo_10($campo1); $campo2 = substr($linha, 24, 10); $campo2Digito = modulo_10($campo2); $campo3 = substr($linha, 34, 10); $campo3Digito = modulo_10($campo3); $campo4 = substr($linha, 4, 1); $campo5 = substr($linha, 5, 4) . substr($linha, 9, 10); // Monta linha digitável como deve imprimir $linha = substr($campo1, 0, 5) . "." . substr($campo1, 5) . $campo1Digito . " " . substr($campo2, 0, 5) . "." . substr($campo2, 5) . $campo2Digito . " " . substr($campo3, 0, 5) . "." . substr($campo3, 5) . $campo3Digito . " " . $campo4 . " " . $campo5; return $linha; }
function monta_linha_digitavel($dados) { // Padrão: Sudameris // POSIÇÃO CONTEÚDO // 1 a 3 Número do banco // 4 Código da Moeda // 5 a 8 Agência // 9 a 15 Conta // 16 Digitão // 17 a 29 Nosso número // 30 Dígito do código de barra // 31 a 34 Fator de vencimento // 35 a 44 Valor if (ereg('^([0-9]{5})([0-9]{4})([0-9]{5})([0-9]{5})([0-9]{5})([0-9]{5})([0-9]{1})([0-9]{4})([0-9]{10})$', $dados, $bloco)) { $dv1 = modulo_10($bloco[1] . $bloco[2]); if ($dv1 == 10) $dv1 = 0; $dv2 = modulo_10($bloco[3] . $bloco[4]); if ($dv2 == 10) $dv2 = 0; $dv3 = modulo_10($bloco[5] . $bloco[6]); if ($dv3 == 10) $dv3 = 0; return ($bloco[1] . '.' . $bloco[2] . $dv1 . ' ' . $bloco[3] . '.' . $bloco[4] . $dv2 . ' ' . $bloco[5] . '.' . $bloco[6] . $dv3 . ' ' . $bloco[7] . ' ' . $bloco[8] . $bloco[9]); } else return ''; }
function monta_linha_digitavel($codigo) { // campo 1 $banco = substr($codigo, 0, 3); $moeda = substr($codigo, 3, 1); $ccc = substr($codigo, 19, 3); $ddnnum = substr($codigo, 22, 2); $dv1 = modulo_10($banco . $moeda . $ccc . $ddnnum); // campo 2 $resnnum = substr($codigo, 24, 6); $dac1 = substr($codigo, 30, 1); //modulo_10($agencia.$conta.$carteira.$nnum); $dddag = substr($codigo, 31, 3); $dv2 = modulo_10($resnnum . $dac1 . $dddag); // campo 3 $resag = substr($codigo, 34, 1); $contadac = substr($codigo, 35, 6); //substr($codigo,35,5).modulo_10(substr($codigo,35,5)); $zeros = substr($codigo, 41, 3); $dv3 = modulo_10($resag . $contadac . $zeros); // campo 4 $dv4 = substr($codigo, 4, 1); // campo 5 $fator = substr($codigo, 5, 4); $valor = substr($codigo, 9, 10); $campo1 = substr($banco . $moeda . $ccc . $ddnnum . $dv1, 0, 5) . '.' . substr($banco . $moeda . $ccc . $ddnnum . $dv1, 5, 5); $campo2 = substr($resnnum . $dac1 . $dddag . $dv2, 0, 5) . '.' . substr($resnnum . $dac1 . $dddag . $dv2, 5, 6); $campo3 = substr($resag . $contadac . $zeros . $dv3, 0, 5) . '.' . substr($resag . $contadac . $zeros . $dv3, 5, 6); $campo4 = $dv4; $campo5 = $fator . $valor; return "{$campo1} {$campo2} {$campo3} {$campo4} {$campo5}"; }