Project

General

Profile

UPDATE_TR_REQ_DOC_XETGIA_DUOI_100M_Ins.txt

Luc Tran Van, 02/25/2023 02:23 PM

 
1

    
2
ALTER   PROCEDURE [dbo].[TR_REQ_DOC_XETGIA_DUOI_100M_Ins]
3
	--@p_REQ_CODE	varchar(15) NULL,
4
	@p_FR_DATE varchar(30)  NULL,
5
	@p_CONCLUSION nvarchar(MAX) NULL,
6
	@p_NOTES nvarchar(MAX) NULL,
7
	@p_RECORD_ID varchar(15) NULL,
8
	@p_REQ_DOC_ID varchar(15) NULL,
9
	--------BAODNQ 5/3/2022 : Truyền thêm tham số---------
10
	@p_RECORD_STATUS VARCHAR(1) = NULL,
11
	@p_AUTH_STATUS VARCHAR(1) = NULL,
12
	@p_MAKER_ID VARCHAR(15) = NULL,
13
	@p_CREATE_DT VARCHAR(20) = NULL,
14
	@p_CHECKER_ID VARCHAR(15) = NULL,
15
	@p_APPROVE_DT VARCHAR(20) = NULL,
16
	@p_ABOUT NVARCHAR(4000) = NULL,
17
	@p_WIN_SUPPLIER NVARCHAR(1000) = NULL,
18
	@p_CURRENCY VARCHAR(15) = NULL,
19
	@p_TOTAL_SUPPLIERS INT = NULL,
20
	---------------
21
	@p_ADDNEW_DT xml
22
AS
23

    
24
BEGIN TRY		
25
	DECLARE @tr_ADDNEW_ID VARCHAR(15)
26
	EXEC SYS_CodeMasters_Gen 'TR_REQ_DOC_XETGIA_DUOI_100M', @tr_ADDNEW_ID out
27

    
28
	------------------BAODNQ 5/3/2022 Thêm tự động sinh mã REQ_CODE--------
29
	DECLARE @p_REQ_CODE VARCHAR(200)
30
	EXEC TR_REPORT_PRICE_CODE_GenKey 'TR_REPORT_PRICE', '', '', @p_REQ_CODE OUT
31

    
32
	-----------BAODNQ 5/3/2022 Thêm các cột vào bảng TR_REQ_DOC_XETGIA_DUOI_100M--------
33
	INSERT INTO TR_REQ_DOC_XETGIA_DUOI_100M ([RECORD_ID],[REQ_DOC_ID],[REQ_CODE],[FR_DATE],[CONCLUSION],
34
		[NOTES], [RECORD_STATUS],[AUTH_STATUS],[MAKER_ID],[CREATE_DT],[CHECKER_ID],[APPROVE_DT],
35
		[ABOUT], [WIN_SUPPLIER], [CURRENCY], [TOTAL_SUPPLIERS])
36
     VALUES (@tr_ADDNEW_ID,@p_REQ_DOC_ID,@p_REQ_CODE,CONVERT(DATETIME,@p_FR_DATE,103),@p_CONCLUSION,
37
		@p_NOTES, @p_RECORD_STATUS, @p_AUTH_STATUS, @p_MAKER_ID,	
38
		--hieuhm 25/02/2023 fix việc nhập lùi ngày
39
		CONVERT(DATETIME,@p_FR_DATE,103),
40
		--CONVERT(DATETIME, @p_CREATE_DT, 103),
41
		@p_CHECKER_ID,
42
		CONVERT(DATETIME, @p_APPROVE_DT, 103), @p_ABOUT, @p_WIN_SUPPLIER, @p_CURRENCY, 
43
		@p_TOTAL_SUPPLIERS)
44

    
45
	DECLARE @hdoc int
46
	Exec sp_xml_preparedocument @hdoc Output, @p_ADDNEW_DT	
47
	DECLARE AddnewDT CURSOR FOR
48
	SELECT *
49
	FROM OPENXML(@hDoc,'/Root/ADDNEWDT',2)
50
	WITH 
