Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace App\Http\Controllers\Bencana;
- use Illuminate\Http\Request;
- use App\Http\Controllers\Controller;
- use App\Models\MsBencana;
- use App\Models\MsUserClient;
- use App\Http\Requests\Bencana\BencanaRequest;
- use DataTables;
- use Session;
- use Pdf;
- use App;
- use Carbon\Carbon;
- use Image;
- use File;
- use Dira;
- use Validator;
- class BencanaController extends Controller
- {
- /**
- * Display a listing of the resource.
- *
- * @return \Illuminate\Http\Response
- */
- public function index()
- {
- return view('backend.bencana.index');
- }
- /**
- * Show the form for creating a new resource.
- *
- * @return \Illuminate\Http\Response
- */
- public function create()
- {
- $prefix = 'BENCANA';
- $id = MsBencana::max('id')+1;
- $code = $prefix.$id;
- $users = MsUserClient::all();
- return view('backend.bencana.create_edit', compact('code' , 'users'));
- }
- /**
- * Store a newly created resource in storage.
- *
- * @param \Illuminate\Http\Request $request
- * @return \Illuminate\Http\Response
- */
- public function store(BencanaRequest $request)
- {
- $input = $request->all();
- if ($request->hasFile('photo')) {
- $image = Dira::singleUpload($request, 'photo', 'Bencana');
- $input['photo'] = $image;
- $data = MsBencana::create($input);
- if ($data) {
- Session::flash('notification', 'Data has been added.');
- return response()->json(['message' => 'Data has been added'], 200);
- } else {
- return response()->json(['message' => 'Oops! somethings went wrong error'], 500);
- }
- } else {
- return response()->json(['message' => 'Oops! somethings went wrong error'], 500);
- }
- }
- /**
- * Display the specified resource.
- *
- * @param int $id
- * @return \Illuminate\Http\Response
- */
- public function show($id)
- {
- //
- }
- /**
- * Show the form for editing the specified resource.
- *
- * @param int $id
- * @return \Illuminate\Http\Response
- */
- public function edit($id)
- {
- $data = MsBencana::with('user')->withTrashed()->find($id);
- if ($data) {
- return view('backend.bencana.create_edit', compact('data'));
- }
- abort(404);
- }
- /**
- * Update the specified resource in storage.
- *
- * @param \Illuminate\Http\Request $request
- * @param int $id
- * @return \Illuminate\Http\Response
- */
- public function update(Request $request, $id)
- {
- $rule = [
- 'location' => 'required|string',
- 'keterangan' => 'required|string',
- 'photo' => 'image|mimes:jpg,png,jpeg',
- ];
- $valid = Validator::make($request->all(), $rule);
- $data = MsBencana::find($id);
- if ($valid->fails()) {
- return Dira::sendError('Oops! something went wrong error.', $valid->errors());
- }
- if ($data) {
- $data->update($request->all());
- if ($request->hasFile('photo')) {
- $image = Dira::singleUpload($request, 'photo', 'BencanaAlam');
- Dira::removeFile($data->photo);
- $data->update(['photo' => $image]);
- }
- return response()->json(['message' => 'Data has been updated'], 200);
- } else {
- return response()->json(['message' => 'Opps! something went wrong error'], 500);
- }
- }
- /**
- * Remove the specified resource from storage.
- *
- * @param int $id
- * @return \Illuminate\Http\Response
- */
- public function destroy($id)
- {
- if (is_array(explode(',', $id))) {
- MsBencana::destroy(explode(',', $id));
- } else {
- MsBencana::findOrFail($id)->delete();
- }
- }
- public function restore($id)
- {
- if (is_array(explode(',', $id))) {
- MsBencana::withTrashed()
- ->whereIn('id', explode(',', $id))
- ->restore();
- } else {
- MsBencana::withTrashed()->where('id', $id)->restore();
- }
- }
- public function remove($id)
- {
- if (is_array(explode(',', $id))) {
- MsBencana::whereIn('id', explode(',', $id))->forceDelete();
- } else {
- MsBencana::findOrFail($id)->forceDelete();
- }
- }
- public function data(Request $request)
- {
- $data = MsBencana::with('user')->withTrashed();
- if ($request->has('datefrom') && $request->get('datefrom') != null) {
- $date = explode(' - ', $request->input('datefrom'));
- $dd1 = $date[0].'00:00';
- $dd2 = $date[1].'00:00';
- $date1 = Carbon::parse($dd1)->format('Y-m-d H:i');
- $date2 = Carbon::parse($dd2)->format('Y-m-d H:i');
- $data->whereBetween('created_at', [$date1,$date2])->get();
- } else {
- $data->get();
- }
- return DataTables::of($data)
- ->addIndexColumn()
- ->editColumn('code', function ($item) {
- return '<a href="'.route('bencana.edit', $item->id).'">'.$item->code.'</a>';
- })
- ->editColumn('delete_at', function ($item) {
- $green = "<span style='color: green'><i class='icon-checkmark'></i></span>";
- $red = "<span style='color: red'><i class='icon-x'></i></span>";
- return is_null($item->deleted_at) ? $green : $red;
- })
- ->escapeColumns([])
- ->make(true);
- }
- public function export(Request $request)
- {
- $data = MsBencana::with('user')->withTrashed();
- $datefrom = $request->input('datefrom');
- if ($request->has('datefrom') && $request->datefrom != null ) {
- $date = explode(' - ', $request->input('datefrom'));
- $dd1 = $date[0].'00:00';
- $dd2 = $date[1].'23:59';
- $date1 = Carbon::parse($dd1)->format('Y-m-d H:i');
- $date2 = Carbon::parse($dd2)->format('Y-m-d H:i');
- $data = $data->whereBetween('created_at', [$date1,$date2])->get();
- } else {
- $data = $data->get();
- }
- $pdf = App::make('snappy.pdf.wrapper');
- $pdf->loadView('report.Bencana-alam-export', compact('data', 'datefrom'));
- return $pdf->download('Bencana-alam-export.pdf');
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement