Project

General

Profile

ASS_INVENT.txt

Luc Tran Van, 03/06/2023 09:57 AM

 
1

    
2
ALTER PROCEDURE dbo.ASS_INVENTORY_MASTER_App
3
@P_INVENT_ID VARCHAR(15),
4
@P_AUTH_STATUS VARCHAR(1),
5
@P_CHECKER_ID VARCHAR(15),
6
@P_APPROVE_DT VARCHAR(20),
7
@P_MESSAGE NVARCHAR(1000)
8
AS
9
--Validation is here
10
/*
11
DECLARE @ERRORSYS NVARCHAR(15) = '' 
12
  IF ( NOT EXISTS ( SELECT * FROM ASS_INVENTORY_MASTER WHERE ))
13
	SET @ERRORSYS = ''
14
IF @ERRORSYS <> '' 
15
BEGIN
16
	SELECT ErrorCode Result, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
17
	RETURN '0'
18
END 
19
SELECT * FROM ASS_MASTER
20
SELECT * FROM ASS_INVENTORY_DT
21
*/
22
/****PGD KHONG DUOC PHEP THUC HIEN KIEM KE***/
23
	DECLARE @l_TYPE_CREATE VARCHAR(200)
24
	SET @l_TYPE_CREATE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = (SELECT B.BRANCH_CREATE FROM ASS_INVENTORY_MASTER B WHERE B.INVENT_ID = @P_INVENT_ID))
25
	IF  @l_TYPE_CREATE <> 'CN' AND @l_TYPE_CREATE <> 'HS'
26
	BEGIN
27
		SELECT '-1' as Result, '' INVENT_ID, N'Đơn vị không được phép duyệt đợt kiểm kê.' ErrorDesc
28
		RETURN '-1'
29
	END
30
	IF EXISTS (
31
		SELECT A.ASSET_ID
32
		FROM ASS_INVENTORY_DT A
33
		WHERE A.INVENT_ID = @P_INVENT_ID AND A.ASSET_STATUS <> '1' AND (A.INVENT_DESC IS NULL OR A.INVENT_DESC = '')
34
	)
35
	BEGIN 
36
		SELECT '-1' as Result, '' INVENT_ID, N'Phải cập nhật hiện trạng cho các tài sản có tình trạng khác bình thường trước khi duyệt' ErrorDesc
37
		RETURN '-1'		
38
	END
39
BEGIN TRANSACTION
40
	DECLARE @l_ASSET_ID VARCHAR(15)
41
	DECLARE @l_ASSET_STATUS VARCHAR(10),@l_ASSET_STATUS_DESC NVARCHAR(1000),@l_ASSET_NOTES NVARCHAR(4000)
42
    DECLARE pCUR CURSOR FOR 
43
    	SELECT A.ASSET_ID,A.ASSET_STATUS,A.INVENT_DESC,A.NOTES
44
    	FROM ASS_INVENTORY_DT A
45
    	WHERE A.INVENT_ID = @P_INVENT_ID
46
    	--thieuvq them dieu kien khong cap nhat tai san THUA SO VOI SAO KE
47
    	AND A.ASSET_STATUS <> '6'
48
    	OPEN pCUR 
49
	
50

    
51
	
52

    
53
	-- GIANT XÁC NHẬN THÀNH PHẦN KIỂM KÊ
54
--	UPDATE ASS_INVENTORY_PARTY_DT SET APPROVE_DT = GETDATE()  
55
--	WHERE INVENT_ID = @P_INVENT_ID
56

    
57
	UPDATE ASS_INVENTORY_PARTY_DT SET COMMENT = @P_MESSAGE, IS_DONE = '1', CONFIRM_DT = GETDATE()
58
	WHERE INVENT_ID = @P_INVENT_ID AND IS_MAIN = '1' AND PARTY_NAME =@P_CHECKER_ID
59

    
60
	IF @@Error <> 0 GOTO ABORT
61

    
62

    
63
	DECLARE @PROCESS_ID_CUR VARCHAR(15) = (SELECT PROCESS_ID FROM dbo.ASS_INVENTORY_MASTER WHERE INVENT_ID = @P_INVENT_ID)
64
	DECLARE @PROCESS_ID_NEXT VARCHAR(15) = (SELECT TOP 1 PROCESS_ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID = @P_INVENT_ID AND PARENT_PROCESS_ID = @PROCESS_ID_CUR)
65
	UPDATE dbo.ASS_INVENTORY_MASTER SET PROCESS_ID = @PROCESS_ID_NEXT WHERE INVENT_ID = @P_INVENT_ID
66
	UPDATE dbo.PL_REQUEST_PROCESS SET STATUS = 'P',CHECKER_ID = @P_CHECKER_ID, APPROVE_DT = GETDATE() WHERE REQ_ID = @P_INVENT_ID AND ROLE_USER = @P_CHECKER_ID AND PROCESS_ID = @PROCESS_ID_CUR
67
	
68
    
69
    IF(NOT EXISTS(SELECT 1 FROM ASS_INVENTORY_PARTY_DT aipd WHERE aipd.INVENT_ID=@P_INVENT_ID AND aipd.IS_MAIN='1' AND aipd.IS_DONE='0'))
70
    BEGIN
71
        
72
    
73
    	--CAP NHAT TRANG THAI TAI SAN SAU KHI KIEM KE	
74
    	FETCH NEXT FROM pCUR INTO @l_ASSET_ID,@l_ASSET_STATUS,@l_ASSET_STATUS_DESC,@l_ASSET_NOTES
75
    		
76
    	WHILE @@FETCH_STATUS = 0
77
    	BEGIN
78
    		UPDATE ASS_MASTER SET ASS_STATUS = @l_ASSET_STATUS, ASS_STATUS_DESC = @l_ASSET_STATUS_DESC,NOTES= @l_ASSET_NOTES
79
    		WHERE ASSET_ID = @l_ASSET_ID
80
    		FETCH NEXT FROM pCUR INTO @l_ASSET_ID,@l_ASSET_STATUS,@l_ASSET_STATUS_DESC,@l_ASSET_NOTES
81
    	END
82
        UPDATE dbo.PL_REQUEST_PROCESS SET STATUS = 'C' WHERE REQ_ID = @P_INVENT_ID AND PROCESS_ID = @PROCESS_ID_NEXT
83
        UPDATE ASS_INVENTORY_MASTER SET AUTH_STATUS = @P_AUTH_STATUS, CHECKER_ID = @P_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME,@P_APPROVE_DT,103)
84
	    WHERE INVENT_ID = @P_INVENT_ID
85
    END
86

    
87
	-- GIANT 26/08/2021
88
	INSERT INTO dbo.PL_PROCESS
89
	(
90
		REQ_ID,
91
		PROCESS_ID,
92
		CHECKER_ID,
93
		APPROVE_DT,
94
		PROCESS_DESC,
95
		NOTES
96
	)
97
	VALUES
98
	(   @p_INVENT_ID,       
99
		'APPROVE',
100
		@P_CHECKER_ID,       
101
		GETDATE(), 
102
		N'Trưởng ban kiêm kê phê duyệt kiểm kê' ,     
103
		N'Phê duyệt thông tin kiêm kê'       
104
	)
105

    
106

    
107

    
108
CLOSE pCUR
109
DEALLOCATE pCUR
110

    
111
COMMIT TRANSACTION
112
SELECT '0' as Result, '' ErrorDesc
113
RETURN '0'
114
ABORT:
115
BEGIN		
116
		CLOSE pCUR
117
		DEALLOCATE pCUR
118
		ROLLBACK TRANSACTION
119
		SELECT '-1' as Result, '' ErrorDesc
120
		RETURN '-1'
121
End
122

    
123

    
124

    
125
GO
126

    
127
--SET QUOTED_IDENTIFIER ON|OFF
128
--SET ANSI_NULLS ON|OFF
129
--GO
130
ALTER PROCEDURE dbo.ASS_INVENTORY_MASTER_APPROVE_CONFIRM
131
@p_INVENT_ID	VARCHAR(20) = NULL,
132
@p_CHECKER_ID	VARCHAR(20) = NULL
133
AS
134
	BEGIN TRANSACTION
135
	DECLARE @PROCESS_ID_CUR VARCHAR(15) = (SELECT PROCESS_ID FROM dbo.ASS_INVENTORY_MASTER WHERE INVENT_ID = @p_INVENT_ID)
136
    UPDATE dbo.ASS_INVENTORY_PARTY_DT SET IS_DONE = '1' WHERE INVENT_ID = @p_INVENT_ID AND PARTY_NAME = @p_CHECKER_ID
137
	UPDATE dbo.PL_REQUEST_PROCESS SET STATUS = 'P',CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = GETDATE() WHERE REQ_ID = @p_INVENT_ID AND ROLE_USER = @p_CHECKER_ID AND PROCESS_ID = @PROCESS_ID_CUR
138

    
139
	IF(NOT EXISTS(SELECT 1 FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID = @p_INVENT_ID AND PROCESS_ID = @PROCESS_ID_CUR AND STATUS = 'C'))
140
	BEGIN
141
		DECLARE @PROCESS_ID_NEXT VARCHAR(15) = (SELECT TOP 1 PROCESS_ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID = @p_INVENT_ID AND PARENT_PROCESS_ID = @PROCESS_ID_CUR)
142
		UPDATE dbo.ASS_INVENTORY_MASTER SET PROCESS_ID = @PROCESS_ID_NEXT WHERE INVENT_ID = @p_INVENT_ID
143
		UPDATE dbo.PL_REQUEST_PROCESS SET STATUS = 'C' WHERE REQ_ID = @p_INVENT_ID AND PROCESS_ID = @PROCESS_ID_NEXT
144
	END
145

    
146
	INSERT INTO dbo.PL_PROCESS
147
	(
148
		REQ_ID,
149
		PROCESS_ID,
150
		CHECKER_ID,
151
		APPROVE_DT,
152
		PROCESS_DESC,
153
		NOTES
154
	)
155
	VALUES
156
	(   @p_INVENT_ID,       
157
		'CONFIRM',
158
		@p_CHECKER_ID,       
159
		GETDATE(), 
160
		N'Thành phần kiểm kê xác nhận thành công' ,     
161
		N'Xác nhận thông tin kiểm kê'       
162
	)
