/// <summary> /// Validate business of screen /// </summary> /// <param name="res"></param> /// <param name="doStopReason"></param> private void ValidateScreenBusiness_CTS100(ObjectResultData res, CTS100_doStopReason doStopReason) { try { CTS100_ScreenParameter sParam = GetScreenObject <CTS100_ScreenParameter>(); if (doStopReason.ChangeImplementDate > DateTime.Now.Date) { res.AddErrorMessage(MessageUtil.MODULE_CONTRACT, MessageUtil.MessageList.MSG3157, null, new string[] { "dpStopDate" }); return; } if (doStopReason.ChangeImplementDate <= (DateTime.Now.Date.AddYears(-1))) { res.AddErrorMessage(MessageUtil.MODULE_CONTRACT, MessageUtil.MessageList.MSG3158, null, new string[] { "dpStopDate" }); return; } if (doStopReason.ExpectedResumeDate < doStopReason.ChangeImplementDate) { res.AddErrorMessage(MessageUtil.MODULE_CONTRACT, MessageUtil.MessageList.MSG3182, null, new string[] { "dpOperationDate" }); return; } if (doStopReason.ChangeImplementDate < sParam.CTS100_Session.RegisterStopData.dtTbt_RentalContractBasic[0].LastChangeImplementDate) { res.AddErrorMessage(MessageUtil.MODULE_CONTRACT, MessageUtil.MessageList.MSG3185, null, new string[] { "dpStopDate" }); return; } //Validate stop fee for keeping contract if (doStopReason.ContractFeeOnStop > CommonValue.C_MAX_MONTHLY_FEE_INPUT) { res.AddErrorMessage(MessageUtil.MODULE_CONTRACT, MessageUtil.MessageList.MSG3287, new string[] { CommonValue.C_MAX_MONTHLY_FEE_INPUT.ToString("N2") }, new string[] { "txtStopFee" }); 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)); }
/// <summary> /// Validate business when click [Register] button in ‘Action button’ section /// </summary> /// <param name="doStopReason"></param> /// <returns></returns> public ActionResult CTS100_RegisterStopData(CTS100_doStopReason doStopReason) { ObjectResultData res = new ObjectResultData(); 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>(); //CheckMandatory res.MessageType = MessageModel.MESSAGE_TYPE.WARNING; if (ModelState.IsValid == false) { CTS100_doStopReason doStopReasonTemp = CommonUtil.CloneObject <CTS100_doStopReason, CTS100_doStopReason>(doStopReason); if (sParam.CTS100_Session.InitialData.HasStopFee == 0) { doStopReasonTemp.ContractFeeOnStopCurrencyType = SECOM_AJIS.Common.Util.ConstantValue.CurrencyUtil.C_CURRENCY_LOCAL; doStopReasonTemp.ContractFeeOnStop = 0; } ValidatorUtil.BuildErrorMessage(res, new object[] { doStopReasonTemp }, null, false); } if (res.IsError) { return(Json(res)); } //ValidateScreenBusiness ValidateScreenBusiness_CTS100(res, doStopReason); if (res.IsError) { return(Json(res)); } //ValidateDataBusiness ValidateBusiness_CTS100(res, sParam.CTS100_Session.InitialData.ContractCode); if (res.IsError) { return(Json(res)); } //ValidateBusinessForWarning //res.MessageType = MessageModel.MESSAGE_TYPE.INFORMATION; if (doStopReason.ExpectedResumeDate >= ((DateTime)doStopReason.ChangeImplementDate).AddMonths(6)) { res.MessageType = MessageModel.MESSAGE_TYPE.WARNING_DIALOG_LIST; res.AddErrorMessage(MessageUtil.MODULE_CONTRACT, MessageUtil.MessageList.MSG3159); //return Json(res); } res.ResultData = true; } catch (Exception ex) { res.AddErrorMessage(ex); } return(Json(res)); }