175 lines
4.0 KiB
JavaScript
175 lines
4.0 KiB
JavaScript
export const CHECK_MANIFESTARTICLE_ACCESS = `
|
|
SELECT
|
|
ma.id,
|
|
ma.sku,
|
|
ma.amount AS lineAmount,
|
|
ma.pu AS linePu,
|
|
ma.net,
|
|
ma.rebate,
|
|
ma.taxrate,
|
|
m.id AS manifestId,
|
|
m.number AS manifestNumber,
|
|
m.type AS manifestType,
|
|
m.external_number AS externalNumber,
|
|
e.name AS supplierName
|
|
FROM manifestarticle ma
|
|
INNER JOIN manifest m ON ma.manifest_id = m.id
|
|
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 GET_DEFAULT_WAREHOUSE = `
|
|
SELECT id, name
|
|
FROM warehouse
|
|
WHERE company_id = @companyId
|
|
ORDER BY sort ASC, name ASC, id ASC
|
|
LIMIT 1;
|
|
`;
|
|
|
|
export const CHECK_MANIFESTARTICLE_BOOKED = `
|
|
SELECT COALESCE(SUM(amount), 0) AS bookedAmount
|
|
FROM ledger
|
|
WHERE manifestarticle_id = @manifestarticleId
|
|
AND warehouse_id IS NULL;
|
|
`;
|
|
|
|
export const FIND_ARTICLES_FOR_HISTORY = `
|
|
SELECT DISTINCT asup.article_id AS articleId
|
|
FROM articlesupplier asup
|
|
INNER JOIN entity e ON e.id = asup.entity_id
|
|
INNER JOIN customergroup cg ON cg.id = e.customergroup_id
|
|
WHERE asup.sku = @sku
|
|
AND cg.company_id = @companyId
|
|
UNION
|
|
SELECT id AS articleId
|
|
FROM article
|
|
WHERE sku = @sku
|
|
AND company_id = @companyId;
|
|
`;
|
|
|
|
export const INSERT_ARTICLE_HISTORY = `
|
|
INSERT INTO articlehistory (article_id, companyuser_id, date, text, meta)
|
|
VALUES (@articleId, @companyuserId, COALESCE(@date, strftime('%Y-%m-%dT%H:%M:%fZ', 'now')), @text, @meta);
|
|
`;
|
|
|
|
export const GET_LATEST_ROW = `
|
|
SELECT
|
|
id,
|
|
manifestarticle_id,
|
|
warehouse_id,
|
|
transaction_type,
|
|
amount,
|
|
transaction_text,
|
|
hash_version,
|
|
prev_hash,
|
|
created_at
|
|
FROM ledger
|
|
ORDER BY id DESC
|
|
LIMIT 1;
|
|
`;
|
|
|
|
export const INSERT_ROW = `
|
|
INSERT INTO ledger (
|
|
manifestarticle_id,
|
|
warehouse_id,
|
|
transaction_type,
|
|
amount,
|
|
transaction_text,
|
|
hash_version,
|
|
prev_hash
|
|
)
|
|
VALUES (
|
|
@manifestarticleId,
|
|
@warehouseId,
|
|
@transactionType,
|
|
@amount,
|
|
@transactionText,
|
|
@hashVersion,
|
|
@prevHash
|
|
)
|
|
RETURNING
|
|
id,
|
|
manifestarticle_id,
|
|
warehouse_id,
|
|
transaction_type,
|
|
amount,
|
|
transaction_text,
|
|
hash_version,
|
|
prev_hash,
|
|
created_at;
|
|
`;
|
|
|
|
export const LIST_BY_MANIFESTARTICLE = `
|
|
SELECT
|
|
l.id,
|
|
l.manifestarticle_id,
|
|
l.warehouse_id,
|
|
ma.sku,
|
|
l.transaction_type,
|
|
l.amount,
|
|
l.transaction_text,
|
|
l.hash_version,
|
|
l.prev_hash,
|
|
l.created_at
|
|
FROM ledger l
|
|
INNER JOIN manifestarticle ma ON l.manifestarticle_id = ma.id
|
|
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;
|
|
`;
|
|
|
|
export const LIST_BY_SKU = `
|
|
SELECT
|
|
l.id,
|
|
l.manifestarticle_id,
|
|
l.warehouse_id,
|
|
ma.sku,
|
|
l.transaction_type,
|
|
l.amount,
|
|
l.transaction_text,
|
|
l.hash_version,
|
|
l.prev_hash,
|
|
l.created_at
|
|
FROM ledger l
|
|
INNER JOIN manifestarticle ma ON l.manifestarticle_id = ma.id
|
|
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;
|
|
`;
|
|
|
|
export const GET_ARTICLE_TRACK_STOCK = `
|
|
SELECT a.id, a.sku, a.track_stock
|
|
FROM article a
|
|
WHERE a.company_id = @companyId
|
|
AND (
|
|
a.sku = @sku
|
|
OR EXISTS (SELECT 1 FROM articlesupplier asup WHERE asup.article_id = a.id AND asup.sku = @sku)
|
|
)
|
|
LIMIT 1;
|
|
`;
|
|
|
|
export const GET_ARTICLE_WAREHOUSE_STOCK = `
|
|
SELECT COALESCE(SUM(l.amount), 0) 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 l.warehouse_id = @warehouseId
|
|
AND m.company_id = @companyId
|
|
AND (
|
|
ma.sku = @sku
|
|
OR ma.sku IN (SELECT asup.sku FROM articlesupplier asup WHERE asup.article_id = @articleId)
|
|
);
|
|
`;
|