Archive old migrations (#426)
* Archive old migrations * Fix invalid placement of migrations
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
CREATE TABLE collections
|
||||
(
|
||||
id serial NOT NULL,
|
||||
name character varying(255) NOT NULL,
|
||||
inserted timestamp with time zone NOT NULL DEFAULT now(),
|
||||
updated timestamp with time zone,
|
||||
designer_id integer NOT NULL,
|
||||
path character varying(255) NOT NULL,
|
||||
CONSTRAINT collections_pkey PRIMARY KEY (id),
|
||||
CONSTRAINT collections_designer_id_fkey FOREIGN KEY (designer_id)
|
||||
REFERENCES designers (designerid) MATCH SIMPLE
|
||||
ON UPDATE CASCADE ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE collections_products
|
||||
(
|
||||
id serial NOT NULL,
|
||||
collection_id integer NOT NULL,
|
||||
product_id integer,
|
||||
CONSTRAINT collections_products_pkey PRIMARY KEY (id),
|
||||
CONSTRAINT collections_products_collection_id_fkey FOREIGN KEY (collection_id)
|
||||
REFERENCES collections (id) MATCH SIMPLE
|
||||
ON UPDATE CASCADE ON DELETE CASCADE,
|
||||
CONSTRAINT collections_products_product_id_fkey FOREIGN KEY (product_id)
|
||||
REFERENCES "product-products" (productid) MATCH SIMPLE
|
||||
ON UPDATE CASCADE ON DELETE CASCADE
|
||||
);
|
||||
@@ -0,0 +1,5 @@
|
||||
ALTER TABLE category_texts
|
||||
ADD COLUMN name character varying(255);
|
||||
|
||||
UPDATE category_texts
|
||||
SET name = wallpaper_name;
|
||||
@@ -0,0 +1,6 @@
|
||||
INSERT INTO "u_roles"
|
||||
("name", "description", "level", "created_at", "updated_at") VALUES
|
||||
('society', 'Society user', 1, NOW(), NOW());
|
||||
|
||||
ALTER TABLE "u_users"
|
||||
ADD COLUMN "remember_token" VARCHAR(100) DEFAULT NULL;
|
||||
@@ -0,0 +1,5 @@
|
||||
ALTER TABLE designers
|
||||
DROP COLUMN IF EXISTS sort_desc;
|
||||
|
||||
ALTER TABLE designers
|
||||
ADD COLUMN sort_desc BOOLEAN NOT NULL DEFAULT false;
|
||||
@@ -0,0 +1,2 @@
|
||||
ALTER TABLE "product-printimages"
|
||||
ADD COLUMN inserted_date TIMESTAMP WITH TIME ZONE;
|
||||
@@ -0,0 +1,9 @@
|
||||
DO $$
|
||||
BEGIN
|
||||
BEGIN
|
||||
ALTER TABLE designers ADD COLUMN no_follow INT DEFAULT 0;
|
||||
EXCEPTION
|
||||
WHEN duplicate_column THEN RAISE NOTICE 'column <column_name> already exists in <table_name>.';
|
||||
END;
|
||||
END;
|
||||
$$
|
||||
@@ -0,0 +1,3 @@
|
||||
-- P5-397 Top image for Design wallpapers
|
||||
INSERT INTO "product-groups" ("group")
|
||||
VALUES ('designer-wallpaper');
|
||||
@@ -0,0 +1,5 @@
|
||||
-- P5-399 Top image for Design wallpapers
|
||||
ALTER TABLE category_texts ADD COLUMN design_wallpaper_h1 VARCHAR(255);
|
||||
ALTER TABLE category_texts ADD COLUMN design_wallpaper_description TEXT;
|
||||
|
||||
UPDATE category_texts SET design_wallpaper_h1 = name;
|
||||
@@ -0,0 +1,9 @@
|
||||
DO $$
|
||||
BEGIN
|
||||
BEGIN
|
||||
ALTER TABLE designers ADD COLUMN visible_productpage INT DEFAULT 1;
|
||||
EXCEPTION
|
||||
WHEN duplicate_column THEN RAISE NOTICE 'column visible_productpage already exists in "designers".';
|
||||
END;
|
||||
END;
|
||||
$$
|
||||
@@ -0,0 +1,25 @@
|
||||
-- P5-303: Updated functionality of sales tab in society product
|
||||
CREATE TABLE wallpapertypes
|
||||
(
|
||||
id SERIAL NOT NULL,
|
||||
name VARCHAR(255),
|
||||
CONSTRAINT wallpapertypes_pkey PRIMARY KEY (id)
|
||||
);
|
||||
|
||||
INSERT INTO wallpapertypes (name) VALUES ('wall_mural'), ('design_wallpaper');
|
||||
|
||||
CREATE TABLE product_wallpapertypes
|
||||
(
|
||||
product_id INT NOT NULL,
|
||||
wallpapertype_id INT NOT NULL,
|
||||
|
||||
CONSTRAINT product_wallpapertypes_pkey PRIMARY KEY (product_id, wallpapertype_id),
|
||||
|
||||
CONSTRAINT wallpapertypes_id_fkey FOREIGN KEY (wallpapertype_id)
|
||||
REFERENCES wallpapertypes (id) MATCH SIMPLE
|
||||
ON UPDATE CASCADE ON DELETE CASCADE,
|
||||
|
||||
CONSTRAINT "product-products_productid_fkey" FOREIGN KEY (product_id)
|
||||
REFERENCES "product-products" (productid) MATCH SIMPLE
|
||||
ON UPDATE CASCADE ON DELETE CASCADE
|
||||
);
|
||||
@@ -0,0 +1,7 @@
|
||||
-- P5-717: Removing markers positions from database
|
||||
ALTER TABLE inquiry_markers DROP COLUMN IF EXISTS x1;
|
||||
ALTER TABLE inquiry_markers DROP COLUMN IF EXISTS y1;
|
||||
ALTER TABLE inquiry_markers DROP COLUMN IF EXISTS x2;
|
||||
ALTER TABLE inquiry_markers DROP COLUMN IF EXISTS y2;
|
||||
ALTER TABLE inquiry_markers DROP COLUMN IF EXISTS x3;
|
||||
ALTER TABLE inquiry_markers DROP COLUMN IF EXISTS y3;
|
||||
@@ -0,0 +1,10 @@
|
||||
-- General change: Adding a PK to inquiry_markers table
|
||||
DO $$
|
||||
BEGIN
|
||||
BEGIN
|
||||
ALTER TABLE inquiry_markers ADD PRIMARY KEY (id);
|
||||
EXCEPTION
|
||||
WHEN invalid_table_definition THEN RAISE NOTICE 'primary key for id already exists in inquiry_markers.';
|
||||
END;
|
||||
END;
|
||||
$$
|
||||
@@ -0,0 +1,7 @@
|
||||
CREATE OR REPLACE VIEW v_materialprice AS
|
||||
SELECT "product-printprices".groupid,
|
||||
"product-printprices".materialid,
|
||||
"product-printprices".price
|
||||
FROM "product-printprices"
|
||||
WHERE "product-printprices".groupid = ANY (ARRAY[1, 2])
|
||||
GROUP BY "product-printprices".groupid, "product-printprices".materialid, "product-printprices".price;
|
||||
@@ -0,0 +1,74 @@
|
||||
DROP MATERIALIZED VIEW IF EXISTS v_esales_categorytree_i18n;
|
||||
-- REFRESH MATERIALIZED VIEW v_esales_categorytree_i18n;
|
||||
|
||||
CREATE MATERIALIZED VIEW v_esales_categorytree_i18n AS
|
||||
SELECT *,
|
||||
-- Remove diacritics and other stuff
|
||||
REGEXP_REPLACE(
|
||||
UNACCENT(REPLACE(REPLACE(path, ' ', '_'), '&', 'and')),
|
||||
'[^\w/\-]', '', 'g'
|
||||
) AS path_translated
|
||||
FROM (
|
||||
SELECT c.id,
|
||||
(
|
||||
SELECT id
|
||||
FROM categories s
|
||||
WHERE s.lft < c.lft AND s.rgt > c.rgt
|
||||
ORDER BY s.rgt-c.rgt ASC
|
||||
LIMIT 1
|
||||
) AS parent_id,
|
||||
locale_id,
|
||||
locale,
|
||||
c.name,
|
||||
(
|
||||
SELECT LOWER(array_to_string(array_agg(main.parent_name), '/')) AS path
|
||||
FROM (
|
||||
SELECT node.id,
|
||||
(
|
||||
SELECT name
|
||||
FROM category_texts
|
||||
WHERE locale_id = c.locale_id
|
||||
AND category_id = parent.id
|
||||
) AS parent_name
|
||||
FROM categories node,
|
||||
categories parent
|
||||
WHERE node.lft BETWEEN parent.lft AND parent.rgt
|
||||
AND node.id = c.id
|
||||
ORDER BY parent.lft
|
||||
) main
|
||||
GROUP BY main.id
|
||||
) AS path,
|
||||
CASE c.rgt - c.lft
|
||||
WHEN 1 THEN 1
|
||||
ELSE 0
|
||||
END AS is_leaf,
|
||||
(
|
||||
SELECT count(*) - 1
|
||||
FROM categories node,
|
||||
categories parent
|
||||
WHERE node.lft BETWEEN parent.lft AND parent.rgt AND node.id = c.id
|
||||
) AS depth,
|
||||
(
|
||||
SELECT count(*) - 1
|
||||
FROM categories c1
|
||||
WHERE c1.lft BETWEEN c.lft AND c.rgt
|
||||
) AS child_count,
|
||||
c.lft,
|
||||
c.rgt
|
||||
FROM (
|
||||
SELECT c.id,
|
||||
s.id AS locale_id,
|
||||
s.value AS locale,
|
||||
LOWER(s_t.name) AS name,
|
||||
rgt,
|
||||
lft
|
||||
FROM locales s
|
||||
JOIN category_texts s_t ON s.id = s_t.locale_id
|
||||
JOIN categories c ON s_t.category_id = c.id
|
||||
ORDER BY s.id, c.lft
|
||||
) c
|
||||
) main;
|
||||
|
||||
-- DROP INDEX v_esales_categorytree_i18n_id_locale_id;
|
||||
CREATE UNIQUE INDEX v_esales_categorytree_i18n_id_locale_id
|
||||
ON v_esales_categorytree_i18n (id, locale_id);
|
||||
@@ -0,0 +1,75 @@
|
||||
-- DROP MATERIALIZED VIEW v_esales_printproduct;
|
||||
-- REFRESH MATERIALIZED VIEW v_esales_printproduct;
|
||||
-- CREATE MATERIALIZED VIEW 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.price,
|
||||
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 path FROM "product-products" WHERE productid = pp.productid LIMIT 1) AS path,
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = pp.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'artNo' LIMIT 1)
|
||||
) AS article_number,
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = pp.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'name' LIMIT 1)
|
||||
) AS title,
|
||||
pp.groupid AS group_id,
|
||||
(
|
||||
SELECT "group"
|
||||
FROM "product-groups"
|
||||
WHERE groupid = pp.groupid
|
||||
LIMIT 1
|
||||
) AS group_name,
|
||||
pp.typeid AS type_id,
|
||||
(
|
||||
SELECT type
|
||||
FROM "product-types"
|
||||
WHERE typeid = pp.typeid
|
||||
LIMIT 1
|
||||
) AS type_name,
|
||||
(
|
||||
(
|
||||
SELECT min(price) AS min
|
||||
FROM "product-printprices"
|
||||
WHERE groupid = pp.groupid
|
||||
) * COALESCE(
|
||||
(
|
||||
SELECT 1 + designers.pricepremium / 100
|
||||
FROM designers
|
||||
WHERE designers.designerid = (
|
||||
SELECT designerid FROM "product-products" WHERE productid = pp.productid LIMIT 1)
|
||||
), 1)
|
||||
) AS price,
|
||||
('//images.photowall.com/products/' || pp.productid) || '.jpg' AS image,
|
||||
('//images.photowall.com/products/' || pp.productid) || '.jpg?w=80' AS thumbnail,
|
||||
(SELECT value FROM "product-products_fields" WHERE productid = pp.productid AND fieldid = 5 LIMIT 1) AS width,
|
||||
(SELECT value FROM "product-products_fields" WHERE productid = pp.productid AND fieldid = 3 LIMIT 1) AS height
|
||||
FROM "product-printproducts" pp
|
||||
) main;
|
||||
|
||||
-- DROP INDEX v_categorytree_i18n_id_locale_id;
|
||||
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);
|
||||
@@ -0,0 +1,245 @@
|
||||
-- DROP MATERIALIZED VIEW v_esales_product;
|
||||
-- REFRESH MATERIALIZED VIEW v_esales_product;
|
||||
CREATE MATERIALIZED VIEW v_esales_product AS
|
||||
SELECT main.product_id AS id,
|
||||
main."artNo",
|
||||
stock.id AS stock_id,
|
||||
stock.price AS stock_price,
|
||||
main.path,
|
||||
main.visible,
|
||||
main.browsable,
|
||||
main.designerid,
|
||||
main.designercollection_id,
|
||||
COALESCE((
|
||||
SELECT pricepremium / 100
|
||||
FROM designers
|
||||
WHERE designerid = main.designerid
|
||||
LIMIT 1
|
||||
), 0) AS designer_margin,
|
||||
(
|
||||
SELECT typeid
|
||||
FROM "product-printproducts"
|
||||
WHERE productid = main.product_id
|
||||
LIMIT 1
|
||||
) AS producttype_id,
|
||||
main.name,
|
||||
main.height,
|
||||
main.original_article_number,
|
||||
main.width,
|
||||
main.widths,
|
||||
main.min_height,
|
||||
main.min_width,
|
||||
main.max_height,
|
||||
main.max_width,
|
||||
main.photowall_resolution,
|
||||
main.canvas_resolution,
|
||||
main.wallpaper_resolution,
|
||||
main.lock_height,
|
||||
COALESCE(main.additionalprice, 0::double precision) AS additionalprice,
|
||||
main.ref1,
|
||||
main.ref2,
|
||||
main.ref3,
|
||||
main.copyright,
|
||||
main.proportions_warning,
|
||||
main.margin_width_max,
|
||||
main.margin_width_min,
|
||||
main.margin_height_max,
|
||||
main.margin_height_min,
|
||||
main.width::numeric /
|
||||
CASE
|
||||
WHEN main.height = 0 THEN (-1.0)
|
||||
ELSE main.height::numeric
|
||||
END AS width_height_ratio,
|
||||
main.batch,
|
||||
main.image_resolution,
|
||||
main."focusXpoint",
|
||||
main."focusYpoint",
|
||||
main."focusXpoint2",
|
||||
main."focusYpoint2",
|
||||
main.repeating_pattern
|
||||
FROM
|
||||
(
|
||||
SELECT products.productid AS product_id,
|
||||
products.path,
|
||||
products.visible,
|
||||
products.browsable,
|
||||
products.designerid,
|
||||
products.designercollectionid AS designercollection_id,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'artNo' LIMIT 1)
|
||||
) AS "artNo",
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'name' LIMIT 1)
|
||||
) AS name,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'height' LIMIT 1)
|
||||
AND value ~ '^\d+$'
|
||||
)::integer AS height,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'orgArtNo' LIMIT 1)
|
||||
) AS original_article_number,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'width' LIMIT 1)
|
||||
AND value ~ '^\d+$'
|
||||
)::integer AS width,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'widths' LIMIT 1)
|
||||
) AS widths,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'min-height' LIMIT 1)
|
||||
AND value ~ '^\d+$'
|
||||
)::integer AS min_height,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'min-width' LIMIT 1)
|
||||
AND value ~ '^\d+$'
|
||||
)::integer AS min_width,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'max-height' LIMIT 1)
|
||||
AND value ~ '^\d+$'
|
||||
)::integer AS max_height,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'max-width' LIMIT 1)
|
||||
AND value ~ '^\d+$'
|
||||
)::integer AS max_width,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'photowall_resolution' LIMIT 1)
|
||||
AND value ~ '^\d+$'
|
||||
)::integer AS photowall_resolution,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'canvas_resolution' LIMIT 1)
|
||||
AND value ~ '^\d+$'
|
||||
)::integer AS canvas_resolution,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'wallpaper_resolution' LIMIT 1)
|
||||
AND value ~ '^\d+$'
|
||||
)::integer AS wallpaper_resolution,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'lock_height' LIMIT 1)
|
||||
) AS lock_height,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'additionalprice' LIMIT 1)
|
||||
)::double precision AS additionalprice,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'ref1' LIMIT 1)
|
||||
) AS ref1,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'ref2' LIMIT 1)
|
||||
) AS ref2,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'ref3' LIMIT 1)
|
||||
) AS ref3,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'copyright' LIMIT 1)
|
||||
) AS copyright,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'proportions_warning' LIMIT 1)
|
||||
) AS proportions_warning,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'margin_width_max' LIMIT 1)
|
||||
) AS margin_width_max,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'margin_width_min' LIMIT 1)
|
||||
) AS margin_width_min,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'margin_height_max' LIMIT 1)
|
||||
) AS margin_height_max,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'margin_height_min' LIMIT 1)
|
||||
) AS margin_height_min,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'batch' LIMIT 1)
|
||||
) AS batch,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'image_resolution' LIMIT 1)
|
||||
AND value ~ '^\d+$'
|
||||
)::integer AS image_resolution,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'focusXpoint' LIMIT 1)
|
||||
)::double precision AS "focusXpoint",
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'focusYpoint' LIMIT 1)
|
||||
)::double precision AS "focusYpoint",
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'focusXpoint2' LIMIT 1)
|
||||
)::double precision AS "focusXpoint2",
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'focusYpoint2' LIMIT 1)
|
||||
)::double precision AS "focusYpoint2",
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'repeating_pattern' LIMIT 1)
|
||||
) AS repeating_pattern
|
||||
|
||||
FROM "product-products" products
|
||||
) main
|
||||
LEFT JOIN (
|
||||
SELECT stockid AS id,
|
||||
productid AS product_id,
|
||||
(SELECT price FROM "product-stockprices" WHERE priceid = s.priceid LIMIT 1) AS price
|
||||
FROM "product-stockproducts" s
|
||||
) stock ON main.product_id = stock.product_id;
|
||||
|
||||
-- DROP INDEX v_product_id;
|
||||
CREATE UNIQUE INDEX v_esales_product_id
|
||||
ON v_esales_product (id);
|
||||
@@ -0,0 +1,5 @@
|
||||
-- PW-462: set price to 0 for business packages in Norway, Denmark & Finland
|
||||
|
||||
update "delivery-methods_prices" set price = 0 where method = 9 and territory = 'NO';
|
||||
update "delivery-methods_prices" set price = 0 where method = 9 and territory = 'FI';
|
||||
update "delivery-methods_prices" set price = 0 where method = 9 and territory = 'DK';
|
||||
@@ -0,0 +1,38 @@
|
||||
CREATE TABLE IF NOT EXISTS categorydatakeys
|
||||
(
|
||||
id serial NOT NULL,
|
||||
name character varying(255) NOT NULL,
|
||||
CONSTRAINT categorydatakeys_pkey
|
||||
PRIMARY KEY (id)
|
||||
);
|
||||
|
||||
DROP INDEX IF EXISTS categorydatakeys_value_idx;
|
||||
CREATE UNIQUE INDEX categorydatakeys_value_idx
|
||||
ON categorydatakeys (name);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS categorydata
|
||||
(
|
||||
category_id integer NOT NULL,
|
||||
datakey_id integer NOT NULL,
|
||||
locale_id integer NOT NULL,
|
||||
text text NOT NULL,
|
||||
CONSTRAINT categorydata_pkey
|
||||
PRIMARY KEY (category_id, datakey_id, locale_id),
|
||||
CONSTRAINT categorydata_category_id_fkey
|
||||
FOREIGN KEY (category_id)
|
||||
REFERENCES categories (id),
|
||||
CONSTRAINT categorydata_datakey_id_fkey
|
||||
FOREIGN KEY (datakey_id)
|
||||
REFERENCES categorydatakeys (id),
|
||||
CONSTRAINT categorydata_locale_id_fkey
|
||||
FOREIGN KEY (locale_id)
|
||||
REFERENCES locales (id)
|
||||
);
|
||||
|
||||
INSERT INTO categorydatakeys (name)
|
||||
VALUES ('canvas_pagetitle'),
|
||||
('canvas_metadesc'),
|
||||
('wallpaper_pagetitle'),
|
||||
('wallpaper_metadesc'),
|
||||
('design_wallpaper_pagetitle'),
|
||||
('design_wallpaper_metadesc');
|
||||
@@ -0,0 +1,17 @@
|
||||
-- P5-824
|
||||
BEGIN;
|
||||
|
||||
-- =============================================================================
|
||||
-- Associate products with color categories instead of keywords
|
||||
-- =============================================================================
|
||||
INSERT INTO product_category (product_id, category_id)
|
||||
SELECT product_id,
|
||||
vc.id
|
||||
FROM product_keyword pk
|
||||
JOIN keywords k ON pk.keyword_id = k.id
|
||||
JOIN v_categorytree vc
|
||||
ON vc.path LIKE 'root/colors/%'
|
||||
AND name = REPLACE(REPLACE(value, '&', 'and'), 'multicolor', 'multi color')
|
||||
WHERE keyword_id IN (SELECT keyword_id FROM keyword_type WHERE type_id = 1);
|
||||
|
||||
END;
|
||||
@@ -0,0 +1,45 @@
|
||||
-- P5-358
|
||||
DROP MATERIALIZED VIEW IF EXISTS v_esales_category_count;
|
||||
CREATE MATERIALIZED VIEW v_esales_category_count
|
||||
AS
|
||||
SELECT id, locale_id, product_id, groupid, wallpapertype_id,
|
||||
CASE
|
||||
WHEN blacklist_id IS NULL AND visible = 1 AND browsable = 1 THEN true
|
||||
ELSE false
|
||||
END AS is_visible
|
||||
FROM (
|
||||
SELECT p.id,
|
||||
locales.id AS locale_id,
|
||||
pc.product_id,
|
||||
groupid,
|
||||
CASE groupid
|
||||
WHEN 2 THEN NULL
|
||||
ELSE wallpapertype_id
|
||||
END AS wallpapertype_id,
|
||||
(
|
||||
SELECT id
|
||||
FROM product_blacklist
|
||||
WHERE product_id = pc.product_id
|
||||
AND language_id = SUBSTR(locales.value, 1, 2)
|
||||
AND territory_id = SUBSTR(locales.value, 4)
|
||||
AND (group_id = groupid OR group_id IS NULL)
|
||||
) blacklist_id,
|
||||
visible,
|
||||
browsable
|
||||
FROM categories p
|
||||
JOIN categories c ON c.lft >= p.lft AND c.rgt <= p.rgt
|
||||
JOIN product_category pc ON c.id = pc.category_id
|
||||
JOIN (
|
||||
SELECT productid,
|
||||
groupid
|
||||
FROM "product-printproducts"
|
||||
) pp ON pc.product_id = pp.productid
|
||||
JOIN (SELECT productid, visible, browsable FROM "product-products") prod ON pc.product_id = prod.productid
|
||||
LEFT JOIN product_wallpapertypes pw ON pc.product_id = pw.product_id,
|
||||
locales
|
||||
) main
|
||||
GROUP BY id, locale_id, product_id, groupid, wallpapertype_id, visible, browsable, blacklist_id;
|
||||
|
||||
-- DROP INDEX public.v_esales_category_count_id_idx;
|
||||
CREATE UNIQUE INDEX v_esales_category_count_id_idx
|
||||
ON v_esales_category_count (id, locale_id, product_id, groupid, wallpapertype_id);
|
||||
@@ -0,0 +1,78 @@
|
||||
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.price,
|
||||
CASE main.group_id
|
||||
-- Minimum canvas price without frame
|
||||
WHEN 2 THEN main.price * 0.2
|
||||
ELSE main.price
|
||||
END AS list_price,
|
||||
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 path FROM "product-products" WHERE productid = pp.productid LIMIT 1) AS path,
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = pp.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'artNo' LIMIT 1)
|
||||
) AS article_number,
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = pp.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'name' LIMIT 1)
|
||||
) AS title,
|
||||
pp.groupid AS group_id,
|
||||
(
|
||||
SELECT "group"
|
||||
FROM "product-groups"
|
||||
WHERE groupid = pp.groupid
|
||||
LIMIT 1
|
||||
) AS group_name,
|
||||
pp.typeid AS type_id,
|
||||
(
|
||||
SELECT type
|
||||
FROM "product-types"
|
||||
WHERE typeid = pp.typeid
|
||||
LIMIT 1
|
||||
) AS type_name,
|
||||
(
|
||||
(
|
||||
SELECT min(price) AS min
|
||||
FROM "product-printprices"
|
||||
WHERE groupid = pp.groupid
|
||||
) * COALESCE(
|
||||
(
|
||||
SELECT 1 + designers.pricepremium / 100
|
||||
FROM designers
|
||||
WHERE designers.designerid = (
|
||||
SELECT designerid FROM "product-products" WHERE productid = pp.productid LIMIT 1)
|
||||
), 1)
|
||||
) AS price,
|
||||
('//images.photowall.com/products/' || pp.productid) || '.jpg' AS image,
|
||||
('//images.photowall.com/products/' || pp.productid) || '.jpg?w=80' AS thumbnail,
|
||||
(SELECT value FROM "product-products_fields" WHERE productid = pp.productid AND fieldid = 5 LIMIT 1) AS width,
|
||||
(SELECT value FROM "product-products_fields" WHERE productid = pp.productid AND fieldid = 3 LIMIT 1) AS height
|
||||
FROM "product-printproducts" pp
|
||||
) main;
|
||||
|
||||
-- DROP INDEX v_categorytree_i18n_id_locale_id;
|
||||
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);
|
||||
@@ -0,0 +1,19 @@
|
||||
-- P5-883
|
||||
UPDATE "i18n-territories" SET vat = 1;
|
||||
UPDATE "i18n-territories" SET vat = 1.25 WHERE iso2char = 'SE';
|
||||
UPDATE "i18n-territories" SET vat = 1.25 WHERE iso2char = 'DK';
|
||||
UPDATE "i18n-territories" SET vat = 1.24 WHERE iso2char = 'FI';
|
||||
UPDATE "i18n-territories" SET vat = 1.25 WHERE iso2char = 'NO';
|
||||
UPDATE "i18n-territories" SET vat = 1.20 WHERE iso2char = 'GB';
|
||||
UPDATE "i18n-territories" SET vat = 1.19 WHERE iso2char = 'DE';
|
||||
UPDATE "i18n-territories" SET vat = 1.21 WHERE iso2char = 'NL';
|
||||
UPDATE "i18n-territories" SET vat = 1.20 WHERE iso2char = 'AT';
|
||||
UPDATE "i18n-territories" SET vat = 1.25 WHERE iso2char = 'FR';
|
||||
UPDATE "i18n-territories" SET vat = 1.25 WHERE iso2char = 'ES';
|
||||
UPDATE "i18n-territories" SET vat = 1.25 WHERE iso2char = 'PL';
|
||||
UPDATE "i18n-territories" SET vat = 1.25 WHERE iso2char = 'LT';
|
||||
-- All EU countries, except those above, should have vat set to 1.25
|
||||
UPDATE "i18n-territories"
|
||||
SET vat = 1.25
|
||||
WHERE iso2char IN ('AT','BE','BG','CY','CZ','DE','DK','EE','ES','EU','FI','FR','GB','GR','HU','IE','IT','LT','LU','LV','MT','NL','PL','PT','RO','SE','SI','SK', 'HR')
|
||||
AND vat = 1;
|
||||
@@ -0,0 +1,67 @@
|
||||
-- P5-877
|
||||
-- Table: public.rooms
|
||||
/*
|
||||
DROP TABLE IF EXISTS public.interiors;
|
||||
DROP TABLE IF EXISTS public.rooms;
|
||||
DROP INDEX IF EXISTS public.interiors_print_id_idx;
|
||||
*/
|
||||
|
||||
CREATE TABLE IF NOT EXISTS public.rooms
|
||||
(
|
||||
id SERIAL NOT NULL,
|
||||
name CHARACTER VARYING(255) NOT NULL,
|
||||
|
||||
CONSTRAINT rooms_pkey PRIMARY KEY (id)
|
||||
);
|
||||
|
||||
DROP INDEX IF EXISTS rooms_name_idx;
|
||||
|
||||
CREATE UNIQUE INDEX rooms_name_idx
|
||||
ON public.rooms (name);
|
||||
|
||||
|
||||
CREATE TABLE IF NOT EXISTS public.interiors
|
||||
(
|
||||
id SERIAL NOT NULL,
|
||||
print_id INTEGER NOT NULL,
|
||||
room_id INTEGER,
|
||||
"position" SMALLINT NOT NULL DEFAULT 0,
|
||||
create_date TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(),
|
||||
|
||||
CONSTRAINT interiors_pkey PRIMARY KEY (id),
|
||||
CONSTRAINT interiors_print_id_fkey FOREIGN KEY (print_id)
|
||||
REFERENCES public."product-printproducts" (printid) ON DELETE CASCADE,
|
||||
CONSTRAINT interiors_room_id_fkey FOREIGN KEY (room_id)
|
||||
REFERENCES public.rooms (id) ON DELETE RESTRICT
|
||||
);
|
||||
|
||||
-- COVERING INDEX FOR print_id foreign key
|
||||
DROP INDEX IF EXISTS interiors_print_id_idx;
|
||||
|
||||
CREATE INDEX interiors_print_id_idx
|
||||
ON public.interiors (print_id);
|
||||
|
||||
DROP INDEX IF EXISTS interiors_print_id_room_id_idx;
|
||||
|
||||
CREATE UNIQUE INDEX interiors_print_id_room_id_idx
|
||||
ON public.interiors (print_id, room_id);
|
||||
|
||||
|
||||
INSERT INTO public.rooms (id, name) VALUES
|
||||
(1, 'room01_painting_landscape'),
|
||||
(2, 'room01_painting_square'),
|
||||
(3, 'room01_painting_standing'),
|
||||
(4, 'room01_wallpaper_landscape'),
|
||||
(5, 'room02_painting_landscape'),
|
||||
(6, 'room02_painting_square'),
|
||||
(7, 'room02_painting_standing'),
|
||||
(8, 'room02_wallpaper_landscape'),
|
||||
(9, 'room02_wallpaper_square'),
|
||||
(10, 'room02_wallpaper_standing'),
|
||||
(11, 'room03_painting_landscape'),
|
||||
(12, 'room03_painting_square'),
|
||||
(13, 'room03_painting_standing'),
|
||||
(14, 'room03_wallpaper_landscape'),
|
||||
(15, 'room03_wallpaper_square'),
|
||||
(16, 'room03_wallpaper_standing')
|
||||
;
|
||||
@@ -0,0 +1,18 @@
|
||||
-- PW-597
|
||||
DROP INDEX IF EXISTS ix_confirmed;
|
||||
|
||||
CREATE INDEX ix_confirmed
|
||||
ON "order-orders_fields" (value)
|
||||
WHERE fieldid = 175; -- 4984 kB
|
||||
|
||||
DROP INDEX IF EXISTS ix_creditinvoice;
|
||||
|
||||
CREATE INDEX ix_creditinvoice
|
||||
ON "order-orders_fields" (value)
|
||||
WHERE fieldid = 199; -- 184 kB
|
||||
|
||||
DROP INDEX IF EXISTS ix_invoiceid;
|
||||
|
||||
CREATE INDEX ix_invoiceid
|
||||
ON "order-orders_fields" (value)
|
||||
WHERE fieldid = 172; -- 4360 kB
|
||||
@@ -0,0 +1 @@
|
||||
CREATE INDEX img_hash ON inquiries (img_hash);
|
||||
@@ -0,0 +1,31 @@
|
||||
ALTER TABLE "product-printproducts"
|
||||
DROP COLUMN IF EXISTS listprice,
|
||||
ADD listprice INT NOT NULL DEFAULT 0;
|
||||
|
||||
UPDATE "product-printproducts"
|
||||
SET listprice = ROUND(price)
|
||||
FROM (
|
||||
SELECT
|
||||
printid,
|
||||
price * COALESCE(pricepremium, 1) * 100
|
||||
* CASE printproducts.groupid
|
||||
WHEN 2
|
||||
THEN 0.2 -- 0.2m2 is the minimum paid size for canvas
|
||||
ELSE 1 END AS price -- 1.0m2 is the same for wallpaper
|
||||
FROM "product-printproducts" printproducts
|
||||
JOIN "product-products" products ON printproducts.productid = products.productid
|
||||
JOIN (
|
||||
SELECT
|
||||
groupid,
|
||||
MIN(price) AS price
|
||||
FROM "product-printprices"
|
||||
GROUP BY groupid
|
||||
) prices ON printproducts.groupid = prices.groupid
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
designerid,
|
||||
1 + (pricepremium / 100) AS pricepremium
|
||||
FROM designers
|
||||
) designers ON products.designerid = designers.designerid
|
||||
) s
|
||||
WHERE "product-printproducts".printid = s.printid;
|
||||
@@ -0,0 +1,63 @@
|
||||
-- PW-602
|
||||
DROP MATERIALIZED VIEW IF EXISTS v_esales_printproduct;
|
||||
-- REFRESH MATERIALIZED VIEW 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.listprice,
|
||||
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 path FROM "product-products" WHERE productid = pp.productid LIMIT 1) AS path,
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = pp.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'artNo' LIMIT 1)
|
||||
) AS article_number,
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = pp.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'name' LIMIT 1)
|
||||
) AS title,
|
||||
pp.groupid AS group_id,
|
||||
(
|
||||
SELECT "group"
|
||||
FROM "product-groups"
|
||||
WHERE groupid = pp.groupid
|
||||
LIMIT 1
|
||||
) AS group_name,
|
||||
pp.typeid AS type_id,
|
||||
(
|
||||
SELECT type
|
||||
FROM "product-types"
|
||||
WHERE typeid = pp.typeid
|
||||
LIMIT 1
|
||||
) AS type_name,
|
||||
listprice,
|
||||
('//images.photowall.com/products/' || pp.productid) || '.jpg' AS image,
|
||||
('//images.photowall.com/products/' || pp.productid) || '.jpg?w=80' AS thumbnail,
|
||||
(SELECT value FROM "product-products_fields" WHERE productid = pp.productid AND fieldid = 5 LIMIT 1) AS width,
|
||||
(SELECT value FROM "product-products_fields" WHERE productid = pp.productid AND fieldid = 3 LIMIT 1) AS height
|
||||
FROM "product-printproducts" pp
|
||||
) main;
|
||||
|
||||
-- DROP INDEX v_categorytree_i18n_id_locale_id;
|
||||
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);
|
||||
@@ -0,0 +1,23 @@
|
||||
-- PW-619: refactor material prices
|
||||
|
||||
-- create the new price column
|
||||
DO $$
|
||||
BEGIN
|
||||
BEGIN
|
||||
ALTER TABLE "product-materials" ADD COLUMN price integer NOT NULL DEFAULT 1;
|
||||
EXCEPTION
|
||||
WHEN duplicate_column THEN RAISE NOTICE 'column price already exists in "product-materials".';
|
||||
END;
|
||||
END;
|
||||
$$;
|
||||
|
||||
|
||||
-- populate with default data
|
||||
UPDATE "product-materials" SET price = 23600 WHERE materialid = 1;
|
||||
UPDATE "product-materials" SET price = 35600 WHERE materialid = 2;
|
||||
UPDATE "product-materials" SET price = 79920 WHERE materialid = 3;
|
||||
UPDATE "product-materials" SET price = 26000 WHERE materialid = 4;
|
||||
|
||||
|
||||
-- drop old views that are no longer used
|
||||
DROP VIEW IF EXISTS v_materialprice;
|
||||
@@ -0,0 +1,29 @@
|
||||
-- slogan_text_style column
|
||||
ALTER TABLE splashes
|
||||
DROP COLUMN IF EXISTS splash_text_style;
|
||||
|
||||
ALTER TABLE splashes
|
||||
ADD COLUMN splash_text_style character varying(20) DEFAULT 'dark';
|
||||
|
||||
COMMENT ON COLUMN splashes.splash_text_style
|
||||
IS 'Style of splash text';
|
||||
|
||||
-- color column
|
||||
ALTER TABLE splashes
|
||||
DROP COLUMN IF EXISTS background_color;
|
||||
|
||||
ALTER TABLE splashes
|
||||
ADD COLUMN background_color character(6) DEFAULT 'ffffff';
|
||||
|
||||
COMMENT ON COLUMN splashes.background_color
|
||||
IS 'Background color of top splash';
|
||||
|
||||
-- opacity column
|
||||
ALTER TABLE splashes
|
||||
DROP COLUMN IF EXISTS opacity;
|
||||
|
||||
ALTER TABLE splashes
|
||||
ADD COLUMN opacity SMALLINT DEFAULT 100;
|
||||
|
||||
COMMENT ON COLUMN splashes.opacity
|
||||
IS 'Opacity of top splash in percents';
|
||||
@@ -0,0 +1,3 @@
|
||||
UPDATE "i18n-territories"
|
||||
SET vat = 1.2
|
||||
WHERE iso2char = 'FR';
|
||||
@@ -0,0 +1,262 @@
|
||||
-- P5-994
|
||||
DROP MATERIALIZED VIEW IF EXISTS v_esales_product;
|
||||
-- REFRESH MATERIALIZED VIEW v_esales_product;
|
||||
CREATE MATERIALIZED VIEW v_esales_product AS
|
||||
SELECT main.product_id AS id,
|
||||
main."artNo",
|
||||
stock.id AS stock_id,
|
||||
stock.price AS stock_price,
|
||||
main.path,
|
||||
main.visible,
|
||||
main.browsable,
|
||||
main.designerid,
|
||||
designer.name AS designer_name,
|
||||
designer.path AS designer_path,
|
||||
designer.visible_productpage AS designer_visible_productpage,
|
||||
main.designercollection_id,
|
||||
COALESCE((
|
||||
SELECT pricepremium / 100
|
||||
FROM designers
|
||||
WHERE designerid = main.designerid
|
||||
LIMIT 1
|
||||
), 0) AS designer_margin,
|
||||
(
|
||||
SELECT typeid
|
||||
FROM "product-printproducts"
|
||||
WHERE productid = main.product_id
|
||||
LIMIT 1
|
||||
) AS producttype_id,
|
||||
main.name,
|
||||
main.height,
|
||||
main.original_article_number,
|
||||
main.width,
|
||||
main.widths,
|
||||
main.min_height,
|
||||
main.min_width,
|
||||
main.max_height,
|
||||
main.max_width,
|
||||
main.photowall_resolution,
|
||||
main.canvas_resolution,
|
||||
main.wallpaper_resolution,
|
||||
main.lock_height,
|
||||
COALESCE(main.additionalprice, 0::double precision) AS additionalprice,
|
||||
main.ref1,
|
||||
main.ref2,
|
||||
main.ref3,
|
||||
main.copyright,
|
||||
main.proportions_warning,
|
||||
main.margin_width_max,
|
||||
main.margin_width_min,
|
||||
main.margin_height_max,
|
||||
main.margin_height_min,
|
||||
main.width::numeric /
|
||||
CASE
|
||||
WHEN main.height = 0 THEN (-1.0)
|
||||
ELSE main.height::numeric
|
||||
END AS width_height_ratio,
|
||||
main.batch,
|
||||
main.image_resolution,
|
||||
main."focusXpoint",
|
||||
main."focusYpoint",
|
||||
main."focusXpoint2",
|
||||
main."focusYpoint2",
|
||||
main.repeating_pattern
|
||||
FROM
|
||||
(
|
||||
SELECT products.productid AS product_id,
|
||||
products.path,
|
||||
products.visible,
|
||||
products.browsable,
|
||||
products.designerid,
|
||||
products.designercollectionid AS designercollection_id,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'artNo' LIMIT 1)
|
||||
) AS "artNo",
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'name' LIMIT 1)
|
||||
) AS name,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'height' LIMIT 1)
|
||||
AND value ~ '^\d+$'
|
||||
)::integer AS height,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'orgArtNo' LIMIT 1)
|
||||
) AS original_article_number,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'width' LIMIT 1)
|
||||
AND value ~ '^\d+$'
|
||||
)::integer AS width,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'widths' LIMIT 1)
|
||||
) AS widths,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'min-height' LIMIT 1)
|
||||
AND value ~ '^\d+$'
|
||||
)::integer AS min_height,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'min-width' LIMIT 1)
|
||||
AND value ~ '^\d+$'
|
||||
)::integer AS min_width,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'max-height' LIMIT 1)
|
||||
AND value ~ '^\d+$'
|
||||
)::integer AS max_height,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'max-width' LIMIT 1)
|
||||
AND value ~ '^\d+$'
|
||||
)::integer AS max_width,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'photowall_resolution' LIMIT 1)
|
||||
AND value ~ '^\d+$'
|
||||
)::integer AS photowall_resolution,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'canvas_resolution' LIMIT 1)
|
||||
AND value ~ '^\d+$'
|
||||
)::integer AS canvas_resolution,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'wallpaper_resolution' LIMIT 1)
|
||||
AND value ~ '^\d+$'
|
||||
)::integer AS wallpaper_resolution,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'lock_height' LIMIT 1)
|
||||
) AS lock_height,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'additionalprice' LIMIT 1)
|
||||
)::double precision AS additionalprice,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'ref1' LIMIT 1)
|
||||
) AS ref1,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'ref2' LIMIT 1)
|
||||
) AS ref2,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'ref3' LIMIT 1)
|
||||
) AS ref3,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'copyright' LIMIT 1)
|
||||
) AS copyright,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'proportions_warning' LIMIT 1)
|
||||
) AS proportions_warning,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'margin_width_max' LIMIT 1)
|
||||
) AS margin_width_max,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'margin_width_min' LIMIT 1)
|
||||
) AS margin_width_min,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'margin_height_max' LIMIT 1)
|
||||
) AS margin_height_max,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'margin_height_min' LIMIT 1)
|
||||
) AS margin_height_min,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'batch' LIMIT 1)
|
||||
) AS batch,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'image_resolution' LIMIT 1)
|
||||
AND value ~ '^\d+$'
|
||||
)::integer AS image_resolution,
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'focusXpoint' LIMIT 1)
|
||||
)::double precision AS "focusXpoint",
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'focusYpoint' LIMIT 1)
|
||||
)::double precision AS "focusYpoint",
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'focusXpoint2' LIMIT 1)
|
||||
)::double precision AS "focusXpoint2",
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'focusYpoint2' LIMIT 1)
|
||||
)::double precision AS "focusYpoint2",
|
||||
|
||||
(
|
||||
SELECT value FROM "product-products_fields" WHERE productid = products.productid
|
||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = 'repeating_pattern' LIMIT 1)
|
||||
) AS repeating_pattern
|
||||
FROM "product-products" products
|
||||
) main
|
||||
LEFT JOIN (
|
||||
SELECT stockid AS id,
|
||||
productid AS product_id,
|
||||
(
|
||||
SELECT price
|
||||
FROM "product-stockprices"
|
||||
WHERE priceid = s.priceid LIMIT 1
|
||||
) AS price
|
||||
FROM "product-stockproducts" s
|
||||
) stock ON main.product_id = stock.product_id
|
||||
LEFT JOIN (
|
||||
SELECT designerid AS id,
|
||||
name,
|
||||
path,
|
||||
CASE
|
||||
WHEN status = 1 AND visible_productpage = 1 THEN 1
|
||||
ELSE 0
|
||||
END AS visible_productpage
|
||||
FROM designers
|
||||
) designer ON main.designerid = designer.id;
|
||||
|
||||
-- DROP INDEX v_product_id;
|
||||
CREATE UNIQUE INDEX v_esales_product_id
|
||||
ON v_esales_product (id);
|
||||
@@ -0,0 +1 @@
|
||||
ALTER TABLE trustpilot DROP COLUMN IF EXISTS reviewurl;
|
||||
@@ -0,0 +1,86 @@
|
||||
-- Materialized View: v_esales_categorytree_i18n
|
||||
|
||||
DROP MATERIALIZED VIEW IF EXISTS v_esales_categorytree_i18n;
|
||||
|
||||
CREATE MATERIALIZED VIEW v_esales_categorytree_i18n AS
|
||||
SELECT main.id,
|
||||
main.parent_id,
|
||||
main.locale_id,
|
||||
main.locale,
|
||||
main.name,
|
||||
main.path,
|
||||
main.is_leaf,
|
||||
main.depth,
|
||||
main.child_count,
|
||||
main.lft,
|
||||
main.rgt,
|
||||
regexp_replace(unaccent(replace(replace(main.path, ' '::text, '_'::text), '&'::text, 'and'::text)), '[^\w/\-]'::text, ''::text, 'g'::text) AS path_translated
|
||||
FROM (
|
||||
SELECT c.id,
|
||||
(
|
||||
SELECT s.id
|
||||
FROM categories s
|
||||
WHERE s.lft < c.lft AND s.rgt > c.rgt
|
||||
ORDER BY s.rgt - c.rgt
|
||||
LIMIT 1
|
||||
) AS parent_id,
|
||||
c.locale_id,
|
||||
c.locale,
|
||||
c.name,
|
||||
(
|
||||
SELECT lower(array_to_string(array_agg(main_1.parent_name), '/'::text)) AS path
|
||||
FROM (
|
||||
SELECT node.id,
|
||||
(
|
||||
SELECT category_texts.name
|
||||
FROM category_texts
|
||||
WHERE category_texts.locale_id = c.locale_id
|
||||
AND category_texts.category_id = parent.id
|
||||
) AS parent_name
|
||||
FROM categories node,
|
||||
categories parent
|
||||
WHERE node.lft >= parent.lft AND node.lft <= parent.rgt AND node.id = c.id
|
||||
ORDER BY parent.lft
|
||||
) main_1
|
||||
GROUP BY main_1.id
|
||||
) AS path,
|
||||
CASE c.rgt - c.lft
|
||||
WHEN 1 THEN 1
|
||||
ELSE 0
|
||||
END AS is_leaf,
|
||||
(
|
||||
SELECT count(*) - 1
|
||||
FROM categories node,
|
||||
categories parent
|
||||
WHERE node.lft >= parent.lft
|
||||
AND node.lft <= parent.rgt
|
||||
AND node.id = c.id
|
||||
) AS depth,
|
||||
(
|
||||
SELECT count(*) - 1
|
||||
FROM categories c1
|
||||
WHERE c1.lft >= c.lft AND c1.lft <= c.rgt
|
||||
) AS child_count,
|
||||
c.lft,
|
||||
c.rgt
|
||||
FROM (
|
||||
SELECT c_1.id,
|
||||
s.id AS locale_id,
|
||||
s.value AS locale,
|
||||
lower(s_t.name::text) AS name,
|
||||
c_1.rgt,
|
||||
c_1.lft
|
||||
FROM locales s
|
||||
JOIN category_texts s_t ON s.id = s_t.locale_id
|
||||
JOIN categories c_1 ON s_t.category_id = c_1.id
|
||||
ORDER BY s.id, c_1.lft
|
||||
) c
|
||||
) main
|
||||
WITH DATA;
|
||||
|
||||
-- Index: v_esales_categorytree_i18n_id_locale_id
|
||||
-- DROP INDEX v_esales_categorytree_i18n_id_locale_id;
|
||||
CREATE UNIQUE INDEX v_esales_categorytree_i18n_id_locale_id
|
||||
ON v_esales_categorytree_i18n
|
||||
USING btree
|
||||
(id, locale_id);
|
||||
@@ -0,0 +1,63 @@
|
||||
-- Materialized View: public.v_categorytree
|
||||
DO $$
|
||||
BEGIN
|
||||
DROP MATERIALIZED VIEW IF EXISTS public.v_categorytree;
|
||||
EXCEPTION WHEN others THEN
|
||||
RAISE NOTICE 'Materialized view does not exist';
|
||||
END;
|
||||
$$;
|
||||
|
||||
DO $$
|
||||
BEGIN
|
||||
DROP VIEW IF EXISTS public.v_categorytree;
|
||||
EXCEPTION WHEN others THEN
|
||||
RAISE NOTICE 'View does not exist';
|
||||
END;
|
||||
$$;
|
||||
|
||||
CREATE MATERIALIZED VIEW public.v_categorytree AS
|
||||
SELECT c.id,
|
||||
c.name,
|
||||
( SELECT array_to_string(array_agg(main.parent_name), '/'::text) AS path
|
||||
FROM ( SELECT node.id,
|
||||
parent.name AS parent_name
|
||||
FROM categories node,
|
||||
categories parent
|
||||
WHERE node.lft >= parent.lft AND node.lft <= parent.rgt AND node.id = c.id
|
||||
ORDER BY parent.lft) main
|
||||
GROUP BY main.id) AS path,
|
||||
( SELECT array_to_string(array_agg(main.parent_id), '/'::text) AS path
|
||||
FROM ( SELECT node.id,
|
||||
parent.id AS parent_id
|
||||
FROM categories node,
|
||||
categories parent
|
||||
WHERE node.lft >= parent.lft AND node.lft <= parent.rgt AND node.id = c.id
|
||||
ORDER BY parent.lft) main
|
||||
GROUP BY main.id) AS path_numeric,
|
||||
CASE c.rgt - c.lft
|
||||
WHEN 1 THEN 1
|
||||
ELSE 0
|
||||
END AS is_leaf,
|
||||
( SELECT count(*) - 1
|
||||
FROM categories node,
|
||||
categories parent
|
||||
WHERE node.lft >= parent.lft AND node.lft <= parent.rgt AND node.id = c.id) AS depth,
|
||||
( SELECT count(*) - 1
|
||||
FROM categories c1
|
||||
WHERE c1.lft >= c.lft AND c1.lft <= c.rgt) AS child_count,
|
||||
c.lft,
|
||||
c.rgt
|
||||
FROM categories c
|
||||
ORDER BY c.lft
|
||||
WITH DATA;
|
||||
|
||||
GRANT ALL ON TABLE v_categorytree TO photowall;
|
||||
|
||||
-- Index: public.v_categorytree_key
|
||||
|
||||
-- DROP INDEX public.v_categorytree_key;
|
||||
|
||||
CREATE UNIQUE INDEX v_categorytree_key
|
||||
ON public.v_categorytree
|
||||
USING btree
|
||||
(id);
|
||||
@@ -0,0 +1,49 @@
|
||||
-- PW-761
|
||||
|
||||
-- v_categorytree
|
||||
DROP INDEX IF EXISTS public.v_categorytree_key;
|
||||
CREATE UNIQUE INDEX v_categorytree_key
|
||||
ON public.v_categorytree
|
||||
USING btree
|
||||
(id);
|
||||
|
||||
-- v_esales_category_count
|
||||
DROP INDEX IF EXISTS public.v_esales_category_count_id_idx;
|
||||
CREATE UNIQUE INDEX v_esales_category_count_id_idx
|
||||
ON public.v_esales_category_count
|
||||
USING btree
|
||||
(id, locale_id, product_id, groupid, wallpapertype_id);
|
||||
|
||||
-- v_esales_categorytree_i18n
|
||||
DROP INDEX IF EXISTS public.v_esales_categorytree_i18n_id_locale_id;
|
||||
CREATE UNIQUE INDEX v_esales_categorytree_i18n_id_locale_id
|
||||
ON public.v_esales_categorytree_i18n
|
||||
USING btree
|
||||
(id, locale_id);
|
||||
|
||||
-- v_esales_interiors
|
||||
DROP INDEX IF EXISTS public.ix_v_esales_interiors_print_id;
|
||||
CREATE INDEX ix_v_esales_interiors_print_id
|
||||
ON public.v_esales_interiors
|
||||
USING btree
|
||||
(print_id);
|
||||
|
||||
-- v_esales_printproduct
|
||||
DROP INDEX IF EXISTS public.v_esales_printproduct_id;
|
||||
CREATE UNIQUE INDEX v_esales_printproduct_id
|
||||
ON public.v_esales_printproduct
|
||||
USING btree
|
||||
(id);
|
||||
|
||||
DROP INDEX IF EXISTS public.v_esales_printproduct_product_id;
|
||||
CREATE INDEX v_esales_printproduct_product_id
|
||||
ON public.v_esales_printproduct
|
||||
USING btree
|
||||
(product_id);
|
||||
|
||||
-- v_esales_product
|
||||
DROP INDEX IF EXISTS public.v_esales_product_id;
|
||||
CREATE UNIQUE INDEX v_esales_product_id
|
||||
ON public.v_esales_product
|
||||
USING btree
|
||||
(id);
|
||||
@@ -0,0 +1,10 @@
|
||||
-- PW-808: replace Schenker with DHL
|
||||
|
||||
-- Replace all dbSchenker with DHL
|
||||
UPDATE "delivery-methods_prices" SET method = 10 WHERE method = 5;
|
||||
|
||||
-- Replace all dbSchenkerBPA with DHL
|
||||
UPDATE "delivery-methods_prices" SET method = 10 WHERE method = 7;
|
||||
|
||||
-- Remove all dbSchenkerBHP
|
||||
DELETE FROM "delivery-methods_prices" WHERE method = 6;
|
||||
@@ -0,0 +1,6 @@
|
||||
-- PW-844
|
||||
UPDATE category_texts
|
||||
SET name = wallpaper_name
|
||||
WHERE name IS null;
|
||||
|
||||
ALTER TABLE category_texts ALTER COLUMN name SET NOT NULL;
|
||||
@@ -0,0 +1,9 @@
|
||||
-- P5-1372
|
||||
INSERT INTO "i18n-currencies_territories" (territory, currency)
|
||||
SELECT 'PL', 'PLN'
|
||||
WHERE NOT EXISTS (
|
||||
SELECT NULL
|
||||
FROM "i18n-currencies_territories"
|
||||
WHERE territory = 'PL'
|
||||
AND currency = 'PLN'
|
||||
);
|
||||
@@ -0,0 +1,5 @@
|
||||
-- P5-1352: set description to '' where description and h1 is the same
|
||||
|
||||
UPDATE category_texts SET wallpaper_description = '' WHERE wallpaper_description = wallpaper_h1;
|
||||
|
||||
UPDATE category_texts SET canvas_description = '' WHERE canvas_description = canvas_h1;
|
||||
@@ -0,0 +1,279 @@
|
||||
--P5-1367
|
||||
DROP MATERIALIZED VIEW IF EXISTS v_esales_product;
|
||||
|
||||
CREATE MATERIALIZED VIEW public.v_esales_product AS
|
||||
SELECT main.product_id AS id,
|
||||
main."artNo",
|
||||
stock.id AS stock_id,
|
||||
stock.price AS stock_price,
|
||||
main.path,
|
||||
main.visible,
|
||||
main.browsable,
|
||||
main.designerid,
|
||||
designer.name AS designer_name,
|
||||
designer.path AS designer_path,
|
||||
designer.visible_productpage AS designer_visible_productpage,
|
||||
main.designercollection_id,
|
||||
COALESCE(( SELECT designers.pricepremium / 100::numeric
|
||||
FROM designers
|
||||
WHERE designers.designerid = main.designerid
|
||||
LIMIT 1), 0::numeric) AS designer_margin,
|
||||
( SELECT "product-printproducts".typeid
|
||||
FROM "product-printproducts"
|
||||
WHERE "product-printproducts".productid = main.product_id
|
||||
LIMIT 1) AS producttype_id,
|
||||
main.name,
|
||||
main.height,
|
||||
main.original_article_number,
|
||||
main.width,
|
||||
main.widths,
|
||||
main.min_height,
|
||||
main.min_width,
|
||||
main.max_height,
|
||||
main.max_width,
|
||||
main.photowall_resolution,
|
||||
main.canvas_resolution,
|
||||
main.wallpaper_resolution,
|
||||
main.lock_height,
|
||||
COALESCE(main.additionalprice, 0::double precision) AS additionalprice,
|
||||
main.ref1,
|
||||
main.ref2,
|
||||
main.ref3,
|
||||
main.copyright,
|
||||
main.proportions_warning,
|
||||
main.margin_width_max,
|
||||
main.margin_width_min,
|
||||
main.margin_height_max,
|
||||
main.margin_height_min,
|
||||
main.width::numeric /
|
||||
CASE
|
||||
WHEN main.height = 0 THEN '-1.0'::numeric
|
||||
ELSE main.height::numeric
|
||||
END AS width_height_ratio,
|
||||
main.batch,
|
||||
main.image_resolution,
|
||||
main."focusXpoint",
|
||||
main."focusYpoint",
|
||||
main."focusXpoint2",
|
||||
main."focusYpoint2",
|
||||
main.repeating_pattern
|
||||
FROM ( SELECT products.productid AS product_id,
|
||||
products.path,
|
||||
products.visible,
|
||||
products.browsable,
|
||||
products.designerid,
|
||||
products.designercollectionid AS designercollection_id,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'artNo'::text
|
||||
LIMIT 1))) AS "artNo",
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'name'::text
|
||||
LIMIT 1))) AS name,
|
||||
(( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'height'::text
|
||||
LIMIT 1)) AND "product-products_fields".value::text ~ '^\d+$'::text))::integer AS height,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'orgArtNo'::text
|
||||
LIMIT 1))) AS original_article_number,
|
||||
(( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'width'::text
|
||||
LIMIT 1)) AND "product-products_fields".value::text ~ '^\d+$'::text))::integer AS width,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'widths'::text
|
||||
LIMIT 1))) AS widths,
|
||||
(( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'min-height'::text
|
||||
LIMIT 1)) AND "product-products_fields".value::text ~ '^\d+$'::text))::integer AS min_height,
|
||||
(( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'min-width'::text
|
||||
LIMIT 1)) AND "product-products_fields".value::text ~ '^\d+$'::text))::integer AS min_width,
|
||||
(( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'max-height'::text
|
||||
LIMIT 1)) AND "product-products_fields".value::text ~ '^\d+$'::text))::integer AS max_height,
|
||||
(( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'max-width'::text
|
||||
LIMIT 1)) AND "product-products_fields".value::text ~ '^\d+$'::text))::integer AS max_width,
|
||||
(( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'photowall_resolution'::text
|
||||
LIMIT 1)) AND "product-products_fields".value::text ~ '^\d+$'::text))::integer AS photowall_resolution,
|
||||
(( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'canvas_resolution'::text
|
||||
LIMIT 1)) AND "product-products_fields".value::text ~ '^\d+$'::text))::integer AS canvas_resolution,
|
||||
(( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'wallpaper_resolution'::text
|
||||
LIMIT 1)) AND "product-products_fields".value::text ~ '^\d+$'::text))::integer AS wallpaper_resolution,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'lock_height'::text
|
||||
LIMIT 1))) AS lock_height,
|
||||
(( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'additionalprice'::text
|
||||
LIMIT 1))))::double precision AS additionalprice,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'ref1'::text
|
||||
LIMIT 1))) AS ref1,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'ref2'::text
|
||||
LIMIT 1))) AS ref2,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'ref3'::text
|
||||
LIMIT 1))) AS ref3,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'copyright'::text
|
||||
LIMIT 1))) AS copyright,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'proportions_warning'::text
|
||||
LIMIT 1))) AS proportions_warning,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'margin_width_max'::text
|
||||
LIMIT 1))) AS margin_width_max,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'margin_width_min'::text
|
||||
LIMIT 1))) AS margin_width_min,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'margin_height_max'::text
|
||||
LIMIT 1))) AS margin_height_max,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'margin_height_min'::text
|
||||
LIMIT 1))) AS margin_height_min,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'batch'::text
|
||||
LIMIT 1))) AS batch,
|
||||
(( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'image_resolution'::text
|
||||
LIMIT 1)) AND "product-products_fields".value::text ~ '^\d+$'::text))::integer AS image_resolution,
|
||||
(( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'focusXpoint'::text
|
||||
LIMIT 1))))::double precision AS "focusXpoint",
|
||||
(( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'focusYpoint'::text
|
||||
LIMIT 1))))::double precision AS "focusYpoint",
|
||||
(( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'focusXpoint2'::text
|
||||
LIMIT 1))))::double precision AS "focusXpoint2",
|
||||
(( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'focusYpoint2'::text
|
||||
LIMIT 1))))::double precision AS "focusYpoint2",
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'repeating_pattern'::text
|
||||
LIMIT 1))) AS repeating_pattern
|
||||
FROM "product-products" products) main
|
||||
LEFT JOIN ( SELECT s.stockid AS id,
|
||||
s.productid AS product_id,
|
||||
( SELECT "product-stockprices".price
|
||||
FROM "product-stockprices"
|
||||
WHERE "product-stockprices".priceid = s.priceid
|
||||
LIMIT 1) AS price
|
||||
FROM "product-stockproducts" s) stock ON main.product_id = stock.product_id
|
||||
LEFT JOIN ( SELECT designers.designerid AS id,
|
||||
designers.name,
|
||||
designers.path,
|
||||
CASE
|
||||
WHEN designers.status = 1 AND designers.visible_productpage = 1 THEN 1
|
||||
ELSE 0
|
||||
END AS visible_productpage
|
||||
FROM designers) designer ON main.designerid = designer.id
|
||||
WHERE main.width IS NOT NULL AND main.height IS NOT NULL
|
||||
WITH DATA;
|
||||
|
||||
ALTER TABLE public.v_esales_product
|
||||
OWNER TO photowall;
|
||||
|
||||
-- Index: public.v_esales_product_id
|
||||
|
||||
CREATE UNIQUE INDEX v_esales_product_id
|
||||
ON public.v_esales_product
|
||||
USING btree
|
||||
(id);
|
||||
@@ -0,0 +1,2 @@
|
||||
-- P5-1306
|
||||
CREATE INDEX IF NOT EXISTS categories_name ON categories (name);
|
||||
@@ -0,0 +1,3 @@
|
||||
UPDATE inquiries
|
||||
SET automated = 0
|
||||
WHERE status >= 100;
|
||||
@@ -0,0 +1,335 @@
|
||||
-- P5-1458
|
||||
|
||||
INSERT INTO "product-fields" ("field")
|
||||
VALUES
|
||||
('print_file_width'),
|
||||
('print_file_height'),
|
||||
('print_file_dpi')
|
||||
ON CONFLICT DO NOTHING;
|
||||
|
||||
INSERT INTO "product-products_fields" ("productid", "fieldid", "value")
|
||||
(
|
||||
SELECT "product-products_fields".productid, (
|
||||
SELECT fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "field" = 'print_file_width'
|
||||
), value
|
||||
FROM "product-products_fields"
|
||||
INNER JOIN "product-printproducts"
|
||||
ON "product-products_fields".productid = "product-printproducts".productid
|
||||
WHERE fieldid = (SELECT fieldid FROM "product-fields" WHERE "field" = 'width') AND "product-printproducts".groupid = 3
|
||||
|
||||
UNION
|
||||
|
||||
SELECT "product-products_fields".productid, (
|
||||
SELECT fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "field" = 'print_file_height'
|
||||
), value
|
||||
FROM "product-products_fields"
|
||||
INNER JOIN "product-printproducts"
|
||||
ON "product-products_fields".productid = "product-printproducts".productid
|
||||
WHERE fieldid = (SELECT fieldid FROM "product-fields" WHERE "field" = 'height') AND "product-printproducts".groupid = 3
|
||||
|
||||
UNION
|
||||
|
||||
SELECT "product-products_fields".productid, (
|
||||
SELECT fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "field" = 'print_file_dpi'
|
||||
), value
|
||||
FROM "product-products_fields"
|
||||
INNER JOIN "product-printproducts"
|
||||
ON "product-products_fields".productid = "product-printproducts".productid
|
||||
WHERE fieldid = (SELECT fieldid FROM "product-fields" WHERE "field" = 'image_resolution') AND "product-printproducts".groupid = 3
|
||||
)
|
||||
ON CONFLICT DO NOTHING;
|
||||
|
||||
|
||||
|
||||
-- Updating a product view
|
||||
|
||||
DO $$
|
||||
BEGIN
|
||||
DROP VIEW public.v_product;
|
||||
EXCEPTION WHEN others THEN
|
||||
RAISE NOTICE 'View does not exist';
|
||||
END;
|
||||
$$;
|
||||
|
||||
|
||||
CREATE OR REPLACE VIEW public.v_product AS
|
||||
SELECT main.product_id AS id,
|
||||
main."artNo",
|
||||
stock.id AS stock_id,
|
||||
stock.price AS stock_price,
|
||||
main.path,
|
||||
main.visible,
|
||||
main.browsable,
|
||||
main.designerid,
|
||||
main.designercollection_id,
|
||||
COALESCE(( SELECT designers.pricepremium / 100::numeric
|
||||
FROM designers
|
||||
WHERE designers.designerid = main.designerid
|
||||
LIMIT 1), 0::numeric) AS designer_margin,
|
||||
main.name,
|
||||
main.height,
|
||||
main.print_file_height,
|
||||
main.original_article_number,
|
||||
main.width,
|
||||
main.print_file_width,
|
||||
main.widths,
|
||||
main.min_height,
|
||||
main.min_width,
|
||||
main.max_height,
|
||||
main.max_width,
|
||||
main.photowall_resolution,
|
||||
main.canvas_resolution,
|
||||
main.wallpaper_resolution,
|
||||
main.print_file_dpi,
|
||||
main.lock_height,
|
||||
COALESCE(main.additionalprice, 0::double precision) AS additionalprice,
|
||||
main.ref1,
|
||||
main.ref2,
|
||||
main.ref3,
|
||||
main.copyright,
|
||||
main.proportions_warning,
|
||||
main.margin_width_max,
|
||||
main.margin_width_min,
|
||||
main.margin_height_max,
|
||||
main.margin_height_min,
|
||||
main.width::numeric /
|
||||
CASE
|
||||
WHEN main.height = 0 THEN '-1.0'::numeric
|
||||
ELSE main.height::numeric
|
||||
END AS width_height_ratio,
|
||||
main.batch,
|
||||
main.image_resolution,
|
||||
main."focusXpoint",
|
||||
main."focusYpoint",
|
||||
main."focusXpoint2",
|
||||
main."focusYpoint2",
|
||||
main.repeating_pattern
|
||||
FROM ( SELECT products.productid AS product_id,
|
||||
products.path,
|
||||
products.visible,
|
||||
products.browsable,
|
||||
products.designerid,
|
||||
products.designercollectionid AS designercollection_id,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'artNo'::text
|
||||
LIMIT 1))) AS "artNo",
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'name'::text
|
||||
LIMIT 1))) AS name,
|
||||
(( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'height'::text
|
||||
LIMIT 1)) AND "product-products_fields".value::text ~ '^\d+$'::text))::integer AS height,
|
||||
(( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'print_file_height'::text
|
||||
LIMIT 1)) AND "product-products_fields".value::text ~ '^\d+$'::text))::integer AS print_file_height,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'orgArtNo'::text
|
||||
LIMIT 1))) AS original_article_number,
|
||||
(( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'width'::text
|
||||
LIMIT 1)) AND "product-products_fields".value::text ~ '^\d+$'::text))::integer AS width,
|
||||
(( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'print_file_width'::text
|
||||
LIMIT 1)) AND "product-products_fields".value::text ~ '^\d+$'::text))::integer AS print_file_width,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'widths'::text
|
||||
LIMIT 1))) AS widths,
|
||||
(( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'min-height'::text
|
||||
LIMIT 1)) AND "product-products_fields".value::text ~ '^\d+$'::text))::integer AS min_height,
|
||||
(( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'min-width'::text
|
||||
LIMIT 1)) AND "product-products_fields".value::text ~ '^\d+$'::text))::integer AS min_width,
|
||||
(( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'max-height'::text
|
||||
LIMIT 1)) AND "product-products_fields".value::text ~ '^\d+$'::text))::integer AS max_height,
|
||||
(( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'max-width'::text
|
||||
LIMIT 1)) AND "product-products_fields".value::text ~ '^\d+$'::text))::integer AS max_width,
|
||||
(( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'photowall_resolution'::text
|
||||
LIMIT 1)) AND "product-products_fields".value::text ~ '^\d+$'::text))::integer AS photowall_resolution,
|
||||
(( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'canvas_resolution'::text
|
||||
LIMIT 1)) AND "product-products_fields".value::text ~ '^\d+$'::text))::integer AS canvas_resolution,
|
||||
(( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'wallpaper_resolution'::text
|
||||
LIMIT 1)) AND "product-products_fields".value::text ~ '^\d+$'::text))::integer AS wallpaper_resolution,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'lock_height'::text
|
||||
LIMIT 1))) AS lock_height,
|
||||
(( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'additionalprice'::text
|
||||
LIMIT 1))))::double precision AS additionalprice,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'ref1'::text
|
||||
LIMIT 1))) AS ref1,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'ref2'::text
|
||||
LIMIT 1))) AS ref2,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'ref3'::text
|
||||
LIMIT 1))) AS ref3,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'copyright'::text
|
||||
LIMIT 1))) AS copyright,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'proportions_warning'::text
|
||||
LIMIT 1))) AS proportions_warning,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'margin_width_max'::text
|
||||
LIMIT 1))) AS margin_width_max,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'margin_width_min'::text
|
||||
LIMIT 1))) AS margin_width_min,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'margin_height_max'::text
|
||||
LIMIT 1))) AS margin_height_max,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'margin_height_min'::text
|
||||
LIMIT 1))) AS margin_height_min,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'batch'::text
|
||||
LIMIT 1))) AS batch,
|
||||
(( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'image_resolution'::text
|
||||
LIMIT 1)) AND "product-products_fields".value::text ~ '^\d+$'::text))::integer AS image_resolution,
|
||||
(( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'print_file_dpi'::text
|
||||
LIMIT 1)) AND "product-products_fields".value::text ~ '^\d+$'::text))::integer AS print_file_dpi,
|
||||
(( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'focusXpoint'::text
|
||||
LIMIT 1))))::double precision AS "focusXpoint",
|
||||
(( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'focusYpoint'::text
|
||||
LIMIT 1))))::double precision AS "focusYpoint",
|
||||
(( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'focusXpoint2'::text
|
||||
LIMIT 1))))::double precision AS "focusXpoint2",
|
||||
(( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'focusYpoint2'::text
|
||||
LIMIT 1))))::double precision AS "focusYpoint2",
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = (( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'repeating_pattern'::text
|
||||
LIMIT 1))) AS repeating_pattern
|
||||
FROM "product-products" products) main
|
||||
LEFT JOIN ( SELECT s.stockid AS id,
|
||||
s.productid AS product_id,
|
||||
( SELECT "product-stockprices".price
|
||||
FROM "product-stockprices"
|
||||
WHERE "product-stockprices".priceid = s.priceid
|
||||
LIMIT 1) AS price
|
||||
FROM "product-stockproducts" s) stock ON main.product_id = stock.product_id;
|
||||
|
||||
ALTER TABLE public.v_product
|
||||
OWNER TO photowall;
|
||||
GRANT ALL ON TABLE public.v_product TO photowall;
|
||||
GRANT ALL ON TABLE public.v_product TO public;
|
||||
@@ -0,0 +1,296 @@
|
||||
--P5-1594
|
||||
DROP MATERIALIZED VIEW IF EXISTS v_esales_product;
|
||||
|
||||
CREATE MATERIALIZED VIEW public.v_esales_product AS
|
||||
SELECT main.product_id AS id,
|
||||
main."artNo",
|
||||
stock.id AS stock_id,
|
||||
stock.price AS stock_price,
|
||||
main.path,
|
||||
main.visible,
|
||||
main.browsable,
|
||||
main.designerid,
|
||||
designer.name AS designer_name,
|
||||
designer.path AS designer_path,
|
||||
designer.visible_productpage AS designer_visible_productpage,
|
||||
main.designercollection_id,
|
||||
COALESCE(( SELECT designers.pricepremium / 100::numeric
|
||||
FROM designers
|
||||
WHERE designers.designerid = main.designerid
|
||||
LIMIT 1), 0::numeric) AS designer_margin,
|
||||
( SELECT "product-printproducts".typeid
|
||||
FROM "product-printproducts"
|
||||
WHERE "product-printproducts".productid = main.product_id
|
||||
LIMIT 1) AS producttype_id,
|
||||
main.name,
|
||||
main.height,
|
||||
main.original_article_number,
|
||||
main.width,
|
||||
main.widths,
|
||||
main.min_height,
|
||||
main.min_width,
|
||||
main.max_height,
|
||||
main.max_width,
|
||||
main.photowall_resolution,
|
||||
main.canvas_resolution,
|
||||
main.wallpaper_resolution,
|
||||
main.lock_height,
|
||||
COALESCE(main.additionalprice, 0::double precision) AS additionalprice,
|
||||
main.ref1,
|
||||
main.ref2,
|
||||
main.ref3,
|
||||
main.copyright,
|
||||
main.proportions_warning,
|
||||
main.margin_width_max,
|
||||
main.margin_width_min,
|
||||
main.margin_height_max,
|
||||
main.margin_height_min,
|
||||
main.width::numeric /
|
||||
CASE
|
||||
WHEN main.height = 0 THEN '-1.0'::numeric
|
||||
ELSE main.height::numeric
|
||||
END AS width_height_ratio,
|
||||
main.batch,
|
||||
main.image_resolution,
|
||||
main."focusXpoint",
|
||||
main."focusYpoint",
|
||||
main."focusXpoint2",
|
||||
main."focusYpoint2",
|
||||
main.repeating_pattern,
|
||||
main.print_file_width,
|
||||
main.print_file_height,
|
||||
main.print_file_dpi
|
||||
FROM ( SELECT products.productid AS product_id,
|
||||
products.path,
|
||||
products.visible,
|
||||
products.browsable,
|
||||
products.designerid,
|
||||
products.designercollectionid AS designercollection_id,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = ( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'artNo'::text
|
||||
LIMIT 1)) AS "artNo",
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = ( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'name'::text
|
||||
LIMIT 1)) AS name,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = ( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'height'::text
|
||||
LIMIT 1) AND "product-products_fields".value::text ~ '^\d+$'::text)::integer AS height,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = ( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'orgArtNo'::text
|
||||
LIMIT 1)) AS original_article_number,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = ( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'width'::text
|
||||
LIMIT 1) AND "product-products_fields".value::text ~ '^\d+$'::text)::integer AS width,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = ( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'widths'::text
|
||||
LIMIT 1)) AS widths,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = ( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'min-height'::text
|
||||
LIMIT 1) AND "product-products_fields".value::text ~ '^\d+$'::text)::integer AS min_height,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = ( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'min-width'::text
|
||||
LIMIT 1) AND "product-products_fields".value::text ~ '^\d+$'::text)::integer AS min_width,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = ( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'max-height'::text
|
||||
LIMIT 1) AND "product-products_fields".value::text ~ '^\d+$'::text)::integer AS max_height,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = ( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'max-width'::text
|
||||
LIMIT 1) AND "product-products_fields".value::text ~ '^\d+$'::text)::integer AS max_width,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = ( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'photowall_resolution'::text
|
||||
LIMIT 1) AND "product-products_fields".value::text ~ '^\d+$'::text)::integer AS photowall_resolution,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = ( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'canvas_resolution'::text
|
||||
LIMIT 1) AND "product-products_fields".value::text ~ '^\d+$'::text)::integer AS canvas_resolution,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = ( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'wallpaper_resolution'::text
|
||||
LIMIT 1) AND "product-products_fields".value::text ~ '^\d+$'::text)::integer AS wallpaper_resolution,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = ( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'lock_height'::text
|
||||
LIMIT 1)) AS lock_height,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = ( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'additionalprice'::text
|
||||
LIMIT 1))::double precision AS additionalprice,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = ( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'ref1'::text
|
||||
LIMIT 1)) AS ref1,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = ( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'ref2'::text
|
||||
LIMIT 1)) AS ref2,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = ( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'ref3'::text
|
||||
LIMIT 1)) AS ref3,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = ( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'copyright'::text
|
||||
LIMIT 1)) AS copyright,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = ( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'proportions_warning'::text
|
||||
LIMIT 1)) AS proportions_warning,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = ( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'margin_width_max'::text
|
||||
LIMIT 1)) AS margin_width_max,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = ( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'margin_width_min'::text
|
||||
LIMIT 1)) AS margin_width_min,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = ( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'margin_height_max'::text
|
||||
LIMIT 1)) AS margin_height_max,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = ( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'margin_height_min'::text
|
||||
LIMIT 1)) AS margin_height_min,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = ( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'batch'::text
|
||||
LIMIT 1)) AS batch,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = ( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'image_resolution'::text
|
||||
LIMIT 1) AND "product-products_fields".value::text ~ '^\d+$'::text)::integer AS image_resolution,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = ( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'focusXpoint'::text
|
||||
LIMIT 1))::double precision AS "focusXpoint",
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = ( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'focusYpoint'::text
|
||||
LIMIT 1))::double precision AS "focusYpoint",
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = ( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'focusXpoint2'::text
|
||||
LIMIT 1))::double precision AS "focusXpoint2",
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = ( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'focusYpoint2'::text
|
||||
LIMIT 1))::double precision AS "focusYpoint2",
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = ( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'repeating_pattern'::text
|
||||
LIMIT 1)) AS repeating_pattern,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = ( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'print_file_width'::text
|
||||
LIMIT 1))::integer AS print_file_width,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = ( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'print_file_height'::text
|
||||
LIMIT 1))::integer AS print_file_height,
|
||||
( SELECT "product-products_fields".value
|
||||
FROM "product-products_fields"
|
||||
WHERE "product-products_fields".productid = products.productid AND "product-products_fields".fieldid = ( SELECT "product-fields".fieldid
|
||||
FROM "product-fields"
|
||||
WHERE "product-fields".field::text = 'print_file_dpi'::text
|
||||
LIMIT 1))::integer AS print_file_dpi
|
||||
FROM "product-products" products) main
|
||||
LEFT JOIN ( SELECT s.stockid AS id,
|
||||
s.productid AS product_id,
|
||||
( SELECT "product-stockprices".price
|
||||
FROM "product-stockprices"
|
||||
WHERE "product-stockprices".priceid = s.priceid
|
||||
LIMIT 1) AS price
|
||||
FROM "product-stockproducts" s) stock ON main.product_id = stock.product_id
|
||||
LEFT JOIN ( SELECT designers.designerid AS id,
|
||||
designers.name,
|
||||
designers.path,
|
||||
CASE
|
||||
WHEN designers.status = 1 AND designers.visible_productpage = 1 THEN 1
|
||||
ELSE 0
|
||||
END AS visible_productpage
|
||||
FROM designers) designer ON main.designerid = designer.id
|
||||
WHERE main.width IS NOT NULL AND main.height IS NOT NULL
|
||||
WITH DATA;
|
||||
|
||||
ALTER TABLE v_esales_product
|
||||
OWNER TO photowall;
|
||||
|
||||
CREATE UNIQUE INDEX v_esales_product_id
|
||||
ON v_esales_product (id);
|
||||
@@ -0,0 +1,16 @@
|
||||
CREATE TABLE IF NOT EXISTS designer_texts
|
||||
(
|
||||
id serial PRIMARY KEY,
|
||||
designerid integer NOT NULL
|
||||
REFERENCES designers (designerid)
|
||||
ON UPDATE CASCADE ON DELETE CASCADE,
|
||||
locale_id integer NOT NULL
|
||||
REFERENCES locales (id)
|
||||
ON UPDATE CASCADE ON DELETE NO ACTION,
|
||||
header character varying(250),
|
||||
description text,
|
||||
UNIQUE (designerid, locale_id)
|
||||
)
|
||||
WITH (
|
||||
OIDS=FALSE
|
||||
);
|
||||
@@ -0,0 +1,25 @@
|
||||
--P5-1636
|
||||
INSERT INTO designer_texts (designerid, locale_id, header, description) (
|
||||
SELECT
|
||||
d.designerid,
|
||||
l.id AS locale_id,
|
||||
td_head.text AS header,
|
||||
td_descr.text AS description
|
||||
FROM
|
||||
locales AS l
|
||||
CROSS JOIN designers AS d
|
||||
|
||||
LEFT JOIN "i18n-texts" AS t_head ON t_head.name = d.path AND t_head.category = 'categoryH1_photo-wallpaper'
|
||||
INNER JOIN "i18n-texts_data" AS td_head
|
||||
ON t_head.textid = td_head.textid AND l.value = td_head.language || '_' || td_head.territory
|
||||
|
||||
LEFT JOIN "i18n-texts" AS t_descr
|
||||
ON t_descr.name = d.path AND t_descr.category = 'categoryDescription_photo-wallpaper'
|
||||
INNER JOIN "i18n-texts_data" AS td_descr
|
||||
ON t_descr.textid = td_descr.textid AND l.value = td_descr.language || '_' || td_descr.territory
|
||||
|
||||
WHERE
|
||||
td_head.text IS NOT NULL OR td_descr.text IS NOT NULL
|
||||
)
|
||||
ON CONFLICT DO NOTHING
|
||||
;
|
||||
@@ -0,0 +1,30 @@
|
||||
-- P5-1679
|
||||
|
||||
UPDATE contract_customers AS t_upd
|
||||
SET (
|
||||
"reseller-companyname",
|
||||
"reseller-address",
|
||||
"reseller-zipcode",
|
||||
"reseller-city",
|
||||
"reseller-email",
|
||||
"reseller-phone"
|
||||
) = (
|
||||
SELECT
|
||||
companyname,
|
||||
address,
|
||||
zipcode,
|
||||
city,
|
||||
email,
|
||||
phone
|
||||
FROM contract_customers AS t_sel
|
||||
WHERE t_sel.contractcustomerid = t_upd.contractcustomerid
|
||||
)
|
||||
WHERE
|
||||
dealerstore
|
||||
AND "reseller-companyname" IS NULL
|
||||
AND "reseller-address" IS NULL
|
||||
AND "reseller-zipcode" IS NULL
|
||||
AND "reseller-city" IS NULL
|
||||
AND "reseller-email" IS NULL
|
||||
AND "reseller-phone" IS NULL
|
||||
;
|
||||
@@ -0,0 +1,97 @@
|
||||
-- P5-1676
|
||||
|
||||
CREATE OR REPLACE FUNCTION public.getsafexmlpath(
|
||||
val character varying,
|
||||
with_root integer DEFAULT 0)
|
||||
RETURNS character varying AS
|
||||
$BODY$
|
||||
BEGIN
|
||||
IF with_root = 1 THEN
|
||||
val = regexp_replace(val, '^\w+', 'root');
|
||||
ELSIF with_root = 2 THEN
|
||||
val = regexp_replace(val, '^\w+/', '');
|
||||
END IF;
|
||||
|
||||
val = UNACCENT(val);
|
||||
val = REGEXP_REPLACE(val, '[\., _]', '-', 'g');
|
||||
val = REPLACE(val, '&', '-'); /* ampersand should always be blank but it gets fixed in below */
|
||||
val = lower(val);
|
||||
val = REGEXP_REPLACE(val, '-+', '-', 'g');
|
||||
val = REGEXP_REPLACE(val, '[^\/\w\-]', '', 'g');
|
||||
|
||||
RETURN val;
|
||||
|
||||
END; $BODY$
|
||||
LANGUAGE plpgsql VOLATILE
|
||||
COST 100;
|
||||
ALTER FUNCTION public.getsafexmlpath(character varying, integer)
|
||||
OWNER TO photowall;
|
||||
GRANT EXECUTE ON FUNCTION public.getsafexmlpath(character varying, integer) TO public;
|
||||
GRANT EXECUTE ON FUNCTION public.getsafexmlpath(character varying, integer) TO photowall;
|
||||
|
||||
|
||||
DROP MATERIALIZED VIEW public.v_esales_categorytree_i18n;
|
||||
CREATE MATERIALIZED VIEW public.v_esales_categorytree_i18n AS
|
||||
SELECT main.id,
|
||||
main.parent_id,
|
||||
main.locale_id,
|
||||
main.locale,
|
||||
main.name,
|
||||
main.path,
|
||||
main.is_leaf,
|
||||
main.depth,
|
||||
main.child_count,
|
||||
main.lft,
|
||||
main.rgt
|
||||
FROM ( SELECT c.id,
|
||||
( SELECT s.id
|
||||
FROM categories s
|
||||
WHERE s.lft < c.lft AND s.rgt > c.rgt
|
||||
ORDER BY (s.rgt - c.rgt)
|
||||
LIMIT 1) AS parent_id,
|
||||
c.locale_id,
|
||||
c.locale,
|
||||
c.name,
|
||||
( SELECT lower(array_to_string(array_agg(main_1.parent_name), '/'::text)) AS path
|
||||
FROM ( SELECT node.id,
|
||||
( SELECT category_texts.name
|
||||
FROM category_texts
|
||||
WHERE category_texts.locale_id = c.locale_id AND category_texts.category_id = parent.id) AS parent_name
|
||||
FROM categories node,
|
||||
categories parent
|
||||
WHERE node.lft >= parent.lft AND node.lft <= parent.rgt AND node.id = c.id
|
||||
ORDER BY parent.lft) main_1
|
||||
GROUP BY main_1.id) AS path,
|
||||
CASE c.rgt - c.lft
|
||||
WHEN 1 THEN 1
|
||||
ELSE 0
|
||||
END AS is_leaf,
|
||||
( SELECT count(*) - 1
|
||||
FROM categories node,
|
||||
categories parent
|
||||
WHERE node.lft >= parent.lft AND node.lft <= parent.rgt AND node.id = c.id) AS depth,
|
||||
( SELECT count(*) - 1
|
||||
FROM categories c1
|
||||
WHERE c1.lft >= c.lft AND c1.lft <= c.rgt) AS child_count,
|
||||
c.lft,
|
||||
c.rgt
|
||||
FROM ( SELECT c_1.id,
|
||||
s.id AS locale_id,
|
||||
s.value AS locale,
|
||||
lower(s_t.name::text) AS name,
|
||||
c_1.rgt,
|
||||
c_1.lft
|
||||
FROM locales s
|
||||
JOIN category_texts s_t ON s.id = s_t.locale_id
|
||||
JOIN categories c_1 ON s_t.category_id = c_1.id
|
||||
ORDER BY s.id, c_1.lft) c) main
|
||||
WITH DATA;
|
||||
|
||||
ALTER TABLE public.v_esales_categorytree_i18n
|
||||
OWNER TO photowall;
|
||||
|
||||
CREATE UNIQUE INDEX v_esales_categorytree_i18n_id_locale_id
|
||||
ON public.v_esales_categorytree_i18n
|
||||
USING btree
|
||||
(id, locale_id);
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
-- PW-902 remove delivery methods from contract customers
|
||||
ALTER TABLE contract_customers DROP COLUMN IF EXISTS dealerdeliveryfee;
|
||||
ALTER TABLE contract_customers DROP COLUMN IF EXISTS "shipping-method";
|
||||
@@ -0,0 +1,11 @@
|
||||
-- P5-1677 3b Make sure the canonical settings on categories in admin works and implement the backend logic
|
||||
|
||||
-- Adding primary key
|
||||
ALTER TABLE category_metadata ADD PRIMARY KEY (category_id);
|
||||
|
||||
ALTER TABLE category_metadata
|
||||
ALTER COLUMN canonical DROP DEFAULT,
|
||||
ALTER COLUMN canonical TYPE integer USING (CASE WHEN canonical = '' THEN NULL ELSE canonical::integer END),
|
||||
ADD CONSTRAINT categories_category_metadata_canonical_fk FOREIGN KEY (canonical)
|
||||
REFERENCES public.categories (id)
|
||||
ON UPDATE CASCADE ON DELETE SET NULL;
|
||||
@@ -0,0 +1,10 @@
|
||||
-- Removing of all interior images that are not landscape from all motifs that are repeating pattern
|
||||
DELETE FROM "interiors"
|
||||
WHERE id IN
|
||||
(
|
||||
SELECT i.id
|
||||
FROM "interiors" i
|
||||
INNER JOIN "product-printproducts" pp
|
||||
ON i.print_id = pp.printid
|
||||
WHERE groupid = 3 AND room_id NOT IN (4, 8, 14)
|
||||
);
|
||||
@@ -0,0 +1,3 @@
|
||||
-- fix width and height for diy-frame
|
||||
UPDATE "product-products_fields" SET value = '1540' where productid = 45479 and fieldid = 5;
|
||||
UPDATE "product-products_fields" SET value = '1125' where productid = 45479 and fieldid = 3;
|
||||
@@ -0,0 +1,10 @@
|
||||
-- PW-979 update delivery methods
|
||||
|
||||
-- Replace DHL with dbSchenkerBPA in all european countries
|
||||
UPDATE "delivery-methods_prices" SET method = 7 WHERE method = 10 AND territory IN ('AT','BE','BG','CY','CZ','DE','DK','EE','ES','EU','FI','FR','GB','GR','HU','IE','IT','LT','LU','LV','MT','NL','PL','PT','RO','SE','SI','SK', 'HR');
|
||||
|
||||
-- Replace bringPrivate with dbSchenkerBHP in SE
|
||||
UPDATE "delivery-methods_prices" SET method = 6 WHERE method = 8 AND territory = 'SE';
|
||||
|
||||
-- Replace bringCompany with dbSchenkerBPA in SE
|
||||
UPDATE "delivery-methods_prices" SET method = 7 WHERE method = 9 AND territory = 'SE';
|
||||
@@ -0,0 +1,31 @@
|
||||
-- cleaning of all data from new table of blacklisting products
|
||||
TRUNCATE TABLE "product_blacklist";
|
||||
|
||||
INSERT INTO product_blacklist (product_id, group_id, language_id, territory_id)
|
||||
|
||||
-- getting all blacklisted designers' canvas products
|
||||
SELECT ppc.productid,
|
||||
2 as groupid,
|
||||
pcb.language,
|
||||
pcb.territory
|
||||
FROM "product-categories_blacklist" pcb
|
||||
INNER JOIN "designers" d ON pcb.categoryid = d.categoryid
|
||||
INNER JOIN "product-products_categories" ppc ON pcb.categoryid = ppc.categoryid
|
||||
WHERE pcb.productgroup = 'canvas' OR pcb.productgroup IS NULL
|
||||
GROUP BY ppc.productid, groupid, pcb.language, pcb.territory
|
||||
|
||||
UNION
|
||||
|
||||
-- getting all blacklisted designers' wallpaper products
|
||||
SELECT ppc.productid,
|
||||
groupid,
|
||||
pcb.language,
|
||||
pcb.territory
|
||||
FROM "product-categories_blacklist" pcb
|
||||
CROSS JOIN (SELECT groupid from "product-groups" where groupid = 1 OR groupid = 3) as printproducts
|
||||
INNER JOIN "designers" d ON pcb.categoryid = d.categoryid
|
||||
INNER JOIN "product-products_categories" ppc ON pcb.categoryid = ppc.categoryid
|
||||
INNER JOIN "product-products" products ON ppc.productid = products.productid
|
||||
WHERE pcb.productgroup = 'photo-wallpaper' OR pcb.productgroup IS NULL
|
||||
GROUP BY ppc.productid, groupid, pcb.language, pcb.territory
|
||||
ORDER BY productid, territory, language, groupid;
|
||||
@@ -0,0 +1,2 @@
|
||||
--PW-1078 add DHL as a delivery method for customers in US that pay in SEK
|
||||
INSERT INTO "delivery-methods_prices" (method, option, option_value, currency, price, territory) VALUES (10, '', '', 'SEK', 0, 'US');
|
||||
@@ -0,0 +1,3 @@
|
||||
-- P5-2172 change designer links
|
||||
|
||||
UPDATE designers SET path = getSafeXMLPath(name);
|
||||
@@ -0,0 +1,16 @@
|
||||
--PW-1069 Batch 52
|
||||
|
||||
-- Delete invalid values for batch
|
||||
DELETE FROM "product-products_fields" WHERE fieldid = 36 AND (value !~ '^batch\d+$' OR value IS null);
|
||||
|
||||
-- Adding batches for a products
|
||||
INSERT INTO "product-products_fields" (productid, fieldid, value)
|
||||
SELECT productid, 36, 'batch52'
|
||||
FROM "product-products"
|
||||
WHERE visible = 1 AND browsable = 1
|
||||
AND NOT productid IN (
|
||||
SELECT productid FROM "product-products_fields"
|
||||
WHERE fieldid = 36
|
||||
)
|
||||
ORDER BY productid
|
||||
LIMIT 200;
|
||||
@@ -0,0 +1,3 @@
|
||||
-- fix width and height for diy-frame
|
||||
UPDATE "product-products_fields" SET value = '1540' where productid = 45479 and fieldid = 5;
|
||||
UPDATE "product-products_fields" SET value = '1125' where productid = 45479 and fieldid = 3;
|
||||
@@ -0,0 +1,5 @@
|
||||
ALTER TABLE designers DROP COLUMN IF EXISTS logotype;
|
||||
|
||||
ALTER TABLE designers ADD COLUMN logotype varchar;
|
||||
|
||||
UPDATE designers SET logotype = 'designers/' || designerid || '.jpg';
|
||||
@@ -0,0 +1,33 @@
|
||||
DROP TABLE IF EXISTS markets;
|
||||
|
||||
CREATE TABLE markets
|
||||
(
|
||||
id serial primary key,
|
||||
name varchar,
|
||||
locale_id integer
|
||||
);
|
||||
|
||||
GRANT ALL ON TABLE markets TO root;
|
||||
GRANT ALL ON TABLE markets TO photowall_user;
|
||||
GRANT ALL ON TABLE markets TO public;
|
||||
|
||||
ALTER TABLE markets
|
||||
ADD CONSTRAINT locale_fkey
|
||||
FOREIGN KEY (locale_id)
|
||||
REFERENCES locales (id) MATCH SIMPLE;
|
||||
|
||||
INSERT INTO markets (name, locale_id) VALUES
|
||||
('SE', 1),
|
||||
('NO', 2),
|
||||
('GB', 3),
|
||||
('DK', 4),
|
||||
('FI', 5),
|
||||
('RU', 6),
|
||||
('GLOBAL', 7),
|
||||
('DE', 8),
|
||||
('NL', 9),
|
||||
('AT', 10),
|
||||
('US', 11),
|
||||
('ES', 12),
|
||||
('FR', 13),
|
||||
('PL', 14);
|
||||
@@ -0,0 +1,16 @@
|
||||
--PW-1117 Batch 53
|
||||
|
||||
-- Delete invalid values for batch
|
||||
DELETE FROM "product-products_fields" WHERE fieldid = 36 AND (value !~ '^batch\d+$' OR value IS null);
|
||||
|
||||
-- Adding batches for a products
|
||||
INSERT INTO "product-products_fields" (productid, fieldid, value)
|
||||
SELECT productid, 36, 'batch53'
|
||||
FROM "product-products"
|
||||
WHERE visible = 1 AND browsable = 1
|
||||
AND NOT productid IN (
|
||||
SELECT productid FROM "product-products_fields"
|
||||
WHERE fieldid = 36
|
||||
)
|
||||
ORDER BY productid
|
||||
LIMIT 200;
|
||||
@@ -0,0 +1,20 @@
|
||||
-- PW-1106: add eSales locale
|
||||
|
||||
BEGIN;
|
||||
ALTER TABLE locales ADD COLUMN esales_locale VARCHAR;
|
||||
UPDATE locales SET esales_locale = 'sv_SE' WHERE value = 'sv_SE';
|
||||
UPDATE locales SET esales_locale = 'no_NO' WHERE value = 'nn_NO';
|
||||
UPDATE locales SET esales_locale = 'en_GB' WHERE value = 'en_GB';
|
||||
UPDATE locales SET esales_locale = 'da_DK' WHERE value = 'da_DK';
|
||||
UPDATE locales SET esales_locale = 'fi_FI' WHERE value = 'fi_FI';
|
||||
UPDATE locales SET esales_locale = 'ru_RU' WHERE value = 'ru_RU';
|
||||
UPDATE locales SET esales_locale = 'en_US' WHERE value = 'en_EU';
|
||||
UPDATE locales SET esales_locale = 'de_DE' WHERE value = 'de_DE';
|
||||
UPDATE locales SET esales_locale = 'de_AT' WHERE value = 'de_AT';
|
||||
UPDATE locales SET esales_locale = 'en_US' WHERE value = 'en_US';
|
||||
UPDATE locales SET esales_locale = 'es_ES' WHERE value = 'es_ES';
|
||||
UPDATE locales SET esales_locale = 'fr_FR' WHERE value = 'fr_FR';
|
||||
UPDATE locales SET esales_locale = 'pl_PL' WHERE value = 'pl_PL';
|
||||
UPDATE locales SET esales_locale = 'nl_NL' WHERE value = 'nl_NL';
|
||||
ALTER TABLE locales ALTER COLUMN esales_locale SET NOT NULL;
|
||||
COMMIT;
|
||||
@@ -0,0 +1,19 @@
|
||||
DROP TABLE IF EXISTS redirects;
|
||||
|
||||
CREATE TABLE redirects
|
||||
(
|
||||
id SERIAL PRIMARY KEY,
|
||||
market_id INTEGER NOT NULL,
|
||||
source_uri VARCHAR NOT NULL,
|
||||
target_uri VARCHAR NOT NULL,
|
||||
UNIQUE (market_id, source_uri)
|
||||
);
|
||||
|
||||
GRANT ALL ON TABLE redirects TO root;
|
||||
GRANT ALL ON TABLE redirects TO photowall_user;
|
||||
GRANT ALL ON TABLE redirects TO public;
|
||||
|
||||
ALTER TABLE redirects
|
||||
ADD CONSTRAINT market_fkey
|
||||
FOREIGN KEY (market_id)
|
||||
REFERENCES markets(id) MATCH SIMPLE;
|
||||
@@ -0,0 +1,3 @@
|
||||
-- PW-1311: set pricepremium to 0 on all contract_customers
|
||||
|
||||
UPDATE contract_customers SET pricepremium = 0;
|
||||
@@ -0,0 +1 @@
|
||||
DROP TABLE IF EXISTS newsletteremails;
|
||||
@@ -0,0 +1,66 @@
|
||||
DROP TABLE IF EXISTS states;
|
||||
|
||||
CREATE TABLE states
|
||||
(
|
||||
id SERIAL PRIMARY KEY,
|
||||
name VARCHAR,
|
||||
code VARCHAR,
|
||||
UNIQUE(code)
|
||||
);
|
||||
|
||||
GRANT ALL ON TABLE states TO root;
|
||||
GRANT ALL ON TABLE states TO photowall_user;
|
||||
GRANT ALL ON TABLE states TO public;
|
||||
|
||||
INSERT INTO states (name, code) VALUES
|
||||
('Alabama', 'AL'),
|
||||
('Alaska', 'AK'),
|
||||
('Arizona', 'AZ'),
|
||||
('Arkansas', 'AR'),
|
||||
('California', 'CA'),
|
||||
('Colorado', 'CO'),
|
||||
('Connecticut', 'CT'),
|
||||
('D.C', 'DC'),
|
||||
('Delaware', 'DE'),
|
||||
('Florida', 'FL'),
|
||||
('Georgia', 'GA'),
|
||||
('Hawaii', 'HI'),
|
||||
('Idaho', 'ID'),
|
||||
('Illinois', 'IL'),
|
||||
('Indiana', 'IN'),
|
||||
('Iowa', 'IA'),
|
||||
('Kansas', 'KS'),
|
||||
('Kentucky', 'KY'),
|
||||
('Louisiana', 'LA'),
|
||||
('Maine', 'ME'),
|
||||
('Maryland', 'MD'),
|
||||
('Massachusetts', 'MA'),
|
||||
('Michigan', 'MI'),
|
||||
('Minnesota', 'MN'),
|
||||
('Mississippi', 'MS'),
|
||||
('Missouri', 'MO'),
|
||||
('Montana', 'MT'),
|
||||
('Nebraska', 'NE'),
|
||||
('Nevada', 'NV'),
|
||||
('New Hampshire', 'NH'),
|
||||
('New Jersey', 'NJ'),
|
||||
('New Mexico', 'NM'),
|
||||
('New York', 'NY'),
|
||||
('North Carolina', 'NC'),
|
||||
('North Dakota', 'ND'),
|
||||
('Ohio', 'OH'),
|
||||
('Oklahoma', 'OK'),
|
||||
('Oregon', 'OR'),
|
||||
('Pennsylvania', 'PA'),
|
||||
('Rhode Island', 'RI'),
|
||||
('South Carolina', 'SC'),
|
||||
('South Dakota', 'SD'),
|
||||
('Tennessee', 'TN'),
|
||||
('Texas', 'TX'),
|
||||
('Utah', 'UT'),
|
||||
('Vermont', 'VT'),
|
||||
('Virginia', 'VA'),
|
||||
('Washington', 'WA'),
|
||||
('West Virginia', 'WV'),
|
||||
('Wisconsin', 'WI'),
|
||||
('Wyoming', 'WY');
|
||||
@@ -0,0 +1,4 @@
|
||||
-- PW-1306 add state to contract customers
|
||||
|
||||
ALTER TABLE contract_customers ADD COLUMN state VARCHAR;
|
||||
ALTER TABLE contract_customers ADD COLUMN "delivery-state" VARCHAR;
|
||||
@@ -0,0 +1,31 @@
|
||||
-- PW-1312: add table for addresses
|
||||
|
||||
DROP TABLE IF EXISTS addresses;
|
||||
|
||||
CREATE TABLE addresses (
|
||||
id SERIAL PRIMARY KEY,
|
||||
address1 VARCHAR,
|
||||
name VARCHAR,
|
||||
company_name VARCHAR,
|
||||
country_code VARCHAR,
|
||||
city VARCHAR,
|
||||
zipcode VARCHAR,
|
||||
state_code VARCHAR,
|
||||
co VARCHAR,
|
||||
house_number VARCHAR,
|
||||
house_extension VARCHAR
|
||||
);
|
||||
|
||||
GRANT ALL ON TABLE addresses TO root;
|
||||
GRANT ALL ON TABLE addresses TO photowall_user;
|
||||
GRANT ALL ON TABLE addresses TO public;
|
||||
|
||||
ALTER TABLE addresses
|
||||
ADD CONSTRAINT country_code_fkey
|
||||
FOREIGN KEY (country_code)
|
||||
REFERENCES "i18n-territories"(iso2char) MATCH SIMPLE;
|
||||
|
||||
ALTER TABLE addresses
|
||||
ADD CONSTRAINT state_code_fkey
|
||||
FOREIGN KEY (state_code)
|
||||
REFERENCES states(code) MATCH SIMPLE;
|
||||
@@ -0,0 +1,25 @@
|
||||
-- P5-2963 create new table for samples
|
||||
|
||||
DROP TABLE IF EXISTS samples;
|
||||
|
||||
CREATE TABLE samples
|
||||
(
|
||||
id SERIAL PRIMARY KEY,
|
||||
artno VARCHAR,
|
||||
material_id INTEGER,
|
||||
address_id INTEGER
|
||||
);
|
||||
|
||||
GRANT ALL ON TABLE samples TO root;
|
||||
GRANT ALL ON TABLE samples TO photowall_user;
|
||||
GRANT ALL ON TABLE samples TO public;
|
||||
|
||||
ALTER TABLE samples
|
||||
ADD CONSTRAINT material_fkey
|
||||
FOREIGN KEY (material_id)
|
||||
REFERENCES "product-materials"(materialid) MATCH SIMPLE;
|
||||
|
||||
ALTER TABLE samples
|
||||
ADD CONSTRAINT address_fkey
|
||||
FOREIGN KEY (address_id)
|
||||
REFERENCES addresses(id) MATCH SIMPLE;
|
||||
@@ -0,0 +1,9 @@
|
||||
-- P5-3009 fix permissions on sequences
|
||||
|
||||
GRANT ALL ON SEQUENCE addresses_id_seq TO public;
|
||||
GRANT ALL ON SEQUENCE addresses_id_seq TO root;
|
||||
GRANT ALL ON SEQUENCE addresses_id_seq TO photowall_user;
|
||||
|
||||
GRANT ALL ON SEQUENCE samples_id_seq TO public;
|
||||
GRANT ALL ON SEQUENCE samples_id_seq TO root;
|
||||
GRANT ALL ON SEQUENCE samples_id_seq TO photowall_user;
|
||||
@@ -0,0 +1,3 @@
|
||||
-- P5-3065 update VAT in spain
|
||||
|
||||
UPDATE "i18n-territories" SET vat = 1.21 WHERE iso2char = 'ES';
|
||||
@@ -0,0 +1,4 @@
|
||||
-- P5-2903 add poster product group
|
||||
|
||||
INSERT INTO "product-groups" ("group") VALUES ('poster');
|
||||
INSERT INTO "product-materials" ("material") VALUES ('premium-poster');
|
||||
@@ -0,0 +1,10 @@
|
||||
ALTER TABLE samples
|
||||
ADD COLUMN quantity INTEGER,
|
||||
ADD COLUMN date_processed timestamp with time zone,
|
||||
ADD COLUMN status VARCHAR;
|
||||
|
||||
UPDATE samples SET quantity = 1, status = 'processed', date_processed = NOW();
|
||||
|
||||
ALTER TABLE samples
|
||||
ALTER COLUMN quantity SET NOT NULL,
|
||||
ALTER COLUMN status SET NOT NULL;
|
||||
@@ -0,0 +1,13 @@
|
||||
-- P5-3083 fix permissions on sequences
|
||||
|
||||
GRANT ALL ON SEQUENCE markets_id_seq TO public;
|
||||
GRANT ALL ON SEQUENCE markets_id_seq TO root;
|
||||
GRANT ALL ON SEQUENCE markets_id_seq TO photowall_user;
|
||||
|
||||
GRANT ALL ON SEQUENCE redirects_id_seq TO public;
|
||||
GRANT ALL ON SEQUENCE redirects_id_seq TO root;
|
||||
GRANT ALL ON SEQUENCE redirects_id_seq TO photowall_user;
|
||||
|
||||
GRANT ALL ON SEQUENCE states_id_seq TO public;
|
||||
GRANT ALL ON SEQUENCE states_id_seq TO root;
|
||||
GRANT ALL ON SEQUENCE states_id_seq TO photowall_user;
|
||||
@@ -0,0 +1 @@
|
||||
INSERT INTO "order-fields" (name) VALUES ('delivery-houseExtension');
|
||||
@@ -0,0 +1,3 @@
|
||||
-- P5-3133 update VAT in poland
|
||||
|
||||
UPDATE "i18n-territories" SET vat = 1.23 WHERE iso2char = 'PL';
|
||||
@@ -0,0 +1 @@
|
||||
DROP TABLE config;
|
||||
@@ -0,0 +1 @@
|
||||
INSERT INTO "delivery-methods" (id, name) VALUES (11, 'samplesDelivery');
|
||||
@@ -0,0 +1,4 @@
|
||||
--P5-3185 fix invalid price for the samples delivery method
|
||||
|
||||
INSERT INTO "delivery-methods_prices" (method, option, option_value, currency, price, territory)
|
||||
SELECT 11, '', '', currency, 0, territory FROM "delivery-methods_prices" WHERE method = 3;
|
||||
@@ -0,0 +1,2 @@
|
||||
DROP TABLE synonyms;
|
||||
DROP TABLE words;
|
||||
@@ -0,0 +1,4 @@
|
||||
--P5-3215 Add missing price for samplesDelivery in US.
|
||||
|
||||
INSERT INTO "delivery-methods_prices" (method, option, option_value, currency, price, territory) VALUES
|
||||
(11, '', '', 'USD', 0, 'US');
|
||||
@@ -0,0 +1,10 @@
|
||||
-- P5-3275 Change owner of materialized views to photowall
|
||||
|
||||
ALTER MATERIALIZED VIEW v_categorytree OWNER TO photowall;
|
||||
ALTER MATERIALIZED VIEW v_esales_category_count OWNER TO photowall;
|
||||
ALTER MATERIALIZED VIEW v_esales_categorytree_i18n OWNER TO photowall;
|
||||
ALTER MATERIALIZED VIEW v_esales_interiors OWNER TO photowall;
|
||||
ALTER MATERIALIZED VIEW v_esales_listprice OWNER TO photowall;
|
||||
ALTER MATERIALIZED VIEW v_esales_printproduct OWNER TO photowall;
|
||||
ALTER MATERIALIZED VIEW v_esales_product OWNER TO photowall;
|
||||
ALTER MATERIALIZED VIEW v_sales_report OWNER TO photowall;
|
||||
@@ -0,0 +1,10 @@
|
||||
-- P5-3324 Add room 04 interior images
|
||||
|
||||
INSERT INTO rooms (id, name) VALUES
|
||||
(17, 'room04_painting_landscape'),
|
||||
(18, 'room04_painting_square'),
|
||||
(19, 'room04_painting_standing'),
|
||||
(20, 'room04_wallpaper_landscape'),
|
||||
(21, 'room04_wallpaper_square'),
|
||||
(22, 'room04_wallpaper_standing');
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
-- PW-1515 create orderlog tables
|
||||
|
||||
DROP TABLE IF EXISTS orderlogs;
|
||||
|
||||
CREATE TABLE orderlogs (
|
||||
id SERIAL PRIMARY KEY,
|
||||
created TIMESTAMP WITH TIME ZONE NOT NULL
|
||||
);
|
||||
|
||||
DROP TABLE IF EXISTS orderlog_entries;
|
||||
|
||||
CREATE TABLE orderlog_entries (
|
||||
uuid UUID NOT NULL,
|
||||
orderlog_id INTEGER NOT NULL,
|
||||
created TIMESTAMP WITH TIME ZONE NOT NULL,
|
||||
level INTEGER NOT NULL,
|
||||
message VARCHAR NOT NULL,
|
||||
context JSONB NOT NULL
|
||||
) PARTITION BY RANGE (created);
|
||||
|
||||
CREATE TABLE orderlog_entries_2016 PARTITION OF orderlog_entries FOR VALUES FROM ('2016-01-01') TO ('2017-01-01');
|
||||
CREATE TABLE orderlog_entries_2017 PARTITION OF orderlog_entries FOR VALUES FROM ('2017-01-01') TO ('2018-01-01');
|
||||
CREATE TABLE orderlog_entries_2018 PARTITION OF orderlog_entries FOR VALUES FROM ('2018-01-01') TO ('2019-01-01');
|
||||
CREATE TABLE orderlog_entries_2019 PARTITION OF orderlog_entries FOR VALUES FROM ('2019-01-01') TO ('2020-01-01');
|
||||
|
||||
CREATE INDEX ON orderlog_entries_2016 (orderlog_id, created);
|
||||
CREATE INDEX ON orderlog_entries_2017 (orderlog_id, created);
|
||||
CREATE INDEX ON orderlog_entries_2018 (orderlog_id, created);
|
||||
CREATE INDEX ON orderlog_entries_2019 (orderlog_id, created);
|
||||
|
||||
-- New order field for orderlog_id
|
||||
INSERT INTO "order-fields" (name) VALUES ('orderlog_id');
|
||||
@@ -0,0 +1,15 @@
|
||||
-- P5-3327 Add room 05 and 06 interior images
|
||||
|
||||
INSERT INTO rooms (id, name) VALUES
|
||||
(23, 'room05_painting_landscape'),
|
||||
(24, 'room05_painting_square'),
|
||||
(25, 'room05_painting_standing'),
|
||||
(26, 'room05_wallpaper_landscape'),
|
||||
(27, 'room05_wallpaper_square'),
|
||||
(28, 'room05_wallpaper_standing'),
|
||||
(29, 'room06_painting_landscape'),
|
||||
(30, 'room06_painting_square'),
|
||||
(31, 'room06_painting_standing'),
|
||||
(32, 'room06_wallpaper_landscape'),
|
||||
(33, 'room06_wallpaper_square'),
|
||||
(34, 'room06_wallpaper_standing');
|
||||
@@ -0,0 +1,42 @@
|
||||
-- P5-3383
|
||||
|
||||
INSERT INTO redirects (market_id, source_uri, target_uri) VALUES
|
||||
(1, 'fototapet/alla', 'fototapet'),
|
||||
(1, 'tapeter/alla', 'tapeter'),
|
||||
(1, 'canvastavlor/alla', 'canvastavlor'),
|
||||
(2, 'fototapet/alle', 'fototapet'),
|
||||
(2, 'tapet/alle', 'tapet'),
|
||||
(2, 'lerretsbilder/alle', 'lerretsbilder'),
|
||||
(3, 'wall-murals/all', 'wall-murals'),
|
||||
(3, 'wallpaper/all', 'wallpaper'),
|
||||
(3, 'canvas-prints/all', 'canvas-prints'),
|
||||
(4, 'fototapet/alle', 'fototapet'),
|
||||
(4, 'tapet/alle', 'tapet'),
|
||||
(4, 'billeder-pa-laerred/alle', 'billeder-pa-laerred'),
|
||||
(5, 'valokuvatapetti/kaikki', 'valokuvatapetti'),
|
||||
(5, 'tapetit/kaikki', 'tapetit'),
|
||||
(5, 'canvastaulu/kaikki', 'canvastaulu'),
|
||||
(7, 'wall-murals/all', 'wall-murals'),
|
||||
(7, 'wallpaper/all', 'wallpaper'),
|
||||
(7, 'canvas-prints/all', 'canvas-prints'),
|
||||
(8, 'fototapete/alle', 'fototapete'),
|
||||
(8, 'tapeten/alle', 'tapeten'),
|
||||
(8, 'leinwandbilder/alle', 'leinwandbilder'),
|
||||
(9, 'fotobehang/alles', 'fotobehang'),
|
||||
(9, 'behang/alles', 'behang'),
|
||||
(9, 'canvas/alles', 'canvas'),
|
||||
(10, 'fototapete/alle', 'fototapete'),
|
||||
(10, 'tapeten/alle', 'tapeten'),
|
||||
(10, 'leinwandbilder/alle', 'leinwandbilder'),
|
||||
(11, 'wall-murals/all', 'wall-murals'),
|
||||
(11, 'wallpaper/all', 'wallpaper'),
|
||||
(11, 'canvas-prints/all', 'canvas-prints'),
|
||||
(12, 'fotomurales/todo', 'fotomurales'),
|
||||
(12, 'papel-pintado/todo', 'papel-pintado'),
|
||||
(12, 'lienzos/todo', 'lienzos'),
|
||||
(13, 'decorations-murales/tout', 'decorations-murales'),
|
||||
(13, 'papiers-peints/tout', 'papiers-peints'),
|
||||
(13, 'impressions-sur-toile/tout', 'impressions-sur-toile'),
|
||||
(14, 'fototapety/wszystkie', 'fototapety'),
|
||||
(14, 'tapety/wszystkie', 'tapety'),
|
||||
(14, 'obrazy-na-plotnie/wszystkie', 'obrazy-na-plotnie')
|
||||
@@ -0,0 +1,5 @@
|
||||
-- P5-3499 add bring delivery methods to happywalldk
|
||||
|
||||
INSERT INTO "delivery-methods_prices" (method, option, option_value, currency, price, territory) VALUES
|
||||
(8, '', '', 'SEK', 0, 'DK'),
|
||||
(9, '', '', 'SEK', 0, 'DK')
|
||||
@@ -0,0 +1,5 @@
|
||||
-- P5-3523 add poster blacklisting to all products that have (wallpaper, photo-wallpaper, canvas) blacklisting
|
||||
|
||||
INSERT INTO product_blacklist (product_id, language_id, territory_id, group_id)
|
||||
SELECT product_id, language_id, territory_id, 7 FROM product_blacklist
|
||||
GROUP BY product_id, language_id, territory_id HAVING count(1) = 3;
|
||||
@@ -0,0 +1,15 @@
|
||||
-- P5-3463 add support for poster category texts
|
||||
|
||||
INSERT INTO categorydatakeys (name) VALUES
|
||||
('poster_pagetitle'),
|
||||
('poster_metadesc');
|
||||
|
||||
|
||||
ALTER TABLE category_texts
|
||||
ADD COLUMN poster_name VARCHAR(250),
|
||||
ADD COLUMN poster_h1 VARCHAR(250),
|
||||
ADD COLUMN poster_description TEXT;
|
||||
|
||||
|
||||
-- populate with values from canvas
|
||||
UPDATE category_texts SET poster_name = canvas_name, poster_h1 = canvas_h1, poster_description = '';
|
||||
@@ -0,0 +1,4 @@
|
||||
-- P5-3537 remove curator role
|
||||
|
||||
DELETE FROM u_role_user WHERE role_id = (SELECT id FROM u_roles WHERE name = 'curator');
|
||||
DELETE FROM u_roles WHERE name = 'curator';
|
||||
@@ -0,0 +1,8 @@
|
||||
-- P5-3536 remove agencies
|
||||
|
||||
DROP TABLE agencies;
|
||||
|
||||
ALTER TABLE designers DROP COLUMN agency_id;
|
||||
|
||||
DELETE FROM u_role_user WHERE role_id = (SELECT id FROM u_roles WHERE name = 'agency');
|
||||
DELETE FROM u_roles WHERE name = 'agency';
|
||||
@@ -0,0 +1,4 @@
|
||||
-- P5-3416 remove designer payouts
|
||||
|
||||
DROP TABLE designers_resets;
|
||||
DROP TABLE designers_payouts;
|
||||
@@ -0,0 +1,3 @@
|
||||
-- PW-1563 remove inspiration images
|
||||
|
||||
DROP TABLE "product-printimages";
|
||||
@@ -0,0 +1,4 @@
|
||||
-- P5-3600: delete spam inquiries
|
||||
|
||||
DELETE FROM inquiries WHERE email = 'test@858585.com';
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
-- P5-3441 add automatic payouts column to designers
|
||||
|
||||
ALTER TABLE designers
|
||||
ADD COLUMN automatic_payout INTEGER DEFAULT 0;
|
||||
|
||||
UPDATE designers SET automatic_payout = 0;
|
||||
|
||||
ALTER TABLE designers
|
||||
ALTER COLUMN automatic_payout SET NOT NULL;
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
-- P5-3678 delete state from non-US orders
|
||||
DELETE FROM "order-orders_fields"
|
||||
WHERE fieldid = 235 AND orderid IN (
|
||||
SELECT orders.orderid FROM "order-orders" orders
|
||||
JOIN "order-orders_fields" countryCode ON countryCode.fieldid = 151 AND countryCode.orderid = orders.orderid
|
||||
WHERE countryCode.value != 'US'
|
||||
);
|
||||
@@ -0,0 +1,7 @@
|
||||
-- P5-3746 add posters product-printprices
|
||||
|
||||
INSERT INTO "product-printprices" (groupid, collectionid, materialid, price) VALUES
|
||||
(7, 1, 5, 1),
|
||||
(7, 2, 5, 1),
|
||||
(7, 3, 5, 1),
|
||||
(7, 4, 5, 1);
|
||||
@@ -0,0 +1,37 @@
|
||||
-- P5-3686 Create analytics order view
|
||||
|
||||
CREATE VIEW v_analytics_orders 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,
|
||||
orders.inserted AS date,
|
||||
COALESCE(confirmed.value::boolean, false) AS confirmed,
|
||||
COALESCE(paid.value::boolean, false) AS paid,
|
||||
COALESCE(delivered.value::boolean, false) AS delivered,
|
||||
orders.orderid,
|
||||
md5(firstname.value||'secret') AS first_name,
|
||||
md5(lastname.value||'secret') AS last_name,
|
||||
md5(company.value||'secret') AS company,
|
||||
md5(address.value||'secret') AS address,
|
||||
zipcode.value AS postal_code,
|
||||
city.value AS city,
|
||||
country_code.value AS country,
|
||||
md5(email.value||'secret') AS email
|
||||
from
|
||||
"order-orders" orders
|
||||
left join "order-orders_fields" confirmed on orders.orderid = confirmed.orderid AND confirmed.fieldid = 175
|
||||
left join "order-orders_fields" delivered on orders.orderid = delivered.orderid AND delivered.fieldid = 176
|
||||
left join "order-orders_fields" paid on orders.orderid = paid.orderid AND paid.fieldid = 168
|
||||
left join "order-orders_fields" firstname on orders.orderid = firstname.orderid AND firstname.fieldid = 156
|
||||
left join "order-orders_fields" lastname on orders.orderid = lastname.orderid AND lastname.fieldid = 157
|
||||
left join "order-orders_fields" company on orders.orderid = company.orderid AND company.fieldid = 177
|
||||
left join "order-orders_fields" address on orders.orderid = address.orderid AND address.fieldid = 158
|
||||
left join "order-orders_fields" zipcode on orders.orderid = zipcode.orderid AND zipcode.fieldid = 159
|
||||
left join "order-orders_fields" city on orders.orderid = city.orderid AND city.fieldid = 160
|
||||
left join "order-orders_fields" country_code on orders.orderid = country_code.orderid AND country_code.fieldid = 151
|
||||
left join "order-orders_fields" email on orders.orderid = email.orderid AND email.fieldid = 184
|
||||
;
|
||||
@@ -0,0 +1,6 @@
|
||||
-- P5-3688 Create new user for datastudio
|
||||
|
||||
CREATE USER datastudio WITH PASSWORD 'secret';
|
||||
GRANT SELECT ON v_analytics_orders TO datastudio;
|
||||
GRANT USAGE ON SCHEMA public TO datastudio;
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
-- P5-3689 Add room 07-12 interior images
|
||||
|
||||
INSERT INTO rooms (id, name) VALUES
|
||||
(35, 'room07_painting_landscape'),
|
||||
(36, 'room07_painting_square'),
|
||||
(37, 'room07_painting_standing'),
|
||||
(38, 'room07_wallpaper_landscape'),
|
||||
(39, 'room07_wallpaper_square'),
|
||||
(40, 'room07_wallpaper_standing'),
|
||||
(41, 'room08_wallpaper_landscape'),
|
||||
(42, 'room08_wallpaper_square'),
|
||||
(43, 'room08_wallpaper_standing'),
|
||||
(44, 'room09_painting_landscape'),
|
||||
(45, 'room09_painting_square'),
|
||||
(46, 'room09_painting_standing'),
|
||||
(47, 'room09_wallpaper_landscape'),
|
||||
(48, 'room09_wallpaper_square'),
|
||||
(49, 'room10_wallpaper_landscape'),
|
||||
(50, 'room11_painting_landscape'),
|
||||
(51, 'room11_painting_standing'),
|
||||
(52, 'room11_wallpaper_landscape'),
|
||||
(53, 'room11_wallpaper_square'),
|
||||
(54, 'room11_wallpaper_standing'),
|
||||
(55, 'room12_wallpaper_landscape'),
|
||||
(56, 'room12_wallpaper_square'),
|
||||
(57, 'room12_wallpaper_standing');
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user