def GET(self): shopping_basket = web.ctx.session.shoppingbasket shopping_cost = web.ctx.session.shoppingcost shopping_discount = web.ctx.session.shoppingdiscount user_info = web.ctx.session.userinfo route_id = web.ctx.session.routeid menu_calendar = web.ctx.session.menucalendar menu_date = web.ctx.session.menudate ot_flag = 0 ot_ts = int(time.mktime(time.strptime(str(menu_date)+" 10:32:00", "%Y-%m-%d %H:%M:%S"))) cur_ts = int(time.time()) if cur_ts > ot_ts: ot_flag = 1 i = web.input() param = i.get("param") if param: order_info = {} order_list = param.split("|") for order in order_list: if order: id,cnt = order.split("_") order_info[id] = cnt lunches = list(model.get_menu(int(route_id), menu_date)) _count = 0 _price0 = 0 _price2 = 5.0 if menu_date != str(datetime.date.today()): shopping_discount[menu_date] = 1 #早鸟计划 for lunch in lunches: if order_info.has_key(lunch.ID): cnt = order_info[lunch.ID] if not shopping_basket.has_key(menu_date): shopping_basket[menu_date] = {} if not shopping_basket[menu_date].has_key(lunch.ID): shopping_basket[menu_date][lunch.ID] = {} shopping_basket[menu_date][lunch.ID]["Count"] = cnt shopping_basket[menu_date][lunch.ID]["Price"] = lunch.Price shopping_basket[menu_date][lunch.ID]["Name"] = lunch.Meal _price0 += float(lunch.Price) * float(cnt) _count += int(cnt) else: if shopping_basket.has_key(menu_date) and shopping_basket[menu_date].has_key(lunch.ID): del shopping_basket[menu_date][lunch.ID] if not shopping_cost.has_key(menu_date): shopping_cost[menu_date] = {} shopping_cost[menu_date]["price0"] = _price0 shopping_cost[menu_date]["price1"] = 0 shopping_cost[menu_date]["price2"] = _price2 shopping_cost[menu_date]["price"] = _price0 + _price2 shopping_cost[menu_date]["count"] = _count web.ctx.session.shoppingbasket = shopping_basket web.ctx.session.shoppingcost = shopping_cost web.ctx.session.shoppingdiscount = shopping_discount web.ctx.session.webpage = "bill" logging.info("[bill][uid:%s]", web.ctx.session.openid) if user_info.has_key("ID"): return render.bill(user_info, shopping_basket, menu_calendar, shopping_cost, ot_flag, shopping_discount) else: web.seeother('/delivery') '''
def GET(self): # 2016/04/29 guard code. if web.ctx.session.webpage == "bill": web.ctx.session.webpage = "menus" return web.seeother("menus") i = web.input() office_id = i.get("officeid") menu_date = i.get("menudate") # different meaning, NEXT menudate route_id = i.get("routeid") if route_id is None: route_id = 0 lunches_info = {} menu_calendar = web.ctx.session.menucalendar shopping_basket = web.ctx.session.shoppingbasket shopping_cost = web.ctx.session.shoppingcost shopping_discount = web.ctx.session.shoppingdiscount user_info = web.ctx.session.userinfo # if parameters, load previous menu date param = i.get("param") if param: _menudate = web.ctx.session.menudate order_info = {} # print _menudate+":"+param order_list = param.split("|") for order in order_list: if order: id, cnt = order.split("_") order_info[id] = cnt lunches = list(model.get_menu(int(route_id), _menudate)) _count = 0 _price0 = 0.0 _price2 = 5.0 if _menudate != str(datetime.date.today()): shopping_discount[_menudate] = 1 # 早鸟计划 for lunch in lunches: if order_info.has_key(lunch.ID): cnt = order_info[lunch.ID] if not shopping_basket.has_key(_menudate): shopping_basket[_menudate] = {} if not shopping_basket[_menudate].has_key(lunch.ID): shopping_basket[_menudate][lunch.ID] = {} shopping_basket[_menudate][lunch.ID]["Count"] = cnt shopping_basket[_menudate][lunch.ID]["Price"] = lunch.Price shopping_basket[_menudate][lunch.ID]["Name"] = lunch.Meal _price0 += float(lunch.Price) * float(cnt) _count += int(cnt) else: if shopping_basket.has_key(_menudate) and shopping_basket[_menudate].has_key(lunch.ID): del shopping_basket[_menudate][lunch.ID] if not shopping_cost.has_key(_menudate): shopping_cost[_menudate] = {} shopping_cost[_menudate]["price0"] = _price0 shopping_cost[_menudate]["price"] = _price0 + _price2 shopping_cost[_menudate]["price2"] = _price2 shopping_cost[_menudate]["price1"] = 0 shopping_cost[_menudate]["count"] = _count web.ctx.session.shoppingbasket = shopping_basket web.ctx.session.shoppingcost = shopping_cost web.ctx.session.shoppingdiscount = shopping_discount # guard code menu_calender_sorted = sorted(menu_calendar.items(), key=lambda menu_calendar: menu_calendar[0]) if menu_date is None: menu_date = menu_calender_sorted[0][0] # print menu_date if office_id is None: office_id = web.ctx.session.officeid lunches = model.get_menu(int(route_id), menu_date) web.ctx.session.officeid = office_id offices_iter = model.get_office(int(office_id)) offices = list(offices_iter) user_info["OfficeAddr"] = offices[0].Name user_info["OfficeId"] = office_id if shopping_basket.has_key(str(menu_date)): lunches_info = shopping_basket[str(menu_date)] web.ctx.session.userinfo = user_info # calculate shopping counts shopping_count = 0 for _d in shopping_cost: if shopping_cost[_d].has_key("count"): shopping_count += shopping_cost[_d]["count"] web.ctx.session.menudate = str(menu_date) web.ctx.session.webpage = "menus" logging.info("[menu][uid:%s]", web.ctx.session.openid) return render.menus(menu_calender_sorted, lunches, offices[0], menu_date, lunches_info, shopping_count) """