{"id":3120,"date":"2026-01-31T20:49:57","date_gmt":"2026-01-31T20:49:57","guid":{"rendered":"https:\/\/sxolikes-katharistries.gr\/wordpress\/?page_id=3120"},"modified":"2026-06-22T19:40:52","modified_gmt":"2026-06-22T19:40:52","slug":"%ce%b1%ce%bd%ce%b1%ce%bb%cf%85%cf%83%ce%b7-%ce%b5%cf%83%ce%bf%ce%b4%cf%89%ce%bd-%ce%b5%ce%be%ce%bf%ce%b4%cf%89%ce%bd","status":"publish","type":"page","link":"https:\/\/sxolikes-katharistries.gr\/wordpress\/%ce%b1%ce%bd%ce%b1%ce%bb%cf%85%cf%83%ce%b7-%ce%b5%cf%83%ce%bf%ce%b4%cf%89%ce%bd-%ce%b5%ce%be%ce%bf%ce%b4%cf%89%ce%bd\/","title":{"rendered":"\u0391\u039d\u0391\u039b\u03a5\u03a3\u0397 \u0395\u03a3\u039f\u0394\u03a9\u039d \u0395\u039e\u039f\u0394\u03a9\u039d \u039f\u0395\u039a \u03bf\u03ba"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"3120\" class=\"elementor elementor-3120\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b71f3c0 e-flex e-con-boxed e-con e-parent\" data-id=\"b71f3c0\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b59b6eb elementor-widget elementor-widget-html\" data-id=\"b59b6eb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\r\n    .list-container { max-width: 600px; margin: auto; font-family: sans-serif; background: #f9f9f9; padding: 20px; border-radius: 15px; border-top: 5px solid #0053a0; }\r\n    .filter-section { display: flex; flex-direction: column; gap: 15px; background: white; padding: 15px; border-radius: 10px; box-shadow: 0 2px 5px rgba(0,0,0,0.1); }\r\n    .data-row { background: white; padding: 15px; margin-top: 10px; border-radius: 8px; border-left: 5px solid #28a745; box-shadow: 0 2px 4px rgba(0,0,0,0.05); }\r\n    .data-row.expense { border-left-color: #dc3545; }\r\n    .total-box { font-size: 20px; font-weight: bold; text-align: center; padding: 20px; color: #28a745; background: #fff; margin-top: 15px; border-radius: 10px; }\r\n    label { font-weight: bold; margin-bottom: 5px; display: block; }\r\n    select { width: 100%; padding: 12px; border-radius: 8px; border: 1px solid #ccc; font-size: 16px; }\r\n    .btn-group { display: flex; gap: 10px; margin-top: 10px; }\r\n    .search-btn { background: #0053a0; color: white; border: none; padding: 15px; border-radius: 8px; font-weight: bold; cursor: pointer; flex: 2; }\r\n    .print-btn { background: #6c757d; color: white; border: none; padding: 15px; border-radius: 8px; font-weight: bold; cursor: pointer; flex: 1; }\r\n    @media (max-width: 480px) { .btn-group { flex-direction: column; } }\r\n<\/style>\r\n\r\n<div class=\"list-container\">\r\n    <h3 style=\"text-align:center;\">\ud83d\udcca \u0391\u03bd\u03b1\u03b6\u03ae\u03c4\u03b7\u03c3\u03b7 & \u0395\u03ba\u03c4\u03cd\u03c0\u03c9\u03c3\u03b7 \u039a\u03b9\u03bd\u03ae\u03c3\u03b5\u03c9\u03bd<\/h3>\r\n    \r\n    <div class=\"filter-section\">\r\n        <div><label>\u03a4\u03cd\u03c0\u03bf\u03c2<\/label>\r\n            <select id=\"l_typos\" onchange=\"updateFilters()\">\r\n                <option value=\"\u039f\u039b\u0391\">\u039f\u039b\u0391 (\u0395\u03c3\u03bf\u03b4\u03b1 & \u0388\u03be\u03bf\u03b4\u03b1)<\/option>\r\n                <option value=\"\u0395\u03a3\u039f\u0394\u039f\">\u0395\u03a3\u039f\u0394\u0391<\/option>\r\n                <option value=\"\u0395\u039e\u039f\u0394\u039f\">\u0395\u039e\u039f\u0394\u0391<\/option>\r\n            <\/select>\r\n        <\/div>\r\n        <div><label>\u039a\u03b1\u03c4\u03b7\u03b3\u03bf\u03c1\u03af\u03b1<\/label>\r\n            <select id=\"l_katigoria\"><option value=\"\u03a0\u03a1\u039f\u0392\u039f\u039b\u0397 \u039f\u039b\u03a9\u039d\">\u03a0\u03a1\u039f\u0392\u039f\u039b\u0397 \u039f\u039b\u03a9\u039d<\/option><\/select>\r\n        <\/div>\r\n        <div><label>\u0388\u03c4\u03bf\u03c2<\/label>\r\n            <select id=\"l_etos\">\r\n                <option value=\"\u039f\u039b\u0391\">\u039f\u039b\u0391 \u03a4\u0391 \u0395\u03a4\u0397<\/option>\r\n                <option value=\"2030\">2030<\/option>\r\n                <option value=\"2029\">2029<\/option>\r\n                <option value=\"2028\">2028<\/option>\r\n                <option value=\"2027\">2027<\/option>\r\n                <option value=\"2026\">2026<\/option><option value=\"2025\">2025<\/option>\r\n            <\/select>\r\n        <\/div>\r\n        <div class=\"btn-group\">\r\n            <button class=\"search-btn\" onclick=\"fetchList()\">\ud83d\udd0d \u0395\u039c\u03a6\u0391\u039d\u0399\u03a3\u0397<\/button>\r\n            <button class=\"print-btn\" onclick=\"printList()\">\ud83d\udda8\ufe0f \u0395\u039a\u03a4\u03a5\u03a0\u03a9\u03a3\u0397<\/button>\r\n        <\/div>\r\n    <\/div>\r\n    <div id=\"total_amount\" class=\"total-box\">\u03a3\u03cd\u03bd\u03bf\u03bb\u03bf: 0.00 \u20ac<\/div>\r\n    <div id=\"results_list\"><\/div>\r\n<\/div>\r\n\r\n<script>\r\nconst scriptURL = 'https:\/\/script.google.com\/macros\/s\/AKfycbxZENRb0C2HDKcYyUk9k5KvkH4KANF4gAGvN7etfQwP-Baaj__zDhDg7JFUOiZtZd0lJw\/exec';\r\nconst cats = {\r\n    \"\u0395\u03a3\u039f\u0394\u039f\": [\"\u03a3\u03a5\u039d\u0394\u03a1\u039f\u039c\u0397 \u03a3\u03a9\u039c\u0391\u03a4\u0395\u0399\u039f\u03a5\", \"\u0395\u0393\u0393\u03a1\u0391\u03a6\u0397 \u039d\u0395\u039f\u03a5 \u03a3\u03a9\u039c\u0391\u03a4\u0395\u0399\u039f\u03a5\", \"\u039b\u0391\u03a7\u0395\u0399\u039f\u03a6\u039f\u03a1\u039f\u03a3\", \"\u03a7\u039f\u03a1\u0397\u0393\u0399\u0395\u03a3\", \"\u0394\u03a9\u03a1\u0395\u0395\u03a3\", \"\u0395\u039a\u03a4\u0391\u039a\u03a4\u0397 \u0395\u0399\u03a3\u03a6\u039f\u03a1\u0391\", \"\u0395\u03a3\u039f\u0394\u0391 \u0395\u039a\u0394\u0397\u039b\u03a9\u03a3\u0395\u03a9\u039d\", \"\u039a\u03a1\u0391\u03a4\u0399\u039a\u0397 \u0395\u03a0\u0399\u03a7\u039f\u03a1\u0397\u0393\u0397\u03a3\u0397\", \"\u039b\u039f\u0399\u03a0\u0391 \u0395\u03a3\u039f\u0394\u0391\"],\r\n    \"\u0395\u039e\u039f\u0394\u039f\": [\"\u0395\u039d\u039f\u0399\u039a\u0399\u039f\", \"\u039b\u039f\u0393\u0391\u03a1\u0399\u0391\u03a3\u039c\u039f\u0399 (\u0394\u0395\u0397-\u0395\u03a5\u0394\u0391\u03a0)\", \"\u0395\u03a0\u0399\u039a\u039f\u0399\u039d\u03a9\u039d\u0399\u0391\", \"\u0393\u03a1\u0391\u03a6\u0399\u039a\u0397 \u03a5\u039b\u0397\", \"\u039a\u039f\u0399\u039d\u039f\u03a7\u03a1\u0397\u03a3\u03a4\u0391\", \"\u039c\u0399\u03a3\u0398\u039f\u0394\u039f\u03a3\u0399\u0391\", \"\u0395\u039e\u039f\u0394\u0391 \u039c\u0395\u03a4\u0391\u039a\u0399\u039d\u0397\u03a3\u0397\u03a3\", \"\u0394\u0399\u039a\u0397\u0393\u039f\u03a1\u0399\u039a\u0391 \/ \u039b\u039f\u0393\u0399\u03a3\u03a4\u0399\u039a\u0391\", \"\u03a3\u03a5\u039d\u03a4\u0397\u03a1\u0397\u03a3\u0397 \u0393\u03a1\u0391\u03a6\u0395\u0399\u039f\u03a5\", \"\u0393\u0395\u039d\u0399\u039a\u0391 \u0395\u039e\u039f\u0394\u0391\"]\r\n};\r\n\r\nlet lastFetchedData = []; \r\n\r\nfunction updateFilters() {\r\n    const t = document.getElementById('l_typos').value;\r\n    const c = document.getElementById('l_katigoria');\r\n    c.innerHTML = '<option value=\"\u03a0\u03a1\u039f\u0392\u039f\u039b\u0397 \u039f\u039b\u03a9\u039d\">\u03a0\u03a1\u039f\u0392\u039f\u039b\u0397 \u039f\u039b\u03a9\u039d<\/option>';\r\n    if (cats[t]) cats[t].forEach(item => c.add(new Option(item, item)));\r\n}\r\n\r\nfunction fetchList() {\r\n    const type = document.getElementById('l_typos').value;\r\n    const cat = document.getElementById('l_katigoria').value;\r\n    const year = document.getElementById('l_etos').value;\r\n    const resDiv = document.getElementById('results_list');\r\n    const totalDiv = document.getElementById('total_amount');\r\n    \r\n    resDiv.innerHTML = \"<p style='text-align:center;'>\u23f3 \u03a6\u03cc\u03c1\u03c4\u03c9\u03c3\u03b7...<\/p>\";\r\n    fetch(`${scriptURL}?action=getFilteredData&type=${type}&category=${encodeURIComponent(cat)}&year=${year}`)\r\n    .then(r => r.json())\r\n    .then(data => {\r\n        lastFetchedData = data; \r\n        resDiv.innerHTML = \"\";\r\n        let total = 0;\r\n        data.slice().reverse().forEach(row => {\r\n            let amount = parseFloat(row[3]) || 0;\r\n            let currentType = (row[1] || \"\").toString().toUpperCase();\r\n            if (currentType === \"\u0395\u039e\u039f\u0394\u039f\") total -= amount; else total += amount;\r\n            let dateStr = row[0] ? new Date(row[0]).toLocaleDateString('el-GR') : \"-\";\r\n            let receiptNum = (currentType === \"\u0395\u039e\u039f\u0394\u039f\") ? row[7] : row[5];\r\n            \r\n            resDiv.insertAdjacentHTML('beforeend', `\r\n                <div class=\"data-row ${currentType === '\u0395\u039e\u039f\u0394\u039f' ? 'expense' : ''}\">\r\n                    <div style=\"display:flex; justify-content:space-between; font-weight:bold;\">\r\n                        <span>${dateStr} <small>(${currentType})<\/small><\/span>\r\n                        <span style=\"color:${currentType === '\u0395\u039e\u039f\u0394\u039f' ? '#dc3545' : '#28a745'}\">${currentType === '\u0395\u039e\u039f\u0394\u039f' ? '-' : '+'}${amount.toFixed(2)} \u20ac<\/span>\r\n                    <\/div>\r\n                    <div style=\"font-size:14px; color:#555; margin-top:5px;\"><b>${row[2]}<\/b><br>${row[4]}<\/div>\r\n                    <div style=\"font-size:12px; color:#999; text-align:right;\">\u0391\u03c1. \u0391\u03c0: ${receiptNum || '---'}<\/div>\r\n                <\/div>`);\r\n        });\r\n        totalDiv.innerText = \"\u039a\u03b1\u03b8\u03b1\u03c1\u03cc \u03a5\u03c0\u03cc\u03bb\u03bf\u03b9\u03c0\u03bf: \" + total.toFixed(2) + \" \u20ac\";\r\n    });\r\n}\r\n\r\nfunction printList() {\r\n    if (lastFetchedData.length === 0) return alert(\"\u039a\u03ac\u03bd\u03c4\u03b5 \u03c0\u03c1\u03ce\u03c4\u03b1 \u03b1\u03bd\u03b1\u03b6\u03ae\u03c4\u03b7\u03c3\u03b7.\");\r\n    let printWindow = window.open('', '_blank');\r\n    let html = `<html><head><style>body{font-family:sans-serif;} table{width:100%;border-collapse:collapse;} th,td{border:1px solid #ccc;padding:8px;font-size:12px;}<\/style><\/head><body><h2>\u039f\u039c\u039f\u03a3\u03a0\u039f\u039d\u0394\u0399\u0391 \u03a3\u03a7\u039f\u039b\u0399\u039a\u03a9\u039d \u039a\u0391\u0398\u0391\u03a1\u0399\u03a3\u03a4\u03a1\u0399\u03a9\u039d<\/h2><table><thead><tr><th>\u0397\u03bc\u03b5\u03c1\u03bf\u03bc\u03b7\u03bd\u03af\u03b1<\/th><th>\u03a4\u03cd\u03c0\u03bf\u03c2<\/th><th>\u039a\u03b1\u03c4\u03b7\u03b3\u03bf\u03c1\u03af\u03b1<\/th><th>\u0391\u03c1. \u0391\u03c0.<\/th><th>\u03a0\u03bf\u03c3\u03cc<\/th><\/tr><\/thead><tbody>`;\r\n    lastFetchedData.forEach(row => {\r\n        let receiptNum = (row[1] === \"\u0395\u039e\u039f\u0394\u039f\") ? row[7] : row[5];\r\n        html += `<tr><td>${new Date(row[0]).toLocaleDateString('el-GR')}<\/td><td>${row[1]}<\/td><td>${row[2]}<\/td><td>${receiptNum || ''}<\/td><td>${row[3]} \u20ac<\/td><\/tr>`;\r\n    });\r\n    html += `<\/tbody><\/table><\/body><\/html>`;\r\n    printWindow.document.write(html);\r\n    printWindow.print();\r\n}\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>\ud83d\udcca \u0391\u03bd\u03b1\u03b6\u03ae\u03c4\u03b7\u03c3\u03b7 &#038; \u0395\u03ba\u03c4\u03cd\u03c0\u03c9\u03c3\u03b7 \u039a\u03b9\u03bd\u03ae\u03c3\u03b5\u03c9\u03bd \u03a4\u03cd\u03c0\u03bf\u03c2 \u039f\u039b\u0391 (\u0395\u03c3\u03bf\u03b4\u03b1 &#038; \u0388\u03be\u03bf\u03b4\u03b1)\u0395\u03a3\u039f\u0394\u0391\u0395\u039e\u039f\u0394\u0391 \u039a\u03b1\u03c4\u03b7\u03b3\u03bf\u03c1\u03af\u03b1 \u03a0\u03a1\u039f\u0392\u039f\u039b\u0397 \u039f\u039b\u03a9\u039d \u0388\u03c4\u03bf\u03c2 \u039f\u039b\u0391 \u03a4\u0391 \u0395\u03a4\u0397203020292028202720262025 \ud83d\udd0d \u0395\u039c\u03a6\u0391\u039d\u0399\u03a3\u0397 \ud83d\udda8\ufe0f \u0395\u039a\u03a4\u03a5\u03a0\u03a9\u03a3\u0397 \u03a3\u03cd\u03bd\u03bf\u03bb\u03bf: 0.00 \u20ac<\/p>\n","protected":false},"author":32,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":"","_members_access_role":[],"_members_access_error":""},"class_list":["post-3120","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/sxolikes-katharistries.gr\/wordpress\/wp-json\/wp\/v2\/pages\/3120","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sxolikes-katharistries.gr\/wordpress\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sxolikes-katharistries.gr\/wordpress\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sxolikes-katharistries.gr\/wordpress\/wp-json\/wp\/v2\/users\/32"}],"replies":[{"embeddable":true,"href":"https:\/\/sxolikes-katharistries.gr\/wordpress\/wp-json\/wp\/v2\/comments?post=3120"}],"version-history":[{"count":113,"href":"https:\/\/sxolikes-katharistries.gr\/wordpress\/wp-json\/wp\/v2\/pages\/3120\/revisions"}],"predecessor-version":[{"id":4728,"href":"https:\/\/sxolikes-katharistries.gr\/wordpress\/wp-json\/wp\/v2\/pages\/3120\/revisions\/4728"}],"wp:attachment":[{"href":"https:\/\/sxolikes-katharistries.gr\/wordpress\/wp-json\/wp\/v2\/media?parent=3120"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}