Project

General

Profile

CM ATTACH FILE UPD XML V2.txt

Luc Tran Van, 10/17/2022 12:17 AM

 
1

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

    
31
BEGIN TRANSACTION
32
		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), 
33
		@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),
34
		@IS_VIEW BIT
35
		--Xoa detail
36
		-- 29102020 - LOI GUI PHE DUYET THI MAT FILE. NEN FIX STORE NEU PHIEU DA GUI PHE DUYET ROI THI KHONG XOA FILE
37
		IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REF_ID))
38
		BEGIN
39
			IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REF_ID AND AUTH_STATUS NOT IN ('R','E','U')))
40
			BEGIN
41
				DELETE dbo.TR_REQUEST_DOC_FILE WHERE REQ_ID=@p_REF_ID
42
			END
43
			ELSE
44
			BEGIN
45
				DELETE CM_ATTACH_FILE WHERE REF_ID = @p_REF_ID;
46
			END
47
		END
48
		ELSE IF EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REF_ID)
49
		BEGIN
50
			IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REF_ID AND AUTH_STATUS  NOT IN ('R','E','U')))
51
			BEGIN
52
				DELETE dbo.TR_REQUEST_DOC_FILE WHERE REQ_ID=@p_REF_ID
53
			END
54
			ELSE
55
			BEGIN
56
				DELETE CM_ATTACH_FILE WHERE REF_ID = @p_REF_ID;
57
			END
58
		END
59
		ELSE
60
		BEGIN
61
			DELETE CM_ATTACH_FILE WHERE REF_ID = @p_REF_ID;
62
			DELETE dbo.TR_REQUEST_DOC_FILE WHERE REQ_ID=@p_REF_ID
63
		END
64
		IF @@Error <> 0 GOTO ABORT
65
		UPDATE CM_ATTACH_FILE SET REF_ID = 'X'+RIGHT(REF_ID,14) WHERE REF_ID = @p_REF_ID;
66
		UPDATE dbo.TR_REQUEST_DOC_FILE SET  REQ_ID = 'X'+RIGHT(REQ_ID,14)  WHERE REQ_ID=@p_REF_ID
67
		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,@IS_VIEW
68
		WHILE @@FETCH_STATUS = 0	
69
		BEGIN
70
			EXEC SYS_CodeMasters_Gen 'CM_ATTACH_FILE', @ATTACH_ID out
71
			IF @ATTACH_ID='' OR @ATTACH_ID IS NULL GOTO ABORT
72
			--IF(LEN(@ATTACH_ID) = 0)
73
			--	BEGIN
74
			--		EXEC SYS_CodeMasters_Gen 'CM_ATTACH_FILE', @ATTACH_ID out
75
			--		IF @ATTACH_ID='' OR @ATTACH_ID IS NULL GOTO ABORT
76
			--	END		
77
			BEGIN				
78
				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])
79
				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 )
80
				----2021913 LUCTV BO SUNG VAO LOG DINH KEM FILE
81
				INSERT INTO CM_ATTACH_FILE_LOG([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])
82
				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 )
83
				IF @@Error <> 0 GOTO ABORT
84

    
85
				IF(@p_TYPE='PYC')
86
				BEGIN
87
					DECLARE @TR_REQ_DOC_FILE_ID VARCHAR(20)
88

    
89
					EXEC SYS_CodeMasters_Gen 'TR_REQUEST_DOC_FILE', @TR_REQ_DOC_FILE_ID out
90
					IF @TR_REQ_DOC_FILE_ID='' OR @TR_REQ_DOC_FILE_ID IS NULL GOTO ABORT
91
					INSERT INTO dbo.TR_REQUEST_DOC_FILE
92
					(
93
					    TR_REQUEST_DOC_FILE_ID,
94
					    ATTACH_ID,
95
					    IS_VIEW,
96
					    REQ_ID
97
					)
98
					VALUES
99
					(   @TR_REQ_DOC_FILE_ID,   -- TR_REQUEST_DOC_FILE_ID - varchar(20)
100
					    @ATTACH_ID,   -- ATTACH_ID - varchar(20)
101
					    @IS_VIEW, -- IS_VIEW - bit
102
					    @REF_ID    -- REQ_ID - varchar(20)
103
					    )
104
				END
105
				-- next Id
106
				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,@IS_VIEW
107
			END
108
		END
109
		CLOSE attDetail
110
		DEALLOCATE attDetail
111
COMMIT TRANSACTION
112
SELECT '0' as Result, '' ErrorDesc
113
RETURN '0'
114
ABORT:
115
BEGIN
116
		CLOSE attDetail
117
		DEALLOCATE attDetail
118
		ROLLBACK TRANSACTION
119
		SELECT '-1' as Result, '' ErrorDesc
120
		RETURN '-1'
121
End
122

    
123

    
124

    
125

    
126

    
127

    
128