Ir para conteúdo
  • Cadastre-se

dev botao

Acbribpt E As Tabelas Por Estado


  • Este tópico foi criado há 3383 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros

Olá pessoal, bom dia.

Recebi a atualização da tabela do IBPT e agora elas estão divididas por Estados.
A dúvida é a seguinte: ... haverá algum ajuste no componente que irá buscar a tabela (conforme o estado) de forma mais dinâmica ?

 

Valeu.

Att,

 

Sérgio

Equipe ACBr Sérgio Assunção
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

[email protected]

Link para o comentário
Compartilhar em outros sites

  • Moderadores

O componente foi atualizado, bem como o demo demonstrando os novos campos, basta atualizar e testar.

Aproveitei e adicionei as tabelas de todos os estados ao repositorio SVN também, as tabelas se encontram no diretório: "<ACBr>\Exemplos\ACBrIBPTax\tabela\"

  • Curtir 6

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Link para o comentário
Compartilhar em outros sites

Regys,

 

fiz uma alteração, ainda não testei mas por favor me corrija se eu estiver errado... o que acontece, estava buscando a versão na primeira linha e não na segunda onde realmente ela se encontra, acredito que a primeira linha não nos tenha valia, por isso dela nada carreguei, somente verificando a partir da segunda linha (onde teremos a versão e o período de vigência além da fonte e da chave) as linhas posteriores à 2ª.

 

De qualquer forma seguem as alterações que apliquei para avaliação:

function TACBrIBPTax.PopularItens: Integer;
var
  Item: TStringList;
  I: Integer;
begin
  if Arquivo.Count <= 0 then
    raise EACBrIBPTax.Create('Arquivo de itens não foi baixado!');

  FVersaoArquivo := '';
  Itens.Clear;

  Item := TStringList.Create;
  try
    // primeira linha contem os cabecalhos de campo e da versão do arquivo

    // proximas linhas contem os registros
    for I := 1 to Arquivo.Count - 1 do
    begin
      QuebrarLinha(Arquivo.Strings[I], Item);
      if (Item.Count = 13) then
      begin
        //segunda linha onde contém as informações de versão do arquivo, período de vigência, chave e fonte
        if I = 1 then
        begin
          FVigenciaInicio := StrToDateDef(Item.Strings[8], 0.0);
          FVigenciaFim    := StrToDateDef(Item.Strings[9], 0.0);
          FChaveArquivo   := Item.Strings[10];
          FVersaoArquivo  := Item.Strings[11];
        end;
        try
          // codigo;ex;tabela;descricao;aliqNac;aliqImp;aliqEstadual;aliqMunicipal
          with Itens.New do
          begin
            NCM           := Item.Strings[0];
            Excecao       := Item.Strings[1];
            Tabela        := TACBrIBPTaxTabela(StrToInt(Trim(Item.Strings[2]))) ;
            Descricao     := Item.Strings[3];

            FederalNacional  := StringToFloatDef(Item.Strings[4], 0.00);
            FederalImportado := StringToFloatDef(Item.Strings[5], 0.00);
            Estadual         := StringToFloatDef(Item.Strings[6], 0.00);
            Municipal        := StringToFloatDef(Item.Strings[7], 0.00);
          end;
        except
          on E: Exception do
          begin
            EventoErroImportacao(Arquivo.Strings[I], E.Message);
          end;
        end;
      end
      else
      begin
        EventoErroImportacao(Arquivo.Strings[I], Format('Registro inválido, quantidade de colunas "%d" excede o esperado "7"!', [Item.Count]));
      end;
    end;
  finally
    Item.Free;
  end;

  Result := Itens.Count;
end;

Att.

Rômulo Mayworm

Editado por FocusRJ

"Não me envergonho de mudar de opinião, porque não me envergonho de pensar" (Blaise Pascal)

Link para o comentário
Compartilhar em outros sites

Amigo mais um detalhe...

 

Estava p mostrar o imposto FederalImportado tanto na Estadual quanto na Municipal em:

procedure TACBrIBPTax.ExportarXML(const AArquivo: String);
var
  I: Integer;
  Texto: String;
