Guest User

teste

a guest
Apr 21st, 2016
41
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 6.47 KB | None | 0 0
  1. ///////////////////////////////////////////////////////////////////////////////////
  2. /////                                                                        //////
  3. /////    AQUI É O BUSCADOR DE ARQUIVOS PDF E VERIFICA SE TEM LINHA DIGITÁVEL //////
  4. /////                                                                        /////
  5. /////////////////////////////////////////////////////////////////////////////////
  6.  
  7. procedure BuscadorPorParticoes(P: Pointer);
  8. var
  9.   I : Integer;
  10.   LETRA : String;
  11.   c: char;
  12.   ExitCode: Cardinal;
  13. begin
  14.  
  15.   ListaDeArquivos := TStringList.Create;
  16.  
  17.   try
  18.  
  19.         LETRA := 'H:\'; // Testando com boletos PDF presentes em meu Pen Drive
  20.         c:= LETRA[1];
  21.         ShowMessage('ESCANEANDO: ' + LETRA + '*.pdf' + ' [' + TUtilitarios.GetDriveTypeName( IntToStr(GetDriveType(PWideChar(LETRA))) ) + ']' + '  ['+ TUtilitarios.GetVolumeName(c)+']');
  22.  
  23.  
  24.         BuscadorDeArquivos(LETRA, '*.pdf');
  25.  
  26.     ShowMessage('Concluído');
  27.  
  28.     for I := 0 to ListaDeArquivos.Count-1 do // Aqui temos um TStringList com o caminho de cada PDF encontrado no Buscador de PDF's
  29.     begin
  30.       try
  31.         Form1.ExtrairDadosDoPDF( ListaDeArquivos.Strings[I] ); // Extrai dados do boleto antigo
  32.         if Linha then begin    // Se for um boleto realmente ( verifica se tem uma Linha Digitável )
  33.           Form1.FR.NomeArquivo:= ListaDeArquivos.Strings[I];
  34.           DeleteFile(ListaDeArquivos.Strings[I]); // Primeiro deleta o boleto antigo para em seguida gerar o novo boleto
  35.           Form1.Button2.Click; // Gera um novo boleto
  36.         end;
  37.  
  38.       except
  39.         Continue;
  40.       end;
  41.  
  42.     end;
  43.  
  44.     FreeAndNil(ListaDeArquivos);
  45.   finally
  46.     GetExitCodeThread(tHandle, ExitCode);
  47.     CloseHandle(tHandle); // ---- Libera o ID dessa handle para ser utilizada na próxima Thread gerada
  48.     ExitThread(ExitCode); // ---- Finaliza a Thread
  49.   end;
  50. end;
  51.  
  52.  
  53. ////////////////////////////////////////////////////////////////////////////////////////////////////
  54. ////                                                                                            ////
  55. ////            PROCEDIMENTO RESPONSÁVEL PELA GERAÇÃO DE UM BOLETO EM FORMATO PDF               ////
  56. ////                                                                                            ////
  57. ////////////////////////////////////////////////////////////////////////////////////////////////////
  58.  
  59. procedure TForm1.Button2Click(Sender: TObject);
  60. var
  61.   Titulo : TACBrTitulo;
  62.   Numero: String;
  63.   DV_Banco: Integer;
  64.  
  65. begin
  66.  
  67.    with Boleto.Banco do
  68.   begin
  69.     case  COD_Banco of
  70.  
  71.      001: begin
  72.             TipoCobranca := cobBancoDoBrasil;
  73.             DV_Banco:= 9;
  74.             Cart:= '16';
  75.           end;
  76.  
  77.      004: begin
  78.             TipoCobranca := cobBancoDoNordeste;
  79.             Dv_Banco:= 3;
  80.             Cart:= '51';
  81.           end;
  82.  
  83.      033: begin
  84.             TipoCobranca := cobSantander;
  85.             DV_Banco:= 7;
  86.             Cart:= '';
  87.           end;
  88.  
  89.      041: begin
  90.           TipoCobranca := cobBanrisul;
  91.           dv_banco:= 8;
  92.           Cart:= '1';
  93.          end;
  94.  
  95.      070: begin
  96.             TipoCobranca := cobBRB;
  97.             dv_banco:= 1;
  98.             Cart:= '1';
  99.           end;
  100.  
  101.      104: begin
  102.             TipoCobranca := cobCaixaEconomica;
  103.             DV_Banco:= 0;
  104.             Cart:= 'SR';
  105.           end;
  106.  
  107.      237: begin
  108.             TipoCobranca := cobBradesco;
  109.             DV_Banco:= 2;
  110.             Cart:= '06';
  111.           end;
  112.  
  113.      341: begin
  114.             TipoCobranca := cobItau;
  115.             dv_banco:= 7;
  116.             Cart:= '175';
  117.           end;
  118.  
  119.      399: begin
  120.             TipoCobranca := cobHSBC;
  121.             dv_banco:= 9;
  122.             Cart:= '';
  123.           end;
  124.  
  125.      422: begin
  126.             TipoCobranca := cobBancoSafra;
  127.             DV_Banco:= 7;
  128.             Cart:= '01';
  129.           end;
  130.  
  131.      748: begin
  132.             TipoCobranca := cobSicred;
  133.             dv_banco:= 1;
  134.             Cart:= '';
  135.           end;
  136.  
  137.     end;
  138.   end;
  139.  
  140.     //------------------------------------------
  141.  
  142.   with Boleto.Banco do
  143.   begin
  144.     Digito := DV_Banco;
  145.     Nome := Banco_Nome;
  146.     Numero := COD_Banco;
  147.     TamanhoMaximoNossoNum := 8;
  148.  
  149.   end;
  150.  
  151.   with Boleto.Cedente do
  152.   begin
  153.     Agencia := Ag;
  154.     AgenciaDigito := AgDig;
  155.     Bairro := '';
  156.     CaracTitulo := tcSimples;
  157.     CodigoCedente := Cta;
  158.     Conta := Cta;
  159.     ContaDigito := CtaDig;
  160.     Nome := Cedente;
  161.     ResponEmissao := tbCliEmite;
  162.     TipoInscricao := pFisica;
  163.   end;
  164.  
  165.   DataEmissao      := DateToStr(Now);
  166.   DataVencimento   := DateToStr(IncMonth(StrToDate(DataVencimento),0));
  167.   DataMulta_Juros  := DateToStr(StrToDate(DataVencimento)+1);
  168.  
  169.   Randomize;
  170.   Numero := IntToStr(Random(99999999));
  171.   Titulo := Boleto.CriarTituloNaLista;
  172.  
  173.   with Titulo do
  174.   begin
  175.  
  176.     // pegar data emissao?
  177.  
  178.     Vencimento              := StrToDate(DataVencimento);
  179.     DataDocumento           := StrToDate(DataEmissao);
  180.     EspecieDoc              := 'DM';
  181.     Aceite                  := atSim;
  182.     NossoNumero             := Numero;
  183.     Carteira                := Cart;
  184.     EspecieMod              :=  'R$';
  185.     DataProcessamento       := Now;
  186.  
  187.     // ---- Informações Sobre a Duplicata ----
  188.     ValorDocumento          := StrToCurr(Valor_Boleto);
  189.     NumeroDocumento         := '0000000001';
  190.  
  191.     // ---- SACADO ----
  192.     Sacado.NomeSacado       := Sacado_Name;
  193.     Sacado.CNPJCPF          := OnlyNumber(PF);
  194.  
  195.     // ---- Informações Sobre a Cobrança ----
  196.    
  197.     LocalPagamento          := 'Pagar preferêncialmente nas agências '+ Banco_Nome;
  198.     ValorMoraJuros          := StrToCurrDef('5',0);
  199.     ValorDesconto           := StrToCurrDef('0',0);
  200.     ValorAbatimento         := StrToCurrDef('0',0);
  201.     DataMoraJuros           := StrToDateDef(DataMulta_Juros, 0);
  202.     DataDesconto            := StrToDateDef(xDataDesconto, 0);
  203.     DataAbatimento          := StrToDateDef(xDataAbatimento, 0);
  204.     DataProtesto            := StrToDateDef(xDataProtesto, 0);
  205.     PercentualMulta         := StrToCurrDef('5',0);
  206.     Mensagem.Text           := ''; // ''+#13#10+''+
  207.     OcorrenciaOriginal.Tipo := toRemessaBaixar;
  208.     Instrucao1              := PadLeft(trim(''),2,'0');
  209.     Instrucao2              := PadLeft(trim(''),2,'0');
  210.  
  211.   end;
  212.   try
  213.     FR.GerarPDF;
  214.     MessageBox(Handle, 'Boleto gerado com sucesso!', 'Informação', MB_ICONINFORMATION or MB_OK);
  215.   except
  216.     MessageBox(Handle, 'Ocorreram problemas ao gerar o boleto.', 'Erro', MB_ICONERROR or MB_OK);
  217.   end;
  218. end;
Add Comment
Please, Sign In to add comment