Ir para conteúdo
  • Cadastre-se

dev botao

Acbr Como Parãmetrizar Campos Icms


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

Recommended Posts

Prezados amigos do fórum, boa noite !

Estou precisando muito de uma ajuda, a questão é :

 

Na área do DANFE DADOS DOS PRODUTOS / SERVIÇOS não sai os valores das coluna B.CALC.DO ICMS, VALOR DO ICMS VALOR DO IPI, ALIQ.ICMS e ALIQ IPI, sai tudo com o valor 0 ( zero ).

 

Não estou sabendo passar estes valores para o ACBr, veja;

 

with Det.Add do 

begin 

Abre_Itens; 

while not IBQ_Itens.Eof do 

begin 

Prod.nItem := vContador_Itens; // Número sequencial, para cada item deve ser incrementado 

Prod.cProd := IBQ_Itens.FieldByName('CODIGO').AsString; 

Prod.cEAN := ''; 

Prod.xProd := IBQ_Itens.FieldByName('DESCRICAO').AsString; 

Prod.NCM := IBQ_Itens.FieldByName('ncm').AsString; 

Prod.EXTIPI := IBQ_Itens.FieldByName('cst').AsString; 

Prod.CFOP := IBQ_Itens.FieldByName('cfop').AsString; 

Prod.uCom := IBQ_Itens.FieldByName('UNIDADE').AsString; 

Prod.qCom := IBQ_Itens.FieldByName('qtde').AsInteger; 

Prod.vUnCom := IBQ_Itens.FieldByName('PRECO_VENDA').AsCurrency; 

Prod.vProd := (IBQ_Itens.FieldByName('qtde').AsInteger * IBQ_Itens.FieldByName('PRECO_VENDA').AsCurrency); // VALOR 

Prod.cEANTrib := ''; 

Prod.uTrib := IBQ_Itens.FieldByName('UNIDADE').AsString; 

Prod.qTrib := IBQ_Itens.FieldByName('qtde').AsInteger; 

Prod.vUnTrib := Prod.vProd; 

Prod.vFrete := 0; 

Prod.vSeg := 0; 

Prod.vDesc := 0; 

infAdProd := ''; //'Este produto é um teste !'; 

//Grupo para serviços 

with Imposto.ISSQN do 

begin 

cSitTrib := ISSQNcSitTribNORMAL; 

vBC := Prod.vProd; //100; 

vAliq := IBQ_Itens.FieldByName('aliq_icms').AsInteger; 

vISSQN := 2; 

cMunFG := 3554003; 

cListServ := 1402; // Preencha este campo usando a tabela disponível // em http://www.planalto.gov.br/Ccivil_03/LEIS/LCP/Lcp116.htm 

end; 

IBQ_Itens.Next; 

vContador_Itens := (vContador_Itens + 1); 

end; 

IBQ_Itens.Close; 

end;

 

Recorro ao auxilio dos colégas mais experientes !

MUITO OBRIGADO A TODOS !

Júnior

Link para o comentário
Compartilhar em outros sites

O componente não faz cálculos. Você é quem deve informar a base de cálculo e as alíquotas dos impostos. No seu exemplo, você nem chegou a entrar no grupo dos impostos. Tem que ficar mais ou menos parecido com essa estrutura:

with ACBrNFe1.NotasFiscais.Add.NFe do
  begin
    // Emitente
    Emit.CNPJCPF := '';
                  //etc...

    // Destinatário
    Dest.CNPJCPF := '';
                   //etc...

    with Det.Add do
      begin
        with Imposto do
          begin
            // ICMS
            with ICMS do
              begin
                orig := '________';
                CST := '_________';
                modBC := '________';
                            // etc...
              end; // with ICMS

            // IPI
            with IPI do
              begin
              // a mesma coisa para os outros impostos
              end;
          end;  // with Imposto
      end; // with Det.Add


      // Informa os totais da NF-e
      Total.ICMSTot.vBC := '______';
                                // etc
  end; //with ACBrNFe1.NotasFiscais.Add.NFe

 

Peterson de Cerqueira Matos
[email protected]
Vivo: (11) 97197-1474 / Oi: (11) 98059-4055

Link para o comentário
Compartilhar em outros sites

Olá na pasta do ACBr em ..\Fontes\PCN2\ tem uma unit chamada "pcnModeloNFe.pas", ela mostra detalhadamente como preencher as informações de cada tag, estude-a.

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

Link para o comentário
Compartilhar em outros sites

Bom dia, Isaque.

 

Olá na pasta do ACBr em ..\Fontes\PCN2\ tem uma unit chamada "pcnModeloNFe.pas", ela mostra detalhadamente como preencher as informações de cada tag, estude-a.

 

Hoje eu gero o meu XML da NF-e basicamente como o demo da NF, porem com sua indicação deste arquivo pcnModeloNFE.pas achei interessante, baseado neste arquivo teria como declarar este arquivo e passar os valores para ele gerar o XML e enviar a nf-e? 

 

