Project

General

Profile

UPD CM ATTACH FILE.txt

Luc Tran Van, 10/15/2020 09:46 AM

 
1

    
2
ALTER PROCEDURE [dbo].[CM_ATTACH_FILE_Upd_Xml]
3
@p_REF_ID	varchar(15)  = null,
4
@p_AttachDetail	xml  = NULL
5
AS
6
Declare @hdoc INT
7
	Exec sp_xml_preparedocument @hdoc Output, @p_AttachDetail
8
	DECLARE attDetail CURSOR FOR
9
	SELECT *
10
	FROM OPENXML(@hDoc,'/Root/AttachDetail',2)
11
	WITH 
12
	(
13
	ATTACH_ID	varchar(15),
14
	[TYPE]	varchar(50),
15
	REF_ID	varchar(15),
16
	FILE_NAME_OLD	nvarchar(200),
17
	PATH_OLD	nvarchar(1000),
18
	FILE_NAME_NEW	nvarchar(200),
19
	PATH_NEW	nvarchar(1000),
20
	FILE_SIZE	decimal(18),
21
	FILE_TYPE	varchar(50),
22
	ATTACH_DT	VARCHAR(20),
23
	EMP_ID	varchar(15),
24
	[INDEX]	varchar(50),
25
	NOTES NVARCHAR(1000)
26
	)
27
	OPEN attDetail
28

    
29
BEGIN TRANSACTION
30
		Declare @ATTACH_ID VARCHAR(15), @TYPE varchar(50), @REF_ID varchar(15), @FILE_NAME_OLD	nvarchar(200), @PATH_OLD nvarchar(1000), @FILE_NAME_NEW nvarchar(200), 
31
		@PATH_NEW nvarchar(1000), @FILE_SIZE decimal(18), @FILE_TYPE varchar(50), @ATTACH_DT VARCHAR(20), @EMP_ID varchar(15), @INDEX varchar(50),@NOTES NVARCHAR(1000)
32
		
33
		--Xoa detail
34
		IF(NOT EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE (REQ_PAY_ID =@REF_ID OR REQ_PAY_ID = @p_REF_ID)))
35
		BEGIN
36
			DELETE CM_ATTACH_FILE WHERE REF_ID = @p_REF_ID;
37
		END
38
		IF @@Error <> 0 GOTO ABORT
39

    
40
		FETCH NEXT FROM attDetail INTO @ATTACH_ID,@TYPE, @REF_ID, @FILE_NAME_OLD, @PATH_OLD, @FILE_NAME_NEW, @PATH_NEW, @FILE_SIZE, @FILE_TYPE, @ATTACH_DT, @EMP_ID, @INDEX,@NOTES	
41
		WHILE @@FETCH_STATUS = 0	
42
		BEGIN
43
				IF(NOT EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@REF_ID))
44
				BEGIN
45
					IF(LEN(@ATTACH_ID) = 0)
46
					BEGIN
47
						EXEC SYS_CodeMasters_Gen 'CM_ATTACH_FILE', @ATTACH_ID out
48
						IF @ATTACH_ID='' OR @ATTACH_ID IS NULL GOTO ABORT
49
					END		
50
					BEGIN				
51
					INSERT INTO CM_ATTACH_FILE([ATTACH_ID],[TYPE],[REF_ID],[FILE_NAME_OLD],[PATH_OLD],[FILE_NAME_NEW],[PATH_NEW],[FILE_SIZE],[FILE_TYPE],[ATTACH_DT],[EMP_ID], [INDEX],[NOTES])
52
					VALUES(@ATTACH_ID ,@TYPE ,@REF_ID ,@FILE_NAME_OLD ,@PATH_OLD ,@FILE_NAME_NEW ,@PATH_NEW ,@FILE_SIZE ,@FILE_TYPE ,CONVERT(DATETIME, @ATTACH_DT, 103) ,@EMP_ID, @INDEX,@NOTES )
53
				END
54
				IF @@Error <> 0 GOTO ABORT
55
				-- next Id
56
				FETCH NEXT FROM attDetail INTO @ATTACH_ID, @TYPE, @REF_ID, @FILE_NAME_OLD, @PATH_OLD, @FILE_NAME_NEW, @PATH_NEW, @FILE_SIZE, @FILE_TYPE, @ATTACH_DT, @EMP_ID, @INDEX,@NOTES
57
			END
58
		END
59
		CLOSE attDetail
60
		DEALLOCATE attDetail
61
COMMIT TRANSACTION
62
SELECT '0' as Result, '' ErrorDesc
63
RETURN '0'
64
ABORT:
65
BEGIN
66
		CLOSE attDetail
67
		DEALLOCATE attDetail
68
		ROLLBACK TRANSACTION
69
		SELECT '-1' as Result, '' ErrorDesc
70
		RETURN '-1'
71
End
72

    
73

    
74

    
75