/* SO SÁNH DỮ LIỆU CÂN XUẤT VỚI PHIẾU XUẤT KHO */
;WITH AccDocItem AS (
	SELECT MAX(doc.BranchCode) AS BranchCode, doc.Stt, doc.SourceKey, MAX(doc.DocDate) AS DocDate,
		MAX(doc.DocCode) AS DocCode, MAX(doc.DocNo) AS DocNo, MAX(doc.DocStatus) AS DocStatus,
		ct0.ItemId, MAX(ct0.Unit) AS Unit, SUM(ct0.Quantity9) AS Quantity9, doc.IsActive
	FROM dbo.B30AccDocItem doc
		INNER JOIN dbo.B30AccDocItem2 ct0 ON doc.Stt = ct0.Stt
	WHERE doc.DocCode = 'PX' AND ISNULL(doc.SourceKey, '') <> ''
	GROUP BY doc.Stt, doc.SourceKey, ct0.ItemId, doc.IsActive
)
SELECT wd.BranchCode, wd.Stt, wd.DocDate, wd.DocNo,
	wd.ItemId, wd.ItemCode, wd.ItemName, wd.Unit, wd.WeightValue, wd.WeightBag,
	IIF(wd.CementType<>1, (wd.WeightValue/1000), (wd.WeightBag/1000)) AS Quantity_WE,
	ISNULL(AccDocItem.Quantity9,0) AS Quantity_PX,
	(IIF(wd.CementType<>1, (wd.WeightValue/1000), (wd.WeightBag/1000)) - ISNULL(AccDocItem.Quantity9,0)) AS DiffQty,
	AccDocItem.DocDate AS AccDocItem_DocDate, AccDocItem.DocNo AS AccDocItem_DocNo, AccDocItem.SourceKey,
	wd.WeighingType, wd.DocStatus,
	wd.CreatedBy, wd.CreatedBy_Name
FROM dbo.vB30WeighingData wd
	LEFT OUTER JOIN AccDocItem AccDocItem ON AccDocItem.SourceKey = wd.Stt AND AccDocItem.ItemId = wd.ItemId
WHERE wd.WeighingType = '2' AND wd.PostGL = 1
	AND wd.DocDate BETWEEN '2026-01-01' AND '2026-12-31'
    AND (IIF(wd.CementType<>1, (wd.WeightValue/1000), (wd.WeightBag/1000)) - ISNULL(AccDocItem.Quantity9,0)) <> 0
ORDER BY wd.DocDate DESC, wd.DocNo DESC;
	/* CẬP NHẬT DỮ LIỆU SỐ LƯỢNG ĐÃ THỰC HIỆN CỦA ĐƠN ĐẶT HÀNG BÁN */
EXECUTE dbo.usp_sys_B30BizDoc_CalcTransferedQuantity
    @_TransferedType = 'SO',
    @_BranchCode = 'A01';