Project

General

Profile

1.4 LUI NGAY TO TRINH CHU TRUONG 0176 0690604.txt

Luc Tran Van, 07/30/2021 04:25 PM

 
1
DECLARE @REQ_ID VARCHAR(15), @DATE DATETIME
2
SET @REQ_ID=(SELECT REQ_ID FROM PL_REQUEST_DOC WHERE REQ_CODE ='0176/2021/TTr-0690604')
3
SET @DATE='2021-07-09 12:00:00 AM'
4
UPDATE PL_REQUEST_DOC SET REQ_DT =@DATE, APPROVE_DT =@DATE, EFFEC_DT =@DATE, IS_BACKDAY=1 WHERE REQ_ID =@REQ_ID
5
UPDATE PL_REQUEST_PROCESS SET APPROVE_DT =@DATE WHERE REQ_ID =@REQ_ID
6
INSERT INTO PL_PROCESS (REQ_ID,PROCESS_ID,NOTES,PROCESS_DESC,CHECKER_ID,APPROVE_DT) 
7
VALUES (@REQ_ID,'IT',N'Yêu cầu lùi ngày',N'Hỗ trợ lùi ngày chủ trương theo yêu cầu','hoangnt4',GETDATE())
8
¿
9
ALTER PROC [dbo].[PL_REQUEST_DOC_Settlment]
10
@p_REQ_ID VARCHAR (15) = NULL,
11
@p_AMT_SETT DECIMAL(18,2) =NULL,
12
@p_AMT_USE DECIMAL(18,2) = NULL,
13
@p_AMT_REVERT DECIMAL(18,2)= NULL
14
AS
15
BEGIN TRANSACTION
16
		DECLARE @ERROR NVARCHAR(500)
17

    
18
		IF(EXISTS(SELECT REQ_ID FROM dbo.PL_REQUEST_DOC WHERE IS_SETTLMENT=1 AND REQ_ID=@p_REQ_ID))
19
		BEGIN 
20
			SET @ERROR = (SELECT ErrorDesc FROM dbo.SYS_ERROR WHERE ErrorCode='SETTLMENT-001')
21
			ROLLBACK TRANSACTION
22
			SELECT '-1' as Result, @p_REQ_ID AS REQ_PAY_ID, N'Quyết toán tờ trình thất bại! Tờ trình đã được quyết toán' ErrorDesc
23
			RETURN '-1'
24
		END
25
		IF(EXISTS(SELECT REQ_ID FROM dbo.PL_REQUEST_DOC WHERE PROCESS_ID <>'APPROVE' AND REQ_ID=@p_REQ_ID))
26
		BEGIN 
27
			--SET @ERROR = (SELECT ErrorDesc FROM dbo.SYS_ERROR WHERE ErrorCode='SETTLMENT-001')
28
			ROLLBACK TRANSACTION
29
			SELECT '-1' as Result, @p_REQ_ID AS REQ_PAY_ID, N'Quyết toán tờ trình số '+ (SELECT ISNULL(REQ_CODE, REQ_ID) FROM PL_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID)+N' thất bại! Tờ trình chưa được phê duyệt hoàn tất' ErrorDesc
30
			RETURN '-1'
31
		END
32
		-- KIEM TRA NEU TO TRINH  DANG DUOC THUC HIEN THANH TOAN / TAM UNG THI PHAI HUY PHIEU TRUOC KHI QUYET TOAN TO TRINH
33
		IF(EXISTS(SELECT A.* FROM TR_REQ_ADVANCE_DT A
34
		INNER JOIN TR_REQ_ADVANCE_PAYMENT B ON A.REQ_PAY_ID = B.REQ_PAY_ID
35
		WHERE A.REF_ID IN 
36
		(
37
			SELECT CONTRACT_ID FROM TR_CONTRACT
38
			WHERE REQ_DOC_ID IN (SELECT REQ_ID FROM TR_REQUEST_DOC WHERE PL_REQ_ID =@p_REQ_ID)
39
			UNION 
40
			SELECT PO_ID FROM TR_PO_MASTER
41
			WHERE REQ_DOC_ID IN (SELECT REQ_ID FROM TR_REQUEST_DOC WHERE PL_REQ_ID =@p_REQ_ID)
42
		)
43
		AND B.AUTH_STATUS_KT <>'A'))
44
		BEGIN 
45
			ROLLBACK TRANSACTION
