Travel: Init + widok index faktur

This commit is contained in:
2026-04-27 00:32:50 +02:00
parent a22f219c67
commit fcc3494392
5 changed files with 613 additions and 0 deletions

View File

@@ -0,0 +1,321 @@
<?php
$enablePrototypeComments = true;
include '../../header-travel.php';
?>
<div class="container-xxl flex-grow-1 container-p-y" style="padding-top: 1rem!important">
<div class="d-flex flex-column flex-md-row justify-content-between align-items-start align-items-md-center mb-4 gap-3">
<div>
<h4 class="fw-bold mb-1">
<span class="text-muted fw-light">Koszty /</span> Faktury Zakupowe
</h4>
<p class="text-muted small mb-0">Zarządzaj fakturami od dostawców i przypisuj je do wycieczek.</p>
</div>
<div class="d-flex gap-2">
<button class="btn btn-label-secondary btn-icon" data-bs-toggle="tooltip" title="Ustawienia integracji">
<i class="bx bx-cog"></i>
</button>
<button class="btn btn-primary">
<i class="bx bx-plus me-1"></i> Wgraj fakturę
</button>
</div>
</div>
<div class="alert alert-primary d-flex align-items-center" role="alert">
<i class="bx bx-move-vertical fs-4 me-2"></i>
<div>
<strong>Wskazówka:</strong> Możesz przypisywać faktury do zleceń korzystając z metody "Przeciągnij i upuść" (Drag & Drop) pomiędzy oknami, lub używając przycisków akcji w tabeli.
</div>
</div>
<div class="nav-align-top mb-4">
<ul class="nav nav-tabs nav-fill" role="tablist">
<li class="nav-item">
<button type="button" class="nav-link active" role="tab" data-bs-toggle="tab" data-bs-target="#navs-zlecenia">
<i class="bx bx-list-check me-1"></i> Zlecenia do ofakturowania
<span class="badge rounded-pill badge-center h-px-20 w-px-20 bg-danger ms-1">3</span>
</button>
</li>
<li class="nav-item">
<button type="button" class="nav-link" role="tab" data-bs-toggle="tab" data-bs-target="#navs-faktury">
<i class="bx bx-file me-1"></i> Baza faktur
</button>
</li>
</ul>
<div class="tab-content px-0 pb-0 shadow-none border-0">
<div class="tab-pane fade show active" id="navs-zlecenia" role="tabpanel">
<div class="card mb-4 border-0 shadow-sm">
<div class="card-body p-3">
<div class="row g-3">
<div class="col-md-4">
<label class="form-label small text-muted mb-1">Dostawca</label>
<select class="form-select form-select-sm">
<option value="">Wszyscy dostawcy</option>
<option value="1">Hotel Colosseum (Włochy)</option>
<option value="2">Flixbus Polska</option>
<option value="3">Przewodnik Jan Kowalski</option>
</select>
</div>
<div class="col-md-4">
<label class="form-label small text-muted mb-1">Data realizacji (Od - Do)</label>
<input type="text" class="form-control form-control-sm" placeholder="Wybierz zakres dat">
</div>
<div class="col-md-3">
<label class="form-label small text-muted mb-1">Wycieczka</label>
<input type="text" class="form-control form-control-sm" placeholder="Szukaj po ID / Nazwie">
</div>
<div class="col-md-1 d-flex align-items-end">
<button class="btn btn-sm btn-primary w-100"><i class="bx bx-search"></i></button>
</div>
</div>
</div>
</div>
<div class="card shadow-sm">
<div class="table-responsive text-nowrap">
<table class="table table-hover">
<thead class="table-light">
<tr>
<th>Zlecenie / Wycieczka</th>
<th>Dostawca</th>
<th>Data realizacji</th>
<th class="text-end">Kwota zlecenia</th>
<th class="text-center">Status faktury</th>
<th class="text-end">Akcje</th>
</tr>
</thead>
<tbody class="table-border-bottom-0">
<tr>
<td>
<div class="d-flex flex-column">
<span class="fw-semibold text-primary">ZL/2026/05/142</span>
<small class="text-muted">#WYC-102 (Rzym na Weekend)</small>
</div>
</td>
<td>
<div class="d-flex align-items-center">
<div class="avatar avatar-xs me-2"><span class="avatar-initial rounded-circle bg-label-primary">HC</span></div>
<span>Hotel Colosseum</span>
</div>
</td>
<td><span class="text-muted">12.05.2026</span></td>
<td class="text-end fw-semibold">12 500,00 PLN</td>
<td class="text-center">
<span class="badge bg-label-danger" data-bs-toggle="tooltip" title="Zlecenie nie ma przypiętej żadnej faktury">Brak faktury</span>
</td>
<td class="text-end">
<button class="btn btn-sm btn-outline-primary dropdown-toggle" data-bs-toggle="dropdown">Podepnij</button>
<ul class="dropdown-menu dropdown-menu-end">
<li><a class="dropdown-item" href="javascript:void(0);"><i class="bx bx-link me-1"></i> Wybierz z bazy</a></li>
<li><a class="dropdown-item" href="javascript:void(0);"><i class="bx bx-upload me-1"></i> Wgraj nową</a></li>
</ul>
</td>
</tr>
<tr>
<td>
<div class="d-flex flex-column">
<span class="fw-semibold text-primary">ZL/2026/05/089</span>
<small class="text-muted">#WYC-098 (Tatry)</small>
</div>
</td>
<td>
<div class="d-flex align-items-center">
<div class="avatar avatar-xs me-2"><span class="avatar-initial rounded-circle bg-label-info">FL</span></div>
<span>Flixbus Polska</span>
</div>
</td>
<td><span class="text-muted">05.05.2026</span></td>
<td class="text-end fw-semibold">4 200,00 PLN</td>
<td class="text-center">
<span class="badge bg-label-warning" data-bs-toggle="tooltip" title="Podpięta faktura zaliczkowa. Brakuje końcowej.">Brakuje 2 000 PLN</span>
</td>
<td class="text-end">
<button class="btn btn-sm btn-outline-primary dropdown-toggle" data-bs-toggle="dropdown">Podepnij</button>
<ul class="dropdown-menu dropdown-menu-end">
<li><a class="dropdown-item" href="javascript:void(0);"><i class="bx bx-link me-1"></i> Wybierz z bazy</a></li>
<li><a class="dropdown-item" href="javascript:void(0);"><i class="bx bx-upload me-1"></i> Wgraj nową</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item text-muted" href="javascript:void(0);"><i class="bx bx-show me-1"></i> Zobacz zaliczkę</a></li>
</ul>
</td>
</tr>
<tr class="bg-lighter">
<td>
<div class="d-flex flex-column">
<span class="fw-semibold text-primary">ZL/2026/05/112</span>
<small class="text-muted">#WYC-102 (Rzym na Weekend)</small>
</div>
</td>
<td>
<div class="d-flex align-items-center">
<div class="avatar avatar-xs me-2"><span class="avatar-initial rounded-circle bg-label-secondary">M</span></div>
<span>Muzeum Watykańskie</span>
</div>
</td>
<td><span class="text-muted">14.05.2026</span></td>
<td class="text-end fw-semibold">850,00 EUR</td>
<td class="text-center">
<span class="badge bg-label-info"><i class="bx bx-user me-1"></i> Płatne przez Pilota</span>
</td>
<td class="text-end">
<button class="btn btn-sm btn-icon btn-text-secondary" data-bs-toggle="tooltip" title="Pilot ma obowiązek wgrać fakturę przez aplikację">
<i class="bx bx-time"></i>
</button>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="tab-pane fade" id="navs-faktury" role="tabpanel">
<div class="card mb-4 border-0 shadow-sm">
<div class="card-body p-3">
<div class="row g-3">
<div class="col-md-3">
<label class="form-label small text-muted mb-1">Dostawca / NIP</label>
<input type="text" class="form-control form-control-sm" placeholder="Szukaj...">
</div>
<div class="col-md-3">
<label class="form-label small text-muted mb-1">Numer faktury</label>
<input type="text" class="form-control form-control-sm" placeholder="Wpisz numer">
</div>
<div class="col-md-3">
<label class="form-label small text-muted mb-1">Status powiązania</label>
<select class="form-select form-select-sm">
<option value="">Wszystkie</option>
<option value="unassigned">Nieprzypisane</option>
<option value="assigned">Przypisane (1:1)</option>
<option value="split">Rozksięgowane (1:N)</option>
</select>
</div>
<div class="col-md-2">
<label class="form-label small text-muted mb-1">Źródło</label>
<select class="form-select form-select-sm">
<option value="">Wszystkie</option>
<option value="fakturownia">Fakturownia</option>
<option value="invoice">Invoice.Travel</option>
<option value="pilot">Aplikacja Pilota</option>
</select>
</div>
<div class="col-md-1 d-flex align-items-end">
<button class="btn btn-sm btn-primary w-100"><i class="bx bx-search"></i></button>
</div>
</div>
</div>
</div>
<div class="card shadow-sm">
<div class="table-responsive text-nowrap">
<table class="table table-hover">
<thead class="table-light">
<tr>
<th>Numer Faktury</th>
<th>Dostawca (Triada)</th>
<th>Data wyst.</th>
<th class="text-end">Kwota Brutto</th>
<th class="text-center">Status powiązania</th>
<th class="text-end">Akcje</th>
</tr>
</thead>
<tbody class="table-border-bottom-0">
<tr>
<td>
<div class="d-flex align-items-center">
<i class="bx bxs-file-pdf text-danger fs-4 me-2"></i>
<span class="fw-semibold text-dark">FV/2026/05/1234</span>
</div>
</td>
<td>
<div class="d-flex flex-column">
<span>Flixbus Polska</span>
<small class="text-muted">NIP: 1234567890</small>
</div>
</td>
<td><span class="text-muted">04.05.2026</span></td>
<td class="text-end fw-bold">4 200,00 PLN</td>
<td class="text-center">
<span class="badge bg-label-danger">Nieprzypisana</span>
</td>
<td class="text-end">
<button class="btn btn-sm btn-icon btn-text-secondary" data-bs-toggle="tooltip" title="Podgląd dokumentu"><i class="bx bx-show"></i></button>
<button class="btn btn-sm btn-primary ms-1">Połącz ze zleceniem</button>
</td>
</tr>
<tr>
<td>
<div class="d-flex align-items-center">
<i class="bx bx-receipt text-success fs-4 me-2"></i>
<span class="fw-semibold text-dark">F-2026-999</span>
</div>
</td>
<td>
<div class="d-flex flex-column">
<span>Przewodnik Jan Kowalski</span>
<small class="text-muted">NIP: 0987654321</small>
</div>
</td>
<td><span class="text-muted">10.05.2026</span></td>
<td class="text-end fw-bold">3 000,00 PLN</td>
<td class="text-center">
<span class="badge bg-label-info" data-bs-toggle="tooltip" title="Przypisano do 3 różnych zleceń/wycieczek">Rozksięgowana (1:N)</span>
</td>
<td class="text-end">
<button class="btn btn-sm btn-icon btn-text-secondary" data-bs-toggle="tooltip" title="Szczegóły rozksięgowania"><i class="bx bx-list-ul"></i></button>
<button class="btn btn-sm btn-icon btn-text-secondary"><i class="bx bx-show"></i></button>
</td>
</tr>
<tr>
<td>
<div class="d-flex align-items-center">
<i class="bx bx-image text-warning fs-4 me-2" data-bs-toggle="tooltip" title="Skan z aplikacji pilota"></i>
<span class="fw-semibold text-dark">Paragon/FV 12</span>
</div>
</td>
<td>
<div class="d-flex flex-column">
<span>Muzeum Watykańskie</span>
<small class="text-muted">Pilot: Tomasz S.</small>
</div>
</td>
<td><span class="text-muted">14.05.2026</span></td>
<td class="text-end fw-bold">850,00 EUR</td>
<td class="text-center">
<span class="badge bg-label-success">Przypisana (1:1)</span>
</td>
<td class="text-end">
<button class="btn btn-sm btn-icon btn-text-secondary" data-bs-toggle="tooltip" title="Podgląd skanu"><i class="bx bx-show"></i></button>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
<?php include '../../footer.php'; ?>
</body>
</html>