Project

General

Profile

CAR_MASTER_Ins.txt

Luc Tran Van, 02/27/2023 05: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
    ELSE
117
    BEGIN
118
    	SET @l_BRANCH_ID = (SELECT tu.TLSUBBRID FROM TL_USER tu  WHERE tu.TLNANME = @p_MAKER_ID)
119
    END
120

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

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

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

    
168
BEGIN TRANSACTION
169
DECLARE @l_CAR_ID VARCHAR(15)
170
		EXEC SYS_CodeMasters_Gen 'CAR_MASTER', @l_CAR_ID out
171
		IF @l_CAR_ID='' OR @l_CAR_ID IS NULL GOTO ABORT
172
		-- TuNT 19/02/2020 them truong IS_LIQUID danh dau xe da bi thanh ly
173
		-- KHANGTH 11/06/2020 them truong MAINT_NOTE lich bao tri
174
		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]) 
175
		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)
176
		PRINT 'MASTER'
177
		IF @@Error <> 0 GOTO ABORT
178
		--KHAI BAO TOAN BO BIEN TRUOC KHI FETCH DATA
179
		DECLARE 
180
		@ASSET_ID	varchar(15)  ,
181
		@ASSET_NAME	nvarchar(200),
182
		@DEVICE_CODE VARCHAR(15),
183
		@ACCESSORY_NAME	nvarchar(1000) ,
184
		@UNIT_ID	varchar(15)  ,
185
		@QUANTITY	INT,
186
		@NOTES	nvarchar(1000) ,
187
		@CAR_ID	varchar(15),
188
		@INDEX_NUMBER	decimal(18) ,
189
		@CURE_DT	VARCHAR(20),
190
		@COUNT int,
191
		-- declare driver doanptt
192
		@CAR_DRIVER VARCHAR(15),
193
		@CAR_DRIVER_NAME	Nvarchar(200),
194
		@FROM_DT	varchar(20) ,
195
		@TO_DT	varchar(20),
196
		@IS_USED varchar(1)
197

    
198
		--INSERT ACCESSORY DETAIL
199
		FETCH NEXT FROM CarAccessory INTO  @ASSET_ID,@ASSET_NAME, @DEVICE_CODE,@ACCESSORY_NAME,@UNIT_ID,@QUANTITY,@NOTES
200
		WHILE @@FETCH_STATUS = 0
201
		BEGIN
202
			DECLARE @l_CAR_ACC_ID VARCHAR(15)
203
			EXEC SYS_CodeMasters_Gen 'CAR_ACCESSORY', @l_CAR_ACC_ID out
204
			IF @l_CAR_ACC_ID='' OR @l_CAR_ACC_ID IS NULL GOTO ABORT
205
			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])
206
			VALUES(@l_CAR_ACC_ID ,@l_CAR_ID ,@ASSET_ID ,@ASSET_NAME ,@DEVICE_CODE, @ACCESSORY_NAME ,@UNIT_ID ,
207
			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) )
208
			IF @@ERROR <> '' GOTO ABORT
209
			FETCH NEXT FROM CarAccessory INTO  @ASSET_ID,@ASSET_NAME,@DEVICE_CODE, @ACCESSORY_NAME,@UNIT_ID,@QUANTITY,@NOTES
210
		END
211

    
212

    
213
		PRINT 'CAR ACCES'
214
		--INSERT CAR CUR SCHEDULE
215
		FETCH NEXT FROM CarCureSch INTO  @ASSET_ID,@ASSET_NAME,@INDEX_NUMBER,@CURE_DT,@COUNT,@NOTES
216
		WHILE @@FETCH_STATUS = 0
217
		BEGIN
218
			DECLARE @l_CAR_CU_SCH_ID VARCHAR(15)
219
			EXEC SYS_CodeMasters_Gen 'CAR_CURE_SCH', @l_CAR_CU_SCH_ID out
220
			IF @l_CAR_CU_SCH_ID='' OR @l_CAR_CU_SCH_ID IS NULL GOTO ABORT
221
			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])
222
			VALUES(@l_CAR_CU_SCH_ID ,@l_CAR_ID ,@ASSET_ID ,@ASSET_NAME ,@INDEX_NUMBER ,
223
			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) )
224
			IF @@ERROR <> '' GOTO ABORT
225
			FETCH NEXT FROM CarCureSch INTO  @ASSET_ID,@ASSET_NAME,@INDEX_NUMBER,@CURE_DT,@COUNT,@NOTES
226
		END
227

    
228
		--INSERT CAR DRIVER doanptt
229
		FETCH NEXT FROM CarDriver INTO  @CAR_DRIVER,@CAR_DRIVER_NAME,@FROM_DT,@TO_DT, @IS_USED, @NOTES
230
		WHILE @@FETCH_STATUS = 0
231
		BEGIN
232
			DECLARE @l_CAR_DRIVER_ID VARCHAR(15)
233
			EXEC SYS_CodeMasters_Gen 'CAR_DRIVER_DT', @l_CAR_DRIVER_ID out
234
			IF @l_CAR_DRIVER_ID='' OR @l_CAR_DRIVER_ID IS NULL GOTO ABORT
235
			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])
236
							   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,
237
							   @NOTES ,@p_RECORD_STATUS ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_CHECKER_ID ,CONVERT(DATETIME, @p_APPROVE_DT, 103) )
238
			IF @@ERROR <> '' GOTO ABORT
239
			FETCH NEXT FROM CarDriver INTO  @CAR_DRIVER,@CAR_DRIVER_NAME,@FROM_DT,@TO_DT, @IS_USED, @NOTES
240
		END
241

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