middleware(function ($request, $next) { $this->user = Auth::guard('web')->user(); return $next($request); }); addVendor('chained-select'); } /** * Display a listing of the resource. */ public function index(DocumentDataTable $dataTable) { if (is_null($this->user) || !$this->user->can('document.read')) { abort(403, 'Sorry !! You are Unauthorized to view any master data !'); } return $dataTable->render('cetaklabel::app.document.index'); } /** * Store a newly created resource in storage. */ public function store(StoreDocumentRequest $request) { if (is_null($this->user) || !$this->user->can('document.create')) { abort(403, 'Sorry !! You are Unauthorized to create any master data !'); } // Validate the request... $validated = $request->validated(); // Store the Document... if ($validated) { try { $document = Document::where(['kode_odner' => $validated['kode'],'sequence_odner' => $validated ])->first(); if($document){ $document->update($validated); } else { $document = Document::create($validated); } $created = Document::find($document->id); if ($created) { if ($request->hasFile('file')) { $file = $request->file('file'); $path = 'uploads/' . substr($created->kode, 0, 10) . '/' . $created->sequence_odner . '/' . substr($created->kode, -5, 3); $filename = substr($created->kode, -2, 2) . '_' . $file->getClientOriginalName(); if ($file->move(public_path($path), $filename)) { $request['file'] = $path . '/' . $filename; } } $special_code = SpecialCode::find($request->special_code_id); $kode = IdGenerator::generate([ 'table' => 'document_details', 'field' => 'kode', 'length' => 13, 'prefix' => $created->kode ]); $detail = [ 'kode' => $kode . $special_code->kode, 'no_urut' => substr($kode, -3, 3), 'document_id' => $created->id, 'document_type_id' => $request->document_type_id, 'special_code_id' => $request->special_code_id, 'tanggal_upload' => date('Y-m-d H:i:s'), 'tanggal_dokumen' => $request->tanggal_dokumen, 'nomor_dokumen' => $request->nomor_dokumen, 'perihal' => $request->perihal, 'kode_cabang' => $request->kode_cabang, 'jumlah_halaman' => $request->jumlah_halaman, 'custom_field_1' => $request->custom_field_1, 'custom_field_2' => $request->custom_field_2, 'custom_field_3' => $request->custom_field_3, 'custom_field_4' => $request->custom_field_4, 'file' => $path . '/' . $filename, 'nama_nasabah' => $request->nama_nasabah, 'no_rekening' => $request->no_rekening, 'no_cif' => $request->no_cif, 'group' => $request->group, 'kategori' => $request->kategori, 'status' => '0', 'keterangan' => '' ]; DocumentDetail::create($detail); } return redirect()->route('document.index')->with('success', 'Document created successfully.'); } catch (Exception $e) { return redirect()->route('document.index')->with('error', 'Document created failed, ' . $e->getMessage()); } } return false; } /** * Show the form for creating a new resource. */ public function create() { if (is_null($this->user) || !$this->user->can('document.create')) { abort(403, 'Sorry !! You are Unauthorized to create any master data !'); } $directorat = Directorat::all(); $special_code = SpecialCode::all(); $document_type = DocumentType::all(); return view('cetaklabel::app.document.create', compact('directorat', 'special_code', 'document_type')); } /** * Display the specified resource. */ public function show(Document $documents) { if (is_null($this->user) || !$this->user->can('document.read')) { abort(403, 'Sorry !! You are Unauthorized to view any master data !'); } abort(404, 'Page not found !'); } /** * Show the form for editing the specified resource. */ public function edit($id) { if (is_null($this->user) || !$this->user->can('document.update')) { abort(403, 'Sorry !! You are Unauthorized to update any master data !'); } $document = Document::find($id); $directorat = Directorat::all(); $sub_directorat = SubDirectorat::where('directorat_id', $document->directorat_id)->get(); $job = Job::where('sub_directorat_id', $document->sub_directorat_id)->get(); $sub_job = SubJob::where('job_id', $document->job_id)->get(); $sub_sub_job = SubSubJob::where('sub_job_id', $document->sub_job_id)->get(); $special_code = SpecialCode::all(); $document_type = DocumentType::all(); return view('cetaklabel::app.document.edit', compact('document', 'directorat', 'sub_directorat', 'job', 'sub_job', 'sub_sub_job', 'special_code', 'document_type')); } /** * Update the specified resource in storage. */ public function update(UpdateDocumentRequest $request, Document $documents) { if (is_null($this->user) || !$this->user->can('document.update')) { abort(403, 'Sorry !! You are Unauthorized to update any master data !'); } // Validate the request... $validated = $request->validated(); // Update the Document... if ($validated) { try { $document = Document::find($request->id); $update = $document->update($validated); return redirect()->route('document.index')->with('success', 'Document updated successfully.'); } catch (Exception $e) { return redirect()->route('document.index')->with('error', 'Document updated failed.'); } } return false; } /** * Remove the specified resource from storage. */ public function destroy(Request $request) { if (is_null($this->user) || !$this->user->can('document.delete')) { abort(403, 'Sorry !! You are Unauthorized to delete any master data !'); } // Delete Detail Document First... $document_details = DocumentDetail::where('document_id', $request->document)->get(); if ($document_details->count() > 0) { foreach ($document_details as $document_detail) { $document_detail->delete(); } } echo json_encode(['status' => 'success', 'message' => 'Document deleted successfully.']); } public function download(Request $request) { if (is_null($this->user) || !$this->user->can('document.read')) { abort(403, 'Sorry !! You are Unauthorized to download any master data !'); } $document = DocumentDetail::find($request->id); $filepath = public_path($document->file); return Response::download($filepath); } public function label(Request $request) { if (is_null($this->user) || !$this->user->can('document.read')) { abort(403, 'Sorry !! You are Unauthorized to download any master data !'); } $document_detail = DocumentDetail::with(['document'])->find($request->id); $document = Document::with(['document_details'])->where(['kode_dus' => $document_detail->document->kode_dus, 'sequence_dus' => $document_detail->document->sequence_dus])->first(); $start = DocumentDetail::where('document_id', $document_detail->document_id)->orderBy('tanggal_dokumen', 'asc')->first()->tanggal_dokumen; $last = DocumentDetail::where('document_id', $document_detail->document_id)->orderBy('tanggal_dokumen', 'desc')->first()->tanggal_dokumen; $start = Carbon::create($start); $start = $start->isoFormat('DD MMMM Y'); $last = Carbon::create($last); $last = $last->isoFormat('DD MMMM Y'); return view('cetaklabel::app.document.label', compact('document_detail', 'start', 'last', 'document')); } public function odner(Request $request) { if (is_null($this->user) || !$this->user->can('document.read')) { abort(403, 'Sorry !! You are Unauthorized to download any master data !'); } $document_detail = DocumentDetail::with(['document'])->find($request->id); $document = Document::with(['document_details'])->where(['kode_odner' => $document_detail->document->kode_odner, 'sequence_odner' => $document_detail->document->sequence_odner])->first(); $start = DocumentDetail::where('document_id', $document_detail->document_id)->orderBy('tanggal_dokumen', 'asc')->first()->tanggal_dokumen; $last = DocumentDetail::where('document_id', $document_detail->document_id)->orderBy('tanggal_dokumen', 'desc')->first()->tanggal_dokumen; $start = Carbon::create($start); $start = $start->isoFormat('DD MMMM Y'); $last = Carbon::create($last); $last = $last->isoFormat('DD MMMM Y'); return view('cetaklabel::app.document.odner', compact('document_detail', 'start', 'last', 'document')); } }