46
			SELECT '-1' as Result, @p_REQ_ID AS REQ_PAY_ID, N'Quyết toán tờ trình thất bại! Đang có giao dịch tạm ứng sử dụng ngân sách của tờ trình. Vui lòng hủy phiếu tạm ứng trước khi quyết toán tờ trình' ErrorDesc
47
			RETURN '-1'
48
		END
49
		-- KIEM TRA XEM CO DANG THUC HIEN THANH TOAN HAY KHONG
50
		IF(EXISTS(SELECT A.* FROM TR_REQ_ADVANCE_DT A
51
		INNER JOIN TR_REQ_PAYMENT B ON A.REQ_PAY_ID = B.REQ_PAY_ID
52
		WHERE A.REF_ID IN 
53
		(
54
			SELECT CONTRACT_ID FROM TR_CONTRACT
55
			WHERE REQ_DOC_ID IN (SELECT REQ_ID FROM TR_REQUEST_DOC WHERE PL_REQ_ID =@p_REQ_ID)
56
			UNION 
57
			SELECT PO_ID FROM TR_PO_MASTER
58
			WHERE REQ_DOC_ID IN (SELECT REQ_ID FROM TR_REQUEST_DOC WHERE PL_REQ_ID =@p_REQ_ID)
59
		)
60
		AND B.AUTH_STATUS_KT <>'A'))
61
		BEGIN 
62
			ROLLBACK TRANSACTION
63
			SELECT '-1' as Result, @p_REQ_ID AS REQ_PAY_ID, N'Quyết toán tờ trình thất bại! Đang có giao dịch thanh toán sử dụng ngân sách của tờ trình. Vui lòng hủy phiếu thanh toán trước khi quyết toán tờ trình' ErrorDesc
64
			RETURN '-1'
65
		END
66
		--- KIEM TRA DANH SACH NGAN SACH CUA NHUNG PDN THANH TOAN CO SU DUNG NGAN SACH CUA TO TRINH
67
		IF(EXISTS(SELECT * FROM dbo.TR_REQUEST_DOC WHERE PL_REQ_ID =@p_REQ_ID AND PROCESS_ID <> 'APPROVE'))
68
		BEGIN
69
			ROLLBACK TRANSACTION
70
			SELECT '-1' as Result, @p_REQ_ID AS REQ_PAY_ID, N'Quyết toán tờ trình thất bại! Đang tồn tại phiếu yêu cầu mua sắm chưa được phê duyệt. Vui lòng hủy các phiếu mua sắm chưa hoàn tất hoặc hoàn tất xong mới thực hiện quyết toán' ErrorDesc
71
			RETURN '-1'
72
		END
73

    
74
		--IF(EXISTS(SELECT * FROM dbo.TR_REQUEST_DOC WHERE PL_REQ_ID =@p_REQ_ID AND PROCESS_ID = 'APPROVE' ) )
75
		--BEGIN
76
		--	ROLLBACK TRANSACTION
77
		--	SELECT '-1' as Result, @p_REQ_ID AS REQ_PAY_ID, N'Quyết toán tờ trình thất bại! Đang tồn tại phiếu yêu cầu mua sắm chưa được phê duyệt' ErrorDesc
78
		--	RETURN '-1'
79
		--END
80

    
81
		--	DECLARE @listTRADE TABLE
82
		--	(
83
		--		TRADE_ID VARCHAR(20),
84
		--		AMT_APP DECIMAL(18,2),
85
		--		AMT_ROLEBACK DECIMAL(18,2)
86
		--	)
87

    
88
		--	INSERT @listTRADE
89
		--	SELECT TRADE_ID,SUM(TOTAL_AMT),0 FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_REQ_ID GROUP BY TRADE_ID
90
		---- LAY DS PYCMS CUA TO TRINH
91
		--	DECLARE @listID TABLE (
92
		--		TR_REQ_ID VARCHAR(15)
93
		--	)
94

    
95
		--	INSERT INTO @listID
96
		--	SELECT REQ_ID FROM dbo.TR_REQUEST_DOC WHERE PL_REQ_ID=@p_REQ_ID
97
		--	DECLARE @listREF TABLE (
98
		--		REF_ID VARCHAR(15)
99
		--	)
100
		--	INSERT INTO @listREF
101
		--	SELECT CONTRACT_ID FROM TR_CONTRACT T
102
		--	WHERE EXISTS  (SELECT REQ_DOC_ID  FROM @listID L WHERE T.REQ_DOC_ID=L.TR_REQ_ID)
103
		--	UNION 
104
		--	SELECT PO_ID FROM TR_PO_MASTER P
