87 lines
3.5 KiB
SQL
87 lines
3.5 KiB
SQL
-- P5-4777: product list prices
|
|
|
|
-- remove listprice from v_esales_printproduct (re-create the view without the listprice column)
|
|
DROP MATERIALIZED VIEW IF EXISTS v_esales_printproduct;
|
|
|
|
CREATE MATERIALIZED VIEW v_esales_printproduct AS
|
|
SELECT main.id,
|
|
main.product_id,
|
|
main.path,
|
|
main.article_number,
|
|
main.title,
|
|
main.group_id,
|
|
main.group_name,
|
|
main.type_id,
|
|
main.type_name,
|
|
main.image,
|
|
main.thumbnail,
|
|
main.width,
|
|
main.height,
|
|
CASE
|
|
WHEN main.width::integer > main.height::integer THEN 'landscape'::text
|
|
WHEN main.width::integer < main.height::integer THEN 'portrait'::text
|
|
ELSE 'square'::text
|
|
END AS orientation
|
|
FROM ( SELECT pp.printid AS id,
|
|
pp.productid AS product_id,
|
|
( SELECT "product-products".path
|
|
FROM "product-products"
|
|
WHERE "product-products".productid = pp.productid
|
|
LIMIT 1) AS path,
|
|
( SELECT "product-products_fields".value
|
|
FROM "product-products_fields"
|
|
WHERE "product-products_fields".productid = pp.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
|
FROM "product-fields"
|
|
WHERE "product-fields".field::text = 'artNo'::text
|
|
LIMIT 1))) AS article_number,
|
|
( SELECT "product-products_fields".value
|
|
FROM "product-products_fields"
|
|
WHERE "product-products_fields".productid = pp.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
|
FROM "product-fields"
|
|
WHERE "product-fields".field::text = 'name'::text
|
|
LIMIT 1))) AS title,
|
|
pp.groupid AS group_id,
|
|
( SELECT "product-groups"."group"
|
|
FROM "product-groups"
|
|
WHERE "product-groups".groupid = pp.groupid
|
|
LIMIT 1) AS group_name,
|
|
pp.typeid AS type_id,
|
|
( SELECT "product-types".type
|
|
FROM "product-types"
|
|
WHERE "product-types".typeid = pp.typeid
|
|
LIMIT 1) AS type_name,
|
|
('//images.photowall.com/products/'::text || pp.productid) || '.jpg'::text AS image,
|
|
('//images.photowall.com/products/'::text || pp.productid) || '.jpg?w=80'::text AS thumbnail,
|
|
( SELECT "product-products_fields".value
|
|
FROM "product-products_fields"
|
|
WHERE "product-products_fields".productid = pp.productid AND "product-products_fields".fieldid = 5
|
|
LIMIT 1) AS width,
|
|
( SELECT "product-products_fields".value
|
|
FROM "product-products_fields"
|
|
WHERE "product-products_fields".productid = pp.productid AND "product-products_fields".fieldid = 3
|
|
LIMIT 1) AS height
|
|
FROM "product-printproducts" pp) main;
|
|
|
|
CREATE UNIQUE INDEX v_esales_printproduct_id
|
|
ON v_esales_printproduct (id);
|
|
|
|
CREATE INDEX v_esales_printproduct_product_id
|
|
ON v_esales_printproduct (product_id);
|
|
|
|
ALTER MATERIALIZED VIEW v_esales_printproduct OWNER TO photowall;
|
|
|
|
-- remove listprice from printproducts
|
|
ALTER TABLE "product-printproducts"
|
|
DROP COLUMN IF EXISTS listprice;
|
|
|
|
|
|
-- create new table for listprices
|
|
CREATE TABLE IF NOT EXISTS listprices
|
|
(
|
|
printproduct_id INTEGER NOT NULL,
|
|
market_id INTEGER NOT NULL,
|
|
listprice INTEGER,
|
|
UNIQUE (printproduct_id, market_id)
|
|
);
|
|
|