Project

General

Profile

ASS_TRANSFER_MULTI_MASTER_Upd.txt

Luc Tran Van, 03/18/2022 02:44 PM

 
1
ALTER PROCEDURE [dbo].[ASS_TRANSFER_MULTI_MASTER_Upd]
2
@p_TRANS_MULTI_MASTER_ID	varchar(15) = null ,
3
@p_BRANCH_ID	varchar(15) = NULL ,
4
@p_TRANSFER_DT	VARCHAR(20) = NULL,
5
@p_USER_TRANSFER	nvarchar(200)  = NULL,
6
@p_NOTES	nvarchar(1000) = NULL ,
7
@p_RECORD_STATUS	varchar(1) = NULL ,
8
@p_AUTH_STATUS	varchar(1) = NULL ,
9
@p_MAKER_ID	varchar(15) = NULL ,
10
@p_CREATE_DT	VARCHAR(20) = NULL,
11
@p_CHECKER_ID	varchar(15) = NULL ,
12
@p_APPROVE_DT	VARCHAR(20) = NULL,
13
@p_AUTH_STATUS_KT	varchar(15) = NULL ,
14
@p_CREATE_DT_KT	VARCHAR(20) = NULL,
15
@p_APPROVE_DT_KT	VARCHAR(20) = NULL,
16
@p_MAKER_ID_KT	varchar(50) = NULL ,
17
@p_CHECKER_ID_KT	varchar(50) = NULL ,
18
@p_REPORT_STATUS	varchar(15) = NULL,
19
@p_BRANCH_CREATE varchar(15)  = NULL,
20
@p_XmlData XML = NUL
21
AS
22
DECLARE 
23
		@TRANSFER_MULTI_ID varchar(15),
24
		@ASSET_ID	varchar(15),
25
		@BRANCH_ID	varchar(15),
26
		@DEPT_ID	varchar(15),
27
		@EMP_ID	varchar(15),
28
	    @LOCATION	varchar(500),
29
		@DESCRIPTION	nvarchar(1000),
30
		@BRANCH_ID_OLD	varchar(15),
31
		@DEPT_ID_OLD	varchar(15),
32
		@EMP_ID_OLD	varchar(15),
33
		@REMAIN_VALUE	DECIMAL(18,0)
34
Declare @hdoc INT
35
	Exec sp_xml_preparedocument @hdoc Output,@p_XmlData
36

    
37
	DECLARE XmlData CURSOR FOR
38
	SELECT *
39
	FROM OPENXML(@hDoc,'/Root/XmlData',2)
40
	WITH 
41
	(
42
		TRANSFER_MULTI_ID varchar(15),
43
		ASSET_ID	varchar(15),
44
		BRANCH_ID	varchar(15),
45
		DEPT_ID	varchar(15),
46
		EMP_ID	varchar(15),
47
	    LOCATION	varchar(500),
48
		[DESCRIPTION]	nvarchar(1000),
49
		REMAIN_VALUE DECIMAL(18,0)
50
	)
51
	OPEN XmlData
52
	DELETE FROM ASS_TRANSFER_MULTI_DT WHERE TRANS_MULTI_MASTER_ID = @p_TRANS_MULTI_MASTER_ID
53

    
54
BEGIN TRANSACTION
55
	
56

    
57

    
58
		UPDATE ASS_TRANSFER_MULTI_MASTER SET [BRANCH_ID] = @p_BRANCH_ID,[TRANSFER_DT] = CONVERT(DATETIME, @p_TRANSFER_DT, 103),[USER_TRANSFER] = @p_USER_TRANSFER,[NOTES] = @p_NOTES,[RECORD_STATUS] = @p_RECORD_STATUS,[AUTH_STATUS] = @p_AUTH_STATUS,[MAKER_ID] = @p_MAKER_ID,[CREATE_DT] = CONVERT(DATETIME, @p_CREATE_DT, 103),[CHECKER_ID] = @p_CHECKER_ID,[APPROVE_DT] = CONVERT(DATETIME, @p_APPROVE_DT, 103),[REPORT_STATUS] = @p_REPORT_STATUS
59
		WHERE  TRANS_MULTI_MASTER_ID= @p_TRANS_MULTI_MASTER_ID
60
		IF @@Error <> 0 GOTO ABORT
61

    
62
		DECLARE @COUNT INT;
63
		SET @COUNT = 1;
64

    
65
		--Insert XmlData
66
		FETCH NEXT FROM XmlData INTO  @TRANSFER_MULTI_ID,@ASSET_ID,@BRANCH_ID,@DEPT_ID,@EMP_ID,@LOCATION,@DESCRIPTION, @REMAIN_VALUE
67
		WHILE @@FETCH_STATUS = 0
68
		BEGIN
69
			DECLARE @ERRORSYS NVARCHAR(200) = '',@ASSET_CODE nVARCHAR(20)
