Files
dashlibstorage/src/providers/mssql/queries/logistics.js
2026-10-17 05:10:28 +02:00

162 lines
4.7 KiB
JavaScript

export const CHECK_ACCOUNT_COMPANY = `
SELECT id
FROM account
WHERE id = @accountId AND company_id = @companyId
`;
export const CHECK_ENTITYADDRESS_COMPANY = `
SELECT ea.id
FROM entityaddress ea
INNER JOIN entity e ON e.id = ea.entity_id
INNER JOIN customergroup cg ON cg.id = e.customergroup_id
WHERE ea.id = @entityaddressId AND cg.company_id = @companyId
`;
export const CHECK_SHIPPING_COMPANY = `
SELECT s.id
FROM shipping s
INNER JOIN manifest m ON m.id = s.manifest_id
WHERE s.id = @shippingId AND m.company_id = @companyId
`;
export const ACCOUNT_CREATE = `
INSERT INTO account (company_id, [type], [name])
OUTPUT INSERTED.id, INSERTED.company_id, INSERTED.[type], INSERTED.[name]
VALUES (@companyId, @type, @name)
`;
export const ACCOUNT_LIST = `
SELECT id, company_id, [type], [name]
FROM account
WHERE company_id = @companyId
ORDER BY [name] ASC, id ASC
`;
export const ACCOUNT_DELETE = `
DELETE FROM account
WHERE id = @id AND company_id = @companyId
`;
export const PAYMENT_CREATE = `
INSERT INTO payment (account_id, manifest_id, [type], amount)
OUTPUT INSERTED.id, INSERTED.account_id, INSERTED.manifest_id, INSERTED.[type], INSERTED.amount
VALUES (@accountId, @manifestId, @type, @amount)
`;
export const PAYMENT_LIST_BY_MANIFEST = `
SELECT id, account_id, manifest_id, [type], amount
FROM payment
WHERE manifest_id = @manifestId
ORDER BY id ASC
`;
export const PAYMENT_DELETE = `
DELETE FROM payment
WHERE id = @id
AND manifest_id IN (SELECT m.id FROM manifest m WHERE m.company_id = @companyId)
`;
export const CHECK_CARRIER = `
SELECT TOP 1 id, name
FROM carrier
WHERE id = @carrierId AND company_id = @companyId;
`;
export const SHIPPING_CREATE = `
INSERT INTO shipping (manifest_id, [number], tracking_code, carrier_id, [type], [state])
OUTPUT INSERTED.id, INSERTED.manifest_id, INSERTED.[number], INSERTED.tracking_code, INSERTED.carrier_id, INSERTED.[type], INSERTED.[state]
VALUES (@manifestId, @number, @trackingCode, @carrierId, @type, @state)
`;
export const SHIPPING_LIST_BY_MANIFEST = `
SELECT s.id, s.manifest_id, s.[number], s.tracking_code, s.carrier_id, c.name AS carrier, s.[type], s.[state]
FROM shipping s
LEFT JOIN carrier c ON c.id = s.carrier_id
WHERE s.manifest_id = @manifestId
ORDER BY s.id ASC
`;
export const SHIPPING_DELETE = `
DELETE FROM shipping
WHERE id = @id
AND manifest_id IN (SELECT m.id FROM manifest m WHERE m.company_id = @companyId)
`;
export const GET_SHIPPING_BY_ID = `
SELECT s.id, s.manifest_id AS manifestId, s.[number], s.tracking_code, s.carrier_id AS carrierId, c.name AS carrier, s.[type], s.[state]
FROM shipping s
INNER JOIN manifest m ON m.id = s.manifest_id
LEFT JOIN carrier c ON c.id = s.carrier_id
WHERE s.id = @id AND m.company_id = @companyId;
`;
export const SHIPPING_UPDATE = `
UPDATE shipping
SET [type] = @type, [state] = @state, tracking_code = @trackingCode, carrier_id = @carrierId
OUTPUT INSERTED.id, INSERTED.manifest_id, INSERTED.[number], INSERTED.tracking_code, INSERTED.carrier_id, INSERTED.[type], INSERTED.[state]
WHERE id = @id;
`;
export const CHECK_ORDER_SHIPPED = `
SELECT TOP 1 s.id
FROM shipping s
WHERE s.manifest_id = @manifestId AND LOWER(s.[state]) = 'shipped';
`;
export const GET_ORDER_LINES_FOR_SHIPPING = `
SELECT id, sku, name, amount
FROM manifestarticle
WHERE manifest_id = @manifestId
ORDER BY id ASC;
`;
export const GET_MANIFEST_HEADER_BY_ID = `
SELECT id, company_id AS companyId, [number], [type], entity_id AS entityId
FROM manifest
WHERE id = @manifestId AND company_id = @companyId;
`;
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 CHECK_WAREHOUSE = `
SELECT id, name
FROM warehouse
WHERE id = @warehouseId AND company_id = @companyId;
`;
export const CHECK_ARTICLE_TRACK_STOCK = `
SELECT 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 PACKAGE_CREATE = `
INSERT INTO package (shipping_id, entityaddress_id, [number], [type], [state], details)
OUTPUT INSERTED.id, INSERTED.shipping_id, INSERTED.entityaddress_id, INSERTED.[number], INSERTED.[type], INSERTED.[state], INSERTED.details
VALUES (@shippingId, @entityaddressId, @number, @type, @state, @details)
`;
export const PACKAGE_LIST_BY_SHIPPING = `
SELECT id, shipping_id, entityaddress_id, [number], [type], [state], details
FROM package
WHERE shipping_id = @shippingId
ORDER BY id ASC
`;
export const PACKAGE_DELETE = `
DELETE FROM package
WHERE id = @id
AND shipping_id IN (
SELECT s.id
FROM shipping s
INNER JOIN manifest m ON m.id = s.manifest_id
WHERE m.company_id = @companyId
)
`;