コード例 #1
0
        public ActionResult LeaveDeliveryBoy([Bind(Include = "Id")] GroupedOrder groupedOrder)
        {
            if (ModelState.IsValid)
            {
                var dbGroupedOrder = db.GroupedOrders.Single(go => go.Id == groupedOrder.Id);
                dbGroupedOrder.DeliveryBoy_Id = null;
                dbGroupedOrder.DeliveryBoy    = null;
                dbGroupedOrder.LimitDate      = null;

                db.Entry(dbGroupedOrder).State = EntityState.Modified;

                var leaveDeliveryBoyEvent = new GroupedOrderEvent
                {
                    CreateUserId   = User.Identity.GetUserId(),
                    CreationDate   = DateTime.UtcNow,
                    Description    = "{0} has leave the delivery boy function",
                    EventType      = EventType.LeaveDeliveryBoyFunction,
                    Users          = dbGroupedOrder.Orders.Select(o => o.CreateUser).ToList(),
                    EventStatus    = GroupedOrderEventStatus.Accepted,
                    GroupedOrderId = groupedOrder.Id
                };

                db.Entry(leaveDeliveryBoyEvent).State = EntityState.Added;

                db.SaveChanges();

                return(RedirectToAction("Index", "GroupedOrders"));
            }

            return(View(groupedOrder));
        }
コード例 #2
0
    public static ArrayList GetGroupedOrders(DateTime currentDate, DateTime endDate, Boolean shipped)
    {
        const string query     = @"SELECT client, date, SUM(total) as total
                                FROM (
	                                    SELECT client, date, (amount * price) AS total
	                                    FROM [CoffeeDB].[dbo].[orders]
	                                    WHERE date >= @date1
	                                    AND date <= @date2
                                        AND orderShipped = @shipped
                                )as result
                                GROUP BY client, date";
        ArrayList    orderList = new ArrayList();
        int          lastDay;

        //Check if current date.month == enddate.month
        if (currentDate.Month == endDate.Month && currentDate.Year == endDate.Year)
        {
            //Yes, Last day to be displayed is the selected date in txtOpenOrders2. (Orders page)
            lastDay = endDate.Day;
        }
        else
        {
            //No, Other months will be displayed after this one. Last day = Last day of the month.
            lastDay = DateTime.DaysInMonth(currentDate.Year, currentDate.Month);
        }

        DateTime date2 = new DateTime(currentDate.Year, currentDate.Month, lastDay);

        try
        {
            conn.Open();
            command.CommandText = query;
            command.Parameters.Add(new SqlParameter("@date1", currentDate));
            command.Parameters.Add(new SqlParameter("@date2", date2));
            command.Parameters.Add(new SqlParameter("@shipped", shipped));
            SqlDataReader reader = command.ExecuteReader();

            while (reader.Read())
            {
                string   client = reader.GetString(0);
                DateTime date   = reader.GetDateTime(1);
                double   total  = reader.GetDouble(2);

                GroupedOrder groupedOrder = new GroupedOrder(client, date, total);
                orderList.Add(groupedOrder);
            }
        }
        catch (SqlException ex)
        {
            MessageBox.Show(ex.ToString());
        }
        finally
        {
            conn.Close();
            command.Parameters.Clear();
        }

        return(orderList);
    }
コード例 #3
0
    public static ArrayList GetGroupedOrders(DateTime currentDate, DateTime endDate, Boolean shipped)
    {
        string    query     = @"SELECT client, date, SUM(total)
                            FROM
                            (
	                            SELECT client, date, (amount * price) AS total
	                            FROM [Coffee_DB].[dbo].[orders]
	                            WHERE
	                            date >= @date1
	                            AND date <= @date2
	                            AND orderShipped = @orderShipped
                            )
                            AS result
                            GROUP BY client, date";
        ArrayList orderList = new ArrayList();
        int       lastDay;

        //if current date.month == enddate.month
        if (currentDate.Month == endDate.Month && currentDate.Year == endDate.Year)
        {
            lastDay = endDate.Day;
        }
        else
        {
            lastDay = DateTime.DaysInMonth(currentDate.Year, currentDate.Month);
        }

        DateTime date2 = new DateTime(currentDate.Year, currentDate.Month, lastDay);

        try
        {
            conn.Open();
            command.CommandText = query;
            command.Parameters.Add(new SqlParameter("@date1", currentDate));
            command.Parameters.Add(new SqlParameter("@date2", date2));
            command.Parameters.Add(new SqlParameter("@orderShipped", shipped));

            SqlDataReader reader = command.ExecuteReader();

            while (reader.Read())
            {
                string   client = reader.GetString(0);
                DateTime date   = reader.GetDateTime(1);
                double   total  = reader.GetDouble(2);

                GroupedOrder groupedOrder = new GroupedOrder(client, date, total);
                orderList.Add(groupedOrder);
            }
        }
        catch (Exception e)
        {
        }
        finally
        {
            conn.Close();
            command.Parameters.Clear();
        }
        return(orderList);
    }