51
	(
52
		RECORD_MASTER_ID	varchar(15),
53
		GOOD_NAME	nvarchar(250),
54
		HH_ID VARCHAR(15),
55
		TECH_SPECIFICATION	nvarchar(MAX),
56
		UNIT	nvarchar(100),
57
		QUANTITY	int,
58

    
59
		SUPPLIER_1	nvarchar(100),
60
		UNIT_PRICE_1	numeric(18, 2),
61
		TOTAL_AMT_1	numeric(18, 2),
62
		VAT_AMT_1 NUMERIC(18,2),
63
		TOTAL_AMT_AFTER_VAT_1 NUMERIC(18,2),
64

    
65
		SUPPLIER_2	nvarchar(100),
66
		UNIT_PRICE_2	numeric(18, 2),
67
		TOTAL_AMT_2	numeric(18, 2),
68
		VAT_AMT_2 NUMERIC(18,2),
69
		TOTAL_AMT_AFTER_VAT_2 NUMERIC(18,2),
70

    
71
		SUPPLIER_3	nvarchar(100),
72
		UNIT_PRICE_3	numeric(18, 2),
73
		TOTAL_AMT_3	numeric(18, 2),
74
		VAT_AMT_3 NUMERIC(18,2),
75
		TOTAL_AMT_AFTER_VAT_3 NUMERIC(18,2),
76

    
77
		SUPPLIER_4	nvarchar(100),
78
		UNIT_PRICE_4	numeric(18, 2),
79
		TOTAL_AMT_4	numeric(18, 2),
80
		VAT_AMT_4 NUMERIC(18,2),
81
		TOTAL_AMT_AFTER_VAT_4 NUMERIC(18,2),
82

    
83
		SUPPLIER_5	nvarchar(100),
84
		UNIT_PRICE_5	numeric(18, 2),
85
		TOTAL_AMT_5	numeric(18, 2),
86
		VAT_AMT_5 NUMERIC(18,2),
87
		TOTAL_AMT_AFTER_VAT_5 NUMERIC(18,2),
88

    
89
		NOTES	nvarchar(MAX),
90
		RECORD_DT_ID	varchar(15),
91
		TR_REQ_DOC_DT_ID VARCHAR(15),
92
		WIN_SUPPLIER_PRICE DECIMAL(18,2)
93
	)
94
	OPEN AddnewDT
95
	
96
	BEGIN TRANSACTION
97
	------------------------------------------------------------
98
	DECLARE @RECORD_MASTER_ID	varchar(15),
99
		@GOOD_NAME	nvarchar(250),
100
		@HH_ID VARCHAR(15),
101
		@TECH_SPECIFICATION	nvarchar(MAX),
102
		@UNIT	nvarchar(100),
103
		@QUANTITY	int,
104

    
105
		@SUPPLIER_1	nvarchar(100),
106
		@UNIT_PRICE_1	numeric(18, 2),
107
		@TOTAL_AMT_1	numeric(18, 2),
108
		@VAT_AMT_1 NUMERIC(18,2),
109
		@TOTAL_AMT_AFTER_VAT_1 NUMERIC(18,2),
110

    
111
		@SUPPLIER_2	nvarchar(100),
112
		@UNIT_PRICE_2	numeric(18, 2),
113
		@TOTAL_AMT_2	numeric(18, 2),
114
		@VAT_AMT_2 NUMERIC(18,2),
115
		@TOTAL_AMT_AFTER_VAT_2 NUMERIC(18,2),
116

    
117
		@SUPPLIER_3	nvarchar(100),
118
		@UNIT_PRICE_3	numeric(18, 2),
119
		@TOTAL_AMT_3	numeric(18, 2),
120
		@VAT_AMT_3 NUMERIC(18,2),
121
		@TOTAL_AMT_AFTER_VAT_3 NUMERIC(18,2),
122

    
123
		@SUPPLIER_4	NVARCHAR(100),
124
		@UNIT_PRICE_4	NUMERIC(18, 2),
125
		@TOTAL_AMT_4	NUMERIC(18, 2),
126
		@VAT_AMT_4 NUMERIC(18,2),
127
		@TOTAL_AMT_AFTER_VAT_4 NUMERIC(18,2),
128

    
129
		@SUPPLIER_5	NVARCHAR(100),
130
		@UNIT_PRICE_5	NUMERIC(18, 2),
131
		@TOTAL_AMT_5	NUMERIC(18, 2),
