Jump to content

dev botao

Rejeição 513 - Total do BC ICMS difere do Somatório dos Itens


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

Recommended Posts

Pessoal, já pesquisei bastante e não consegui resolver essa rejeição. Segue meu código, por gentileza, indicar onde estou errando.

procedure TFrmVendas.gerarNFCE;
Var
NotaF: NotaFiscal;
item : integer;
Produto: TDetCollectionItem;
InfoPgto: TpagCollectionItem;

begin
nfce.NotasFiscais.Clear;
NotaF := nfce.NotasFiscais.Add;


  //DADOS DA NOTA FISCAL

  NotaF.NFe.Ide.natOp     := 'VENDA';
  NotaF.NFe.Ide.indPag    := ipVista;
  NotaF.NFe.Ide.modelo    := 65;
  NotaF.NFe.Ide.serie     := 1;
  NotaF.NFe.Ide.nNF       := Integer(idVenda);//ERRO NA CAST DO VALOR INTEIRO
  NotaF.NFe.Ide.dEmi      := Now;
  NotaF.NFe.Ide.dSaiEnt   := Date;
  NotaF.NFe.Ide.hSaiEnt   := Now;
  NotaF.NFe.Ide.tpNF      := tnSaida;
  NotaF.NFe.Ide.tpEmis    := teNormal;
  NotaF.NFe.Ide.tpAmb     := taHomologacao;  //Lembre-se de trocar esta variável quando for para ambiente de produção
  NotaF.NFe.Ide.verProc   := '1.0.0.0'; //Versão do seu sistema
  NotaF.NFe.Ide.cUF       := 25;
  NotaF.NFe.Ide.cMunFG    := 2506905;
  NotaF.NFe.Ide.finNFe    := fnNormal;
  NotaF.NFe.Ide.tpImp     := tiNFCe;

  //CONFIG CONSUMIDOR FINAL
  NotaF.NFe.Ide.indFinal  := cfConsumidorFinal;
  NotaF.NFe.Ide.indPres   := TpcnPresencaComprador.pcPresencial;
  NotaF.NFe.Ide.procEmi   := TpcnProcessoEmissao.peAplicativoContribuinte;


  //DADOS DO EMITENTE

  NotaF.NFe.Emit.CNPJCPF           := '***************';
  NotaF.NFe.Emit.IE                := '*********';
  NotaF.NFe.Emit.xNome             := '*************';
  NotaF.NFe.Emit.xFant             := '*************';

  NotaF.NFe.Emit.EnderEmit.fone    := '************';
  NotaF.NFe.Emit.EnderEmit.CEP     := *************;
  NotaF.NFe.Emit.EnderEmit.xLgr    := '************';
  NotaF.NFe.Emit.EnderEmit.nro     := '***';
  NotaF.NFe.Emit.EnderEmit.xCpl    := '';
  NotaF.NFe.Emit.EnderEmit.xBairro := '********';
  NotaF.NFe.Emit.EnderEmit.cMun    := **********;
  NotaF.NFe.Emit.EnderEmit.xMun    := '*********';
  NotaF.NFe.Emit.EnderEmit.UF      := '**';
  NotaF.NFe.Emit.enderEmit.cPais   := ****;
  NotaF.NFe.Emit.enderEmit.xPais   := '******';

  NotaF.NFe.Emit.IEST              := '';
 // NotaF.NFe.Emit.IM                := '2648800'; // Preencher no caso de existir serviços na nota
  //NotaF.NFe.Emit.CNAE              := '6201500'; // Verifique na cidade do emissor da NFe se é permitido
                                // a inclusão de serviços na NFe
  NotaF.NFe.Emit.CRT               := crtSimplesNacional;// (1-crtSimplesNacional, 2-crtSimplesExcessoReceita, 3-crtRegimeNormal)



  //DADOS DO DESTINATÁRIO

  //NotaF.NFe.Dest.CNPJCPF           := '05481336000137';
  //NotaF.NFe.Dest.IE                := '687138770110';
  //NotaF.NFe.Dest.ISUF              := '';
  //NotaF.NFe.Dest.xNome             := 'D.J. COM. E LOCAÇÃO DE SOFTWARES LTDA - ME';

