/// <summary> /// 获取当前用户计划定餐设置 /// </summary> /// <param name="targetUser">用户信息</param> /// <returns></returns> public List<MealBookingHistory_mbh_Info> getlistMealBookingPlanning(CardUserMaster_cus_Info targetUser) { try { List<MealBookingHistory_mbh_Info> listMealPlan = new List<MealBookingHistory_mbh_Info>(); //获取默认定餐设置 List<PaymentUDGeneralSetting_pus_Info> listGeneralSettings = this._IPaymentUDGeneralSettingBL.SearchRecords(new PaymentUDGeneralSetting_pus_Info() { pus_iWeek = (int)DateTime.Now.DayOfWeek }); //获取自定义定餐设置 List<PaymentUDMealState_pms_Info> listCustomSettings = this._IPaymentUDMealStateBL.SearchRecords(new PaymentUDMealState_pms_Info() { //pms_dStartDate = DateTime.Now.Date, //pms_dEndDate = DateTime.Now.Date TimeFrom = DateTime.Now.Date, TimeTo = DateTime.Now.Date }); foreach (Common.DefineConstantValue.MealType mealType in Enum.GetValues(typeof(Common.DefineConstantValue.MealType))) { if (mealType == Common.DefineConstantValue.MealType.UnKnown) { continue; } MealBookingHistory_mbh_Info history = new MealBookingHistory_mbh_Info(); history.mbh_cMealType = mealType.ToString(); #region 个人--》班级--》年级 //学生自定义 PaymentUDMealState_pms_Info stuCustom = listCustomSettings.Find(x => x.pms_cCardUserID == targetUser.cus_cRecordID); if (stuCustom == null) { //学生默认 PaymentUDGeneralSetting_pus_Info stuDefault = listGeneralSettings.Find(x => x.pus_cCardUserID == targetUser.cus_cRecordID); if (stuDefault == null) { #region 班级--》年级 //班级自定义 stuCustom = listCustomSettings.Find(x => x.pms_cClassID == targetUser.cus_cClassID); if (stuCustom == null) { //班级默认 stuDefault = listGeneralSettings.Find(x => x.pus_cClassID == targetUser.cus_cClassID); if (stuDefault == null) { if (targetUser.ClassInfo != null && targetUser.ClassInfo.GradeInfo != null) { #region 年级 //年级自定义 stuCustom = listCustomSettings.Find(x => x.pms_cGradeID == targetUser.ClassInfo.GradeInfo.gdm_cRecordID); if (stuCustom == null) { //年级默认 stuDefault = listGeneralSettings.Find(x => x.pus_cGradeID == targetUser.ClassInfo.GradeInfo.gdm_cRecordID); if (stuDefault != null) { history.mbh_cTargetType = Common.DefineConstantValue.StuMealBookingType.GradeDefault.ToString(); history.mbh_lIsSet = GetGeneralSettings(mealType.ToString(), stuDefault); listMealPlan.Add(history); continue; } else { //缺失年级默认设置时,默认不定餐 history.mbh_cTargetType = Common.DefineConstantValue.StuMealBookingType.Unknown.ToString(); history.mbh_lIsSet = false; listMealPlan.Add(history); continue; } } else { history.mbh_cTargetType = Common.DefineConstantValue.StuMealBookingType.GradeCustom.ToString(); history.mbh_lIsSet = GetCustomMealSettings(mealType.ToString(), stuCustom); listMealPlan.Add(history); continue; } #endregion } else { //缺失年级信息时,默认不定餐 history.mbh_cTargetType = Common.DefineConstantValue.StuMealBookingType.Unknown.ToString(); history.mbh_lIsSet = false; listMealPlan.Add(history); continue; } } else { history.mbh_cTargetType = Common.DefineConstantValue.StuMealBookingType.ClassDefault.ToString(); history.mbh_lIsSet = GetGeneralSettings(mealType.ToString(), stuDefault); if (history.mbh_lIsSet) { CheckClassGradeIsSet(targetUser, history, listGeneralSettings, listCustomSettings, mealType.ToString()); } listMealPlan.Add(history); continue; } } else { history.mbh_cTargetType = Common.DefineConstantValue.StuMealBookingType.ClassCustom.ToString(); history.mbh_lIsSet = GetCustomMealSettings(mealType.ToString(), stuCustom); if (history.mbh_lIsSet) { CheckClassGradeIsSet(targetUser, history, listGeneralSettings, listCustomSettings, mealType.ToString()); } listMealPlan.Add(history); continue; } #endregion } else { history.mbh_cTargetType = Common.DefineConstantValue.StuMealBookingType.StudentDefault.ToString(); history.mbh_lIsSet = GetGeneralSettings(mealType.ToString(), stuDefault); if (history.mbh_lIsSet) { CheckClassGradeIsSet(targetUser, history, listGeneralSettings, listCustomSettings, mealType.ToString()); } listMealPlan.Add(history); continue; } } else { history.mbh_cTargetType = Common.DefineConstantValue.StuMealBookingType.StudentCustom.ToString(); history.mbh_lIsSet = GetCustomMealSettings(mealType.ToString(), stuCustom); if (history.mbh_lIsSet) { CheckClassGradeIsSet(targetUser, history, listGeneralSettings, listCustomSettings, mealType.ToString()); } listMealPlan.Add(history); continue; } #endregion } return listMealPlan; } catch (Exception ex) { throw ex; } }
private void ShowRecord() { try { this.flpMealList.Visible = false; this.flpMealList.Controls.Clear(); this.lblRecordAmount.Text = ""; _smlList = new List<SetMealList>(); DateTime startTime = DateTime.Parse(dtpDateFrom.Value.ToString("yyyy/MM/dd")); DateTime endTime = DateTime.Parse(dtpDateTo.Value.ToString("yyyy/MM/dd")); int lastIndex = 0; if (endTime >= startTime) { System.TimeSpan ts = endTime.Subtract(startTime);//TimeSpan得到dt1和dt2的时间间隔 int countDays = ts.Days;//相隔天数 if (countDays > 60) { base.MessageDialog("提示", "最多只能查询前后60天的记录!"); startTime = startTime.AddDays(60); this.dtpDateTo.Value = startTime; return; } DateTime nowDate = DateTime.Parse(System.DateTime.Now.ToString("yyyy/MM/dd")); if (startTime < nowDate)//如果開始時間是小于當前時間,則查詢定餐使用記錄 { MealBookingHistory_mbh_Info mbhInfo = new MealBookingHistory_mbh_Info(); mbhInfo.mbh_cTargetID = _userInfo.ucp_cCUSID; mbhInfo.StartTime = startTime; if (endTime > nowDate) { mbhInfo.EndTime = nowDate; } else { mbhInfo.EndTime = endTime; } List<MealBookingHistory_mbh_Info> mbhList = _imbhBL.SearchRecords(mbhInfo); if (mbhList != null && mbhList.Count > 0) { //補全一個星期 int weekIndex = GetWeekIndex(mbhList[0].mbh_dMealDate); for (int index = 0; index < weekIndex - 1; index++) { SetMealList mealList = new SetMealList(null); _smlList.Add(mealList); //this.flpMealList.Controls.Add(mealList); } lastIndex = GetWeekIndex(mbhList[mbhList.Count - 1].mbh_dMealDate);//如果有定餐記錄,記下最后一日 for (DateTime dt = startTime; dt < nowDate; dt = dt.AddDays(1)) { SetMealInfo mealInfo = new SetMealInfo(); mealInfo.times = dt; bool isSet = false; foreach (MealBookingHistory_mbh_Info info in mbhList) { DateTime subDt = DateTime.Parse(info.mbh_dMealDate.ToString("yyyy/MM/dd")); if (subDt == dt) { if (info.mbh_cMealType == DefineConstantValue.MealType.Breakfast.ToString()) { mealInfo.Breakfast = info.mbh_lIsSet; isSet = true; } else if (info.mbh_cMealType == DefineConstantValue.MealType.Lunch.ToString()) { mealInfo.Lunch = info.mbh_lIsSet; isSet = true; } else if (info.mbh_cMealType == DefineConstantValue.MealType.Supper.ToString()) { mealInfo.Dinner = info.mbh_lIsSet; isSet = true; } } } if (isSet == true) { SetMealList mealList = new SetMealList(mealInfo); _smlList.Add(mealList); //this.flpMealList.Controls.Add(mealList); } isSet = false; } } } if (endTime >= nowDate)//如果結束日期大于當前日期,則查詢定餐設置記錄 { PaymentUDMealState_pms_Info pmsInfo = new PaymentUDMealState_pms_Info(); pmsInfo.pms_cCardUserID = _userInfo.ucp_cCUSID; pmsInfo.pms_cClassID = _userInfo.CardOwner.cus_cClassID; pmsInfo.pms_cGradeID = _userInfo.CardOwner.ClassInfo.csm_cGDMID; pmsInfo.TimeTo = dtpDateTo.Value; if (startTime > nowDate) { pmsInfo.TimeFrom = startTime; } else { pmsInfo.TimeFrom = nowDate; } List<PaymentUDMealState_pms_Info> pmsList = _ipumsBL.SearchMealRecords(pmsInfo); if (pmsList != null && pmsList.Count > 0) { ////補全一個星期 //int weekIndex = GetWeekIndex((DateTime)(pmsList[0].pms_dStartDate)); //if (lastIndex == 0) //{ // lastIndex = weekIndex - 1; //} //else //{ // lastIndex = 7 - lastIndex - weekIndex; //} //for (int index = 0; index < lastIndex; index++) //{ // SetMealList mealList = new SetMealList(null); // _smlList.Add(mealList); // //this.flpMealList.Controls.Add(mealList); //} this.lblRecordAmount.Text = pmsList.Count.ToString(); pmsList = pmsList.OrderBy(p => p.pms_dStartDate).ToList(); for (int index = 0; index < pmsList.Count; index++) { SetMealInfo mealInfo = new SetMealInfo(); mealInfo.times = (DateTime)pmsList[index].pms_dStartDate; mealInfo.Breakfast = pmsList[index].pms_cBreakfast; mealInfo.Lunch = pmsList[index].pms_cLunch; mealInfo.Dinner = pmsList[index].pms_cDinner; SetMealList mealList = new SetMealList(mealInfo); _smlList.Add(mealList); //this.flpMealList.Controls.Add(mealList); } } } } else { base.MessageDialog("提示", "结束时间不能小于开始时间!"); } } catch { } finally { this.flpMealList.Visible = true; //計算最大頁數 if (_smlList != null) { _MaxPage = _smlList.Count / _PageSize; if (_smlList.Count % _PageSize != 0) { _MaxPage++; } if (_MaxPage == 0) { _PageIndex = 0; } else { if (_PageIndex == 0) { _PageIndex = 1; } } ShowList();//顯示內容 } SetUpDownBtnStatus(); } }
/// <summary> /// 更新定餐计划 /// </summary> /// <param name="strMealType"></param> /// <param name="userInfo"></param> void UpdateMealPlanning(string strMealType, CardUserMaster_cus_Info userInfo, MealBookingHistory_mbh_Info oldMealInfo) { try { //ShowInformationMessage("检测到该用户此前被欠费自动停餐,现更新定餐信息并提交到各个消费机处。"); IMealBookingHistoryBL mealBL = MasterBLLFactory.GetBLL<IMealBookingHistoryBL>(MasterBLLFactory.MealBookingHistory); MealBookingHistory_mbh_Info mealInfo = new MealBookingHistory_mbh_Info(); mealInfo.mbh_cMealType = strMealType; mealInfo.mbh_cTargetID = userInfo.cus_cRecordID; mealInfo.mbh_dMealDate = DateTime.Now; List<MealBookingHistory_mbh_Info> listMealInfo = mealBL.SearchRecords(mealInfo); if (listMealInfo != null && listMealInfo.Count > 0) { MealBookingHistory_mbh_Info currentMealInfo = listMealInfo.FirstOrDefault(); if (currentMealInfo != null) { currentMealInfo.mbh_lIsSet = oldMealInfo.mbh_lIsSet; currentMealInfo.mbh_cTargetType = oldMealInfo.mbh_cTargetType; currentMealInfo.mbh_dAddDate = DateTime.Now; currentMealInfo.mbh_cAdd = base.UserInformation.usm_cUserLoginID; ReturnValueInfo rvInfo = mealBL.UpdateRecordWithPreCost(currentMealInfo); } } } catch (Exception ex) { ShowErrorMessage(ex); } }
/// <summary> /// 扩展检查 /// </summary> /// <param name="userInfo"></param> /// <param name="targetInfo"></param> /// <param name="listGeneralSettings"></param> /// <param name="listCustomSettings"></param> void CheckClassGradeIsSet(CardUserMaster_cus_Info userInfo, MealBookingHistory_mbh_Info targetInfo, List<PaymentUDGeneralSetting_pus_Info> listGeneralSettings, List<PaymentUDMealState_pms_Info> listCustomSettings, string strMealType) { MealBookingHistory_mbh_Info rvHistoryInfo = new MealBookingHistory_mbh_Info(); if (targetInfo.mbh_lIsSet) { if (userInfo.ClassInfo != null) { //先检查年级是否停餐,默认+自定义 //年级自定义 PaymentUDMealState_pms_Info stuCustom = listCustomSettings.Find(x => x.pms_cGradeID == userInfo.ClassInfo.GradeInfo.gdm_cRecordID); if (stuCustom != null) { //有年级自定义 bool setInfo = GetCustomMealSettings(strMealType, stuCustom); if (!setInfo) { targetInfo.mbh_lIsSet = setInfo; targetInfo.mbh_cTargetType = Common.DefineConstantValue.StuMealBookingType.GradeCustom.ToString(); return; } } else { PaymentUDGeneralSetting_pus_Info stuDefault = listGeneralSettings.Find(x => x.pus_cGradeID == userInfo.ClassInfo.GradeInfo.gdm_cRecordID); if (stuDefault != null) { //无年级自定义,有年级默认 bool setInfo = GetGeneralSettings(strMealType, stuDefault); if (!setInfo) { targetInfo.mbh_lIsSet = setInfo; targetInfo.mbh_cTargetType = Common.DefineConstantValue.StuMealBookingType.GradeDefault.ToString(); return; } } } stuCustom = listCustomSettings.Find(x => x.pms_cClassID == userInfo.ClassInfo.csm_cRecordID); if (stuCustom != null) { //无年级自定义、默认,有班级自定义 bool setInfo = GetCustomMealSettings(strMealType, stuCustom); if (!setInfo) { targetInfo.mbh_lIsSet = setInfo; targetInfo.mbh_cTargetType = Common.DefineConstantValue.StuMealBookingType.ClassCustom.ToString(); return; } } else { PaymentUDGeneralSetting_pus_Info stuDefault = listGeneralSettings.Find(x => x.pus_cClassID == userInfo.ClassInfo.csm_cRecordID); if (stuDefault != null) { //无年级自定义、默认,无班级自定义,有班级默认 bool setInfo = GetGeneralSettings(strMealType, stuDefault); if (!setInfo) { targetInfo.mbh_lIsSet = setInfo; targetInfo.mbh_cTargetType = Common.DefineConstantValue.StuMealBookingType.ClassDefault.ToString(); return; } } } } } }
public ReturnValueInfo UpdateRecordWithPreCost(MealBookingHistory_mbh_Info infoObject) { try { return this._IMealBookingHistoryDA.UpdateRecordWithPreCost(infoObject); } catch (Exception ex) { throw ex; } }
/// <summary> /// 获取当餐停餐信息 /// </summary> /// <param name="strMealType">定餐类型</param> /// <returns></returns> List<MealBookingHistory_mbh_Info> GetMealBookingRecord(string strMealType) { List<MealBookingHistory_mbh_Info> listMeal = new List<MealBookingHistory_mbh_Info>(); try { //获取学生信息 List<CardUserMaster_cus_Info> listStudent = this._ICardUserMasterBL.SearchRecords(new CardUserMaster_cus_Info() { cus_cIdentityNum = Common.DefineConstantValue.CodeMasterDefine.KEY2_SIOT_CardUserIdentity_Student }); listStudent = listStudent.Where(x => x.cus_lValid && x.PairInfo != null).ToList();//需为有效用户及已发卡用户 this._ListUserInfos = listStudent; //获取默认定餐设置 List<PaymentUDGeneralSetting_pus_Info> listGeneralSettings = this._IPaymentUDGeneralSettingBL.SearchRecords(new PaymentUDGeneralSetting_pus_Info() { pus_iWeek = (int)DateTime.Now.DayOfWeek//符合当天星期日子 }); //获取自定义定餐设置 List<PaymentUDMealState_pms_Info> listCustomSettings = this._IPaymentUDMealStateBL.SearchRecords(new PaymentUDMealState_pms_Info() { TimeFrom = DateTime.Now.Date, TimeTo = DateTime.Now.Date }); foreach (CardUserMaster_cus_Info stuItem in listStudent) { //以一个学生为单位储存定餐数据 MealBookingHistory_mbh_Info history = new MealBookingHistory_mbh_Info(); history.mbh_cTargetID = stuItem.cus_cRecordID; history.mbh_cMealType = this._CurrentMealType; history.mbh_cRecordID = Guid.NewGuid(); history.mbh_dMealDate = DateTime.Now.Date; history.mbh_cAdd = this._ServiceName; history.mbh_dAddDate = DateTime.Now; history.mbh_fMealCost = this._CurrentMealCost; #region 个人-->>班级-->>年级 //学生自定义 List<PaymentUDMealState_pms_Info> listUD = listCustomSettings.Where(x => x.pms_cCardUserID == stuItem.cus_cRecordID).ToList(); PaymentUDMealState_pms_Info stuCustom = null; if (listUD != null) { if (listUD.Count > 1) { //stuCustom = listUD.OrderByDescending(x => x.pms_dEndDate).FirstOrDefault(); stuCustom = listUD.OrderByDescending(x => x.pms_dLastDate).FirstOrDefault(); } else if (listUD.Count == 1) stuCustom = listUD.FirstOrDefault(); else stuCustom = null; } else { stuCustom = null; } if (stuCustom == null)//学生自定义无值 { //学生默认 PaymentUDGeneralSetting_pus_Info stuDefault = listGeneralSettings.Find(x => x.pus_cCardUserID == stuItem.cus_cRecordID); if (stuDefault == null)//学生默认无值 { #region 班级-->>年级 //班级自定义 listUD = listCustomSettings.Where(x => x.pms_cClassID == stuItem.cus_cClassID).ToList(); stuCustom = null; if (listUD != null) { if (listUD.Count > 1) { //stuCustom = listUD.OrderByDescending(x => x.pms_dEndDate).FirstOrDefault(); stuCustom = listUD.OrderByDescending(x => x.pms_dLastDate).FirstOrDefault(); } else if (listUD.Count == 1) stuCustom = listUD.FirstOrDefault(); else stuCustom = null; } else { stuCustom = null; } if (stuCustom == null)//班级自定义无值 { //班级默认 stuDefault = listGeneralSettings.Find(x => x.pus_cClassID == stuItem.cus_cClassID); if (stuDefault == null)//班级默认无值 { if (stuItem.ClassInfo != null && stuItem.ClassInfo.GradeInfo != null) { #region 年级 //年级自定义 listUD = listCustomSettings.Where(x => x.pms_cGradeID == stuItem.ClassInfo.GradeInfo.gdm_cRecordID).ToList(); stuCustom = null; if (listUD != null) { if (listUD.Count > 1) { //stuCustom = listUD.OrderByDescending(x => x.pms_dEndDate).FirstOrDefault(); stuCustom = listUD.OrderByDescending(x => x.pms_dLastDate).FirstOrDefault(); } else if (listUD.Count == 1) stuCustom = listUD.FirstOrDefault(); else stuCustom = null; } else { stuCustom = null; } if (stuCustom == null)//年级自定义无值 { //年级默认 stuDefault = listGeneralSettings.Find(x => x.pus_cGradeID == stuItem.ClassInfo.GradeInfo.gdm_cRecordID); if (stuDefault != null)//年级默认有值 { history.mbh_cTargetType = Common.DefineConstantValue.StuMealBookingType.GradeDefault.ToString(); history.mbh_lIsSet = GetGeneralSettings(this._CurrentMealType, stuDefault); listMeal.Add(history); continue; } else//年级默认无值 { //缺失年级默认设置时,默认不定餐 history.mbh_cTargetType = Common.DefineConstantValue.StuMealBookingType.Unknown.ToString(); history.mbh_lIsSet = false; listMeal.Add(history); continue; } } else//年级自定义有值 { history.mbh_cTargetType = Common.DefineConstantValue.StuMealBookingType.GradeCustom.ToString(); history.mbh_lIsSet = GetCustomMealSettings(this._CurrentMealType, stuCustom); listMeal.Add(history); continue; } #endregion } else { //缺失年级信息时,默认不定餐 history.mbh_cTargetType = Common.DefineConstantValue.StuMealBookingType.Unknown.ToString(); history.mbh_lIsSet = false; listMeal.Add(history); continue; } } else//班级默认有值 { history.mbh_cTargetType = Common.DefineConstantValue.StuMealBookingType.ClassDefault.ToString(); history.mbh_lIsSet = GetGeneralSettings(this._CurrentMealType, stuDefault); if (history.mbh_lIsSet) { CheckClassGradeIsSet(stuItem, history, listGeneralSettings, listCustomSettings); } listMeal.Add(history); continue; } } else//班级自定义有值 { history.mbh_cTargetType = Common.DefineConstantValue.StuMealBookingType.ClassCustom.ToString(); history.mbh_lIsSet = GetCustomMealSettings(this._CurrentMealType, stuCustom); if (history.mbh_lIsSet) { CheckClassGradeIsSet(stuItem, history, listGeneralSettings, listCustomSettings); } listMeal.Add(history); continue; } #endregion } else//学生默认有值 { history.mbh_cTargetType = Common.DefineConstantValue.StuMealBookingType.StudentDefault.ToString(); history.mbh_lIsSet = GetGeneralSettings(this._CurrentMealType, stuDefault); if (history.mbh_lIsSet) { CheckClassGradeIsSet(stuItem, history, listGeneralSettings, listCustomSettings); } listMeal.Add(history); continue; } } else//学生自定义有记录 { history.mbh_cTargetType = Common.DefineConstantValue.StuMealBookingType.StudentCustom.ToString(); history.mbh_lIsSet = GetCustomMealSettings(this._CurrentMealType, stuCustom); if (history.mbh_lIsSet) { CheckClassGradeIsSet(stuItem, history, listGeneralSettings, listCustomSettings); } listMeal.Add(history); continue; } #endregion } return listMeal; } catch (Exception ex) { this._LocalLogger.WriteLog(ex.Message, string.Empty, SystemLog.SystemLog.LogType.Error); this._DBLogger.WriteLog(ex.Message, string.Empty, SystemLog.SystemLog.LogType.Error); } return listMeal; }
private void btnRecharge_Click(object sender, EventArgs e) { dlgConfirmInfo dlg = new dlgConfirmInfo(); dlg.CardInfo = this._CardInfo; dlg.UserInfo = this._UserInfo; dlg.RechargeMoney = decimal.Parse(labTotalRecharge.Text); dlg.PreCostMoney = decimal.Parse(labPreCost.Text); GlobalVar.OpenFormList.Add(dlg); if (dlg.ShowDialog() == DialogResult.OK) { this.Cursor = Cursors.WaitCursor; this._Reader = PaymentReaderFactory.CreateWriter(PaymentReaderFactory.EastRiverReader906); this._Reader.Conn(); //卡信息再次验证 ConsumeCardInfo cardInfo = this._Reader.ReadCardInfo(base._CardInfoSection, base._SectionPwd); if (cardInfo == null) { base.MessageDialog("提示", "转账失败。" + Environment.NewLine + "无法确认卡信息,请重新读卡再试。"); this.Cursor = Cursors.Default; return; } if (cardInfo.CardSourceID != dlg.CardInfo.CardSourceID) { base.MessageDialog("提示", "转账失败。" + Environment.NewLine + "卡信息已变更,请重新读卡再试。"); this.Cursor = Cursors.Default; return; } decimal fTotalRecharge = decimal.Parse(labTotalRecharge.Text); decimal fPreCost = dlg.PreCostMoney; try { string strOldCardName = cardInfo.Name.Trim(); string strCurrentCardName = (this._UserInfo.ClassInfo.GradeInfo.gdm_cAbbreviation + this._UserInfo.cus_cChaName).Trim(); if (strOldCardName != strCurrentCardName) { ConsumeCardInfo changeCardInfo = new ConsumeCardInfo(); changeCardInfo.CardBalance = this._CardInfo.CardBalance; changeCardInfo.CardNo = this._CardInfo.CardNo; changeCardInfo.CardPwd = this._CardInfo.CardPwd; changeCardInfo.CardSourceID = this._CardInfo.CardSourceID; changeCardInfo.CardBalance = this._CardInfo.CardBalance; changeCardInfo.Name = strCurrentCardName; //年级信息发生变更,修改对应信息 ReturnValueInfo rvChangeCardInfo = this._Reader.WriteCardInfo(base._CardInfoSection, base._SectionPwd, changeCardInfo); } } catch (Exception) { } //先进行物理卡充值 ReturnValueInfo rvInfo = this._Reader.Recharge(base._CardInfoSection, base._SectionPwd, dlg.RechargeMoney); if (rvInfo.boolValue && !rvInfo.isError) { //卡充值成功后,将原充值记录的状态更新为已完成 if (this._ListRechargeRecord != null) { for (int i = 0; i < this._ListRechargeRecord.Count; i++) { if (this._ListRechargeRecord[i] != null) { this._ListRechargeRecord[i].rcr_cStatus = Common.DefineConstantValue.ConsumeMoneyFlowStatus.Finished.ToString(); fPreCost += this._ListRechargeRecord[i].rcr_fRechargeMoney; if (fPreCost < 0) { //未将未结算预付款扣除完毕,余额不变 if (i != this._ListRechargeRecord.Count - 1) { this._ListRechargeRecord[i].rcr_fBalance = this._CardInfo.CardBalance; } else { this._ListRechargeRecord[i].rcr_fBalance = this._CardInfo.CardBalance + fPreCost; } } else { this._ListRechargeRecord[i].rcr_fBalance = this._CardInfo.CardBalance + Math.Abs(fPreCost); } this._ListRechargeRecord[i].rcr_dRechargeTime = DateTime.Now.AddSeconds(i); } } decimal fPreCostRecharge = dlg.PreCostMoney; if (fPreCostRecharge != 0) { fPreCostRecharge = Math.Abs(fPreCostRecharge); } rvInfo = this._IRechargeRecordBL.UpdateRechargeRecord(this._ListPreRechargeRecord, this._ListRechargeRecord, fPreCostRecharge); } else { rvInfo.messageText = "转账缓存信息异常,请重新打开本窗口。"; rvInfo.isError = true; } if (rvInfo.boolValue && !rvInfo.isError) { try { IMealBookingHistoryBL mealBl = MasterBLLFactory.GetBLL<IMealBookingHistoryBL>(MasterBLLFactory.MealBookingHistory); MealBookingHistory_mbh_Info history = new MealBookingHistory_mbh_Info(); history.mbh_cTargetType = Common.DefineConstantValue.MealType.DebtAuto.ToString(); history.mbh_cTargetID = this._UserInfo.cus_cRecordID; history.mbh_dMealDate = DateTime.Now.Date; List<MealBookingHistory_mbh_Info> listHistory = mealBl.SearchRecords(history); if (listHistory != null && listHistory.Count > 0) { DateTime? dtSysNow = DateTime.Now; if (rvInfo.ValueObject != null) { dtSysNow = Convert.ToDateTime(rvInfo.ValueObject); } if (dtSysNow == null) { dtSysNow = DateTime.Now; } localLog.WriteLog(this._UserInfo.cus_cChaName + "转账完毕。时间:" + dtSysNow.ToString(), string.Empty, SystemLog.SystemLog.LogType.Trace); ResetMealPlanning(this._UserInfo, dtSysNow.Value, listHistory); } } catch (Exception exSub) { localLog.WriteLog(exSub.Message, string.Empty, SystemLog.SystemLog.LogType.Error); } //成功录入充值记录后提示成功 this.Cursor = Cursors.Default; base.MessageDialog("提示", "充值成功。"); InitReadCard(); } else { //录入充值记录失败,则需要将原先充入的卡金额扣除,如果卡已被取走,则需等待后台自动同步金额 rvInfo = this._Reader.Recharge(base._CardInfoSection, base._SectionPwd, dlg.RechargeMoney * -1); this.Cursor = Cursors.Default; base.MessageDialog("提示", "充值失败。" + Environment.NewLine + rvInfo.messageText); return; } } else { this.Cursor = Cursors.Default; base.MessageDialog("提示", "充值失败。" + Environment.NewLine + rvInfo.messageText); return; } } }
/// <summary> /// 更新定餐计划 /// </summary> /// <param name="strMealType"></param> /// <param name="userInfo"></param> void UpdateMealPlanning(string strMealType, CardUserMaster_cus_Info userInfo, MealBookingHistory_mbh_Info oldMealInfo) { try { IMealBookingHistoryBL mealBL = MasterBLLFactory.GetBLL<IMealBookingHistoryBL>(MasterBLLFactory.MealBookingHistory); MealBookingHistory_mbh_Info mealInfo = new MealBookingHistory_mbh_Info(); mealInfo.mbh_cMealType = strMealType; mealInfo.mbh_cTargetID = userInfo.cus_cRecordID; mealInfo.mbh_dMealDate = DateTime.Now; List<MealBookingHistory_mbh_Info> listMealInfo = mealBL.SearchRecords(mealInfo); if (listMealInfo != null && listMealInfo.Count > 0) { MealBookingHistory_mbh_Info currentMealInfo = listMealInfo.FirstOrDefault(); if (currentMealInfo != null) { currentMealInfo.mbh_lIsSet = true; //currentMealInfo.mbh_cTargetType = oldMealInfo.mbh_cTargetType; currentMealInfo.mbh_dAddDate = DateTime.Now; currentMealInfo.mbh_cAdd = "TQS"; ReturnValueInfo rvInfo = mealBL.UpdateRecordWithPreCost(currentMealInfo); localLog.WriteLog(userInfo.cus_cChaName + ",更新计划成功。" + DateTime.Now.ToString(), string.Empty, SystemLog.SystemLog.LogType.Trace); } } else { localLog.WriteLog(userInfo.cus_cChaName + ",找不到可用的历史定餐计划。" + DateTime.Now.ToString(), string.Empty, SystemLog.SystemLog.LogType.Trace); } } catch (Exception ex) { localLog.WriteLog(userInfo.cus_cChaName + ",异常:" + ex.Message, string.Empty, SystemLog.SystemLog.LogType.Error); } }
/// <summary> /// 获取卡用户的定餐计划信息列表 /// </summary> /// <param name="UserID">用户ID(输入空值时为查询所有卡用户)</param> /// <param name="dtPlan">定餐计划日期</param> /// <param name="strMealType">用餐类型</param> /// <returns></returns> private List<MealBookingHistory_mbh_Info> GetMealPlan(Guid UserID, DateTime dtPlan, string strMealType, decimal fCost, string strAdd) { List<MealBookingHistory_mbh_Info> listMealPlanInfos = new List<MealBookingHistory_mbh_Info>(); string strMealTypeAb = string.Empty; if (strMealType == Common.DefineConstantValue.MealType.Breakfast.ToString()) { strMealTypeAb = "B"; } else if (strMealType == Common.DefineConstantValue.MealType.Lunch.ToString()) { strMealTypeAb = "L"; } else if (strMealType == Common.DefineConstantValue.MealType.Supper.ToString()) { strMealTypeAb = "D"; } if (string.IsNullOrEmpty(strMealType)) { return listMealPlanInfos; } StringBuilder strSql = new StringBuilder(); strSql.AppendFormat("EXEC usp_GetUserSetMealPlanLists "); strSql.AppendFormat("'" + UserID.ToString() + "',"); strSql.AppendFormat("'" + dtPlan.ToString("yyyy-MM-dd 00:00") + "',"); strSql.AppendFormat(((int)dtPlan.DayOfWeek).ToString() + ","); strSql.AppendFormat("'" + strMealTypeAb + "'"); using (SqlDataReader reader = DbHelperSQL.ExecuteReader(strSql.ToString())) { while (reader.Read()) { MealBookingHistory_mbh_Info mealInfo = new MealBookingHistory_mbh_Info(); mealInfo.mbh_cRecordID = Guid.NewGuid(); mealInfo.mbh_cTargetID = new Guid(reader["UserID"].ToString()); mealInfo.mbh_cMealType = strMealType; mealInfo.mbh_fMealCost = fCost; mealInfo.mbh_dMealDate = dtPlan.Date; mealInfo.mbh_cTargetType = reader["SetFrom"].ToString(); mealInfo.mbh_lIsSet = int.Parse(reader["FinalMealSet"].ToString()) == 1 ? true : false; mealInfo.mbh_cAdd = strAdd; mealInfo.mbh_dAddDate = DateTime.Now; listMealPlanInfos.Add(mealInfo); } } return listMealPlanInfos; }
/// <summary> /// 获取默认的用餐计划信息 /// </summary> /// <param name="UserID">用户ID(</param> /// <param name="dtPlan">定餐计划日期</param> /// <param name="strMealType">用餐类型</param> /// <returns></returns> private MealBookingHistory_mbh_Info GetDefalutMealPlan(Guid UserID, DateTime dtPlan, string strMealType, bool lIsSetMeal, decimal fCost, string strAdd) { MealBookingHistory_mbh_Info mealInfo = new MealBookingHistory_mbh_Info(); mealInfo.mbh_cRecordID = Guid.NewGuid(); mealInfo.mbh_cTargetID = UserID; mealInfo.mbh_cTargetType = Common.DefineConstantValue.StuMealBookingType.Unknown.ToString(); mealInfo.mbh_cMealType = strMealType; mealInfo.mbh_dMealDate = dtPlan.Date; mealInfo.mbh_lIsSet = lIsSetMeal; mealInfo.mbh_fMealCost = fCost; mealInfo.mbh_cAdd = strAdd; mealInfo.mbh_dAddDate = DateTime.Now; return mealInfo; }
public ReturnValueInfo UpdateRecordWithPreCost(MealBookingHistory_mbh_Info infoObject) { ReturnValueInfo rvInfo = new ReturnValueInfo(); try { if (infoObject != null) { using (SIOTSDB_HHZXDataContext db = new SIOTSDB_HHZXDataContext()) { db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { MealBookingHistory_mbh history = db.MealBookingHistory_mbh.Where(x => x.mbh_cRecordID == infoObject.mbh_cRecordID).FirstOrDefault(); if (history != null) { history.mbh_cAdd = infoObject.mbh_cAdd; history.mbh_cMealType = infoObject.mbh_cMealType; history.mbh_cTargetID = infoObject.mbh_cTargetID; history.mbh_cTargetType = infoObject.mbh_cTargetType; history.mbh_dAddDate = infoObject.mbh_dAddDate; history.mbh_dMealDate = infoObject.mbh_dMealDate; history.mbh_lIsSet = infoObject.mbh_lIsSet; history.mbh_fMealCost = infoObject.mbh_fMealCost; CardUserAccount_cua accountInfo = db.CardUserAccount_cua.Where(x => x.cua_cCUSID == infoObject.mbh_cTargetID).FirstOrDefault(); PreConsumeRecord_pcs preCostInfo = new PreConsumeRecord_pcs(); preCostInfo.pcs_cAccountID = accountInfo.cua_cRecordID; preCostInfo.pcs_cAdd = infoObject.mbh_cAdd; preCostInfo.pcs_cConsumeType = Common.DefineConstantValue.ConsumeMoneyFlowType.AdvanceMealCost.ToString(); preCostInfo.pcs_cRecordID = Guid.NewGuid(); preCostInfo.pcs_cSourceID = history.mbh_cRecordID; preCostInfo.pcs_cUserID = history.mbh_cTargetID; preCostInfo.pcs_dAddDate = DateTime.Now; preCostInfo.pcs_dConsumeDate = DateTime.Now; preCostInfo.pcs_fCost = history.mbh_fMealCost; preCostInfo.pcs_lIsSettled = false; db.PreConsumeRecord_pcs.InsertOnSubmit(preCostInfo); db.SubmitChanges(); db.Transaction.Commit(); rvInfo.boolValue = true; return rvInfo; } else { rvInfo.messageText = "GetEntity is null"; } db.Transaction.Rollback(); db.Connection.Close(); } catch (Exception exx) { db.Transaction.Rollback(); db.Connection.Close(); throw exx; } } } else { rvInfo.messageText = Common.DefineConstantValue.SystemMessageText.strMessageText_E_ObjectNull; } } catch (Exception ex) { rvInfo.isError = true; rvInfo.messageText = ex.Message; } return rvInfo; }
public ReturnValueInfo UpdateRecord(MealBookingHistory_mbh_Info infoObject) { ReturnValueInfo rvInfo = new ReturnValueInfo(); try { if (infoObject != null) { using (SIOTSDB_HHZXDataContext db = new SIOTSDB_HHZXDataContext()) { MealBookingHistory_mbh history = db.MealBookingHistory_mbh.Where(x => x.mbh_cRecordID == infoObject.mbh_cRecordID).FirstOrDefault(); if (history != null) { history.mbh_cAdd = infoObject.mbh_cAdd; history.mbh_cMealType = infoObject.mbh_cMealType; history.mbh_cTargetID = infoObject.mbh_cTargetID; history.mbh_cTargetType = infoObject.mbh_cTargetType; history.mbh_dAddDate = infoObject.mbh_dAddDate; history.mbh_dMealDate = infoObject.mbh_dMealDate; history.mbh_lIsSet = infoObject.mbh_lIsSet; history.mbh_fMealCost = infoObject.mbh_fMealCost; db.SubmitChanges(); rvInfo.boolValue = true; } else { rvInfo.messageText = "GetEntity is null"; } } } else { rvInfo.messageText = Common.DefineConstantValue.SystemMessageText.strMessageText_E_ObjectNull; } } catch (Exception ex) { rvInfo.isError = true; rvInfo.messageText = ex.Message; } return rvInfo; }
public ReturnValueInfo InsertRecord(MealBookingHistory_mbh_Info infoObject) { ReturnValueInfo rvInfo = new ReturnValueInfo(); try { if (infoObject != null) { using (SIOTSDB_HHZXDataContext db = new SIOTSDB_HHZXDataContext()) { MealBookingHistory_mbh history = Common.General.CopyObjectValue<MealBookingHistory_mbh_Info, MealBookingHistory_mbh>(infoObject); if (history != null) { db.MealBookingHistory_mbh.InsertOnSubmit(history); db.SubmitChanges(); rvInfo.boolValue = true; rvInfo.ValueObject = infoObject; } else { rvInfo.messageText = "TransEntity is null"; } } } else { rvInfo.messageText = Common.DefineConstantValue.SystemMessageText.strMessageText_E_ObjectNull; } } catch (Exception ex) { rvInfo.isError = true; rvInfo.messageText = ex.Message; } return rvInfo; }