Szerződések
{source}
<?php
// Kód Zmluvy V1.5
// Pripojenie k databáze a získanie počtu zmlúv
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('COUNT(*)')
->from($db->quoteName('#__zmluvy')); // Vaša tabuľka zmlúv s predponou
$db->setQuery($query);
$total = $db->loadResult();
// Počet zmlúv na stránku
$limit = 20;
// Získanie aktuálnej stránky z URL (ak neexistuje, predvolená je 0)
$app = JFactory::getApplication();
$page = max(1, $app->input->getInt('zmluvy_page', 1));
$limitstart = ($page - 1) * $limit;
// Vytvorenie stránkovania
$jpagination = new JPagination($total, $limitstart, $limit);
// Získanie zmlúv pre aktuálnu stránku
$query = $db->getQuery(true);
$query->select('*')
->from($db->quoteName('#__zmluvy')) // Vaša tabuľka zmlúv
->order('id DESC')
->setLimit($limit, $limitstart);
$db->setQuery($query);
$contracts = $db->loadObjectList();
// CSS štýly pre tabuľku a modálne okno
echo '<style>
table {
border-collapse: collapse;
width: 100%;
}
table, th, td {
border: 1px solid black;
}
th, td {
padding: 8px;
text-align: left;
}
th {
background-color: #135b43;
color: white;
}
tr:nth-child(even) {
background-color: #f2f2f2;
}
td.subject {
width: 33%;
max-width: 300px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.modal {
display: none;
position: fixed;
z-index: 1;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgba(0, 0, 0, 0.4);
}
.modal-content {
background-color: #fff;
margin: 15% auto;
padding: 20px;
border: 1px solid #888;
width: 80%;
}
.close {
color: #aaa;
float: right;
font-size: 28px;
font-weight: bold;
}
.close:hover,
.close:focus {
color: black;
text-decoration: none;
cursor: pointer;
}
.zmluvy-pagination {
display: flex;
gap: 10px;
margin-top: 22px;
align-items: center;
flex-wrap: wrap;
}
.zmluvy-pagination a,
.zmluvy-pagination span {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 43px;
height: 48px;
padding: 0 16px;
border: 1px solid #135b43;
border-radius: 5px;
color: #135b43;
background: #fff;
text-decoration: none;
font-weight: 500;
}
.zmluvy-pagination a:hover {
background: #eaf4f0;
color: #135b43;
}
.zmluvy-pagination .active {
background: #135b43;
color: #fff;
border-color: #135b43;
}
</style>';
// HTML tabuľka na zobrazenie zmlúv
echo '<table>';
echo '<thead>';
echo '<tr>';
echo '<th>Szerződés száma</th>';
echo '<th>Megrendelő</th>';
echo '<th>Szállító</th>';
echo '<th style="width: 33%;">A szerződés tárgya</th>';
echo '<th>A szerződés összege</th>';
echo '<th>Hatálybalépés dátuma / Hatálybalépés szövege</th>';
echo '</tr>';
echo '</thead>';
echo '<tbody>';
// Zobrazenie údajov pre každú zmluvu
foreach ($contracts as $contract) {
echo '<tr>';
echo '<td>' . htmlspecialchars($contract->cislo_zmluvy ?? '', ENT_QUOTES, 'UTF-8') . '</td>';
echo '<td>' . htmlspecialchars($contract->obstaravatel ?? '', ENT_QUOTES, 'UTF-8') . '</td>';
echo '<td>' . htmlspecialchars($contract->dodavatel ?? '', ENT_QUOTES, 'UTF-8') . '</td>';
// Predmet zmluvy ako odkaz na zobrazenie detailov v modálnom okne
echo '<td class="subject"><a href="#" class="open-popup" data-id="' . $contract->id . '">' . htmlspecialchars($contract->predmet_zmluvy ?? '', ENT_QUOTES, 'UTF-8') . '</a></td>';
echo '<td>' . htmlspecialchars($contract->suma_zmluva ?? '', ENT_QUOTES, 'UTF-8') . '</td>';
echo '<td>' . (!empty($contract->text_ucinnosti) ? htmlspecialchars($contract->text_ucinnosti ?? '', ENT_QUOTES, 'UTF-8') : (!empty($contract->datum_ucinnosti) ? date('d.m.Y', strtotime($contract->datum_ucinnosti)) : '')) . '</td>';
echo '</tr>';
// Skryté modálne okno pre každú zmluvu s detailmi
echo '<div id="modal-' . $contract->id . '" class="modal">
<div class="modal-content">
<span class="close">×</span>
<h2>Szerződés részletei ' . htmlspecialchars($contract->cislo_zmluvy ?? '', ENT_QUOTES, 'UTF-8') . '</h2>
<p><strong>Típus:</strong> ' . htmlspecialchars($contract->druh ?? '', ENT_QUOTES, 'UTF-8') . '</p>
<p><strong>Tárgy:</strong> ' . htmlspecialchars($contract->predmet_zmluvy ?? '', ENT_QUOTES, 'UTF-8') . '</p>
<p><strong>Szállító:</strong> ' . htmlspecialchars($contract->dodavatel ?? '', ENT_QUOTES, 'UTF-8') . '</p>
<p><strong>Szállító cégjegyzékszáma (IČO):</strong> ' . htmlspecialchars($contract->dodavatel_ico ?? '', ENT_QUOTES, 'UTF-8') . '</p>
<p><strong>Szállító székhelye:</strong> ' . htmlspecialchars($contract->dodavatel_sidlo ?? '', ENT_QUOTES, 'UTF-8') . '</p>
<p><strong>Megrendelő:</strong> ' . htmlspecialchars($contract->obstaravatel ?? '', ENT_QUOTES, 'UTF-8') . '</p>
<p><strong>Megrendelő cégjegyzékszáma (IČO):</strong> ' . htmlspecialchars($contract->obstaravatel_ico ?? '', ENT_QUOTES, 'UTF-8') . '</p>
<p><strong>Megrendelő székhelye:</strong> ' . htmlspecialchars($contract->obstaravatel_sidlo ?? '', ENT_QUOTES, 'UTF-8') . '</p>
<p><strong>Összeg:</strong> ' . htmlspecialchars($contract->suma_zmluva ?? '', ENT_QUOTES, 'UTF-8') . ' €</p>
<p><strong>Hatálybalépés dátuma:</strong> ' . (!empty($contract->datum_ucinnosti) ? date('d.m.Y', strtotime($contract->datum_ucinnosti)) : '') . '</p>
<p><strong>Érvényesség vége:</strong> ' . (!empty($contract->datum_platnosti_do) ? date('d.m.Y', strtotime($contract->datum_platnosti_do)) : '') . '</p>
<p><strong>Közbeszerzési hirdetmény (ÚVO):</strong> ' . htmlspecialchars($contract->uvo ?? '', ENT_QUOTES, 'UTF-8') . '</p>
<p><strong>Megjegyzés:</strong> ' . htmlspecialchars($contract->poznamka ?? '', ENT_QUOTES, 'UTF-8') . '</p>
<p><strong>Hivatkozás:</strong> ' . htmlspecialchars($contract->ref ?? '', ENT_QUOTES, 'UTF-8') . '</p>';
// Odkaz na stiahnutie prílohy, ak existuje
$query_attachments = $db->getQuery(true);
$query_attachments->select('*')
->from($db->quoteName('#__prilohy')) // Vaša tabuľka príloh
->where($db->quoteName('id_zmluvy') . ' = ' . $db->quote($contract->id));
$db->setQuery($query_attachments);
$attachments = $db->loadObjectList();
if ($attachments) {
echo '<h3>Mellékletek:</h3>';
foreach ($attachments as $attachment) {
// Upravili sme túto časť na správnu cestu
echo '<a href="' . JUri::root() . 'media/uploads/pdf_zmluvy/' . rawurlencode($attachment->nazov_suboru ?? '') . '" target="_blank">Stiahnuť ' . htmlspecialchars($attachment->nazov_suboru ?? '', ENT_QUOTES, 'UTF-8') . '</a><br>';
}
} else {
echo '<p>Žiadne prílohy k dispozícii.</p>';
}
echo '</div></div>';
}
echo '</tbody>';
echo '</table>';
// Vlastné stránkovanie – vhodné pre článok cez Sourcerer
$currentUrl = JUri::getInstance()->toString(array('path'));$totalPages = ceil($total / $limit);
$currentPage = max(1, $app->input->getInt('zmluvy_page', 1));echo '<div class="zmluvy-pagination">';if ($currentPage > 1) {
echo '<a href="' . htmlspecialchars($currentUrl . '?zmluvy_page=1', ENT_QUOTES, 'UTF-8') . '">« Prvá</a>';
}for ($i = 1; $i <= $totalPages; $i++) {
if ($i == $currentPage) {
echo '<span class="active">' . $i . '</span>';
} else {
echo '<a href="' . htmlspecialchars($currentUrl . '?zmluvy_page=' . $i, ENT_QUOTES, 'UTF-8') . '">' . $i . '</a>';
}
}if ($currentPage < $totalPages) {
echo '<a href="' . htmlspecialchars($currentUrl . '?zmluvy_page=' . $totalPages, ENT_QUOTES, 'UTF-8') . '">Posledná »</a>';
}echo '</div>';
// JavaScript na otvorenie a zatvorenie modálnych okien
echo '<script>
document.addEventListener("DOMContentLoaded", function() {
document.querySelectorAll(".open-popup").forEach(function(element) {
element.addEventListener("click", function(event) {
event.preventDefault();
var contractId = this.getAttribute("data-id");
var modal = document.getElementById("modal-" + contractId);
modal.style.display = "block";
});
});
document.querySelectorAll(".close").forEach(function(element) {
element.addEventListener("click", function() {
var modal = this.closest(".modal");
modal.style.display = "none";
});
});
window.addEventListener("click", function(event) {
if (event.target.classList.contains("modal")) {
event.target.style.display = "none";
}
});
});
</script>';
?>
{/source}
MEGJEGYZÉS:
Ha a szerződés összegénél a 0.01 érték szerepel, az azt jelenti, hogy az összeg a szerződésben nincs pontosan megadva, hanem például valamilyen törvényre hivatkozik, vagy olyan típusú szerződésről van szó, amely nem tartalmaz árat.
| Szerződés száma | Megrendelő | Szállító | Szerződés tárgya | Szerződés összege | Hatálybalépés dátuma / szövege |
|---|---|---|---|---|---|
| ZML-2026-0020 | Obec Veľké Dvorníky | Union poisťovňa, a.s. | Az összeg nincs pontosan meghatározva | 18.06.2026 | |
| ZML-2026-0019 | BBAU s.r.o. | Obec Veľké Dvorníky | Az összeg nincs pontosan meghatározva | 17.06.2026 | |
| ZML-2026-0018 | Ferenc Lavu | Obec Veľké Dvorníky | 234.89 | 06.06.2026 | |
| ZML-2026-0017 | Obec Veľké Dvorníky | BBAU s.r.o. | Az összeg nincs pontosan meghatározva | 03.06.2026 | |
| FNPŠ-Z-2025/001-351 | Fond na podporu športu | Obec Veľké Dvorníky | 162605 | 21.05.2026 | |
| 2026_0193 | ŠKOLSKÉ HOSPODÁRSTVO - BÚŠLAK, spol. s r.o. | Obec Veľké Dvorníky | 1564.73 | 15.05.2026 | |
| ZML-2026-0016 | Mgr. Bianka Tükör Dunai / Ádám Dunai | Obec Veľké Dvorníky | 6000 | 13.05.2026 | |
| ZML-2026-0015 | Obec Veľké Dvorníky | AKVAMONT s.r.o.AKVAMONT s.r.o. | 152250 | 06.05.2026 | |
| 326 0071 | Obec Veľké Dvorníky | Dobrovoľná požiarna ochrana SR | 3000 | 01.05.2026 | |
| ZML-2026-0014 | Obec Veľké Dvorníky | ITUS s.r.o. | 220 | 01.05.2026 | |
| ZML-2026-0013 | Zoltán Matlák | Obec Veľké Dvorníky | 235.33 | 01.05.2026 | |
| ZML-2026-0012 | Tünde Nagyová | Obec Veľké Dvorníky | 217.96 | 02.04.2026 | |
| ZML-2026-0011 | Rozália Szabóová | Obec Veľké Dvorníky | 199.94 | 01.04.2026 | |
| ZML-2026-0010 | Obec Veľké Dvorníky | TRIUS FINANCE, s.r.o. | 4000 | 25.03.2026 | |
| ZML-2026-0009 | Michal Posztós | Obec Veľké Dvorníky | 241.48 | 05.03.2026 | |
| ZML-2026-0008 | Ladislav Csibrey, Erika Csibrey | Obec Veľké Dvorníky | 241.48 | 03.03.2026 | |
| ZML-2026-0007 | Ľudovít Németh, Iveta Némethová, Mgr. | Obec Veľké Dvorníky | 234.89 | 03.03.2026 | |
| ZML-2026-0006 | Obec Veľké Dvorníky | Západoslovenská distribučná, a.s. | 10 | 05.02.2026 | |
| ZML-2026-0005 | Obec Veľké Dvorníky | Mesto Dunajská Streda | Az összeg nincs pontosan meghatározva | 05.02.2026 | |
| ZML-2026-0004 | Juraj Bugár | Obec Veľké Dvorníky | 193.11 | 03.02.2026 |
SK
HU
EN