{"id":679,"date":"2025-09-21T22:32:00","date_gmt":"2025-09-22T06:32:00","guid":{"rendered":"https:\/\/helpdesk.costbook.ph\/?page_id=679"},"modified":"2025-09-24T00:12:57","modified_gmt":"2025-09-24T08:12:57","slug":"report-analytics","status":"publish","type":"page","link":"https:\/\/helpdesk.costbook.ph\/index.php\/report-analytics\/","title":{"rendered":"Report &amp; Analytics"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"679\" class=\"elementor elementor-679\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6c2ee2d e-flex e-con-boxed e-con e-parent\" data-id=\"6c2ee2d\" data-element_type=\"container\" data-settings=\"{&quot;position&quot;:&quot;absolute&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b921aea e-n-tabs-mobile elementor-widget elementor-widget-n-tabs\" data-id=\"b921aea\" data-element_type=\"widget\" data-widget_type=\"nested-tabs.default\">\n\t\t\t\t\t\t\t<div class=\"e-n-tabs\" data-widget-number=\"194124522\" aria-label=\"Tabs. Open items with Enter or Space, close with Escape and navigate using the Arrow keys.\">\n\t\t\t<div class=\"e-n-tabs-heading\" role=\"tablist\">\n\t\t\t\t\t<button id=\"e-n-tab-title-1941245221\" class=\"e-n-tab-title\" aria-selected=\"true\" data-tab-index=\"1\" role=\"tab\" tabindex=\"0\" aria-controls=\"e-n-tab-content-1941245221\" style=\"--n-tabs-title-order: 1;\">\n\t\t\t\t\t\t<span class=\"e-n-tab-title-text\">\n\t\t\t\tTicket Summary\t\t\t<\/span>\n\t\t<\/button>\n\t\t\t\t<button id=\"e-n-tab-title-1941245222\" class=\"e-n-tab-title\" aria-selected=\"false\" data-tab-index=\"2\" role=\"tab\" tabindex=\"-1\" aria-controls=\"e-n-tab-content-1941245222\" style=\"--n-tabs-title-order: 2;\">\n\t\t\t\t\t\t<span class=\"e-n-tab-title-text\">\n\t\t\t\tUser Reports\t\t\t<\/span>\n\t\t<\/button>\n\t\t\t\t<button id=\"e-n-tab-title-1941245223\" class=\"e-n-tab-title\" aria-selected=\"false\" data-tab-index=\"3\" role=\"tab\" tabindex=\"-1\" aria-controls=\"e-n-tab-content-1941245223\" style=\"--n-tabs-title-order: 3;\">\n\t\t\t\t\t\t<span class=\"e-n-tab-title-text\">\n\t\t\t\tBilling Reports\t\t\t<\/span>\n\t\t<\/button>\n\t\t\t\t<button id=\"e-n-tab-title-1941245224\" class=\"e-n-tab-title\" aria-selected=\"false\" data-tab-index=\"4\" role=\"tab\" tabindex=\"-1\" aria-controls=\"e-n-tab-content-1941245224\" style=\"--n-tabs-title-order: 4;\">\n\t\t\t\t\t\t<span class=\"e-n-tab-title-text\">\n\t\t\t\tTechnical Reports\t\t\t<\/span>\n\t\t<\/button>\n\t\t\t\t<button id=\"e-n-tab-title-1941245225\" class=\"e-n-tab-title\" aria-selected=\"false\" data-tab-index=\"5\" role=\"tab\" tabindex=\"-1\" aria-controls=\"e-n-tab-content-1941245225\" style=\"--n-tabs-title-order: 5;\">\n\t\t\t\t\t\t<span class=\"e-n-tab-title-text\">\n\t\t\t\tAdvanced Report\t\t\t<\/span>\n\t\t<\/button>\n\t\t\t\t\t<\/div>\n\t\t\t<div class=\"e-n-tabs-content\">\n\t\t\t\t<div id=\"e-n-tab-content-1941245221\" role=\"tabpanel\" aria-labelledby=\"e-n-tab-title-1941245221\" data-tab-index=\"1\" style=\"--n-tabs-title-order: 1;\" class=\"e-active elementor-element elementor-element-158f362 e-con-full e-flex e-con e-child\" data-id=\"158f362\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-e8fa2ed e-flex e-con-boxed e-con e-child\" data-id=\"e8fa2ed\" 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-add43da elementor-widget elementor-widget-heading\" data-id=\"add43da\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Ticket Summary<\/h2>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c16f506 e-con-full e-flex e-con e-child\" data-id=\"c16f506\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-24f1986 elementor-widget__width-initial elementor-widget elementor-widget-button\" data-id=\"24f1986\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-far-address-book\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-68 304H48V48h320v416zM208 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2z\"><\/path><\/svg>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">All Tickets<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ba6bad4 elementor-widget__width-initial elementor-widget elementor-widget-button\" data-id=\"ba6bad4\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-far-newspaper\" viewBox=\"0 0 576 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M552 64H112c-20.858 0-38.643 13.377-45.248 32H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h496c13.255 0 24-10.745 24-24V88c0-13.255-10.745-24-24-24zM48 392V144h16v248c0 4.411-3.589 8-8 8s-8-3.589-8-8zm480 8H111.422c.374-2.614.578-5.283.578-8V112h416v288zM172 280h136c6.627 0 12-5.373 12-12v-96c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v96c0 6.627 5.373 12 12 12zm28-80h80v40h-80v-40zm-40 140v-24c0-6.627 5.373-12 12-12h136c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H172c-6.627 0-12-5.373-12-12zm192 0v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12zm0-144v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12zm0 72v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12z\"><\/path><\/svg>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">New Tickets<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d26cb4c elementor-widget elementor-widget-button\" data-id=\"d26cb4c\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-hand-point-right\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M512 199.652c0 23.625-20.65 43.826-44.8 43.826h-99.851c16.34 17.048 18.346 49.766-6.299 70.944 14.288 22.829 2.147 53.017-16.45 62.315C353.574 425.878 322.654 448 272 448c-2.746 0-13.276-.203-16-.195-61.971.168-76.894-31.065-123.731-38.315C120.596 407.683 112 397.599 112 385.786V214.261l.002-.001c.011-18.366 10.607-35.889 28.464-43.845 28.886-12.994 95.413-49.038 107.534-77.323 7.797-18.194 21.384-29.084 40-29.092 34.222-.014 57.752 35.098 44.119 66.908-3.583 8.359-8.312 16.67-14.153 24.918H467.2c23.45 0 44.8 20.543 44.8 43.826zM96 200v192c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24h48c13.255 0 24 10.745 24 24zM68 368c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z\"><\/path><\/svg>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Assigned Tickets<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4e2081d elementor-widget elementor-widget-button\" data-id=\"4e2081d\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-truck-loading\" viewBox=\"0 0 640 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M50.2 375.6c2.3 8.5 11.1 13.6 19.6 11.3l216.4-58c8.5-2.3 13.6-11.1 11.3-19.6l-49.7-185.5c-2.3-8.5-11.1-13.6-19.6-11.3L151 133.3l24.8 92.7-61.8 16.5-24.8-92.7-77.3 20.7C3.4 172.8-1.7 181.6.6 190.1l49.6 185.5zM384 0c-17.7 0-32 14.3-32 32v323.6L5.9 450c-4.3 1.2-6.8 5.6-5.6 9.8l12.6 46.3c1.2 4.3 5.6 6.8 9.8 5.6l393.7-107.4C418.8 464.1 467.6 512 528 512c61.9 0 112-50.1 112-112V0H384zm144 448c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"><\/path><\/svg>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">On Hold Tickets<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-10c82a2 elementor-widget elementor-widget-button\" data-id=\"10c82a2\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fab-resolving\" viewBox=\"0 0 496 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M281.2 278.2c46-13.3 49.6-23.5 44-43.4L314 195.5c-6.1-20.9-18.4-28.1-71.1-12.8L54.7 236.8l28.6 98.6 197.9-57.2zM248.5 8C131.4 8 33.2 88.7 7.2 197.5l221.9-63.9c34.8-10.2 54.2-11.7 79.3-8.2 36.3 6.1 52.7 25 61.4 55.2l10.7 37.8c8.2 28.1 1 50.6-23.5 73.6-19.4 17.4-31.2 24.5-61.4 33.2L203 351.8l220.4 27.1 9.7 34.2-48.1 13.3-286.8-37.3 23 80.2c36.8 22 80.3 34.7 126.3 34.7 137 0 248.5-111.4 248.5-248.3C497 119.4 385.5 8 248.5 8zM38.3 388.6L0 256.8c0 48.5 14.3 93.4 38.3 131.8z\"><\/path><\/svg>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Resolved Tickets<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-96cfbf9 elementor-widget elementor-widget-button\" data-id=\"96cfbf9\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-far-file\" viewBox=\"0 0 384 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48z\"><\/path><\/svg>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Deleted Tickets<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d0d947d e-con-full e-flex e-con e-child\" data-id=\"d0d947d\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-11abcc0 eael-table-align-center eael-dt-th-align-left elementor-widget elementor-widget-eael-data-table\" data-id=\"11abcc0\" data-element_type=\"widget\" data-widget_type=\"eael-data-table.default\">\n\t\t\t\t\t\t\t<div class=\"eael-data-table-wrap\" data-table_id=\"11abcc0\" id=\"eael-data-table-wrapper-11abcc0\" data-custom_responsive=\"false\">\n\t\t\t<table class=\"tablesorter eael-data-table center\" id=\"eael-data-table-11abcc0\">\n\t\t\t    <thead>\n\t\t\t        <tr class=\"table-header\">\n\t\t\t\t\t\t\t\t\t            <th class=\"\" id=\"\" colspan=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"data-table-header-text\">Ticket Number<\/span><\/th>\n\t\t\t        \t\t\t\t            <th class=\"\" id=\"\" colspan=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"data-table-header-text\">Assigned Ticket<\/span><\/th>\n\t\t\t        \t\t\t\t            <th class=\"\" id=\"\" colspan=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"data-table-header-text\">Resolved Ticket<\/span><\/th>\n\t\t\t        \t\t\t\t            <th class=\"\" id=\"\" colspan=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"data-table-header-text\">On Hold Ticket<\/span><\/th>\n\t\t\t        \t\t\t\t            <th class=\"\" id=\"\" colspan=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"data-table-header-text\">Resolved Ticket<\/span><\/th>\n\t\t\t        \t\t\t\t        <\/tr>\n\t\t\t    <\/thead>\n\t\t\t  \t<tbody>\n\t\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t   \t\t\t\t\t\t\t\t\t\t\t<td colspan=\"\" rowspan=\"\" class=\"\" id=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"td-content-wrapper\"><div class=\"td-content\">\n\t\t\t\t\t\t\t\t\t\t\t\t\tContent\t\t\t\t\t\t\t\t\t\t\t\t<\/div><\/div>\n\t\t\t\t\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t   \t\t\t\t\t\t\t\t\t\t\t<td colspan=\"\" rowspan=\"\" class=\"\" id=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"td-content-wrapper\"><div class=\"td-content\">\n\t\t\t\t\t\t\t\t\t\t\t\t\tContent\t\t\t\t\t\t\t\t\t\t\t\t<\/div><\/div>\n\t\t\t\t\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t   \t\t\t\t\t\t\t\t\t\t\t<td colspan=\"\" rowspan=\"\" class=\"\" id=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"td-content-wrapper\"><div class=\"td-content\">\n\t\t\t\t\t\t\t\t\t\t\t\t\tContent\t\t\t\t\t\t\t\t\t\t\t\t<\/div><\/div>\n\t\t\t\t\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t   \t\t\t\t\t\t\t\t\t\t\t<td colspan=\"\" rowspan=\"\" class=\"\" id=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"td-content-wrapper\"><div class=\"td-content\">\n\t\t\t\t\t\t\t\t\t\t\t\t\tContent\t\t\t\t\t\t\t\t\t\t\t\t<\/div><\/div>\n\t\t\t\t\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t   \t\t\t\t\t\t\t\t\t\t\t<td colspan=\"\" rowspan=\"\" class=\"\" id=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"td-content-wrapper\"><div class=\"td-content\">\n\t\t\t\t\t\t\t\t\t\t\t\t\tContent\t\t\t\t\t\t\t\t\t\t\t\t<\/div><\/div>\n\t\t\t\t\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/tr>\n\t\t\t        \t\t\t    <\/tbody>\n\t\t\t<\/table>\n\t\t<\/div>\n\t  \t\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<div id=\"e-n-tab-content-1941245222\" role=\"tabpanel\" aria-labelledby=\"e-n-tab-title-1941245222\" data-tab-index=\"2\" style=\"--n-tabs-title-order: 2;\" class=\" elementor-element elementor-element-c62b68d e-con-full e-flex e-con e-child\" data-id=\"c62b68d\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-07ab990 elementor-widget elementor-widget-heading\" data-id=\"07ab990\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">User Customer Reports<\/h2>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3455127 e-flex e-con-boxed e-con e-child\" data-id=\"3455127\" 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-a7f89d0 eael-table-align-center eael-dt-th-align-left elementor-widget elementor-widget-eael-data-table\" data-id=\"a7f89d0\" data-element_type=\"widget\" data-widget_type=\"eael-data-table.default\">\n\t\t\t\t\t\t\t<div class=\"eael-data-table-wrap\" data-table_id=\"a7f89d0\" id=\"eael-data-table-wrapper-a7f89d0\" data-custom_responsive=\"false\">\n\t\t\t<table class=\"tablesorter eael-data-table center\" id=\"eael-data-table-a7f89d0\">\n\t\t\t    <thead>\n\t\t\t        <tr class=\"table-header\">\n\t\t\t\t\t\t\t\t\t            <th class=\"\" id=\"\" colspan=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"data-table-header-text\">User ID<\/span><\/th>\n\t\t\t        \t\t\t\t            <th class=\"\" id=\"\" colspan=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"data-table-header-text\">Table Header<\/span><\/th>\n\t\t\t        \t\t\t\t            <th class=\"\" id=\"\" colspan=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"data-table-header-text\">Table Header<\/span><\/th>\n\t\t\t        \t\t\t\t            <th class=\"\" id=\"\" colspan=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"data-table-header-text\">Table Header<\/span><\/th>\n\t\t\t        \t\t\t\t        <\/tr>\n\t\t\t    <\/thead>\n\t\t\t  \t<tbody>\n\t\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t   \t\t\t\t\t\t\t\t\t\t\t<td colspan=\"\" rowspan=\"\" class=\"\" id=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"td-content-wrapper\"><div class=\"td-content\">\n\t\t\t\t\t\t\t\t\t\t\t\t\tContent\t\t\t\t\t\t\t\t\t\t\t\t<\/div><\/div>\n\t\t\t\t\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t   \t\t\t\t\t\t\t\t\t\t\t<td colspan=\"\" rowspan=\"\" class=\"\" id=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"td-content-wrapper\"><div class=\"td-content\">\n\t\t\t\t\t\t\t\t\t\t\t\t\tContent\t\t\t\t\t\t\t\t\t\t\t\t<\/div><\/div>\n\t\t\t\t\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t   \t\t\t\t\t\t\t\t\t\t\t<td colspan=\"\" rowspan=\"\" class=\"\" id=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"td-content-wrapper\"><div class=\"td-content\">\n\t\t\t\t\t\t\t\t\t\t\t\t\tContent\t\t\t\t\t\t\t\t\t\t\t\t<\/div><\/div>\n\t\t\t\t\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t   \t\t\t\t\t\t\t\t\t\t\t<td colspan=\"\" rowspan=\"\" class=\"\" id=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"td-content-wrapper\"><div class=\"td-content\">\n\t\t\t\t\t\t\t\t\t\t\t\t\tContent\t\t\t\t\t\t\t\t\t\t\t\t<\/div><\/div>\n\t\t\t\t\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/tr>\n\t\t\t        \t\t\t    <\/tbody>\n\t\t\t<\/table>\n\t\t<\/div>\n\t  \t\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<div id=\"e-n-tab-content-1941245223\" role=\"tabpanel\" aria-labelledby=\"e-n-tab-title-1941245223\" data-tab-index=\"3\" style=\"--n-tabs-title-order: 3;\" class=\" elementor-element elementor-element-cc05863 e-con-full e-flex e-con e-child\" data-id=\"cc05863\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5125043 elementor-widget elementor-widget-heading\" data-id=\"5125043\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Billing Reports<\/h2>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-102bd95 e-flex e-con-boxed e-con e-child\" data-id=\"102bd95\" 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-656f1eb elementor-absolute elementor-widget elementor-widget-html\" data-id=\"656f1eb\" data-element_type=\"widget\" data-settings=\"{&quot;_position&quot;:&quot;absolute&quot;}\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"qsi-billing max-w-full\">\r\n  <style>\r\n    .qsi-billing{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;\r\n     background:#fff !important;              \/* add this *\/\r\n  border:1px solid #e5e7eb;                \/* optional *\/\r\n  border-radius:.75rem;                    \/* optional *\/\r\n  padding:1rem;                            \/* optional *\/\r\n}\r\n    .qsi-controls{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.75rem;align-items:end;margin:.75rem 0}\r\n    .qsi-controls label{font-size:.85rem;color:#333}\r\n    .qsi-input,.qsi-select{width:100%;padding:.55rem .6rem;border:1px solid #d0d5dd;border-radius:.5rem;font-size:.95rem}\r\n    .qsi-btn{padding:.55rem .9rem;border:1px solid #d0d5dd;border-radius:.6rem;cursor:pointer;background:#fff}\r\n    .qsi-btn:hover{background:#f6f7f9}\r\n    .qsi-btn.primary{background:#111827;color:#fff;border-color:#111827}\r\n    .qsi-btn.primary:hover{opacity:.95}\r\n    .qsi-table{width:100%;border-collapse:separate;border-spacing:0;border:1px solid #e5e7eb;border-radius:.75rem;overflow:hidden}\r\n    .qsi-table th,.qsi-table td{padding:.6rem .7rem;border-bottom:1px solid #f1f3f5;font-size:.92rem;text-align:left;vertical-align:top}\r\n    .qsi-table thead th{background:#f8fafc;font-weight:600}\r\n    .qsi-table tbody tr:hover{background:#fcfcfd}\r\n    .qsi-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin:.75rem 0}\r\n    .qsi-card{border:1px solid #e5e7eb;border-radius:.75rem;padding:.8rem .9rem;background:#fff}\r\n    .qsi-card h4{margin:0 0 .25rem 0;font-size:.9rem;color:#6b7280}\r\n    .qsi-card .v{font-weight:700;font-size:1.05rem}\r\n    .qsi-chip{display:inline-block;padding:.2rem .5rem;border-radius:999px;font-size:.78rem;border:1px solid #e5e7eb;background:#fafafa}\r\n    @media (max-width:900px){\r\n      .qsi-controls{grid-template-columns:repeat(2,minmax(0,1fr))}\r\n      .qsi-stats{grid-template-columns:repeat(2,minmax(0,1fr))}\r\n      .qsi-table{display:block;overflow:auto;white-space:nowrap}\r\n    }\r\n  <\/style>\r\n\r\n  <!-- Controls -->\r\n  <div class=\"qsi-controls\">\r\n    <div>\r\n      <label>Client<\/label>\r\n      <select id=\"qsiClient\" class=\"qsi-select\"><\/select>\r\n    <\/div>\r\n    <div>\r\n      <label>Date from<\/label>\r\n      <input id=\"qsiFrom\" class=\"qsi-input\" type=\"date\">\r\n    <\/div>\r\n    <div>\r\n      <label>Date to<\/label>\r\n      <input id=\"qsiTo\" class=\"qsi-input\" type=\"date\">\r\n    <\/div>\r\n    <div>\r\n      <label>Search (title, agent, project)<\/label>\r\n      <input id=\"qsiSearch\" class=\"qsi-input\" type=\"text\" placeholder=\"Type to filter...\">\r\n    <\/div>\r\n    <div>\r\n      <button class=\"qsi-btn\" id=\"qsiCsv\">save<\/button>\r\n      <button class=\"qsi-btn\" id=\"qsiReset\">Reset<\/button>\r\n    <\/div>\r\n    <div style=\"text-align:right\">\r\n      <button class=\"qsi-btn\" id=\"qsiCsv\">Export CSV<\/button>\r\n      <button class=\"qsi-btn primary\" id=\"qsiPrint\">Print<\/button>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <!-- KPI Cards -->\r\n  <div class=\"qsi-stats\">\r\n    <div class=\"qsi-card\"><h4>Total Tickets<\/h4><div class=\"v\" id=\"kpiTickets\">\u2014<\/div><\/div>\r\n    <div class=\"qsi-card\"><h4>Billable Hours<\/h4><div class=\"v\" id=\"kpiHours\">\u2014<\/div><\/div>\r\n    <div class=\"qsi-card\"><h4>VAT (12%)<\/h4><div class=\"v\" id=\"kpiVat\">\u2014<\/div><\/div>\r\n    <div class=\"qsi-card\"><h4>Grand Total<\/h4><div class=\"v\" id=\"kpiGrand\">\u2014<\/div><\/div>\r\n  <\/div>\r\n\r\n  <!-- Data Table -->\r\n  <table class=\"qsi-table\" id=\"qsiTable\" aria-label=\"Billing Table\">\r\n    <thead>\r\n      <tr>\r\n        <th>Ticket<\/th>\r\n        <th>Client<\/th>\r\n        <th>Project<\/th>\r\n        <th>Type<\/th>\r\n        <th>Priority<\/th>\r\n        <th>Agent<\/th>\r\n        <th>Created<\/th>\r\n        <th>Resolved<\/th>\r\n        <th class=\"qsi-num\">Hours<\/th>\r\n        <th>Rate Plan<\/th>\r\n        <th class=\"qsi-num\">Labor (PHP)<\/th>\r\n        <th class=\"qsi-num\">Materials (PHP)<\/th>\r\n        <th class=\"qsi-num\">Discount (PHP)<\/th>\r\n        <th class=\"qsi-num\">VAT 12% (PHP)<\/th>\r\n        <th class=\"qsi-num\">Total (PHP)<\/th>\r\n        <th>SLA<\/th>\r\n      <\/tr>\r\n    <\/thead>\r\n    <tbody id=\"qsiTbody\"><\/tbody>\r\n    <tfoot>\r\n      <tr>\r\n        <th colspan=\"8\" style=\"text-align:right\">Totals:<\/th>\r\n        <th id=\"ftHours\" class=\"qsi-num\">0.00<\/th>\r\n        <th><\/th>\r\n        <th id=\"ftLabor\" class=\"qsi-num\">0.00<\/th>\r\n        <th id=\"ftMaterials\" class=\"qsi-num\">0.00<\/th>\r\n        <th id=\"ftDiscount\" class=\"qsi-num\">0.00<\/th>\r\n        <th id=\"ftVat\" class=\"qsi-num\">0.00<\/th>\r\n        <th id=\"ftGrand\" class=\"qsi-num\">0.00<\/th>\r\n        <th><\/th>\r\n      <\/tr>\r\n    <\/tfoot>\r\n  <\/table>\r\n\r\n  <small style=\"display:block;margin-top:.5rem;color:#6b7280\">\r\n  <\/small>\r\n\r\n  <script>\r\n    \/\/ ---- Dummy dataset (replace with live data) ----\r\n    const QSI_DATA = [\r\n      {ticket:\"TKT-1001\", title:\"Incident - #1001\", client:\"Acme Corp\", project:\"Network Upgrade\", type:\"Incident\", priority:\"High\",\r\n       agent:\"J. Dela Cruz\", created:\"2025-06-03\", resolved:\"2025-06-04\", hours:2.5, ratePlan:\"Standard\",\r\n       labor:3750, materials:0, discount:0, vat:450, total:4200, sla:\"Within SLA\"},\r\n    ];\r\n\r\n    \/\/ ---- Helpers ----\r\n    const php = n => (Number(n)||0).toLocaleString(undefined,{minimumFractionDigits:2,maximumFractionDigits:2});\r\n    const byId = id => document.getElementById(id);\r\n    const parseDate = s => s ? new Date(s+\"T00:00:00\") : null;\r\n\r\n    function unique(arr, key){\r\n      return [...new Set(arr.map(x => x[key]))].sort();\r\n    }\r\n\r\n    function buildClientFilter(){\r\n      const sel = byId('qsiClient');\r\n      const opts = ['All Clients', ...unique(QSI_DATA,'client')];\r\n      sel.innerHTML = opts.map((v,i)=>`<option value=\"${i===0?'':v}\">${v}<\/option>`).join('');\r\n    }\r\n\r\n    function rowMatchesFilters(r){\r\n      const q = byId('qsiSearch').value.trim().toLowerCase();\r\n      const cli = byId('qsiClient').value;\r\n      const dFrom = parseDate(byId('qsiFrom').value);\r\n      const dTo = parseDate(byId('qsiTo').value);\r\n      const created = parseDate(r.created);\r\n\r\n      if (cli && r.client !== cli) return false;\r\n      if (q){\r\n        const hay = (r.title+' '+r.agent+' '+r.project+' '+r.ticket).toLowerCase();\r\n        if (!hay.includes(q)) return false;\r\n      }\r\n      if (dFrom && created < dFrom) return false;\r\n      if (dTo && created > dTo) return false;\r\n      return true;\r\n    }\r\n\r\n    function render(){\r\n      const body = byId('qsiTbody');\r\n      const rows = QSI_DATA.filter(rowMatchesFilters);\r\n\r\n      let tHours=0, tLabor=0, tMat=0, tDisc=0, tVat=0, tGrand=0;\r\n\r\n      body.innerHTML = rows.map(r=>{\r\n        tHours += Number(r.hours)||0;\r\n        tLabor += Number(r.labor)||0;\r\n        tMat   += Number(r.materials)||0;\r\n        tDisc  += Number(r.discount)||0;\r\n        tVat   += Number(r.vat)||0;\r\n        tGrand += Number(r.total)||0;\r\n        return `<tr>\r\n          <td><strong>${r.ticket}<\/strong><br><span class=\"qsi-chip\">${r.title}<\/span><\/td>\r\n          <td>${r.client}<\/td>\r\n          <td>${r.project}<\/td>\r\n          <td>${r.type}<\/td>\r\n          <td>${r.priority}<\/td>\r\n          <td>${r.agent}<\/td>\r\n          <td>${r.created}<\/td>\r\n          <td>${r.resolved}<\/td>\r\n          <td class=\"qsi-num\">${php(r.hours)}<\/td>\r\n          <td>${r.ratePlan}<\/td>\r\n          <td class=\"qsi-num\">${php(r.labor)}<\/td>\r\n          <td class=\"qsi-num\">${php(r.materials)}<\/td>\r\n          <td class=\"qsi-num\">${php(r.discount)}<\/td>\r\n          <td class=\"qsi-num\">${php(r.vat)}<\/td>\r\n          <td class=\"qsi-num\"><strong>${php(r.total)}<\/strong><\/td>\r\n          <td>${r.sla}<\/td>\r\n        <\/tr>`;\r\n      }).join('');\r\n\r\n      \/\/ Footer totals\r\n      byId('ftHours').textContent = php(tHours);\r\n      byId('ftLabor').textContent = php(tLabor);\r\n      byId('ftMaterials').textContent = php(tMat);\r\n      byId('ftDiscount').textContent = php(tDisc);\r\n      byId('ftVat').textContent = php(tVat);\r\n      byId('ftGrand').textContent = php(tGrand);\r\n\r\n      \/\/ KPI cards\r\n      byId('kpiTickets').textContent = rows.length;\r\n      byId('kpiHours').textContent = php(tHours);\r\n      byId('kpiVat').textContent = \"\u20b1 \" + php(tVat);\r\n      byId('kpiGrand').textContent = \"\u20b1 \" + php(tGrand);\r\n    }\r\n\r\n    function resetFilters(){\r\n      byId('qsiClient').value = '';\r\n      byId('qsiFrom').value = '';\r\n      byId('qsiTo').value = '';\r\n      byId('qsiSearch').value = '';\r\n      render();\r\n    }\r\n\r\n    function toCsv(rows){\r\n      const headers = [\"Ticket\",\"Title\",\"Client\",\"Project\",\"Type\",\"Priority\",\"Agent\",\"Created\",\"Resolved\",\"Hours\",\"Rate Plan\",\"Labor (PHP)\",\"Materials (PHP)\",\"Discount (PHP)\",\"VAT 12% (PHP)\",\"Total (PHP)\",\"SLA\"];\r\n      const esc = s => `\"${String(s).replaceAll('\"','\"\"')}\"`;\r\n      const lines = [headers.map(esc).join(\",\")].concat(\r\n        rows.map(r => [r.ticket,r.title,r.client,r.project,r.type,r.priority,r.agent,r.created,r.resolved,r.hours,r.ratePlan,r.labor,r.materials,r.discount,r.vat,r.total,r.sla].map(esc).join(\",\"))\r\n      );\r\n      return lines.join(\"\\n\");\r\n    }\r\n\r\n    function exportCsv(){\r\n      const filtered = QSI_DATA.filter(rowMatchesFilters);\r\n      const blob = new Blob([toCsv(filtered)], {type: \"text\/csv;charset=utf-8;\"});\r\n      const url = URL.createObjectURL(blob);\r\n      const a = document.createElement('a');\r\n      a.href = url; a.download = \"billing_report.csv\";\r\n      document.body.appendChild(a); a.click(); a.remove();\r\n      URL.revokeObjectURL(url);\r\n    }\r\n\r\n    function printView(){\r\n      const w = window.open(\"\", \"_blank\");\r\n      const css = document.querySelector(\"style\").outerHTML;\r\n      w.document.write(`<html><head><title>Billing Report<\/title>${css}<\/head><body>${document.querySelector(\".qsi-billing\").innerHTML}<\/body><\/html>`);\r\n      w.document.close();\r\n      w.focus();\r\n      w.print();\r\n    }\r\n\r\n    \/\/ Init\r\n    buildClientFilter();\r\n    render();\r\n    byId('qsiClient').addEventListener('change', render);\r\n    byId('qsiFrom').addEventListener('change', render);\r\n    byId('qsiTo').addEventListener('change', render);\r\n    byId('qsiSearch').addEventListener('input', render);\r\n    byId('qsiReset').addEventListener('click', resetFilters);\r\n    byId('qsiCsv').addEventListener('click', exportCsv);\r\n    byId('qsiPrint').addEventListener('click', printView);\r\n  <\/script>\r\n<\/div>\r\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<div id=\"e-n-tab-content-1941245224\" role=\"tabpanel\" aria-labelledby=\"e-n-tab-title-1941245224\" data-tab-index=\"4\" style=\"--n-tabs-title-order: 4;\" class=\" elementor-element elementor-element-f5bc580 e-flex e-con-boxed e-con e-child\" data-id=\"f5bc580\" 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-4ef75c0 elementor-widget elementor-widget-heading\" data-id=\"4ef75c0\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Technical Reports<\/h2>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c7c7ade e-con-full e-flex e-con e-child\" data-id=\"c7c7ade\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7ccfe09 elementor-widget elementor-widget-button\" data-id=\"7ccfe09\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Tickets <\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9918b9f elementor-absolute elementor-widget elementor-widget-button\" data-id=\"9918b9f\" data-element_type=\"widget\" data-settings=\"{&quot;_position&quot;:&quot;absolute&quot;}\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Clients<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c1caa95 elementor-absolute elementor-widget elementor-widget-button\" data-id=\"c1caa95\" data-element_type=\"widget\" data-settings=\"{&quot;_position&quot;:&quot;absolute&quot;}\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Billing<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5ba75d3 elementor-absolute elementor-widget elementor-widget-button\" data-id=\"5ba75d3\" data-element_type=\"widget\" data-settings=\"{&quot;_position&quot;:&quot;absolute&quot;}\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Category<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-dbfb876 elementor-absolute elementor-widget elementor-widget-button\" data-id=\"dbfb876\" data-element_type=\"widget\" data-settings=\"{&quot;_position&quot;:&quot;absolute&quot;}\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Bugs<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\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<div id=\"e-n-tab-content-1941245225\" role=\"tabpanel\" aria-labelledby=\"e-n-tab-title-1941245225\" data-tab-index=\"5\" style=\"--n-tabs-title-order: 5;\" class=\" elementor-element elementor-element-89d724e e-flex e-con-boxed e-con e-child\" data-id=\"89d724e\" data-element_type=\"container\" data-settings=\"{&quot;position&quot;:&quot;absolute&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-3aa608b e-con-full e-flex e-con e-child\" data-id=\"3aa608b\" data-element_type=\"container\" data-settings=\"{&quot;position&quot;:&quot;absolute&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-375001f elementor-widget elementor-widget-heading\" data-id=\"375001f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Advanced Report<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-284b641 elementor-widget elementor-widget-heading\" data-id=\"284b641\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\">Urgency Level 1-3<\/h4>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d51c53e elementor-widget__width-initial elementor-widget elementor-widget-eael-advanced-data-table\" data-id=\"d51c53e\" data-element_type=\"widget\" data-widget_type=\"eael-advanced-data-table.default\">\n\t\t\t\t\t<div class=\"ea-advanced-data-table-wrap\" data-id=\"d51c53e\"><div class=\"ea-advanced-data-table-search-wrap ea-advanced-data-table-search-right\"><input type=\"search\" placeholder=\"Search\" class=\"ea-advanced-data-table-search\"><\/div><div class=\"ea-advanced-data-table-wrap-inner\">\n                <table class=\"ea-advanced-data-table ea-advanced-data-table-static ea-advanced-data-table-d51c53e ea-advanced-data-table-sortable ea-advanced-data-table-paginated ea-advanced-data-table-searchable\" data-id=\"d51c53e\" data-items-per-page=\"10\"><thead><tr><th style=\"width: 96px\"><p>Ticket #    <\/p><\/th><th style=\"width: 17px\"><p>Urgency<\/p><\/th><th style=\"width: 135px\"><p>Agent<\/p><\/th><th><p>Description<\/p><\/th><\/tr><\/thead><tbody><tr><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><\/tbody><\/table>\n            <\/div><div class=\"ea-advanced-data-table-pagination ea-advanced-data-table-pagination-button clearfix\"><\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-dec85f5 e-con-full e-flex e-con e-child\" data-id=\"dec85f5\" data-element_type=\"container\" data-settings=\"{&quot;position&quot;:&quot;absolute&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f0067c8 elementor-absolute elementor-widget elementor-widget-html\" data-id=\"f0067c8\" data-element_type=\"widget\" data-settings=\"{&quot;_position&quot;:&quot;absolute&quot;}\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- QSI \u00b7 Upcoming Reminders (Elementor-only) -->\r\n<div id=\"qsi-upcoming\" class=\"qsi-scope\">\r\n  <h3 style=\"margin:0 0 8px\">Upcoming<\/h3>\r\n\r\n  <!-- Add new reminder -->\r\n  <details class=\"qsi-add\">\r\n    <summary>Add a reminder<\/summary>\r\n    <form id=\"qsiForm\" class=\"qsi-grid\" autocomplete=\"off\">\r\n      <input id=\"tId\"      placeholder=\"Ticket ID (e.g., T-1001)\" required \/>\r\n      <input id=\"tTitle\"   placeholder=\"Title (e.g., Call client ACME)\" required \/>\r\n      <input id=\"tOwner\"   placeholder=\"Assignee (optional)\" \/>\r\n      <select id=\"tPri\">\r\n        <option>Low<\/option><option selected>Normal<\/option><option>High<\/option><option>Critical<\/option>\r\n      <\/select>\r\n      <input id=\"tDue\" type=\"datetime-local\" required \/>\r\n      <input id=\"tLead\" type=\"number\" min=\"0\" step=\"5\" value=\"30\" title=\"Minutes before due\" \/>\r\n      <select id=\"tRepeat\" title=\"Repeat\">\r\n        <option value=\"none\" selected>Repeat: none<\/option>\r\n        <option value=\"daily\">Repeat: daily<\/option>\r\n        <option value=\"weekly\">Repeat: weekly<\/option>\r\n      <\/select>\r\n      <button class=\"qsi-btn\" type=\"submit\">Save<\/button>\r\n    <\/form>\r\n  <\/details>\r\n\r\n  <!-- List -->\r\n  <div id=\"qsiList\" class=\"qsi-list\" aria-live=\"polite\"><\/div>\r\n\r\n  <div id=\"qsiToast\" class=\"qsi-toast\" role=\"status\" aria-live=\"polite\"><\/div>\r\n<\/div>\r\n\r\n<style>\r\n\/* ===== Scoped so it won\u2019t collide with Elementor ===== *\/\r\n#qsi-upcoming.qsi-scope{--line:#e5e7eb;--muted:#6b7280;--bg:#fff;--txt:#0f172a;--btn:#2563eb;--pill:#eef2ff;--pillTxt:#3730a3;--chip:#fff7ed;--chipBd:#fed7aa;--chipTxt:#9a3412;font-family:system-ui,-apple-system,Segoe UI,Roboto,Inter,sans-serif}\r\n#qsi-upcoming .qsi-add{margin-bottom:10px}\r\n#qsi-upcoming .qsi-add summary{cursor:pointer;color:#334155}\r\n#qsi-upcoming .qsi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:8px}\r\n#qsi-upcoming .qsi-grid input,#qsi-upcoming .qsi-grid select{border:1px solid var(--line);border-radius:10px;padding:10px}\r\n#qsi-upcoming .qsi-btn{appearance:none;border:0;border-radius:10px;padding:10px 14px;background:var(--btn);color:#fff;font-weight:600;cursor:pointer}\r\n#qsi-upcoming .qsi-list{display:grid;gap:12px}\r\n#qsi-upcoming .card{border:1px solid var(--line);background:var(--bg);border-radius:14px;padding:14px;box-shadow:0 4px 16px rgba(0,0,0,.04)}\r\n#qsi-upcoming .row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}\r\n#qsi-upcoming .title{font-size:18px;font-weight:700;color:var(--txt);margin:0}\r\n#qsi-upcoming .pill{background:var(--pill);color:var(--pillTxt);padding:4px 10px;border-radius:999px;font-size:12px}\r\n#qsi-upcoming .chip{background:var(--chip);border:1px solid var(--chipBd);color:var(--chipTxt);padding:4px 10px;border-radius:999px;font-size:12px}\r\n#qsi-upcoming .meta{margin-top:4px;color:var(--muted);font-size:14px}\r\n#qsi-upcoming .strong{font-weight:800;color:#0b162a}\r\n#qsi-upcoming .btns{margin-top:8px;display:flex;gap:8px}\r\n#qsi-upcoming .btns .sm{padding:7px 11px;border-radius:10px}\r\n#qsi-upcoming .ghost{background:#f3f4f6;color:#111827}\r\n#qsi-upcoming .qsi-toast{position:fixed;left:50%;transform:translateX(-50%);bottom:22px;background:#111827;color:#fff;padding:10px 14px;border-radius:12px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:9999}\r\n#qsi-upcoming .qsi-toast.show{opacity:1;transform:translate(-50%,-4px)}\r\n@media (max-width:860px){ #qsi-upcoming .qsi-grid{grid-template-columns:1fr} }\r\n<\/style>\r\n\r\n<script>\r\n(function(){\r\n  const S = '#qsi-upcoming';\r\n  const $  = (s,r=document)=>r.querySelector(s);\r\n  const $$ = (s,r=document)=>Array.from(r.querySelectorAll(s));\r\n  const DB = 'qsi.upcoming.reminders.v1';\r\n\r\n  \/\/ Defaults that match your screenshot\r\n  const seed = [\r\n    { ticketId:\"T-1001\", title:\"Call client ACME\", owner:\"Jane\",  priority:\"High\",     dueAt: Date.now()+ 90*60*1000,  lead:30, repeat:\"none\"   },\r\n    { ticketId:\"T-1003\", title:\"Deploy patch\",     owner:\"Sam\",   priority:\"Critical\", dueAt: Date.now()+ 3*60*60*1000, lead:30, repeat:\"none\"   },\r\n    { ticketId:\"T-1002\", title:\"Prepare report\",   owner:\"Miguel\",priority:\"Normal\",   dueAt: Date.now()+ 26*60*60*1000,lead:60, repeat:\"daily\"  }\r\n  ];\r\n\r\n  const load = () => { try { return JSON.parse(localStorage.getItem(DB)||'[]'); } catch { return []; } };\r\n  const save = rows => localStorage.setItem(DB, JSON.stringify(rows));\r\n  if (!load().length) { \/\/ seed first load\r\n    save(seed.map(t => ({\r\n      id: crypto.randomUUID ? crypto.randomUUID() : String(Date.now()+Math.random()),\r\n      ...t, remindAt: t.dueAt - (t.lead||30)*60000, fired:false\r\n    })));\r\n  }\r\n\r\n  const toast = m => { const t=$(`${S} #qsiToast`); t.textContent=m; t.classList.add('show'); setTimeout(()=>t.classList.remove('show'),2000); };\r\n\r\n  \/\/ Render all cards\r\n  function render(){\r\n    const list = $(`${S} #qsiList`);\r\n    const rows = load().sort((a,b)=>a.remindAt-b.remindAt);\r\n    list.innerHTML = '';\r\n    if (!rows.length) { list.innerHTML = '<div class=\"meta\">No upcoming items.<\/div>'; return; }\r\n\r\n    rows.forEach(r=>{\r\n      const card = document.createElement('div');\r\n      card.className = 'card';\r\n\r\n      const due = new Date(r.dueAt).toLocaleString();\r\n      const rem = new Date(r.remindAt).toLocaleString();\r\n\r\n      card.innerHTML = `\r\n        <div class=\"row\">\r\n          <h4 class=\"title\">${r.title}<\/h4>\r\n          <span class=\"pill\">${r.ticketId}<\/span>\r\n          <span class=\"chip\">${r.priority}<\/span>\r\n        <\/div>\r\n        <div class=\"meta\">Assignee: ${r.owner || '\u2014'} \u00b7 Repeat: ${r.repeat}<\/div>\r\n        <div class=\"meta\">Due: <span class=\"strong\">${due}<\/span> \u00b7 Reminder: <span class=\"strong\">${rem}<\/span><\/div>\r\n        <div class=\"btns\">\r\n          <button class=\"qsi-btn sm\" data-act=\"kind\">Copy \u201ckind\u201d<\/button>\r\n          <button class=\"qsi-btn sm ghost\" data-act=\"del\">Delete<\/button>\r\n        <\/div>\r\n      `;\r\n\r\n      card.querySelector('[data-act=\"kind\"]').addEventListener('click', ()=>{\r\n        const text = buildKind(r);\r\n        navigator.clipboard.writeText(text).then(()=>toast('Copied \u201ckind\u201d message'));\r\n      });\r\n      card.querySelector('[data-act=\"del\"]').addEventListener('click', ()=>{\r\n        const next = load().filter(x=>x.id!==r.id); save(next); render(); toast('Deleted');\r\n      });\r\n\r\n      list.appendChild(card);\r\n    });\r\n  }\r\n\r\n  \/\/ Gentle notifications + repeating\r\n  setInterval(()=>{\r\n    const arr = load(); const now = Date.now(); let changed=false;\r\n    arr.forEach(r=>{\r\n      if (!r.fired && now >= r.remindAt){\r\n        r.fired = true; changed = true;\r\n        const msg = `Kind reminder: ${r.title} (${r.ticketId}) is due ${new Date(r.dueAt).toLocaleString()}`;\r\n        if ('Notification' in window && Notification.permission==='granted'){\r\n          new Notification('Kind reminder', { body: msg, tag: r.id });\r\n        }\r\n        toast(msg);\r\n      }\r\n      if (r.fired && r.repeat!=='none' && now > r.dueAt){\r\n        const step = r.repeat==='daily' ? 24*60*60000 : 7*24*60*60000;\r\n        r.dueAt += step; r.remindAt = r.dueAt - (r.lead||30)*60000; r.fired=false; changed=true;\r\n      }\r\n    });\r\n    if (changed){ save(arr); render(); }\r\n  }, 15000);\r\n\r\n  \/\/ Kind reminder template (email\/Slack)\r\n  function buildKind(r){\r\n    return `Hi ${r.owner||'team'},\\n\\nKind reminder for *${r.title}* (${r.ticketId}). Priority: ${r.priority}.\\nDue: ${new Date(r.dueAt).toLocaleString()}\\n\\nIf this is already handled, feel free to ignore. Otherwise, please share a quick update.\\n\\nThanks!`;\r\n  }\r\n\r\n  \/\/ Add form\r\n  const form = $(`${S} #qsiForm`);\r\n  const start = new Date(Date.now()+90*60000);\r\n  $(`${S} #tDue`).value = `${start.getFullYear()}-${String(start.getMonth()+1).padStart(2,'0')}-${String(start.getDate()).padStart(2,'0')}T${String(start.getHours()).padStart(2,'0')}:${String(start.getMinutes()).padStart(2,'0')}`;\r\n\r\n  form.addEventListener('submit', e=>{\r\n    e.preventDefault();\r\n    const r = {\r\n      id: crypto.randomUUID ? crypto.randomUUID() : String(Date.now()+Math.random()),\r\n      ticketId: $(`${S} #tId`).value.trim(),\r\n      title:    $(`${S} #tTitle`).value.trim(),\r\n      owner:    $(`${S} #tOwner`).value.trim(),\r\n      priority: $(`${S} #tPri`).value,\r\n      dueAt:    new Date($(`${S} #tDue`).value).getTime(),\r\n      lead:     parseInt($(`${S} #tLead`).value||'30',10),\r\n      repeat:   $(`${S} #tRepeat`).value,\r\n      fired:    false\r\n    };\r\n    r.remindAt = r.dueAt - r.lead*60000;\r\n\r\n    if (!r.ticketId || !r.title || Number.isNaN(r.dueAt)) { toast('Please complete all required fields'); return; }\r\n    const arr = load(); arr.push(r); save(arr); render(); toast('Reminder saved'); form.reset();\r\n  });\r\n\r\n  \/\/ Ask for notification permission once\r\n  if ('Notification' in window && Notification.permission==='default'){\r\n    Notification.requestPermission().catch(()=>{});\r\n  }\r\n\r\n  render();\r\n})();\r\n<\/script>\r\n\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\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-322776d e-con-full e-flex e-con e-child\" data-id=\"322776d\" data-element_type=\"container\" data-settings=\"{&quot;position&quot;:&quot;fixed&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-394fc81 e-con-full e-flex e-con e-child\" data-id=\"394fc81\" data-element_type=\"container\" data-settings=\"{&quot;position&quot;:&quot;fixed&quot;}\">\n\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>Ticket Summary User Reports Billing Reports Technical Reports Advanced Report Ticket Summary All Tickets New Tickets Assigned Tickets On Hold Tickets Resolved Tickets Deleted Tickets Ticket Number Assigned Ticket Resolved Ticket On Hold Ticket Resolved Ticket Content Content Content Content Content User Customer Reports User ID Table Header Table Header Table Header Content Content Content [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-679","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/helpdesk.costbook.ph\/index.php\/wp-json\/wp\/v2\/pages\/679","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/helpdesk.costbook.ph\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/helpdesk.costbook.ph\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/helpdesk.costbook.ph\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/helpdesk.costbook.ph\/index.php\/wp-json\/wp\/v2\/comments?post=679"}],"version-history":[{"count":24,"href":"https:\/\/helpdesk.costbook.ph\/index.php\/wp-json\/wp\/v2\/pages\/679\/revisions"}],"predecessor-version":[{"id":997,"href":"https:\/\/helpdesk.costbook.ph\/index.php\/wp-json\/wp\/v2\/pages\/679\/revisions\/997"}],"wp:attachment":[{"href":"https:\/\/helpdesk.costbook.ph\/index.php\/wp-json\/wp\/v2\/media?parent=679"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}