Project

General

Profile

[ASS_INVENTORY_UNSTOCKED_Upd] .txt

Luc Tran Van, 04/25/2023 04:38 PM

 
1
CREATE PROCEDURE [dbo].[ASS_INVENTORY_UNSTOCKED_Upd] 
2
	@p_INVENT_ID varchar(15) = NULL,
3
	@p_LIST_UNSTOCKED	XML = NULL
4
AS	
5
BEGIN
6
BEGIN TRANSACTION
7
	Declare @hdoc INT
8
	DECLARE @ERRORSYS NVARCHAR(100) = '' 	
9
	Exec sp_xml_preparedocument @hdoc Output, @p_LIST_UNSTOCKED	
10

    
11
	DECLARE UnstockedDetail CURSOR FOR
12
	SELECT *
13
	FROM OPENXML(@hDoc,'/Root/UnstockedDetail',2)
14
	WITH 
15
	(
16
		UNSTOCKED_ID varchar(15),
17
		INVENT_ID varchar(15) ,
18
		ASS_NAME nvarchar(1000) ,
19
		SERIAL nvarchar(max) ,
20
		BRANCH_ID nvarchar(200) ,
21
		DEPT_ID nvarchar(200) ,
22
		USE_DATE varchar(25) 
23
	)		
24
	OPEN UnstockedDetail
25

    
26
	DELETE [ASS_INVENTORY_UNSTOCKED] WHERE INVENT_ID = @p_INVENT_ID
27

    
28
	DECLARE @UNSTOCKED_ID varchar(15),
29
			@INVENT_ID varchar(15),
30
			@ASS_NAME nvarchar(1000),
31
			@SERIAL nvarchar(max),
32
			@BRANCH_ID nvarchar(200),
33
			@DEPT_ID nvarchar(200),
34
			@USE_DATE varchar(25)
35
	
36
	FETCH NEXT FROM UnstockedDetail INTO @UNSTOCKED_ID, @INVENT_ID, @ASS_NAME, @SERIAL, @BRANCH_ID, @DEPT_ID, @USE_DATE	
37
	WHILE @@FETCH_STATUS = 0	
38
	BEGIN		
39
		-- Kiểm tra [INVENT_ID] KHÔNG TỒn TẠi
40
		IF(NOT EXISTS( SELECT 1 FROM ASS_INVENTORY_MASTER WHERE INVENT_ID = @INVENT_ID))
41
		BEGIN
42
			SET @ERRORSYS = N'Không tồn tại INVENT_ID: ' + @INVENT_ID
43
			GOTO ABORT
44
		END
45
		IF(@UNSTOCKED_ID IS NULL OR @UNSTOCKED_ID = '')
46
		BEGIN 
47
			EXEC SYS_CodeMasters_Gen 'ASS_INVENTORY_UNSTOCKED', @UNSTOCKED_ID OUT
48
			IF @UNSTOCKED_ID='' OR @UNSTOCKED_ID IS NULL GOTO ABORT		
49
		END
50
	
51
		INSERT INTO [dbo].[ASS_INVENTORY_UNSTOCKED] (
52
			[UNSTOCKED_ID]
53
           ,[INVENT_ID]
54
           ,[ASS_NAME]
55
           ,[SERIAL]
56
           ,[BRANCH_ID]
57
           ,[DEPT_ID]
58
           ,[USE_DATE])
59
		VALUES (
60
			@UNSTOCKED_ID, 
61
			@INVENT_ID, 
62
			@ASS_NAME, 
63
			@SERIAL, 
64
			@BRANCH_ID, 
65
			@DEPT_ID, 
66
			CONVERT(DATETIME, @USE_DATE, 103)
67
		)
68
		IF @@Error <> 0 GOTO ABORT	
69
	
70
		FETCH NEXT FROM UnstockedDetail INTO @UNSTOCKED_ID, @INVENT_ID, @ASS_NAME, @SERIAL, @BRANCH_ID, @DEPT_ID, @USE_DATE
71
	END
72
	CLOSE UnstockedDetail
73
	DEALLOCATE UnstockedDetail
74
		
75
	COMMIT TRANSACTION
76
	SELECT '0' as Result, '' id, '' ErrorDesc
77
	RETURN '0'
78
	ABORT:
79
	BEGIN
80
			CLOSE UnstockedDetail
81
			DEALLOCATE UnstockedDetail
82
			ROLLBACK TRANSACTION
83
			SELECT '-1' as Result, '' id, @ERRORSYS ErrorDesc
84
			RETURN '-1'
85
	End
86

    
87
END