This commit is contained in:
seb
2026-10-23 01:38:08 +02:00
parent 5fc316461d
commit 919713fa53
7 changed files with 250 additions and 19 deletions

View File

@@ -117,7 +117,8 @@ WHERE id = @articleId
export const TOGGLE_PARENT = `
UPDATE article
SET is_parent = @isParent,
parentattributename_id = @parentAttributeNameId
parentattributename_id = @parentAttributeNameId,
updated_at = SYSUTCDATETIME()
WHERE id = @articleId
`;

View File

@@ -288,13 +288,15 @@ SELECT TOP (@limit)
) AS barcode,
a.is_parent AS isParent,
a.parentarticle_id AS parentArticleId,
a.parentsort AS parentsort,
(
SELECT TOP 1 CONCAT(fan.name, '|', av.value, '|', fan.sort, '|', a.parentsort)
FROM article fa
INNER JOIN attributename fan ON fan.id = fa.parentattributename_id
INNER JOIN articleattributevalue aav ON aav.article_id = a.id
INNER JOIN attributevalue av ON av.id = aav.attributevalue_id AND av.attribute_id = fan.id
WHERE a.parentarticle_id IS NOT NULL AND fa.id = a.parentarticle_id
SELECT TOP 1 av.value
FROM articleattributevalue aav
INNER JOIN attributevalue av ON av.id = aav.attributevalue_id
LEFT JOIN article fa ON fa.id = a.parentarticle_id
WHERE aav.article_id = a.id
AND (fa.parentattributename_id IS NULL OR av.attribute_id = fa.parentattributename_id)
ORDER BY CASE WHEN av.attribute_id = fa.parentattributename_id THEN 0 ELSE 1 END, aav.sort ASC, aav.id ASC
) AS variantName,
CASE
WHEN a.articlelist_id IS NOT NULL AND EXISTS (
@@ -502,6 +504,21 @@ LEFT JOIN tax opt_ctax ON opt_ctax.id = co.taxrate
ORDER BY ola.sort ASC, ola.id ASC
`;
export const LIST_POS_PARENT_OPTIONS = `
SELECT
fa.id AS parentArticleId,
COALESCE(fan.name, 'Variante') AS attributeName,
av.value AS variantValue
FROM article fa
INNER JOIN posterminal pt ON pt.id = @posterminalId AND pt.company_id = fa.company_id
INNER JOIN article child ON child.parentarticle_id = fa.id
LEFT JOIN attributename fan ON fan.id = fa.parentattributename_id
LEFT JOIN articleattributevalue aav ON aav.article_id = child.id
LEFT JOIN attributevalue av ON av.id = aav.attributevalue_id AND (fa.parentattributename_id IS NULL OR av.attribute_id = fa.parentattributename_id)
WHERE fa.is_parent = 1
ORDER BY fa.id ASC, child.parentsort ASC, child.id ASC
`;
export const RECORD_OBITUARY = `
INSERT INTO posterminalobituary (posterminal_id, entity_type, entity_id)
SELECT pt.id, @entityType, @entityId

View File

@@ -9,7 +9,7 @@ export const {
FIND_BY_TOKEN, COUNT_PRODUCTS, COUNT_CATEGORIES, COUNT_CUSTOMERS,
COUNT_CUSTOMER_GROUPS, COUNT_COMPOSITE_PRODUCTS, MAX_ORDER_ID,
LIST_POS_PRODUCT_CATEGORIES, LIST_POS_CUSTOMER_GROUP_IDS, LIST_POS_PRODUCT_PRICES,
LIST_POS_MANDATED_OPTIONS,
LIST_POS_MANDATED_OPTIONS, LIST_POS_PARENT_OPTIONS,
TOUCH_LASTSEEN, RECORD_OBITUARY, COUNT_DELETED_ENTITIES,
} = queries;
@@ -176,13 +176,15 @@ SELECT
) AS barcode,
a.is_parent AS isParent,
a.parentarticle_id AS parentArticleId,
a.parentsort AS parentsort,
(
SELECT fan.name || '|' || av.value || '|' || fan.sort || '|' || a.parentsort
FROM article fa
INNER JOIN attributename fan ON fan.id = fa.parentattributename_id
INNER JOIN articleattributevalue aav ON aav.article_id = a.id
INNER JOIN attributevalue av ON av.id = aav.attributevalue_id AND av.attribute_id = fan.id
WHERE a.parentarticle_id IS NOT NULL AND fa.id = a.parentarticle_id
SELECT av.value
FROM articleattributevalue aav
INNER JOIN attributevalue av ON av.id = aav.attributevalue_id
LEFT JOIN article fa ON fa.id = a.parentarticle_id
WHERE aav.article_id = a.id
AND (fa.parentattributename_id IS NULL OR av.attribute_id = fa.parentattributename_id)
ORDER BY CASE WHEN av.attribute_id = fa.parentattributename_id THEN 0 ELSE 1 END, aav.sort ASC, aav.id ASC
LIMIT 1
) AS variantName,
CASE