fix w kalkulacji last price
This commit is contained in:
@@ -1,32 +1,21 @@
|
||||
{% extends 'base.html' %}{% block content %}
|
||||
<div class="mb-4"><h1 class="h2 mb-1">Zestawienia kosztów</h1><p class="text-body-secondary mb-0">Rzeczywiste koszty, VAT i oszczędność wynikająca z rozliczenia Last Price.</p></div>
|
||||
<div class="mb-4"><h1 class="h2 mb-1">Zestawienia kosztów</h1><p class="text-body-secondary mb-0">Porównanie detalu brutto z ostatecznymi kwotami faktur, rabatami, Last Price, VAT i kosztem po odliczeniu.</p></div>
|
||||
{% include '_admin_nav.html' %}
|
||||
<div class="card mb-4"><div class="card-body">
|
||||
<form method="get" class="row g-3 ajax-nav-form" action="{{url_for('main.admin_reports')}}">
|
||||
{% if current_user.role=='admin' %}<div class="col-lg-3"><label class="form-label">Firma</label><select class="form-select" name="company_id"><option value="">Wszystkie firmy</option>{% for c in companies %}<option value="{{c.id}}" {% if company_id==c.id %}selected{% endif %}>{{c.name}}</option>{% endfor %}</select></div>{% endif %}
|
||||
<div class="col-lg-2"><label class="form-label">Zakres</label><select class="form-select" name="period" id="report-period"><option value="month" {% if period=='month' %}selected{% endif %}>Miesiąc</option><option value="year" {% if period=='year' %}selected{% endif %}>Rok</option><option value="custom" {% if period=='custom' %}selected{% endif %}>Zakres dat</option></select></div>
|
||||
<div class="col-lg-2 report-filter report-month"><label class="form-label">Miesiąc</label><input class="form-control" type="month" name="month" value="{{month}}"></div>
|
||||
<div class="col-lg-2 report-filter report-year"><label class="form-label">Rok</label><input class="form-control" type="number" min="2000" max="2100" name="year" value="{{year}}"></div>
|
||||
<div class="col-lg-2 report-filter report-custom"><label class="form-label">Od</label><input class="form-control" type="date" name="date_from" value="{{date_from}}"></div>
|
||||
<div class="col-lg-2 report-filter report-custom"><label class="form-label">Do</label><input class="form-control" type="date" name="date_to" value="{{date_to}}"></div>
|
||||
<div class="col-lg-2 d-flex align-items-end"><button class="btn btn-primary w-100">Pokaż zestawienie</button></div>
|
||||
</form></div></div>
|
||||
<div class="card mb-4"><div class="card-body"><form method="get" class="row g-3 ajax-nav-form" action="{{url_for('main.admin_reports')}}">
|
||||
{% if current_user.role=='admin' %}<div class="col-lg-3"><label class="form-label">Firma</label><select class="form-select" name="company_id"><option value="">Wszystkie firmy</option>{% for c in companies %}<option value="{{c.id}}" {% if company_id==c.id %}selected{% endif %}>{{c.name}}</option>{% endfor %}</select></div>{% endif %}
|
||||
<div class="col-lg-2"><label class="form-label">Zakres</label><select class="form-select" name="period" id="report-period"><option value="month" {% if period=='month' %}selected{% endif %}>Miesiąc</option><option value="year" {% if period=='year' %}selected{% endif %}>Rok</option><option value="custom" {% if period=='custom' %}selected{% endif %}>Zakres dat</option></select></div>
|
||||
<div class="col-lg-2 report-filter report-month"><label class="form-label">Miesiąc</label><input class="form-control" type="month" name="month" value="{{month}}"></div><div class="col-lg-2 report-filter report-year"><label class="form-label">Rok</label><input class="form-control" type="number" min="2000" max="2100" name="year" value="{{year}}"></div><div class="col-lg-2 report-filter report-custom"><label class="form-label">Od</label><input class="form-control" type="date" name="date_from" value="{{date_from}}"></div><div class="col-lg-2 report-filter report-custom"><label class="form-label">Do</label><input class="form-control" type="date" name="date_to" value="{{date_to}}"></div><div class="col-lg-2 d-flex align-items-end"><button class="btn btn-primary w-100">Pokaż zestawienie</button></div></form></div></div>
|
||||
<p class="small text-body-secondary">Okres: <strong>{{start_date.strftime('%d.%m.%Y')}}–{{end_date.strftime('%d.%m.%Y')}}</strong></p>
|
||||
<div class="row g-3 mb-4">
|
||||
<div class="col-6 col-xl-2"><div class="card metric h-100"><div class="card-body"><small>Detal z dystrybutora</small><strong>{{'%.2f'|format(totals.retail)}} zł</strong></div></div></div>
|
||||
<div class="col-6 col-xl-2"><div class="card metric h-100"><div class="card-body"><small>Faktury Last Price*</small><strong>{{'%.2f'|format(totals.invoice)}} zł</strong></div></div></div>
|
||||
<div class="col-6 col-xl-2"><div class="card metric h-100"><div class="card-body"><small>Koszt po VAT</small><strong>{{'%.2f'|format(totals.effective)}} zł</strong></div></div></div>
|
||||
<div class="col-6 col-xl-2"><div class="card metric h-100"><div class="card-body"><small>Odliczony VAT</small><strong>{{'%.2f'|format(totals.vat_deducted)}} zł</strong></div></div></div>
|
||||
<div class="col-6 col-xl-2"><div class="card metric h-100"><div class="card-body"><small>Oszczędność Last Price</small><strong>{{'%.2f'|format(totals.saving)}} zł</strong><span>{{'%.2f'|format(totals.saving_percent)}}%</span></div></div></div>
|
||||
<div class="col-6 col-xl-2"><div class="card metric h-100"><div class="card-body"><small>Tankowania / litry</small><strong>{{totals.count}} / {{'%.2f'|format(totals.liters)}} l</strong><span>Last Price: {{totals.last_price_count}}</span></div></div></div>
|
||||
<div class="col-6 col-xl-2"><div class="card metric h-100"><div class="card-body"><small>Detal brutto</small><strong>{{'%.2f'|format(totals.retail_gross)}} zł</strong></div></div></div>
|
||||
<div class="col-6 col-xl-2"><div class="card metric h-100"><div class="card-body"><small>Do zapłaty brutto</small><strong>{{'%.2f'|format(totals.invoice)}} zł</strong><span>po rabatach i dopłatach</span></div></div></div>
|
||||
<div class="col-6 col-xl-2"><div class="card metric h-100"><div class="card-body"><small>Różnica brutto do detalu</small><strong>{{'%.2f'|format(totals.gross_saving)}} zł</strong><span>faktura vs detal</span></div></div></div>
|
||||
<div class="col-6 col-xl-2"><div class="card metric h-100"><div class="card-body"><small>Oszczędność Last Price netto</small><strong>{{'%.2f'|format(totals.saving_net)}} zł</strong><span>{{'%.2f'|format(totals.saving_percent)}}%</span></div></div></div>
|
||||
<div class="col-6 col-xl-2"><div class="card metric h-100"><div class="card-body"><small>Koszt po VAT</small><strong>{{'%.2f'|format(totals.effective)}} zł</strong><span>odliczono {{'%.2f'|format(totals.vat_deducted)}} zł VAT</span></div></div></div>
|
||||
<div class="col-6 col-xl-2"><div class="card metric h-100"><div class="card-body"><small>Tankowania / litry</small><strong>{{totals.count}} / {{'%.2f'|format(totals.liters)}} l</strong><span>Last Price: {{totals.last_price_count}}</span></div></div></div>
|
||||
</div>
|
||||
<div class="alert alert-info small"><strong>* Faktura Last Price</strong> oznacza kwotę obliczoną z ceny Last Price netto, powiększonej o stawkę VAT firmy. Oszczędność Last Price to różnica między wartością detaliczną z dystrybutora a fakturą Last Price brutto.</div>
|
||||
<div class="card mb-4"><div class="card-body"><h2 class="h5">Koszty w czasie</h2><div class="chart-box"><canvas id="report-cost-chart"></canvas><div id="report-cost-chart-empty" class="chart-empty d-none">Brak danych dla wybranego okresu.</div></div></div></div>
|
||||
<div class="row g-4">
|
||||
<div class="col-xl-6"><div class="card h-100"><div class="card-body"><h2 class="h5">Według pojazdu</h2><div class="table-responsive"><table class="table table-hover align-middle"><thead><tr><th>Pojazd</th><th>Tank.</th><th>Litry</th><th>Detal</th><th>Faktura*</th><th>Koszt po VAT</th><th>Oszczędność</th></tr></thead><tbody>{% for name,row in by_vehicle.items() %}<tr><td><strong>{{name}}</strong></td><td>{{row.count}}</td><td>{{'%.2f'|format(row.liters)}}</td><td>{{'%.2f'|format(row.retail)}} zł</td><td>{{'%.2f'|format(row.invoice)}} zł</td><td>{{'%.2f'|format(row.effective)}} zł</td><td><strong>{{'%.2f'|format(row.saving)}} zł</strong></td></tr>{% else %}<tr><td colspan="7" class="text-center text-body-secondary">Brak danych.</td></tr>{% endfor %}</tbody></table></div></div></div></div>
|
||||
<div class="col-xl-6"><div class="card h-100"><div class="card-body"><h2 class="h5">Według firmy</h2><div class="table-responsive"><table class="table table-hover align-middle"><thead><tr><th>Firma</th><th>Tank.</th><th>Litry</th><th>Detal</th><th>Faktura*</th><th>Koszt po VAT</th><th>Oszczędność</th></tr></thead><tbody>{% for name,row in by_company.items() %}<tr><td><strong>{{name}}</strong></td><td>{{row.count}}</td><td>{{'%.2f'|format(row.liters)}}</td><td>{{'%.2f'|format(row.retail)}} zł</td><td>{{'%.2f'|format(row.invoice)}} zł</td><td>{{'%.2f'|format(row.effective)}} zł</td><td><strong>{{'%.2f'|format(row.saving)}} zł</strong></td></tr>{% else %}<tr><td colspan="7" class="text-center text-body-secondary">Brak danych.</td></tr>{% endfor %}</tbody></table></div></div></div></div>
|
||||
</div>
|
||||
{% endblock %}{% block scripts %}<script>
|
||||
FuelTrack.renderCostReportChart('report-cost-chart', {{by_month|tojson}});
|
||||
(()=>{const select=document.getElementById('report-period');const refresh=()=>{document.querySelectorAll('.report-filter').forEach(el=>el.classList.add('d-none'));document.querySelectorAll('.report-'+select.value).forEach(el=>el.classList.remove('d-none'));};select?.addEventListener('change',refresh);refresh();})();
|
||||
</script>{% endblock %}
|
||||
<div class="alert alert-info small"><strong>Metoda:</strong> wykres porównuje detal brutto z ostateczną fakturą brutto po zastosowaniu reguły danej karty i stacji. Reguła stacji ma pierwszeństwo; gdy jej brak, używana jest polityka pojazdu. Last Price i oszczędność handlowa pozostają liczone netto, a VAT jest prezentowany osobno.</div>
|
||||
<div class="card mb-4"><div class="card-body"><h2 class="h5">Kwoty brutto w czasie</h2><p class="small text-body-secondary">Detal brutto, ostateczna kwota do zapłaty brutto i różnica dla każdego miesiąca.</p><div class="chart-box"><canvas id="report-cost-chart"></canvas><div id="report-cost-chart-empty" class="chart-empty d-none">Brak danych dla wybranego okresu.</div></div></div></div>
|
||||
<div class="row g-4"><div class="col-xl-6"><div class="card h-100"><div class="card-body"><h2 class="h5">Według pojazdu</h2><div class="table-responsive"><table class="table table-hover align-middle"><thead><tr><th>Pojazd</th><th>Tank.</th><th>Litry</th><th>Detal brutto</th><th>Do zapłaty brutto</th><th>Różnica brutto</th><th>Oszczędność LP netto</th><th>Koszt po VAT</th></tr></thead><tbody>{% for name,row in by_vehicle.items() %}<tr><td><strong>{{name}}</strong></td><td>{{row.count}}</td><td>{{'%.2f'|format(row.liters)}}</td><td>{{'%.2f'|format(row.retail_gross)}} zł</td><td>{{'%.2f'|format(row.invoice)}} zł</td><td><strong>{{'%.2f'|format(row.gross_saving)}} zł</strong></td><td>{{'%.2f'|format(row.saving_net)}} zł</td><td>{{'%.2f'|format(row.effective)}} zł</td></tr>{% else %}<tr><td colspan="8">Brak danych.</td></tr>{% endfor %}</tbody></table></div></div></div></div>
|
||||
<div class="col-xl-6"><div class="card h-100"><div class="card-body"><h2 class="h5">Według firmy</h2><div class="table-responsive"><table class="table table-hover align-middle"><thead><tr><th>Firma</th><th>Tank.</th><th>Litry</th><th>Detal brutto</th><th>Do zapłaty brutto</th><th>Różnica brutto</th><th>Oszczędność LP netto</th><th>Koszt po VAT</th></tr></thead><tbody>{% for name,row in by_company.items() %}<tr><td><strong>{{name}}</strong></td><td>{{row.count}}</td><td>{{'%.2f'|format(row.liters)}}</td><td>{{'%.2f'|format(row.retail_gross)}} zł</td><td>{{'%.2f'|format(row.invoice)}} zł</td><td><strong>{{'%.2f'|format(row.gross_saving)}} zł</strong></td><td>{{'%.2f'|format(row.saving_net)}} zł</td><td>{{'%.2f'|format(row.effective)}} zł</td></tr>{% else %}<tr><td colspan="8">Brak danych.</td></tr>{% endfor %}</tbody></table></div></div></div></div></div>
|
||||
{% endblock %}{% block scripts %}<script>FuelTrack.renderCostReportChart('report-cost-chart', {{by_month|tojson}});(()=>{const select=document.getElementById('report-period');const refresh=()=>{document.querySelectorAll('.report-filter').forEach(el=>el.classList.add('d-none'));document.querySelectorAll('.report-'+select.value).forEach(el=>el.classList.remove('d-none'));};select?.addEventListener('change',refresh);refresh();})();</script>{% endblock %}
|
||||
|
||||
@@ -1,7 +1,14 @@
|
||||
{% extends 'base.html' %}{% block content %}
|
||||
<div class="d-flex justify-content-between align-items-center mb-3"><div><h1 class="h2 mb-0">Podsumowanie kosztów</h1><small class="text-body-secondary">{{ settings.name }} · VAT do odliczenia {{ settings.vat_deduction_percent }}%</small></div><form action="{{url_for('main.dashboard')}}" class="ajax-nav-form"><input class="form-control" type="month" name="month" value="{{month}}"></form></div>
|
||||
{% if vat_override.enabled %}<div class="alert alert-warning"><strong>{{ vat_override.name }}:</strong> globalny VAT {{ vat_override.rate }}%{% if vat_override.start %} od {{ vat_override.start.strftime('%d.%m.%Y') }}{% endif %}{% if vat_override.end %} do {{ vat_override.end.strftime('%d.%m.%Y') }}{% endif %}. Rozliczenia są liczone według daty tankowania.</div>{% endif %}
|
||||
<div class="row g-3 mb-4"><div class="col-6 col-lg"><div class="card metric"><div class="card-body"><small>Brutto</small><strong>{{ '%.2f'|format(totals.gross) }} zł</strong></div></div></div><div class="col-6 col-lg"><div class="card metric"><div class="card-body"><small>VAT odliczony</small><strong>{{ '%.2f'|format(totals.deductible_vat) }} zł</strong></div></div></div><div class="col-6 col-lg"><div class="card metric"><div class="card-body"><small>Koszt po VAT</small><strong>{{ '%.2f'|format(totals.final_cost) }} zł</strong></div></div></div><div class="col-6 col-lg"><div class="card metric"><div class="card-body"><small>Litry</small><strong>{{ '%.2f'|format(totals.liters) }} l</strong></div></div></div><div class="col-6 col-lg"><div class="card metric"><div class="card-body"><small>Oszczędność Last Price</small><strong>{{ '%.2f'|format(totals.last_price_saving) }} zł</strong></div></div></div></div>
|
||||
<div class="row g-4"><div class="col-lg-7"><div class="card"><div class="card-body"><h2 class="h5">Koszt według pojazdu</h2><p class="small text-body-secondary">Cena fakturowa a rzeczywisty koszt po odliczeniu VAT.</p><div class="chart-box"><canvas id="cost-chart"></canvas><div id="cost-chart-empty" class="chart-empty d-none">Brak danych dla wybranego miesiąca.</div></div></div></div></div><div class="col-lg-5"><div class="card h-100"><div class="card-body"><h2 class="h5">Okresy faktur</h2><small class="text-body-secondary">{% if split_enabled %}Podział według dnia {{settings.invoice_split_day}}{% else %}Podział dzienny wyłączony{% endif %}</small><table class="table mt-2"><thead><tr><th>Okres</th><th>Pozycje</th><th>Faktura*</th><th>Koszt po VAT</th></tr></thead><tbody>{% for key,row in invoices.items() %}<tr><td>{{key}}</td><td>{{row.count}}</td><td>{{'%.2f'|format(row.gross)}} zł</td><td>{{'%.2f'|format(row.payable)}} zł</td></tr>{% else %}<tr><td colspan="4">Brak danych</td></tr>{% endfor %}</tbody></table><div class="small text-body-secondary">* Kwota faktury wynika z ceny Last Price netto + VAT firmy, gdy tankowanie podlega tej regule.</div></div></div></div>
|
||||
<div class="card mt-4"><div class="card-body"><h2 class="h5">Tankowania</h2><div class="table-responsive"><table class="table table-hover align-middle"><thead><tr><th>Data</th><th>Auto</th><th>Stacja</th><th>Paliwo</th><th>Litry</th><th>Cena detal.</th><th>Last price netto</th><th>Koszt po VAT</th><th>VAT</th><th>Oszczędność</th><th>Razem</th></tr></thead><tbody>{% for e in entries %}{% set s=settlements[e.id] %}<tr><td>{{e.fueled_at.strftime('%d.%m.%Y')}}</td><td>{{e.vehicle.name}}</td><td>{{e.station or '—'}}</td><td>{{e.fuel_type}}</td><td>{{e.liters}}</td><td>{{'%.4f'|format(s.normal_price)}} zł/l</td><td>{% if s.uses_last_price %}{{'%.4f'|format(s.net_price)}} zł/l{% elif e.wholesale_price %}{{'%.4f'|format(e.wholesale_price|float)}} zł/l{% else %}—{% endif %}</td><td>{% if s.uses_last_price %}<span class="badge text-bg-info">last price</span> {% endif %}<strong>{{'%.4f'|format(s.payable_price)}} zł/l</strong><br><small class="text-body-secondary">faktura {{'%.4f'|format(s.invoice_price)}} zł/l</small></td><td>{{'%.2f'|format(s.vat_rate)}}%<br><small class="text-body-secondary">odliczenie {{'%.0f'|format(s.vat_deduction_percent)}}%</small></td><td>{% if s.uses_last_price %}<strong>{{'%.2f'|format(s.last_price_saving)}} zł</strong><br><small class="text-body-secondary">dzięki Last Price</small>{% else %}—{% endif %}</td><td><span class="text-body-secondary text-decoration-line-through">{{'%.2f'|format(s.normal_gross)}} zł</span><br><strong>{{'%.2f'|format(s.payable_gross)}} zł</strong><br><small class="text-body-secondary">faktura {{'%.2f'|format(s.invoice_gross)}} zł</small></td></tr>{% else %}<tr><td colspan="11">Brak tankowań w tym miesiącu.</td></tr>{% endfor %}</tbody></table></div></div></div>
|
||||
<div class="d-flex flex-wrap justify-content-between align-items-end gap-3 mb-4"><div><h1 class="h2 mb-1">Dashboard</h1><p class="text-body-secondary mb-0">Porównanie cen netto, faktur i kosztów po VAT.</p></div><form method="get" class="d-flex gap-2"><input class="form-control" type="month" name="month" value="{{month}}"><button class="btn btn-primary">Pokaż</button></form></div>
|
||||
<div class="row g-3 mb-4">
|
||||
<div class="col-6 col-xl-2"><div class="card metric h-100"><div class="card-body"><small>Detal netto</small><strong>{{ '%.2f'|format(totals.retail_net) }} zł</strong><span>cena z dystrybutora bez VAT</span></div></div></div>
|
||||
<div class="col-6 col-xl-2"><div class="card metric h-100"><div class="card-body"><small>Do zapłaty brutto</small><strong>{{ '%.2f'|format(totals.invoice_gross) }} zł</strong><span>po rabatach i dopłatach</span></div></div></div>
|
||||
<div class="col-6 col-xl-2"><div class="card metric h-100"><div class="card-body"><small>Różnica brutto do detalu</small><strong>{{ '%.2f'|format(totals.gross_saving) }} zł</strong><span>kwota faktury vs detal</span></div></div></div>
|
||||
<div class="col-6 col-xl-2"><div class="card metric h-100"><div class="card-body"><small>Faktury brutto</small><strong>{{ '%.2f'|format(totals.invoice_gross) }} zł</strong><span>netto + VAT firmy</span></div></div></div>
|
||||
<div class="col-6 col-xl-2"><div class="card metric h-100"><div class="card-body"><small>Koszt po VAT</small><strong>{{ '%.2f'|format(totals.final_cost) }} zł</strong><span>po odliczeniu VAT</span></div></div></div>
|
||||
<div class="col-6 col-xl-2"><div class="card metric h-100"><div class="card-body"><small>Litry / VAT odliczony</small><strong>{{ '%.2f'|format(totals.liters) }} l</strong><span>{{ '%.2f'|format(totals.deductible_vat) }} zł VAT</span></div></div></div>
|
||||
</div>
|
||||
<div class="alert alert-info small"><strong>Wykres brutto:</strong> porównuje wartość po cenie detalicznej z ostateczną kwotą faktury brutto. Cena rozliczeniowa uwzględnia Last Price albo cenę detaliczną netto, następnie rabat procentowy i dopłatę przypisaną do karty/stacji. Oszczędność handlowa Last Price nadal jest liczona netto.</div>
|
||||
<div class="row g-4"><div class="col-lg-7"><div class="card"><div class="card-body"><h2 class="h5">Kwoty brutto według pojazdu</h2><p class="small text-body-secondary">Detal brutto, ostateczna kwota do zapłaty brutto oraz różnica. Rabaty i dopłaty użytkownika są uwzględniane.</p><div class="chart-box"><canvas id="cost-chart"></canvas><div id="cost-chart-empty" class="chart-empty d-none">Brak danych dla wybranego miesiąca.</div></div></div></div></div><div class="col-lg-5"><div class="card h-100"><div class="card-body"><h2 class="h5">Okresy faktur</h2><small class="text-body-secondary">{% if split_enabled %}Podział według ustawień firmy{% else %}Podział dzienny wyłączony{% endif %}</small><table class="table mt-2"><thead><tr><th>Okres</th><th>Pozycje</th><th>Faktura*</th><th>Koszt po VAT</th></tr></thead><tbody>{% for key,row in invoices.items() %}<tr><td>{{key}}</td><td>{{row.count}}</td><td>{{'%.2f'|format(row.gross)}} zł</td><td>{{'%.2f'|format(row.payable)}} zł</td></tr>{% else %}<tr><td colspan="4">Brak danych</td></tr>{% endfor %}</tbody></table><div class="small text-body-secondary">* Kwota brutto: cena rozliczeniowa netto + VAT właściwy dla firmy.</div></div></div></div>
|
||||
<div class="card mt-4"><div class="card-body"><h2 class="h5">Tankowania</h2><div class="table-responsive"><table class="table table-hover align-middle"><thead><tr><th>Data</th><th>Auto</th><th>Stacja</th><th>Litry</th><th>Detal brutto</th><th>Detal netto</th><th>Last Price netto</th><th>Oszczędność netto</th><th>Faktura brutto</th><th>Koszt po VAT</th></tr></thead><tbody>{% for e in entries %}{% set s=settlements[e.id] %}<tr><td>{{e.fueled_at.strftime('%d.%m.%Y')}}</td><td>{{e.vehicle.name}}</td><td>{{e.station or '—'}}</td><td>{{e.liters}}</td><td>{{'%.4f'|format(s.retail_price)}} zł/l<br><small>{{'%.2f'|format(s.retail_gross)}} zł</small></td><td>{{'%.4f'|format(s.retail_net_price)}} zł/l<br><small>{{'%.2f'|format(s.retail_net_total)}} zł</small></td><td>{% if s.uses_last_price %}<span class="badge text-bg-info">Last Price</span><br>{{'%.4f'|format(s.settlement_net)}} zł/l{% else %}{{'%.4f'|format(s.settlement_net)}} zł/l{% endif %}<br><small>{{'%.2f'|format(s.settlement_net_total)}} zł</small></td><td>{% if s.uses_last_price %}<strong>{{'%.2f'|format(s.saving_net)}} zł</strong><br><small>{{'%.4f'|format(s.saving_net_per_liter)}} zł/l</small>{% else %}—{% endif %}</td><td>{{'%.4f'|format(s.invoice_price)}} zł/l<br><strong>{{'%.2f'|format(s.invoice_gross)}} zł</strong><br><small>VAT {{'%.2f'|format(s.vat_rate)}}%</small></td><td>{{'%.4f'|format(s.effective_price)}} zł/l<br><strong>{{'%.2f'|format(s.effective_cost)}} zł</strong><br><small>odliczenie VAT {{'%.0f'|format(s.vat_deduction_percent)}}%</small></td></tr>{% else %}<tr><td colspan="10">Brak tankowań w tym miesiącu.</td></tr>{% endfor %}</tbody></table></div></div></div>
|
||||
{% endblock %}{% block scripts %}<script>FuelTrack.renderBarChart('cost-chart', {{by_vehicle|tojson}});</script>{% endblock %}
|
||||
|
||||
Reference in New Issue
Block a user