From 9fc6257f8d68ee0948c996a3d6f455a954c1e623 Mon Sep 17 00:00:00 2001 From: Martin Date: Mon, 5 Aug 2019 13:24:51 +0200 Subject: [PATCH] P5-4037 data studio: add field item_value_sek --- migrations/000.121.sql | 73 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 migrations/000.121.sql diff --git a/migrations/000.121.sql b/migrations/000.121.sql new file mode 100644 index 0000000..6434bcc --- /dev/null +++ b/migrations/000.121.sql @@ -0,0 +1,73 @@ +-- P5-4037 add item_value_sek column + +DROP VIEW IF EXISTS v_analytics_order_rows; + +CREATE VIEW v_analytics_order_rows AS +SELECT + CASE + WHEN country_code.value IS NULL THEN 'Unknown' + WHEN country_code.value = 'GB' THEN 'Photowall UK' + WHEN country_code.value in ('SE','NO','DE','AT','FR','ES','FI','DK','PL','US','NL') THEN 'Photowall '||country_code.value + ELSE 'Photowall OTHER' + END AS account, + orderrows.orderid as orderid, + orderrows.rowid as rowid, + orders.inserted::DATE as orderdate, + artno.value as artno, + productid.value as productid, + name.value as name, + inquiryid.value as inquiryid, + CASE + WHEN producttype.value = 'stock' AND productpath.value = 'sample' THEN 'Sample' + ELSE productgroup.value + END AS type, + material.value as material, + width.value as width, + height.value as height, + CASE + WHEN status.value = 'process' THEN 'Ready for processing' + WHEN status.value = 'print' THEN 'Ready for printing' + WHEN status.value = 'sent' OR status.value = 'pack' THEN 'Ready for packing' + ELSE 'Unknown' + END AS status, + commission.value as commission_percent, + round(commission_amount.value::float) as commission_amount, + discount_type.value as discount_type, + discount_value.value as discount_value, + CASE + WHEN discount_type.value != '%' + THEN discount_value.value::float / exchange_rate.value::float + ELSE null + END AS discount_amount_sek, + order_currency.value as order_currency, + designer.value as designer, + price.value::float / exchange_rate.value::float as item_value_sek +from + "order-rows" orderrows + left join "order-rows_details" artno on orderrows.rowid = artno.rowid and artno.fieldid = 95 + left join "order-rows_details" productid on orderrows.rowid = productid.rowid and productid.fieldid = 92 + left join "order-rows_details" name on orderrows.rowid = name.rowid and name.fieldid = 97 + left join "order-rows_details" price on orderrows.rowid = price.rowid and price.fieldid = 98 + left join "order-rows_details" modifier on orderrows.rowid = modifier.rowid and modifier.fieldid = 113 + left join "order-rows_details" inquiryid on orderrows.rowid = inquiryid.rowid and inquiryid.fieldid = 114 + left join "order-rows_details" producttype on orderrows.rowid = producttype.rowid and producttype.fieldid = 94 + left join "order-rows_details" productpath on orderrows.rowid = productpath.rowid and productpath.fieldid = 96 + left join "order-rows_details" productgroup on orderrows.rowid = productgroup.rowid and productgroup.fieldid = 93 + left join "order-rows_details" material on orderrows.rowid = material.rowid and material.fieldid = 131 + left join "order-rows_details" width on orderrows.rowid = width.rowid and width.fieldid = 99 + left join "order-rows_details" height on orderrows.rowid = height.rowid and height.fieldid = 100 + left join "order-rows_details" status on orderrows.rowid = status.rowid and status.fieldid = 108 + left join "order-rows_details" commission on orderrows.rowid = commission.rowid and commission.fieldid = 106 + left join "order-rows_details" commission_amount on orderrows.rowid = commission_amount.rowid and commission_amount.fieldid = 120 + left join "order-rows_details" discount_type on orderrows.rowid = discount_type.rowid and discount_type.fieldid = 142 + left join "order-rows_details" discount_value on orderrows.rowid = discount_value.rowid and discount_value.fieldid = 143 + left join "order-orders_fields" order_currency on orderrows.orderid = order_currency.orderid and order_currency.fieldid = 169 + left join "order-orders_fields" country_code on orderrows.orderid = country_code.orderid and country_code.fieldid = 151 + left join "order-rows_details" designer on orderrows.rowid = designer.rowid and designer.fieldid = 104 + left join "order-orders_fields" exchange_rate on orderrows.orderid = exchange_rate.orderid AND exchange_rate.fieldid = 171 + left join "order-orders" orders on orders.orderid = orderrows.orderid +where + modifier.rowid is null +; + +GRANT SELECT ON v_analytics_order_rows TO datastudio;