begin
  if Itens.Count <= 0 then
    EACBrIBPTax.Create('Tabela de itens ainda não foi aberta!');

  Texto := '<?xml version="1.0" encoding="ISO-8859-1"?><IBPTax>';
  for I := 0 to Itens.Count - 1 do
  begin
    Texto := Texto +
      '<imposto>' +
        '<ncm>' + Itens[I].NCM + '</ncm>' +
        '<ex>' + Itens[I].Excecao + '</ex>' +
        '<tabela>' + IntToStr(Integer(Itens[I].Tabela)) + '</tabela>' +
        '<aliqFedNac>' + FloatToString(Itens[I].FederalNacional) + '</aliqFedNac>' +
        '<aliqFedImp>' + FloatToString(Itens[I].FederalImportado) + '</aliqFedImp>' +
        '<aliqEst>' + FloatToString(Itens[I].Estadual) + '</aliqEst>' +    //aqui
        '<aliqMun>' + FloatToString(Itens[I].Municipal) + '</aliqMun>' +   //aqui
        '<descricao>' + ACBrUtil.ParseText(Itens[I].Descricao, False, False) + '</descricao>' +
      '</imposto>';
  end;
  Texto := Texto + '</IBPTax>';

  if Trim(Texto) <> '' then
    WriteToTXT(AnsiString(AArquivo), AnsiString(Texto), False, True);
end;

Att.

Rômulo Mayworm

"Não me envergonho de mudar de opinião, porque não me envergonho de pensar" (Blaise Pascal)

Link para o comentário
Compartilhar em outros sites

  • Consultores

Por favor, se possível, anexe os arquivos alterados.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Bom dia,

 

Pelo que entendi da mudança na lei, além dos tributos serem calculados separadamente por união, UFs e municípios, também deverão estar discriminados na nota dessa forma analítica.

É isso mesmo? Se sim, então como lançar na nota? Há algum campo novo? Pelo que analisei ainda é só o campo único vTotTrib.

 

Obrigado!

Valdir Dill

Rio de Janeiro - RJ

 

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores

No caso da ECF como descriminar os impostos, separadamente ou somando os impostos e descriminando em um único campo?

 

Fiz o questionamento hoje ao IBPT, até o momento não existe nenhuma informação oficial de como será impresso, por isso o componente ACBrECF ainda não teve a parte de impostos no cupom alterado.

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Link para o comentário
Compartilhar em outros sites

Boa tarde.

 

Duas dúvidas básicas:

  1. Utilizo a tabela por estado de acordo com o Emitente ou Destinatario?
  2. Devo somar todas as alíquotas para aplicar no valor do produto? (Nacional + Estadual + Municipal) ou (Importado + Estadual + Municipal) - conforme cst

Desde já sou muito agradecido.

 

Atenciosamente,

------------------------------------------------

Jéter Rabelo Ferreira
Campestre/MG

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Jéter,

 

