1
|
ALTER PROCEDURE [dbo].[CM_ATTACH_FILE_Upd_Xml]
|
2
|
@p_REF_ID varchar(15) = null,
|
3
|
@p_AttachDetail xml = NULL
|
4
|
AS
|
5
|
Declare @hdoc INT
|
6
|
Exec sp_xml_preparedocument @hdoc Output, @p_AttachDetail
|
7
|
DECLARE attDetail CURSOR FOR
|
8
|
SELECT *
|
9
|
FROM OPENXML(@hDoc,'/Root/AttachDetail',2)
|
10
|
WITH
|
11
|
(
|
12
|
ATTACH_ID varchar(15),
|
13
|
[TYPE] varchar(50),
|
14
|
REF_ID varchar(15),
|
15
|
FILE_NAME_OLD nvarchar(200),
|
16
|
PATH_OLD nvarchar(1000),
|
17
|
FILE_NAME_NEW nvarchar(200),
|
18
|
PATH_NEW nvarchar(1000),
|
19
|
FILE_SIZE decimal(18),
|
20
|
FILE_TYPE varchar(50),
|
21
|
ATTACH_DT VARCHAR(20),
|
22
|
EMP_ID varchar(15),
|
23
|
[INDEX] varchar(50),
|
24
|
NOTES NVARCHAR(1000)
|
25
|
)
|
26
|
OPEN attDetail
|
27
|
|
28
|
BEGIN TRANSACTION
|
29
|
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),
|
30
|
@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)
|
31
|
--Xoa detail
|
32
|
IF(NOT EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@REF_ID))
|
33
|
BEGIN
|
34
|
DELETE CM_ATTACH_FILE WHERE REF_ID = @p_REF_ID;
|
35
|
END
|
36
|
IF @@Error <> 0 GOTO ABORT
|
37
|
|
38
|
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
|
39
|
WHILE @@FETCH_STATUS = 0
|
40
|
BEGIN
|
41
|
IF(LEN(@ATTACH_ID) = 0)
|
42
|
BEGIN
|
43
|
EXEC SYS_CodeMasters_Gen 'CM_ATTACH_FILE', @ATTACH_ID out
|
44
|
IF @ATTACH_ID='' OR @ATTACH_ID IS NULL GOTO ABORT
|
45
|
END
|
46
|
BEGIN
|
47
|
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])
|
48
|
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 )
|
49
|
IF @@Error <> 0 GOTO ABORT
|
50
|
-- next Id
|
51
|
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
|
52
|
END
|
53
|
END
|
54
|
CLOSE attDetail
|
55
|
DEALLOCATE attDetail
|
56
|
COMMIT TRANSACTION
|
57
|
SELECT '0' as Result, '' ErrorDesc
|
58
|
RETURN '0'
|
59
|
ABORT:
|
60
|
BEGIN
|
61
|
CLOSE attDetail
|
62
|
DEALLOCATE attDetail
|
63
|
ROLLBACK TRANSACTION
|
64
|
SELECT '-1' as Result, '' ErrorDesc
|
65
|
RETURN '-1'
|
66
|
End
|
67
|
|
68
|
|
69
|
|
70
|
|