//
//  NotaF.NFe.Dest.EnderDest.Fone    := '1532599600';
//  NotaF.NFe.Dest.EnderDest.CEP     := 18270170;
//  NotaF.NFe.Dest.EnderDest.xLgr    := 'Rua Coronel Aureliano de Camargo';
//  NotaF.NFe.Dest.EnderDest.nro     := '973';
//  NotaF.NFe.Dest.EnderDest.xCpl    := '';
//  NotaF.NFe.Dest.EnderDest.xBairro := 'Centro';
//  NotaF.NFe.Dest.EnderDest.cMun    := 3554003;
//  NotaF.NFe.Dest.EnderDest.xMun    := 'Tatui';
//  NotaF.NFe.Dest.EnderDest.UF      := 'SP';
//  NotaF.NFe.Dest.EnderDest.cPais   := 1058;
//  NotaF.NFe.Dest.EnderDest.xPais   := 'BRASIL';



  //ITENS DA VENDA NA NOTA

  //RELACIONANDO OS ITENS COM A  VENDA
    item := 1;
    vTotal := 0;
    dm.query_vendas_detalhes.Close;
    dm.query_vendas_detalhes.SQL.Clear;
    dm.query_vendas_detalhes.SQL.Add('SELECT vd.id, vd.id_venda, vd.id_funcionario, vd.id_produto, vd.detalhe_produto, vd.qtde, vd.valor, vd.total, p.nome FROM vendas_detalhes as vd INNER JOIN produtos as p ON vd.id_produto = p.id  WHERE  vd.id_venda = :num ORDER BY id ASC');
    dm.query_vendas_detalhes.ParamByName('num').Value :=  idVenda;
    dm.query_vendas_detalhes.Open;
    dm.query_vendas_detalhes.First;

   while not dm.query_vendas_detalhes.eof do
   begin
    Produto := NotaF.NFe.Det.New;
    Produto.Prod.nItem    := item; // Número sequencial, para cada item deve ser incrementado
    Produto.Prod.cProd    := dm.query_vendas_detalhes.FieldByName('id_produto').Value;
    Produto.Prod.cEAN     := '7896523206646';
    Produto.Prod.xProd    := dm.query_vendas_detalhes.FieldByName('detalhe_produto').Value;
    Produto.Prod.NCM      := '94051010'; // Tabela NCM disponível em  http://www.receita.fazenda.gov.br/Aliquotas/DownloadArqTIPI.htm
    Produto.Prod.EXTIPI   := '';
    Produto.Prod.CFOP     := '5101';
    Produto.Prod.uCom     := 'UN';
    Produto.Prod.qCom     := dm.query_vendas_detalhes.FieldByName('qtde').Value;
    Produto.Prod.vUnCom   := dm.query_vendas_detalhes.FieldByName('valor').Value;
    Produto.Prod.vProd    := dm.query_vendas_detalhes.FieldByName('valor').Value;


  //INFORMAÇÕES DE IMPOSTOS SOBRE OS PRODUTOS
    Produto.Prod.cEANTrib  := '7896523206646';
    Produto.Prod.uTrib     := 'UN';
    Produto.Prod.qTrib     := dm.query_vendas_detalhes.FieldByName('qtde').Value;
    Produto.Prod.vUnTrib   := dm.query_vendas_detalhes.FieldByName('valor').Value;

    Produto.Prod.vOutro    := 0;
    Produto.Prod.vFrete    := 0;
    Produto.Prod.vSeg      := 0;
    Produto.Prod.vDesc     := 0;

    Produto.Prod.CEST := '1111111';

    Produto.infAdProd := 'Informacao Adicional do Produto';

   // lei da transparencia nos impostos
    Produto.Imposto.vTotTrib     := 0;
    Produto.Imposto.ICMS.CST     := cst00;
    Produto.Imposto.ICMS.orig    := oeNacional;
    Produto.Imposto.ICMS.modBC   := dbiValorOperacao;
    Produto.Imposto.ICMS.vBC     := dm.query_vendas_detalhes.FieldByName('valor').Value;
    Produto.Imposto.ICMS.pICMS   := 18;
    Produto.Imposto.ICMS.vICMS   := 18;
    Produto.Imposto.ICMS.modBCST := dbisMargemValorAgregado;
    Produto.Imposto.ICMS.pMVAST  := 0;
    Produto.Imposto.ICMS.pRedBCST:= 0;
    Produto.Imposto.ICMS.vBCST   := 0;
    Produto.Imposto.ICMS.pICMSST := 0;
    Produto.Imposto.ICMS.vICMSST := 0;
    Produto.Imposto.ICMS.pRedBC  := 0;
    Produto.Imposto.ICMS.CSOSN := csosn102;

    // partilha do ICMS e fundo de probreza
    Produto.Imposto.ICMSUFDest.vBCUFDest      := 0.00;
    Produto.Imposto.ICMSUFDest.pFCPUFDest     := 0.00;
    Produto.Imposto.ICMSUFDest.pICMSUFDest    := 0.00;
    Produto.Imposto.ICMSUFDest.pICMSInter     := 0.00;
    Produto.Imposto.ICMSUFDest.pICMSInterPart := 0.00;
    Produto.Imposto.ICMSUFDest.vFCPUFDest     := 0.00;
    Produto.Imposto.ICMSUFDest.vICMSUFDest    := 0.00;
    Produto.Imposto.ICMSUFDest.vICMSUFRemet   := 0.00;

    vTotal := vTotal + (dm.query_vendas_detalhes.FieldByName('valor').Value * dm.query_vendas_detalhes.FieldByName('qtde').Value);
    ShowMessage(FloatToStr(vTotal));
    item := item + 1;
    dm.query_vendas_detalhes.Next;
   end;

   //totalizando
  NotaF.NFe.Total.ICMSTot.vBC     := dm.query_vendas_detalhes.FieldByName('total').Value;
  NotaF.NFe.Total.ICMSTot.vICMS   := 18;
  NotaF.NFe.Total.ICMSTot.vBCST   := 0;
  NotaF.NFe.Total.ICMSTot.vST     := 0;
  NotaF.NFe.Total.ICMSTot.vProd   := dm.query_vendas_detalhes.FieldByName('total').Value;
  NotaF.NFe.Total.ICMSTot.vFrete  := 0;
  NotaF.NFe.Total.ICMSTot.vSeg    := 0;
  NotaF.NFe.Total.ICMSTot.vDesc   := StrToFloat(StringReplace(txtDesconto.Text,'R$ ','',[rfReplaceAll, rfIgnoreCase]));
  NotaF.NFe.Total.ICMSTot.vII     := 0;
  NotaF.NFe.Total.ICMSTot.vIPI    := 0;
  NotaF.NFe.Total.ICMSTot.vPIS    := 0;
  NotaF.NFe.Total.ICMSTot.vCOFINS := 0;
  NotaF.NFe.Total.ICMSTot.vOutro  := 0;
  NotaF.NFe.Total.ICMSTot.vNF     := dm.query_vendas_detalhes.FieldByName('total').Value;

  // lei da transparencia de impostos
  NotaF.NFe.Total.ICMSTot.vTotTrib := 0;

  // partilha do icms e fundo de probreza
  NotaF.NFe.Total.ICMSTot.vFCPUFDest   := 0.00;
  NotaF.NFe.Total.ICMSTot.vICMSUFDest  := 0.00;
  NotaF.NFe.Total.ICMSTot.vICMSUFRemet := 0.00;

  NotaF.NFe.Transp.modFrete := mfSemFrete;  //SEM FRETE

  // YA. Informações de pagamento
  InfoPgto := NotaF.NFe.pag.New;
  InfoPgto.indPag := ipVista;
  InfoPgto.tPag   := fpDinheiro;
  InfoPgto.vPag   := dm.query_vendas_detalhes.FieldByName('total').Value;

  //RECUPERAR O NÚMERO DE SÉRIE DO CERTIFICADO
  nfce.Configuracoes.Certificados.NumeroSerie := certificadoDig;

  nfce.NotasFiscais.Assinar;
  nfce.Enviar(Integer(idVenda));
  ShowMessage(nfce.WebServices.StatusServico.Msg);
