1
|
SET QUOTED_IDENTIFIER ON
|
2
|
SET ANSI_NULLS ON
|
3
|
GO
|
4
|
ALTER PROCEDURE [dbo].[PL_APPOINT_CONTRACTOR_Upd]
|
5
|
@p_REQ_ID VARCHAR(15)=NULL,
|
6
|
@p_REQ_CODE nvarchar(100) = NULL,
|
7
|
@p_REQ_DT nvarchar(20) = NULL,
|
8
|
@p_REQ_CONTENT NVARCHAR(4000)=NULL,
|
9
|
@p_SURVEY_CONTENT NVARCHAR(4000) = NULL,
|
10
|
@p_TR_REQUEST_DOC_ID VARCHAR(15) = NULL,
|
11
|
@p_SUP_ID VARCHAR(15) = NULL,
|
12
|
@p_PROPOSE_CONTENT NVARCHAR(4000) = NULL,
|
13
|
@p_RECORD_STATUS varchar(1) = NULL,
|
14
|
@p_MAKER_ID varchar(20) = NULL,
|
15
|
@p_CREATE_DT varchar(20) = NULL,
|
16
|
@p_AUTH_STATUS varchar(50) = NULL,
|
17
|
@p_CHECKER_ID varchar(20) = NULL,
|
18
|
@p_APPROVE_DT nvarchar(20) = NULL,
|
19
|
@p_BRANCH_ID VARCHAR(15)=NULL,
|
20
|
@p_DEP_ID VARCHAR(20)=NULL,
|
21
|
@p_PROCESS_ID VARCHAR(20) = NULL,
|
22
|
@p_DVDM_ID VARCHAR(20) = NULL,
|
23
|
@p_SIGN_USER VARCHAR(20) = NULL,
|
24
|
@p_BASED_CONTENT NVARCHAR(3000) = NULL,
|
25
|
@p_TOTAL_AMT_ETM DECIMAL(18,0) = NULL,
|
26
|
@p_TOTAL_AMT DECIMAL(18,0) = NULL,
|
27
|
@p_HAS_GDK_TC VARCHAR(1) = NULL,
|
28
|
@p_APPOINT_REASON NVARCHAR(4000) = NULL,
|
29
|
@p_CATERGORY_NAME NVARCHAR(4000) = NULL,
|
30
|
@p_SUP_SELECT_CONTENT NVARCHAR(4000) = NULL,
|
31
|
@p_REPORT_TEMPLATE_CONTENT NVARCHAR(MAX) = NULL,
|
32
|
@p_TYPE_PL VARCHAR(20) = NULL,
|
33
|
@p_PL_APPOINT_CONTRACTOR_DT XML
|
34
|
|
35
|
AS
|
36
|
IF(EXISTS (SELECT * FROM PL_APPOINT_CONTRACTOR WHERE REQ_CODE = @p_REQ_CODE AND REQ_ID <> @p_REQ_ID))
|
37
|
BEGIN
|
38
|
SELECT ErrorCode Result, '' REQ_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = 'REQ-00001'
|
39
|
RETURN '-1'
|
40
|
END
|
41
|
IF(EXISTS (
|
42
|
SELECT * FROM PL_APPOINT_CONTRACTOR WHERE REQ_ID = @p_REQ_ID
|
43
|
AND AUTH_STATUS = 'U' AND PROCESS_ID <> 'NEW' AND PROCESS_ID <> 'APPROVE'))
|
44
|
BEGIN
|
45
|
SELECT '-1' AS Result ,'' REQ_ID,
|
46
|
N'Cập nhật thất bại. Tờ trình chỉ định thầu số :' +@p_REQ_CODE+ N' đang trong trạng thái phê duyệt' ErrorDesc
|
47
|
RETURN '-1'
|
48
|
END
|
49
|
BEGIN TRANSACTION
|
50
|
|
51
|
SET @p_AUTH_STATUS = 'E'
|
52
|
|
53
|
IF(EXISTS (SELECT * FROM CM_BRANCH WHERE BRANCH_ID = @p_BRANCH_ID AND BRANCH_TYPE = 'HS'))
|
54
|
BEGIN
|
55
|
SET @p_DEP_ID = (SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID AND TLSUBBRID = @p_BRANCH_ID)
|
56
|
END
|
57
|
ELSE
|
58
|
BEGIN
|
59
|
SET @p_DEP_ID = ''
|
60
|
END
|
61
|
|
62
|
UPDATE PL_APPOINT_CONTRACTOR SET
|
63
|
REQ_CODE = @p_REQ_CODE,
|
64
|
REQ_DT = CONVERT(DATETIME,@p_REQ_DT, 103),
|
65
|
REQ_CONTENT=@p_REQ_CONTENT,
|
66
|
SURVEY_CONTENT = @p_SURVEY_CONTENT,
|
67
|
TR_REQUEST_DOC_ID = @p_TR_REQUEST_DOC_ID,
|
68
|
SUP_ID = @p_SUP_ID,
|
69
|
PROPOSE_CONTENT = @p_PROPOSE_CONTENT,
|
70
|
BRANCH_ID=@p_BRANCH_ID,
|
71
|
DEP_ID=@p_DEP_ID,
|
72
|
-- CREATE_DT = CONVERT(DATETIME, @p_CREATE_DT, 103), -- NGUYENTD 31102023_SECRETKEY: FIX LỖI CẬP NHẬT LUÔN NGÀY TẠO
|
73
|
RECORD_STATUS=@p_RECORD_STATUS,
|
74
|
CHECKER_ID=@p_CHECKER_ID,
|
75
|
APPROVE_DT=CONVERT(DATETIME,@p_APPROVE_DT, 103),
|
76
|
AUTH_STATUS=@p_AUTH_STATUS,
|
77
|
MAKER_ID=@p_MAKER_ID,
|
78
|
DVDM_APP_ID=@p_DVDM_ID,
|
79
|
SIGN_USER = @p_SIGN_USER,
|
80
|
BASED_CONTENT=@p_BASED_CONTENT,
|
81
|
TOTAL_AMT_ETM = @p_TOTAL_AMT_ETM,
|
82
|
HAS_GDK_TC = @p_HAS_GDK_TC,
|
83
|
PROCESS_ID = @p_PROCESS_ID,
|
84
|
APPOINT_REASON = @p_APPOINT_REASON,
|
85
|
CATERGORY_NAME = @p_CATERGORY_NAME,
|
86
|
SUP_SELECT_CONTENT = @p_SUP_SELECT_CONTENT,
|
87
|
REPORT_TEMPLATE_CONTENT = @p_REPORT_TEMPLATE_CONTENT,
|
88
|
TYPE_PL = @p_TYPE_PL
|
89
|
|
90
|
WHERE REQ_ID=@p_REQ_ID
|
91
|
|
92
|
IF @@Error <> 0 GOTO ABORT
|
93
|
PRINT 'PASS UPDATE'
|
94
|
|
95
|
-------------------INSERT DT--------------
|
96
|
DELETE FROM PL_APPOINT_CONTRACTOR_DT WHERE REQ_ID= @p_REQ_ID
|
97
|
|
98
|
IF(@p_TOTAL_AMT > @p_TOTAL_AMT_ETM)
|
99
|
BEGIN
|
100
|
ROLLBACK TRANSACTION
|
101
|
SELECT '-1' AS Result, '' REQ_ID,
|
102
|
N'Lưới mô tả chi tiết chọn nhà cung cấp: ' +
|
103
|
N'Tổng chi phí sau khi tính toán không được vượt quá tổng chi phí dự kiến của các hạng mục mua sắm được chọn' ErrorDesc
|
104
|
RETURN '-1'
|
105
|
END
|
106
|
|
107
|
Declare @hdoc INT
|
108
|
EXEC sp_xml_preparedocument @hdoc Output,@p_PL_APPOINT_CONTRACTOR_DT
|
109
|
DECLARE PlAppointContractorDT CURSOR FOR
|
110
|
SELECT *
|
111
|
FROM OPENXML(@hdoc, '/Root/PlAppointContractorDT', 2)
|
112
|
WITH
|
113
|
(
|
114
|
--REQ_ID VARCHAR(15),
|
115
|
HH_ID VARCHAR(15),
|
116
|
DESCRIPTION NVARCHAR(4000),
|
117
|
QUANTITY INT,
|
118
|
UNIT_PRICE DECIMAL(18,0),
|
119
|
VAT_AMT DECIMAL(18,2),
|
120
|
TOTAL_AMT DECIMAL(18,0),
|
121
|
TOTAL_AMT_ETM DECIMAL(18,0),
|
122
|
TR_REQ_DOC_DT_ID VARCHAR(15),
|
123
|
SUP_ID VARCHAR(15)
|
124
|
)
|
125
|
OPEN PlAppointContractorDT
|
126
|
|
127
|
DECLARE
|
128
|
--@d_REQ_ID VARCHAR(15),
|
129
|
@d_HH_ID VARCHAR(15),
|
130
|
@d_DESCRIPTION NVARCHAR(4000),
|
131
|
@d_QUANTITY INT,
|
132
|
@d_UNIT_PRICE DECIMAL(18,2),
|
133
|
@d_VAT_AMT DECIMAL(18,2),
|
134
|
@d_TOTAL_AMT DECIMAL(18,0),
|
135
|
@d_TOTAL_AMT_ETM DECIMAL(18,0),
|
136
|
@d_TR_REQ_DOC_DT_ID VARCHAR(15),
|
137
|
@d_SUP_ID VARCHAR(15)
|
138
|
|
139
|
FETCH NEXT FROM PlAppointContractorDT INTO
|
140
|
--@d_REQ_ID,
|
141
|
@d_HH_ID,
|
142
|
@d_DESCRIPTION,
|
143
|
@d_QUANTITY,
|
144
|
@d_UNIT_PRICE,
|
145
|
@d_VAT_AMT,
|
146
|
@d_TOTAL_AMT,
|
147
|
@d_TOTAL_AMT_ETM,
|
148
|
@d_TR_REQ_DOC_DT_ID,
|
149
|
@d_SUP_ID
|
150
|
|
151
|
WHILE @@FETCH_STATUS = 0
|
152
|
BEGIN
|
153
|
DECLARE @d_REQ_DT_ID VARCHAR(15)
|
154
|
EXEC SYS_CodeMasters_Gen 'PL_APPOINT_CONTRACTOR_DT', @d_REQ_DT_ID out
|
155
|
IF @d_REQ_DT_ID='' OR @d_REQ_DT_ID IS NULL GOTO ABORT
|
156
|
PRINT 'PASS GEN ID DT'
|
157
|
|
158
|
INSERT INTO PL_APPOINT_CONTRACTOR_DT
|
159
|
(REQ_DT_ID, REQ_ID, HH_ID, DESCRIPTION, QUANTITY, UNIT_PRICE, VAT_AMT,
|
160
|
TOTAL_AMT, TOTAL_AMT_ETM, TR_REQ_DOC_DT_ID, SUP_ID)
|
161
|
VALUES
|
162
|
(@d_REQ_DT_ID, @p_REQ_ID, @d_HH_ID, @d_DESCRIPTION, @d_QUANTITY, @d_UNIT_PRICE,
|
163
|
@d_VAT_AMT, @d_TOTAL_AMT, @d_TOTAL_AMT_ETM, @d_TR_REQ_DOC_DT_ID, @d_SUP_ID)
|
164
|
|
165
|
IF @@Error <> 0 GOTO ABORT
|
166
|
|
167
|
FETCH NEXT FROM PlAppointContractorDT INTO
|
168
|
--@d_REQ_ID,
|
169
|
@d_HH_ID,
|
170
|
@d_DESCRIPTION,
|
171
|
@d_QUANTITY,
|
172
|
@d_UNIT_PRICE,
|
173
|
@d_VAT_AMT,
|
174
|
@d_TOTAL_AMT,
|
175
|
@d_TOTAL_AMT_ETM,
|
176
|
@d_TR_REQ_DOC_DT_ID,
|
177
|
@d_SUP_ID
|
178
|
END
|
179
|
PRINT 'PASS INSERT DT'
|
180
|
|
181
|
CLOSE PlAppointContractorDT
|
182
|
DEALLOCATE PlAppointContractorDT
|
183
|
|
184
|
DECLARE @p_MESSAGE NVARCHAR(MAX)
|
185
|
--------tờ trình xin chi phí---------
|
186
|
IF(@p_TYPE_PL = 'TTCP')
|
187
|
BEGIN
|
188
|
SET @p_MESSAGE = N'Cập nhật tờ trình xin chi phí thành công'
|
189
|
END
|
190
|
--------tờ trình chỉ định thầu---------
|
191
|
ELSE
|
192
|
BEGIN
|
193
|
SET @p_MESSAGE = N'Cập nhật tờ trình chỉ định thầu thành công'
|
194
|
END
|
195
|
|
196
|
COMMIT TRANSACTION
|
197
|
SELECT '0' as Result, @p_REQ_ID REQ_ID,@p_REQ_CODE REQ_CODE,
|
198
|
N'Cập nhật tờ trình chỉ định thầu thành công' AS ErrorDesc
|
199
|
RETURN '0'
|
200
|
ABORT:
|
201
|
BEGIN
|
202
|
ROLLBACK TRANSACTION
|
203
|
SELECT '-1' AS Result ,'' REQ_ID, '' ErrorDesc
|
204
|
RETURN '-1'
|
205
|
End
|
206
|
--10062025_SECRETKEY
|
207
|
|