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) ); `;