163

    
164
	COMMIT TRANSACTION
165
	SELECT '0' as Result, @p_INVENT_ID  INVENT_ID, N'Xác nhận thành công' ErrorDesc
166
	RETURN '0'
167
GO
168

    
169
ALTER   PROC dbo.ASS_INVENTORY_MASTER_DVKD_App
170
@P_INVENT_ID VARCHAR(15),
171
@P_AUTH_STATUS VARCHAR(1),
172
@P_CHECKER_ID VARCHAR(15),
173
@P_APPROVE_DT VARCHAR(20)
174
AS
175
DECLARE @l_TYPE_CREATE VARCHAR(200)
176
	
177
	SET @l_TYPE_CREATE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = (SELECT B.BRANCH_CREATE FROM ASS_INVENTORY_MASTER B WHERE B.INVENT_ID = @P_INVENT_ID))
178
	IF  @l_TYPE_CREATE <> 'CN' AND @l_TYPE_CREATE <> 'HS'
179
	BEGIN
180
		SELECT '-1' as Result, '' INVENT_ID, N'Đơn vị không được phép duyệt đợt kiểm kê.' ErrorDesc
181
		RETURN '-1'
182
	END
183
	IF EXISTS (
184
		SELECT A.ASSET_ID
185
		FROM ASS_INVENTORY_DT A
186
		WHERE A.INVENT_ID = @P_INVENT_ID AND A.ASSET_STATUS <> '1' AND (A.INVENT_DESC IS NULL OR A.INVENT_DESC = '')
187
	)
188
	BEGIN 
189
		SELECT '-1' as Result, '' INVENT_ID, N'Phải cập nhật hiện trạng cho các tài sản có tình trạng khác bình thường trước khi duyệt' ErrorDesc
190
		RETURN '-1'		
191
	END
192

    
193
BEGIN TRANSACTION
194
DECLARE @l_ASSET_ID VARCHAR(15)
195
	DECLARE @l_ASSET_STATUS VARCHAR(10),@l_ASSET_STATUS_DESC NVARCHAR(1000),@l_ASSET_NOTES NVARCHAR(4000)
196
	DECLARE pCUR CURSOR FOR 
197
	SELECT A.ASSET_ID,A.ASSET_STATUS,A.INVENT_DESC,A.NOTES
198
	FROM ASS_INVENTORY_DT A
199
	WHERE A.INVENT_ID = @P_INVENT_ID
200
	AND A.ASSET_STATUS <> '6'
201
	OPEN pCUR
202
	DELETE FROM dbo.PL_REQUEST_PROCESS
203
	WHERE REQ_ID = @P_INVENT_ID;
204
	DECLARE @BRANCH_ID VARCHAR(20), @DEP_ID VARCHAR(20),@STEP_PARENT VARCHAR(20)
205
	SELECT @BRANCH_ID =TLSUBBRID,@DEP_ID=SECUR_CODE FROM dbo.TL_USER WHERE TLNANME=(SELECT MAKER_ID FROM ASS_INVENTORY_MASTER WHERE INVENT_ID = @P_INVENT_ID)
206
	IF(EXISTS(SELECT * FROM ASS_INVENTORY_MASTER WHERE INVENT_ID = @P_INVENT_ID AND SIGN_USER =@p_CHECKER_ID AND PROCESS_ID ='SIGN'))
207
	BEGIN 
208
		DELETE FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@P_INVENT_ID
209
		INSERT INTO dbo.PL_PROCESS
210
		(
211
			REQ_ID,
212
			PROCESS_ID,
213
			CHECKER_ID,
214
			APPROVE_DT,
215
			PROCESS_DESC,NOTES
216
		)
217
		VALUES
218
		(   @P_INVENT_ID,        -- REQ_ID - varchar(15)
219
			'SIGN',        -- PROCESS_ID - varchar(10)
220
			@p_CHECKER_ID,        -- CHECKER_ID - varchar(15)
221
			CONVERT(DATETIME,@p_APPROVE_DT,103) , -- APPROVE_DT - datetime
222
			N'Cấp phê duyệt trung gian xác nhận phiếu kiểm kê',
223
			N'Cấp phê duyệt trung gian'
224
		)
225
	--- DUA CAP PHE DUYET TRUONG DON VI
226
	    INSERT INTO dbo.PL_REQUEST_PROCESS
227
		(
228
		    REQ_ID,
229
		    PROCESS_ID,
230
		    STATUS,
231
		    ROLE_USER,
232
		    BRANCH_ID,
233
			DEP_ID,
234
		    CHECKER_ID,
235
		    APPROVE_DT,
236
		    PARENT_PROCESS_ID,
237
		    IS_LEAF,
238
		    COST_ID,
239
		    DVDM_ID,
240
		    NOTES,
241
		    IS_HAS_CHILD
242
		)
243
		VALUES
244
		(   @P_INVENT_ID,        -- REQ_ID - varchar(15)
245
		    'APPNEW',        -- PROCESS_ID - varchar(10)
246
		    'C',        -- STATUS - varchar(5)
247
		    'GDDV',        -- ROLE_USER - varchar(50)
248
		    --@BRANCH_CREATE, 
249
			@BRANCH_ID,
250
			@DEP_ID,      -- BRANCH_ID - varchar(15)
251
		    '',        -- CHECKER_ID - varchar(15)
252
		    NULL,      -- APPROVE_DT - datetime
253
		    '',        -- PARENT_PROCESS_ID - varchar(10)
254
		    'N',        -- IS_LEAF - varchar(1)
255
		    '',        -- COST_ID - varchar(15)
256
		    '',        -- DVDM_ID - varchar(15)
257
		    N'Chờ trưởng đơn vị phê duyệt',       -- NOTES - nvarchar(500)
258
		    NULL       -- IS_HAS_CHILD - bit
259
		 )
260
	--- UPDATE PROCESS_ID VE APP_NEW
261
		UPDATE ASS_INVENTORY_MASTER SET PROCESS_ID ='APPNEW' WHERE INVENT_ID = @P_INVENT_ID
262
	END
263
	ELSE
264
	BEGIN
265
		IF(EXISTS(SELECT 1 FROM ASS_INVENTORY_MASTER WHERE INVENT_ID = @P_INVENT_ID AND SIGN_USER IS NOT NULL AND SIGN_USER <> ''))
266
		BEGIN
267
			IF(NOT EXISTS (SELECT 1 FROM PL_PROCESS WHERE PROCESS_ID='SIGN' AND REQ_ID =@P_INVENT_ID))
268
			BEGIN
269
				ROLLBACK TRANSACTION
270
				SELECT '-1' Result, N'Phiếu kiểm kê đang đợi cấp phê duyệt trung gian xác nhận. Vui lòng đợi nhân viên '+(SELECT SIGN_USER FROM ASS_INVENTORY_MASTER WHERE INVENT_ID = @P_INVENT_ID)+N' xác nhận phiếu!' ErrorDesc
271
				RETURN '-1'
272
			END
273
			IF(@p_CHECKER_ID = (SELECT SIGN_USER FROM ASS_INVENTORY_MASTER WHERE INVENT_ID = @P_INVENT_ID))
274
			BEGIN
275
				ROLLBACK TRANSACTION
276
				SELECT '-1' Result, N'Phiếu kiểm kê đang đợi trưởng đơn vị phê duyệt. Bạn không có thẩm quyền phê duyệt cấp trưởng đơn vị! Vui lòng xem lịch sử xử lý phiếu' ErrorDesc
277
				RETURN '-1'
278
			END
279
		END
280
		
281

    
282
		INSERT INTO dbo.PL_REQUEST_PROCESS
283
		(
284
			REQ_ID,
285
			PROCESS_ID,
286
			STATUS,
287
			ROLE_USER,
288
			BRANCH_ID,
289
			DEP_ID,
290
			CHECKER_ID,
291
			APPROVE_DT,
292
			PARENT_PROCESS_ID,
293
			IS_LEAF,
294
			NOTES
295
		)
296
		VALUES
297
		(   @p_INVENT_ID,               -- REQ_ID - varchar(15)
298
			'APPNEW',                  -- PROCESS_ID - varchar(10)
299
			'P',                     -- STATUS - varchar(5)
300
			'GDDV',                      -- ROLE_USER - varchar(50)
301
			@BRANCH_ID  ,
302
			@DEP_ID,                      -- BRANCH_ID - varchar(15)
303
			@p_CHECKER_ID,           -- CHECKER_ID - varchar(15)
304
			GETDATE() , -- APPROVE_DT - datetime
305
			NULL, 'N', N'Trưởng đơn vị phê duyệt'
306
		);
307
		SET @STEP_PARENT = 'APPNEW';
308
    -- BUOC TIEN HANH KIEM KE 
309
    DECLARE @MAKER_ID varchar(15)
310
    SET @MAKER_ID =(SELECT MAKER_ID FROM ASS_INVENTORY_MASTER WHERE INVENT_ID = @P_INVENT_ID)
311
    INSERT INTO dbo.PL_REQUEST_PROCESS
312
		(
313
		    REQ_ID,
314
		    PROCESS_ID,
315
		    STATUS,
316
		    ROLE_USER,
317
		    BRANCH_ID,
318
		    CHECKER_ID,
319
		    APPROVE_DT,
320
		    PARENT_PROCESS_ID,
321
		    IS_LEAF,
322
		    COST_ID,
323
		    DVDM_ID,
324
		    NOTES,
325
		    IS_HAS_CHILD
326
		)
327
		VALUES ( @P_INVENT_ID, 'THKK', 'U', @MAKER_ID,'','',NULL,@STEP_PARENT,'N','','',N'Chờ thành phần kiểm kê tiến hành kiểm kê',NULL)
328
	 
329
	SET @STEP_PARENT = 'THKK';
330
		-- BUOC XU LY CUA THANH PHAN KIEM KE
331
		INSERT INTO dbo.PL_REQUEST_PROCESS
332
		(
333
		    REQ_ID,
334
		    PROCESS_ID,
335
		    STATUS,
336
		    ROLE_USER,
337
		    BRANCH_ID,
338
		    CHECKER_ID,
339
		    APPROVE_DT,
340
		    PARENT_PROCESS_ID,
341
		    IS_LEAF,
342
		    COST_ID,
343
		    DVDM_ID,
344
		    NOTES,
345
		    IS_HAS_CHILD
346
		)
