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(EXISTS(SELECT REQ_ID FROM dbo.TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID AND (REQ_REASON IS NULL OR REQ_REASON='')) )
|
15
|
BEGIN
|
16
|
ROLLBACK TRANSACTION
|
17
|
SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Mục đích yêu cầu bắt buộc nhập' ErrorDesc
|
18
|
RETURN '-1'
|
19
|
END
|
20
|
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='')) )
|
21
|
BEGIN
|
22
|
ROLLBACK TRANSACTION
|
23
|
SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Tờ trình chủ trương bắt buộc nhập' ErrorDesc
|
24
|
RETURN '-1'
|
25
|
END
|
26
|
IF(NOT EXISTS(SELECT REQ_DOC_ID FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID=@p_REQ_ID ) )
|
27
|
BEGIN
|
28
|
ROLLBACK TRANSACTION
|
29
|
SELECT '-1' AS Result ,'' REQ_CODE, '' REQ_ID, N'Chi tiết hàng hóa bắt buộc nhập' ErrorDesc
|
30
|
RETURN '-1'
|
31
|
END
|
32
|
|
33
|
--- XOA DATA CU
|
34
|
DELETE PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID
|
35
|
-----
|
36
|
DECLARE @NS_TO_TRINH DECIMAL(18,0), @NS_PYCMS_USE DECIMAL(18,0), @NS_LUY_KE DECIMAL(18,0),@PL_REQ_CODE VARCHAR(50)
|
37
|
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))
|
38
|
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))
|
39
|
SET @NS_PYCMS_USE =(SELECT SUM(TOTAL_AMT) FROM TR_REQUEST_DOC_DT WHERE REQ_DOC_ID =@p_REQ_ID)
|
40
|
SET @NS_LUY_KE =ISNULL((SELECT SUM(TOTAL_AMT) FROM TR_REQUEST_DOC_DT WHERE REQ_DOC_ID IN (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))),0)
|
41
|
DECLARE @p_PL_REQ_ID VARCHAR(15),@p_REQ_DATE DATETIME
|
42
|
SELECT @p_PL_REQ_ID=PL_REQ_ID,@p_REQ_DATE=REQ_DT FROM dbo.TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID
|
43
|
IF( EXISTS(
|
44
|
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
|
45
|
GROUP BY GD_ID) Temp WHERE TOTAL_AMT_ETM >
|
46
|
((SELECT SUM(TEMP2.TOTAL_AMT) AS TOTAL_AMT_APP FROM
|
47
|
(SELECT GOODS_ID,TOTAL_AMT FROM dbo.PL_REQUEST_DOC_DT
|
48
|
WHERE REQ_ID=@p_PL_REQ_ID
|
49
|
UNION
|
50
|
SELECT GOODS_ID,TOTAL_AMT FROM dbo.PL_REQUEST_DOC_DT
|
51
|
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
|
52
|
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)
|
53
|
GROUP BY GD_ID))))
|
54
|
BEGIN
|
55
|
ROLLBACK TRANSACTION
|
56
|
SELECT 'REQ-00001' Result,'' REQ_CODE, '' REQ_ID,
|
57
|
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
|
58
|
+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')
|
59
|
+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')
|
60
|
+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.'
|
61
|
+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
|
62
|
RETURN '0'
|
63
|
END
|
64
|
IF(EXISTS(SELECT REQDT_ID FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID=@p_REQ_ID AND REQ_DT <= @p_REQ_DATE))
|
65
|
BEGIN
|
66
|
ROLLBACK TRANSACTION
|
67
|
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
|
68
|
RETURN '0'
|
69
|
END
|
70
|
DECLARE @BRANCH_ID VARCHAR(20), @DEP_ID VARCHAR(20),@BRANCH_CREATE VARCHAR(20) ,@DEP_CREATE VARCHAR(20),@BRANCH_TYPE VARCHAR(10),
|
71
|
@BRANCH_CREATE_TYPE VARCHAR(10)
|
72
|
|
73
|
SELECT @BRANCH_CREATE=BRANCH_CREATE,@DEP_CREATE=DEP_CREATE FROM dbo.TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID
|
74
|
|
75
|
SET @BRANCH_TYPE=(SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_ID)
|
76
|
SET @BRANCH_CREATE_TYPE=(SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_CREATE)
|
77
|
-- KIEM TRA XEM CO CAP PHE DUYET HAY KHONG
|
78
|
IF(EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID AND SIGN_USER IS NOT NULL AND SIGN_USER <>''))
|
79
|
BEGIN
|
80
|
UPDATE dbo.TR_REQUEST_DOC SET AUTH_STATUS='U',PROCESS_ID='SIGN' WHERE REQ_ID=@p_REQ_ID
|
81
|
INSERT INTO dbo.PL_REQUEST_PROCESS
|
82
|
(
|
83
|
REQ_ID,
|
84
|
PROCESS_ID,
|
85
|
STATUS,
|
86
|
ROLE_USER,
|
87
|
BRANCH_ID,
|
88
|
DEP_ID,
|
89
|
CHECKER_ID,
|
90
|
APPROVE_DT,
|
91
|
PARENT_PROCESS_ID,
|
92
|
IS_LEAF,
|
93
|
COST_ID,
|
94
|
DVDM_ID,
|
95
|
NOTES,
|
96
|
IS_HAS_CHILD
|
97
|
)
|
98
|
VALUES
|
99
|
( @p_REQ_ID, -- REQ_ID - varchar(15)
|
100
|
'SIGN', -- PROCESS_ID - varchar(10)
|
101
|
'C', -- STATUS - varchar(5)
|
102
|
(SELECT RoleName FROM TL_USER WHERE TLNANME =(SELECT SIGN_USER FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID)), -- ROLE_USER - varchar(50)
|
103
|
@BRANCH_CREATE,
|
104
|
@DEP_CREATE, -- BRANCH_ID - varchar(15)
|
105
|
'', -- CHECKER_ID - varchar(15)
|
106
|
NULL, -- APPROVE_DT - datetime
|
107
|
'', -- PARENT_PROCESS_ID - varchar(10)
|
108
|
'N', -- IS_LEAF - varchar(1)
|
109
|
'', -- COST_ID - varchar(15)
|
110
|
'', -- DVDM_ID - varchar(15)
|
111
|
N'Chờ cấp phê duyệt trung gian xác nhận phiếu', -- NOTES - nvarchar(500)
|
112
|
NULL -- IS_HAS_CHILD - bit
|
113
|
)
|
114
|
END
|
115
|
ELSE
|
116
|
BEGIN
|
117
|
UPDATE dbo.TR_REQUEST_DOC SET AUTH_STATUS='U',PROCESS_ID='APPNEW' WHERE REQ_ID=@p_REQ_ID
|
118
|
INSERT INTO dbo.PL_REQUEST_PROCESS
|
119
|
(
|
120
|
REQ_ID,
|
121
|
PROCESS_ID,
|
122
|
STATUS,
|
123
|
ROLE_USER,
|
124
|
BRANCH_ID,
|
125
|
DEP_ID,
|
126
|
CHECKER_ID,
|
127
|
APPROVE_DT,
|
128
|
PARENT_PROCESS_ID,
|
129
|
IS_LEAF,
|
130
|
COST_ID,
|
131
|
DVDM_ID,
|
132
|
NOTES,
|
133
|
IS_HAS_CHILD
|
134
|
)
|
135
|
VALUES
|
136
|
( @p_REQ_ID, -- REQ_ID - varchar(15)
|
137
|
'APPNEW', -- PROCESS_ID - varchar(10)
|
138
|
'C', -- STATUS - varchar(5)
|
139
|
'GDDV', -- ROLE_USER - varchar(50)
|
140
|
@BRANCH_CREATE,
|
141
|
@DEP_CREATE, -- BRANCH_ID - varchar(15)
|
142
|
'', -- CHECKER_ID - varchar(15)
|
143
|
NULL, -- APPROVE_DT - datetime
|
144
|
'', -- PARENT_PROCESS_ID - varchar(10)
|
145
|
'N', -- IS_LEAF - varchar(1)
|
146
|
'', -- COST_ID - varchar(15)
|
147
|
'', -- DVDM_ID - varchar(15)
|
148
|
N'Chờ trưởng đơn vị phê duyệt', -- NOTES - nvarchar(500)
|
149
|
NULL -- IS_HAS_CHILD - bit
|
150
|
)
|
151
|
END
|
152
|
INSERT INTO dbo.PL_PROCESS
|
153
|
(
|
154
|
REQ_ID,
|
155
|
PROCESS_ID,
|
156
|
CHECKER_ID,
|
157
|
APPROVE_DT,
|
158
|
PROCESS_DESC,
|
159
|
NOTES
|
160
|
)
|
161
|
VALUES
|
162
|
( @p_REQ_ID, -- REQ_ID - varchar(15)
|
163
|
--@p_PROCESS_ID, -- PROCESS_ID - varchar(10)
|
164
|
'SEND',
|
165
|
@p_TLNAME, -- CHECKER_ID - varchar(15)
|
166
|
GETDATE(), -- APPROVE_DT - datetime
|
167
|
N'Nhân viên tạo phiếu và gửi phê duyệt thành công' , -- PROCESS_DESC - nvarchar(1000)
|
168
|
N'Nhân viên gửi phê duyệt ' -- NOTES - nvarchar(1000)
|
169
|
)
|
170
|
|
171
|
IF @@Error <> 0 GOTO ABORT
|
172
|
COMMIT TRANSACTION
|
173
|
SELECT '0' as Result,'' REQ_CODE,''REQ_ID, '' ErrorDesc
|
174
|
RETURN '0'
|
175
|
ABORT:
|
176
|
BEGIN
|
177
|
ROLLBACK TRANSACTION
|
178
|
SELECT '-1' as Result,'' REQ_CODE,''REQ_ID, '' ErrorDesc
|
179
|
RETURN '-1'
|
180
|
End
|
181
|
|
182
|
|