70
				
71
				IF (@DEPT_ID IS NULL OR @DEPT_ID = '')
72
				BEGIN
73
					SET @ASSET_CODE=(SELECT ASSET_CODE FROM ASS_MASTER WHERE  [ASSET_ID] = @ASSET_ID)
74
					SET @ERRORSYS = N'Dòng số '+ CAST(@COUNT AS NVARCHAR) + N': phòng ban không được để trống.'
75
					CLOSE XmlData
76
					DEALLOCATE XmlData
77
					ROLLBACK TRANSACTION
78
					SELECT '-1' as Result, '' TRANS_MULTI_MASTER_ID, @ERRORSYS ErrorDesc
79
					RETURN '-1'
80
				
81
				END	
82
				
83
				
84
				IF ( EXISTS ( SELECT * FROM ASS_TRANSFER_MULTI_DT WHERE [ASSET_ID] = @ASSET_ID AND AUTH_STATUS<>'A'))
85
				  BEGIN
86
					 SET @ASSET_CODE=(SELECT ASSET_CODE FROM ASS_MASTER WHERE  [ASSET_ID] = @ASSET_ID)
87
					 SET @ERRORSYS = N'Mã: '+@ASSET_CODE+N' đang được điều chuyển'
88
					CLOSE XmlData
89
					DEALLOCATE XmlData
90
					ROLLBACK TRANSACTION
91
					SELECT '-1' as Result, '' TRANS_MULTI_MASTER_ID, @ERRORSYS ErrorDesc
92
					RETURN '-1'
93
				
94
				  END
95

    
96
				  IF ( EXISTS ( SELECT * FROM ASS_TRANSFER WHERE [ASSET_ID] = @ASSET_ID AND AUTH_STATUS<>'A'))
97
				  BEGIN
98
					 SET @ASSET_CODE=(SELECT ASSET_CODE FROM ASS_MASTER WHERE  [ASSET_ID] = @ASSET_ID)
99
					 SET @ERRORSYS = N'Mã: '+@ASSET_CODE+N' đang được điều chuyển'
100
					CLOSE XmlData
101
					DEALLOCATE XmlData
102
					ROLLBACK TRANSACTION
103
					SELECT '-1' as Result, '' TRANS_MULTI_MASTER_ID, @ERRORSYS ErrorDesc
104
					RETURN '-1'
105
				
106
				  END
107

    
108

    
109
			IF(LEN(@TRANSFER_MULTI_ID)  = 0)
110
			BEGIN
111
				EXEC SYS_CodeMasters_Gen 'ASS_TRANSFER_MULTI_DT', @TRANSFER_MULTI_ID out
112
				IF @TRANSFER_MULTI_ID='' OR @TRANSFER_MULTI_ID IS NULL GOTO ABORT
113
			END
114
			
115
			--LAY THONG TIN DON VI CU TRUOC DIEU CHUYEN
116
				SELECT @BRANCH_ID_OLD = BRANCH_ID, @DEPT_ID_OLD = DEPT_ID, @EMP_ID_OLD = EMP_ID
117
				FROM ASS_MASTER
118
				WHERE ASSET_ID = @ASSET_ID
119

    
120
				--thieuvq 07/09/2016 -- ngay 231120 Thieuvq bo sung neu la HOI SO thi khong kiem tra trung theo yeu cau Anh Tan - dieu chuyen ts tu kho HCQT cho HCQT su dung
121
				IF @BRANCH_ID_OLD <> 'DV0001' AND @BRANCH_ID = @BRANCH_ID_OLD AND ISNULL(@DEPT_ID,'') = ISNULL(@DEPT_ID_OLD,'') AND ISNULL(@EMP_ID,'') = ISNULL(@EMP_ID_OLD,'')
122
				BEGIN
123
					SET @ASSET_CODE=(SELECT ASSET_CODE FROM ASS_MASTER WHERE  [ASSET_ID] = @ASSET_ID)
124
					SELECT '-1' Result, ''  TRANSFER_ID, N'TS: '+@ASSET_CODE+ N' Đơn vị nhận hoặc người nhận phải khác với đơn vị/nhân viên đang sử dụng hiện tại.' ErrorDesc 
125
					CLOSE XmlData
126
					DEALLOCATE XmlData
127
					ROLLBACK TRANSACTION
128
					RETURN '-1'
129
				END
130

    
131

    
132
				-- luctv 03/08/2021 người nhận phải cùng đơn vị nhận
133
				IF (SELECT BRANCH_ID FROM CM_DEPARTMENT WHERE DEP_ID = @DEPT_ID)  <> @BRANCH_ID
134
				BEGIN
135
					SET @ASSET_CODE=(SELECT ASSET_CODE FROM ASS_MASTER WHERE  [ASSET_ID] = @ASSET_ID)
