u
This commit is contained in:
@@ -668,41 +668,20 @@ SELECT
|
||||
SELECT 1 FROM articlelistarticle ala WITH (NOLOCK) WHERE ala.articlelist_id = a.articlelist_id
|
||||
) THEN COALESCE((
|
||||
SELECT CASE
|
||||
WHEN MIN(COALESCE(comp_stock.stock, 0) / ala.count) < 0 THEN 0
|
||||
ELSE FLOOR(MIN(COALESCE(comp_stock.stock, 0) / ala.count))
|
||||
WHEN MIN(COALESCE(aws_comp.stock, 0) / ala.count) < 0 THEN 0
|
||||
ELSE FLOOR(MIN(COALESCE(aws_comp.stock, 0) / ala.count))
|
||||
END
|
||||
FROM articlelistarticle ala WITH (NOLOCK)
|
||||
LEFT JOIN (
|
||||
SELECT ca.id AS comp_id, SUM(l.amount) AS stock
|
||||
FROM ledger l WITH (NOLOCK)
|
||||
INNER JOIN manifestarticle ma WITH (NOLOCK) ON ma.id = l.manifestarticle_id
|
||||
INNER JOIN manifest m WITH (NOLOCK) ON m.id = ma.manifest_id
|
||||
INNER JOIN article ca WITH (NOLOCK) ON (
|
||||
ma.sku = ca.sku
|
||||
OR ma.sku IN (SELECT asup.sku FROM articlesupplier asup WITH (NOLOCK) WHERE asup.article_id = ca.id)
|
||||
)
|
||||
WHERE m.company_id = a.company_id
|
||||
AND l.warehouse_id = w.id
|
||||
GROUP BY ca.id
|
||||
) comp_stock ON comp_stock.comp_id = ala.article_id
|
||||
LEFT JOIN articlewarehousesummary aws_comp WITH (NOLOCK)
|
||||
ON aws_comp.article_id = ala.article_id AND aws_comp.warehouse_id = w.id
|
||||
WHERE ala.articlelist_id = a.articlelist_id
|
||||
), 0)
|
||||
WHEN a.articlelist_id IS NOT NULL THEN 0
|
||||
ELSE COALESCE(stock_calc.stock, 0)
|
||||
ELSE COALESCE(aws.stock, 0)
|
||||
END AS stock
|
||||
FROM warehouse w WITH (NOLOCK)
|
||||
LEFT JOIN (
|
||||
SELECT l.warehouse_id, SUM(l.amount) AS stock
|
||||
FROM ledger l WITH (NOLOCK)
|
||||
INNER JOIN manifestarticle ma WITH (NOLOCK) ON ma.id = l.manifestarticle_id
|
||||
INNER JOIN manifest m WITH (NOLOCK) 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 WITH (NOLOCK) WHERE asup.article_id = a.id)
|
||||
)
|
||||
GROUP BY l.warehouse_id
|
||||
) stock_calc ON stock_calc.warehouse_id = w.id
|
||||
LEFT JOIN articlewarehousesummary aws WITH (NOLOCK)
|
||||
ON aws.article_id = a.id AND aws.warehouse_id = w.id
|
||||
WHERE w.company_id = a.company_id
|
||||
ORDER BY w.sort ASC, w.name ASC
|
||||
FOR JSON PATH
|
||||
@@ -715,15 +694,12 @@ SELECT
|
||||
COALESCE(os.customer_name, LTRIM(RTRIM(ISNULL(e.first_name + ' ', '') + ISNULL(e.name, '')))) AS customerName,
|
||||
ROUND(SUM(ma.amount) - COALESCE((
|
||||
SELECT SUM(ma_s.amount)
|
||||
FROM manifest m_s WITH (NOLOCK)
|
||||
INNER JOIN manifestarticle ma_s WITH (NOLOCK) ON ma_s.manifest_id = m_s.id
|
||||
LEFT JOIN shipmentsummary ss WITH (NOLOCK) ON ss.manifest_id = m_s.id
|
||||
WHERE m_s.company_id = m.company_id
|
||||
AND m_s.[type] = 'shipment'
|
||||
FROM shipmentsummary ss WITH (NOLOCK)
|
||||
INNER JOIN manifestarticle ma_s WITH (NOLOCK) ON ma_s.manifest_id = ss.manifest_id
|
||||
WHERE ss.company_id = m.company_id
|
||||
AND ss.order_id = m.id
|
||||
AND ISNULL(ss.state, 'new') != 'cancelled'
|
||||
AND m_s.[number] NOT LIKE '%#cancelled#%'
|
||||
AND ma_s.sku = a.sku
|
||||
AND m_s.[number] LIKE m.[number] + COALESCE((SELECT prefix FROM numbers WITH (NOLOCK) WHERE company_id = m.company_id AND [type] = 'shipment'), '-L-') + '%'
|
||||
), 0), 3) AS amount
|
||||
FROM manifest m WITH (NOLOCK)
|
||||
INNER JOIN manifestarticle ma WITH (NOLOCK) ON ma.manifest_id = m.id
|
||||
@@ -736,15 +712,12 @@ SELECT
|
||||
GROUP BY m.id, m.[number], m.[date], m.company_id, os.customer_name, e.first_name, e.name
|
||||
HAVING (SUM(ma.amount) - COALESCE((
|
||||
SELECT SUM(ma_s.amount)
|
||||
FROM manifest m_s WITH (NOLOCK)
|
||||
INNER JOIN manifestarticle ma_s WITH (NOLOCK) ON ma_s.manifest_id = m_s.id
|
||||
LEFT JOIN shipmentsummary ss WITH (NOLOCK) ON ss.manifest_id = m_s.id
|
||||
WHERE m_s.company_id = m.company_id
|
||||
AND m_s.[type] = 'shipment'
|
||||
FROM shipmentsummary ss WITH (NOLOCK)
|
||||
INNER JOIN manifestarticle ma_s WITH (NOLOCK) ON ma_s.manifest_id = ss.manifest_id
|
||||
WHERE ss.company_id = m.company_id
|
||||
AND ss.order_id = m.id
|
||||
AND ISNULL(ss.state, 'new') != 'cancelled'
|
||||
AND m_s.[number] NOT LIKE '%#cancelled#%'
|
||||
AND ma_s.sku = a.sku
|
||||
AND m_s.[number] LIKE m.[number] + COALESCE((SELECT prefix FROM numbers WITH (NOLOCK) WHERE company_id = m.company_id AND [type] = 'shipment'), '-L-') + '%'
|
||||
), 0)) > 0
|
||||
ORDER BY m.[date] ASC, m.id ASC
|
||||
FOR JSON PATH
|
||||
|
||||
@@ -256,41 +256,20 @@ SELECT auth.*,
|
||||
SELECT 1 FROM articlelistarticle ala WHERE ala.articlelist_id = a.articlelist_id
|
||||
) THEN COALESCE((
|
||||
SELECT CASE
|
||||
WHEN MIN(COALESCE(comp_stock.stock, 0) / ala.count) < 0 THEN 0
|
||||
ELSE CAST(MIN(COALESCE(comp_stock.stock, 0) / ala.count) AS INTEGER)
|
||||
WHEN MIN(COALESCE(aws_comp.stock, 0) / ala.count) < 0 THEN 0
|
||||
ELSE CAST(MIN(COALESCE(aws_comp.stock, 0) / ala.count) AS INTEGER)
|
||||
END
|
||||
FROM articlelistarticle ala
|
||||
LEFT JOIN (
|
||||
SELECT ca.id AS comp_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
|
||||
INNER JOIN article ca ON (
|
||||
ma.sku = ca.sku
|
||||
OR ma.sku IN (SELECT asup.sku FROM articlesupplier asup WHERE asup.article_id = ca.id)
|
||||
)
|
||||
WHERE m.company_id = a.company_id
|
||||
AND l.warehouse_id = w.id
|
||||
GROUP BY ca.id
|
||||
) comp_stock ON comp_stock.comp_id = ala.article_id
|
||||
LEFT JOIN articlewarehousesummary aws_comp
|
||||
ON aws_comp.article_id = ala.article_id AND aws_comp.warehouse_id = w.id
|
||||
WHERE ala.articlelist_id = a.articlelist_id
|
||||
), 0)
|
||||
WHEN a.articlelist_id IS NOT NULL THEN 0
|
||||
ELSE COALESCE(stock_calc.stock, 0)
|
||||
ELSE COALESCE(aws.stock, 0)
|
||||
END
|
||||
)), '[]') 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
|
||||
LEFT JOIN articlewarehousesummary aws
|
||||
ON aws.article_id = a.id AND aws.warehouse_id = w.id
|
||||
WHERE w.company_id = a.company_id
|
||||
ORDER BY w.sort ASC, w.name ASC)),
|
||||
'undeliveredOrdersJson', json((
|
||||
@@ -309,15 +288,12 @@ SELECT auth.*,
|
||||
COALESCE(os.customer_name, TRIM(COALESCE(e.first_name || ' ', '') || COALESCE(e.name, ''))) AS customerName,
|
||||
ROUND(SUM(ma.amount) - COALESCE((
|
||||
SELECT SUM(ma_s.amount)
|
||||
FROM manifest m_s
|
||||
INNER JOIN manifestarticle ma_s ON ma_s.manifest_id = m_s.id
|
||||
LEFT JOIN shipmentsummary ss ON ss.manifest_id = m_s.id
|
||||
WHERE m_s.company_id = m.company_id
|
||||
AND m_s."type" = 'shipment'
|
||||
FROM shipmentsummary ss
|
||||
INNER JOIN manifestarticle ma_s ON ma_s.manifest_id = ss.manifest_id
|
||||
WHERE ss.company_id = m.company_id
|
||||
AND ss.order_id = m.id
|
||||
AND COALESCE(ss.state, 'new') != 'cancelled'
|
||||
AND m_s."number" NOT LIKE '%#cancelled#%'
|
||||
AND ma_s.sku = a.sku
|
||||
AND m_s."number" LIKE m."number" || COALESCE((SELECT prefix FROM numbers WHERE company_id = m.company_id AND "type" = 'shipment'), '-L-') || '%'
|
||||
), 0), 3) AS amount
|
||||
FROM manifest m
|
||||
INNER JOIN manifestarticle ma ON ma.manifest_id = m.id
|
||||
@@ -330,15 +306,12 @@ SELECT auth.*,
|
||||
GROUP BY m.id, m."number", m."date", os.customer_name, e.first_name, e.name
|
||||
HAVING (SUM(ma.amount) - COALESCE((
|
||||
SELECT SUM(ma_s.amount)
|
||||
FROM manifest m_s
|
||||
INNER JOIN manifestarticle ma_s ON ma_s.manifest_id = m_s.id
|
||||
LEFT JOIN shipmentsummary ss ON ss.manifest_id = m_s.id
|
||||
WHERE m_s.company_id = m.company_id
|
||||
AND m_s."type" = 'shipment'
|
||||
FROM shipmentsummary ss
|
||||
INNER JOIN manifestarticle ma_s ON ma_s.manifest_id = ss.manifest_id
|
||||
WHERE ss.company_id = m.company_id
|
||||
AND ss.order_id = m.id
|
||||
AND COALESCE(ss.state, 'new') != 'cancelled'
|
||||
AND m_s."number" NOT LIKE '%#cancelled#%'
|
||||
AND ma_s.sku = a.sku
|
||||
AND m_s."number" LIKE m."number" || COALESCE((SELECT prefix FROM numbers WHERE company_id = m.company_id AND "type" = 'shipment'), '-L-') || '%'
|
||||
), 0)) > 0
|
||||
ORDER BY m."date" ASC, m.id ASC
|
||||
) uo
|
||||
|
||||
Reference in New Issue
Block a user