def make_query(self, ask=None): data = [] record = self.model.objects.all().dates('timestamp', 'month') if 'start' in ask.keys() and 'end' in ask.keys(): start = ask['start'] end = ask['end'] record = record.filter(timestamp__range=(start, end)) for month in sorted(list(record), reverse=True): records = self.model.objects.filter(timestamp__year=month.year, timestamp__month=month.month) records = filter_keys(ask, records, rangeless=True) records = records.aggregate(record=Sum( F(self.price) * F(self.quant), output_field=FloatField())) if not records['record']: continue data.append({ 'year': month.year, 'month': month.month, 'mname': MONTHS[month.month - 1], 'record': records['record'], }) return data
def make_query(self, ask=None): data = [] record = Cash.objects.all() for cash in record: records = self.model.objects.filter(cash=cash) records = filter_keys(ask, records) records = records.aggregate(record=Sum( F(self.price) * F(self.quant), output_field=FloatField())) if not records['record']: continue data.append({ 'cat': cash.system + ' ~ ' + cash.currency, 'cat_id': cash.id, 'record': records['record'], }) return data
def make_query(self, ask=None): data = [] record = User.objects.all() for user in record: records = self.model.objects.filter(employee=user) records = filter_keys(ask, records) records = records.aggregate(record=Sum( F(self.price) * F(self.quant), output_field=FloatField())) if not records['record']: continue data.append({ 'cat': user.username, 'cat_id': user.id, 'record': records['record'], }) return data
def make_query(self, ask=None): data = [] record = Product.objects.all() for prod in record: records = self.model.objects.filter(product=prod) records = filter_keys(ask, records) records = records.aggregate(record=Sum( F(self.price) * F(self.quant), output_field=FloatField())) if not records['record']: continue data.append({ 'cat': prod.name, 'cat_id': prod.id, 'record': records['record'], }) return data
def make_query(self, ask=None): data = [] today = datetime.datetime.today() this_week = week_of_year(today.month, today.day) for week in range(this_week, 0, -1): records = self.model.objects.filter(timestamp__week=week) records = filter_keys(ask, records) records = records.aggregate(record=Sum( F(self.price) * F(self.quant), output_field=FloatField())) if not records['record']: pass else: data.append({ 'week': week, 'year': today.year, 'month': MONTHS[today.month - 1], 'record': records['record'], }) today = today - datetime.timedelta(weeks=1) # raise Exception('break') return data