Advertisement
Guest User

Untitled

a guest
Nov 20th, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.58 KB | None | 0 0
  1. USE [Adayroi_TMS]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[APIClient_PO_GetListSettupPoDetailToDelivery_V01] Script Date: 11/20/2017 4:06:23 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8.  
  9. -- =============================================
  10. -- Entity Name: APIClient_PO_GetListSettupPoDetailToDelivery_V01
  11. -- Author: Hà Trọng Sỹ
  12. -- Create date: 24/05/2017 09:44:33
  13. -- Description: Lấy toàn bộ PO chi tiết
  14. -- =============================================
  15. ALTER PROCEDURE [dbo].[APIClient_PO_GetListSettupPoDetailToDelivery_V01]
  16. (
  17. @CurrentUser INT,
  18. @SesstionKey VARCHAR(200),
  19. @StationId INT,
  20. @SourceClientId INT
  21. )
  22. AS
  23. BEGIN
  24. DECLARE @PROC_NAME VARCHAR(250) = OBJECT_NAME(@@PROCID)
  25. BEGIN TRY
  26. EXEC [dbo].[CHECK_SESSION_AND_PERMISSION] @CurrentUser, @SesstionKey, @PROC_NAME
  27.  
  28. DECLARE @VinmartId TABLE (VinmartId int)
  29. DECLARE @VinmartConfig varchar(max) = ''
  30. SELECT @VinmartConfig = sc.[Value] FROM dbo.SystemConfigs sc WHERE sc.Name = 'VinmartMerchantId'
  31. INSERT INTO @VinmartId SELECT slti.[Value] FROM dbo.SplitListToINT(@VinmartConfig, ',') slti
  32.  
  33. SELECT PODetailID
  34. ,sd.LogisticSKULabel
  35. ,ClientSKU
  36. ,ProductName
  37. ,sd.[Amount]
  38. ,sd.SellPrice * sd.[Amount] AS UnitBuyPrice
  39. ,sd.PoId
  40. ,[PODetailStatusID]
  41. ,CASE WHEN cp.MerchantSku IS NULL THEN cp.ProductItemIdSap ELSE cp.MerchantSku END AS MerchantSku
  42. ,PO.[Priority]
  43. ,POD.[TotalSKU]
  44. ,CP.ProductUnit
  45. ,CASE WHEN MW.HybrisMerchantWarehouseId IS NOT NULL AND MW.SourceClientId = 3 THEN CONCAT(MW.HybrisMerchantWarehouseId, ' - ') ELSE N'' END + CASE WHEN pommw.ReverseCode IS NOT NULL THEN ST.FullAddress ELSE MW.FullAddress END AS FullAddress
  46. , M.MerchantName
  47. , CASE WHEN pommw.ReverseCode IS NOT NULL THEN ST.Phone ELSE MW.PhoneN0 END AS PhoneN0
  48. ,CAST(M.MerchantId AS NVARCHAR) AS MerchantCode
  49. ,ISNULL(M.[MerchantName], '') + ' - ' + ISNULL(MW.Name, '') + N' - ' + FORMAT(MW.ClientMerchantWarehouseId, '000000') + ' - ' + MW.FullAddress AS NccGroup
  50. ,po.UID_COD
  51. ,sd.SODetailID
  52. ,SCM.ClientSoId
  53. ,[ProductItemId]
  54. ,'2' + FORMAT(SCM.SourceClientId,'00') + CAST(POD.PoId AS NVARCHAR) AS PoLabel
  55. ,SCM.SourceClientId
  56. ,SCM.TotalPo
  57. ,PO.RouteId
  58. ,RD.RouteName
  59. ,ST.SName
  60. ,SCM.DeliveryFullAddress
  61. ,SCM.CustomerName
  62. ,SCM.CustomerPhone
  63. ,r.RoutId AS RouteDest
  64. ,POD.Priority AS PodPriority
  65. ,CP.MerchantProductName
  66. ,'1' + FORMAT(SCM.SourceClientId,'00') + CAST(SCM.ClientSoId AS NVARCHAR) AS ClientSoIdView
  67. ,'2' + FORMAT(SCM.SourceClientId,'00') + CAST(POD.PoId AS NVARCHAR) AS PoIdView
  68. ,ISNULL(sd.Note,N'') + ISNULL(SCM.Note,N'') AS Note
  69. ,SCM.CreateDatetime AS SoCreateDateTime
  70. ,r.RouteName AS SoRouteName
  71. ,CASE WHEN (ISNULL(SCM.TotalPaidOnline, 0) - ISNULL(SCM.TotalPaidUsed, 0)) + (ISNULL(SCM.TotalPaidVinId, 0) - ISNULL(SCM.TotalPaidVinIdUsed, 0)) <= 0 THEN 'COD'
  72. WHEN (ISNULL(SCM.TotalPaidOnline, 0) - ISNULL(SCM.TotalPaidUsed, 0)) + (ISNULL(SCM.TotalPaidVinId, 0) - ISNULL(SCM.TotalPaidVinIdUsed, 0)) > 0 AND SCM.RemainingAmount > 0 THEN N'COD + Online'
  73. ELSE 'Online' END AS CashType
  74. --,DATEDIFF(MINUTE, GETDATE(), CASE WHEN ISNULL(po.DeliveryPolicyType, 0) = 2 THEN po.TempDeliveryDateFrom ELSE po.DeliveryDateFrom END) AS RemainTime
  75. ,DATEDIFF(MINUTE, GETDATE(), PO.TempDeliveryDateFrom) AS RemainTime
  76. ,sd.SODetailStatusID
  77. ,M.TradingAddress AS MerchantAddress
  78. ,M.PhoneN0 AS MerchantPhone
  79. ,CASE WHEN sd.SODetailStatusID = 1 THEN ISNULL(M.[MerchantName], '') + ' - ' + ISNULL(MW.Name, '') + N' - ' + FORMAT(MW.MerchantWarehouseId, '000000') + ' - ' + MW.FullAddress ELSE '' END AS PuId
  80. ,CP.ManufactureBarcode + CASE WHEN ISNULL(sd.SAPInternalMerchantSONumber, '') <> '' THEN CONCAT('(SO:', sd.SAPInternalMerchantSONumber, ')') ELSE '' END AS ManufactureBarcode
  81. ,sd.SAPReservationNumber
  82. ,sd.SAPPONumberInterim
  83. ,sd.SAPReservationLineItem
  84. ,0 AS IsSelect
  85. ,CASE WHEN EXISTS (SELECT 1 FROM @VinmartId vi WHERE vi.VinmartId = m.MerchantId) THEN 1 ELSE 0 END AS OrderType
  86. ,pommw.ReverseCode
  87. --,CASE WHEN ISNULL(po.DeliveryPolicyType, 0) < 2 THEN Format(po.DeliveryDateFrom, 'HH:mm') ELSE '' END AS DeliveryTimeByPolicy
  88. --,CASE WHEN ISNULL(po.DeliveryPolicyType, 0) = 2 THEN Format(po.TempDeliveryDateFrom, 'HH:mm') + ' - ' + Format(po.DeliveryDateFrom, 'HH:mm') ELSE '' END AS DeliveryTimeByCustomer
  89. ,Format(po.MerchantPickupDateFrom, 'dd/MM/yyyy') AS DatePickupAgain -- Ngay hen lay
  90. ,Format(PO.TempDeliveryDateFrom, 'dd/MM/yyyy') AS DateDelivery
  91. ,sd.ClientMerchantId
  92. ,pt.ProductTypeName
  93. ,sc.Name AS SourceClientName
  94. ,PO.ClientMerchantWarehouseId
  95. ,CASE WHEN vlr.ClientRPO IS NOT NULL THEN 1 ELSE 0 END AS IsCreatedRpo
  96. FROM
  97. PurchaseOrder PO WITH (NOLOCK)
  98. INNER JOIN dbo.SO_Detail sd WITH (NOLOCK) ON sd.PoId = PO.PoId
  99. INNER JOIN PurchaseOrder_Detail POD WITH (NOLOCK) ON POD.SODetailID = ISNULL(sd.SoDetailIdRoot, sd.SODetailID) AND POD.PoId = PO.PoId
  100. INNER JOIN ClientProduct CP WITH (NOLOCK) ON CP.ClientProductId = POD.ClientProductId
  101. INNER JOIN ClientMerchantWarehouse MW WITH (NOLOCK) ON MW.ClientMerchantWarehouseId = PO.ClientMerchantWarehouseId
  102. INNER JOIN ClientMerchant M WITH (NOLOCK) ON M.ClientMerchantId = sd.ClientMerchantId
  103. INNER JOIN dbo.SO SCM WITH (NOLOCK) ON SCM.SOID = PO.SoId
  104. LEFT JOIN dbo.Routs RD WITH (NOLOCK) ON RD.RoutId = PO.RouteId
  105. LEFT JOIN dbo.Routs r WITH (NOLOCK) ON PO.DeliveryRoutsId = r.RoutId
  106. LEFT JOIN dbo.Stations ST WITH (NOLOCK) ON ST.SID = PO.SID_Tally
  107. --LEFT JOIN dbo.Stations s2 WITH (NOLOCK) ON SCM.DeliveryCityId = s2.CityID AND SCM.DeliveryDistId = s2.DistID AND SCM.DeliveryWardId = s2.WardID AND SCM.DeliveryStreetId = s2.StreetID AND SCM.DeliveryHouseN0 = s2.HouseN0
  108. LEFT JOIN dbo.PurchaseOrder_MappingMiniWarehourse pommw WITH (NOLOCK) ON pommw.ClientPoId = PO.ClientPoId --AND pommw.IsComplete = 1
  109. INNER JOIN dbo.ProductType pt WITH (NOLOCK) ON pt.ProductTypeID = po.ProductTypeId
  110. INNER JOIN dbo.SourceClient sc WITH (NOLOCK) ON sc.SourceClientId = SCM.SourceClientId
  111. LEFT JOIN dbo.Vinpro_LogRPO vlr WITH (NOLOCK) ON sd.ClientSoId = vlr.ClientSoid
  112. WHERE
  113. (
  114. (po.POStatusId = 1 AND sd.SODetailStatusID = 1) OR
  115. (po.POStatusId = 4 AND sd.SODetailStatusID = 4)
  116. )
  117. AND SID_Tally = @StationId
  118. AND SCM.SourceClientId = @SourceClientId
  119. AND po.ProductTypeId < 4
  120. AND po.Visible = 1
  121. AND po.DeliveryFlowId = 2
  122. AND SCM.UnitTransportId = 1
  123. AND ISNULL(po.IsDropOff, 0) = 0
  124. AND po.SID_Destination != 0
  125. AND ISNULL(scm.IsDeliveryPiC, 0) = 0
  126. AND ISNULL(po.IsOnhold, 0) = 0
  127. AND ISNULL(scm.OrderType, 0) = 1
  128. AND sd.Visible = 1
  129.  
  130. END TRY
  131. BEGIN CATCH
  132. THROW;
  133. END CATCH
  134. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement