diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 0ddab8a..7c8a199 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -62,6 +62,7 @@ $routes->get('vendor_index/', 'Vendor::vendor_index'); $routes->post("add_vendor", "Vendor::add_vendor"); $routes->get("new_vendor/(:any)", "Vendor::new_vendor/$1"); $routes->get("delete_vendor/(:any)", "Vendor::delete_vendor/$1"); +$routes->post("fetch_models", "Vendor::fetch_models"); //end Vendor //Vehicle// diff --git a/app/Controllers/Vendor.php b/app/Controllers/Vendor.php index a5a5cb0..27c917d 100644 --- a/app/Controllers/Vendor.php +++ b/app/Controllers/Vendor.php @@ -5,6 +5,8 @@ namespace App\Controllers; use App\Models\VendorModel; use App\Models\UsersModel; +use App\Models\BikemakeModel; +use App\Models\BikemodelsModel; class Vendor extends BaseController @@ -31,36 +33,54 @@ class Vendor extends BaseController public function new_vendor($vendor_id) { - - if ($vendor_id === '0') { - - $data['vendor'] = []; - $data['page_name']="Add Vendor"; - } else if ($vendor_id !== '0') { - $data['page_name']="Edit Vendor"; + $data['vendor'] = []; + $data['page_name'] = "Add Vendor"; + $BikemakeModel = new BikemakeModel(); + $data['make'] = $BikemakeModel->findAll(); + $data['models'] = []; // Initialize models array for the view + } else { $VendorModel = new VendorModel(); - - $vendor=$VendorModel->where('vendor_id', $vendor_id)->get()->getRowArray(); - - $data['vendor']=$vendor; + $vendor = $VendorModel->where('vendor_id', $vendor_id)->get()->getRowArray(); + $vendor['model_ids'] = json_decode($vendor['model'], true); + $vendor['make_ids'] = json_decode($vendor['make'], true); + + $data['vendor'] = $vendor; + $data['page_name'] = "Edit Vendor"; + + // Load models based on the selected make IDs + $BikemodelModel = new BikemodelsModel(); + $models = []; + foreach ($vendor['make_ids'] as $make_id) { + $models[] = $BikemodelModel->where('make_id', $make_id)->findAll(); + } + $data['models'] = $models; // Pass models array to the view + + // Load make data + $BikemakeModel = new BikemakeModel(); + $data['make'] = $BikemakeModel->findAll(); } + $data['vendor_id'] = $vendor_id; - - return view('vendor_form',$data); + + return view('vendor_form', $data); } - + public function add_vendor() { - $VendorModel = new VendorModel(); - + // Retrieve the selected make IDs and model IDs from the form + $make_ids = $this->request->getPost('make'); + $model_ids = $this->request->getPost('model'); + + // Convert model IDs to JSON format + $model_json = json_encode($model_ids); + $make_json=json_encode($make_ids); $data = [ 'vendor_name' => $this->request->getPost('vendor_name'), 'contact_name' => $this->request->getPost('contact_name'), - 'gstnumber' => $this->request->getPost('gstnumber'), 'vendor_email' => $this->request->getPost('email'), 'address' => $this->request->getPost('address'), @@ -72,28 +92,22 @@ class Vendor extends BaseController 'category' => $this->request->getPost('category'), 'website' => $this->request->getPost('website'), 'isactive' => 1 , - 'branch_id' => $this->session->get('logged_user_branch_id') + 'branch_id' => $this->session->get('logged_user_branch_id'), + 'make' => $make_json, // Store the selected make IDs + 'model' => $model_json, // Store the selected model IDs in JSON format ]; - - $make_array = $this->request->getPost('vendortype'); // Assuming 'make' is an array - $make_json = json_encode($make_array); - $data['vendortype'] = $make_json; - - + $vendor_id = $this->request->getPost('vendor_id'); - print_r($data);die; - + if (!empty($vendor_id)) { - $VendorModel->update($vendor_id, $data); } else { - $VendorModel->insert($data); } - return redirect()->to('vendor_index'); } + public function delete_vendor($vendor_id) { $model = new VendorModel(); @@ -112,5 +126,40 @@ class Vendor extends BaseController return redirect()->to('vendor_index'); } + public function fetch_models() + { + // Retrieve the selected make IDs from the AJAX request + $selected_makes = $this->request->getPost('selected_makes'); + + // Load the BikemakeModel to fetch models + $BikemodelModel = new BikemodelsModel(); + + // Initialize an empty array to store formatted model data + $formatted_models = []; + + // Iterate over each selected make ID + foreach ($selected_makes as $make_id) { + // Fetch models based on the selected make ID + $models = $BikemodelModel->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 = [ + '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; + } + } + + // Send the formatted models as JSON response back to the client + return $this->response->setJSON($formatted_models); + } + + } \ No newline at end of file diff --git a/app/Views/vendor_form.php b/app/Views/vendor_form.php index 5809e24..e97ef79 100644 --- a/app/Views/vendor_form.php +++ b/app/Views/vendor_form.php @@ -56,26 +56,28 @@ -