1
|
ALTER PROCEDURE [dbo].[CM_ATTACH_FILE_Upd_Xml_v2]
|
2
|
@p_REF_ID varchar(15) = null,
|
3
|
@p_AttachDetail xml = NULL,
|
4
|
@p_TYPE VARCHAR(20)= 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
|
IS_VIEW BIT
|
27
|
)
|
28
|
OPEN attDetail
|
29
|
|
30
|
BEGIN TRANSACTION
|
31
|
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),
|
32
|
@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),
|
33
|
@IS_VIEW BIT
|
34
|
--Xoa detail
|
35
|
DELETE CM_ATTACH_FILE WHERE REF_ID = @p_REF_ID;
|
36
|
DELETE dbo.TR_REQUEST_DOC_FILE WHERE REQ_ID=@p_REF_ID
|
37
|
|
38
|
|
39
|
IF @@Error <> 0 GOTO ABORT
|
40
|
|
41
|
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
|
42
|
WHILE @@FETCH_STATUS = 0
|
43
|
BEGIN
|
44
|
--IF(LEN(@ATTACH_ID) = 0)
|
45
|
-- BEGIN
|
46
|
-- EXEC SYS_CodeMasters_Gen 'CM_ATTACH_FILE', @ATTACH_ID out
|
47
|
-- IF @ATTACH_ID='' OR @ATTACH_ID IS NULL GOTO ABORT
|
48
|
-- END
|
49
|
--BEGIN
|
50
|
BEGIN
|
51
|
EXEC SYS_CodeMasters_Gen 'CM_ATTACH_FILE', @ATTACH_ID out
|
52
|
IF @ATTACH_ID='' OR @ATTACH_ID IS NULL GOTO ABORT
|
53
|
END
|
54
|
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])
|
55
|
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 )
|
56
|
IF @@Error <> 0 GOTO ABORT
|
57
|
|
58
|
IF(@p_TYPE='PYC')
|
59
|
BEGIN
|
60
|
DECLARE @TR_REQ_DOC_FILE_ID VARCHAR(20)
|
61
|
|
62
|
EXEC SYS_CodeMasters_Gen 'TR_REQUEST_DOC_FILE', @TR_REQ_DOC_FILE_ID out
|
63
|
IF @TR_REQ_DOC_FILE_ID='' OR @TR_REQ_DOC_FILE_ID IS NULL GOTO ABORT
|
64
|
INSERT INTO dbo.TR_REQUEST_DOC_FILE
|
65
|
(
|
66
|
TR_REQUEST_DOC_FILE_ID,
|
67
|
ATTACH_ID,
|
68
|
IS_VIEW,
|
69
|
REQ_ID
|
70
|
)
|
71
|
VALUES
|
72
|
( @TR_REQ_DOC_FILE_ID, -- TR_REQUEST_DOC_FILE_ID - varchar(20)
|
73
|
@ATTACH_ID, -- ATTACH_ID - varchar(20)
|
74
|
@IS_VIEW, -- IS_VIEW - bit
|
75
|
@REF_ID -- REQ_ID - varchar(20)
|
76
|
)
|
77
|
END
|
78
|
-- next Id
|
79
|
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
|
80
|
END
|
81
|
--END
|
82
|
CLOSE attDetail
|
83
|
DEALLOCATE attDetail
|
84
|
COMMIT TRANSACTION
|
85
|
SELECT '0' as Result, '' ErrorDesc
|
86
|
RETURN '0'
|
87
|
ABORT:
|
88
|
BEGIN
|
89
|
CLOSE attDetail
|
90
|
DEALLOCATE attDetail
|
91
|
ROLLBACK TRANSACTION
|
92
|
SELECT '-1' as Result, '' ErrorDesc
|
93
|
RETURN '-1'
|
94
|
End
|