i
This commit is contained in:
@@ -82,11 +82,19 @@ FROM article
|
||||
WHERE sku = @sku AND (@companyId IS NULL OR company_id = @companyId)
|
||||
`;
|
||||
|
||||
/** True if an EAN is already assigned to any article (duplicate guard). */
|
||||
/** True if an EAN is already assigned to any article in the company (duplicate guard). */
|
||||
export const EAN_EXISTS = `
|
||||
SELECT TOP 1 1 AS used
|
||||
FROM articleean
|
||||
WHERE ean = @ean
|
||||
FROM articleean ae
|
||||
INNER JOIN article a ON a.id = ae.article_id
|
||||
WHERE ae.ean = @ean AND (@companyId IS NULL OR a.company_id = @companyId)
|
||||
`;
|
||||
|
||||
export const EAN_EXISTS_FOR_OTHER_ARTICLE = `
|
||||
SELECT TOP 1 1 AS used
|
||||
FROM articleean ae
|
||||
INNER JOIN article a ON a.id = ae.article_id
|
||||
WHERE ae.ean = @ean AND a.company_id = @companyId AND a.id <> @articleId
|
||||
`;
|
||||
|
||||
/** Link an article to its parent article and mark the parent. */
|
||||
|
||||
@@ -9,7 +9,7 @@ VALUES (
|
||||
`;
|
||||
|
||||
export const GET_CATEGORY_ID_BY_HASH = `
|
||||
SELECT TOP 1 categoryId
|
||||
SELECT categoryId
|
||||
FROM (
|
||||
SELECT ca.category_id AS categoryId
|
||||
FROM pic p
|
||||
@@ -19,6 +19,15 @@ FROM (
|
||||
|
||||
UNION
|
||||
|
||||
SELECT c.root_category_id AS categoryId
|
||||
FROM pic p
|
||||
INNER JOIN articlepic ap ON ap.pic_id = p.id
|
||||
INNER JOIN article a ON a.id = ap.article_id
|
||||
INNER JOIN company c ON c.id = a.company_id
|
||||
WHERE p.hash = @hash
|
||||
|
||||
UNION
|
||||
|
||||
SELECT cp.category_id AS categoryId
|
||||
FROM pic p
|
||||
INNER JOIN categorypic cp ON cp.pic_id = p.id
|
||||
@@ -33,6 +42,7 @@ FROM (
|
||||
INNER JOIN company c ON c.id = b.company_id
|
||||
WHERE p.hash = @hash
|
||||
) AS combined
|
||||
WHERE categoryId IS NOT NULL
|
||||
`;
|
||||
|
||||
export const GET_FULL_BY_HASH = `
|
||||
|
||||
@@ -418,11 +418,13 @@ BEGIN
|
||||
article_id INT NOT NULL,
|
||||
ean NVARCHAR(50) NOT NULL,
|
||||
CONSTRAINT FK_articleean_article FOREIGN KEY (article_id) REFERENCES article(id) ON DELETE CASCADE,
|
||||
CONSTRAINT UQ_articleean_ean UNIQUE (ean)
|
||||
CONSTRAINT UQ_articleean_article_ean UNIQUE (article_id, ean)
|
||||
);
|
||||
-- Hot path: getBySku EANs by article (UQ is ean-leading only)
|
||||
-- Hot path: getBySku EANs by article
|
||||
CREATE INDEX IX_articleean_article_ean
|
||||
ON articleean (article_id, ean);
|
||||
CREATE INDEX IX_articleean_ean
|
||||
ON articleean (ean);
|
||||
END
|
||||
`;
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import { translateQueries } from './translate.js';
|
||||
const queries = translateQueries(source, 'article');
|
||||
export const {
|
||||
ADD_CATEGORY, ADD_EAN, ARTICLE_LIST_COLUMNS, CREATE, CREATE_CHILD,
|
||||
DELETE_CATEGORIES_BY_ARTICLE, DELETE_EANS_BY_ARTICLE, EAN_EXISTS,
|
||||
DELETE_CATEGORIES_BY_ARTICLE, DELETE_EANS_BY_ARTICLE, EAN_EXISTS, EAN_EXISTS_FOR_OTHER_ARTICLE,
|
||||
GET_BRAND_BY_COMPANY_AND_ID,
|
||||
GET_CATEGORY_ID_BY_SKU, GET_CATEGORY_TREE_FLAT, GET_ID_BY_SKU,
|
||||
LIST_CHILDREN_BY_PARENT_ID,
|
||||
|
||||
@@ -246,11 +246,13 @@ export const INIT_ARTICLEEAN = `
|
||||
CREATE TABLE IF NOT EXISTS articleean (
|
||||
id INTEGER PRIMARY KEY,
|
||||
article_id INTEGER NOT NULL,
|
||||
ean TEXT NOT NULL UNIQUE,
|
||||
ean TEXT NOT NULL,
|
||||
FOREIGN KEY (article_id) REFERENCES article(id) ON DELETE CASCADE
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS IX_articleean_article_ean
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS UQ_articleean_article_ean
|
||||
ON articleean(article_id, ean);
|
||||
CREATE INDEX IF NOT EXISTS IX_articleean_ean
|
||||
ON articleean(ean);
|
||||
`;
|
||||
|
||||
export const INIT_ARTICLEPIC = `
|
||||
|
||||
Reference in New Issue
Block a user