end;

 

Link to comment
Share on other sites

  • Moderadores

Bom dia!

Quando o conteúdo for extenso, pelas regras do fórum devem ser anexadas ok.

O erro principal é que você escolhe o regime da empresa como Simples:

Citar


NotaF.NFe.Emit.CRT               := crtSimplesNacional   //Se é simples não tem destaque de ICMS.
Produto.Imposto.ICMS.CSOSN := csosn102;   

E você preenche a base de calculo do icms, preencheu o percentual e também não entendi porque colocou um valor fixo e vICMS. 
Só seria 18,00 se o valor fosse 100,00 com alíquota de 18%.  Do contrário o vICMS vai ser o cálculo da base x a alíquota do percentual. 

Citar

Produto.Imposto.ICMS.vBC     := dm.query_vendas_detalhes.FieldByName('valor').Value;
Produto.Imposto.ICMS.pICMS   := 18;
Produto.Imposto.ICMS.vICMS   := 18;


Agora só um comentário:
Observei que você usou este comando:    
Lembrando que para o REGIME DO SIMPLES que você selecionou está errado, pois não tem destaque. 
Mas digamos que estivesse no regime NORMAL CRT = 3 (3-crtRegimeNormal)

Citar

//Base de calculo do icms
NotaF
.NFe.Total.ICMSTot.vBC := dm.query_vendas_detalhes.FieldByName('total').Value;

//total da NFe
NotaF
.NFe.Total.ICMSTot.vNF := dm.query_vendas_detalhes.FieldByName('total').Value;

Para a base do icms vc usa o mesmo campo que é o totalizador da NFe. 
Isto nem sempre é assim.  Se em uma nota fiscal você tiver um produto tributado e outro com icms cobrando anteriormente por subst. tributária. 
Neste caso não seria o mesmo valor.  Exemplo:
Produto 1 CST 00    valor 10,00     Base de calculo ICMS 10,00
Produto 2 CST 60   valor  30, 00    Base de calculo ICMS    0,00

Total Base Calculo ICMS: 10,00
Total NFe: 40,00 

 

 


logoacbr.pngConheça o Portal do Projeto ACBr

Ajude o Projeto ACBr crescer - Assine o SAC ACBr
Assine um dos planos de longa duração do SAC ACBr, obtenha Descontos Especiais, Parcele no Cartão e ainda ganhe Brindes Exclusivos. Saiba mais aqui

Conheça o ACBrLib, o ACBr de forma nativa para qualquer linguagem de programação. Saiba mais aqui

 

 

 

 

Link to comment
Share on other sites

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.