示例#1
0
        public JsResultObject cancelOrder(OrderModel order, string cancelCode, string cancelReason)
        {
            JsResultObject re = new JsResultObject();
            ELongApiBiz elongBiz = ELongApiBiz.GetInstant();

            order.orderStatus = OrderModel.ORDER_STATUS_CANCEL;
            BaseZdBiz.Update(order,"");
            if (order.elongOrderId!=default(int))
            {
                re = elongBiz.cancelHotelOrderById(order.elongOrderId, cancelCode, cancelReason);
            }
            return re;
        }
示例#2
0
 public ActionResult Save()
 {
     OrderModel order = new OrderModel();
     order = WebUtil.Eval<OrderModel>(order, "", "");
     JsResultObject re = new JsResultObject();
     if (StringUtil.IsIn(order.orderStatus, new string[] { OrderModel.ORDER_STATUS_COMMENTED, OrderModel.ORDER_STATUS_DEAL }))
     {
         re.code = JsResultObject.CODE_ERROR;
         re.msg = string.Format("订单{0} 状态为 {1},不能再修改"
             ,order.id
             ,OrderModel.GetDictOrderStatus()[order.orderStatus]
             );
     }
     else
     {
         re = BaseZdBiz.SaveOrUpdate(order, "订单");
     }
     return JsonText(re, JsonRequestBehavior.AllowGet);
 }
示例#3
0
        public ActionResult DoSubmitOrder()
        {
            OrderModel order = new OrderModel();
            order = ObjectUtil.Eval<OrderModel>(order, Request.Params, "", "");

            DateTime checkInDate=order.checkInDate;
            DateTime arraivalLateTime = new DateTime(
                checkInDate.Year,checkInDate.Month,checkInDate.Day
                ,order.arraivalLateTime.Hour,0,0
             );
            order.arraivalLateTime = arraivalLateTime;
            order.arraivalEarlyTime = arraivalLateTime.AddHours(-3);

            ELongApiBiz elongBiz = ELongApiBiz.GetInstant();
            JsResultObject re= elongBiz.submitHotelOrder(ref order);
            BaseZdBiz.SaveOrUpdate(order,"");
            return JsonText(re, JsonRequestBehavior.AllowGet);
        }
示例#4
0
 private MemberRewardModel GetReward(OrderModel order)
 {
     MemberRewardRuleModel rule = GetCurRewardRule();
     MemberRewardModel reward = new MemberRewardModel();
     reward.setPk(reward.createPk());
     reward.createDate = DateTime.Now;
     if (order.totalPrice < rule.rebateScaleAmount)
     {
         reward.amount = rule.rebateAmount;
     }
     else {
         reward.amount = (float)(order.totalPrice * rule.rebateScale);
     }
     reward.memberFk = order.memberFk;
     return reward;
 }
示例#5
0
        public JsResultObject submitOrder(OrderModel order, bool isElong)
        {
            JsResultObject re = new JsResultObject();

            order.lastModifyDate = DateTime.Now;

            if (isElong) {
                ELongApiBiz elongBiz = ELongApiBiz.GetInstant();
                re = elongBiz.submitHotelOrder(ref order);
                if (re.code == JsResultObject.CODE_SUCCESS)
                {
                    order.orderStatus = OrderModel.ORDER_STATUS_ELONG_SUCCESS;
                }
                else {
                    order.orderStatus = OrderModel.ORDER_STATUS_FAIL;
                }
            }

            BaseZdBiz.SaveOrUpdate(order,"订单");

            return re;
        }
示例#6
0
        public JsResultObject renewOrder(OrderModel order)
        {
            JsResultObject re = new JsResultObject();
            ELongApiBiz elongBiz = ELongApiBiz.GetInstant();

            if (DateTimeUtil.CompareDay(order.checkInDate,DateTime.Now)<0) {
                re.code = JsResultObject.CODE_ERROR;
                re.msg = string.Format( "原订单:{0} 已超出入住日期{1},不能再还原,请重新创建订单",order.id,order.checkInDate.ToShortDateString());
            }else{
                 order.orderStatus = OrderModel.ORDER_STATUS_NEW;
                re= BaseZdBiz.Update(order, "");
                re.msg = string.Format("原订单:{0} 还原成功,请记得在{1}入住", order.id, order.checkInDate.ToShortDateString());
            }

            return re;
        }
