Página 1 de 9

Mudanças da partilha

Enviado: 09 Dez 2015 15:48
por JoséQuintas
Pelo que andei vendo, isso vai ser mais complicado do que parecia, porque entra no cálculo a alíquota interna da UF de destino.
Hoje minha tela de configurar impostos é esta:
tributacao.png
Pelo que entendi, vai precisar de mais dois parâmetros:
- Fundo de Combate à Pobreza (origem ou destino?)
- Alíquota interna da UF destino

Haja parâmetro pra imposto...

Mas... alguém já entendeu como vai ser o cálculo?

Mudanças da partilha

Enviado: 09 Dez 2015 17:24
por JoséQuintas
O ICMS ST já utiliza a alíquota para consumidor final.
Talvez até melhor alterar o nome de ICMS ST para Alíquota UF destino.

É isso mesmo, ou agora é que confundi?

Mudanças da partilha

Enviado: 09 Dez 2015 18:53
por JoséQuintas
O exemplo do manual:

Produtos: 1.000
ICMS 4%:
base de cálculo interestadual: 1041,67
imposto: 41.67

Base de cálculo UF destino: 1.234,57
Alíquota interna destino: 19%
Alíquota s/ FCP: 17%
Adicional FCP: 2%
ICMS Total UF Destino: 209.88
ICMS Dif. Alíquota Destino: 168,21
FCP: 24,69
ICMS Total: 234,57

Alguém consegue explicar?

Por exemplo:
O ICMS vai deixar de ser sobre o valor do produto, e ser acrescido ao produto?
O ICMS de hoje vai sumir e dar lugar ao novo cálculo?

E empresa do simples? deixaram de ser simples e vão pagar imposto?

Isso no manual tá longe de servir como manual.

Mudanças da partilha

Enviado: 09 Dez 2015 20:45
por JoséQuintas
O mais próximo que cheguei do demonstrativo constante no manual.
(Post editado, reeditado, reeditado... )
imposto.png
o fonte, com digitação e cálculo:

Código: Selecionar todos

#include "inkey.ch"
#include "hbclass.ch"

PROCEDURE Main

   LOCAL GetList := {}, oValores := ValoresClass():New()

   SetMode( 24, 90 )
   CLS
   DO WHILE .T.
      @ 1, 0             SAY "Valor Produto..:" GET oValores:mValorProduto  PICTURE "999,999,999.99" VALID oValores:Calculo( GetList )
      @ Row() + 2, 0     SAY "ICMS Base......:" GET oValores:mIcmsBase      PICTURE "999,999,999.99" VALID oValores:Calculo( GetList ) WHEN .F.
      @ Row(), Col() + 2 SAY "Aliquota.:"       GET oValores:mIcmsAliq      PICTURE "999.99"         VALID oValores:Calculo( GetList )
      @ Row(), Col() + 2 SAY "Valor.:"          GET oValores:mIcmsValor     PICTURE "999,999,999.99" VALID oValores:Calculo( GetList )
      @ Row() + 2, 0     SAY "ICMS UFUF Base.:" GET oValores:mIcmsIBase     PICTURE "999,999,999.99" VALID oValores:Calculo( GetList ) WHEN .F.
      @ Row(), Col() + 2 SAY "Aliquota.:"       GET oValores:mIcmsIAliq     PICTURE "999.99"         VALID oValores:Calculo( GetList )
      @ Row(), Col() + 2 SAY "Valor.:"          GET oValores:mIcmsIValor    PICTURE "999,999,999.99" VALID oValores:Calculo( GetList ) WHEN .F.
      @ Row() + 2, 0     SAY "ICMS Subst Base:" GET oValores:mSubstBase     PICTURE "999,999,999.99" VALID oValores:Calculo( GetList ) WHEN .F.
      @ Row(), Col() + 2 SAY "Aliq.c/FP:"       GET oValores:mSubstAliq     PICTURE "999.99"         VALID oValores:Calculo( GetList )
      @ Row(), Col() + 2 SAY "Valor.:"          GET oValores:mSubstValor    PICTURE "999,999,999.99" VALID oValores:Calculo( GetList ) WHEN .F.
      @ Row(), Col() + 2 SAY "IVA.:"            GET oValores:mSubstIVA      PICTURE "999.999"        VALID oValores:Calculo( GetList )
      @ Row() + 2, 0     SAY "ICMS Des.I.Base:" GET oValores:mIcmsDestBase  PICTURE "999,999,999.99" VALID oValores:Calculo( GetList ) WHEN .F.
      @ Row(), Col() + 2 SAY "Aliq.s/FP:"       GET oValores:mIcmsDestAliq  PICTURE "999.99"         VALID oValores:Calculo( GetList )
      @ Row(), Col() + 2 SAY "Valor.:"          GET oValores:mIcmsDestValor PICTURE "999,999,999.99" VALID oValores:Calculo( GetList ) WHEN .F.
      @ Row() + 2, 0     SAY "FCP Base.......:" GET oValores:mFCPBase       PICTURE "999,999,999.99" VALID oValores:Calculo( GetList ) WHEN .F.
      @ Row(), Col() + 2 SAY "Aliquota.:"       GET oValores:mFCPAliq       PICTURE "999.99"         VALID oValores:Calculo( GetList )
      @ Row(), Col() + 2 SAY "Valor.:"          GET oValores:mFCPValor      PICTURE "999,999,999.99" VALID oValores:Calculo( GetList ) WHEN .F.
      @ Row() + 2, 0     SAY "ICMS Partilha..:" GET oValores:mIcmsPartilha  PICTURE "999,999,999.99" VALID oValores:Calculo( GetList ) WHEN .F.
      READ
      IF LastKey() == K_ESC
         EXIT
      ENDIF
   ENDDO
   RETURN

