Project

General

Profile

CM_ATTACH_FILE_Ins.txt

Luc Tran Van, 05/11/2023 03:55 PM

 
1
ALTER PROCEDURE dbo.CM_ATTACH_FILE_Ins
2
@p_TYPE	varchar(50)  = NULL,
3
@p_REF_ID	varchar(15)  = NULL,
4
@p_FILE_NAME_OLD	nvarchar(MAX)  = NULL,
5
@p_PATH_OLD	nvarchar(MAX)  = NULL,
6
@p_FILE_NAME_NEW	nvarchar(MAX)  = NULL,
7
@p_PATH_NEW	nvarchar(MAX)  = NULL,
8
@p_FILE_SIZE	decimal(18)  = NULL,
9
@p_FILE_TYPE	varchar(MAX)  = NULL,
10
@p_ATTACH_DT	VARCHAR(20) = NULL,
11
@p_EMP_ID	varchar(15)  = NULL,
12
@p_INDEX	varchar(50)  = NULL,
13
@P_NOTES NVARCHAR(1000) = NULL,
14
@p_AttachDetail	xml  = NULL
15
AS
16
--Validation is here
17
--DECLARE @ERRORSYS NVARCHAR(15) = '' 
18
--	IF(@p_REF_ID <> '')
19
--		IF ( NOT EXISTS ( SELECT * FROM CM_ATTACH_FILE WHERE ATTACH_ID = @p_REF_ID ))
20
--			SET @ERRORSYS = 'CMA-99999'
21
--IF @ERRORSYS <> '' 
22
--BEGIN
23
--	SELECT ErrorCode Result, ''  ATTACH_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
24
--	RETURN '0'
25
--END 
26
BEGIN TRANSACTION
27
DECLARE @l_ATTACH_ID VARCHAR(15)
28
		
29
		IF @p_PATH_NEW IS NOT NULL AND @p_PATH_NEW <> ''
30
		BEGIN
31
			--luatndv 11/05/2023 fix double line
32
			IF ( @p_REF_ID LIKE 'CRTEM%' AND EXISTS ( SELECT * FROM CM_ATTACH_FILE WHERE REF_ID = @p_REF_ID )) GOTO ABORT
33
			--luatndv 11/05/2023 fix double line
34
			EXEC SYS_CodeMasters_Gen 'CM_ATTACH_FILE', @l_ATTACH_ID out
35
			IF @l_ATTACH_ID='' OR @l_ATTACH_ID IS NULL GOTO ABORT
36

    
37
			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], [REF_MASTER])
38
			VALUES(@l_ATTACH_ID ,@p_TYPE ,@p_REF_ID ,@p_FILE_NAME_OLD ,@p_PATH_OLD ,@p_FILE_NAME_NEW ,@p_PATH_NEW ,@p_FILE_SIZE ,@p_FILE_TYPE ,CONVERT(DATETIME, @p_ATTACH_DT, 103) ,@p_EMP_ID, @p_INDEX,@P_NOTES, @p_REF_ID)
39
			IF @@Error <> 0 GOTO ABORT
40

    
41
			-- INSERT HIST
42
			EXEC CM_ATTACH_FILE_HIS_Ins @l_ATTACH_ID, @p_TYPE, @p_REF_ID, @p_FILE_NAME_OLD, @p_PATH_OLD, @p_FILE_NAME_NEW, @p_PATH_NEW, @p_FILE_SIZE, @p_FILE_TYPE, @p_ATTACH_DT, @p_EMP_ID, @p_INDEX, @P_NOTES, 0, 'CreateFile'
43
			IF @@Error <> 0 GOTO ABORT
44
		END
45
		
46
		
47

    
48
		-- INSERT LIST IF EXISTS
49
		IF(@p_AttachDetail IS NOT NULL)
50
		BEGIN
51

    
52
		Declare @hdoc INT
53
		Exec sp_xml_preparedocument @hdoc Output, @p_AttachDetail
54
		DECLARE attDetail CURSOR FOR
55
		SELECT *
56
		FROM OPENXML(@hDoc,'/Root/AttachDetail',2)
57
		WITH 
58
		(
59
			[TYPE]	varchar(50),
60
			REF_ID	varchar(15),
61
			FILE_NAME_OLD	nvarchar(MAX),
62
			PATH_OLD	nvarchar(MAX),
63
			FILE_NAME_NEW	nvarchar(MAX),
64
			PATH_NEW	nvarchar(MAX),
65
			FILE_SIZE	decimal(18),
66
			FILE_TYPE	varchar(MAX),
67
			ATTACH_DT	VARCHAR(20),
68
			EMP_ID	varchar(15),
69
			[INDEX]	varchar(50),
70
			NOTES NVARCHAR(1000),
71
			REF_MASTER	varchar(15)
72
		)
