diff --git a/migrations/000.249.sql b/migrations/000.249.sql new file mode 100644 index 0000000..2e14cc0 --- /dev/null +++ b/migrations/000.249.sql @@ -0,0 +1,76 @@ +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'::text + WHEN country_code.value = 'GB'::text THEN 'Photowall UK'::text + WHEN country_code.value = ANY (ARRAY['SE'::text, 'NO'::text, 'DE'::text, 'AT'::text, 'FR'::text, 'ES'::text, 'FI'::text, 'DK'::text, 'PL'::text, 'US'::text, 'NL'::text]) THEN 'Photowall '::text || country_code.value + ELSE 'Photowall OTHER'::text + END AS account, + orderrows.orderid, + orderrows.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'::text AND productpath.value = 'sample'::text THEN 'Sample'::text + ELSE productgroup.value + END AS type, + material.value AS material, + width.value AS width, + height.value AS height, + CASE + WHEN status.value = 'process'::text THEN 'Ready for processing'::text + WHEN status.value = 'print'::text THEN 'Ready for printing'::text + WHEN status.value = 'sent'::text OR status.value = 'pack'::text THEN 'Ready for packing'::text + ELSE 'Unknown'::text + END AS status, + commission.value AS commission_percent, + round(commission_amount.value::double precision) AS commission_amount, + discount_type.value AS discount_type, + discount_value.value AS discount_value, + CASE + WHEN discount_type.value <> '%'::text THEN discount_value.value::double precision / exchange_rate.value::double precision + ELSE NULL::double precision + END AS discount_amount_sek, + order_currency.value AS order_currency, + designer.value AS designer, + price.value::double precision / exchange_rate.value::double precision AS item_value_sek, + framed.value AS canvas_frame, + poster_hanger.value AS poster_hanger, + frame_color.value AS framed_print_frame, + price.value::double precision AS price, + vat.value AS vat + 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-rows_details" poster_hanger ON orderrows.rowid = poster_hanger.rowid AND poster_hanger.fieldid = 153 + LEFT JOIN "order-rows_details" framed ON orderrows.rowid = framed.rowid AND framed.fieldid = 122 + LEFT JOIN "order-rows_details" frame_color ON orderrows.rowid = frame_color.rowid AND frame_color.fieldid = 156 + 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-rows_details" vat ON orderrows.rowid = vat.rowid AND vat.fieldid = 110 + LEFT JOIN "order-orders" orders ON orders.orderid = orderrows.orderid + WHERE modifier.rowid IS NULL; + +GRANT SELECT ON v_analytics_order_rows TO datastudio;