Project

General

Profile

CAR_MASTER_Ins.txt

Luc Tran Van, 02/27/2023 04:45 PM

 
1

    
2
-- Stored Procedure
3

    
4
/*
5
SELECT * FROM ASS_MASTER
6
SELECT * FROM ASS_MASTER WHERE A
7
SELECT * FROM CAR_ACCESSORY WHERE ASSET_ID ='ASS000000000003'
8
[CAR_MASTER_Ins] 'ASS000000000029','CT00003','','','','','','','','','','','','','',100,100,100,100,100,100,
9
'','','','','','','','','',
10
'
11
<Root xmlns="">
12
	<CarAccessory>
13
		<CAR_AC_ID></CAR_AC_ID>
14
		<ASSET_ID>ASS000000000003</ASSET_ID>
15
		<ASSET_NAME>XE BMW</ASSET_NAME>
16
		<ACCESSORY_NAME>MAN HINH</ACCESSORY_NAME>
17
		<QUANTITY>1</QUANTITY>
18
		<NOTES>MOI MUA</NOTES>
19
	</CarAccessory>
20
</Root>
21
',
22
'
23
<Root xmlns="">
24
	<CarCureSch>
25
		<CAR_CUR_ID></CAR_CUR_ID>
26
		<ASSET_ID>ASS000000000003</ASSET_ID>
27
		<ASSET_NAME>XE BMW </ASSET_NAME>		
28
		<INDEX_NUMBER>1</INDEX_NUMBER>
29
		<CURE_DT>20/11/2013</CURE_DT>
30
		<COUNT>1</COUNT>
31
		<NOTES>MOI MUA</NOTES>
32
	</CarCureSch>
33
</Root>
34
'
35
*/
36

    
37

    
38
ALTER PROCEDURE dbo.CAR_MASTER_Ins
39
@p_ASSET_ID	varchar(15)  = NULL,
40
@p_CAR_TYPE_ID	varchar(15)  = NULL,
41
@p_MODEL	nvarchar(100)  = NULL,
42
@p_N_PLATE	varchar(20)  = NULL,
43
@p_PROCOUNTRY	varchar(15)  = NULL,
44
@p_CAR_COLOR	nvarchar(100)  = NULL,
45
@p_MACHINES_ID	nvarchar(100)  = NULL,
46
@p_SLOPES_ID	nvarchar(100)  = NULL,
47
@p_MANUFACTURER	varchar(15)  = NULL,
48
@p_START_DT	VARCHAR(20) = NULL,
49
@p_OWNER	nvarchar(100)  = NULL,
50
@p_ENGINE_TYPE	nvarchar(100)  = NULL,
51
@p_ENGINE_NUMBER	varchar(15)  = NULL,
52
@p_GEARBOX_TYPE	varchar(15)  = NULL,
53
@p_FUELS_TYPE	varchar(15)  = NULL,
54
@p_POWER_RATE	decimal(18,2)  = NULL,
55
@p_VOLUME	decimal(18,2)  = NULL,
56
@p_TIRE_SIZE	varchar(100)  = NULL,
57
@p_LENGTH	decimal(18)  = NULL,
58
@p_WIDTH	decimal(18)  = NULL,
59
@p_HEIGHT	decimal(18)  = NULL,
60
@p_BRANCH_ID	varchar(15)  = NULL,
61
@p_EMPLOYEE_ID	varchar(15)  = NULL,
62
@p_PURPOSE varchar(50)=NULL,
63
@p_NOTES	nvarchar(1000)  = NULL,
64
@p_RECORD_STATUS	varchar(1)  = NULL,
65
@p_AUTH_STATUS	varchar(1)  = NULL,
66
@p_MAKER_ID	varchar(15)  = NULL,
67
@p_CREATE_DT	VARCHAR(20) = NULL,
68
@p_CHECKER_ID	varchar(15)  = NULL,
69
@p_APPROVE_DT	VARCHAR(20) = NULL,
70
@p_MANUFACTURE_YEAR	VARCHAR(4) = NULL,
71
@p_IS_SPECIAL VARCHAR(1)=NULL,
72
@p_CAR_ACCESSORY XML = NULL,
73
@p_CAR_CURE_SCH XML = NULL,
74
@p_CAR_DRIVER XML = NULL,--doanptt them luoi danh sach tai xe
75
-- KHANGTH - 080620, BO SUNG COLMN NEXT_MAT_NUMBER
76
-- So km tiep theo 
77
@p_NEXT_MAT_NUMBER DECIMAL(18,0) = NULL,
78
-- Nội dung bảo trì
79
@p_MAINT_NOTE NVARCHAR(1000) = NULL,
80
@p_EMP_NAME NVARCHAR(250) = NULL
81
--//-------------------------------------------------
82
AS
83

    
84
	DECLARE @ERRORSYS VARCHAR(20)
