u
This commit is contained in:
@@ -28,27 +28,23 @@ LEFT JOIN article father ON father.id = a.fatherarticle_id
|
||||
`;
|
||||
|
||||
export const RESOLVE_ARTICLE_ACCESS_BY_SKU = `
|
||||
WITH RECURSIVE article_cat AS (
|
||||
SELECT a.id AS articleId, ca.category_id AS categoryId
|
||||
FROM article a INNER JOIN categoryarticle ca ON ca.article_id = a.id
|
||||
WHERE a.sku = @sku LIMIT 1
|
||||
), ancestors AS (
|
||||
SELECT c.id, c.parent_id FROM category c
|
||||
INNER JOIN article_cat ac ON c.id = ac.categoryId
|
||||
UNION ALL
|
||||
SELECT c.id, c.parent_id FROM category c
|
||||
INNER JOIN ancestors a ON c.id = a.parent_id
|
||||
), root AS (
|
||||
SELECT id AS rootCategoryId FROM ancestors WHERE parent_id IS NULL LIMIT 1
|
||||
)
|
||||
SELECT ac.articleId, ac.categoryId, r.rootCategoryId,
|
||||
co.id AS companyId, co.default_language_id AS languageId,
|
||||
co.poscustomergroup_id AS posCustomerGroupId, cu.id AS companyuserId
|
||||
FROM article_cat ac
|
||||
LEFT JOIN root r ON 1 = 1
|
||||
LEFT JOIN company co ON co.root_category_id = r.rootCategoryId
|
||||
LEFT JOIN companyuser cu
|
||||
ON cu.company_id = co.id AND cu.google_auth_id = @googleAuthId
|
||||
SELECT
|
||||
a.id AS articleId,
|
||||
ca.category_id AS categoryId,
|
||||
co.root_category_id AS rootCategoryId,
|
||||
co.id AS companyId,
|
||||
co.default_language_id AS languageId,
|
||||
co.poscustomergroup_id AS posCustomerGroupId,
|
||||
cu.id AS companyuserId
|
||||
FROM article a
|
||||
INNER JOIN company co ON co.id = a.company_id
|
||||
INNER JOIN google_auth ga ON ga.id = @googleAuthId
|
||||
INNER JOIN companyuser cu
|
||||
ON cu.company_id = a.company_id AND cu.google_auth_id = @googleAuthId
|
||||
LEFT JOIN categoryarticle ca ON ca.article_id = a.id
|
||||
WHERE a.sku = @sku
|
||||
AND (ga.selected_company IS NULL OR a.company_id = ga.selected_company)
|
||||
LIMIT 1
|
||||
`;
|
||||
|
||||
const JSON_EANS = `(SELECT COALESCE(json_group_array(json_object('ean', ean)), '[]')
|
||||
@@ -103,27 +99,19 @@ ORDER BY a.id
|
||||
`;
|
||||
|
||||
export const GET_ARTICLE_BY_SKU_FULL = `
|
||||
WITH RECURSIVE article_cat AS (
|
||||
SELECT a.id AS articleId, ca.category_id AS categoryId
|
||||
FROM article a INNER JOIN categoryarticle ca ON ca.article_id = a.id
|
||||
WHERE a.sku = @sku LIMIT 1
|
||||
), ancestors AS (
|
||||
SELECT c.id, c.parent_id FROM category c
|
||||
INNER JOIN article_cat ac ON c.id = ac.categoryId
|
||||
UNION ALL
|
||||
SELECT c.id, c.parent_id FROM category c
|
||||
INNER JOIN ancestors a ON c.id = a.parent_id
|
||||
), root AS (
|
||||
SELECT id AS rootCategoryId FROM ancestors WHERE parent_id IS NULL LIMIT 1
|
||||
), auth AS (
|
||||
SELECT ac.articleId, ac.categoryId, r.rootCategoryId,
|
||||
WITH auth AS (
|
||||
SELECT a.id AS articleId, ca.category_id AS categoryId, co.root_category_id AS rootCategoryId,
|
||||
co.id AS companyId, co.default_language_id AS languageId,
|
||||
co.poscustomergroup_id AS posCustomerGroupId, cu.id AS companyuserId
|
||||
FROM article_cat ac
|
||||
LEFT JOIN root r ON 1 = 1
|
||||
LEFT JOIN company co ON co.root_category_id = r.rootCategoryId
|
||||
LEFT JOIN companyuser cu
|
||||
ON cu.company_id = co.id AND cu.google_auth_id = @googleAuthId
|
||||
FROM article a
|
||||
INNER JOIN company co ON co.id = a.company_id
|
||||
INNER JOIN google_auth ga ON ga.id = @googleAuthId
|
||||
INNER JOIN companyuser cu
|
||||
ON cu.company_id = a.company_id AND cu.google_auth_id = @googleAuthId
|
||||
LEFT JOIN categoryarticle ca ON ca.article_id = a.id
|
||||
WHERE a.sku = @sku
|
||||
AND (ga.selected_company IS NULL OR a.company_id = ga.selected_company)
|
||||
LIMIT 1
|
||||
)
|
||||
SELECT auth.*,
|
||||
json_object(
|
||||
|
||||
@@ -26,7 +26,7 @@ export const GET_DETAIL_BY_SKU = `
|
||||
SELECT ${ARTICLE_DETAIL_COLUMNS}
|
||||
FROM article a
|
||||
${DETAIL_JOINS}
|
||||
WHERE a.sku = @sku
|
||||
WHERE a.sku = @sku AND (@companyId IS NULL OR a.company_id = @companyId)
|
||||
`;
|
||||
|
||||
export const GET_DETAIL_BY_ARTICLE_ID = `
|
||||
|
||||
@@ -211,7 +211,8 @@ CREATE TABLE IF NOT EXISTS brand (
|
||||
export const INIT_ARTICLE = `
|
||||
CREATE TABLE IF NOT EXISTS article (
|
||||
id INTEGER PRIMARY KEY,
|
||||
sku TEXT COLLATE NOCASE UNIQUE,
|
||||
company_id INTEGER NOT NULL,
|
||||
sku TEXT COLLATE NOCASE,
|
||||
unit_id INTEGER NOT NULL,
|
||||
unitamount REAL NOT NULL,
|
||||
weight REAL NOT NULL,
|
||||
@@ -223,6 +224,8 @@ CREATE TABLE IF NOT EXISTS article (
|
||||
fathersort INTEGER NOT NULL DEFAULT 0,
|
||||
created_at TEXT NOT NULL DEFAULT (${UTC_NOW}),
|
||||
updated_at TEXT NOT NULL DEFAULT (${UTC_NOW}),
|
||||
UNIQUE (company_id, sku),
|
||||
FOREIGN KEY (company_id) REFERENCES company(id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (unit_id) REFERENCES unit(id) ON DELETE NO ACTION,
|
||||
FOREIGN KEY (brand_id) REFERENCES brand(id) ON DELETE SET NULL,
|
||||
FOREIGN KEY (articlelist_id) REFERENCES articlelist(id) ON DELETE SET NULL,
|
||||
|
||||
Reference in New Issue
Block a user