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
|
|