diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 30b618b..7e7fa97 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -23,12 +23,14 @@ $routes->post("add_account", "Users::add_account"); //end Login// //Users// -// $routes->get('/', 'Users::index'); +$routes->get('user_list/(:any)', 'Users::user_list/$1'); $routes->get('index/', 'Users::index'); $routes->post("add_user", "Users::add_user"); $routes->post("get_branch", "Users::get_branch"); $routes->get("new_user/(:any)", "Users::new_user/$1"); -$routes->get("delete_user/(:any)", "Users::delete_user/$1"); +$routes->get("new_user_super_admin/(:any)", "Users::new_user_super_admin/$1"); +$routes->get("edit_user_super_admin/(:any)", "Users::edit_user_super_admin/$1"); +$routes->get("delete_user/(:any)", "Users::delete_user/$1"); //end users// //Business// @@ -117,62 +119,74 @@ $routes->get('dashboard', 'Users::dashboard'); -//---------------------- Make And Model | Service | Manufacturer | Inventory->Purchase | Complaint -// Make -$routes->get('make_index', 'Make::index'); -$routes->post('create_make', 'Make::create_make'); - -// Model -$routes->get('bike_model_index/(:any)', 'Model::index/$1'); -$routes->post('create_model', 'Model::create_model'); -$routes->post('status_model', 'Model::status_model'); - - -// Service - -$routes->get('service_index', 'Service::service_index'); -$routes->get("new_service/(:any)", "Service::new_service/$1"); -$routes->post("add_service", "Service::add_service"); -$routes->post("get_models_service", "Service::get_models"); -$routes->get("delete_service/(:any)", "Service::delete_service/$1"); -//Spare manufacturer -$routes->get('spare_manufacturer_index', 'Manufacturer::index'); -$routes->post('create_manufacturer', 'Manufacturer::create_manufacturer'); +//---------------------- Make And Model | Service | Manufacturer | Inventory->Purchase +//---------------------- Reorder Level | Return Order | Complaint + +// Make // + $routes->get('make_index', 'Make::index'); + $routes->post('create_make/(:any)', 'Make::create_make/$1'); + $routes->post('status_make', 'Make::status_make'); +// Make End's // -// Purchase +// Model // + $routes->get('bike_model_index/(:any)', 'Model::index/$1'); + $routes->post('create_model/(:any)', 'Model::create_model/$1'); + $routes->post('status_model', 'Model::status_model'); +// Model End's// + + +// Service // + $routes->get('service_index', 'Service::service_index'); + $routes->get("new_service/(:any)", "Service::new_service/$1"); + $routes->post("add_service", "Service::add_service"); + $routes->post("get_models_service", "Service::get_models"); + $routes->get("delete_service/(:any)", "Service::delete_service/$1"); +// Service End's// + + +//Spare manufacturer// + $routes->get('spare_manufacturer_index', 'Manufacturer::index'); + $routes->post('create_manufacturer/(:any)', 'Manufacturer::create_manufacturer/$1'); +//Spare manufacturer End's// + + +// Purchase// + $routes->get('purchase_index', 'Purchase::purchase_index'); + $routes->get("new_purchase/(:any)", "Purchase::new_purchase/$1"); + $routes->get('get_vendor/(:any)', 'Purchase::get_vendor/$1'); + $routes->post("add_purchase", "Purchase::add_purchase"); + $routes->get("delete_purchase/(:any)", "Purchase::delete_purchase/$1"); + $routes->post("getVendorProducts", "Purchase::getVendorProducts"); + $routes->post("delete_purchase_product", "Purchase::delete_purchase_product"); + $routes->get("download_purchase_invoice/(:any)", "Purchase::download_purchase_invoice/$1"); + $routes->get("reorder_purchase/(:any)", "Purchase::reorder_purchase/$1"); +// Purchase End's// -$routes->get('purchase_index', 'Purchase::purchase_index'); -$routes->get("new_purchase/(:any)", "Purchase::new_purchase/$1"); -$routes->get('get_vendor/(:any)', 'Purchase::get_vendor/$1'); -$routes->post("add_purchase", "Purchase::add_purchase"); -$routes->get("delete_purchase/(:any)", "Purchase::delete_purchase/$1"); -$routes->post("getVendorProducts", "Purchase::getVendorProducts"); -$routes->post("delete_purchase_product", "Purchase::delete_purchase_product"); -$routes->get("download_purchase_invoice/(:any)", "Purchase::download_purchase_invoice/$1"); -$routes->get("reorder_purchase/(:any)", "Purchase::reorder_purchase/$1"); // Reorder Level// -$routes->get('reorder_level_index', 'Reorderlevel::reorder_level_index'); -$routes->get('rise_order/(:any)', 'Reorderlevel::rise_order/$1'); + $routes->get('reorder_level_index', 'Reorderlevel::reorder_level_index'); + $routes->get('rise_order/(:any)', 'Reorderlevel::rise_order/$1'); +// Reorder Level// + // Return Order// -$routes->get('return_order_index', 'ReturnOrder::return_order_index'); -$routes->get('return_order', 'ReturnOrder::return_order'); -$routes->get("new_return/(:any)", "ReturnOrder::new_return/$1"); -$routes->post("add_return_purchase", "ReturnOrder::add_return_purchase"); -$routes->get('get_vendor/(:any)', 'Purchase::get_vendor/$1'); - -$routes->get('edit_return_order/(:any)', 'ReturnOrder::edit_return_order/$1'); - + $routes->get('return_order_index', 'ReturnOrder::return_order_index'); + $routes->get('return_order', 'ReturnOrder::return_order'); + $routes->get("new_return/(:any)", "ReturnOrder::new_return/$1"); + $routes->post("add_return_purchase", "ReturnOrder::add_return_purchase"); + $routes->get('get_vendor/(:any)', 'Purchase::get_vendor/$1'); + $routes->get('edit_return_order/(:any)', 'ReturnOrder::edit_return_order/$1'); +// Return Order End's// // Complaint -$routes->get('complaint_index', 'Complaint::complaint_index'); -$routes->post('create_complaint/(:any)', 'Complaint::create_complaint/$1'); -$routes->get('edit_complaint/(:any)', 'Complaint::edit_complaint/$1'); -$routes->get("delete_complaint/(:any)", "Complaint::delete_complaint/$1"); + $routes->get('complaint_index', 'Complaint::complaint_index'); + $routes->post('create_complaint/(:any)', 'Complaint::create_complaint/$1'); + $routes->get('edit_complaint/(:any)', 'Complaint::edit_complaint/$1'); + $routes->get("delete_complaint/(:any)", "Complaint::delete_complaint/$1"); +// Complaint End's// diff --git a/app/Controllers/Complaint.php b/app/Controllers/Complaint.php index bb1bf1a..e2870a4 100644 --- a/app/Controllers/Complaint.php +++ b/app/Controllers/Complaint.php @@ -5,40 +5,42 @@ namespace App\Controllers; use App\Models\ComplaintModel; use CodeIgniter\API\ResponseTrait; - - class Complaint extends BaseController { - public $session; use ResponseTrait; - public function __construct() { - - $this->session = session(); - + $this->session = session(); } public function complaint_index() { if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); } - $ComplaintModel = new ComplaintModel(); $complaint = $ComplaintModel->findAll(); + $data['complaint']=$complaint; return view('complaint_list',$data); } - public function create_complaint($complaint_id) { if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); } try { + + $data = [ + "name" => $this->request->getPost('name'), + "labour_charge" => $this->request->getPost('labour_charge'), + "cgst" => $this->request->getPost('tax')/2, + "sgst" => $this->request->getPost('tax')/2, + "tax" => $this->request->getPost('tax') + ]; + if (!$complaint_id) { $ComplaintModel = new ComplaintModel(); - $data = $this->request->getPost(); + // $data = $this->request->getPost(); $inserted = $ComplaintModel->insert($data); if ($inserted) { $result = $data; @@ -49,7 +51,7 @@ class Complaint extends BaseController } } else { $ComplaintModel = new ComplaintModel(); - $data = $this->request->getPost(); + // $data = $this->request->getPost(); $updated = $ComplaintModel->update($complaint_id,$data); if ($updated) { $result = $data; @@ -65,39 +67,31 @@ class Complaint extends BaseController } } - - public function edit_complaint($complaint_id) { - - $data['page_name']= 'Edit Complaint'; - $complaintModel = new ComplaintModel(); - $complaint = $complaintModel->where('complaint_id',$complaint_id)->findAll(); - $data['complaint']=$complaint; + $data['page_name']= 'Edit Complaint'; + $data['complaint']=$complaint; return json_encode($data); } - - public function delete_complaint($complaint_id) { - if (!empty($complaint_id)) { - $ComplaintModel = new ComplaintModel(); - $data['isactive'] = 0; - - if ($ComplaintModel->update($complaint_id, $data)) { - // Return success response - return redirect()->to('complaint_index'); + if (!empty($complaint_id)) { + $ComplaintModel = new ComplaintModel(); + $data['isactive'] = 0; + + if ($ComplaintModel->update($complaint_id, $data)) { + // Return success response + return redirect()->to('complaint_index'); + } } - } - // Return error response if deletion fails - return $this->response->setJSON(['success' => false]); -} - + // Return error response if deletion fails + return $this->response->setJSON(['success' => false]); + } } ?> \ No newline at end of file diff --git a/app/Controllers/Login.php b/app/Controllers/Login.php index 212b229..af5940a 100644 --- a/app/Controllers/Login.php +++ b/app/Controllers/Login.php @@ -34,10 +34,9 @@ class Login extends BaseController // Check if user with provided email exists $user = $loginModel->where('email', $email)->first(); - // echo $user['password'];die; if ($user && password_verify($password, $user['password'])) { - + $Data = $this->UsersModel->select('users.* , roles.roles') ->join('roles', 'users.role = roles.role_id', 'left') ->where('users.email',$email) @@ -52,17 +51,23 @@ class Login extends BaseController return redirect()->to('dashboard'); } else { -// echo "Stored Password: " . $user['password'] . "
"; -// echo "Input Password: " . $password . "
"; - -// echo password_verify($password, $user['password']) ? 'Password match' : 'Password does not match';die; - // echo "pass wrong";die; // Invalid credentials, show error message - return redirect()->back()->withInput()->with('error', 'Invalid email or password'); + // Store error message and input data in session flash data + $this->session->setFlashdata('error', 'Invalid email or password'); + $this->session->setFlashdata('email_input', $email); + + // Redirect back to login page + return redirect()->to('/'); } } else { // Validation failed, show error messages - return redirect()->back()->withInput()->with('error', $this->validator->listErrors()); + // Store validation errors and input data in session flash data + $this->session->setFlashdata('errors', $this->validator->listErrors()); + $this->session->setFlashdata('email_input', $this->request->getPost('email')); + + // Redirect back to login page + return redirect()->to('/'); } } + } diff --git a/app/Controllers/Make.php b/app/Controllers/Make.php index d6d2763..b5382aa 100644 --- a/app/Controllers/Make.php +++ b/app/Controllers/Make.php @@ -2,6 +2,7 @@ namespace App\Controllers; +use App\Models\BikemodelsModel; use App\Models\BikemakeModel; use CodeIgniter\API\ResponseTrait; @@ -31,7 +32,7 @@ class Make extends BaseController - public function create_make() + public function create_make($make_id) { try { $make_name = $this->request->getPost('makename'); @@ -39,17 +40,71 @@ class Make extends BaseController $data = [ 'make' => $make_name ]; - $inserted = $BikemakeModel->insert($data); - if ($inserted) { - $result = $data; - return $this->respond(['status' => 'success','code' => 200,'data' => $result],200); - } else { - $result = "No Match's"; - return $this->respond(['status' => 'failed','code' => 404,'data' => $result],404); + if (!$make_id) { + try { + $inserted = $BikemakeModel->insert($data); + } catch (\CodeIgniter\Database\Exceptions\DatabaseException $e) { + + return $this->respond(['status' => 'failed','code' => 404,'data' => $e->getMessage()],200); + } + + if ($inserted) { + $result = $data; + $make_list = $BikemakeModel->orderBy('make','asc')->findAll(); + + return $this->respond(['status' => 'success','code' => 200,'data' => $result,'make_list'=>$make_list],200); + } else { + $result = "No Match's"; + return $this->respond(['status' => 'failed','code' => 404,'data' => $result],404); + } + }else{ + $updated = $BikemakeModel->update($make_id,$data); + if ($updated) { + $result = $data; + return $this->respond(['status' => 'success','code' => 200,'data' => $result],200); + } else { + $result = "No Match's"; + return $this->respond(['status' => 'failed','code' => 404,'data' => $result],404); + } } } catch (\Exception $e) { return $this->respond(['status' => 'failed','code' => 500,'data' => $e],500); } } + + public function status_make() + { + + try { + $make_id = $this->request->getPost('make_id'); + $isactive = $this->request->getPost('isactive'); + + $BikemakeModel = new BikemakeModel(); + $BikemodelsModel = new BikemodelsModel(); + $data = [ + 'isactive' => $isactive + ]; + $updated = $BikemakeModel->update($make_id, $data); + $make_list = $BikemakeModel->orderBy('make','asc')->findAll(); + $model_list = $BikemodelsModel->where('make_id',$make_id)->findAll(); + + foreach ($model_list as $model) { + $model_id= $model['model_id']; + $model_updated = $BikemodelsModel->update($model_id, $data); + } + + if ($updated) { + $result = $data; + return $this->respond(['status' => 'success','code' => 200,'data' => $make_list],200); + } else { + $result = "No Match's"; + return $this->respond(['status' => 'failed','code' => 404,'data' => $result],404); + } + } catch (\Exception $exception) { + return $this->respond(['status' => 'failed','code' => 500,'data' => $exception],500); + } + } + + } \ No newline at end of file diff --git a/app/Controllers/Manufacturer.php b/app/Controllers/Manufacturer.php index c3ed2e2..5740902 100644 --- a/app/Controllers/Manufacturer.php +++ b/app/Controllers/Manufacturer.php @@ -32,7 +32,7 @@ class Manufacturer extends BaseController - public function create_manufacturer() + public function create_manufacturer($manufacturer_id) { if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); } try { @@ -43,14 +43,28 @@ class Manufacturer extends BaseController 'manufacturer_name' => $manufacturer_name, 'quality' => $quality, ]; - $inserted = $ManufacturerModel->insert($data); - if ($inserted) { - $result = $data; - return $this->respond(['status' => 'success','code' => 200,'data' => $result],200); + + if (!$manufacturer_id) { + $inserted = $ManufacturerModel->insert($data); + if ($inserted) { + $result = $data; + return $this->respond(['status' => 'success','code' => 200,'data' => $result],200); + } else { + $result = "No Match's"; + return $this->respond(['status' => 'failed','code' => 404,'data' => $result],404); + } } else { - $result = "No Match's"; - return $this->respond(['status' => 'failed','code' => 404,'data' => $result],404); + $updated = $ManufacturerModel->update($manufacturer_id,$data); + if ($updated) { + $result = $data; + return $this->respond(['status' => 'success','code' => 200,'data' => $result],200); + } else { + $result = "No Match's"; + return $this->respond(['status' => 'failed','code' => 404,'data' => $result],404); + } } + + } catch (\Exception $e) { return $this->respond(['status' => 'failed','code' => 500,'data' => $e],500); } diff --git a/app/Controllers/Model.php b/app/Controllers/Model.php index e5e6d5a..61b0bf2 100644 --- a/app/Controllers/Model.php +++ b/app/Controllers/Model.php @@ -41,7 +41,7 @@ class Model extends BaseController } - public function create_model() + public function create_model($model_id) { try { $make_id = $this->request->getPost('make_id'); @@ -53,14 +53,34 @@ class Model extends BaseController 'model_name' => $model_name ]; - $inserted = $BikemodelsModel->insert($data); - if ($inserted) { - $result = $data; - return $this->respond(['status' => 'success','code' => 200,'data' => $result],200); - } else { - $result = "No Match's"; - return $this->respond(['status' => 'failed','code' => 404,'data' => $result],404); + if (!$model_id) { + + try { + $inserted = $BikemodelsModel->insert($data); + } catch (\CodeIgniter\Database\Exceptions\DatabaseException $e) { + + return $this->respond(['status' => 'failed','code' => 404,'data' => $e->getMessage()],200); + } + if ($inserted) { + $result = $data; + $model_list = $BikemodelsModel->where('make_id',$make_id)->orderBy('make','asc')->findAll(); + + return $this->respond(['status' => 'success','code' => 200,'data' => $result,'model_list'=>$model_list],200); + } else { + $result = "No Match's"; + return $this->respond(['status' => 'failed','code' => 404,'data' => $result],404); + } + }else{ + $updated = $BikemodelsModel->update($model_id ,$data); + if ($updated) { + $result = $data; + return $this->respond(['status' => 'success','code' => 200,'data' => $result],200); + } else { + $result = "No Match's"; + return $this->respond(['status' => 'failed','code' => 404,'data' => $result],404); + } } + } catch (\Exception $exception) { return $this->respond(['status' => 'failed','code' => 500,'data' => $exception],500); } @@ -81,10 +101,13 @@ class Model extends BaseController ]; $updated = $BikemodelsModel->update($model_id, $data); - $model_list = $BikemodelsModel->findAll(); + $model = $BikemodelsModel->where('model_id',$model_id)->first(); + + $models = $BikemodelsModel->where('make_id', $model['make_id'])->orderBy('model_name', 'asc')->findAll(); if ($updated) { - $result = $data; - return $this->respond(['status' => 'success','code' => 200,'data' => $model_list],200); + + // $result = $data; + return $this->respond(['status' => 'success','code' => 200,'data' => $models],200); } else { $result = "No Match's"; return $this->respond(['status' => 'failed','code' => 404,'data' => $result],404); diff --git a/app/Controllers/Products.php b/app/Controllers/Products.php index f6df5a8..1a66db3 100644 --- a/app/Controllers/Products.php +++ b/app/Controllers/Products.php @@ -69,18 +69,30 @@ class Products extends BaseController $data['manufacturers']=$ManufacturerModel->findAll(); $data['page_name']="Add Product"; $data['vendorsProduct'] =[]; - } else if ($product_id !== '0') { + } else if ($product_id !== '0') { $data['page_name']="Edit Product"; $ProductModel = new ProductModel(); $products=$ProductModel->where('product_id', $product_id)->get()->getRowArray(); + $products['make_id'] = json_decode($products['make_id'], true); + $products['models_id'] = json_decode($products['models_id'], true); + + $data['products']=$products; $BikemakeModel = new BikemakeModel(); $data['make'] = $BikemakeModel->findAll(); $BikemodelsModel = new BikemodelsModel(); $make_id = $products['make_id']; - $data['models'] = $BikemodelsModel->where('make_id', $make_id)->findAll(); + $BikemodelsModel = new BikemodelsModel(); + + $models = []; + if( $products['make_id'] != null) { + foreach ($products['make_id'] as $make_id) { + $models[] = $BikemodelsModel->where('make_id', $make_id)->findAll(); + } + } + $data['models'] = $models; $tax=$ProductModel->getTax(); $data['tax']=$tax; @@ -89,6 +101,9 @@ class Products extends BaseController $ManufacturerModel = new ManufacturerModel(); $data['manufacturers']=$ManufacturerModel->findAll(); $vendorIds = json_decode($products['vendor'], true); + + + $vendors = []; $VendorModel = new VendorModel(); foreach ($vendorIds as $vendorId) { @@ -103,10 +118,13 @@ class Products extends BaseController $preferredVendorId = $products['prefered_vendor']; // Pass the preferred vendor ID to the view $data['preferredVendorId'] = $preferredVendorId; // print_r($data);die; - // print_r($data);die; + // print_r($data);die; } $data['product_id'] = $product_id; + // echo "
";
+        // print_r($data);die;
+
         echo view('product_form',$data);
     }
 