85
	DECLARE @l_BRANCH_ID VARCHAR(20)
86
    IF(@p_ASSET_ID IS NOT NULL OR @p_ASSET_ID <>'')
87
    BEGIN
88
    	--kiem tra ma tai san
89
    	IF( NOT EXISTS ( SELECT * FROM ASS_MASTER A WHERE A.ASSET_ID = @p_ASSET_ID ))
90
    	BEGIN
91
    		SET @ERRORSYS = 'ASS-99999'
92
    	END
93
    	ELSE
94
    	BEGIN IF(EXISTS ( SELECT * FROM ASS_MASTER A WHERE A.ASSET_ID = @p_ASSET_ID ))
95
    		--LAY THONG TIN DON VI SU DUNG TAI SAN
96
    		SET @l_BRANCH_ID = (SELECT BRANCH_ID FROM ASS_MASTER A WHERE A.ASSET_ID = @p_ASSET_ID)
97
    	END
98
    	--kiem tra ma tai san da cap phat cho xe chua
99
    	IF( EXISTS ( SELECT * FROM CAR_MASTER A WHERE A.ASSET_ID = @p_ASSET_ID ))
100
    	BEGIN
101
    		SET @ERRORSYS = 'CAR-99997'
102
    	END
103
    	--kiem tra ma so xe co ton tai chua
104
    	IF( EXISTS ( SELECT * FROM CAR_MASTER A WHERE A.N_PLATE = @p_N_PLATE ) )
105
    	BEGIN
106
    		SET @ERRORSYS = 'CAR-99999'
107
    	END
108
    
109
    
110
    	IF( @ERRORSYS <> '' )
111
    	BEGIN
112
    		SELECT ErrorCode Result, ''  ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
113
    		RETURN '0'
114
    	END
115
    END
116

    
117
	Declare @hdoc INT
118
	Exec sp_xml_preparedocument @hdoc Output,@p_CAR_ACCESSORY
119
	DECLARE CarAccessory CURSOR FOR
120
	SELECT *
121
	FROM OPENXML(@hDoc,'/Root/CarAccessory',2)
122
	WITH 
123
	(
124
		ASSET_ID	varchar(15),
125
		ASSET_NAME	nvarchar(200),
126
		DEVICE_CODE VARCHAR(15),
127
		ACCESSORY_NAME	nvarchar(1000)  ,
128
		UNIT_ID	varchar(15)  ,
129
		QUANTITY	int ,
130
		NOTES	nvarchar(1000)
131
	)
132
	OPEN CarAccessory
133

    
134
	Exec sp_xml_preparedocument @hdoc Output,@p_CAR_CURE_SCH
135
	DECLARE CarCureSch CURSOR FOR
136
	SELECT *
137
	FROM OPENXML(@hDoc,'/Root/CarCureSch',2)
138
	WITH 
139
	(
140
		ASSET_ID	varchar(15),
141
		ASSET_NAME	nvarchar(200) ,		
142
		INDEX_NUMBER	decimal(18) ,
143
		CURE_DT	VARCHAR(20) ,
144
		[COUNT]        int,
145
		NOTES	nvarchar(1000)  
146
	)
147
	OPEN CarCureSch
148

    
149
	Exec sp_xml_preparedocument @hdoc Output,@p_CAR_DRIVER --doanptt
150
	DECLARE CarDriver CURSOR FOR
151
	SELECT *
152
	FROM OPENXML(@hDoc,'/Root/CarDriver',2)
153
	WITH 
154
	(
155
		CAR_DRIVER VARCHAR(15),
156
		CAR_DRIVER_NAME	Nvarchar(200),
157
		FROM_DT	varchar(20),
158
		TO_DT	varchar(20),
159
		IS_USED varchar(1),
160
		NOTES	nvarchar(1000)  
161
	)
162
	OPEN CarDriver
163

    
164
BEGIN TRANSACTION
165
DECLARE @l_CAR_ID VARCHAR(15)
166
		EXEC SYS_CodeMasters_Gen 'CAR_MASTER', @l_CAR_ID out
167
		IF @l_CAR_ID='' OR @l_CAR_ID IS NULL GOTO ABORT
168
		-- TuNT 19/02/2020 them truong IS_LIQUID danh dau xe da bi thanh ly
169
		-- KHANGTH 11/06/2020 them truong MAINT_NOTE lich bao tri
