Ir para conteúdo
  • Cadastre-se

dev botao

Erro No Evento Quandovenderitem Do Acbrvirtualnfce


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

Recommended Posts

  • Membros Pro

Pessoal bom dia.

 

Eu tinha começado a desenvolver nfce e já estava até imprimindo cupom usando o ecfvirtual. Parei uns tempos e voltei agora e para tal atualizei os fontes do acbr.

Desde então está aparecendo a mensagem "Acess Violation at Address 004099B6 in module MagnoPDV"

 

O interessante é que seu eu não colocar nenhum código no evento QuandoVenderItem do AcbrVirtualNFCe o erro desaparece, todavia, fica faltando os parâmetros de ncm e alguns outros e o envio é recusado pelo webservice. Mas basicamente é isto. Basta eu colocar um comando no evento (teste colocando apenas Det.Prod.ncm) que já dá erro.

O fonte que está dentro do evento é o abaixo:

procedure TPDV.ECFVirtualNFCeQuandoVenderItem(Det: TDetCollectionItem);
begin
Det.nItem := Datacliente.TBAuxVendas.FieldByName('ITEM').AsInteger;
With Det.Prod do
Begin
   cProd := Datacliente.TBAuxVendas.FieldByName('CODIGOPRODUTO').AsString;
   if Datacliente.ValidaEAN(Datacliente.TBAuxVendas.FieldByName('CODIGOPRODUTO').AsString) then
      cEAN := Datacliente.TBAuxVendas.FieldByName('CODIGOPRODUTO').AsString
   else
      cEAN := '';
   xProd := Datacliente.TBAuxVendas.FieldByName('PRODUTO').AsString;
   With Datacliente.QEXEC do
   Begin
      sql.Clear;
      sql.Add('SELECT NCM FROM PRODUTOS WHERE CODIGO = ' + QuotedStr(Datacliente.TBAuxVendas.FieldByName('CODIGOPRODUTO').AsString));
      open;
   End;
   if Datacliente.QEXEC.FieldByName('NCM').AsTrimString = '' then
      NCM := '99999999'
   else
      NCM := Datacliente.QEXEC.FieldByName('NCM').AsTrimString;
   if Datacliente.TBAuxVendas.FieldByName('TRIBUTACAO').AsString = 'Substituição Tributária' then
      CFOP := '5403'
   else
      CFOP := '5102';
   qCom     := Datacliente.TBAuxVendas.fieldbyname('QUANTIDADE').AsCurrency;
   if Trim(Datacliente.TBAuxVendas.fieldbyname('UNIDADE').AsString) = '' then
      uCom  := 'UN'
   else
      uCom  := Datacliente.TBAuxVendas.fieldbyname('UNIDADE').AsString;
   vUnCom   := Datacliente.TBAuxVendas.fieldbyname('VALORUNITARIO').AsCurrency;
   vDesc    := Datacliente.TBAuxVendas.fieldbyname('DESCONTO').AsCurrency;
   vProd    := Datacliente.TBAuxVendas.fieldbyname('SUBTOTAL').AsCurrency;
   vOutro   := 0;
   indRegra := irTruncamento;
end;
With Det.Imposto.ICMS do
Begin
   if Datacliente.TBPadrao.FieldByName('SPEDREGIMETRIBUTARIO').AsString = 'SN' then
   Begin
      if Datacliente.TBAuxVendas.FieldByName('TRIBUTACAO').AsString = 'Substituição Tributária' then
         CSOSN := csosn500 else
      if Datacliente.TBAuxVendas.FieldByName('TRIBUTACAO').AsString = 'Isenta' then
         CSOSN := csosn300 else
      if Datacliente.TBAuxVendas.FieldByName('TRIBUTACAO').AsString = 'Não Tributada' then
         CSOSN := csosn400 else
      Begin
         CSOSN := csosn102;
         orig := oeNacional;
         pICMS := Datacliente.TBAuxVendas.FieldByName('ALIQUOTA').AsCurrency;
         vICMS := Datacliente.TBAuxVendas.FieldByName('VALORICMS').AsCurrency;
      End;
   End
   else
   Begin
      if Datacliente.TBAuxVendas.FieldByName('TRIBUTACAO').AsString = 'Substituição Tributária' then
         CST := cst60 else
      if Datacliente.TBAuxVendas.FieldByName('TRIBUTACAO').AsString = 'Isenta' then
         CST := cst40 else
      if Datacliente.TBAuxVendas.FieldByName('TRIBUTACAO').AsString = 'Não Tributada' then
         CST := cst41 else
      Begin
         CST := cst00;
         pICMS := Datacliente.TBAuxVendas.FieldByName('ALIQUOTA').AsCurrency;
         vICMS := Datacliente.TBAuxVendas.FieldByName('VALORICMS').AsCurrency;
      End;
   End;
End;
end;
Link para o comentário
Compartilhar em outros sites

  • Consultores

Você consegue reproduzir o erro utilizando os exemplos?

[]'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

  • 6 meses depois ...
  • Este tópico foi criado há 3224 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.

The popup will be closed in 10 segundos...