Ir para conteúdo
  • Cadastre-se

dev botao

IDENTIFICAR GRUPO ICMS NO LOADFROMFILE


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

Recommended Posts

Postado

Bom dia.

Atualmente eu uso o componente do ACBR para importação de XMLs através do ACBrCTE1.Conhecimentos.LoadFromFile(). Funciona bem.
Minha dificuldade é a seguinte: nem todo CTE tem o mesmo grupo de icms. Alguns são ICMS00, outro é ICMS45 e etc.
Se eu tentar carregar ou checar algum desses da seguinte forma:
  if Assigned(ACBrCTE1.Conhecimentos.Items[0].CTe.imp.ICMS.ICMS00) then ...

ou

  if ACBrCTE1.Conhecimentos.Items[0].CTe.imp.ICMS.ICMS00 = CST00 then ...
Nos dois casos ele retorna verdadeiro mesmo que o CTE não use o ICMS00

Sabem me indicar se há uma forma correta/confiável de fazer essa checagem?

  • Solution
Postado

Não é a tag    'imp.ICMS.SituTrib'    que define isto: 

 

  TpcnCSTIcms = (cst00, cst10, cst20, cst30, cst40, cst41, cst45, cst50, cst51,
                 cst60, cst70, cst80, cst81, cst90, cstPart10, cstPart90,
                 cstRep41, cstVazio, cstICMSOutraUF, cstICMSSN, cstRep60,
                 cst02, cst15, cst53, cst61);    

 

Sabendo o conteudo dela, já não saberia qual grupo foi utilizado ?

Captura de tela 2024-07-23 103314.png

Postado
23 horas atrás, fabiofranzini disse:

Não é a tag    'imp.ICMS.SituTrib'    que define isto: 

 

  TpcnCSTIcms = (cst00, cst10, cst20, cst30, cst40, cst41, cst45, cst50, cst51,
                 cst60, cst70, cst80, cst81, cst90, cstPart10, cstPart90,
                 cstRep41, cstVazio, cstICMSOutraUF, cstICMSSN, cstRep60,
                 cst02, cst15, cst53, cst61);    

 

Sabendo o conteudo dela, já não saberia qual grupo foi utilizado ?

Boa tarde.
Consegui solucionar a questão com a sua sugestão. Através do CST da para saber sim o grupo. Obrigado pela ajuda.

A quem interessar, descobri um outro método que pode solucionar e possivelmente ser um pouco mais amplo.

Usando ACBrCTE1.Conhecimentos.Items[0].CTe.XML.Contains('<NomeDaTagXML>') é possível verificar se existe, ou não, uma tag no XML carregado. O único problema é quando houverem tags com o mesmo nome, que daí pode ocasionar algum erro.

Mas para as tags únicas ajuda identificar se existe ou não. Implementei esse método na mesma rotina de importação para verificar se existia toma3 ou toma4 e funcionou de acordo com o esperado

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