132
		@VAT_AMT_5 NUMERIC(18,2),
133
		@TOTAL_AMT_AFTER_VAT_5 NUMERIC(18,2),
134

    
135
		@NOTES	nvarchar(MAX),
136
		@RECORD_DT_ID	varchar(15),
137
		@TR_REQ_DOC_DT_ID VARCHAR(15),
138
		@WIN_SUPPLIER_PRICE DECIMAL(18,2)
139

    
140
	FETCH NEXT FROM AddnewDT INTO 
141
		@RECORD_MASTER_ID, 
142
		@GOOD_NAME,
143
		@HH_ID,
144
		@TECH_SPECIFICATION	, 
145
		@UNIT, 
146
		@QUANTITY, 
147

    
148
		@SUPPLIER_1, 
149
		@UNIT_PRICE_1,
150
		@TOTAL_AMT_1,
151
		@VAT_AMT_1,
152
		@TOTAL_AMT_AFTER_VAT_1,
153

    
154
		@SUPPLIER_2, 
155
		@UNIT_PRICE_2,
156
		@TOTAL_AMT_2,
157
		@VAT_AMT_2,
158
		@TOTAL_AMT_AFTER_VAT_2,
159

    
160
		@SUPPLIER_3, 
161
		@UNIT_PRICE_3,
162
		@TOTAL_AMT_3,
163
		@VAT_AMT_3,
164
		@TOTAL_AMT_AFTER_VAT_3,
165

    
166
		@SUPPLIER_4,
167
		@UNIT_PRICE_4,
168
		@TOTAL_AMT_4,
169
		@VAT_AMT_4,
170
		@TOTAL_AMT_AFTER_VAT_4,
171

    
172
		@SUPPLIER_5,
173
		@UNIT_PRICE_5,
174
		@TOTAL_AMT_5,
175
		@VAT_AMT_5,
176
		@TOTAL_AMT_AFTER_VAT_5,
177

    
178
		@NOTES, 
179
		@RECORD_DT_ID,
180
		@TR_REQ_DOC_DT_ID,
181
		@WIN_SUPPLIER_PRICE
182
	
183
	WHILE @@FETCH_STATUS = 0	
184
	BEGIN			
185
		DECLARE @tr_ADDNEWDT_ID VARCHAR(15)
186
		EXEC SYS_CodeMasters_Gen 'TR_REQ_DOC_XETGIA_DUOI_100M_DT', @tr_ADDNEWDT_ID out
187

    
188
		IF @tr_ADDNEWDT_ID='' OR @tr_ADDNEWDT_ID IS NULL GOTO ABORT		
189

    
190
		----------Tính giá trị thành tiền trước thuế----------
191
		SET @TOTAL_AMT_1 = @UNIT_PRICE_1 * @QUANTITY
192
		SET	@TOTAL_AMT_2 = @UNIT_PRICE_2 * @QUANTITY
193
		SET	@TOTAL_AMT_3 = @UNIT_PRICE_3 * @QUANTITY
194
		SET @TOTAL_AMT_4 = @UNIT_PRICE_4 * @QUANTITY
195
		SET @TOTAL_AMT_5 = @UNIT_PRICE_5 * @QUANTITY
196

    
197
		INSERT INTO TR_REQ_DOC_XETGIA_DUOI_100M_DT
198
			([RECORD_DT_ID],[RECORD_MASTER_ID],[GOOD_NAME],[TECH_SPECIFICATION],[UNIT],[QUANTITY],
199
			[SUPPLIER_1],[UNIT_PRICE_1], [TOTAL_AMT_1], [VAT_AMT_1], [TOTAL_AMT_AFTER_VAT_1],[SUPPLIER_2],
200
			[UNIT_PRICE_2],[TOTAL_AMT_2], [VAT_AMT_2],[TOTAL_AMT_AFTER_VAT_2],[SUPPLIER_3],[UNIT_PRICE_3], 
201
			[TOTAL_AMT_3], [VAT_AMT_3],[TOTAL_AMT_AFTER_VAT_3], [SUPPLIER_4],[UNIT_PRICE_4], [TOTAL_AMT_4],
202
			[VAT_AMT_4],[TOTAL_AMT_AFTER_VAT_4], [SUPPLIER_5],[UNIT_PRICE_5], [TOTAL_AMT_5], [VAT_AMT_5],
203
			[TOTAL_AMT_AFTER_VAT_5],[NOTES], TR_REQ_DOC_DT_ID, WIN_SUPPLIER_PRICE, HH_ID)
