company = $company; } public function index() { $check = checkSidebarAccess('manage-manufacture-company'); if (!$check) { abort(404); } return view('Admin.manage-freeu-investments.companies', [ 'categories' => $this->company->getCategories() ]); } public function addCompany(Request $request) { $validator = Validator::make($request->all(), [ 'company_name' => 'required|unique:companies,company_name', 'company_logo' => 'required', ], [ 'required' => 'The :attribute field must be required', 'unique' => 'The :attribute field must be unique' ]); $validationMessage = $this->validationError($validator); if ($validationMessage) { return response()->json(['status' => 400, 'message' => $validationMessage]); } $companyStorageName = time() . '.' . $request->company_logo->extension(); $request->company_logo->move(public_path('/uploads/manufactures_company/logo'), $companyStorageName); $addCompany = Company::create([ 'company_name' => $request->company_name, 'company_logo' => $companyStorageName, ]); foreach ($request->categories as $categories) { CompanyCategory::create([ 'companies_id' => $addCompany->id, 'categories_id' => $categories ]); } return response()->json(['status' => 200, 'message' => 'Company Added!']); } public function getCompany(Request $request) { return response()->json( [ 'status' => 200, 'company' => $this->company->getCompany($request->id), 'categories' => $this->company->getCompanyCategory($request->id) ] ); } public function companyStatus(Request $request) { $statusUpdated = $this->company->updateStatus($request); return $statusUpdated ? response()->json(['status' => 400, 'message' => 'Error Changing Company Status!']) : response()->json(['status' => 200, 'message' => 'Status Changed!']); } public function updateCompany(Request $request) { $id = $request->company_id; $validator = Validator::make($request->all(), [ 'company_name' => 'required|unique:companies,company_name,' . $id . '', ], [ 'required' => 'The :attribute field must be required', 'unique' => 'The :attribute field must be unique' ]); $validationMessage = $this->validationError($validator); if ($validationMessage) { return response()->json(['status' => 400, 'message' => $validationMessage]); } $company = Company::find($id); if ($request->has('company_logo')) { if (\File::exists(public_path('/uploads/manufactures_company/logo/' . $company->company_logo . ''))) { \File::delete(public_path('/uploads/manufactures_company/logo/' . $company->company_logo . '')); } $companyStorageName = time() . '.' . $request->company_logo->extension(); $request->company_logo->move(public_path('/uploads/manufactures_company/logo'), $companyStorageName); $updateCompanyLogo = Company::where('id', $id)->update([ 'company_logo' => $companyStorageName, ]); } $updateCompanyName = Company::where('id', $id)->update([ 'company_name' => $request->company_name, ]); CompanyCategory::where('companies_id', $id)->delete(); collect($request->categories)->each(function ($item) use ($id) { CompanyCategory::create([ 'companies_id' => $id, 'categories_id' => $item ]); }); return response()->json(['status' => 200, 'message' => 'Company Updated!']); } public function deleteCompany(Request $request) { $id = $request->company_id; // dd($id); $company = Company::find($id); if (!$company) { return response()->json(['status' => 400, 'message' => 'Error Deleting Company!!']); } Company::where('id', $id)->delete(); return response()->json(['status' => 200, 'message' => 'Company Deleted!!']); } public function validationError($validator) { if ($validator->fails()) { $errors = $validator->errors(); $messages = ''; foreach ($errors->all() as $message) { $messages .= $message . '
'; } return $messages; } } public function exportCompanies(Request $request) { $query = $request->post(); // $a = Excel::download(new CompanyExport, 'Company List.xlsx'); // Excel::import(new AlternativeInvestmentFundImport($category_type), $request->file('productFile')) return Excel::download(new CompanyExport($query), 'Company List.xlsx'); } public function getExcelfile() { $users = Company::all(); // $total = Company::count(); $total = 100; Excel::download('excelfile', function ($excel) use ($users, $total) { $excel->sheet('Excel', function ($sheet) use ($users, $total) { $sheet->loadView('report.excel')->with("users", $users)->with("total", $total); }); })->export('xls'); } public function dataTableCompanies(Request $request) { return $this->company->datatable($request); } public function getCompaniesData() { $data['data'] = $this->company->getActiveCompanies(); return $data; } }