Ir para conteúdo
  • Cadastre-se

dev botao

arquivo de remessa


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

Recommended Posts

bom dia a todos

estou implementando boleto sicredi e esta dando erro na homologacao na parte do digito verificador do nossonumero e na linha R do desconto 2, o banco esta alegando que nao esta sendo informado o tido de desconto 2 e o digito verificador no pdf esta correto porem no arquivo de remess esta errado.

 

alguem pode ajudar

Link para o comentário
Compartilhar em outros sites

  • Administradores

Boa tarde.

Se no boleto em pdf está correto, o DV deve estar correto também na remessa, uma vez que são o mesmo código.

Para facilitar o entendimento forneça a resposta do banco quanto a validação, assim como os dados passados ao componente,

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

boa tarde Juliana

estou entao anexo a planilha de retorno do banco e a parte do trecho de alimentacao do componente

1o. - alimentacao

procedure TFrm_Gerenciador_Boletos.ConfiguraComponenteAcBr;
begin
          ACBrBoleto1.Banco.TamanhoMaximoNossoNum := 8;
          ACBrBoleto1.Banco.Nome                  := Dm_BD2.ds_contabancariaNOME_BANCO.AsString;
          ACBrBoleto1.Banco.Digito                := Dm_BD2.ds_contabancariaDIGITO_NUMERO_BANCO.AsInteger;
          ACBrBoleto1.Banco.Numero                := Dm_BD2.ds_contabancariaNUMERO_BANCO.AsInteger;
          ACBrBoleto1.Banco.TipoCobranca          := cobSicred;
          ACBrBoleto1.Banco.NumeroCorrespondente  := 0;
          ACBrBoleto1.Cedente.CodigoCedente       := Dm_BD2.ds_contabancariaCOD_CEDENTE.AsString;
          v_cod_cedente                           := copy(Dm_BD2.ds_contabancariaCOD_CEDENTE.AsString,1,5);
          ACBrBoleto1.Cedente.Agencia             := Dm_BD2.ds_contabancariaNRO_AGENCIA.AsString+'-'+Dm_BD2.ds_contabancariaDIGITO_AGENCIA.AsString;
          ACBrBoleto1.Cedente.AgenciaDigito       := Dm_BD2.ds_contabancariaNOSSO_NUMERO.AsString; // numero do posto
          ACBrBoleto1.Cedente.Conta               := FormatFloat('00000',Dm_BD2.ds_contabancariaNRO_CONTA.AsFloat);
          ACBrBoleto1.Cedente.ContaDigito         := FormatFloat('0',Dm_BD2.ds_contabancariaDIGITO_CONTA.AsFloat);
          ACBrBoleto1.Cedente.Nome                := Dm_BD2.ds_contabancariaCEDENTE.AsString;
          ACBrBoleto1.Cedente.CNPJCPF             := Dm_BD.Ds_EmpresaCNPJ.AsString;
          ACBrBoleto1.Cedente.Logradouro          := Dm_BD.Ds_EmpresaLOGRADOURO.AsString+' No. '+Dm_BD.Ds_EmpresaNRO.AsString;
          ACBrBoleto1.Cedente.Cidade              := Dm_BD.Ds_EmpresaCIDADE.AsString+' - '+Dm_BD.Ds_EmpresaUF.AsString;
          ACBrBoleto1.Cedente.CEP                 := Dm_BD.Ds_EmpresaCEP.AsString;
          ACBrBoleto1.Cedente.UF                  := Dm_BD2.ds_contabancariaUF_AGENCIA.AsString;
          ACBrBoleto1.Cedente.TipoCarteira        := tctRegistrada;
          ACBrBoleto1.Cedente.ResponEmissao       := tbCliEmite;
          ACBrBoleto1.Cedente.TipoInscricao       := pJuridica;
          ACBrBoleto1.Cedente.TipoDocumento       := Escritural;
          ACBrBoleto1.Cedente.CaracTitulo         := tcSimples;
          ACBrBoleto1.Cedente.Modalidade          := ' ';

          ACBrBoleto1.ACBrBoletoFC.DirLogo     := Dm_BD2.ds_configBoletoPATH_LOGOTIPO.AsString;
          ACBrBoleto1.ACBrBoletoFC.Filtro      := fiNenhum;

          if Dm_BD2.ds_configBoletoTIPO_LAYOUT.AsString = 'lPadrao' then
             ACBrBoleto1.ACBrBoletoFC.LayOut      := lPadrao;

          if Dm_BD2.ds_configBoletoTIPO_LAYOUT.AsString = 'lPadraoEntrega' then
             ACBrBoleto1.ACBrBoletoFC.LayOut      := lPadraoEntrega;

          if Dm_BD2.ds_configBoletoTIPO_LAYOUT.AsString = 'lCarne' then
             ACBrBoleto1.ACBrBoletoFC.LayOut      := lCarne;

          if Dm_BD2.ds_configBoletoTIPO_LAYOUT.AsString = 'lFatura' then
             ACBrBoleto1.ACBrBoletoFC.LayOut      := lFatura;

          ACBrBoleto1.DirArqRemessa            := Dm_BD2.ds_configBoletoPATH_REMESSA.AsString;
          ACBrBoleto1.Cedente.Convenio         := FormatFloat('0000000',Dm_BD2.ds_configBoletoCONT_REMESSA.AsFloat);

             v_dia := ' ';
             v_dia :=  copy(DateToStr(now),1,2);

             v_mes := ' ';
             v_mes := copy(DateToStr(now),4,2);

             if v_mes = '01' then // janeiro
                v_mes := '1';

             if v_mes = '02' then  // fevereiro
                v_mes := '2';

             if v_mes = '03' then // março
                v_mes := '3';

             if v_mes = '04' then // abril
                v_mes := '4';

             if v_mes = '05' then // maio
                v_mes := '5';

             if v_mes = '06' then // junho
                v_mes := '6';

             if v_mes = '07' then // julho
                v_mes := '7';

             if v_mes = '08' then // agosto
                v_mes := '8';

             if v_mes = '09' then // setembro
                v_mes := '9';

             if v_mes = '10' then // outubro
                v_mes := 'O';

             if v_mes = '11' then // novembro
                v_mes := 'N';

             if v_mes = '12' then // dezeembro
                v_mes := 'D';

          if v_nro_remessa > '0' then
             ACBrBoleto1.NomeArqRemessa           := v_cod_cedente+v_mes+v_dia+'.CRM';
             ACBrBoleto1.LayoutRemessa            := c240;
             ACBrBoleto1.LeCedenteRetorno         := True;
             ACBrBoleto1.ImprimirMensagemPadrao   := True;
