Ir para conteúdo
  • Cadastre-se

dev botao

[ACBrBoleto] - Sicoob


Ver Solução Respondido por Marcos Gerene,
  • Este tópico foi criado há 2354 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Boa noite a todos,

Tive um retorno do Sicoob na remessa que mandei de testes que acredito que envolva ajustes também no componente.

layout sicoob.pdf

Atualmente eu emitia boleto apenas pelo Bradesco e este está ok.

Meu código:

procedure TBoleto.GetBoletos(GerarPDF: boolean);
var
qryContasReceber : TZQuery;
begin
try
  ACBrBoleto.ListadeBoletos.Clear;

  qryContasReceber := TZQuery.Create(nil);
  qryContasReceber.Connection := FrmPrincipal.Conexao;
  qryContasReceber.SQL.Add('SELECT CONTAS_RECEBER.*, CLIENTE.*, CIDADE.* FROM CONTAS_RECEBER');
  qryContasReceber.SQL.Add('INNER JOIN CLIENTE ON CLIENTE.CLI_CODIGO = CONTAS_RECEBER.CLI_CODIGO');
  qryContasReceber.SQL.Add('INNER JOIN CIDADE ON CIDADE.CID_CODIGO = CLIENTE.CID_CODIGO');
  qryContasReceber.SQL.Add('WHERE CONTAS_RECEBER.CR_CODIGO IN ('+FCodigos+')');
  qryContasReceber.Open;

  while not qryContasReceber.EOF do
    begin
    if (GerarPDF) then
      ACBrBoleto.ListadeBoletos.Clear;

    with ACBrBoleto.CriarTituloNaLista do
      begin
      OcorrenciaOriginal.Tipo := toRemessaRegistrar;

      Sacado.NomeSacado := qryContasReceber.FieldByName('CLI_RAZAO').AsString;
      Sacado.CNPJCPF    := qryContasReceber.FieldByName('CLI_CNPJ').AsString;
      if (Length(qryContasReceber.FieldByName('CLI_CNPJ').AsString) = 11) then
         Sacado.Pessoa := pFisica
      else
         Sacado.Pessoa := pJuridica;
      Sacado.Logradouro := qryContasReceber.FieldByName('CLI_LOGRADOURO').AsString;
      Sacado.Numero     := qryContasReceber.FieldByName('CLI_NUMERO').AsString;
      Sacado.Bairro     := qryContasReceber.FieldByName('CLI_BAIRRO').AsString;
      Sacado.Cidade     := qryContasReceber.FieldByName('CID_NOME').AsString;
      Sacado.UF         := qryContasReceber.FieldByName('CID_UF').AsString;
      Sacado.CEP        := qryContasReceber.FieldByName('CLI_CEP').AsString;
      if Length(qryContasReceber.FieldByName('CLI_EMAIL').AsString) > 5 then
        Sacado.Email := qryContasReceber.FieldByName('CLI_EMAIL').AsString;
      if Length(qryContasReceber.FieldByName('CLI_TELEFONE').AsString) > 3 then
        Sacado.Fone := qryContasReceber.FieldByName('CLI_TELEFONE').AsString;

      EspecieMod              := 'R$';
      Vencimento              := qryContasReceber.FieldByName('CR_VENCIMENTO').AsDateTime;
      DataDocumento           := qryContasReceber.FieldByName('CR_LANCAMENTO').AsDateTime;
      NumeroDocumento         := qryContasReceber.FieldByName('CR_CODIGO').AsString;
      SeuNumero               := qryContasReceber.FieldByName('CR_CODIGO').AsString;
      NossoNumero             := qryContasReceber.FieldByName('CR_CODIGO').AsString;
      EspecieDoc              := 'DM';
      Aceite                  := atNao;
      Carteira                := FCarteira;
      DataProcessamento       := Now;
      LocalPagamento          := ACBrBoleto.Banco.LocalPagamento;
      ValorDocumento          := qryContasReceber.FieldByName('CR_VALOR').AsFloat;
      PercentualMulta         := FPercentualMulta;
      if (FPercentualMulta > 0) then
        begin
        ValorMoraJuros    := (qryContasReceber.FieldByName('CR_VALOR').AsFloat * FPercentualMulta / 100) / 30;
        DataMoraJuros     := IncDay(Vencimento, 1);
        end;

      if (FDiasProtesto > 0) then
        begin
        TipoDiasProtesto := diUteis;
        DataProtesto     := IncDay(Vencimento, FDiasProtesto);
        end;

      TipoImpressao := tipNormal;
      end;

    if (GerarPDF) then
      begin
      ACBrBoletoRpt := TACBrBoletoFCLazReport.Create(nil);
      ACBrBoleto.ACBrBoletoFC := ACBrBoletoRpt;

      ACBrBoletoRpt.DirLogo := diretorio_logotipos;
      ACBrBoletoRpt.NomeArquivo := ACBrBoleto.DirArqRemessa + '\bol_' + FormatFloat('000000000', qryContasReceber.FieldByName('CR_CODIGO').AsInteger) + '.pdf';
      ACBrBoletoRpt.GerarPDF;

      ACBrBoleto.ACBrBoletoFC := nil;
      ACBrBoletoRpt.Free;
      end;

    qryContasReceber.Next;
    end;
finally
  qryContasReceber.Free;
end;
end; 

 

Att, Marcos

Marcos Gerene

[email protected]

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois ...
  • Solution

Somente para dar um feedback, por minha aplicação ser em C# optei reescrever a minha rotina de boletos usando um componente nativo (https://github.com/BoletoNet/boleto2net) e remover a ultima dependência externa que meu projeto ainda tinha do Lazarus (boletos).

 

Att, Marcos

 

Marcos Gerene

[email protected]

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 2354 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.