(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'); } }