--
-- ec_total_shipping/1
--
create or replace function ec_total_shipping(
integer
) returns numeric as $$
DECLARE
v_order_id alias for $1;
order_shipping numeric;
item_shipping numeric;
BEGIN
select into order_shipping
coalesce(shipping_charged,0) - coalesce(shipping_refunded,0)
FROM ec_orders
WHERE order_id=v_order_id;
select into item_shipping
coalesce(sum(shipping_charged),0) - coalesce(sum(shipping_refunded),0)
FROM ec_items
WHERE order_id=v_order_id
and item_state <> 'void';
return order_shipping + item_shipping;
END;$$ language plpgsql;