347
		SELECT INVENT_ID, 'TPKK', 'U', PARTY_NAME,'','',NULL,@STEP_PARENT,'N','','',N'Chờ thành phần kiểm kê xác nhận',NULL
348
		FROM dbo.ASS_INVENTORY_PARTY_DT WHERE INVENT_ID = @P_INVENT_ID AND IS_RECIVE_MAIL = '1' AND IS_MAIN = '0'
349
		SET @STEP_PARENT = 'TPKK';
350

    
351
		-- BUOC XU LY CUA TRUONG BAN KIEM KE
352
		INSERT INTO dbo.PL_REQUEST_PROCESS
353
		(
354
		    REQ_ID,
355
		    PROCESS_ID,
356
		    STATUS,
357
		    ROLE_USER,
358
		    BRANCH_ID,
359
		    CHECKER_ID,
360
		    APPROVE_DT,
361
		    PARENT_PROCESS_ID,
362
		    IS_LEAF,
363
		    COST_ID,
364
		    DVDM_ID,
365
		    NOTES,
366
		    IS_HAS_CHILD
367
		)
368
		SELECT INVENT_ID, 'TBKK', 'U', PARTY_NAME,'','',NULL,@STEP_PARENT,'N','','',N'Chờ trưởng ban kiểm kê xác nhận',NULL
369
		FROM dbo.ASS_INVENTORY_PARTY_DT WHERE INVENT_ID = @P_INVENT_ID AND IS_MAIN = '1'
370
		SET @STEP_PARENT = 'TBKK';
371

    
372
		INSERT INTO dbo.PL_REQUEST_PROCESS
373
		(
374
			REQ_ID,
375
			PROCESS_ID,
376
			STATUS,
377
			ROLE_USER,
378
			BRANCH_ID,
379
			CHECKER_ID,
380
			APPROVE_DT,
381
			PARENT_PROCESS_ID,
382
			IS_LEAF,
383
			NOTES
384
		)
385
		VALUES
386
		(   @p_INVENT_ID, -- REQ_ID - varchar(15)
387
			'APPROVE', -- PROCESS_ID - varchar(10)
388
			'U',       -- STATUS - varchar(5)
389
			'',        -- ROLE_USER - varchar(50)
390
			'',        -- BRANCH_ID - varchar(15)
391
			'',        -- CHECKER_ID - varchar(15)
392
			NULL,      -- APPROVE_DT - datetime
393
			@STEP_PARENT, 'Y', N'Hoàn tất'
394
		);
395

    
396
		DECLARE @PROCESS_ID_CURR VARCHAR(10);
397
		SET @PROCESS_ID_CURR =
398
		(
399
			SELECT TOP 1 PROCESS_ID
400
			FROM dbo.PL_REQUEST_PROCESS
401
			WHERE REQ_ID = @P_INVENT_ID
402
				AND PARENT_PROCESS_ID = 'APPNEW'
403
		);
404

    
405
		UPDATE dbo.PL_REQUEST_PROCESS
406
		SET STATUS = 'C'
407
		WHERE PARENT_PROCESS_ID = 'APPNEW'
408
			  AND REQ_ID = @P_INVENT_ID;
409
		UPDATE ASS_INVENTORY_MASTER SET AUTH_STATUS_DVKD = 'A', CHECKER_ID_DVKD = @P_CHECKER_ID, APPROVE_DT_DVKD = GETDATE(),AUTH_STATUS = 'U',PROCESS_ID=@PROCESS_ID_CURR
410
		WHERE INVENT_ID = @P_INVENT_ID
411
		IF @@Error <> 0 GOTO ABORT
412

    
413
		-- GIANT 26/08/2021
414
		INSERT INTO dbo.PL_PROCESS
415
		(
416
			REQ_ID,
417
			PROCESS_ID,
418
			CHECKER_ID,
419
			APPROVE_DT,
420
			PROCESS_DESC,
421
			NOTES
422
		)
423
		VALUES
424
		(   @p_INVENT_ID,       
425
			'APPROVE',
426
			@P_CHECKER_ID,       
427
			GETDATE(), 
428
			N'Trưởng đơn vị đã phê duyệt thành công' ,     
429
			N'Trưởng đơn vị đã phê duyệt'       
430
		)
431
	END
432

    
433
CLOSE pCUR
434
DEALLOCATE pCUR
435

    
436
COMMIT TRANSACTION
437
IF(EXISTS(SELECT * FROM ASS_INVENTORY_MASTER WHERE AUTH_STATUS_DVKD ='A' AND INVENT_ID =@p_INVENT_ID))
438
BEGIN
439
	SELECT '0' AS Result,
440
       --@ROLE_USER_NOTIFI AS ROLE_NOTIFI,
441
       N'Phiếu kiểm kê đã được trưởng đơn vị phê duyệt thành công.' ErrorDesc;
442
	RETURN '0';
443
END
444
ELSE
445
BEGIN
446
	SELECT '0' as Result, 
447
	N'Phiếu kiểm kê đã được cấp phê duyệt trung gian xác nhận thành công. Vui lòng đợi trưởng đơn vị phê duyệt' ErrorDesc
448
	RETURN '0'
449
END
450
SELECT '0' as Result, '' ErrorDesc
451
RETURN '0'
452
ABORT:
453
BEGIN		
454
		CLOSE pCUR
455
		DEALLOCATE pCUR
456
		ROLLBACK TRANSACTION
457
		SELECT '-1' as Result, '' ErrorDesc
458
		RETURN '-1'
459
End
460

    
461

    
462

    
463

    
464
GO
465

    
466
ALTER PROCEDURE dbo.ASS_INVENTORY_MASTER_Upd
467
@P_INVENT_ID VARCHAR(15) = NULL,
468
@p_INVENTORY_DT	VARCHAR(20) = NULL,
469
@p_TERM	nvarchar(20)  = NULL,
470
@p_BRANCH_ID	varchar(15)  = NULL,
471
@p_DEPT_ID	varchar(15)  = NULL,
472
@p_NOTES	NVARCHAR(1000)  = NULL,
473
@p_RECORD_STATUS	varchar(1)  = NULL,
474
@p_AUTH_STATUS_DVKD	varchar(1)  = NULL,
475
@p_MAKER_ID	varchar(15)  = NULL,
476
@p_CREATE_DT	VARCHAR(20) = NULL,
477
@p_CHECKER_ID	varchar(15)  = NULL,
478
@p_APPROVE_DT	VARCHAR(20) = NULL,
479
@P_INVENTDETAILS XML = NULL,
480
@p_BRANCH_CREATE	VARCHAR(15) = NULL,
481
@p_PARTYDETAILS XML = NULL,
482
@p_UNSTOCKEDDETAILS XML = NULL,
483
@p_SIGN_USER VARCHAR(20) = NULL
484
AS
485
--Validation is here
486
/*
487
DECLARE @ERRORSYS NVARCHAR(15) = '' 
488
  IF ( NOT EXISTS ( SELECT * FROM ASS_INVENTORY_MASTER WHERE ))
489
	 SET @ERRORSYS = ''
490
IF @ERRORSYS <> '' 
491
BEGIN
492
	SELECT ErrorCode Result, ''  CAR_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
493
	RETURN '0'
494
END 
495
*/
496
IF (SELECT AUTH_STATUS FROM ASS_INVENTORY_MASTER WHERE INVENT_ID = @P_INVENT_ID) = 'A'
497
BEGIN
498
	SELECT '-1' as Result, '' INVENT_ID, N'Thông tin đã được duyệt nên không được phép chỉnh sửa!' ErrorDesc
499
	return '-1'
500
END
501
IF (EXISTS(SELECT * FROM ASS_INVENTORY_MASTER aim WHERE aim.BRANCH_ID = @p_BRANCH_ID
502
  AND aim.INVENT_ID <> @P_INVENT_ID
503
  AND aim.TERM = @p_TERM AND aim.INVENTORY_DT = CONVERT(DATETIME, @p_INVENTORY_DT, 103)))
504
BEGIN
505
  SELECT '-1' as Result, '' INVENT_ID, N'Đơn vị đã tồn tại kỳ kiểm kê có cùng ngày và đợt kiểm kê.' ErrorDesc
506
  RETURN '-1'
507
END
508
IF (EXISTS(SELECT * FROM ASS_INVENTORY_MASTER aim 
509
  WHERE aim.BRANCH_ID = @p_BRANCH_ID
510
    AND aim.INVENT_ID <> @P_INVENT_ID
511
    AND (aim.AUTH_STATUS <> 'A' OR aim.AUTH_STATUS IS NULL OR aim.AUTH_STATUS_DVKD <> 'A' OR aim.AUTH_STATUS_DVKD IS NULL)))
512
BEGIN
513
  SELECT '-1' as Result, '' INVENT_ID, N'Đơn vị có kỳ kiểm kê chưa hoàn thành nên không thể tạo thêm kỳ kiểm kê mới.' ErrorDesc
514
  RETURN '-1'
515
END
516

    
517
	Declare @hdoc INT
518
	Exec sp_xml_preparedocument @hdoc Output,@P_INVENTDETAILS
519
	DECLARE InventDetail CURSOR FOR
520
	SELECT *
521
	FROM OPENXML(@hDoc,'/Root/InventDetail',2)
522
	WITH 
523
	(
524
		INVENTDT_ID VARCHAR(15),
525
		ASSET_ID	varchar(15)  ,
526
		ASSET_STATUS	nvarchar(20) ,
527
		INVENT_DESC	nvarchar(1000) ,
528
		NOTES nvarchar(500),
529
		BRANCH_USE	varchar(15) ,
530
		DEPT_USE	varchar(15) ,
531
		REMAIN_VALUE decimal(18,0),
532
    INVENT_STATUS varchar(15)
533
	)
534
	OPEN InventDetail
535
  --PHONGNT 08/02/23 Xóa những tài sản không tồn tại 
