- Enabled SMTP debugging in PHPMailer for better error tracking. - Added a "Test send email" link in the Inventory Detail View for quick email testing. - Implemented automatic PDF generation and email sending upon Sales Order creation. - Created a new action for sending Sales Order emails with attached PDFs. - Added a new AJAX action for testing outgoing email server configurations. - Updated outgoing server settings to use new SMTP credentials. - Improved email templates for better user experience. - Added test scripts for validating PDF generation and email sending.
273 lines
4.1 KiB
PHP
273 lines
4.1 KiB
PHP
<?php
|
|
|
|
require_once 'include/utils/utils.php';
|
|
|
|
require_once 'includes/Loader.php';
|
|
|
|
vimport ('includes.runtime.EntryPoint');
|
|
|
|
require_once 'SUtiles.php';
|
|
|
|
@session_start();
|
|
|
|
// ✅ Securely initialize the current user (important for permission control)
|
|
if (isset($_SESSION['authenticated_user_id'])) {
|
|
$current_user = new Users();
|
|
$current_user->retrieveCurrentUserInfoFromFile($_SESSION['authenticated_user_id']);
|
|
$roleid = $current_user->roleid;
|
|
} else {
|
|
echo "Access denied. Not logged in.";
|
|
exit;
|
|
}
|
|
|
|
|
|
if(isset($_GET['table'])){
|
|
|
|
$table = $_GET['table'];
|
|
|
|
$current_user = new Users();
|
|
$current_user->retrieveCurrentUserInfoFromFile($_SESSION['authenticated_user_id']);
|
|
$roleid = $current_user->roleid;
|
|
|
|
$filename = "Data_".$table.".csv";
|
|
|
|
outputCsv($filename,$table,$roleid);
|
|
|
|
}
|
|
|
|
|
|
|
|
function outputCsv($fileName,$table,$roleid)
|
|
|
|
{
|
|
|
|
global $adb;
|
|
|
|
|
|
|
|
$filter = [];
|
|
|
|
$sub = (getMySubordinates($roleid));
|
|
|
|
$flag = false;
|
|
|
|
foreach($sub as $key => $value){
|
|
|
|
array_push($filter,$value);
|
|
|
|
};
|
|
|
|
|
|
|
|
$user_query = 'select * from '.$table;
|
|
|
|
|
|
if ($roleid == 'H34' || $roleid == 'H36' || $roleid == 'H38' || $roleid == 'H42' || $roleid == 'H44') {
|
|
$user_query = "SELECT * FROM `$table` WHERE parentrole LIKE '%::$roleid::%' OR parentrole = '$roleid'";
|
|
}
|
|
|
|
$result =$adb->query($user_query);
|
|
|
|
|
|
|
|
ob_clean();
|
|
|
|
header('Pragma: public');
|
|
|
|
header('Expires: 0');
|
|
|
|
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
|
|
|
|
header('Cache-Control: private', false);
|
|
|
|
header('Content-Type: text/csv; charset=utf-8');
|
|
|
|
header('Content-Disposition: attachment;filename=' . $fileName);
|
|
|
|
|
|
|
|
|
|
|
|
$fp = fopen('php://output', 'w');
|
|
|
|
|
|
|
|
while ($row = $adb->fetchByAssoc($result)) {
|
|
|
|
if (!$flag) {
|
|
|
|
// display field/column names as first row
|
|
|
|
fputcsv($fp, array_keys($row),';');
|
|
|
|
$flag = true;
|
|
|
|
}
|
|
|
|
|
|
|
|
// if(isMedicalSuperviseur($roleid)){
|
|
|
|
// if (in_array($row['visiteur1'], $filter) || in_array($row['visiteur2'], $filter) || in_array($row['visiteur3'], $filter) || in_array($row['visiteur3'], $filter)) {
|
|
|
|
// $csv_values = array_map('decode_html', array_values($row));
|
|
|
|
// fputcsv($fp, $csv_values,';');
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// else{
|
|
|
|
$csv_values = array_map('decode_html', array_values($row));
|
|
|
|
fputcsv($fp, $csv_values,';');
|
|
|
|
// }
|
|
|
|
}
|
|
|
|
fclose($fp);
|
|
|
|
ob_flush();
|
|
|
|
die;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ancien code lakheder ben
|
|
|
|
if(isset($_GET['table'])){
|
|
|
|
$table = $_GET['table'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$extension = ".xls";//".csv";
|
|
|
|
if(isset($_GET['xls']) && $_GET['xls'] == true)
|
|
|
|
$extension = ".xls";
|
|
|
|
global $adb;
|
|
|
|
$filename = "Data_".$table.$extension; // File Name
|
|
|
|
// Download file
|
|
|
|
header("Content-Disposition: attachment; filename=\"$filename\"");
|
|
|
|
header("Content-Type: application/vnd.ms-excel");
|
|
|
|
$user_query = 'select * from '.$table;
|
|
|
|
$result =$adb->query($user_query);
|
|
|
|
// Write data to file
|
|
|
|
$flag = false;
|
|
|
|
ob_end_clean();
|
|
|
|
ob_start();
|
|
|
|
while ($row = $adb->fetch_array($result)) {
|
|
|
|
unset($row['0']);
|
|
|
|
unset($row['1']);
|
|
|
|
unset($row['2']);
|
|
|
|
unset($row['3']);
|
|
|
|
unset($row['4']);
|
|
|
|
unset($row['5']);
|
|
|
|
unset($row['6']);
|
|
|
|
unset($row['7']);
|
|
|
|
unset($row['8']);
|
|
|
|
unset($row['9']);
|
|
|
|
unset($row['10']);
|
|
|
|
unset($row['11']);
|
|
|
|
unset($row['12']);
|
|
|
|
unset($row['13']);
|
|
|
|
unset($row['14']);
|
|
|
|
unset($row['15']);
|
|
|
|
unset($row['16']);
|
|
|
|
unset($row['17']);
|
|
|
|
unset($row['18']);
|
|
|
|
unset($row['19']);
|
|
|
|
unset($row['20']);
|
|
|
|
unset($row['21']);
|
|
|
|
if (!$flag) {
|
|
|
|
// display field/column names as first row
|
|
|
|
echo implode("\t", array_keys($row)) . "\r\n";
|
|
|
|
$flag = true;
|
|
|
|
}
|
|
|
|
|
|
|
|
$temp = implode("\t", array_values($row));
|
|
|
|
$temp = str_replace("'", " ", $temp);
|
|
|
|
$temp = str_replace("’", " ", $temp);
|
|
|
|
$temp = str_replace("ç", "c", $temp);
|
|
|
|
$temp = str_replace("â", "a", $temp);
|
|
|
|
$temp = str_replace("è", "e", $temp);
|
|
|
|
$temp = str_replace('é', 'e', $temp);
|
|
|
|
$temp = str_replace('ï', 'e', $temp);
|
|
|
|
$temp = str_replace('Ï', 'i', $temp);
|
|
|
|
$temp = str_replace('É', 'E', $temp);
|
|
|
|
$temp = str_replace(' ', "", $temp);
|
|
|
|
$temp = str_replace('ô', "o", $temp);
|
|
|
|
$temp = str_replace(array("\r", "\n"), '', $temp);
|
|
|
|
//preg_replace( "/\r|\n/", "", $temp );
|
|
|
|
echo str_replace('.', ',', $temp)."\r\n";
|
|
|
|
}
|
|
|
|
*/
|
|
|
|
?>
|