session = session(); $this->UsersModel = new UsersModel(); } public function vendor_index() { if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); } $VendorModel = new VendorModel(); $vendor = $VendorModel->where('branch_id',$this->session->get('logged_user_branch_id'))->orderBy('vendor_name')->findAll(); $data['vendor']=$vendor; return view('vendor_list',$data); } public function new_vendor($vendor_id) { if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); } if ($vendor_id === '0') { $data['vendor'] = []; $data['page_name'] = "Add Vendor"; $ManufacturerModel = new ManufacturerModel(); $data['manufacturers']=$ManufacturerModel->where('business_id', $this->session->get('logged_user_business_id'))->findAll(); $ProductCategoryModel = new ProductCategoryModel(); $data['productcategory'] = $ProductCategoryModel->orderBy('product_category_id')->findAll(); } else { $VendorModel = new VendorModel(); $data['vendor'] = $VendorModel->where('vendor_id', $vendor_id)->get()->getRowArray(); $ManufacturerModel = new ManufacturerModel(); $data['manufacturers']=$ManufacturerModel->where('business_id', $this->session->get('logged_user_business_id'))->findAll(); $ProductCategoryModel = new ProductCategoryModel(); $data['productcategory'] = $ProductCategoryModel->orderBy('product_category_id')->findAll(); $data['page_name'] = "Edit Vendor"; } $data['vendor_id'] = $vendor_id; return view('vendor_form', $data); } public function add_vendor() { if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); } $VendorModel = new VendorModel(); $vendor_name = $this->request->getPost('vendor_name'); $vendor_id = $this->request->getPost('vendor_id'); if ($vendor_id>0) { $vendor = $VendorModel->where(['vendor_name' => $vendor_name, 'isactive' => 1]) ->where('vendor_id !=', $vendor_id) ->findAll(); } else { $vendor = $VendorModel->where(['vendor_name' => $vendor_name, 'isactive' => 1])->findAll(); } if (!empty($vendor)) { session()->setFlashdata('warning', 'Vendor Name Already Exist.'); $this->logger->info("Vendor: Name Already Exist ID = ".$vendor_id); return redirect()->to('vendor_index'); } $data = [ 'vendor_name' => $vendor_name, 'gstnumber' => $this->request->getPost('gstnumber'), 'vendor_email' => $this->request->getPost('email'), 'address' => $this->request->getPost('address'), 'city' => $this->request->getPost('city'), 'state' => $this->request->getPost('state'), 'postal_code' => $this->request->getPost('postalcode') != '' ? $this->request->getPost('postalcode') : NULL, 'country' => $this->request->getPost('country'), 'vendortype' => $this->request->getPost('vendortype'), 'category' => $this->request->getPost('category'), 'contact_person_name1' => $this->request->getPost('contact_person_name1'), 'contact_person_name2' => $this->request->getPost('contact_person_name2'), 'contact_person_name3' => $this->request->getPost('contact_person_name3'), 'contact_person_mobile1' => $this->request->getPost('contact_person_mobile1'), 'contact_person_mobile2' => $this->request->getPost('contact_person_mobile2'), 'contact_person_mobile3' => $this->request->getPost('contact_person_mobile3'), 'contact_person_designation1' => $this->request->getPost('contact_person_designation1'), 'contact_person_designation2' => $this->request->getPost('contact_person_designation2'), 'contact_person_designation3' => $this->request->getPost('contact_person_designation3'), 'manufacturer_id' => json_encode($this->request->getPost('manufacturer')), 'isactive' => 1 , 'branch_id' => $this->session->get('logged_user_branch_id'), ]; $vendor_id = $this->request->getPost('vendor_id'); if (!empty($vendor_id)) { $VendorModel->update($vendor_id, $data); } else { $VendorModel->insert($data); } return redirect()->to('vendor_index'); } public function delete_vendor($vendor_id) { if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); } $model = new VendorModel(); $where = ['vendor_id' => $vendor_id, 'isactive' => 1 , 'branch_id' => $this->session->get('logged_user_branch_id')]; // Assuming 'isactive' is a column in your database $existingBusiness = $model->where($where)->first(); if ($existingBusiness) { $data['isactive'] = 0; if ($model->update($vendor_id, $data)) { session()->setFlashdata('success', 'Deleted successfully.'); $this->logger->info("Users: has been Inactivated successfully. Inactivated ID = ".$vendor_id); } } 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); } public function get_product_by_vendor($vendor_id){ $productModel = new ProductModel(); $reorder = $productModel->select('products.*') ->where('products.qty_stock <= products.purchase_order_level') ->where('products.prefered_vendor',$vendor_id) ->findAll(); return json_encode($reorder); } public function status_vendor() { try { $vendor_id = $this->request->getPost('vendor_id'); $isactive = $this->request->getPost('isactive'); $VendorModel = new VendorModel(); $data = [ 'isactive' => $isactive ]; $updated = $VendorModel->update($vendor_id, $data); if ($updated) { $result = $data; return $this->respond(['status' => 'success','code' => 200],200); } else { $result = "No Match's"; return $this->respond(['status' => 'failed','code' => 404],404); } } catch (\Exception $exception) { return $this->respond(['status' => 'failed','code' => 500,'data' => $exception],500); } } }