Ir para conteúdo
  • Cadastre-se

jaime

Membros
  • Total de ítens

    70
  • Registro em

  • Última visita

Posts postados por jaime

  1. VI Req. Item 10

    não disponibilizar função para alteração da quantidade dos produtos ou serviços vendidos.

    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.

  2. vou ter que alterar também para outros bancos que possuo aqui como, por exemplo, Bradesco, Caixa Federal , Banco do Brasil (carteira 18), etc ?

    Não. Aquela alteração foi só para o banco do brasil.

    usa boleto Itaú ? Se usa, tá funcionando tudo em ordem e que carteira vc usa ?

    O itau ainda não estou usando mas acredito que esteja ok.

    Vou tentar encontrar um manual para geração de boletos da carteira 11....

    Teriamos mais certeza de como é a composição, porque me orientei pelas funções do outro componente.

  3. Os arquivos gerados por meio do comando previsto no item 19 do Requisito VII (Sintegra e SPED) devem conter todos os registros efetuados até o momento da execução do comando de sua geração, referentes às operações de saída e as prestações praticadas, inclusive aquelas registradas a partir de documento fiscal emitido manualmente.

    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.

  4. Já a função Bematech_FI_VendeItemArredondamentoMFD, que além da venda do item com 14 dígitos no código, permite o arredondamento do valor, está disponível apenas no modelo MP-4000 TH FI, devido ao seu comando implementado

    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:

    o código da mercadoria ou serviço, devendo o campo suportar o código GTIN (Número Global de Item Comercial - Global Trade Item Number) com 14 caracteres;

    Grato

    Jaime

  5. 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;

  6. 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;

  7. Já tenho o material do HSBC, com as especidficações, só não quero sair desenvolvendo do meu jeito e não poder aproveitar o trabalho do ACBR

    Aguardo

    Poderia postar a documentação do HSBC pra gente ?

    Grato

    Jaime

  8. 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

  9. 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.

  10. Boa tarde.

    Seria isso mesmo.

    Quando a carteira é a 18 e o convenio tem 6 digitos existem as duas opções de tamanho de nosso número?...

    Att

    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.

  11. É 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;

  12. 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;

  13. 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.