Ir para conteúdo
  • Cadastre-se

dev botao

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


  • Este tópico foi criado há 1300 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

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