Ir para conteúdo
  • Cadastre-se

jaime

Membros
  • Total de ítens

    70
  • Registro em

  • Última visita

Tudo que jaime postou

  1. É agora vc tem que gerar o novo MD5, recolher uma taxinha, gerar mais uma documentação explicando pq foi mudado o seu PAF para recadastrar no SEFAZ. Como um pequeno detalhe nos gera um transtorno danado.
  2. Esse requisito foi o cúmulo da burocracia. Sabe como o cliente é indeciso às vezes. "quero 2, não troca aquele item para 5, pensando melhor o outro quero 4...". Depois começa aparecer um monte de itens cancelado nas pre-vendas, vão no cliente querer saber porque ta tendo muito cancelamento. Mas fazer o oque né ! Obrigado pela ajuda.
  3. VI Req. Item 10 Durante a criação do DAV ou PRÉ-VENDA, digamos que eu já lancei 5 produtos, eu não posso voltar nos itens anteriores e modificar a quantidade ? Ou essa regra só passa a valer depois que encerrei o DAV ou PREVENDA, ai não poderia reabrir e alterar ? Grato Jaime.
  4. Não. Aquela alteração foi só para o banco do brasil. O itau ainda não estou usando mas acredito que esteja ok. Teriamos mais certeza de como é a composição, porque me orientei pelas funções do outro componente.
  5. Tinha um versão do boleto que não estava modificando o TamanhoMaximoNossoNumero, eu setava mas continuava em 10. Estou anexando a função que fiz a correção para modificar esse tamanho troca e faz um teste com ele que vai dar certo. ACBrBoleto.pas
  6. jaime

    Requisito XXVIII Item 2

    Se for solicitado para gerar o arquivo do dia corrente antes da redução Z como informar o nr. do CRZ, Grande total final. As notas fiscais não tem problema, mas como fazer com os ecfs ? Gera um arquivo parcial mesmo ? Montar o próximo CRZ ? Ou posso tirar um Z antes de gerar o arquivo no dia da homologação ? Grato Jaime.
  7. Eu apanhei e descobri uma vez que a bematech só aceita 13 dígitos no código do produtos. Se tiver 14 da erro na função. Mas parece que o modelo MP-4000 já aceita os 14 que o paf exige Req XI Item 2: Grato Jaime
  8. Vou anexar. Só um detalhe o setar TamanhoMaximoNossoNum no seu caso vai ter que ser 4 porque o seu convênio é de 7 digitos que perfaz um total de 11 digito no total da composição do nosso número que e convenio + o seu numero. ACBrBancoBrasil.pas
  9. Atilo na formação do nosso numero fiz uma modificação para a carteira 11 de acordo com o entendimento pelo gbBoleto já que não temos a documentação do banco. Como o convenio tem 7 posições o tamanho maximo do nr. de controle da será de 4 digitos. function TACBrBancoBrasil.FormataNossoNumero(const ACBrTitulo :TACBrTitulo): String; var ANossoNumero, AConvenio : string; aCarteira: LongInt; TamDocCarteira11 : Integer; begin with ACBrTitulo do begin AConvenio := ACBrBoleto.Cedente.Convenio; ANossoNumero := OnlyNumber(NossoNumero); aCarteira := StrToIntDef(Carteira,0); if (ACBrTitulo.Carteira = '16') or (ACBrTitulo.Carteira = '17') or (ACBrTitulo.Carteira = '18') then begin // CCCCNNNNNNN-X if (Length(AConvenio) <= 4) and (fpTamanhoMaximoNossoNum = 7) then ANossoNumero := padR(AConvenio, 4, '0') + padR(ANossoNumero, 7, '0') // CCCCCCNNNNN-X else if (Length(AConvenio) > 4) and (Length(AConvenio) <= 6) and (fpTamanhoMaximoNossoNum = 5) then ANossoNumero := padR(AConvenio, 6, '0') + padR(ANossoNumero, 5, '0') // CCCCCCCNNNNNNNNNN else if (Length(AConvenio) = 7) and (fpTamanhoMaximoNossoNum = 10) then ANossoNumero := padR(AConvenio, 7, '0') + padR(ANossoNumero, 10, '0') // NNNNNNNNNNNNNNNNN else if (Length(AConvenio) > 4) and (Length(AConvenio) <= 6) and (fpTamanhoMaximoNossoNum = 17) and ((ACBrTitulo.Carteira = '16') or (ACBrTitulo.Carteira = '18')) then ANossoNumero := padR(ANossoNumero, 17, '0') end else begin // CCCCCCCNNNN - O tamanho da carteira e nr doc e variavel mas a soma tem que fechar 11 TamDocCarteira11 := 11 - Length(AConvenio); ANossoNumero := Copy(ANossoNumero, 11 - TamDocCarteira11, TamDocCarteira11); ANossoNumero := padR(AConvenio, Length(AConvenio), '0') + padR(ANossoNumero , 11 - Length(AConvenio), '0'); end; end; Result := ANossoNumero; end;
  10. Atilo anexa o material da carteira 11 que dou uma olhada para vc. O Acbr já me ajudou muito e terei satisfação em te ajudar sem custo algum.
  11. A documentação que o banco nos enviou cita "Composição padrão para as carteiras 16, 17 e 18". Não saberia afirmar se a carteira 11 segue esse mesmo sistema.
  12. Neto, Descobri porque não ta alterando o TamMaximoNossoNumero. Dentro do fonte ACBrBoleto tava sem setar o valor ai alterei com a linha sublinhada, agora ficou ok. procedure TACBrBanco.SetTamMaximoNossoNumero(const Avalue: Integer); begin {Apenas para aparecer no ObjectInspector do D7} BancoClass.fpTamanhoMaximoNossoNum := AValue; end;
  13. jaime

    Boleto HSBC

    Poderia postar a documentação do HSBC pra gente ? Grato Jaime
  14. Tenho uma leitora de código de barras de boleto e fiz os testes: - com convenio 6 e 7 digitos a linha digitavel e codigo de barras ficou perfeito bateu com o emissor do banco ! a única divergência entre o acbr e o emissor do banco foi no convenio 7 digitos na impressao do campo Nosso Numero que o do banco saiu com digito sendo que na documentacao (Anexo 4) não fala nada de DV !!! Ai fiquei sem entender: No acbr 16947990000028124 No do banco : 16947990000028124-3
  15. Neto a Juliana falou que tem como modificar o tamanho maximo do nosso numero mas não estou conseguindo. Você já conseguiu alterar ? Só consegui dentro do código fonte, mas ai vai ficar fixo. Se conseguir isso acho que posso configurar o resto.
  16. Analisando os post anteriores vi que neste caso está sendo tratado somente o tamanho do convênio por isso acho que deveriamos levar em consideração o tamanho da numeração do boleto. viewtopic.php?f=11&t=1146&p=4963&hilit=nosso+numero+com+convenio#p4963
  17. Ola neto estamos junto ai ! Também estou iniciando e vamos desvendar esse "misterio". Estive estudando o manual e cheguei a seguinte conclusão: caso 1: CCCCNNNNNNN-X convênios com 4 posição entao o numero do boleto tera tamanho 7 caso 2: CCCCCCNNNNN-X convênios com 6 posições entao o numero do boleto tera tamanho 5 caso 3: CCCCCCCNNNNNNNNNN convênios com 7 posições com numeração acima de 1.000.000 entao o numero do boleto tera tamanho 10 Nosso-Número, sem o DV caso 4: NNNNNNNNNNNNNNNNN convenio com 6 posições entao o numero do boleto tera tamanho 17 neste caso o nr do conveio não e listado no nosso numero A utilização do campo “Nosso-Número” com 17 posições livres somente pode ser utilizada por clientes cadastrados com convênio de cobrança de 6 posições, nas Modalidades de Cobrança Sem Registro – Carteira 16 e 18. O “Nosso-Número”, neste caso, não possui dígito verificador. Então poderiamos ter 4 tamanhos para o campo TamanhoMaximoNossoNum e a partir dele montar a lógica da formação do nosso número gera o codigo de barras, só que esse campo não está sendo modificado, deve ter algum motivo.
  18. ACBrBoleto1.Banco.TamanhoMaximoNossoNum := 5; Não ta mudando mesmo olhando o código ele ta protegido eu tava mexendo nos fontes e alterei la por isso achei que tava alterando.
  19. Não ! Foi um conclusão minha pq eu comecei a testar o acbrBoleto e coloquei os dados que eu tinha ai ele gerou diferente do que esta sendo usado pelo programa do banco. No meu caso aqui o nosso numero sai convenio tem 6 digitos e o nosso numero 5 mais um digito vericador.
  20. É pq no boleto o nosso numero está gerando sem o convênio ai eu fiz uma pequena mudança no código grifado: function TACBrBancoBrasil.FormataNossoNumero(const ACBrTitulo :TACBrTitulo): String; var ANossoNumero, AConvenio : string; aCarteira: LongInt; begin with ACBrTitulo do begin AConvenio := ACBrBoleto.Cedente.Convenio; ANossoNumero := OnlyNumber(NossoNumero); aCarteira := StrToIntDef(Carteira,0); if (aCarteira = 16) or (aCarteira = 17) or (aCarteira = 18) then begin if (ACBrTitulo.Carteira = '18') and (Length(AConvenio) = 6) and (Length(ANossoNumero) <> 5) then ANossoNumero := padR(ANossoNumero, 17, '0') else if Length(AConvenio) <= 4 then ANossoNumero := padR(AConvenio, 4, '0') + padR(ANossoNumero, 7, '0') else if (Length(AConvenio) > 4) and (Length(AConvenio) <= 6) then ANossoNumero := padR(AConvenio, 6, '0') + padR(ANossoNumero, 5, '0') else if Length(AConvenio) = 7 then ANossoNumero := padR(AConvenio, 7, '0') + padR(ANossoNumero, 10, '0'); end else ANossoNumero := padR(AConvenio, 7, '0')+ padR(ANossoNumero, 11, '0'); end; Result := ANossoNumero; end;
  21. Desinstalei o acbrboleto e instalei novamente e acho que não to sabendo como mudar o TamanhoMaximoNossoNum, vou postar o codigo pra vc ver onde e que estou errando Titulo := ACBrBoleto1.CriarTituloNaLista; ACBrBoleto1.Banco.TipoCobranca := cobBancoDoBrasil; ACBrBoleto1.Cedente.Agencia := Trim( Table1.FieldByName('AGENCIA').AsString ); ACBrBoleto1.Cedente.AgenciaDigito := Trim( Table1.FieldByName('AGDV').AsString ); ACBrBoleto1.Cedente.Conta := Trim( Table1.FieldByName('CONTA').AsString ); ACBrBoleto1.Cedente.ContaDigito := Trim( Table1.FieldByName('CCDV').AsString ); ACBrBoleto1.Cedente.Nome := Trim( Table1.FieldByName('CEDENTE').AsString ); ACBrBoleto1.Cedente.Convenio := Trim( Table1.FieldByName('CONVENIO').AsString ); ACBrBoleto1.Banco.TamanhoMaximoNossoNum := 5; with Titulo do begin Vencimento := Table1.FieldByName('VECTO').AsDateTime; DataDocumento := Table1.FieldByName('EMISSAO').AsDateTime; NumeroDocumento := Table1.FieldByName('DCTO').AsString; EspecieDoc := Table1.FieldByName('DESPECIE').AsString; if Table1.FieldByName('ACEITE').AsString = 'S' then Aceite := atSim else Aceite := atNao; DataProcessamento := Now; NossoNumero := TRIM( Table1.FieldByName('NOSSONR').AsString ); Carteira := Table1.FieldByName('CARTEIRA').AsString; ValorDocumento := StrToCurr(Table1.FieldByName('VALOR').AsString); Sacado.NomeSacado := Table1.FieldByName('NOME').AsString; Sacado.CNPJCPF := Table1.FieldByName('CPFCNPJ').AsString; Sacado.Logradouro := Table1.FieldByName('END').AsString; Sacado.Numero := Table1.FieldByName('NUMERO').AsString; Sacado.Bairro := Table1.FieldByName('BAIRRO').AsString; Sacado.Cidade := Table1.FieldByName('CIDADE').AsString; Sacado.UF := Table1.FieldByName('UF').AsString; Sacado.CEP := Table1.FieldByName('CEP').AsString; ValorAbatimento := 0; LocalPagamento := Table1.FieldByName('LOCAL').AsString; ValorMoraJuros := StrToCurrDef(Table1.FieldByName('MORAJURO').AsString,0); ValorDesconto := StrToCurrDef(Table1.FieldByName('DESCONTO').AsString,0); ValorAbatimento := StrToCurrDef(Table1.FieldByName('ABATIMENTO').AsString,0); DataMoraJuros := StrToDateDef(Table1.FieldByName('DATAMORA').AsString, 0); DataDesconto := StrToDateDef(Table1.FieldByName('DATADESCO').AsString, 0); DataAbatimento := StrToDateDef(Table1.FieldByName('DATAABATI').AsString, 0); DataProtesto := StrToDateDef(Table1.FieldByName('DATAPROTE').AsString, 0); PercentualMulta := StrToCurrDef(Table1.FieldByName('PERCMULTA').AsString,0); Instrucao1 := '00';// PADL(Trim(' ',2,'0'); Instrucao2 := '00';//PADL(Trim(' ',2,'0'); OcorrenciaOriginal.Tipo := toRemessaBaixar; Mensagem.Add(Table1.FieldByName('INSTR1').AsString ); Mensagem.Add(Table1.FieldByName('INSTR2').AsString ); Mensagem.Add(Table1.FieldByName('INSTR3').AsString ); Mensagem.Add(Table1.FieldByName('INSTR4').AsString ); end;
  22. Ele me enviaram esse material vou anexar ! Vou baixar a nova versão e testar. Obrigado. Nosso Número, Boletos.rar
  23. Juliana até eu tentei alterar da seguinte forma: ACBrBoleto1.Banco.TamanhoMaximoNossoNum := 5; mas ele sempre monta o nosso numero com 10 Olhando a função abaixo o meu caso se encaixa no item que está negritado mas o código não chega até la porque não consigo altera o tamanho do nosso numero que fica em 10. e também onde esta grifado não deixa passar porque o meu caso e carteira 18 convenio c/ 6 digitos e nosso numero com 5 digitos. function TACBrBancoBrasil.FormataNossoNumero(const ACBrTitulo :TACBrTitulo): String; var ANossoNumero, AConvenio : string; aCarteira: LongInt; begin with ACBrTitulo do begin AConvenio := ACBrBoleto.Cedente.Convenio; ANossoNumero := OnlyNumber(NossoNumero); aCarteira := StrToIntDef(Carteira,0); if (aCarteira = 16) or (aCarteira = 17) or (aCarteira = 18) then begin if (ACBrTitulo.Carteira = '18') and (Length(AConvenio) = 6) then ANossoNumero := padR(ANossoNumero, 17, '0') else if Length(AConvenio) <= 4 then ANossoNumero := padR(AConvenio, 4, '0') + padR(ANossoNumero, 7, '0') else if (Length(AConvenio) > 4) and (Length(AConvenio) <= 6) then ANossoNumero := padR(AConvenio, 6, '0') + padR(ANossoNumero, 5, '0') <---- aqui ficaria igual ao emissor do proprio banco else if Length(AConvenio) = 7 then ANossoNumero := padR(AConvenio, 7, '0') + padR(ANossoNumero, 10, '0'); end else ANossoNumero := padR(AConvenio, 7, '0')+ padR(ANossoNumero, 11, '0'); end; Result := ANossoNumero; end; Grato Jaime
×
×
  • 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.