105
		--	WHERE EXISTS (SELECT REQ_DOC_ID FROM @listID L WHERE P.REQ_DOC_ID=L.TR_REQ_ID)
106

    
107
		--	DECLARE @listREQPAYID TABLE (
108
			
109
		--		REQ_PAY_ID VARCHAR(20)
110
		--	)
111
		--	INSERT INTO @listREQPAYID
112
		--	SELECT REQ_PAY_ID FROM dbo.TR_REQ_ADVANCE_DT A WHERE EXISTS (SELECT REF_ID FROM @listREF B WHERE B.REF_ID=A.REF_ID)
113
			
114
		--	DECLARE @listTRADE_EXE TABLE
115
		--	(
116
		--		TRADE_ID VARCHAR(20),
117
		--		AMT_EXE DECIMAL(18,2)
118
				
119
		--	)
120
		--	INSERT INTO @listTRADE_EXE		
121
		--	SELECT T.TRADE_ID,SUM(T.AMT_EXE)  FROM dbo.TR_REQ_PAY_BUDGET T WHERE EXISTS(SELECT  L.REQ_PAY_ID FROM @listREQPAYID L WHERE L.REQ_PAY_ID=T.REQ_PAY_ID) GROUP BY T.TRADE_ID
122

    
123

    
124
		--	UPDATE @listTRADE SET AMT_ROLEBACK=AMT_APP-(SELECT AMT_EXE FROM @listTRADE_EXE WHERE [@listTRADE].TRADE_ID=[@listTRADE_EXE].TRADE_ID) WHERE EXISTS (SELECT TRADE_ID FROM @listTRADE_EXE WHERE [@listTRADE].TRADE_ID=[@listTRADE_EXE].TRADE_ID)
125
			
126

    
127
		--	UPDATE dbo.PL_TRADEDETAIL SET AMT_ETM=AMT_ETM- (SELECT AMT_ROLEBACK FROM @listTRADE WHERE [@listTRADE].TRADE_ID=PL_TRADEDETAIL.TRADE_ID)  
128
		--	WHERE EXISTS (SELECT TRADE_ID FROM @listTRADE WHERE [@listTRADE].TRADE_ID=PL_TRADEDETAIL.TRADE_ID)
129

    
130
			-- LUCTV: 05052021 LUCTV FIX QUYET TOAN TO TRINH
131
			UPDATE dbo.PL_REQUEST_DOC SET IS_SETTLMENT=1, PROCESS_ID ='SETTLMENT' WHERE REQ_ID=@p_REQ_ID
132
			-- LUCTV 01-06-2021: NEU QUYET TOAN THI PHAI XÓA LOG ĐI
133
			UPDATE PL_TRADEDETAIL_HIST SET TRADE_ID ='X'+ RIGHT(TRADE_ID, 14) WHERE REQ_ID =@p_REQ_ID
134
			-- UPDATE DE HỆ THỐNG THÔNG BÁO TỜ TRÌNH NÀY ĐÃ ĐƯỢC QUYẾT TOÁN
135
			UPDATE PL_REQUEST_PROCESS SET NOTES =N'Tờ trình được quyết toán', PROCESS_ID ='SETTLMENT' WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID ='APPROVE'
136
			UPDATE PL_REQUEST_PROCESS SET NOTES =N'Tờ trình đã được quyết toán thành công' WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID =(SELECT PARENT_PROCESS_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID ='APPROVE')
137
			INSERT INTO PL_PROCESS (PROCESS_DESC, APPROVE_DT,CHECKER_ID, REQ_ID,NOTES) VALUES (N'Thực hiện quyết toán tờ trình',GETDATE(),(SELECT TOP 1 MAKER_ID FROM PL_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID), @p_REQ_ID,N'Quyết toán tờ trình')
138
			DECLARE @TRADE_ID VARCHAR(15), @AMT_ETM DECIMAL(18,0), @AMT_RECIVE DECIMAL(18,0), @AMT_TRANSFER DECIMAL(18,0),@TO_TRADE_ID VARCHAR(15)
139
			-- 1.0 KIEM TRA NEU TO TRINH DUYET XONG & CHUA PHAT SINH PYCMS DA DUYET
140
			IF(NOT EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE PL_REQ_ID =@p_REQ_ID))
141
			BEGIN
142
				
143
				-- REVERT LAI NGAN SACH
144
					DECLARE CUR_TRADE  CURSOR LOCAL FOR
145
					SELECT TRADE_ID, TOTAL_AMT FROM PL_REQUEST_DOC_DT A WHERE A.REQ_ID =@p_REQ_ID
