{"id":22031,"date":"2026-04-21T17:42:47","date_gmt":"2026-04-21T16:42:47","guid":{"rendered":"https:\/\/marinaport.hu\/app\/?page_id=22031"},"modified":"2026-04-21T17:56:48","modified_gmt":"2026-04-21T16:56:48","slug":"towelsout","status":"publish","type":"page","link":"https:\/\/marinaport.hu\/app\/towelsout\/","title":{"rendered":"towelsout"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"hu\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\">\n    \n    <script src=\"https:\/\/www.gstatic.com\/firebasejs\/9.23.0\/firebase-app-compat.js\"><\/script>\n    <script src=\"https:\/\/www.gstatic.com\/firebasejs\/9.23.0\/firebase-auth-compat.js\"><\/script>\n    <script src=\"https:\/\/www.gstatic.com\/firebasejs\/9.23.0\/firebase-database-compat.js\"><\/script>\n\n    <style>\n        .tout-container { font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif; max-width: 900px; margin: 0 auto; padding: 15px; color: #333; }\n        .tout-card { background: #fff; padding: 20px; border-radius: 10px; box-shadow: 0 4px 10px rgba(0,0,0,0.1); margin-bottom: 20px; border: 1px solid #eaeaea; }\n        .tout-input { width: 100%; padding: 12px; margin-bottom: 15px; border: 1px solid #ccc; border-radius: 6px; font-size: 16px; box-sizing: border-box; }\n        .tout-btn { width: 100%; padding: 14px; font-size: 16px; font-weight: bold; border: none; border-radius: 6px; cursor: pointer; color: white; background-color: #007aff; }\n        .tout-table-wrapper { overflow-x: auto; border-radius: 6px; border: 1px solid #ddd; }\n        .tout-table { width: 100%; border-collapse: collapse; min-width: 500px; background: white; }\n        .tout-table th, .tout-table td { padding: 10px; border: 1px solid #eee; text-align: left; font-size: 14px; vertical-align: middle; }\n        .tout-table th { background-color: #fff4e6; font-weight: bold; color: #d35400; } \n        .text-center { text-align: center !important; }\n        .text-right { text-align: right !important; }\n        \n        .badge-missing { background-color: #e74c3c; color: white; padding: 4px 10px; border-radius: 12px; font-weight: bold; font-size: 14px; white-space: nowrap; }\n        .person-type { font-size: 11px; color: #888; display: block; margin-top: 2px; }\n\n        \/* \u00c9rtes\u00edt\u0151 gombok st\u00edlusa *\/\n        .action-btn { display: inline-block; padding: 6px 10px; margin: 2px; border-radius: 6px; text-decoration: none; font-size: 12px; font-weight: bold; color: white; white-space: nowrap; }\n        .btn-sms { background-color: #34c759; }\n        .btn-email { background-color: #007aff; }\n        .no-contact { font-size: 11px; color: #aaa; font-style: italic; }\n    <\/style>\n<\/head>\n<body>\n\n<div class=\"tout-container\">\n    \n    <script>\n        (function() {\n            var config = {\n                apiKey: \"AIzaSyDyHeexzDlwFVL3kowJ3sDBlXiPjCCVg2w\",\n                authDomain: \"wellness-ee025.firebaseapp.com\",\n                databaseURL: \"https:\/\/wellness-ee025-default-rtdb.firebaseio.com\",\n                projectId: \"wellness-ee025\",\n                storageBucket: \"wellness-ee025.appspot.com\",\n                messagingSenderId: \"196714975370\",\n                appId: \"1:196714975370:web:6548565d62a5e6252ddd73\"\n            };\n            try {\n                if (!firebase.apps.length) { firebase.initializeApp(config); }\n            } catch (e) { console.error(\"Firebase hiba:\", e); }\n        })();\n\n        \/\/ HA \u00c9VET V\u00c1LTOTOK, ITT TUDOD \u00c1T\u00cdRNI A K\u00d6NYVT\u00c1R NEV\u00c9T (pl. 2025_hely)\n        window.HELY_ADATBAZIS_AG = \"2024_hely\"; \n    <\/script>\n\n    <div id=\"tout-login-box\" class=\"tout-card\">\n        <h4 style=\"margin-top: 0; font-size: 16px; color: #d35400;\">Bejelentkez\u00e9s<\/h4>\n        <input type=\"email\" id=\"tout-email\" class=\"tout-input\" placeholder=\"E-mail c\u00edm\">\n        <input type=\"password\" id=\"tout-jelszo\" class=\"tout-input\" placeholder=\"Jelsz\u00f3\">\n        <button class=\"tout-btn\" style=\"background-color: #d35400;\" onclick=\"toutBelepes()\">Bel\u00e9p\u00e9s<\/button>\n        <p id=\"tout-login-error\" style=\"color: #ff3b30; display: none; font-weight: bold; margin-top: 10px; font-size: 14px;\"><\/p>\n    <\/div>\n\n    <div id=\"tout-content-box\" style=\"display: none;\">\n        <div id=\"tout-eredmenyek\"><\/div>\n    <\/div>\n\n<\/div>\n\n<script>\n    var auth = firebase.auth();\n    var db = firebase.database();\n    \n    var loginBox = document.getElementById('tout-login-box');\n    var contentBox = document.getElementById('tout-content-box');\n    var eredmenyekDiv = document.getElementById('tout-eredmenyek');\n\n    \/\/ Bejelentkez\u00e9s figyel\u00e9se\n    auth.onAuthStateChanged(function(user) {\n        if (user) {\n            loginBox.style.display = 'none';\n            contentBox.style.display = 'block';\n            kintlevosegLekerdezes();\n        } else {\n            loginBox.style.display = 'block';\n            contentBox.style.display = 'none';\n            eredmenyekDiv.innerHTML = \"\";\n        }\n    });\n\n    window.toutBelepes = function() {\n        var email = document.getElementById('tout-email').value;\n        var pass = document.getElementById('tout-jelszo').value;\n        var err = document.getElementById('tout-login-error');\n        \n        if(!email || !pass) {\n            err.style.display = 'block'; err.innerText = \"K\u00e9rem t\u00f6ltse ki az adatokat!\"; return;\n        }\n        \n        auth.signInWithEmailAndPassword(email, pass).catch(function() {\n            err.style.display = 'block'; err.innerText = \"Hib\u00e1s e-mail vagy jelsz\u00f3!\";\n        });\n    };\n\n    \/\/ --- A KINTL\u00c9V\u0150S\u00c9GEK \u00c9S A KAPCSOLATI ADATOK LEK\u00c9RDEZ\u00c9SE EGYSZERRE ---\n    window.kintlevosegLekerdezes = function() {\n        eredmenyekDiv.innerHTML = \"<p style='font-weight:bold; color:#d35400;'>Adatok bet\u00f6lt\u00e9se folyamatban...<\/p>\";\n\n        \/\/ P\u00e1rhuzamosan lek\u00e9rj\u00fck a kint l\u00e9v\u0151 t\u00f6r\u00f6lk\u00f6z\u0151ket \u00c9S az \u00fcgyf\u00e9ladatokat\n        Promise.all([\n            db.ref('TowelsOut').once('value'),\n            db.ref(window.HELY_ADATBAZIS_AG).once('value')\n        ]).then(function(snapshots) {\n            var kintlevosegek = snapshots[0].val();\n            var helyAdatok = snapshots[1].val() || {};\n\n            if (!kintlevosegek) {\n                eredmenyekDiv.innerHTML = \"<div class='tout-card' style='background:#d4edda; color:#155724; border-color:#c3e6cb;'><strong>Szuper!<\/strong> Jelenleg minden t\u00f6r\u00f6lk\u00f6z\u0151 vissza van hozva.<\/div>\";\n                return;\n            }\n\n            var lista = [];\n            var osszesKint = 0;\n\n            for (var kulcs in kintlevosegek) {\n                var adat = kintlevosegek[kulcs];\n                var darab = parseInt(adat.numberOfTowelsOut) || 0;\n                \n                if (darab > 0) {\n                    \/\/ Megkeress\u00fck az \u00fcgyfelet a helyAdatok-ban a kulcs (pl. I21) alapj\u00e1n\n                    var ugyfel = helyAdatok[kulcs] || {};\n                    \n                    \/\/ Biztos\u00edtjuk, hogy megtal\u00e1lja az emailt, ak\u00e1r \"Email\", ak\u00e1r \"Mail\" n\u00e9ven van\n                    var emailCim = ugyfel.Email || ugyfel.Mail || \"\";\n                    var telefonSzam = ugyfel.Phone || \"\";\n\n                    lista.push({\n                        azonosito: kulcs,\n                        nev: adat.personName || \"Ismeretlen\",\n                        tipus: adat.personType || \"\",\n                        ido: adat.lastTransactionTime || \"\",\n                        darab: darab,\n                        email: emailCim,\n                        telefon: telefonSzam\n                    });\n                    osszesKint += darab;\n                }\n            }\n\n            if (lista.length === 0) {\n                eredmenyekDiv.innerHTML = \"<div class='tout-card' style='background:#d4edda; color:#155724; border-color:#c3e6cb;'><strong>Szuper!<\/strong> Jelenleg minden t\u00f6r\u00f6lk\u00f6z\u0151 vissza van hozva.<\/div>\";\n                return;\n            }\n\n            \/\/ Sorbarendez\u00e9s (legr\u00e9gebbi el\u00f6l)\n            lista.sort(function(a, b) {\n                if (a.ido < b.ido) return -1;\n                if (a.ido > b.ido) return 1;\n                return 0;\n            });\n\n            var html = \"<div class='tout-card' style='padding: 10px 15px;'>\";\n            html += \"<h3 style='margin: 0 0 15px 0; color: #d35400; border-bottom: 2px solid #f39c12; padding-bottom: 5px; font-size: 18px;'>Jelenleg kint l\u00e9v\u0151 t\u00f6r\u00f6lk\u00f6z\u0151k<\/h3>\";\n            \n            html += \"<div class='tout-table-wrapper'><table class='tout-table'>\";\n            html += \"<thead><tr>\";\n            html += \"<th>Kiadva<\/th>\";\n            html += \"<th>N\u00e9v (Hely)<\/th>\";\n            html += \"<th class='text-center'>Kint van<\/th>\";\n            html += \"<th class='text-center'>\u00c9rtes\u00edt\u00e9s<\/th>\"; \/\/ \u00daJ OSZLOP\n            html += \"<\/tr><\/thead><tbody>\";\n\n            for (var i = 0; i < lista.length; i++) {\n                var item = lista[i];\n                \n                var formataltIdo = \"-\";\n                if (item.ido) {\n                    var tReszek = item.ido.split('T');\n                    if (tReszek.length === 2) {\n                        var nap = tReszek[0];\n                        var oraPerc = tReszek[1].substring(0, 5); \n                        formataltIdo = nap + \"<br><span style='color:#7f8c8d; font-size:12px;'>\" + oraPerc + \"<\/span>\";\n                    }\n                }\n\n                var tipusSzoveg = item.tipus ? \"<span class='person-type'>\" + item.tipus + \"<\/span>\" : \"\";\n\n                \/\/ --- \u00c9RTES\u00cdT\u00c9SI GOMBOK GENER\u00c1L\u00c1SA ---\n                \/\/ Az \u00fczenet sz\u00f6vege, amit a telefon automatikusan beilleszt majd\n                var tisztaNev = item.nev.split(' ').slice(1).join(' ') || item.nev; \/\/ Pr\u00f3b\u00e1ljuk lev\u00e1gni a helyk\u00f3dot a n\u00e9v elej\u00e9r\u0151l a megsz\u00f3l\u00edt\u00e1shoz\n                var uzenetSzoveg = \"Kedves \" + tisztaNev + \"! K\u00e9rj\u00fck, ne felejtse el visszahozni a Marina Portban kik\u00f6lcs\u00f6nz\u00f6tt t\u00f6r\u00f6lk\u00f6z\u0151ket (\" + item.darab + \" db). K\u00f6sz\u00f6nj\u00fck!\";\n                var uzenetURL = encodeURIComponent(uzenetSzoveg);\n                var targyURL = encodeURIComponent(\"Marina Port - T\u00f6r\u00f6lk\u00f6z\u0151 eml\u00e9keztet\u0151\");\n\n                var gombokHtml = \"\";\n                if (item.telefon || item.email) {\n                    if (item.telefon) {\n                        \/\/ iOS\/Android kompatibilis SMS link\n                        gombokHtml += \"<a href='sms:\" + item.telefon + \"?body=\" + uzenetURL + \"' class='action-btn btn-sms'>\ud83d\udcac SMS<\/a><br>\";\n                    }\n                    if (item.email) {\n                        \/\/ Standard Email link\n                        gombokHtml += \"<a href='mailto:\" + item.email + \"?subject=\" + targyURL + \"&#038;body=\" + uzenetURL + \"' class='action-btn btn-email'>\ud83d\udce7 Email<\/a>\";\n                    }\n                } else {\n                    gombokHtml = \"<span class='no-contact'>Nincs el\u00e9rhet\u0151s\u00e9g<\/span>\";\n                }\n\n                html += \"<tr>\";\n                html += \"<td><strong>\" + formataltIdo + \"<\/strong><\/td>\";\n                html += \"<td><strong>\" + item.nev + \"<\/strong>\" + tipusSzoveg + \"<\/td>\";\n                html += \"<td class='text-center'><span class='badge-missing'>\" + item.darab + \" db<\/span><\/td>\";\n                html += \"<td class='text-center' style='vertical-align: middle;'>\" + gombokHtml + \"<\/td>\";\n                html += \"<\/tr>\";\n            }\n\n            html += \"<\/tbody>\";\n            \n            html += \"<tfoot style='background: #fff4e6; font-weight: bold;'><tr>\";\n            html += \"<td colspan='2' class='text-right'>\u00d6sszes hi\u00e1nyz\u00f3 t\u00f6r\u00f6lk\u00f6z\u0151:<\/td>\";\n            html += \"<td class='text-center' style='font-size: 16px; color: #c0392b;'>\" + osszesKint + \" db<\/td>\";\n            html += \"<td><\/td>\"; \/\/ \u00dcres cella az \u00e9rtes\u00edt\u00e9s oszlop alatt\n            html += \"<\/tr><\/tfoot>\";\n\n            html += \"<\/table><\/div><\/div>\";\n            \n            eredmenyekDiv.innerHTML = html;\n\n        }).catch(function(error) {\n            console.error(\"Hiba:\", error);\n            eredmenyekDiv.innerHTML = \"<div class='tout-card' style='background:#f8d7da; color:#721c24;'><strong>Hiba az adatb\u00e1zis el\u00e9r\u00e9sekor:<\/strong> \" + error.message + \"<\/div>\";\n        });\n    };\n<\/script>\n\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>Bejelentkez\u00e9s Bel\u00e9p\u00e9s<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"blank","meta":{"footnotes":""},"class_list":["post-22031","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/marinaport.hu\/app\/wp-json\/wp\/v2\/pages\/22031","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/marinaport.hu\/app\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/marinaport.hu\/app\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/marinaport.hu\/app\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/marinaport.hu\/app\/wp-json\/wp\/v2\/comments?post=22031"}],"version-history":[{"count":3,"href":"https:\/\/marinaport.hu\/app\/wp-json\/wp\/v2\/pages\/22031\/revisions"}],"predecessor-version":[{"id":22034,"href":"https:\/\/marinaport.hu\/app\/wp-json\/wp\/v2\/pages\/22031\/revisions\/22034"}],"wp:attachment":[{"href":"https:\/\/marinaport.hu\/app\/wp-json\/wp\/v2\/media?parent=22031"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}