Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ///////////////////////////////////////////////////////////////////////////////////
- ///// //////
- ///// AQUI É O BUSCADOR DE ARQUIVOS PDF E VERIFICA SE TEM LINHA DIGITÁVEL //////
- ///// /////
- /////////////////////////////////////////////////////////////////////////////////
- procedure BuscadorPorParticoes(P: Pointer);
- var
- I : Integer;
- LETRA : String;
- c: char;
- ExitCode: Cardinal;
- begin
- ListaDeArquivos := TStringList.Create;
- try
- LETRA := 'H:\'; // Testando com boletos PDF presentes em meu Pen Drive
- c:= LETRA[1];
- ShowMessage('ESCANEANDO: ' + LETRA + '*.pdf' + ' [' + TUtilitarios.GetDriveTypeName( IntToStr(GetDriveType(PWideChar(LETRA))) ) + ']' + ' ['+ TUtilitarios.GetVolumeName(c)+']');
- BuscadorDeArquivos(LETRA, '*.pdf');
- ShowMessage('Concluído');
- for I := 0 to ListaDeArquivos.Count-1 do // Aqui temos um TStringList com o caminho de cada PDF encontrado no Buscador de PDF's
- begin
- try
- Form1.ExtrairDadosDoPDF( ListaDeArquivos.Strings[I] ); // Extrai dados do boleto antigo
- if Linha then begin // Se for um boleto realmente ( verifica se tem uma Linha Digitável )
- Form1.FR.NomeArquivo:= ListaDeArquivos.Strings[I];
- DeleteFile(ListaDeArquivos.Strings[I]); // Primeiro deleta o boleto antigo para em seguida gerar o novo boleto
- Form1.Button2.Click; // Gera um novo boleto
- end;
- except
- Continue;
- end;
- end;
- FreeAndNil(ListaDeArquivos);
- finally
- GetExitCodeThread(tHandle, ExitCode);
- CloseHandle(tHandle); // ---- Libera o ID dessa handle para ser utilizada na próxima Thread gerada
- ExitThread(ExitCode); // ---- Finaliza a Thread
- end;
- end;
- ////////////////////////////////////////////////////////////////////////////////////////////////////
- //// ////
- //// PROCEDIMENTO RESPONSÁVEL PELA GERAÇÃO DE UM BOLETO EM FORMATO PDF ////
- //// ////
- ////////////////////////////////////////////////////////////////////////////////////////////////////
- procedure TForm1.Button2Click(Sender: TObject);
- var
- Titulo : TACBrTitulo;
- Numero: String;
- DV_Banco: Integer;
- begin
- with Boleto.Banco do
- begin
- case COD_Banco of
- 001: begin
- TipoCobranca := cobBancoDoBrasil;
- DV_Banco:= 9;
- Cart:= '16';
- end;
- 004: begin
- TipoCobranca := cobBancoDoNordeste;
- Dv_Banco:= 3;
- Cart:= '51';
- end;
- 033: begin
- TipoCobranca := cobSantander;
- DV_Banco:= 7;
- Cart:= '';
- end;
- 041: begin
- TipoCobranca := cobBanrisul;
- dv_banco:= 8;
- Cart:= '1';
- end;
- 070: begin
- TipoCobranca := cobBRB;
- dv_banco:= 1;
- Cart:= '1';
- end;
- 104: begin
- TipoCobranca := cobCaixaEconomica;
- DV_Banco:= 0;
- Cart:= 'SR';
- end;
- 237: begin
- TipoCobranca := cobBradesco;
- DV_Banco:= 2;
- Cart:= '06';
- end;
- 341: begin
- TipoCobranca := cobItau;
- dv_banco:= 7;
- Cart:= '175';
- end;
- 399: begin
- TipoCobranca := cobHSBC;
- dv_banco:= 9;
- Cart:= '';
- end;
- 422: begin
- TipoCobranca := cobBancoSafra;
- DV_Banco:= 7;
- Cart:= '01';
- end;
- 748: begin
- TipoCobranca := cobSicred;
- dv_banco:= 1;
- Cart:= '';
- end;
- end;
- end;
- //------------------------------------------
- with Boleto.Banco do
- begin
- Digito := DV_Banco;
- Nome := Banco_Nome;
- Numero := COD_Banco;
- TamanhoMaximoNossoNum := 8;
- end;
- with Boleto.Cedente do
- begin
- Agencia := Ag;
- AgenciaDigito := AgDig;
- Bairro := '';
- CaracTitulo := tcSimples;
- CodigoCedente := Cta;
- Conta := Cta;
- ContaDigito := CtaDig;
- Nome := Cedente;
- ResponEmissao := tbCliEmite;
- TipoInscricao := pFisica;
- end;
- DataEmissao := DateToStr(Now);
- DataVencimento := DateToStr(IncMonth(StrToDate(DataVencimento),0));
- DataMulta_Juros := DateToStr(StrToDate(DataVencimento)+1);
- Randomize;
- Numero := IntToStr(Random(99999999));
- Titulo := Boleto.CriarTituloNaLista;
- with Titulo do
- begin
- // pegar data emissao?
- Vencimento := StrToDate(DataVencimento);
- DataDocumento := StrToDate(DataEmissao);
- EspecieDoc := 'DM';
- Aceite := atSim;
- NossoNumero := Numero;
- Carteira := Cart;
- EspecieMod := 'R$';
- DataProcessamento := Now;
- // ---- Informações Sobre a Duplicata ----
- ValorDocumento := StrToCurr(Valor_Boleto);
- NumeroDocumento := '0000000001';
- // ---- SACADO ----
- Sacado.NomeSacado := Sacado_Name;
- Sacado.CNPJCPF := OnlyNumber(PF);
- // ---- Informações Sobre a Cobrança ----
- LocalPagamento := 'Pagar preferêncialmente nas agências '+ Banco_Nome;
- ValorMoraJuros := StrToCurrDef('5',0);
- ValorDesconto := StrToCurrDef('0',0);
- ValorAbatimento := StrToCurrDef('0',0);
- DataMoraJuros := StrToDateDef(DataMulta_Juros, 0);
- DataDesconto := StrToDateDef(xDataDesconto, 0);
- DataAbatimento := StrToDateDef(xDataAbatimento, 0);
- DataProtesto := StrToDateDef(xDataProtesto, 0);
- PercentualMulta := StrToCurrDef('5',0);
- Mensagem.Text := ''; // ''+#13#10+''+
- OcorrenciaOriginal.Tipo := toRemessaBaixar;
- Instrucao1 := PadLeft(trim(''),2,'0');
- Instrucao2 := PadLeft(trim(''),2,'0');
- end;
- try
- FR.GerarPDF;
- MessageBox(Handle, 'Boleto gerado com sucesso!', 'Informação', MB_ICONINFORMATION or MB_OK);
- except
- MessageBox(Handle, 'Ocorreram problemas ao gerar o boleto.', 'Erro', MB_ICONERROR or MB_OK);
- end;
- end;
Add Comment
Please, Sign In to add comment