1
|
ALTER PROCEDURE [dbo].[TR_REQUEST_DOC_SendApp]
|
2
|
@p_REQ_ID VARCHAR(20),
|
3
|
@p_PROCESS_ID VARCHAR(20),
|
4
|
@p_TLNAME VARCHAR(20),
|
5
|
@p_MAKER_ID VARCHAR(20)
|
6
|
AS
|
7
|
BEGIN TRANSACTION
|
8
|
IF(EXISTS(SELECT REQ_ID FROM dbo.TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID AND (REQ_DT IS NULL OR REQ_DT='')) )
|
9
|
BEGIN
|
10
|
ROLLBACK TRANSACTION
|
11
|
SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Ngày yêu cầu bắt buộc nhập' ErrorDesc
|
12
|
RETURN '-1'
|
13
|
END
|
14
|
IF((SELECT CONVERT(DATE, REQ_DT, 103) FROM dbo.TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID) > CONVERT(DATE, GETDATE(),103))
|
15
|
BEGIN
|
16
|
ROLLBACK TRANSACTION
|
17
|
SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Ngày yêu cầu mua sắm không được phép lớn hơn ngày hiện tại' ErrorDesc
|
18
|
RETURN '-1'
|
19
|
END
|
20
|
IF(EXISTS(SELECT REQ_ID FROM dbo.TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID AND (REQ_REASON IS NULL OR REQ_REASON='')) )
|
21
|
BEGIN
|
22
|
ROLLBACK TRANSACTION
|
23
|
SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Mục đích yêu cầu bắt buộc nhập' ErrorDesc
|
24
|
RETURN '-1'
|
25
|
END
|
26
|
IF(EXISTS(SELECT REQ_ID FROM dbo.TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID AND (PL_REQ_ID IS NULL OR PL_REQ_ID='')) )
|
27
|
BEGIN
|
28
|
ROLLBACK TRANSACTION
|
29
|
SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Tờ trình chủ trương bắt buộc nhập' ErrorDesc
|
30
|
RETURN '-1'
|
31
|
END
|
32
|
IF(NOT EXISTS(SELECT REQ_DOC_ID FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID=@p_REQ_ID ) )
|
33
|
BEGIN
|
34
|
ROLLBACK TRANSACTION
|
35
|
SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Chi tiết hàng hóa bắt buộc nhập' ErrorDesc
|
36
|
RETURN '-1'
|
37
|
END
|
38
|
|
39
|
-------------------BAODNQ 24/10/2022 : XÓA DATA DVCM KHI GỬI PHÊ DUYỆT-----------------
|
40
|
DELETE FROM dbo.TR_REQUEST_COSTCENTER WHERE REQ_ID=@p_REQ_ID
|
41
|
-----------------------------ENDBAODNQ---------------------
|
42
|
|
43
|
--- XOA DATA CU
|
44
|
DELETE PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID
|
45
|
-----
|
46
|
DECLARE @NS_TO_TRINH DECIMAL(18,0), @NS_PYCMS_USE DECIMAL(18,0), @NS_LUY_KE DECIMAL(18,0),@PL_REQ_CODE VARCHAR(50)
|
47
|
SET @PL_REQ_CODE =(SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID =(SELECT PL_REQ_ID FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID))
|
48
|
SET @NS_TO_TRINH =(SELECT TOTAL_AMT FROM PL_REQUEST_DOC WHERE REQ_ID =(SELECT PL_REQ_ID FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID))
|
49
|
SET @NS_PYCMS_USE =(SELECT SUM(TOTAL_AMT) FROM TR_REQUEST_DOC_DT WHERE REQ_DOC_ID =@p_REQ_ID)
|
50
|
SET @NS_LUY_KE =ISNULL((SELECT SUM(TOTAL_AMT) FROM TR_REQUEST_DOC_DT WHERE REQ_DOC_ID IN
|
51
|
(SELECT REQ_ID FROM dbo.TR_REQUEST_DOC WHERE PL_REQ_ID=(SELECT PL_REQ_ID FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID) AND PROCESS_ID='APPROVE')),0)
|
52
|
DECLARE @p_PL_REQ_ID VARCHAR(15),@p_REQ_DATE DATETIME
|
53
|
SELECT @p_PL_REQ_ID=PL_REQ_ID,@p_REQ_DATE=REQ_DT FROM dbo.TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID
|
54
|
--IF( EXISTS(
|
55
|
-- SELECT Temp.GD_ID FROM (SELECT GD_ID,SUM(TOTAL_AMT) AS TOTAL_AMT_ETM FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID=@p_REQ_ID
|
56
|
-- GROUP BY GD_ID) Temp WHERE TOTAL_AMT_ETM >
|
57
|
-- ((SELECT SUM(TEMP2.TOTAL_AMT) AS TOTAL_AMT_APP FROM
|
58
|
-- (SELECT GOODS_ID,TOTAL_AMT FROM dbo.PL_REQUEST_DOC_DT
|
59
|
-- WHERE REQ_ID=@p_PL_REQ_ID
|
60
|
-- UNION
|
61
|
-- SELECT GOODS_ID,TOTAL_AMT FROM dbo.PL_REQUEST_DOC_DT
|
62
|
-- WHERE REQ_ID=(SELECT REQ_PARENT_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_PL_REQ_ID) ) TEMP2 WHERE TEMP2.GOODS_ID=Temp.GD_ID
|
63
|
-- GROUP BY TEMP2.GOODS_ID) - (SELECT ISNULL(SUM(TOTAL_AMT),0) AS TOTAL_AMT_EXE FROM dbo.TR_REQUEST_DOC_DT WHERE GD_ID=Temp.GD_ID AND REQ_DOC_ID IN (SELECT REQ_ID FROM dbo.TR_REQUEST_DOC WHERE PL_REQ_ID=@p_PL_REQ_ID AND PROCESS_ID='APPROVE')
|
64
|
-- GROUP BY GD_ID))))
|
65
|
-- BEGIN
|
66
|
-- ROLLBACK TRANSACTION
|
67
|
-- SELECT 'REQ-00001' Result,'' REQ_CODE, '' REQ_ID,
|
68
|
-- N'Thông tin liên quan tới phiếu yêu cầu mua sắm có sử dụng tờ trình số: '+ @PL_REQ_CODE
|
69
|
-- +CHAR(10)+ N'Tổng số tiền lũy kế sử dụng ngân sách tờ trình: '+FORMAT(@NS_LUY_KE ,'#,#', 'vi-VN')
|
70
|
-- +CHAR(10)+N'Tổng số tiền ngân sách còn lại của tờ trình: '+ FORMAT(@NS_TO_TRINH -@NS_LUY_KE ,'#,#', 'vi-VN')
|
71
|
-- +CHAR(10)+ N'Số tiền sử dụng ngân sách cho phiếu yêu cầu mua sắm hiện tại vượt '+FORMAT(@NS_LUY_KE+@NS_PYCMS_USE -@NS_TO_TRINH ,'#,#', 'vi-VN')+N' so với tổng số tiền ngân sách còn lại của tờ trình.'
|
72
|
-- +CHAR(10) +N'Vui lòng tra cứu tổng số tiền các phiếu yêu cầu mua sắm để biết thêm thông tin chi tiêt!' ErrorDesc
|
73
|
-- RETURN '0'
|
74
|
-- END
|
75
|
-- LUCTV: 05-12-2020: KHAI BAO CURSOR DE KIEM TRA TONG HAN MUC SU DUNG PYC LINK TỚI TỜ TRÌNH
|
76
|
-- LẤY SUM TỜ TRÌNH CHA
|
77
|
DECLARE @SUM_TO_TRINH_CHINH DECIMAL(18) =0, @SUM_TO_TRINH_CON DECIMAL(18,0), @SUM_PYC_LUY_KE DECIMAL(18,0), @PYCMS_CODE_LIST VARCHAR(100), @SUM_THANH_TOAN DECIMAL(18,0), @PDNTT_CODE_LIST VARCHAR(250)
|
78
|
SET @SUM_TO_TRINH_CHINH =(SELECT ISNULL(SUM(TOTAL_AMT),0) FROM PL_REQUEST_DOC_DT WHERE REQ_ID =@p_PL_REQ_ID)
|
79
|
-- LẤY SUM TỜ TRÌNH CON
|
80
|
SET @SUM_TO_TRINH_CON =(SELECT ISNULL(SUM(TOTAL_AMT),0) FROM PL_REQUEST_DOC_DT WHERE REQ_ID IN (SELECT REQ_ID FROM PL_REQUEST_DOC WHERE REQ_PARENT_ID =@p_PL_REQ_ID))
|
81
|
--- LŨY KẾ PHASE 1 LÀ GIÁ TRỊ NHỮNG PYCMS ĐÃ APPROVE
|
82
|
--- NGUYÊN TD ĐIỀU CHỈNH LẠI CÔNG THỨC TẠI ĐÂY
|
83
|
--- LUCTV 12032025: LŨY KẾ ĐẦU TIÊN LÀ GIÁ TRỊ MUA SẮM THỰC TẾ ĐỐI VỚI NHỮNG PHIẾU YÊU CẦU MUA SẮM ĐÃ HOÁN TẤT THANH TOÁN
|
84
|
SET @SUM_PYC_LUY_KE =(SELECT ISNULL(SUM(TOTAL_AMT),0) FROM TR_REQUEST_DOC_DT WHERE REQ_DOC_ID
|
85
|
IN (SELECT REQ_ID FROM TR_REQUEST_DOC WHERE PL_REQ_ID =@p_PL_REQ_ID AND PROCESS_ID = 'APPROVE')
|
86
|
AND REQ_DOC_ID <> @p_REQ_ID AND DBO.FN_CHECK_TR_REQ_DOC_DONE_PAYMENT (REQ_DOC_ID) =1)
|
87
|
|
88
|
--- LUCTV 12032025: LŨY KẾ THỨ 2 LÀ GIÁ TRỊ MUA SẮM THỰC TẾ ĐỐI VỚI NHỮNG PHIẾU YÊU CẦU MUA SẮM CHƯA HOÁN TẤT THANH TOÁN
|
89
|
SET @SUM_PYC_LUY_KE = @SUM_PYC_LUY_KE + (SELECT ISNULL(SUM(TOTAL_AMT_ETM),0) FROM TR_REQUEST_DOC_DT WHERE REQ_DOC_ID
|
90
|
IN (SELECT REQ_ID FROM TR_REQUEST_DOC WHERE PL_REQ_ID =@p_PL_REQ_ID AND PROCESS_ID = 'APPROVE')
|
91
|
AND REQ_DOC_ID <> @p_REQ_ID AND DBO.FN_CHECK_TR_REQ_DOC_DONE_PAYMENT (REQ_DOC_ID) =0)
|
92
|
--- END LUCTV 12032025
|
93
|
--- LŨY KẾ PHASE 2 LÀ GIÁ TRỊ NHỮNG PYCMS ĐÃ GỬI DUYỆT NHƯNG CHƯA APPROVE THÌ TÍNH SUM TOTAL_AMT_ETM
|
94
|
--- NGUYÊN TD CODE TẠI ĐÂY
|
95
|
SET @SUM_PYC_LUY_KE =@SUM_PYC_LUY_KE + (SELECT ISNULL(SUM(TOTAL_AMT_ETM),0) FROM TR_REQUEST_DOC_DT WHERE REQ_DOC_ID
|
96
|
IN (SELECT REQ_ID FROM TR_REQUEST_DOC WHERE PL_REQ_ID =@p_PL_REQ_ID AND AUTH_STATUS IN('U', 'A') AND PROCESS_ID <> 'APPROVE')
|
97
|
AND REQ_DOC_ID <> @p_REQ_ID)
|
98
|
----------------------BAODNQ 29/12/2022: CỘNG THÊM VÀO SUM_LUY_KE THÀNH TIỀN DỰ KIẾN CỦA NHỮNG PYCMS KHÁC CÓ HẠNG MỤC LÀ XUẤT KHO----------------------------
|
99
|
SET @SUM_PYC_LUY_KE = @SUM_PYC_LUY_KE + (SELECT ISNULL(SUM(TOTAL_AMT_ETM),0) FROM TR_REQUEST_DOC_DT WHERE REQ_DOC_ID
|
100
|
IN (SELECT REQ_ID FROM TR_REQUEST_DOC WHERE PL_REQ_ID = @p_PL_REQ_ID AND AUTH_STATUS IN('U', 'A'))
|
101
|
AND REQ_DOC_ID <> @p_REQ_ID AND TRAN_TYPE_ID = 'TRN0000000006'
|
102
|
)
|
103
|
-----------------------ENDBAODNQ 29/12/2022--------------------------------
|
104
|
|
105
|
SET @SUM_THANH_TOAN = (SELECT SUM(TOTAL_AMT) FROM TR_REQ_PAY_SERVICE WHERE EMP_ID =@p_PL_REQ_ID AND REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_PAYMENT WHERE AUTH_STATUS IN ('U','A')))
|
106
|
IF(ISNULL(@SUM_TO_TRINH_CHINH,0) + ISNULL(@SUM_TO_TRINH_CON,0) <@SUM_PYC_LUY_KE+@NS_PYCMS_USE + ISNULL(@SUM_THANH_TOAN,0))
|
107
|
BEGIN
|
108
|
ROLLBACK TRANSACTION
|
109
|
SET @PYCMS_CODE_LIST = (select STUFF( (select '; ' + DTA.REQ_CODE FROM TR_REQUEST_DOC DTA WHERE PL_REQ_ID =@p_PL_REQ_ID AND AUTH_STATUS IN ('U','A')
|
110
|
FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 2, ''))
|
111
|
SET @PDNTT_CODE_LIST = (select STUFF( (select '; ' + REQ_PAY_CODE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_PAY_SERVICE WHERE EMP_ID =@p_PL_REQ_ID AND REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_PAYMENT WHERE AUTH_STATUS IN ('U','A')))
|
112
|
FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 2, ''))
|
113
|
SELECT 'REQ-00001' Result,'' REQ_CODE, '' REQ_ID,
|
114
|
N'Thông tin liên quan tới phiếu yêu cầu mua sắm có sử dụng tờ trình số: '+ @PL_REQ_CODE
|
115
|
+ N'Tổng số tiền lũy kế sử dụng ngân sách tờ trình: '+FORMAT(@SUM_PYC_LUY_KE ,'#,#', 'vi-VN'),
|
116
|
+ N'Tổng số tiền lũy kế đã thanh toán cho tờ trình: '+FORMAT(isnull(@SUM_THANH_TOAN,0) ,'#,#', 'vi-VN')
|
117
|
+ N'\n Tổng số tiền ngân sách còn lại của tờ trình: '+ FORMAT(ISNULL(@SUM_TO_TRINH_CHINH,0)+ ISNULL(@SUM_TO_TRINH_CON,0) -@SUM_PYC_LUY_KE -ISNULL(@SUM_THANH_TOAN,0) ,'#,#', 'vi-VN')
|
118
|
+ N'\n Số tiền sử dụng ngân sách cho phiếu yêu cầu mua sắm hiện tại vượt '+FORMAT(ISNULL(@SUM_PYC_LUY_KE,0)+@NS_PYCMS_USE +ISNULL(@SUM_THANH_TOAN,0) -(ISNULL(@SUM_TO_TRINH_CHINH,0)+ ISNULL(@SUM_TO_TRINH_CON,0)) ,'#,#', 'vi-VN')+N' so với tổng số tiền ngân sách còn lại của tờ trình.'
|
119
|
+ N'\n Vui lòng tra cứu tổng số tiền các phiếu yêu cầu mua sắm số: '+ISNULL(@PYCMS_CODE_LIST,'')+N' để biết thêm thông tin chi tiêt!'
|
120
|
+ N'\n Vui lòng tra cứu tổng số tiền trên các phiếu thanh toán: '+ISNULL(@PDNTT_CODE_LIST,'')+N' để biết thêm thông tin chi tiêt!' ErrorDesc
|
121
|
RETURN '0'
|
122
|
END
|
123
|
|
124
|
---------------BAODNQ 3/1/2022: KHAI BÁO BẢNG TẠM LƯU NHỮNG DÒNG BÁO LỖI------------
|
125
|
DECLARE @t_ERROR_ROW TABLE(STT INT, PL_DT_ID VARCHAR(15))
|
126
|
INSERT INTO @t_ERROR_ROW(STT, PL_DT_ID)
|
127
|
SELECT ROW_NUMBER() OVER (ORDER BY REQDT_ID) AS STT,
|
128
|
PL_REQDT_ID AS PL_DT_ID
|
129
|
FROM TR_REQUEST_DOC_DT WHERE REQ_DOC_ID =@p_REQ_ID
|
130
|
DECLARE @p_TOTAL_ERROR_ROW VARCHAR(MAX)
|
131
|
----------------ENDBAODNQ------------
|
132
|
|
133
|
-- KHAI BÁO CURRS0R ĐỂ CHECK LŨY KẾ TỪNG HẠNG MỤC
|
134
|
DECLARE @PL_DT_ID VARCHAR(15), @SUM_@PL_DT_ID DECIMAL(18,0), @INDEX INT =0, @TOTAL_AMT_DETAIL DECIMAL(18,0), @REMAIN_AMT DECIMAL(18,0), @AMT_PL_DT DECIMAL(18,0), @AMT_PL_DT_EX DECIMAL(18,0)
|
135
|
DECLARE CURS CURSOR FOR SELECT PL_REQDT_ID, TOTAL_AMT FROM TR_REQUEST_DOC_DT WHERE REQ_DOC_ID =@p_REQ_ID
|
136
|
OPEN CURS
|
137
|
FETCH NEXT FROM CURS INTO @PL_DT_ID,@TOTAL_AMT_DETAIL
|
138
|
WHILE @@FETCH_STATUS = 0
|
139
|
BEGIN
|
140
|
SET @INDEX = @INDEX +1
|
141
|
|
142
|
----------------BAODNQ 20/12/2022: NẾU LƯỚI CHI TIẾT MUA SẮM THỰC TẾ K CÓ CHỌN DANH MỤC HÀNG HÓA THEO TỜ TRÌNH, KO CHO LƯU------------
|
143
|
IF(@PL_DT_ID IS NULL OR @PL_DT_ID = '')
|
144
|
BEGIN
|
145
|
ROLLBACK TRANSACTION
|
146
|
SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID,
|
147
|
N'Lưới chi tiết mua sắm thực tế, dòng :' + CONVERT(VARCHAR,@INDEX)+
|
148
|
N': Hàng hóa theo tờ trình không được bỏ trống' ErrorDesc
|
149
|
RETURN '-1'
|
150
|
END
|
151
|
|
152
|
-- KIEM TRA NEU SO PHIEU TAM UNG NAY DA THANH TOAN XONG THI KHONG CHO PHEP DUYET
|
153
|
--IF((SELECT A.REQ_AMT - A.PAY_AMT FROM TR_REQ_ADVANCE_PAYMENT A WHERE A.REQ_PAY_ID = @PAY_ADVANCE_ID)=0)
|
154
|
|
155
|
SET @SUM_@PL_DT_ID =(SELECT SUM (TOTAL_AMT) FROM TR_REQUEST_DOC_DT WHERE REQ_DOC_ID IN (SELECT REQ_ID FROM TR_REQUEST_DOC WHERE PL_REQ_ID =@p_PL_REQ_ID AND AUTH_STATUS IN ('U','A'))
|
156
|
AND PL_REQDT_ID =@PL_DT_ID)
|
157
|
SET @AMT_PL_DT =(SELECT ISNULL(TOTAL_AMT,0) FROM PL_REQUEST_DOC_DT WHERE REQDT_ID =@PL_DT_ID)
|
158
|
SET @REMAIN_AMT = ISNULL(@AMT_PL_DT,0) -ISNULL(@SUM_@PL_DT_ID,0)
|
159
|
--SET @SUM_@PL_DT_ID = ISNULL(@SUM_@PL_DT_ID,0)+ISNULL(@TOTAL_AMT_DETAIL,0)
|
160
|
SET @AMT_PL_DT_EX =(SELECT SUM (TOTAL_AMT) FROM TR_REQUEST_DOC_DT WHERE REQ_DOC_ID =@p_REQ_ID AND PL_REQDT_ID =@PL_DT_ID)
|
161
|
--AND PL_REQDT_ID =@PL_DT_ID)
|
162
|
--PRINT @SUM_@PL_DT_ID
|
163
|
|
164
|
-----------------BAODNQ 3/1/2022------------
|
165
|
-----------LẤY NHỮNG DÒNG CHI TIẾT MUA SẮM THỰC TẾ CÓ DÙNG HẠNG MỤC THEO TỜ TRÌNH-----------
|
166
|
SET @p_TOTAL_ERROR_ROW = STUFF(
|
167
|
(SELECT ',' + CONVERT(VARCHAR(3),STT)
|
168
|
FROM @t_ERROR_ROW WHERE PL_DT_ID = @PL_DT_ID
|
169
|
FOR XML PATH('')), 1, 1, ''
|
170
|
)
|
171
|
----------------END BADNQ------------------
|
172
|
|
173
|
IF(ISNULL(@SUM_@PL_DT_ID,0)+ ISNULL(@AMT_PL_DT_EX,0) > @AMT_PL_DT)
|
174
|
--IF(1<2)
|
175
|
BEGIN
|
176
|
ROLLBACK TRANSACTION
|
177
|
SELECT '-1' Result,'' REQ_PAY_ID,
|
178
|
N'Lưới chi tiết mua sắm thực tế:'
|
179
|
+ N'\nDòng '+ @p_TOTAL_ERROR_ROW+ N': Ngân sách sử dụng của hạng mục: '+
|
180
|
(SELECT ISNULL(DESCRIPTION,'') FROM PL_REQUEST_DOC_DT WHERE REQDT_ID =@PL_DT_ID) + N' là: ' +CONVERT(VARCHAR, FORMAT(ISNULL(@AMT_PL_DT_EX, 0), '#,#', 'vi-VN'))
|
181
|
+ N' đã vượt quá số tiền trình chủ trương.'
|
182
|
+ N'\n Số tiền đã gửi phê duyệt thành công trong những PUR khác: '+ FORMAT(ISNULL(@SUM_@PL_DT_ID,0) ,'#,#', 'vi-VN')
|
183
|
+ N'\n Số tiền còn lại có thể sử dụng: '+ CASE WHEN @REMAIN_AMT >0 THEN FORMAT(ISNULL(@REMAIN_AMT,0) ,'#,#', 'vi-VN') ELSE '0.00' END
|
184
|
--+CHAR(10)+N'Số tiền vượt hạn mức: '+ FORMAT(ISNULL(@SUM_@PL_DT_ID,0) +ISNULL(@TOTAL_AMT_DETAIL,0) - (@AMT_PL_DT) ,'#,#', 'vi-VN')
|
185
|
ErrorDesc
|
186
|
RETURN '-1'
|
187
|
END
|
188
|
--UPDATE TR_REQ_ADVANCE_PAYMENT SET PAY_AMT = ISNULL(PAY_AMT,0) + ISNULL(@AMT_PAY,0.00) +ISNULL(@AMT_REVERT,0.00) WHERE REQ_PAY_ID =@PAY_ADVANCE_ID
|
189
|
-- SO SÁNH TỔNG BREAK DOWN TỪ 1 HẠNG MỤC
|
190
|
--IF(SELECT SUM())
|
191
|
FETCH NEXT FROM CURS INTO @PL_DT_ID,@TOTAL_AMT_DETAIL
|
192
|
END
|
193
|
CLOSE CURS
|
194
|
DEALLOCATE CURS
|
195
|
--: HẾT ĐOẠN BỔ SUNG CỦA LỰCTV
|
196
|
--IF(EXISTS(SELECT REQDT_ID FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID=@p_REQ_ID AND REQ_DT <= @p_REQ_DATE))
|
197
|
--IF(EXISTS(SELECT REQPL_DT_ID FROM dbo.TR_REQUEST_DOC_PL_DT WHERE REQ_DOC_ID=@p_REQ_ID AND REQ_DT <= @p_REQ_DATE))
|
198
|
-- BEGIN
|
199
|
-- ROLLBACK TRANSACTION
|
200
|
-- SELECT 'REQ-00001' Result,'' REQ_CODE, '' REQ_ID, N'Lưới thông tin hàng hóa theo tờ trình: Ngày cần không được phép để trống và phải lớn hơn ngày yêu cầu mua sắm' ErrorDesc
|
201
|
-- RETURN '0'
|
202
|
--END
|
203
|
IF(EXISTS(SELECT REQPL_DT_ID FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID=@p_REQ_ID AND REQ_DT <= @p_REQ_DATE))
|
204
|
BEGIN
|
205
|
ROLLBACK TRANSACTION
|
206
|
SELECT 'REQ-00001' Result,'' REQ_CODE, '' REQ_ID, N'Lưới thông tin hàng hóa mua sắm thực tế: Ngày cần không được phép để trống và phải lớn hơn ngày yêu cầu mua sắm' ErrorDesc
|
207
|
RETURN '0'
|
208
|
END
|
209
|
IF(EXISTS(SELECT REQPL_DT_ID FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID=@p_REQ_ID AND (REQ_DT IS NULL OR REQ_DT ='')))
|
210
|
BEGIN
|
211
|
ROLLBACK TRANSACTION
|
212
|
SELECT 'REQ-00001' Result,'' REQ_CODE, '' REQ_ID, N'Lưới thông tin hàng hóa mua sắm thực tế: Ngày cần không được phép để trống và phải lớn hơn ngày yêu cầu mua sắm' ErrorDesc
|
213
|
RETURN '0'
|
214
|
END
|
215
|
IF(EXISTS(SELECT [DESCRIPTION] FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_REQ_ID AND ([DESCRIPTION] IS NULL OR [DESCRIPTION] ='')))
|
216
|
BEGIN
|
217
|
ROLLBACK TRANSACTION
|
218
|
SELECT 'REQ-00001' Result,'' REQ_CODE, '' REQ_ID, N'Lưới thông tin hàng hóa mua sắm thực tế: Mô tả hàng hóa/ dịch vụ không được phép để trống' ErrorDesc
|
219
|
RETURN '0'
|
220
|
END
|
221
|
IF(EXISTS(SELECT UNIT_ID FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_REQ_ID AND (UNIT_ID IS NULL OR UNIT_ID ='')))
|
222
|
BEGIN
|
223
|
ROLLBACK TRANSACTION
|
224
|
SELECT 'REQ-00001' Result,'' REQ_CODE, '' REQ_ID, N'Lưới thông tin hàng hóa mua sắm thực tế: Đơn vị tính không được phép để trống' ErrorDesc
|
225
|
RETURN '0'
|
226
|
END
|
227
|
IF(EXISTS(SELECT QUANTITY FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID=@p_REQ_ID AND (QUANTITY IS NULL OR QUANTITY ='')))
|
228
|
BEGIN
|
229
|
ROLLBACK TRANSACTION
|
230
|
SELECT 'REQ-00001' Result,'' REQ_CODE, '' REQ_ID, N'Lưới thông tin hàng hóa mua sắm thực tế: Số lượng không được phép để trống' ErrorDesc
|
231
|
RETURN '0'
|
232
|
END
|
233
|
DECLARE @BRANCH_ID VARCHAR(20), @DEP_ID VARCHAR(20),@BRANCH_CREATE VARCHAR(20) ,@DEP_CREATE VARCHAR(20),@BRANCH_TYPE VARCHAR(10),
|
234
|
@BRANCH_CREATE_TYPE VARCHAR(10)
|
235
|
|
236
|
SELECT @BRANCH_CREATE=BRANCH_CREATE,@DEP_CREATE=DEP_CREATE FROM dbo.TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID
|
237
|
|
238
|
-----------------BAODNQ 25/8/2022 : Nếu ĐV tạo khác HS, ko lấy theo phòng ban------------
|
239
|
IF((SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE) <> 'HS')
|
240
|
BEGIN
|
241
|
SET @DEP_CREATE = NULL
|
242
|
END
|
243
|
|
244
|
SET @BRANCH_TYPE=(SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_ID)
|
245
|
SET @BRANCH_CREATE_TYPE=(SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_CREATE)
|
246
|
-- KIEM TRA XEM CO CAP PHE DUYET HAY KHONG
|
247
|
IF(EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID AND SIGN_USER IS NOT NULL AND SIGN_USER <>''))
|
248
|
BEGIN
|
249
|
UPDATE dbo.TR_REQUEST_DOC SET AUTH_STATUS='U',PROCESS_ID='SIGN' WHERE REQ_ID=@p_REQ_ID
|
250
|
INSERT INTO dbo.PL_REQUEST_PROCESS
|
251
|
(
|
252
|
REQ_ID,
|
253
|
PROCESS_ID,
|
254
|
STATUS,
|
255
|
ROLE_USER,
|
256
|
BRANCH_ID,
|
257
|
DEP_ID,
|
258
|
CHECKER_ID,
|
259
|
APPROVE_DT,
|
260
|
PARENT_PROCESS_ID,
|
261
|
IS_LEAF,
|
262
|
COST_ID,
|
263
|
DVDM_ID,
|
264
|
NOTES,
|
265
|
IS_HAS_CHILD
|
266
|
)
|
267
|
VALUES
|
268
|
( @p_REQ_ID, -- REQ_ID - varchar(15)
|
269
|
'SIGN', -- PROCESS_ID - varchar(10)
|
270
|
'C', -- STATUS - varchar(5)
|
271
|
(SELECT RoleName FROM TL_USER WHERE TLNANME =(SELECT SIGN_USER FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID)), -- ROLE_USER - varchar(50)
|
272
|
@BRANCH_CREATE,
|
273
|
@DEP_CREATE, -- BRANCH_ID - varchar(15)
|
274
|
'', -- CHECKER_ID - varchar(15)
|
275
|
NULL, -- APPROVE_DT - datetime
|
276
|
'', -- PARENT_PROCESS_ID - varchar(10)
|
277
|
'N', -- IS_LEAF - varchar(1)
|
278
|
'', -- COST_ID - varchar(15)
|
279
|
'', -- DVDM_ID - varchar(15)
|
280
|
N'Chờ cấp phê duyệt trung gian xác nhận phiếu', -- NOTES - nvarchar(500)
|
281
|
NULL -- IS_HAS_CHILD - bit
|
282
|
)
|
283
|
END
|
284
|
ELSE
|
285
|
BEGIN
|
286
|
--IF(@BRANCH_CREATE_TYPE='PGD')
|
287
|
-- SET @BRANCH_CREATE=(SELECT FATHER_ID FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_CREATE)
|
288
|
UPDATE dbo.TR_REQUEST_DOC SET AUTH_STATUS='U',PROCESS_ID='APPNEW' WHERE REQ_ID=@p_REQ_ID
|
289
|
IF(@BRANCH_CREATE_TYPE='PGD')
|
290
|
BEGIN
|
291
|
INSERT INTO dbo.PL_REQUEST_PROCESS
|
292
|
(
|
293
|
REQ_ID,
|
294
|
PROCESS_ID,
|
295
|
STATUS,
|
296
|
ROLE_USER,
|
297
|
BRANCH_ID,
|
298
|
DEP_ID,
|
299
|
CHECKER_ID,
|
300
|
APPROVE_DT,
|
301
|
PARENT_PROCESS_ID,
|
302
|
IS_LEAF,
|
303
|
COST_ID,
|
304
|
DVDM_ID,
|
305
|
NOTES,
|
306
|
IS_HAS_CHILD
|
307
|
)
|
308
|
VALUES
|
309
|
( @p_REQ_ID, -- REQ_ID - varchar(15)
|
310
|
'APPNEW', -- PROCESS_ID - varchar(10)
|
311
|
'C', -- STATUS - varchar(5)
|
312
|
'TPGD', -- ROLE_USER - varchar(50)
|
313
|
@BRANCH_CREATE,
|
314
|
@DEP_CREATE, -- BRANCH_ID - varchar(15)
|
315
|
'', -- CHECKER_ID - varchar(15)
|
316
|
NULL, -- APPROVE_DT - datetime
|
317
|
'', -- PARENT_PROCESS_ID - varchar(10)
|
318
|
'N', -- IS_LEAF - varchar(1)
|
319
|
'', -- COST_ID - varchar(15)
|
320
|
'', -- DVDM_ID - varchar(15)
|
321
|
N'Chờ trưởng đơn vị phê duyệt', -- NOTES - nvarchar(500)
|
322
|
NULL -- IS_HAS_CHILD - bit
|
323
|
)
|
324
|
END
|
325
|
ELSE
|
326
|
BEGIN
|
327
|
INSERT INTO dbo.PL_REQUEST_PROCESS
|
328
|
(
|
329
|
REQ_ID,
|
330
|
PROCESS_ID,
|
331
|
STATUS,
|
332
|
ROLE_USER,
|
333
|
BRANCH_ID,
|
334
|
DEP_ID,
|
335
|
CHECKER_ID,
|
336
|
APPROVE_DT,
|
337
|
PARENT_PROCESS_ID,
|
338
|
IS_LEAF,
|
339
|
COST_ID,
|
340
|
DVDM_ID,
|
341
|
NOTES,
|
342
|
IS_HAS_CHILD
|
343
|
)
|
344
|
VALUES
|
345
|
( @p_REQ_ID, -- REQ_ID - varchar(15)
|
346
|
'APPNEW', -- PROCESS_ID - varchar(10)
|
347
|
'C', -- STATUS - varchar(5)
|
348
|
'GDDV', -- ROLE_USER - varchar(50)
|
349
|
@BRANCH_CREATE,
|
350
|
@DEP_CREATE, -- BRANCH_ID - varchar(15)
|
351
|
'', -- CHECKER_ID - varchar(15)
|
352
|
NULL, -- APPROVE_DT - datetime
|
353
|
'', -- PARENT_PROCESS_ID - varchar(10)
|
354
|
'N', -- IS_LEAF - varchar(1)
|
355
|
'', -- COST_ID - varchar(15)
|
356
|
'', -- DVDM_ID - varchar(15)
|
357
|
N'Chờ trưởng đơn vị phê duyệt', -- NOTES - nvarchar(500)
|
358
|
NULL -- IS_HAS_CHILD - bit
|
359
|
)
|
360
|
END
|
361
|
END
|
362
|
--------------BAODNQ 4/11/2022: NG TẠO GỬI PHÊ DUYỆT MÀ K CÓ DVCM THÌ GHI LOG--------------
|
363
|
DECLARE @p_LOG_MESSAGE NVARCHAR(MAX)
|
364
|
IF(NOT EXISTS (SELECT * FROM TR_REQUEST_COSTCENTER WHERE REQ_ID = @p_REQ_ID))
|
365
|
BEGIN
|
366
|
SET @p_LOG_MESSAGE = N'Nhân viên gửi phê duyệt và không chọn DVCM'
|
367
|
END
|
368
|
ELSE
|
369
|
BEGIN
|
370
|
SET @p_LOG_MESSAGE = N'Nhân viên gửi phê duyệt'
|
371
|
END
|
372
|
|
373
|
-------------------ENDBAODNQ---------------------------
|
374
|
INSERT INTO dbo.PL_PROCESS
|
375
|
(
|
376
|
REQ_ID,
|
377
|
PROCESS_ID,
|
378
|
CHECKER_ID,
|
379
|
APPROVE_DT,
|
380
|
PROCESS_DESC,
|
381
|
NOTES
|
382
|
)
|
383
|
VALUES
|
384
|
( @p_REQ_ID, -- REQ_ID - varchar(15)
|
385
|
--@p_PROCESS_ID, -- PROCESS_ID - varchar(10)
|
386
|
'SEND',
|
387
|
@p_TLNAME, -- CHECKER_ID - varchar(15)
|
388
|
GETDATE(), -- APPROVE_DT - datetime
|
389
|
N'Nhân viên tạo phiếu và gửi phê duyệt thành công' , -- PROCESS_DESC - nvarchar(1000)
|
390
|
@p_LOG_MESSAGE -- NOTES - nvarchar(1000)
|
391
|
)
|
392
|
|
393
|
IF @@Error <> 0 GOTO ABORT
|
394
|
|
395
|
------BAODNQ 26/3/2022: Trả ra kết quả PROCESS_ID-------
|
396
|
DECLARE @PROCESS_ID VARCHAR(50) = (
|
397
|
SELECT PROCESS_ID FROM TR_REQUEST_DOC WHERE REQ_ID = @p_REQ_ID
|
398
|
)
|
399
|
|
400
|
COMMIT TRANSACTION
|
401
|
SELECT '0' as Result,'' REQ_CODE,''REQ_ID, @PROCESS_ID PROCESS_ID,'' ErrorDesc
|
402
|
RETURN '0'
|
403
|
ABORT:
|
404
|
BEGIN
|
405
|
ROLLBACK TRANSACTION
|
406
|
SELECT '-1' as Result,'' REQ_CODE,''REQ_ID, '' PROCESS_ID,'' ErrorDesc
|
407
|
RETURN '-1'
|
408
|
End
|