This commit is contained in:
seb
2026-10-27 06:48:35 +00:00
parent bab5c151d0
commit ccb81cdb26
84 changed files with 5072 additions and 3625 deletions

View File

@@ -10,7 +10,8 @@ export const {
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_PARENT_OPTIONS,
TOUCH_LASTSEEN, RECORD_OBITUARY, COUNT_DELETED_ENTITIES,
TOUCH_LASTSEEN, RECORD_OBITUARY, RECORD_SYNC_QUEUE, SEED_SYNC_QUEUE_FOR_TERMINAL,
COUNT_DELETED_ENTITIES,
} = queries;
export const SET_ON = `
@@ -50,13 +51,19 @@ SELECT
cg.name,
CASE WHEN cg.id = co.poscustomergroup_id THEN '1' ELSE '0' END AS standard,
'0.000000' AS discountPercent,
CAST(strftime('%s', cg.updated_at) AS INTEGER) AS lastChanged
FROM customergroup cg
sq.syncId AS lastChanged
FROM (
SELECT entity_id, MAX(id) AS syncId
FROM posterminalsyncqueue
WHERE posterminal_id = @posterminalId AND entity_type = 'customergroup'
GROUP BY entity_id
HAVING MAX(id) > @cursor
) sq
INNER JOIN customergroup cg ON cg.id = sq.entity_id
INNER JOIN posterminal pt ON pt.id = @posterminalId AND pt.company_id = cg.company_id
INNER JOIN company co ON co.id = pt.company_id
WHERE cg.name <> 'Lieferanten'
AND CAST(strftime('%s', cg.updated_at) AS INTEGER) > @cursor
ORDER BY lastChanged ASC, cg.id ASC
ORDER BY sq.syncId ASC
LIMIT @limit
`;
@@ -116,13 +123,19 @@ SELECT
ORDER BY ec.sort ASC, ec.id ASC
LIMIT 1
) AS email,
CAST(strftime('%s', e.updated_at) AS INTEGER) AS lastChanged
FROM entity e
sq.syncId AS lastChanged
FROM (
SELECT entity_id, MAX(id) AS syncId
FROM posterminalsyncqueue
WHERE posterminal_id = @posterminalId AND entity_type = 'customer'
GROUP BY entity_id
HAVING MAX(id) > @cursor
) sq
INNER JOIN entity e ON e.id = sq.entity_id
INNER JOIN customergroup cg ON cg.id = e.customergroup_id
INNER JOIN posterminal pt ON pt.id = @posterminalId AND pt.company_id = cg.company_id
WHERE cg.name <> 'Lieferanten'
AND CAST(strftime('%s', e.updated_at) AS INTEGER) > @cursor
ORDER BY lastChanged ASC, e.id ASC
ORDER BY sq.syncId ASC
LIMIT @limit
`;
@@ -141,16 +154,21 @@ SELECT
ORDER BY cp.sort ASC, cp.id ASC
LIMIT 1
) AS imgHash,
CAST(strftime('%s', c.updated_at) AS INTEGER) AS lastChanged
FROM category c
INNER JOIN posterminalcategory pc ON pc.category_id = c.id
sq.syncId AS lastChanged
FROM (
SELECT entity_id, MAX(id) AS syncId
FROM posterminalsyncqueue
WHERE posterminal_id = @posterminalId AND entity_type = 'category'
GROUP BY entity_id
HAVING MAX(id) > @cursor
) sq
INNER JOIN category c ON c.id = sq.entity_id
INNER JOIN posterminalcategory pc ON pc.category_id = c.id AND pc.posterminal_id = @posterminalId
INNER JOIN posterminal pt ON pt.id = pc.posterminal_id
INNER JOIN company co ON co.id = pt.company_id
LEFT JOIN categorytext ct ON ct.category_id = c.id AND ct.language_id = co.default_language_id
WHERE pc.posterminal_id = @posterminalId
AND (co.root_category_id IS NULL OR c.id <> co.root_category_id)
AND CAST(strftime('%s', c.updated_at) AS INTEGER) > @cursor
ORDER BY lastChanged ASC, c.id ASC
WHERE (co.root_category_id IS NULL OR c.id <> co.root_category_id)
ORDER BY sq.syncId ASC
LIMIT @limit
`;
@@ -162,7 +180,7 @@ SELECT
COALESCE(pr.net, 0) AS netPrice,
COALESCE(ptax.rate, ctax.rate, 0) AS taxRate,
a.created_at AS createdAt,
(CAST(strftime('%s', a.updated_at) AS INTEGER) * 1000000 + (a.id % 1000000)) AS lastChanged,
sq.syncId AS lastChanged,
COALESCE(
(
SELECT p.hash
@@ -265,7 +283,14 @@ SELECT
co.id AS companyId,
co.root_category_id AS rootCategoryId,
co.poscustomergroup_id AS posCustomerGroupId
FROM article a
FROM (
SELECT entity_id, MAX(id) AS syncId
FROM posterminalsyncqueue
WHERE posterminal_id = @posterminalId AND entity_type = 'article'
GROUP BY entity_id
HAVING MAX(id) > @cursor
) sq
INNER JOIN article a ON a.id = sq.entity_id
INNER JOIN posterminal pt ON pt.id = @posterminalId AND pt.company_id = a.company_id
INNER JOIN company co ON co.id = a.company_id
LEFT JOIN articletext at ON at.article_id = a.id AND at.language_id = co.default_language_id
@@ -279,8 +304,7 @@ WHERE EXISTS (
WHERE ca.article_id = a.id
AND pc.posterminal_id = @posterminalId
)
AND (CAST(strftime('%s', a.updated_at) AS INTEGER) * 1000000 + (a.id % 1000000)) > @cursor
ORDER BY (CAST(strftime('%s', a.updated_at) AS INTEGER) * 1000000 + (a.id % 1000000)) ASC
ORDER BY sq.syncId ASC
LIMIT @limit
`;