@@ -135,7 +153,7 @@ class Products extends BaseController
             'purchase_order_level' => $this->request->getPost('purchase_order_level'),
             'reorder_level' => $this->request->getPost('reorder_level'),
             'quality' => $this->request->getPost('quality'), 
-            'make_id' => $this->request->getPost('make'), 
+            'make_id' => json_encode($this->request->getPost('make')), 
             'models_id' => json_encode($this->request->getPost('model')), 
             'rack_number' => $this->request->getPost('rack_number'),
             'manufacturer_id' => $this->request->getPost('manufacturer'),  
@@ -146,7 +164,6 @@ class Products extends BaseController
             'branch_id' => $this->session->get('logged_user_branch_id')
         ];
 
-    
         $product_id = $this->request->getPost('product_id');
     
        
@@ -244,92 +261,114 @@ class Products extends BaseController
     
     
 
-public function get_models()
-{
-    $make_id = $this->request->getPost('make_id'); // Assuming you are sending make_id via POST
-
-    // Fetch models based on the selected make ID
-    $BikemodelsModel = new BikemodelsModel(); // Adjust this according to your actual model name
-    $models = $BikemodelsModel->where('make_id', $make_id)->findAll();  // Implement this method in your model
-    // Return the model data as JSON
-    return $this->response->setJSON($models);
-}
+    public function get_models()
+    {
+        $make_ids = $this->request->getPost('make_id'); // Assuming you are sending make_id via POST
+        $BikemodelsModel = new BikemodelsModel(); // Adjust this according to your actual model name
 
 
 
-
-public function save_make() {
-    $response = []; // Initialize an empty array to hold the response data
-
-    // Assuming BikemakeModel and BikemodelsModel are properly defined
-
-    $BikemakeModel = new BikemakeModel();
-    $BikemodelsModel = new BikemodelsModel();
-    
-    $make = $this->request->getPost('make');
-    $model = $this->request->getPost('model');
-
-    // Check if both make and model are provided
-    if (!empty($make) && !empty($model)) {
-        $data = [
-            'make' => $make
-        ];
-
-        // Insert the make into the database
-        $BikemakeModel->insert($data);
-        $make_id = $BikemakeModel->getInsertID();
-
-        $modelData = [
-            'model_name' => $model,
-            'make_id' => $make_id,
-        ];
-
-        // Insert the model into the database
-        $BikemodelsModel->insert($modelData);
-
-        // Set success status in the response
-        $response['success'] = true;
-    } else {
-        // If make or model is empty, set success status to false
-        $response['success'] = false;
+        $formatted_models = [];
+        
+        // Iterate over each selected make ID
+        if ($make_ids) {
+            foreach ($make_ids as $make_id) {
+                // Fetch models based on the selected make ID
+                $models = $BikemodelsModel->where('make_id', $make_id)->findAll();
+                
+                // Iterate over each fetched model and format it as needed
+                foreach ($models as $model) {
+                    // Create an associative array with 'model_id' and 'model_name' properties
+                    $formatted_model = [
+                        'make_id'  => $model['make_id'],
+                        'model_id' => $model['model_id'],
+                        'model_name' => $model['model_name']
+                        // Add other properties if needed
+                    ];
+            
+                    // Push the formatted model into the array
+                    $formatted_models[] = $formatted_model;
+                }
+            }
+        }
+        return $this->response->setJSON($formatted_models);
     }
 
-    // Send JSON response back to the client
-    return $this->response->setJSON($response);
-}
-public function get_makes()
-{
-    $BikeMakeModel = new BikeMakeModel(); // Adjust this according to your actual model name
-    $makes = $BikeMakeModel->findAll();   
-    return $this->response->setJSON($makes);
-}
-public function save_model() {
-    $response = []; 
-    $BikemodelsModel = new BikemodelsModel();
-    
-    $make_id = $this->request->getPost('make_id');
-    $model = $this->request->getPost('modelvalue');
-    if (!empty($make_id) && !empty($model)) {
-        $modelData = [
-            'model_name' => $model,
-            'make_id' => $make_id,
-        ];
+
+
+
+    public function save_make() {
+        $response = []; // Initialize an empty array to hold the response data
+
+        // Assuming BikemakeModel and BikemodelsModel are properly defined
+
+        $BikemakeModel = new BikemakeModel();
+        $BikemodelsModel = new BikemodelsModel();
+        
+        $make = $this->request->getPost('make');
+        $model = $this->request->getPost('model');
+
+        // Check if both make and model are provided
+        if (!empty($make) && !empty($model)) {
+            $data = [
+                'make' => $make
+            ];
+
+            // Insert the make into the database
+            $BikemakeModel->insert($data);
+            $make_id = $BikemakeModel->getInsertID();
+
+            $modelData = [
+                'model_name' => $model,
+                'make_id' => $make_id,
+            ];
+
+            // Insert the model into the database
+            $BikemodelsModel->insert($modelData);
+
+            // Set success status in the response
+            $response['success'] = true;
+        } else {
+            // If make or model is empty, set success status to false
+            $response['success'] = false;
+        }
+
+        // Send JSON response back to the client
+        return $this->response->setJSON($response);
+    }
+    public function get_makes()
+    {
+        $BikeMakeModel = new BikeMakeModel(); // Adjust this according to your actual model name
+        $makes = $BikeMakeModel->findAll();   
+        return $this->response->setJSON($makes);
+    }
+    public function save_model() {
+        $response = []; 
+        $BikemodelsModel = new BikemodelsModel();
+        
+        $make_id = $this->request->getPost('make_id');
+        $model = $this->request->getPost('modelvalue');
+        if (!empty($make_id) && !empty($model)) {
+            $modelData = [
+                'model_name' => $model,
+                'make_id' => $make_id,
+            ];
+
+            
+            $model_id = $BikemodelsModel->insert($modelData);
+
+            $modelData =  $BikemodelsModel->where('make_id',$make_id)->findAll();
 
         
-        $model_id = $BikemodelsModel->insert($modelData);
+            $response['success'] = true;
+            $response['model_id'] = $model_id;
+            $response['model_value'] = $model;
+        } else {
+        
+            $response['success'] = false;
+        }
 
-        $modelData =  $BikemodelsModel->where('make_id',$make_id)->findAll();
-
-       
-        $response['success'] = true;
-        $response['model_id'] = $model_id;
-        $response['model_value'] = $model;
-    } else {
-       
-        $response['success'] = false;
+    
+        return $this->response->setJSON($response);
     }
-
-  
-    return $this->response->setJSON($response);
-}
 }
\ No newline at end of file
diff --git a/app/Controllers/Sales.php b/app/Controllers/Sales.php
index de1d87e..28459dc 100644
--- a/app/Controllers/Sales.php
+++ b/app/Controllers/Sales.php
@@ -31,6 +31,8 @@ class Sales extends BaseController
         $sales=$SalesOrderModel->getSalesOrdersWithProducts($this->session->get('logged_user_branch_id'));
         $data['sales']=$sales;
 
+        // echo"
";
+        // print_r($data);die;
         return view('sales_list',$data);
     }
 