73
		OPEN attDetail
74

    
75
		Declare @TYPE varchar(50), @REF_ID varchar(15), @REF_MASTER varchar(15), @FILE_NAME_OLD	nvarchar(MAX), @PATH_OLD nvarchar(MAX), @FILE_NAME_NEW nvarchar(MAX), 
76
		@PATH_NEW nvarchar(MAX), @FILE_SIZE decimal(18), @FILE_TYPE varchar(50), @ATTACH_DT VARCHAR(20), @EMP_ID varchar(15), @INDEX varchar(50),@NOTES NVARCHAR(1000)
77
		
78
		FETCH NEXT FROM attDetail INTO @TYPE, @REF_ID, @FILE_NAME_OLD, @PATH_OLD, @FILE_NAME_NEW, @PATH_NEW, @FILE_SIZE, @FILE_TYPE, @ATTACH_DT, @EMP_ID, @INDEX,@NOTES,@REF_MASTER
79
		
80
		WHILE @@FETCH_STATUS = 0	
81
		BEGIN
82

    
83
			EXEC SYS_CodeMasters_Gen 'CM_ATTACH_FILE', @l_ATTACH_ID out
84
			IF(@l_ATTACH_ID='' OR @l_ATTACH_ID IS NULL)
85
				GOTO ABORT
86

    
87
			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], [REF_MASTER])
88
			VALUES(@l_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, @p_REF_ID)
89
			IF @@Error <> 0 GOTO ABORT
90

    
91
			-- INSERT HIST
92
			EXEC CM_ATTACH_FILE_HIS_Ins @l_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, 0, 'CreateFile'
93
			IF @@Error <> 0 GOTO ABORT
94

    
95
			-- next Id
96
			FETCH NEXT FROM attDetail INTO @TYPE, @REF_ID, @FILE_NAME_OLD, @PATH_OLD, @FILE_NAME_NEW, @PATH_NEW, @FILE_SIZE, @FILE_TYPE, @ATTACH_DT, @EMP_ID, @INDEX,@NOTES,@REF_MASTER
97
			END
98
			CLOSE attDetail
99
			DEALLOCATE attDetail
100

    
101
		END
102

    
103
		-------------------------BAODNQ 16/10/2022 : HOT FIX ĐÍNH KÈM FILE PYCMS----------------------
104
		-----------------------UPDATE ATTACH_ID VÀO BẢNG TR_REQUEST_DOC_FILE---------------------
105
		IF(EXISTS(
106
			SELECT * FROM TR_REQUEST_DOC_FILE TRF 
107
			INNER JOIN CM_ATTACH_FILE CAF ON TRF.TR_REQUEST_DOC_FILE_ID = CAF.REF_ID)
108
		)
109
		BEGIN
110
--			UPDATE TR_REQUEST_DOC_FILE SET
111
--				ATTACH_ID = CAF.ATTACH_ID
112
--			FROM TR_REQUEST_DOC_FILE TRF 
113
--			INNER JOIN CM_ATTACH_FILE CAF ON TRF.TR_REQUEST_DOC_FILE_ID = CAF.REF_ID
114
      --hieuhm 06/04/2023 hotfix chỉnh sửa đính kèm file ở DMMS
115
      UPDATE TR_REQUEST_DOC_FILE SET ATTACH_ID = (SELECT TOP(1) ATTACH_ID FROM CM_ATTACH_FILE WHERE TR_REQUEST_DOC_FILE.TR_REQUEST_DOC_FILE_ID = CM_ATTACH_FILE.REF_ID ORDER BY ATTACH_ID DESC)
116
		  --hieuhm 06/04/2023 hotfix chỉnh sửa đính kèm file ở DMMS
117
    END
118
		-------------------------END BADNQ-------------------------------
119

    
120
COMMIT TRANSACTION
121
SELECT '0' as Result, @l_ATTACH_ID  ID, '' ErrorDesc
122
RETURN '0'
123
ABORT:
124
BEGIN
125
		ROLLBACK TRANSACTION
126
		SELECT '-1' as Result, '' ID, '' ErrorDesc
127
		RETURN '-1'
128
End
129
GO