{"id":6,"date":"2026-08-20T19:22:36","date_gmt":"2026-08-20T19:22:36","guid":{"rendered":"https:\/\/build.geoa.in\/index.php\/geoa-calculator-test\/"},"modified":"2026-08-20T19:22:36","modified_gmt":"2026-08-20T19:22:36","slug":"geoa-calculator-test","status":"publish","type":"page","link":"https:\/\/build.geoa.in\/geoa-calculator-test\/","title":{"rendered":"GEOA Calculator Test"},"content":{"rendered":"    <div class=\"gec-calculator-wrapper\">\r\n        <h2 class=\"gec-title\">Green Energy Savings Calculator<\/h2>\r\n        <p class=\"gec-subtitle\">Estimate your savings with open-access green energy.<\/p>\r\n        \r\n        <div class=\"gec-form-container\">\r\n            <div class=\"gec-step-section\" id=\"gec-step-1\">\r\n                <h3>1. Your Energy Details<\/h3>\r\n                <div class=\"gec-input-group\"><label for=\"gec-load\">Load (kW):<\/label><input type=\"number\" id=\"gec-load\" name=\"gec-load\" required><\/div>\r\n                <div class=\"gec-input-group\"><label for=\"gec-consumption\">Energy Consumption (kWh\/month):<\/label><input type=\"number\" id=\"gec-consumption\" name=\"gec-consumption\" required><\/div>\r\n                <div class=\"gec-input-group\">\r\n                    <label for=\"gec-customer-state\">Your State:<\/label>\r\n                    <select id=\"gec-customer-state\" name=\"gec-customer-state\" required>\r\n                        <option value=\"\">Select your state<\/option>\r\n                        <option value=\"Gujarat\">Gujarat<\/option>                    <\/select>\r\n                <\/div>\r\n                <div class=\"gec-input-group\">\r\n                    <label for=\"gec-customer-discom\">Your Electricity Supplier (Discom):<\/label>\r\n                    <select id=\"gec-customer-discom\" name=\"gec-customer-discom\" required disabled><option value=\"\">Select your discom<\/option><\/select>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <div class=\"gec-step-section\" id=\"gec-step-2\">\r\n                <h3>2. Generation Plant Details<\/h3>\r\n                <div class=\"gec-input-group\">\r\n                    <label for=\"gec-gen-state\">Generation Plant State:<\/label>\r\n                    <select id=\"gec-gen-state\" name=\"gec-gen-state\" required>\r\n                        <option value=\"\">Select generation state<\/option>\r\n                        <option value=\"Gujarat\">Gujarat<\/option>                    <\/select>\r\n                <\/div>\r\n                <div class=\"gec-input-group\">\r\n                    <label for=\"gec-gen-discom\">Generation Plant Discom:<\/label>\r\n                    <select id=\"gec-gen-discom\" name=\"gec-gen-discom\" required disabled><option value=\"\">Select generation discom<\/option><\/select>\r\n                <\/div>\r\n            <\/div>\r\n            \r\n            <div class=\"gec-step-section\" id=\"gec-step-3\">\r\n                <h3>3. Your Contact Information<\/h3>\r\n                <div class=\"gec-input-group\"><label for=\"gec-name\">Full Name:<\/label><input type=\"text\" id=\"gec-name\" name=\"gec-name\" required><\/div>\r\n                <div class=\"gec-input-group\"><label for=\"gec-email\">Email:<\/label><input type=\"email\" id=\"gec-email\" name=\"gec-email\" required><\/div>\r\n                <div class=\"gec-input-group\"><label for=\"gec-mobile\">Mobile Number:<\/label><input type=\"tel\" id=\"gec-mobile\" name=\"gec-mobile\" required><\/div>\r\n            <\/div>\r\n\r\n            <div class=\"gec-button-container\"><button id=\"gec-calculate-btn\">Calculate Now<\/button><\/div>\r\n        <\/div>\r\n\r\n        <div class=\"gec-results-container\" id=\"gec-results\" style=\"display:none;\">\r\n            <div class=\"gec-loading-indicator\">\r\n                <div class=\"gec-spinner\"><\/div>\r\n                <p>Calculating your savings...<\/p>\r\n            <\/div>\r\n            <div class=\"gec-results-content\">\r\n                <h2 class=\"gec-result-title\">Calculation Results<\/h2>\r\n                <div class=\"gec-result-box\">\r\n                    <div class=\"gec-result-item\">\r\n                        <span class=\"gec-mode-label\">Landed Cost (Captive)<\/span>\r\n                        <span class=\"gec-price\" id=\"gec-captive-price\">\u20b9--.--<\/span>\r\n                        <span class=\"gec-unit\">\/unit<\/span>\r\n                    <\/div>\r\n                    <div class=\"gec-result-item\">\r\n                        <span class=\"gec-mode-label\">Landed Cost (Non-Captive)<\/span>\r\n                        <span class=\"gec-price\" id=\"gec-non-captive-price\">\u20b9--.--<\/span>\r\n                        <span class=\"gec-unit\">\/unit<\/span>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <div class=\"gec-savings-box\">\r\n                    <h3>Potential Annual Savings<\/h3>\r\n                    <div class=\"gec-savings-details\">\r\n                        <div class=\"gec-savings-item\">\r\n                            <span class=\"gec-mode-label\">Captive Mode<\/span>\r\n                            <span id=\"gec-annual-savings-captive\" class=\"gec-savings-amount\">\u20b9--.--<\/span>\r\n                        <\/div>\r\n                        <div class=\"gec-savings-item\">\r\n                             <span class=\"gec-mode-label\">Non-Captive Mode<\/span>\r\n                            <span id=\"gec-annual-savings-non-captive\" class=\"gec-savings-amount\">\u20b9--.--<\/span>\r\n                        <\/div>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <div class=\"gec-breakup\">\r\n                    <h3>Green Power Wheeling Charges Breakdown (\u20b9\/unit)<\/h3>\r\n                    <p style=\"text-align:center; font-size: 0.9em; color: #555;\">Includes a base solar generation cost of \u20b94.00\/unit.<\/p>\r\n                    <table class=\"gec-breakup-table\">\r\n                        <thead>\r\n                            <tr>\r\n                                <th>Charge<\/th>\r\n                                <th>Captive Mode<\/th>\r\n                                <th>Non-Captive Mode<\/th>\r\n                            <\/tr>\r\n                        <\/thead>\r\n                        <tbody>\r\n                            <tr><td>Solar Generation Cost<\/td><td id=\"gec-sgc-captive\">\u20b94.00<\/td><td id=\"gec-sgc-noncaptive\">\u20b94.00<\/td><\/tr>\r\n                            <tr><td>Cross Subsidy Charges<\/td><td id=\"gec-csc-captive\">\u20b90.00<\/td><td id=\"gec-csc-noncaptive\">\u20b90.00<\/td><\/tr>\r\n                            <tr><td>Additional Surcharge<\/td><td id=\"gec-as-captive\">\u20b90.00<\/td><td id=\"gec-as-noncaptive\">\u20b90.00<\/td><\/tr>\r\n                            <tr><td>Wheeling Charges<\/td><td id=\"gec-wc\">\u20b90.00<\/td><td id=\"gec-wc-noncaptive\">\u20b90.00<\/td><\/tr>\r\n                            <tr><td>Transmission Charges<\/td><td id=\"gec-tc\">\u20b90.00<\/td><td id=\"gec-tc-noncaptive\">\u20b90.00<\/td><\/tr>\r\n                            <tr><td>Wheeling & Transmission Losses<\/td><td id=\"gec-losses\">\u20b90.00<\/td><td id=\"gec-losses-noncaptive\">\u20b90.00<\/td><\/tr>\r\n                            <tr class=\"gec-total-row\">\r\n                                <td><strong>Total Landed Cost<\/strong><\/td>\r\n                                <td id=\"gec-total-captive\"><strong>\u20b90.00<\/strong><\/td>\r\n                                <td id=\"gec-total-noncaptive\"><strong>\u20b90.00<\/strong><\/td>\r\n                            <\/tr>\r\n                        <\/tbody>\r\n                    <\/table>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n    \r\n    <style>\r\n        .gec-calculator-wrapper { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; max-width: 800px; margin: 20px auto; padding: 20px; background: #f9f9f9; border-radius: 12px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); }\r\n        .gec-title, .gec-subtitle { text-align: center; color: #333; }\r\n        .gec-subtitle { font-size: 1.1em; color: #666; margin-bottom: 30px; }\r\n        .gec-form-container { display: flex; flex-wrap: wrap; gap: 20px; }\r\n        .gec-step-section { flex: 1 1 300px; padding: 20px; background: #fff; border-radius: 8px; border: 1px solid #e0e0e0; }\r\n        .gec-input-group { margin-bottom: 15px; }\r\n        .gec-input-group label { display: block; margin-bottom: 5px; font-weight: 600; color: #555; }\r\n        .gec-input-group input, .gec-input-group select { width: 100%; padding: 10px; border: 1px solid #ccc; border-radius: 6px; transition: border-color 0.3s; }\r\n        .gec-input-group input:focus, .gec-input-group select:focus { outline: none; border-color: #007bff; }\r\n        .gec-button-container { width: 100%; text-align: center; margin-top: 20px; }\r\n        #gec-calculate-btn { background-color: #28a745; color: #fff; padding: 12px 25px; border: none; border-radius: 8px; font-size: 1.1em; cursor: pointer; transition: background-color 0.3s, transform 0.2s; }\r\n        #gec-calculate-btn:hover { background-color: #218838; transform: translateY(-2px); }\r\n        .gec-results-container { margin-top: 30px; background: #e9f5ee; padding: 20px; border-radius: 12px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); }\r\n        .gec-loading-indicator { text-align: center; padding: 40px; }\r\n        .gec-spinner { border: 4px solid #f3f3f3; border-top: 4px solid #3498db; border-radius: 50%; width: 40px; height: 40px; animation: spin 2s linear infinite; margin: 0 auto 10px; }\r\n        @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }\r\n        .gec-results-content { display: none; }\r\n        .gec-result-box, .gec-savings-details { display: flex; justify-content: space-around; text-align: center; margin: 20px 0; flex-wrap: wrap; gap: 15px; }\r\n        .gec-result-item, .gec-savings-item { background: #fff; padding: 20px; border-radius: 8px; box-shadow: 0 2px 5px rgba(0,0,0,0.1); flex: 1 1 200px; }\r\n        .gec-mode-label { font-weight: 600; color: #007bff; display: block; margin-bottom: 5px; }\r\n        .gec-price { font-size: 2.2em; font-weight: bold; color: #28a745; }\r\n        .gec-unit { font-size: 0.9em; color: #666; }\r\n        .gec-savings-box { background: #f0f8ff; padding: 20px; border-radius: 8px; margin-bottom: 20px; text-align: center; }\r\n        .gec-savings-amount { font-weight: bold; color: #d9534f; font-size: 1.5em; }\r\n        .gec-breakup-table { width: 100%; border-collapse: collapse; margin-top: 15px; }\r\n        .gec-breakup-table th, .gec-breakup-table td { text-align: center; padding: 12px; border: 1px solid #ddd; }\r\n        .gec-breakup-table th { background-color: #f2f2f2; }\r\n        .gec-total-row td { font-weight: bold; background-color: #e9ecef; }\r\n        @media (max-width: 768px) { .gec-form-container { flex-direction: column; } }\r\n    <\/style>\r\n    \r\n    <script>\r\n    document.addEventListener('DOMContentLoaded', function() {\r\n        const discomData = {\"Gujarat\":{\"Torrent Power Ahmedabad Limited\":{\"grid_tariff\":9,\"cross_subsidy\":1.51,\"additional_surcharge\":0,\"wheeling\":1.89,\"transmission\":0,\"losses_wheeling\":3.5,\"losses_transmission\":0},\"Torrent Power Surat Limited\":{\"grid_tariff\":9,\"cross_subsidy\":0.87,\"additional_surcharge\":0,\"wheeling\":0.77,\"transmission\":0,\"losses_wheeling\":2.5,\"losses_transmission\":0},\"UGVCL\":{\"grid_tariff\":8,\"cross_subsidy\":2.37,\"additional_surcharge\":0.82,\"wheeling\":0.2,\"transmission\":0,\"losses_wheeling\":7.25,\"losses_transmission\":0},\"PGVCL\":{\"grid_tariff\":8,\"cross_subsidy\":2.37,\"additional_surcharge\":0.82,\"wheeling\":0.2,\"transmission\":0,\"losses_wheeling\":7.25,\"losses_transmission\":0},\"MGVCL\":{\"grid_tariff\":8,\"cross_subsidy\":2.37,\"additional_surcharge\":0.82,\"wheeling\":0.2,\"transmission\":0,\"losses_wheeling\":7.25,\"losses_transmission\":0},\"DGVCL\":{\"grid_tariff\":8,\"cross_subsidy\":2.37,\"additional_surcharge\":0.82,\"wheeling\":0.2,\"transmission\":0,\"losses_wheeling\":7.25,\"losses_transmission\":0},\"GETCO\":{\"grid_tariff\":8,\"cross_subsidy\":0,\"additional_surcharge\":0,\"wheeling\":0,\"transmission\":1,\"losses_wheeling\":0,\"losses_transmission\":3.37}}};\r\n        const customerStateSelect = document.getElementById('gec-customer-state');\r\n        const customerDiscomSelect = document.getElementById('gec-customer-discom');\r\n        const genStateSelect = document.getElementById('gec-gen-state');\r\n        const genDiscomSelect = document.getElementById('gec-gen-discom');\r\n        const calculateBtn = document.getElementById('gec-calculate-btn');\r\n        const resultsContainer = document.getElementById('gec-results');\r\n        const resultsContent = resultsContainer.querySelector('.gec-results-content');\r\n        const loadingIndicator = resultsContainer.querySelector('.gec-loading-indicator');\r\n\r\n        function populateDiscoms(state, discomSelect) {\r\n            discomSelect.innerHTML = '<option value=\"\">Select a discom<\/option>';\r\n            if (state && discomData[state]) {\r\n                discomSelect.disabled = false;\r\n                Object.keys(discomData[state]).forEach(discom => {\r\n                    const option = document.createElement('option');\r\n                    option.value = discom;\r\n                    option.textContent = discom;\r\n                    discomSelect.appendChild(option);\r\n                });\r\n            } else {\r\n                discomSelect.disabled = true;\r\n            }\r\n        }\r\n\r\n        customerStateSelect.addEventListener('change', (e) => populateDiscoms(e.target.value, customerDiscomSelect));\r\n        genStateSelect.addEventListener('change', (e) => populateDiscoms(e.target.value, genDiscomSelect));\r\n        \r\n        calculateBtn.addEventListener('click', function(e) {\r\n            e.preventDefault();\r\n            resultsContent.style.display = 'none';\r\n            loadingIndicator.style.display = 'block';\r\n            resultsContainer.style.display = 'block';\r\n            \r\n            const formData = new FormData();\r\n            const inputs = {\r\n                load: document.getElementById('gec-load').value,\r\n                consumption: document.getElementById('gec-consumption').value,\r\n                customer_state: customerStateSelect.value,\r\n                customer_discom: customerDiscomSelect.value,\r\n                gen_state: genStateSelect.value,\r\n                gen_discom: genDiscomSelect.value,\r\n                name: document.getElementById('gec-name').value,\r\n                email: document.getElementById('gec-email').value,\r\n                mobile: document.getElementById('gec-mobile').value\r\n            };\r\n\r\n            let allFilled = true;\r\n            for (const key in inputs) {\r\n                if (!inputs[key]) {\r\n                    allFilled = false;\r\n                    break;\r\n                }\r\n                formData.append(key, inputs[key]);\r\n            }\r\n            \r\n            if (!allFilled) {\r\n                alert('Please fill in all required fields.');\r\n                loadingIndicator.style.display = 'none';\r\n                return;\r\n            }\r\n            \r\n            formData.append('action', 'gec_calculate_charges');\r\n            formData.append('gec_nonce', '742e7aa3ac');\r\n            \r\n            fetch('https:\/\/build.geoa.in\/wp-admin\/admin-ajax.php', { method: 'POST', body: formData })\r\n            .then(response => response.json())\r\n            .then(data => {\r\n                loadingIndicator.style.display = 'none';\r\n                if (data.success) {\r\n                    resultsContent.style.display = 'block';\r\n                    \r\n                    const formatCurrency = (num) => `\u20b9${num.toLocaleString('en-IN', { minimumFractionDigits: 2, maximumFractionDigits: 2 })}`;\r\n                    \r\n                    \/\/ Main results\r\n                    document.getElementById('gec-captive-price').textContent = formatCurrency(data.data.captive_per_unit);\r\n                    document.getElementById('gec-non-captive-price').textContent = formatCurrency(data.data.non_captive_per_unit);\r\n                    document.getElementById('gec-annual-savings-captive').textContent = formatCurrency(data.data.annual_savings_captive);\r\n                    document.getElementById('gec-annual-savings-non-captive').textContent = formatCurrency(data.data.annual_savings_non_captive);\r\n\r\n                    \/\/ Breakup table\r\n                    document.getElementById('gec-csc-noncaptive').textContent = formatCurrency(data.data.breakup.csc_noncaptive);\r\n                    document.getElementById('gec-as-noncaptive').textContent = formatCurrency(data.data.breakup.as_noncaptive);\r\n                    \r\n                    document.getElementById('gec-wc').textContent = formatCurrency(data.data.breakup.wheeling_charges);\r\n                    document.getElementById('gec-wc-noncaptive').textContent = formatCurrency(data.data.breakup.wheeling_charges);\r\n                    \r\n                    document.getElementById('gec-tc').textContent = formatCurrency(data.data.breakup.transmission_charges);\r\n                    document.getElementById('gec-tc-noncaptive').textContent = formatCurrency(data.data.breakup.transmission_charges);\r\n                    \r\n                    document.getElementById('gec-losses').textContent = formatCurrency(data.data.breakup.losses_total_cost);\r\n                    document.getElementById('gec-losses-noncaptive').textContent = formatCurrency(data.data.breakup.losses_total_cost);\r\n\r\n                    \/\/ Totals\r\n                    document.getElementById('gec-total-captive').innerHTML = `<strong>${formatCurrency(data.data.captive_per_unit)}<\/strong>`;\r\n                    document.getElementById('gec-total-noncaptive').innerHTML = `<strong>${formatCurrency(data.data.non_captive_per_unit)}<\/strong>`;\r\n                } else {\r\n                    alert('Error: ' + data.data);\r\n                }\r\n            })\r\n            .catch(error => {\r\n                console.error('Error:', error);\r\n                loadingIndicator.style.display = 'none';\r\n                alert('An error occurred during calculation. Please try again.');\r\n            });\r\n        });\r\n    });\r\n    <\/script>\r\n    \n","protected":false},"excerpt":{"rendered":"","protected":false},"author":0,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-6","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/build.geoa.in\/wp-json\/wp\/v2\/pages\/6","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/build.geoa.in\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/build.geoa.in\/wp-json\/wp\/v2\/types\/page"}],"replies":[{"embeddable":true,"href":"https:\/\/build.geoa.in\/wp-json\/wp\/v2\/comments?post=6"}],"version-history":[{"count":0,"href":"https:\/\/build.geoa.in\/wp-json\/wp\/v2\/pages\/6\/revisions"}],"wp:attachment":[{"href":"https:\/\/build.geoa.in\/wp-json\/wp\/v2\/media?parent=6"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}