Project

General

Profile

CM_ATTACH_FILE_Ins.txt

Luc Tran Van, 04/06/2023 01:36 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
			EXEC SYS_CodeMasters_Gen 'CM_ATTACH_FILE', @l_ATTACH_ID out
32
			IF @l_ATTACH_ID='' OR @l_ATTACH_ID IS NULL GOTO ABORT
33

    
34
			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])
35
			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)
36
			IF @@Error <> 0 GOTO ABORT
37

    
38
			-- INSERT HIST
39
			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'
40
			IF @@Error <> 0 GOTO ABORT
41
		END
42
		
43
		
44

    
45
		-- INSERT LIST IF EXISTS
46
		IF(@p_AttachDetail IS NOT NULL)
47
		BEGIN
48

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

    
72
		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), 
73
		@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)
74
		
75
		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
76
		
77
		WHILE @@FETCH_STATUS = 0	
78
		BEGIN
79

    
80
			EXEC SYS_CodeMasters_Gen 'CM_ATTACH_FILE', @l_ATTACH_ID out
81
			IF(@l_ATTACH_ID='' OR @l_ATTACH_ID IS NULL)
82
				GOTO ABORT
83

    
84
			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])
85
			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)
86
			IF @@Error <> 0 GOTO ABORT
87

    
88
			-- INSERT HIST
89
			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'
90
			IF @@Error <> 0 GOTO ABORT
91

    
92
			-- next Id
93
			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
94
			END
95
			CLOSE attDetail
96
			DEALLOCATE attDetail
97

    
98
		END
99

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

    
117
COMMIT TRANSACTION
118
SELECT '0' as Result, @l_ATTACH_ID  ID, '' ErrorDesc
119
RETURN '0'
120
ABORT:
121
BEGIN
122
		ROLLBACK TRANSACTION
123
		SELECT '-1' as Result, '' ID, '' ErrorDesc
124
		RETURN '-1'
125
End