Ejemplo n.º 1
0
        public ActionResult Index(ShoppingCart cart, BrowseHistory bh)
        {
            HandleCart(cart);
            GroupCheckoutModel gcm = new GroupCheckoutModel();
            SharedShoppingCart ssc = new SharedShoppingCart();

            if (string.IsNullOrEmpty(cart.CartKey) == false)
            {
                ssc = GetGroupShoppingCart(cart.CartKey);
            }
            bool isBoss = (string.IsNullOrEmpty(cart.PersonName) == false && cart.PersonName == GroupCart.GroupCarts[cart.CartKey].PartyBossName);

            if (!isBoss || GroupCart.GroupCarts[cart.CartKey].PartyTotalItems == 0 || (GroupCart.GroupCarts[cart.CartKey].PartyOrderMinimum() > GroupCart.GroupCarts[cart.CartKey].PartySubTotal() && GroupCart.GroupCarts[cart.CartKey].IsPartyDelivery) || (GroupCart.GroupCarts[cart.CartKey].PartyCart[cart.BossName].IsBizDelivery == false && GroupCart.GroupCarts[cart.CartKey].IsPartyDelivery))
            {
                return(Redirect("~/Group"));;
            }
            gcm.AddressLine = bh.Address;
            gcm.City        = bh.City;
            gcm.State       = string.IsNullOrEmpty(bh.State) ? "CA" : bh.State;
            gcm.ZipCode     = bh.Zip;

            if (User.Identity.IsAuthenticated)
            {
                UserDetail ud = UserDetailRepository.GetUserDetailByUserId(CurrentUserID);
                if (ud != null)
                {
                    gcm.FirstName   = ud.FirstName;
                    gcm.LastName    = ud.LastName;
                    gcm.AddressLine = string.IsNullOrEmpty(bh.Address)? ud.Address.AddressLine:bh.Address;
                    gcm.City        = string.IsNullOrEmpty(bh.City) ? ud.Address.City : bh.City;
                    gcm.State       = string.IsNullOrEmpty(bh.State) ? ud.Address.State : bh.State;
                    gcm.ZipCode     = string.IsNullOrEmpty(bh.Zip) ? ud.Address.ZipCode : bh.Zip;
                    gcm.Phone       = ud.ContactInfo.Phone;
                    gcm.Email       = ud.ContactInfo.Email;
                }
            }
            ssc.PartyScheduleDate = GroupCart.GroupCarts[cart.CartKey].PartyScheduleDate;
            ssc.PartyScheduleTime = GroupCart.GroupCarts[cart.CartKey].PartyScheduleTime;
            gcm.GroupCheckoutCart = ssc;
            return(View(gcm));
        }
