Ejemplo n.º 1
0
 def _fmt_credit(credit_amount=None):
     if credit_amount is None:
         return {
             'amount': "--",
         }
     return {
         'amount': quantize_accounting_decimal(credit_amount),
         'is_visible': credit_amount != Decimal('0.0'),
     }
Ejemplo n.º 2
0
 def paginated_list(self):
     for invoice in self.paginated_invoices.page(self.page).object_list:
         try:
             last_billing_record = CustomerBillingRecord.objects.filter(
                 invoice=invoice).latest('date_created')
             if invoice.is_paid:
                 payment_status = (
                     _("Paid on %s.") %
                     invoice.date_paid.strftime(USER_DATE_FORMAT))
                 payment_class = "label label-default"
             else:
                 payment_status = _("Not Paid")
                 payment_class = "label label-danger"
             date_due = ((invoice.date_due.strftime(USER_DATE_FORMAT)
                          if not invoice.is_paid else _("Already Paid"))
                         if invoice.date_due else _("None"))
             yield {
                 'itemData': {
                     'id':
                     invoice.id,
                     'invoice_number':
                     invoice.invoice_number,
                     'start':
                     invoice.date_start.strftime(USER_DATE_FORMAT),
                     'end':
                     invoice.date_end.strftime(USER_DATE_FORMAT),
                     'plan':
                     None,
                     'payment_status':
                     payment_status,
                     'payment_class':
                     payment_class,
                     'date_due':
                     date_due,
                     'pdfUrl':
                     reverse(BillingStatementPdfView.urlname,
                             args=[
                                 self.domain,
                                 last_billing_record.pdf_data_id
                             ]),
                     'canMakePayment': (not invoice.is_paid
                                        and self.can_pay_invoices),
                     'balance':
                     "%s" % quantize_accounting_decimal(invoice.balance),
                 },
                 'template': 'statement-row-template',
             }
         except CustomerBillingRecord.DoesNotExist:
             log_accounting_error(
                 "An invoice was generated for %(invoice_id)d "
                 "(domain: %(domain)s), but no billing record!" % {
                     'invoice_id': invoice.id,
                     'domain': self.domain,
                 },
                 show_stack_trace=True)
Ejemplo n.º 3
0
 def paginated_list(self):
     for invoice in self.paginated_invoices.page(self.page).object_list:
         try:
             last_billing_record = CustomerBillingRecord.objects.filter(
                 invoice=invoice
             ).latest('date_created')
             if invoice.is_paid:
                 payment_status = (_("Paid on %s.")
                                   % invoice.date_paid.strftime(USER_DATE_FORMAT))
                 payment_class = "label label-default"
             else:
                 payment_status = _("Not Paid")
                 payment_class = "label label-danger"
             date_due = (
                 (invoice.date_due.strftime(USER_DATE_FORMAT)
                  if not invoice.is_paid else _("Already Paid"))
                 if invoice.date_due else _("None")
             )
             yield {
                 'itemData': {
                     'id': invoice.id,
                     'invoice_number': invoice.invoice_number,
                     'start': invoice.date_start.strftime(USER_DATE_FORMAT),
                     'end': invoice.date_end.strftime(USER_DATE_FORMAT),
                     'plan': None,
                     'payment_status': payment_status,
                     'payment_class': payment_class,
                     'date_due': date_due,
                     'pdfUrl': reverse(
                         BillingStatementPdfView.urlname,
                         args=[self.domain, last_billing_record.pdf_data_id]
                     ),
                     'canMakePayment': (not invoice.is_paid
                                        and self.can_pay_invoices),
                     'balance': "%s" % quantize_accounting_decimal(invoice.balance),
                 },
                 'template': 'statement-row-template',
             }
         except CustomerBillingRecord.DoesNotExist:
             log_accounting_error(
                 "An invoice was generated for %(invoice_id)d "
                 "(domain: %(domain)s), but no billing record!" % {
                     'invoice_id': invoice.id,
                     'domain': self.domain,
                 }
             )
Ejemplo n.º 4
0
 def rows(self):
     rows = []
     for record in self.payment_records:
         rows.append([
             format_datatables_data(
                 text=record.date_created.strftime(USER_DATE_FORMAT),
                 sort_key=record.date_created.isoformat(),
             ),
             self.get_account(record).name,
             self.get_account(record).created_by_domain,
             record.payment_method.web_user,
             format_datatables_data(
                 text=mark_safe(
                     '<a href="https://dashboard.stripe.com/payments/%s"'
                     '   target="_blank">%s'
                     '</a>' % (
                         record.transaction_id,
                         record.transaction_id,
                     )),
                 sort_key=record.transaction_id,
             ),
             quantize_accounting_decimal(record.amount),
         ])
     return rows