end;

 

2o. carregamento do titulos

procedure TFrm_Gerenciador_Boletos.bt_remessaClick(Sender: TObject);
begin

      // captura o numero da proxima remessa
      Dm_BD2.ds_id_remessa.open;
      Dm_BD2.ds_id_remessa.Insert;
      Dm_BD2.ds_id_remessaSTATUS.AsString     :='F';
      Dm_BD2.ds_id_remessa.Post;
      Dm_BD2.ds_id_remessa.ApplyUpdates(-1);
      Dm_BD2.ds_id_remessa.Close;
      Dm_BD2.ds_id_remessa.Open;
      Dm_BD2.ds_id_remessa.Last;
      v_nro_remessa := Dm_BD2.ds_id_remessaNRO_REMESSA.AsString;
      v_nro_remessa2 := StrtoInt(v_nro_remessa);

      ACBrBoleto1.ListadeBoletos.Clear;

      Dm_BD2.ds_gerar_boletos.CLOSE;
      Dm_BD2.sql_gerar_boletos.CLOSE;
      Dm_BD2.sql_gerar_boletos.CommandText:='SELECT * FROM BOLETOS WHERE DT_EMISSAO BETWEEN :data1 AND :data2 AND STATUS_REMESSA = ''N'' AND STATUS_RETORNO = ''N'' order by cliente';
      Dm_BD2.sql_gerar_boletos.ParamByName('data1').AsDate := DateTimePicker1.Date;
      Dm_BD2.sql_gerar_boletos.ParamByName('data2').AsDate := DateTimePicker2.Date;
      Dm_BD2.ds_gerar_boletos.OPEN;

      while not Dm_BD2.ds_gerar_boletos.Eof do
         begin
         v_nome_banco  := ' ';
         v_nome_banco  := Dm_BD2.ds_gerar_boletosNOME_BANCO.AsString;
         Titulo        := Frm_Gerenciador_Boletos.ACBrBoleto1.CriarTituloNaLista;

         ConfiguraComponenteAcBr;

         Titulo.Aceite                  := atSim;
         Titulo.DataProcessamento       := date();
         Titulo.OcorrenciaOriginal.Tipo := toRemessaRegistrar;
         Titulo.DataMoraJuros           := Dm_BD2.ds_gerar_boletosDT_VENCIMENTO.AsDateTime +1;
         Titulo.DataDesconto            := Dm_BD2.ds_gerar_boletosDT_VENCIMENTO.AsDateTime -5;
         Titulo.DataAbatimento          := Dm_BD2.ds_gerar_boletosDT_VENCIMENTO.AsDateTime -5;
         Titulo.DataDocumento           := Dm_BD2.ds_gerar_boletosDT_EMISSAO.AsDateTime;
         Titulo.EspecieDoc              := Dm_BD2.ds_configBoletoESPECIE.AsString;
         Titulo.Carteira                := Dm_BD2.ds_configBoletoCARTEIRA.AsString;
         Titulo.EspecieMod              := Dm_BD2.ds_configBoletoMOEDA.AsString;
         Titulo.NossoNumero             := Dm_BD2.ds_gerar_boletosNRO_BOLETO.AsString;
         Titulo.NumeroDocumento         := Dm_BD2.ds_gerar_boletosNOSSO_NUMERO.AsString;
         Titulo.TotalParcelas           := StrToInt(Dm_BD2.ds_gerar_boletosTOTAL_PARCELAS.AsString);
         Titulo.Parcela                 := StrToInt(Dm_BD2.ds_gerar_boletosNRO_PARCELA.AsString);
         Titulo.ValorDocumento          := Dm_BD2.ds_gerar_boletosVALOR_MENSAL.AsCurrency;
         Titulo.Vencimento              := Dm_BD2.ds_gerar_boletosDT_VENCIMENTO.AsDateTime;
         Titulo.ValorAbatimento         := 0;
         Titulo.ValorIOF                := 0;

         // configura REMESSA de Boleto com informacao de Protesto
         if Dm_BD2.ds_gerar_boletosSTATUS_PROTESTO.AsString = '0' then
            Titulo.DataProtesto   := Dm_BD2.ds_gerar_boletosDT_VENCIMENTO.AsDateTime + 90;

         // CONFIGURAÇÃO DO BOLETO
         Dm_BD2.ds_configBoleto.Close;
         Dm_BD2.sql_configBoleto.Close;
         Dm_BD2.sql_configBoleto.CommandText:='SELECT * FROM CONFIG_BOLETO WHERE NOME_BANCO ='+QuotedStr(v_nome_banco);
         Dm_BD2.sql_configBoleto.ExecSQL(true);
         Dm_BD2.ds_configBoleto.Open;

         if Dm_BD2.ds_configBoleto.RecNo > 0 then
            begin
            if v_nome_banco = 'Banco do Brasil' then
               begin
               Titulo.ValorMoraJuros          := Dm_BD2.ds_configBoletoJUROS_DIARIO.AsCurrency;
               Titulo.PercentualMulta         := Dm_BD2.ds_configBoletoMULTA_MES.AsCurrency;
               Titulo.ValorDespesaCobranca    := Dm_BD2.ds_configBoletoDESPESA_BANCARIA.AsCurrency;
            end;

            if v_nome_banco = 'Banco Itau' then
               begin
               Titulo.ValorMoraJuros          := Dm_BD2.ds_configBoletoJUROS_DIARIO.AsCurrency;
               Titulo.PercentualMulta         := Dm_BD2.ds_configBoletoMULTA_MES.AsCurrency;
               Titulo.ValorDespesaCobranca    := Dm_BD2.ds_configBoletoDESPESA_BANCARIA.AsCurrency;
            end;

            if v_nome_banco = 'Banco Sicredi' then
               begin
               Titulo.ValorMoraJuros          := Dm_BD2.ds_configBoletoJUROS_DIARIO.AsCurrency;
               Titulo.PercentualMulta         := Dm_BD2.ds_configBoletoMULTA_MES.AsCurrency;
               Titulo.ValorDespesaCobranca    := Dm_BD2.ds_configBoletoDESPESA_BANCARIA.AsCurrency;
               Titulo.ValorDesconto           := 0;
               Titulo.ValorDescontoAntDia     := 0;
               Titulo.TipoDesconto            := tdNaoConcederDesconto;
               Titulo.CodigoDesconto          := cdValorFixo;
            end;
         end;

         Titulo.Instrucao1              := 'Protestar 05 dias após vencimento';
         Titulo.LocalPagamento          := 'Pagável em Qualquer Banco Até o Vencimento.';

         // retirar pontuncao do CPFCNPJ
         v_cnpj_cpf := '';
         v_cnpj_cpf := Dm_BD2.ds_gerar_boletosCNPJ_CPF.AsString;
         v_cnpj_cpf := StringReplace(v_cnpj_cpf,'.','',[rfReplaceAll]);
         v_cnpj_cpf := StringReplace(v_cnpj_cpf,'/','',[rfReplaceAll]);
         v_cnpj_cpf := StringReplace(v_cnpj_cpf,'-','',[rfReplaceAll]);
         v_cnpjcpf  := StrToFloat(v_cnpj_cpf);


         if Length(v_cnpj_cpf) = 11 then
            begin
            Titulo.Sacado.Pessoa                := pFisica;
            Titulo.Sacado.CNPJCPF               := FormatFloat('000000000000000',v_cnpjcpf);
         end;

         if Length(v_cnpj_cpf) = 14 then
            begin
            Titulo.Sacado.Pessoa                := pJuridica;
            Titulo.Sacado.CNPJCPF               := FormatFloat('000000000000000',v_cnpjcpf);
         end;

         Titulo.Sacado.NomeSacado                    := Dm_BD2.ds_gerar_boletosCLIENTE.AsString;
         Titulo.Sacado.Logradouro                    := Dm_BD2.ds_gerar_boletosENDERECO.AsString;
         Titulo.Sacado.Numero                        := Dm_BD2.ds_gerar_boletosNUMERO.AsString;
         Titulo.Sacado.Bairro                        := Dm_BD2.ds_gerar_boletosBAIRRO.AsString;
         Titulo.Sacado.Cidade                        := Dm_BD2.ds_gerar_boletosCIDADE.AsString;
         Titulo.Sacado.UF                            := Dm_BD2.ds_gerar_boletosUF.AsString;
         Titulo.Sacado.CEP                           := Dm_BD2.ds_gerar_boletosCEP.AsString;
         Titulo.Sacado.SacadoAvalista.NomeAvalista   := ' ';//Dm_BD2.ds_gerar_boletosCLIENTE.AsString;
         Titulo.Sacado.SacadoAvalista.CNPJCPF        := ' ';//Dm_BD2.ds_gerar_boletosCNPJ_CPF.AsString;
         Titulo.Sacado.SacadoAvalista.Logradouro     := ' ';//Dm_BD2.ds_gerar_boletosENDERECO.AsString;
         Titulo.Sacado.SacadoAvalista.Numero         := ' ';//Dm_BD2.ds_gerar_boletosNUMERO.AsString;
         Titulo.Sacado.SacadoAvalista.Cidade         := ' ';//Dm_BD2.ds_gerar_boletosCIDADE.AsString;
         Titulo.Sacado.SacadoAvalista.UF             := ' ';//Dm_BD2.ds_gerar_boletosUF.AsString;
         Titulo.Sacado.SacadoAvalista.CEP            := ' ';//Dm_BD2.ds_gerar_boletosCEP.AsString;


      Dm_BD2.ds_gerar_boletos.Next;
      end; // fecha a leitura de todos titulos do mesmo vencimento
      ShowMessage('GERAÇÃO DE REMESSA CONCLUÍDO COM SUCESSO !!!');
      ACBrBoleto1.GerarRemessa(1);
