1
|
ALTER PROCEDURE dbo.ASS_USE_CONFIRM_MASTER_Ins
|
2
|
@p_BRANCH_ID varchar(15) = NULL,
|
3
|
@p_DEP_ID varchar(15) = NULL,
|
4
|
@p_USE_EXPORT_DT VARCHAR(20) = NULL,
|
5
|
@p_USER_MASTER_ID varchar(15) = null,
|
6
|
@p_USER_EXPORT nvarchar(200) = NULL,
|
7
|
@p_NOTES nvarchar(1000) = NULL,
|
8
|
@p_RECORD_STATUS varchar(1) = NULL,
|
9
|
@p_AUTH_STATUS varchar(1) = NULL,
|
10
|
@p_MAKER_ID varchar(100) = NULL,
|
11
|
@p_CREATE_DT VARCHAR(20) = NULL,
|
12
|
@p_CHECKER_ID varchar(100) = NULL,
|
13
|
@p_APPROVE_DT VARCHAR(20) = NULL,
|
14
|
@p_AUTH_STATUS_KT varchar(15) = NULL,
|
15
|
@p_CREATE_DT_KT varchar(100) = NULL,
|
16
|
@p_APPROVE_DT_KT VARCHAR(20) = NULL,
|
17
|
@p_MAKER_ID_KT varchar(100) = NULL,
|
18
|
@p_CHECKER_ID_KT varchar(100) = NULL,
|
19
|
@p_REPORT_STATUS varchar(15) = NULL,
|
20
|
@p_BRANCH_CREATE varchar(15) = NULL,
|
21
|
@p_XmlData XML = NUL
|
22
|
AS
|
23
|
--START MOVE TỪ APPROVE HS QUA
|
24
|
DECLARE @l_BRANCH_ID VARCHAR(15)
|
25
|
DECLARE @l_DEPT_ID VARCHAR(15)
|
26
|
DECLARE @l_EMP_ID VARCHAR(15)
|
27
|
DECLARE @l_DIVISION_ID VARCHAR(15)
|
28
|
DECLARE @l_VALUE_ID VARCHAR(15)
|
29
|
|
30
|
--DECLARE @l_LOCATION nvarchar(500)
|
31
|
DECLARE @l_LOCHIST_ID VARCHAR(15)
|
32
|
|
33
|
DECLARE @l_ASSET_ID VARCHAR(15)
|
34
|
DECLARE @l_WAHDT_ID VARCHAR(15)
|
35
|
DECLARE @l_WAH_ID VARCHAR(15)
|
36
|
DECLARE @l_MAKER_ID varchar(15)
|
37
|
|
38
|
DECLARE @l_AMORT_MONTH decimal(18,2)
|
39
|
DECLARE @l_AMORT_START_DATE datetime, @l_AMORT_END_DATE datetime
|
40
|
DECLARE @l_FIRST_AMORT_AMT numeric(18,0)
|
41
|
DECLARE @l_MONTHLY_AMT numeric(18,0)
|
42
|
DECLARE @l_ASS_AMORT_AMT numeric(18,0)
|
43
|
DECLARE @sToday varchar(10) = convert(varchar(10), getdate(), 103)
|
44
|
DECLARE @l_ENTRY_BOOKED varchar(1)
|
45
|
DECLARE @l_HO_BRN_ID varchar(15)
|
46
|
DECLARE @l_AMORT_AMT decimal(18) = NULL
|
47
|
DECLARE @l_BUY_PRICE decimal(18) = NULL
|
48
|
DECLARE @l_ET_ID varchar(15)
|
49
|
DEClare @p_ADDNEW_ID varchar(15)
|
50
|
|
51
|
DECLARE @l_SUPPEND_GL varchar(50)
|
52
|
DECLARE @l_ASSET_GL varchar(50)
|
53
|
declare @l_ASSET_VALUE decimal(18,0)
|
54
|
DECLARE @l_GROUP_ID varchar(15)
|
55
|
DECLARE @l_CORE_NOTE NVARCHAR(500)
|
56
|
DECLARE @l_TYPE_ID varchar(15) = NULL
|
57
|
declare @l_TRN_REF_NO varchar(20)
|
58
|
declare @l_DO_BRANCH_ID varchar(15)
|
59
|
DECLARE @l_AMORT_STATUS VARCHAR(15) = 'CKH'
|
60
|
DECLARE @l_AMORT_MONTH_ASS_USE DECIMAL(18,2) = NULL
|
61
|
declare @l_AUTH_STATUS varchar(15) = ''
|
62
|
declare @l_ASSHIST_ID varchar(15)
|
63
|
--Lay thong tin kho mac dinh
|
64
|
SELECT @l_WAH_ID = P.ParaValue FROM SYS_PARAMETERS P WHERE P.ParaKey='ASSET_WAREHOUSE'
|
65
|
|
66
|
--BRN_ID HOI SO
|
67
|
SELECT @l_HO_BRN_ID = BRANCH_ID FROM CM_BRANCH A WHERE A.BRANCH_TYPE = 'HS'
|
68
|
|
69
|
--Lay branch_id cua user duyet
|
70
|
select @l_DO_BRANCH_ID = a.TLSUBBRID from TL_USER a where a.TLNANME = @p_CHECKER_ID
|
71
|
|
72
|
--Lay suppend GL
|
73
|
SELECT @l_SUPPEND_GL = A.ParaValue FROM SYS_PARAMETERS A WHERE A.ParaKey='ASSET_SUPPEND_GL'
|
74
|
|
75
|
--ASSET_GL
|
76
|
SELECT @l_ASSET_GL = ASSET_ACCTNO FROM ASS_GROUP A WHERE A.GROUP_ID = @l_GROUP_ID
|
77
|
|
78
|
IF (SELECT AUTH_STATUS_KT FROM ASS_USE_MULTI_MASTER WHERE [USER_MASTER_ID] = @p_USER_MASTER_ID) = 'A'
|
79
|
BEGIN
|
80
|
SELECT '-1' as Result, (SELECT ErrorDesc from SYS_ERROR WHERE ErrorCode = 'ASS-99998') ErrorDesc
|
81
|
RETURN '-1'
|
82
|
END
|
83
|
|
84
|
IF(EXISTS(SELECT 1 FROM ASS_USE_CONFIRM_MASTER WHERE USER_MASTER_ID = @p_USER_MASTER_ID))
|
85
|
BEGIN
|
86
|
SELECT '-1' as Result, N'Phiếu xuất sử dụng đã được xác nhận' ErrorDesc
|
87
|
RETURN '-1'
|
88
|
END
|
89
|
--END MOVE TỪ APPROVE HS QUA
|
90
|
|
91
|
DECLARE @TBL_GROUP_CODE_ASS_USE TABLE (GROUP_ID VARCHAR(100))
|
92
|
|
93
|
BEGIN TRANSACTION
|
94
|
DECLARE @l_USER_CONFIRM_MASTER_ID VARCHAR(15)
|
95
|
EXEC SYS_CodeMasters_Gen 'ASS_CONFIRM_USE_MASTER', @l_USER_CONFIRM_MASTER_ID out
|
96
|
IF @l_USER_CONFIRM_MASTER_ID='' OR @l_USER_CONFIRM_MASTER_ID IS NULL GOTO ABORT
|
97
|
INSERT INTO ASS_USE_CONFIRM_MASTER
|
98
|
(
|
99
|
[USER_CONFIRM_MASTER_ID],
|
100
|
[USER_MASTER_ID],
|
101
|
[USE_EXPORT_DT],
|
102
|
[BRANCH_ID],
|
103
|
[DEP_ID],
|
104
|
[MAKER_ID],
|
105
|
[CONFIRM_DT],
|
106
|
[CONFIRM_STATUS]
|
107
|
)
|
108
|
VALUES
|
109
|
(
|
110
|
@l_USER_CONFIRM_MASTER_ID,
|
111
|
@p_USER_MASTER_ID,
|
112
|
CONVERT(DATETIME, @p_USE_EXPORT_DT, 103),
|
113
|
@p_BRANCH_ID,
|
114
|
@p_DEP_ID,
|
115
|
@p_MAKER_ID,
|
116
|
GETDATE(),
|
117
|
'Y'
|
118
|
)
|
119
|
IF @@Error <> 0 GOTO ABORT
|
120
|
|
121
|
|
122
|
-- GIANT INSERT TO TABLE PL_PROCESS
|
123
|
INSERT INTO dbo.PL_PROCESS
|
124
|
(
|
125
|
REQ_ID,
|
126
|
PROCESS_ID,
|
127
|
CHECKER_ID,
|
128
|
APPROVE_DT,
|
129
|
PROCESS_DESC,
|
130
|
NOTES
|
131
|
)
|
132
|
VALUES
|
133
|
( @p_USER_MASTER_ID,
|
134
|
'CONFIRM',
|
135
|
@p_MAKER_ID,
|
136
|
GETDATE(),
|
137
|
N'Xác nhận xuất sử dụng tài sản ' ,
|
138
|
N'Xác nhận xuất sử dụng tài sản thành công'
|
139
|
)
|
140
|
|
141
|
--START MOVE TỪ APPROVE HS QUA
|
142
|
|
143
|
--LUCTV: 26-20-2018 KIEM TRA NEU TINH TRANG DANG LA 'R' THI KHONG CHO PHEP DUYET
|
144
|
IF(EXISTS(SELECT * FROM ASS_USE_MULTI_MASTER WHERE AUTH_STATUS ='R' AND USER_MASTER_ID =@p_USER_MASTER_ID))
|
145
|
BEGIN
|
146
|
ROLLBACK TRANSACTION
|
147
|
SELECT '-1' as Result, N'Thông tin xuất sử dụng tài sản đang bị trả về. Vui lòng cập nhật lại thông tin trước khi duyệt' ErrorDesc
|
148
|
RETURN '-1'
|
149
|
END
|
150
|
|
151
|
DECLARE @USE_MULTI_ID varchar(15)
|
152
|
DECLARE @ASSET_ID varchar(15)
|
153
|
DECLARE DataCusor SCROLL CURSOR
|
154
|
FOR
|
155
|
SELECT A.USE_MULTI_ID,A.ASSET_ID
|
156
|
FROM [dbo].[ASS_USE_MULTI_DT] A
|
157
|
WHERE A.USER_MASTER_ID=@p_USER_MASTER_ID
|
158
|
OPEN DataCusor
|
159
|
|
160
|
FETCH NEXT FROM DataCusor INTO @USE_MULTI_ID,@ASSET_ID
|
161
|
WHILE @@FETCH_STATUS = 0
|
162
|
BEGIN
|
163
|
|
164
|
--Lay thong tin giao dich
|
165
|
SELECT @l_ASSET_ID = ASSET_ID, @l_BRANCH_ID = BRANCH_ID, @l_DEPT_ID = DEPT_ID,
|
166
|
@l_EMP_ID = EMP_ID, @l_DIVISION_ID = DIVISION_ID, @l_CORE_NOTE = CORE_NOTE, @l_AUTH_STATUS = AUTH_STATUS,
|
167
|
@l_AMORT_START_DATE = AMORT_START_DATE, @l_MAKER_ID = MAKER_ID, @l_AMORT_MONTH_ASS_USE = AMORT_MONTH,
|
168
|
@l_AMORT_END_DATE = AMORT_END_DATE
|
169
|
FROM [dbo].[ASS_USE_MULTI_DT]
|
170
|
WHERE [USE_MULTI_ID] = @USE_MULTI_ID
|
171
|
|
172
|
--Lay thong tin so thang khau hao
|
173
|
SELECT @l_AMORT_MONTH = A.AMORT_MONTH, @l_ASS_AMORT_AMT = AMORT_AMT, @l_ENTRY_BOOKED = ENTRY_BOOKED,
|
174
|
@l_AMORT_AMT = A.AMORT_AMT, @l_BUY_PRICE = BUY_PRICE, @l_GROUP_ID = GROUP_ID,@l_TYPE_ID = A.[TYPE_ID]
|
175
|
FROM ASS_MASTER A
|
176
|
WHERE A.ASSET_ID = @l_ASSET_ID
|
177
|
|
178
|
--TINH SO THANG THEO THUC TE KHI XUAT SU DUNG
|
179
|
SET @l_AMORT_MONTH = @l_AMORT_MONTH_ASS_USE
|
180
|
|
181
|
--IF @l_AMORT_MONTH_ASS_USE IS NULL--TRUONG HOP CCLD DO PHCQT XUAT
|
182
|
--BEGIN
|
183
|
-- SET @l_AMORT_END_DATE = NULL;
|
184
|
-- SET @l_MONTHLY_AMT = 0;
|
185
|
-- SET @l_FIRST_AMORT_AMT = 0;
|
186
|
-- SET @l_AMORT_STATUS = 'VNM'
|
187
|
--END
|
188
|
--ELSE
|
189
|
--IF @l_AMORT_MONTH = 0
|
190
|
--BEGIN
|
191
|
-- SET @l_AMORT_END_DATE = NULL;
|
192
|
-- SET @l_MONTHLY_AMT = 0;
|
193
|
-- SET @l_FIRST_AMORT_AMT = 0;
|
194
|
-- SET @l_AMORT_STATUS = 'KKH'
|
195
|
--END
|
196
|
--ELSE
|
197
|
--BEGIN
|
198
|
-- --Tinh ngay ket thuc khau hao
|
199
|
-- IF @l_TYPE_ID = 'TSCD'
|
200
|
-- BEGIN
|
201
|
-- IF @l_AMORT_END_DATE IS NULL OR @l_AMORT_END_DATE = ''
|
202
|
-- SET @l_AMORT_END_DATE = DATEADD(MONTH, @l_AMORT_MONTH, @l_AMORT_START_DATE) - 1
|
203
|
-- --CAP NHAT TRANG THAI KHAU HAO
|
204
|
-- SET @l_AMORT_STATUS = 'CKH'
|
205
|
-- END
|
206
|
-- ELSE
|
207
|
-- BEGIN
|
208
|
-- DECLARE @l_ENDDATE_TEMP DATETIME = (CONVERT(VARCHAR(10),(YEAR(@l_AMORT_START_DATE))) + '-' + CONVERT(VARCHAR(10),MONTH(@l_AMORT_START_DATE))+'-' + '1')
|
209
|
-- SET @l_AMORT_END_DATE = DATEADD(MONTH, @l_AMORT_MONTH, @l_ENDDATE_TEMP ) - 1
|
210
|
|
211
|
-- --CAP NHAT TRANG THAI KHAU HAO
|
212
|
-- SET @l_AMORT_STATUS = 'VNM'
|
213
|
-- END
|
214
|
|
215
|
-- --Tinh so tien khau hao thang dau tien va so tien khau hao hang thang
|
216
|
-- SET @l_MONTHLY_AMT = ROUND(@l_ASS_AMORT_AMT / @l_AMORT_MONTH, -3)
|
217
|
-- SET @l_FIRST_AMORT_AMT = ROUND(@l_MONTHLY_AMT/dbo.[FN_GetDaysInMonth](@l_AMORT_START_DATE) * (DATEDIFF(day,@l_AMORT_START_DATE, dbo.FN_GetLastDayOfMonth(@l_AMORT_START_DATE)) + 1), -3)
|
218
|
-- ----CAP NHAT TRANG THAI KHAU HAO
|
219
|
-- --SET @l_AMORT_STATUS = 'CKH'
|
220
|
--END
|
221
|
|
222
|
--COMMIT TRANSACTION
|
223
|
|
224
|
--BEGIN TRANSACTION
|
225
|
|
226
|
|
227
|
IF @@Error <> 0 GOTO ABORT
|
228
|
|
229
|
|
230
|
|
231
|
DECLARE @l_AMORT_RATE DECIMAL(18,2)
|
232
|
IF @l_AMORT_MONTH > 0 AND @l_AMORT_MONTH IS NOT NULL
|
233
|
SET @l_AMORT_RATE = ROUND((100 /@l_AMORT_MONTH) * 12, 2)
|
234
|
ELSE
|
235
|
BEGIN
|
236
|
SET @l_AMORT_RATE = 0
|
237
|
IF(@l_TYPE_ID = 'CCLD')
|
238
|
SET @l_AMORT_MONTH = 1
|
239
|
END
|
240
|
|
241
|
--Update tai san da xuat su dung
|
242
|
UPDATE ASS_MASTER
|
243
|
SET BRANCH_ID = @l_BRANCH_ID,
|
244
|
DEPT_ID = @l_DEPT_ID,
|
245
|
EMP_ID = @l_EMP_ID,
|
246
|
DIVISION_ID = @l_DIVISION_ID,
|
247
|
-- AMORT_START_DATE = @l_AMORT_START_DATE,
|
248
|
-- AMORT_END_DATE = @l_AMORT_END_DATE,
|
249
|
-- FIRST_AMORT_AMT = @l_FIRST_AMORT_AMT,
|
250
|
-- AMORT_MONTH = @l_AMORT_MONTH,
|
251
|
-- MONTHLY_AMORT_AMT = @l_MONTHLY_AMT,
|
252
|
-- AMORTIZED_AMT = ISNULL(AMORTIZED_AMT,0),
|
253
|
-- AMORTIZED_MONTH = 0,
|
254
|
-- AMORT_STATUS = @l_AMORT_STATUS,--'CKH', --Update trang thai cho khau hao
|
255
|
USE_DATE = CONVERT(DATETIME, @sToday, 103),
|
256
|
USE_DATE_KT = NULL
|
257
|
-- ENTRY_BOOKED = @l_ENTRY_BOOKED,
|
258
|
-- AMORT_RATE = @l_AMORT_RATE
|
259
|
WHERE ASSET_ID = @l_ASSET_ID
|
260
|
|
261
|
-- UPDATE ASS_MASTER
|
262
|
-- SET USE_DATE = CONVERT(DATETIME, @sToday, 103),
|
263
|
-- ENTRY_BOOKED = @l_ENTRY_BOOKED,
|
264
|
-- AMORT_RATE = @l_AMORT_RATE
|
265
|
-- WHERE ASSET_ID = @l_ASSET_ID
|
266
|
IF @@Error <> 0 GOTO ABORT
|
267
|
|
268
|
|
269
|
--Phat sinh Asset_ID
|
270
|
EXEC SYS_CodeMasters_Gen 'ASS_MASTER_HIST', @l_ASSHIST_ID out
|
271
|
IF @l_ASSHIST_ID='' OR @l_ASSHIST_ID IS NULL GOTO ABORT
|
272
|
|
273
|
INSERT INTO ASS_MASTER_HIST
|
274
|
SELECT @l_ASSHIST_ID, a.*
|
275
|
FROM ASS_MASTER a
|
276
|
where a.ASSET_ID = @l_ASSET_ID
|
277
|
|
278
|
IF @@Error <> 0 GOTO ABORT
|
279
|
|
280
|
|
281
|
/***THIEUVQ - 10/09/2014 CAP NHAT LAI DON VI KHI XUAT SU DUNG NEU TS LA XE***/
|
282
|
--UPDATE CAR_MASTER SET BRANCH_ID = @l_BRANCH_ID WHERE ASSET_ID = @l_ASSET_ID
|
283
|
|
284
|
--Insert phan xuat kho
|
285
|
SELECT @l_WAHDT_ID = WAHDT_ID FROM ASS_WAREHOUSE_DT A WHERE A.ASSET_ID = @l_ASSET_ID AND A.STATUS='I'
|
286
|
|
287
|
UPDATE ASS_WAREHOUSE_DT
|
288
|
SET OUT_DATE = GETDATE(),
|
289
|
STATUS = 'O'
|
290
|
WHERE WAHDT_ID = @l_WAHDT_ID
|
291
|
IF @@Error <> 0 GOTO ABORT
|
292
|
|
293
|
----Insert bang ASS_LOCATION_HIST
|
294
|
EXEC SYS_CodeMasters_Gen 'ASS_LOCATION_HIST', @l_LOCHIST_ID out
|
295
|
IF @l_LOCHIST_ID='' OR @l_LOCHIST_ID IS NULL GOTO ABORT
|
296
|
|
297
|
INSERT INTO ASS_LOCATION_HIST
|
298
|
(
|
299
|
LOCHIST_ID, ASSET_ID, USE_START_DT, USE_END_DT, BRANCH_ID, DEPT_ID,
|
300
|
EMP_ID, LOCATION, ISLEAF, PARENT_ID
|
301
|
)
|
302
|
VALUES
|
303
|
(
|
304
|
@l_LOCHIST_ID, @l_ASSET_ID, GETDATE(), NULL, @l_BRANCH_ID, @l_DEPT_ID,
|
305
|
@l_EMP_ID, '', 'Y', NULL
|
306
|
)
|
307
|
IF @@Error <> 0 GOTO ABORT
|
308
|
|
309
|
--INSERT VAO BANG ASS_TRANSACTIONS
|
310
|
INSERT INTO ASS_TRANSACTIONS(ASSET_ID, TRN_ID, TRN_TYPE, TRN_DATE, RECORD_STATUS, AUTH_STATUS,
|
311
|
[MAKER_ID], [CREATE_DT], [CHECKER_ID], [APPROVE_DT],ASSHIST_ID, LOCHIST_ID
|
312
|
)VALUES
|
313
|
(
|
314
|
@l_ASSET_ID, @USE_MULTI_ID, 'ADD_USE', CONVERT(DATETIME, @sToday, 103), '1', 'A',
|
315
|
@l_MAKER_ID, CONVERT(DATETIME, @sToday, 103), @p_CHECKER_ID, CONVERT(DATETIME, @p_APPROVE_DT, 103) ,@l_ASSHIST_ID,@l_LOCHIST_ID
|
316
|
)
|
317
|
IF @@Error <> 0 GOTO ABORT
|
318
|
FETCH NEXT FROM DataCusor INTO @USE_MULTI_ID,@ASSET_ID
|
319
|
END
|
320
|
CLOSE DataCusor
|
321
|
DEALLOCATE DataCusor
|
322
|
|
323
|
|
324
|
--START PHUCVH 07/10/22 UPDATE ALLOCATED PHIẾU YÊU CẦU DT
|
325
|
|
326
|
DECLARE @TBL_CHECK_UPD TABLE (REQDT_ID VARCHAR(15), REQ_DOC_ID VARCHAR(15), ASS_GROUP_ID VARCHAR(15), ASS_ID VARCHAR(15), REQ_DT_TYPE VARCHAR(20), TYPE_XL VARCHAR(20))
|
327
|
|
328
|
INSERT INTO @TBL_CHECK_UPD
|
329
|
SELECT DISTINCT A.REQDT_ID, A.REQ_DOC_ID, A.ASS_GROUP_ID, A.ASS_ID, A.REQ_DT_TYPE, A.TYPE_XL
|
330
|
FROM ASS_USE_MULTI_DT B
|
331
|
LEFT JOIN TR_REQUEST_SHOP_DOC_DT A ON B.REQ_ID = A.REQ_DOC_ID
|
332
|
WHERE B.USER_MASTER_ID = @p_USER_MASTER_ID AND B.REQ_ID IS NOT NULL AND B.REQ_ID <> ''
|
333
|
AND(A.REQ_DT_TYPE = 'BUYNEW'
|
334
|
OR (A.REQ_DT_TYPE = 'XKSD' AND A.TYPE_XL = 'CPTK'))
|
335
|
|
336
|
DECLARE @C_REQDT_ID VARCHAR(15), @C_REQ_DOC_ID VARCHAR(15), @C_ASS_GROUP_ID VARCHAR(15), @C_ASS_ID VARCHAR(15), @C_REQ_DT_TYPE VARCHAR(15), @C_TYPE_XL VARCHAR(20)
|
337
|
DECLARE @IS_MULTI_GROUP VARCHAR(1) = '0'
|
338
|
DECLARE DATA_CURSOR_CHECK_UPD CURSOR FOR
|
339
|
SELECT * FROM @TBL_CHECK_UPD
|
340
|
|
341
|
OPEN DATA_CURSOR_CHECK_UPD
|
342
|
|
343
|
FETCH NEXT FROM DATA_CURSOR_CHECK_UPD INTO
|
344
|
@C_REQDT_ID,@C_REQ_DOC_ID,@C_ASS_GROUP_ID,@C_ASS_ID,@C_REQ_DT_TYPE,@C_TYPE_XL
|
345
|
|
346
|
DECLARE @ALLOCATED INT, @ALLOCATED_CHECK INT, @ALLOCATED_OLD INT, @QTY_ETM INT
|
347
|
WHILE @@FETCH_STATUS = 0
|
348
|
BEGIN
|
349
|
SET @IS_MULTI_GROUP = '0'
|
350
|
|
351
|
DELETE @TBL_GROUP_CODE_ASS_USE
|
352
|
INSERT INTO @TBL_GROUP_CODE_ASS_USE (GROUP_ID)
|
353
|
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)
|
354
|
|
355
|
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 = 'BUYNEW'
|
356
|
OR (trsdd.REQ_DT_TYPE = 'XKSD' AND trsdd.TYPE_XL = 'CPTK')) )) > 1)
|
357
|
BEGIN
|
358
|
SET @IS_MULTI_GROUP = '1'
|
359
|
END
|
360
|
|
361
|
IF (@C_REQ_DT_TYPE = 'BUYNEW')
|
362
|
BEGIN
|
363
|
SET @ALLOCATED = (SELECT SUM(TMP.COUNT) FROM (
|
364
|
(SELECT COUNT(*) AS COUNT
|
365
|
FROM ASS_USE_MULTI_DT A
|
366
|
LEFT JOIN ASS_MASTER C ON A.ASSET_ID = C.ASSET_ID
|
367
|
WHERE A.USER_MASTER_ID = @p_USER_MASTER_ID
|
368
|
GROUP BY A.REQ_ID, C.GROUP_ID, C.REQ_ID
|
369
|
HAVING A.REQ_ID = @C_REQ_DOC_ID
|
370
|
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'))
|
371
|
AND ((@C_REQ_DT_TYPE = 'BUYNEW' AND C.REQ_ID = @C_REQ_DOC_ID))))TMP)
|
372
|
END
|
373
|
ELSE IF (@C_TYPE_XL = 'CPTK')
|
374
|
BEGIN
|
375
|
SET @ALLOCATED = (SELECT SUM(TMP.COUNT) FROM (
|
376
|
(SELECT COUNT(*) AS COUNT
|
377
|
FROM ASS_USE_MULTI_DT A
|
378
|
LEFT JOIN ASS_MASTER C ON A.ASSET_ID = C.ASSET_ID
|
379
|
WHERE A.USER_MASTER_ID = @p_USER_MASTER_ID
|
380
|
GROUP BY A.REQ_ID, C.GROUP_ID, C.REQ_ID
|
381
|
HAVING A.REQ_ID = @C_REQ_DOC_ID
|
382
|
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'))
|
383
|
AND ((@C_TYPE_XL = 'CPTK' AND (C.REQ_ID IS NULL OR C.REQ_ID = '')))))TMP)
|
384
|
|
385
|
END
|
386
|
|
387
|
|
388
|
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
|
389
|
|
390
|
IF(@QTY_ETM < (ISNULL(@ALLOCATED_OLD,0) + ISNULL(@ALLOCATED,0)))
|
391
|
BEGIN
|
392
|
ROLLBACK TRANSACTION
|
393
|
CLOSE DATA_CURSOR_CHECK_UPD
|
394
|
DEALLOCATE DATA_CURSOR_CHECK_UPD
|
395
|
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ị' ErrorDesc
|
396
|
RETURN '-1'
|
397
|
END
|
398
|
|
399
|
UPDATE TR_REQUEST_SHOP_DOC_DT
|
400
|
SET ALLOCATED = ALLOCATED + ISNULL(@ALLOCATED,0)
|
401
|
WHERE REQDT_ID = @C_REQDT_ID
|
402
|
|
403
|
IF @@Error <> 0 GOTO ABORT2
|
404
|
FETCH NEXT FROM DATA_CURSOR_CHECK_UPD INTO
|
405
|
@C_REQDT_ID,@C_REQ_DOC_ID,@C_ASS_GROUP_ID,@C_ASS_ID,@C_REQ_DT_TYPE,@C_TYPE_XL
|
406
|
END
|
407
|
CLOSE DATA_CURSOR_CHECK_UPD
|
408
|
DEALLOCATE DATA_CURSOR_CHECK_UPD
|
409
|
--END PHUCVH 07/10/22 UPDATE ALLOCATED PHIẾU YÊU CẦU DT
|
410
|
|
411
|
--END MOVE TỪ APPROVE HS QUA
|
412
|
|
413
|
--PHUCVH 11/10/22 DONE PHIẾU YÊU CẦU
|
414
|
DECLARE MYCURSOR CURSOR FOR
|
415
|
SELECT aumd.REQ_ID
|
416
|
FROM ASS_USE_MULTI_DT aumd
|
417
|
WHERE aumd.USER_MASTER_ID= @p_USER_MASTER_ID AND aumd.REQ_ID IS NOT NULL AND aumd.REQ_ID <> ''
|
418
|
GROUP BY aumd.REQ_ID
|
419
|
|
420
|
OPEN MYCURSOR
|
421
|
DECLARE @p_REQ_ID VARCHAR(20)
|
422
|
|
423
|
FETCH NEXT FROM MYCURSOR INTO @p_REQ_ID
|
424
|
|
425
|
WHILE @@FETCH_STATUS = 0
|
426
|
BEGIN
|
427
|
IF(NOT EXISTS(SELECT TOP 1 A.REQDT_ID
|
428
|
FROM TR_REQUEST_SHOP_DOC_DT A
|
429
|
WHERE A.REQ_DOC_ID = @p_REQ_ID
|
430
|
AND ( A.QTY_ETM <> A.ALLOCATED OR (A.ALLOCATED IS NULL OR A.ALLOCATED = '' OR A.ALLOCATED = 0))
|
431
|
AND ((A.REQ_DT_TYPE = 'XKSD' AND A.TYPE_XL = 'CPDC')
|
432
|
OR (A.REQ_DT_TYPE = 'XKSD' AND A.TYPE_XL = 'CPTK')
|
433
|
OR (A.REQ_DT_TYPE = 'BUYNEW'))
|
434
|
))
|
435
|
BEGIN
|
436
|
UPDATE TR_REQUEST_SHOP_DOC SET IS_DONE = '1', STATUS = 'DONE' WHERE REQ_ID = @p_REQ_ID
|
437
|
|
438
|
UPDATE PL_REQUEST_PROCESS SET STATUS = 'P' WHERE PROCESS_ID = 'APPROVE' AND REQ_ID = @p_REQ_ID
|
439
|
INSERT INTO PL_REQUEST_PROCESS (REQ_ID, PROCESS_ID, STATUS, IS_LEAF)
|
440
|
VALUES (@p_REQ_ID,'DONE','C','Y')
|
441
|
|
442
|
END
|
443
|
|
444
|
IF @@Error <> 0 GOTO ABORT3
|
445
|
FETCH NEXT FROM MYCURSOR INTO @p_REQ_ID
|
446
|
END
|
447
|
|
448
|
CLOSE MYCURSOR
|
449
|
DEALLOCATE MYCURSOR
|
450
|
|
451
|
COMMIT TRANSACTION
|
452
|
SELECT '0' as Result, @l_USER_CONFIRM_MASTER_ID USER_CONFIM_MASTER_ID, N'Xác nhận xuất sử dụng tài sản thành công' ErrorDesc, @p_USER_MASTER_ID USER_MASTER_ID
|
453
|
RETURN '0'
|
454
|
ABORT:
|
455
|
BEGIN
|
456
|
CLOSE XmlData
|
457
|
DEALLOCATE XmlData
|
458
|
ROLLBACK TRANSACTION
|
459
|
SELECT '-1' as Result, '' USER_MASTER_ID, '' ErrorDesc
|
460
|
RETURN '-1'
|
461
|
End
|
462
|
|
463
|
ABORT2:
|
464
|
BEGIN
|
465
|
CLOSE DATA_CURSOR_CHECK_UPD
|
466
|
DEALLOCATE DATA_CURSOR_CHECK_UPD
|
467
|
ROLLBACK TRANSACTION
|
468
|
SELECT '-1' as Result, '' USER_MASTER_ID, '' ErrorDesc
|
469
|
RETURN '-1'
|
470
|
END
|
471
|
ABORT3:
|
472
|
BEGIN
|
473
|
CLOSE MYCURSOR
|
474
|
DEALLOCATE MYCURSOR
|
475
|
ROLLBACK TRANSACTION
|
476
|
SELECT '-1' as Result, '' USER_MASTER_ID, '' ErrorDesc
|
477
|
RETURN '-1'
|
478
|
End
|
479
|
GO
|
480
|
|
481
|
ALTER PROCEDURE dbo.ASS_COLLECT_CONFIRM_MASTER_Ins
|
482
|
@p_BRANCH_ID varchar(15) = NULL,
|
483
|
@p_DEP_ID varchar(15) = NULL,
|
484
|
@p_COLLECT_DT VARCHAR(20) = NULL,
|
485
|
@p_USER_COLLECT nvarchar(200) = NULL,
|
486
|
@p_MAKER_ID varchar(100) = NULL,
|
487
|
@p_CREATE_DT VARCHAR(20) = NULL,
|
488
|
@p_COL_MULTI_MASTER_ID varchar(20) = null
|
489
|
AS
|
490
|
|
491
|
IF(EXISTS(SELECT 1 FROM ASS_COLLECT_CONFIRM_MASTER WHERE COL_MULTI_MASTER_ID = @p_COL_MULTI_MASTER_ID))
|
492
|
BEGIN
|
493
|
SELECT '-1' as Result, N'Phiếu thu hồi đã được xác nhận' ErrorDesc
|
494
|
RETURN '-1'
|
495
|
END
|
496
|
BEGIN TRANSACTION
|
497
|
DECLARE @l_COL_MULTI_MASTER_CONFIRM_ID VARCHAR(15)
|
498
|
EXEC SYS_CodeMasters_Gen 'ASS_COLLECT_CONFIRM_MASTER', @l_COL_MULTI_MASTER_CONFIRM_ID out
|
499
|
IF @l_COL_MULTI_MASTER_CONFIRM_ID='' OR @l_COL_MULTI_MASTER_CONFIRM_ID IS NULL GOTO ABORT
|
500
|
|
501
|
INSERT INTO ASS_COLLECT_CONFIRM_MASTER
|
502
|
(
|
503
|
[COL_MULTI_MASTER_CONFIRM_ID],
|
504
|
[COL_MULTI_MASTER_ID],
|
505
|
[BRANCH_ID],
|
506
|
[DEP_ID],
|
507
|
[COLLECT_DT],
|
508
|
[MAKER_ID],
|
509
|
[CONFIRM_DT],
|
510
|
[CONFIRM_STATUS]
|
511
|
)
|
512
|
VALUES
|
513
|
(
|
514
|
@l_COL_MULTI_MASTER_CONFIRM_ID,
|
515
|
@p_COL_MULTI_MASTER_ID ,
|
516
|
@p_BRANCH_ID,
|
517
|
@p_DEP_ID,
|
518
|
CONVERT(DATETIME, @p_COLLECT_DT, 103),
|
519
|
@p_MAKER_ID,
|
520
|
GETDATE(),
|
521
|
'Y'
|
522
|
)
|
523
|
IF @@Error <> 0 GOTO ABORT
|
524
|
|
525
|
|
526
|
-- GIANT Insert to table PL_PROCESS
|
527
|
INSERT INTO dbo.PL_PROCESS
|
528
|
(
|
529
|
REQ_ID,
|
530
|
PROCESS_ID,
|
531
|
CHECKER_ID,
|
532
|
APPROVE_DT,
|
533
|
PROCESS_DESC,
|
534
|
NOTES
|
535
|
)
|
536
|
VALUES
|
537
|
( @p_COL_MULTI_MASTER_ID,
|
538
|
'CONFIRM',
|
539
|
@p_MAKER_ID,
|
540
|
GETDATE(),
|
541
|
N'Xác nhận phiếu thu hồi tài sản ' ,
|
542
|
N'Xác nhận phiếu thu hồi tài sản thành công'
|
543
|
)
|
544
|
COMMIT TRANSACTION
|
545
|
SELECT '0' as Result, @l_COL_MULTI_MASTER_CONFIRM_ID CONFIRM_COL_MULTI_MASTER_ID,@p_COL_MULTI_MASTER_ID COL_MULTI_MASTER_ID, N'Xác nhận bàn giao tài sản thu hồi thành công' ErrorDesc
|
546
|
RETURN '0'
|
547
|
ABORT:
|
548
|
BEGIN
|
549
|
CLOSE XmlData
|
550
|
DEALLOCATE XmlData
|
551
|
ROLLBACK TRANSACTION
|
552
|
SELECT '-1' as Result, '' CONFIRM_COL_MULTI_MASTER_ID, '' ErrorDesc
|
553
|
RETURN '-1'
|
554
|
END
|