--
-- ec_total_tax/1
--
create or replace function ec_total_tax(
integer
) returns numeric as $$
DECLARE
v_order_id alias for $1;
order_tax numeric;
item_price_tax numeric;
item_shipping_tax numeric;
BEGIN
select into order_tax
coalesce(shipping_tax_charged,0) - coalesce(shipping_tax_refunded,0)
FROM ec_orders
WHERE order_id=v_order_id;
select into item_price_tax
coalesce(sum(price_tax_charged),0) - coalesce(sum(price_tax_refunded),0)
FROM ec_items
WHERE order_id=v_order_id
and item_state <> 'void';
select into item_shipping_tax
coalesce(sum(shipping_tax_charged),0) - coalesce(sum(shipping_tax_refunded),0)
FROM ec_items
WHERE order_id=v_order_id;
return order_tax + item_price_tax + item_shipping_tax;
END;$$ language plpgsql;