*** desta forma teria uma estrutura de criação do XML 100% sem falhas.

 

*** Outro detalhe do arquivo na parte final , informado abaixo, qdo gero XML igual esta no demo isso tambem ja é feito automaticamente ? principalmente o formato do alerta

 

  NFeW.Opcoes.AjustarTagNro := True;                             // Ajusta o tamanho do campo para 3 posições com zero a esquerda
  NFew.Opcoes.GerarTagIPIparaNaoTributado := True;               // No caso de produto não tributado gera a TAG especifica
  NFeW.Opcoes.GerarTXTSimultaneamente := False;                  // Possibilita gerar um arquivo TXT do formato do programa SEFAZ-SP
  NFeW.Opcoes.NormatizarMunicipios := False;                     // Realiza a normatização do nome do municipio conforme a tabela do IBGE
  NFeW.Opcoes.PathArquivoMunicipios := 'C:\meuCaminho\MunIBGE\'; // Indicar para aonde estão os arquivo com os nomes dos municipios
  NFeW.Opcoes.GerarTagAssinatura := taNunca;                     // Opção de gerar o template da assinature em branco
  NFeW.Opcoes.ValidarInscricoes := False;                        // Valida as Inscrições. (É melhor quando essa validação é feita no ERP)


 

  // Informar as opções comuns ao gerador ( Abaixo opcões Default)


 

  NFeW.Gerador.Opcoes.IdentarXML := False;                                                   // Os arquivos que serão enviados para o SEFAZ não devem estar identados
  NFeW.Gerador.Opcoes.TamanhoIdentacao := 3;                                                 // Tamanho da identação do arquivo
  NFeW.Gerador.Opcoes.FormatoAlerta := 'TAG:%TAGNIVEL% ID:%ID%/%TAG%(%DESCRICAO%) - %MSG%.'; // Formato em que a mensagem vai ser gravada a ListaDeAlertas
  NFeW.Gerador.Opcoes.RetirarEspacos := True;                                                // Retira os espaços em branco duplos nas tag do xml
  NFeW.Gerador.Opcoes.SuprimirDecimais := False;                                             // Ignora valores não significativos nas casa decimais
  NFeW.Gerador.Opcoes.SomenteValidar := False;           

 

 

Obrigado

Link para o comentário
Compartilhar em outros sites

Hoje eu gero o meu XML da NF-e basicamente como o demo da NF, porem com sua indicação deste arquivo pcnModeloNFE.pas achei interessante, baseado neste arquivo teria como declarar este arquivo e passar os valores para ele gerar o XML e enviar a nf-e?

 

NÃO, este arquivo é somente (como o próprio nome já diz) um modelo para quem não conhece as tags a serem preenchidas.

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

Link para o comentário
Compartilhar em outros sites

O componente não faz cálculos. Você é quem deve informar a base de cálculo e as alíquotas dos impostos. No seu exemplo, você nem chegou a entrar no grupo dos impostos. Tem que ficar mais ou menos parecido com essa estrutura:

with ACBrNFe1.NotasFiscais.Add.NFe do
  begin
    // Emitente
    Emit.CNPJCPF := '';
                  //etc...

    // Destinatário
    Dest.CNPJCPF := '';
                   //etc...

    with Det.Add do
      begin
        with Imposto do
          begin
            // ICMS
            with ICMS do
              begin
                orig := '________';
                CST := '_________';
                modBC := '________';
                            // etc...
              end; // with ICMS

            // IPI
            with IPI do
              begin
              // a mesma coisa para os outros impostos
              end;
          end;  // with Imposto
      end; // with Det.Add


      // Informa os totais da NF-e
      Total.ICMSTot.vBC := '______';
                                // etc
  end; //with ACBrNFe1.NotasFiscais.Add.NFe

 

Meu problema é este :

nfe.png

TRAVEI AQUI !!!

 

Código que estou usando :

 

 