204
		VALUES
205
			(@tr_ADDNEWDT_ID, @tr_ADDNEW_ID, @GOOD_NAME, @TECH_SPECIFICATION, @UNIT, @QUANTITY, 
206
			@SUPPLIER_1, @UNIT_PRICE_1, @TOTAL_AMT_1, @VAT_AMT_1, @TOTAL_AMT_AFTER_VAT_1,@SUPPLIER_2, 
207
			@UNIT_PRICE_2, @TOTAL_AMT_2, @VAT_AMT_2, @TOTAL_AMT_AFTER_VAT_2, @SUPPLIER_3, @UNIT_PRICE_3, 
208
			@TOTAL_AMT_3, @VAT_AMT_3, @TOTAL_AMT_AFTER_VAT_3, @SUPPLIER_4, @UNIT_PRICE_4, @TOTAL_AMT_4, 
209
			@VAT_AMT_4,@TOTAL_AMT_AFTER_VAT_4, @SUPPLIER_5, @UNIT_PRICE_5, @TOTAL_AMT_5, @VAT_AMT_5,
210
			@TOTAL_AMT_AFTER_VAT_5, @NOTES, @TR_REQ_DOC_DT_ID, @WIN_SUPPLIER_PRICE, @HH_ID)
211

    
212
		FETCH NEXT FROM AddnewDT INTO 
213
			@RECORD_MASTER_ID, 
214
			@GOOD_NAME,
215
			@HH_ID,
216
			@TECH_SPECIFICATION, 
217
			@UNIT, 
218
			@QUANTITY,
219
			
220
			@SUPPLIER_1, 
221
			@UNIT_PRICE_1,
222
			@TOTAL_AMT_1,
223
			@VAT_AMT_1,
224
			@TOTAL_AMT_AFTER_VAT_1,
225

    
226
			@SUPPLIER_2, 
227
			@UNIT_PRICE_2,
228
			@TOTAL_AMT_2,
229
			@VAT_AMT_2,
230
			@TOTAL_AMT_AFTER_VAT_2,
231

    
232
			@SUPPLIER_3, 
233
			@UNIT_PRICE_3,
234
			@TOTAL_AMT_3,
235
			@VAT_AMT_3,
236
			@TOTAL_AMT_AFTER_VAT_3,
237

    
238
			@SUPPLIER_4,
239
			@UNIT_PRICE_4,
240
			@TOTAL_AMT_4,
241
			@VAT_AMT_4,
242
			@TOTAL_AMT_AFTER_VAT_4,
243

    
244
			@SUPPLIER_5,
245
			@UNIT_PRICE_5,
246
			@TOTAL_AMT_5,
247
			@VAT_AMT_5,
248
			@TOTAL_AMT_AFTER_VAT_5,
249

    
250
			@NOTES, 
251
			@RECORD_DT_ID,
252
			@TR_REQ_DOC_DT_ID,
253
			@WIN_SUPPLIER_PRICE
254
		
255
		PRINT @tr_ADDNEWDT_ID
256
	END
257
	CLOSE AddnewDT
258
	DEALLOCATE AddnewDT
259

    
260
COMMIT TRANSACTION
261
SELECT '0' as Result, @tr_ADDNEW_ID  ADDNEW_ID, @p_REQ_CODE REQ_CODE, 
262
						N'Thêm mới biên bản xét giá thành công' ErrorDesc
263
RETURN '0'
264

    
265
ABORT:
266
BEGIN
267
		ROLLBACK TRANSACTION
268
		
269
		SELECT '-1' as Result, '' ADDNEW_ID, @p_REQ_CODE REQ_CODE,'' ErrorDesc
270
		RETURN '-1'
271
End
272

    
273
END TRY
274

    
275
BEGIN CATCH
276
		ROLLBACK TRANSACTION
277
		
278
		SELECT '-1' as Result, '' ADDNEW_ID, @p_REQ_CODE REQ_CODE,ERROR_MESSAGE() ErrorDesc
279
		RETURN '-1'
280
END CATCH