Ir para conteúdo
  • Cadastre-se

dev botao

Remessa Arquivo


  • Este tópico foi criado há 2987 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro

Boa tarde!

Estou com um problema e näo sei como resolver, o sistema esta gerando boleto, imprimindo, gerando o arquivo para remessa ate ai parece estar blz,

ocorre que o arquivo enviado para o banco Bradesco esta sendo aceito sem rejeição, mas quando o cliente entra no site para verificar a lista dos boleto em banco eles näo aparece.

segue abaixo um arquivo de remessa e a estrutura do sistema (fonte) espero que alguém indique a besteira que estou fazendo

desde já fico agradecido.

 

procedure TF_GerarRemessaBoletos.lb_gerarClick(Sender: TObject);
var TD: TTransactionDesc;
  MyString:TstringList;
  ic:Cardinal;
  vrche:TListItem;

  Titulo    : TACBrTitulo;
  I         : Integer;
  NrTitulos,Seq,mxseq : Integer;
  NrTitulosStr :String;
  Convertido: Boolean;
    dia,mes:String;  
begin
  lb_gerar.Enabled := False;

  dia:=FormatDateTime('DD',Date);
  mes:=FormatDateTime('MM',Date);
  
  for ic := 0 to lv_boletos.items.count-1 do
    if lv_boletos.items.item[ic].checked then
      begin
        vrche:=lv_boletos.Items.Item[ic]; //obtém o item da linha X

        MyString := TstringList.Create;
        MyString.Clear;
        MyString.Add('select a.bol_codigo, a.bol_codcc, a.bol_nossonumero, a.bol_numtitulo, a.bol_vrtitulo, a.bol_dataemissao,');
        MyString.Add('a.bol_datavenc, a.bol_codparceiro, a.bol_nome, a.bol_ntitulo, a.bol_inscricao, a.bol_endereco,');
        MyString.Add('a.bol_numero, a.bol_complemento, a.bol_bairro, a.bol_cidade, a.bol_cep, a.bol_uf, a.bol_vrjrsdia,');
        MyString.Add('a.bol_vrdescdia, a.bol_abat, a.bol_datajrs, a.bol_datadesc, a.bol_dataabat, a.bol_dataprotesto,');
        MyString.Add('a.bol_inst_1, a.bol_inst_2, a.bol_mensagens, a.bol_especie,');
        MyString.Add('b.cof_codigo, b.cof_codcc, b.cof_localpgto, b.cof_diasprotesto, b.cof_instrucao_1, b.cof_instrucao_2, b.cof_carteira ');
        MyString.Add('from st_boleto a ');
        MyString.Add('inner join st_configboleto b ');
        MyString.Add('on a.bol_codcc = b.cof_codcc ');
        MyString.Add('where a.bol_codigo = :a.bol_codigo');
        F_GerarRemessaBoletos.cds_bol.Close;
        F_GerarRemessaBoletos.cds_bol.CommandText:=MyString.Text;
        F_GerarRemessaBoletos.cds_bol.Params[0].AsInteger := StrToInt(vrche.Caption);
        F_GerarRemessaBoletos.cds_bol.Open;
        MyString.Free;

        while not F_GerarRemessaBoletos.cds_bol.Eof do
          begin

            Titulo:= ACBrBoleto1.CriarTituloNaLista;

            F_DMdados.cdsCCbancos.Close;
            F_DMdados.cdsCCbancos.CommandText := 'SELECT * FROM STCOTCORRENTE WHERE CC_CODIGO = :CC_CODIGO';
            F_DMdados.cdsCCbancos.Params[0].AsInteger := F_GerarRemessaBoletos.cds_bolCOF_CODCC.AsInteger;
            F_DMdados.cdsCCbancos.Open;

            if (F_DMdados.cdsCCbancos.RecordCount <> 0) then
              begin
                F_DMdados2.cdsParBolBco.Close;
                F_DMdados2.cdsParBolBco.CommandText := 'SELECT * FROM ST_PARAMBOLETOBCO WHERE COB_CODCC = :COB_CODCC';
                F_DMdados2.cdsParBolBco.Params[0].AsInteger := F_GerarRemessaBoletos.cds_bolCOF_CODCC.AsInteger;
                F_DMdados2.cdsParBolBco.Open;

                ACBrBoleto1.Cedente.Nome          := F_DMdados.cdsCCbancosCC_TITULAR.AsString;

                if Length(Trim(F_DMdados2.cdsParBolBcoCOB_CNPJ_CPF.AsString)) = 11 then
                  begin
                    ACBrBoleto1.Cedente.TipoInscricao := pFisica;
                  end
                 else
                  begin
                    ACBrBoleto1.Cedente.TipoInscricao := pJuridica;
                  end;

                ACBrBoleto1.Cedente.CNPJCPF       := F_DMdados2.cdsParBolBcoCOB_CNPJ_CPF.AsString;
                ACBrBoleto1.Cedente.Logradouro    := F_DMdados2.cdsParBolBcoCOB_END.AsString+' '+F_DMdados.cdsCCbancosCC_CIDADE.AsString+' '+F_DMdados.cdsCCbancosCC_ESTADO.AsString;
                ACBrBoleto1.Cedente.Agencia       := F_DMdados.cdsCCbancosCC_AGENCIA.AsString;
                ACBrBoleto1.Cedente.AgenciaDigito := IntToStr(F_DMdados.cdsCCbancosCC_DIGITOAG.AsInteger);
                ACBrBoleto1.Cedente.Conta         := F_DMdados.cdsCCbancosCC_CONTCOR.AsString;
                ACBrBoleto1.Cedente.ContaDigito   := IntToStr(F_DMdados.cdsCCbancosCC_DIGITOCC.AsInteger);
                ACBrBoleto1.Cedente.CodigoCedente := IntToStr(F_DMdados2.cdsParBolBcoCOB_CODCOBRANCA.AsInteger);
                ACBrBoleto1.Cedente.TipoCarteira  := tctRegistrada;
                ACBrBoleto1.Cedente.CaracTitulo   := tcSimples;

              end;

            with Titulo do
              begin
                Vencimento        := IncMonth(F_GerarRemessaBoletos.cds_bolBOL_DATAVENC.AsDateTime);
                DataDocumento     := F_GerarRemessaBoletos.cds_bolBOL_DATAEMISSAO.AsDateTime;
                NumeroDocumento   := F_GerarRemessaBoletos.cds_bolBOL_NTITULO.AsString;
                EspecieDoc        := F_GerarRemessaBoletos.cds_bolBOL_ESPECIE.AsString;
                Aceite            := atSim;
                EspecieMod        := 'R$';
                 DataProcessamento := Now;