end;
 

por favor me mostre onde estou errando, o cliente esta louco de pressa e nao estou conseguindo enxergar o erro

 

obrigado

Analise arquivo remessa (4).pdf

Link para o comentário
Compartilhar em outros sites

  • Administradores

Boa tarde

Você deve nos dize quais os valores reais passa ao componente, somente de 1 titulo já é suficiente.

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

Você nos passou de onde vem a informação passada ao componente e não o conteúdo em si.

Em 19/06/2018 at 18:42, ultraseven disse:

ACBrBoleto1.Cedente.Convenio         := FormatFloat('0000000',Dm_BD2.ds_configBoletoCONT_REMESSA.AsFloat);

Aqui você deveria nos passar algo como:  ACBrBoleto1.Cedente.Convenio         := '9999999'

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

  • Solution

bom dia Juliana

entao neste campo Convenio ele nao tem, entao no campo Agencia e Digito Agencia é formado a identificacao do cliente junto ao banco.

mas mesmo assim eu ja consegui resolver o problema, na verdade eu estava passando no campo agencia e digito na geracao do arquivo de remessa e nao pode é somente agencia e no campo digito deve se colocar o numero do posto.

agora uma pergunta porque para o sicredi nao é tratado por voces a questao do desconto 2, onde temos que alterar manual de ZERO pra 1, pois se nao faz isso gera erro na validacao do banco

 

obrigado

Link para o comentário
Compartilhar em outros sites

  • Administradores

Bom dia.

1 hora atrás, ultraseven disse:

mas mesmo assim eu ja consegui resolver o problema, na verdade eu estava passando no campo agencia e digito na geracao do arquivo de remessa e nao pode é somente agencia e no campo digito deve se colocar o numero do posto.

Que bom que já resolveu.

1 hora atrás, ultraseven disse:

agora uma pergunta porque para o sicredi nao é tratado por voces a questao do desconto 2, onde temos que alterar manual de ZERO pra 1, pois se nao faz isso gera erro na validacao do banco

 

O ideal é criar outro tópico para falar sobre este assunto específico. afim de não estender mais o atual.

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á 2103 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.