@@ -52,17 +54,17 @@ class Sales extends BaseController
             // ->where('branch_id',$this->session->get('logged_user_branch_id'))->findAll();
 
             $ProductModel = new ProductModel();
-        $product=$ProductModel
-        ->where('isactive',1)
-        ->where('branch_id',$this->session->get('logged_user_branch_id'))->findAll();
-        $data['product']=$product;   
-        $data['client']=$client;  
-        $data['vehicle']=$vehicle; 
+            $product=$ProductModel
+            ->where('isactive',1)
+            ->where('branch_id',$this->session->get('logged_user_branch_id'))->findAll();
+            $data['product']=$product;   
+            $data['client']=$client;  
+            $data['vehicle']=$vehicle; 
 
 
 
-           } else if ($sales_order_id !== '0') 
-           {
+        } else if ($sales_order_id !== '0') 
+        {
 
 
             $data['page_name']="Edit Sale Order";
@@ -80,13 +82,14 @@ class Sales extends BaseController
                 $modelId = $vehicles['model'];
 
             // Encode the modelId before searching
+            $encodedMakeId = json_encode([$makeId]);
             $encodedModelId = json_encode([$modelId]);
 
             // Load the ProductModel
             $productModel = new ProductModel();
 
                 // Query the database to find the product based on make_id and model_id
-                $product = $productModel->where('make_id', $makeId)
+                $product = $productModel->where('JSON_CONTAINS(make_id, \'' . $encodedMakeId . '\')', null, false)
                                     ->where('JSON_CONTAINS(models_id, \'' . $encodedModelId . '\')', null, false)
                                     ->findAll();
                         $data['product']=$product;
@@ -426,16 +429,18 @@ public function getProducts()
     $modelId = $this->request->getPost('model_id');
 
     // Encode the modelId before searching
+    $encodedMakeId = json_encode([$makeId]);
     $encodedModelId = json_encode([$modelId]);
 
     // Load the ProductModel
     $productModel = new ProductModel();
 
     // Query the database to find the product based on make_id and model_id
-    $product = $productModel->where('make_id', $makeId)
+    $product = $productModel->where('JSON_CONTAINS(make_id, \'' . $encodedMakeId . '\')', null, false)
                             ->where('JSON_CONTAINS(models_id, \'' . $encodedModelId . '\')', null, false)
                             ->where('qty_stock >',0)
                             ->findAll();
+                            // print_r($product);die;
 
     $modelName = $this->BikemodelsModel->where('model_id',$modelId)->get()->getRow()->model_name;
     $makeName = $this->BikemakeModel->where('make_id',$makeId)->get()->getRow()->make;
diff --git a/app/Controllers/Service.php b/app/Controllers/Service.php
index 92c026c..16705fa 100644
--- a/app/Controllers/Service.php
+++ b/app/Controllers/Service.php
@@ -151,7 +151,7 @@ class Service extends BaseController
             'category' => $this->request->getPost('category'),
             'product_id' => json_encode($this->request->getPost('product_id')),
             'cgst' => $tax,
-            'igst' =>  $tax,
+            'sgst' =>  $tax,
             'tax' =>  $this->request->getPost('tax'),
             'labour_cost' => $this->request->getPost('labour_cost'),
             'price' => $this->request->getPost('price'),
diff --git a/app/Controllers/Users.php b/app/Controllers/Users.php
index 4e2b591..8dcf66a 100644
--- a/app/Controllers/Users.php
+++ b/app/Controllers/Users.php
@@ -43,6 +43,30 @@ class Users extends BaseController
         return view('user_list',['users' => $users, 'roleModel' => $roleModel]);
     }
 
