コード例 #1
0
 def total_amount(self):
     return self.credit_set.aggregate(total=models.Sum('amount'))['total']
コード例 #2
0
 def rating(self):
     rating_aggregation_result = self.actions.aggregate(
         rating=models.Sum("action"))["rating"]
     rating = rating_aggregation_result if rating_aggregation_result is not None else 0
     return rating
コード例 #3
0
    def attendee_total(self):
        total = self.atriaeventattendance_set\
                .filter(attendance_type__attendance_type='Attendee')\
                .aggregate(sum=models.Sum('user_count'))['sum']

        return total if total else 0
コード例 #4
0
ファイル: models.py プロジェクト: pc-coholic/byro
 def donation_balance(self) -> Decimal:
     return self.donations.aggregate(donations=models.Sum('amount'))['donations'] or Decimal('0.00')
コード例 #5
0
ファイル: collector.py プロジェクト: stefmec/geonode
    def set_metric_values(self, metric_name, column_name,
                          requests, service, **metric_values):
        metric = Metric.get_for(metric_name, service=service)

        def _key(v):
            return v['value']

        # we need list of three items:
        #  * value - numeric value for given metric
        #  * label - label value to be used
        #  * samples count - number of samples for a metric
        if metric.is_rate:
            row = requests.aggregate(value=models.Avg(column_name))
            row['samples'] = requests.count()
            row['label'] = Metric.TYPE_RATE
            q = [row]
        elif metric.is_count:
            q = []
            values = requests.distinct(
                column_name).values_list(column_name, flat=True)
            for v in values:
                rqs = requests.filter(**{column_name: v})
                row = rqs.aggregate(
                    value=models.Sum(column_name),
                    samples=models.Count(column_name)
                )
                row['label'] = v
                q.append(row)
            q.sort(key=_key)
            q.reverse()
        elif metric.is_value:
            q = []
            is_user_metric = column_name == "user_identifier"
            if is_user_metric:
                values = requests.distinct(
                    column_name).values_list(column_name, "user_username")
            else:
                values = requests.distinct(
                    column_name).values_list(column_name, flat=True)
            for v in values:
                if v is not None:
                    value = v
                    if is_user_metric:
                        value = v[0]
                    rqs = requests.filter(**{column_name: value})
                    row = rqs.aggregate(
                        value=models.Count(column_name),
                        samples=models.Count(column_name)
                    )
                    row['label'] = v
                    q.append(row)
            q.sort(key=_key)
            q.reverse()
        elif metric.is_value_numeric:
            q = []
            row = requests.aggregate(value=models.Max(column_name),
                                     samples=models.Count(column_name))
            row['label'] = Metric.TYPE_VALUE_NUMERIC
            q.append(row)
        else:
            raise ValueError("Unsupported metric type: {}".format(metric.type))
        rows = q[:100]
        metric_values.update({'metric': metric_name, 'service': service})
        for row in rows:
            label = row['label']
            value = row['value']
            samples = row['samples']
            metric_values.update({'value': value or 0,
                                  'label': label,
                                  'samples_count': samples,
                                  'value_raw': value or 0,
                                  'value_num': value if isinstance(value, (float, Decimal, int)) else None})
            log.debug(MetricValue.add(**metric_values))
コード例 #6
0
ファイル: models.py プロジェクト: cts-admin/cts
 def for_public_display(self):
     objs = self.get_queryset().filter(
         invoice__expiration_date__gte=timezone_today(), ).annotate(
             donated_amount=models.Sum('invoice__amount'))
     return objs.order_by('-donated_amount', 'display_name')
