public void Init(bool isRestFare = false) { if (CarOutModel != null) { CarOutModel.CarDiscount = _vehicleFlow.GetCarDiscount(CarOutModel.ParkId, CarOutModel.CarInRecord?.CarNumber); if (CarOutModel.CarInRecord.IsMonthTempIn) { SyncDoAction(() => txt_CarType.Text = "月租车(车位满以临时车入场)"); } else { var id = CarOutModel.CarInRecord.CarPort?.CarPortTypeId; var carPort = _repositoryCarTypes.GetAll().FirstOrDefault(x => x.Id == (id ?? 0)); if (isRestFare) { var outTime = DateTime.Now; if (carPort == null || carPort.Category == CarType.Month) { FareRule = _repositoryFareRule.GetAll().FirstOrDefault(x => x.CarTypeId == _parkBoxOptions.TempCarTypeId); FareRule.TimeRangeList = _repositoryRangeTime.GetAllIncluding(x => x.FareRule).Where(x => x.FareRuleId == FareRule.Id).ToList(); CarOutModel.Receivable = FareRule.CalculateFees(CarOutModel.CarInRecord.InTime, outTime, 0); } else { FareRule = _repositoryFareRule.GetAll().FirstOrDefault(x => x.CarTypeId == carPort.Id); FareRule.TimeRangeList = _repositoryRangeTime.GetAllIncluding(x => x.FareRule).Where(x => x.FareRuleId == FareRule.Id).ToList(); } if (CarOutModel.CarInRecord.IsMonthTempIn && CarOutModel.CarInRecord.TempConvertMonthTime.HasValue) { outTime = CarOutModel.CarInRecord.TempConvertMonthTime.Value; CarOutModel.Receivable = FareRule.CalculateFees(CarOutModel.CarInRecord.InTime, outTime, 0); } } if (carPort == null || carPort.Id == _parkBoxOptions.TempCarTypeId) { SyncDoAction(() => txt_CarType.Text = "临时车"); } else { SyncDoAction(() => txt_CarType.Text = carPort?.CustomName); } } } }