Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Ajustando o percentual do imposto

Eu realmente preciso otimizar isso kk Mas minha ideia foi essa, embora tenha ficado grande, funcionou perfeitamente. Eu sempre gosto de fazer as tabelas e estruturar o banco ao meu gosto, então vou adaptando as funções e as procedures de acordo com a modelagem das minhas tabelas.

CREATE OR REPLACE PROCEDURE RECALCULA_VLRTOTAL
IS
 v_count INTEGER := 1;
 v_max   INTEGER;
 v_total INTEGER;
 v_prod  pedido_venda_item.cod_produto%Type;
BEGIN
  SELECT count(*)
  INTO   v_max
  FROM   pedido_venda_item;
  
  LOOP
     SELECT (pvi.quantidade * pvi.valor_unit) as valor_total
     INTO v_total
     FROM pedido_venda_item pvi
     WHERE pvi.id = v_count;
  
     SELECT pvi2.cod_produto
     INTO v_prod
     FROM pedido_venda_item pvi2
     WHERE pvi2.id = v_count;
     
  UPDATE pedido_venda_item 
  SET valor_total = v_total, imposto = retorna_imposto(v_prod)
  WHERE id = v_count;
  
  v_count := v_count + 1;
  
  EXIT WHEN v_count > v_max;
  END LOOP;  
  
 COMMIT;
      
END;
1 resposta
solução!

Oi Leonardo, tudo bem?

Parabéns pela elaboração da procedure! Você conseguiu implementar uma lógica funcional para recalcular o valor total e o imposto para cada item de pedido de venda. É ótimo ver o seu esforço e dedicação na estruturação do banco ao seu gosto.

Continue assim, explorando e adaptando as funcionalidades de acordo com as necessidades do seu projeto.

Um abraço e bons estudos.