department = 'lease'; parent::__construct(); } public function index(Request $request) { $search_param = $request->get('search_param'); $lease_estimates = EstimateService::doSearch($search_param)->paginate($this->per_page); $users = UserService::getAllUser(); // Session::put('backend.estimate.index', $request->all()); return view("backend.lease.estimate.index", [ 'users'=>$users, 'lease_estimates'=>$lease_estimates, 'search_param'=>$search_param ]); } public function create(Request $request) { $partners = PartnerService::doSearchForAjax($request->all())->paginate($this->search_per_page); $search_params['system_part'] = config('const.system_parts_code.lease'); $partners2 = PartnerService::doSearchForAjax($search_params)->paginate($this->search_per_page); $vehicles = VehicleService::doSearchForAjax($search_params)->paginate($this->search_per_page); $users = UserService::getAllUser(); $vehicle_works = VehicleWorkService::getAllVehicleWork(); $work_categories = WorkCategoryService::getAllCategory(); $work_kinds = WorkKindService::getAllKind(); return view("backend.lease.estimate.create", [ 'partners'=>$partners, 'partners2'=>$partners2, 'work_categories'=>$work_categories, 'vehicle_works'=>$vehicle_works, 'vehicles'=>$vehicles, 'users'=>$users, 'work_kinds'=>$work_kinds, 'today'=>Carbon::now(), ]); } // public function confirm(LeaseEstimateRequest $request) // { // $partners = PartnerService::doSearchForAjax($request->all())->paginate($this->search_per_page); // $search_params['system_part'] = config('const.system_parts_code.lease'); // $partners2 = PartnerService::doSearchForAjax($search_params)->paginate($this->search_per_page); // $vehicles = VehicleService::doSearchForAjax($search_params)->paginate($this->search_per_page); // $users = UserService::getAllUser(); // $vehicle_works = VehicleWorkService::getAllVehicleWork(); // $work_categories = WorkCategoryService::getAllCategory(); // $work_kinds = WorkKindService::getAllKind(); // return view("backend.lease.estimate.confirm", [ // 'partners'=>$partners, // 'partners2'=>$partners2, // 'work_categories'=>$work_categories, // 'vehicle_works'=>$vehicle_works, // 'vehicles'=>$vehicles, // 'users'=>$users, // 'work_kinds'=>$work_kinds, // 'params'=>$request->all(), // ]); // } public function store(LeaseEstimateRequest $request) { $lease_estimate = LeaseEstimate::create($request->all()); foreach ($request->input('item_name') as $key => $value) { $array = [ 'lease_estimate_id' => $lease_estimate->id, 'item_name' => $request->input('item_name')[$key], 'num' => $request->input('num')[$key], 'unit_fee' => $request->input('unit_fee')[$key], 'fee' => $request->input('fee')[$key], ]; LeaseEstimateAddition::create($array); } $request->session()->flash('success', '見積を追加しました。'); return redirect()->route("backend.lease.estimate.index"); } public function edit(Request $request, $id) { $lease_estimate = LeaseEstimate::find($id); $lease_estimate_addtions = LeaseEstimateAddition::where('lease_estimate_id', $lease_estimate->id)->get(); $partners = PartnerService::doSearchForAjax($request->all())->paginate($this->search_per_page); $search_params['system_part'] = config('const.system_parts_code.lease'); $partners2 = PartnerService::doSearchForAjax($search_params)->paginate($this->search_per_page); $vehicles = VehicleService::doSearchForAjax($search_params)->paginate($this->search_per_page); $users = UserService::getAllUser(); $vehicle_works = VehicleWorkService::getAllVehicleWork(); $work_categories = WorkCategoryService::getAllCategory(); $work_kinds = WorkKindService::getAllKind(); return view("backend.lease.estimate.edit", [ 'lease_estimate'=>$lease_estimate, 'lease_estimate_additions'=>$lease_estimate_addtions, 'partners'=>$partners, 'partners2'=>$partners2, 'work_categories'=>$work_categories, 'vehicle_works'=>$vehicle_works, 'vehicles'=>$vehicles, 'users'=>$users, 'work_kinds'=>$work_kinds, 'today'=>Carbon::now(), ]); } public function update(LeaseEstimateRequest $request) { $lease_estimate = LeaseEstimate::find($request->input('lease_estimate_id')); // 紐づくLeaseEstimateAdditionを全て削除 $lease_estimate_addtions = LeaseEstimateAddition::where('lease_estimate_id', $lease_estimate->id)->get(); foreach ($lease_estimate_addtions as $lease_estimate_addtion) { $lease_estimate_addtion->delete(); } // 新しく登録 foreach ($request->input('item_name') as $key => $value) { $array = [ 'lease_estimate_id' => $lease_estimate->id, 'item_name' => $request->input('item_name')[$key], 'num' => $request->input('num')[$key], 'unit_fee' => $request->input('unit_fee')[$key], 'fee' => $request->input('fee')[$key], ]; LeaseEstimateAddition::create($array); } // 値の更新 $lease_estimate->fill($request->all())->save(); $request->session()->flash('success', '見積を更新しました。'); return redirect()->route("backend.lease.estimate.index"); } public function downloadPdf(Request $request) { $lease_estimate = LeaseEstimate::find($request->input('lease_estimate_id')); $lease_estimate_addtions = LeaseEstimateAddition::where('lease_estimate_id', $lease_estimate->id)->get(); $charge_user = User::find($lease_estimate->charge_user_id); // PDFの生成 $pdf = PDF::loadView("backend.lease.estimate.pdf.estimate", [ 'lease_estimate' => $lease_estimate, 'lease_estimate_addtions' => $lease_estimate_addtions, 'charge_user_first_name' => isset($charge_user) ? $charge_user->first_name : '', 'uj_icon' => EstimateService::encodeImgSrcToBase64('assets/backend/img/logo.png'), 'uj_lease_icon' => EstimateService::encodeImgSrcToBase64('assets/backend/img/lease/uj_lease.png'), ])->setPaper('a4'); $file_name = Carbon::now()->format('YmdHis').'_スマートトラック見積書.pdf'; // ブラウザに表示 return $pdf->stream($file_name); // ダウンロード // return $pdf->download($file_name); } }