protected void btnSave_Click(object sender, EventArgs e) { ActivityPartner ap; if (Request.QueryString["paId"] != null) { Guid id = Guid.Parse(Request.QueryString["paId"]); ap = bllAp.GetOne(id); } else { ap = new ActivityPartner(); } ap.NeedCheckTime = cbxNeedCheckTime.Checked; ap.Name = txtName.Text; ap.PartnerCode = txtPartnerCode.Text; ap.OnlyControlTotalAmount = ckOnlyControlTotalAmount.Checked; ap.Enabled = ckEnabled.Checked; Guid taId = Guid.Parse(Request.QueryString["actId"]); ap.TourActivity=bllTa.GetOne(taId); bllAp.SaveOrUpdate(ap); ScriptManager.RegisterStartupScript(this, this.GetType(), "s", "alert('保存成功');window.location='/manager/touractivity/partnerList.aspx?actId=" + Request.QueryString["actId"] + "'",true); }
/// <summary> /// 景区是否有足够的门票 /// </summary> /// <param name="ticketCode"></param> /// <param name="partnerCode"></param> /// <param name="date"></param> /// <param name="requestAmount"></param> /// <param name="errMsg"></param> /// <returns></returns> private bool CheckAmountPartnerTicketDate(string ticketCode, ActivityPartner partner, DateTime date, int requestAmount, out string errMsg) { errMsg = string.Empty; int assigned = 0, sold = 0; //如果景区只需要控制总数 if (partner.OnlyControlTotalAmount) { assigned = ActivityTicketAssign.Where(x => x.Partner.PartnerCode.ToLower() == partner.PartnerCode.ToLower()).Sum(x => x.AssignedAmount); sold = ActivityTicketAssign.Where(x => x.Partner.PartnerCode.ToLower() == partner.PartnerCode.ToLower()).Sum(x => x.SoldAmount); } else { IList<ActivityTicketAssign> assigns = ActivityTicketAssign.Where(x => x.DateAssign == date && x.Partner.PartnerCode.ToLower() == partner.PartnerCode.ToLower() && x.Ticket.ProductCode.ToLower() == ticketCode.ToLower()).ToList(); //foreach (ActivityTicketAssign ass in ActivityTicketAssign) //{ // DateTime dt2 =DateTime.Parse( DateTime.Today.ToString("yyyy-MM-dd")); // if (ass.DateAssign == DateTime.Now.Date && ass.Partner.PartnerCode.ToLower() == partner.PartnerCode.ToLower() && ass.Ticket.ProductCode.ToLower() == ticketCode) // { // thisAss = ass; // break; // } //} if (assigns.Count== 0) { throw new Exception(string.Format( "尚未分票:合作商{0},门票{1},时间{2}",partner.PartnerCode,ticketCode,date)); } if (assigns.Count > 1) { throw new Exception(string.Format("多次分票:合作商{0},门票{1},时间{2}", partner.PartnerCode, ticketCode, date)); } assigned = assigns[0].AssignedAmount; sold = assigns[0].SoldAmount; } bool hasEnough = sold + requestAmount <= assigned; if (!hasEnough) { if (DateTime.Now.AddDays(1).Date <= EndDate) { errMsg = "今天的门票已售完,欢迎明天再来"; } else { errMsg = "活动门票已全部售完, 您可以继续购买."; } } return hasEnough; }
private bool CheckBuyHour(ActivityPartner partner, out string errMsg) { bool result = true; errMsg = string.Empty; if (!partner.NeedCheckTime) { return true; } if (DateTime.Now.Hour < BeginHour) { errMsg = string.Format("活动将在{0}点开始", BeginHour); result = false; } else if (DateTime.Now.Hour >= EndHour) { errMsg = string.Format("今天的活动已于{0}点结束,感谢您的参与.欢迎您明天{1}点再来", EndHour, BeginHour); result = false; } return result; }
public virtual bool CheckBeforeOrder(ActivityPartner partner, string ticketCode, int requiredAmount, out string errMsg) { errMsg = string.Empty; //时间检查 if (!CheckBuyHour(partner, out errMsg)) { return false; } //日期检查 if (!CheckBuyTime(out errMsg)) { return false; ; } if (!this.CheckAmountPartnerTicketDate(ticketCode, partner, DateTime.Now.Date, requiredAmount, out errMsg)) { return false; } return true; }