public CustomJsonResult SubmitFollowInsure(int operater, OrderToCarInsure orderToCarInsure) { CustomJsonResult result = new CustomJsonResult(); try { using (TransactionScope ts = new TransactionScope()) { var l_orderToCarInsure = CurrentDb.OrderToCarInsure.Where(m => m.Id == orderToCarInsure.Id).FirstOrDefault(); l_orderToCarInsure.ZJ1_ImgUrl = orderToCarInsure.ZJ1_ImgUrl; l_orderToCarInsure.ZJ2_ImgUrl = orderToCarInsure.ZJ2_ImgUrl; l_orderToCarInsure.ZJ3_ImgUrl = orderToCarInsure.ZJ3_ImgUrl; l_orderToCarInsure.ZJ4_ImgUrl = orderToCarInsure.ZJ4_ImgUrl; l_orderToCarInsure.FollowStatus = (int)Enumeration.OrderToCarInsureFollowStatus.Submitted; l_orderToCarInsure.LastUpdateTime = this.DateTime; l_orderToCarInsure.Mender = operater; BizFactory.BizProcessesAudit.ChangeAuditDetails(Enumeration.OperateType.Submit, Enumeration.CarInsureOfferDealtStep.Fllow, l_orderToCarInsure.BizProcessesAuditId, operater, orderToCarInsure.ClientRequire, "商户再次提交投保订单", this.DateTime); BizFactory.BizProcessesAudit.ChangeCarInsureOfferDealtStatus(operater, l_orderToCarInsure.BizProcessesAuditId, Enumeration.CarInsureOfferDealtStatus.WaitOffer); CurrentDb.SaveChanges(); ts.Complete(); result = new CustomJsonResult(ResultType.Success, "提交成功"); } return result; } catch (Exception ex) { Log.Error("出错" + orderToCarInsure.Id, ex); return result; } }
public APIResponse SubmitFollowInsure(SubmitFollowInsureModel model) { OrderToCarInsure orderToCarInsure = new OrderToCarInsure(); orderToCarInsure.Id = model.OrderId; if (model.ImgData != null) { var key_ZJ1_Img = "ZJ1_Img"; if (model.ImgData.ContainsKey(key_ZJ1_Img)) { orderToCarInsure.ZJ1_ImgUrl = GetUploadImageUrl(model.ImgData[key_ZJ1_Img], "CarInsure"); } var key_ZJ2_Img = "ZJ2_Img"; if (model.ImgData.ContainsKey(key_ZJ2_Img)) { orderToCarInsure.ZJ2_ImgUrl = GetUploadImageUrl(model.ImgData[key_ZJ2_Img], "CarInsure"); } var key_ZJ3_Img = "ZJ3_Img"; if (model.ImgData.ContainsKey(key_ZJ3_Img)) { orderToCarInsure.ZJ3_ImgUrl = GetUploadImageUrl(model.ImgData[key_ZJ3_Img], "CarInsure"); } var key_ZJ4_Img = "ZJ4_Img"; if (model.ImgData.ContainsKey(key_ZJ4_Img)) { orderToCarInsure.ZJ4_ImgUrl = GetUploadImageUrl(model.ImgData[key_ZJ4_Img], "CarInsure"); } } IResult result = BizFactory.Order.SubmitFollowInsure(model.UserId, orderToCarInsure); return(new APIResponse(result)); }
public CustomJsonResult SubmitCarInsureOffer(int operater, Enumeration.OperateType operate, OrderToCarInsure orderToCarInsure, List <OrderToCarInsureOfferCompany> orderToCarInsureOfferCompany, BizProcessesAudit bizProcessesAudit) { CustomJsonResult result = new CustomJsonResult(); using (TransactionScope ts = new TransactionScope()) { var l_bizProcessesAudit = CurrentDb.BizProcessesAudit.Where(m => m.Id == bizProcessesAudit.CurrentDetails.BizProcessesAuditId && (m.Status == (int)Enumeration.CarInsureOfferDealtStatus.WaitOffer || m.Status == (int)Enumeration.CarInsureOfferDealtStatus.InOffer)).FirstOrDefault(); if (l_bizProcessesAudit == null) { return(new CustomJsonResult(ResultType.Success, "该订单已经处理完成")); } if (l_bizProcessesAudit.Auditor != null) { if (l_bizProcessesAudit.Auditor.Value != operater) { return(new CustomJsonResult(ResultType.Failure, "该订单其他用户正在处理")); } } var l_orderToCarInsure = CurrentDb.OrderToCarInsure.Where(m => m.Id == orderToCarInsure.Id).FirstOrDefault(); if (l_orderToCarInsure.Status == Enumeration.OrderStatus.Cancled) { return(new CustomJsonResult(ResultType.Failure, "该订单已经被取消")); } l_orderToCarInsure.CarOwner = orderToCarInsure.CarOwner; l_orderToCarInsure.CarOwnerIdNumber = orderToCarInsure.CarOwnerIdNumber; l_orderToCarInsure.CarOwnerAddress = orderToCarInsure.CarOwnerAddress; l_orderToCarInsure.CarPlateNo = orderToCarInsure.CarPlateNo; l_orderToCarInsure.CarRegisterDate = orderToCarInsure.CarRegisterDate; l_orderToCarInsure.CarIssueDate = orderToCarInsure.CarIssueDate; l_orderToCarInsure.CarSeat = orderToCarInsure.CarSeat; l_orderToCarInsure.CarUserCharacter = orderToCarInsure.CarUserCharacter; l_orderToCarInsure.CarVin = orderToCarInsure.CarVin; l_orderToCarInsure.CarVechicheType = orderToCarInsure.CarVechicheType; l_orderToCarInsure.CarModel = orderToCarInsure.CarModel; l_orderToCarInsure.CarEngineNo = orderToCarInsure.CarEngineNo; l_orderToCarInsure.PeriodStart = orderToCarInsure.PeriodStart; if (orderToCarInsure.PeriodStart != null) { l_orderToCarInsure.PeriodEnd = orderToCarInsure.PeriodStart.Value.AddYears(1); } l_orderToCarInsure.Remarks = orderToCarInsure.Remarks; l_orderToCarInsure.LastUpdateTime = this.DateTime; l_orderToCarInsure.Mender = operater; bizProcessesAudit.CurrentDetails.AuditComments = orderToCarInsure.Remarks; foreach (var m in orderToCarInsureOfferCompany) { var l_orderToCarInsureOfferCompany = CurrentDb.OrderToCarInsureOfferCompany.Where(q => q.Id == m.Id).FirstOrDefault(); if (l_orderToCarInsureOfferCompany != null) { l_orderToCarInsureOfferCompany.InsuranceOrderId = m.InsuranceOrderId; l_orderToCarInsureOfferCompany.InsureImgUrl = m.InsureImgUrl; l_orderToCarInsureOfferCompany.CommercialPrice = m.CommercialPrice; l_orderToCarInsureOfferCompany.CompulsoryPrice = m.CompulsoryPrice; l_orderToCarInsureOfferCompany.TravelTaxPrice = m.TravelTaxPrice; decimal insureTotalPrice = 0; if (l_orderToCarInsureOfferCompany.CommercialPrice != null) { insureTotalPrice += l_orderToCarInsureOfferCompany.CommercialPrice.Value; } if (l_orderToCarInsureOfferCompany.CompulsoryPrice != null) { insureTotalPrice += l_orderToCarInsureOfferCompany.CompulsoryPrice.Value; } if (l_orderToCarInsureOfferCompany.TravelTaxPrice != null) { insureTotalPrice += l_orderToCarInsureOfferCompany.TravelTaxPrice.Value; } l_orderToCarInsureOfferCompany.InsureTotalPrice = insureTotalPrice; l_orderToCarInsureOfferCompany.LastUpdateTime = this.DateTime; l_orderToCarInsureOfferCompany.Mender = operater; } } if (l_orderToCarInsure.ProductType == Enumeration.ProductType.InsureForCarForRenewal) { if (orderToCarInsureOfferCompany.Count == 1) { var insuranceOrderId = orderToCarInsureOfferCompany[0].InsuranceOrderId; var insureImgUrl = orderToCarInsureOfferCompany[0].InsureImgUrl; var commercialPrice = orderToCarInsureOfferCompany[0].CommercialPrice; var compulsoryPrice = orderToCarInsureOfferCompany[0].CompulsoryPrice; var travelTaxPrice = orderToCarInsureOfferCompany[0].TravelTaxPrice; decimal insureTotalPrice = 0; if (orderToCarInsureOfferCompany[0].CommercialPrice != null) { insureTotalPrice += orderToCarInsureOfferCompany[0].CommercialPrice.Value; } if (orderToCarInsureOfferCompany[0].CompulsoryPrice != null) { insureTotalPrice += orderToCarInsureOfferCompany[0].CompulsoryPrice.Value; } if (orderToCarInsureOfferCompany[0].TravelTaxPrice != null) { insureTotalPrice += orderToCarInsureOfferCompany[0].TravelTaxPrice.Value; } l_orderToCarInsure.InsuranceOrderId = insuranceOrderId; l_orderToCarInsure.InsureImgUrl = insureImgUrl; l_orderToCarInsure.CommercialPrice = commercialPrice == null ? 0 : commercialPrice.Value; l_orderToCarInsure.TravelTaxPrice = travelTaxPrice == null ? 0 : travelTaxPrice.Value; l_orderToCarInsure.CompulsoryPrice = compulsoryPrice == null ? 0 : compulsoryPrice.Value; l_orderToCarInsure.Price = insureTotalPrice; } } var creator = CurrentDb.Users.Where(m => m.Id == l_orderToCarInsure.Creator).FirstOrDefault(); switch (operate) { case Enumeration.OperateType.Save: result = new CustomJsonResult(ResultType.Success, "保存成功"); BizFactory.BizProcessesAudit.ChangeAuditDetailsAuditComments(operater, bizProcessesAudit.CurrentDetails.Id, bizProcessesAudit.CurrentDetails.AuditComments, null); break; case Enumeration.OperateType.Reject: l_orderToCarInsure.Status = Enumeration.OrderStatus.Follow; l_orderToCarInsure.FollowStatus = (int)Enumeration.OrderToCarInsureFollowStatus.WaitSubmit; BizFactory.BizProcessesAudit.ChangeAuditDetailsAuditComments(operater, bizProcessesAudit.CurrentDetails.Id, bizProcessesAudit.CurrentDetails.AuditComments, "后台人员转给商户跟进", this.DateTime); BizFactory.BizProcessesAudit.ChangeCarInsureOfferDealtStatus(operater, bizProcessesAudit.CurrentDetails.BizProcessesAuditId, Enumeration.CarInsureOfferDealtStatus.ClientFllow, "商户正在跟进"); BizFactory.Sms.SendCarInsureOfferFollow(creator.Id, creator.PhoneNumber, l_orderToCarInsure.Sn); result = new CustomJsonResult(ResultType.Success, "转给客户跟进成功"); break; case Enumeration.OperateType.Cancle: l_orderToCarInsure.CancleTime = this.DateTime; l_orderToCarInsure.EndOfferTime = this.DateTime; l_orderToCarInsure.Status = Enumeration.OrderStatus.Cancled; BizFactory.BizProcessesAudit.ChangeAuditDetails(operate, Enumeration.CarInsureOfferDealtStep.Offer, bizProcessesAudit.CurrentDetails.Id, operater, bizProcessesAudit.CurrentDetails.AuditComments, "后台人员撤销订单", this.DateTime); BizFactory.BizProcessesAudit.ChangeCarInsureOfferDealtStatus(operater, bizProcessesAudit.CurrentDetails.BizProcessesAuditId, Enumeration.CarInsureOfferDealtStatus.StaffCancle); result = new CustomJsonResult(ResultType.Success, "撤销成功"); break; case Enumeration.OperateType.Submit: l_orderToCarInsure.EndOfferTime = this.DateTime; l_orderToCarInsure.Status = Enumeration.OrderStatus.WaitPay; BizFactory.BizProcessesAudit.ChangeAuditDetails(operate, Enumeration.CarInsureOfferDealtStep.Offer, bizProcessesAudit.CurrentDetails.Id, operater, bizProcessesAudit.CurrentDetails.AuditComments, "后台人员完成报价", this.DateTime); BizFactory.BizProcessesAudit.ChangeCarInsureOfferDealtStatus(operater, bizProcessesAudit.CurrentDetails.BizProcessesAuditId, Enumeration.CarInsureOfferDealtStatus.Complete); BizFactory.Sms.SendCarInsureOfferComplete(creator.Id, creator.PhoneNumber, l_orderToCarInsure.Sn, l_orderToCarInsure.CarOwner, l_orderToCarInsure.CarPlateNo); result = new CustomJsonResult(ResultType.Success, "提交成功"); break; } CurrentDb.SaveChanges(); ts.Complete(); } return(result); }
public CustomJsonResult SubmitCarInsure(int operater, int userId, OrderToCarInsure orderToCarInsure, List <OrderToCarInsureOfferCompany> orderToCarInsureOfferCompany, List <OrderToCarInsureOfferKind> orderToCarInsureOfferKind) { CustomJsonResult result = new CustomJsonResult(); using (TransactionScope ts = new TransactionScope()) { OrderToCarInsure order = new OrderToCarInsure(); //用户信息 var clientUser = CurrentDb.SysClientUser.Where(m => m.Id == userId).FirstOrDefault(); //商户信息 var merchant = CurrentDb.Merchant.Where(m => m.Id == clientUser.MerchantId).FirstOrDefault(); //2011为车险投保产品,2012为车险续保产品 var product = CurrentDb.Product.Where(m => m.Type == orderToCarInsure.ProductType).FirstOrDefault(); order.MerchantId = merchant.Id; order.PosMachineId = orderToCarInsure.PosMachineId; order.UserId = merchant.UserId; order.ProductId = product.Id; order.ProductName = product.Name; order.ProductType = product.Type; order.ClientRequire = orderToCarInsure.ClientRequire; order.InsuranceCompanyId = orderToCarInsure.InsuranceCompanyId; order.InsuranceCompanyName = orderToCarInsure.InsuranceCompanyName; order.CarOwner = orderToCarInsure.CarOwner; order.CarOwnerIdNumber = orderToCarInsure.CarOwnerIdNumber; order.CarOwnerAddress = orderToCarInsure.CarOwnerAddress; order.CarModel = orderToCarInsure.CarModel; order.CarOwner = orderToCarInsure.CarOwner; order.CarPlateNo = orderToCarInsure.CarPlateNo; order.CarEngineNo = orderToCarInsure.CarEngineNo; order.CarVin = orderToCarInsure.CarVin; order.CarVechicheType = orderToCarInsure.CarVechicheType; order.CarRegisterDate = orderToCarInsure.CarRegisterDate; order.CarIssueDate = orderToCarInsure.CarIssueDate; order.InsurePlanId = orderToCarInsure.InsurePlanId; order.CZ_CL_XSZ_ImgUrl = orderToCarInsure.CZ_CL_XSZ_ImgUrl; order.CZ_SFZ_ImgUrl = orderToCarInsure.CZ_SFZ_ImgUrl; order.YCZ_CLDJZ_ImgUrl = orderToCarInsure.YCZ_CLDJZ_ImgUrl; order.CCSJM_WSZM_ImgUrl = orderToCarInsure.CCSJM_WSZM_ImgUrl; order.Status = Enumeration.OrderStatus.Submitted; order.StartOfferTime = this.DateTime; order.SubmitTime = this.DateTime; order.CreateTime = this.DateTime; order.Creator = operater; order.IsLastYearNewCar = orderToCarInsure.IsLastYearNewCar; order.IsSameLastYear = orderToCarInsure.IsSameLastYear; CurrentDb.OrderToCarInsure.Add(order); CurrentDb.SaveChanges(); order.Sn = Sn.Build(SnType.CarInsure, order.Id); if (orderToCarInsureOfferCompany != null) { foreach (var m in orderToCarInsureOfferCompany) { m.OrderId = order.Id; m.CreateTime = this.DateTime; m.Creator = operater; CurrentDb.OrderToCarInsureOfferCompany.Add(m); } } if (orderToCarInsureOfferKind != null) { foreach (var m in orderToCarInsureOfferKind) { m.OrderId = order.Id; m.CreateTime = this.DateTime; m.Creator = operater; CurrentDb.OrderToCarInsureOfferKind.Add(m); } } BizProcessesAudit bizProcessesAudit = BizFactory.BizProcessesAudit.Add(operater, Enumeration.BizProcessesAuditType.CarInsureOffer, order.Id, Enumeration.CarInsureOfferDealtStatus.WaitOffer, ""); BizFactory.BizProcessesAudit.ChangeAuditDetails(Enumeration.OperateType.Submit, Enumeration.CarInsureOfferDealtStep.Submit, bizProcessesAudit.Id, operater, orderToCarInsure.ClientRequire, "商户提交投保订单", this.DateTime); CurrentDb.SaveChanges(); ts.Complete(); result = new CustomJsonResult(ResultType.Success, "提交成功"); } return(result); }
public CustomJsonResult ReCarInsureOffer(int operater, int userId, int merchantId, int orderId) { CustomJsonResult result = new CustomJsonResult(); using (TransactionScope ts = new TransactionScope()) { var oldOrder = CurrentDb.OrderToCarInsure.Where(m => m.Id == orderId).FirstOrDefault(); var newOrder = new OrderToCarInsure(); newOrder.MerchantId = oldOrder.MerchantId; newOrder.PosMachineId = oldOrder.PosMachineId; newOrder.UserId = oldOrder.UserId; //newOrder.ProductName = oldOrder.ProductName; //newOrder.ProductType = oldOrder.ProductType; newOrder.ClientRequire = oldOrder.ClientRequire; newOrder.InsuranceCompanyId = oldOrder.InsuranceCompanyId; newOrder.InsuranceCompanyName = oldOrder.InsuranceCompanyName; newOrder.CarOwner = oldOrder.CarOwner; newOrder.CarOwnerIdNumber = oldOrder.CarOwnerIdNumber; newOrder.CarOwnerAddress = oldOrder.CarOwnerAddress; newOrder.CarModel = oldOrder.CarModel; newOrder.CarModelName = oldOrder.CarModelName; newOrder.CarOwner = oldOrder.CarOwner; newOrder.CarPlateNo = oldOrder.CarPlateNo; newOrder.CarEngineNo = oldOrder.CarEngineNo; newOrder.CarVin = oldOrder.CarVin; newOrder.CarVechicheType = oldOrder.CarVechicheType; newOrder.CarRegisterDate = oldOrder.CarRegisterDate; newOrder.CarIssueDate = oldOrder.CarIssueDate; newOrder.CarPurchasePrice = oldOrder.CarPurchasePrice; newOrder.InsurePlanId = oldOrder.InsurePlanId; newOrder.CZ_CL_XSZ_ImgUrl = oldOrder.CZ_CL_XSZ_ImgUrl; newOrder.CZ_SFZ_ImgUrl = oldOrder.CZ_SFZ_ImgUrl; newOrder.YCZ_CLDJZ_ImgUrl = oldOrder.YCZ_CLDJZ_ImgUrl; newOrder.CCSJM_WSZM_ImgUrl = oldOrder.CCSJM_WSZM_ImgUrl; newOrder.ZJ1_ImgUrl = oldOrder.ZJ1_ImgUrl; newOrder.ZJ2_ImgUrl = oldOrder.ZJ2_ImgUrl; newOrder.ZJ3_ImgUrl = oldOrder.ZJ3_ImgUrl; newOrder.ZJ4_ImgUrl = oldOrder.ZJ4_ImgUrl; newOrder.Status = Enumeration.OrderStatus.Submitted; newOrder.SubmitTime = this.DateTime; newOrder.CreateTime = this.DateTime; newOrder.Creator = operater; newOrder.IsLastYearNewCar = oldOrder.IsLastYearNewCar; newOrder.IsSameLastYear = oldOrder.IsSameLastYear; newOrder.AutoCancelByHour = 24; CurrentDb.OrderToCarInsure.Add(newOrder); CurrentDb.SaveChanges(); SnModel snModel = Sn.Build(SnType.OrderToCarInsure, newOrder.Id); newOrder.Sn = snModel.Sn; newOrder.TradeSnByWechat = snModel.TradeSnByWechat; newOrder.TradeSnByAlipay = snModel.TradeSnByAlipay; var oldOrderToCarInsureOfferCompany = CurrentDb.OrderToCarInsureOfferCompany.Where(m => m.OrderId == oldOrder.Id).ToList(); if (oldOrderToCarInsureOfferCompany != null) { foreach (var m in oldOrderToCarInsureOfferCompany) { var newOrderToCarInsureOfferCompany = new OrderToCarInsureOfferCompany(); newOrderToCarInsureOfferCompany.OrderId = newOrder.Id; newOrderToCarInsureOfferCompany.InsuranceCompanyId = m.InsuranceCompanyId; newOrderToCarInsureOfferCompany.InsuranceCompanyName = m.InsuranceCompanyName; newOrderToCarInsureOfferCompany.CreateTime = this.DateTime; newOrderToCarInsureOfferCompany.Creator = operater; CurrentDb.OrderToCarInsureOfferCompany.Add(newOrderToCarInsureOfferCompany); } } var oldKinds = CurrentDb.OrderToCarInsureOfferKind.Where(m => m.OrderId == oldOrder.Id).ToList(); if (oldKinds != null) { foreach (var m in oldKinds) { var newKinds = new OrderToCarInsureOfferKind(); newKinds.OrderId = newOrder.Id; newKinds.KindId = m.KindId; newKinds.KindValue = m.KindValue; newKinds.KindDetails = m.KindDetails; newKinds.IsWaiverDeductible = m.IsWaiverDeductible; newKinds.CreateTime = this.DateTime; newKinds.Creator = operater; CurrentDb.OrderToCarInsureOfferKind.Add(newKinds); } } BizProcessesAudit bizProcessesAudit = BizFactory.BizProcessesAudit.Add(operater, Enumeration.BizProcessesAuditType.OrderToCarInsure, newOrder.Id, Enumeration.CarInsureOfferDealtStatus.WaitOffer); BizFactory.BizProcessesAudit.ChangeAuditDetails(Enumeration.OperateType.Submit, Enumeration.CarInsureOfferDealtStep.Submit, bizProcessesAudit.Id, operater, newOrder.ClientRequire, "商户重新报价,等待报价", this.DateTime); CurrentDb.SaveChanges(); ts.Complete(); result = new CustomJsonResult(ResultType.Success, "重新报价"); } return result; }
public CustomJsonResult SubmitCarInsure(int operater, OrderToCarInsure orderToCarInsure, List<OrderToCarInsureOfferCompany> orderToCarInsureOfferCompany, List<OrderToCarInsureOfferKind> orderToCarInsureOfferKind) { CustomJsonResult result = new CustomJsonResult(); using (TransactionScope ts = new TransactionScope()) { OrderToCarInsure order = new OrderToCarInsure(); //用户信息 var clientUser = CurrentDb.SysClientUser.Where(m => m.Id == orderToCarInsure.UserId).FirstOrDefault(); //商户信息 var merchant = CurrentDb.Merchant.Where(m => m.Id == clientUser.MerchantId).FirstOrDefault(); order.MerchantId = merchant.Id; order.PosMachineId = orderToCarInsure.PosMachineId; order.UserId = merchant.UserId; order.SalesmanId = merchant.SalesmanId ?? 0; order.AgentId = merchant.AgentId ?? 0; order.Type = Enumeration.OrderType.InsureForCarForInsure; order.TypeName = Enumeration.OrderType.InsureForCarForInsure.GetCnName(); order.ClientRequire = orderToCarInsure.ClientRequire; order.InsuranceCompanyId = orderToCarInsure.InsuranceCompanyId; order.InsuranceCompanyName = orderToCarInsure.InsuranceCompanyName; order.CarOwner = orderToCarInsure.CarOwner; order.CarOwnerIdNumber = orderToCarInsure.CarOwnerIdNumber; order.CarOwnerAddress = orderToCarInsure.CarOwnerAddress; order.CarModel = orderToCarInsure.CarModel; order.CarOwner = orderToCarInsure.CarOwner; order.CarPlateNo = orderToCarInsure.CarPlateNo; order.CarEngineNo = orderToCarInsure.CarEngineNo; order.CarVin = orderToCarInsure.CarVin; order.CarVechicheType = orderToCarInsure.CarVechicheType; order.CarRegisterDate = orderToCarInsure.CarRegisterDate; order.CarIssueDate = orderToCarInsure.CarIssueDate; order.InsurePlanId = orderToCarInsure.InsurePlanId; order.CZ_CL_XSZ_ImgUrl = orderToCarInsure.CZ_CL_XSZ_ImgUrl; order.CZ_SFZ_ImgUrl = orderToCarInsure.CZ_SFZ_ImgUrl; order.YCZ_CLDJZ_ImgUrl = orderToCarInsure.YCZ_CLDJZ_ImgUrl; order.CCSJM_WSZM_ImgUrl = orderToCarInsure.CCSJM_WSZM_ImgUrl; order.Status = Enumeration.OrderStatus.Submitted; order.StartOfferTime = this.DateTime; order.SubmitTime = this.DateTime; order.CreateTime = this.DateTime; order.Creator = operater; order.IsLastYearNewCar = orderToCarInsure.IsLastYearNewCar; order.IsSameLastYear = orderToCarInsure.IsSameLastYear; order.AutoCancelByHour = 24; CurrentDb.OrderToCarInsure.Add(order); CurrentDb.SaveChanges(); SnModel snModel = Sn.Build(SnType.OrderToCarInsure, order.Id); order.Sn = snModel.Sn; order.TradeSnByWechat = snModel.TradeSnByWechat; order.TradeSnByAlipay = snModel.TradeSnByAlipay; if (orderToCarInsureOfferCompany != null) { foreach (var m in orderToCarInsureOfferCompany) { m.OrderId = order.Id; m.CreateTime = this.DateTime; m.Creator = operater; CurrentDb.OrderToCarInsureOfferCompany.Add(m); } } if (orderToCarInsureOfferKind != null) { foreach (var m in orderToCarInsureOfferKind) { m.OrderId = order.Id; m.CreateTime = this.DateTime; m.Creator = operater; CurrentDb.OrderToCarInsureOfferKind.Add(m); } } BizProcessesAudit bizProcessesAudit = BizFactory.BizProcessesAudit.Add(operater, Enumeration.BizProcessesAuditType.OrderToCarInsure, order.Id, Enumeration.CarInsureOfferDealtStatus.WaitOffer); BizFactory.BizProcessesAudit.ChangeAuditDetails(Enumeration.OperateType.Submit, Enumeration.CarInsureOfferDealtStep.Submit, bizProcessesAudit.Id, operater, orderToCarInsure.ClientRequire, "商户提交投保订单,等待报价", this.DateTime); order.BizProcessesAuditId = bizProcessesAudit.Id; CurrentDb.SaveChanges(); ts.Complete(); result = new CustomJsonResult(ResultType.Success, "提交成功"); } return result; }
public APIResponse SubmitInsure(SubmitInsureModel model) { if (IsSaleman(model.UserId)) { return(ResponseResult(ResultType.Failure, ResultCode.Failure, "该用户为业务员,不能提交订单")); } OrderToCarInsure orderToCarInsure = new OrderToCarInsure(); orderToCarInsure.UserId = model.UserId; orderToCarInsure.MerchantId = model.MerchantId; orderToCarInsure.PosMachineId = model.PosMachineId; orderToCarInsure.InsurePlanId = model.InsurePlanId; orderToCarInsure.Type = Enumeration.OrderType.InsureForCarForInsure; orderToCarInsure.TypeName = Enumeration.OrderType.InsureForCarForInsure.GetCnName(); if (model.ImgData != null) { var key_CZ_CL_XSZ_Img = "CZ_CL_XSZ_Img"; if (model.ImgData.ContainsKey(key_CZ_CL_XSZ_Img)) { orderToCarInsure.CZ_CL_XSZ_ImgUrl = GetUploadImageUrl(model.ImgData[key_CZ_CL_XSZ_Img], "CarInsure"); //DrivingLicenceVO drivingLicence = AnXin.GetDrivingLicenceByImageBase64(model.ImgData[key_CZ_CL_XSZ_Img].Data); //if (drivingLicence != null) //{ // orderToCarInsure.CarOwner = drivingLicence.owner; // orderToCarInsure.CarOwnerAddress = drivingLicence.address; // orderToCarInsure.CarModel = drivingLicence.model; // orderToCarInsure.CarPlateNo = drivingLicence.plateNum; // orderToCarInsure.CarEngineNo = drivingLicence.engineNo; // orderToCarInsure.CarVin = drivingLicence.vin; // //orderToCarInsure.CarVechicheType = drivingLicence.vehicleType; // orderToCarInsure.CarIssueDate = drivingLicence.issueDate; // //orderToCarInsure.CarUserCharacter = drivingLicence.userCharacter; // orderToCarInsure.CarRegisterDate = drivingLicence.registerDate; //} } var key_CZ_SFZ_Img = "CZ_SFZ_Img"; if (model.ImgData.ContainsKey(key_CZ_SFZ_Img)) { orderToCarInsure.CZ_SFZ_ImgUrl = GetUploadImageUrl(model.ImgData[key_CZ_SFZ_Img], "CarInsure"); //IdentityCardVO identityCardVO = AnXin.GetIdentityCardByImageBase64(model.ImgData[key_CZ_SFZ_Img].Data); //if (identityCardVO != null) //{ // orderToCarInsure.CarOwnerIdNumber = identityCardVO.idNumber; //} } var key_CCSJM_WSZM_Img = "CCSJM_WSZM_Img"; if (model.ImgData.ContainsKey(key_CCSJM_WSZM_Img)) { orderToCarInsure.CCSJM_WSZM_ImgUrl = GetUploadImageUrl(model.ImgData[key_CCSJM_WSZM_Img], "CarInsure"); } var key_YCZ_CLDJZ_Img = "YCZ_CLDJZ_Img"; if (model.ImgData.ContainsKey(key_YCZ_CLDJZ_Img)) { orderToCarInsure.YCZ_CLDJZ_ImgUrl = GetUploadImageUrl(model.ImgData[key_YCZ_CLDJZ_Img], "CarInsure"); } } List <OrderToCarInsureOfferCompany> orderToCarInsureOfferCompanys = new List <OrderToCarInsureOfferCompany>(); var insureOfferCompanys = CurrentDb.Company.ToList(); foreach (var m in model.InsuranceCompanyId) { var insureOfferCompany = insureOfferCompanys.Where(q => q.Id == m).FirstOrDefault(); OrderToCarInsureOfferCompany orderToCarInsureOfferCompany = new OrderToCarInsureOfferCompany(); orderToCarInsureOfferCompany.InsuranceCompanyId = insureOfferCompany.Id; orderToCarInsureOfferCompany.InsuranceCompanyName = insureOfferCompany.Name; orderToCarInsureOfferCompany.InsuranceCompanyImgUrl = insureOfferCompany.ImgUrl; orderToCarInsureOfferCompanys.Add(orderToCarInsureOfferCompany); } List <OrderToCarInsureOfferKind> orderToCarInsureOfferKinds = new List <OrderToCarInsureOfferKind>(); foreach (var m in model.InsureKind) { OrderToCarInsureOfferKind orderToCarInsureOfferKind = new OrderToCarInsureOfferKind(); orderToCarInsureOfferKind.KindId = m.Id; orderToCarInsureOfferKind.KindValue = m.Value; orderToCarInsureOfferKind.KindDetails = m.Details; orderToCarInsureOfferKind.IsWaiverDeductible = m.IsWaiverDeductible; orderToCarInsureOfferKinds.Add(orderToCarInsureOfferKind); } IResult result = BizFactory.Order.SubmitCarInsure(model.UserId, orderToCarInsure, orderToCarInsureOfferCompanys, orderToCarInsureOfferKinds); return(new APIResponse(result)); }
public static CustomJsonResult GetCarInsOffer(OrderToCarInsure order, List <OrderToCarInsureOfferCompany> offerCompany, List <OrderToCarInsureOfferKind> kinds) { CustomJsonResult result = new CustomJsonResult(); List <YdtInscarInquiryOffer> offerList = new List <YdtInscarInquiryOffer>(); order.RecipientAddress = "测试地址"; order.RecipientPhoneNumber = "13800138000"; var au = YdtUtils.GetToken(); YdtApi ydtApi = new YdtApi(); InscarAddbaseModel model = new InscarAddbaseModel(); model.auto = 1; //todo 新车怎么标识 switch (order.CarVechicheType) { case Enumeration.CarVechicheType.HC: model.carType = 3; break; default: model.carType = 1; break; } switch (order.CarUserCharacter) { case Enumeration.CarUserCharacter.JTZYQC: model.belong = 1; break; default: model.belong = 2; break; } #region 车辆信息 InsCarInfoModel carInfo = new InsCarInfoModel(); carInfo.licensePlateNo = order.CarPlateNo; carInfo.vin = order.CarVin; carInfo.engineNo = order.CarEngineNo; carInfo.modelCode = order.CarModel; carInfo.modelName = order.CarModelName; carInfo.firstRegisterDate = order.CarRegisterDate; // carInfo.displacement = ; // carInfo.marketYear = ; //switch (order.CarSeat) //{ // case Enumeration.CarSeat.S6: carInfo.ratedPassengerCapacity = order.CarSeat; // break; // case Enumeration.CarSeat.S10: // carInfo.ratedPassengerCapacity = 10; // break; // case Enumeration.CarSeat.S12: // carInfo.ratedPassengerCapacity = 12; // break; // case Enumeration.CarSeat.S30: // carInfo.ratedPassengerCapacity = 30; // break; // case Enumeration.CarSeat.S36: // carInfo.ratedPassengerCapacity = 36; // break; // default: // carInfo.ratedPassengerCapacity = 9; // break; //} carInfo.ratedPassengerCapacity = order.CarSeat; carInfo.replacementValue = order.CarPurchasePrice.Value; carInfo.licensePlateNo = order.CarPlateNo; //todo carInfo.replacementValue = 0; carInfo.chgownerType = "0"; model.car = carInfo; #endregion #region 被保人,投保人,车主 List <InsCustomers> customers = new List <InsCustomers>(); InsCustomers insured = new InsCustomers(); insured.insuredFlag = 1; insured.name = order.CarOwner; insured.certNo = order.CarOwnerIdNumber; insured.mobile = order.RecipientPhoneNumber; insured.address = order.RecipientAddress; YdtUpload ydtUpdate_SFZ = new YdtUpload(au.token, au.session, "1", order.CZ_SFZ_ImgUrl); var ydtUpdateResult_SFZ = ydtApi.DoPostFile(ydtUpdate_SFZ, Path.GetFileName(order.CZ_SFZ_ImgUrl)); if (ydtUpdateResult_SFZ.code != 0) { return(new CustomJsonResult(ResultType.Failure, ydtUpdateResult_SFZ.msg)); } insured.identityFacePic = ydtUpdateResult_SFZ.data.file.key; insured.identityBackPic = ydtUpdateResult_SFZ.data.file.key; InsCustomers holder = new InsCustomers(); holder.insuredFlag = 2; holder.name = insured.name; holder.certNo = insured.certNo; holder.mobile = insured.mobile; holder.address = insured.address; holder.identityFacePic = insured.identityFacePic; holder.identityBackPic = insured.identityBackPic; InsCustomers carOwner = new InsCustomers(); carOwner.insuredFlag = 3; carOwner.name = insured.name; carOwner.certNo = insured.certNo; carOwner.mobile = insured.mobile; carOwner.address = insured.address; carOwner.identityFacePic = insured.identityFacePic; carOwner.identityBackPic = insured.identityBackPic; customers.Add(insured); customers.Add(holder); customers.Add(carOwner); #endregion model.customers = customers; var ydtUpdate = new YdtUpload(au.token, au.session, "1", order.CZ_SFZ_ImgUrl); var ydtUpdateResult = ydtApi.DoPostFile(ydtUpdate, Path.GetFileName(order.CZ_SFZ_ImgUrl)); if (ydtUpdateResult.code != 0) { return(new CustomJsonResult(ResultType.Failure, ydtUpdateResult.msg)); } #region pic InsPicModel insPic = new InsPicModel(); insPic.licensePic = ydtUpdateResult.data.file.key; insPic.licenseOtherPic = ""; insPic.carCertPic = ""; insPic.carInvoicePic = ""; model.pic = insPic; #endregion YdtInscarAddbase ydtInscarAddbase = new YdtInscarAddbase(au.token, au.session, YdtPostDataType.Json, model); var ydtInscarCarResult = ydtApi.DoPost(ydtInscarAddbase); if (ydtInscarCarResult.code != 0) { return(new CustomJsonResult(ResultType.Failure, ydtInscarCarResult.msg)); } var insCarAdvicevalueModel = new InsCarAdvicevalueModel(); insCarAdvicevalueModel.startDate = order.PeriodStart.Value.ToString("yyyy-MM-dd"); insCarAdvicevalueModel.registDate = order.CarRegisterDate; insCarAdvicevalueModel.replacementValue = order.CarPurchasePrice.Value; var ydtInscarAdvicevalue = new YdtInscarAdvicevalue(au.token, au.session, YdtPostDataType.Json, insCarAdvicevalueModel); var ydtInscarAdvicevalueResult = ydtApi.DoPost(ydtInscarAdvicevalue); if (ydtInscarAdvicevalueResult.code != 0) { return(new CustomJsonResult(ResultType.Failure, ydtInscarAdvicevalueResult.msg)); } InsCarInquiryModel insCarInquiryModel = new InsCarInquiryModel(); insCarInquiryModel.auto = 1; insCarInquiryModel.orderSeq = ydtInscarCarResult.data.orderSeq; insCarInquiryModel.risk = YdtDataMap.GetRisk(kinds); if (insCarInquiryModel.risk == 2 || insCarInquiryModel.risk == 3) { insCarInquiryModel.ciStartDate = order.PeriodStart.Value.ToString("yyyy-MM-dd"); } if (insCarInquiryModel.risk == 1 || insCarInquiryModel.risk == 3) { insCarInquiryModel.biStartDate = order.PeriodStart.Value.ToString("yyyy-MM-dd"); } insCarInquiryModel.coverages = YdtDataMap.GetCoverages(kinds, ydtInscarAdvicevalueResult.data.actualPrice, order.CarSeat); foreach (var company in offerCompany) { var insCompany = YdtDataMap.GetCompanyCode(company.InsuranceCompanyId); insCarInquiryModel.companyCode = insCompany.YdtCode;//"006000"; YdtInscarInquiry ydtInscarInquiry = new YdtInscarInquiry(au.token, au.session, YdtPostDataType.Json, insCarInquiryModel); var ydtInscarInquiryResult = ydtApi.DoPost(ydtInscarInquiry); YdtInscarInquiryOffer offer = new YdtInscarInquiryOffer(); offer.UplinkInsCompanyId = company.InsuranceCompanyId; offer.YdtInsCompanyId = insCarInquiryModel.companyCode; offer.Inquiry = ydtInscarInquiryResult; if (ydtInscarInquiryResult.code == 0) { OfferImgModel offerImgModel = new OfferImgModel(); offerImgModel.Company = insCompany.PrintName; offerImgModel.OfferTime = DateTime.Now; offerImgModel.Offerer = ""; OfferImgCarInfo offerImgCarInfo = new OfferImgCarInfo(); offerImgCarInfo.CarOwner = order.CarOwner; offerImgCarInfo.CarPlateNo = order.CarPlateNo; offerImgCarInfo.CarEngineNo = order.CarEngineNo; offerImgCarInfo.CarVin = order.CarVin; offerImgCarInfo.CarModelName = order.CarModelName; offerImgModel.CarInfo = offerImgCarInfo; string postData = ""; if (offer.Inquiry != null) { if (offer.Inquiry.data != null) { if (offer.Inquiry.data.coverages != null) { var coverages = offer.Inquiry.data.coverages; foreach (var coverage in coverages) { OfferImgCoverage offerImgCoverage = new OfferImgCoverage(); offerImgCoverage.Name = coverage.name; offerImgCoverage.Discount = coverage.discount; offerImgCoverage.Premium = coverage.standardPremium; if (coverage.code == "006") { if (coverage.glassType != null) { if (coverage.glassType.Value == 1) { offerImgCoverage.Coverage = "国产"; } else { offerImgCoverage.Coverage = "进口"; } } } else if (coverage.name.IndexOf("不计免赔") > -1) { offerImgCoverage.Coverage = ""; } else { if (coverage.amount != null) { offerImgCoverage.Coverage = coverage.amount.Value.ToF2Price(); } } offerImgModel.CommercialCoverageInfo.Coverages.Add(offerImgCoverage); } offerImgModel.CommercialCoverageInfo.PeriodStart = order.PeriodStart; offerImgModel.CommercialCoverageInfo.PeriodEnd = order.PeriodEnd; } if (offer.Inquiry.data.inquirys != null) { var commercial = offer.Inquiry.data.inquirys.Where(m => m.risk == 1).FirstOrDefault(); if (commercial != null) { offerImgModel.CommercialCoverageInfo.SumPremium = commercial.standardPremium; } var compulsory = offer.Inquiry.data.inquirys.Where(m => m.risk == 2).FirstOrDefault(); if (compulsory != null) { offerImgModel.CompulsoryInfo.PeriodStart = order.PeriodStart; offerImgModel.CompulsoryInfo.PeriodEnd = order.PeriodEnd; offerImgModel.CompulsoryInfo.Premium = compulsory.standardPremium - compulsory.sumPayTax; offerImgModel.TravelTax = compulsory.sumPayTax; } } offerImgModel.SumPremium = offer.Inquiry.data.inquirys.Sum(m => m.standardPremium); } } postData = Newtonsoft.Json.JsonConvert.SerializeObject(offerImgModel); int height = 840; if (offer.Inquiry.data.coverages != null) { if (offer.Inquiry.data.coverages.Count > 5) { height = height + (offer.Inquiry.data.coverages.Count - 5) * 40; } } Bitmap m_Bitmap = WebSnapshotsHelper.GetWebSiteThumbnail("http://localhost:12060/App/CarInsureOffer/OfferImg", 1280, height, 1280, height, postData); //宽高根据要获取快照的网页决定 byte[] bytes = Bitmap2Byte(m_Bitmap); string fileExt = ".jpg"; UploadFileEntity entity = new UploadFileEntity(); entity.FileName = DateTime.Now.ToString("yyyyMMddHHmmss") + fileExt;//自定义文件名称,这里以当前时间为例 entity.FileData = bytes; entity.UploadFolder = "offerImg"; entity.GenerateSize = false; var rm = HttpClientOperate.Post <CustomJsonResult>(entity.UploadFolder, ConfigurationManager.AppSettings["custom:UploadServerUrl"], entity);//封装的POST提交方 if (rm.Result == ResultType.Success) { ImageUpload imageUpload = Newtonsoft.Json.JsonConvert.DeserializeObject <ImageUpload>(rm.Data.ToString()); offer.OfferImgUrl = imageUpload.OriginalPath; } } offerList.Add(offer); } result.Result = ResultType.Success; result.Code = ResultCode.Success; result.Data = offerList; return(result); }
public APIResponse SubmitInsure(SubmitInsureModel model) { //暂时不启用这段代码 //var disabledInsuranceCompany = CurrentDb.CarInsuranceCompany.Where(m => model.InsuranceCompanyId.Contains(m.InsuranceCompanyId) && m.Status != Enumeration.CarInsuranceCompanyStatus.Normal).ToList(); //if (disabledInsuranceCompany.Count > 0) //{ // string disabledInsuranceCompanyNames = string.Join(",", disabledInsuranceCompany.Select(m => m.InsuranceCompanyName).ToArray()); // return ResponseResult(ResultType.Failure, ResultCode.Failure, string.Format("{0}已经被停用", disabledInsuranceCompanyNames)); //} OrderToCarInsure orderToCarInsure = new OrderToCarInsure(); orderToCarInsure.MerchantId = model.MerchantId; orderToCarInsure.PosMachineId = model.PosMachineId; orderToCarInsure.InsurePlanId = model.InsurePlanId; orderToCarInsure.ProductType = model.Type; if (model.ImgData != null) { var key_CZ_CL_XSZ_Img = "CZ_CL_XSZ_Img"; if (model.ImgData.ContainsKey(key_CZ_CL_XSZ_Img)) { orderToCarInsure.CZ_CL_XSZ_ImgUrl = GetUploadImageUrl(model.ImgData[key_CZ_CL_XSZ_Img], "CarInsure"); DrivingLicenceVO drivingLicence = AnXin.GetDrivingLicenceByImageBase64(model.ImgData[key_CZ_CL_XSZ_Img].Data); if (drivingLicence != null) { orderToCarInsure.CarOwner = drivingLicence.owner; orderToCarInsure.CarOwnerAddress = drivingLicence.address; orderToCarInsure.CarModel = drivingLicence.model; orderToCarInsure.CarPlateNo = drivingLicence.plateNum; orderToCarInsure.CarEngineNo = drivingLicence.engineNo; orderToCarInsure.CarVin = drivingLicence.vin; orderToCarInsure.CarVechicheType = drivingLicence.vehicleType; orderToCarInsure.CarIssueDate = drivingLicence.issueDate; orderToCarInsure.CarUserCharacter = drivingLicence.userCharacter; orderToCarInsure.CarRegisterDate = drivingLicence.registerDate; } } var key_CZ_SFZ_Img = "CZ_SFZ_Img"; if (model.ImgData.ContainsKey(key_CZ_SFZ_Img)) { orderToCarInsure.CZ_SFZ_ImgUrl = GetUploadImageUrl(model.ImgData[key_CZ_SFZ_Img], "CarInsure"); IdentityCardVO identityCardVO = AnXin.GetIdentityCardByImageBase64(model.ImgData[key_CZ_SFZ_Img].Data); if (identityCardVO != null) { orderToCarInsure.CarOwnerIdNumber = identityCardVO.idNumber; } } var key_CCSJM_WSZM_Img = "CCSJM_WSZM_Img"; if (model.ImgData.ContainsKey(key_CCSJM_WSZM_Img)) { orderToCarInsure.CCSJM_WSZM_ImgUrl = GetUploadImageUrl(model.ImgData[key_CCSJM_WSZM_Img], "CarInsure"); } var key_YCZ_CLDJZ_Img = "YCZ_CLDJZ_Img"; if (model.ImgData.ContainsKey(key_YCZ_CLDJZ_Img)) { orderToCarInsure.YCZ_CLDJZ_ImgUrl = GetUploadImageUrl(model.ImgData[key_YCZ_CLDJZ_Img], "CarInsure"); } } orderToCarInsure.ClientRequire = model.ClientRequire; if (model.RenewalId != 0) { var renewal = CurrentDb.OrderToCarInsure.Where(m => m.Id == model.RenewalId).FirstOrDefault(); if (renewal != null) { orderToCarInsure.CarOwner = renewal.CarOwner; orderToCarInsure.CarOwnerIdNumber = renewal.CarOwnerIdNumber; orderToCarInsure.CarOwnerAddress = renewal.CarOwnerAddress; orderToCarInsure.CarModel = renewal.CarModel; orderToCarInsure.CarPlateNo = renewal.CarPlateNo; orderToCarInsure.CarEngineNo = renewal.CarEngineNo; orderToCarInsure.CarVin = renewal.CarVin; orderToCarInsure.CarVechicheType = renewal.CarVechicheType; orderToCarInsure.CarIssueDate = renewal.CarIssueDate; orderToCarInsure.CarUserCharacter = renewal.CarUserCharacter; orderToCarInsure.CarRegisterDate = renewal.CarRegisterDate; orderToCarInsure.CarIssueDate = renewal.CarIssueDate; orderToCarInsure.CarSeat = renewal.CarSeat; } } List <OrderToCarInsureOfferCompany> orderToCarInsureOfferCompanys = new List <OrderToCarInsureOfferCompany>(); var insureOfferCompanys = CurrentDb.InsuranceCompany.ToList(); foreach (var m in model.InsuranceCompanyId) { var insureOfferCompany = insureOfferCompanys.Where(q => q.Id == m).FirstOrDefault(); OrderToCarInsureOfferCompany orderToCarInsureOfferCompany = new OrderToCarInsureOfferCompany(); orderToCarInsureOfferCompany.InsuranceCompanyId = insureOfferCompany.Id; orderToCarInsureOfferCompany.InsuranceCompanyName = insureOfferCompany.Name; orderToCarInsureOfferCompanys.Add(orderToCarInsureOfferCompany); } if (orderToCarInsure.ProductType == Enumeration.ProductType.InsureForCarForRenewal) { var insureOfferCompany = insureOfferCompanys.Where(q => q.Id == model.InsuranceCompanyId[0]).FirstOrDefault(); orderToCarInsure.InsuranceCompanyId = insureOfferCompany.Id; orderToCarInsure.InsuranceCompanyName = insureOfferCompany.Name; } List <OrderToCarInsureOfferKind> orderToCarInsureOfferKinds = new List <OrderToCarInsureOfferKind>(); foreach (var m in model.InsureKind) { OrderToCarInsureOfferKind orderToCarInsureOfferKind = new OrderToCarInsureOfferKind(); orderToCarInsureOfferKind.KindId = m.Id; orderToCarInsureOfferKind.KindValue = m.Value; orderToCarInsureOfferKind.KindDetails = m.Details; orderToCarInsureOfferKind.IsWaiverDeductible = m.IsWaiverDeductible; orderToCarInsureOfferKinds.Add(orderToCarInsureOfferKind); } IResult result = BizFactory.Order.SubmitCarInsure(model.UserId, model.UserId, orderToCarInsure, orderToCarInsureOfferCompanys, orderToCarInsureOfferKinds); return(new APIResponse(result)); }