| Server IP : 104.21.21.239 / Your IP : 216.73.216.11 Web Server : Apache/2.4.68 (Amazon Linux) OpenSSL/3.5.5 System : Linux ip-172-31-69-123.ec2.internal 6.1.176-223.369.amzn2023.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Jul 24 13:34:27 UTC 2026 x86_64 User : ec2-user ( 1000) PHP Version : 8.4.23 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/hotel-prod/public_html/rpt/ |
Upload File : |
<?php include('mod/_mod_security.php'); ?>
<?php
if (empty($_POST['ai_query'])) :
echo 'No user query specified!';
exit();
endif;
require_once('classes/lcs_ai_report.php');
$ai_report = new lcs_ai_report($_POST['ai_query']);
$sql_data = $ai_report->get_sql_from_english_query();
//echo '<pre>' . json_encode($sql_data, JSON_PRETTY_PRINT) . '</pre>';
//exit;
if (empty($sql_data['SQL']) || !is_sql_select_only($sql_data['SQL'])) :
echo 'Invalid generated SQL!';
exit();
endif;
$filter = json_encode($sql_data, JSON_PRETTY_PRINT);
try {
$stmt = $db->prepare($sql_data['SQL']);
$stmt->execute($sql_data['PARAMETERS']);
} catch (PDOException $e) {
echo 'There is an error in AI generated SQL!<br><br>';
echo 'User query: ' . htmlspecialchars($_POST['ai_query']) . '<br><br>';
echo 'AI generated SQL:<br><pre>' . $filter . '</pre><br><br>';
echo "Database Error: " . $e->getMessage();
exit();
}
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
if (count($rows) <= 0) :
echo 'User query: ' . htmlspecialchars($_POST['ai_query']) . '<br><br>';
echo 'No data for report!<br><pre>' . $filter . '</pre>';
exit();
endif;
$column_count = count($rows[array_key_first($rows)]);
$fields = array_keys($rows[array_key_first($rows)]);
$rpt = get_report_class($_POST['output_format']);
$rpt->set_report_title('AI Generated Report');
$rpt->report_start();
$rpt->header_start();
if (!empty($filter)) :
$rpt->header_row_start();
$rpt->header_cell_add('Filters: <br><pre style="white-space: pre-wrap; word-break: break-all;">' . $filter . '</pre>', ['colspan'=>$column_count, 'class'=>'large left', 'align'=>'left']);
$rpt->header_row_end();
endif;
$rpt->header_row_start();
foreach ($fields as $field) :
$rpt->header_cell_add($field, ['width'=>'auto']);
endforeach;
$rpt->header_row_end();
$rpt->header_end();
$rpt->data_start();
$tot_count = [];
$tot_sum = [];
foreach ($rows as $row) :
$rpt->data_row_start();
foreach ($row as $field_name => $field_data) :
$rpt->data_cell_add($field_data);
$tot_count[$field_name] += 1;
$tot_sum[$field_name] += (float)$field_data;
endforeach;
$rpt->data_row_end();
endforeach;
$rpt->data_row_start();
$rpt->data_cell_add('Total Counts', ['colspan'=>$column_count, 'align'=>'center']);
$rpt->data_row_end();
$rpt->data_row_start();
foreach ($tot_count as $total_column_count) :
$rpt->data_cell_add(number_format($total_column_count, 0), ['align'=>'right']);
endforeach;
$rpt->data_row_end();
$rpt->data_row_start();
$rpt->data_cell_add('Total Sums', ['colspan'=>$column_count, 'align'=>'center']);
$rpt->data_row_end();
$rpt->data_row_start();
foreach ($tot_sum as $total_column_sum) :
$rpt->data_cell_add(number_format($total_column_sum, 2), ['align'=>'right']);
endforeach;
$rpt->data_row_end();
$rpt->data_end();
$rpt->report_end();
$rpt->output_report();
?>