コード例 #1
0
    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
コード例 #2
0
 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
コード例 #3
0
    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
コード例 #4
0
    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
コード例 #5
0
 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