//                Parcela           := F_GerarRemessaBoletos.cds
//                TotalParcelas
                NossoNumero       := IntToStr(F_GerarRemessaBoletos.cds_bolBOL_NOSSONUMERO.AsInteger);
                Carteira          := '01';
                ValorDocumento    := F_GerarRemessaBoletos.cds_bolBOL_VRTITULO.AsCurrency;
                Sacado.NomeSacado := F_GerarRemessaBoletos.cds_bolBOL_NOME.AsString;
                Sacado.CNPJCPF    := F_GerarRemessaBoletos.cds_bolBOL_INSCRICAO.AsString;
                Sacado.Logradouro := F_GerarRemessaBoletos.cds_bolBOL_ENDERECO.AsString;
                Sacado.Numero     := F_GerarRemessaBoletos.cds_bolBOL_NUMERO.AsString;
                Sacado.Bairro     := F_GerarRemessaBoletos.cds_bolBOL_BAIRRO.AsString;
                Sacado.Cidade     := F_GerarRemessaBoletos.cds_bolBOL_CIDADE.AsString;
                Sacado.UF         := F_GerarRemessaBoletos.cds_bolBOL_UF.AsString;
                Sacado.CEP        := F_GerarRemessaBoletos.cds_bolBOL_CEP.AsString;
                ValorAbatimento   := F_GerarRemessaBoletos.cds_bolBOL_ABAT.AsCurrency;
                LocalPagamento    := F_GerarRemessaBoletos.cds_bolCOF_LOCALPGTO.AsString; //MEnsagem exigida pelo bradesco
                ValorMoraJuros    := F_GerarRemessaBoletos.cds_bolBOL_VRJRSDIA.AsCurrency;
                ValorDesconto     := F_GerarRemessaBoletos.cds_bolBOL_VRDESCDIA.AsCurrency;
                DataMoraJuros     := F_GerarRemessaBoletos.cds_bolBOL_DATAJRS.AsDateTime;
                DataDesconto      := F_GerarRemessaBoletos.cds_bolBOL_DATADESC.AsCurrency;
                DataAbatimento    := F_GerarRemessaBoletos.cds_bolBOL_DATAABAT.AsDateTime;
                DataProtesto      := F_GerarRemessaBoletos.cds_bolBOL_DATAPROTESTO.AsDateTime;
                PercentualMulta   := 0;
                Mensagem.Text     := F_GerarRemessaBoletos.cds_bolBOL_MENSAGENS.AsString;
                OcorrenciaOriginal.Tipo := toRemessaRegistrar;
                CarteiraEnvio     := tceCedente;
                Instrucao1        := F_GerarRemessaBoletos.cds_bolBOL_INST_1.AsString;
                Instrucao2        := F_GerarRemessaBoletos.cds_bolBOL_INST_2.AsString;

                ACBrBoleto1.AdicionarMensagensPadroes(Titulo,Mensagem);

              end;

            try
              TD.TransactionID:=1;
              TD.IsolationLevel:= xilREADCOMMITTED;
              F_DMdados.SQLConn.StartTransaction(TD);

              F_DMdados2.cdsBoleto.Close;
              F_DMdados2.cdsBoleto.CommandText := 'SELECT * FROM ST_BOLETO WHERE BOL_CODIGO = :BOL_CODIGO';
              F_DMdados2.cdsBoleto.Params[0].AsInteger := F_GerarRemessaBoletos.cds_bolBOL_CODIGO.AsInteger;
              F_DMdados2.cdsBoleto.Open;

              if (F_DMdados2.cdsBoleto.RecordCount <> 0) then
                begin
                  MyString := TstringList.Create;
                  MyString.Clear;
                  MyString.Add('UPDATE ST_BOLETO SET BOL_REMESSA=:BOL_REMESSA WHERE BOL_CODIGO = :BOL_CODIGO');
                  F_DMdados2.sdsBoleto.CommandText := MyString.Text;
                  MyString.Free;

                  F_DMdados2.sdsBoleto.ParamByName('BOL_CODIGO').AsInteger := F_GerarRemessaBoletos.cds_bolBOL_CODIGO.AsInteger;
                  F_DMdados2.sdsBoleto.ParamByName('BOL_REMESSA').AsString := 'S';

                  F_DMdados2.sdsBoleto.ExecSQL;
                end;

              F_DMdados.SQLConn.Commit(TD);
            except
              on E:Exception do
                begin
                  F_DMdados.SQLConn.Rollback(TD);
                  ShowMessage('Erro ao tentar INCLUIR o registro: ' + E.Message);
                  Abort;
                end;
            end;

            F_GerarRemessaBoletos.cds_bol.Next;
          end;
        F_GerarRemessaBoletos.cds_bol.Close;


      end;

  F_DMdados2.cdsSegBol.Close;
  F_DMdados2.cdsSegBol.CommandText := 'SELECT * FROM ST_BOLNUMEROREMESSA WHERE NRE_CODIGO = :NRE_CODIGO';
  F_DMdados2.cdsSegBol.Params[0].AsInteger := 1;
  F_DMdados2.cdsSegBol.Open;

  if (F_DMdados2.cdsSegBol.RecordCount <> 0) then
    begin
      seq := F_DMdados2.cdsSegBolNRE_NUMERO.AsInteger+1;
      mxseq := F_DMdados2.cdsSegBolNRE_MXNUMERO.AsInteger+1;
     end;

  ACBrBoleto1.NomeArqRemessa := 'CB'+dia+mes+IntToStr(seq)+'.REM';
  ACBrBoleto1.GerarRemessa(mxseq); //criar uma seencia em uma base de dados
 

 

CB070382.REM

Link para o comentário
Compartilhar em outros sites

  • Administradores

Boa tarde.

Qual foi a reposta do suporte do banco sobre esta situação?

Att.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

  • Administradores

Bom dia.

Conforme você citou em seu post inicial, o arquivo é processado com sucesso pelo banco, logo é necessário que o suporte do mesmo indique o motivo dos boletos não serem disponibilizados na consulta.

Att.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

  • Administradores

Boa tarde.

Verifique se algo foi informado na propriedade DataProtesto.

Att.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 2987 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.