Travel Invoice: Poprawki
This commit is contained in:
@@ -168,7 +168,7 @@ include '../../header-travel.php';
|
||||
<th>Dostawca</th>
|
||||
<th>Data realizacji</th>
|
||||
<th class="text-end">Kwota zlecenia</th>
|
||||
<th class="text-center">Status faktury</th>
|
||||
<th class="text-center">Status zlecenia</th>
|
||||
<th class="text-end">Akcje</th>
|
||||
</tr>
|
||||
</thead>
|
||||
@@ -190,8 +190,8 @@ include '../../header-travel.php';
|
||||
</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="Brak przypiętej faktury">Nierozliczone</span></td>
|
||||
<td class="text-center"><span class="badge bg-label-danger">Nierozliczone</span>
|
||||
</td>
|
||||
<td class="text-end">
|
||||
<button class="btn btn-sm btn-primary" href="javascript:void(0);"><i
|
||||
class="bx bx-link me-1"></i> Przypisz fakturę</button>
|
||||
@@ -214,9 +214,7 @@ include '../../header-travel.php';
|
||||
</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="Faktura zaliczkowa. Brakuje końcowej.">Częściowo rozliczone</span>
|
||||
<td class="text-center"><span class="badge bg-label-warning">Zaliczkowane</span>
|
||||
</td>
|
||||
<td class="text-end">
|
||||
<div class="btn-group">
|
||||
@@ -349,9 +347,8 @@ include '../../header-travel.php';
|
||||
</td>
|
||||
<td><span class="text-muted">02.05.2026</span></td>
|
||||
<td class="text-end fw-semibold">1 920,00 EUR</td>
|
||||
<td class="text-center"><span class="badge bg-label-warning"
|
||||
data-bs-toggle="tooltip" title="Rozliczono 60% kwoty zlecenia">Częściowo
|
||||
rozliczone</span></td>
|
||||
<td class="text-center"><span class="badge bg-label-warning">Zaliczkowane</span>
|
||||
</td>
|
||||
<td class="text-end">
|
||||
<div class="btn-group">
|
||||
<button class="btn btn-sm btn-outline-secondary" data-bs-toggle="modal"
|
||||
@@ -518,21 +515,27 @@ include '../../header-travel.php';
|
||||
<table class="table table-hover">
|
||||
<thead class="table-light">
|
||||
<tr>
|
||||
<th style="width: 48px;"><input class="form-check-input" type="checkbox" id="selectAllInvoices"></th>
|
||||
<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>Źródło dokumentu</th>
|
||||
<th class="text-end">Akcje</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="table-border-bottom-0">
|
||||
|
||||
<tr>
|
||||
<td><input class="form-check-input invoice-checkbox" type="checkbox"></td>
|
||||
<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 class="d-flex flex-column">
|
||||
<span class="fw-semibold text-dark">FV/2026/05/1234</span>
|
||||
<small class="text-muted">Faktura VAT</small>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
@@ -546,18 +549,31 @@ include '../../header-travel.php';
|
||||
<td class="text-center">
|
||||
<span class="badge bg-label-danger">Nieprzypisana</span>
|
||||
</td>
|
||||
<td>
|
||||
<div class="d-flex align-items-center gap-2">
|
||||
<span class="avatar avatar-xs">
|
||||
<span class="avatar-initial rounded-circle bg-label-secondary"><i class="bx bx-user fs-6"></i></span>
|
||||
</span>
|
||||
<span class="small">Anna Kowalska</span>
|
||||
</div>
|
||||
</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" data-bs-toggle="modal" data-bs-target="#modalLinkExistingInvoice">Połącz ze zleceniem</button>
|
||||
<button class="btn btn-sm btn-primary ms-1" data-bs-toggle="modal"
|
||||
data-bs-target="#modalLinkExistingInvoice">Połącz ze zleceniem</button>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><input class="form-check-input invoice-checkbox" type="checkbox"></td>
|
||||
<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 class="d-flex flex-column">
|
||||
<span class="fw-semibold text-dark">F-2026-999</span>
|
||||
<small class="text-muted">Faktura VAT z KSeF</small>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
@@ -572,6 +588,14 @@ include '../../header-travel.php';
|
||||
<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>
|
||||
<div class="d-flex align-items-center gap-2">
|
||||
<span class="avatar avatar-xs">
|
||||
<span class="avatar-initial rounded-circle bg-label-info"><i class="bx bx-cloud-download fs-6"></i></span>
|
||||
</span>
|
||||
<span class="small">KSeF</span>
|
||||
</div>
|
||||
</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>
|
||||
@@ -581,11 +605,15 @@ include '../../header-travel.php';
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><input class="form-check-input invoice-checkbox" type="checkbox"></td>
|
||||
<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 class="d-flex flex-column">
|
||||
<span class="fw-semibold text-dark">Paragon/FV 12</span>
|
||||
<small class="text-muted">Faktura zaliczkowa</small>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
@@ -599,12 +627,177 @@ include '../../header-travel.php';
|
||||
<td class="text-center">
|
||||
<span class="badge bg-label-success">Przypisana (1:1)</span>
|
||||
</td>
|
||||
<td>
|
||||
<div class="d-flex align-items-center gap-2">
|
||||
<span class="avatar avatar-xs">
|
||||
<span class="avatar-initial rounded-circle bg-label-warning"><i class="bx bx-walk fs-6"></i></span>
|
||||
</span>
|
||||
<div class="d-flex flex-column">
|
||||
<span class="small">Pilot</span>
|
||||
<small class="text-muted">Jan Kowalski</small>
|
||||
</div>
|
||||
</div>
|
||||
</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>
|
||||
|
||||
<tr>
|
||||
<td><input class="form-check-input invoice-checkbox" type="checkbox"></td>
|
||||
<td>
|
||||
<div class="d-flex align-items-center">
|
||||
<i class="bx bxs-file-pdf text-danger fs-4 me-2"></i>
|
||||
<div class="d-flex flex-column">
|
||||
<span class="fw-semibold text-dark">PRF/2026/05/088</span>
|
||||
<small class="text-muted">Proforma</small>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="d-flex flex-column">
|
||||
<span>Hotel Colosseum Roma</span>
|
||||
<small class="text-muted">NIP: 5566778899</small>
|
||||
</div>
|
||||
</td>
|
||||
<td><span class="text-muted">02.05.2026</span></td>
|
||||
<td class="text-end fw-bold">12 500,00 PLN</td>
|
||||
<td class="text-center">
|
||||
<span class="badge bg-label-danger">Nieprzypisana</span>
|
||||
</td>
|
||||
<td>
|
||||
<div class="d-flex align-items-center gap-2">
|
||||
<span class="avatar avatar-xs">
|
||||
<span class="avatar-initial rounded-circle bg-label-secondary"><i class="bx bx-user fs-6"></i></span>
|
||||
</span>
|
||||
<span class="small">Anna Kowalska</span>
|
||||
</div>
|
||||
</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" data-bs-toggle="modal"
|
||||
data-bs-target="#modalLinkExistingInvoice">Połącz ze zleceniem</button>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><input class="form-check-input invoice-checkbox" type="checkbox"></td>
|
||||
<td>
|
||||
<div class="d-flex align-items-center">
|
||||
<i class="bx bx-receipt text-primary fs-4 me-2"></i>
|
||||
<div class="d-flex flex-column">
|
||||
<span class="fw-semibold text-dark">FVZ/2026/04/311</span>
|
||||
<small class="text-muted">Faktura zaliczkowa</small>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="d-flex flex-column">
|
||||
<span>Air Corsica S.A.</span>
|
||||
<small class="text-muted">NIP: 3344556677</small>
|
||||
</div>
|
||||
</td>
|
||||
<td><span class="text-muted">22.04.2026</span></td>
|
||||
<td class="text-end fw-bold">8 760,00 PLN</td>
|
||||
<td class="text-center">
|
||||
<span class="badge bg-label-success">Przypisana (1:1)</span>
|
||||
</td>
|
||||
<td>
|
||||
<div class="d-flex align-items-center gap-2">
|
||||
<span class="avatar avatar-xs">
|
||||
<span class="avatar-initial rounded-circle bg-label-info"><i class="bx bx-cloud-download fs-6"></i></span>
|
||||
</span>
|
||||
<span class="small">KSeF</span>
|
||||
</div>
|
||||
</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>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><input class="form-check-input invoice-checkbox" type="checkbox"></td>
|
||||
<td>
|
||||
<div class="d-flex align-items-center">
|
||||
<i class="bx bxs-file-pdf text-info fs-4 me-2"></i>
|
||||
<div class="d-flex flex-column">
|
||||
<span class="fw-semibold text-dark">KSEF/2026/05/0042</span>
|
||||
<small class="text-muted">Faktura VAT z KSeF</small>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="d-flex flex-column">
|
||||
<span>TAP Air Portugal</span>
|
||||
<small class="text-muted">NIP: 9988776655</small>
|
||||
</div>
|
||||
</td>
|
||||
<td><span class="text-muted">18.05.2026</span></td>
|
||||
<td class="text-end fw-bold">5 400,00 PLN</td>
|
||||
<td class="text-center">
|
||||
<span class="badge bg-label-warning">Zaliczkowana</span>
|
||||
</td>
|
||||
<td>
|
||||
<div class="d-flex align-items-center gap-2">
|
||||
<span class="avatar avatar-xs">
|
||||
<span class="avatar-initial rounded-circle bg-label-warning"><i class="bx bx-walk fs-6"></i></span>
|
||||
</span>
|
||||
<div class="d-flex flex-column">
|
||||
<span class="small">Pilot</span>
|
||||
<small class="text-muted">Tomasz S.</small>
|
||||
</div>
|
||||
</div>
|
||||
</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" data-bs-toggle="modal"
|
||||
data-bs-target="#modalLinkExistingInvoice">Połącz ze zleceniem</button>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><input class="form-check-input invoice-checkbox" type="checkbox"></td>
|
||||
<td>
|
||||
<div class="d-flex align-items-center">
|
||||
<i class="bx bx-receipt text-secondary fs-4 me-2"></i>
|
||||
<div class="d-flex flex-column">
|
||||
<span class="fw-semibold text-dark">PRF/2026/05/102</span>
|
||||
<small class="text-muted">Proforma</small>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="d-flex flex-column">
|
||||
<span>Venezia Apartments S.r.l.</span>
|
||||
<small class="text-muted">NIP: 1122334455</small>
|
||||
</div>
|
||||
</td>
|
||||
<td><span class="text-muted">08.05.2026</span></td>
|
||||
<td class="text-end fw-bold">3 680,00 EUR</td>
|
||||
<td class="text-center">
|
||||
<span class="badge bg-label-info" data-bs-toggle="tooltip"
|
||||
title="Przypisano do 2 zleceń">Rozksięgowana (1:N)</span>
|
||||
</td>
|
||||
<td>
|
||||
<div class="d-flex align-items-center gap-2">
|
||||
<span class="avatar avatar-xs">
|
||||
<span class="avatar-initial rounded-circle bg-label-secondary"><i class="bx bx-user fs-6"></i></span>
|
||||
</span>
|
||||
<span class="small">Anna Kowalska</span>
|
||||
</div>
|
||||
</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>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
@@ -1350,37 +1543,51 @@ include '../../header-travel.php';
|
||||
<h6 class="mb-3">Wybierz sposób rozliczenia dokumentu</h6>
|
||||
<div class="row g-3 mb-4">
|
||||
<div class="col-md-3">
|
||||
<label class="card border border-2 shadow-none cursor-pointer h-100 option-card-existing border-primary" for="assignSingleExisting">
|
||||
<label
|
||||
class="card border border-2 shadow-none cursor-pointer h-100 option-card-existing border-primary"
|
||||
for="assignSingleExisting">
|
||||
<div class="card-body text-center p-3">
|
||||
<input type="radio" name="assignTypeExisting" id="assignSingleExisting" value="single" class="form-check-input mb-3" checked onchange="toggleAssignTypeExisting('single')">
|
||||
<h6 class="mb-1"><i class="bx bx-link-alt fs-4 d-block mb-2 text-primary"></i>Pojedyncze (1:1)</h6>
|
||||
<input type="radio" name="assignTypeExisting" id="assignSingleExisting" value="single"
|
||||
class="form-check-input mb-3" checked onchange="toggleAssignTypeExisting('single')">
|
||||
<h6 class="mb-1"><i class="bx bx-link-alt fs-4 d-block mb-2 text-primary"></i>Pojedyncze
|
||||
(1:1)</h6>
|
||||
<small class="text-muted">Faktura na jedno zlecenie.</small>
|
||||
</div>
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<label class="card border shadow-none cursor-pointer h-100 option-card-existing bg-lighter" for="assignSplitExisting">
|
||||
<label class="card border shadow-none cursor-pointer h-100 option-card-existing bg-lighter"
|
||||
for="assignSplitExisting">
|
||||
<div class="card-body text-center p-3">
|
||||
<input type="radio" name="assignTypeExisting" id="assignSplitExisting" value="split" class="form-check-input mb-3" onchange="toggleAssignTypeExisting('split')">
|
||||
<h6 class="mb-1"><i class="bx bx-git-branch fs-4 d-block mb-2 text-primary"></i>Rozksięgowanie (1:N)</h6>
|
||||
<input type="radio" name="assignTypeExisting" id="assignSplitExisting" value="split"
|
||||
class="form-check-input mb-3" onchange="toggleAssignTypeExisting('split')">
|
||||
<h6 class="mb-1"><i
|
||||
class="bx bx-git-branch fs-4 d-block mb-2 text-primary"></i>Rozksięgowanie (1:N)
|
||||
</h6>
|
||||
<small class="text-muted">Faktura na kilka zleceń.</small>
|
||||
</div>
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<label class="card border shadow-none cursor-pointer h-100 option-card-existing bg-lighter" for="assignPartialExisting">
|
||||
<label class="card border shadow-none cursor-pointer h-100 option-card-existing bg-lighter"
|
||||
for="assignPartialExisting">
|
||||
<div class="card-body text-center p-3">
|
||||
<input type="radio" name="assignTypeExisting" id="assignPartialExisting" value="partial" class="form-check-input mb-3" onchange="toggleAssignTypeExisting('partial')">
|
||||
<h6 class="mb-1"><i class="bx bx-layer-plus fs-4 d-block mb-2 text-primary"></i>Cząstkowe (N:1)</h6>
|
||||
<input type="radio" name="assignTypeExisting" id="assignPartialExisting" value="partial"
|
||||
class="form-check-input mb-3" onchange="toggleAssignTypeExisting('partial')">
|
||||
<h6 class="mb-1"><i
|
||||
class="bx bx-layer-plus fs-4 d-block mb-2 text-primary"></i>Cząstkowe (N:1)</h6>
|
||||
<small class="text-muted">Zaliczka do zlecenia.</small>
|
||||
</div>
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<label class="card border shadow-none cursor-pointer h-100 option-card-existing bg-lighter" for="assignGeneralExisting">
|
||||
<label class="card border shadow-none cursor-pointer h-100 option-card-existing bg-lighter"
|
||||
for="assignGeneralExisting">
|
||||
<div class="card-body text-center p-3">
|
||||
<input type="radio" name="assignTypeExisting" id="assignGeneralExisting" value="general" class="form-check-input mb-3" onchange="toggleAssignTypeExisting('general')">
|
||||
<h6 class="mb-1"><i class="bx bx-buildings fs-4 d-block mb-2 text-primary"></i>Koszty ogólne</h6>
|
||||
<input type="radio" name="assignTypeExisting" id="assignGeneralExisting" value="general"
|
||||
class="form-check-input mb-3" onchange="toggleAssignTypeExisting('general')">
|
||||
<h6 class="mb-1"><i class="bx bx-buildings fs-4 d-block mb-2 text-primary"></i>Koszty
|
||||
ogólne</h6>
|
||||
<small class="text-muted">Bez przypisania do zlecenia.</small>
|
||||
</div>
|
||||
</label>
|
||||
@@ -1389,7 +1596,8 @@ include '../../header-travel.php';
|
||||
|
||||
<!-- Podsumowanie faktury -->
|
||||
<div class="card shadow-none border mb-3">
|
||||
<div class="card-header py-2 px-3 d-flex align-items-center justify-content-between" style="background: linear-gradient(135deg, #f0f4ff 0%, #e8f0fe 100%); border-bottom: 1px solid #d0deff;">
|
||||
<div class="card-header py-2 px-3 d-flex align-items-center justify-content-between"
|
||||
style="background: linear-gradient(135deg, #f0f4ff 0%, #e8f0fe 100%); border-bottom: 1px solid #d0deff;">
|
||||
<div class="d-flex align-items-center gap-2">
|
||||
<i class="bx bx-receipt text-primary fs-5"></i>
|
||||
<span class="fw-semibold text-dark small">Szczegóły wybranej faktury</span>
|
||||
@@ -1437,29 +1645,38 @@ include '../../header-travel.php';
|
||||
<td><input class="form-check-input" type="radio" name="orderSelectExisting"></td>
|
||||
<td>
|
||||
<div class="d-flex flex-column">
|
||||
<span class="fw-semibold text-primary d-flex align-items-center gap-2">ZL/2026/05/089
|
||||
<span class="badge bg-label-success order-suggestion-badge">Sugerowane zlecenie</span>
|
||||
<span
|
||||
class="fw-semibold text-primary d-flex align-items-center gap-2">ZL/2026/05/089
|
||||
<span class="badge bg-label-success order-suggestion-badge">Sugerowane
|
||||
zlecenie</span>
|
||||
</span>
|
||||
<small class="text-muted">#WYC-098 (Tatry)</small>
|
||||
</div>
|
||||
</td>
|
||||
<td>05.05.2026</td>
|
||||
<td class="text-end fw-semibold">4 200,00 PLN</td>
|
||||
<td class="split-col-existing d-none text-end"><input type="number" class="form-control form-control-sm text-end split-amount-input-existing" placeholder="0.00" min="0" step="0.01"></td>
|
||||
<td class="split-col-existing d-none text-end"><input type="number"
|
||||
class="form-control form-control-sm text-end split-amount-input-existing"
|
||||
placeholder="0.00" min="0" step="0.01"></td>
|
||||
</tr>
|
||||
<tr class="assign-order-row-existing" data-order-amount="2100.00">
|
||||
<td><input class="form-check-input" type="radio" name="orderSelectExisting"></td>
|
||||
<td>
|
||||
<div class="d-flex flex-column">
|
||||
<span class="fw-semibold text-primary d-flex align-items-center gap-2">ZL/2026/05/156
|
||||
<span class="badge bg-label-success order-suggestion-badge d-none">Sugerowane zlecenie</span>
|
||||
<span
|
||||
class="fw-semibold text-primary d-flex align-items-center gap-2">ZL/2026/05/156
|
||||
<span
|
||||
class="badge bg-label-success order-suggestion-badge d-none">Sugerowane
|
||||
zlecenie</span>
|
||||
</span>
|
||||
<small class="text-muted">#WYC-103 (Kraków)</small>
|
||||
</div>
|
||||
</td>
|
||||
<td>08.05.2026</td>
|
||||
<td class="text-end fw-semibold">2 100,00 PLN</td>
|
||||
<td class="split-col-existing d-none text-end"><input type="number" class="form-control form-control-sm text-end split-amount-input-existing" placeholder="0.00" min="0" step="0.01"></td>
|
||||
<td class="split-col-existing d-none text-end"><input type="number"
|
||||
class="form-control form-control-sm text-end split-amount-input-existing"
|
||||
placeholder="0.00" min="0" step="0.01"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
@@ -1471,14 +1688,15 @@ include '../../header-travel.php';
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="alert alert-danger d-none mt-3 mb-0" id="splitValidationAlertExisting" role="alert">
|
||||
Suma przypisanych pozycji musi być równa kwocie faktury.
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer border-top pt-3">
|
||||
<button type="button" class="btn btn-label-secondary" data-bs-dismiss="modal">Anuluj</button>
|
||||
<button type="button" class="btn btn-success" id="btnSaveAssignExisting"><i class="bx bx-check me-1"></i> Zapisz powiązanie</button>
|
||||
<button type="button" class="btn btn-success" id="btnSaveAssignExisting"><i
|
||||
class="bx bx-check me-1"></i> Zapisz powiązanie</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1780,10 +1998,10 @@ include '../../header-travel.php';
|
||||
splitCols.forEach(col => col.classList.add('d-none'));
|
||||
document.querySelectorAll('input[name="orderSelectExisting"]').forEach(el => el.type = 'radio');
|
||||
}
|
||||
|
||||
|
||||
updateSplitAmountSummaryExisting();
|
||||
}
|
||||
|
||||
|
||||
function updateSplitAmountSummaryExisting() {
|
||||
const isSplit = document.getElementById('assignSplitExisting')?.checked;
|
||||
const totalRow = document.getElementById('splitTotalRowExisting');
|
||||
@@ -1818,7 +2036,7 @@ include '../../header-travel.php';
|
||||
if (saveBtn) saveBtn.disabled = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
document.querySelectorAll('input[name="orderSelectExisting"], .split-amount-input-existing').forEach(el => {
|
||||
el.addEventListener('change', updateSplitAmountSummaryExisting);
|
||||
el.addEventListener('input', updateSplitAmountSummaryExisting);
|
||||
@@ -1938,6 +2156,24 @@ include '../../header-travel.php';
|
||||
document.getElementById('statusDropdownMenu').classList.remove('show');
|
||||
}
|
||||
});
|
||||
|
||||
// Zaznacz / odznacz wszystkie faktury
|
||||
const selectAll = document.getElementById('selectAllInvoices');
|
||||
if (selectAll) {
|
||||
selectAll.addEventListener('change', function () {
|
||||
document.querySelectorAll('.invoice-checkbox').forEach(cb => {
|
||||
cb.checked = this.checked;
|
||||
});
|
||||
});
|
||||
document.querySelectorAll('.invoice-checkbox').forEach(cb => {
|
||||
cb.addEventListener('change', function () {
|
||||
const all = document.querySelectorAll('.invoice-checkbox');
|
||||
const checked = document.querySelectorAll('.invoice-checkbox:checked');
|
||||
selectAll.indeterminate = checked.length > 0 && checked.length < all.length;
|
||||
selectAll.checked = checked.length === all.length;
|
||||
});
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
<?php include '../../footer.php'; ?>
|
||||
|
||||
Reference in New Issue
Block a user