コード例 #7
0
def generate_donation_receipt(member, year):
    fees = member.fee_payments.filter(
        transaction__value_datetime__year=year).aggregate(
            fees=models.Sum('amount'))['fees'] or Decimal('0.00')
    donations = member.donations.filter(
        transaction__value_datetime__year=year).aggregate(
            donations=models.Sum('amount'))['donations'] or Decimal('0.00')
    address = "{}\n{}".format(member.name, member.address)
    if (donations + fees) <= 0:
        raise Exception('No donations or fees for {year}.'.format(year=year))

    story = []
    _buffer = BytesIO()
    local_settings = GemeinnuetzigkeitConfiguration.get_solo()
    global_settings = Configuration.get_solo()
    doc = get_default_document(_buffer)
    style = get_paragraph_style()

    # Header
    our_address = '\n'.join([global_settings.name,
                             global_settings.address]).replace('\n', '<br />')
    our_address = Paragraph(our_address, style['Normal'])
    our_title = Paragraph('Aussteller (Steuerbegünstigte Einrichtung)',
                          style['Heading5'])
    story.append(
        Table(
            [[
                our_title,
            ], [
                our_address,
            ]],
            colWidths=[doc.width * 1],
            hAlign='LEFT',
            style=TableStyle([
                ('ALIGN', (0, 0), (0, 0), 'CENTER'),
                ('BOX', (0, 0), (0, 1), 0.5, colors.black),
            ]),
        ))
    story.append(
        Paragraph('Bestätigung über Geldzuwendungen/Mitgliedsbeitrag',
                  style['Heading3']))
    story.append(
        Paragraph(
            'im Sinne des § 10b des Einkommenssteuergesetzes an eine der in § 5 Abs. 1 Nr. 9 des Körperschaftssteuergesetzes bezeichneten Körperschaften, Personenvereinigungen oder Vermögensmassen',
            style['Normal']))
    story.append(Spacer(1, 5 * mm))

    their_address = address.replace('\n', '<br />')
    their_address = Paragraph(their_address, style['Normal'])
    their_title = Paragraph('Name und Anschrift des Zuwendenden',
                            style['Heading5'])
    story.append(
        Table(
            [[their_title], [their_address]],
            colWidths=[doc.width * 1],
            style=TableStyle([
                ('ALIGN', (0, 0), (0, 0), 'CENTER'),
                ('BOX', (0, 0), (0, 1), 0.5, colors.black),
            ]),
        ))
    story.append(Spacer(1, 5 * mm))

    data = [
        [_('Product'), _('Tax rate'),
         _('Net'), _('Gross')],
    ]
    data = [['Art', 'in Ziffern', 'in Buchstaben', 'Datum']]
    if fees:
        data.append([
            'Beiträge',
            CURRENCY.format(fees),
            lib_num2words(fees, lang='de'), year
        ])
    if donations:
        data.append([
            'Spenden',
            CURRENCY.format(donations),
            lib_num2words(donations, lang='de'), year
        ])
    last_row = len(data) - 1

    story.append(
        Table(
            data=data,
            colWidths=[
                doc.width * 0.15, doc.width * 0.15, doc.width * 0.5,
                doc.width * 0.2
            ],
            style=TableStyle([
                ('FONTSIZE', (0, 0), (3, last_row), FONTSIZE),
                ('ALIGN', (0, 0), (1, last_row), 'LEFT'),
                ('ALIGN', (3, 0), (3, last_row), 'RIGHT'),
                ('BOX', (0, 0), (3, last_row), 1.0, colors.black),
                ('GRID', (0, 0), (3, last_row), 0.5, colors.black),
            ]),
        ))
    story.append(Spacer(1, 5 * mm))

    story.append(
        Paragraph(
            'Es handelt sich NICHT um den Verzicht auf Erstattung von Aufwendungen.',
            style['Normal']))
    story.append(Spacer(1, 5 * mm))
    loong = 'Wir sind wegen Förderung {zwecke} nach dem Freistellungsbescheid bzw. nach der Anlage zum Körperschaftssteuerbescheid des Finanzamts {amt} StNr. {nummer} vom {datum} für den letzten Veranlagungszeitraum {zeitraum} nach § 5 Abs. 1 Nr. 9 des Körperschaftssteuergesetzes von der Körperschaftssteuer und nach § 3 Nr. 6 des Gewerbesteuergesetzes von der Gewerbesteuer befreit.'
    loong = loong.format(
        zwecke=local_settings.reason,
        amt=local_settings.finanzamt,
        nummer=local_settings.vat_id,
        datum=local_settings.notification_date,
        zeitraum=local_settings.veranlagungszeitraum,
    )
    story.append(Paragraph(loong, style['Normal']))
    story.append(Spacer(1, 5 * mm))
    story.append(
        Table(
            [[
                Paragraph(
                    'Es wird bestätigt, dass die Zuwendung nur zur Förderung {zwecke} verwendet wird.'
                    .format(zwecke=local_settings.reason), style['Normal'])
            ]],
            colWidths=[doc.width * 1],
            style=TableStyle([
                ('ALIGN', (0, 0), (0, 0), 'CENTER'),
                ('BOX', (0, 0), (0, 0), 0.5, colors.black),
            ]),
        ))

    story.append(Spacer(1, 25 * mm))
    data = [[
        '{location}, {date}'.format(location=local_settings.location,
                                    date=formats.date_format(now().date(),
                                                             use_l10n=True))
    ], ['(Ort, Datum, und Unterschrift des Zuwendungsempfängers)']]
    story.append(
        Table(
            data=data,
            colWidths=[doc.width],
            style=TableStyle([
                ('LINEABOVE', (0, 1), (0, 1), 1.0, colors.black),
            ]),
        ))

    story.append(Spacer(1, 5 * mm))
    disclaimer1 = 'Wer vorsätzlich oder grob fahrlässig eine unrichtige Zuwendungsbestätigung erstellt oder wer veranlasst, dass Zuwendungen nicht zu den in der Zuwendungsbestätigung angegebenen steuerbegünstigten Zwecken verwendet werden, haftet für die Steuer, die dem Fiskus durch einen etwaigen Abzug der Zuwendungen beim Zuwendenden entgeht (§10b Abs. 4 EStG, §9 Abs. 3 KStG, §9 Nr. 5 GewStG).'
    disclaimer2 = 'Diese Bestätigung wird nicht als Nachweis für die steuerliche Berücksichtigung der Zuwendung anerkannt, wenn das Datum des Freistellungsbescheides länger als 5 Jahre bzw. das Datum der vorläufigen Bescheinigung länger als 3 Jahre seit Ausstellung der Bestätigung zurückliegt (BMF vom 15.12.1994 – BStBl I S. 884).'
    story.append(Paragraph('Hinweis', style['Heading5']))
    story.append(Paragraph(disclaimer1, style['Normal']))
    story.append(Paragraph(disclaimer2, style['Normal']))

    doc.build(story)
    _buffer.seek(0)
    doc = Document.objects.create(
        title='Zuwendungsbestätigung {}'.format(year),
        category=DOCUMENT_CATEGORY,
        member=member,
    )
    doc.document.save(
        'spenden/spenden_{}_{}_{}.pdf'.format(year, member.number,
                                              member.name),
        ContentFile(_buffer.read()))
    doc.save()
    return doc
