Exemplo n.º 1
0
    def index_view(self, period_interval=None, period=None):
        period_interval = request.view_args.get('period_interval', None)
        if not period_interval:
            period_interval = 'YYYY-MM'
        self._template_args['period_interval'] = period_interval
        request.view_args['period_interval'] = period_interval
        self._template_args['period_interval'] = period_interval
        period = request.view_args.get('period', None)
        if not period:
            period, = (self.session.query(db.func.to_char(JournalEntries.timestamp, period_interval))
                       .order_by(db.func.to_char(JournalEntries.timestamp, period_interval).desc()).first())
        self._template_args['period'] = period
        request.view_args['period'] = period
        self._template_args['period_intervals'] = [('YYYY', 'Annual'), ('YYYY-Q', 'Quarterly'),
                                                   ('YYYY-MM', 'Monthly'), ('YYYY-MM-DD', 'Daily')]

        self._template_args['periods'] = (self.session.query(db.func.to_char(JournalEntries.timestamp,
                                                                             self._template_args['period_interval']))
                                          .order_by(db.func.to_char(JournalEntries.timestamp,
                                                                    self._template_args['period_interval']).desc()).distinct().limit(30))
        self._template_args['periods'] = [period[0] for period in self._template_args['periods']]
        net_equity, = (self.session.query(func.sum(self.model.net_balance))
                       .join(Subaccounts)
                       .join(Accounts)
                       .join(Classifications)
                       .join(Elements)
                       .filter(db.or_(Elements.name == 'Assets', Elements.name == 'Liabilities',
                                      Elements.name == 'Capital Contributions', Elements.name == 'Capital Distributions'))
                       .filter(self.model.period_interval == request.view_args['period_interval'])
                       .filter(self.model.period == request.view_args['period']).one())
        net_equity = fs_currency_format(-net_equity)
        self._template_args['footer_row'] = {'subaccount': 'Net Equity', 'net_balance': net_equity}
        return super(BalanceSheetView, self).index_view()
Exemplo n.º 2
0
 def index_view(self, period_interval=None, period=None):
     period_interval = request.view_args.get('period_interval', 'YYYY-MM')
     self._template_args['period_interval'] = period_interval
     request.view_args['period_interval'] = period_interval
     period = request.view_args.get('period', None)
     if not period:
         net_income, period = (self.session.query(
             func.sum(self.model.net_changes),
             self.model.period).join(Subaccounts).join(Accounts).join(
                 Classifications).join(Elements).filter(
                     self.model.net_changes != 0).filter(
                         db.or_(
                             Elements.name == 'Revenues',
                             Elements.name == 'Expenses',
                             Elements.name == 'Gains',
                             Elements.name == 'Losses')).filter(
                                 self.model.period_interval == request.
                                 view_args['period_interval']).group_by(
                                     self.model.period).order_by(
                                         self.model.period.desc()).first())
         request.view_args['period'] = period
     else:
         net_income, = (self.session.query(func.sum(
             self.model.net_changes)).join(Subaccounts).join(Accounts).join(
                 Classifications).join(Elements).filter(
                     self.model.net_changes != 0).filter(
                         db.or_(
                             Elements.name == 'Revenues',
                             Elements.name == 'Expenses',
                             Elements.name == 'Gains',
                             Elements.name == 'Losses')).filter(
                                 self.model.period_interval == request.
                                 view_args['period_interval']).filter(
                                     self.model.period == period).first())
     self._template_args['period'] = period
     self._template_args['period_intervals'] = [('YYYY', 'Annual'),
                                                ('YYYY-Q', 'Quarterly'),
                                                ('YYYY-MM', 'Monthly'),
                                                ('YYYY-MM-DD', 'Daily')]
     self._template_args['periods'] = [
         period[0] for period in (self.session.query(
             self.model.period).order_by(self.model.period.desc()).filter(
                 self.model.net_changes != 0).filter(
                     db.or_(Elements.name == 'Revenues', Elements.name ==
                            'Expenses', Elements.name == 'Gains',
                            Elements.name == 'Losses')).filter(
                                self.model.period_interval ==
                                request.view_args['period_interval']).
                                  distinct().limit(10))
     ]
     net_income = fs_currency_format(-net_income)
     self._template_args['footer_row'] = {
         'subaccount': 'Net Income',
         'net_changes': net_income
     }
     return super(IncomeStatementsView, self).index_view()
