middleware(function ($request, $next) { $this->user = Auth::guard('web')->user(); return $next($request); }); } /** * Display a listing of the resource. * * @return Renderable */ public function index(ApprovalDataTable $dataTable) { return $dataTable->render('writeoff::approval.index'); } /** * Show the form for creating a new resource. * * @return Renderable */ public function create() { return view('cetaklabel::create'); } /** * Store a newly created resource in storage. * * @param Request $request * * @return Renderable */ public function store(Request $request) { // } /** * Show the specified resource. * * @param int $id * * @return Renderable */ public function show($id) { return view('cetaklabel::show'); } /** * Show the form for editing the specified resource. * * @param int $id * * @return Renderable */ public function edit($id) { $authorization = Approval::findOrFail($id); return view('writeoff::approval.edit', compact('authorization')); } /** * Update the specified resource in storage. * * @param Request $request * @param int $id * * @return Renderable */ public function update(Request $request, $id) { try { $approval = Approval::findOrFail($id); $approval->approved_by = $this->user->id; $approval->approved_at = date('Y-m-d H:i:s'); $approval->status = $request->status; $model = "Modules\\Cetaklabel\\Entities\\$approval->menu"; $model = new $model(); //20555012,18 if ($approval->status == 1) { if ($approval->method == 'create') { if ($approval->menu == 'CardboardDetail') { $data = json_decode($approval->new_request, true); $document_id = $data['document_id']; foreach ($document_id as $key => $value) { $model = new $model(); $_data['status'] = 1; $_data['approved_by'] = $this->user->id; $_data['approved_at'] = date('Y-m-d H:i:s'); $_data['cardboard_id'] = $data['cardboard_id']; $_data['document_id'] = $value; $model->fill($_data); $model->save(); } } else { $data = json_decode($approval->new_request, true); $data['status'] = 1; $data['approved_by'] = $this->user->id; $data['approved_at'] = date('Y-m-d H:i:s'); $model->fill($data); $model->save(); } } else if ($approval->method == 'update') { $old = json_decode($approval->old_request, true); $data = json_decode($approval->new_request, true); $data['status'] = 1; $data['approved_by'] = $this->user->id; $data['approved_at'] = date('Y-m-d H:i:s'); $model = $model::findOrFail($old['id']); if ($approval->menu == 'CardboardDetail') { $data = json_decode($approval->new_request, true); $document_id = $data['document_id']; foreach ($document_id as $key => $value) { $model = new $model(); $model = $model::findOrFail($data['cardboard_id']); $_data['status'] = 1; $_data['approved_by'] = $this->user->id; $_data['approved_at'] = date('Y-m-d H:i:s'); $_data['cardboard_id'] = $data['cardboard_id']; $_data['document_id'] = $value; $model->fill($_data); $model->save(); } } else { $model->fill($data); $model->save(); } } else if ($approval->method == 'delete') { $data = json_decode($approval->old_request, true); $model = $model::findOrFail($data['id']); $data_ = []; $data_['status'] = 1; $data_['approved_by'] = $this->user->id; $data_['approved_at'] = date('Y-m-d H:i:s'); $model = $model::findOrFail($data['id']); $model->fill($data_); $model->save(); $model->delete(); } } $approval->save(); $approval->delete(); echo json_encode([ 'status' => 'success', 'message' => 'Approval ' . $approval->description . ' successfully.' ]); } catch (Exception $e) { echo json_encode(['status' => 'error', 'message' => 'Approval ' . $approval->description . ' failed.']); } } /** * Remove the specified resource from storage. * * @param int $id * * @return Renderable */ public function destroy($id) { // } }