Archive old migrations (#426)

* Archive old migrations

* Fix invalid placement of migrations
This commit is contained in:
Rikard Bartholf
2024-10-17 11:19:12 +02:00
committed by GitHub
parent 763262c108
commit ddcbd0afb0
500 changed files with 0 additions and 0 deletions
+27
View File
@@ -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
);
+5
View File
@@ -0,0 +1,5 @@
ALTER TABLE category_texts
ADD COLUMN name character varying(255);
UPDATE category_texts
SET name = wallpaper_name;
+6
View File
@@ -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;
+5
View File
@@ -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;
+2
View File
@@ -0,0 +1,2 @@
ALTER TABLE "product-printimages"
ADD COLUMN inserted_date TIMESTAMP WITH TIME ZONE;
+9
View File
@@ -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;
$$
+3
View File
@@ -0,0 +1,3 @@
-- P5-397 Top image for Design wallpapers
INSERT INTO "product-groups" ("group")
VALUES ('designer-wallpaper');
+5
View File
@@ -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;
+9
View File
@@ -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;
$$
+25
View File
@@ -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
);
+7
View File
@@ -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;
+10
View File
@@ -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;
$$
+7
View File
@@ -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;
+74
View File
@@ -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);
+75
View File
@@ -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);
+245
View File
@@ -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);
+5
View File
@@ -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';
+38
View File
@@ -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');
+17
View File
@@ -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;
+45
View File
@@ -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);
+78
View File
@@ -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);
+19
View File
@@ -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;
+67
View File
@@ -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')
;
+18
View File
@@ -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
+1
View File
@@ -0,0 +1 @@
CREATE INDEX img_hash ON inquiries (img_hash);
+31
View File
@@ -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;
+63
View File
@@ -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);
+23
View File
@@ -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;
+29
View File
@@ -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';
+3
View File
@@ -0,0 +1,3 @@
UPDATE "i18n-territories"
SET vat = 1.2
WHERE iso2char = 'FR';
+262
View File
@@ -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);
+1
View File
@@ -0,0 +1 @@
ALTER TABLE trustpilot DROP COLUMN IF EXISTS reviewurl;
+86
View File
@@ -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);
+63
View File
@@ -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);
+49
View File
@@ -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);
+10
View File
@@ -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;
+6
View File
@@ -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;
+9
View File
@@ -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'
);
+5
View File
@@ -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;
+279
View File
@@ -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);
+2
View File
@@ -0,0 +1,2 @@
-- P5-1306
CREATE INDEX IF NOT EXISTS categories_name ON categories (name);
+3
View File
@@ -0,0 +1,3 @@
UPDATE inquiries
SET automated = 0
WHERE status >= 100;
+335
View File
@@ -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;
+296
View File
@@ -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);
+16
View File
@@ -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
);
+25
View File
@@ -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
;
+30
View File
@@ -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
;
+97
View File
@@ -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);
+3
View File
@@ -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";
+11
View File
@@ -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;
+10
View File
@@ -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)
);
+3
View File
@@ -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;
+10
View File
@@ -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';
+31
View File
@@ -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;
+2
View File
@@ -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');
+3
View File
@@ -0,0 +1,3 @@
-- P5-2172 change designer links
UPDATE designers SET path = getSafeXMLPath(name);
+16
View File
@@ -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;
+3
View File
@@ -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;
+5
View File
@@ -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';
+33
View File
@@ -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);
+16
View File
@@ -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;
+20
View File
@@ -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;
+19
View File
@@ -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;
+3
View File
@@ -0,0 +1,3 @@
-- PW-1311: set pricepremium to 0 on all contract_customers
UPDATE contract_customers SET pricepremium = 0;
+1
View File
@@ -0,0 +1 @@
DROP TABLE IF EXISTS newsletteremails;
+66
View File
@@ -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');
+4
View File
@@ -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;
+31
View File
@@ -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;
+25
View File
@@ -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;
+9
View File
@@ -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;
+3
View File
@@ -0,0 +1,3 @@
-- P5-3065 update VAT in spain
UPDATE "i18n-territories" SET vat = 1.21 WHERE iso2char = 'ES';
+4
View File
@@ -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');
+10
View File
@@ -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;
+13
View File
@@ -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;
+1
View File
@@ -0,0 +1 @@
INSERT INTO "order-fields" (name) VALUES ('delivery-houseExtension');
+3
View File
@@ -0,0 +1,3 @@
-- P5-3133 update VAT in poland
UPDATE "i18n-territories" SET vat = 1.23 WHERE iso2char = 'PL';
+1
View File
@@ -0,0 +1 @@
DROP TABLE config;
+1
View File
@@ -0,0 +1 @@
INSERT INTO "delivery-methods" (id, name) VALUES (11, 'samplesDelivery');
+4
View File
@@ -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;
+2
View File
@@ -0,0 +1,2 @@
DROP TABLE synonyms;
DROP TABLE words;
+4
View File
@@ -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');
+10
View File
@@ -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;
+10
View File
@@ -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');
+32
View File
@@ -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');
+15
View File
@@ -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');
+42
View File
@@ -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')
+5
View File
@@ -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')
+5
View File
@@ -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;
+15
View File
@@ -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 = '';
+4
View File
@@ -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';
+8
View File
@@ -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';
+4
View File
@@ -0,0 +1,4 @@
-- P5-3416 remove designer payouts
DROP TABLE designers_resets;
DROP TABLE designers_payouts;
+3
View File
@@ -0,0 +1,3 @@
-- PW-1563 remove inspiration images
DROP TABLE "product-printimages";
+4
View File
@@ -0,0 +1,4 @@
-- P5-3600: delete spam inquiries
DELETE FROM inquiries WHERE email = 'test@858585.com';
+10
View File
@@ -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;
+7
View File
@@ -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'
);
+7
View File
@@ -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);
+37
View File
@@ -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
;
+6
View File
@@ -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;
+26
View File
@@ -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