donation/app/Controllers/Event.php
2023-12-14 17:38:07 +05:30

178 lines
7.3 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();
if (!empty($session_role) && $session_role !== "sadmin") {
$where = ['campaign.business_id' => (int)$session_bid];
} else {
$where = ['campaign.business_id != ' => NULL];
}
$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');
}
public function invoice_number_format($id)
{
helper('session');
$session_bid = get_business_id();
$data['page_name'] = 'Edit invoice number formatting';
$model = new EventModel();
$edit_campaign_details = $model->setTable('invoice_number_formatting')->where(['id' => (int)$id,'business_id'=>$session_bid])->first();
$data['campaign'] = $edit_campaign_details;
$data['session_bid'] = $session_bid;
$this->render_page('invoice_number_formatting', $data);
}
public function insert_invoice_number_format()
{
$this->logger->info("insert_invoice_number_format: Inserting/Updating Details");
try {
helper('session');
$session_bid = get_business_id();
$session_uid = get_logged_user_id();
$EventModel = new EventModel();
$data = [
'next_id' => $this->request->getPost('nextid'),
'left_pad' => $this->request->getPost('leftpad'),
'id_formating' => $this->request->getPost('formating'),
'business_id' => $this->request->getPost('business_id')
];
$pk_id = $this->request->getPost('id'); // Get the business ID for update
if (empty($pk_id)) {
// It's an insert operation
$data['created_by'] = $session_uid;
// $EventModel->insert($data);
$insert_result = $EventModel->insertData('invoice_number_formatting', $data);
if ($insert_result['info']) {
session()->setFlashdata('success', "updated Successfully");
$this->logger->info($insert_result['info']);
} else {
session()->setFlashdata('error', $insert_result['err']);
$this->logger->error($insert_result['err']);
}
} else {
// It's an update operation
$data['updated_by'] = $session_uid;
$where = ['id' => $pk_id, 'business_id' => get_business_id()];
$update_result = $EventModel->updateData('invoice_number_formatting', $data,$where);
if ($update_result['info']) {
session()->setFlashdata('success',"updated Successfully");
$this->logger->info($update_result['info']);
} else {
session()->setFlashdata('error', $update_result['err']);
$this->logger->error($update_result['err']);
}
}
} 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()->to(base_url("invoice_number_format/1"));
}
}