示例#1
0
文件: order.py 项目: yyaadet/mealing
def today(request, restaurant_id = 0, page = 1):
    """ get today's order
    """
    today = datetime.datetime(1, 1, 1).today()
    restaurants = Order.get_today_restaurants()
    try:
        restaurant = Restaurant.objects.get(id = restaurant_id)        
    except Exception, e:
        logging.warn("restaurant %d not exist" % restaurant_id)
        restaurant = None
示例#2
0
文件: order.py 项目: yyaadet/mealing
def export_today_orders(request):
    """ export orders of today
    """
    today = datetime.datetime(1, 1, 1).today().strftime("%Y%m%d")
    orders = Order.get_today_orders()
    retv = []
    retv.append([])
    retv.append([u"日期", u"编号", u"餐厅", u"部门", u"订餐人", u"菜品", u"价格"])
    total_price = 0
    for order in orders:
        retv.append([today, order.today_id, order.restaurant.name, order.get_department(), 
                     order.get_owners_string(), order.get_menus_string(), order.price])
    retv.insert(0, [u"总费用", total_price])
    return "%s.csv" % today, retv
示例#3
0
文件: order.py 项目: yyaadet/mealing
def ready(request, page = 1):
    """ ready to complete order
    """
    if request.user.is_authenticated() is False:
        return redirect("/login/")
    menus = Menu.objects.filter(id__in = request.session.get("menus", []))
    paginator = Paginator(menus, 20)
    try:
        menus_page = paginator.page(page)
    except PageNotAnInteger:
        # If page is not an integer, deliver first page.
        menus_page = paginator.page(1)
    except EmptyPage:
        # If page is out of range (e.g. 9999), deliver last page of results.
        menus_page = paginator.page(paginator.num_pages)
    restaurant = None
    # sum total price
    total_price = 0
    if menus:
        restaurant = menus[0].restaurant
        for menu in menus:
            total_price += menu.price
    # init and check form
    if request.method == "POST":
        form = CommitOrderForm(request.POST)
        if form.is_valid():
            receivers = []
            receiver_names = form.cleaned_data["receivers"].split(" ")
            config = Config.get_default()
            # check fee is validate
            if _is_fee_sufficient(request, config, len(receiver_names), total_price) is False:
                return render_template("order_ready.html", 
                           {"menus_page": menus_page, "restaurant": restaurant, 
                            "total_price": total_price, "form": form}, 
                           request = request)
            if  _is_order_shutdown(request, config) is True:
                return render_template("order_ready.html", 
                           {"menus_page": menus_page, "restaurant": restaurant, 
                            "total_price": total_price, "form": form}, 
                           request = request)
            if _is_restaurant_full(request, restaurant, len(receiver_names)) is True:
                form.set_custom_error(u"餐厅已满")
                return render_template("order_ready.html", 
                           {"menus_page": menus_page, "restaurant": restaurant, 
                            "total_price": total_price, "form": form}, 
                           request = request)
            # begin to order now    
            order = Order(sponsor = request.user, restaurant = restaurant, price = total_price)
            order.save()
            for name in receiver_names:
                user = DjangoUser.objects.filter(username = name)[0]
                user.get_profile().order_meal(order)
                user.get_profile().save()
                receivers.append(user)
            order.owners = receivers
            order.menus = menus
            order.save()
            # update restaurant infomation
            restaurant.add_order_number(len(receiver_names))
            restaurant.save()
            # update menu information
            for menu in menus:
                menu.order_number += len(receiver_names)
                menu.last_order_datetime = datetime.datetime(1, 1, 1).today()
                menu.save()
            # clear session
            request.session["menus"] = set()
            return redirect("/order/%d/" % order.id)       
    else:
        form = CommitOrderForm({"receivers": request.user.username})
    return render_template("order_ready.html", 
                           {"menus_page": menus_page, "restaurant": restaurant, 
                            "total_price": total_price, "form": form}, 
                           request = request)
示例#4
0
文件: order.py 项目: yyaadet/mealing
        raise Http404
    return render_template("order_info.html", {"order": order}, request)

def today(request, restaurant_id = 0, page = 1):
    """ get today's order
    """
    today = datetime.datetime(1, 1, 1).today()
    restaurants = Order.get_today_restaurants()
    try:
        restaurant = Restaurant.objects.get(id = restaurant_id)        
    except Exception, e:
        logging.warn("restaurant %d not exist" % restaurant_id)
        restaurant = None

    if not restaurant:
        orders = Order.get_today_orders()
        prefix = "/order/today"
    else:
        orders = Order.get_today_orders(restaurant)
        prefix = "/order/today/%d" % restaurant.id 
    total_price = 0
    for order in orders:
        total_price += order.price
    paginator = Paginator(orders, 50)
    try:
        orders_page = paginator.page(page)
    except PageNotAnInteger:
        # If page is not an integer, deliver first page.
        orders_page = paginator.page(1)
    except EmptyPage:
        # If page is out of range (e.g. 9999), deliver last page of results.