Ir para conteúdo
  • Cadastre-se

dev botao

Caixa - Tipo De Carteira


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

Recommended Posts

  • Membros Pro
Amigos, estou implantando o boleto da caixa no meu sistema e estou me deparando com o seguinte problema: Carteira Inválida
 
Estou fazendo assim
ACBrBoleto.Cedente.TipoCarteira:= tctRegistrada
 
porem eu debuguei e notei que quando ele cai dentro da rotina abaixo
function TACBrCaixaEconomica.FormataNossoNumero(const ACBrTitulo :TACBrTitulo): String;
var
  ANossoNumero :String;
begin
   with ACBrTitulo do
   begin
      ANossoNumero := OnlyNumber(NossoNumero);      
     
      if (ACBrTitulo.Carteira = 'RG') then
      begin         {carterira registrada}
        if ACBrTitulo.CarteiraEnvio = tceCedente then
          ANossoNumero := '14'+padR(ANossoNumero, 15, '0')
        else
          ANossoNumero := '11'+padR(ANossoNumero, 15, '0')
      end
      else if (ACBrTitulo.Carteira = 'SR')then     {carteira 2 sem registro}
      begin
        if ACBrTitulo.CarteiraEnvio = tceCedente then
          ANossoNumero := '24'+padR(ANossoNumero, 15, '0')
        else
          ANossoNumero := '21'+padR(ANossoNumero, 15, '0')
      end
      else
         raise Exception.Create( ACBrStr('Carteira Inválida.'+sLineBreak+'Utilize "RG" ou "SR"') ) ;
   end;
 
   Result := ANossoNumero;
end;
 
 
o ACBrTitulo.Carteira esta vazio.
 
Não sei se estou fazendo algo de errado ou se o ACBr esta com problema.
Estou seguinte o exemplo do ACBrBoleto.
 
Primeiro eu alimento os dados do ACBrBoleto.Cedente
depois 
    Titulo := ACBrBoleto.CriarTituloNaLista;
    with Titulo do
    begin
      Vencimento        := CDSBoletoDT_VENCIMENTO.AsDateTime;
      DataDocumento     := CDSBoletoDT_GERADA.AsDateTime;
      NumeroDocumento   := CDSBoletoDOCUMENTO.AsString;
      EspecieDoc        := 'DM';
      Aceite            := atSim;
      .....
 
Desde já agradeço a quem me ajudar!
 
 
 
 
 
 

Att
Rodrigo Guelf
 

Link para o comentário
Compartilhar em outros sites

  • Administradores

Boa noite.

 

Você deve setar a propriedade Carteira do componente ACBrBoleto.Cedente.

 

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

  • Membros Pro

Juliana Tamizou, boa tarde!

 

Já estou fazendo isso, veja o meu exemplo:

