Project

General

Profile

2107 FILE 11 DIEU PHOI THANH TOAN TAM UNG.txt

Luc Tran Van, 07/21/2020 01:15 PM

 
1
ALTER PROCEDURE [dbo].[TR_REQ_PAY_TRANSFER_Upd]
2
@p_TRANSFER_MAKER	nvarchar(50)	= NULL,
3
@p_TRANSFER_DT	varchar(25)	= NULL,
4
@p_TRASFER_USER_RECIVE	varchar(15)	= NULL,
5
@p_TRANSFER_TYPE	varchar(15)	= NULL,
6
@p_XMP_TEMP XML = NULL
7
AS
8
--Validation is here
9
/* 
10
*/
11
	Declare @hdoc INT
12
	Exec sp_xml_preparedocument @hdoc Output,@p_XMP_TEMP
13
	DECLARE TransferData CURSOR FOR
14
	SELECT *
15
	FROM OPENXML(@hDoc,'/Root/XmlData',2)
16
	WITH 
17
	(
18
		REQ_PAY_ID	varchar(15)  ,
19
		TRANSFER_MAKER	nvarchar(15) ,
20
		TRASFER_USER_RECIVE	varchar(15),
21
		TRANSFER_ACTION VARCHAR(15)
22
	)
23
	OPEN TransferData
24
	BEGIN TRANSACTION
25
		
26
		DECLARE @REQ_PAY_ID VARCHAR(15), @TRANSFER_MAKER VARCHAR(15),@TRASFER_USER_RECIVE VARCHAR(15),@TRANSFER_ACTION VARCHAR(15)
27
		DECLARE @INDEX INT =0
28
		FETCH NEXT FROM TransferData INTO @REQ_PAY_ID, @TRANSFER_MAKER, @TRASFER_USER_RECIVE,@TRANSFER_ACTION
29
		WHILE @@FETCH_STATUS = 0	
30
		BEGIN
31
				DELETE FROM  PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@REQ_PAY_ID
32
				SET @INDEX = @INDEX+1
33
				-- KIEM TRA NEU CHUA CHON NHAN VIEN XU LY SE BAO LOI
34
				IF(@TRASFER_USER_RECIVE ='' OR @TRASFER_USER_RECIVE IS NULL)
35
				BEGIN
36
					ROLLBACK TRANSACTION
37
					SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX) + N': Nhân viên được giao xử lý không được phép để trống' ErrorDesc
38
					RETURN '-1'
39
				END
40
				IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID=@REQ_PAY_ID AND AUTH_STATUS_KT='A'))
41
				BEGIN
42
					ROLLBACK TRANSACTION
43
					SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX) + N': Phiếu đề nghị tạm ứng đã được kế toán duyệt' ErrorDesc
44
					RETURN '-1'
45
				END
46
				IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID=@REQ_PAY_ID AND AUTH_STATUS_KT='A'))
47
				BEGIN
48
					ROLLBACK TRANSACTION
49
					SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX) + N': Phiếu đề nghị thanh toán đã được kế toán duyệt' ErrorDesc
50
					RETURN '-1'
51
				END
52
				--IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID=@REQ_PAY_ID AND MAKER_ID_KT IS NOT NULL AND MAKER_ID_KT <>''))
53
				--BEGIN
54
				--	ROLLBACK TRANSACTION
55
				--	SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX) + N': Phiếu đề nghị tạm ứng đã được kế toán cập nhật thông tin' ErrorDesc
56
				--	RETURN '-1'
57
				--END
58
				--IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID=@REQ_PAY_ID AND MAKER_ID_KT IS NOT NULL AND MAKER_ID_KT <>''))
59
				--BEGIN
60
				--	ROLLBACK TRANSACTION
61
				--	SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX) + N': Phiếu đề nghị tạm ứng đã được kế toán cập nhật thông tin' ErrorDesc
62
				--	RETURN '-1'
63
				--END
64
				--IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID=@REQ_PAY_ID AND MAKER_ID_KT IS NOT NULL))
65
				--BEGIN
66
				--	ROLLBACK TRANSACTION
67
				--	SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX) + N': Phiếu đề nghị thanh toán đã được kế toán cập nhật thông tin' ErrorDesc
68
				--	RETURN '-1'
69
				--END
70
				IF(NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@REQ_PAY_ID AND TLNAME =@TRANSFER_MAKER))
71
				BEGIN
72
					INSERT INTO PL_REQUEST_PROCESS_CHILD(REQ_ID,PROCESS_ID,TLNAME,TYPE_JOB,LEVEL_JOB,STATUS_JOB,RECORD_STATUS)
73
					VALUES (@REQ_PAY_ID,NULL,@TRANSFER_MAKER,'KS',CONVERT(VARCHAR(5),'1'),'P','1')
74
				END
75
				-- KHAI BAO MAX LEVEL
