コード例 #1
0
ファイル: funcoes_santander.php プロジェクト: workcrm/consoli
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}";
}
コード例 #2
0
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}";
}
コード例 #3
0
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;
    */
}
コード例 #4
0
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}";
}
コード例 #5
0
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"; 
}
コード例 #6
0
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}";
}
コード例 #7
0
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}";
}
コード例 #8
0
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}";
}
コード例 #9
0
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;
}
コード例 #10
0
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 '';
}
コード例 #11
0
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}";
}