procedure TFormBoleto.AdicionarCabecalhoBoleto_ACBr;
begin
  with DtCadastro do begin
    RefreshTable(CDSContasB, 
      'SELECT * FROM BANCO '+
      'WHERE CODIGO =:CODIGO ',
      CDSParametrosCOD_USUARIO.AsInteger);
    case CDSContasBACBR_TIPO_BANCO.AsInteger of
       0 : ACBrBoleto.Banco.TipoCobranca:= cobNenhum;
       1 : ACBrBoleto.Banco.TipoCobranca:= cobBanestes;
       2 : ACBrBoleto.Banco.TipoCobranca:= cobBanrisul;      
       3 : ACBrBoleto.Banco.TipoCobranca:= cobBradesco;
       4 : ACBrBoleto.Banco.TipoCobranca:= cobBicBanco;
       5 : ACBrBoleto.Banco.TipoCobranca:= cobSafraBradesco;
       6 : ACBrBoleto.Banco.TipoCobranca:= cobBradescoSICOOB;
       7 : ACBrBoleto.Banco.TipoCobranca:= cobBRB;
       8 : ACBrBoleto.Banco.TipoCobranca:= cobCaixaEconomica;
       9 : ACBrBoleto.Banco.TipoCobranca:= cobCaixaSicob;
      10 : ACBrBoleto.Banco.TipoCobranca:= cobBancoCECRED;
      11 : ACBrBoleto.Banco.TipoCobranca:= cobBancoDoBrasil;
      12 : ACBrBoleto.Banco.TipoCobranca:= cobBancoDoNordeste;
      13 : ACBrBoleto.Banco.TipoCobranca:= cobHSBC;
      14 : ACBrBoleto.Banco.TipoCobranca:= cobItau;
      15 : ACBrBoleto.Banco.TipoCobranca:= cobBancoMercantil;
      16 : ACBrBoleto.Banco.TipoCobranca:= cobBancoob;
      17 : ACBrBoleto.Banco.TipoCobranca:= cobBancoSafra;
      18 : ACBrBoleto.Banco.TipoCobranca:= cobSicred;    
    end;  
    ACBrBoleto.Cedente.Agencia:= CDSContasBACBR_AGENCIA.AsString;
    ACBrBoleto.Cedente.AgenciaDigito:= CDSContasBACBR_AGENCIA_DIG.AsString;
    ACBrBoleto.Cedente.Bairro:= CDSContasBACBR_BAIRRO.AsString;
    case CDSContasBACBR_CARAC_TITULO.AsInteger of
      0 : ACBrBoleto.Cedente.CaracTitulo:= tcCaucionada;  
      1 : ACBrBoleto.Cedente.CaracTitulo:= tcDescontada;
      2 : ACBrBoleto.Cedente.CaracTitulo:= tcSimples;  
      3 : ACBrBoleto.Cedente.CaracTitulo:= tcVendor;  
      4 : ACBrBoleto.Cedente.CaracTitulo:= tcVinculada;  
    end;
    ACBrBoleto.Cedente.CEP:= ApenasNumerosStr(CDSContasBACBR_CEP.AsString);
    ACBrBoleto.Cedente.Cidade:= CDSContasBACBR_CIDADE.AsString;
    ACBrBoleto.Cedente.CNPJCPF:= ApenasNumerosStr(CDSContasBACBR_CNPJCPF.AsString);
    ACBrBoleto.Cedente.CodigoCedente:= CDSContasBCOD_CEDENTE.AsString;
    ACBrBoleto.Cedente.CodigoTransmissao:= CDSContasBACBR_COD_TRANSMISSAO.AsString;
    ACBrBoleto.Cedente.Complemento:= CDSContasBACBR_COMPLEMENTO.AsString;
    ACBrBoleto.Cedente.Conta:= CDSContasBACBR_CONTA.AsString;
    ACBrBoleto.Cedente.ContaDigito:= CDSContasBACBR_CONTA_DIG.AsString;
    ACBrBoleto.Cedente.Convenio:= CDSContasBACBR_CONVENIO.AsString;
    ACBrBoleto.Cedente.Logradouro:= CDSContasBACBR_LOGRADOURO.AsString;
    ACBrBoleto.Cedente.Modalidade:= CDSContasBACBR_MODALIDADE.AsString;
    ACBrBoleto.Cedente.Nome:= CDSContasBACBR_NOME.AsString;
    ACBrBoleto.Cedente.NumeroRes:= CDSContasBACBR_NUMERO_RES.AsString;
    case CDSContasBACBR_TIPO_CARTEIRA.AsInteger of
      0 : ACBrBoleto.Cedente.TipoCarteira:= tctRegistrada;  
      1 : ACBrBoleto.Cedente.TipoCarteira:= tctSimples;  
    end;    
    case CDSContasBACBR_RESP_EMISSAO.AsInteger of
      0 : ACBrBoleto.Cedente.ResponEmissao:= tbBancoEmite;  
      1 : ACBrBoleto.Cedente.ResponEmissao:= tbBancoNaoReemite;
      2 : ACBrBoleto.Cedente.ResponEmissao:= tbBancoReemite;  
      3 : ACBrBoleto.Cedente.ResponEmissao:= tbCliEmite;  
    end;
    ACBrBoleto.Cedente.Telefone:= CDSContasBACBR_TELEFONE.AsString;
    case CDSContasBACBR_TIPO_INSCRICAO.AsInteger of
      0 : ACBrBoleto.Cedente.TipoInscricao:= pFisica;
      1 : ACBrBoleto.Cedente.TipoInscricao:= pJuridica;  
    end;  
    case CDSContasBACBR_LAY_REMESSA.AsInteger of
      0 : ACBrBoleto.LayoutRemessa:= c240;  
      1 : ACBrBoleto.LayoutRemessa:= c400;  
    end;
    ACBrBoleto.Cedente.UF:= CDSContasBACBR_UF.AsString;
  end;
end;
 
Isso eu faço uma unica vez, depois dentro de um while eu vou adicionando os boleto no titulo, assim:
 
