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
|