コード例 #4
0
    public static ArrayList GetGroupedOrders(String name)
    {
        string    query     = @"SELECT date, SUM(total), orderShipped 
                           FROM ( 
                                  SELECT date, (amount * price) AS total, orderShipped 
                                  FROM orders
                                  WHERE clientName = @date1
                                )as result 
                           GROUP BY date, orderShipped";
        ArrayList orderList = new ArrayList();

        try
        {
            conn.Open();
            command.CommandText = query;
            command.Parameters.Add(new SqlParameter("@date1", name));
            SqlDataReader reader = command.ExecuteReader();

            while (reader.Read())
            {
                DateTime date    = reader.GetDateTime(0);
                double   total   = reader.GetDouble(1);
                bool     shipped = reader.GetBoolean(2);

                GroupedOrder groupedOrder = new GroupedOrder(name, date, total, shipped);
                orderList.Add(groupedOrder);
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
        finally
        {
            conn.Close();
            command.Parameters.Clear();
        }
        return(orderList);
    }
コード例 #5
0
        // GET: Orders/Create
        public ActionResult Create(Guid?shopId, Guid?groupedOrderId)
        {
            if (!shopId.HasValue)
            {
                return(RedirectToAction("ChooseShop"));
            }

            var currentUser = UserManager.FindById(User.Identity.GetUserId());

            GroupedOrder groupedOrder;

            if (groupedOrderId.HasValue)
            {
                groupedOrder = db.GroupedOrders.Single(go => go.Id == groupedOrderId.Value);
            }
            else
            {
                groupedOrder = new GroupedOrder
                {
                    LinkedShop = db.Shops.Single(s => s.Id == shopId)
                };
            }

            var order = new Order
            {
                CreationDate = DateTime.UtcNow,
                CreateUser   = currentUser,
                OrderDate    = DateTime.UtcNow,
                GroupedOrder = groupedOrder,
                OrderLines   = new List <OrderLine> {
                    new OrderLine
                    {
                        Description = string.Format("je suis partant pour une commande au {0}", groupedOrder.LinkedShop.Name)
                    }
                }
            };

            return(View(order));
        }
コード例 #6
0
        public ActionResult BecomingDeliveryBoy([Bind(Include = "Id,CreateUser,CreationDate,LimitDate,LinkedShop")] GroupedOrder groupedOrder)
        {
            var dbGroupedOrder = db.GroupedOrders.Single(go => go.Id == groupedOrder.Id);
            var currentUserId  = User.Identity.GetUserId();

            if (dbGroupedOrder.Orders.All(o => o.CreateUser_Id != currentUserId))
            {
                ModelState.AddModelError("DeliveryBoy", "You have to join this order before becoming delivery boy.");
            }

            if (ModelState.IsValid)
            {
                dbGroupedOrder.DeliveryBoy_Id = currentUserId;
                dbGroupedOrder.LimitDate      = groupedOrder.LimitDate;

                db.Entry(dbGroupedOrder).State = EntityState.Modified;

                var newGroupedOrderEvent = new GroupedOrderEvent
                {
                    CreateUserId   = User.Identity.GetUserId(),
                    CreationDate   = DateTime.UtcNow,
                    Description    = "{0} became delivery boy by its own.",
                    EventStatus    = GroupedOrderEventStatus.Accepted,
                    EventType      = EventType.BecomingDeliveryBoy,
                    GroupedOrderId = groupedOrder.Id,
                    Users          = dbGroupedOrder.Orders.Select(o => o.CreateUser).ToList()
                };
                db.Entry(newGroupedOrderEvent).State = EntityState.Added;

                db.SaveChanges();

                return(RedirectToAction("Index", "GroupedOrders"));
            }

            return(View(groupedOrder));
        }