Project

General

Profile

CAP NHAT STORE DINH KEM FILE.txt

Luc Tran Van, 11/04/2020 04:32 PM

 
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
		-- 29102020 - LOI GUI PHE DUYET THI MAT FILE. NEN FIX STORE NEU PHIEU DA GUI PHE DUYET ROI THI KHONG XOA FILE
36
		IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@REF_ID) OR EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@REF_ID))
37
		BEGIN
38
			IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID=@REF_ID AND AUTH_STATUS NOT IN ('R','E')))
39
			BEGIN
40
				DELETE dbo.TR_REQUEST_DOC_FILE WHERE REQ_ID=@p_REF_ID
41
			END
42
			ELSE
43
			BEGIN
44
				DELETE CM_ATTACH_FILE WHERE REF_ID = @p_REF_ID;
45
			END
46
		END
47
		ELSE
48
		BEGIN
49
			DELETE CM_ATTACH_FILE WHERE REF_ID = @p_REF_ID;
50
			DELETE dbo.TR_REQUEST_DOC_FILE WHERE REQ_ID=@p_REF_ID
51
		END
52
		IF @@Error <> 0 GOTO ABORT
53

    
54
		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
55
		WHILE @@FETCH_STATUS = 0	
56
		BEGIN
57
			EXEC SYS_CodeMasters_Gen 'CM_ATTACH_FILE', @ATTACH_ID out
58
			IF @ATTACH_ID='' OR @ATTACH_ID IS NULL GOTO ABORT
59
			--IF(LEN(@ATTACH_ID) = 0)
60
			--	BEGIN
61
			--		EXEC SYS_CodeMasters_Gen 'CM_ATTACH_FILE', @ATTACH_ID out
62
			--		IF @ATTACH_ID='' OR @ATTACH_ID IS NULL GOTO ABORT
63
			--	END		
64
			BEGIN				
65
				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])
66
				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 )
67
				IF @@Error <> 0 GOTO ABORT
68

    
69
				IF(@p_TYPE='PYC')
70
				BEGIN
71
					DECLARE @TR_REQ_DOC_FILE_ID VARCHAR(20)
72

    
73
					EXEC SYS_CodeMasters_Gen 'TR_REQUEST_DOC_FILE', @TR_REQ_DOC_FILE_ID out
74
					IF @TR_REQ_DOC_FILE_ID='' OR @TR_REQ_DOC_FILE_ID IS NULL GOTO ABORT
75
					INSERT INTO dbo.TR_REQUEST_DOC_FILE
76
					(
77
					    TR_REQUEST_DOC_FILE_ID,
78
					    ATTACH_ID,
79
					    IS_VIEW,
80
					    REQ_ID
81
					)
82
					VALUES
83
					(   @TR_REQ_DOC_FILE_ID,   -- TR_REQUEST_DOC_FILE_ID - varchar(20)
84
					    @ATTACH_ID,   -- ATTACH_ID - varchar(20)
85
					    @IS_VIEW, -- IS_VIEW - bit
86
					    @REF_ID    -- REQ_ID - varchar(20)
87
					    )
88
				END
89
				-- next Id
90
				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
91
			END
92
		END
93
		CLOSE attDetail
94
		DEALLOCATE attDetail
95
COMMIT TRANSACTION
96
SELECT '0' as Result, '' ErrorDesc
97
RETURN '0'
98
ABORT:
99
BEGIN
100
		CLOSE attDetail
101
		DEALLOCATE attDetail
102
		ROLLBACK TRANSACTION
103
		SELECT '-1' as Result, '' ErrorDesc
104
		RETURN '-1'
105
End