Beispiel #1
0
        public void CreateLiveOrderNow(long menuId)
        {
            var menumovetolive = (from m in _context.tMenu where m.ID == menuId select m).FirstOrDefault();

            if (menumovetolive != null)
            {
                menumovetolive.IsMovedToLiveOrder = true;
                _context.SaveChanges();
            }

            var menu = _menuManagement.GetMenuById(menuId);

            var liveorder = (from LO in _context.tLiveOrders where LO.IsConvertedToOrder == false select LO).FirstOrDefault();

            if (liveorder == null)
            {
                liveorder                    = new tLiveOrders();
                liveorder.CycleId            = menu.CycleId;
                liveorder.IsConvertedToOrder = false;
                //TOTO: create a logic to create LOT
                liveorder.LotNo = Helper.Get3Digits() + "L" + Helper.Get3Digits();
                _context.tLiveOrders.Add(liveorder);
                _context.SaveChanges();
            }



            //get all the route for this menu reading from tMenuForRoute table
            var routes = (from r in _context.tMenuForRoute where r.MenuID == menuId select r).ToList();

            //loop in this above collection and add all the entries as liveorderdetails
            foreach (var route in routes)
            {
                var flights = route.Flights.Split(new char[] { ',' });
                for (int i = 0; i < flights.Length; i++)
                {
                    var flightNo = flights[i].Trim();
                    if (!string.IsNullOrEmpty(flightNo))
                    {
                        var loDetails = (from lo in _context.tLiveOrderDetails
                                         where lo.MenuId == menuId && lo.LiveOrderId == liveorder.LiveOrderId &&
                                         lo.RouteId == route.RouteID && lo.FlightNo == flightNo
                                         select lo).FirstOrDefault();

                        if (loDetails == null)
                        {
                            var liveOrderDetails = new tLiveOrderDetails();
                            liveOrderDetails.LiveOrderId = liveorder.LiveOrderId;
                            liveOrderDetails.MenuId      = menuId;
                            liveOrderDetails.RouteId     = route.RouteID;
                            liveOrderDetails.FlightNo    = flightNo;
                            _context.tLiveOrderDetails.Add(liveOrderDetails);
                        }
                    }
                }
            }
            _context.SaveChanges();
        }
Beispiel #2
0
        public tLiveOrders CreateReorderFromLiveOrder(Int64 orderId)
        {
            var liveOrderId = (from o in _context.tOrders where o.OrderID == orderId select o.LiveOrderId).FirstOrDefault();

            if (liveOrderId != null)
            {
                //getdata
                var getLiveOrderData = (from lo in _context.tLiveOrders where lo.LiveOrderId == liveOrderId select lo).FirstOrDefault();

                long newLiveorderId = 0;
                if (getLiveOrderData != null)
                {
                    //create new liveorder
                    var liveorder = new tLiveOrders();
                    liveorder.CycleId            = getLiveOrderData.CycleId;
                    liveorder.IsConvertedToOrder = false;
                    liveorder.LotNo = getLiveOrderData.LotNo;
                    _context.tLiveOrders.Add(liveorder);
                    _context.SaveChanges();

                    newLiveorderId = liveorder.LiveOrderId;
                }


                var oldliveorderdata = (from lod in _context.tLiveOrderDetails where lod.LiveOrderId == liveOrderId select lod).ToList();
                //create new live orderDetails
                foreach (var data in oldliveorderdata)
                {
                    var liveorderdetails = new tLiveOrderDetails();
                    liveorderdetails.LiveOrderId = newLiveorderId;
                    liveorderdetails.MenuId      = data.MenuId;
                    liveorderdetails.RouteId     = data.RouteId;
                    liveorderdetails.FlightNo    = data.FlightNo;
                    liveorderdetails.Quantity    = null;
                    _context.tLiveOrderDetails.Add(liveorderdetails);
                    _context.SaveChanges();

                    var menumovetolive = (from m in _context.tMenu where m.ID == data.MenuId select m).FirstOrDefault();
                    if (menumovetolive != null)
                    {
                        menumovetolive.IsMovedToLiveOrder = true;
                    }
                    _context.SaveChanges();
                }


                var newliveorderdata = (from newlo in _context.tLiveOrders
                                        where newlo.IsConvertedToOrder == false && newlo.LiveOrderId == newLiveorderId
                                        select newlo).FirstOrDefault();
                return(newliveorderdata);
            }
            else
            {
                return(null);
            }
        }