CREATE CLASS ValoresClass
   VAR mValorProduto  INIT 1000
   VAR mIcmsBase      INIT 0
   VAR mIcmsAliq      INIT 4
   VAR mIcmsValor     INIT 0
   VAR mIcmsIBase     INIT 0
   VAR mIcmsIAliq     INIT 4
   VAR mIcmsIValor    INIT 0
   VAR mSubstBase     INIT 0
   VAR mSubstAliq     INIT 0
   VAR mSubstValor    INIT 0
   VAR mSubstIVA      INIT 23.457
   VAR mIcmsDestBase  INIT 0
   VAR mIcmsDestAliq  INIT 17
   VAR mIcmsDestValor INIT 0
   VAR mFcpBase       INIT 0
   VAR mFcpAliq       INIT 2
   VAR mFCPValor      INIT 0
   VAR mIcmsPartilha  INIT 0
   METHOD Calculo( GetList )
   END CLASS

METHOD Calculo( GetList ) CLASS ValoresClass

   LOCAL nCont

   ::mIcmsBase      := ::mValorProduto
   ::mIcmsValor     := Int( ::mValorProduto * ::mIcmsAliq ) / 100
   ::mIcmsIBase     := Round( ::mValorProduto / ( 100 - ::mIcmsIAliq ) * 100, 2 )
   ::mIcmsIValor    := ::mIcmsIBase - ::mValorProduto
   ::mSubstBase     := ::mValorProduto + ( Int( ::mValorProduto * ::mSubstIva ) / 100 )
   ::mSubstAliq     := ::mIcmsDestAliq + ::mFcpAliq
   ::mSubstValor    := Max( 0, Int( ::mSubstBase * ( ::mSubstAliq ) ) / 100 - ::mIcmsValor )
   ::mIcmsDestBase  := ::mSubstBase
   ::mIcmsDestValor := Int( ::mIcmsDestBase * ( ::mIcmsDestAliq ) ) / 100
   ::mFcpBase       := ::mIcmsDestBase
   ::mFcpValor      := Int( ::mIcmsDestBase * ::mFcpAliq ) / 100
   ::mIcmsPartilha  := ::mIcmsDestValor - ::mIcmsIValor
   FOR nCont = 1 TO Len( GetList )
      GetList[ nCont ]:Display()
   NEXT
   RETURN .T.

Mudanças da partilha

Enviado: 09 Dez 2015 21:09
por JoséQuintas
A soma do ICMS + Subst: 40.00 + 194.56 = 234,56
A soma do ICMS Des + FCP: 209.87 + 24,69 = 234,56
E nem precisa dizer: a soma do ICMS.Interestadual + partilha + FCP: 41.67 + 168,20 + 24.69 = 234.56

Lembrando que falta confirmar esses cálculos doidos.
Por enquanto foi uma espécie de chute.

Mudanças da partilha

