Ejemplo n.º 1
0
 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);
 }
Ejemplo n.º 2
0
        /// <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;
        }
Ejemplo n.º 3
0
 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;
 }
Ejemplo n.º 4
0
        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;
        }