def get(self, request, *args, **kwargs): if request.user.is_authenticated: entity = EntityModel.objects.for_user( user_model=self.request.user).get( slug__exact=self.kwargs['entity_slug']) entity_digest = entity.digest(user_model=self.request.user, equity_only=True, signs=False, by_period=True, process_groups=True, to_date=get_end_date_from_session( self.kwargs['entity_slug'], request)) group_balance_by_period = entity_digest['tx_digest'][ 'group_balance_by_period'] group_balance_by_period = dict( sorted((k, v) for k, v in group_balance_by_period.items())) entity_data = { f'{month_name[k[1]]} {k[0]}': {d: float(f) for d, f in v.items()} for k, v in group_balance_by_period.items() } return JsonResponse({ 'results': { 'entity_slug': entity.slug, 'entity_name': entity.name, 'pnl_data': entity_data } }) return JsonResponse({'message': 'Unauthorized'}, status=401)
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) entity_model = self.object context['page_title'] = entity_model.name context['header_title'] = entity_model.name context['header_subtitle'] = _('Dashboard') context['header_subtitle_icon'] = 'mdi:monitor-dashboard' end_date = get_end_date_from_session(entity_slug=entity_model.slug, request=self.request) context['date_filter'] = end_date set_default_entity(self.request, entity_model) context[ 'pnl_chart_id'] = f'djl-entity-pnl-chart-{randint(10000, 99999)}' context['pnl_chart_endpoint'] = reverse( 'django_ledger:entity-json-pnl', kwargs={'entity_slug': self.kwargs['entity_slug']}) context[ 'payables_chart_id'] = f'djl-entity-payables-chart-{randint(10000, 99999)}' context['payables_chart_endpoint'] = reverse( 'django_ledger:entity-json-net-payables', kwargs={'entity_slug': self.kwargs['entity_slug']}) context[ 'receivables_chart_id'] = f'djl-entity-receivables-chart-{randint(10000, 99999)}' context['receivables_chart_endpoint'] = reverse( 'django_ledger:entity-json-net-receivables', kwargs={'entity_slug': self.kwargs['entity_slug']}) # DIGEST PHASE --- by_period = self.request.GET.get('by_period') digest = entity_model.digest(user_model=self.request.user, to_date=end_date, by_period=True if by_period else False, process_ratios=True, process_roles=True, process_groups=True) context.update(digest) # Unpaid Bills for Dashboard context['bills'] = BillModel.objects.for_entity_unpaid( user_model=self.request.user, entity_slug=self.kwargs['entity_slug']).select_related( 'vendor').order_by('due_date') # Unpaid Invoices for Dashboard context['invoices'] = InvoiceModel.objects.for_entity_unpaid( user_model=self.request.user, entity_slug=self.kwargs['entity_slug']).select_related( 'customer').order_by('due_date') return context
def date_filter_form(context, inline=False): entity_slug = context['view'].kwargs.get('entity_slug') end_date = get_end_date_from_session(entity_slug, context['request']) identity = randint(0, 1000000) if entity_slug: form = AsOfDateFilterForm(form_id=identity, initial={ 'entity_slug': context['view'].kwargs['entity_slug'], 'date': end_date }) next_url = context['request'].path return { 'date_form': form, 'form_id': identity, 'entity_slug': entity_slug, 'date_filter': end_date, 'next': next_url, 'inline': inline }
def get_context_data(self, **kwargs): account = self.object context = super().get_context_data(**kwargs) context['header_title'] = f'Account {account.code} - {account.name}' context['page_title'] = f'Account {account.code} - {account.name}' to_date = get_end_date_from_session( entity_slug=self.kwargs['entity_slug'], request=self.request, ) txs_qs = self.object.txs.order_by('-journal_entry__date').to_date( to_date) txs_days = self.request.GET.get('txs_days') if txs_days: from_date = to_date - timedelta(days=int(txs_days)) else: from_date = to_date - timedelta(days=self.DEFAULT_TXS_DAYS) txs_qs = txs_qs.from_date(from_date) context['transactions'] = txs_qs return context
def get_current_end_date_filter(context): entity_slug = context['view'].kwargs.get('entity_slug') return get_end_date_from_session(entity_slug, context['request'])