167 lines
7.7 KiB
Plaintext
167 lines
7.7 KiB
Plaintext
{block content}
|
|
|
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/datatables.net-bs5@1.13.6/css/dataTables.bootstrap5.min.css">
|
|
|
|
<div class="container-fluid py-3">
|
|
<div class="mb-3">
|
|
<h2 class="h3 mb-1">Firmy</h2>
|
|
<p class="text-muted small mb-0">
|
|
Tabulka <code>FIRMA</code> ve vybrané datové databázi.
|
|
</p>
|
|
</div>
|
|
|
|
<div class="card border-0 shadow-sm p-3 bg-white mb-4">
|
|
<div class="mb-2" n:if="$presenter['addFirmaForm']->hasErrors()">
|
|
<div class="alert alert-danger mb-0">
|
|
<ul class="mb-0 ps-3">
|
|
<li n:foreach="$presenter['addFirmaForm']->errors as $error">{$error}</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row g-2 align-items-end">
|
|
<div class="col-md-3">
|
|
<form method="get" action="{link this}">
|
|
<label class="form-label" for="dbFilter">Databáze</label>
|
|
<select name="db" id="dbFilter" class="form-select" onchange="this.form.submit()">
|
|
<option n:foreach="$databases as $name => $label" value="{$name}" {if $selectedDb === $name}selected{/if}>{$label}</option>
|
|
</select>
|
|
</form>
|
|
</div>
|
|
<div class="col-md-9">
|
|
<form n:name="addFirmaForm" class="row g-2 align-items-end">
|
|
<div class="col-md-8">
|
|
<label n:name="firmaNazev" class="form-label">Název firmy / OSVČ</label>
|
|
<input n:name="firmaNazev" class="form-control" placeholder="např. Jan Novák">
|
|
</div>
|
|
<div class="col-md-4">
|
|
<button n:name="send" class="btn btn-primary w-100">
|
|
<i class="bi bi-plus-lg me-1"></i>Přidat
|
|
</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<form n:name="sdfImportForm" class="d-none">
|
|
<input n:name="loginId">
|
|
<input n:name="sdf" accept=".sdf,.json,application/json">
|
|
<button n:name="send">Import</button>
|
|
</form>
|
|
|
|
<div class="row g-3 mb-4">
|
|
<div class="col-md-4 col-lg-3">
|
|
<div class="card border-0 shadow-sm p-3 bg-white border-start border-primary border-4">
|
|
<div class="text-muted small">Firem v {$selectedDb}</div>
|
|
<div class="fs-4 fw-bold text-primary">{$celkemCount} ks</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="card shadow-sm border-0 p-3 bg-white">
|
|
<div class="table-responsive">
|
|
<table class="table table-hover table-cards align-middle w-100" id="firmy-table">
|
|
<thead class="table-light">
|
|
<tr>
|
|
<th>Název</th>
|
|
<th class="text-center">ID</th>
|
|
<th>IČ / DIČ</th>
|
|
<th>Kontakt</th>
|
|
<th class="text-center">Uživatelů</th>
|
|
<th>SDF</th>
|
|
<th class="text-end" data-orderable="false">Akce</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{foreach $firmy as $firma}
|
|
<tr>
|
|
<td data-label="Název" class="fw-bold">
|
|
<i class="bi bi-building me-1 text-muted"></i>{$firma->NAZEV}
|
|
</td>
|
|
<td data-label="ID" class="text-center">{$firma->ID}</td>
|
|
<td data-label="IČ / DIČ">
|
|
{if $firma->IC || $firma->DIC}
|
|
<div n:if="$firma->IC">IČ: {$firma->IC}</div>
|
|
<div class="small text-muted" n:if="$firma->DIC">DIČ: {$firma->DIC}</div>
|
|
{else}
|
|
<span class="text-muted">—</span>
|
|
{/if}
|
|
</td>
|
|
<td data-label="Kontakt">
|
|
{if $firma->EMAIL || $firma->TELEFON || $firma->MESTO}
|
|
<div n:if="$firma->EMAIL">{$firma->EMAIL}</div>
|
|
<div class="small text-muted" n:if="$firma->TELEFON">{$firma->TELEFON}</div>
|
|
<div class="small text-muted" n:if="$firma->MESTO">{$firma->MESTO}</div>
|
|
{else}
|
|
<span class="text-muted">—</span>
|
|
{/if}
|
|
</td>
|
|
<td data-label="Uživatelů" class="text-center">{$firma->USERS}</td>
|
|
<td data-label="SDF">
|
|
{if $firma->SDF_SOUBOR}
|
|
<div class="fw-semibold">{$firma->SDF_SOUBOR}</div>
|
|
<div class="small text-success" n:if="$firma->SDF_IMPORTOVANO">
|
|
importováno {$firma->SDF_IMPORTOVANO|date:'d.m.Y H:i'}
|
|
</div>
|
|
{else}
|
|
<span class="text-muted">—</span>
|
|
{/if}
|
|
</td>
|
|
<td class="text-end text-nowrap cell-actions">
|
|
{if $firma->LOGIN_ID}
|
|
<button type="button"
|
|
class="btn btn-sm btn-success js-sdf-import"
|
|
data-login-id="{$firma->LOGIN_ID}"
|
|
data-firma="{$firma->NAZEV}"
|
|
title="Import ze SDF / JSON exportu (smaže data firmy)">
|
|
<i class="bi bi-box-arrow-in-down me-1"></i>Import
|
|
</button>
|
|
{else}
|
|
<span class="small text-muted">Nejdřív založte uživatele</span>
|
|
{/if}
|
|
</td>
|
|
</tr>
|
|
{/foreach}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<script src="https://cdn.jsdelivr.net/npm/datatables.net@1.13.6/js/jquery.dataTables.min.js"></script>
|
|
<script src="https://cdn.jsdelivr.net/npm/datatables.net-bs5@1.13.6/js/dataTables.bootstrap5.min.js"></script>
|
|
|
|
{syntax off}
|
|
<script>
|
|
$(document).ready(function() {
|
|
$('#firmy-table').DataTable({
|
|
language: { url: 'https://cdn.datatables.net/plug-ins/1.13.6/i18n/cs.json' },
|
|
order: [[0, 'asc']],
|
|
pageLength: 25,
|
|
autoWidth: false
|
|
});
|
|
|
|
const $importForm = $('form[id$="-sdfImportForm"], #frm-sdfImportForm').first();
|
|
const $importLoginId = $importForm.find('[name="loginId"]');
|
|
const $importFile = $importForm.find('input[type="file"]');
|
|
|
|
$(document).on('click', '.js-sdf-import', function() {
|
|
const firma = $(this).data('firma');
|
|
if (!confirm('VAROVÁNÍ: Import ze SDF/JSON pro firmu ' + firma + ' SMAŽE všechna stávající data této firmy.\n\nNa Linux serveru nahrajte JSON z bin/sdf-export.ps1 (Windows).\n\nOpravdu pokračovat?')) {
|
|
return;
|
|
}
|
|
$importLoginId.val($(this).data('login-id'));
|
|
$importFile.val('');
|
|
$importFile.trigger('click');
|
|
});
|
|
|
|
$importFile.on('change', function() {
|
|
if (this.files && this.files.length) {
|
|
$importForm.trigger('submit');
|
|
}
|
|
});
|
|
});
|
|
</script>
|
|
{/syntax}
|