def dashboard(request): db = default_storage() contracts = Contract.objects(db).order_by("next_date_time") payments = Payment.objects(db).order_by("date_time") return { "contracts": contracts, "payments": payments, "render_rel_delta": render_rel_delta, "chart_url_for_payments": chart_url_for_payments, "today": datetime.datetime.today(), "default_currency": get_default_currency(), }
def get_amount_as(self, currency=None): """ Returns amount converted to given currency. :param currency: Currency name, e.g. "EUR" or "USD". If `None`, bundle setting ``default_currency` if used. """ currency = currency or utils.get_default_currency() if self.amount == 0: return 0 db = self._saved_state.storage return CurrencyRate.convert(db, self.currency, currency, self.amount)
def get_expected_payment_amount_as(self, currency=None): currency = currency or utils.get_default_currency() amount_str = str(self.expected_payment_amount) try: amount = Decimal(amount_str) except decimal.InvalidOperation: # e.g. 'N/A' as returned by Dark aggregators in some cases return 0 if amount == 0: return 0 db = self._saved_state.storage x = CurrencyRate.convert(db, self.currency, currency, amount) return x.quantize(Decimal('0.01'))