示例#1
0
        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);
                    }
                }
            }
        }