Enviado: 10 Dez 2015 09:50
por janio
Quintas,

Eram essas duvidas que postei no outro post. Mim indicaram como 'solução' um link para a NT...
#-)

Temos q saber o aliquota do Estado destino. Como?

Outra: "ICMS UFUF : 1.041,67", como vc chegou a esse valor?

Janio

Mudanças da partilha

Enviado: 10 Dez 2015 10:19
por JoséQuintas
Só ver o cálculo no fonte.

É um cálculo ao contrário: Quanto é que, descontando 4%, resulta no valor dos produtos de 1.000,00

BASE - 4% = 1.000,00

1.041, 67 - 4% (41, 67) = 1.000,00


Sobre a alíquota do estado de destino:
Pra poder calcular a substituição tributária, já temos que saber disso.
É o mesmo percentual da substituição tributária.

Como dá pra perceber aí, tudo se resume em calcular o rateio entre as UFs.
O valor total de imposto é o mesmo.

Lembrando novamente: aqui fiz os cálculos pra chegar ao que está no manual do governo.
Postei pra tentar confirmar tudo isso.
No manual só tem valores e nada mais.

Mudanças da partilha

Enviado: 10 Dez 2015 15:35
por Poka
José Quintas,
tudo isso é para 01/01/2016?


Poka

Mudanças da partilha

Enviado: 10 Dez 2015 19:53
por JoséQuintas
O uso do CEST foi adiado pra abril.
Por enquanto nada sobre adiar isso do rateio.

Se for assim, até que não é muita alteração.
O fundo de combate à pobreza é por UF, dá pra deixar fixo no aplicativo.
O percentual de rateio é alterado uma vez por ano, dá pra deixar fixo no aplicativo.

Vai restar somente o cálculo mesmo, e a inclusão disso no XML.

Mudanças da partilha

Enviado: 10 Dez 2015 20:39
por Poka
Obrigado Quintas, vamos por a mão na massa.

Poka

Mudanças da partilha

Enviado: 11 Dez 2015 09:41
por janio
Quintas,

Então vamos por partes... o que temos pra fazer de URGÊNCIA para 01/janeiro eh:

- Fundo de combate a probreza;
- Rateio de ICMS;

Algo mais?

Aí vem as regras: O rateio de ICMS eh para qndo for VENDA para FORA DO ESTADO e para CONSUMIDOR FINAL. Para isso precisamos para fazer todos aqueles calculos, no mínimo, saber a ALIQUOTA DE ICMS do ESTADO DESTINO.

Eu não emito nota com substituição tributária, ainda. Por isso insisto: Como vc faz para saber a aliquota do Estado destino?

Janio

Mudanças da partilha

Enviado: 11 Dez 2015 12:44
por JoséQuintas
Cada UF tem a sua alíquota interna, mas já não sei se algum produto poderia ser diferente..

No meu caso criei a tabela de regras, e o usuário é quem preenche.
Posso até indicar um tipo de preenchimento, mas sempre oriento que é o contador quem vai dar a palavra final.
Então nem acompanho mais isso de perto.

Meu aplicativo tá bem flexível, aceita 999.999 regras diferentes.
Até agora tem atendido.

O que estou pensando aqui é a confusão que o fundo de combate à pobreza pode causar.
Nos cálculos atuais, que estão corretos, o ICMS inclui o FCP.
Na hora que configurar separado ICMS e FCP, pode exigir mexer em todos os cálculos do aplicativo, ou pode confundir o usuário sobre que percentual utilizar no ICMS: com ou sem FCP
Não tinha pensado nisso antes....



José M. C. Quintas

Mudanças da partilha

Enviado: 18 Dez 2015 09:34
por Kapiaba
Bom dia, alguém tem um .xml válido para vermos onde estamos errando? Obg. abs.

Mudanças da partilha

Enviado: 18 Dez 2015 10:33
por JoséQuintas
Na prática nem mexi no aplicativo, e nem pretendo mexer.

Ontem já mudaram de novo com a NT 1.50.
Considerando a data 17/12/2015, feriados até 01/01/2016, e a quantidade de mudanças que já teve, difícil acreditar que vai valer dia primeiro.

Mudanças da partilha

Enviado: 18 Dez 2015 10:50
por Kapiaba
Mister Quintas, pode me dar uma mão aqui?

Imagem

Obg. abs.