Project

General

Profile

6.0 CAP NHAT DIEU PHOI THANH TOAN TAM UNG.txt

Luc Tran Van, 08/17/2020 04:13 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_ADVANCE_PAYMENT WHERE REQ_PAY_ID=@REQ_PAY_ID AND AUTH_STATUS_KT='S'))
47
				BEGIN
48
					ROLLBACK TRANSACTION
49
					SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX) + N': Phiếu đề nghị tạm ứng đang được đề xuất từ  chối và KSV đang xem xét' ErrorDesc
50
					RETURN '-1'
51
				END
52
				IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID=@REQ_PAY_ID AND AUTH_STATUS_KT='S'))
53
				BEGIN
54
					ROLLBACK TRANSACTION
55
					SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX) + N': Phiếu đề nghị thanh toán đang được đề xuất từ chối và KSV đang xem xét' ErrorDesc
56
					RETURN '-1'
57
				END
58
				IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID=@REQ_PAY_ID AND AUTH_STATUS_KT='A'))
59
				BEGIN
60
					ROLLBACK TRANSACTION
61
					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
62
					RETURN '-1'
63
				END
64
				IF(EXISTS(SELECT * FROM TL_USER WHERE TLNANME =@TRASFER_USER_RECIVE AND RoleName ='KSV') AND @TRANSFER_ACTION <>'KS')
65
				BEGIN
66
					ROLLBACK TRANSACTION
67
					SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX) + N': Bạn không được phép điều phối KSV với vai trò xử lý phiếu' ErrorDesc
68
					RETURN '-1'
69
				END
70
				IF(EXISTS(SELECT * FROM TL_USER WHERE TLNANME =@TRASFER_USER_RECIVE AND RoleName ='GDV') AND @TRANSFER_ACTION <>'XL')
71
				BEGIN
72
					ROLLBACK TRANSACTION
73
					SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX) + N': Bạn không được phép điều phối GDV với vai trò kiểm soát phiếu' ErrorDesc
74
					RETURN '-1'
75
				END
76
				IF(EXISTS(SELECT * FROM TL_USER_V2 WHERE TLNANME =@TRASFER_USER_RECIVE AND RoleName ='KSV') AND @TRANSFER_ACTION <>'KS')
77
				BEGIN
78
					ROLLBACK TRANSACTION
79
					SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX) + N': Bạn không được phép điều phối KSV với vai trò xử lý phiếu' ErrorDesc
80
					RETURN '-1'
81
				END
82
				IF(EXISTS(SELECT * FROM TL_USER_V2 WHERE TLNANME =@TRASFER_USER_RECIVE AND RoleName ='GDV') AND @TRANSFER_ACTION <>'XL')
83
				BEGIN
84
					ROLLBACK TRANSACTION
85
					SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng '+ CONVERT(VARCHAR(5),@INDEX) + N': Bạn không được phép điều phối GDV với vai trò kiểm soát phiếu' ErrorDesc
86
					RETURN '-1'
87
				END
88
				--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 <>''))
89
				--BEGIN
90
				--	ROLLBACK TRANSACTION
91
				--	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
92
				--	RETURN '-1'
93
				--END
94
				--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 <>''))
95
				--BEGIN
96
				--	ROLLBACK TRANSACTION
97
				--	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
98
				--	RETURN '-1'
99
				--END
100
				--IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID=@REQ_PAY_ID AND MAKER_ID_KT IS NOT NULL))
101
				--BEGIN
102
				--	ROLLBACK TRANSACTION
103
				--	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
104
				--	RETURN '-1'
105
				--END
106
				IF(NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@REQ_PAY_ID AND TLNAME =@TRANSFER_MAKER))
107
				BEGIN
108
					INSERT INTO PL_REQUEST_PROCESS_CHILD(REQ_ID,PROCESS_ID,TLNAME,TYPE_JOB,LEVEL_JOB,STATUS_JOB,RECORD_STATUS)
109
					VALUES (@REQ_PAY_ID,NULL,@TRANSFER_MAKER,'KS',CONVERT(VARCHAR(5),'1'),'P','1')
110
				END
111
				-- KHAI BAO MAX LEVEL
112
				DECLARE @MAX_LEVEL VARCHAR(5), @NEXT_LEVEL INT,  @PREV_LEVEL INT