Exemplo n.º 3
0
    def index_view(self, period_interval=None, period=None):
        period_interval = request.view_args.get('period_interval', None)
        if not period_interval:
            period_interval = 'YYYY-MM'
        self._template_args['period_interval'] = period_interval
        request.view_args['period_interval'] = period_interval
        self._template_args['period_interval'] = period_interval
        period = request.view_args.get('period', None)
        if not period:
            period, = (self.session.query(
                db.func.to_char(
                    JournalEntries.timestamp, period_interval)).order_by(
                        db.func.to_char(JournalEntries.timestamp,
                                        period_interval).desc()).first())
        self._template_args['period'] = period
        request.view_args['period'] = period
        self._template_args['period_intervals'] = [('YYYY', 'Annual'),
                                                   ('YYYY-Q', 'Quarterly'),
                                                   ('YYYY-MM', 'Monthly'),
                                                   ('YYYY-MM-DD', 'Daily')]

        self._template_args['periods'] = (self.session.query(
            db.func.to_char(JournalEntries.timestamp,
                            self._template_args['period_interval'])).order_by(
                                db.func.to_char(
                                    JournalEntries.timestamp,
                                    self._template_args['period_interval']).
                                desc()).distinct().limit(30))
        self._template_args['periods'] = [
            period[0] for period in self._template_args['periods']
        ]
        net_equity, = (self.session.query(func.sum(
            self.model.net_balance)).join(Subaccounts).join(Accounts).join(
                Classifications).join(Elements).filter(
                    db.or_(Elements.name == 'Assets',
                           Elements.name == 'Liabilities',
                           Elements.name == 'Capital Contributions',
                           Elements.name == 'Capital Distributions')).filter(
                               self.model.period_interval ==
                               request.view_args['period_interval']).filter(
                                   self.model.period ==
                                   request.view_args['period']).one())
        net_equity = fs_currency_format(-net_equity)
        self._template_args['footer_row'] = {
            'subaccount': 'Net Equity',
            'net_balance': net_equity
        }
        return super(BalanceSheetView, self).index_view()
Exemplo n.º 4
0
 def index_view(self, period_interval=None, period=None):
     period_interval = request.view_args.get('period_interval', 'YYYY-MM')
     self._template_args['period_interval'] = period_interval
     request.view_args['period_interval'] = period_interval
     period = request.view_args.get('period', None)
     if not period:
         net_income, period = (self.session.query(func.sum(self.model.net_changes), self.model.period)
                               .join(Subaccounts)
                               .join(Accounts)
                               .join(Classifications)
                               .join(Elements)
                               .filter(self.model.net_changes != 0)
                               .filter(db.or_(Elements.name == 'Revenues', Elements.name == 'Expenses',
                                              Elements.name == 'Gains', Elements.name == 'Losses'))
                               .filter(self.model.period_interval == request.view_args['period_interval'])
                               .group_by(self.model.period)
                               .order_by(self.model.period.desc())
                               .first())
         request.view_args['period'] = period
     else:
         net_income, = (self.session.query(func.sum(self.model.net_changes))
                        .join(Subaccounts)
                        .join(Accounts)
                        .join(Classifications)
                        .join(Elements)
                        .filter(self.model.net_changes != 0)
                        .filter(db.or_(Elements.name == 'Revenues', Elements.name == 'Expenses',
                                       Elements.name == 'Gains', Elements.name == 'Losses'))
                        .filter(self.model.period_interval == request.view_args['period_interval'])
                        .filter(self.model.period == period)
                        .first())
     self._template_args['period'] = period
     self._template_args['period_intervals'] = [('YYYY', 'Annual'), ('YYYY-Q', 'Quarterly'), ('YYYY-MM', 'Monthly'), ('YYYY-MM-DD', 'Daily')]
     self._template_args['periods'] = [period[0] for period in (self.session.query(self.model.period)
                                                                .order_by(self.model.period.desc())
                                                                .filter(self.model.net_changes != 0)
                                                                .filter(db.or_(Elements.name == 'Revenues', Elements.name == 'Expenses',
                                                                               Elements.name == 'Gains', Elements.name == 'Losses'))
                                                                .filter(self.model.period_interval == request.view_args['period_interval'])
                                                                .distinct().limit(10))]
     net_income = fs_currency_format(-net_income)
     self._template_args['footer_row'] = {'subaccount': 'Net Income', 'net_changes': net_income}
     return super(IncomeStatementsView, self).index_view()