+
+    public function user_list($branch_id)
+    {
+        $UsersModel = new UsersModel();
+        $users = $UsersModel->where('branch_id',$branch_id)->findAll();
+        $data['users']=$users;
+     
+        $roleModel = new RoleModel();
+
+        // Assuming $users is an array of user data
+        foreach ($users as $value) {
+            if ($value['isactive'] == 1) {
+                // Call the method from the model to get the role name
+                $roleName = $roleModel->getRoleNameById($value['role']);
+
+                // Output the role name
+                // echo $roleName;
+            }
+        }
+        return view('user_list_super_admin',['users' => $users, 'roleModel' => $roleModel, 'branch_id' => $branch_id]);
+    }
+
+    
+
            
     public function new_user($user_id)
     {
@@ -94,6 +118,54 @@ class Users extends BaseController
     }
 
 
+
+    public function new_user_super_admin($branch_id)
+    {               
+        $BusinessModel=new BusinessModel();
+        $BranchModel=new BranchModel();
+        $branch_list = $BranchModel->where('branch_id',$branch_id)->findAll();
+
+        // $business=$BusinessModel->findAll();
+        $business_select = $BusinessModel->where('business_id', $branch_list[0]['business_id'])->findAll();
+        
+        $rolemodel = new RoleModel();
+        $roles =$rolemodel->getRoles();
+        
+        $data['page_name'] = "Add User";
+        $data['users'] = [];
+        $data['business'] = $business_select;
+        $data['branch'] = $branch_list;
+        $data['roles'] = $roles;
+        // $data['user_id'] = $user_id;
+   
+        return view('user_form',$data);
+    }
+
+    public function edit_user_super_admin($user_id)
+    {               
+        $UsersModel = new UsersModel();
+        $users=$UsersModel->getUserById($user_id);
+        $BusinessModel=new BusinessModel();
+        $BranchModel=new BranchModel();
+        $business_select = $BusinessModel->where('business_id',$users['business_id'])->findAll();
+        
+        $branch = $BranchModel->where('branch_id',$users['branch_id'])->findAll();
+
+        $rolemodel = new RoleModel();
+        $roles =$rolemodel->getRoles();
+
+        $data['page_name'] = "Edit User";
+        $data['users']=$users;
+        $data['branch'] = $branch;
+        $data['business'] = $business_select;
+        $data['roles'] = $roles;
+        
+        $data['user_id'] = $user_id;
+   
+        return view('user_form',$data);
+    }
+
+    
     public function edit_account($user_id)
     {
         $uri = $this->request->getUri();
diff --git a/app/Models/ComplaintModel.php b/app/Models/ComplaintModel.php
index c427d0d..ffe05d6 100644
--- a/app/Models/ComplaintModel.php
+++ b/app/Models/ComplaintModel.php
@@ -5,5 +5,5 @@ class ComplaintModel extends Model
 {
     protected $table = 'complaints';
     protected $primaryKey = 'complaint_id';
-    protected $allowedFields = ['complaint_id','name','labour_charge','isactive'];
+    protected $allowedFields = ['complaint_id','name','labour_charge','cgst','sgst','tax','isactive'];
 }
\ No newline at end of file
diff --git a/app/Models/RoleModel.php b/app/Models/RoleModel.php
index ffcdfea..e9e4fb5 100644
--- a/app/Models/RoleModel.php
+++ b/app/Models/RoleModel.php
@@ -7,7 +7,7 @@ class RoleModel extends Model
     protected $primaryKey = 'role_id';
     protected $allowedFields = ['role_id','roles','isactive'];
 public function getRoles(){
-    return $this->findAll();
+    return $this->where('roles !=', 'Super Admin')->findAll();
 }
 public function getRoleNameById($roleId)
 {
diff --git a/app/Models/SalesOrderModel.php b/app/Models/SalesOrderModel.php
index 8edbadc..2d58a55 100644
--- a/app/Models/SalesOrderModel.php
+++ b/app/Models/SalesOrderModel.php
@@ -22,7 +22,7 @@ class SalesOrderModel extends Model
     public function getSalesOrdersWithProducts($logged_user_branch_id)
     {
         // Select required fields from both tables
-        $this->select('sales_order.*, COUNT(sales_order_product.sales_order_id) AS product_count,vehicle.reg_no');
+        $this->select('sales_order.*, COUNT(sales_order_product.sales_order_id) AS product_count,vehicle.reg_no,SUM(sales_order_product.qty) AS product_qty ');
         
         // Join the sales_order_product table based on sales_order_id
         $this->join('sales_order_product', 'sales_order_product.sales_order_id = sales_order.sales_order_id');
diff --git a/app/Models/ServiceModel.php b/app/Models/ServiceModel.php
index ed9c9b4..9d9d86b 100644
--- a/app/Models/ServiceModel.php
+++ b/app/Models/ServiceModel.php
@@ -5,7 +5,7 @@ class ServiceModel extends Model
 {
     protected $table = 'services';
     protected $primaryKey = 'service_id';
-    protected $allowedFields = ['service_id','branch_id','category','service_name','labour_cost','cgst','igst','price','tax','description','makes_id','models_id','product_id','sub_service_id','isactive'];
+    protected $allowedFields = ['service_id','branch_id','category','service_name','labour_cost','cgst','sgst','price','tax','description','makes_id','models_id','product_id','sub_service_id','isactive'];
     
     
     public function getTax()
diff --git a/app/Models/ServicesModel.php b/app/Models/ServicesModel.php
index 41f982b..e628efc 100644
--- a/app/Models/ServicesModel.php
+++ b/app/Models/ServicesModel.php
@@ -5,7 +5,7 @@ class ServicesModel extends Model
 {
     protected $table = 'services';
     protected $primaryKey = 'service_id';
-    protected $allowedFields = ['service_id','service_name','price','commission_rate','cgst','igst','purchase_cost','description','isactive'];
+    protected $allowedFields = ['service_id','service_name','price','commission_rate','cgst','sgst','purchase_cost','description','isactive'];
 
     
 }
\ No newline at end of file
diff --git a/app/Views/bike_model_list.php b/app/Views/bike_model_list.php
index e931742..03abaaa 100644
--- a/app/Views/bike_model_list.php
+++ b/app/Views/bike_model_list.php
@@ -21,7 +21,6 @@
             
- @@ -30,7 +29,6 @@ - @@ -43,21 +41,19 @@
Action
- + - + - +
-
-
@@ -65,36 +61,36 @@ - - - @@ -90,7 +104,7 @@

Add Models

-
+
@@ -104,7 +118,7 @@
-
+ @@ -126,7 +140,7 @@ function submitModel(params) { - console.log( $('#modelname').val()); + // console.log( $('#modelname').val()); var formData = { make_id: $('#make_id').val(), modelname: $('#modelname').val() @@ -155,15 +169,61 @@ makename: $('#bike_make_name').val() }; + var edit_make_id = $('#edit_make_id').val(); + + if (!edit_make_id) { + edit_make_id =0; + } + $.ajax({ type: 'POST', - url: 'create_make', + url: 'create_make/'+edit_make_id, data: formData, dataType: 'json', success: function(response) { console.log(response); - $('#bike_model_login-modal').modal('hide'); - $('#bike_make_name').val(''); + + + if (response.status == "failed") { + toastr.warning(response.data, 'Warning'); + }else{ + $('#bike_make_login-modal').modal('hide'); + $('#bike_make_name').val(''); + toastr.success(response.data, 'Success'); + + $('tbody').html(''); + + $.each(response.make_list, function(index, item) { + var row = '' + + '' + item.make + '' + + ''; + + if (item.isactive == 1) { + row += 'Active'; + } else if (item.isactive == 0) { + row += 'Inactive'; + } + + row += ''; + + // Check the isactive status and set the icon color accordingly + row += ''; + + row +=''; + row +=''; + if (item.isactive == 1) { + row += ''; + } else if (item.isactive == 0) { + row += ''; + } + + row += ''; + + // Append the row to the tbody + $('tbody').append(row); + }); + } + }, error: function(xhr, status, error) { // Handle error response here @@ -174,10 +234,12 @@ function editMake(params) { + + $('#edit_make_id').val($(params).data('value')); $('#form_add_edit').text('Edit Bike Make'); var full_div = $(params).parent().parent()[0]; - + console.log($(full_div)); $('#bike_make_name').val($(full_div).find('.make').text()); } @@ -188,4 +250,68 @@ } + function statusChange(params) { + var status = params.getAttribute('data-isactive'); + var make_id = params.getAttribute('data-id'); + if(status == 1){ + var isactive= 0; + }else{ + var isactive= 1; + } + + var formData = { + make_id: make_id, + isactive: isactive + }; + $.ajax({ + type: 'POST', + url: '', + data: formData, + dataType: 'json', + success: function(response) { + console.log(response); + + if (response.status == "success") { + $('tbody').html(''); + + $.each(response.data, function(index, item) { + var row = '' + + '' + item.make + '' + + ''; + + if (item.isactive == 1) { + row += 'Active'; + } else if (item.isactive == 0) { + row += 'Inactive'; + } + + row += ''; + + // Check the isactive status and set the icon color accordingly + row += ''; + + row +=''; + row +=''; + if (item.isactive == 1) { + row += ''; + } else if (item.isactive == 0) { + row += ''; + } + + row += ''; + + // Append the row to the tbody + $('tbody').append(row); + }); + } + }, + error: function(xhr, status, error) { + // Handle error response here + console.error(xhr.responseText); + } + }); + + + } + diff --git a/app/Views/manufacturer_list.php b/app/Views/manufacturer_list.php index bbf028a..741b12e 100644 --- a/app/Views/manufacturer_list.php +++ b/app/Views/manufacturer_list.php @@ -36,7 +36,7 @@ - + " class="view-list-button" title="Model List" style="margin-left: 16px;"> @@ -52,7 +52,7 @@ - +