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. Não foram atualizadas.
  12. 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.
  13. 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;
  14. jaime

    Boleto HSBC

    Poderia postar a documentação do HSBC pra gente ? Grato Jaime
  15. 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
  16. E isso mesmo ta certo !
  17. 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.
  18. 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
  19. 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.
  20. 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.
  21. 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.
  22. É 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;
  23. 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;
  24. Ele me enviaram esse material vou anexar ! Vou baixar a nova versão e testar. Obrigado. Nosso Número, Boletos.rar
  25. 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.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...