{"id":2065,"date":"2024-08-16T08:15:24","date_gmt":"2024-08-16T08:15:24","guid":{"rendered":"https:\/\/kadenbui.com\/index.php\/pricing\/"},"modified":"2025-09-27T16:34:51","modified_gmt":"2025-09-27T16:34:51","slug":"pricing","status":"publish","type":"page","link":"https:\/\/kadenbui.com\/index.php\/pricing\/","title":{"rendered":"Pricing"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2065\" class=\"elementor elementor-2065\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2080a4b e-flex e-con-boxed e-con e-parent\" data-id=\"2080a4b\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-67f3460 elementor-widget elementor-widget-html\" data-id=\"67f3460\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<!DOCTYPE html>\n<html lang=\"vi\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>T\u00ednh To\u00e1n C\u1ea7u L\u00f4ng<\/title>\n    <style>\n        body {\n            font-family: 'Arial', sans-serif;\n            background-color: #f0f0f5;\n            margin: 0;\n            padding: 20px;\n            color: #333;\n        }\n        h2 {\n            color: #342b60;\n            border-bottom: 2px solid #342b60;\n            padding-bottom: 10px;\n        }\n        .section {\n            margin-bottom: 30px;\n            padding: 20px;\n            background-color: #ffffff;\n            border-radius: 8px;\n            box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);\n        }\n        table {\n            width: 100%;\n            border-collapse: collapse;\n            margin-top: 10px;\n            border-radius: 8px;\n            overflow: hidden;\n        }\n        th, td {\n            padding: 10px;\n            text-align: center;\n        }\n        th {\n            background-color: #342b60;\n            color: white;\n        }\n        tr:nth-child(even) {\n            background-color: #f9f9f9;\n        }\n        input[type=\"text\"], input[type=\"number\"] {\n            width: calc(100% - 10px);\n            padding: 5px;\n            margin-top: 5px;\n            border: 1px solid #ccc;\n            border-radius: 4px;\n        }\n        button {\n            padding: 10px 20px;\n            background-color: #342b60;\n            color: white;\n            border: none;\n            border-radius: 5px;\n            cursor: pointer;\n            transition: background-color 0.3s;\n            margin-top: 5px;\n        }\n        button:hover {\n            background-color: #4b3a8f;\n        }\n        .result-table th, .result-table td {\n            border: 1px solid #ddd;\n            transition: background-color 0.3s;\n        }\n        .result-table tr:hover {\n            background-color: #f1f1f1;\n        }\n        .header {\n            text-align: center;\n            margin-bottom: 20px;\n        }\n        .header h1 {\n            margin: 0;\n            font-size: 24px;\n            color: #333;\n        }\n        .header p {\n            font-size: 16px;\n            color: #666;\n        }\n    <\/style>\n<\/head>\n<body>\n\n    <div class=\"header\">\n        <h1>T\u00ednh To\u00e1n C\u1ea7u L\u00f4ng<\/h1>\n        <p>Nh\u1eadp th\u00f4ng tin v\u00e0 t\u00ednh to\u00e1n k\u1ebft qu\u1ea3 c\u00e1c tr\u1eadn \u0111\u1ea5u.<\/p>\n    <\/div>\n\n    <!-- M\u1ee5c m\u1edbi: L\u01b0u & T\u1ea3i L\u1ecbch S\u1eed -->\n    <div class=\"section\">\n        <h2>L\u01b0u & T\u1ea3i L\u1ecbch S\u1eed<\/h2>\n        <input type=\"text\" id=\"historyCode\" placeholder=\"Nh\u1eadp m\u00e3 s\u1ed1 (VD: ngay-27-09)\">\n        <button onclick=\"saveHistory()\">L\u01b0u L\u1ecbch S\u1eed<\/button>\n        <select id=\"historyList\" onchange=\"loadHistory()\">\n            <option value=\"\">-- Ch\u1ecdn l\u1ecbch s\u1eed --<\/option>\n        <\/select>\n    <\/div>\n\n    <!-- M\u1ee5c 1: Nh\u1eadp Danh S\u00e1ch Th\u00e0nh Vi\u00ean -->\n    <div class=\"section\">\n        <h2>Nh\u1eadp Danh S\u00e1ch Th\u00e0nh Vi\u00ean<\/h2>\n        <table id=\"memberTable\">\n            <tr>\n                <th>S\u1ed1 Th\u1ee9 T\u1ef1<\/th>\n                <th>T\u00ean Th\u00e0nh Vi\u00ean<\/th>\n            <\/tr>\n        <\/table>\n        <br>\n        <input type=\"text\" id=\"memberName\" placeholder=\"Nh\u1eadp t\u00ean th\u00e0nh vi\u00ean\">\n        <button onclick=\"addMember()\">Th\u00eam Th\u00e0nh Vi\u00ean<\/button>\n    <\/div>\n\n    <!-- M\u1ee5c 2: Nh\u1eadp Danh S\u00e1ch Tr\u1eadn \u0110\u1ea5u -->\n    <div class=\"section\">\n        <h2>Nh\u1eadp Danh S\u00e1ch Tr\u1eadn \u0110\u1ea5u<\/h2>\n        <table id=\"matchTable\">\n            <tr>\n                <th>S\u1ed1 Tr\u1eadn<\/th>\n                <th>\u0110\u1ed9i 1<\/th>\n                <th>\u0110\u1ed9i 2<\/th>\n                <th>\u0110\u1ed9i 1 Th\u1eafng<\/th>\n                <th>Ti\u1ec1n C\u01b0\u1ee3c<\/th>\n            <\/tr>\n        <\/table>\n        <br>\n        <button onclick=\"addMatch()\">Th\u00eam Tr\u1eadn \u0110\u1ea5u<\/button>\n    <\/div>\n\n    <!-- M\u1ee5c 3: Nh\u1eadp Danh S\u00e1ch \u0110\u1ed9 Ngo\u00e0i -->\n    <div class=\"section\">\n        <h2>Nh\u1eadp Danh S\u00e1ch \u0110\u1ed9 Ngo\u00e0i<\/h2>\n        <table id=\"externalBetTable\">\n            <tr>\n                <th>S\u1ed1 Th\u1ee9 T\u1ef1<\/th>\n                <th>Th\u00e0nh Vi\u00ean 1<\/th>\n                <th>Th\u00e0nh Vi\u00ean 2<\/th>\n                <th>Th\u00e0nh Vi\u00ean 1 Th\u1eafng<\/th>\n                <th>Ti\u1ec1n \u0110\u1ed9 Ngo\u00e0i<\/th>\n            <\/tr>\n        <\/table>\n        <br>\n        <button onclick=\"addExternalBet()\">Th\u00eam \u0110\u1ed9 Ngo\u00e0i<\/button>\n    <\/div>\n\n    <!-- M\u1ee5c 4: K\u1ebft Qu\u1ea3 Tr\u1eadn \u0110\u1ea5u -->\n    <div class=\"section\">\n        <h2>K\u1ebft Qu\u1ea3 Tr\u1eadn \u0110\u1ea5u<\/h2>\n        <button onclick=\"calculateResults()\">K\u1ebft Qu\u1ea3<\/button>\n        <table id=\"resultTable\" class=\"result-table\">\n            <tr>\n                <th>S\u1ed1 Th\u1ee9 T\u1ef1<\/th>\n                <th>T\u00ean Th\u00e0nh Vi\u00ean<\/th>\n                <th>T\u1ed5ng S\u1ed1 Tr\u1eadn<\/th>\n                <th>T\u1ed5ng S\u1ed1 Th\u1eafng<\/th>\n                <th>T\u1ed5ng S\u1ed1 Thua<\/th>\n                <th>T\u1ed5ng Ti\u1ec1n C\u01b0\u1ee3c<\/th>\n                <th>T\u1ed5ng \u0110\u1ed9 Ngo\u00e0i<\/th>\n                <th>T\u1ed5ng C\u1ed9ng<\/th>\n            <\/tr>\n        <\/table>\n    <\/div>\n\n    <script>\n        let memberCount = 1;\n        let matchCount = 1;\n        let externalBetCount = 1;\n        const members = [];\n\n        function addMember() {\n            const memberName = document.getElementById('memberName').value;\n            if (memberName) {\n                const table = document.getElementById('memberTable');\n                const row = table.insertRow();\n                row.insertCell(0).textContent = memberCount;\n                row.insertCell(1).textContent = memberName;\n                members.push({ id: memberCount++, name: memberName, totalMatches: 0, wins: 0, losses: 0, totalBet: 0, externalBet: 0 });\n                document.getElementById('memberName').value = '';\n            } else {\n                alert(\"Vui l\u00f2ng nh\u1eadp t\u00ean th\u00e0nh vi\u00ean!\");\n            }\n        }\n\n        function addMatch() {\n            const table = document.getElementById('matchTable');\n            const row = table.insertRow();\n            row.insertCell(0).textContent = \"Tr\u1eadn \" + matchCount++;\n            row.insertCell(1).innerHTML = '<input type=\"number\" min=\"1\" placeholder=\"TV1\"> <input type=\"number\" min=\"1\" placeholder=\"TV2\">';\n            row.insertCell(2).innerHTML = '<input type=\"number\" min=\"1\" placeholder=\"TV1\"> <input type=\"number\" min=\"1\" placeholder=\"TV2\">';\n            row.insertCell(3).innerHTML = '<input type=\"checkbox\">';\n            row.insertCell(4).innerHTML = '<input type=\"number\" min=\"0\" placeholder=\"Ti\u1ec1n C\u01b0\u1ee3c\">';\n        }\n\n        function addExternalBet() {\n            const table = document.getElementById('externalBetTable');\n            const row = table.insertRow();\n            row.insertCell(0).textContent = externalBetCount++;\n            row.insertCell(1).innerHTML = '<input type=\"number\" min=\"1\" placeholder=\"TV1\">';\n            row.insertCell(2).innerHTML = '<input type=\"number\" min=\"1\" placeholder=\"TV2\">';\n            row.insertCell(3).innerHTML = '<input type=\"checkbox\">';\n            row.insertCell(4).innerHTML = '<input type=\"number\" min=\"0\" placeholder=\"Ti\u1ec1n \u0110\u1ed9 Ngo\u00e0i\">';\n        }\n\n        function formatMoney(num) {\n            return num.toLocaleString('vi-VN');\n        }\n\n        function calculateResults() {\n            members.forEach(member => {\n                member.totalMatches = 0;\n                member.wins = 0;\n                member.losses = 0;\n                member.totalBet = 0;\n                member.externalBet = 0;\n            });\n\n            const matchRows = document.querySelectorAll('#matchTable tr');\n            matchRows.forEach((row, index) => {\n                if (index === 0) return;\n                const team1Player1 = parseInt(row.cells[1].children[0].value);\n                const team1Player2 = parseInt(row.cells[1].children[1].value);\n                const team2Player1 = parseInt(row.cells[2].children[0].value);\n                const team2Player2 = parseInt(row.cells[2].children[1].value);\n                if (!team1Player1 || !team1Player2 || !team2Player1 || !team2Player2) return;\n                const isTeam1Win = row.cells[3].children[0].checked;\n                const betAmount = parseFloat(row.cells[4].children[0].value) || 0;\n\n                const team1 = [team1Player1, team1Player2];\n                const team2 = [team2Player1, team2Player2];\n                team1.concat(team2).forEach(id => {\n                    const member = members.find(m => m.id === id);\n                    if (member) member.totalMatches += 1;\n                });\n\n                if (isTeam1Win) {\n                    team1.forEach(id => {\n                        const member = members.find(m => m.id === id);\n                        if (member) {\n                            member.wins += 1;\n                            member.totalBet += betAmount;\n                        }\n                    });\n                    team2.forEach(id => {\n                        const member = members.find(m => m.id === id);\n                        if (member) {\n                            member.losses += 1;\n                            member.totalBet -= betAmount;\n                        }\n                    });\n                } else {\n                    team2.forEach(id => {\n                        const member = members.find(m => m.id === id);\n                        if (member) {\n                            member.wins += 1;\n                            member.totalBet += betAmount;\n                        }\n                    });\n                    team1.forEach(id => {\n                        const member = members.find(m => m.id === id);\n                        if (member) {\n                            member.losses += 1;\n                            member.totalBet -= betAmount;\n                        }\n                    });\n                }\n            });\n\n            const externalBetRows = document.querySelectorAll('#externalBetTable tr');\n            externalBetRows.forEach((row, index) => {\n                if (index === 0) return;\n                const player1 = parseInt(row.cells[1].children[0].value);\n                const player2 = parseInt(row.cells[2].children[0].value);\n                if (!player1 || !player2) return;\n                const isPlayer1Win = row.cells[3].children[0].checked;\n                const externalBetAmount = parseFloat(row.cells[4].children[0].value) || 0;\n\n                const member1 = members.find(m => m.id === player1);\n                const member2 = members.find(m => m.id === player2);\n\n                if (member1 && member2) {\n                    if (isPlayer1Win) {\n                        member1.externalBet += externalBetAmount;\n                        member2.externalBet -= externalBetAmount;\n                    } else {\n                        member1.externalBet -= externalBetAmount;\n                        member2.externalBet += externalBetAmount;\n                    }\n                }\n            });\n\n            const resultTable = document.getElementById('resultTable');\n            resultTable.innerHTML = `\n                <tr>\n                    <th>S\u1ed1 Th\u1ee9 T\u1ef1<\/th>\n                    <th>T\u00ean Th\u00e0nh Vi\u00ean<\/th>\n                    <th>T\u1ed5ng S\u1ed1 Tr\u1eadn<\/th>\n                    <th>T\u1ed5ng S\u1ed1 Th\u1eafng<\/th>\n                    <th>T\u1ed5ng S\u1ed1 Thua<\/th>\n                    <th>T\u1ed5ng Ti\u1ec1n C\u01b0\u1ee3c<\/th>\n                    <th>T\u1ed5ng \u0110\u1ed9 Ngo\u00e0i<\/th>\n                    <th>T\u1ed5ng C\u1ed9ng<\/th>\n                <\/tr>`;\n            members.forEach(member => {\n                const row = resultTable.insertRow();\n                row.insertCell(0).textContent = member.id;\n                row.insertCell(1).textContent = member.name;\n                row.insertCell(2).textContent = member.totalMatches;\n                row.insertCell(3).textContent = member.wins;\n                row.insertCell(4).textContent = member.losses;\n                row.insertCell(5).innerHTML = member.totalBet >= 0 ? formatMoney(member.totalBet) : `<span style=\"color:red\">${formatMoney(member.totalBet)}<\/span>`;\n                row.insertCell(6).innerHTML = member.externalBet >= 0 ? formatMoney(member.externalBet) : `<span style=\"color:red\">${formatMoney(member.externalBet)}<\/span>`;\n                const total = member.totalBet + member.externalBet;\n                row.insertCell(7).innerHTML = total >= 0 ? formatMoney(total) : `<span style=\"color:red\">${formatMoney(total)}<\/span>`;\n            });\n        }\n\n        function saveHistory() {\n            const code = document.getElementById('historyCode').value.trim();\n            if (!code) {\n                alert(\"Vui l\u00f2ng nh\u1eadp m\u00e3 s\u1ed1!\");\n                return;\n            }\n            const data = {\n                members,\n                matches: Array.from(document.querySelectorAll('#matchTable tr')).map((row, i) => {\n                    if (i === 0) return null;\n                    return {\n                        team1: [row.cells[1].children[0].value, row.cells[1].children[1].value],\n                        team2: [row.cells[2].children[0].value, row.cells[2].children[1].value],\n                        winTeam1: row.cells[3].children[0].checked,\n                        bet: row.cells[4].children[0].value\n                    };\n                }).filter(Boolean),\n                externalBets: Array.from(document.querySelectorAll('#externalBetTable tr')).map((row, i) => {\n                    if (i === 0) return null;\n                    return {\n                        player1: row.cells[1].children[0].value,\n                        player2: row.cells[2].children[0].value,\n                        winPlayer1: row.cells[3].children[0].checked,\n                        bet: row.cells[4].children[0].value\n                    };\n                }).filter(Boolean)\n            };\n            localStorage.setItem(\"history_\" + code, JSON.stringify(data));\n            updateHistoryList();\n            alert(\"\u0110\u00e3 l\u01b0u l\u1ecbch s\u1eed v\u1edbi m\u00e3: \" + code);\n        }\n\n        function updateHistoryList() {\n            const select = document.getElementById('historyList');\n            select.innerHTML = '<option value=\"\">-- Ch\u1ecdn l\u1ecbch s\u1eed --<\/option>';\n            Object.keys(localStorage).forEach(key => {\n                if (key.startsWith(\"history_\")) {\n                    const code = key.replace(\"history_\", \"\");\n                    const option = document.createElement(\"option\");\n                    option.value = code;\n                    option.textContent = code;\n                    select.appendChild(option);\n                }\n            });\n        }\n\n        function loadHistory() {\n            const code = document.getElementById('historyList').value;\n            if (!code) return;\n            const data = JSON.parse(localStorage.getItem(\"history_\" + code));\n            if (!data) return;\n\n            document.getElementById('memberTable').innerHTML = `\n                <tr><th>S\u1ed1 Th\u1ee9 T\u1ef1<\/th><th>T\u00ean Th\u00e0nh Vi\u00ean<\/th><\/tr>`;\n            document.getElementById('matchTable').innerHTML = `\n                <tr><th>S\u1ed1 Tr\u1eadn<\/th><th>\u0110\u1ed9i 1<\/th><th>\u0110\u1ed9i 2<\/th><th>\u0110\u1ed9i 1 Th\u1eafng<\/th><th>Ti\u1ec1n C\u01b0\u1ee3c<\/th><\/tr>`;\n            document.getElementById('externalBetTable').innerHTML = `\n                <tr><th>S\u1ed1 Th\u1ee9 T\u1ef1<\/th><th>Th\u00e0nh Vi\u00ean 1<\/th><th>Th\u00e0nh Vi\u00ean 2<\/th><th>Th\u00e0nh Vi\u00ean 1 Th\u1eafng<\/th><th>Ti\u1ec1n \u0110\u1ed9 Ngo\u00e0i<\/th><\/tr>`;\n\n            members.length = 0;\n            memberCount = 1;\n            data.members.forEach(m => {\n                const row = document.getElementById('memberTable').insertRow();\n                row.insertCell(0).textContent = m.id;\n                row.insertCell(1).textContent = m.name;\n                members.push(m);\n                memberCount = Math.max(memberCount, m.id + 1);\n            });\n\n            matchCount = 1;\n            data.matches.forEach(m => {\n                const row = document.getElementById('matchTable').insertRow();\n                row.insertCell(0).textContent = \"Tr\u1eadn \" + matchCount++;\n                row.insertCell(1).innerHTML = `<input type=\"number\" value=\"${m.team1[0]}\"> <input type=\"number\" value=\"${m.team1[1]}\">`;\n                row.insertCell(2).innerHTML = `<input type=\"number\" value=\"${m.team2[0]}\"> <input type=\"number\" value=\"${m.team2[1]}\">`;\n                row.insertCell(3).innerHTML = `<input type=\"checkbox\" ${m.winTeam1 ? \"checked\" : \"\"}>`;\n                row.insertCell(4).innerHTML = `<input type=\"number\" value=\"${m.bet}\">`;\n            });\n\n            externalBetCount = 1;\n            data.externalBets.forEach(b => {\n                const row = document.getElementById('externalBetTable').insertRow();\n                row.insertCell(0).textContent = externalBetCount++;\n                row.insertCell(1).innerHTML = `<input type=\"number\" value=\"${b.player1}\">`;\n                row.insertCell(2).innerHTML = `<input type=\"number\" value=\"${b.player2}\">`;\n                row.insertCell(3).innerHTML = `<input type=\"checkbox\" ${b.winPlayer1 ? \"checked\" : \"\"}>`;\n                row.insertCell(4).innerHTML = `<input type=\"number\" value=\"${b.bet}\">`;\n            });\n\n            alert(\"\u0110\u00e3 t\u1ea3i d\u1eef li\u1ec7u t\u1eeb m\u00e3: \" + code);\n        }\n\n        window.onload = updateHistoryList;\n    <\/script>\n\n<\/body>\n<\/html>\n\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>T\u00ednh To\u00e1n C\u1ea7u L\u00f4ng T\u00ednh To\u00e1n C\u1ea7u L\u00f4ng Nh\u1eadp th\u00f4ng tin v\u00e0 t\u00ednh to\u00e1n k\u1ebft qu\u1ea3 c\u00e1c tr\u1eadn \u0111\u1ea5u. L\u01b0u &#038; T\u1ea3i L\u1ecbch S\u1eed L\u01b0u L\u1ecbch S\u1eed -- Ch\u1ecdn l\u1ecbch s\u1eed -- Nh\u1eadp Danh S\u00e1ch Th\u00e0nh Vi\u00ean S\u1ed1 Th\u1ee9 T\u1ef1 T\u00ean Th\u00e0nh Vi\u00ean Th\u00eam Th\u00e0nh Vi\u00ean Nh\u1eadp Danh S\u00e1ch Tr\u1eadn \u0110\u1ea5u S\u1ed1 Tr\u1eadn \u0110\u1ed9i 1 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"postBodyMargin":[],"postBodyPadding":[],"postBodyBackground":{"backgroundType":"classic","gradient":""},"footnotes":""},"class_list":["post-2065","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/kadenbui.com\/index.php\/wp-json\/wp\/v2\/pages\/2065","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kadenbui.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/kadenbui.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/kadenbui.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kadenbui.com\/index.php\/wp-json\/wp\/v2\/comments?post=2065"}],"version-history":[{"count":52,"href":"https:\/\/kadenbui.com\/index.php\/wp-json\/wp\/v2\/pages\/2065\/revisions"}],"predecessor-version":[{"id":2361,"href":"https:\/\/kadenbui.com\/index.php\/wp-json\/wp\/v2\/pages\/2065\/revisions\/2361"}],"wp:attachment":[{"href":"https:\/\/kadenbui.com\/index.php\/wp-json\/wp\/v2\/media?parent=2065"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}