{"id":4163,"date":"2026-03-13T18:19:34","date_gmt":"2026-03-13T18:19:34","guid":{"rendered":"https:\/\/sxolikes-katharistries.gr\/wordpress\/?page_id=4163"},"modified":"2026-03-15T12:14:35","modified_gmt":"2026-03-15T12:14:35","slug":"%ce%bc%ce%b7%ce%bd%ce%b9%ce%b1%ce%af%ce%b1-%ce%b1%ce%bd%ce%b1%cf%86%ce%bf%cf%81%ce%ac-%ce%bb%ce%bf%ce%b3%ce%bf%ce%b4%ce%bf%cf%83%ce%af%ce%b1%cf%82-%ce%bf%ce%b5%ce%ba","status":"publish","type":"page","link":"https:\/\/sxolikes-katharistries.gr\/wordpress\/%ce%bc%ce%b7%ce%bd%ce%b9%ce%b1%ce%af%ce%b1-%ce%b1%ce%bd%ce%b1%cf%86%ce%bf%cf%81%ce%ac-%ce%bb%ce%bf%ce%b3%ce%bf%ce%b4%ce%bf%cf%83%ce%af%ce%b1%cf%82-%ce%bf%ce%b5%ce%ba\/","title":{"rendered":"\u039c\u03b7\u03bd\u03b9\u03b1\u03af\u03b1 \u0391\u03bd\u03b1\u03c6\u03bf\u03c1\u03ac \u039b\u03bf\u03b3\u03bf\u03b4\u03bf\u03c3\u03af\u03b1\u03c2 &#8211; \u039f\u0395\u039a"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"4163\" class=\"elementor elementor-4163\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c3fe453 e-flex e-con-boxed e-con e-parent\" data-id=\"c3fe453\" 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-c98a138 elementor-widget elementor-widget-html\" data-id=\"c98a138\" 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<!DOCTYPE html>\r\n<html lang=\"el\">\r\n<head>\r\n    <meta charset=\"UTF-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n    <title>\u0391\u03bd\u03ac\u03bb\u03c5\u03c3\u03b7 & \u039b\u03bf\u03b3\u03bf\u03b4\u03bf\u03c3\u03af\u03b1 \u039f\u0395\u039a<\/title>\r\n    <style>\r\n        body { font-family: 'Segoe UI', Arial, sans-serif; background: #f0f2f5; padding: 20px; }\r\n        .list-container { max-width: 900px; margin: auto; background: #fff; padding: 25px; border-radius: 15px; border-top: 6px solid #0053a0; box-shadow: 0 4px 15px rgba(0,0,0,0.1); }\r\n        .filter-section { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; background: #f9f9f9; padding: 20px; border-radius: 10px; margin-bottom: 20px; }\r\n        .total-box { font-size: 22px; font-weight: bold; text-align: center; padding: 15px; color: #fff; background: #1a4a7a; margin: 20px 0; border-radius: 10px; }\r\n        \r\n        \/* Table Styles for Analysis *\/\r\n        .analysis-table { width: 100%; border-collapse: collapse; margin-top: 20px; font-size: 14px; }\r\n        .analysis-table th { background: #0053a0; color: white; padding: 12px; }\r\n        .analysis-table td { border: 1px solid #ddd; padding: 10px; text-align: left; }\r\n        .month-header { background: #e9ecef; font-weight: bold; color: #333; }\r\n        .amt { text-align: right; font-weight: bold; }\r\n        \r\n        .data-row { border-left: 5px solid #28a745; padding: 10px; margin-bottom: 10px; background: #fdfdfd; border-bottom: 1px solid #eee; }\r\n        .data-row.expense { border-left-color: #dc3545; }\r\n        \r\n        .btn-group { grid-column: span 2; display: flex; gap: 10px; }\r\n        button { padding: 12px; border-radius: 8px; border: none; font-weight: bold; cursor: pointer; flex: 1; color: white; }\r\n        .search-btn { background: #0053a0; }\r\n        .print-btn { background: #6c757d; }\r\n        label { font-weight: bold; margin-bottom: 5px; display: block; }\r\n        select { width: 100%; padding: 10px; border-radius: 5px; border: 1px solid #ccc; }\r\n    <\/style>\r\n<\/head>\r\n<body>\r\n\r\n<div class=\"list-container\">\r\n    <h2 style=\"text-align:center; color:#1a4a7a;\">\ud83d\udcca \u039f\u03b9\u03ba\u03bf\u03bd\u03bf\u03bc\u03b9\u03ba\u03ae \u0391\u03bd\u03ac\u03bb\u03c5\u03c3\u03b7 & \u039b\u03bf\u03b3\u03bf\u03b4\u03bf\u03c3\u03af\u03b1<\/h2>\r\n    \r\n    <div class=\"filter-section\">\r\n        <div>\r\n            <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 (\u0388\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>\r\n            <label>\u039a\u03b1\u03c4\u03b7\u03b3\u03bf\u03c1\u03af\u03b1<\/label>\r\n            <select id=\"l_katigoria\">\r\n                <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            <\/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 \u0391\u039d\u0391\u039b\u03a5\u03a3\u0397\u03a3<\/button>\r\n            <button class=\"print-btn\" onclick=\"window.print()\">\ud83d\udda8\ufe0f \u0395\u039a\u03a4\u03a5\u03a0\u03a9\u03a3\u0397<\/button>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <div id=\"total_amount\" class=\"total-box\">\u03a5\u03c0\u03cc\u03bb\u03bf\u03b9\u03c0\u03bf: 0.00 \u20ac<\/div>\r\n    \r\n    <div id=\"analysis_section\"><\/div> <hr>\r\n    <div id=\"results_list\"><\/div> <\/div>\r\n\r\n<script>\r\nconst scriptURL = 'https:\/\/script.google.com\/macros\/s\/AKfycby1RvLOQqW4N81DBy35pcQ34IW40d07iFj2wNg00GRUaqqVDb0z_z350sh8CJC8B6KTxA\/exec';\r\n\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\u03a3\u039f\u0394\u0391 \u0395\u039a\u0394\u0397\u039b\u03a9\u03a3\u0395\u03a9\u039d\", \"\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\", \"\u039c\u0399\u03a3\u0398\u039f\u0394\u039f\u03a3\u0399\u0391\", \"\u03a4\u03a1\u0391\u03a0\u0395\u0396\u0399\u039a\u0391 \u0395\u039e\u039f\u0394\u0391\", \"\u0393\u0395\u039d\u0399\u039a\u0391 \u0395\u039e\u039f\u0394\u0391\"]\r\n};\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]) {\r\n        cats[t].forEach(item => c.add(new Option(item, item)));\r\n    }\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 resDiv = document.getElementById('results_list');\r\n    const analysisDiv = document.getElementById('analysis_section');\r\n    const totalDiv = document.getElementById('total_amount');\r\n    \r\n    resDiv.innerHTML = \"\u23f3 \u03a6\u03cc\u03c1\u03c4\u03c9\u03c3\u03b7 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd...\";\r\n    analysisDiv.innerHTML = \"\";\r\n\r\n    fetch(`${scriptURL}?action=getFilteredData&type=${type}&category=${encodeURIComponent(cat)}`)\r\n    .then(r => r.json())\r\n    .then(data => {\r\n        if(!data || data.length === 0) {\r\n            resDiv.innerHTML = \"\u274c \u0394\u03b5\u03bd \u03b2\u03c1\u03ad\u03b8\u03b7\u03ba\u03b1\u03bd \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1.\";\r\n            return;\r\n        }\r\n\r\n        let totalBalance = 0;\r\n        let monthlyStats = {};\r\n\r\n        \/\/ \u0395\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd \u03b3\u03b9\u03b1 \u0391\u03bd\u03ac\u03bb\u03c5\u03c3\u03b7\r\n        data.forEach(row => {\r\n            let date = new Date(row[0]);\r\n            let monthYear = !isNaN(date.getTime()) ? date.toLocaleString('el-GR', { month: 'long', year: 'numeric' }) : \"\u0386\u03b3\u03bd\u03c9\u03c3\u03c4\u03bf\u03c2 \u039c\u03ae\u03bd\u03b1\u03c2\";\r\n            let currentType = row[1];\r\n            let category = row[2];\r\n            let amount = parseFloat(row[3]) || 0;\r\n\r\n            if (currentType === \"\u0395\u039e\u039f\u0394\u039f\") totalBalance -= amount; else totalBalance += amount;\r\n\r\n            if (!monthlyStats[monthYear]) monthlyStats[monthYear] = {};\r\n            if (!monthlyStats[monthYear][category]) monthlyStats[monthYear][category] = 0;\r\n            monthlyStats[monthYear][category] += amount;\r\n        });\r\n\r\n        \/\/ \u0394\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u03a0\u03af\u03bd\u03b1\u03ba\u03b1 \u0391\u03bd\u03ac\u03bb\u03c5\u03c3\u03b7\u03c2\r\n        let analysisHtml = `<h3>\ud83d\udcc8 \u03a3\u03c5\u03b3\u03ba\u03b5\u03bd\u03c4\u03c1\u03c9\u03c4\u03b9\u03ba\u03ae \u0391\u03bd\u03ac\u03bb\u03c5\u03c3\u03b7 \u03b1\u03bd\u03ac \u039c\u03ae\u03bd\u03b1<\/h3><table class=\"analysis-table\"><thead><tr><th>\u039c\u03ae\u03bd\u03b1\u03c2 \/ \u039a\u03b1\u03c4\u03b7\u03b3\u03bf\u03c1\u03af\u03b1<\/th><th class=\"amt\">\u03a0\u03bf\u03c3\u03cc<\/th><\/tr><\/thead><tbody>`;\r\n        \r\n        for (let month in monthlyStats) {\r\n            analysisHtml += `<tr class=\"month-header\"><td colspan=\"2\">${month.toUpperCase()}<\/td><\/tr>`;\r\n            for (let c in monthlyStats[month]) {\r\n                analysisHtml += `<tr><td>${c}<\/td><td class=\"amt\">${monthlyStats[month][c].toFixed(2)} \u20ac<\/td><\/tr>`;\r\n            }\r\n        }\r\n        analysisHtml += `<\/tbody><\/table>`;\r\n        analysisDiv.innerHTML = analysisHtml;\r\n\r\n        \/\/ \u0395\u03bd\u03b7\u03bc\u03ad\u03c1\u03c9\u03c3\u03b7 \u03a3\u03c5\u03bd\u03cc\u03bb\u03bf\u03c5\r\n        totalDiv.innerText = \"\u039a\u03b1\u03b8\u03b1\u03c1\u03cc \u03a5\u03c0\u03cc\u03bb\u03bf\u03b9\u03c0\u03bf: \" + totalBalance.toFixed(2) + \" \u20ac\";\r\n        totalDiv.style.background = totalBalance >= 0 ? \"#2e7d32\" : \"#c62828\";\r\n\r\n        \/\/ \u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u039b\u03af\u03c3\u03c4\u03b1\u03c2 \u039a\u03b9\u03bd\u03ae\u03c3\u03b5\u03c9\u03bd (\u0391\u03bd\u03c4\u03af\u03c3\u03c4\u03c1\u03bf\u03c6\u03b1)\r\n        resDiv.innerHTML = \"<h3>\ud83d\udcdd \u0391\u03bd\u03b1\u03bb\u03c5\u03c4\u03b9\u03ba\u03ae \u039b\u03af\u03c3\u03c4\u03b1 \u039a\u03b9\u03bd\u03ae\u03c3\u03b5\u03c9\u03bd<\/h3>\";\r\n        data.slice().reverse().forEach(row => {\r\n            let amount = parseFloat(row[3]) || 0;\r\n            let dateStr = row[0] ? new Date(row[0]).toLocaleDateString('el-GR') : \"-\";\r\n            resDiv.innerHTML += `\r\n                <div class=\"data-row ${row[1] === '\u0395\u039e\u039f\u0394\u039f' ? 'expense' : ''}\">\r\n                    <b>${dateStr} - ${row[1]}<\/b> | ${row[2]} <br>\r\n                    <small>${row[4]}<\/small> \r\n                    <span style=\"float:right; font-weight:bold;\">${amount.toFixed(2)} \u20ac<\/span>\r\n                <\/div>`;\r\n        });\r\n    });\r\n}\r\n<\/script>\r\n<\/body>\r\n<\/html>\r\n\r\n<div style=\"margin-top: 25px; text-align: center; border-top: 1px solid #eee; padding-top: 15px;\">\r\n\r\n      <h5 style=\"color: #0053a0; font-weight: bold; font-style: italic; margin: 0; font-size: 16px;\">\r\n\r\n        \u2728 By Nafplios v1.1\r\n\r\n      <\/h5>\r\n\r\n      <div style=\"font-size: 10px; color: #99aeC1; margin-top: 5px; text-transform: uppercase; letter-spacing: 1px;\">\r\n\r\n        Financial Control System\r\n\r\n      <\/div>\r\n\r\n    <\/div><\/div>\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>\u0391\u03bd\u03ac\u03bb\u03c5\u03c3\u03b7 &#038; \u039b\u03bf\u03b3\u03bf\u03b4\u03bf\u03c3\u03af\u03b1 \u039f\u0395\u039a \ud83d\udcca \u039f\u03b9\u03ba\u03bf\u03bd\u03bf\u03bc\u03b9\u03ba\u03ae \u0391\u03bd\u03ac\u03bb\u03c5\u03c3\u03b7 &#038; \u039b\u03bf\u03b3\u03bf\u03b4\u03bf\u03c3\u03af\u03b1 \u03a4\u03cd\u03c0\u03bf\u03c2 \u039f\u039b\u0391 (\u0388\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 \ud83d\udd0d \u0395\u039c\u03a6\u0391\u039d\u0399\u03a3\u0397 \u0391\u039d\u0391\u039b\u03a5\u03a3\u0397\u03a3 \ud83d\udda8\ufe0f \u0395\u039a\u03a4\u03a5\u03a0\u03a9\u03a3\u0397 \u03a5\u03c0\u03cc\u03bb\u03bf\u03b9\u03c0\u03bf: 0.00 \u20ac \u2728 By Nafplios v1.1 Financial Control System<\/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-4163","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/sxolikes-katharistries.gr\/wordpress\/wp-json\/wp\/v2\/pages\/4163","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=4163"}],"version-history":[{"count":30,"href":"https:\/\/sxolikes-katharistries.gr\/wordpress\/wp-json\/wp\/v2\/pages\/4163\/revisions"}],"predecessor-version":[{"id":4344,"href":"https:\/\/sxolikes-katharistries.gr\/wordpress\/wp-json\/wp\/v2\/pages\/4163\/revisions\/4344"}],"wp:attachment":[{"href":"https:\/\/sxolikes-katharistries.gr\/wordpress\/wp-json\/wp\/v2\/media?parent=4163"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}