with Det.Add do
    begin
      Abre_Itens;
      while not IBQ_Itens.Eof do
      begin
        Prod.nItem := vContador_Itens; // Número sequencial, para cada item deve ser incrementado
        Prod.cProd := IBQ_Itens.FieldByName('CODIGO').AsString;
        Prod.cEAN := '';
        Prod.xProd := IBQ_Itens.FieldByName('DESCRICAO').AsString;
        Prod.NCM := IBQ_Itens.FieldByName('ncm').AsString;
        Prod.EXTIPI := IBQ_Itens.FieldByName('cst').AsString;
        Prod.CFOP := IBQ_Itens.FieldByName('cfop').AsString;
        Prod.uCom := IBQ_Itens.FieldByName('UNIDADE').AsString;
        Prod.qCom := IBQ_Itens.FieldByName('qtde').AsInteger;
        Prod.vUnCom := IBQ_Itens.FieldByName('PRECO_VENDA').AsCurrency;
        Prod.vProd := (IBQ_Itens.FieldByName('qtde').AsInteger * IBQ_Itens.FieldByName('PRECO_VENDA').AsCurrency); // VALOR
 
        Prod.cEANTrib := '';
        Prod.uTrib := IBQ_Itens.FieldByName('UNIDADE').AsString;
        Prod.qTrib := IBQ_Itens.FieldByName('qtde').AsInteger;
        Prod.vUnTrib := Prod.vProd;
 
        Prod.vFrete := 0;
        Prod.vSeg := 0;
        Prod.vDesc := 0;
 
        infAdProd := ''; //'Este produto é um teste !';
 
        with Imposto do
        begin
          with ICMS do
          begin
            ICMS.modBC := dbiMargemValorAgregado; // N13 - Modalidade de determinação da BC do ICMS
            ICMS.vBC := Prod.vProd; // N15 - Valor da BC do ICMS
            ICMS.pICMS := 18; // N16 - Alíquota do imposto
            ICMS.vICMS := 6.42; // N17 - Valor do ICMS
          end;
        end;
 
        //Grupo para serviços
        {with Imposto.ISSQN do
        begin
          cSitTrib := ISSQNcSitTribNORMAL;
          vBC := 120; //Prod.vProd; //100;
          vAliq := IBQ_Itens.FieldByName('aliq_icms').AsInteger;
          vISSQN := 2;
          cMunFG := 3554003;
          cListServ := 1402; // Preencha este campo usando a tabela disponível                               // em http://www.planalto.gov.br/Ccivil_03/LEIS/LCP/Lcp116.htm
        end;}
 
        IBQ_Itens.Next;
        vContador_Itens := (vContador_Itens + 1);
      end;
      IBQ_Itens.Close;
    end;
 
    Total.ICMSTot.vBC := IBQ_SaidasVLR_BASE_ICMS.Value;
    Total.ICMSTot.vICMS := IBQ_SaidasVLR_ICMS.Value;
    Total.ICMSTot.vBCST := 0;
    Total.ICMSTot.vST := 0;
    Total.ICMSTot.vProd := IBQ_SaidasVLR_NOTA_FISCAL.Value;
    Total.ICMSTot.vFrete := IBQ_SaidasVLR_FRETE.Value;
    Total.ICMSTot.vSeg := IBQ_SaidasVLR_FRETE_SEGURO.Value;
    Total.ICMSTot.vDesc := 0;
    Total.ICMSTot.vII := 0;
    Total.ICMSTot.vIPI := IBQ_SaidasVLR_IPI.Value;
    Total.ICMSTot.vPIS := 0;
    Total.ICMSTot.vCOFINS := 0;
    Total.ICMSTot.vOutro := 0;
    Total.ICMSTot.vNF := IBQ_SaidasVLR_NOTA_FISCAL.Value;
 
    Total.ISSQNtot.vServ := 0;
    Total.ISSQNTot.vBC := 0;
    Total.ISSQNTot.vISS := 0;
    Total.ISSQNTot.vPIS := 0;
    Total.ISSQNTot.vCOFINS := 0;
 
 
OBRIGADO AMIGOS PELA ATENÇÃO !!!
MUITO OBRIGADO MESMO !!!
Junior.
Link para o comentário
Compartilhar em outros sites

Eu vi que no seu Danfe, está sendo exibida a coluna CSON, ao invés do CST. Isso significa que no seu XML, a tag <CRT> está "1" ou "2", que são códigos de regime de Simples Nacional. Segundo o manual, quando o CRT é 1 ou 2, somente o CSOSN 900 é que exibe os campos vBC, pICMS e vICMS. Se for este o seu caso, estes campos sairão zerados mesmo. Se o seu CRT for 3, aí sim o componente exibirá estes campos com o valor que você informar. Verifique se o seu emitente é realmente Simples Nacional ou Regime normal de tributação. Se estiver adicionando um NF-e, este campo CRT estará em:

ACBrNFe1.NotasFiscais.Add.NFe.Emit.CRT

Peterson de Cerqueira Matos
[email protected]
Vivo: (11) 97197-1474 / Oi: (11) 98059-4055

Link para o comentário
Compartilhar em outros sites

  • Solution

:-P  :-P  :-P  :-P  :-P  RESOLVIDO !  :-P  :-P  :-P  :-P  :-P 

 

Amigos o peterson161 tinha razão, foi só mudar o parãmetro "ACBrNFe1.NotasFiscais.Add.NFe.Emit.CRT" para "Emit.CRT := crtRegimeNormal; // (1-crtSimplesNacional, 2-crtSimplesExcessoReceita, 3-crtRegimeNormal)" pronto ! O valores foram impressos !

 

Muito Obrigado amigos !

Tenham um ótimo dia.

Júnior

Link para o comentário
Compartilhar em outros sites

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