Files
ksef_app/app/templates/nfz/index.html
Mateusz Gruszczyński 35571df778 push
2026-03-13 11:03:13 +01:00

79 lines
5.5 KiB
HTML

{% extends 'base.html' %}
{% block title %}<i class="fa-solid fa-hospital me-2 text-primary"></i>Faktury NFZ{% endblock %}
{% block content %}
{% set editing_invoice = editing_invoice|default(None) %}
{% set eyebrow='Moduł dodatkowy' %}{% set heading='Wystawianie faktur NFZ' if not editing_invoice else 'Edycja faktury NFZ' %}{% set description='Formularz zawiera pola wymagane przez NFZ dla faktur ustrukturyzowanych FA(2)/FA(3) w KSeF.' %}
{% include 'partials/page_header.html' with context %}
<div class="row g-4">
<div class="col-xl-8">
<div class="card">
<div class="card-header"><i class="fa-solid fa-file-circle-plus me-2"></i>{{ 'Nowa faktura NFZ' if not editing_invoice else 'Edycja faktury NFZ ' ~ editing_invoice.invoice_number }}</div>
<div class="card-body">
{% if read_only_mode %}<div class="alert alert-warning">Tryb tylko do odczytu jest aktywny. Zapisy są zablokowane.</div>{% endif %}
<form method="post" class="row g-3">
{{ form.hidden_tag() }}
<div class="col-md-6">
<div class="d-flex justify-content-between align-items-center mb-1">
{{ form.customer_id.label(class='form-label mb-0') }}
<button class="btn btn-sm btn-outline-secondary" type="button" data-bs-toggle="modal" data-bs-target="#customerQuickAddModal"><i class="fa-solid fa-plus me-1"></i>Dodaj</button>
</div>
{{ form.customer_id(class='form-select', disabled=read_only_mode) }}
</div>
<div class="col-md-6">
<div class="d-flex justify-content-between align-items-center mb-1">
{{ form.product_id.label(class='form-label mb-0') }}
<button class="btn btn-sm btn-outline-secondary" type="button" data-bs-toggle="modal" data-bs-target="#productQuickAddModal"><i class="fa-solid fa-plus me-1"></i>Dodaj</button>
</div>
{{ form.product_id(class='form-select', disabled=read_only_mode) }}
</div>
<div class="col-md-4">{{ form.invoice_number.label(class='form-label') }}{{ form.invoice_number(class='form-control', disabled=read_only_mode) }}</div>
<div class="col-md-4">{{ form.nfz_branch_id.label(class='form-label') }}{{ form.nfz_branch_id(class='form-select', disabled=read_only_mode) }}</div>
<div class="col-md-4">{{ form.provider_identifier.label(class='form-label') }}{{ form.provider_identifier(class='form-control', disabled=read_only_mode, placeholder='id-swd') }}</div>
<div class="col-md-3">{{ form.settlement_from.label(class='form-label') }}{{ form.settlement_from(class='form-control', disabled=read_only_mode) }}</div>
<div class="col-md-3">{{ form.settlement_to.label(class='form-label') }}{{ form.settlement_to(class='form-control', disabled=read_only_mode) }}</div>
<div class="col-md-6">{{ form.template_identifier.label(class='form-label') }}{{ form.template_identifier(class='form-control', disabled=read_only_mode, placeholder='id-szablonu z R_UMX') }}</div>
<div class="col-md-8">{{ form.service_code.label(class='form-label') }}{{ form.service_code(class='form-control', disabled=read_only_mode, placeholder='02.1500.001.02/1 lub 01.0010.094.01/1/5.01.00.0000127') }}</div>
<div class="col-md-4">{{ form.contract_number.label(class='form-label') }}{{ form.contract_number(class='form-control', disabled=read_only_mode, placeholder='120/999999/01/2025[23]') }}</div>
<div class="col-md-3">{{ form.quantity.label(class='form-label') }}{{ form.quantity(class='form-control', disabled=read_only_mode) }}</div>
<div class="col-md-3">{{ form.unit_net.label(class='form-label') }}{{ form.unit_net(class='form-control', disabled=read_only_mode) }}</div>
<div class="col-12 d-flex gap-2 flex-wrap">{{ form.save_submit(class='btn btn-outline-primary', disabled=read_only_mode) }}{{ form.submit(class='btn btn-primary', disabled=read_only_mode) }}</div>
</form>
</div>
</div>
</div>
<div class="col-xl-4">
<div class="card mb-3">
<div class="card-header"><i class="fa-solid fa-list-check me-2"></i>Pola wymagane</div>
<div class="card-body small">
{% for key, desc in spec_fields %}
<div class="border-bottom py-2"><div class="fw-semibold">{{ key }}</div><div class="text-secondary">{{ desc }}</div></div>
{% endfor %}
</div>
</div>
<div class="card">
<div class="card-header"><i class="fa-solid fa-clock-rotate-left me-2"></i>Ostatnie faktury NFZ</div>
<div class="card-body p-0">
<div class="list-group list-group-flush">
{% for invoice in drafts %}
<div class="list-group-item">
<div class="d-flex justify-content-between align-items-start gap-2">
<a class="text-decoration-none" href="{{ url_for('invoices.detail', invoice_id=invoice.id) }}">
<div class="fw-semibold">{{ invoice.invoice_number }}</div>
<div class="small text-secondary">{{ invoice.contractor_name }}</div>
</a>
<a class="btn btn-sm btn-outline-secondary" href="{{ url_for('invoices.duplicate', invoice_id=invoice.id) }}">Duplikuj</a>
</div>
</div>
{% else %}
<div class="p-3 text-secondary small">Brak faktur NFZ.</div>
{% endfor %}
</div>
</div>
</div>
</div>
</div>
{% set quick_return_endpoint = 'nfz.edit' if editing_invoice else 'nfz.index' %}
{% set quick_invoice_id = editing_invoice.id if editing_invoice else None %}
{% include 'partials/invoice_quick_add_modals.html' %}
{% endblock %}