136
					SELECT '-1' Result, ''  TRANSFER_ID, N'TS: '+ @ASSET_CODE + N' Phòng bản nhận phải thuộc về đơn vị nhận.' ErrorDesc 
137
					CLOSE XmlData
138
					DEALLOCATE XmlData
139
					ROLLBACK TRANSACTION
140
					RETURN '-1'
141
				END
142

    
143
				IF (SELECT DEP_ID FROM CM_EMPLOYEE WHERE EMP_ID = @EMP_ID)  <> @DEPT_ID
144
				BEGIN
145
					SET @ASSET_CODE=(SELECT ASSET_CODE FROM ASS_MASTER WHERE  [ASSET_ID] = @ASSET_ID)
146
					SELECT '-1' Result, ''  TRANSFER_ID, N'TS: '+ @ASSET_CODE + N' Người nhận phải thuộc về phòng ban nhận.' ErrorDesc 
147
					CLOSE XmlData
148
					DEALLOCATE XmlData
149
					ROLLBACK TRANSACTION
150
					RETURN '-1'
151
				END
152

    
153

    
154
		  INSERT INTO ASS_TRANSFER_MULTI_DT([TRANSFER_MULTI_ID],[TRANS_MULTI_MASTER_ID],[ASSET_ID],[BRANCH_ID],[DEPT_ID],[EMP_ID],[USE_START_DT],[DESCRIPTION],[LOCATION],[RECORD_STATUS],[AUTH_STATUS],[MAKER_ID],[CREATE_DT],[CHECKER_ID],[APPROVE_DT],[BRANCH_CREATE],[AUTH_STATUS_KT],[CREATE_DT_KT],[APPROVE_DT_KT],[MAKER_ID_KT],[CHECKER_ID_KT],[REPORT_STATUS], [BRANCH_ID_OLD], [DEPT_ID_OLD], [EMP_ID_OLD], [REMAIN_VALUE])
155
		  VALUES(@TRANSFER_MULTI_ID ,@p_TRANS_MULTI_MASTER_ID ,@ASSET_ID ,@BRANCH_ID ,@DEPT_ID ,@EMP_ID ,CONVERT(DATETIME, @p_TRANSFER_DT, 103) ,@DESCRIPTION ,@LOCATION ,@p_RECORD_STATUS ,@p_AUTH_STATUS ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_CHECKER_ID ,CONVERT(DATETIME, @p_APPROVE_DT, 103) ,@p_BRANCH_CREATE ,@p_AUTH_STATUS_KT ,CONVERT(DATETIME, @p_CREATE_DT_KT, 103) ,CONVERT(DATETIME, @p_APPROVE_DT_KT, 103) ,@p_MAKER_ID_KT ,@p_CHECKER_ID_KT ,'N',
156
		  @BRANCH_ID_OLD, @DEPT_ID_OLD , @EMP_ID_OLD,@REMAIN_VALUE)
157
		  IF @@Error <> 0 GOTO ABORT
158

    
159
		  SET @COUNT = @COUNT + 1;
160

    
161
			FETCH NEXT FROM XmlData INTO  @TRANSFER_MULTI_ID,@ASSET_ID,@BRANCH_ID,@DEPT_ID,@EMP_ID,@LOCATION,@DESCRIPTION, @REMAIN_VALUE
162
		END
163
			CLOSE XmlData
164
		DEALLOCATE XmlData
165

    
166
		-- GIANT 21/09/2021
167
		INSERT INTO dbo.PL_PROCESS
168
					(
169
						REQ_ID,
170
						PROCESS_ID,
171
						CHECKER_ID,
172
						APPROVE_DT,
173
						PROCESS_DESC,NOTES
174
					)
175
					VALUES
176
					(   @p_TRANS_MULTI_MASTER_ID,        -- REQ_ID - varchar(15)
177
						'UPDATE',        -- PROCESS_ID - varchar(10)
178
						@p_MAKER_ID,        -- CHECKER_ID - varchar(15)
179
						GETDATE(), -- APPROVE_DT - datetime
180
					   N'Cập nhật phiếu điều chuyển thành công' ,
181
					   N'Đơn vị cập nhật phiếu'      -- PROCESS_DESC - nvarchar(1000)
182
					)
183

    
184
COMMIT TRANSACTION
185
		SELECT '0' as Result, @p_TRANS_MULTI_MASTER_ID  TRANS_MULTI_MASTER_ID, '' ErrorDesc
186
		RETURN '0'
187
ABORT:
188
BEGIN
189
		CLOSE XmlData
190
		DEALLOCATE XmlData
191
		ROLLBACK TRANSACTION
192
		SELECT '-1' as Result, '' TRANS_MULTI_MASTER_ID, '' ErrorDesc
193
		RETURN '-1'
194
End
195