536
  DELETE FROM ASS_INVENTORY_DT WHERE INVENT_ID = @P_INVENT_ID AND ASSET_ID NOT IN (SELECT ASSET_ID
537
	FROM OPENXML(@hDoc,'/Root/InventDetail',2)
538
	WITH 
539
	(
540
		INVENTDT_ID VARCHAR(15),
541
		ASSET_ID	varchar(15)  ,
542
		ASSET_STATUS	nvarchar(20) ,
543
		INVENT_DESC	nvarchar(1000) ,
544
		NOTES nvarchar(500),
545
		BRANCH_USE	varchar(15) ,
546
		DEPT_USE	varchar(15) ,
547
		REMAIN_VALUE decimal(18,0),
548
    INVENT_STATUS varchar(15)
549
	))
550

    
551
	DELETE FROM dbo.ASS_INVENTORY_DT_RPT WHERE INVENT_ID = @P_INVENT_ID AND  ASSET_ID NOT IN (SELECT ASSET_ID
552
	FROM OPENXML(@hDoc,'/Root/InventDetail',2)
553
	WITH 
554
	(
555
		INVENTDT_ID VARCHAR(15),
556
		ASSET_ID	varchar(15)  ,
557
		ASSET_STATUS	nvarchar(20) ,
558
		INVENT_DESC	nvarchar(1000) ,
559
		NOTES nvarchar(500),
560
		BRANCH_USE	varchar(15) ,
561
		DEPT_USE	varchar(15) ,
562
		REMAIN_VALUE decimal(18,0),
563
    INVENT_STATUS varchar(15)
564
	))
565
  --END
566

    
567
	-- GiaNT 23/08/2021
568
	Declare @hdocParty INT
569
	Exec sp_xml_preparedocument @hdocParty Output,@p_PARTYDETAILS
570
		DECLARE PartyDetail CURSOR FOR
571
	SELECT *
572
	FROM OPENXML(@hdocParty,'/Root/PartyDetail',2)
573
	WITH 
574
	(
575
		PARTY_ID		VARCHAR(15),
576
		INVENT_ID		VARCHAR(15),
577
		PARTY_NAME		NVARCHAR(100),
578
		PARTY_ROLE		NVARCHAR(100),
579
		IS_RECIVE_MAIL		NVARCHAR(100),
580
		IS_DONE		NVARCHAR(100),
581
		IS_MAIN	NVARCHAR(1),
582
        COMMENT NVARCHAR(500)
583

    
584

    
585
	)
586
	OPEN PartyDetail
587
	
588
	Declare @hdocUnstocked INT
589
	Exec sp_xml_preparedocument @hdocUnstocked Output,@p_UNSTOCKEDDETAILS
590
		DECLARE UnstockedDetail CURSOR FOR
591
	SELECT *
592
	FROM OPENXML(@hdocUnstocked,'/Root/UnstockedDetail',2)
593
	WITH 
594
	(
595
		UNSTOCKED_ID	VARCHAR(15),
596
		INVENT_ID		VARCHAR(15),
597
		ASS_NAME		NVARCHAR(1000),
598
		SERIAL			NVARCHAR(MAX),
599
		BRANCH_ID		NVARCHAR(50),
600
		DEPT_ID			NVARCHAR(50),
601
		USE_DATE		VARCHAR(20)
602
	)
603
	OPEN UnstockedDetail
604
	
605
BEGIN TRANSACTION
606
    IF (EXISTS(SELECT 1 FROM ASS_INVENTORY_MASTER aim WHERE aim.INVENT_ID=@P_INVENT_ID AND aim.PROCESS_ID='THKK'))
607
    SET @p_AUTH_STATUS_DVKD ='A'
608

    
609
	IF @p_APPROVE_DT = '' SET @p_APPROVE_DT = NULL
610

    
611
	DECLARE @l_FILE_REF_Ids   NVARCHAR(MAX) =''
612
	UPDATE ASS_INVENTORY_MASTER SET [INVENTORY_DT] = CONVERT(DATETIME, @p_INVENTORY_DT, 103),[TERM] = @p_TERM,[BRANCH_ID] = @p_BRANCH_ID,[NOTES] = @p_NOTES,[RECORD_STATUS] = @p_RECORD_STATUS,[AUTH_STATUS_DVKD] = @p_AUTH_STATUS_DVKD,[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),
613
	BRANCH_CREATE=@p_BRANCH_CREATE,SIGN_USER=@p_SIGN_USER
614
	WHERE  INVENT_ID= @p_INVENT_ID
615
	IF @@Error <> 0 GOTO ABORT
616
	
617
	Declare @INVENTDT_ID VARCHAR(15),@ASSET_ID varchar(15), @ASSET_STATUS nvarchar(20),@INVENT_DESC nvarchar(1000), @NO INT = 0,
618
	@NOTES nvarchar(500), @DEPT_USE VARCHAR(15), @BRANCH_USE VARCHAR(15), @REMAIN_VALUE decimal(18,0),@INVENT_STATUS VARCHAR(10)
619
	FETCH NEXT FROM InventDetail INTO @INVENTDT_ID,@ASSET_ID, @ASSET_STATUS, @INVENT_DESC, @NOTES, @BRANCH_USE, @DEPT_USE, @REMAIN_VALUE,@INVENT_STATUS
620
	--------THIEUVQ THEM PHAN DEPT_ID CHO DOT KIEM KE, TAM THOI LAY THEO TAI SAN DAU TIEN TRONG BANG INVENTORY_DT
621
	IF @p_BRANCH_ID = 'DV0001'
622
	BEGIN
623
		UPDATE ASS_INVENTORY_MASTER SET DEPT_ID = @DEPT_USE WHERE INVENT_ID = @P_INVENT_ID
624
	END
625
	--------
626
		WHILE @@FETCH_STATUS = 0	
627
		BEGIN
628
			IF(LEN (@INVENTDT_ID) = 0 )
629
			BEGIN
630
				EXEC SYS_CodeMasters_Gen 'ASS_INVENTORY_DT', @INVENTDT_ID out
631
				IF @INVENTDT_ID ='' OR @INVENTDT_ID IS NULL GOTO ABORT
632
        INSERT INTO ASS_INVENTORY_DT([INVENTDT_ID],[INVENT_ID],[ASSET_ID],[ASSET_STATUS],[INVENT_DESC], [NOTES], [BRANCH_USE], [DEPT_USE], [REMAIN_VALUE])
633
  			VALUES(@INVENTDT_ID,@P_INVENT_ID,@ASSET_ID,@ASSET_STATUS,@INVENT_DESC, @NOTES, @BRANCH_USE, @DEPT_USE, @REMAIN_VALUE)
634
  
635
  			INSERT INTO ASS_INVENTORY_DT_RPT([INVENTDT_ID],[INVENT_ID],[ASSET_ID],[ASSET_STATUS],[INVENT_DESC], [NOTES], [BRANCH_USE], [DEPT_USE], [REMAIN_VALUE])
636
  			VALUES(@INVENTDT_ID,@P_INVENT_ID,@ASSET_ID,@ASSET_STATUS,@INVENT_DESC, @NOTES, @BRANCH_USE, @DEPT_USE, @REMAIN_VALUE)
637
			END
638
      ELSE
639
      BEGIN
640
        UPDATE ASS_INVENTORY_DT SET [NOTES]=@NOTES,[ASSET_STATUS]=@ASSET_STATUS,[INVENT_DESC]=@INVENT_DESC  WHERE [INVENTDT_ID] = @INVENTDT_ID
641
        UPDATE ASS_INVENTORY_DT_RPT SET [NOTES]=@NOTES,[ASSET_STATUS]=@ASSET_STATUS,[INVENT_DESC]=@INVENT_DESC  WHERE [INVENTDT_ID] = @INVENTDT_ID
642
      END
643

    
644
			
645
      
646
      IF(@INVENT_STATUS='1')
647
      BEGIN
648
        DELETE ASS_INVENTORY_DT_LOG WHERE [INVENTDT_ID]= @INVENTDT_ID
649

    
650
        DECLARE @LOG_ID VARCHAR(20)
651
        EXEC SYS_CodeMasters_Gen 'ASS_INVENTORY_DT_LOG', @LOG_ID out
652
				IF @LOG_ID ='' OR @LOG_ID IS NULL GOTO ABORT
653
        
654
        INSERT INTO ASS_INVENTORY_DT_LOG (LOG_ID, INVENTDT_ID, INVENT_ID, RECORD_STATUS, AUTH_STATUS, MAKER_ID, CREATE_DT, CHECKER_ID, APPROVE_DT)
655
        VALUES (@LOG_ID, @INVENTDT_ID, @P_INVENT_ID, '1', 'U', @p_MAKER_ID, GETDATE(), '', NULL);
656
        SET @INVENTDT_ID =NULL
657
      END
658
		-- next Group_Id
659
			IF @@ERROR <> 0 GOTO ABORT
660

    
661
      SET @l_FILE_REF_Ids = @l_FILE_REF_Ids + CASE WHEN @l_FILE_REF_Ids = '' THEN '' ELSE ',' END + CONCAT( @INVENTDT_ID + '-', @ASSET_ID)
662
			FETCH NEXT FROM InventDetail INTO @INVENTDT_ID,@ASSET_ID, @ASSET_STATUS, @INVENT_DESC, @NOTES, @BRANCH_USE, @DEPT_USE, @REMAIN_VALUE,@INVENT_STATUS
663
      
664
		END
665
	CLOSE InventDetail
666
	DEALLOCATE InventDetail
667

    
668
	-- GiaNT 23/08/2021
669
	DELETE FROM ASS_INVENTORY_PARTY_DT WHERE INVENT_ID = @P_INVENT_ID
670
	
671
	DECLARE		
672
		@PARTY_ID			VARCHAR(15),
673
		@INVENT_ID			VARCHAR(15),
674
		@PARTY_NAME			NVARCHAR(200),
675
		@PARTY_ROLE			NVARCHAR(200),
676
		@IS_RECIVE_MAIL		VARCHAR(1),
677
		@IS_DONE		VARCHAR(1),
678
		@IS_MAIN		VARCHAR(1),
679
        @COMMENT        NVARCHAR(500)
680

    
681

    
682
	FETCH NEXT FROM PartyDetail INTO  @PARTY_ID,@INVENT_ID,@PARTY_NAME,@PARTY_ROLE,@IS_RECIVE_MAIL,@IS_DONE,@IS_MAIN,@COMMENT
