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
|