-- Stored Procedure /* SELECT * FROM ASS_MASTER SELECT * FROM ASS_MASTER WHERE A SELECT * FROM CAR_ACCESSORY WHERE ASSET_ID ='ASS000000000003' [CAR_MASTER_Ins] 'ASS000000000029','CT00003','','','','','','','','','','','','','',100,100,100,100,100,100, '','','','','','','','','', ' ASS000000000003 XE BMW MAN HINH 1 MOI MUA ', ' ASS000000000003 XE BMW 1 20/11/2013 1 MOI MUA ' */ ALTER PROCEDURE dbo.CAR_MASTER_Ins @p_ASSET_ID varchar(15) = NULL, @p_CAR_TYPE_ID varchar(15) = NULL, @p_MODEL nvarchar(100) = NULL, @p_N_PLATE varchar(20) = NULL, @p_PROCOUNTRY varchar(15) = NULL, @p_CAR_COLOR nvarchar(100) = NULL, @p_MACHINES_ID nvarchar(100) = NULL, @p_SLOPES_ID nvarchar(100) = NULL, @p_MANUFACTURER varchar(15) = NULL, @p_START_DT VARCHAR(20) = NULL, @p_OWNER nvarchar(100) = NULL, @p_ENGINE_TYPE nvarchar(100) = NULL, @p_ENGINE_NUMBER varchar(15) = NULL, @p_GEARBOX_TYPE varchar(15) = NULL, @p_FUELS_TYPE varchar(15) = NULL, @p_POWER_RATE decimal(18,2) = NULL, @p_VOLUME decimal(18,2) = NULL, @p_TIRE_SIZE varchar(100) = NULL, @p_LENGTH decimal(18) = NULL, @p_WIDTH decimal(18) = NULL, @p_HEIGHT decimal(18) = NULL, @p_BRANCH_ID varchar(15) = NULL, @p_EMPLOYEE_ID varchar(15) = NULL, @p_PURPOSE varchar(50)=NULL, @p_NOTES nvarchar(1000) = NULL, @p_RECORD_STATUS varchar(1) = NULL, @p_AUTH_STATUS varchar(1) = NULL, @p_MAKER_ID varchar(15) = NULL, @p_CREATE_DT VARCHAR(20) = NULL, @p_CHECKER_ID varchar(15) = NULL, @p_APPROVE_DT VARCHAR(20) = NULL, @p_MANUFACTURE_YEAR VARCHAR(4) = NULL, @p_IS_SPECIAL VARCHAR(1)=NULL, @p_CAR_ACCESSORY XML = NULL, @p_CAR_CURE_SCH XML = NULL, @p_CAR_DRIVER XML = NULL,--doanptt them luoi danh sach tai xe -- KHANGTH - 080620, BO SUNG COLMN NEXT_MAT_NUMBER -- So km tiep theo @p_NEXT_MAT_NUMBER DECIMAL(18,0) = NULL, -- Nội dung bảo trì @p_MAINT_NOTE NVARCHAR(1000) = NULL, @p_EMP_NAME NVARCHAR(250) = NULL --//------------------------------------------------- AS DECLARE @ERRORSYS VARCHAR(20) DECLARE @l_BRANCH_ID VARCHAR(20) IF(@p_ASSET_ID IS NOT NULL OR @p_ASSET_ID <>'') BEGIN --kiem tra ma tai san IF( NOT EXISTS ( SELECT * FROM ASS_MASTER A WHERE A.ASSET_ID = @p_ASSET_ID )) BEGIN SET @ERRORSYS = 'ASS-99999' END ELSE BEGIN IF(EXISTS ( SELECT * FROM ASS_MASTER A WHERE A.ASSET_ID = @p_ASSET_ID )) --LAY THONG TIN DON VI SU DUNG TAI SAN SET @l_BRANCH_ID = (SELECT BRANCH_ID FROM ASS_MASTER A WHERE A.ASSET_ID = @p_ASSET_ID) END --kiem tra ma tai san da cap phat cho xe chua IF( EXISTS ( SELECT * FROM CAR_MASTER A WHERE A.ASSET_ID = @p_ASSET_ID )) BEGIN SET @ERRORSYS = 'CAR-99997' END --kiem tra ma so xe co ton tai chua IF( EXISTS ( SELECT * FROM CAR_MASTER A WHERE A.N_PLATE = @p_N_PLATE ) ) BEGIN SET @ERRORSYS = 'CAR-99999' END IF( @ERRORSYS <> '' ) BEGIN SELECT ErrorCode Result, '' ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS RETURN '0' END END Declare @hdoc INT Exec sp_xml_preparedocument @hdoc Output,@p_CAR_ACCESSORY DECLARE CarAccessory CURSOR FOR SELECT * FROM OPENXML(@hDoc,'/Root/CarAccessory',2) WITH ( ASSET_ID varchar(15), ASSET_NAME nvarchar(200), DEVICE_CODE VARCHAR(15), ACCESSORY_NAME nvarchar(1000) , UNIT_ID varchar(15) , QUANTITY int , NOTES nvarchar(1000) ) OPEN CarAccessory Exec sp_xml_preparedocument @hdoc Output,@p_CAR_CURE_SCH DECLARE CarCureSch CURSOR FOR SELECT * FROM OPENXML(@hDoc,'/Root/CarCureSch',2) WITH ( ASSET_ID varchar(15), ASSET_NAME nvarchar(200) , INDEX_NUMBER decimal(18) , CURE_DT VARCHAR(20) , [COUNT] int, NOTES nvarchar(1000) ) OPEN CarCureSch Exec sp_xml_preparedocument @hdoc Output,@p_CAR_DRIVER --doanptt DECLARE CarDriver CURSOR FOR SELECT * FROM OPENXML(@hDoc,'/Root/CarDriver',2) WITH ( CAR_DRIVER VARCHAR(15), CAR_DRIVER_NAME Nvarchar(200), FROM_DT varchar(20), TO_DT varchar(20), IS_USED varchar(1), NOTES nvarchar(1000) ) OPEN CarDriver BEGIN TRANSACTION DECLARE @l_CAR_ID VARCHAR(15) EXEC SYS_CodeMasters_Gen 'CAR_MASTER', @l_CAR_ID out IF @l_CAR_ID='' OR @l_CAR_ID IS NULL GOTO ABORT -- TuNT 19/02/2020 them truong IS_LIQUID danh dau xe da bi thanh ly -- KHANGTH 11/06/2020 them truong MAINT_NOTE lich bao tri 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]) 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) PRINT 'MASTER' IF @@Error <> 0 GOTO ABORT --KHAI BAO TOAN BO BIEN TRUOC KHI FETCH DATA DECLARE @ASSET_ID varchar(15) , @ASSET_NAME nvarchar(200), @DEVICE_CODE VARCHAR(15), @ACCESSORY_NAME nvarchar(1000) , @UNIT_ID varchar(15) , @QUANTITY INT, @NOTES nvarchar(1000) , @CAR_ID varchar(15), @INDEX_NUMBER decimal(18) , @CURE_DT VARCHAR(20), @COUNT int, -- declare driver doanptt @CAR_DRIVER VARCHAR(15), @CAR_DRIVER_NAME Nvarchar(200), @FROM_DT varchar(20) , @TO_DT varchar(20), @IS_USED varchar(1) --INSERT ACCESSORY DETAIL FETCH NEXT FROM CarAccessory INTO @ASSET_ID,@ASSET_NAME, @DEVICE_CODE,@ACCESSORY_NAME,@UNIT_ID,@QUANTITY,@NOTES WHILE @@FETCH_STATUS = 0 BEGIN DECLARE @l_CAR_ACC_ID VARCHAR(15) EXEC SYS_CodeMasters_Gen 'CAR_ACCESSORY', @l_CAR_ACC_ID out IF @l_CAR_ACC_ID='' OR @l_CAR_ACC_ID IS NULL GOTO ABORT 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]) VALUES(@l_CAR_ACC_ID ,@l_CAR_ID ,@ASSET_ID ,@ASSET_NAME ,@DEVICE_CODE, @ACCESSORY_NAME ,@UNIT_ID , 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) ) IF @@ERROR <> '' GOTO ABORT FETCH NEXT FROM CarAccessory INTO @ASSET_ID,@ASSET_NAME,@DEVICE_CODE, @ACCESSORY_NAME,@UNIT_ID,@QUANTITY,@NOTES END PRINT 'CAR ACCES' --INSERT CAR CUR SCHEDULE FETCH NEXT FROM CarCureSch INTO @ASSET_ID,@ASSET_NAME,@INDEX_NUMBER,@CURE_DT,@COUNT,@NOTES WHILE @@FETCH_STATUS = 0 BEGIN DECLARE @l_CAR_CU_SCH_ID VARCHAR(15) EXEC SYS_CodeMasters_Gen 'CAR_CURE_SCH', @l_CAR_CU_SCH_ID out IF @l_CAR_CU_SCH_ID='' OR @l_CAR_CU_SCH_ID IS NULL GOTO ABORT 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]) VALUES(@l_CAR_CU_SCH_ID ,@l_CAR_ID ,@ASSET_ID ,@ASSET_NAME ,@INDEX_NUMBER , 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) ) IF @@ERROR <> '' GOTO ABORT FETCH NEXT FROM CarCureSch INTO @ASSET_ID,@ASSET_NAME,@INDEX_NUMBER,@CURE_DT,@COUNT,@NOTES END --INSERT CAR DRIVER doanptt FETCH NEXT FROM CarDriver INTO @CAR_DRIVER,@CAR_DRIVER_NAME,@FROM_DT,@TO_DT, @IS_USED, @NOTES WHILE @@FETCH_STATUS = 0 BEGIN DECLARE @l_CAR_DRIVER_ID VARCHAR(15) EXEC SYS_CodeMasters_Gen 'CAR_DRIVER_DT', @l_CAR_DRIVER_ID out IF @l_CAR_DRIVER_ID='' OR @l_CAR_DRIVER_ID IS NULL GOTO ABORT 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]) 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, @NOTES ,@p_RECORD_STATUS ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_CHECKER_ID ,CONVERT(DATETIME, @p_APPROVE_DT, 103) ) IF @@ERROR <> '' GOTO ABORT FETCH NEXT FROM CarDriver INTO @CAR_DRIVER,@CAR_DRIVER_NAME,@FROM_DT,@TO_DT, @IS_USED, @NOTES END CLOSE CarAccessory DEALLOCATE CarAccessory CLOSE CarCureSch DEALLOCATE CarCureSch CLOSE CarDriver DEALLOCATE CarDriver COMMIT TRANSACTION SELECT '0' as Result, @l_CAR_ID ID, '' ErrorDesc RETURN '0' ABORT: BEGIN CLOSE CarAccessory DEALLOCATE CarAccessory CLOSE CarCureSch DEALLOCATE CarCureSch CLOSE CarDriver DEALLOCATE CarDriver ROLLBACK TRANSACTION SELECT '-1' as Result, '' ID, '' ErrorDesc RETURN '-1' End