Faktury - Dialog podglądu faktury
This commit is contained in:
@@ -469,8 +469,8 @@
|
||||
</div>
|
||||
<p style="margin-bottom:5px;">${data.comment}</p>
|
||||
<div style="text-align:right; gap:5px; display:flex; justify-content:flex-end;">
|
||||
<button class="btn btn-xs btn-outline-success btn-resolve" data-id="${data.id}" style="font-size:10px; padding: 2px 5px;">Rozwiąż</button>
|
||||
<button class="btn btn-xs btn-outline-danger btn-delete" data-id="${data.id}" style="font-size:10px; padding: 2px 5px;">Usuń</button>
|
||||
${isAuthorized ? `<button class="btn btn-xs btn-outline-success btn-resolve" data-id="${data.id}" style="font-size:10px; padding: 2px 5px;">Rozwiąż</button>
|
||||
<button class="btn btn-xs btn-outline-danger btn-delete" data-id="${data.id}" style="font-size:10px; padding: 2px 5px;">Usuń</button>` : ''}
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
@@ -646,7 +646,10 @@
|
||||
|
||||
// START
|
||||
initUI();
|
||||
loadComments();
|
||||
// Sprawdź autoryzację w tle (nawet wyłączony tryb komentowania), w celu wyświetlenia przycisków
|
||||
checkAuth(true).then(() => {
|
||||
loadComments();
|
||||
});
|
||||
|
||||
// Odświeżanie przy zmianie rozmiaru okna
|
||||
window.addEventListener('resize', updateMarkerPositions);
|
||||
@@ -835,8 +838,8 @@
|
||||
Element: <code>${c.dom_selector.substring(0, 30)}...</code>
|
||||
</div>
|
||||
<div style="text-align:right;">
|
||||
${c.is_resolved == 0 ? `<button class="btn btn-sm btn-outline-success btn-resolve-list" data-id="${c.id}">Rozwiąż</button>` : ''}
|
||||
<button class="btn btn-sm btn-outline-danger btn-delete-list" data-id="${c.id}">Usuń</button>
|
||||
${isAuthorized && c.is_resolved == 0 ? `<button class="btn btn-sm btn-outline-success btn-resolve-list" data-id="${c.id}">Rozwiąż</button>` : ''}
|
||||
${isAuthorized ? `<button class="btn btn-sm btn-outline-danger btn-delete-list" data-id="${c.id}">Usuń</button>` : ''}
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
foreach ($structure as &$files) {
|
||||
sort($files);
|
||||
}
|
||||
unset($files); // Break the reference with the last element
|
||||
}
|
||||
|
||||
foreach ($structure as $folder => $files): ?>
|
||||
|
||||
@@ -134,8 +134,10 @@ include '../../header-invoice.php';
|
||||
title="KSeF: Nie wysłano"></span> <a href="#"
|
||||
class="btn btn-icon btn-sm text-success" title="Wyślij e-mail"><i
|
||||
class="bx bx-send"></i></a>
|
||||
<a href="app-invoice-preview.php" class="btn btn-icon btn-sm text-secondary"
|
||||
title="Podgląd"><i class="bx bx-show"></i></a>
|
||||
<a href="javascript:void(0);" data-bs-toggle="modal"
|
||||
data-bs-target="#invoicePreviewModal"
|
||||
class="btn btn-icon btn-sm text-secondary" title="Podgląd"><i
|
||||
class="bx bx-show"></i></a>
|
||||
<div class="dropdown">
|
||||
<button type="button" class="btn p-0 dropdown-toggle hide-arrow"
|
||||
data-bs-toggle="dropdown">
|
||||
@@ -232,8 +234,10 @@ include '../../header-invoice.php';
|
||||
title="KSeF: Nie wysłano"></span>
|
||||
<a href="#" class="btn btn-icon btn-sm text-secondary" title="Wyślij e-mail"><i
|
||||
class="bx bx-send"></i></a>
|
||||
<a href="app-invoice-preview.php" class="btn btn-icon btn-sm text-secondary"
|
||||
title="Podgląd"><i class="bx bx-show"></i></a>
|
||||
<a href="javascript:void(0);" data-bs-toggle="modal"
|
||||
data-bs-target="#invoicePreviewModal"
|
||||
class="btn btn-icon btn-sm text-secondary" title="Podgląd"><i
|
||||
class="bx bx-show"></i></a>
|
||||
<div class="dropdown">
|
||||
<button type="button" class="btn btn-sm p-0 dropdown-toggle hide-arrow"
|
||||
data-bs-toggle="dropdown"><i
|
||||
@@ -267,8 +271,9 @@ include '../../header-invoice.php';
|
||||
<span class="badge badge-dot bg-success me-1" title="KSeF: Wysłano"></span>
|
||||
<a href="#" class="btn btn-icon btn-sm text-secondary"><i
|
||||
class="bx bx-send"></i></a>
|
||||
<a href="app-invoice-preview.php" class="btn btn-icon btn-sm text-secondary"><i
|
||||
class="bx bx-show"></i></a>
|
||||
<a href="javascript:void(0);" data-bs-toggle="modal"
|
||||
data-bs-target="#invoicePreviewModal"
|
||||
class="btn btn-icon btn-sm text-secondary"><i class="bx bx-show"></i></a>
|
||||
<div class="dropdown">
|
||||
<button type="button" class="btn btn-sm p-0 dropdown-toggle hide-arrow"
|
||||
data-bs-toggle="dropdown"><i
|
||||
@@ -304,8 +309,10 @@ include '../../header-invoice.php';
|
||||
title="KSeF: Nie wysłano"></span> <a href="#"
|
||||
class="btn btn-icon btn-sm text-success" title="Wyślij e-mail"><i
|
||||
class="bx bx-send"></i></a>
|
||||
<a href="app-invoice-preview.php" class="btn btn-icon btn-sm text-secondary"
|
||||
title="Podgląd"><i class="bx bx-show"></i></a>
|
||||
<a href="javascript:void(0);" data-bs-toggle="modal"
|
||||
data-bs-target="#invoicePreviewModal"
|
||||
class="btn btn-icon btn-sm text-secondary" title="Podgląd"><i
|
||||
class="bx bx-show"></i></a>
|
||||
<div class="dropdown">
|
||||
<button type="button" class="btn btn-sm p-0 dropdown-toggle hide-arrow"
|
||||
data-bs-toggle="dropdown"><i
|
||||
@@ -341,8 +348,10 @@ include '../../header-invoice.php';
|
||||
<span class="badge badge-dot bg-success me-1" title="KSeF: Wysłano"></span>
|
||||
<a href="#" class="btn btn-icon btn-sm text-secondary" title="Wyślij e-mail"><i
|
||||
class="bx bx-send"></i></a>
|
||||
<a href="app-invoice-preview.php" class="btn btn-icon btn-sm text-secondary"
|
||||
title="Podgląd"><i class="bx bx-show"></i></a>
|
||||
<a href="javascript:void(0);" data-bs-toggle="modal"
|
||||
data-bs-target="#invoicePreviewModal"
|
||||
class="btn btn-icon btn-sm text-secondary" title="Podgląd"><i
|
||||
class="bx bx-show"></i></a>
|
||||
<div class="dropdown">
|
||||
<button type="button" class="btn btn-sm p-0 dropdown-toggle hide-arrow"
|
||||
data-bs-toggle="dropdown"><i
|
||||
@@ -374,8 +383,9 @@ include '../../header-invoice.php';
|
||||
title="KSeF: Przetwarzanie"></span>
|
||||
<a href="#" class="btn btn-icon btn-sm text-secondary"><i
|
||||
class="bx bx-send"></i></a>
|
||||
<a href="app-invoice-preview.php" class="btn btn-icon btn-sm text-secondary"><i
|
||||
class="bx bx-show"></i></a>
|
||||
<a href="javascript:void(0);" data-bs-toggle="modal"
|
||||
data-bs-target="#invoicePreviewModal"
|
||||
class="btn btn-icon btn-sm text-secondary"><i class="bx bx-show"></i></a>
|
||||
<div class="dropdown">
|
||||
<button type="button" class="btn btn-sm p-0 dropdown-toggle hide-arrow"
|
||||
data-bs-toggle="dropdown"><i
|
||||
@@ -407,8 +417,9 @@ include '../../header-invoice.php';
|
||||
<span class="badge badge-dot bg-danger me-1" title="KSeF: Błąd"></span>
|
||||
<a href="#" class="btn btn-icon btn-sm text-secondary"><i
|
||||
class="bx bx-send"></i></a>
|
||||
<a href="app-invoice-preview.php" class="btn btn-icon btn-sm text-secondary"><i
|
||||
class="bx bx-show"></i></a>
|
||||
<a href="javascript:void(0);" data-bs-toggle="modal"
|
||||
data-bs-target="#invoicePreviewModal"
|
||||
class="btn btn-icon btn-sm text-secondary"><i class="bx bx-show"></i></a>
|
||||
<div class="dropdown">
|
||||
<button type="button" class="btn btn-sm p-0 dropdown-toggle hide-arrow"
|
||||
data-bs-toggle="dropdown"><i
|
||||
@@ -439,8 +450,9 @@ include '../../header-invoice.php';
|
||||
<span class="badge badge-dot bg-success me-1" title="KSeF: Wysłano"></span>
|
||||
<a href="#" class="btn btn-icon btn-sm text-secondary"><i
|
||||
class="bx bx-send"></i></a>
|
||||
<a href="app-invoice-preview.php" class="btn btn-icon btn-sm text-secondary"><i
|
||||
class="bx bx-show"></i></a>
|
||||
<a href="javascript:void(0);" data-bs-toggle="modal"
|
||||
data-bs-target="#invoicePreviewModal"
|
||||
class="btn btn-icon btn-sm text-secondary"><i class="bx bx-show"></i></a>
|
||||
<div class="dropdown">
|
||||
<button type="button" class="btn btn-sm p-0 dropdown-toggle hide-arrow"
|
||||
data-bs-toggle="dropdown"><i
|
||||
@@ -567,6 +579,279 @@ include '../../header-invoice.php';
|
||||
</div>
|
||||
<div class="content-backdrop fade"></div>
|
||||
|
||||
<!-- Modal: Invoice Preview -->
|
||||
<div class="modal fade" id="invoicePreviewModal" tabindex="-1" aria-hidden="true">
|
||||
<div class="modal-dialog modal-xl modal-dialog-centered modal-dialog-scrollable" role="document">
|
||||
<div class="modal-content">
|
||||
|
||||
<div class="modal-header border-bottom py-3 d-flex justify-content-between align-items-center">
|
||||
<div class="d-flex align-items-center gap-3">
|
||||
<h4 class="modal-title fw-bold mb-0">FV/1/01/2026/KB</h4>
|
||||
<span class="badge bg-label-success fs-6">Opłacona</span>
|
||||
</div>
|
||||
<div class="d-flex align-items-center gap-2">
|
||||
|
||||
<button type="button" class="btn btn-icon btn-label-secondary" data-bs-toggle="tooltip"
|
||||
title="Drukuj PDF">
|
||||
<i class="bx bx-printer"></i>
|
||||
</button>
|
||||
<button type="button" class="btn btn-icon btn-label-secondary" data-bs-toggle="tooltip"
|
||||
title="Edytuj">
|
||||
<i class="bx bx-edit-alt"></i>
|
||||
</button>
|
||||
|
||||
<div class="dropdown">
|
||||
<button class="btn btn-primary" type="button" id="dropdownInvoiceActions"
|
||||
data-bs-toggle="dropdown" aria-expanded="false">
|
||||
Więcej akcji <i class="bx bx-chevron-down ms-1"></i>
|
||||
</button>
|
||||
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="dropdownInvoiceActions">
|
||||
<h6 class="dropdown-header text-uppercase ps-3">Finanse</h6>
|
||||
<li><button class="dropdown-item"><i class="bx bx-money me-2"></i> Rozlicz fakturę </button>
|
||||
</li>
|
||||
<li><a href="#" class="dropdown-item"><i class="bx bx-revision me-2"></i> Wystaw korektę
|
||||
</a></li>
|
||||
|
||||
<div class="dropdown-divider"></div>
|
||||
<h6 class="dropdown-header text-uppercase ps-3">Wysyłka i KSeF</h6>
|
||||
<li>
|
||||
<a class="dropdown-item d-flex justify-content-between align-items-center" href="#">
|
||||
<span><i class="bx bx-cloud-upload me-2"></i> Wyślij do KSeF </span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<button class="dropdown-item d-flex justify-content-between align-items-center">
|
||||
<span><i class="bx bx-envelope me-2"></i> Wyślij fakturę e-mail</span>
|
||||
<span class="ms-2 text-success" title="Wysłano: 2026-01-30 15:38:32"><i
|
||||
class="bx bx-check-circle"></i></span>
|
||||
</button>
|
||||
</li>
|
||||
<li><button class="dropdown-item"><i class="bx bx-check-shield me-2"></i> Wyślij
|
||||
potwierdzenie </button></li>
|
||||
<li><button class="dropdown-item"><i class="bx bx-bell me-2 text-warning"></i> Wyślij
|
||||
ponaglenie </button></li>
|
||||
|
||||
<div class="dropdown-divider"></div>
|
||||
<h6 class="dropdown-header text-uppercase ps-3">System</h6>
|
||||
<li><button class="dropdown-item"><i class="bx bx-duplicate me-2"></i> Duplikuj jako nową
|
||||
</button></li>
|
||||
<li><button class="dropdown-item text-danger"><i class="bx bx-trash me-2"></i> Usuń fakturę
|
||||
</button></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<button type="button" class="btn-close ms-2" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal-body bg-lighter p-4">
|
||||
|
||||
<div class="card shadow-none border border-success mb-4"
|
||||
style="border-left: 5px solid #71dd37 !important;">
|
||||
<div class="card-body p-3 d-flex justify-content-between align-items-center flex-wrap gap-3">
|
||||
<div class="d-flex align-items-center">
|
||||
<div class="avatar avatar-sm me-3">
|
||||
<span class="avatar-initial rounded-circle bg-label-success"><i
|
||||
class="bx bx-cloud-check fs-4"></i></span>
|
||||
</div>
|
||||
<div>
|
||||
<h6 class="mb-0 text-success fw-bold">Dokument pomyślnie przetworzony w KSeF</h6>
|
||||
<small class="text-muted">Data wysyłki: 2026-01-30 15:36:12</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex align-items-center gap-3">
|
||||
<div class="text-end me-3">
|
||||
<small class="d-block text-muted mb-0">Numer KSeF</small>
|
||||
<span class="fw-medium user-select-all">1234567890-20260130-1A2B3C4D5E-6F</span>
|
||||
</div>
|
||||
<button class="btn btn-outline-success btn-sm"><i class="bx bx-download me-1"></i> Pobierz
|
||||
UPO</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row g-4 mb-4">
|
||||
|
||||
<div class="col-lg-4">
|
||||
<div class="card h-100 shadow-sm border-0">
|
||||
<div class="card-body p-4">
|
||||
<h6 class="card-title m-0 mb-3"><i class="bx bx-store me-2"></i> Sprzedawca</h6>
|
||||
<h6 class="mb-1">MARIUSZ BANACZYK "BURGER BAR"</h6>
|
||||
<p class="mb-1 text-muted small">KARCZMA BIESIADA, KULTOWA ZAPIEKANKA</p>
|
||||
<p class="mb-1 mt-2">ul. Ofiar Katynia 2</p>
|
||||
<p class="mb-2">37-450 Stalowa Wola, Polska</p>
|
||||
<span class="badge bg-label-secondary">NIP: 865 000 14 51</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4">
|
||||
<div class="card h-100 shadow-sm border-0">
|
||||
<div class="card-body p-4">
|
||||
<h6 class="card-title m-0 mb-3"><i class="bx bx-user me-2"></i> Kontrahent</h6>
|
||||
<h6 class="mb-1">COCA-COLA HBC POLSKA SP. Z O.O.</h6>
|
||||
<p class="mb-1 mt-2">ul. Żwirki i Wigury 16</p>
|
||||
<p class="mb-2">02-092 Warszawa, Polska</p>
|
||||
<span class="badge bg-label-secondary">NIP: 5242106963</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4">
|
||||
<div class="card h-100 shadow-sm border-0 bg-white">
|
||||
<div class="card-body p-4">
|
||||
<h6 class="card-title m-0 mb-3"><i class="bx bx-info-circle me-2"></i> Szczegóły</h6>
|
||||
<table class="table table-borderless table-sm m-0 px-0">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="text-muted ps-0 py-1">Data wystawienia:</td>
|
||||
<td class="fw-medium text-end pe-0 py-1">2026-01-30</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="text-muted ps-0 py-1">Data dostawy:</td>
|
||||
<td class="fw-medium text-end pe-0 py-1">2026-01-30</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="text-muted ps-0 py-1">Termin płatności:</td>
|
||||
<td class="fw-bold text-end pe-0 py-1">2026-03-01</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="text-muted ps-0 py-1">Metoda:</td>
|
||||
<td class="fw-medium text-end pe-0 py-1">Przelew</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="text-muted ps-0 py-1">Waluta / Język:</td>
|
||||
<td class="fw-medium text-end pe-0 py-1">PLN / Polski</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card shadow-sm border-0 mb-4">
|
||||
<div class="table-responsive text-nowrap">
|
||||
<table class="table table-hover mb-0">
|
||||
<thead class="table-light">
|
||||
<tr>
|
||||
<th style="width: 50px;">Lp</th>
|
||||
<th>Towar / Usługa</th>
|
||||
<th>J.m.</th>
|
||||
<th class="text-center">Ilość</th>
|
||||
<th class="text-end">Cena netto</th>
|
||||
<th class="text-end">Cena brutto</th>
|
||||
<th class="text-center">VAT</th>
|
||||
<th class="text-end">Wartość netto</th>
|
||||
<th class="text-end">Wartość brutto</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="text-muted">1</td>
|
||||
<td>
|
||||
<div class="d-flex flex-column">
|
||||
<span class="fw-medium">Usługa marketingowa</span>
|
||||
<small class="text-muted">Kod: -</small>
|
||||
</div>
|
||||
</td>
|
||||
<td>szt.</td>
|
||||
<td class="text-center">1</td>
|
||||
<td class="text-end">6 423,61 zł</td>
|
||||
<td class="text-end">7 901,04 zł</td>
|
||||
<td class="text-center"><span class="badge bg-label-secondary">23%</span></td>
|
||||
<td class="text-end fw-medium">6 423,61 zł</td>
|
||||
<td class="text-end fw-bold text-heading">7 901,04 zł</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-4 g-4">
|
||||
<div class="col-md-7">
|
||||
<div class="card shadow-sm border-0 h-100 bg-white p-4">
|
||||
<h6 class="text-uppercase text-muted fw-bold mb-2">Uwagi do dokumentu</h6>
|
||||
<p class="mb-0 text-body">
|
||||
Nota informacyjna nr : 0009131250<br>
|
||||
Nota informacyjna nr : 0009131045
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-5">
|
||||
<div class="card shadow-sm border-0 h-100 bg-white p-4">
|
||||
<h6 class="text-uppercase text-muted fw-bold mb-3 border-bottom pb-2">Suma</h6>
|
||||
<div class="d-flex justify-content-between mb-2">
|
||||
<span class="text-muted">Wartość netto:</span>
|
||||
<span class="fw-medium">6 423,61 zł</span>
|
||||
</div>
|
||||
<div class="d-flex justify-content-between mb-3 border-bottom pb-3">
|
||||
<span class="text-muted">Wartość VAT:</span>
|
||||
<span class="fw-medium">1 477,43 zł</span>
|
||||
</div>
|
||||
<div class="d-flex justify-content-between align-items-center mb-3">
|
||||
<span class="fs-5 text-body">Wartość brutto:</span>
|
||||
<span class="fs-4 fw-bold text-primary">7 901,04 zł</span>
|
||||
</div>
|
||||
<div class="d-flex justify-content-between text-success">
|
||||
<span>Zapłacono:</span>
|
||||
<span class="fw-bold">7 901,04 zł</span>
|
||||
</div>
|
||||
<div class="d-flex justify-content-between text-muted mt-1 small">
|
||||
<span>Pozostało do zapłaty:</span>
|
||||
<span>0,00 zł</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card shadow-sm border-0">
|
||||
<div class="card-header bg-white border-bottom py-3">
|
||||
<h6 class="card-title m-0"><i class="bx bx-history me-2"></i>Historia operacji na dokumencie
|
||||
</h6>
|
||||
</div>
|
||||
<div class="card-body p-4">
|
||||
<ul class="timeline mb-0">
|
||||
<li class="timeline-item timeline-item-transparent">
|
||||
<span class="timeline-point timeline-point-success"></span>
|
||||
<div class="timeline-event">
|
||||
<div class="timeline-header mb-1">
|
||||
<h6 class="mb-0 fw-bold">Wysłano fakturę</h6>
|
||||
<small class="text-muted">2026-01-30 15:38:32</small>
|
||||
</div>
|
||||
<p class="mb-2 text-muted">Wysłano na email: e-faktura.pl@cchellenic.com</p>
|
||||
<div class="d-flex align-items-center">
|
||||
<div class="avatar avatar-xs me-2">
|
||||
<span class="avatar-initial rounded-circle bg-label-primary">GB</span>
|
||||
</div>
|
||||
<span class="small fw-medium">Grażyna Banaczyk</span>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="timeline-item timeline-item-transparent border-transparent pb-0">
|
||||
<span class="timeline-point timeline-point-info"></span>
|
||||
<div class="timeline-event pb-0">
|
||||
<div class="timeline-header mb-1">
|
||||
<h6 class="mb-0 fw-bold">Utworzono fakturę</h6>
|
||||
<small class="text-muted">2026-01-30 15:35:48</small>
|
||||
</div>
|
||||
<div class="d-flex align-items-center mt-2">
|
||||
<div class="avatar avatar-xs me-2">
|
||||
<span class="avatar-initial rounded-circle bg-label-primary">GB</span>
|
||||
</div>
|
||||
<span class="small fw-medium">Grażyna Banaczyk</span>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php include '../../footer.php'; ?>
|
||||
|
||||
|
||||
462
prototype/invoice/app-products.php
Normal file
462
prototype/invoice/app-products.php
Normal file
@@ -0,0 +1,462 @@
|
||||
<?php
|
||||
$enablePrototypeComments = true;
|
||||
include '../../header-invoice.php';
|
||||
?>
|
||||
|
||||
<div class="container-fluid flex-grow-1 container-p-y">
|
||||
|
||||
<div
|
||||
class="d-flex flex-column flex-md-row justify-content-between align-items-start align-items-md-center mb-4 gap-3">
|
||||
<div class="d-flex flex-column justify-content-center">
|
||||
<h4 class="mb-1 text-body">
|
||||
<span class="text-muted fw-light">Sprzedaż /</span> Towary i Usługi
|
||||
</h4>
|
||||
<p class="text-muted mb-0">Zarządzaj bazą swoich produktów i usług</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-lg-9 transition-width" id="product-list-col">
|
||||
<div class="card">
|
||||
<div
|
||||
class="card-header border-bottom d-flex justify-content-between align-items-center flex-wrap gap-2">
|
||||
|
||||
<div class="me-2 flex-grow-1" style="max-width: 300px;">
|
||||
<div class="input-group input-group-merge">
|
||||
<span class="input-group-text" id="basic-addon-search31"><i class="bx bx-search"></i></span>
|
||||
<input type="text" class="form-control" placeholder="Szukaj nazwy, kodu..."
|
||||
aria-label="Search...">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="d-flex align-items-center gap-2">
|
||||
<button type="button" class="btn btn-label-secondary d-flex align-items-center gap-2"
|
||||
id="filter-toggle-btn">
|
||||
<i class="bx bx-filter-alt"></i> Filtry
|
||||
</button>
|
||||
|
||||
<select class="form-select" style="width: 80px;">
|
||||
<option value="40">40</option>
|
||||
<option value="60">60</option>
|
||||
<option value="100">100</option>
|
||||
</select>
|
||||
|
||||
<div class="dropdown">
|
||||
<button type="button" class="btn btn-icon btn-label-secondary" data-bs-toggle="dropdown"
|
||||
aria-expanded="false">
|
||||
<i class="bx bx-dots-vertical-rounded"></i>
|
||||
</button>
|
||||
<ul class="dropdown-menu dropdown-menu-end">
|
||||
<li><a class="dropdown-item" href="javascript:void(0);"><i
|
||||
class="bx bx-import me-2"></i> Importuj z pliku CSV</a></li>
|
||||
<li><a class="dropdown-item" href="javascript:void(0);"><i
|
||||
class="bx bx-export me-2"></i> Eksportuj listę (.csv)</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<button class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#addProductModal">
|
||||
<i class="bx bx-plus me-1"></i> Dodaj pozycję
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="table-responsive text-nowrap" style="min-height: 400px;">
|
||||
<table class="table table-hover table-striped align-middle">
|
||||
<thead class="table-light">
|
||||
<tr>
|
||||
<th style="width: 50px;">
|
||||
<div class="form-check m-0">
|
||||
<input class="form-check-input" type="checkbox" id="checkAll">
|
||||
</div>
|
||||
</th>
|
||||
<th style="width: 50px;">Typ</th>
|
||||
<th>Nazwa i Kod</th>
|
||||
<th>J.m.</th>
|
||||
<th class="text-end">Cena Netto</th>
|
||||
<th class="text-center">VAT</th>
|
||||
<th class="text-end">Cena Brutto</th>
|
||||
<th class="text-center">Akcje</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="table-border-bottom-0">
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<div class="form-check m-0"><input class="form-check-input" type="checkbox"></div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="avatar avatar-sm" data-bs-toggle="tooltip" title="Usługa">
|
||||
<span class="avatar-initial rounded bg-label-info"><i
|
||||
class="bx bx-briefcase"></i></span>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<span class="fw-medium text-heading">Konsultacje IT</span>
|
||||
<br><small class="text-muted">Kod: USL-IT-01</small>
|
||||
</td>
|
||||
<td>godz.</td>
|
||||
<td class="text-end">150,00 zł</td>
|
||||
<td class="text-center"><span class="badge bg-label-secondary">23%</span></td>
|
||||
<td class="text-end">184,50 zł</td>
|
||||
<td class="text-center">
|
||||
<div class="d-flex justify-content-center align-items-center gap-1">
|
||||
<button class="btn btn-icon btn-sm btn-text-secondary" data-bs-toggle="tooltip"
|
||||
title="Edytuj"><i class="bx bx-edit-alt"></i></button>
|
||||
<div class="dropdown">
|
||||
<button type="button" class="btn p-0 dropdown-toggle hide-arrow"
|
||||
data-bs-toggle="dropdown"><i
|
||||
class="bx bx-dots-vertical-rounded"></i></button>
|
||||
<div class="dropdown-menu dropdown-menu-end">
|
||||
<a class="dropdown-item" href="javascript:void(0);"><i
|
||||
class="bx bx-duplicate me-1"></i> Duplikuj</a>
|
||||
<div class="dropdown-divider"></div>
|
||||
<a class="dropdown-item text-danger" href="javascript:void(0);"><i
|
||||
class="bx bx-trash me-1"></i> Usuń</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<div class="form-check m-0"><input class="form-check-input" type="checkbox"></div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="avatar avatar-sm" data-bs-toggle="tooltip" title="Towar">
|
||||
<span class="avatar-initial rounded bg-label-success"><i
|
||||
class="bx bx-box"></i></span>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<span class="fw-medium text-heading">Licencja Oprogramowania B</span>
|
||||
<br><small class="text-muted">Kod: LIC-002</small>
|
||||
</td>
|
||||
<td>szt.</td>
|
||||
<td class="text-end">400,00 zł</td>
|
||||
<td class="text-center"><span class="badge bg-label-secondary">23%</span></td>
|
||||
<td class="text-end">492,00 zł</td>
|
||||
<td class="text-center">
|
||||
<div class="d-flex justify-content-center align-items-center gap-1">
|
||||
<button class="btn btn-icon btn-sm btn-text-secondary" data-bs-toggle="tooltip"
|
||||
title="Edytuj"><i class="bx bx-edit-alt"></i></button>
|
||||
<div class="dropdown">
|
||||
<button type="button" class="btn p-0 dropdown-toggle hide-arrow"
|
||||
data-bs-toggle="dropdown"><i
|
||||
class="bx bx-dots-vertical-rounded"></i></button>
|
||||
<div class="dropdown-menu dropdown-menu-end">
|
||||
<a class="dropdown-item" href="javascript:void(0);"><i
|
||||
class="bx bx-duplicate me-1"></i> Duplikuj</a>
|
||||
<div class="dropdown-divider"></div>
|
||||
<a class="dropdown-item text-danger" href="javascript:void(0);"><i
|
||||
class="bx bx-trash me-1"></i> Usuń</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<div class="form-check m-0"><input class="form-check-input" type="checkbox"></div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="avatar avatar-sm" data-bs-toggle="tooltip" title="Usługa">
|
||||
<span class="avatar-initial rounded bg-label-info"><i
|
||||
class="bx bx-briefcase"></i></span>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<span class="fw-medium text-heading">Szkolenie wstępne</span>
|
||||
<br><small class="text-muted">Kod: SZK-01</small>
|
||||
</td>
|
||||
<td>usł.</td>
|
||||
<td class="text-end">1 000,00 zł</td>
|
||||
<td class="text-center"><span class="badge bg-label-secondary">ZW</span></td>
|
||||
<td class="text-end">1 000,00 zł</td>
|
||||
<td class="text-center">
|
||||
<div class="d-flex justify-content-center align-items-center gap-1">
|
||||
<button class="btn btn-icon btn-sm btn-text-secondary" data-bs-toggle="tooltip"
|
||||
title="Edytuj"><i class="bx bx-edit-alt"></i></button>
|
||||
<div class="dropdown">
|
||||
<button type="button" class="btn p-0 dropdown-toggle hide-arrow"
|
||||
data-bs-toggle="dropdown"><i
|
||||
class="bx bx-dots-vertical-rounded"></i></button>
|
||||
<div class="dropdown-menu dropdown-menu-end">
|
||||
<a class="dropdown-item" href="javascript:void(0);"><i
|
||||
class="bx bx-duplicate me-1"></i> Duplikuj</a>
|
||||
<div class="dropdown-divider"></div>
|
||||
<a class="dropdown-item text-danger" href="javascript:void(0);"><i
|
||||
class="bx bx-trash me-1"></i> Usuń</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="card-footer d-flex justify-content-center border-top">
|
||||
<nav aria-label="Page navigation">
|
||||
<ul class="pagination pagination-sm mb-0">
|
||||
<li class="page-item prev"><a class="page-link" href="javascript:void(0);"><i
|
||||
class="tf-icon bx bx-chevron-left"></i></a></li>
|
||||
<li class="page-item active"><a class="page-link" href="javascript:void(0);">1</a></li>
|
||||
<li class="page-item"><a class="page-link" href="javascript:void(0);">2</a></li>
|
||||
<li class="page-item next"><a class="page-link" href="javascript:void(0);"><i
|
||||
class="tf-icon bx bx-chevron-right"></i></a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-3" id="product-filters-col">
|
||||
<div class="card sticky-top" style="top: 20px;">
|
||||
<div class="card-header border-bottom">
|
||||
<h5 class="card-title mb-0">Filtry</h5>
|
||||
</div>
|
||||
<div class="card-body pt-4">
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Typ pozycji</label>
|
||||
<div class="d-flex flex-column gap-2">
|
||||
<div class="form-check">
|
||||
<input name="type-radio" class="form-check-input" type="radio" value="" id="typeAll"
|
||||
checked>
|
||||
<label class="form-check-label" for="typeAll"> Wszystkie </label>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
<input name="type-radio" class="form-check-input" type="radio" value="towar"
|
||||
id="typeProduct">
|
||||
<label class="form-check-label" for="typeProduct"> Tylko towary </label>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
<input name="type-radio" class="form-check-input" type="radio" value="usluga"
|
||||
id="typeService">
|
||||
<label class="form-check-label" for="typeService"> Tylko usługi </label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Stawka VAT</label>
|
||||
<select class="form-select">
|
||||
<option value="">Wszystkie stawki</option>
|
||||
<option value="23">23%</option>
|
||||
<option value="8">8%</option>
|
||||
<option value="5">5%</option>
|
||||
<option value="0">0%</option>
|
||||
<option value="zw">ZW (Zwolnione)</option>
|
||||
<option value="np">NP (Nie podlega)</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="mb-4">
|
||||
<label class="form-label">Cena Netto</label>
|
||||
<div class="row g-2">
|
||||
<div class="col-6">
|
||||
<input type="number" class="form-control" placeholder="Od">
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<input type="number" class="form-control" placeholder="Do">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="d-grid gap-2">
|
||||
<button class="btn btn-primary">Filtruj</button>
|
||||
<button class="btn btn-outline-secondary">Wyczyść</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="content-backdrop fade"></div>
|
||||
|
||||
<div class="modal fade" id="addProductModal" tabindex="-1" aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg modal-dialog-centered" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header border-bottom">
|
||||
<h5 class="modal-title fs-5">Nowy towar / usługa</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
|
||||
<form id="addProductForm" onsubmit="return false">
|
||||
<div class="modal-body pb-3">
|
||||
|
||||
<div class="mb-4">
|
||||
<label class="form-label d-block mb-2">Rodzaj pozycji</label>
|
||||
<div class="btn-group w-100" role="group">
|
||||
<input type="radio" class="btn-check" name="itemType" id="type_product" autocomplete="off"
|
||||
checked>
|
||||
<label class="btn btn-outline-primary" for="type_product"><i class="bx bx-box me-1"></i>
|
||||
Towar</label>
|
||||
|
||||
<input type="radio" class="btn-check" name="itemType" id="type_service" autocomplete="off">
|
||||
<label class="btn btn-outline-primary" for="type_service"><i
|
||||
class="bx bx-briefcase me-1"></i> Usługa</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row g-3 mb-3">
|
||||
<div class="col-md-8">
|
||||
<label class="form-label">Nazwa <span class="text-danger">*</span></label>
|
||||
<input type="text" class="form-control" placeholder="np. Konsultacje marketingowe" required>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<label class="form-label">Kod / PKWiU</label>
|
||||
<input type="text" class="form-control" placeholder="np. KM-01">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bg-label-secondary p-3 rounded mb-3">
|
||||
<div class="row g-3 align-items-end">
|
||||
<div class="col-md-3">
|
||||
<label class="form-label">Jednostka</label>
|
||||
<select class="form-select">
|
||||
<option value="szt">szt.</option>
|
||||
<option value="usl">usł.</option>
|
||||
<option value="godz">godz.</option>
|
||||
<option value="km">km</option>
|
||||
<option value="kg">kg</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<label class="form-label">Cena Netto</label>
|
||||
<div class="input-group input-group-merge bg-white">
|
||||
<input type="number" class="form-control" id="modal_netto" step="0.01"
|
||||
placeholder="0.00">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<label class="form-label">Stawka VAT</label>
|
||||
<select class="form-select" id="modal_vat_rate">
|
||||
<option value="0.23" selected>23%</option>
|
||||
<option value="0.08">8%</option>
|
||||
<option value="0.05">5%</option>
|
||||
<option value="0">0%</option>
|
||||
<option value="zw">ZW</option>
|
||||
<option value="np">NP</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<label class="form-label fw-bold">Cena Brutto</label>
|
||||
<div class="input-group input-group-merge bg-white">
|
||||
<input type="number" class="form-control fw-bold" id="modal_brutto" step="0.01"
|
||||
placeholder="0.00">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-2 text-end">
|
||||
<small class="text-muted"><i class="bx bx-info-circle"></i> Kwoty przeliczają się
|
||||
automatycznie.</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Opis dodatkowy (opcjonalny)</label>
|
||||
<textarea class="form-control" rows="2"
|
||||
placeholder="Ten opis może się drukować pod nazwą na fakturze..."></textarea>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="modal-footer bg-light">
|
||||
<button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">Anuluj</button>
|
||||
<button type="submit" class="btn btn-primary">
|
||||
<i class="bx bx-save me-1"></i> Zapisz do bazy
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php include '../../footer.php'; ?>
|
||||
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
|
||||
// Tooltipy
|
||||
var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'))
|
||||
var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {
|
||||
return new bootstrap.Tooltip(tooltipTriggerEl)
|
||||
});
|
||||
|
||||
// Obsługa zwijania filtrów
|
||||
const filterBtn = document.getElementById('filter-toggle-btn');
|
||||
const filtersCol = document.getElementById('product-filters-col');
|
||||
const listCol = document.getElementById('product-list-col');
|
||||
|
||||
if (filterBtn && filtersCol && listCol) {
|
||||
filterBtn.addEventListener('click', function (e) {
|
||||
e.preventDefault();
|
||||
filtersCol.classList.toggle('d-none');
|
||||
|
||||
if (filtersCol.classList.contains('d-none')) {
|
||||
listCol.classList.remove('col-lg-9');
|
||||
listCol.classList.add('col-12');
|
||||
} else {
|
||||
listCol.classList.remove('col-12');
|
||||
listCol.classList.add('col-lg-9');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Check All w tabeli
|
||||
const checkAll = document.getElementById('checkAll');
|
||||
if (checkAll) {
|
||||
checkAll.addEventListener('change', function () {
|
||||
const checkboxes = document.querySelectorAll('tbody .form-check-input');
|
||||
checkboxes.forEach(cb => cb.checked = this.checked);
|
||||
});
|
||||
}
|
||||
|
||||
// --- Logika Modala Dodawania (Przeliczanie Netto/Brutto) ---
|
||||
const modNetto = document.getElementById('modal_netto');
|
||||
const modBrutto = document.getElementById('modal_brutto');
|
||||
const modVatRate = document.getElementById('modal_vat_rate');
|
||||
|
||||
function calculateModalValues(source) {
|
||||
let rateVal = modVatRate.value;
|
||||
let rate = parseFloat(rateVal);
|
||||
|
||||
// Jeśli wybrano ZW lub NP, traktujemy stawkę jako 0 do obliczeń matematycznych
|
||||
if (isNaN(rate) || rateVal === 'zw' || rateVal === 'np') rate = 0;
|
||||
|
||||
if (source === 'netto') {
|
||||
let netVal = parseFloat(modNetto.value) || 0;
|
||||
let grossVal = netVal + (netVal * rate);
|
||||
modBrutto.value = grossVal.toFixed(2);
|
||||
}
|
||||
else if (source === 'brutto') {
|
||||
let grossVal = parseFloat(modBrutto.value) || 0;
|
||||
let netVal = grossVal / (1 + rate);
|
||||
modNetto.value = netVal.toFixed(2);
|
||||
}
|
||||
else if (source === 'rate') {
|
||||
// Przy zmianie stawki priorytet ma wpisane Netto
|
||||
if (modNetto.value) calculateModalValues('netto');
|
||||
else if (modBrutto.value) calculateModalValues('brutto');
|
||||
}
|
||||
}
|
||||
|
||||
if (modNetto && modBrutto && modVatRate) {
|
||||
modNetto.addEventListener('input', () => calculateModalValues('netto'));
|
||||
modBrutto.addEventListener('input', () => calculateModalValues('brutto'));
|
||||
modVatRate.addEventListener('change', () => calculateModalValues('rate'));
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -4,6 +4,24 @@ include '../../header-invoice.php';
|
||||
?>
|
||||
|
||||
<link rel="stylesheet" href="../../assets/vendor/libs/fullcalendar/fullcalendar.css" />
|
||||
<style>
|
||||
/* Custom darker event colors for white text contrast */
|
||||
.fc-event-dark-success {
|
||||
background-color: #1b5e20 !important;
|
||||
border-color: #1b5e20 !important;
|
||||
color: #ffffff !important;
|
||||
}
|
||||
.fc-event-dark-danger {
|
||||
background-color: #b71c1c !important;
|
||||
border-color: #b71c1c !important;
|
||||
color: #ffffff !important;
|
||||
}
|
||||
.fc-event-dark-warning {
|
||||
background-color: #e65100 !important;
|
||||
border-color: #e65100 !important;
|
||||
color: #ffffff !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div class="container-fluid flex-grow-1 container-p-y">
|
||||
|
||||
@@ -11,6 +29,18 @@ include '../../header-invoice.php';
|
||||
<span class="text-muted fw-light">Faktury i sprzedaż /</span> Kalendarz płatności
|
||||
</h4>
|
||||
|
||||
<div class="d-flex mb-3 gap-2 align-items-center flex-nowrap overflow-auto pb-2">
|
||||
<button type="button" class="btn btn-label-primary text-nowrap tab-filter-btn" data-filter="all">
|
||||
Wszystkie
|
||||
</button>
|
||||
<button type="button" class="btn btn-label-secondary text-nowrap tab-filter-btn" data-filter="paid">
|
||||
Zapłacone
|
||||
</button>
|
||||
<button type="button" class="btn btn-label-secondary text-nowrap tab-filter-btn" data-filter="unpaid">
|
||||
Do zapłaty
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="card app-calendar-wrapper">
|
||||
<div class="row g-0">
|
||||
<!-- Calendar Sidebar -->
|
||||
@@ -22,23 +52,6 @@ include '../../header-invoice.php';
|
||||
<!-- Calendar & Tabs -->
|
||||
<div class="col app-calendar-content">
|
||||
<div class="card shadow-none border-0">
|
||||
<div class="card-header border-bottom d-flex justify-content-between align-items-center">
|
||||
<h5 class="mb-0">Kalendarz płatności</h5>
|
||||
<ul class="nav nav-pills" role="tablist">
|
||||
<li class="nav-item">
|
||||
<button type="button" class="nav-link active" role="tab" data-bs-toggle="tab"
|
||||
data-filter="all">Wszystkie</button>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<button type="button" class="nav-link" role="tab" data-bs-toggle="tab"
|
||||
data-filter="paid">Zapłacone</button>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<button type="button" class="nav-link" role="tab" data-bs-toggle="tab"
|
||||
data-filter="unpaid">Do zapłaty</button>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="card-body pb-0">
|
||||
<div id="calendar"></div>
|
||||
</div>
|
||||
@@ -72,7 +85,7 @@ include '../../header-invoice.php';
|
||||
start: new Date(y, m, 5),
|
||||
allDay: true,
|
||||
extendedProps: { status: 'paid', amount: '1230.00 PLN' },
|
||||
className: 'bg-label-success'
|
||||
className: 'fc-event-dark-success'
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
@@ -80,7 +93,7 @@ include '../../header-invoice.php';
|
||||
start: new Date(y, m, 10),
|
||||
allDay: true,
|
||||
extendedProps: { status: 'paid', amount: '50.00 USD' },
|
||||
className: 'bg-label-success'
|
||||
className: 'fc-event-dark-success'
|
||||
},
|
||||
|
||||
// UNPAID (Future / Current)
|
||||
@@ -90,7 +103,7 @@ include '../../header-invoice.php';
|
||||
start: new Date(y, m, 24), // Due date
|
||||
allDay: true,
|
||||
extendedProps: { status: 'unpaid', amount: '553.50 PLN' },
|
||||
className: 'bg-label-danger'
|
||||
className: 'fc-event-dark-danger'
|
||||
},
|
||||
{
|
||||
id: 4,
|
||||
@@ -98,7 +111,7 @@ include '../../header-invoice.php';
|
||||
start: new Date(y, m, 28), // Due date
|
||||
allDay: true,
|
||||
extendedProps: { status: 'unpaid', amount: '120.00 PLN' },
|
||||
className: 'bg-label-warning'
|
||||
className: 'fc-event-dark-warning'
|
||||
},
|
||||
{
|
||||
id: 5,
|
||||
@@ -106,7 +119,7 @@ include '../../header-invoice.php';
|
||||
start: new Date(y, m + 1, 5), // Next month
|
||||
allDay: true,
|
||||
extendedProps: { status: 'unpaid', amount: '1500.00 PLN' },
|
||||
className: 'bg-label-warning'
|
||||
className: 'fc-event-dark-warning'
|
||||
}
|
||||
];
|
||||
|
||||
@@ -118,6 +131,13 @@ include '../../header-invoice.php';
|
||||
center: 'title',
|
||||
right: 'dayGridMonth,listMonth'
|
||||
},
|
||||
buttonText: {
|
||||
today: 'Dzisiaj',
|
||||
month: 'Miesiąc',
|
||||
week: 'Tydzień',
|
||||
day: 'Dzień',
|
||||
list: 'Lista'
|
||||
},
|
||||
events: allEvents,
|
||||
locale: 'pl',
|
||||
firstDay: 1, // Start week on Monday
|
||||
@@ -137,10 +157,19 @@ include '../../header-invoice.php';
|
||||
calendar.render();
|
||||
|
||||
// Tabs Filtering
|
||||
const tabBtns = document.querySelectorAll('[data-bs-toggle="tab"]');
|
||||
const tabBtns = document.querySelectorAll('.tab-filter-btn');
|
||||
tabBtns.forEach(btn => {
|
||||
btn.addEventListener('shown.bs.tab', function (e) {
|
||||
const filter = e.target.getAttribute('data-filter');
|
||||
btn.addEventListener('click', function (e) {
|
||||
// Remove active class from all
|
||||
tabBtns.forEach(b => {
|
||||
b.classList.remove('btn-label-primary');
|
||||
b.classList.add('btn-label-secondary');
|
||||
});
|
||||
// Add active class to clicked
|
||||
this.classList.remove('btn-label-secondary');
|
||||
this.classList.add('btn-label-primary');
|
||||
|
||||
const filter = this.getAttribute('data-filter');
|
||||
console.log("Filtering by:", filter);
|
||||
|
||||
// Remove all events first
|
||||
|
||||
@@ -190,8 +190,9 @@ include '../../header-invoice.php';
|
||||
<button type="button" class="btn btn-label-primary w-100 mb-4" id="btn-ocr-read">
|
||||
<i class="bx bx-scan me-1"></i> Odczytaj dane z pliku (OCR)
|
||||
</button>
|
||||
|
||||
<h6 class="mb-3 text-muted small text-uppercase fw-bold border-bottom pb-2">Dane z faktury</h6>
|
||||
|
||||
<h6 class="mb-3 text-muted small text-uppercase fw-bold border-bottom pb-2">Dane z
|
||||
faktury</h6>
|
||||
|
||||
<div class="row g-3 mb-3">
|
||||
<div class="col-md-7">
|
||||
@@ -354,6 +355,11 @@ include '../../header-invoice.php';
|
||||
<table class="table table-hover table-striped align-middle">
|
||||
<thead class="table-light">
|
||||
<tr>
|
||||
<th style="width: 50px;">
|
||||
<div class="form-check m-0">
|
||||
<input class="form-check-input" type="checkbox" id="checkAll">
|
||||
</div>
|
||||
</th>
|
||||
<th style="width: 50px;">#</th>
|
||||
<th>Nr dokumentu</th>
|
||||
<th>Dostawca</th>
|
||||
@@ -367,6 +373,11 @@ include '../../header-invoice.php';
|
||||
<tbody class="table-border-bottom-0">
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<div class="form-check m-0">
|
||||
<input class="form-check-input" type="checkbox" value="1">
|
||||
</div>
|
||||
</td>
|
||||
<td>1</td>
|
||||
<td>
|
||||
<span class="fw-medium">FZ/2026/02/001</span>
|
||||
@@ -403,6 +414,11 @@ include '../../header-invoice.php';
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<div class="form-check m-0">
|
||||
<input class="form-check-input" type="checkbox" value="2">
|
||||
</div>
|
||||
</td>
|
||||
<td>2</td>
|
||||
<td>
|
||||
<span class="fw-medium">FV/TAURON/22/05</span>
|
||||
@@ -444,6 +460,11 @@ include '../../header-invoice.php';
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<div class="form-check m-0">
|
||||
<input class="form-check-input" type="checkbox" value="3">
|
||||
</div>
|
||||
</td>
|
||||
<td>3</td>
|
||||
<td>
|
||||
<span class="fw-medium">102/K/2026</span>
|
||||
@@ -483,6 +504,11 @@ include '../../header-invoice.php';
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<div class="form-check m-0">
|
||||
<input class="form-check-input" type="checkbox" value="4">
|
||||
</div>
|
||||
</td>
|
||||
<td>4</td>
|
||||
<td>
|
||||
<span class="fw-medium">FV/22/09/2026</span>
|
||||
@@ -523,7 +549,7 @@ include '../../header-invoice.php';
|
||||
</tr>
|
||||
|
||||
<tr class="bg-label-secondary">
|
||||
<td colspan="5" class="text-end fw-bold">Suma (PLN):</td>
|
||||
<td colspan="6" class="text-end fw-bold">Suma (PLN):</td>
|
||||
<td class="text-end fw-bold">6 893,20 zł</td>
|
||||
<td colspan="2"></td>
|
||||
</tr>
|
||||
@@ -810,71 +836,71 @@ include '../../header-invoice.php';
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- OCR Simulation Script -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
const ocrBtn = document.getElementById('btn-ocr-read');
|
||||
if (ocrBtn) {
|
||||
ocrBtn.addEventListener('click', function() {
|
||||
const btn = this;
|
||||
const originalContent = btn.innerHTML;
|
||||
|
||||
// 1. Loader state
|
||||
btn.disabled = true;
|
||||
btn.innerHTML = '<span class="spinner-border spinner-border-sm me-1" role="status" aria-hidden="true"></span> Przetwarzanie obrazu...';
|
||||
<!-- OCR Simulation Script -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
const ocrBtn = document.getElementById('btn-ocr-read');
|
||||
if (ocrBtn) {
|
||||
ocrBtn.addEventListener('click', function () {
|
||||
const btn = this;
|
||||
const originalContent = btn.innerHTML;
|
||||
|
||||
// 2. Simulate delay
|
||||
setTimeout(() => {
|
||||
// 3. Fill form data
|
||||
// Dostawca: Tauron (value=1)
|
||||
const supplierSelect = document.querySelector('#quickAddModal select.select2-modal');
|
||||
if (supplierSelect) {
|
||||
$(supplierSelect).val('1').trigger('change');
|
||||
// 1. Loader state
|
||||
btn.disabled = true;
|
||||
btn.innerHTML = '<span class="spinner-border spinner-border-sm me-1" role="status" aria-hidden="true"></span> Przetwarzanie obrazu...';
|
||||
|
||||
// 2. Simulate delay
|
||||
setTimeout(() => {
|
||||
// 3. Fill form data
|
||||
// Dostawca: Tauron (value=1)
|
||||
const supplierSelect = document.querySelector('#quickAddModal select.select2-modal');
|
||||
if (supplierSelect) {
|
||||
$(supplierSelect).val('1').trigger('change');
|
||||
}
|
||||
|
||||
// Numer dokumentu
|
||||
document.querySelector('#quickAddModal input[placeholder="np. FV/2026/02/10"]').value = 'FV/AUT/2026/02/194';
|
||||
|
||||
// Daty
|
||||
const dates = document.querySelectorAll('#quickAddModal .date-picker-modal');
|
||||
if (dates.length >= 3) {
|
||||
dates[0].value = '2026-02-15'; // Wystawienia
|
||||
dates[1].value = '2026-02-15'; // Zakupu
|
||||
dates[2].value = '2026-02-22'; // Płatności
|
||||
}
|
||||
|
||||
// Netto
|
||||
document.getElementById('qa_netto').value = '1250.00';
|
||||
// VAT Rate
|
||||
document.getElementById('qa_vat_rate').value = '0.23';
|
||||
// VAT Amount (manual calc for demo or trigger calculation if logic exists)
|
||||
document.getElementById('qa_vat_amount').value = '287.50';
|
||||
// Brutto
|
||||
document.getElementById('qa_brutto').value = '1537.50';
|
||||
|
||||
// Opis
|
||||
document.querySelector('#quickAddModal input[placeholder="np. Paliwo Ford Mondeo"]').value = 'Energia elektryczna - Luty 2026';
|
||||
|
||||
// 4. Restore button
|
||||
btn.disabled = false;
|
||||
btn.innerHTML = '<i class="bx bx-check me-1"></i> Dane odczytane poprawnie';
|
||||
btn.classList.remove('btn-label-primary');
|
||||
btn.classList.add('btn-label-success');
|
||||
|
||||
// Opcjonalnie: animacja pól
|
||||
const inputs = document.querySelectorAll('#quickAddModal input');
|
||||
inputs.forEach(input => {
|
||||
if (input.value) {
|
||||
input.classList.add('animate__animated', 'animate__flash');
|
||||
setTimeout(() => input.classList.remove('animate__animated', 'animate__flash'), 1000);
|
||||
}
|
||||
});
|
||||
|
||||
// Numer dokumentu
|
||||
document.querySelector('#quickAddModal input[placeholder="np. FV/2026/02/10"]').value = 'FV/AUT/2026/02/194';
|
||||
|
||||
// Daty
|
||||
const dates = document.querySelectorAll('#quickAddModal .date-picker-modal');
|
||||
if (dates.length >= 3) {
|
||||
dates[0].value = '2026-02-15'; // Wystawienia
|
||||
dates[1].value = '2026-02-15'; // Zakupu
|
||||
dates[2].value = '2026-02-22'; // Płatności
|
||||
}
|
||||
|
||||
// Netto
|
||||
document.getElementById('qa_netto').value = '1250.00';
|
||||
// VAT Rate
|
||||
document.getElementById('qa_vat_rate').value = '0.23';
|
||||
// VAT Amount (manual calc for demo or trigger calculation if logic exists)
|
||||
document.getElementById('qa_vat_amount').value = '287.50';
|
||||
// Brutto
|
||||
document.getElementById('qa_brutto').value = '1537.50';
|
||||
|
||||
// Opis
|
||||
document.querySelector('#quickAddModal input[placeholder="np. Paliwo Ford Mondeo"]').value = 'Energia elektryczna - Luty 2026';
|
||||
|
||||
// 4. Restore button
|
||||
btn.disabled = false;
|
||||
btn.innerHTML = '<i class="bx bx-check me-1"></i> Dane odczytane poprawnie';
|
||||
btn.classList.remove('btn-label-primary');
|
||||
btn.classList.add('btn-label-success');
|
||||
|
||||
// Opcjonalnie: animacja pól
|
||||
const inputs = document.querySelectorAll('#quickAddModal input');
|
||||
inputs.forEach(input => {
|
||||
if(input.value) {
|
||||
input.classList.add('animate__animated', 'animate__flash');
|
||||
setTimeout(() => input.classList.remove('animate__animated', 'animate__flash'), 1000);
|
||||
}
|
||||
});
|
||||
|
||||
}, 2000);
|
||||
});
|
||||
}
|
||||
});
|
||||
</script>
|
||||
}, 2000);
|
||||
});
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
188
prototype/invoice/sys-settings-categories.php
Normal file
188
prototype/invoice/sys-settings-categories.php
Normal file
@@ -0,0 +1,188 @@
|
||||
<?php
|
||||
$enablePrototypeComments = true;
|
||||
include '../../header-invoice.php';
|
||||
?>
|
||||
|
||||
<div class="container-fluid flex-grow-1 container-p-y">
|
||||
|
||||
<div class="d-flex justify-content-between align-items-center mb-4">
|
||||
<h4 class="py-3 mb-0">
|
||||
<span class="text-muted fw-light">System / Ustawienia /</span> Kategorie kosztów
|
||||
</h4>
|
||||
<div>
|
||||
<!-- Breadcrumbs or other header actions can go here if needed -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<!-- Settings Navigation -->
|
||||
<div class="col-md-3 mb-4 mb-md-0">
|
||||
<div class="card bg-white">
|
||||
<div class="card-body p-2">
|
||||
<ul class="nav nav-pills flex-column">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link w-100 text-start text-body" href="sys-settings.php">Dane firmy</a>
|
||||
</li>
|
||||
<li class="nav-item mt-1">
|
||||
<a class="nav-link w-100 text-start text-body" href="javascript:void(0);">Dokumenty</a>
|
||||
</li>
|
||||
<li class="nav-item mt-1">
|
||||
<a class="nav-link w-100 text-start router-link-active router-link-exact-active btn btn-label-primary"
|
||||
href="sys-settings-categories.php">Kategorie kosztów</a>
|
||||
</li>
|
||||
<li class="nav-item mt-1">
|
||||
<a class="nav-link w-100 text-start text-body" href="javascript:void(0);">Wysyłka e-mail</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Settings Content - Categories List -->
|
||||
<div class="col-md-9">
|
||||
<div class="card">
|
||||
<div class="card-header border-bottom d-flex justify-content-between align-items-center">
|
||||
<h5 class="card-title mb-0">Kategorie kosztów</h5>
|
||||
<button type="button" class="btn btn-primary" data-bs-toggle="modal"
|
||||
data-bs-target="#addCategoryModal">
|
||||
<i class="bx bx-plus me-1"></i> Dodaj
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="card-body pt-4 pb-0">
|
||||
<div class="alert alert-primary alert-dismissible d-flex align-items-center mb-0" role="alert">
|
||||
<span class="alert-icon text-primary me-2">
|
||||
<i class="bx bx-info-circle bx-sm"></i>
|
||||
</span>
|
||||
Kategorie kosztów mają cele statystyczne. Po przypisaniu faktur kosztowych do odpowiedniej
|
||||
kategorii będzie można generować szczegółowe raporty kosztów firmy.
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="table-responsive text-nowrap mt-3">
|
||||
<table class="table table-hover">
|
||||
<thead class="table-light">
|
||||
<tr>
|
||||
<th>Nazwa kategorii</th>
|
||||
<th>Domyślna</th>
|
||||
<th class="text-end">Akcje</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="table-border-bottom-0">
|
||||
<tr>
|
||||
<td>
|
||||
<strong>Materiały biurowe</strong>
|
||||
</td>
|
||||
<td><span class="badge bg-label-success">TAK</span></td>
|
||||
<td class="text-end">
|
||||
<div class="d-flex justify-content-end align-items-center gap-1">
|
||||
<button type="button" class="btn btn-icon btn-sm text-secondary" title="Edytuj">
|
||||
<i class="bx bx-edit-alt"></i>
|
||||
</button>
|
||||
<button type="button" class="btn btn-icon btn-sm text-danger" title="Usuń">
|
||||
<i class="bx bx-trash"></i>
|
||||
</button>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<strong>Usługi informatyczne</strong>
|
||||
</td>
|
||||
<td><span class="badge bg-label-secondary">NIE</span></td>
|
||||
<td class="text-end">
|
||||
<div class="d-flex justify-content-end align-items-center gap-1">
|
||||
<button type="button" class="btn btn-icon btn-sm text-secondary" title="Edytuj">
|
||||
<i class="bx bx-edit-alt"></i>
|
||||
</button>
|
||||
<button type="button" class="btn btn-icon btn-sm text-danger" title="Usuń">
|
||||
<i class="bx bx-trash"></i>
|
||||
</button>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<strong>Delegacje i podróże</strong>
|
||||
</td>
|
||||
<td><span class="badge bg-label-secondary">NIE</span></td>
|
||||
<td class="text-end">
|
||||
<div class="d-flex justify-content-end align-items-center gap-1">
|
||||
<button type="button" class="btn btn-icon btn-sm text-secondary" title="Edytuj">
|
||||
<i class="bx bx-edit-alt"></i>
|
||||
</button>
|
||||
<button type="button" class="btn btn-icon btn-sm text-danger" title="Usuń">
|
||||
<i class="bx bx-trash"></i>
|
||||
</button>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<strong>Koszty reprezentacji</strong>
|
||||
</td>
|
||||
<td><span class="badge bg-label-secondary">NIE</span></td>
|
||||
<td class="text-end">
|
||||
<div class="d-flex justify-content-end align-items-center gap-1">
|
||||
<button type="button" class="btn btn-icon btn-sm text-secondary" title="Edytuj">
|
||||
<i class="bx bx-edit-alt"></i>
|
||||
</button>
|
||||
<button type="button" class="btn btn-icon btn-sm text-danger" title="Usuń">
|
||||
<i class="bx bx-trash"></i>
|
||||
</button>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="content-backdrop fade"></div>
|
||||
|
||||
<!-- Add Category Modal -->
|
||||
<div class="modal fade" id="addCategoryModal" tabindex="-1" aria-hidden="true">
|
||||
<div class="modal-dialog modal-dialog-centered" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="addCategoryModalLabel">Dodaj nową kategorię kosztów</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="row">
|
||||
<div class="col mb-3">
|
||||
<label for="categoryName" class="form-label">Nazwa kategorii</label>
|
||||
<input type="text" id="categoryName" class="form-control" placeholder="Wprowadź nazwę..." />
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col mb-0">
|
||||
<div class="form-check form-switch mt-2">
|
||||
<input class="form-check-input" type="checkbox" id="isDefaultCategory">
|
||||
<label class="form-check-label" for="isDefaultCategory">Ustaw jako domyślną
|
||||
kategorię</label>
|
||||
<div class="form-text mt-1">Jeśli zaznaczysz tę opcję, poprzednia kategoria domyślna
|
||||
zostanie nadpisana i straci ten status (tylko jedna kategoria może być domyślna).</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">Anuluj</button>
|
||||
<button type="button" class="btn btn-primary">Dodaj</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<?php include '../../footer.php'; ?>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
187
prototype/invoice/sys-settings.php
Normal file
187
prototype/invoice/sys-settings.php
Normal file
@@ -0,0 +1,187 @@
|
||||
<?php
|
||||
$enablePrototypeComments = true;
|
||||
include '../../header-invoice.php';
|
||||
?>
|
||||
|
||||
<div class="container-fluid flex-grow-1 container-p-y">
|
||||
|
||||
<h4 class="py-3 mb-4">
|
||||
<span class="text-muted fw-light">System /</span> Ustawienia
|
||||
</h4>
|
||||
|
||||
<div class="row">
|
||||
<!-- Settings Navigation -->
|
||||
<div class="col-md-3 mb-4 mb-md-0">
|
||||
<div class="card bg-white">
|
||||
<div class="card-body p-2">
|
||||
<ul class="nav nav-pills flex-column">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link w-100 text-start router-link-active router-link-exact-active btn btn-label-primary"
|
||||
href="javascript:void(0);">Dane
|
||||
firmy</a>
|
||||
</li>
|
||||
<li class="nav-item mt-1">
|
||||
<a class="nav-link w-100 text-start text-body" href="javascript:void(0);">Dokumenty</a>
|
||||
</li>
|
||||
<li class="nav-item mt-1">
|
||||
<a class="nav-link w-100 text-start text-body" href="sys-settings-categories.php">Kategorie
|
||||
kosztów</a>
|
||||
</li>
|
||||
<li class="nav-item mt-1">
|
||||
<a class="nav-link w-100 text-start text-body" href="javascript:void(0);">Wysyłka e-mail</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Settings Content -->
|
||||
<div class="col-md-9">
|
||||
<div class="card mb-4">
|
||||
<div class="row m-0 mb-3 p-2">
|
||||
<div class="col-md-6 px-0">
|
||||
<h5 class="mb-3 border-bottom p-3 pb-2">Dane</h5>
|
||||
<div class="pt-2 px-3">
|
||||
<div class="mb-3"><label for="input446" class="form-label d-flex align-items-center">Nazwa
|
||||
firmy</label>
|
||||
<div class="input-group"><input type="text" class="form-control" id="input446"
|
||||
value="Magico Software sp. z o.o."><!----><!----><!----></div>
|
||||
</div>
|
||||
<div class="mb-3"><label for="input446"
|
||||
class="form-label d-flex align-items-center">nip</label>
|
||||
<div class="input-group"><input type="text" class="form-control" id="input446"
|
||||
value="PL 865 258 23 86"><!----><!----><!----></div>
|
||||
</div>
|
||||
<div class="mb-3"><label for="input446"
|
||||
class="form-label d-flex align-items-center">regon</label>
|
||||
<div class="input-group"><input type="text" class="form-control" id="input446"
|
||||
value="524220457"><!----><!----><!----></div>
|
||||
</div>
|
||||
<div class="mb-3"><label for="input446" class="form-label d-flex align-items-center">Nazwa
|
||||
banku</label>
|
||||
<div class="input-group"><input type="text" class="form-control" id="input446"
|
||||
value="mBank (SWIFT BREXPLPWMBK)"><!----><!----><!----></div>
|
||||
</div>
|
||||
<div class="mb-3"><label for="input446" class="form-label d-flex align-items-center">Numer
|
||||
konta</label>
|
||||
<div class="input-group"><input type="text" class="form-control" id="input446"
|
||||
value="24 1140 2004 0000 3502 8330 0117"><!----><!----><!----></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="px-3">
|
||||
<div class="mb-3"><label for="input446"
|
||||
class="form-label d-flex align-items-center">telefon</label>
|
||||
<div class="input-group"><input type="text" class="form-control" id="input446"
|
||||
value="+48 726 322 202"><!----><!----><!----></div>
|
||||
</div>
|
||||
<div class="mb-3"><label for="input446"
|
||||
class="form-label d-flex align-items-center">email</label>
|
||||
<div class="input-group"><input type="text" class="form-control" id="input446"
|
||||
value="kontakt@magico.pl"><!----><!----><!----></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6 px-0">
|
||||
<h5 class="mb-3 border-bottom p-3 pb-2">Adres firmy</h5>
|
||||
<div class="py-2 px-3">
|
||||
<div class="mb-3"><label for="input446"
|
||||
class="form-label d-flex align-items-center">Ulica</label>
|
||||
<div class="input-group"><input type="text" class="form-control" id="input446"
|
||||
value="Przemysłowa"><!----><!----><!----></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-6">
|
||||
<div class="mb-3"><label for="input446"
|
||||
class="form-label d-flex align-items-center">Numer budynku</label>
|
||||
<div class="input-group"><input type="text" class="form-control" id="input446"
|
||||
value="11"><!----><!----><!----></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div class="mb-3"><label for="input446"
|
||||
class="form-label d-flex align-items-center">Numer lokalu</label>
|
||||
<div class="input-group"><input type="text" class="form-control" id="input446"
|
||||
value=""><!----><!----><!----></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-6">
|
||||
<div class="mb-3"><label for="input446"
|
||||
class="form-label d-flex align-items-center">Kod pocztowy</label>
|
||||
<div class="input-group"><input type="text" class="form-control" id="input446"
|
||||
value="37-450"><!----><!----><!----></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div class="mb-3"><label for="input446"
|
||||
class="form-label d-flex align-items-center">Miasto</label>
|
||||
<div class="input-group"><input type="text" class="form-control" id="input446"
|
||||
value="Stalowa Wola"><!----><!----><!----></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3"><label for="input446"
|
||||
class="form-label d-flex align-items-center">Gmina</label>
|
||||
<div class="input-group"><input type="text" class="form-control" id="input446"
|
||||
value="Stalowa Wola"><!----><!----><!----></div>
|
||||
</div>
|
||||
<div class="mb-3"><label for="input446"
|
||||
class="form-label d-flex align-items-center">Powiat</label>
|
||||
<div class="input-group"><input type="text" class="form-control" id="input446"
|
||||
value="Stalowowolski"><!----><!----><!----></div>
|
||||
</div>
|
||||
<div class="mb-3"><label for="input446"
|
||||
class="form-label d-flex align-items-center">Województwo</label>
|
||||
<div class="input-group"><input type="text" class="form-control" id="input446"
|
||||
value="Podkarpackie"><!----><!----><!----></div>
|
||||
</div>
|
||||
<div class="mb-3"><label for="input446"
|
||||
class="form-label d-flex align-items-center">Kraj</label>
|
||||
<div class="input-group"><input type="text" class="form-control" id="input446"
|
||||
value="Polska"><!----><!----><!----></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header border-bottom">
|
||||
<h5 class="card-title mb-0">Logo na dokumentach</h5>
|
||||
</div>
|
||||
<div class="card-body pt-4">
|
||||
<div class="d-flex align-items-start align-items-sm-center gap-4">
|
||||
<!-- Placeholder na logo, jeśli jest jakaś ścieżka ogólna to można zmienić, tutaj dałem szary kwadrat -->
|
||||
<div class="bg-label-secondary rounded d-flex align-items-center justify-content-center"
|
||||
style="width: 100px; height: 100px;">
|
||||
<i class="bx bx-image fs-1 text-secondary"></i>
|
||||
</div>
|
||||
<div class="button-wrapper">
|
||||
<label for="upload" class="btn btn-primary me-2 mb-4" tabindex="0">
|
||||
<span class="d-none d-sm-block">Wgraj nowe logo</span>
|
||||
<i class="bx bx-upload d-block d-sm-none"></i>
|
||||
<input type="file" id="upload" class="account-file-input" hidden
|
||||
accept="image/png, image/jpeg" />
|
||||
</label>
|
||||
<button type="button" class="btn btn-outline-secondary account-image-reset mb-4">
|
||||
<i class="bx bx-reset d-block d-sm-none"></i>
|
||||
<span class="d-none d-sm-block">Resetuj</span>
|
||||
</button>
|
||||
<p class="text-muted mb-0">Dozwolone formaty: JPG, PNG. Maksymalny rozmiar: 800 KB.
|
||||
Rekomentowany wymiar: 300x150 px</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="content-backdrop fade"></div>
|
||||
|
||||
<?php include '../../footer.php'; ?>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
Reference in New Issue
Block a user