271 lines
11 KiB
PHP
Executable File
271 lines
11 KiB
PHP
Executable File
<?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 = ['events.business_id' => (int)$session_bid];
|
|
} else {
|
|
$where = ['events.business_id != ' => NULL];
|
|
}
|
|
|
|
$EventModel = new EventModel();
|
|
$data['page_name'] = 'Event Details';
|
|
$events = $EventModel->where('isactive',1)->where($where)->orderBy('event_id', 'DESC')->findAll(); // Retrieve the events
|
|
|
|
// Sort the events by ID in descending order (newest first)
|
|
// usort($events, function ($a, $b) {
|
|
// return $b['id'] - $a['id'];
|
|
// });
|
|
|
|
$data['event'] = $events; // Assign the sorted array to $data['event']
|
|
$data['session_bid'] = $session_bid;
|
|
|
|
$this->render_page('event_list', $data);
|
|
} else {
|
|
return redirect()->to('login');
|
|
}
|
|
}
|
|
|
|
public function new_event($id)
|
|
{
|
|
helper('session');
|
|
$session_bid = get_business_id();
|
|
if ($id === '0') {
|
|
$data['page_name'] = 'Add Event';
|
|
$data['event'] = [];
|
|
} else if ($id !== '0') {
|
|
$data['page_name'] = 'Edit Event';
|
|
$model = new EventModel();
|
|
$model->setTable('events');
|
|
$edit_event_details = $model->where(['event_id' => $id])->first();
|
|
$data['event'] = $edit_event_details;
|
|
}
|
|
|
|
$data['session_bid'] = $session_bid;
|
|
|
|
$this->render_page('event_form', $data);
|
|
}
|
|
|
|
public function insert_event()
|
|
{
|
|
$this->logger->info("Event: Inserting/Updating Details");
|
|
$validationRules = [
|
|
'ename' => 'required'
|
|
];
|
|
|
|
if (!$this->validate($validationRules)) {
|
|
$validation = \Config\Services::validation();
|
|
$errorMessage = $validation->getErrors();
|
|
$firstError = reset($errorMessage);
|
|
return redirect()->back()->with('error', $firstError)->withInput();
|
|
}
|
|
|
|
try {
|
|
helper('session');
|
|
$session_bid = get_business_id();
|
|
$session_uid = get_logged_user_id();
|
|
$EventModel = new EventModel();
|
|
$data = [
|
|
'event_name' => $this->request->getPost('ename'),
|
|
'business_id' => $this->request->getPost('business_id')
|
|
];
|
|
$event_id = $this->request->getPost('event_id'); // Get the business ID for update
|
|
|
|
if (empty($event_id)) {
|
|
// It's an insert operation
|
|
$data['created_by'] = $session_uid;
|
|
// $EventModel->insert($data);
|
|
if ($EventModel->insert($data)) {
|
|
session()->setFlashdata('success', 'Event has been added successfully.');
|
|
$this->logger->info("Event : has been added successfully. Inserted ID = " . $EventModel->insertID());
|
|
} else {
|
|
session()->setFlashdata('error', 'Event could not be added. Please try again..');
|
|
$this->logger->error("Event: Err data could not be added. Please try again.");
|
|
}
|
|
} else {
|
|
// It's an update operation
|
|
$data['updated_by'] = $session_uid;
|
|
if ($EventModel->update($event_id, $data)) {
|
|
session()->setFlashdata('success', 'Event has been updated successfully.');
|
|
$this->logger->info("Event: has been updated successfully. Updated Event ID = " . $event_id);
|
|
} else {
|
|
session()->setFlashdata('error', 'Event update failed. Please try again.');
|
|
$this->logger->error("Event: Err Failed to update ID =" . $event_id);
|
|
}
|
|
}
|
|
} catch (\Exception $e) {
|
|
$this->logger->error("Event: Err Occur = " . $e->getMessage() . " Line = " . $e->getLine() . " File = " . $e->getFile());
|
|
session()->setFlashdata('error', 'Message: ' . $e->getMessage());
|
|
}
|
|
return redirect()->route('event_list');
|
|
}
|
|
|
|
public function invoice_number_format($id)
|
|
{
|
|
helper('session');
|
|
helper('financial_year_helper');
|
|
$session_bid = get_business_id();
|
|
$data['page_name'] = 'Edit Invoice number formatting';
|
|
$model = new EventModel();
|
|
$edit_event_details = $model->setTable('invoice_number_formatting')->where(['id' => (int)$id,'business_id'=>$session_bid])->first();
|
|
$data['event'] = $edit_event_details;
|
|
$data['session_bid'] = $session_bid;
|
|
$data['financial_year'] = get_financial_year();
|
|
|
|
$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("Event: 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"));
|
|
}
|
|
|
|
public function change_default_event() {
|
|
helper('session');
|
|
$session_bid = get_business_id();
|
|
$session_uid = get_logged_user_id();
|
|
$response = "";
|
|
|
|
$EventModel = new EventModel();
|
|
$where = ['events.business_id' => (int)$session_bid, 'events.isactive' => 1, 'events.is_the_default' => 1];
|
|
$events = $EventModel->where($where)->orderBy('event_id', 'DESC')->findAll(); // Retrieve the events
|
|
|
|
if (count($events) > 0) {
|
|
$dataToUpdate = ['is_the_default' => 0];
|
|
$eventIds = array_column($events, 'event_id');
|
|
// $EventModel->whereIn('event_id', $eventIds)->set($dataToUpdate)->update();
|
|
$affectedRows = $EventModel->whereIn('event_id', $eventIds)->set($dataToUpdate)->update();
|
|
$this->logger->info("Changed To Default as 0 - Event ID are " . implode(", ", $eventIds) . ". Affected Rows: " . $affectedRows);
|
|
}
|
|
|
|
$data['is_the_default'] = $this->request->getPost('is_the_default');
|
|
$data['updated_by'] = $session_uid;
|
|
$where = ['events.business_id' => (int)$session_bid, 'events.isactive' => 1, 'events.event_id' => $this->request->getPost('event_id')];
|
|
$update_result = $EventModel->updateData('events', $data, $where);
|
|
|
|
if ($update_result['info']) {
|
|
$response = "You have set this event as the Default";
|
|
$this->logger->info($update_result['info']);
|
|
} else {
|
|
$response = $update_result['err'];
|
|
$this->logger->error($update_result['err']);
|
|
}
|
|
|
|
return $this->response->setJSON(['response' => $response]);
|
|
}
|
|
|
|
public function delete_event($id)
|
|
{
|
|
try {
|
|
helper('session');
|
|
$session_uid = get_logged_user_id();
|
|
$event_model = new EventModel();
|
|
|
|
// Define the common where condition
|
|
$where = ['event_id' => (int)$id, 'isactive' => 1];
|
|
|
|
// Check if the event exists based on the where condition
|
|
$existingEvent = $event_model->where($where)->first();
|
|
|
|
if ($existingEvent) {
|
|
// Log info about deactivating the event
|
|
$this->logger->Info("Event: Going to Inactive ID = " . $id);
|
|
|
|
// Data to update the event (mark as inactive)
|
|
$data = ['isactive' => 0, 'updated_by' => $session_uid];
|
|
|
|
// Update the event as inactive
|
|
// $result = $event_model->where('event_id', $id)->set($data)->update();
|
|
$result = $event_model->update($id, $data);
|
|
|
|
$last_query = $event_model->getLastQuery();
|
|
// dd($last_query);
|
|
// Check if the event was updated
|
|
if ($result) {
|
|
// Log success info
|
|
$this->logger->Info("Event: has been Inactived successfully. Inactived ID = " . $id);
|
|
|
|
// Set success flashdata
|
|
session()->setFlashdata('success', 'Event deactivated successfully.');
|
|
} else {
|
|
// Log error if update fails
|
|
$this->logger->error("Event: Not able to Inactive ID = " . $id);
|
|
throw new \Exception("Failed to deactivate the event.");
|
|
}
|
|
|
|
} else {
|
|
// Log error if no matching event is found
|
|
$this->logger->error("Event: No event found to deactivate with ID = " . $id);
|
|
session()->setFlashdata('error', 'Event not found or already inactive.');
|
|
}
|
|
|
|
} catch (\Exception $e) {
|
|
// Log error details
|
|
$this->logger->error("Event: Error Occurred = " . $e->getMessage() . " File = " . $e->getFile() . " Line = " . $e->getLine());
|
|
|
|
// Set error flashdata
|
|
session()->setFlashdata('error', 'Error: ' . $e->getMessage());
|
|
}
|
|
|
|
// Redirect to the event list page
|
|
return redirect()->route('event_list');
|
|
}
|
|
|
|
}
|