124 lines
4.8 KiB
PHP
124 lines
4.8 KiB
PHP
<?php
|
|
|
|
namespace App\Controllers;
|
|
|
|
|
|
use App\Models\EventModel;
|
|
|
|
|
|
class Event extends BaseController
|
|
{
|
|
public function index()
|
|
{
|
|
helper('session');
|
|
if (is_session_active()) {
|
|
$session_role = get_user_role();
|
|
$session_bid = get_business_id();
|
|
|
|
$default_financial_year_condition = [
|
|
'campaign.created_on >= CONCAT(YEAR(NOW()) - IF(MONTH(NOW()) >= 1 AND MONTH(NOW()) <= 3, 1, 0), "-01-01")',
|
|
'campaign.created_on < CONCAT(YEAR(NOW()) + IF(MONTH(NOW()) >= 1 AND MONTH(NOW()) <= 3, 1, 0), "-01-01")'
|
|
];
|
|
|
|
if (!empty($session_role) && $session_role !== "sadmin") {
|
|
$where = ['campaign.business_id' => (int)$session_bid];
|
|
} else {
|
|
$where = ['campaign.business_id != ' => NULL];
|
|
}
|
|
// $where = array_merge($where, $default_financial_year_condition);
|
|
|
|
$EventModel = new EventModel();
|
|
$data['page_name'] = 'Campaign Details';
|
|
$campaigns = $EventModel->where($where)->orderBy('campaign_id', 'DESC')->findAll(); // Retrieve the campaigns
|
|
|
|
// Sort the campaigns by ID in descending order (newest first)
|
|
// usort($campaigns, function ($a, $b) {
|
|
// return $b['id'] - $a['id'];
|
|
// });
|
|
|
|
$data['campaign'] = $campaigns; // Assign the sorted array to $data['campaign']
|
|
$data['session_bid'] = $session_bid;
|
|
|
|
// echo '<pre>';
|
|
// print_r($data); die;
|
|
|
|
$this->render_page('event_list', $data);
|
|
} else {
|
|
return redirect()->to('login');
|
|
}
|
|
}
|
|
|
|
public function new_campaign($id)
|
|
{
|
|
helper('session');
|
|
$session_bid = get_business_id();
|
|
if ($id === '0') {
|
|
$data['page_name'] = 'Add Campaign';
|
|
$data['campaign'] = [];
|
|
} else if ($id !== '0') {
|
|
$data['page_name'] = 'Edit Campaign';
|
|
$model = new EventModel();
|
|
$model->setTable('campaign');
|
|
$edit_campaign_details = $model->where(['campaign_id' => $id])->first();
|
|
$data['campaign'] = $edit_campaign_details;
|
|
}
|
|
|
|
$data['session_bid'] = $session_bid;
|
|
|
|
$this->render_page('event_form', $data);
|
|
}
|
|
|
|
public function insert_event()
|
|
{
|
|
$this->logger->info("campaign: Inserting/Updating Details");
|
|
try {
|
|
helper('session');
|
|
$session_bid = get_business_id();
|
|
$session_uid = get_logged_user_id();
|
|
$EventModel = new EventModel();
|
|
$inputdate1 = date("Y-m-d", strtotime($this->request->getVar('start_date')));
|
|
$inputdate2 = date("Y-m-d", strtotime($this->request->getVar('end_date')));
|
|
|
|
$data = [
|
|
'name' => $this->request->getPost('name'),
|
|
'description' => $this->request->getPost('description'),
|
|
'start_date' =>$inputdate1,
|
|
'end_date' =>$inputdate2 ,
|
|
'business_id' => $this->request->getPost('business_id')
|
|
];
|
|
|
|
|
|
$campaign_id = $this->request->getPost('campaign_id'); // Get the business ID for update
|
|
|
|
if (empty($campaign_id)) {
|
|
// It's an insert operation
|
|
$data['created_by'] = $session_uid;
|
|
|
|
if ($EventModel->insert($data)) {
|
|
|
|
session()->setFlashdata('success', 'campaign has been added successfully.');
|
|
$this->logger->info("campaign : has been added successfully. Inserted ID = " . $EventModel->insertID());
|
|
} else {
|
|
session()->setFlashdata('error', 'campaign could not be added. Please try again..');
|
|
$this->logger->error("campaign: Err data could not be added. Please try again.");
|
|
}
|
|
} else {
|
|
// It's an update operation
|
|
$data['updated_by'] = $session_uid;
|
|
if ($EventModel->update($campaign_id, $data)) {
|
|
session()->setFlashdata('success', 'campaign has been updated successfully.');
|
|
$this->logger->info("campaign: has been updated successfully. Updated campaign ID = " . $campaign_id);
|
|
} else {
|
|
session()->setFlashdata('error', 'campaign update failed. Please try again.');
|
|
$this->logger->error("campaign: Err Failed to update ID =" . $campaign_id);
|
|
}
|
|
}
|
|
} catch (\Exception $e) {
|
|
$this->logger->error("campaign: Err Occur = " . $e->getMessage() . " Line = " . $e->getLine() . " File = " . $e->getFile());
|
|
session()->setFlashdata('error', 'Message: ' . $e->getMessage());
|
|
}
|
|
return redirect()->route('campaign_list');
|
|
}
|
|
|
|
}
|