def get_active_order(user): timezone = Organization.objects.all()[0].timezone # only one can exist timezone = pytz.timezone(str(timezone)) # get active order for today cutoff = Organization.get_today_start_utc() active_order = Order.objects.filter(customer__user=user, timestamp__gte=cutoff, ordered=False) order_list = [order.json_format(timezone) for order in active_order] return order_list
def get_order_history(user, days=30): # gets past ordered history timezone = Organization.objects.all()[0].timezone # only one can exist timezone = pytz.timezone(str(timezone)) today = Organization.get_today_start_utc() cutoff = today - datetime.timedelta(days=days) order_history = Order.objects.filter(customer__user=user, timestamp__gte=cutoff, ordered=True) order_list = [order.json_format(timezone) for order in order_history] return order_list
def order_summary(team): timezone = Organization.objects.all()[0].timezone # only one can exist timezone = pytz.timezone(str(timezone)) today = Organization.get_today_start_utc() unordered = Order.objects.filter(team=team, timestamp__gte=today, ordered=False) unordered_json = [u.json_format(timezone) for u in unordered] all_orders = Order.objects.filter(team=team, timestamp__gte=today) all_orders_json = [o.json_format(timezone) for o in all_orders] if len(unordered_json): unordered_df = pd.DataFrame(unordered_json) unordered_df['price'] = unordered_df['price'].astype('float32') meals_by_vendors = unordered_df.groupby(["vendor", "meal"]).size().to_dict() meals_by_vendors_json = {} for (vendor, meal), v in meals_by_vendors.items(): try: meals_by_vendors_json[vendor][meal] = v except KeyError: meals_by_vendors_json[vendor] = {meal: v} total_owning_by_vendors_json = unordered_df.groupby( "vendor").sum().to_dict() else: meals_by_vendors_json = {'': {'': ''}} total_owning_by_vendors_json = {'': ''} vendor_info = [v.json_format() for v in team.vendors.all()] return { 'meals_by_vendors': meals_by_vendors_json, 'total_owning_by_vendors': total_owning_by_vendors_json, 'vendor_info': vendor_info, 'detail_order_info': sorted(all_orders_json, key=lambda x: (x['vendor'], x['meal'])) }