Ejemplo n.º 2
0
        public ActionResult GroupCheckoutConfirmation(GroupCheckoutModel gcm, ShoppingCart cart)
        {
            HandleCart(cart);
            TempData["valid"]       = "";
            ViewBag.ValidateAddress = string.Empty;
            ViewBag.ScheduleOK      = "OK";
            ViewBag.Restaurant      = string.Empty;
            ViewBag.LabelName       = string.Empty;
            gcm.GroupCheckoutCart   = GroupCart.GroupCarts[cart.CartKey];

            List <BizInfo> lb = new List <BizInfo>();

            if (ModelState.IsValid)
            {
                string mysAddress          = gcm.AddressLine + ", " + gcm.City + ", " + gcm.State + " " + gcm.ZipCode;
                Dictionary <int, string> l = new Dictionary <int, string>();
                foreach (var g in GroupCart.GroupCarts[cart.CartKey].PartyCart.Keys)
                {
                    int i = GroupCart.GroupCarts[cart.CartKey].PartyCart[g].BizId;
                    if (l.ContainsKey(i) == false)
                    {
                        l.Add(i, g);
                        BizInfo biz = BizInfoRepository.GetBizInfoById(i);
                        lb.Add(biz);
                    }
                }
                foreach (var b in l.Keys)
                {
                    BizInfo bi = BizInfoRepository.GetBizInfoById(b);
                    if (SearchFilter.IsOpenAt(bi, cart.ScheduleDate == "Tomorrow" ? 2 : 1, cart.ScheduleTime) == false)
                    {
                        ViewBag.ScheduleOK = "NO";
                        ViewBag.Restaurant = bi.BizTitle;
                        ViewBag.LabelName  = l[b];
                        break;
                    }
                    string approxtime = string.Empty;
                    if (string.IsNullOrEmpty(gcm.AddressLine) || string.IsNullOrEmpty(gcm.City) || string.IsNullOrEmpty(gcm.State) || string.IsNullOrEmpty(gcm.ZipCode))
                    {
                        ViewBag.ValidateAddress = "Oops, feel like something wrong with you address. Please check it and try again.";
                        break;
                    }
                    else
                    {
                        decimal st    = SearchFilter.GetDistance(mysAddress, bi.BizAddressString, out approxtime);
                        string  nouse = approxtime;
                        if (st < 0.0m)
                        {
                            ViewBag.ValidateAddress = "Oops, feel like something wrong with you address. Please check it and try again.";
                            break;
                        }
                        else if (st > bi.DeliveryRadius && bi.Delivery)
                        {
                            ViewBag.ValidateAddress = "Sorry, your address is beyond the area the restaurant deliveries. Please try other restaurants. ( Order person: " + l[b] + " | Order restaurant: " + bi.BizTitle + " )";
                            break;
                        }
                    }
                }
                if (string.IsNullOrEmpty(ViewBag.ValidateAddress) && ViewBag.ScheduleOK == "OK")
                {
                    base.CurrentCreditCard = new CreditCard();
                    base.CurrentCreditCard.CreditCardId     = 0; // base.CurrentCreditCard.CreditCardID=any
                    base.CurrentCreditCard.UserName         = string.IsNullOrEmpty(UserName) ? gcm.BillFirstName + " " + gcm.BillLastName : UserName;
                    base.CurrentCreditCard.CreditCardTypeId = int.Parse(gcm.CardType);
                    base.CurrentCreditCard.FirstName        = gcm.BillFirstName;
                    base.CurrentCreditCard.LastName         = gcm.BillLastName;

                    /*
                     * base.CurrentCreditCard.AddressLine = cm.BillAddressLine;
                     * base.CurrentCreditCard.AddressLine2 = "";
                     * base.CurrentCreditCard.City = cm.BillCity;
                     *
                     * base.CurrentCreditCard.State = cm.BillState;
                     * base.CurrentCreditCard.ZipCode = cm.BillZipCode;
                     * base.CurrentCreditCard.Country = "US";
                     */
                    base.CurrentCreditCard.Phone = gcm.Phone;
                    base.CurrentCreditCard.Email = gcm.Email;

                    base.CurrentCreditCard.CreditCardNumber = gcm.CardNumber;
                    base.CurrentCreditCard.ExpirationMonth  = int.Parse(gcm.ExpirationMonth);
                    base.CurrentCreditCard.ExpirationYear   = int.Parse(gcm.ExpirationYear);
                    base.CurrentCreditCard.SecurityCode     = int.Parse(gcm.SecurityCode);
                    base.CurrentCreditCard.AddedDate        = DateTime.Now;
                    base.CurrentCreditCard.AddedBy          = string.IsNullOrEmpty(UserName) ? gcm.BillFirstName + " " + gcm.BillLastName : UserName;;
                    base.CurrentCreditCard.UpdatedDate      = DateTime.Now;
                    base.CurrentCreditCard.UpdatedBy        = string.IsNullOrEmpty(UserName) ? gcm.BillFirstName + " " + gcm.BillLastName : UserName;;
                    base.CurrentCreditCard.Active           = true;

                    base.CurrentOrder            = new Order();
                    base.CurrentOrder.FirstName  = gcm.FirstName;
                    base.CurrentOrder.LastName   = gcm.LastName;
                    base.CurrentOrder.RoomNumber = gcm.RoomNumber;
                    base.CurrentOrder.Street     = gcm.AddressLine;
                    base.CurrentOrder.City       = gcm.City;
                    base.CurrentOrder.State      = gcm.State;
                    base.CurrentOrder.ZipCode    = gcm.ZipCode;

                    base.CurrentOrder.LogonName       = UserName;
                    base.CurrentOrder.IsLoggedUser    = User.Identity.IsAuthenticated;
                    base.CurrentOrder.CustomerMessage = gcm.Instructions;
                    base.CurrentOrder.IsDelivery      = gcm.GroupCheckoutCart.IsPartyDelivery;
                    base.CurrentOrder.ServiceCharge   = gcm.GroupCheckoutCart.PartyServiceCharge;
                    base.CurrentOrder.DeliveryCharge  = gcm.GroupCheckoutCart.PartyDeliveryFee();
                    base.CurrentOrder.DriverTip       = gcm.GroupCheckoutCart.PartyDriverTip();
                    base.CurrentOrder.IpAddress       = base.CurrentUserIP;
                    base.CurrentOrder.Phone           = gcm.Phone;
                    base.CurrentOrder.Email           = gcm.Email;
                    base.CurrentOrder.ScheduleDate    = gcm.GroupCheckoutCart.PartyScheduleDate;
                    base.CurrentOrder.ScheduleTime    = gcm.GroupCheckoutCart.PartyScheduleTime;
                    base.CurrentOrder.CouponChoice    = gcm.GroupCheckoutCart.PartyCouponChoice;
                    base.CurrentOrder.OrderTax        = gcm.GroupCheckoutCart.PartyTax();
                    base.CurrentOrder.SubTotal        = gcm.GroupCheckoutCart.PartySubTotal();
                    base.CurrentOrder.OrderTotal      = gcm.GroupCheckoutCart.PartyTotal();
                    base.CurrentOrder.BizInfoId       = cart.BizId;
                }
            }
            else
            {
                ViewBag.ValidateAddress = "Oops, feel like something wrong with you address. Please check it and try again.";
                TempData["valid"]       = "check input and try again.";
            }
            gcm.LBizForGoogleMap = lb;
            ViewBag.servicephone = ServicePhone;
            //ViewBag.maplink = GoogleMapLink(cm.BizInfo);
            return(PartialView(gcm));
        }