1
|
CREATE OR ALTER PROCEDURE dbo.ASS_TRANSFER_MULTI_Master_SendAppr
|
2
|
@p_TRANSFER_MULTI_ID VARCHAR(15) = NULL,
|
3
|
@p_TYPE_APP NVARCHAR(15) = NUll,
|
4
|
@p_USER_LOGIN VARCHAR(15) = NULL,
|
5
|
@p_DESC NVARCHAR(max) = NULL
|
6
|
AS
|
7
|
|
8
|
DECLARE @ASSET_ID_LST VARCHAR(MAX), @CURRENT_TRANS_ERROR NVARCHAR(MAX)
|
9
|
|
10
|
|
11
|
BEGIN TRANSACTION
|
12
|
DECLARE @PRICE_OF_ASSET DECIMAL = (SELECT MAX(A.BUY_PRICE) FROM ASS_TRANSFER_MULTI_DT ATMD LEFT JOIN ASS_MASTER A ON A.ASSET_ID = ATMD.ASSET_ID WHERE ATMD.TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID)
|
13
|
|
14
|
DECLARE @BRANCH_ID VARCHAR(15) = (SELECT TU.TLSUBBRID FROM TL_USER TU WHERE TU.TLNANME = @p_USER_LOGIN)
|
15
|
DECLARE @DEP_ID VARCHAR(15) = (SELECT TU.SECUR_CODE FROM TL_USER TU WHERE TU.TLNANME = @p_USER_LOGIN)
|
16
|
DECLARE @NOTISENDAPP NVARCHAR(MAX) = N' đã được gửi phê duyệt thành công. Vui lòng đợi bộ phận phê duyệt xác nhận.'
|
17
|
DECLARE @NOTISENDAPPZ NVARCHAR(MAX) = N'Trưởng đơn vị ' + (SELECT CB.BRANCH_NAME FROM TL_USER TU LEFT JOIN CM_BRANCH CB ON TU.TLSUBBRID = CB.BRANCH_ID WHERE TU.TLNANME = @p_USER_LOGIN)
|
18
|
+ N' xác nhận điều chuyển'
|
19
|
|
20
|
DECLARE @SL_PYC INT
|
21
|
DECLARE @TYPE_PYC VARCHAR(15) = (SELECT TOP 1 B.TYPE_XL FROM ASS_TRANSFER_MULTI_MASTER A
|
22
|
LEFT JOIN TR_REQUEST_SHOP_DOC_DT B ON A.REQ_ID = B.REQ_DOC_ID
|
23
|
WHERE TRANS_MULTI_MASTER_ID=@p_TRANSFER_MULTI_ID)
|
24
|
DECLARE @PROCESS_C VARCHAR(20) = (SELECT TOP 1 PROCESS_ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_TRANSFER_MULTI_ID AND STATUS='C')
|
25
|
DECLARE @PARENT_ID VARCHAR(20)
|
26
|
DECLARE @DEP_QLTS VARCHAR(20), @DEP_DVNB VARCHAR(20), @DEP_HTKD VARCHAR(20)
|
27
|
SET @DEP_QLTS = (SELECT TOP 1 sp.ParaValue FROM SYS_PARAMETERS sp WHERE sp.ParaKey = 'DEP_QLTS')
|
28
|
SET @DEP_DVNB = (SELECT TOP 1 sp.ParaValue FROM SYS_PARAMETERS sp WHERE sp.ParaKey = 'DEP_TTQLTS')
|
29
|
SET @DEP_HTKD = (SELECT TOP 1 sp.ParaValue FROM SYS_PARAMETERS sp WHERE sp.ParaKey = 'DEP_KQLTS')
|
30
|
IF (@p_TYPE_APP = 'S_TDV')
|
31
|
BEGIN
|
32
|
-- KIỂM TRA TÀI SẢN ĐANG TREO TRONG GIAO DỊCH KHÁC
|
33
|
SET @ASSET_ID_LST = (SELECT B.ASSET_ID + '|' FROM (SELECT A.ASSET_ID
|
34
|
FROM ASS_TRANSFER_MULTI_DT A
|
35
|
where A.TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID) B
|
36
|
FOR XML PATH (''))
|
37
|
SELECT @CURRENT_TRANS_ERROR = dbo.ASSET_CHECK_CURRENT_TRANS(@ASSET_ID_LST)
|
38
|
IF(@CURRENT_TRANS_ERROR IS NOT NULL AND @CURRENT_TRANS_ERROR <> '')
|
39
|
BEGIN
|
40
|
ROLLBACK TRANSACTION
|
41
|
SELECT '-1' as Result, '' WH_O_HCQT_MUL_ID, @CURRENT_TRANS_ERROR ErrorDesc
|
42
|
RETURN '-1'
|
43
|
END
|
44
|
--CHECK MAPPING TT/PB/K
|
45
|
DECLARE @HS TABLE(ID INT IDENTITY, DEP VARCHAR(50), KHOI VARCHAR(50), TT VARCHAR(50))
|
46
|
|
47
|
INSERT INTO @HS SELECT A.DEPT_ID, A.KHOI_ID, A.CENTER_ID FROM ASS_TRANSFER_MULTI_DT A
|
48
|
LEFT JOIN CM_BRANCH CB ON A.BRANCH_ID = CB.BRANCH_ID WHERE A.TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID AND CB.BRANCH_TYPE ='HS'
|
49
|
|
50
|
IF(EXISTS(SELECT * FROM @HS WHERE 1=1 AND (DEP IS NULL OR DEP = '' )
|
51
|
AND (KHOI IS NULL OR KHOI = '' )
|
52
|
AND (TT IS NULL OR TT = '' )))
|
53
|
BEGIN
|
54
|
ROLLBACK TRANSACTION
|
55
|
SELECT '-1' Result, N'Gửi duyệt thất bại! Thông tin điều chuyển phiếu số: '+@p_TRANSFER_MULTI_ID+
|
56
|
N'</br> Đơn vị nhận Hội sở cần chọn Phòng ban nhận hoặc Khối nhận hoặc Trung tâm nhận. Vui lòng xử lý phiếu' ErrorDesc
|
57
|
RETURN '-1'
|
58
|
END
|
59
|
UPDATE ASS_TRANSFER_MULTI_MASTER SET AUTH_STATUS = 'U'
|
60
|
WHERE TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID
|
61
|
IF @@ERROR <> 0 GOTO ABORT
|
62
|
--khiemchg tạo bảng tạm chứa các loại tài sản điều chuyển sai số lượng
|
63
|
-- DECLARE @check_QTY TABLE(QTY_DC DECIMAL, GROUP_CODE NVARCHAR(MAX),GROUP_NAME NVARCHAR(MAX), QTY_PYC DECIMAL)
|
64
|
-- INSERT INTO @check_QTY SELECT A.QTY AS QTY_DC,A.GROUP_CODE, A.GROUP_NAME, ISNULL(B.QTY_ETM, 0.00) AS QTY_PYC
|
65
|
-- FROM
|
66
|
-- (SELECT COUNT(A.ASSET_ID) AS QTY, AG.GROUP_CODE, AG.GROUP_NAME
|
67
|
-- FROM ASS_TRANSFER_MULTI_DT A
|
68
|
-- LEFT JOIN ASS_MASTER AM ON A.ASSET_ID = AM.ASSET_ID
|
69
|
-- LEFT JOIN ASS_GROUP AG ON AM.GROUP_ID = AG.GROUP_ID
|
70
|
-- LEFT JOIN ASS_TRANSFER_MULTI_MASTER ATMM ON A.TRANS_MULTI_MASTER_ID = ATMM.TRANS_MULTI_MASTER_ID
|
71
|
-- WHERE ATMM.REQ_ID = (SELECT ATM.REQ_ID FROM ASS_TRANSFER_MULTI_MASTER ATM WHERE ATM.TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID)
|
72
|
-- AND (ATMM.AUTH_STATUS <> 'E' OR ATMM.AUTH_STATUS <> 'R')
|
73
|
-- GROUP BY AG.GROUP_CODE, AG.GROUP_NAME) A
|
74
|
-- LEFT JOIN (SELECT TRSDD.QTY_ETM, AG2.GROUP_CODE, AG2.GROUP_NAME FROM TR_REQUEST_SHOP_DOC_DT TRSDD
|
75
|
-- LEFT JOIN ASS_GROUP AG2 ON TRSDD.ASS_GROUP_ID = AG2.GROUP_ID
|
76
|
-- WHERE
|
77
|
-- TRSDD.REQ_DOC_ID = (SELECT ATMM.REQ_ID FROM ASS_TRANSFER_MULTI_MASTER ATMM WHERE ATMM.TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID)
|
78
|
-- AND TRSDD.TYPE_XL = 'CPDC') B ON A.GROUP_CODE = B.GROUP_CODE
|
79
|
-- WHERE A.QTY > B.QTY_ETM
|
80
|
--
|
81
|
-- DECLARE @QTY_ERROR NVARCHAR(MAX) = (SELECT STUFF((SELECT ', ' + GROUP_NAME FROM @check_QTY FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, ''))
|
82
|
-- IF((SELECT COUNT(*) FROM @check_QTY) > 0)
|
83
|
-- BEGIN
|
84
|
-- ROLLBACK TRANSACTION
|
85
|
-- SELECT '-1' Result, N'Gửi duyệt thất bại! Thông tin điều chuyển phiếu số: '+@p_TRANSFER_MULTI_ID + '<br/>' +
|
86
|
-- N' Số lượng tài sản thuộc loại: "'+ @QTY_ERROR + N'" không được lớn hơn số lượng tài sản được cấp điều chuyển theo Phiếu yêu cầu.'
|
87
|
-- + N' Vui lòng xử lý phiếu' ErrorDesc
|
88
|
-- RETURN '-1'
|
89
|
-- END
|
90
|
--khiemchg.
|
91
|
|
92
|
|
93
|
IF(EXISTS(SELECT 1 FROM dbo.ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID=@p_TRANSFER_MULTI_ID AND AUTH_STATUS='R'))
|
94
|
BEGIN
|
95
|
ROLLBACK TRANSACTION
|
96
|
SELECT '-1' Result, N'Gửi duyệt thất bại! Thông tin điều chuyển phiếu số: '+@p_TRANSFER_MULTI_ID+
|
97
|
N' đang bị từ chối. Vui lòng xử lý phiếu' ErrorDesc
|
98
|
RETURN '-1'
|
99
|
END
|
100
|
IF(EXISTS(SELECT 1 FROM dbo.ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID=@p_TRANSFER_MULTI_ID AND AUTH_STATUS='R'))
|
101
|
BEGIN
|
102
|
ROLLBACK TRANSACTION
|
103
|
SELECT '-1' Result, N'Gửi duyệt thất bại! Thông tin điều chuyển phiếu số: '+@p_TRANSFER_MULTI_ID+
|
104
|
N' đang bị từ chối. Vui lòng xử lý phiếu' ErrorDesc
|
105
|
RETURN '-1'
|
106
|
END
|
107
|
IF(@TYPE_PYC = 'CPDC')
|
108
|
BEGIN
|
109
|
SET @SL_PYC = (SELECT SUM(ISNULL(B.QTY_ETM, 0)) FROM ASS_TRANSFER_MULTI_MASTER A
|
110
|
LEFT JOIN TR_REQUEST_SHOP_DOC_DT B ON A.REQ_ID = B.REQ_DOC_ID
|
111
|
WHERE TRANS_MULTI_MASTER_ID=@p_TRANSFER_MULTI_ID)
|
112
|
IF((SELECT COUNT(ASSET_ID) FROM ASS_TRANSFER_MULTI_DT WHERE TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID) > @SL_PYC)
|
113
|
BEGIN
|
114
|
ROLLBACK TRANSACTION
|
115
|
SELECT '-1' Result, N'Gửi duyệt thất bại! Thông tin điều chuyển phiếu số: '+@p_TRANSFER_MULTI_ID+
|
116
|
N' sai số lượng so với PYC được chọn. Vui lòng xử lý phiếu' ErrorDesc
|
117
|
RETURN '-1'
|
118
|
END
|
119
|
END
|
120
|
|
121
|
UPDATE ASS_TRANSFER_MULTI_MASTER SET AUTH_STATUS = 'U'
|
122
|
WHERE TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID
|
123
|
IF @@ERROR <> 0 GOTO ABORT
|
124
|
|
125
|
-- HUYHT 06/05/2022: THAY ĐỔI TRẠNG THÁI UPDATE CŨ THÀNH UPDATE_HC
|
126
|
UPDATE dbo.PL_PROCESS SET PROCESS_ID = 'UPDATE_HC' WHERE REQ_ID = @p_TRANSFER_MULTI_ID AND PROCESS_ID = 'UPDATE'
|
127
|
UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='C', RECEPTION_DT=GETDATE() WHERE REQ_ID=@p_TRANSFER_MULTI_ID AND PROCESS_ID='QLTS_D'
|
128
|
INSERT INTO dbo.PL_PROCESS(REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES)
|
129
|
VALUES(@p_TRANSFER_MULTI_ID, 'SEND', @p_USER_LOGIN, GETDATE(),
|
130
|
N'Gửi Trưởng đơn vị phê duyệt', N'Nhân viên tạo phiếu và gửi phê duyệt thành công')
|
131
|
UPDATE PL_REQUEST_PROCESS SET STATUS = 'P' WHERE REQ_ID = @p_TRANSFER_MULTI_ID AND PROCESS_ID = 'ADDNEW'
|
132
|
UPDATE ASS_TRANSFER_MULTI_MASTER SET STATUS = 'QLTS_D'
|
133
|
WHERE TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID
|
134
|
--khiemchg update treo tài sản khi thực hiện điều chuyển
|
135
|
UPDATE ASS_MASTER SET CURRENT_TRANS = @p_TRANSFER_MULTI_ID, CURRENT_TRANS_TYPE = 'ASS_TF_MUL'
|
136
|
WHERE ASSET_ID IN (SELECT ASSET_ID FROM ASS_TRANSFER_MULTI_DT WHERE TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID)
|
137
|
IF @@ERROR <> 0 GOTO ABORT
|
138
|
BEGIN
|
139
|
-- IF(@PRICE_OF_ASSET <= 30000000)
|
140
|
-- BEGIN
|
141
|
--SET @PARENT_ID = 'QLTS_D'
|
142
|
-- END
|
143
|
--IF(@PRICE_OF_ASSET > 30000000 AND @PRICE_OF_ASSET <= 50000000)
|
144
|
-- IF(@PRICE_OF_ASSET > 30000000)
|
145
|
-- BEGIN
|
146
|
-- INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID, DEP_ID)
|
147
|
-- VALUES(@p_TRANSFER_MULTI_ID,'TT_DVNB','U','GDDV_QLTS','DV0001','QLTS_D', @DEP_DVNB)
|
148
|
-- SET @PARENT_ID = 'TT_DVNB'
|
149
|
-- END
|
150
|
-- ELSE IF (@PRICE_OF_ASSET > 50000000 AND @PRICE_OF_ASSET <= 100000000)
|
151
|
-- BEGIN
|
152
|
-- INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID, DEP_ID)
|
153
|
-- VALUES(@p_TRANSFER_MULTI_ID,'TT_DVNB','C','GDDV_QLTS','DV0001','QLTS_D', @DEP_DVNB)
|
154
|
--
|
155
|
---- INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID, DEP_ID)
|
156
|
---- VALUES(@p_TRANSFER_MULTI_ID,'K_HTKD','U','GDDV','DV0001','TT_DVNB', @DEP_HTKD)
|
157
|
--
|
158
|
-- SET @PARENT_ID = 'TT_DVNB'
|
159
|
-- END
|
160
|
-- ELSE IF (@PRICE_OF_ASSET > 100000000)
|
161
|
-- BEGIN
|
162
|
-- INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID, DEP_ID)
|
163
|
-- VALUES(@p_TRANSFER_MULTI_ID,'TT_DVNB','C','GDDV_QLTS','DV0001','QLTS_D', @DEP_DVNB)
|
164
|
--
|
165
|
---- INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID, DEP_ID)
|
166
|
---- VALUES(@p_TRANSFER_MULTI_ID,'K_HTKD','U','GDDV','DV0001','TT_DVNB', @DEP_HTKD)
|
167
|
----
|
168
|
---- INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID)
|
169
|
---- VALUES(@p_TRANSFER_MULTI_ID,'TGD','U','TGD','DV0001','K_HTKD')
|
170
|
--
|
171
|
-- SET @PARENT_ID = 'TT_DVNB'
|
172
|
-- END
|
173
|
|
174
|
SET @PARENT_ID = 'QLTS_D'
|
175
|
|
176
|
--Khiemchg lấy danh sách đơn vị nhận và cho
|
177
|
DECLARE @lstBranch TABLE
|
178
|
(
|
179
|
ID INT IDENTITY,
|
180
|
Branch_Id VARCHAR(50),
|
181
|
Dep_Id VARCHAR(50),
|
182
|
Center_Id VARCHAR(50),
|
183
|
Khoi_Id VARCHAR(50)
|
184
|
)
|
185
|
DECLARE @temp TABLE
|
186
|
(
|
187
|
BRN_SD VARCHAR(50),
|
188
|
K_SD VARCHAR(50),
|
189
|
TT_SD VARCHAR(50),
|
190
|
DEP_SD VARCHAR(50),
|
191
|
BRN_N VARCHAR(50),
|
192
|
K_N VARCHAR(50),
|
193
|
TT_N VARCHAR(50),
|
194
|
DEP_N VARCHAR(50)
|
195
|
)
|
196
|
INSERT INTO @temp
|
197
|
SELECT DISTINCT BRANCH_ID_OLD, KHOI_ID_OLD, CENTER_ID_OLD, DEPT_ID_OLD,
|
198
|
BRANCH_ID, KHOI_ID, CENTER_ID, DEPT_ID
|
199
|
|
200
|
FROM ASS_TRANSFER_MULTI_DT
|
201
|
WHERE TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID
|
202
|
|
203
|
-- DELETE @temp WHERE (BRN_SD = BRN_N AND DEP_SD = DEP_N AND K_SD = K_N AND TT_SD = TT_N)
|
204
|
-- OR (BRN_SD = BRN_N AND DEP_SD = DEP_N AND K_SD = K_N AND TT_SD = TT_N)
|
205
|
DELETE @temp WHERE (BRN_SD = BRN_N AND DEP_SD = DEP_N)
|
206
|
|
207
|
|
208
|
|
209
|
INSERT INTO @lstBranch(Branch_Id, Dep_Id, Center_Id, Khoi_Id) SELECT DISTINCT BRN_SD, DEP_SD, TT_SD, K_SD FROM @temp
|
210
|
INSERT INTO @lstBranch(Branch_Id, Dep_Id, Center_Id, Khoi_Id) SELECT DISTINCT BRN_N, DEP_N, TT_N, K_N FROM @temp
|
211
|
|
212
|
DECLARE @int INT = 1
|
213
|
DECLARE @countt INT = (SELECT COUNT(ID) FROM @lstBranch)
|
214
|
--IF(@count > 1)
|
215
|
BEGIN
|
216
|
WHILE @int <= @countt
|
217
|
BEGIN
|
218
|
DECLARE @BRANCH VARCHAR(20) = (SELECT Branch_Id FROM @lstBranch WHERE ID = @int)
|
219
|
DECLARE @DEPT VARCHAR(20) = (SELECT Dep_Id FROM @lstBranch WHERE ID = @int)
|
220
|
DECLARE @CENTER VARCHAR(20) = (SELECT Center_Id FROM @lstBranch WHERE ID = @int)
|
221
|
DECLARE @KHOI VARCHAR(20) = (SELECT Khoi_Id FROM @lstBranch WHERE ID = @int)
|
222
|
|
223
|
|
224
|
IF(@BRANCH <> '' OR @BRANCH IS NOT NULL)
|
225
|
BEGIN
|
226
|
IF((@KHOI IS NOT NULL AND @KHOI <> '') AND (@CENTER IS NOT NULL AND @CENTER <> '') AND (@DEPT IS NOT NULL AND @DEPT <> ''))
|
227
|
BEGIN
|
228
|
INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID, DEP_ID)
|
229
|
VALUES(@p_TRANSFER_MULTI_ID,'XNGN','U','GDDV',@BRANCH,@PARENT_ID, @DEPT)
|
230
|
END
|
231
|
ELSE IF((@KHOI IS NOT NULL AND @KHOI <> '') AND (@CENTER IS NOT NULL AND @CENTER <> '') AND (@DEPT IS NULL OR @DEPT = ''))
|
232
|
BEGIN
|
233
|
INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID, DEP_ID)
|
234
|
VALUES(@p_TRANSFER_MULTI_ID,'XNGN','U','GDDV',@BRANCH,@PARENT_ID, @CENTER)
|
235
|
END
|
236
|
ELSE IF((@KHOI IS NOT NULL AND @KHOI <> '') AND (@CENTER IS NULL OR @CENTER = '') AND (@DEPT IS NULL OR @DEPT = ''))
|
237
|
BEGIN
|
238
|
INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID, DEP_ID)
|
239
|
VALUES(@p_TRANSFER_MULTI_ID,'XNGN','U','GDDV',@BRANCH,@PARENT_ID, @KHOI)
|
240
|
END
|
241
|
ELSE
|
242
|
BEGIN
|
243
|
INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID, DEP_ID)
|
244
|
VALUES(@p_TRANSFER_MULTI_ID,'XNGN','U','GDDV',@BRANCH,@PARENT_ID, @DEPT)
|
245
|
END
|
246
|
END
|
247
|
SET @int = @int + 1
|
248
|
END
|
249
|
END
|
250
|
IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS PRP WHERE PRP.REQ_ID = @p_TRANSFER_MULTI_ID AND PRP.PROCESS_ID = 'XNGN')) SET @PARENT_ID = 'XNGN'
|
251
|
INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],PARENT_PROCESS_ID)
|
252
|
VALUES(@p_TRANSFER_MULTI_ID,'APPROVE','U',@PARENT_ID)
|
253
|
END
|
254
|
END
|
255
|
ELSE IF (@p_TYPE_APP = 'CONFIRM')
|
256
|
BEGIN
|
257
|
IF (@PROCESS_C = 'XNGN')
|
258
|
BEGIN
|
259
|
IF((SELECT CB.BRANCH_TYPE FROM TL_USER TU LEFT JOIN CM_BRANCH CB ON TU.TLSUBBRID = CB.BRANCH_ID WHERE TU.TLNANME = @p_USER_LOGIN) = 'HS')
|
260
|
BEGIN
|
261
|
SET @NOTISENDAPP = N' Trưởng đơn vị ' + (SELECT CB.DEP_NAME FROM TL_USER TU LEFT JOIN CM_DEPARTMENT CB ON TU.SECUR_CODE = CB.DEP_ID WHERE TU.TLNANME = @p_USER_LOGIN)
|
262
|
+ N' đã xác nhận điều chuyển thành công'
|
263
|
SET @NOTISENDAPPZ = N' Trưởng đơn vị ' + (SELECT CB.DEP_NAME FROM TL_USER TU LEFT JOIN CM_DEPARTMENT CB ON TU.SECUR_CODE = CB.DEP_ID WHERE TU.TLNANME = @p_USER_LOGIN)
|
264
|
+ N' đã xác nhận điều chuyển'
|
265
|
END
|
266
|
UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='P', CHECKER_ID = @p_USER_LOGIN, APPROVE_DT=GETDATE()
|
267
|
WHERE REQ_ID = @p_TRANSFER_MULTI_ID AND PROCESS_ID='XNGN'
|
268
|
AND ((@BRANCH_ID = 'DV0001' AND BRANCH_ID = @BRANCH_ID AND (DEP_ID = @DEP_ID
|
269
|
OR DEP_ID IN (SELECT DEPT_ID FROM TL_USER_GET_ROLES(@p_USER_LOGIN) GROUP BY DEPT_ID))
|
270
|
) OR (@BRANCH_ID <> 'DV0001' AND BRANCH_ID = @BRANCH_ID))
|
271
|
AND STATUS = 'C'
|
272
|
|
273
|
INSERT INTO dbo.PL_PROCESS
|
274
|
(
|
275
|
REQ_ID,
|
276
|
PROCESS_ID,
|
277
|
CHECKER_ID,
|
278
|
APPROVE_DT,
|
279
|
PROCESS_DESC,
|
280
|
NOTES
|
281
|
)
|
282
|
VALUES
|
283
|
( @p_TRANSFER_MULTI_ID,
|
284
|
'CONFIRM',
|
285
|
@p_USER_LOGIN,
|
286
|
GETDATE(),
|
287
|
N'Trưởng đơn vị xác nhận thành công' ,
|
288
|
@NOTISENDAPPZ
|
289
|
)
|
290
|
|
291
|
IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE PROCESS_ID = 'XNGN' AND STATUS = 'C' AND REQ_ID = @p_TRANSFER_MULTI_ID) AND (SELECT ATMM.AUTH_STATUS FROM ASS_TRANSFER_MULTI_MASTER ATMM WHERE ATMM.TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID) = 'U')
|
292
|
BEGIN
|
293
|
UPDATE ASS_TRANSFER_MULTI_MASTER SET STATUS = 'APPROVE' , AUTH_STATUS = 'A' WHERE [TRANS_MULTI_MASTER_ID] = @p_TRANSFER_MULTI_ID
|
294
|
|
295
|
UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='C', APPROVE_DT=GETDATE()
|
296
|
WHERE REQ_ID = @p_TRANSFER_MULTI_ID AND PROCESS_ID = 'APPROVE' AND STATUS = 'U'
|
297
|
|
298
|
INSERT INTO dbo.PL_PROCESS
|
299
|
(
|
300
|
REQ_ID,
|
301
|
PROCESS_ID,
|
302
|
APPROVE_DT,
|
303
|
PROCESS_DESC,
|
304
|
NOTES
|
305
|
)
|
306
|
VALUES
|
307
|
( @p_TRANSFER_MULTI_ID,
|
308
|
'CONFIRMED',
|
309
|
GETDATE(),
|
310
|
N'Hoàn thành xác nhận tài sản',
|
311
|
N'Phiếu hoàn thành xác nhận tài sản sau khi Trưởng đơn vị bên cho và nhận xác nhận'
|
312
|
)
|
313
|
END
|
314
|
END
|
315
|
END
|
316
|
ELSE IF (@p_TYPE_APP = 'KT')
|
317
|
BEGIN
|
318
|
IF((SELECT CORE_NOTE FROM ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID) IS NULL OR (SELECT CORE_NOTE FROM ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID) = '')
|
319
|
BEGIN
|
320
|
ROLLBACK TRANSACTION
|
321
|
SELECT '-1' Result, N'Gửi duyệt thất bại! Thông tin điều chuyển phiếu số: '+@p_TRANSFER_MULTI_ID+
|
322
|
N' đang trống diễn giải hạch toán' ErrorDesc
|
323
|
RETURN '-1'
|
324
|
END
|
325
|
UPDATE ASS_TRANSFER_MULTI_MASTER SET AUTH_STATUS_KT = 'U' WHERE TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID
|
326
|
|
327
|
INSERT INTO dbo.PL_PROCESS
|
328
|
(
|
329
|
REQ_ID,
|
330
|
PROCESS_ID,
|
331
|
CHECKER_ID,
|
332
|
APPROVE_DT,
|
333
|
PROCESS_DESC,
|
334
|
NOTES
|
335
|
)
|
336
|
VALUES
|
337
|
( @p_TRANSFER_MULTI_ID,
|
338
|
'GDV',
|
339
|
@p_USER_LOGIN,
|
340
|
GETDATE(),
|
341
|
N'Giao dịch viên Kế toán gửi Kiểm soát viên phê duyệt' ,
|
342
|
N'Giao dịch viên Kế toán gửi duyệt'
|
343
|
)
|
344
|
END
|
345
|
|
346
|
|
347
|
--PHUCVH 06/03/23 BỔ SUNG MESSAGE
|
348
|
DECLARE @MESSAGE NVARCHAR(MAX)
|
349
|
IF (@p_TYPE_APP = 'S_TDV')
|
350
|
BEGIN
|
351
|
DECLARE @REQ_DOC_ID VARCHAR(15) = (SELECT TOP 1 atmm.REQ_ID FROM ASS_TRANSFER_MULTI_MASTER atmm WHERE atmm.TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID)
|
352
|
IF(@REQ_DOC_ID IS NOT NULL AND @REQ_DOC_ID <> '')
|
353
|
BEGIN
|
354
|
SET @MESSAGE = '<br /><br />' + (
|
355
|
SELECT REPLACE(
|
356
|
(SELECT STUFF((SELECT ' ' + DDDD.MESSAGE FROM ( SELECT CASE WHEN ROW_NUMBER() OVER (ORDER BY (SELECT 0)) = 1 THEN ''ELSE '/' END + N'Loại tài sản: ' + ISNULL(BB.GROUP_NAME,'') + N' | Số lượng yêu cầu: ' + CONVERT(VARCHAR(10),ISNULL(AA.QTY_ETM,0)) + N' | Số lượng đã điều chuyển: ' + CONVERT(VARCHAR(10),ISNULL(AA.ALLOCATED,0)) +
|
357
|
N' | Số lượng điều chuyển trong phiếu hiện tại: ' + CONVERT(VARCHAR(10),ISNULL((SELECT SUM(TMP.COUNT) FROM (
|
358
|
(SELECT COUNT(*) AS COUNT
|
359
|
FROM ASS_TRANSFER_MULTI_DT A
|
360
|
LEFT JOIN ASS_TRANSFER_MULTI_MASTER B ON A.TRANS_MULTI_MASTER_ID = B.TRANS_MULTI_MASTER_ID
|
361
|
LEFT JOIN ASS_MASTER C ON A.ASSET_ID = C.ASSET_ID
|
362
|
WHERE A.TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID
|
363
|
GROUP BY B.REQ_ID, C.GROUP_ID, C.REQ_ID
|
364
|
HAVING B.REQ_ID = @REQ_DOC_ID
|
365
|
AND ((C.GROUP_ID = BB.GROUP_ID
|
366
|
AND (SELECT COUNT(*) FROM ASS_GROUP ag WHERE ag.GROUP_CODE = BB.GROUP_CODE
|
367
|
AND ag.GROUP_ID IN (SELECT trsdd.ASS_GROUP_ID FROM TR_REQUEST_SHOP_DOC_DT trsdd WHERE trsdd.REQ_DOC_ID = AA.REQ_DOC_ID
|
368
|
AND trsdd.REQ_DT_TYPE = 'XKSD' AND trsdd.TYPE_XL = 'CPDC'))>1 )
|
369
|
OR C.GROUP_ID IN (SELECT ag.GROUP_ID FROM ASS_GROUP ag WHERE ag.GROUP_CODE = BB.GROUP_CODE))
|
370
|
AND (C.REQ_ID IS NULL OR C.REQ_ID = '')))TMP),0)) AS MESSAGE
|
371
|
FROM TR_REQUEST_SHOP_DOC_DT AA
|
372
|
LEFT JOIN ASS_GROUP BB ON AA.ASS_GROUP_ID = BB.GROUP_ID
|
373
|
WHERE AA.REQ_DOC_ID = @REQ_DOC_ID AND AA.REQ_DT_TYPE = 'XKSD' AND AA.TYPE_XL = 'CPDC') DDDD FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '')),'/','<br />'))
|
374
|
END
|
375
|
|
376
|
|
377
|
--CHECK ALLOCATED
|
378
|
|
379
|
DECLARE @TBL_CHECK_UPD TABLE (REQDT_ID VARCHAR(15), ASS_GROUP_ID VARCHAR(15), REQ_DOC_ID VARCHAR(15))
|
380
|
DECLARE @TBL_GROUP_CODE_ASS_USE TABLE (GROUP_ID VARCHAR(15))
|
381
|
|
382
|
INSERT INTO @TBL_CHECK_UPD
|
383
|
SELECT A.REQDT_ID, A.ASS_GROUP_ID,A.REQ_DOC_ID
|
384
|
FROM TR_REQUEST_SHOP_DOC_DT A
|
385
|
WHERE A.REQ_DOC_ID = @REQ_DOC_ID AND A.REQ_DT_TYPE = 'XKSD' AND A.TYPE_XL = 'CPDC'
|
386
|
|
387
|
DECLARE @C_REQDT_ID VARCHAR(15), @C_ASS_GROUP_ID VARCHAR(15), @C_REQ_DOC_ID VARCHAR(15)
|
388
|
DECLARE @IS_MULTI_GROUP VARCHAR(1) = '0'
|
389
|
DECLARE DATA_CURSOR_CHECK_UPD CURSOR FOR
|
390
|
SELECT * FROM @TBL_CHECK_UPD
|
391
|
|
392
|
OPEN DATA_CURSOR_CHECK_UPD
|
393
|
|
394
|
FETCH NEXT FROM DATA_CURSOR_CHECK_UPD INTO
|
395
|
@C_REQDT_ID,@C_ASS_GROUP_ID,@C_REQ_DOC_ID
|
396
|
|
397
|
DECLARE @ALLOCATED INT,@ALLOCATED_CURR INT, @ALLOCATED_OLD INT, @QTY_ETM INT
|
398
|
|
399
|
WHILE @@FETCH_STATUS = 0
|
400
|
BEGIN
|
401
|
SET @IS_MULTI_GROUP = '0'
|
402
|
DELETE @TBL_GROUP_CODE_ASS_USE
|
403
|
INSERT INTO @TBL_GROUP_CODE_ASS_USE (GROUP_ID)
|
404
|
SELECT A.GROUP_ID FROM ASS_GROUP A WHERE A.GROUP_CODE IN (SELECT B.GROUP_CODE FROM ASS_GROUP B WHERE B.GROUP_ID = @C_ASS_GROUP_ID)
|
405
|
|
406
|
IF((SELECT COUNT(*) FROM @TBL_GROUP_CODE_ASS_USE WHERE GROUP_ID IN (SELECT trsdd.ASS_GROUP_ID FROM TR_REQUEST_SHOP_DOC_DT trsdd WHERE trsdd.REQ_DOC_ID = @C_REQ_DOC_ID AND trsdd.REQ_DT_TYPE = 'XKSD' AND trsdd.TYPE_XL = 'CPDC')) > 1)
|
407
|
BEGIN
|
408
|
SET @IS_MULTI_GROUP = '1'
|
409
|
END
|
410
|
|
411
|
SET @ALLOCATED_CURR = (SELECT SUM(TMP.COUNT) FROM (
|
412
|
(SELECT COUNT(*) AS COUNT
|
413
|
FROM ASS_TRANSFER_MULTI_DT A
|
414
|
LEFT JOIN ASS_TRANSFER_MULTI_MASTER B ON A.TRANS_MULTI_MASTER_ID = B.TRANS_MULTI_MASTER_ID
|
415
|
LEFT JOIN ASS_MASTER C ON A.ASSET_ID = C.ASSET_ID
|
416
|
WHERE A.TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID
|
417
|
GROUP BY B.REQ_ID, C.GROUP_ID, C.REQ_ID
|
418
|
HAVING B.REQ_ID = @C_REQ_DOC_ID
|
419
|
AND C.GROUP_ID IN (SELECT GROUP_ID FROM @TBL_GROUP_CODE_ASS_USE WHERE ((@IS_MULTI_GROUP = '1' AND C.GROUP_ID = @C_ASS_GROUP_ID) OR @IS_MULTI_GROUP = '0'))
|
420
|
AND (C.REQ_ID IS NULL OR C.REQ_ID = '')))TMP)
|
421
|
|
422
|
SELECT TOP 1 @ALLOCATED_OLD = trsdd.ALLOCATED, @QTY_ETM = trsdd.QTY_ETM FROM TR_REQUEST_SHOP_DOC_DT trsdd WHERE trsdd.REQDT_ID = @C_REQDT_ID
|
423
|
|
424
|
|
425
|
IF(@QTY_ETM < (ISNULL(@ALLOCATED_OLD,0) + ISNULL(@ALLOCATED_CURR,0)))
|
426
|
BEGIN
|
427
|
ROLLBACK TRANSACTION
|
428
|
CLOSE DATA_CURSOR_CHECK_UPD
|
429
|
DEALLOCATE DATA_CURSOR_CHECK_UPD
|
430
|
SELECT '-1' as Result, '' USER_MASTER_ID, N'Số lượng cấp phát vượt yêu cầu của đơn vị' +ISNULL(@MESSAGE,',') ErrorDesc
|
431
|
RETURN '-1'
|
432
|
END
|
433
|
|
434
|
FETCH NEXT FROM DATA_CURSOR_CHECK_UPD INTO
|
435
|
@C_REQDT_ID,@C_ASS_GROUP_ID,@C_REQ_DOC_ID
|
436
|
END
|
437
|
CLOSE DATA_CURSOR_CHECK_UPD
|
438
|
DEALLOCATE DATA_CURSOR_CHECK_UPD
|
439
|
|
440
|
END
|
441
|
|
442
|
|
443
|
|
444
|
|
445
|
|
446
|
COMMIT TRANSACTION
|
447
|
SELECT '0' as Result, N'Hồ sơ số: '+@p_TRANSFER_MULTI_ID+@NOTISENDAPP + ISNULL(@MESSAGE,'') ErrorDesc, @p_TRANSFER_MULTI_ID TRANS_MULTI_MASTER_ID
|
448
|
RETURN '0'
|
449
|
|
450
|
ABORT:
|
451
|
BEGIN
|
452
|
ROLLBACK TRANSACTION
|
453
|
SELECT '-1' as Result, '' TRANS_MULTI_MASTER_ID, '' ErrorDesc
|
454
|
RETURN '-1'
|
455
|
END
|