コード例 #8
0
ファイル: _shipments.py プロジェクト: teserak/shoop
 def total_products(self):
     return (self.products.aggregate(
         quantity=models.Sum("quantity"))["quantity"] or 0)
コード例 #9
0
 def calculate_capital(self):
     capital = self.ruble_set.aggregate(nominal=models.Sum("nominal"))
     return capital.get('nominal') or 0
コード例 #10
0
def aggregate_sum(field, qs):
    return qs.aggregate(total=Coalesce(models.Sum(field), 0))
コード例 #11
0
ファイル: models.py プロジェクト: shackspace/shackbureau
 def get_payed_membership_fee(self, year):
     sum_fee = AccountTransaction.objects \
         .filter(member=self, due_date__year=year, transaction_type='membership fee') \
         .filter(Q(booking_type='deposit') | Q(booking_type='charge back')) \
         .aggregate(models.Sum('amount')).get('amount__sum') or 0
     return sum_fee
コード例 #12
0
 def points(self):
     result = self.postlike_set.all().aggregate(
         sum=models.Sum('points'))['sum']
     return result or 0
コード例 #13
0
ファイル: models.py プロジェクト: lemoer/byro
 def donation_balance(self) -> Decimal:
     return self.donations.aggregate(
         donations=models.Sum("amount"))["donations"] or Decimal("0.00")
コード例 #14
0
ファイル: models.py プロジェクト: zbanks/rankazoo
 def value(self):
     v = self.queueitemvote_set.aggregate(models.Sum('value'))["value__sum"]
     if v:
         return v
     else:
         return 0