146
					Open CUR_TRADE
147
					FETCH NEXT FROM CUR_TRADE INTO @TRADE_ID, @AMT_ETM
148
					WHILE @@FETCH_STATUS = 0
149
					BEGIN
150
					   UPDATE PL_TRADEDETAIL SET AMT_ETM = ISNULL(AMT_ETM,0) - @AMT_ETM WHERE TRADE_ID =@TRADE_ID
151
					FETCH NEXT FROM CUR_TRADE INTO  @TRADE_ID, @AMT_ETM
152
					END
153
				-- KIEM TRA XEM CO DIEU CHUYEN NGAN SACH HAY KHONG
154
				IF(NOT EXISTS(SELECT * FROM PL_REQUEST_TRANSFER WHERE REQ_DOC_ID =@p_REQ_ID))
155
				BEGIN
156
					PRINT 'KHONG CO DIEU CHUYEN NGAN SACH'
157
				END
158
				ELSE
159
				BEGIN
160
					-- REVERT LAI NGAN SACH
161
						DECLARE CUR_TRADE_TF  CURSOR LOCAL FOR
162
						SELECT FR_TRADE_ID, TO_TRADE_ID, TOTAL_AMT FROM PL_REQUEST_TRANSFER A WHERE A.REQ_DOC_ID =@p_REQ_ID
163
						Open CUR_TRADE_TF
164
						FETCH NEXT FROM CUR_TRADE_TF INTO @TRADE_ID,@TO_TRADE_ID, @AMT_ETM
165
						WHILE @@FETCH_STATUS = 0
166
						BEGIN
167
						   UPDATE PL_TRADEDETAIL SET AMT_RECEIVE_TF = ISNULL(AMT_RECEIVE_TF,0) - @AMT_ETM WHERE TRADE_ID =@TO_TRADE_ID
168
						   UPDATE PL_TRADEDETAIL SET AMT_TF = ISNULL(AMT_TF,0) - @AMT_ETM WHERE TRADE_ID =@TRADE_ID
169
						FETCH NEXT FROM CUR_TRADE_TF INTO @TRADE_ID,@TO_TRADE_ID, @AMT_ETM
170
					END
171
				END
172
			END -- NGUOC LAI NEU TO TRINH NAY DA DUOC PYCMS LINK TOI --> TINH GIA TRI NHỮNG PYCMS DA DUOC DUYET
173
			ELSE
174
			BEGIN
175
				DECLARE @SUM_LUY_KE_PUR DECIMAL(18,0), @PL_REQ_DT VARCHAR(15)
176
				DECLARE CUR_TRADE_PUR  CURSOR LOCAL FOR
177
				SELECT TRADE_ID, TOTAL_AMT, REQDT_ID FROM PL_REQUEST_DOC_DT A WHERE A.REQ_ID =@p_REQ_ID
178
				Open CUR_TRADE_PUR
179
				FETCH NEXT FROM CUR_TRADE_PUR INTO @TRADE_ID, @AMT_ETM,@PL_REQ_DT
180
					WHILE @@FETCH_STATUS = 0
181
					BEGIN
182
						-- TINH SO TIEN DA SU DUNG CUA NHUNG PYCMS LINK TOI TUNG HANG MỤC DETAIL TO TRINH
183
						SET @SUM_LUY_KE_PUR =(SELECT SUM(TOTAL_AMT) FROM TR_REQUEST_DOC_DT WHERE PL_REQDT_ID =@PL_REQ_DT)
184
					    UPDATE PL_TRADEDETAIL SET AMT_ETM = ISNULL(AMT_ETM,0) - (@AMT_ETM - ISNULL(@SUM_LUY_KE_PUR,0)) WHERE TRADE_ID =@TRADE_ID
185
					FETCH NEXT FROM CUR_TRADE_PUR INTO  @TRADE_ID, @AMT_ETM,@PL_REQ_DT
186
				END
187
			END
188
			--- END LUCTV 05-05-2021
189
COMMIT TRANSACTION
190
SELECT '0' as Result, @p_REQ_ID  REQ_PAY_ID ,N'Quyết toán tờ trình thành công' ErrorDesc
191
RETURN '0'
192
ABORT:
193
BEGIN
194
		ROLLBACK TRANSACTION
195
		SELECT '-1' as Result, @p_REQ_ID AS REQ_PAY_ID, N'Quyết toán tờ trình thất bại' ErrorDesc
196
		RETURN '-1'
197
END