This commit is contained in:
seb
2026-09-26 23:06:05 +02:00
parent e491ecfa47
commit e7f92ebef8
41 changed files with 3632 additions and 1751 deletions

View File

@@ -446,7 +446,29 @@ SELECT
WHERE asup.article_id = a.id
ORDER BY asup.sort ASC, asup.id ASC
FOR JSON PATH
) AS suppliersJson
) AS suppliersJson,
(
SELECT
w.id,
w.name,
COALESCE(stock_calc.stock, 0) AS stock
FROM warehouse w
LEFT JOIN (
SELECT l.warehouse_id, SUM(l.amount) AS stock
FROM ledger l
INNER JOIN manifestarticle ma ON ma.id = l.manifestarticle_id
INNER JOIN manifest m ON m.id = ma.manifest_id
WHERE m.company_id = a.company_id
AND (
ma.sku = a.sku
OR ma.sku IN (SELECT asup.sku FROM articlesupplier asup WHERE asup.article_id = a.id)
)
GROUP BY l.warehouse_id
) stock_calc ON stock_calc.warehouse_id = w.id
WHERE w.company_id = a.company_id
ORDER BY w.name ASC
FOR JSON PATH
) AS warehousesJson
FROM article a
LEFT JOIN articletext at
ON at.article_id = a.id AND at.language_id = auth.languageId

View File

@@ -17,6 +17,12 @@ LEFT JOIN entity e ON e.id = m.entity_id
WHERE ma.id = @manifestarticleId AND m.company_id = @companyId;
`;
export const CHECK_WAREHOUSE_ACCESS = `
SELECT id, name
FROM warehouse
WHERE id = @warehouseId AND company_id = @companyId;
`;
export const FIND_ARTICLES_FOR_HISTORY = `
SELECT DISTINCT asup.article_id AS articleId
FROM articlesupplier asup
@@ -35,6 +41,7 @@ export const GET_LATEST_ROW = `
SELECT TOP 1
id,
manifestarticle_id,
warehouse_id,
transaction_type,
amount,
transaction_text,
@@ -48,6 +55,7 @@ ORDER BY id DESC;
export const INSERT_ROW = `
INSERT INTO ledger (
manifestarticle_id,
warehouse_id,
transaction_type,
amount,
transaction_text,
@@ -57,6 +65,7 @@ INSERT INTO ledger (
OUTPUT
INSERTED.id,
INSERTED.manifestarticle_id,
INSERTED.warehouse_id,
INSERTED.transaction_type,
INSERTED.amount,
INSERTED.transaction_text,
@@ -65,6 +74,7 @@ OUTPUT
INSERTED.created_at
VALUES (
@manifestarticleId,
@warehouseId,
@transactionType,
@amount,
@transactionText,
@@ -77,6 +87,7 @@ export const LIST_BY_MANIFESTARTICLE = `
SELECT
l.id,
l.manifestarticle_id,
l.warehouse_id,
ma.sku,
l.transaction_type,
l.amount,
@@ -90,6 +101,7 @@ INNER JOIN manifest m ON ma.manifest_id = m.id
WHERE l.manifestarticle_id = @manifestarticleId
AND m.company_id = @companyId
AND (@transactionType IS NULL OR l.transaction_type = @transactionType)
AND (@warehouseId IS NULL OR l.warehouse_id = @warehouseId)
ORDER BY l.id ASC;
`;
@@ -97,6 +109,7 @@ export const LIST_BY_SKU = `
SELECT
l.id,
l.manifestarticle_id,
l.warehouse_id,
ma.sku,
l.transaction_type,
l.amount,
@@ -110,5 +123,6 @@ INNER JOIN manifest m ON ma.manifest_id = m.id
WHERE ma.sku = @sku
AND m.company_id = @companyId
AND (@transactionType IS NULL OR l.transaction_type = @transactionType)
AND (@warehouseId IS NULL OR l.warehouse_id = @warehouseId)
ORDER BY l.id ASC;
`;

View File

@@ -0,0 +1,99 @@
export const PRINTER_COLUMNS = `
id,
company_id,
address,
type,
model,
serial,
sort,
[desc]
`;
export const LIST_BY_COMPANY = `
SELECT
${PRINTER_COLUMNS}
FROM printer
WHERE company_id = @companyId
ORDER BY sort ASC, id ASC
`;
export const GET_BY_COMPANY_AND_ID = `
SELECT
${PRINTER_COLUMNS}
FROM printer
WHERE id = @id AND company_id = @companyId
`;
export const GET_NEXT_SORT = `
SELECT ISNULL(MAX(sort), -1) + 1 AS sort
FROM printer
WHERE company_id = @companyId
`;
export const LIST_IDS_BY_COMPANY = `
SELECT id
FROM printer
WHERE company_id = @companyId
`;
export const CREATE = `
INSERT INTO printer (
company_id,
address,
type,
model,
serial,
sort,
[desc]
)
OUTPUT
INSERTED.id,
INSERTED.company_id,
INSERTED.address,
INSERTED.type,
INSERTED.model,
INSERTED.serial,
INSERTED.sort,
INSERTED.[desc]
VALUES (
@companyId,
@address,
@type,
@model,
@serial,
@sort,
@desc
)
`;
export const UPDATE = `
UPDATE printer
SET
address = @address,
type = @type,
model = @model,
serial = @serial,
sort = @sort,
[desc] = @desc
OUTPUT
INSERTED.id,
INSERTED.company_id,
INSERTED.address,
INSERTED.type,
INSERTED.model,
INSERTED.serial,
INSERTED.sort,
INSERTED.[desc]
WHERE id = @id AND company_id = @companyId
`;
export const UPDATE_SORT = `
UPDATE printer
SET sort = @sort
WHERE id = @id AND company_id = @companyId
`;
export const DELETE_BY_COMPANY_AND_ID = `
DELETE FROM printer
WHERE id = @id AND company_id = @companyId
`;

View File

@@ -0,0 +1,48 @@
export const LIST_BY_COMPANY = `
SELECT
id,
company_id,
name
FROM warehouse
WHERE company_id = @companyId
ORDER BY name ASC;
`;
export const GET_BY_COMPANY_AND_ID = `
SELECT
id,
company_id,
name
FROM warehouse
WHERE id = @id AND company_id = @companyId;
`;
export const GET_BY_COMPANY_AND_NAME = `
SELECT
id,
company_id,
name
FROM warehouse
WHERE company_id = @companyId AND name = @name;
`;
export const CREATE = `
INSERT INTO warehouse (company_id, name)
OUTPUT INSERTED.id, INSERTED.company_id, INSERTED.name
VALUES (@companyId, @name);
`;
export const UPDATE_BY_ID = `
UPDATE warehouse
SET name = @name
WHERE id = @id AND company_id = @companyId;
`;
export const DELETE_BY_COMPANY_AND_ID = `
DELETE FROM warehouse
WHERE id = @id AND company_id = @companyId;
`;
export const CHECK_LEDGER_USAGE = `
SELECT TOP 1 id FROM ledger WHERE warehouse_id = @warehouseId;
`;