コード例 #15
0
ファイル: models.py プロジェクト: themarti/numbles
 def sum(self):
     """
     Calculate the sum of transactions in the query set.
     """
     return self.aggregate(
         sum=models.Sum('amount'))['sum'] or Decimal('0.00')
コード例 #16
0
 def duration(self):
     sum_ = self.timetable_entries.aggregate(
         sum=models.Sum('duration'))['sum']
     return sum_ or timedelta()
コード例 #17
0
ファイル: models.py プロジェクト: themarti/numbles
 def sum(self):
     """
     Calculate the sum of account balances in the query set.
     """
     return self.aggregate(
         sum=models.Sum('balance'))['sum'] or Decimal('0.00')
コード例 #18
0
 def _get_start_for_index(self, index):
     offset = (self.timetable_entries.filter(
         timetable_index__lt=index).aggregate(
             sum=models.Sum('duration'))['sum'])
     return self.start + (offset or timedelta())
コード例 #19
0
 def length(self):
     """The total length of all the lessons"""
     return self.lessons.all().aggregate(
         sum=models.Sum('length'))['sum'] or 0
コード例 #20
0
 def total_redirecciones(self):
     return self.aggregate(redirecciones=models.Sum('contador'))
コード例 #21
0
ファイル: models.py プロジェクト: WalterCM/Platero
 def total(self):
     return self.categories.aggregate(
         total=models.Sum('planned_spending')
     ).get('total')
コード例 #22
0
 def fechas(self, pk):
     return self.values('fecha').annotate(julio=models.Sum(
         'contador',
         filter=models.Q(fecha__gte=datetime.date(2019, 7, 1),
                         fecha__lte=datetime.date(2019, 7, 31)))).filter(
                             pk=pk)
コード例 #23
0
 def paid_totals_for(self, year, month):
     """
     Return paid Transfers during a certain year, month with total amounts annotated.
     """
     return self.during(year, month).aggregate(total_amount=models.Sum("amount"))
コード例 #24
0
 def amount_donated(self):
     return self.order_set.filter(
         status=StatusDefinition.SUCCESS
     ).aggregate(
         amount_donated=models.Sum('total')
     )['amount_donated']
コード例 #25
0
ファイル: models.py プロジェクト: soupytwist/judge
 def total_points(self):
     return self.parts.aggregate(total=models.Sum("points"))['total'] or 0
コード例 #26
0
ファイル: models.py プロジェクト: kayiwa/sfm-ui
 def warcs_count(self):
     """
     Returns total number of WARC files harvested for this collection.
     """
     return Harvest.objects.filter(collection=self).aggregate(
         count=models.Sum("warcs_count"))["count"] or 0
コード例 #27
0
 def get_num_user_applications(self, user):
     OrderDiscount = get_model('order', 'OrderDiscount')
     aggregates = OrderDiscount.objects.filter(offer_id=self.id,
                                               order__user=user)\
         .aggregate(total=models.Sum('frequency'))
     return aggregates['total'] if aggregates['total'] is not None else 0
コード例 #28
0
ファイル: models.py プロジェクト: kayiwa/sfm-ui
 def warcs_bytes(self):
     """
     Returns total number of WARC bytes harvested for this collection.
     """
     return Harvest.objects.filter(collection=self).aggregate(
         total=models.Sum("warcs_bytes"))["total"]
コード例 #29
0
 def amount_repaid(self):
     """
     :return: the current amount of money repaid by the project to RE-volv.
     """
     return self.adminrepayment_set.aggregate(
         models.Sum('amount'))["amount__sum"] or 0.0
コード例 #30
0
 def balance(self) -> Decimal:
     config = Configuration.get_solo()
     cutoff = now() - relativedelta(months=config.liability_interval)
     qs = self.transactions.filter(value_datetime__lte=now(), value_datetime__gte=cutoff)
     liability = qs.filter(source_account__account_category='member_fees').aggregate(liability=models.Sum('amount'))['liability'] or Decimal('0.00')
     asset = qs.filter(destination_account__account_category='member_fees').aggregate(asset=models.Sum('amount'))['asset'] or Decimal('0.00')
     return asset - liability