Project

General

Profile

11231232321.txt

Luc Tran Van, 06/10/2025 03:31 PM

 
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