#26 Annual conservation report

* finishes intervention analysis report for cases before 16.06.2018 (LKompVzVo)
pull/33/head
mpeltriaux 3 years ago
parent 88c7f64901
commit 0e9a169d38

@ -0,0 +1,12 @@
"""
Author: Michel Peltriaux
Organization: Struktur- und Genehmigungsdirektion Nord, Rhineland-Palatinate, Germany
Contact: michel.peltriaux@sgdnord.rlp.de
Created on: 19.10.21
"""
import datetime
# Defines the date of the legal publishing of the LKompVzVo
LKOMPVZVO_PUBLISH_DATE = datetime.date.fromisoformat("2018-06-16")

@ -12,6 +12,6 @@
{% include 'analysis/reports/includes/intervention/card_intervention.html' %}
{% include 'analysis/reports/includes/compensation/card_compensation.html' %}
{% include 'analysis/reports/includes/card_eco_account.html' %}
{% include 'analysis/reports/includes/card_old_interventions.html' %}
{% include 'analysis/reports/includes/old_intervention/card_old_interventions.html' %}
</div>
{% endblock %}

@ -0,0 +1,30 @@
{% load i18n fontawesome_5 ksp_filters %}
<h3>{% trans 'Amount' %}</h3>
<strong>
{% blocktrans %}
Checked = Has been checked by the registration office according to LKompVzVo
{% endblocktrans %}
<br>
{% blocktrans %}
Recorded = Has been checked and published by the conservation office
{% endblocktrans %}
</strong>
<div class="table-container">
<table class="table table-hover">
<thead>
<tr>
<th scope="col">{% fa5_icon 'star' %} {% trans 'Checked' %}</th>
<th scope="col">{% fa5_icon 'bookmark' %} {% trans 'Recorded' %}</th>
<th scope="col" class="w-25">{% trans 'Total' %}</th>
</tr>
</thead>
<tbody>
<tr>
<td>{{report.old_intervention_report.queryset_checked.count|default_if_zero:"-"}}</td>
<td>{{report.old_intervention_report.queryset_recorded.count|default_if_zero:"-"}}</td>
<td>{{report.old_intervention_report.queryset.count|default_if_zero:"-"}}</td>
</tr>
</tbody>
</table>
</div>

@ -16,7 +16,7 @@
</div>
<div id="oldInterventionBody" class="collapse" aria-labelledby="oldIntervention">
<div class="card-body">
{% include 'form/table/generic_table_form_body.html' %}
{% include 'analysis/reports/includes/old_intervention/amount.html' %}
</div>
</div>
</div>

@ -8,6 +8,7 @@ Created on: 18.10.21
from django.contrib.gis.db.models.functions import NumGeometries
from django.db.models import Count, Sum, Q
from analysis.settings import LKOMPVZVO_PUBLISH_DATE
from codelist.models import KonovaCode
from codelist.settings import CODELIST_LAW_ID
from compensation.models import Compensation, Payment, EcoAccountDeduction
@ -23,6 +24,7 @@ class TimespanReport:
queryset_checked = Intervention.objects.none()
queryset_recorded = Intervention.objects.none()
# Law related
law_sum = -1
law_sum_checked = -1
@ -43,6 +45,7 @@ class TimespanReport:
def __init__(self, id: str):
self.queryset = Intervention.objects.filter(
responsible__conservation_office__id=id,
legal__registration_date__gt=LKOMPVZVO_PUBLISH_DATE,
deleted=None,
)
self.queryset_checked = self.queryset.filter(
@ -157,6 +160,7 @@ class TimespanReport:
def __init__(self, id: str):
self.queryset = Compensation.objects.filter(
intervention__responsible__conservation_office__id=id,
intervention__legal__registration_date__gt=LKOMPVZVO_PUBLISH_DATE,
deleted=None,
)
self.queryset_checked = self.queryset.filter(
@ -261,7 +265,26 @@ class TimespanReport:
intervention__checked__isnull=False,
)
class OldInterventionReport:
queryset = Compensation.objects.none()
queryset_checked = Compensation.objects.none()
queryset_recorded = Compensation.objects.none()
def __init__(self, id: str):
self.queryset = Intervention.objects.filter(
legal__registration_date__lte=LKOMPVZVO_PUBLISH_DATE,
responsible__conservation_office__id=id,
deleted=None,
)
self.queryset_checked = self.queryset.filter(
checked__isnull=False
)
self.queryset_recorded = self.queryset.filter(
recorded__isnull=False
)
def __init__(self, office_id: str):
self.office_id = office_id
self.intervention_report = self.InterventionReport(self.office_id)
self.compensation_report = self.CompensationReport(self.office_id)
self.old_intervention_report = self.OldInterventionReport(self.office_id)

@ -31,23 +31,19 @@ def index_reports_view(request: HttpRequest):
def detail_report_view(request: HttpRequest, id: str):
""" Renders the detailed report for a conservation office
Args:
request (HttpRequest): The incoming request
id (str): The conservation_office KonovaCode id
Returns:
"""
cons_office = get_object_or_404(
KonovaCode,
id=id,
)
cons_interventions = Intervention.objects.filter(
responsible__conservation_office__id=id,
deleted=None,
)
cons_comps = Compensation.objects.filter(
intervention__in=cons_interventions,
deleted=None,
)
cons_eco_account = EcoAccount.objects.filter(
responsible__conservation_office__id=id,
deleted=None,
)
report = TimespanReport(id)
template = "analysis/reports/detail.html"

Loading…
Cancel
Save