示例#7
0
        public JsResultObject createNewOrder(OrderModel order)
        {
            JsResultObject re = new JsResultObject();
            this.OpenSession();
            ICriteria icr=this.session.CreateCriteria<OrderModel>();
            DateTime startDate = new DateTime(order.createDate.Year, order.createDate.Month, order.createDate.Day, 0, 0, 0);
            DateTime endDate = startDate.AddDays(1);
            icr.Add(Restrictions.And(
                      Restrictions.And(
                           Restrictions.Eq("hotelId", order.hotelId)
                           , Restrictions.Between("createDate", startDate, endDate)
                      ),
                      Restrictions.Eq("guestsNameArray", order.guestsNameArray)

            ));
            IList<OrderModel> orders = icr.List<OrderModel>();
            if (orders.Count > 0)
            {
                re.code = JsResultObject.CODE_ERROR;
                re.msg= "同名住客不能在同一天预订同一间酒店的房间";
                return re;
            }
            string[] guestsName = order.guestsNameArray.Split(',');
            if (string.IsNullOrEmpty(order.guestsNameArray))
            {
                re.code = JsResultObject.CODE_ERROR;
                re.msg= "必须至少填写一个住客的名字";
                return re;
            }
            Array.Sort(guestsName);
            order.guestsNameArray = ObjectUtil.ToUnionString(guestsName,',');

            re = ServiceUtil.ValidateMoblie(order.mobile);
            if (re.code != JsResultObject.CODE_SUCCESS) { return re; }

               // re = ServiceUtil.ValidateEmail(order.email);
               // if (re.code != JsResultObject.CODE_SUCCESS) { return re; }

            re = BaseZdBiz.Save(order);
            ConfigModel config = AdminBiz.GetCurrConfig();
            if (config.autoOrderInd == BaseModel.IND_Y) {
                re = submitOrder(order, true);
            }
            return re;
        }
示例#8
0
        private RoomForSubmitHotelOrder toRoomForSubmitHotelOrder(OrderModel orderModel)
        {
            RoomForSubmitHotelOrder hotelOrder = orderModel.toRoomForSubmitHotelOrder();
            try
            {
                this.OpenSession();
                CreditCardModel creditCard = this.session.Load<CreditCardModel>(ELongApiService.CREDIT_NUMBER_TEST);
                hotelOrder.CreditCard = creditCard.toCreditCardForSubmitHotelOrder();

                RoomForGetHotelList room = this.getRoomForGetHotelList(orderModel.hotelId, orderModel.roomTypeId
                    ,orderModel.checkInDate,orderModel.checkOutDate,0
                    );

              //  ICriteria icr = this.session.CreateCriteria<GuestModel>();
              //  icr.Add(Restrictions.In("idNumber",orderModel.guestsIdArray.Split(',')));
              //  IList<GuestModel> guests = icr.List<GuestModel>();
              //  LinkedList<GuestForSubmitHotelOrder> orderGuests = new LinkedList<GuestForSubmitHotelOrder>();
              //  foreach (GuestModel guest in guests) {
              //      orderGuests.AddLast(guest.toGuestForSubmitHotelOrder());
               // }
                string[] guestNames = orderModel.guestsNameArray.Split(',');
                hotelOrder.Guests = this.createGuestForSubmitHotelOrderList(guestNames).ToArray();
                hotelOrder.GuestAmount = guestNames.Length;
                hotelOrder.RoomAmount = orderModel.roomAmount;

                //icr.Add(Restrictions.In("idNumber", orderModel.contacterIdArray.Split(',')));
                //guests = icr.List<GuestModel>();
                //LinkedList<ContacterForSubmitHotelOrder> orderContact = new LinkedList<ContacterForSubmitHotelOrder>();
                //foreach (GuestModel guest in guests)
                //{
                //    orderContact.AddLast(guest.toContacterForSubmitHotelOrder());
                //}
                ContacterForSubmitHotelOrder contacter = new ContacterForSubmitHotelOrder();
                contacter.Email = orderModel.email;
                contacter.Mobile = orderModel.mobile;
                contacter.Name = string.IsNullOrEmpty(orderModel.contacterName)?hotelOrder.Guests[0].Name:orderModel.contacterName;
                contacter.GenderCode = "0";
                hotelOrder.Contacters = new ContacterForSubmitHotelOrder[] { contacter };

                hotelOrder.TotalPrice =Convert.ToDecimal(orderModel.totalPrice);

            }
            catch (Exception ex) {

            }
            return hotelOrder;
        }
