Ir para conteúdo
  • Cadastre-se

dev botao

Dúvida Icms St 140


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

Recommended Posts

Boa tarde, estou com duvida de cst para emissão de uma nota de entrada, utilizo o componente acbrnfe

pela orientação do escritório o st a ser utilizado e o 140 por ser uma nota de entrada de importação.

o código que estou alimentando o componente e este

 

if dm.cdsitemnfe.FieldByName('st').AsString = '041' then
                ICMS.CST := cst41
              else if dm.cdsitemnfe.FieldByName('st').AsString = '000' then
                ICMS.CST := cst00
              else if dm.cdsitemnfe.FieldByName('st').AsString = '010' then
                ICMS.CST := cst10
              else if dm.cdsitemnfe.FieldByName('st').AsString = '020' then
                ICMS.CST := cst20
              else if dm.cdsitemnfe.FieldByName('st').AsString = '030' then
                ICMS.CST := cst30
              else if dm.cdsitemnfe.FieldByName('st').AsString = '040' then
                ICMS.CST := cst40
              else if dm.cdsitemnfe.FieldByName('st').AsString = '041' then
                ICMS.CST := cst41
              else if dm.cdsitemnfe.FieldByName('st').AsString = '045' then
                ICMS.CST := cst45
              else if dm.cdsitemnfe.FieldByName('st').AsString = '050' then
                ICMS.CST := cst50
              else if dm.cdsitemnfe.FieldByName('st').AsString = '051' then
                ICMS.CST := cst51
              else if dm.cdsitemnfe.FieldByName('st').AsString = '060' then
                ICMS.CST := cst60
              else if dm.cdsitemnfe.FieldByName('st').AsString = '140' then
                ICMS.CST := ???; -> não tem a opção cst140.
 
desde já agradeço a todos
Link para o comentário
Compartilhar em outros sites

  • Moderadores
  • Solution

Eu não vou conseguir te explicar pelo código, porque não programo em Delphi. 

Pelo que vi vc está tendo dificuldade em entender o código CST (Código da Situação Tributária)

 

CST é composto de 2 dígitos e não 3.

O primeiro dígito que acaba indo junto com o código é o codigo da origem da mercadoria.

 

Então se vc tem 

040 = 0-Origem Nacional  40 - Isenta 

Se o código for 

140 = 1- Origem Estrangeira - Importação direta, exceto a indicada no código 6  40 - Isenta

 

Como origem você pode ter os códigos:

- Nacional, exceto as indicadas nos códigos 3 a 5;

1 - Estrangeira - Importação direta, exceto a indicada no código 6;

2 - Estrangeira - Adquirida no mercado interno, exceto a indicada no código 7;

3 - Nacional, mercadoria ou bem com Conteúdo de Importação superior a  40%;

4 - Nacional, cuja produção tenha sido feita em conformidade com os processos produtivos básicos;

5 - Nacional, mercadoria ou bem com Conteúdo de Importação inferior ou igual a 40%;

- Estrangeira - Importação direta, sem similar nacional;

7 - Estrangeira - Adquirida no mercado interno, sem similar nacional;

 

 

E como CST:

00 - Tributada integralmente 

10 - Tributada e com cobrança do ICMS por substituição tributária 

20 - Com redução de base de cálculo 

30 - Isenta ou não tributada e com cobrança do ICMS por substituição tributária 

40 - Isenta 

41 - Não tributada 

50 - Suspensão 

51 - Diferimento 

60 - ICMS cobrado anteriormente por substituição tributária 

70 - Com redução de base de cálculo e cobrança do ICMS por substituição tributária 

90 - Outras ; 

 

 

Com isto  posto, vc deve então tratar dos dois últimos códigos.

 

Exemplo: Aonde vc está tratando: 

   else if dm.cdsitemnfe.FieldByName('st').AsString = '040' then
                ICMS.CST := cst40

Na verdade a origem (que pode ser de 0 a 7 no primeiro dígito)  e terminando com 40 (CST que é o segundo e terceiro dígito) todos estes códigos acabam caindo nesta regra do ICMS.CST:=CST40.

 

Ou seja não importa se é 140 040 240  o CST é 40 o que está mudando é a origem da mercadoria que é o primeiro código.

 

 


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

 

Eu não vou conseguir te explicar pelo código, porque não programo em Delphi. 

Pelo que vi vc está tendo dificuldade em entender o código CST (Código da Situação Tributária)

 

CST é composto de 2 dígitos e não 3.

O primeiro dígito que acaba indo junto com o código é o codigo da origem da mercadoria.

 

Então se vc tem 

040 = 0-Origem Nacional  40 - Isenta 

Se o código for 

140 = 1- Origem Estrangeira - Importação direta, exceto a indicada no código 6  40 - Isenta

 

Como origem você pode ter os códigos:

 

E como CST:

 

Com isto  posto, vc deve então tratar dos dois últimos códigos.
 
Exemplo: Aonde vc está tratando: 
   else if dm.cdsitemnfe.FieldByName('st').AsString = '040' then
                ICMS.CST := cst40

Na verdade a origem (que pode ser de 0 a 7 no primeiro dígito)  e terminando com 40 (CST que é o segundo e terceiro dígito) todos estes códigos acabam caindo nesta regra do ICMS.CST:=CST40.

 

Ou seja não importa se é 140 040 240  o CST é 40 o que está mudando é a origem da mercadoria que é o primeiro código.

 

 

 

O kiko exemplificou bem, mas quando vc diz "nota de entrada de importação", atende para as origens que citdas no tópico.

Se a sua empresa importou a origem deve ser 1 ou 6 (desde de que esta não tenha similar nacional - ver tabela camex)

Se adquiriu de um distribuidor, porém é uma mercadoria é importada, a origem deve ser 2 (Ver tabela camex para saídas externas) ou 7.

 

[]s,

Jorge Andrade

 

"Quem tem medo de perguntar, está fadado a eternizar-se na dúvida - [Jorge Andrade]";
 

"A soberba,  é o sentimento caracterizado pela pretensão de superioridade sobre as demais pessoas, levando a manifestações ostensivas de arrogância, por vezes sem fundamento algum em fatos ou variáveis reais - [Desconhecido";
 

"Aquele  que pesquisa antes de indagar, tem a grande chance de dirimir as suas dúvidas, fixar o aprendizado da pesquisa e evoluir para outros conhecimentos inesperados - [Jorge Andrade]";
 

"Os políticos e as fraldas devem ser trocados frequentemente e pela mesma razão - [Éça de Queiroz]".

Link para o comentário
Compartilhar em outros sites

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