/// <summary> /// 卡片发行 /// </summary> /// <param name="info"></param> /// <param name="releaseMoney"></param> /// <param name="paymentMode"></param> /// <param name="memo"></param> /// <param name="keepParkingStatus">是否保持卡片运行状态</param> /// <returns></returns> public CommandResult CardRelease(CardInfo info, decimal releaseMoney, PaymentMode paymentMode, string memo, bool keepParkingStatus) { string op = OperatorInfo.CurrentOperator.OperatorName; string station = WorkStationInfo.CurrentStation.StationName; IUnitWork unitWork = ProviderFactory.Create <IUnitWork>(_RepoUri); //工作单元 CardReleaseRecord record = new CardReleaseRecord { CardID = info.CardID, OwnerName = info.OwnerName, CardCertificate = info.CardCertificate, CarPlate = info.CarPlate, ReleaseDateTime = DateTime.Now, CardType = info.CardType, ReleaseMoney = releaseMoney, PaymentMode = paymentMode, Balance = info.Balance, ActivationDate = info.ActivationDate, ValidDate = info.ValidDate, HolidayEnabled = info.HolidayEnabled, Deposit = info.Deposit, OperatorID = op, StationID = station, Memo = memo }; ProviderFactory.Create <ICardReleaseRecordProvider>(_RepoUri).Insert(record, unitWork); info.Release(); ICardProvider icp = ProviderFactory.Create <ICardProvider>(_RepoUri); CardInfo origial = icp.GetByID(info.CardID).QueryObject; if (origial == null) { icp.Insert(info, unitWork); } else if (keepParkingStatus) { UpdateCard(info, unitWork); } else { UpdateCardAll(info, unitWork); } return(unitWork.Commit()); }
/// <summary> /// 保存车单 /// </summary> /// <param name="sheetID"></param> /// <param name="employeeNum"></param> /// <param name="employeeName"></param> /// <param name="telPhone"></param> /// <param name="department"></param> /// <param name="carPlate"></param> /// <param name="status"></param> /// <param name="activationDate"></param> /// <param name="accessID"></param> /// <returns></returns> private InterfaceReturnCode _SaveSheet(string sheetID, string employeeNum, string employeeName, string telPhone, string department, string carPlate, byte status, string activationDate, string places, bool enableLimitation, double limitation) { DateTime activation; if (string.IsNullOrEmpty(employeeNum) || !DateTime.TryParse(activationDate, out activation)) { return(InterfaceReturnCode.ParameterError); } //卡片状态 = 1 Enabled 已发行, = 3 Disabled 禁用, byte cardStatus = (byte)(status == 0 ? 3 : 1); //先查询停车地点的权限组 int accessID = GetAccessID(places); if (accessID == -1) { accessID = 0; } ICardProvider provider = ProviderFactory.Create <ICardProvider>(AppConifg.Current.ParkingConnection); CardInfo info = null; QueryResult <CardInfo> find = provider.GetByID(employeeNum); if (find.Result == ResultCode.Successful || find.Result == ResultCode.NoRecord) { if (find.QueryObject != null) { info = find.QueryObject.Clone(); } } else { return(CreateInterfaceReturnCode(find.Result)); } if (info == null) { info = new CardInfo(); //以下为卡片默认设置 info.CardType = Ralid.Park.BusinessModel.Enum.CardType.MonthRentCard; info.CanRepeatOut = false; info.CanRepeatIn = false; info.HolidayEnabled = true; info.WithCount = true; info.OnlineHandleWhenOfflineMode = false; info.CanEnterWhenFull = true; info.EnableWhenExpired = true; info.ValidDate = new DateTime(2099, 12, 31); } info.CardID = employeeNum; info.OwnerName = employeeName; info.Telphone = telPhone; info.CardCertificate = department; info.CarPlate = carPlate; info.Status = (Ralid.Park.BusinessModel.Enum.CardStatus)cardStatus; info.ActivationDate = activation; info.EnableLimitation = enableLimitation; info.LimitationRemain = (decimal)limitation; info.AccessID = (byte)accessID; info.SheetID = sheetID; CommandResult result = null; if (find.QueryObject == null) { result = provider.Insert(info); } else { result = provider.Update(info, find.QueryObject); } return(CreateInterfaceReturnCode(result.Result)); }
/// <summary> /// 在数据库中增加一张卡片 /// </summary> public CommandResult AddCard(CardInfo info) { CommandResult result = _Provider.Insert(info); return(result); }
//保存卡片信息,如果存在则直接覆盖 public InterfaceReturnCode SaveCard(string cardID, short cardNum, byte carType, byte status, short index, int lastEntrance, string activationDate, DateTime validDate, decimal balance, decimal deposit, int discountHour, int options) { DateTime activation; if (!DateTime.TryParse(activationDate, out activation)) { return(InterfaceReturnCode.ParameterError); } //卡片状态 = 1 Enabled 已发行, = 3 Disabled 禁用 byte cardStatus = (byte)(status == 0 ? 3 : 1); ICardProvider provider = ProviderFactory.Create <ICardProvider>(AppConifg.Current.ParkingConnection); CardInfo info = null; QueryResult <CardInfo> find = provider.GetByID(cardID); if (find.Result == ResultCode.Successful || find.Result == ResultCode.NoRecord) { if (find.QueryObject != null) { info = find.QueryObject.Clone(); } } else { return(CreateInterfaceReturnCode(find.Result)); } if (info == null) { info = new CardInfo(); //以下为卡片默认设置 info.CardType = Ralid.Park.BusinessModel.Enum.CardType.MonthRentCard;//卡片类型定位月卡 info.CanRepeatOut = false; info.CanRepeatIn = false; info.HolidayEnabled = true; info.WithCount = true; info.OnlineHandleWhenOfflineMode = false; info.CanEnterWhenFull = true; info.EnableWhenExpired = true; info.ValidDate = new DateTime(2099, 12, 31); } info.CardID = cardID; info.CardNum = cardNum; info.AccessID = 0;//表示所有权限 info.CarType = carType; info.Index = index; info.ParkingStatus = ParkingStatus.Out; info.LastDateTime = DateTime.Now; info.LastEntrance = lastEntrance; info.Status = (Ralid.Park.BusinessModel.Enum.CardStatus)cardStatus; info.ActivationDate = activation; CommandResult result = null; if (find.QueryObject == null) { result = provider.Insert(info); } else { result = provider.Update(info, find.QueryObject); } return(CreateInterfaceReturnCode(result.Result)); }