No caso da NF-e, temos apenas a TAG: vTotTrib (#163a) para informar o valor aproximado dos tributos de cada item e outra vTotTrib (#341a) para informar a somatória dentro do grupo <ICMSTot>.

 

No meu entendimento você deve efetuar os cálculos separadamente e informar o resultado no campo observação e somar o resultados dos 3 cálculos para informar na TAG: vTotTrib.

  • Curtir 3
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Boa tarde Jéter,

 

No caso da NF-e, temos apenas a TAG: vTotTrib (#163a) para informar o valor aproximado dos tributos de cada item e outra vTotTrib (#341a) para informar a somatória dentro do grupo <ICMSTot>.

 

No meu entendimento você deve efetuar os cálculos separadamente e informar o resultado no campo observação e somar o resultados dos 3 cálculos para informar na TAG: vTotTrib.

Obrigado Ítalo.

 

Agora, e quanto ao estado, utilizaremos a tabela da UF do emitente da NF-e ou do Destinatário quando os mesmos forem de UF's diferentes?

Atenciosamente.

------------------------------------------------

Jéter Rabelo Ferreira
Campestre/MG

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Boa tarde, saiu um manual de como proceder e com exemplos, http://deolhonoimposto.ibpt.org.br/, verifiquei que faltou o campo "fonte" na classe ACBrIBPTax.pas, no manual diz que vai ser variavel e vai estar presente nos arquivos seria bom acrescentar.

IBPT do tipo: IBPT, IBPT/FECOMERCIO, IBPT/ACSP, etc. 

Jorge – Analise / Desenvolvimento de Sistemas

Netstart Informatica - (18)3642-0900

www.netstart.com.br

Link para o comentário
Compartilhar em outros sites

  • Membros

Bom dia amigos ... não consegui baixar os manual e os exemplos no site (o download sempre ta vindo corrompido), e só tenho uma dúvida: qual variável devemos usar para o destaque aliqFedNac ou aliqEst ?

Obrigado.

Sérgio

Equipe ACBr Sérgio Assunção
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

[email protected]

Link para o comentário
Compartilhar em outros sites

Bom dia amigos ... não consegui baixar os manual e os exemplos no site (o download sempre ta vindo corrompido), e só tenho uma dúvida: qual variável devemos usar para o destaque aliqFedNac ou aliqEst ?

Obrigado.

Sérgio

Bom dia Sérgio,

 

Verifique sua conexão ou tente através de outro equipamento, aqui realizei o download tanto do http://deolhonoimposto.ibpt.org.br quanto do http://regys.com.br/ e veio perfeitamente.

 

Att.

Rômulo Mayworm

"Não me envergonho de mudar de opinião, porque não me envergonho de pensar" (Blaise Pascal)

Link para o comentário
Compartilhar em outros sites

Bom dia Regys,

 

fiz uma alteração, não sei se seria conveniente, mas na procedure de Exportar coloquei pra na exportação levar também as informações como período de vigência, fonte e chave... qualquer coisa segue o código:

procedure TACBrIBPTax.Exportar(const AArquivo, ADelimitador: String;
  const AQuoted: Boolean);
var
  I: Integer;
  Texto: String;

  function AddQuoted(const AValor: String): String;
  begin
    if AQuoted then
      Result := '"' + AValor + '"'
    else
      Result := AValor
  end;
begin
  if Itens.Count <= 0 then
    EACBrIBPTax.Create('Tabela de itens ainda não foi aberta!');

  Texto := '';
  for I := 0 to Itens.Count - 1 do
  begin
    Texto := Texto +
      AddQuoted(Itens[I].NCM) + ADelimitador +
      AddQuoted(Itens[I].Excecao) + ADelimitador +
      AddQuoted(IntToStr(Integer(Itens[I].Tabela))) + ADelimitador +
      AddQuoted(FloatToString(Itens[I].FederalNacional)) + ADelimitador +
      AddQuoted(FloatToString(Itens[I].FederalImportado)) + ADelimitador +
      AddQuoted(FloatToString(Itens[I].Estadual)) + ADelimitador +
      AddQuoted(FloatToString(Itens[I].Municipal)) + ADelimitador +
      AddQuoted(Itens[I].Descricao) + ADelimitador +
      AddQuoted(FormatDateTime('ddmmyy',FVigenciaInicio)) + ADelimitador +
      AddQuoted(FormatDateTime('ddmmyy',FVigenciaFim)) + ADelimitador +
      AddQuoted(FChaveArquivo) + ADelimitador +
      AddQuoted(FVersaoArquivo) + ADelimitador +
      AddQuoted(FFonte) + ADelimitador +
      sLineBreak;
  end;

  if Trim(Texto) <> '' then
    WriteToTXT(AnsiString(AArquivo), AnsiString(Texto), False, False);
end;

Agora uma dúvida minha, lendo o manual, parece que a chave é gerada no ato do download para cada empresa ou me equivoquei e a chave é única? Pergunto isso pensando da seguinte forma: Será necessário cada cliente meu fazer o seu download e utilizar ou eu posso disponibilizar essa atualização para eles?

 

PS. Acabei de baixar pelo site do De Olho No Imposto e já havia baixado do seu (Regys) a chave é a mesma, logo não muda por empresa - não vou apagar a dúvida para caso algum a tenha também já tenha a resposta aqui - Obrigado

 

Att.

Rômulo Mayworm

Editado por FocusRJ

"Não me envergonho de mudar de opinião, porque não me envergonho de pensar" (Blaise Pascal)

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Bom dia,

 

Por gentileza, gostaria de saber como os colegas estão fazendo para informar os valores discriminados (união, UF e mun) dos tributos para a NFCe.

No caso da NFe beleza, calculo o total, informo o total na vTotTrib e incluo um texto no campo de informações adicionais, mas e na NFCe, como vocês estão procedendo para que seja impresso os 3 valores?

 

Obrigado

Valdir Dill

Rio de Janeiro - RJ

 

 

Link para o comentário
Compartilhar em outros sites

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

The popup will be closed in 10 segundos...