107 lines
3.1 KiB
JavaScript
107 lines
3.1 KiB
JavaScript
export const SHIPMENT_TYPE = 'shipment';
|
|
|
|
export const GET_ORDER_HEADER = `
|
|
SELECT id, company_id AS companyId, [number], [type], entity_id AS entityId, external_number AS externalNumber, [date]
|
|
FROM manifest
|
|
WHERE id = @orderId AND company_id = @companyId AND [type] = 'order';
|
|
`;
|
|
|
|
export const GET_ORDER_LINES = `
|
|
SELECT id, sku, name, pu, amount, net, rebate, taxrate, comment
|
|
FROM manifestarticle
|
|
WHERE manifest_id = @orderId
|
|
ORDER BY id ASC;
|
|
`;
|
|
|
|
export const GET_SHIPMENT_PREFIX = `
|
|
SELECT prefix
|
|
FROM numbers
|
|
WHERE company_id = @companyId AND [type] = 'shipment';
|
|
`;
|
|
|
|
export const LIST_SHIPMENTS_BY_ORDER_NUMBER_PATTERN = `
|
|
SELECT m.id, m.[number], m.[type], m.entity_id AS entityId, m.external_number AS externalNumber, m.[date], m.created_at AS createdAt
|
|
FROM manifest m
|
|
LEFT JOIN shipmentsummary ss ON ss.manifest_id = m.id
|
|
WHERE m.company_id = @companyId
|
|
AND m.[type] = 'shipment'
|
|
AND m.[number] LIKE @pattern
|
|
AND (ss.state IS NULL OR ss.state != 'cancelled')
|
|
ORDER BY m.id ASC;
|
|
`;
|
|
|
|
export const GET_SHIPPED_AMOUNTS_BY_ORDER_PATTERN = `
|
|
SELECT ma.sku, SUM(ma.amount) AS shippedAmount
|
|
FROM manifest m
|
|
INNER JOIN manifestarticle ma ON ma.manifest_id = m.id
|
|
LEFT JOIN shipmentsummary ss ON ss.manifest_id = m.id
|
|
WHERE m.company_id = @companyId
|
|
AND m.[type] = 'shipment'
|
|
AND m.[number] LIKE @pattern
|
|
AND (@excludeShipmentId IS NULL OR m.id != @excludeShipmentId)
|
|
AND (ss.state IS NULL OR ss.state != 'cancelled')
|
|
GROUP BY ma.sku;
|
|
`;
|
|
|
|
export const GET_SHIPMENT_HEADER = `
|
|
SELECT m.id, m.[number], m.[type], m.entity_id AS entityId, m.external_number AS externalNumber, m.[date], m.created_at AS createdAt
|
|
FROM manifest m
|
|
WHERE m.id = @id AND m.company_id = @companyId AND m.[type] = 'shipment';
|
|
`;
|
|
|
|
export const CHECK_SHIPMENT_PACKAGES_SHIPPED = `
|
|
SELECT TOP 1 id
|
|
FROM shipping
|
|
WHERE manifest_id = @id AND LOWER([state]) = 'shipped';
|
|
`;
|
|
|
|
export const CHECK_ORDER_HAS_SHIPMENTS = `
|
|
SELECT TOP 1 m.id
|
|
FROM manifest m
|
|
LEFT JOIN shipmentsummary ss ON ss.manifest_id = m.id AND ss.company_id = @companyId
|
|
WHERE m.company_id = @companyId
|
|
AND m.[type] = 'shipment'
|
|
AND (ss.state IS NULL OR ss.state != 'cancelled')
|
|
AND (
|
|
m.[number] LIKE @pattern
|
|
OR ss.order_id = @orderId
|
|
OR ss.order_number = @orderNumber
|
|
);
|
|
`;
|
|
|
|
export const DELETE_SHIPMENT = `
|
|
DELETE FROM manifest
|
|
WHERE id = @id AND company_id = @companyId AND [type] = 'shipment';
|
|
`;
|
|
|
|
export const GET_DEFAULT_WAREHOUSE = `
|
|
SELECT TOP 1 id, name
|
|
FROM warehouse
|
|
WHERE company_id = @companyId
|
|
ORDER BY sort ASC, name ASC, id ASC;
|
|
`;
|
|
|
|
export const GET_ARTICLE_TRACK_STOCK = `
|
|
SELECT TOP 1 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)
|
|
);
|
|
`;
|
|
|
|
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)
|
|
);
|
|
`;
|
|
|