Página 1 de 1

Alíquota de ICMS

Enviado: 14 Abr 2021 16:11
por JoséQuintas
aliquota.png
Só brincando mais um pouco

Código: Selecionar todos

CREATE FUNCTION ze_AliquotaIcms( cUFde VARCHAR(2), cUFate VARCHAR(2) )
RETURNS DECIMAL(10,2)
BEGIN
DECLARE nAliquota DECIMAL(10,2);
SET nAliquota = (
CASE
   WHEN cUFde = cUFate AND cUFde IN ( 'AL', 'AM', 'AP', 'BA', 'CE', 
      'DF', 'ES', 'MA', 'MG', 'PB', 'PE', 'PI', 'PR', 'RN', 'RS', 
   	'SP', 'SE', 'TO' ) THEN 18
   WHEN cUFde = cUFate AND cUFde IN ( 'GO', 'MT', 'MS', 'PA', 'RO', 
      'RR', 'SC' ) THEN 17						
   WHEN cUFde = 'AC' AND cUFate = 'AC'  THEN 12
   WHEN cUFde = 'MG' AND cUFate IN ( 'PR', 'RJ', 'RS', 'SC', 'SP' ) THEN 12
   WHEN cUFde = 'MG' THEN 7
   WHEN cUFde = 'RJ' AND cUFate = 'RJ' THEN 20
   WHEN cUFde = 'RJ' AND cUFate IN ( 'MG', 'PR', 'RS', 'SC', 'SP' ) THEN 12
   WHEN cUFde = 'RJ' THEN 7
   WHEN cUFde = 'RS' AND cUFate IN ( 'MG', 'PR', 'PR', 'MS', 'SC', 'SP' ) THEN 12
   WHEN cUFde = 'SC' AND cUFate IN ( 'MG', 'PR', 'MS', 'PB', 'RS', 'SP' ) THEN 12
   WHEN cUFde = 'SC' then 7
   WHEN cUFde = 'SP' AND cUFate IN ( 'MG', 'PR', 'RJ', 'RS', 'SC' ) THEN 12
   WHEN cUFde = 'SP' THEN 7
ELSE 12
END );
RETURN nAliquota;
END
Aí fica bem claro como eu agrupei.
O adicional é pra comparação UFde = UFate, que pega as alíquotas internas.

Alíquota de ICMS

Enviado: 14 Abr 2021 16:22
por JoséQuintas
Só pra lembrar:

Para executar comando é isso.

Caso queira digitar isso no HeidiSQL, aí é onde entra aquele DELIMITER.

Código: Selecionar todos

DELIMITER $$
comando acima
$$
DELIMITER ;
Foi nisso que eu apanhei da primeira vez.
O delimiter não faz parte do SQL, é pro interpretador que no caso é o HeidiSQL entender.

Faltou a documentação do MySQL mostrar isso de forma clara.
Se for digitar no "console" do MySQL também precisa disso.

Alíquota de ICMS

Enviado: 14 Abr 2021 16:36
por JoséQuintas
aliquota.png
Lembram aquilo de ficar criando fórmulas no programa pra determinados cálculos?
Então...
É só colocar os cálculos assim em funções da base de dados.

Vamos poder alterar cálculos sem precisar ficar recompilando, instalando versão, etc.
É pra se pensar muito bem em como organizar isso.

Ao invés de atualizar o EXE inteiro, podemos deixar disponível numa base MySQL na internet, ou num webservice, ou num download direto, tanto faz, já que se trata de texto.

Alíquota de ICMS

Enviado: 14 Abr 2021 16:53
por JoséQuintas
Vixe, me veio outra coisa na cabeça....

A gente vai lá no pedido, trás informações pra fazer os cálculos e salva....

Porque não... tudo ficar lá mesmo, e fazer os cálculos lá mesmo....

Agora é que endoidou tudo de vez....