示例#9
0
        public JsResultObject submitHotelOrder(ref OrderModel orderModel)
        {
            if (!this.login())
            {
                return LoginFailHandler("");
            }
            SubmitHotelOrderRequest req = new SubmitHotelOrderRequest();
            req.RequestHead = this.requestHead;
            req.RequestHead.GUID = Guid.NewGuid().ToString();
            HotelOrderForSubmitHotelOrder hotelOrder=new HotelOrderForSubmitHotelOrder();
            RoomForSubmitHotelOrder roomOrder = this.toRoomForSubmitHotelOrder(orderModel);
            hotelOrder.RoomGroups = new RoomForSubmitHotelOrder[] {roomOrder};
            req.HotelOrder = hotelOrder;
            SubmitHotelOrderResponse res = elongService.SubmitHotelOrder(req);
            if (res.ResponseHead.ResultCode == ELongApiService.RESULT_CODE_SUCCESS)
            {
                orderModel.elongOrderId = res.SubmitHotelOrderResult.HotelOrderID;
                orderModel.orderStatus = OrderModel.ORDER_STATUS_ZD_SUCCESS;
            }
            else {
                orderModel.remark = res.ResponseHead.ResultMessage;
            }

            return SubmitHotelOrderHandler(res);
        }
示例#10
0
        public ActionResult DoSubmitOrder(string arraivalLastTimeType)
        {
            JsResultObject re = new JsResultObject();
            MemberModel member=this.getAuthMember();

            OrderModel order = new OrderModel();
            DateTimeUtil.FixMSSQLNullDateTime(ref order);
            order.createDate = DateTime.Now;

            order = WebUtil.Eval(order, "", "");

            if (member != null)
            {
                order.memberFk = member.id;
                // re.code = JsResultObject.CODE_ALERT;
                // re.msg = "未登录用户不能进行酒店预定";

                // WebUtil.SetSessionAttr(typeof(JsResultObject).Name,re);
                // return RedirectToAction("Login","Home");
                //WebUtil.SetSessionAttr(typeof(OrderModel).Name, order);
            }
            if (arraivalLastTimeType == "a") {
                order.arraivalLateTime = new DateTime(DateTime.Now.Year,DateTime.Now.Month,DateTime.Now.Day,18,0,0);
            }
            else if (arraivalLastTimeType == "b") {
                DateTime dt =DateTime.Now.AddDays(1);
                order.arraivalLateTime = new DateTime(dt.Year, dt.Month, dt.Day, 6, 0, 0);
            }

            DataBiz dataBiz = DataBiz.GetInstant();
            re = dataBiz.createNewOrder(order);
            re.attrs.Add(typeof(OrderModel).Name, order);
            ViewData[typeof(JsResultObject).Name] = re;

            HotelRoomModel room = BaseZdBiz.Load<HotelRoomModel>(Restrictions.Eq("hotelFk", order.hotelId), Restrictions.Eq("roomTypeId", order.roomTypeId));
            ViewData[typeof(HotelRoomModel).Name] = room;
            return View("OrderFeedback");
        }