procedure TFormBoleto.AdicionarDadosNoBoleto_ACBr(vNossoNumero: Integer; Titulo : TACBrTitulo);
begin
  with DtCadastro do begin
    Titulo := ACBrBoleto.CriarTituloNaLista;
    with Titulo do
    begin 
      Vencimento        := CDSBoletoDT_VENCIMENTO.AsDateTime;
      DataDocumento     := CDSBoletoDT_GERADA.AsDateTime;
      NumeroDocumento   := CDSBoletoDOCUMENTO.AsString;
      EspecieDoc        := 'DM';
      Aceite            := atSim;
      DataProcessamento := CDSBoletoDT_GERADA.AsDateTime;
      case RgTipoBoleto.ItemIndex of
        0 : NossoNumero := IntToStr(vNossoNumero);
        1 : NossoNumero := CDSBoletoNOSSO_NUMERO.AsString;
      end;
      Carteira          := CDSContasBCARTEIRA.AsString;
      ValorDocumento    := CDSBoletoVALOR.AsCurrency;
      Sacado.NomeSacado := CDSBoletoCLIENTE.AsString;
      Sacado.CNPJCPF    := ApenasNumerosStr(CDSBoletoCPF_CNPJ.AsString);
      Sacado.Logradouro := CDSBoletoENDERECO.AsString;
      Sacado.Numero     := CDSBoletoEND_NUM.AsString;
      Sacado.Bairro     := CDSBoletoBAIRRO.AsString;
      Sacado.Cidade     := CDSBoletoCIDADES.AsString;
      Sacado.UF         := CDSBoletoUF.AsString;
      Sacado.CEP        := ApenasNumerosStr(CDSBoletoCEP.AsString);
      ValorAbatimento   := 0;
      LocalPagamento    := 'Pagar preferêncialmente nas agências deste banco';
      ValorMoraJuros    := (((CDSBoletoVALOR.AsCurrency * CDSContasBTX_JUROS.AsCurrency) / 100)/ 30);
      ValorDesconto     := 0;
      ValorAbatimento   := 0;
      DataMoraJuros     := StrToDateDef('', 0);
      DataDesconto      := StrToDateDef('', 0);
      DataAbatimento    := StrToDateDef('', 0);
      if (CDSContasBPROTESTAR.AsInteger > 0) then                
        DataProtesto      := (CDSBoletoDT_VENCIMENTO.AsDateTime + CDSContasBPROTESTAR.AsInteger)
      else
        DataProtesto      := StrToDateDef('', 0);
      PercentualMulta   := CDSContasBTX_JUROS.AsCurrency;
      Mensagem.Text     := 
        CDSContasBINTRUCOES1.AsString+' '+
        CDSContasBINTRUCOES2.AsString+' '+
        CDSContasBINTRUCOES3.AsString;                 
      OcorrenciaOriginal.Tipo := toRemessaBaixar;
      Instrucao1        := '';
      Instrucao2        := '';
      Instrucao3        := '';
    end;
  end;  
end;
 
quando mando imprimir vem o erro em anexo
 
 

post-174-0-07488600-1434659876.png

post-174-0-07488600-1434659876.png

Att
Rodrigo Guelf
 

Link para o comentário
Compartilhar em outros sites

  • Administradores

Boa noite.

 

A carteira informada ao componente para este banco deve ser "RG" ou "SR", conforme mensagem de erro.

 

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

  • Membros Pro
  • Solution

Estimado,

 

Boa noite, donde você faz menção à:

 

    Titulo := ACBrBoleto.CriarTituloNaLista;
    with Titulo do
    ................. 
 
O seu banco de dados deve tá com o conteúdo inválido para a linha:
       Carteira          := CDSContasBCARTEIRA.AsString; // Aqui é que vai a informação 'RG' ou 'SR'.
 
Dá uma verificada aí no que tá indo nesse campo CDSContasBCARTEIRA.AsString.
 
E veja também a linha:
 
    OcorrenciaOriginal.Tipo := toRemessaBaixar;
 
Se você está enviando uma remessa pela primeira vez tem que ser:
 
   OcorrenciaOriginal.Tipo := toRemessaRegistrar;
   .. também estaria faltando as tags CodigoMora := '1' e TipoDiasProtesto := diCorridos  
   
 
Até mais,
 
 
Editado por aocampioni

-- 

Alexandre de Oliveira

Diretor de T.I.

xx16 3811 0155

www.consultatec.com.br - [email protected]

image.png.744a897bbf36127e428c6e687ef05731.png

 

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 3384 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.