76
				DECLARE @MAX_LEVEL VARCHAR(5), @NEXT_LEVEL INT,  @PREV_LEVEL INT
77
				SET @MAX_LEVEL= (SELECT MAX(LEVEL_JOB) FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID=@REQ_PAY_ID)
78
				SET @NEXT_LEVEL = (SELECT CONVERT(INT,@MAX_LEVEL)) +1
79
				SET @PREV_LEVEL = (SELECT CONVERT(INT,@MAX_LEVEL)) -1
80
				IF(@TRANSFER_ACTION ='XL')
81
				BEGIN
82
					--UPDATE TR_REQ_ADVANCE_PAYMENT SET 
83
					--AUTH_STATUS_KT ='U',
84
					--TRANSFER_DT = CONVERT(DATE,GETDATE(),103),
85
					--TRANSFER_MAKER = @TRANSFER_MAKER,
86
					--TRASFER_USER_RECIVE = @TRASFER_USER_RECIVE
87
					--WHERE REQ_PAY_ID =@REQ_PAY_ID
88
					IF(NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@REQ_PAY_ID  AND TYPE_JOB =@TRANSFER_ACTION))
89
					BEGIN
90
						INSERT INTO PL_REQUEST_PROCESS_CHILD(REQ_ID,PROCESS_ID,TLNAME,TYPE_JOB,LEVEL_JOB,STATUS_JOB,RECORD_STATUS)
91
						VALUES (@REQ_PAY_ID,NULL,@TRASFER_USER_RECIVE,'XL',CONVERT(VARCHAR(5),@NEXT_LEVEL),'C','1')
92
						INSERT INTO PL_PROCESS VALUES (@REQ_PAY_ID,'TRANSF',@p_TRANSFER_MAKER, GETDATE(),N'Điều phối về nhân viên ' +@TRASFER_USER_RECIVE,N'Điều phối thanh toán/ tạm ứng')
93
					END
94
					ELSE
95
					BEGIN
96
						UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='C',TYPE_JOB=@TRANSFER_ACTION,TLNAME = @TRASFER_USER_RECIVE WHERE REQ_ID =@REQ_PAY_ID  AND TYPE_JOB =@TRANSFER_ACTION
97
					END
98
					-- UPDATE BUOC TRUOC DO VE P
99
					--UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='P',TYPE_JOB='KS' WHERE REQ_ID =@REQ_PAY_ID  AND LEVEL_JOB =@MAX_LEVEL
100
				END
101
				ELSE
102
				BEGIN
103
					IF(NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@REQ_PAY_ID  AND TYPE_JOB =@TRANSFER_ACTION))
104
					BEGIN
105
						INSERT INTO PL_REQUEST_PROCESS_CHILD(REQ_ID,PROCESS_ID,TLNAME,TYPE_JOB,LEVEL_JOB,STATUS_JOB,RECORD_STATUS)
106
						VALUES (@REQ_PAY_ID,NULL,@TRASFER_USER_RECIVE,'KS',CONVERT(VARCHAR(5),@NEXT_LEVEL),'C','1')
107
					END
108
					ELSE
109
					BEGIN
110
						UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='C',TYPE_JOB='KS' WHERE REQ_ID =@REQ_PAY_ID  AND TLNAME =@TRASFER_USER_RECIVE
111
					END
112
					-- UPDATE BUOC TRUOC DO VE P
113
					--UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='P',TYPE_JOB='KS' WHERE REQ_ID =@REQ_PAY_ID  AND LEVEL_JOB =@MAX_LEVEL
114
				END
115
			IF(@p_TRANSFER_TYPE='A')
116
			BEGIN
117
				UPDATE TR_REQ_ADVANCE_PAYMENT SET 
118
				AUTH_STATUS_KT ='U'
119
				WHERE REQ_PAY_ID =@REQ_PAY_ID
120
			END
121
			ELSE
122
			BEGIN
123
				UPDATE TR_REQ_PAYMENT SET 
124
				AUTH_STATUS_KT ='U'
125
				WHERE REQ_PAY_ID =@REQ_PAY_ID	
126
			END
127
		IF @@ERROR <> 0 GOTO ABORT
128
		FETCH NEXT FROM TransferData INTO @REQ_PAY_ID, @TRANSFER_MAKER, @TRASFER_USER_RECIVE,@TRANSFER_ACTION
129
		END
130
	CLOSE TransferData
131
	DEALLOCATE TransferData
132
		IF @@Error <> 0 GOTO ABORT
133
COMMIT TRANSACTION
134
SELECT '0' as Result, ''  REQ_PAY_ID, '' ErrorDesc
135
RETURN '0'
136
ABORT:
137
BEGIN
138
		ROLLBACK TRANSACTION
139
		CLOSE TransferData
140
		DEALLOCATE TransferData
141
		SELECT '-1' as Result, '' REQ_PAY_ID, '' ErrorDesc
142
		RETURN '-1'
143
End