Merge branch 'dev' of bitbucket.org:jubilian/nhance into dev
This commit is contained in:
commit
3c6b2704b4
@ -363,7 +363,8 @@ $routes->cli('cli/processjobs', 'JobWorker::processJobs');
|
||||
|
||||
$routes->get("processjob", "JobWorker::processJob");
|
||||
$routes->cli('cli/new_gmail_token', 'MasterController::generateNewGmailAPIToken');
|
||||
$routes->cli('cli/send_mail_cli(/:any)?', 'MasterController::testGmailAPIViaCLI$1');
|
||||
$routes->cli('cli/send_mail_cli', 'MasterController::testGmailAPIViaCLI');
|
||||
$routes->cli('cli/check_bounce_mail_cli', 'MasterController::testCheckBounceMails');
|
||||
$routes->cli('cli/app_check_list', 'MasterController::appCheckList');
|
||||
$routes->cli('cli/new_gdrive_token', 'GoogleDriveController::generateNewGoogleDriveAccessToken');
|
||||
|
||||
|
||||
@ -279,7 +279,7 @@ class EmployeeController extends AdminController
|
||||
|
||||
$data['fileList'] = $this->fileModel
|
||||
->select([
|
||||
'files.*',
|
||||
'files.id','files.file_name','files.created_by','files.created_at','files.is_active','files.status','files.client_id','files.policy_id','files.client_branch_id','files.action','files.uploaded_by',
|
||||
'up.emp_code',
|
||||
'up.first_name',
|
||||
'c.short_name',
|
||||
@ -301,9 +301,10 @@ class EmployeeController extends AdminController
|
||||
->join('client_branch cb', 'files.client_branch_id = cb.id', 'left')
|
||||
->join('policy_type', 'policy_type.id = cp.policy_type_id')
|
||||
->join('clients c', 'files.client_id = c.id and files.client_id = cp.client_id', 'left')
|
||||
->where('files.created_by', get_session_userid())
|
||||
// ->where('files.created_by', get_session_userid())
|
||||
->orderBy('files.created_at', 'desc')
|
||||
->findAll();
|
||||
->limit(100)
|
||||
->find();
|
||||
// dd($data['fileList']);
|
||||
|
||||
$data['batch_list'] = $this->batchFileModel->select(
|
||||
@ -318,7 +319,8 @@ class EmployeeController extends AdminController
|
||||
->join('policy_type', 'policy_type.id = client_policy.policy_type_id')
|
||||
->join('clients', 'clients.id = client_policy.client_id')
|
||||
->orderBy('batch_files.id', 'desc')
|
||||
->findAll();
|
||||
->limit(100)
|
||||
->find();
|
||||
|
||||
|
||||
// dd($data['fileList']);die();
|
||||
@ -825,7 +827,7 @@ class EmployeeController extends AdminController
|
||||
$res = $empServiceController->employeesOnboardPreprocess(['client_policy_id' => $client_policy_id,'client_branch_id' => $client_data['client_branch_id']]);
|
||||
// dd($res);
|
||||
|
||||
$count = count($res);
|
||||
$count = ($res);
|
||||
$message = $count . ' Employees are Initiate Onboard Process againts Client ' . $client_data['client_name'] . ' and the Policy is ' . $client_data['policy_name'];
|
||||
session()->setFlashdata('success1', $message);
|
||||
return redirect()->to(base_url('/employee/upload'));
|
||||
|
||||
@ -309,6 +309,7 @@ class EmployeeRestController extends AdminController
|
||||
$data['client_policy_id']= $client_policy_id;
|
||||
$data['basic_cover_si']= $basic_cover_si;
|
||||
$data['status']= 'draft';
|
||||
$data['date_coverage'] = $this->getEmployeeCoverageDate($emp_code, $client_policy_id);
|
||||
|
||||
$this->employeePolicyModel->insert($data);
|
||||
|
||||
@ -320,10 +321,7 @@ class EmployeeRestController extends AdminController
|
||||
public function updatePremiumAmount($client_policy_id , $emp_code , $client_branch_id)
|
||||
{
|
||||
$response = $this->calculatePremium($client_policy_id , $emp_code , null , $client_branch_id);
|
||||
// echo '<pre>';
|
||||
// print_r($response);
|
||||
// echo '</pre>';
|
||||
// die();
|
||||
|
||||
if(count($response[$emp_code]))
|
||||
{
|
||||
|
||||
@ -354,6 +352,45 @@ class EmployeeRestController extends AdminController
|
||||
}
|
||||
}
|
||||
|
||||
public function getEmployeeCoverageDate($emp_code, $client_policy_id)
|
||||
{
|
||||
$empData = $this->employeeModel->where('emp_code',$emp_code)->where('relationship', 'self')->where('is_active',1)->first();;
|
||||
if($empData)
|
||||
{
|
||||
$empPolicyData = $this->employeePolicyModel->select('employee_polices.employee_id,employee_polices.client_policy_id,employee_polices.date_coverage,client_policy.policy_type_id,client_policy.base_policy')
|
||||
->join('client_policy', 'client_policy.id = employee_polices.client_policy_id', 'left')
|
||||
->where('employee_polices.employee_id' , $empData['id'] )
|
||||
->where('employee_polices.is_active' , 1 )
|
||||
->findAll();
|
||||
if(count($empPolicyData))
|
||||
{
|
||||
// find same policy 'self' date of coverage
|
||||
$filterSelfPolicy = array_filter($empPolicyData, function($row) use ($client_policy_id) {
|
||||
return $row['client_policy_id'] == $client_policy_id;
|
||||
});
|
||||
$filterSelfPolicy = array_values($filterSelfPolicy); // Reset the index of the filtered result
|
||||
|
||||
if(count($filterSelfPolicy)){
|
||||
return $filterSelfPolicy[0]['date_coverage'];
|
||||
}else{
|
||||
// find base policy 'self' date of coverage
|
||||
$basePolicy = $this->clientPolicyModel->where('id',$client_policy_id)->get()->getRow()->base_policy;
|
||||
|
||||
$filterSelfBasePolicy = array_filter($empPolicyData, function($row) use ($basePolicy) {
|
||||
return $row['client_policy_id'] == $basePolicy;
|
||||
});
|
||||
$filterSelfBasePolicy = array_values($filterSelfBasePolicy); // Reset the index of the filtered result
|
||||
|
||||
if(count($filterSelfBasePolicy)){
|
||||
return $filterSelfBasePolicy[0]['date_coverage'];
|
||||
}else{ return null; }
|
||||
}
|
||||
|
||||
}else{ return null; }
|
||||
|
||||
}else{ return null; }
|
||||
}
|
||||
|
||||
|
||||
public function RelationshipMap($value){
|
||||
|
||||
@ -432,7 +469,6 @@ class EmployeeRestController extends AdminController
|
||||
|
||||
}
|
||||
|
||||
// Get the RelationShip list
|
||||
public function createOrUpdateEmployeePolicySiAmount()
|
||||
{
|
||||
|
||||
@ -632,11 +668,6 @@ class EmployeeRestController extends AdminController
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// Upload the Employee Detail in DB by Sheet Data
|
||||
public function employeeUpload()
|
||||
{
|
||||
@ -672,7 +703,7 @@ class EmployeeRestController extends AdminController
|
||||
$file_name_with_path = WRITEPATH."/uploads/excel/".$filename;
|
||||
|
||||
//make an entry in DB
|
||||
$file_id = $this->fileModel->insert(['file_name' => $filename, 'client_id' => $client_id, 'policy_id' => $policy_id, 'created_by' => $employee_id, 'status' => 'draft', 'action' => 'enrollment', 'client_branch_id' => $client_branch_id]); //here field policy_id have client_policy_id and not policy id from policy master
|
||||
$file_id = $this->fileModel->insert(['file_name' => $filename, 'client_id' => $client_id, 'policy_id' => $policy_id, 'created_by' => $employee_id, 'status' => 'inprogress', 'action' => 'enrollment', 'client_branch_id' => $client_branch_id]); //here field policy_id have client_policy_id and not policy id from policy master
|
||||
$this->myLogger->logme("error", '{file_id} - client uploaded success', ['file_id' => $file_id]);
|
||||
|
||||
$empServiceController = new EmployeeServiceController();
|
||||
@ -803,7 +834,8 @@ class EmployeeRestController extends AdminController
|
||||
'band'=> $extra['10'][$index],
|
||||
'basic_pay'=> $extra['11'][$index],
|
||||
'unit'=> isset($extra['12'][$index]) ? $extra['12'][$index] : null,
|
||||
'client_branch_id' => $client_branch_id
|
||||
'client_branch_id' => $client_branch_id,
|
||||
'date_coverage' => $extra['13'][$index]
|
||||
|
||||
];
|
||||
$basic_cover_si_value = null;
|
||||
@ -840,6 +872,8 @@ class EmployeeRestController extends AdminController
|
||||
$count = 0;
|
||||
for ($a=0; $a <count($dataToInsert) ; $a++)
|
||||
{
|
||||
$date_coverage = $dataToInsert[$a]['date_coverage'];
|
||||
unset($dataToInsert[$a]['date_coverage']);
|
||||
$employee = $this->employeeModel->checkExistingEmployee($dataToInsert[$a],$client_branch_id);
|
||||
$emp_id =0;
|
||||
|
||||
@ -891,6 +925,7 @@ class EmployeeRestController extends AdminController
|
||||
'employee_id'=>$emp_id,
|
||||
'client_policy_id'=>$policy_id,
|
||||
'status'=> 'draft',
|
||||
'date_coverage' => $date_coverage,
|
||||
'basic_cover_si'=>isset($basic_cover_si[$a]) ? $basic_cover_si[$a] : null
|
||||
];
|
||||
|
||||
@ -932,6 +967,7 @@ class EmployeeRestController extends AdminController
|
||||
|
||||
}
|
||||
}
|
||||
$this->fileModel->where('id', $file_id)->set(['status' => 'success','reason' => '','error_data' => ''])->update();
|
||||
return $this->respond(['status' => 'success', 'code' => 200, 'message' => "Success" ], 200);
|
||||
}else{
|
||||
return $this->respond(['status' => 'failed', 'code' => 404, 'message' => "Client id and Client Policy id is Not Match!" ], 404);
|
||||
|
||||
@ -594,6 +594,15 @@ class EmployeeServiceController extends AdminController
|
||||
'data_type' => 'str',
|
||||
'format' => null,
|
||||
'allowed_values' => null
|
||||
],
|
||||
'doc' => [
|
||||
'col_idx' => 13,
|
||||
'col_cell_name' => 'N',
|
||||
'col_name' => 'DOC',
|
||||
'is_mandatory' => false,
|
||||
'data_type' => 'str',
|
||||
'format' => 'd-M-Y',
|
||||
'allowed_values' => null
|
||||
]
|
||||
];
|
||||
|
||||
@ -605,7 +614,7 @@ class EmployeeServiceController extends AdminController
|
||||
4 => 4, // inception: gender (Gender) -> enrollment: gender (Gender)
|
||||
5 => 5, // inception: relationship (RELATIONSHIP) -> enrollment: relationship (Relation)
|
||||
6 => 9, // inception: basic_cover_si (BASIC COVER SI) -> enrollment: basic_cover_si (SI)
|
||||
7 => null, // inception: doc (Date of Coverage) -> No match in enrollment
|
||||
7 => 13, // inception: doc (Date of Coverage)
|
||||
8 => 3, // inception: doj (DOJ) -> enrollment: doj (DOJ)
|
||||
9 => 11, // inception: basic_pay (Basic Pay) -> enrollment: basic_pay (Basic Pay)
|
||||
10 => 10, // inception: band_grade (Band/Grade) -> enrollment: band_grade (Grade)
|
||||
@ -1088,7 +1097,7 @@ class EmployeeServiceController extends AdminController
|
||||
}// end of foreach
|
||||
}// end of if current action I,DA,A
|
||||
|
||||
// s($result);
|
||||
// return $result;
|
||||
// die();
|
||||
if(isset($result['error_summary']) && count($result['error_summary']))
|
||||
{
|
||||
@ -1249,7 +1258,7 @@ class EmployeeServiceController extends AdminController
|
||||
//get policy slab rates
|
||||
$slab_details = $this->policiesModel->getPolicySlabRatesForEmpOnboard($client_policy_id,$client_id);
|
||||
|
||||
$existing_famility_details = $this->employeeModel->getEmpFamilybyEmpCode(client_id: $client_id,client_policy_id: $client_policy_id,emp_status: ['enrolled','draft'],policy_status:['enrolled','draft']);
|
||||
$existing_famility_details = $this->employeeModel->getEmpFamilybyEmpCode(client_id: $client_id,client_policy_id: $client_policy_id,emp_status: ['enrolled'],policy_status:['enrolled']);
|
||||
|
||||
// $file = ['id' => null,'client_id' => $client_id,'policy_id' => $client_policy_id,'action' => 'inception'];
|
||||
$file = ['id' => null,'client_id' => $client_id,'policy_id' => $client_policy_id,'action' => 'inception','created_by' => get_session_userid(),'client_branch_id' => $params['client_branch_id']];
|
||||
@ -1613,6 +1622,7 @@ class EmployeeServiceController extends AdminController
|
||||
$value['emp_status'] = 'active';
|
||||
$value['created_by'] = $file['created_by'];
|
||||
$value['client_branch_id'] = $file['client_branch_id'];
|
||||
$value['family_floater_key'] = generate_family_floater_key($value['relationship']);
|
||||
$log_message = 'Insert Employee- '.$value['name'] .'('.$value['emp_code'] .') with PK ';
|
||||
// $this->myLogger->logme('error',('Insert - ' . $value['emp_code'] .' - '. $value['name']));
|
||||
// echo 'update emp';
|
||||
@ -1983,7 +1993,7 @@ public function employeesEnrollmentInsert($params)
|
||||
$value['file_id'] = $file_id;
|
||||
|
||||
$value['temp']['emp_id'] = null; // dummy value for using exisitng funciton in model
|
||||
if (strtolower(trim($value['relationship'])) === 'mother' || strtolower(trim($value['relationship'])) === 'Father') {
|
||||
if (strtolower(trim($value['relationship'])) === 'mother' || strtolower(trim($value['relationship'])) === 'father') {
|
||||
$relation = 'parent';
|
||||
} else if(strtolower(trim($value['relationship'])) === 'son' || strtolower(trim($value['relationship'])) === 'daughter'){
|
||||
$relation = 'child';
|
||||
@ -1997,6 +2007,7 @@ public function employeesEnrollmentInsert($params)
|
||||
$value['family_floater_key'] = $relation;
|
||||
|
||||
$policy_data['basic_cover_si'] = $row[9];
|
||||
$policy_data['date_coverage'] = $row[13];
|
||||
$policy_data['client_policy_id'] = $file['policy_id'];
|
||||
|
||||
$employee = $this->employeeModel->checkExistingEmployee($value,$file['client_branch_id']);
|
||||
|
||||
@ -34,6 +34,8 @@ use App\Models\InsurerExcelExportTemplateModel;
|
||||
use App\Models\SettingsModel;
|
||||
use App\Models\VehicleModel;
|
||||
|
||||
use CodeIgniter\CLI\CLI;
|
||||
|
||||
class MasterController extends AdminController
|
||||
{
|
||||
use ResponseTrait;
|
||||
@ -1605,11 +1607,21 @@ class MasterController extends AdminController
|
||||
{
|
||||
// print_r($email_id);die();
|
||||
// $gmailapi = \Config\Services::gmailapi();
|
||||
$email_id = CLI::getOption('to') ? CLI::getOption('to') : $email_id;
|
||||
$res = MailHelper::send_email(['mail' => $email_id, 'subject' => 'Mail Via CLI', 'message' => 'This is sample mail sent via CLI mode']);
|
||||
print_r($res);
|
||||
|
||||
}
|
||||
|
||||
public function testCheckBounceMails()
|
||||
{
|
||||
$gmailapi = \Config\Services::gmailapi();
|
||||
$from_date = CLI::getOption('from') ? CLI::getOption('from') : null;
|
||||
$to_date = CLI::getOption('to') ? CLI::getOption('to') : null;
|
||||
$count = CLI::getOption('count') ? CLI::getOption('count') : null;
|
||||
$page = CLI::getOption('page') ? CLI::getOption('page') : null;
|
||||
$res = $gmailapi->checkBounceStatus(from_date:$from_date,to_date:$to_date,count:$count,page:$page);
|
||||
print_r($res);
|
||||
}
|
||||
|
||||
public function appCheckList()
|
||||
{
|
||||
@ -1672,7 +1684,7 @@ class MasterController extends AdminController
|
||||
echo "Check the following..!\n";
|
||||
echo "1. Update Gmail Oauth credentials in 'gmail_api_oauth_credentials' field in 'settings' table in JSON format.\n";
|
||||
echo "2. Call this cli route to generate new access token: 'php public/index.php cli/new_gmail_token' from root of the project.\n";
|
||||
echo "3. Call this cli route : 'php public/index.php cli/send_mail_cli someone@gmail.com' to send test mail to testGmailAPIViaCLI ( replace someone@gmail.com with real time mail).\n";
|
||||
echo "3. Call this cli route : 'php public/index.php cli/send_mail_cli --to someone@gmail.com' to send test mail to testGmailAPIViaCLI ( replace someone@gmail.com with real time mail).\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@ -93,7 +93,8 @@ class MailHelper
|
||||
$emaill = $params['mail'];
|
||||
$subject = $params['subject'];
|
||||
$message = $params['message'];
|
||||
|
||||
$attachments = isset($params['attachments']) && count($params['attachments']) ? $params['attachments'] : [];
|
||||
|
||||
//check BCC mail
|
||||
if (isset($params['bcc'])) {
|
||||
$bcc = $params['bcc'];
|
||||
@ -118,7 +119,7 @@ class MailHelper
|
||||
|
||||
try {
|
||||
|
||||
$res = $gmailapi->sendMessage($emaill, $subject, $message, 'no-reply@nhanceindia.in', $reply_to, $cc, $bcc);
|
||||
$res = $gmailapi->sendMessage($emaill, $subject, $message, 'no-reply@nhanceindia.in', $reply_to, $cc, $bcc,$attachments);
|
||||
|
||||
if($res['status'])
|
||||
{
|
||||
|
||||
@ -1646,7 +1646,7 @@ if(!function_exists('get_premium_for_si'))
|
||||
// dd($slab_details);
|
||||
foreach ($slab_details as $skey => $slab_value)
|
||||
{
|
||||
if($slab_value['si'] == $si_amount && $slab_value['grade'] == $band && $slab_value['unit'] == $unit && $slab_value['max_si'] == 0)
|
||||
if($slab_value['si'] == $si_amount && $slab_value['grade'] == $band && $slab_value['unit'] == $unit)
|
||||
{
|
||||
return $slab_value['premium'];
|
||||
}
|
||||
@ -1800,7 +1800,7 @@ if(!function_exists('transform_enrollment_row_to_inception_row'))
|
||||
$res[4] = $row[4]; // inception: gender (Gender) -> enrollment: gender (Gender)
|
||||
$res[5] = $row[5]; // inception: relationship (RELATIONSHIP) -> enrollment: relationship (Relation)
|
||||
$res[6] = $row[9]; // inception: basic_cover_si (BASIC COVER SI) -> enrollment: basic_cover_si (SI)
|
||||
$res[7] = null; // inception: doc (Date of Coverage) -> No match in enrollment
|
||||
$res[7] = $row[13]; // inception: doc (Date of Coverage) -> No match in enrollment
|
||||
$res[8] = $row[3]; // inception: doj (DOJ) -> enrollment: doj (DOJ)
|
||||
$res[9] = $row[11]; // inception: basic_pay (Basic Pay) -> enrollment: basic_pay (Basic Pay)
|
||||
$res[10] = $row[10]; // inception: band_grade (Band/Grade) -> enrollment: band_grade (Grade)
|
||||
@ -2119,4 +2119,24 @@ if(!function_exists('group_slab_rates_basedon_name'))
|
||||
|
||||
return $temp_slab_rates;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//this key generating mandantory for display employee info in enrolment app w/o error
|
||||
if(!function_exists('generate_family_floater_key'))
|
||||
{
|
||||
function generate_family_floater_key($relationship)
|
||||
{
|
||||
if (strtolower(trim($relationship)) === 'mother' || strtolower(trim($relationship)) === 'father') {
|
||||
$relation = 'parent';
|
||||
} else if(strtolower(trim($relationship)) === 'son' || strtolower(trim($relationship)) === 'daughter'){
|
||||
$relation = 'child';
|
||||
}else if(strtolower(trim($relationship)) === 'father in Law' || strtolower(trim($relationship)) === 'mother in Law'){
|
||||
$relation = 'parent_in_law';
|
||||
}else if(strtolower(trim($relationship)) === 'spouse'){
|
||||
$relation = 'spouse';
|
||||
}else{
|
||||
$relation = 'self';
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -26,18 +26,20 @@ class GmailAPI
|
||||
'https://www.googleapis.com/auth/gmail.addons.current.message.readonly',
|
||||
'https://www.googleapis.com/auth/gmail.readonly',
|
||||
'https://www.googleapis.com/auth/gmail.labels',
|
||||
'https://www.googleapis.com/auth/gmail.send'
|
||||
'https://www.googleapis.com/auth/gmail.send',
|
||||
'https://mail.google.com/'
|
||||
]);
|
||||
$this->setAuthConfig();
|
||||
//die();
|
||||
$this->client->setAccessType('offline');
|
||||
$this->client->setPrompt('select_account consent');
|
||||
|
||||
if (php_sapi_name() !== 'cli' || (uri_string() == 'cli/send_mail_cli' || uri_string() == 'cli/processjob') )
|
||||
// echo uri_string();//die();
|
||||
if (php_sapi_name() !== 'cli' || (uri_string() == 'cli/send_mail_cli' || uri_string() == 'cli/processjob' || uri_string() == 'cli/check_bounce_mail_cli') )
|
||||
{
|
||||
// echo 'getting token';die();
|
||||
$this->setTokenFromDB(); // Call only if not in CLI
|
||||
}
|
||||
|
||||
// die();
|
||||
$this->service = new Gmail($this->client);
|
||||
|
||||
}
|
||||
@ -99,44 +101,73 @@ class GmailAPI
|
||||
$settingsModel->where('id', 1)->set([$this->tokenField => $token])->update();
|
||||
}
|
||||
|
||||
public function createMessage($to, $subject, $htmlContent, $from, $replyTo, $cc = [], $bcc = [])
|
||||
{
|
||||
$boundary = uniqid(rand(), true);
|
||||
public function createMessage($to, $subject, $htmlContent, $from, $replyTo, $cc = [], $bcc = [], $attachments = [])
|
||||
{
|
||||
// print_r($to);die();
|
||||
$boundary = uniqid(rand(), true); // Unique boundary for separating parts
|
||||
|
||||
$rawMessageString = "From: $from\r\n";
|
||||
$rawMessageString .= "To: $to\r\n";
|
||||
$rawMessageString .= "Reply-To: $replyTo\r\n";
|
||||
// Initialize raw message headers
|
||||
$rawMessageString = "From: $from\r\n";
|
||||
$rawMessageString .= "To: $to\r\n";
|
||||
$rawMessageString .= "Reply-To: $replyTo\r\n";
|
||||
|
||||
if (!empty($cc)) {
|
||||
$rawMessageString .= "Cc: " . implode(',', $cc) . "\r\n";
|
||||
}
|
||||
|
||||
if (!empty($bcc)) {
|
||||
$rawMessageString .= "Bcc: " . implode(',', $bcc) . "\r\n";
|
||||
}
|
||||
|
||||
$rawMessageString .= "Subject: $subject\r\n";
|
||||
$rawMessageString .= "MIME-Version: 1.0\r\n";
|
||||
$rawMessageString .= "Content-Type: multipart/alternative; boundary=\"$boundary\"\r\n\r\n";
|
||||
$rawMessageString .= "--$boundary\r\n";
|
||||
$rawMessageString .= "Content-Type: text/html; charset=UTF-8\r\n";
|
||||
$rawMessageString .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
|
||||
$rawMessageString .= $htmlContent . "\r\n";
|
||||
$rawMessageString .= "--$boundary--";
|
||||
|
||||
$rawMessage = base64_encode($rawMessageString);
|
||||
$rawMessage = str_replace(['+', '/', '='], ['-', '_', ''], $rawMessage);
|
||||
|
||||
$message = new Message();
|
||||
$message->setRaw($rawMessage);
|
||||
|
||||
return $message;
|
||||
if (!empty($cc)) {
|
||||
$rawMessageString .= "Cc: " . implode(',', $cc) . "\r\n";
|
||||
}
|
||||
|
||||
public function sendMessage($to, $subject, $htmlContent, $from, $replyTo, $cc = [], $bcc = [])
|
||||
if (!empty($bcc)) {
|
||||
$rawMessageString .= "Bcc: " . implode(',', $bcc) . "\r\n";
|
||||
}
|
||||
|
||||
$rawMessageString .= "Subject: $subject\r\n";
|
||||
$rawMessageString .= "MIME-Version: 1.0\r\n";
|
||||
$rawMessageString .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n\r\n";
|
||||
|
||||
// Add HTML content as an alternative part
|
||||
$rawMessageString .= "--$boundary\r\n";
|
||||
$rawMessageString .= "Content-Type: text/html; charset=UTF-8\r\n";
|
||||
$rawMessageString .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
|
||||
$rawMessageString .= $htmlContent . "\r\n\r\n";
|
||||
|
||||
// Process each attachment
|
||||
foreach ($attachments as $attachment) {
|
||||
$filePath = $attachment['filePath'];
|
||||
$fileName = $attachment['fileName'];
|
||||
$fileData = file_get_contents($filePath);
|
||||
|
||||
if ($fileData === false) {
|
||||
continue; // Skip this attachment if file cannot be read
|
||||
}
|
||||
|
||||
$base64File = base64_encode($fileData);
|
||||
|
||||
// Add each attachment with appropriate headers
|
||||
$rawMessageString .= "--$boundary\r\n";
|
||||
$rawMessageString .= "Content-Type: application/octet-stream; name=\"$fileName\"\r\n";
|
||||
$rawMessageString .= "Content-Disposition: attachment; filename=\"$fileName\"\r\n";
|
||||
$rawMessageString .= "Content-Transfer-Encoding: base64\r\n\r\n";
|
||||
$rawMessageString .= chunk_split($base64File) . "\r\n\r\n";
|
||||
}
|
||||
|
||||
// End boundary to signify the end of the message
|
||||
$rawMessageString .= "--$boundary--";
|
||||
|
||||
// Encode the final raw message in base64 for Gmail API
|
||||
$rawMessage = base64_encode($rawMessageString);
|
||||
$rawMessage = str_replace(['+', '/', '='], ['-', '_', ''], $rawMessage);
|
||||
|
||||
// Create Gmail message object
|
||||
$message = new Message();
|
||||
$message->setRaw($rawMessage);
|
||||
|
||||
return $message;
|
||||
}
|
||||
|
||||
|
||||
public function sendMessage($to, $subject, $htmlContent, $from, $replyTo, $cc = [], $bcc = [],$attachments = [])
|
||||
{
|
||||
try {
|
||||
$message = $this->createMessage($to, $subject, $htmlContent, $from, $replyTo, $cc, $bcc);
|
||||
$message = $this->createMessage($to, $subject, $htmlContent, $from, $replyTo, $cc, $bcc,$attachments);
|
||||
$res = $this->service->users_messages->send('me', $message);
|
||||
return array('status' => true, 'data' => $res);
|
||||
} catch (\Exception $e) {
|
||||
@ -177,4 +208,59 @@ class GmailAPI
|
||||
$this->myLogger->logme('error', 'New token generated and stored in the database.');
|
||||
print 'New token generated and stored in the database.';
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function checkBounceStatus( string $userId = 'me',string $from_date = null,string $to_date = null,int $count = null,string $page = null)
|
||||
{
|
||||
$query = 'from:mailer-daemon OR "delivery failed" OR "failure notice"';
|
||||
if($from_date != '' && $to_date != '')
|
||||
{
|
||||
$query .= 'after:' . $from_date . ' before:' . $to_date;
|
||||
}
|
||||
$maxResults = $count ? $count : 20;
|
||||
$pageToken = $page ? $page : null;
|
||||
|
||||
$params = ['q' => $query,'maxResults' => $maxResults];
|
||||
if(isset($pageToken)){ $params['pageToken'] = $pageToken; }
|
||||
$messages = $this->service->users_messages->listUsersMessages($userId, $params);
|
||||
|
||||
$bounceDetails = [];
|
||||
$pageToken = $messages->getNextPageToken();
|
||||
$bounceDetails['pageToken'] = $pageToken;
|
||||
if (count($messages->getMessages()) > 0) {
|
||||
foreach ($messages->getMessages() as $message) {
|
||||
// Get full message details
|
||||
$msg = $this->service->users_messages->get($userId, $message->getId(), ['format' => 'full']);
|
||||
|
||||
// Extract important headers and content
|
||||
$headers = $msg->getPayload()->getHeaders();
|
||||
$subject = null;
|
||||
$date = null;
|
||||
$to = null;
|
||||
|
||||
foreach ($headers as $header) {
|
||||
if ($header->getName() === 'Subject') {
|
||||
$subject = $header->getValue();
|
||||
}
|
||||
if ($header->getName() === 'Date') {
|
||||
$date = $header->getValue();
|
||||
}
|
||||
if ($header->getName() === 'To') {
|
||||
$to = $header->getValue();
|
||||
}
|
||||
}
|
||||
|
||||
$bounceDetails['data'][] = [
|
||||
'subject' => $subject,
|
||||
'date' => $date,
|
||||
'to' => $to,
|
||||
'snippet' => $msg->getSnippet(),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
return $bounceDetails;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -806,8 +806,8 @@ class EmployeePolicyModel extends Model
|
||||
->where('emp.client_id',$client_id)
|
||||
->where('employee_polices.client_policy_id',$policy_id);
|
||||
|
||||
$result->whereIn('employee_polices.status', ['draft', 'enrolled']);
|
||||
$result->whereIn('emp.emp_status', ['draft', 'enrolled']);
|
||||
$result->whereIn('employee_polices.status', ['enrolled']);
|
||||
$result->whereIn('emp.emp_status', ['enrolled']);
|
||||
$result = $result->findAll();
|
||||
return ($result);
|
||||
}
|
||||
|
||||
@ -67,7 +67,7 @@
|
||||
|
||||
<td><?php echo format_indian_number($file['amount'])?></td>
|
||||
<td class="reload">
|
||||
<?php echo date('d-M-Y H:i:a', strtotime($file['created_at'])) ?> by <?php echo get_username($file['created_by']) ?>
|
||||
<?php echo change_date_format($file['created_at'],'Y-m-d H:i:s', 'd M Y h:i a') ?> by <?php echo get_username($file['created_by']) ?>
|
||||
</td>
|
||||
<td>
|
||||
<?php if ($file['status'] == 'failed') { ?>
|
||||
|
||||
@ -67,6 +67,7 @@
|
||||
<th class="font-weight-medium">Name</th>
|
||||
<th class="font-weight-medium">EMP Code</th>
|
||||
<th class="font-weight-medium">Relationship</th>
|
||||
<th class="font-weight-medium">Gender</th>
|
||||
<th class="font-weight-medium">Date of Birth</th>
|
||||
<th class="font-weight-medium">Policy name</th>
|
||||
<th class="font-weight-medium">Insurer name</th>
|
||||
@ -100,6 +101,7 @@
|
||||
<td><?php echo $employee['name']; ?></td>
|
||||
<td><?php echo $employee['emp_code']; ?></td>
|
||||
<td><?php echo $employee['relationship']; ?></td>
|
||||
<td><?php echo $employee['gender']; ?></td>
|
||||
<td><?php echo date('d/m/Y', strtotime($employee['dob'])); ?></td>
|
||||
<td><?php echo isset($employee['policy_type']) ? $employee['policy_type'] : ''; ?> - <?php echo isset($employee['policy_no']) ? $employee['policy_no'] : ''; ?></td>
|
||||
<td><?php echo $employee['insurer_short_name']; ?></td>
|
||||
|
||||
@ -53,7 +53,7 @@
|
||||
<!-- <td><?php echo isset($file['policy_name']) ? $file['policy_name'] : '' ?> - <?php echo isset($file['policy_no']) ? $file['policy_no'] : '' ?> - <?php echo isset($file['policy_type']) ? $file['policy_type'] : '' ?></td> -->
|
||||
<td><?php echo isset($file['policy_type']) ? $file['policy_type'] : '' ?> - <?php echo isset($file['policy_no']) ? $file['policy_no'] : '' ?></td>
|
||||
<td><?php echo $file['action'] ?></td>
|
||||
<td><?php echo fancy_date_time_format($file['created_at']) . ' by <strong>' . $file['first_name'] . '</strong>' ?>
|
||||
<td><?php echo change_date_format($file['created_at'],'Y-m-d H:i:s', 'd M Y h:i a') . ' by <strong>' . $file['first_name'] . '</strong>' ?>
|
||||
</td>
|
||||
<td>
|
||||
<?php
|
||||
|
||||
Binary file not shown.
Loading…
Reference in New Issue
Block a user