683
		WHILE @@FETCH_STATUS = 0
684
		BEGIN			
685
			DECLARE @l_PARTY_ID VARCHAR(15)	
686
			EXEC SYS_CodeMasters_Gen 'ASS_INVENTORY_PARTY_DT', @l_PARTY_ID out
687
			IF @l_PARTY_ID='' OR @l_PARTY_ID IS NULL 
688
			BEGIN
689
				GOTO ABORT
690
			END
691

    
692
			INSERT INTO ASS_INVENTORY_PARTY_DT([PARTY_ID], [INVENT_ID], [PARTY_NAME], [PARTY_ROLE],[IS_RECIVE_MAIL],[IS_DONE],[IS_MAIN],[COMMENT])
693
			VALUES(@l_PARTY_ID ,@p_INVENT_ID, @PARTY_NAME, @PARTY_ROLE,@IS_RECIVE_MAIL,@IS_DONE,@IS_MAIN,@COMMENT)
694
			IF @@Error <> 0 GOTO ABORT
695

    
696
			FETCH NEXT FROM PartyDetail INTO  @PARTY_ID,@INVENT_ID,@PARTY_NAME,@PARTY_ROLE,@IS_RECIVE_MAIL,@IS_DONE,@IS_MAIN,@COMMENT
697
		END
698
	CLOSE PartyDetail
699
	DEALLOCATE PartyDetail
700

    
701
	DELETE FROM dbo.ASS_INVENTORY_UNSTOCKED WHERE INVENT_ID = @P_INVENT_ID
702

    
703
	DECLARE
704
		@UNSTOCKED_ID	VARCHAR(15),
705
		@ASS_NAME		NVARCHAR(1000),
706
		@SERIAL			NVARCHAR(MAX),
707
		@BRANCH_ID		NVARCHAR(50),
708
		@DEPT_ID		NVARCHAR(50),	
709
		@USE_DATE		VARCHAR(20)
710

    
711
	FETCH NEXT FROM UnstockedDetail INTO @UNSTOCKED_ID,@INVENT_ID,@ASS_NAME,@SERIAL,@BRANCH_ID,@DEPT_ID,@USE_DATE
712
		WHILE @@FETCH_STATUS = 0
713
		BEGIN			
714
			DECLARE @l_UNSTOCKED_ID VARCHAR(15)	
715
			EXEC SYS_CodeMasters_Gen 'ASS_INVENTORY_UNSTOCKED', @l_UNSTOCKED_ID out
716
			IF @l_UNSTOCKED_ID='' OR @l_UNSTOCKED_ID IS NULL 
717
			BEGIN
718
				GOTO ABORT
719
			END
720

    
721
			INSERT INTO ASS_INVENTORY_UNSTOCKED([UNSTOCKED_ID], [INVENT_ID], [ASS_NAME], [SERIAL],[BRANCH_ID],[DEPT_ID],[USE_DATE])
722
			VALUES(@l_UNSTOCKED_ID ,@p_INVENT_ID, @ASS_NAME, @SERIAL,@BRANCH_ID,@DEPT_ID,CONVERT(DATETIME,@USE_DATE,103))
723
			IF @@Error <> 0 GOTO ABORT
724

    
725
			FETCH NEXT FROM UnstockedDetail INTO  @UNSTOCKED_ID,@INVENT_ID,@ASS_NAME,@SERIAL,@BRANCH_ID,@DEPT_ID,@USE_DATE
726
		END
727
	CLOSE UnstockedDetail
728
	DEALLOCATE UnstockedDetail
729

    
730
COMMIT TRANSACTION
731
SELECT '0' as Result, @P_INVENT_ID  INVENT_ID, '' ErrorDesc,@l_FILE_REF_Ids Ids
732
RETURN '0'
733
ABORT:
734
BEGIN
735
		CLOSE InventDetail
736
		DEALLOCATE InventDetail
737
		ROLLBACK TRANSACTION
738
		SELECT '-1' as Result, '' INVENT_ID, '' ErrorDesc
739
		RETURN '-1'
740
End
741

    
742

    
743

    
744

    
745

    
746

    
747

    
748

    
749
GO
750

    
751
ALTER PROCEDURE dbo.ASS_INVENTORY_MASTER_Search
752
@p_INVENT_ID	varchar(15)  = NULL,
753
@p_INVENTORY_DT	VARCHAR(20) = NULL,
754
@p_TERM	nvarchar(20)  = NULL,
755
@p_BRANCH_ID	varchar(15)  = NULL,
756
@p_DEPT_ID	varchar(15)  = NULL,
757
@p_NOTES	NVARCHAR(1000)  = NULL,
758
@p_RECORD_STATUS	varchar(1)  = NULL,
759
@p_AUTH_STATUS	varchar(1)  = NULL,
760
@p_AUTH_STATUS_DVKD	varchar(1)  = NULL,
761
@p_MAKER_ID	varchar(15)  = NULL,
762
@p_CREATE_DT	VARCHAR(20) = NULL,
763
@p_CHECKER_ID	varchar(15)  = NULL,
764
@p_APPROVE_DT	VARCHAR(20) = NULL,
765
@p_TOP	INT = 10,
766
@p_BRANCH_CREATE	VARCHAR(15) = NULL,
767
@p_LEVEL	VARCHAR(50) = 'UNIT',
768
@p_USER_LOGIN	VARCHAR(20) = NULL,
769
@p_TYPE_SEARCH	VARCHAR(20) = NULL,
770
@p_AUTH_STATUS_CONFIRM VARCHAR(1) = NULL,
771
@p_FROMDATE VARCHAR(20) = NULL,
772
@p_TODATE VARCHAR(20) = NULL
773
AS
774
	--Validation is here
775
/*
776
	DECLARE @ERRORSYS NVARCHAR(15) = '' 
777
	IF ( [NOT] EXISTS ( SELECT * FROM [TABLE] WHERE  [CONDITION] ))
778
		 SET @ERRORSYS = ''
779
	IF @ERRORSYS <> '' 
780
	BEGIN
781
		SELECT ErrorCode Result, ''  CAR_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
782
		RETURN '0'
783
	END */
784
BEGIN -- PAGING
785
declare @tmp table(BRANCH_ID varchar(15))
786
	insert into @tmp  SELECT BRANCH_ID  FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_CREATE)
787

    
788
	IF(@p_TOP IS NULL OR @P_TOP = '' OR @P_TOP = 0)
789
	-- PAGING BEGIN
790
	SELECT A.INVENT_ID ,A.INVENTORY_DT ,A.TERM,A.BRANCH_ID,A.NOTES,A.RECORD_STATUS,A.AUTH_STATUS,A.MAKER_ID,A.CREATE_DT,A.CHECKER_ID ,A.APPROVE_DT,A.BRANCH_CREATE,A.DEPT_ID,DE.DEP_CODE AS DEPT_CODE,DE.DEP_NAME AS DEPT_NAME,A.NQL,A.DECISION,A.PROM_DT,A.COMMENT,A.PENTITION,A.ISSUED_DATE,A.AUTH_STATUS_DVKD,A.CHECKER_ID_DVKD,A.APPROVE_DT_DVKD,A.SIGN_USER,A.PROCESS_ID,C.BRANCH_CODE, C.BRANCH_NAME, T.TERM_CODE, T.TERM_NAME,D.CONTENT AS AUTH_STATUS_DVKD_NAME,TL.TLFullName AS CHECKER_ID_DVKD_NAME,
791
	CASE 
792
	WHEN EXISTS (SELECT INVENT_ID FROM ASS_INVENTORY_PARTY_DT WHERE A.INVENT_ID = INVENT_ID AND PARTY_NAME = @p_USER_LOGIN AND IS_DONE = '1')
793
		THEN N'Đã xác nhận'
794
		-- PHONGNT 27/06/22
795
	WHEN @p_TYPE_SEARCH='APPR' AND EXISTS (SELECT 1 FROM ASS_INVENTORY_PARTY_DT WHERE A.INVENT_ID = INVENT_ID AND IS_DONE = '1')
796
		THEN N'Đã xác nhận'
797
	ELSE N'Chưa xác nhận' END AS CONFIRM_STATUS,
798
	CASE @p_TYPE_SEARCH 
799
		-- END
800
	WHEN 'CF' 
801
		THEN (SELECT TOP(1) CONFIRM_DT FROM ASS_INVENTORY_PARTY_DT WHERE A.INVENT_ID = INVENT_ID AND PARTY_NAME = @p_USER_LOGIN)
802
	ELSE (SELECT TOP(1) CONFIRM_DT FROM ASS_INVENTORY_PARTY_DT WHERE A.INVENT_ID = INVENT_ID AND IS_DONE = '1' AND CONFIRM_DT IS NOT NULL) END AS CONFIRM_DT,
803
	(SELECT TLFullName FROM TL_USER WHERE TLNANME = ( SELECT TOP(1) PARTY_NAME FROM ASS_INVENTORY_PARTY_DT WHERE A.INVENT_ID = INVENT_ID AND IS_MAIN = '1')) AS APPROVE_NAME,
804
	(SELECT TOP(1) tu.TLFullName FROM TL_USER tu WHERE tu.TLNANME = A.SIGN_USER) AS SIGN_USER_NAME,
805
  CASE WHEN A.ASSET_TYPE IS NULL OR A.ASSET_TYPE ='' THEN 'TSCD/CCLD' ELSE A.ASSET_TYPE END AS ASSET_TYPE
806

    
807
	-- SELECT END
808
	FROM ASS_INVENTORY_MASTER A 
809
	LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS = B.AUTH_STATUS 
810
	LEFT JOIN CM_BRANCH C ON C.BRANCH_ID = A.BRANCH_ID
811
	--PHONGNT 27/8/22 Bổ sung phòng ban
812
	LEFT JOIN CM_DEPARTMENT DE ON DE.DEP_ID = A.DEPT_ID
813
	--END
814
--	LEFT JOIN CM_AUTH_STATUS D ON A.AUTH_STATUS_DVKD = D.AUTH_STATUS 
815
	LEFT JOIN CM_ALLCODE D ON (D.CDVAL=A.AUTH_STATUS_DVKD AND D.CDNAME='ASS_INVENTORY')
