· 9 years ago · Nov 03, 2016, 07:20 AM
1USE [Adayroi_TMS]
2GO
3/****** Object: StoredProcedure [dbo].[APIClient_PurchaseOrder_ChangeOrderType_V02] Script Date: 11/3/2016 2:19:21 PM ******/
4SET ANSI_NULLS ON
5GO
6SET QUOTED_IDENTIFIER ON
7GO
8--====================================================================================
9-- Entity Name: [APIClient_PurchaseOrder_ChangeOrderType_V02]
10-- Author: TRẦN AN BÌNH
11-- Create date: 15/12/2014 8:32:27 PM
12-- Description: Äá»”I LUá»’N GIAO HÀNG CỦA ÄÆ N HÀNG
13-- ================================================================================
14ALTER PROCEDURE [dbo].[APIClient_PurchaseOrder_ChangeOrderType_V02]
15(
16 @Poid nvarchar(max),
17 @userId int,
18 @sessionkey nvarchar(200),
19 @currentstatus int,
20 @newStatus int
21)
22AS
23BEGIN
24 DECLARE @result BIT = 1;
25 DECLARE @ResponseMessage NVARCHAR(MAX) = N'';
26 DECLARE @PROC_NAME VARCHAR(250) = OBJECT_NAME(@@PROCID)
27 EXEC [dbo].[CHECK_SESSION_AND_PERMISSION] @userId, @sessionkey, @PROC_NAME
28 DECLARE @PoTable TABLE
29 (
30 PoId bigint
31 )
32 INSERT INTO @PoTable (PoId)
33 SELECT [value] FROM SplitListToBIGINT(@Poid, ',') AS Poid
34
35
36 IF EXISTS (SELECT 1 FROM dbo.SO_Detail sd
37 INNER JOIN @PoTable rs ON rs.PoId = sd.ClientPoId
38 WHERE sd.SODetailStatusID > 1 )
39 BEGIN
40 SET @ResponseMessage = N'ÄÆ¡n hà ng đã được xá» lý hoặc đã nháºp kho';
41 SET @result = 0;
42
43 SELECT @result AS IsSuccess, @ResponseMessage AS ResponseMessage
44 RETURN
45 END
46 IF EXISTS (SELECT ClientPoId FROM PurchaseOrder po
47 INNER JOIN @PoTable rs ON rs.PoId = po.ClientPoId
48 WHERE po.POStatusId = 4 )
49 BEGIN
50 SET @result = 0;
51 SET @ResponseMessage = N'ÄÆ¡n hà ng đã được nháºp kho';
52
53 SELECT @result AS IsSuccess, @ResponseMessage AS ResponseMessage
54 RETURN
55 END
56 IF( EXISTS (SELECT TOP 1 1 FROM PurchaseOrder po
57 INNER JOIN @PoTable rs ON rs.PoId = po.ClientPoId
58 INNER JOIN dbo.SO_Detail sd ON sd.ClientPoId = po.ClientPoId
59 WHERE (sd.CrCode <> '' OR sd.CrCodeApply <> '')
60 )
61 )
62 BEGIN
63 SET @result = 0;
64 SET @ResponseMessage = N'ÄÆ¡n hà ng Cart rule không cho chuyển luồng';
65
66 SELECT @result AS IsSuccess, @ResponseMessage AS ResponseMessage
67 RETURN
68 END
69 UPDATE PurchaseOrder
70 SET
71 DeliveryFlowId = CASE
72 WHEN PO.DeliveryFlowId = 4 THEN 1
73 WHEN PO.DeliveryFlowId = 1 THEN 4
74 WHEN PO.DeliveryFlowId = 2 THEN 3
75 WHEN PO.DeliveryFlowId = 3 THEN 2
76 END,
77 SID_Destination = CASE
78 WHEN PO.DeliveryFlowId = 4 THEN PO.SID_Tally
79 WHEN PO.DeliveryFlowId = 1 THEN s.SID_Destination
80 WHEN PO.DeliveryFlowId = 2 THEN s.SID_Destination
81 WHEN PO.DeliveryFlowId = 3 THEN PO.TempTallyStation
82 END
83 --select CM.IsSuperMarket , PO.DeliveryFlowId
84 FROM PurchaseOrder PO
85 INNER JOIN @PoTable lpo ON lpo.PoId = PO.PoId
86 INNER JOIN ClientMerchantWarehouse CMW WITH(NOLOCK) ON PO.ClientMerchantWarehouseId= CMW.ClientMerchantWarehouseId
87 INNER JOIN ClientMerchant CM WITH(NOLOCK) ON CMW.ClientMerchantId = CM.ClientMerchantId
88 INNER JOIN SO s WITH (NOLOCK) ON s.SOID = PO.SoId
89 WHERE
90 PO.POStatusId = 1
91 AND PO.DeliveryFlowId = @currentstatus
92 --if(@@rowcount > 0)
93 -- BEGIN
94 -- SET @result=1;
95 -- END
96 --WHERE EXISTS (SELECT 1 FROM PurchaseOrder WHERE PoId= @Poid AND ClientMerchantWarehouseId = CMW.ClientMerchantWarehouseId)
97 --- cáºp nháºp loại PO
98 UPDATE PurchaseOrder
99 SET
100 DeliveryCaseId = CASE
101 WHEN ((sta.CityID = sde.CityID) AND (sta.SID = sde.SID)) AND po.DeliveryFlowId IN (3,4) THEN 3
102 WHEN ((sta.CityID = sde.CityID) AND (sta.SID = sde.SID)) AND NOT po.DeliveryFlowId IN (3,4) THEN po.DeliveryFlowId
103 WHEN ((sta.CityID = sde.CityID) AND (sta.SID <> sde.SID)) THEN 4 -- Trung chuyển trạm giao nháºn ná»™i vùng
104 WHEN ((sta.CityID <> sde.CityID) AND (sta.SID <> sde.SID)) THEN 6 -- Trung chuyển đến trung tâm giao nháºn trái vùng
105 ELSE
106 0
107 END
108 FROM PurchaseOrder PO WITH(NOLOCK)
109 INNER JOIN @PoTable lpo ON lpo.PoId = PO.PoId
110 INNER JOIN dbo.Stations sta WITH(NOLOCK) ON po.SID_Tally = sta.SID
111 INNER JOIN dbo.Stations sde WITH(Nolock) ON po.SID_Destination = sde.SID
112
113
114
115
116 SET @ResponseMessage = N'Äổi thà nh công luồng đơn hà ng';
117 --Insert Log_Information ActionType PO
118 INSERT INTO [dbo].[Log_Information]
119 ([ObjectTypeId]
120 ,[ObjectId]
121 ,[ActionId]
122 ,[LogDetails]
123 ,[CreatedBy]
124 ,[CreatedDate]
125 ,[UID_AssignTo]
126 ,[OldStatusId]
127 ,[NewStatusId])
128 SELECT DISTINCT 2, sd.SODetailID, 22,
129 CASE
130 WHEN @newStatus = 2 THEN N'Äổi thà nh công luồng đơn hà ng thẳng thưá»ng'
131 WHEN @newStatus = 3 THEN N'Äổi thà nh công luồng đơn hà ng nháºp trạm'
132 END,
133 @userId, GETDATE(), 0, @currentstatus,@newStatus
134 FROM dbo.PurchaseOrder PO
135 INNER JOIN @PoTable sltb on PO.PoId = sltb.PoId
136 INNER JOIN dbo.SO_Detail sd WITH(NOLOCK) ON PO.PoId = sd.PoId
137 where PO.DeliveryFlowId = @newStatus
138
139 --ELSE IF (@result = 0)
140 -- BEGIN
141 -- SET @result = 0
142 -- SET @ResponseMessage = N'đơn hà ng đã được đổi luồng hoặc đã nháºp kho';
143 -- END
144 -- IF(@result = 2)
145 -- BEGIN
146 -- SET @result = 0
147 -- SET @ResponseMessage = N'đơn hà ng đã nháºp kho';
148 -- END
149 SELECT @result AS IsSuccess, @ResponseMessage AS ResponseMessage;
150 --SELECT @result AS IsSuccess, @ResponseMessage AS ResponseMessage;
151END
152
153
154--Exec APIClient_PurchaseOrder_ChangeOrderType_V01 1725863499327440,31659