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('cetaklabel::app.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) { $approval = Approval::findOrFail($id); return view('cetaklabel::app.approval.edit', compact('approval')); } /** * 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(); if($approval->status == 1){ if($approval->method == 'create'){ $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'); if($approval->menu=='CardboardDetail'){ foreach ($data['document_id'] as $key => $value) { $data['document_id'] = $value; $model->fill($data); $model->save(); } } else { $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'){ foreach ($data['document_id'] as $key => $value) { $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) { // } }