170
		INSERT INTO CAR_MASTER([CAR_ID],[ASSET_ID],[CAR_TYPE_ID],[MODEL],[N_PLATE],[PROCOUNTRY],[CAR_COLOR],[MACHINES_ID],[SLOPES_ID],[MANUFACTURER],[START_DT],[OWNER],[ENGINE_TYPE],[ENGINE_NUMBER],[GEARBOX_TYPE],[FUELS_TYPE],[POWER_RATE],[VOLUME],[TIRE_SIZE],[LENGTH],[WIDTH],[HEIGHT],[BRANCH_ID],[EMPLOYEE_ID],[PURPOSE],[NOTES],[RECORD_STATUS],[AUTH_STATUS],[MAKER_ID],[CREATE_DT],[CHECKER_ID],[APPROVE_DT],[MANUFACTURE_YEAR],[IS_SPECIAL], [IS_LIQUID],[NEXT_MAT_NUMBER],[MAINT_NOTE], [EMP_NAME]) 
171
		VALUES(@l_CAR_ID ,@p_ASSET_ID ,@p_CAR_TYPE_ID ,@p_MODEL ,@p_N_PLATE ,@p_PROCOUNTRY ,@p_CAR_COLOR ,@p_MACHINES_ID ,@p_SLOPES_ID ,@p_MANUFACTURER ,CONVERT(DATETIME, @p_START_DT, 103) ,@p_OWNER ,@p_ENGINE_TYPE ,@p_ENGINE_NUMBER ,@p_GEARBOX_TYPE ,@p_FUELS_TYPE ,@p_POWER_RATE ,@p_VOLUME ,@p_TIRE_SIZE ,@p_LENGTH ,@p_WIDTH ,@p_HEIGHT ,@l_BRANCH_ID ,@p_EMPLOYEE_ID ,@p_PURPOSE,@p_NOTES ,@p_RECORD_STATUS ,@p_AUTH_STATUS ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_CHECKER_ID ,CONVERT(DATETIME, @p_APPROVE_DT, 103),@p_MANUFACTURE_YEAR,@p_IS_SPECIAL, '0',@p_NEXT_MAT_NUMBER,@p_MAINT_NOTE, @p_EMP_NAME)
172
		PRINT 'MASTER'
173
		IF @@Error <> 0 GOTO ABORT
174
		--KHAI BAO TOAN BO BIEN TRUOC KHI FETCH DATA
175
		DECLARE 
176
		@ASSET_ID	varchar(15)  ,
177
		@ASSET_NAME	nvarchar(200),
178
		@DEVICE_CODE VARCHAR(15),
179
		@ACCESSORY_NAME	nvarchar(1000) ,
180
		@UNIT_ID	varchar(15)  ,
181
		@QUANTITY	INT,
182
		@NOTES	nvarchar(1000) ,
183
		@CAR_ID	varchar(15),
184
		@INDEX_NUMBER	decimal(18) ,
185
		@CURE_DT	VARCHAR(20),
186
		@COUNT int,
187
		-- declare driver doanptt
188
		@CAR_DRIVER VARCHAR(15),
189
		@CAR_DRIVER_NAME	Nvarchar(200),
190
		@FROM_DT	varchar(20) ,
191
		@TO_DT	varchar(20),
192
		@IS_USED varchar(1)
193

    
194
		--INSERT ACCESSORY DETAIL
195
		FETCH NEXT FROM CarAccessory INTO  @ASSET_ID,@ASSET_NAME, @DEVICE_CODE,@ACCESSORY_NAME,@UNIT_ID,@QUANTITY,@NOTES
196
		WHILE @@FETCH_STATUS = 0
197
		BEGIN
198
			DECLARE @l_CAR_ACC_ID VARCHAR(15)
199
			EXEC SYS_CodeMasters_Gen 'CAR_ACCESSORY', @l_CAR_ACC_ID out
200
			IF @l_CAR_ACC_ID='' OR @l_CAR_ACC_ID IS NULL GOTO ABORT
201
			INSERT INTO CAR_ACCESSORY([CAR_ACC_ID],[CAR_ID],[ASSET_ID],[ASSET_NAME],[DEVICE_CODE], [ACCESSORY_NAME],[UNIT_ID],[QUANTITY],[NOTES],[RECORD_STATUS],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT])
202
			VALUES(@l_CAR_ACC_ID ,@l_CAR_ID ,@ASSET_ID ,@ASSET_NAME ,@DEVICE_CODE, @ACCESSORY_NAME ,@UNIT_ID ,
203
			CONVERT(INT,@QUANTITY) ,@NOTES ,@p_RECORD_STATUS ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_AUTH_STATUS ,@p_CHECKER_ID ,CONVERT(DATETIME, @p_APPROVE_DT, 103) )
