/// <summary> /// Check system suspending, user’s permission and user’s authority of screen /// </summary> /// <param name="sParam"></param> /// <returns></returns> public ActionResult CTS100_Authority(CTS100_ScreenParameter sParam) { ObjectResultData res = new ObjectResultData(); CommonUtil comUtil = new CommonUtil(); string strContractCodeLong = string.Empty; dsRentalContractData dsRentalContract = null; tbt_RentalContractBasic tbt_RentalContractBasicData = null; CTS100_doRentalContractBasicAuthority doRentalContractBasicAuthority; try { //CheckSystemStatus if (CheckIsSuspending(res) == true) { return(Json(res)); } /*--- HasAuthority ---*/ //Check screen permission if (CheckUserPermission(ScreenID.C_SCREEN_ID_CP13, FunctionID.C_FUNC_ID_OPERATE) == false) { res.AddErrorMessage(MessageUtil.MODULE_COMMON, MessageUtil.MessageList.MSG0053); return(Json(res)); } //if (String.IsNullOrEmpty(sParam.ContractCode)) // sParam.ContractCode = CommonUtil.dsTransData.dtCommonSearch.ContractCode; if (String.IsNullOrEmpty(sParam.ContractCode) && sParam.CommonSearch != null) { if (CommonUtil.IsNullOrEmpty(sParam.CommonSearch.ContractCode) == false) { sParam.ContractCode = sParam.CommonSearch.ContractCode; } } if (String.IsNullOrEmpty(sParam.ContractCode) == false) { //Check data authority strContractCodeLong = comUtil.ConvertContractCode(sParam.ContractCode, CommonUtil.CONVERT_TYPE.TO_LONG); dsRentalContract = CheckDataAuthority_CTS100(res, strContractCodeLong, true); if (res.IsError) { return(Json(res)); } tbt_RentalContractBasicData = dsRentalContract.dtTbt_RentalContractBasic[0]; doRentalContractBasicAuthority = CommonUtil.CloneObject <tbt_RentalContractBasic, CTS100_doRentalContractBasicAuthority>(tbt_RentalContractBasicData); ValidatorUtil.BuildErrorMessage(res, new object[] { doRentalContractBasicAuthority }, null, false); if (res.IsError) { return(Json(res)); } //ValidateDataBusiness ValidateBusiness_CTS100(res, strContractCodeLong, tbt_RentalContractBasicData); if (res.IsError) { return(Json(res)); } } /*-------------------------*/ //sParam = new CTS100_ScreenParameter(); sParam.CTS100_Session = new CTS100_RegisterStopTargetData(); sParam.CTS100_Session.InitialData = new CTS100_InitialRegisterStopTargetData(); sParam.CTS100_Session.InitialData.ContractCode = strContractCodeLong; sParam.CTS100_Session.RegisterStopData = dsRentalContract; } catch (Exception ex) { res.AddErrorMessage(ex); return(Json(res)); } //**** Change Session ****// //return InitialScreenEnvironment("CTS100", new object[] { strContractCodeLong, dsRentalContract }); return(InitialScreenEnvironment <CTS100_ScreenParameter>("CTS100", sParam, res)); }
/// <summary> /// Validate business of screen /// </summary> /// <param name="res"></param> /// <param name="strContractCodeLong"></param> /// <param name="tbt_RentalContractBasicData"></param> private void ValidateBusiness_CTS100(ObjectResultData res, string strContractCodeLong, tbt_RentalContractBasic tbt_RentalContractBasicData = null) { //res.MessageType = MessageModel.MESSAGE_TYPE.WARNING; CommonUtil comUtil = new CommonUtil(); IRentralContractHandler rentralHandler; dsRentalContractData dsRentalContract = null; IInstallationHandler installHandler; List <tbt_InstallationBasic> dtTbt_InstallationBasicData; try { /*--- Validate rental contract data ---*/ if (tbt_RentalContractBasicData == null) { dsRentalContract = CheckDataAuthority_CTS100(res, strContractCodeLong); if (res.IsError) { return; } tbt_RentalContractBasicData = dsRentalContract.dtTbt_RentalContractBasic[0]; } string strContractCodeShort = comUtil.ConvertContractCode(strContractCodeLong, CommonUtil.CONVERT_TYPE.TO_SHORT); if (tbt_RentalContractBasicData.ContractStatus == ContractStatus.C_CONTRACT_STATUS_BEF_START) { res.AddErrorMessage(MessageUtil.MODULE_CONTRACT, MessageUtil.MessageList.MSG3119, new string[] { strContractCodeShort }, new string[] { "txtSpecifyContractCode" }); return; } else if (tbt_RentalContractBasicData.ContractStatus == ContractStatus.C_CONTRACT_STATUS_STOPPING) { res.AddErrorMessage(MessageUtil.MODULE_CONTRACT, MessageUtil.MessageList.MSG3156, new string[] { strContractCodeShort }, new string[] { "txtSpecifyContractCode" }); return; } else if (tbt_RentalContractBasicData.ContractStatus == ContractStatus.C_CONTRACT_STATUS_CANCEL || tbt_RentalContractBasicData.ContractStatus == ContractStatus.C_CONTRACT_STATUS_END || tbt_RentalContractBasicData.ContractStatus == ContractStatus.C_CONTRACT_STATUS_FIXED_CANCEL) { res.AddErrorMessage(MessageUtil.MODULE_CONTRACT, MessageUtil.MessageList.MSG3105, new string[] { strContractCodeShort }, new string[] { "txtSpecifyContractCode" }); return; } rentralHandler = ServiceContainer.GetService <IRentralContractHandler>() as IRentralContractHandler; string strOCCout = rentralHandler.GetLastUnimplementedOCC(strContractCodeLong); if (String.IsNullOrEmpty(strOCCout) == false) { res.AddErrorMessage(MessageUtil.MODULE_CONTRACT, MessageUtil.MessageList.MSG3106, null, new string[] { "txtSpecifyContractCode" }); return; } /*----------------------------------------*/ /*--- Validate installation basic data ---*/ installHandler = ServiceContainer.GetService <IInstallationHandler>() as IInstallationHandler; dtTbt_InstallationBasicData = installHandler.GetTbt_InstallationBasicData(strContractCodeLong); if (dtTbt_InstallationBasicData != null && dtTbt_InstallationBasicData.Count > 0) { if (dtTbt_InstallationBasicData[0].InstallationType != RentalInstallationType.C_RENTAL_INSTALL_TYPE_REMOVE_ALL && dtTbt_InstallationBasicData[0].InstallationType != RentalInstallationType.C_RENTAL_INSTALL_TYPE_REMOVE_DURING_STOP_REMOVE_ALL && dtTbt_InstallationBasicData[0].InstallationType != RentalInstallationType.C_RENTAL_INSTALL_TYPE_REMOVE_DURING_STOP_PARTIAL) { string strContractCode = comUtil.ConvertContractCode(strContractCodeLong, CommonUtil.CONVERT_TYPE.TO_SHORT); res.AddErrorMessage(MessageUtil.MODULE_CONTRACT, MessageUtil.MessageList.MSG3103, new string[] { strContractCode }, new string[] { "txtSpecifyContractCode" }); return; } } /*----------------------------------------*/ } catch (Exception ex) { res.AddErrorMessage(ex); } }
/// <summary> /// Update data to database when click [Confirm] button in ‘Action button’ section /// </summary> /// <param name="doStopReason"></param> /// <returns></returns> public ActionResult CTS100_ConfirmRegisterCancelData(CTS100_doStopReason doStopReason) { ObjectResultData res = new ObjectResultData(); CTS100_RegisterStopTargetData registerStopData; IRentralContractHandler rentralHandler; dsRentalContractData dsRentalContract = null; IBillingInterfaceHandler billingHandler; IMaintenanceHandler maintenHandler; try { //CheckSystemStatus if (CheckIsSuspending(res) == true) { return(Json(res)); } //Check screen permission if (CheckUserPermission(ScreenID.C_SCREEN_ID_CP13, FunctionID.C_FUNC_ID_OPERATE) == false) { res.AddErrorMessage(MessageUtil.MODULE_COMMON, MessageUtil.MessageList.MSG0053); return(Json(res)); } CTS100_ScreenParameter sParam = GetScreenObject <CTS100_ScreenParameter>(); //ValidateScreenBusiness res.MessageType = MessageModel.MESSAGE_TYPE.WARNING; ValidateScreenBusiness_CTS100(res, doStopReason); if (res.IsError) { return(Json(res)); } //ValidateDataBusiness res.MessageType = MessageModel.MESSAGE_TYPE.WARNING; ValidateBusiness_CTS100(res, sParam.CTS100_Session.InitialData.ContractCode); if (res.IsError) { return(Json(res)); } res.MessageType = MessageModel.MESSAGE_TYPE.INFORMATION; using (TransactionScope scope = new TransactionScope()) { /*--- RegisterStopService ---*/ registerStopData = sParam.CTS100_Session; if (registerStopData.RegisterStopData != null) { dsRentalContract = new dsRentalContractData(); //Generate security occurrence rentralHandler = ServiceContainer.GetService <IRentralContractHandler>() as IRentralContractHandler; string strOCC = rentralHandler.GenerateContractOCC(registerStopData.InitialData.ContractCode, true); /*--- MapRentalContractData ---*/ //dtTbt_RentalContractBasic dsRentalContract.dtTbt_RentalContractBasic = new List <tbt_RentalContractBasic>(); tbt_RentalContractBasic rentalContractBasic = CommonUtil.CloneObject <tbt_RentalContractBasic, tbt_RentalContractBasic>(registerStopData.RegisterStopData.dtTbt_RentalContractBasic[0]); rentalContractBasic.LastOCC = strOCC; rentalContractBasic.LastChangeType = RentalChangeType.C_RENTAL_CHANGE_TYPE_STOP; rentalContractBasic.ContractStatus = ContractStatus.C_CONTRACT_STATUS_STOPPING; rentalContractBasic.LastChangeImplementDate = doStopReason.ChangeImplementDate; //DateTime.Now; rentalContractBasic.StopProcessDate = CommonUtil.dsTransData.dtOperationData.ProcessDateTime; dsRentalContract.dtTbt_RentalContractBasic.Add(rentalContractBasic); //dtTbt_RentalSecurityBasic dsRentalContract.dtTbt_RentalSecurityBasic = new List <tbt_RentalSecurityBasic>(); tbt_RentalSecurityBasic rentalSecurityBasicData = CommonUtil.CloneObject <tbt_RentalSecurityBasic, tbt_RentalSecurityBasic>(registerStopData.RegisterStopData.dtTbt_RentalSecurityBasic[0]); rentalSecurityBasicData.ContractCode = registerStopData.InitialData.ContractCode; rentalSecurityBasicData.OCC = strOCC; rentalSecurityBasicData.ChangeType = RentalChangeType.C_RENTAL_CHANGE_TYPE_STOP; //Add by Jutarat A. 03102012 rentalSecurityBasicData.QuotationTargetCode = null; rentalSecurityBasicData.QuotationAlphabet = null; rentalSecurityBasicData.SalesmanEmpNo1 = null; rentalSecurityBasicData.SalesmanEmpNo2 = null; rentalSecurityBasicData.SalesSupporterEmpNo = null; //End Add rentalSecurityBasicData.ChangeImplementDate = doStopReason.ChangeImplementDate; #region Contract Fee on Stop rentalSecurityBasicData.ContractFeeOnStopCurrencyType = doStopReason.ContractFeeOnStopCurrencyType; if (rentalSecurityBasicData.ContractFeeOnStopCurrencyType == SECOM_AJIS.Common.Util.ConstantValue.CurrencyUtil.C_CURRENCY_US) { rentalSecurityBasicData.ContractFeeOnStopUsd = doStopReason.ContractFeeOnStop; rentalSecurityBasicData.ContractFeeOnStop = null; } else { rentalSecurityBasicData.ContractFeeOnStopUsd = null; rentalSecurityBasicData.ContractFeeOnStop = doStopReason.ContractFeeOnStop; } #endregion rentalSecurityBasicData.NormalAdditionalDepositFee = null; //0; rentalSecurityBasicData.OrderAdditionalDepositFee = null; //0; rentalSecurityBasicData.DepositFeeBillingTiming = null; rentalSecurityBasicData.PlanCode = null; //Add by Jutarat A. 03102012 rentalSecurityBasicData.ApproveNo1 = doStopReason.ApproveNo1; rentalSecurityBasicData.ApproveNo2 = doStopReason.ApproveNo2; //Add by Jutarat A. 03102012 rentalSecurityBasicData.ApproveNo3 = null; rentalSecurityBasicData.ApproveNo4 = null; rentalSecurityBasicData.ApproveNo5 = null; //End Add rentalSecurityBasicData.AlmightyProgramEmpNo = null; rentalSecurityBasicData.CounterNo = 0; rentalSecurityBasicData.ChangeReasonType = null; rentalSecurityBasicData.ChangeNameReasonType = null; rentalSecurityBasicData.StopCancelReasonType = doStopReason.StopCancelReasonType; rentalSecurityBasicData.ContractDocPrintFlag = FlagType.C_FLAG_OFF; //Add by Jutarat A. 24072012 rentalSecurityBasicData.InstallationCompleteFlag = null; rentalSecurityBasicData.InstallationSlipNo = null; rentalSecurityBasicData.InstallationCompleteDate = null; rentalSecurityBasicData.InstallationCompleteEmpNo = null; rentalSecurityBasicData.InstallationTypeCode = null; //End Add //Add by Jutarat A. 03102012 rentalSecurityBasicData.NegotiationStaffEmpNo1 = null; rentalSecurityBasicData.NegotiationStaffEmpNo2 = null; //End Add rentalSecurityBasicData.ExpectedResumeDate = doStopReason.ExpectedResumeDate; rentalSecurityBasicData.NormalInstallFee = null; rentalSecurityBasicData.OrderInstallFee = null; rentalSecurityBasicData.OrderInstallFee_ApproveContract = null; rentalSecurityBasicData.OrderInstallFee_CompleteInstall = null; rentalSecurityBasicData.OrderInstallFee_StartService = null; //Add by Jutarat A. 03102012 rentalSecurityBasicData.DispatchTypeCode = null; rentalSecurityBasicData.PlannerEmpNo = null; rentalSecurityBasicData.PlanCheckerEmpNo = null; rentalSecurityBasicData.PlanCheckDate = null; rentalSecurityBasicData.PlanApproverEmpNo = null; rentalSecurityBasicData.PlanApproveDate = null; //End Add rentalSecurityBasicData.DocumentCode = null; rentalSecurityBasicData.DocAuditResult = null; rentalSecurityBasicData.CreateDate = CommonUtil.dsTransData.dtOperationData.ProcessDateTime; rentalSecurityBasicData.CreateBy = CommonUtil.dsTransData.dtUserData.EmpNo; rentalSecurityBasicData.UpdateDate = CommonUtil.dsTransData.dtOperationData.ProcessDateTime; rentalSecurityBasicData.UpdateBy = CommonUtil.dsTransData.dtUserData.EmpNo; dsRentalContract.dtTbt_RentalSecurityBasic.Add(rentalSecurityBasicData); //dtTbt_RentalBEDetails if (registerStopData.RegisterStopData.dtTbt_RentalBEDetails != null && registerStopData.RegisterStopData.dtTbt_RentalBEDetails.Count > 0) { dsRentalContract.dtTbt_RentalBEDetails = new List <tbt_RentalBEDetails>(); tbt_RentalBEDetails rentalBEDetailsData; foreach (tbt_RentalBEDetails data in registerStopData.RegisterStopData.dtTbt_RentalBEDetails) { rentalBEDetailsData = CommonUtil.CloneObject <tbt_RentalBEDetails, tbt_RentalBEDetails>(data); rentalBEDetailsData.OCC = strOCC; dsRentalContract.dtTbt_RentalBEDetails.Add(rentalBEDetailsData); } } //dtTbt_RentalInstrumentDetails if (registerStopData.RegisterStopData.dtTbt_RentalInstrumentDetails != null && registerStopData.RegisterStopData.dtTbt_RentalInstrumentDetails.Count > 0) { dsRentalContract.dtTbt_RentalInstrumentDetails = new List <tbt_RentalInstrumentDetails>(); tbt_RentalInstrumentDetails rentalInstrumentDetailsData; foreach (tbt_RentalInstrumentDetails data in registerStopData.RegisterStopData.dtTbt_RentalInstrumentDetails) { rentalInstrumentDetailsData = CommonUtil.CloneObject <tbt_RentalInstrumentDetails, tbt_RentalInstrumentDetails>(data); rentalInstrumentDetailsData.OCC = strOCC; dsRentalContract.dtTbt_RentalInstrumentDetails.Add(rentalInstrumentDetailsData); } } //dtTbt_RentalMaintenanceDetails if (registerStopData.RegisterStopData.dtTbt_RentalMaintenanceDetails != null && registerStopData.RegisterStopData.dtTbt_RentalMaintenanceDetails.Count > 0) { dsRentalContract.dtTbt_RentalMaintenanceDetails = new List <tbt_RentalMaintenanceDetails>(); tbt_RentalMaintenanceDetails rentalMaintenanceDetailsData; foreach (tbt_RentalMaintenanceDetails data in registerStopData.RegisterStopData.dtTbt_RentalMaintenanceDetails) { rentalMaintenanceDetailsData = CommonUtil.CloneObject <tbt_RentalMaintenanceDetails, tbt_RentalMaintenanceDetails>(data); rentalMaintenanceDetailsData.OCC = strOCC; dsRentalContract.dtTbt_RentalMaintenanceDetails.Add(rentalMaintenanceDetailsData); } } //dtTbt_RentalOperationType if (registerStopData.RegisterStopData.dtTbt_RentalOperationType != null && registerStopData.RegisterStopData.dtTbt_RentalOperationType.Count > 0) { dsRentalContract.dtTbt_RentalOperationType = new List <tbt_RentalOperationType>(); tbt_RentalOperationType rentalOperationTypeData; foreach (tbt_RentalOperationType data in registerStopData.RegisterStopData.dtTbt_RentalOperationType) { rentalOperationTypeData = CommonUtil.CloneObject <tbt_RentalOperationType, tbt_RentalOperationType>(data); rentalOperationTypeData.OCC = strOCC; dsRentalContract.dtTbt_RentalOperationType.Add(rentalOperationTypeData); } } //dtTbt_RentalSentryGuard if (registerStopData.RegisterStopData.dtTbt_RentalSentryGuard != null && registerStopData.RegisterStopData.dtTbt_RentalSentryGuard.Count > 0) { dsRentalContract.dtTbt_RentalSentryGuard = new List <tbt_RentalSentryGuard>(); tbt_RentalSentryGuard rentalSentryGuardData; foreach (tbt_RentalSentryGuard data in registerStopData.RegisterStopData.dtTbt_RentalSentryGuard) { rentalSentryGuardData = CommonUtil.CloneObject <tbt_RentalSentryGuard, tbt_RentalSentryGuard>(data); rentalSentryGuardData.OCC = strOCC; dsRentalContract.dtTbt_RentalSentryGuard.Add(rentalSentryGuardData); } } //dtTbt_RentalSentryGuardDetails if (registerStopData.RegisterStopData.dtTbt_RentalSentryGuardDetails != null && registerStopData.RegisterStopData.dtTbt_RentalSentryGuardDetails.Count > 0) { dsRentalContract.dtTbt_RentalSentryGuardDetails = new List <tbt_RentalSentryGuardDetails>(); tbt_RentalSentryGuardDetails rentalSentryGuardDetailsData; foreach (tbt_RentalSentryGuardDetails data in registerStopData.RegisterStopData.dtTbt_RentalSentryGuardDetails) { rentalSentryGuardDetailsData = CommonUtil.CloneObject <tbt_RentalSentryGuardDetails, tbt_RentalSentryGuardDetails>(data); rentalSentryGuardDetailsData.OCC = strOCC; dsRentalContract.dtTbt_RentalSentryGuardDetails.Add(rentalSentryGuardDetailsData); } } //dtTbt_RelationType if (registerStopData.RegisterStopData.dtTbt_RelationType != null && registerStopData.RegisterStopData.dtTbt_RelationType.Count > 0) { dsRentalContract.dtTbt_RelationType = new List <tbt_RelationType>(); tbt_RelationType relationTypeData; foreach (tbt_RelationType data in registerStopData.RegisterStopData.dtTbt_RelationType) { relationTypeData = CommonUtil.CloneObject <tbt_RelationType, tbt_RelationType>(data); relationTypeData.OCC = strOCC; dsRentalContract.dtTbt_RelationType.Add(relationTypeData); } } /*---------------------------*/ //Save stop service contract data //dsRentalContractData dsRentalContractResult = rentralHandler.InsertEntireContract(dsRentalContract); rentralHandler.InsertEntireContractForCTS010(dsRentalContract); #if !ROUND2 //Send billing data billingHandler = ServiceContainer.GetService <IBillingInterfaceHandler>() as IBillingInterfaceHandler; billingHandler.SendBilling_StopService( registerStopData.InitialData.ContractCode, doStopReason.ChangeImplementDate.Value, doStopReason.ContractFeeOnStop); #endif //Delete maintenance check-up schedule maintenHandler = ServiceContainer.GetService <IMaintenanceHandler>() as IMaintenanceHandler; List <tbt_MaintenanceCheckupDetails> tbt_MaintenanceCheckupDetailsList = maintenHandler.DeleteMACheckupDetail(registerStopData.InitialData.ContractCode, doStopReason.ChangeImplementDate.Value); List <tbt_MaintenanceCheckup> tbt_MaintenanceCheckupList = maintenHandler.DeleteMACheckup(registerStopData.InitialData.ContractCode, doStopReason.ChangeImplementDate.Value); } /*--------------------------*/ scope.Complete(); res.ResultData = new object[] { MessageUtil.GetMessage(MessageUtil.MODULE_COMMON, MessageUtil.MessageList.MSG0046), sParam.ContractCode }; } } catch (Exception ex) { res.AddErrorMessage(ex); } return(Json(res)); }