816
	LEFT JOIN CM_TERM T ON T.TERM_ID = A.TERM
817
	LEFT JOIN TL_USER TL ON TL.TLNANME = A.CHECKER_ID_DVKD
818
	 WHERE 1 = 1
819
		AND (A.INVENT_ID LIKE '%' + @p_INVENT_ID + '%' OR  @p_INVENT_ID IS NULL OR @p_INVENT_ID = '')
820
		AND (DATEDIFF(DAYOFYEAR,A.INVENTORY_DT,CONVERT(DATETIME, @p_INVENTORY_DT, 103)) = 0 OR  @p_INVENTORY_DT IS NULL OR @p_INVENTORY_DT = '')
821
		AND (A.TERM LIKE '%' + @p_TERM + '%' OR  @p_TERM IS NULL OR @p_TERM = '')
822
		AND (A.BRANCH_ID LIKE '%' + @p_BRANCH_ID + '%' OR  @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
823
		AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR  @p_NOTES IS NULL OR @p_NOTES = '')
824
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR  @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
825
		AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
826

    
827
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR  @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
828
		AND (DATEDIFF(DAYOFYEAR,A.CREATE_DT,CONVERT(DATETIME, @p_CREATE_DT, 103)) = 0 OR  @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
829
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR  @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
830
		AND (DATEDIFF(DAYOFYEAR,A.APPROVE_DT,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR  @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
831
		AND A.RECORD_STATUS = '1'
832
		AND ((@P_LEVEL = 'ALL' AND A.BRANCH_CREATE IN (SELECT BRANCH_ID from @tmp))
833
			OR ((@P_LEVEL = 'UNIT' AND A.BRANCH_CREATE = @p_BRANCH_CREATE) 
834
			OR (@p_BRANCH_CREATE = '' OR @p_BRANCH_CREATE IS NULL)))
835

    
836
		-- GIANT 25/08/2021
837
		AND ((@p_TYPE_SEARCH = 'CF' AND A.AUTH_STATUS = 'U' 
838
					AND EXISTS ((SELECT * FROM ASS_INVENTORY_PARTY_DT WHERE PARTY_NAME = @p_USER_LOGIN AND INVENT_ID = A.INVENT_ID AND IS_RECIVE_MAIL = 1 
839
						AND ( (@p_AUTH_STATUS_CONFIRM = 'Y' AND IS_DONE = 1) OR (@p_AUTH_STATUS_CONFIRM = 'N' AND IS_DONE = 0) OR (@p_AUTH_STATUS_CONFIRM = '' OR @p_AUTH_STATUS_CONFIRM IS NULL) )
840
					))
841
				OR	(@p_TYPE_SEARCH = 'CF' AND A.AUTH_STATUS = 'A' AND EXISTS (SELECT * FROM ASS_INVENTORY_PARTY_DT WHERE PARTY_NAME = @p_USER_LOGIN AND INVENT_ID = A.INVENT_ID AND IS_MAIN = 1)  )
842
				OR (@p_TYPE_SEARCH = '' OR @p_TYPE_SEARCH IS NULL
843
			))
844
      OR ( 
845
				(@p_TYPE_SEARCH = 'PC' AND A.AUTH_STATUS = 'U' 
846
					AND EXISTS (SELECT * FROM ASS_INVENTORY_PARTY_DT WHERE PARTY_NAME = @p_USER_LOGIN AND INVENT_ID = A.INVENT_ID AND IS_RECIVE_MAIL = 1)  )
847
				OR	(@p_TYPE_SEARCH = 'PC' AND A.AUTH_STATUS = 'A' AND EXISTS (SELECT * FROM ASS_INVENTORY_PARTY_DT WHERE PARTY_NAME = @p_USER_LOGIN AND INVENT_ID = A.INVENT_ID AND IS_RECIVE_MAIL = 1)  )
848
				OR (@p_TYPE_SEARCH = '' OR @p_TYPE_SEARCH IS NULL) 
849
        AND A.PROCESS_ID='THKK'
850
			)
851
			OR ( 
852
				(@p_TYPE_SEARCH = 'APPR' AND A.AUTH_STATUS_DVKD = 'A' AND  NOT EXISTS (SELECT * FROM ASS_INVENTORY_PARTY_DT WHERE IS_RECIVE_MAIL = 1 AND IS_DONE = 0 AND INVENT_ID = A.INVENT_ID)
853
					AND EXISTS (SELECT * FROM ASS_INVENTORY_PARTY_DT WHERE PARTY_NAME = @p_USER_LOGIN AND INVENT_ID = A.INVENT_ID AND IS_MAIN = 1)  )
854
				OR	(@p_TYPE_SEARCH = 'APPR' AND A.AUTH_STATUS_DVKD = 'A' AND EXISTS (SELECT * FROM ASS_INVENTORY_PARTY_DT WHERE PARTY_NAME = @p_USER_LOGIN AND INVENT_ID = A.INVENT_ID AND IS_MAIN = 1)  )
855
				OR (@p_TYPE_SEARCH = '' OR @p_TYPE_SEARCH IS NULL) 
856
			)
857
		)
858
			
859
		AND (A.AUTH_STATUS_DVKD LIKE '%' + @p_AUTH_STATUS_DVKD + '%' OR  @p_AUTH_STATUS_DVKD IS NULL OR @p_AUTH_STATUS_DVKD = '')
860

    
861
		AND (CONVERT(DATE,ISNULL(A.INVENTORY_DT, A.CREATE_DT),103) >=CONVERT(DATE, @p_FROMDATE, 103) OR  @p_FROMDATE IS NULL OR @p_FROMDATE = '')
862
		AND (CONVERT(DATE,ISNULL(A.INVENTORY_DT, A.CREATE_DT),103) <=CONVERT(DATETIME, @p_TODATE, 103) OR  @p_TODATE IS NULL OR @p_TODATE = '')
863

    
864
		-- HUYHT 27/04/2022 Khi trạng thái duyệt là "Nháp", "Từ chối" thì chỉ người tạo tìm thấy phiếu
865
		AND ((A.AUTH_STATUS_DVKD IN ('E','R') AND (A.MAKER_ID = @p_USER_LOGIN OR @p_USER_LOGIN IS NULL OR @p_USER_LOGIN = ''))
866
			OR A.AUTH_STATUS_DVKD NOT IN ('E','R'))
867

    
868
		ORDER BY A.CREATE_DT DESC
869
	-- PAGING END
870
	ELSE
871
	-- PAGING BEGIN
872

    
873
	SELECT TOP(CONVERT(INT,@P_TOP))A.INVENT_ID ,A.INVENTORY_DT ,A.TERM,A.BRANCH_ID,A.NOTES,A.RECORD_STATUS,A.AUTH_STATUS,A.MAKER_ID,A.CREATE_DT,A.CHECKER_ID ,A.APPROVE_DT,A.BRANCH_CREATE,A.DEPT_ID,DE.DEP_CODE AS DEPT_CODE,DE.DEP_NAME AS DEPT_NAME,A.NQL,A.DECISION,A.PROM_DT,A.COMMENT,A.PENTITION,A.ISSUED_DATE,A.AUTH_STATUS_DVKD,A.CHECKER_ID_DVKD,A.APPROVE_DT_DVKD,A.SIGN_USER,A.PROCESS_ID,B.AUTH_STATUS_NAME,C.BRANCH_CODE, C.BRANCH_NAME, T.TERM_CODE, T.TERM_NAME,D.CONTENT AS AUTH_STATUS_DVKD_NAME,TL.TLFullName AS CHECKER_ID_DVKD_NAME,
874
	CASE 
875
		WHEN EXISTS (SELECT INVENT_ID FROM ASS_INVENTORY_PARTY_DT WHERE A.INVENT_ID = INVENT_ID AND PARTY_NAME = @p_USER_LOGIN AND IS_DONE = '1')
876
			THEN N'Đã xác nhận'
877
			-- PHONGNT 27/06/22 Bổ sung màn hình phê duyệt ngày
878
		WHEN @p_TYPE_SEARCH='APPR' AND EXISTS (SELECT CONFIRM_DT FROM ASS_INVENTORY_PARTY_DT WHERE A.INVENT_ID = INVENT_ID AND IS_DONE = '1')
879
			THEN N'Đã xác nhận'
880
		ELSE N'Chưa xác nhận' END AS CONFIRM_STATUS,
881
	CASE @p_TYPE_SEARCH 
882
		WHEN 'CF' 
883
			THEN (SELECT TOP(1) CONFIRM_DT FROM ASS_INVENTORY_PARTY_DT WHERE A.INVENT_ID = INVENT_ID AND PARTY_NAME = @p_USER_LOGIN)
884
		ELSE (SELECT TOP(1) CONFIRM_DT FROM ASS_INVENTORY_PARTY_DT WHERE A.INVENT_ID = INVENT_ID AND IS_DONE = '1' AND CONFIRM_DT IS NOT NULL ORDER BY CONFIRM_DT) END AS CONFIRM_DT,
885
	(SELECT TLFullName FROM TL_USER WHERE TLNANME = ( SELECT TOP(1) PARTY_NAME FROM ASS_INVENTORY_PARTY_DT WHERE A.INVENT_ID = INVENT_ID AND IS_MAIN = '1')) AS APPROVE_NAME,
886
	(SELECT TOP(1) tu.TLFullName FROM TL_USER tu WHERE tu.TLNANME = A.SIGN_USER) AS SIGN_USER_NAME,
887
  CASE WHEN A.ASSET_TYPE IS NULL OR A.ASSET_TYPE ='' THEN 'TSCD/CCLD' ELSE A.ASSET_TYPE END AS ASSET_TYPE
888
	-- SELECT END
889

    
890
	FROM ASS_INVENTORY_MASTER A 
891
	LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS = B.AUTH_STATUS
892
	--LEFT JOIN CM_AUTH_STATUS D ON A.AUTH_STATUS_DVKD = D.AUTH_STATUS 
893
	--PHONGNT 27/8/22 Bổ sung phòng ban
894
	LEFT JOIN CM_DEPARTMENT DE ON DE.DEP_ID = A.DEPT_ID
895
	--END
896
	LEFT JOIN CM_ALLCODE D ON (D.CDVAL=A.AUTH_STATUS_DVKD AND D.CDNAME='ASS_INVENTORY')
897
	LEFT JOIN CM_BRANCH C ON C.BRANCH_ID = A.BRANCH_ID 
898
	LEFT JOIN CM_TERM T ON T.TERM_ID = A.TERM
899
	LEFT JOIN TL_USER TL ON TL.TLNANME = A.CHECKER_ID_DVKD
900
	 WHERE 1 = 1
901
		AND (A.INVENT_ID LIKE '%' + @p_INVENT_ID + '%' OR  @p_INVENT_ID IS NULL OR @p_INVENT_ID = '')
902
		AND (DATEDIFF(DAYOFYEAR,A.INVENTORY_DT,CONVERT(DATETIME, @p_INVENTORY_DT, 103)) = 0 OR  @p_INVENTORY_DT IS NULL OR @p_INVENTORY_DT = '')
903
		AND (A.TERM LIKE '%' + @p_TERM + '%' OR  @p_TERM IS NULL OR @p_TERM = '')
904
		AND (A.BRANCH_ID LIKE '%' + @p_BRANCH_ID + '%' OR  @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
905
		AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR  @p_NOTES IS NULL OR @p_NOTES = '')
906
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR  @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
907
		AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
908

    
909
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR  @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
910
		AND (DATEDIFF(DAYOFYEAR,A.CREATE_DT,CONVERT(DATETIME, @p_CREATE_DT, 103)) = 0 OR  @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
911
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR  @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
912
		AND (DATEDIFF(DAYOFYEAR,A.APPROVE_DT,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR  @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
913
		AND A.RECORD_STATUS = '1'
914
		AND ((@P_LEVEL = 'ALL' AND A.BRANCH_CREATE IN (SELECT BRANCH_ID from @tmp))
915
			OR ((@P_LEVEL = 'UNIT' AND A.BRANCH_CREATE = @p_BRANCH_CREATE) 
916
			OR (@p_BRANCH_CREATE = '' OR @p_BRANCH_CREATE IS NULL)))
917
		
918
		-- GIANT 25/08/2021
919
		--AND (
920
		--	(@p_TYPE_SEARCH = 'CF' AND A.AUTH_STATUS = 'U' 
921
		--		AND EXISTS ((SELECT * FROM ASS_INVENTORY_PARTY_DT WHERE PARTY_NAME = @p_USER_LOGIN AND INVENT_ID = A.INVENT_ID AND IS_RECIVE_MAIL = 1 
922
		--			AND ( (@p_AUTH_STATUS_CONFIRM = 'Y' AND IS_DONE = 1) OR (@p_AUTH_STATUS_CONFIRM = 'N' AND IS_DONE = 0) OR (@p_AUTH_STATUS_CONFIRM = '' OR @p_AUTH_STATUS_CONFIRM IS NULL) )
923
		--		))
924
		--		OR (@p_TYPE_SEARCH = '' OR @p_TYPE_SEARCH IS NULL
925
		--	))			
926
		--	OR ( 
927
		--		(@p_TYPE_SEARCH = 'APPR' AND A.AUTH_STATUS = 'U' AND  NOT EXISTS (SELECT * FROM ASS_INVENTORY_PARTY_DT WHERE IS_RECIVE_MAIL = 1 AND IS_DONE = 0 AND INVENT_ID = A.INVENT_ID)
928
		--			AND EXISTS (SELECT * FROM ASS_INVENTORY_PARTY_DT WHERE PARTY_NAME = @p_USER_LOGIN AND INVENT_ID = A.INVENT_ID AND IS_MAIN = 1)  )
929
			
930
		--		OR (@p_TYPE_SEARCH = '' OR @p_TYPE_SEARCH IS NULL) )
931
		--	)
932
				AND ((@p_TYPE_SEARCH = 'CF' AND A.AUTH_STATUS = 'U' 
933
					AND EXISTS ((SELECT * FROM ASS_INVENTORY_PARTY_DT WHERE PARTY_NAME = @p_USER_LOGIN AND INVENT_ID = A.INVENT_ID AND IS_RECIVE_MAIL = 1 
934
						AND ( (@p_AUTH_STATUS_CONFIRM = 'Y' AND IS_DONE = 1) OR (@p_AUTH_STATUS_CONFIRM = 'N' AND IS_DONE = 0) OR (@p_AUTH_STATUS_CONFIRM = '' OR @p_AUTH_STATUS_CONFIRM IS NULL) )
935
					))
936
				OR	(@p_TYPE_SEARCH = 'CF' AND A.AUTH_STATUS = 'A' AND EXISTS (SELECT * FROM ASS_INVENTORY_PARTY_DT WHERE PARTY_NAME = @p_USER_LOGIN AND INVENT_ID = A.INVENT_ID AND IS_MAIN = 1)  )
937
				OR (@p_TYPE_SEARCH = '' OR @p_TYPE_SEARCH IS NULL
938
			))
939
      OR ( 
940
				(@p_TYPE_SEARCH = 'PC' AND A.AUTH_STATUS = 'U' 
941
					AND EXISTS (SELECT * FROM ASS_INVENTORY_PARTY_DT WHERE PARTY_NAME = @p_USER_LOGIN AND INVENT_ID = A.INVENT_ID AND IS_RECIVE_MAIL = 1)  )
942
				OR	(@p_TYPE_SEARCH = 'PC' AND A.AUTH_STATUS = 'A' AND EXISTS (SELECT * FROM ASS_INVENTORY_PARTY_DT WHERE PARTY_NAME = @p_USER_LOGIN AND INVENT_ID = A.INVENT_ID AND IS_RECIVE_MAIL = 1)  )
943
				OR (@p_TYPE_SEARCH = '' OR @p_TYPE_SEARCH IS NULL) 
944
        AND A.PROCESS_ID='THKK'
945
			)
946
			OR ( 
947
				(@p_TYPE_SEARCH = 'APPR' AND A.AUTH_STATUS_DVKD = 'A' AND  NOT EXISTS (SELECT * FROM ASS_INVENTORY_PARTY_DT WHERE IS_RECIVE_MAIL = 1 AND IS_DONE = 0 AND INVENT_ID = A.INVENT_ID)
948
					AND EXISTS (SELECT * FROM ASS_INVENTORY_PARTY_DT WHERE PARTY_NAME = @p_USER_LOGIN AND INVENT_ID = A.INVENT_ID AND IS_MAIN = 1)  )
949
				OR	(@p_TYPE_SEARCH = 'APPR' AND A.AUTH_STATUS_DVKD = 'A' AND EXISTS (SELECT * FROM ASS_INVENTORY_PARTY_DT WHERE PARTY_NAME = @p_USER_LOGIN AND INVENT_ID = A.INVENT_ID AND IS_MAIN = 1)  )
950
				OR (@p_TYPE_SEARCH = '' OR @p_TYPE_SEARCH IS NULL) 
951
			)
952
		)
953

    
954
		AND (A.AUTH_STATUS_DVKD LIKE '%' + @p_AUTH_STATUS_DVKD + '%' OR  @p_AUTH_STATUS_DVKD IS NULL OR @p_AUTH_STATUS_DVKD = '')
955

    
956
		AND (CONVERT(DATE,ISNULL(A.INVENTORY_DT,A.CREATE_DT),103) >=CONVERT(DATE, @p_FROMDATE, 103) OR  @p_FROMDATE IS NULL OR @p_FROMDATE = '')
957
		AND (CONVERT(DATE,ISNULL(A.INVENTORY_DT, A.CREATE_DT),103) <=CONVERT(DATETIME, @p_TODATE, 103) OR  @p_TODATE IS NULL OR @p_TODATE = '')
958

    
959
		-- HUYHT 27/04/2022 Khi trạng thái duyệt là "Nháp", "Từ chối" thì chỉ người tạo tìm thấy phiếu
960
		AND ((A.AUTH_STATUS_DVKD IN ('E','R') AND (A.MAKER_ID = @p_USER_LOGIN OR @p_USER_LOGIN IS NULL OR @p_USER_LOGIN = ''))
961
			OR A.AUTH_STATUS_DVKD NOT IN ('E','R'))
962

    
963
		ORDER BY A.CREATE_DT DESC
964
	-- PAGING END
965

    
966
END -- PAGING
967

    
968

    
969

    
970

    
971

    
972

    
973

    
974
GO
975

    
976
ALTER   PROC dbo.ASS_INVENTORY_MASTER_SendApp
977
@p_INVENT_ID VARCHAR(20),
978
@p_USERLOGIN VARCHAR(50),
979
@p_TYPE VARCHAR(15),
980
@p_AUTH_STATUS VARCHAR(1)
981
AS
982
BEGIN TRANSACTION
983
    DECLARE @Mes NVARCHAR(MAX)
984
	IF(EXISTS(SELECT * FROM ASS_INVENTORY_MASTER aim WHERE aim.INVENT_ID=@p_INVENT_ID AND aim.PROCESS_ID IS NULL OR aim.PROCESS_ID=''))
985
  BEGIN
986
  	IF(EXISTS(SELECT INVENT_ID FROM dbo.ASS_INVENTORY_MASTER WHERE INVENT_ID = @p_INVENT_ID AND AUTH_STATUS_DVKD = @p_AUTH_STATUS ) )
987
  	BEGIN
988
  			ROLLBACK TRANSACTION
989
  			SELECT '-1' AS Result , ''  INVENT_ID, N'Phiếu kiểm kê đã được gửi phê duyệt trước đó.' ErrorDesc
990
  			RETURN '-1'
991
  	END
992
  
993
  	IF (NOT EXISTS (SELECT INVENT_ID FROM ASS_INVENTORY_PARTY_DT WHERE INVENT_ID = @p_INVENT_ID))
994
  	BEGIN
995
  			ROLLBACK TRANSACTION
996
  			SELECT '-1' AS Result , ''  INVENT_ID, N'Danh sách thành phần kiểm kê không được để trống.' ErrorDesc
997
  			RETURN '-1'
998
  	END
999
  
1000
  	IF (NOT EXISTS (SELECT INVENT_ID FROM ASS_INVENTORY_PARTY_DT WHERE INVENT_ID = @p_INVENT_ID AND IS_MAIN = '1'))
1001
  	BEGIN
1002
  			ROLLBACK TRANSACTION
1003
  			SELECT '-1' AS Result , ''  INVENT_ID, N'Danh sách thành phần kiểm kê phải có ít nhất một trưởng bản kiểm kê.' ErrorDesc
1004
  			RETURN '-1'
1005
  	END
1006
  
1007
  	IF (NOT EXISTS (SELECT INVENT_ID FROM ASS_INVENTORY_PARTY_DT WHERE INVENT_ID = @p_INVENT_ID AND IS_RECIVE_MAIL = '1' AND IS_MAIN <> '1'))
1008
  	BEGIN
1009
  			ROLLBACK TRANSACTION
1010
  			SELECT '-1' AS Result , ''  INVENT_ID, N'Danh sách thành phần kiểm kê phải có ít nhất 1 người nhận mail ngoại trừ trưởng ban.' ErrorDesc
1011
  			RETURN '-1'
1012
  	END
1013
  	DECLARE @BRANCH_ID VARCHAR(20), @DEP_ID VARCHAR(20)
1014
  	UPDATE ASS_INVENTORY_MASTER SET AUTH_STATUS_DVKD = @p_AUTH_STATUS, PROCESS_ID='APPNEW' WHERE INVENT_ID = @p_INVENT_ID
1015
  	SELECT @BRANCH_ID =TLSUBBRID,@DEP_ID=SECUR_CODE FROM dbo.TL_USER WHERE TLNANME=@p_USERLOGIN
1016
  	DELETE FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_INVENT_ID
1017
  	IF(EXISTS(SELECT * FROM ASS_INVENTORY_MASTER WHERE INVENT_ID = @p_INVENT_ID AND SIGN_USER IS NOT NULL AND SIGN_USER <>''))
1018
  	BEGIN
1019
  		DECLARE @BRANCH_SIGN_ID VARCHAR(20),@DEP_SIGN_ID VARCHAR(20),@BRANCH_SIGN_TYPE VARCHAR(10),@ROLE_SIGN VARCHAR(20)
1020
  		SELECT @BRANCH_SIGN_ID=TLSUBBRID,@DEP_SIGN_ID=SECUR_CODE,@BRANCH_SIGN_TYPE=BRANCH_TYPE FROM dbo.TL_USER WHERE TLNANME =(SELECT SIGN_USER FROM ASS_INVENTORY_MASTER WHERE INVENT_ID = @p_INVENT_ID)
1021
  		UPDATE ASS_INVENTORY_MASTER SET AUTH_STATUS_DVKD = @p_AUTH_STATUS, PROCESS_ID='SIGN' WHERE INVENT_ID = @p_INVENT_ID
1022
  		INSERT INTO dbo.PL_REQUEST_PROCESS
1023
  		(
1024
  		    REQ_ID,
1025
  		    PROCESS_ID,
1026
  		    STATUS,
1027
  		    ROLE_USER,
1028
  		    BRANCH_ID,
1029
  			DEP_ID,
1030
  		    CHECKER_ID,
1031
  		    APPROVE_DT,
1032
  		    PARENT_PROCESS_ID,
1033
  		    IS_LEAF,
1034
  		    COST_ID,
1035
  		    DVDM_ID,
1036
  		    NOTES,
1037
  		    IS_HAS_CHILD
1038
  		)
1039
  		VALUES
1040
  		(   @p_INVENT_ID,        -- REQ_ID - varchar(15)
1041
  		    'SIGN',        -- PROCESS_ID - varchar(10)
1042
  		    'C',        -- STATUS - varchar(5)
1043
  		    '',  -- ROLE_USER - varchar(50)
1044
  		    @BRANCH_SIGN_ID,  
1045
  			CASE WHEN @BRANCH_SIGN_TYPE='HS' THEN @DEP_SIGN_ID ELSE '' END,      -- BRANCH_ID - varchar(15)
1046
  		    '',        -- CHECKER_ID - varchar(15)
1047
  		    NULL,      -- APPROVE_DT - datetime
1048
  		    '',        -- PARENT_PROCESS_ID - varchar(10)
1049
  		    'N',        -- IS_LEAF - varchar(1)
1050
  		    '',        -- COST_ID - varchar(15)
1051
  		    '',        -- DVDM_ID - varchar(15)
1052
  		    N'Chờ cấp phê duyệt trung gian xác nhận phiếu',       -- NOTES - nvarchar(500)
1053
  		    NULL       -- IS_HAS_CHILD - bit
1054
  		 )
1055
  	END
1056
  	ELSE
1057
  	BEGIN
1058
  		INSERT INTO dbo.PL_REQUEST_PROCESS
1059
  		(
1060
  		    REQ_ID,
1061
  		    PROCESS_ID,
1062
  		    STATUS,
1063
  		    ROLE_USER,
1064
  		    BRANCH_ID,
1065
  			DEP_ID,
1066
  		    CHECKER_ID,
1067
  		    APPROVE_DT,
1068
  		    PARENT_PROCESS_ID,
1069
  		    IS_LEAF,
1070
  		    COST_ID,
1071
  		    DVDM_ID,
1072
  		    NOTES,
1073
  		    IS_HAS_CHILD
1074
  		)
1075
  		VALUES
1076
  		(   @p_INVENT_ID,        -- REQ_ID - varchar(15)
1077
  		    'APPNEW',        -- PROCESS_ID - varchar(10)
1078
  		    'C',        -- STATUS - varchar(5)
1079
  		    'GDDV',        -- ROLE_USER - varchar(50)
1080
  		    @BRANCH_ID,  
1081
  			@DEP_ID,      -- BRANCH_ID - varchar(15)
1082
  		    '',        -- CHECKER_ID - varchar(15)
1083
  		    NULL,      -- APPROVE_DT - datetime
1084
  		    '',        -- PARENT_PROCESS_ID - varchar(10)
1085
  		    'N',        -- IS_LEAF - varchar(1)
1086
  		    '',        -- COST_ID - varchar(15)
1087
  		    '',        -- DVDM_ID - varchar(15)
1088
  		   -- N'Chờ trưởng đơn vị phê duyệt',       -- NOTES - nvarchar(500)
1089
  		    N'Chờ trưởng đơn vị phê duyệt' ,
1090
  		    NULL       -- IS_HAS_CHILD - bit
1091
  		)
1092
  	END
1093
  
1094
  	INSERT INTO dbo.PL_PROCESS
1095
  	(
1096
  		REQ_ID,
1097
  		PROCESS_ID,
1098
  		CHECKER_ID,
1099
  		APPROVE_DT,
1100
  		PROCESS_DESC,
1101
  		NOTES
1102
  	)
1103
  	VALUES
1104
  	(   @p_INVENT_ID,       
1105
  		'SEND',
1106
  		@p_USERLOGIN,       
1107
  		GETDATE(), 
1108
  		N'Người tạo phiếu kiểm kê gửi phê duyệt thành công' ,     
1109
  		N'Nhân viên gửi phê duyệt '       
1110
  	)
1111
    SET @Mes=N'Phiếu kiểm kê: '+(SELECT INVENT_ID FROM ASS_INVENTORY_MASTER WHERE INVENT_ID  = @p_INVENT_ID)+N' đã được gửi xác nhận thành công'
1112
  	IF @@Error <> 0 GOTO ABORT
1113
  END
1114
  ELSE
1115
    BEGIN
1116
      DECLARE @PROCESS_ID_CUR VARCHAR(15) = (SELECT PROCESS_ID FROM dbo.ASS_INVENTORY_MASTER WHERE INVENT_ID = @p_INVENT_ID)
1117
  	  UPDATE dbo.PL_REQUEST_PROCESS SET STATUS = 'P',CHECKER_ID = @p_USERLOGIN, APPROVE_DT = GETDATE() WHERE REQ_ID = @p_INVENT_ID AND ROLE_USER = @p_USERLOGIN AND PROCESS_ID = @PROCESS_ID_CUR
1118
  
1119
  	IF(NOT EXISTS(SELECT 1 FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID = @p_INVENT_ID AND PROCESS_ID = @PROCESS_ID_CUR AND STATUS = 'C'))
1120
  	BEGIN
1121
  		DECLARE @PROCESS_ID_NEXT VARCHAR(15) = (SELECT TOP 1 PROCESS_ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID = @p_INVENT_ID AND PARENT_PROCESS_ID = @PROCESS_ID_CUR)
1122
  		UPDATE dbo.ASS_INVENTORY_MASTER SET PROCESS_ID = @PROCESS_ID_NEXT WHERE INVENT_ID = @p_INVENT_ID
1123
  		UPDATE dbo.PL_REQUEST_PROCESS SET STATUS = 'C' WHERE REQ_ID = @p_INVENT_ID AND PROCESS_ID = @PROCESS_ID_NEXT
1124
  	END
1125
  
1126
  	INSERT INTO dbo.PL_PROCESS
1127
  	(
1128
  		REQ_ID,
1129
  		PROCESS_ID,
1130
  		CHECKER_ID,
1131
  		APPROVE_DT,
1132
  		PROCESS_DESC,
1133
  		NOTES
1134
  	)
1135
  	VALUES
1136
  	(   @p_INVENT_ID,       
1137
  		'THKK',
1138
  		@p_USERLOGIN,       
1139
  		GETDATE(), 
1140
  		N'Người tạo gửi duyệt kỳ kiểm kê' ,     
1141
  		N'Thực hiện kiểm kê'       
1142
  	)
1143
    SET @Mes=N'Phiếu kiểm kê: '+(SELECT INVENT_ID FROM ASS_INVENTORY_MASTER WHERE INVENT_ID  = @p_INVENT_ID)+N' đã được gửi phê duyệt thành công'
1144
    END
1145
COMMIT TRANSACTION
1146
SELECT '0' as Result,'' REQ_CODE,''REQ_ID, @Mes ErrorDesc
1147
RETURN '0'
1148
ABORT:
1149
BEGIN
1150
		ROLLBACK TRANSACTION
1151
		SELECT '-1' as Result,'' REQ_CODE,''REQ_ID, '' ErrorDesc
1152
		RETURN '-1'
1153
End
1154

    
1155

    
1156

    
1157
GO