204
			IF @@ERROR <> '' GOTO ABORT
205
			FETCH NEXT FROM CarAccessory INTO  @ASSET_ID,@ASSET_NAME,@DEVICE_CODE, @ACCESSORY_NAME,@UNIT_ID,@QUANTITY,@NOTES
206
		END
207

    
208

    
209
		PRINT 'CAR ACCES'
210
		--INSERT CAR CUR SCHEDULE
211
		FETCH NEXT FROM CarCureSch INTO  @ASSET_ID,@ASSET_NAME,@INDEX_NUMBER,@CURE_DT,@COUNT,@NOTES
212
		WHILE @@FETCH_STATUS = 0
213
		BEGIN
214
			DECLARE @l_CAR_CU_SCH_ID VARCHAR(15)
215
			EXEC SYS_CodeMasters_Gen 'CAR_CURE_SCH', @l_CAR_CU_SCH_ID out
216
			IF @l_CAR_CU_SCH_ID='' OR @l_CAR_CU_SCH_ID IS NULL GOTO ABORT
217
			INSERT INTO CAR_CURE_SCH([CAR_CU_SCH_ID],[CAR_ID],[ASSET_ID],[ASSET_NAME],[INDEX_NUMBER],[CURE_DT],[COUNT],[NOTES],[RECORD_STATUS],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT])
218
			VALUES(@l_CAR_CU_SCH_ID ,@l_CAR_ID ,@ASSET_ID ,@ASSET_NAME ,@INDEX_NUMBER ,
219
			CONVERT(DATETIME, @CURE_DT, 103) ,@COUNT,@NOTES ,@p_RECORD_STATUS ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_AUTH_STATUS ,@p_CHECKER_ID ,CONVERT(DATETIME, @p_APPROVE_DT, 103) )
220
			IF @@ERROR <> '' GOTO ABORT
221
			FETCH NEXT FROM CarCureSch INTO  @ASSET_ID,@ASSET_NAME,@INDEX_NUMBER,@CURE_DT,@COUNT,@NOTES
222
		END
223

    
224
		--INSERT CAR DRIVER doanptt
225
		FETCH NEXT FROM CarDriver INTO  @CAR_DRIVER,@CAR_DRIVER_NAME,@FROM_DT,@TO_DT, @IS_USED, @NOTES
226
		WHILE @@FETCH_STATUS = 0
227
		BEGIN
228
			DECLARE @l_CAR_DRIVER_ID VARCHAR(15)
229
			EXEC SYS_CodeMasters_Gen 'CAR_DRIVER_DT', @l_CAR_DRIVER_ID out
230
			IF @l_CAR_DRIVER_ID='' OR @l_CAR_DRIVER_ID IS NULL GOTO ABORT
231
			INSERT INTO CAR_DRIVER_DT([CAR_DRIVER_ID],[CAR_ID],[CAR_DRIVER],[CAR_DRIVER_NAME],[FROM_DT],[TO_DT],[IS_USED],[NOTES],[RECORD_STATUS],[CREATE_DT],[CHECKER_ID],[APPROVE_DT])
232
							   VALUES(@l_CAR_DRIVER_ID ,@l_CAR_ID ,@CAR_DRIVER ,@CAR_DRIVER_NAME ,CONVERT(DATETIME, @FROM_DT, 103) , CONVERT(DATETIME, @TO_DT, 103), @IS_USED,
233
							   @NOTES ,@p_RECORD_STATUS ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_CHECKER_ID ,CONVERT(DATETIME, @p_APPROVE_DT, 103) )
234
			IF @@ERROR <> '' GOTO ABORT
235
			FETCH NEXT FROM CarDriver INTO  @CAR_DRIVER,@CAR_DRIVER_NAME,@FROM_DT,@TO_DT, @IS_USED, @NOTES
236
		END
237

    
238
		CLOSE CarAccessory
239
		DEALLOCATE CarAccessory
240
		CLOSE CarCureSch
241
		DEALLOCATE CarCureSch
242
		CLOSE CarDriver
243
		DEALLOCATE CarDriver
244
COMMIT TRANSACTION
245
SELECT '0' as Result, @l_CAR_ID  ID, '' ErrorDesc
246
RETURN '0'
247
ABORT:
248
BEGIN
249
		CLOSE CarAccessory
250
		DEALLOCATE CarAccessory
251
		CLOSE CarCureSch
252
		DEALLOCATE CarCureSch
253
		CLOSE CarDriver
254
		DEALLOCATE CarDriver
255
		ROLLBACK TRANSACTION
256
		SELECT '-1' as Result, '' ID, '' ErrorDesc
257
		RETURN '-1'
258
End