196 lines
8.0 KiB
PHP
196 lines
8.0 KiB
PHP
<?php
|
|
|
|
namespace App\Controllers;
|
|
|
|
use App\Models\SchemeModel;
|
|
|
|
class Scheme extends BaseController
|
|
{
|
|
|
|
## For Scheme Listing
|
|
public function index()
|
|
{
|
|
helper('session');
|
|
|
|
if (is_session_active()) {
|
|
$session_bid = get_business_id();
|
|
$session_role = get_user_role();
|
|
if (!empty($session_role) && $session_role !== "sadmin") {
|
|
$where = ['isactive' => 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');
|
|
}
|
|
}
|