Files
database/migrations/000.150.sql
T

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)
);