113
				SET @MAX_LEVEL= (SELECT MAX(LEVEL_JOB) FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID=@REQ_PAY_ID)
114
				SET @NEXT_LEVEL = (SELECT CONVERT(INT,@MAX_LEVEL)) +1
115
				SET @PREV_LEVEL = (SELECT CONVERT(INT,@MAX_LEVEL)) -1
116
				IF(@TRANSFER_ACTION ='XL')
117
				BEGIN
118
					--UPDATE TR_REQ_ADVANCE_PAYMENT SET 
119
					--AUTH_STATUS_KT ='U',
120
					--TRANSFER_DT = CONVERT(DATE,GETDATE(),103),
121
					--TRANSFER_MAKER = @TRANSFER_MAKER,
122
					--TRASFER_USER_RECIVE = @TRASFER_USER_RECIVE
123
					--WHERE REQ_PAY_ID =@REQ_PAY_ID
124
					IF(NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@REQ_PAY_ID  AND TYPE_JOB =@TRANSFER_ACTION))
125
					BEGIN
126
						INSERT INTO PL_REQUEST_PROCESS_CHILD(REQ_ID,PROCESS_ID,TLNAME,TYPE_JOB,LEVEL_JOB,STATUS_JOB,RECORD_STATUS)
127
						VALUES (@REQ_PAY_ID,NULL,@TRASFER_USER_RECIVE,'XL',CONVERT(VARCHAR(5),@NEXT_LEVEL),'C','1')
128
						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')
129
					END
130
					ELSE
131
					BEGIN
132
						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
133
					END
134
					-- UPDATE BUOC TRUOC DO VE P
135
					--UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='P',TYPE_JOB='KS' WHERE REQ_ID =@REQ_PAY_ID  AND LEVEL_JOB =@MAX_LEVEL
136
				END
137
				ELSE
138
				BEGIN
139
					IF(NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@REQ_PAY_ID  AND TYPE_JOB =@TRANSFER_ACTION))
140
					BEGIN
141
						INSERT INTO PL_REQUEST_PROCESS_CHILD(REQ_ID,PROCESS_ID,TLNAME,TYPE_JOB,LEVEL_JOB,STATUS_JOB,RECORD_STATUS)
142
						VALUES (@REQ_PAY_ID,NULL,@TRASFER_USER_RECIVE,'KS',CONVERT(VARCHAR(5),@NEXT_LEVEL),'C','1')
143
					END
144
					ELSE
145
					BEGIN
146
						UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='C',TYPE_JOB='KS' WHERE REQ_ID =@REQ_PAY_ID  AND TLNAME =@TRASFER_USER_RECIVE
147
					END
148
					-- UPDATE BUOC TRUOC DO VE P
149
					--UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='P',TYPE_JOB='KS' WHERE REQ_ID =@REQ_PAY_ID  AND LEVEL_JOB =@MAX_LEVEL
150
				END
151
			IF(@p_TRANSFER_TYPE='A')
152
			BEGIN
153
				UPDATE TR_REQ_ADVANCE_PAYMENT SET 
154
				AUTH_STATUS_KT ='U'
155
				WHERE REQ_PAY_ID =@REQ_PAY_ID
156
			END
157
			ELSE
158
			BEGIN
159
				UPDATE TR_REQ_PAYMENT SET 
160
				AUTH_STATUS_KT ='U'
161
				WHERE REQ_PAY_ID =@REQ_PAY_ID	
162
			END
163
		IF @@ERROR <> 0 GOTO ABORT
164
		FETCH NEXT FROM TransferData INTO @REQ_PAY_ID, @TRANSFER_MAKER, @TRASFER_USER_RECIVE,@TRANSFER_ACTION
165
		END
166
	CLOSE TransferData
167
	DEALLOCATE TransferData
168
		IF @@Error <> 0 GOTO ABORT
169
COMMIT TRANSACTION
170
SELECT '0' as Result, ''  REQ_PAY_ID, '' ErrorDesc
171
RETURN '0'
172
ABORT:
173
BEGIN
174
		ROLLBACK TRANSACTION
175
		CLOSE TransferData
176
		DEALLOCATE TransferData
177
		SELECT '-1' as Result, '' REQ_PAY_ID, '' ErrorDesc
178
		RETURN '-1'
179
End