/// <summary> /// 读取到卡号处理 /// </summary> /// <param name="cardID">卡号</param> /// <param name="info">从卡片扇区数据中读取到的卡片信息</param> private void ReadCardIDHandler(string cardID, CardInfo info) { txtCardID.TextChanged -= txtCardID_TextChanged; this.txtCardID.Text = cardID; this.txtCardID.ReadOnly = true; string msg = string.Empty; CardInfo card = _CardBll.GetCardDetail(this.txtCardID.Text); if (card == null) { msg = CardInvalidDescripition.GetDescription(EventInvalidType.INV_UnRegister); } else if (AppSettings.CurrentSetting.EnableWriteCard && !card.OnlineHandleWhenOfflineMode && !CardDateResolver.Instance.CopyCardDataToCard(card, info)) { //写卡模式时,卡片信息从扇区数据中获取 msg = Resource1.FrmCardCenterCharge_CardDataErr; } else if (!ValidateCard(card, out msg)) { //卡片无效 } else if (TariffSetting.Current.GetTariff(card.CardType.ID, card.CarType) == null) { //msg = Resource1.FrmCardPaying_NotTempCard; msg = Resource1.FrmCardCenterCharge_NotPaymentCard; } else if (!card.IsInPark) { msg = CardInvalidDescripition.GetDescription(EventInvalidType.INV_StillOut); } else if (card.LastDateTime > DateTime.Now) { msg = CardInvalidDescripition.GetDescription(EventInvalidType.INV_WrongInTime); } else { _cardInfo = card; _ChargeRecord = CardPaymentInfoFactory.CreateCardPaymentRecord(_cardInfo, TariffSetting.Current, _cardInfo.CarType, DateTime.Now); ShowCardPaymentInfo(_ChargeRecord); } if (!string.IsNullOrEmpty(msg)) { if (_ChargeLed != null) { _ChargeLed.DisplayMsg(msg); } if (AppSettings.CurrentSetting.EnableTTS) { TTSSpeech.Instance.Speek(msg); } ClearInput(); this.txtCardID.Text = cardID; this.txtMemo.Text = msg; } txtCardID.TextChanged += txtCardID_TextChanged; }
private CardInfo _OriginalCard; //卡片原始信息 #region 私有方法 /// <summary> /// 读取到卡号处理 /// </summary> /// <param name="cardID">卡号</param> /// <param name="info">从卡片扇区数据中读取到的卡片信息</param> private void ReadCardIDHandler(string cardID, CardInfo info) { txtCardID.TextChanged -= txtCardID_TextChanged; this.txtCardID.Text = cardID; this.txtCardID.ReadOnly = true; string msg = string.Empty; bool offlineHandleCard = AppSettings.CurrentSetting.EnableWriteCard && info != null && !info.OnlineHandleWhenOfflineMode; CardBll bll = new CardBll(AppSettings.CurrentSetting.CurrentMasterConnect); //如果只是免费授权,卡片信息只要从主数据库获取就可以了 CardInfo card = bll.GetCardDetail(cardID); if (card == null && offlineHandleCard) { card = info.Clone(); } if (!WorkStationInfo.CurrentStation.CanFreeAuthorization(offlineHandleCard, out msg)) { //该工作站不能进行授权 } else if (card == null) { msg = CardInvalidDescripition.GetDescription(EventInvalidType.INV_UnRegister); } else if (AppSettings.CurrentSetting.EnableWriteCard && !card.OnlineHandleWhenOfflineMode && !CardDateResolver.Instance.CopyPaidDataToCard(card, info))//只复制缴费相关的信息,如果复制了所有的信息,会覆盖数据库内的卡片状态,如挂失,禁用等状态 //&& !CardDateResolver.Instance.CopyCardDataToCard(card, info)) { //写卡模式时,卡片信息从扇区数据中获取 msg = Resource1.FrmCardCenterCharge_CardDataErr; } else if (!ValidateCard(card, out msg)) { //卡片无效 } else { _cardInfo = card; _OriginalCard = card.Clone(); ShowCardInfo(_cardInfo); } if (!string.IsNullOrEmpty(msg)) { if (AppSettings.CurrentSetting.EnableTTS) { TTSSpeech.Instance.Speek(msg); } ClearInput(); this.txtCardID.Text = cardID; MessageBox.Show(msg); } txtCardID.TextChanged += txtCardID_TextChanged; }
/// <summary> /// 向控制板发送卡片无效 /// </summary> /// <param name="cardevent"></param> public override void CardInValid(string cardID, CardType cardType, byte hcardType, EntranceReader reader, EventInvalidType invalidType, object param) { if (AppSettings.CurrentSetting.Debug) { FileLog.Log(EntranceName, "发送卡片无效" + CardInvalidDescripition.GetDescription(invalidType)); } Packet p = _PacketCreater.CreateCardInvalidPacket(Address, invalidType, param); _CommComponent.SendPacket(p); }
/// <summary> /// 读取到卡号处理 /// </summary> /// <param name="cardID">卡号</param> /// <param name="info">从卡片扇区数据中读取到的卡片信息</param> private void ReadCardIDHandler(string cardID, CardInfo info) { this.txtCardID.Text = cardID; this.txtCardID.ReadOnly = true; string msg = string.Empty; CardInfo card = info; if (card == null) { msg = Resource1.FrmCardCenterCharge_CardDataErr; } else if (!ValidateCard(card, out msg)) { //卡片无效 } else if (TariffSetting.Current.GetTariff(card.CardType.ID, card.CarType) == null) { msg = Resource1.FrmCardCenterCharge_NotPaymentCard; } else if (!card.IsInPark) { msg = CardInvalidDescripition.GetDescription(EventInvalidType.INV_StillOut); } else if (card.LastDateTime > DateTime.Now) { msg = CardInvalidDescripition.GetDescription(EventInvalidType.INV_WrongInTime); } else { _cardInfo = card; _ChargeRecord = CardPaymentInfoFactory.CreateCardPaymentRecord(_cardInfo, TariffSetting.Current, _cardInfo.CarType, DateTime.Now); _ChargeRecord.CarPlate = _cardInfo.CarPlate; ShowCardPaymentInfo(_ChargeRecord); } if (!string.IsNullOrEmpty(msg)) { if (_ChargeLed != null) { _ChargeLed.DisplayMsg(msg); } if (AppSettings.CurrentSetting.EnableTTS) { TTSSpeech.Instance.Speek(msg); } ClearInput(); this.txtCardID.Text = cardID; this.txtMemo.Text = msg; this.eventList.InsertMessage(msg); } }
/// <summary> /// 检验卡片有效性 /// </summary> /// <param name="card"></param> /// <returns></returns> private bool ValidateCard(CardInfo card, out string msg) { if (card.Status == CardStatus.Recycled) //卡片已注销 { msg = Resource1.FrmCardCenterCharge_CardRecycled; return(false); } if (card.Status == CardStatus.Disabled) //卡片已锁定 { msg = Resource1.FrmCardCenterCharge_CardDisabled; return(false); } if (card.Status == CardStatus.Loss) //卡片已挂失 { msg = Resource1.FrmCardCenterCharge_CardLoss; return(false); } if (card.ActivationDate > DateTime.Now) //卡片未到生效期 { msg = Resource1.FrmCardCenterCharge_CardUnActivate; return(false); } if (card.ValidDate < DateTime.Today && card.CardType != Ralid.Park.BusinessModel.Enum.CardType.TempCard && !card.EnableWhenExpired) //卡片已过期 { msg = Resource1.FrmCardCenterCharge_CardExpired; return(false); } if (!card.IsTempCard) { msg = Resource1.FrmAPMRefund_NoTempCard; return(false); } if (!card.IsInPark) { msg = CardInvalidDescripition.GetDescription(EventInvalidType.INV_StillOut); return(false); } msg = string.Empty; return(true); }
protected override void OnCardCaptureReporting(CardCaptureReport report) { EntranceBase entrance = GetEntrance(report.EntranceID); if (entrance == null) { return; } RaiseCardCaptureReporting(report); if (entrance.ProcessingEvent != null && entrance.ProcessingEvent.CardType.IsTempCard) { if (UserSetting.Current.EnableCarPlateRecognize) { CarPlateHandler(entrance, entrance.ProcessingEvent, entrance.ProcessingCard); } //如果启用车牌识别,且出入口车牌对比失败, if (entrance.ProcessingEvent.EventStatus == CardEventStatus.CarPlateFail) { entrance.DisplayMsg(CardInvalidDescripition.GetDescription(Ralid.Park.BusinessModel.Enum.EventInvalidType.INV_CarPlateWrong), false); //(entrance as NetEntrance).ParkDevice.Speak(DeviceVoice.eAUDIO_CPBF); //(entrance as NetEntrance).ParkDevice.Speak(DeviceVoice.eAUDIO_ZZQRQSH); entrance.CardWait(); RaiseCardEventReporting(entrance.ProcessingEvent); return; } else { entrance.CardValid(); if (!entrance.EntranceInfo.CardValidNeedResponse) { PermitCard(entrance, entrance.Operator, entrance.Station); } } } }
private void ReadCardHandler(string cardID, CardInfo info) { CardBll bll = new CardBll(AppSettings.CurrentSetting.ParkConnect); CardInfo card = bll.GetCardByID(cardID).QueryObject; string msg = string.Empty; if (card == null) { msg = CardInvalidDescripition.GetDescription(EventInvalidType.INV_UnRegister); } else if (AppSettings.CurrentSetting.EnableWriteCard && !card.OnlineHandleWhenOfflineMode && !CardDateResolver.Instance.CopyPaidDataToCard(card, info)) { //写卡模式时,卡片收费信息从扇区数据中获取 msg = Resource1.FrmCardCenterCharge_CardDataErr; } else if (!card.IsInPark) { msg = CardInvalidDescripition.GetDescription(EventInvalidType.INV_StillOut); } else if (!card.IsTempCard) { msg = Resource1.FrmCardOut_NoTempCard; } else { msg = CardOut(bll, card); } if (!string.IsNullOrEmpty(msg)) { this.listMsg.InsertMessage(msg); } }