Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE VIEW InVoiceView AS
- SELECT soLine.CompanyID ,
- soLine.BranchID ,
- DocType = soLine.OrderType ,
- RefNbr = soLine.OrderNbr ,
- soLine.CustomerID ,
- soorder.CustomerLocationID ,
- soorder.UsrSalesReps ,
- soorder.OrderDate ,
- SOOrderType = soLine.OrderType ,
- SOOrderNbr = soLine.OrderNbr ,
- soLineSplit.InventoryID ,
- UOMSplit = soLineSplit.UOM ,
- UOMLine = soLine.UOM ,
- --soLine.InventoryID ,
- Qty = soLineSplit.BaseQty ,
- soLine.CuryUnitPrice ,
- LotSerialNbr = ISNULL(ISNULL(soLineSplit.LotSerialNbr,
- soLine.LotSerialNbr), 0) ,
- ExpireDate = ISNULL(soLineSplit.ExpireDate, soLine.ExpireDate) ,
- OrderFreeAmt = 0 ,
- 0.0 OrderFreeQty ,
- '' PromotionCD ,
- '' SchemeID ,
- '' DealID ,
- '' Descr ,
- 'S' AS isPromotion ,
- OrderDescr = soorder.OrderDesc ,
- sos.InvoiceNbr ,
- N'Line Hàng bán' typeLine
- -- INTO #tmpdata
- FROM dbo.SOLine soLine
- LEFT JOIN dbo.SOLineSplit soLineSplit ON soLine.CompanyID = soLineSplit.CompanyID
- AND soLine.OrderType = soLineSplit.OrderType
- AND soLine.OrderNbr = soLineSplit.OrderNbr
- AND soLine.LineNbr = soLineSplit.LineNbr
- INNER JOIN SOOrder soorder ON soorder.CompanyID = soLine.CompanyID
- AND soorder.OrderNbr = soLine.OrderNbr
- AND soorder.OrderType = soLine.OrderType
- AND soorder.BranchID = soLine.BranchID
- LEFT JOIN dbo.SOOrderShipment sos ON sos.CompanyID = soorder.CompanyID
- AND sos.OrderNbr = soorder.OrderNbr
- AND sos.OrderType = soorder.OrderType
- INNER JOIN dbo.InventoryItem inventory ON soLine.CompanyID = inventory.CompanyID
- AND soLine.InventoryID = inventory.InventoryID
- LEFT JOIN dbo.INUnit unit ON unit.CompanyID = soLine.CompanyID
- AND unit.InventoryID = soLine.InventoryID
- --soLineSplit lun lưu là baseUnit
- AND unit.FromUnit = inventory.SalesUnit
- AND unit.ToUnit = inventory.BaseUnit
- WHERE
- --ko in đơn trạng thái 'Cancel' và 'Hold'
- soorder.Status <> 'L'
- AND soorder.Status <> 'H'
- --AND ( @_InvoiceNBR = ''
- -- --OR ( soLine.OrderNbr IN ( SELECT String
- -- -- FROM #tmpInvoiceNBR ) )
- -- )
- AND soLine.OrderNbr IS NOT NULL
- --AND soLine.CompanyID = @CompanyID
- --AND soLine.BranchID = @BranchID
- AND soLine.IsFree = 0
- --ko in ra line hàng có qty==0
- AND soLine.OrderQty <> 0
- --AND ( ( soorder.UsrSalesReps = @_SalesManID )
- -- OR @_SalesManID = 0
- -- )
- AND soLine.SiteID IN ( SELECT SiteID
- FROM dbo.DMSViewINSiteWithSecurity
- --WHERE CompanyID = @CompanyID
- -- AND DistributorID = @BranchID
- -- AND Username = @User
- )
- UNION ALL
- --lấy KM hàng tặng
- SELECT soLine.CompanyID ,
- soLine.BranchID ,
- DocType = soLine.OrderType ,
- RefNbr = soLine.OrderNbr ,
- MAX(soLine.CustomerID) ,
- MAX(soorder.CustomerLocationID) ,
- MAX(soorder.UsrSalesReps) ,
- MAX(soorder.OrderDate) ,
- SOOrderType = soLine.OrderType ,
- SOOrderNbr = soLine.OrderNbr ,
- soLineSplit.InventoryID ,
- UOMSplit = '' ,
- UOMLine = '' ,
- SUM(soLineSplit.BaseQty) AS Qty ,
- 0.0 AS CuryUnitPrice ,
- CASE WHEN sodd.Type = 'S' THEN NULL
- ELSE soLineSplit.LotSerialNbr
- END AS LotSerialNbr ,
- ExpireDate = MAX(ISNULL(soLineSplit.ExpireDate,
- soLine.ExpireDate)) ,
- 0.0 AS OrderFreeAmt ,
- SUM(sodd.OrderFreeQty) ,
- disinfo.PromotionCD ,
- MAX(disinfo.SchemeID) ,
- MAX(disinfo.DealID) ,
- MAX(disinfo.Descr) ,
- 'F' isPromotion ,
- OrderDescr = MAX(soorder.OrderDesc) ,
- -- UsrIsSOInvoicePrint = CAST(MAX(CAST(soorder.UsrIsSOInvoicePrint AS INT)) AS BIT) ,
- -- InvoiceDate = MAX(sos.UsrInvoiceDate) ,
- MAX(sos.InvoiceNbr) ,
- N'line KM hàng' typeLine
- FROM dbo.SOLine soLine
- LEFT JOIN dbo.SOLineSplit soLineSplit ON soLine.CompanyID = soLineSplit.CompanyID
- AND soLine.OrderType = soLineSplit.OrderType
- AND soLine.OrderNbr = soLineSplit.OrderNbr
- AND soLine.LineNbr = soLineSplit.LineNbr
- INNER JOIN SOOrder soorder ON soorder.CompanyID = soLine.CompanyID
- AND soorder.OrderNbr = soLine.OrderNbr
- AND soorder.OrderType = soLine.OrderType
- AND soorder.BranchID = soLine.BranchID
- LEFT JOIN dbo.DMSPROSODiscountDetail sodd ON sodd.CompanyID = soLine.CompanyID
- AND sodd.OrderNbr = soLine.OrderNbr
- AND sodd.OrderType = soLine.OrderType
- AND sodd.InventoryID = soLine.InventoryID
- AND sodd.LineNbr = soLine.LineNbr
- AND ( sodd.Type = 'F' )
- LEFT JOIN dbo.DMSPRODiscount disinfo ON disinfo.CompanyID = sodd.CompanyID
- AND disinfo.PromotionID = sodd.PromotionID
- LEFT JOIN dbo.SOOrderShipment sos ON sos.CompanyID = soorder.CompanyID
- AND sos.OrderNbr = soorder.OrderNbr
- AND sos.OrderType = soorder.OrderType
- WHERE
- soLine.OrderType <> 'CM'
- --ko in đơn trạng thái 'Cancel' và 'Hold'
- AND soorder.Status <> 'L'
- AND soorder.Status <> 'H'
- --thao:them dk vansale or presale
- AND ( soLine.OrderNbr IS NOT NULL )
- AND soLine.IsFree = 1
- --ko in ra line hàng có qty==0
- AND soLine.OrderQty <> 0
- AND ISNULL(soLine.UsrIncentiveID, '') = ''
- AND soLine.SiteID IN ( SELECT SiteID
- FROM dbo.DMSViewINSiteWithSecurity
- )
- GROUP BY soLine.CompanyID ,
- soLine.BranchID ,
- soLine.OrderType ,
- soLine.OrderNbr ,
- soLineSplit.InventoryID ,
- CASE WHEN sodd.Type = 'S' THEN NULL
- ELSE soLineSplit.LotSerialNbr
- END ,
- disinfo.PromotionCD
- UNION ALL
- -- TAN hoang lay them mat hang tra thuong
- SELECT soLine.CompanyID ,
- soLine.BranchID ,
- DocType = soLine.OrderType ,
- RefNbr = soLine.OrderNbr ,
- MAX(soorder.CustomerID) ,
- MAX(soorder.CustomerLocationID) ,
- MAX(soorder.UsrSalesReps) ,
- MAX(soorder.OrderDate) ,
- SOOrderType = soLine.OrderType ,
- SOOrderNbr = soLine.OrderNbr ,
- soLineSplit.InventoryID ,
- UOMSplit = '' ,
- UOMLine = '' ,
- SUM(soLineSplit.BaseQty) AS Qty ,
- 0.0 AS CuryUnitPrice ,
- soLineSplit.LotSerialNbr ,
- ExpireDate = MAX(ISNULL(soLineSplit.ExpireDate,
- soLine.ExpireDate)) ,
- 0.0 OrderFreeAmt ,
- OrderFreeQty = SUM(soLineSplit.BaseQty) ,
- evaluation.RefNbr ,
- CONVERT(VARCHAR(10), MAX(evaluation.ProgramID)) ,
- CONVERT(VARCHAR(10), MAX(evaluation.ProgramID)) ,
- MAX(evaluation.Descr) ,
- 'F' isPromotion ,
- OrderDescr = MAX(soorder.OrderDesc) ,
- MAX(sos.InvoiceNbr) ,
- N'Line Trả thưởng hàng ' AS TypeLine
- FROM dbo.SOLine soLine
- LEFT JOIN dbo.SOLineSplit soLineSplit ON soLine.CompanyID = soLineSplit.CompanyID
- AND soLine.OrderType = soLineSplit.OrderType
- AND soLine.OrderNbr = soLineSplit.OrderNbr
- AND soLine.LineNbr = soLineSplit.LineNbr
- INNER JOIN SOOrder soorder ON soorder.CompanyID = soLine.CompanyID
- AND soorder.OrderNbr = soLine.OrderNbr
- AND soorder.OrderType = soLine.OrderType
- AND soorder.BranchID = soLine.BranchID
- LEFT JOIN dbo.DMSPROSODiscountDetail sodd ON sodd.CompanyID = soLine.CompanyID
- AND sodd.OrderNbr = soLine.OrderNbr
- AND sodd.OrderType = soLine.OrderType
- AND sodd.InventoryID = soLine.InventoryID
- AND sodd.LineNbr = soLine.LineNbr
- AND ( sodd.Type = 'F' )
- LEFT JOIN DMSEvaluationDefine evaluation ON evaluation.CompanyID = soLine.CompanyID
- AND evaluation.RefNbr = soLine.UsrIncentiveID
- LEFT JOIN dbo.SOOrderShipment sos ON sos.CompanyID = soorder.CompanyID
- AND sos.OrderNbr = soorder.OrderNbr
- AND sos.OrderType = soorder.OrderType
- WHERE
- --ko in đơn trạng thái 'Cancel' và 'Hold'
- soorder.Status <> 'L'
- AND soorder.Status <> 'H'
- AND soLine.OrderType <> 'CM'
- --thao:them dk vansale or presale
- AND soLine.OrderNbr IS NOT NULL
- --ko in ra line hàng có qty==0
- AND soLine.OrderQty <> 0
- AND soLine.IsFree = 1
- AND ISNULL(soLine.UsrIncentiveID, '') <> ''
- AND soLine.SiteID IN ( SELECT SiteID
- FROM dbo.DMSViewINSiteWithSecurity
- )
- GROUP BY soLine.CompanyID ,
- soLine.BranchID ,
- soLine.OrderType ,
- soLine.OrderNbr ,
- soLineSplit.InventoryID ,
- soLineSplit.LotSerialNbr ,
- evaluation.RefNbr
- UNION ALL
- --#region -- lấy KM tiền
- SELECT soLine.CompanyID ,
- soLine.BranchID ,
- soLine.OrderType ,
- soLine.OrderNbr ,
- MAX(soorder.CustomerID) ,
- MAX(soorder.CustomerLocationID) ,
- MAX(soorder.UsrSalesReps) ,
- MAX(soorder.OrderDate) ,
- SOOrderType = soLine.OrderType ,
- SOOrderNbr = soLine.OrderNbr ,
- 0 AS InventoryID ,
- UOMSplit = '' ,
- UOMLine = '' ,
- 0.0 AS Qty ,
- 0.0 AS CuryUnitPrice ,
- '' AS LotSerialNbr ,
- '' AS ExpireDate ,
- SUM(sodd.OrderFreeAmt) ,
- 0 AS OrderFreeQty ,
- disinfo.PromotionCD ,
- MAX(disinfo.SchemeID) ,
- MAX(disinfo.DealID) ,
- MAX(disinfo.Descr) ,
- 'F' isPromotion ,
- OrderDescr = MAX(soorder.OrderDesc) ,
- MAX(sos.InvoiceNbr) ,
- N'line KM tiền' AS TypeLine
- FROM dbo.SOLine soLine
- INNER JOIN SOOrder soorder ON soorder.CompanyID = soLine.CompanyID
- AND soorder.OrderNbr = soLine.OrderNbr
- AND soorder.OrderType = soLine.OrderType
- AND soorder.BranchID = soLine.BranchID
- JOIN dbo.DMSPROSODiscountDetail sodd ON sodd.CompanyID = soLine.CompanyID
- AND sodd.OrderNbr = soLine.OrderNbr
- AND sodd.OrderType = soLine.OrderType
- AND sodd.InventoryID = soLine.InventoryID
- AND sodd.LineNbr = soLine.LineNbr
- AND ( sodd.Type = 'S' )
- AND sodd.OrderFreeAmt > 0
- AND sodd.BranchID = soLine.BranchID
- LEFT JOIN dbo.DMSPRODiscount disinfo ON disinfo.CompanyID = sodd.CompanyID
- AND disinfo.PromotionID = sodd.PromotionID
- LEFT JOIN dbo.SOOrderShipment sos ON sos.CompanyID = soorder.CompanyID
- AND sos.OrderNbr = soorder.OrderNbr
- AND sos.OrderType = soorder.OrderType
- WHERE
- --ko in đơn trạng thái 'Cancel' và 'Hold'
- soorder.Status <> 'L'
- AND soorder.Status <> 'H'
- AND soLine.OrderType <> 'CM'
- --thao:them dk vansale or presale
- AND ( soLine.OrderNbr IS NOT NULL )
- --ko in ra line hàng có qty==0
- AND soLine.OrderQty <> 0
- AND soLine.IsFree = 0
- AND ISNULL(soLine.UsrIncentiveID, '') = ''
- AND soLine.SiteID IN ( SELECT SiteID
- FROM dbo.DMSViewINSiteWithSecurity
- )
- GROUP BY soLine.CompanyID ,
- soLine.BranchID ,
- soLine.OrderType ,
- soLine.OrderNbr ,
- disinfo.PromotionCD;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement