{"id":12810,"date":"2025-03-13T10:12:49","date_gmt":"2025-03-13T10:12:49","guid":{"rendered":"https:\/\/vbapartners.com\/?page_id=12810"},"modified":"2026-02-17T07:02:15","modified_gmt":"2026-02-17T07:02:15","slug":"accounting-and-corporate-compliance-calendar","status":"publish","type":"page","link":"https:\/\/vbapartners.com\/fr\/accounting-and-corporate-compliance-calendar\/","title":{"rendered":"Accounting and Corporate Compliance Calendar"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"12810\" class=\"elementor elementor-12810\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-15f3ce6 e-con-full e-flex e-con e-parent\" data-id=\"15f3ce6\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-363ad8b elementor-widget elementor-widget-html\" data-id=\"363ad8b\" 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=\"en\">\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>Thailand Accounting and Corporate Compliance Calendar 2025<\/title>\r\n    <style>\r\n        :root {\r\n            --primary-color: #00a489;\r\n            --dark-blue: #0f3f61;\r\n            --light-gray: #f5f5f5;\r\n            --border-color: #ddd;\r\n            --text-color: #333;\r\n            \r\n            \/* Filing type colors *\/\r\n            --withholding-manual: #f0ad4e;\r\n            --withholding-e: #f0ad4e;\r\n            --vat-36-manual: #00a489;\r\n            --vat-36-e: #00a489;\r\n            --vat-30-manual: #0f3f61;\r\n            --vat-30-e: #0f3f61;\r\n            --business-tax-manual: #8e44ad;\r\n            --business-tax-e: #8e44ad;\r\n            --social-security: #777;\r\n            --withholding-wages: #f39c12;\r\n            --personal-income-manual: #e74c3c;\r\n            --personal-income-e: #e74c3c;\r\n            --corporate-income-manual: #2ecc71;\r\n            --corporate-income-e: #2ecc71;\r\n            --half-year-manual: #3498db;\r\n            --half-year-e: #3498db;\r\n            --workman-comp: #34495e;\r\n            --personal-income-half: #c0392b;\r\n            --shareholders: #7f8c8d;\r\n            --holiday: #f8a4c4;\r\n        }\r\n\r\n        * {\r\n            box-sizing: border-box;\r\n            margin: 0;\r\n            padding: 0;\r\n            font-family: Arial, sans-serif;\r\n        }\r\n\r\n    \r\n\r\n        .container {\r\n            max-width: 1200px;\r\n            margin: 0 auto;\r\n        }\r\n\r\n        .header {\r\n            display: flex;\r\n            justify-content: space-between;\r\n            align-items: center;\r\n            margin-bottom: 30px;\r\n            flex-wrap: wrap;\r\n        }\r\n\r\n        .header-title {\r\n            flex: 1;\r\n        }\r\n\r\n        .header h1 {\r\n            color: var(--dark-blue);\r\n            margin-bottom: 0;\r\n            font-size: 2rem;\r\n        }\r\n\r\n        .header h2 {\r\n            color: var(--primary-color);\r\n            font-size: 3.5rem;\r\n            font-weight: bold;\r\n            margin-top: 0;\r\n        }\r\n\r\n        .section-title {\r\n            color: var(--dark-blue);\r\n            margin: 30px 0 15px;\r\n            font-size: 1.5rem;\r\n        }\r\n\r\n        \/* Month navigation *\/\r\n        .month-navigation {\r\n            display: flex;\r\n            justify-content: space-between;\r\n            align-items: center;\r\n            margin-bottom: 15px;\r\n            background-color: var(--primary-color);\r\n            padding: 10px 20px;\r\n            border-radius: 5px;\r\n            color: white;\r\n        }\r\n\r\n        .month-title {\r\n            font-size: 1.5rem;\r\n            font-weight: bold;\r\n            text-align: center;\r\n            flex-grow: 1;\r\n        }\r\n\r\n        .month-btn {\r\n            background: none;\r\n            border: none;\r\n            color: white;\r\n            cursor: pointer;\r\n            font-size: 1.2rem;\r\n            padding: 5px 10px;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            transition: transform 0.2s;\r\n        }\r\n\r\n        .month-btn:hover {\r\n            transform: scale(1.2);\r\n        }\r\n\r\n        .desktop-dropdown {\r\n            margin-left: 10px;\r\n        }\r\n\r\n        .month-dropdown {\r\n            padding: 8px;\r\n            border-radius: 4px;\r\n            border: 1px solid var(--border-color);\r\n            background-color: white;\r\n            cursor: pointer;\r\n        }\r\n\r\n        \/* Calendar styles *\/\r\n        .calendar-wrapper {\r\n            border: 1px solid var(--border-color);\r\n            border-radius: 5px;\r\n            overflow: hidden;\r\n            box-shadow: 0 2px 8px rgba(0,0,0,0.1);\r\n            margin-bottom: 20px;\r\n        }\r\n\r\n        .days-header {\r\n            display: grid;\r\n            grid-template-columns: repeat(7, 1fr);\r\n            background-color: var(--dark-blue);\r\n            color: white;\r\n            text-align: center;\r\n            padding: 10px 0;\r\n        }\r\n\r\n        .day-header {\r\n            text-align: center;\r\n            font-weight: bold;\r\n        }\r\n\r\n        .calendar-grid {\r\n            display: grid;\r\n            grid-template-columns: repeat(7, 1fr);\r\n            background-color: white;\r\n            grid-gap: 1px;\r\n            background-color: var(--border-color);\r\n        }\r\n\r\n        .calendar-day {\r\n            background-color: white;\r\n            min-height: 80px;\r\n            padding: 5px;\r\n            position: relative;\r\n        }\r\n\r\n        .calendar-day.empty {\r\n            background-color: var(--light-gray);\r\n        }\r\n\r\n        .day-number {\r\n            position: absolute;\r\n            top: 5px;\r\n            left: 5px;\r\n            font-size: 0.9rem;\r\n            color: #777;\r\n        }\r\n\r\n        .event-container {\r\n            margin-top: 25px;\r\n            display: flex;\r\n            flex-direction: column;\r\n            gap: 5px;\r\n        }\r\n\r\n        .event {\r\n            width: 100%;\r\n            border-radius: 4px;\r\n            padding: 4px;\r\n            font-size: 0.8rem;\r\n            color: white;\r\n            cursor: pointer;\r\n            text-align: center;\r\n            position: relative;\r\n            font-weight: bold;\r\n            transition: transform 0.1s ease, box-shadow 0.1s ease;\r\n        }\r\n\r\n        .event:hover {\r\n            transform: scale(1.05);\r\n            box-shadow: 0 2px 4px rgba(0,0,0,0.2);\r\n        }\r\n\r\n        .holiday {\r\n            background-color: var(--holiday);\r\n        }\r\n\r\n        \/* Touch swipe functionality for mobile *\/\r\n        .swipe-overlay {\r\n            position: absolute;\r\n            top: 0;\r\n            left: 0;\r\n            right: 0;\r\n            bottom: 0;\r\n            z-index: 5;\r\n            display: none;\r\n        }\r\n\r\n        \/* Legend styles *\/\r\n        .legend-container {\r\n            margin-top: 30px;\r\n            background-color: var(--light-gray);\r\n            padding: 35px;\r\n            border-radius: 5px;\r\n        }\r\n\r\n        .legend-tabs {\r\n            display: flex;\r\n            margin-bottom: 40px;\r\n            border-bottom: 1px solid var(--border-color);\r\n        }\r\n\r\n        .legend-tab {\r\n            padding: 8px 15px;\r\n            cursor: pointer;\r\n            border-radius: 5px 5px 0 0;\r\n            margin-right: 5px;\r\n        }\r\n\r\n        .legend-tab.active {\r\n            background-color: var(--primary-color);\r\n            color: white;\r\n        }\r\n\r\n        .legend-content {\r\n            display: none;\r\n        }\r\n\r\n        .legend-content.active {\r\n            display: block;\r\n        }\r\n\r\n        .legend-grid {\r\n            display: grid;\r\n            grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));\r\n            gap: 40px;\r\n        }\r\n\r\n        .legend-item {\r\n            display: flex;\r\n            align-items: center;\r\n            gap: 5px;\r\n        }\r\n\r\n        .legend-color {\r\n            width: 15px;\r\n            height: 15px;\r\n            border-radius: 3px;\r\n        }\r\n\r\n        \/* Compliance info *\/\r\n        .compliance-info {\r\n            margin-top: 20px;\r\n            background-color: var(--light-gray);\r\n            padding: 35px;\r\n            border-radius: 5px;\r\n        }\r\n\r\n        .compliance-item {\r\n            margin-bottom: 40px;\r\n        }\r\n\r\n        .compliance-title {\r\n            color: var(--dark-blue);\r\n            font-weight: bold;\r\n            margin-bottom: 5px;\r\n            display: flex;\r\n            align-items: center;\r\n        }\r\n\r\n        .compliance-icon {\r\n            width: 20px;\r\n            height: 20px;\r\n            margin-right: 10px;\r\n            display: inline-flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            border: 1px solid var(--primary-color);\r\n            color: var(--primary-color);\r\n            border-radius: 50%;\r\n            font-size: 0.8rem;\r\n        }\r\n\r\n        \/* Lightbox styles *\/\r\n        .modal-overlay {\r\n            position: fixed;\r\n            top: 0;\r\n            left: 0;\r\n            right: 0;\r\n            bottom: 0;\r\n            background-color: rgba(0, 0, 0, 0.7);\r\n            z-index: 100;\r\n            display: flex;\r\n            justify-content: center;\r\n            align-items: center;\r\n            opacity: 0;\r\n            visibility: hidden;\r\n            transition: opacity 0.3s ease, visibility 0.3s ease;\r\n        }\r\n        \r\n        .modal-overlay.active {\r\n            opacity: 1;\r\n            visibility: visible;\r\n        }\r\n        \r\n        .modal-content {\r\n            background-color: white;\r\n            padding: 25px;\r\n            border-radius: 8px;\r\n            max-width: 90%;\r\n            width: 400px;\r\n            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);\r\n            position: relative;\r\n            transform: translateY(-20px);\r\n            opacity: 0;\r\n            transition: transform 0.3s ease, opacity 0.3s ease;\r\n        }\r\n        \r\n        .modal-overlay.active .modal-content {\r\n            transform: translateY(0);\r\n            opacity: 1;\r\n        }\r\n        \r\n        .modal-close {\r\n            position: absolute;\r\n            top: 10px;\r\n            right: 15px;\r\n            font-size: 24px;\r\n            cursor: pointer;\r\n            color: #777;\r\n            transition: color 0.2s;\r\n        }\r\n        \r\n        .modal-close:hover {\r\n            color: #333;\r\n        }\r\n        \r\n        .modal-title {\r\n            font-size: 1.2rem;\r\n            font-weight: bold;\r\n            margin-bottom: 15px;\r\n            color: var(--dark-blue);\r\n            padding-bottom: 10px;\r\n            border-bottom: 1px solid var(--border-color);\r\n        }\r\n        \r\n        .modal-body {\r\n            margin-bottom: 20px;\r\n        }\r\n        \r\n        .modal-date {\r\n            font-weight: bold;\r\n            margin-bottom: 5px;\r\n        }\r\n        \r\n        .modal-event {\r\n            display: flex;\r\n            align-items: center;\r\n            margin-bottom: 8px;\r\n            padding: 8px;\r\n            border-radius: 4px;\r\n            background-color: var(--light-gray);\r\n        }\r\n        \r\n        .modal-event-color {\r\n            width: 15px;\r\n            height: 15px;\r\n            border-radius: 3px;\r\n            margin-right: 10px;\r\n        }\r\n\r\n        \/* Responsive styles *\/\r\n        @media (max-width: 768px) {\r\n            .header {\r\n                flex-direction: column;\r\n                align-items: flex-start;\r\n            }\r\n\r\n            .desktop-dropdown {\r\n                display: none;\r\n            }\r\n\r\n            .calendar-day {\r\n                min-height: 60px;\r\n            }\r\n\r\n            .legend-grid {\r\n                grid-template-columns: 1fr;\r\n            }\r\n            \r\n            .header h1 {\r\n                font-size: 1.5rem;\r\n            }\r\n            \r\n            .header h2 {\r\n                font-size: 2.5rem;\r\n            }\r\n        }\r\n    <\/style>\r\n<\/head>\r\n<body>\r\n    <div class=\"container\">\r\n        <div class=\"header\">\r\n            <div class=\"header-title\">\r\n                <h1>Thailand Accounting and Corporate Compliance Calendar<\/h1>\r\n                <h2>2025<\/h2>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <h3 class=\"section-title\">Monthly Requirements<\/h3>\r\n        \r\n        <div class=\"month-navigation\">\r\n            <button class=\"month-btn\" id=\"prev-month\">&#10094;<\/button>\r\n            <div class=\"month-title\" id=\"current-month\">JANUARY 2025<\/div>\r\n            <div class=\"desktop-dropdown\">\r\n                <select id=\"month-dropdown\" class=\"month-dropdown\">\r\n                    <option value=\"0\">January<\/option>\r\n                    <option value=\"1\">February<\/option>\r\n                    <option value=\"2\">March<\/option>\r\n                    <option value=\"3\">April<\/option>\r\n                    <option value=\"4\">May<\/option>\r\n                    <option value=\"5\">June<\/option>\r\n                    <option value=\"6\">July<\/option>\r\n                    <option value=\"7\">August<\/option>\r\n                    <option value=\"8\">September<\/option>\r\n                    <option value=\"9\">October<\/option>\r\n                    <option value=\"10\">November<\/option>\r\n                    <option value=\"11\">December<\/option>\r\n                <\/select>\r\n            <\/div>\r\n            <button class=\"month-btn\" id=\"next-month\">&#10095;<\/button>\r\n        <\/div>\r\n\r\n        <div class=\"calendar-wrapper\">\r\n            <div class=\"swipe-overlay\" id=\"swipe-overlay\"><\/div>\r\n            <div class=\"days-header\">\r\n                <div class=\"day-header\">Sun<\/div>\r\n                <div class=\"day-header\">Mon<\/div>\r\n                <div class=\"day-header\">Tue<\/div>\r\n                <div class=\"day-header\">Wed<\/div>\r\n                <div class=\"day-header\">Thu<\/div>\r\n                <div class=\"day-header\">Fri<\/div>\r\n                <div class=\"day-header\">Sat<\/div>\r\n            <\/div>\r\n            <div class=\"calendar-grid\" id=\"calendar-grid\">\r\n                <!-- Calendar days will be generated by JavaScript -->\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"legend-container\">\r\n            <div class=\"legend-tabs\">\r\n                <div class=\"legend-tab active\" data-tab=\"monthly\">Monthly Requirements<\/div>\r\n                <div class=\"legend-tab\" data-tab=\"annual\">Annual Tax Filing Requirements<\/div>\r\n            <\/div>\r\n            \r\n            <div class=\"legend-content active\" id=\"monthly-legend\">\r\n                <div class=\"legend-grid\">\r\n                    <div class=\"legend-item\">\r\n                        <div class=\"legend-color\" style=\"background-color: var(--withholding-manual);\"><\/div>\r\n                        <div>Withholding Tax (Manual Filing)<\/div>\r\n                    <\/div>\r\n                    <div class=\"legend-item\">\r\n                        <div class=\"legend-color\" style=\"background-color: var(--withholding-e);\"><\/div>\r\n                        <div>Withholding Tax (E-filing)<\/div>\r\n                    <\/div>\r\n                    <div class=\"legend-item\">\r\n                        <div class=\"legend-color\" style=\"background-color: var(--vat-36-manual);\"><\/div>\r\n                        <div>VAT PP 36 (Overseas): Manual Filing<\/div>\r\n                    <\/div>\r\n                    <div class=\"legend-item\">\r\n                        <div class=\"legend-color\" style=\"background-color: var(--vat-36-e);\"><\/div>\r\n                        <div>VAT PP 36 (Overseas): E-Filing<\/div>\r\n                    <\/div>\r\n                    <div class=\"legend-item\">\r\n                        <div class=\"legend-color\" style=\"background-color: var(--vat-30-manual);\"><\/div>\r\n                        <div>VAT PP 30 (Domestic): Manual Filing<\/div>\r\n                    <\/div>\r\n                    <div class=\"legend-item\">\r\n                        <div class=\"legend-color\" style=\"background-color: var(--vat-30-e);\"><\/div>\r\n                        <div>VAT PP 30 (Domestic): E-Filing<\/div>\r\n                    <\/div>\r\n                    <div class=\"legend-item\">\r\n                        <div class=\"legend-color\" style=\"background-color: var(--business-tax-manual);\"><\/div>\r\n                        <div>Specific Business Tax (PT 40) - Manual<\/div>\r\n                    <\/div>\r\n                    <div class=\"legend-item\">\r\n                        <div class=\"legend-color\" style=\"background-color: var(--business-tax-e);\"><\/div>\r\n                        <div>Specific Business Tax (PT 40) - E-Filing<\/div>\r\n                    <\/div>\r\n                    <div class=\"legend-item\">\r\n                        <div class=\"legend-color\" style=\"background-color: var(--social-security);\"><\/div>\r\n                        <div>Social Security Contributions<\/div>\r\n                    <\/div>\r\n                    <div class=\"legend-item\">\r\n                        <div class=\"legend-color\" style=\"background-color: var(--holiday);\"><\/div>\r\n                        <div>Public Holiday<\/div>\r\n                    <\/div>\r\n                <\/div>\r\n            <\/div>\r\n            \r\n            <div class=\"legend-content\" id=\"annual-legend\">\r\n                <div class=\"legend-grid\">\r\n                    <div class=\"legend-item\">\r\n                        <div class=\"legend-color\" style=\"background-color: var(--withholding-wages);\"><\/div>\r\n                        <div>Withholding Tax Return for Wages (PND 1 Kor)<\/div>\r\n                    <\/div>\r\n                    <div class=\"legend-item\">\r\n                        <div class=\"legend-color\" style=\"background-color: var(--personal-income-manual);\"><\/div>\r\n                        <div>Personal Income Tax (PND 91\/90) - Manual<\/div>\r\n                    <\/div>\r\n                    <div class=\"legend-item\">\r\n                        <div class=\"legend-color\" style=\"background-color: var(--personal-income-e);\"><\/div>\r\n                        <div>Personal Income Tax (PND 91\/90) - E-Filing<\/div>\r\n                    <\/div>\r\n                    <div class=\"legend-item\">\r\n                        <div class=\"legend-color\" style=\"background-color: var(--corporate-income-manual);\"><\/div>\r\n                        <div>Corporate Income Tax (PND 50) - Manual<\/div>\r\n                    <\/div>\r\n                    <div class=\"legend-item\">\r\n                        <div class=\"legend-color\" style=\"background-color: var(--corporate-income-e);\"><\/div>\r\n                        <div>Corporate Income Tax (PND 50) - E-Filing<\/div>\r\n                    <\/div>\r\n                    <div class=\"legend-item\">\r\n                        <div class=\"legend-color\" style=\"background-color: var(--half-year-manual);\"><\/div>\r\n                        <div>Half-Year Corporate Tax (PND 51) - Manual<\/div>\r\n                    <\/div>\r\n                    <div class=\"legend-item\">\r\n                        <div class=\"legend-color\" style=\"background-color: var(--half-year-e);\"><\/div>\r\n                        <div>Half-Year Corporate Tax (PND 51) - E-Filing<\/div>\r\n                    <\/div>\r\n                    <div class=\"legend-item\">\r\n                        <div class=\"legend-color\" style=\"background-color: var(--workman-comp);\"><\/div>\r\n                        <div>Annual Workman Compensation Filing<\/div>\r\n                    <\/div>\r\n                    <div class=\"legend-item\">\r\n                        <div class=\"legend-color\" style=\"background-color: var(--personal-income-half);\"><\/div>\r\n                        <div>Personal\/Half Year Tax Return (PND 94)<\/div>\r\n                    <\/div>\r\n                    <div class=\"legend-item\">\r\n                        <div class=\"legend-color\" style=\"background-color: var(--shareholders);\"><\/div>\r\n                        <div>Updated Shareholders List (Bor Jor 5)<\/div>\r\n                    <\/div>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <h3 class=\"section-title\">Annual Corporate Compliance (Fiscal Year Ending December 31st)<\/h3>\r\n        <div class=\"compliance-info\">\r\n            <div class=\"compliance-item\">\r\n                <div class=\"compliance-title\">\r\n                    <div class=\"compliance-icon\">\u25c7<\/div>\r\n                    Financial Statements:\r\n                <\/div>\r\n                <p>Companies must prepare a balance sheet, P&L statement, equity changes, and cash flow statement. To be submitted at the Ministry of Commerce within 150 days of the fiscal year end (by May 31st).<\/p>\r\n            <\/div>\r\n            <div class=\"compliance-item\">\r\n                <div class=\"compliance-title\">\r\n                    <div class=\"compliance-icon\">\u25c7<\/div>\r\n                    Audit:\r\n                <\/div>\r\n                <p>An independent auditor must audit the financial statements to verify the accuracy of the financial statements and ensure compliance.<\/p>\r\n            <\/div>\r\n            <div class=\"compliance-item\">\r\n                <div class=\"compliance-title\">\r\n                    <div class=\"compliance-icon\">\u25c7<\/div>\r\n                    AGM:\r\n                <\/div>\r\n                <p>Held within 4 months of fiscal year-end (by April 30th) to approve the audited statements.<\/p>\r\n            <\/div>\r\n            <div class=\"compliance-item\">\r\n                <div class=\"compliance-title\">\r\n                    <div class=\"compliance-icon\">\u25c7<\/div>\r\n                    Final Filing:\r\n                <\/div>\r\n                <p>Approved statements must be filed at the Ministry of Commerce within 1 month of the AGM (by May 31st).<\/p>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <!-- Modal Lightbox -->\r\n    <div class=\"modal-overlay\" id=\"event-modal\">\r\n        <div class=\"modal-content\">\r\n            <div class=\"modal-close\" id=\"modal-close\">&times;<\/div>\r\n            <div class=\"modal-title\" id=\"modal-title\">Event Details<\/div>\r\n            <div class=\"modal-body\" id=\"modal-body\">\r\n                <div class=\"modal-date\" id=\"modal-date\">January 7, 2025<\/div>\r\n                <div id=\"modal-events\">\r\n                    <!-- Event details will be populated here -->\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <script>\r\n        document.addEventListener('DOMContentLoaded', function() {\r\n            \/\/ Calendar data\r\n            const calendarData = {\r\n                \/\/ Filing dates for each month\r\n                filingDates: [\r\n                    \/\/ January\r\n                    [\r\n                        { day: 7, color: 'var(--withholding-manual)', text: 'WHT', tooltip: 'Withholding Tax (Manual Filing)' },\r\n                        { day: 15, color: 'var(--vat-36-manual)', text: 'VAT36', tooltip: 'VAT PP 36 (Overseas Payments): Manual Filing' },\r\n                        { day: 23, color: 'var(--vat-30-manual)', text: 'VAT30', tooltip: 'VAT PP 30 (Domestic Payments): Manual Filing' },\r\n                        { day: 31, color: 'var(--business-tax-e)', text: 'PT40', tooltip: 'Specific Business Tax Return (PT 40) - E-Filing' }\r\n                    ],\r\n                    \/\/ August\r\n                    [\r\n                        { day: 7, color: 'var(--withholding-manual)', text: 'WHT', tooltip: 'Withholding Tax (Manual Filing)' },\r\n                        { day: 15, color: 'var(--vat-36-manual)', text: 'VAT36', tooltip: 'VAT PP 36 (Overseas Payments): Manual Filing' },\r\n                        { day: 23, color: 'var(--vat-30-manual)', text: 'VAT30', tooltip: 'VAT PP 30 (Domestic Payments): Manual Filing' },\r\n                        { day: 31, color: 'var(--business-tax-e)', text: 'PT40', tooltip: 'Specific Business Tax Return (PT 40) - E-Filing' },\r\n                        { day: 31, color: 'var(--half-year-e)', text: 'PND51', tooltip: 'Half-Year Corporate Income Tax Return (PND 51) - E-Filing' }\r\n                    ],\r\n                    \/\/ September\r\n                    [\r\n                        { day: 7, color: 'var(--withholding-manual)', text: 'WHT', tooltip: 'Withholding Tax (Manual Filing)' },\r\n                        { day: 15, color: 'var(--vat-36-manual)', text: 'VAT36', tooltip: 'VAT PP 36 (Overseas Payments): Manual Filing' },\r\n                        { day: 23, color: 'var(--vat-30-manual)', text: 'VAT30', tooltip: 'VAT PP 30 (Domestic Payments): Manual Filing' },\r\n                        { day: 30, color: 'var(--business-tax-e)', text: 'PT40', tooltip: 'Specific Business Tax Return (PT 40) - E-Filing' }\r\n                    ],\r\n                    \/\/ October\r\n                    [\r\n                        { day: 7, color: 'var(--withholding-manual)', text: 'WHT', tooltip: 'Withholding Tax (Manual Filing)' },\r\n                        { day: 15, color: 'var(--vat-36-manual)', text: 'VAT36', tooltip: 'VAT PP 36 (Overseas Payments): Manual Filing' },\r\n                        { day: 23, color: 'var(--vat-30-manual)', text: 'VAT30', tooltip: 'VAT PP 30 (Domestic Payments): Manual Filing' },\r\n                        { day: 31, color: 'var(--business-tax-e)', text: 'PT40', tooltip: 'Specific Business Tax Return (PT 40) - E-Filing' }\r\n                    ],\r\n                    \/\/ November\r\n                    [\r\n                        { day: 7, color: 'var(--withholding-manual)', text: 'WHT', tooltip: 'Withholding Tax (Manual Filing)' },\r\n                        { day: 15, color: 'var(--vat-36-manual)', text: 'VAT36', tooltip: 'VAT PP 36 (Overseas Payments): Manual Filing' },\r\n                        { day: 23, color: 'var(--vat-30-manual)', text: 'VAT30', tooltip: 'VAT PP 30 (Domestic Payments): Manual Filing' },\r\n                        { day: 30, color: 'var(--business-tax-e)', text: 'PT40', tooltip: 'Specific Business Tax Return (PT 40) - E-Filing' }\r\n                    ],\r\n                    \/\/ December\r\n                    [\r\n                        { day: 7, color: 'var(--withholding-manual)', text: 'WHT', tooltip: 'Withholding Tax (Manual Filing)' },\r\n                        { day: 10, color: 'var(--corporate-income-manual)', text: 'PND50', tooltip: 'Corporate Income Tax Return (PND 50) - Manual Filing' },\r\n                        { day: 15, color: 'var(--vat-36-manual)', text: 'VAT36', tooltip: 'VAT PP 36 (Overseas Payments): Manual Filing' },\r\n                        { day: 23, color: 'var(--vat-30-manual)', text: 'VAT30', tooltip: 'VAT PP 30 (Domestic Payments): Manual Filing' },\r\n                        { day: 31, color: 'var(--business-tax-e)', text: 'PT40', tooltip: 'Specific Business Tax Return (PT 40) - E-Filing' }\r\n                    ]\r\n                ],\r\n                \r\n                \/\/ Public holidays for each month\r\n                holidays: [\r\n                    \/\/ January\r\n                    [1], \/\/ New Year's Day\r\n                    \/\/ February\r\n                    [],\r\n                    \/\/ March\r\n                    [],\r\n                    \/\/ April\r\n                    [13, 14, 15], \/\/ Songkran Festival\r\n                    \/\/ May\r\n                    [1, 5], \/\/ Labor Day, Coronation Day\r\n                    \/\/ June\r\n                    [3], \/\/ Queen's Birthday\r\n                    \/\/ July\r\n                    [28], \/\/ King's Birthday\r\n                    \/\/ August\r\n                    [12], \/\/ Mother's Day\r\n                    \/\/ September\r\n                    [],\r\n                    \/\/ October\r\n                    [13, 23], \/\/ King Bhumibol Memorial Day, Chulalongkorn Day\r\n                    \/\/ November\r\n                    [],\r\n                    \/\/ December\r\n                    [5, 10, 31] \/\/ Father's Day, Constitution Day, New Year's Eve\r\n                ]\r\n            };\r\n\r\n            \/\/ Get elements\r\n            const calendarGrid = document.getElementById('calendar-grid');\r\n            const currentMonthElement = document.getElementById('current-month');\r\n            const prevMonthBtn = document.getElementById('prev-month');\r\n            const nextMonthBtn = document.getElementById('next-month');\r\n            const monthDropdown = document.getElementById('month-dropdown');\r\n            const legendTabs = document.querySelectorAll('.legend-tab');\r\n            const legendContents = document.querySelectorAll('.legend-content');\r\n            const swipeOverlay = document.getElementById('swipe-overlay');\r\n\r\n            \/\/ Set up current date\r\n            let currentMonth = 0; \/\/ January\r\n            let currentYear = 2025;\r\n\r\n            \/\/ Month names\r\n            const monthNames = [\r\n                'JANUARY', 'FEBRUARY', 'MARCH', 'APRIL', 'MAY', 'JUNE',\r\n                'JULY', 'AUGUST', 'SEPTEMBER', 'OCTOBER', 'NOVEMBER', 'DECEMBER'\r\n            ];\r\n\r\n            \/\/ Function to generate calendar\r\n            function generateCalendar(month, year) {\r\n                \/\/ Clear grid\r\n                calendarGrid.innerHTML = '';\r\n                \r\n                \/\/ Update month title\r\n                currentMonthElement.textContent = `${monthNames[month]} ${year}`;\r\n                \r\n                \/\/ Get first day of month and total days\r\n                const firstDay = new Date(year, month, 1).getDay();\r\n                const daysInMonth = new Date(year, month + 1, 0).getDate();\r\n                \r\n                \/\/ Add empty cells for days before first of month\r\n                for (let i = 0; i < firstDay; i++) {\r\n                    const emptyDay = document.createElement('div');\r\n                    emptyDay.className = 'calendar-day empty';\r\n                    calendarGrid.appendChild(emptyDay);\r\n                }\r\n                \r\n                \/\/ Add cells for days of month\r\n                for (let day = 1; day <= daysInMonth; day++) {\r\n                    const dayCell = document.createElement('div');\r\n                    dayCell.className = 'calendar-day';\r\n                    \r\n                    \/\/ Add day number\r\n                    const dayNumber = document.createElement('div');\r\n                    dayNumber.className = 'day-number';\r\n                    dayNumber.textContent = day;\r\n                    dayCell.appendChild(dayNumber);\r\n                    \r\n                    \/\/ Container for events\r\n                    const eventContainer = document.createElement('div');\r\n                    eventContainer.className = 'event-container';\r\n                    dayCell.appendChild(eventContainer);\r\n                    \r\n                    \/\/ Check for filing dates\r\n                    const filings = calendarData.filingDates[month].filter(filing => filing.day === day);\r\n                    filings.forEach(filing => {\r\n                        const filingEvent = document.createElement('div');\r\n                        filingEvent.className = 'event';\r\n                        filingEvent.style.backgroundColor = filing.color;\r\n                        filingEvent.textContent = filing.text;\r\n                        filingEvent.setAttribute('data-tooltip', filing.tooltip);\r\n                        filingEvent.setAttribute('data-date', `${monthNames[month]} ${day}, ${year}`);\r\n                        \r\n                        \/\/ Add click event for lightbox\r\n                        filingEvent.addEventListener('click', function(e) {\r\n                            e.stopPropagation(); \/\/ Prevent event bubbling\r\n                            showEventModal(this);\r\n                        });\r\n                        \r\n                        eventContainer.appendChild(filingEvent);\r\n                    });\r\n                    \r\n                    \/\/ Check for holidays\r\n                    if (calendarData.holidays[month].includes(day)) {\r\n                        const holidayEvent = document.createElement('div');\r\n                        holidayEvent.className = 'event holiday';\r\n                        holidayEvent.textContent = 'Holiday';\r\n                        holidayEvent.setAttribute('data-tooltip', 'Public Holiday');\r\n                        holidayEvent.setAttribute('data-date', `${monthNames[month]} ${day}, ${year}`);\r\n                        \r\n                        \/\/ Add click event for lightbox\r\n                        holidayEvent.addEventListener('click', function(e) {\r\n                            e.stopPropagation(); \/\/ Prevent event bubbling\r\n                            showEventModal(this);\r\n                        });\r\n                        \r\n                        eventContainer.appendChild(holidayEvent);\r\n                    }\r\n                    \r\n                    calendarGrid.appendChild(dayCell);\r\n                }\r\n                \r\n                \/\/ Add empty cells for days after end of month\r\n                const totalCells = calendarGrid.childElementCount;\r\n                const remainingCells = 42 - totalCells; \/\/ 6 rows * 7 days = 42\r\n                \r\n                for (let i = 0; i < remainingCells; i++) {\r\n                    const emptyDay = document.createElement('div');\r\n                    emptyDay.className = 'calendar-day empty';\r\n                    calendarGrid.appendChild(emptyDay);\r\n                }\r\n            }\r\n\r\n            \/\/ Event listeners for navigation\r\n            prevMonthBtn.addEventListener('click', function() {\r\n                currentMonth--;\r\n                if (currentMonth < 0) {\r\n                    currentMonth = 11;\r\n                    currentYear--;\r\n                }\r\n                generateCalendar(currentMonth, currentYear);\r\n                monthDropdown.value = currentMonth.toString();\r\n            });\r\n            \r\n            nextMonthBtn.addEventListener('click', function() {\r\n                currentMonth++;\r\n                if (currentMonth > 11) {\r\n                    currentMonth = 0;\r\n                    currentYear++;\r\n                }\r\n                generateCalendar(currentMonth, currentYear);\r\n                monthDropdown.value = currentMonth.toString();\r\n            });\r\n            \r\n            monthDropdown.addEventListener('change', function() {\r\n                currentMonth = parseInt(this.value);\r\n                generateCalendar(currentMonth, currentYear);\r\n            });\r\n            \r\n            \/\/ Event listeners for legend tabs\r\n            legendTabs.forEach(tab => {\r\n                tab.addEventListener('click', function() {\r\n                    \/\/ Remove active class from all tabs and content\r\n                    legendTabs.forEach(t => t.classList.remove('active'));\r\n                    legendContents.forEach(c => c.classList.remove('active'));\r\n                    \r\n                    \/\/ Add active class to clicked tab and corresponding content\r\n                    this.classList.add('active');\r\n                    document.getElementById(`${this.dataset.tab}-legend`).classList.add('active');\r\n                });\r\n            });\r\n            \r\n            \/\/ Modal functionality\r\n            const modal = document.getElementById('event-modal');\r\n            const modalClose = document.getElementById('modal-close');\r\n            const modalTitle = document.getElementById('modal-title');\r\n            const modalDate = document.getElementById('modal-date');\r\n            const modalEvents = document.getElementById('modal-events');\r\n            \r\n            \/\/ Function to show modal with event details\r\n            function showEventModal(eventElement) {\r\n                \/\/ Set date\r\n                const dateText = eventElement.getAttribute('data-date');\r\n                modalDate.textContent = dateText;\r\n                \r\n                \/\/ Set title\r\n                modalTitle.textContent = 'Filing Deadline Details';\r\n                \r\n                \/\/ Clear previous events\r\n                modalEvents.innerHTML = '';\r\n                \r\n                \/\/ Get all events for this day\r\n                const dayCell = eventElement.closest('.calendar-day');\r\n                const allEvents = dayCell.querySelectorAll('.event');\r\n                \r\n                \/\/ Add each event to the modal\r\n                allEvents.forEach(event => {\r\n                    const eventDiv = document.createElement('div');\r\n                    eventDiv.className = 'modal-event';\r\n                    \r\n                    const eventColor = document.createElement('div');\r\n                    eventColor.className = 'modal-event-color';\r\n                    eventColor.style.backgroundColor = event.style.backgroundColor || \r\n                                                      (event.classList.contains('holiday') ? 'var(--holiday)' : '');\r\n                    \r\n                    const eventText = document.createElement('div');\r\n                    eventText.textContent = event.getAttribute('data-tooltip');\r\n                    \r\n                    eventDiv.appendChild(eventColor);\r\n                    eventDiv.appendChild(eventText);\r\n                    modalEvents.appendChild(eventDiv);\r\n                });\r\n                \r\n                \/\/ Show the modal with animation\r\n                modal.classList.add('active');\r\n                \r\n                \/\/ Prevent body scrolling when modal is open\r\n                document.body.style.overflow = 'hidden';\r\n            }\r\n            \r\n            \/\/ Close modal when clicking the close button\r\n            modalClose.addEventListener('click', function() {\r\n                modal.classList.remove('active');\r\n                document.body.style.overflow = '';\r\n            });\r\n            \r\n            \/\/ Close modal when clicking outside the content\r\n            modal.addEventListener('click', function(e) {\r\n                if (e.target === modal) {\r\n                    modal.classList.remove('active');\r\n                    document.body.style.overflow = '';\r\n                }\r\n            });\r\n            \r\n            \/\/ Close modal with ESC key\r\n            document.addEventListener('keydown', function(e) {\r\n                if (e.key === 'Escape' && modal.classList.contains('active')) {\r\n                    modal.classList.remove('active');\r\n                    document.body.style.overflow = '';\r\n                }\r\n            });\r\n            \r\n            \/\/ Touch swipe functionality for mobile\r\n            let touchStartX = 0;\r\n            let touchEndX = 0;\r\n            let isMobile = false;\r\n            \r\n            \/\/ Check if device is mobile\r\n            function checkMobile() {\r\n                isMobile = window.innerWidth <= 768;\r\n                swipeOverlay.style.display = isMobile ? 'block' : 'none';\r\n            }\r\n            \r\n            \/\/ Add event listeners for touch events\r\n            swipeOverlay.addEventListener('touchstart', function(e) {\r\n                touchStartX = e.changedTouches[0].screenX;\r\n            });\r\n            \r\n            swipeOverlay.addEventListener('touchend', function(e) {\r\n                touchEndX = e.changedTouches[0].screenX;\r\n                handleSwipe();\r\n            });\r\n            \r\n            \/\/ Handle swipe\r\n            function handleSwipe() {\r\n                const swipeThreshold = 50; \/\/ Minimum distance for a swipe\r\n                \r\n                if (touchEndX < touchStartX - swipeThreshold) {\r\n                    \/\/ Swipe left - next month\r\n                    nextMonthBtn.click();\r\n                }\r\n                \r\n                if (touchEndX > touchStartX + swipeThreshold) {\r\n                    \/\/ Swipe right - previous month\r\n                    prevMonthBtn.click();\r\n                }\r\n            }\r\n            \r\n            \/\/ Check on page load and resize\r\n            checkMobile();\r\n            window.addEventListener('resize', checkMobile);\r\n            \r\n            \/\/ Initialize the calendar\r\n            generateCalendar(currentMonth, currentYear);\r\n        });\r\n    <\/script>\r\n<\/body>\r\n<\/html> \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Thailand Accounting and Corporate Compliance Calendar 2025 Thailand Accounting and Corporate Compliance Calendar 2025 Monthly Requirements &#10094; JANUARY 2025 JanuaryFebruaryMarchAprilMayJuneJulyAugustSeptemberOctoberNovemberDecember &#10095; Sun Mon Tue Wed Thu Fri Sat Monthly Requirements Annual Tax Filing Requirements Withholding Tax (Manual Filing) Withholding Tax (E-filing) VAT PP 36 (Overseas): Manual Filing VAT PP 36 (Overseas): E-Filing VAT PP 30 [&hellip;]<\/p>","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-12810","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/vbapartners.com\/fr\/wp-json\/wp\/v2\/pages\/12810","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vbapartners.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/vbapartners.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/vbapartners.com\/fr\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/vbapartners.com\/fr\/wp-json\/wp\/v2\/comments?post=12810"}],"version-history":[{"count":1,"href":"https:\/\/vbapartners.com\/fr\/wp-json\/wp\/v2\/pages\/12810\/revisions"}],"predecessor-version":[{"id":14066,"href":"https:\/\/vbapartners.com\/fr\/wp-json\/wp\/v2\/pages\/12810\/revisions\/14066"}],"wp:attachment":[{"href":"https:\/\/vbapartners.com\/fr\/wp-json\/wp\/v2\/media?parent=12810"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}