1, 'business_id' => (int)$session_bid]; } else { $where = ['isactive != ' => NULL]; } $SchemeModel = new SchemeModel(); $data['page_name'] = 'Scheme Details'; $data['scheme'] = $SchemeModel->getSchemeNamesAndDurationsByBusiness($session_bid); $this->render_page('scheme_list', $data); } else { return redirect()->to('login'); } } ## To Load Scheme Form (Add/Update) public function new_scheme($id) { helper('session'); $session_bid = get_business_id(); if ($id === '0') { $data['page_name'] = 'Add Scheme'; $data['scheme'] = []; } else if ($id !== '0') { $data['page_name'] = 'Edit Scheme'; $model = new SchemeModel(); $imageData = $model->getBooksAndImagesByBookId($id); $data['scheme'] = $imageData[0]; // print_r($data);die(); } $data['session_bid'] = $session_bid; $this->render_page('scheme_form', $data); } ## For inserting/updating details of scheme public function insert_scheme() { try{ helper('session'); $session_bid = get_business_id(); $session_uid = get_logged_user_id(); $SchemeModel = new SchemeModel(); $data = [ 'title' => $this->request->getPost('sname'), 'description' => $this->request->getPost('sdescription'), 'price' => $this->request->getPost('sprice'), 'duration' => $this->request->getPost('sduration'), 'sku' => $this->request->getPost('sku'), 'business_id' => $this->request->getPost('business_id') ]; $scheme_id = $this->request->getPost('book_id'); // Get the business ID for update if (empty($scheme_id)) { // It's an insert operation $data['isactive'] = 1; $data['created_by'] = $session_uid; if ($SchemeModel->insert($data)) { $last_inserted_id = $SchemeModel->insertID(); // Retrieve the category name 'membership' $category_name = 'membership'; // Find the category ID for 'membership' from the category table $db = db_connect(); $category = $db->table('category') ->select('id') ->where('name', $category_name) ->get() ->getRow(); // Check if the category exists if ($category) { // Insert data into book_categories table $db->table('book_categories')->insert([ 'book_id' => $last_inserted_id, 'category_id' => $category->id, 'created_by' => $session_uid ]); } session()->setFlashdata('success', 'Scheme has been added successfully.'); $this->logger->info("Scheme: has been added successfully. Inserted ID = " . $last_inserted_id); } else { session()->setFlashdata('error', 'Scheme could not be added. Please try again..'); $this->logger->error("Scheme: Err could not be added. Please try again."); } if (!empty($_FILES['img_name']['name'])) { // A new image has been uploaded // First, delete the previous image file if it exists if (!empty($imageData) && file_exists(WRITEPATH . 'public/uploads/' . $imageData[0]->img_name)) { unlink(WRITEPATH . 'public/uploads/' . $imageData[0]->img_name); } $imageData = [ 'book_id' => $last_inserted_id, // Assuming $last_inserted_id contains the ID of the inserted scheme 'img_name' => $_FILES['img_name']['name'], 'is_cover' => 1, // Set this based on your requirements 'type' => $_FILES['img_name']['type'] ]; // Move the uploaded image to a desired location $imagePath = 'public/uploads/' . $_FILES['img_name']['name']; move_uploaded_file($_FILES['img_name']['tmp_name'], $imagePath); // Update image data in the 'book_images' table $SchemeModel->insertImage($imageData); } } else { // It's an update operation $isactive = $this->request->getPost('isactive'); $data['isactive'] = ($isactive) ? 1 : 0; $data['updated_by'] = $session_uid; $SchemeModel->update($scheme_id, $data); if ($SchemeModel->update($scheme_id, $data)) { session()->setFlashdata('success', 'Scheme has been updated successfully.'); $this->logger->info("Scheme: has been updated successfully. Updated Scheme ID = " . $scheme_id); } else { session()->setFlashdata('error', 'Scheme update failed. Please try again.'); $this->logger->error("Scheme: Err Failed to update ID =" . $scheme_id); } } } catch (\Exception $e) { $this->logger->error("Scheme: Err Occur = ".$e->getMessage()." File = ". $e->getFile() . " Line = " . $e->getLine()); session()->setFlashdata('error', 'Message: ' . $e->getMessage()); } return redirect()->route('scheme_list'); } ## For delete the Scheme details (Which means inactive the details) public function delete_scheme($id) { try { helper('session'); $session_uid = get_logged_user_id(); $SchemeModel = new SchemeModel(); $where = ['book_id' => (int)$id, 'isactive =' => 1]; // $existingScheme = $SchemeModel->find($id); $existingScheme = $SchemeModel->where($where)->find($id); if ($existingScheme) { $this->logger->Info("Scheme: Going to Inactive ID = ".$id); $data = ['isactive' => 0 , 'updated_by' => $session_uid]; if ($SchemeModel->update($id, $data)) { $activeSchemeCategory = $SchemeModel->getData('book_categories', $where); if(!empty($activeSchemeCategory)){ for ($z = 0; $z < count($activeSchemeCategory); $z++) { $SchemeCategoryIds[$z] = $activeSchemeCategory[$z]->id; } if(!empty($SchemeCategoryIds)){ $this->logger->Info("Scheme: Categories Going to Inactived = ".implode(" ",$SchemeCategoryIds)); $inactive_category_whereIn[0] = 'id'; $inactive_category_whereIn[1] = $SchemeCategoryIds; $SchemeModel->inactiveMissingDetails('book_categories',$data,$where, $inactive_category_whereIn); } } session()->setFlashdata('success', 'Deleted successfully.'); $this->logger->info("Scheme: has been Inactived successfully. Inactived ID = " . $id); } else { $this->logger->error("Scheme: Not able to Inactive ID =" . $id); throw new \Exception("Data Not able to Deleted"); } } } catch (\Exception $e) { $this->logger->error("Scheme: Err Occur = ".$e->getMessage()." File = ". $e->getFile() . " Line = " . $e->getLine()); session()->setFlashdata('error', 'Message: ' . $e->getMessage()); } return redirect()->route('scheme_list'); } }