SHARE
TWEET

Untitled

a guest Jul 22nd, 2019 55 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2.  
  3. namespace App\Http\Controllers\Bencana;
  4.  
  5. use Illuminate\Http\Request;
  6. use App\Http\Controllers\Controller;
  7.  
  8. use App\Models\MsBencana;
  9. use App\Models\MsUserClient;
  10. use App\Http\Requests\Bencana\BencanaRequest;
  11. use DataTables;
  12. use Session;
  13. use Pdf;
  14. use App;
  15. use Carbon\Carbon;
  16. use Image;
  17. use File;
  18. use Dira;
  19. use Validator;
  20.  
  21. class BencanaController extends Controller
  22. {
  23.     /**
  24.      * Display a listing of the resource.
  25.      *
  26.      * @return \Illuminate\Http\Response
  27.      */
  28.     public function index()
  29.     {
  30.         return view('backend.bencana.index');
  31.     }
  32.  
  33.     /**
  34.      * Show the form for creating a new resource.
  35.      *
  36.      * @return \Illuminate\Http\Response
  37.      */
  38.     public function create()
  39.     {
  40.         $prefix = 'BENCANA';
  41.         $id = MsBencana::max('id')+1;
  42.         $code = $prefix.$id;
  43.         $users = MsUserClient::all();
  44.         return view('backend.bencana.create_edit', compact('code' , 'users'));
  45.     }
  46.  
  47.     /**
  48.      * Store a newly created resource in storage.
  49.      *
  50.      * @param  \Illuminate\Http\Request  $request
  51.      * @return \Illuminate\Http\Response
  52.      */
  53.     public function store(BencanaRequest $request)
  54.     {
  55.         $input = $request->all();
  56.         if ($request->hasFile('photo')) {
  57.             $image = Dira::singleUpload($request, 'photo', 'Bencana');
  58.             $input['photo'] = $image;
  59.             $data = MsBencana::create($input);
  60.             if ($data) {
  61.                 Session::flash('notification', 'Data has been added.');
  62.                 return response()->json(['message' => 'Data has been added'], 200);
  63.             } else {
  64.                 return response()->json(['message' => 'Oops! somethings went wrong error'], 500);
  65.             }
  66.         } else {
  67.             return response()->json(['message' => 'Oops! somethings went wrong error'], 500);
  68.         }
  69.     }
  70.  
  71.     /**
  72.      * Display the specified resource.
  73.      *
  74.      * @param  int  $id
  75.      * @return \Illuminate\Http\Response
  76.      */
  77.     public function show($id)
  78.     {
  79.         //
  80.     }
  81.  
  82.     /**
  83.      * Show the form for editing the specified resource.
  84.      *
  85.      * @param  int  $id
  86.      * @return \Illuminate\Http\Response
  87.      */
  88.     public function edit($id)
  89.     {
  90.         $data = MsBencana::with('user')->withTrashed()->find($id);
  91.         if ($data) {
  92.             return view('backend.bencana.create_edit', compact('data'));
  93.         }
  94.  
  95.         abort(404);
  96.     }
  97.  
  98.     /**
  99.      * Update the specified resource in storage.
  100.      *
  101.      * @param  \Illuminate\Http\Request  $request
  102.      * @param  int  $id
  103.      * @return \Illuminate\Http\Response
  104.      */
  105.     public function update(Request $request, $id)
  106.     {
  107.         $rule = [
  108.             'location'       => 'required|string',
  109.             'keterangan'     => 'required|string',
  110.             'photo'          => 'image|mimes:jpg,png,jpeg',
  111.         ];
  112.  
  113.         $valid = Validator::make($request->all(), $rule);
  114.         $data = MsBencana::find($id);
  115.  
  116.         if ($valid->fails()) {
  117.             return Dira::sendError('Oops! something went wrong error.', $valid->errors());
  118.         }
  119.        
  120.         if ($data) {
  121.             $data->update($request->all());
  122.             if ($request->hasFile('photo')) {
  123.                 $image = Dira::singleUpload($request, 'photo', 'BencanaAlam');
  124.                 Dira::removeFile($data->photo);
  125.                 $data->update(['photo' => $image]);
  126.             }
  127.             return response()->json(['message' => 'Data has been updated'], 200);
  128.         } else {
  129.             return response()->json(['message' => 'Opps! something went wrong error'], 500);
  130.         }
  131.     }
  132.  
  133.     /**
  134.      * Remove the specified resource from storage.
  135.      *
  136.      * @param  int  $id
  137.      * @return \Illuminate\Http\Response
  138.      */
  139.     public function destroy($id)
  140.     {
  141.         if (is_array(explode(',', $id))) {
  142.             MsBencana::destroy(explode(',', $id));
  143.         } else {
  144.             MsBencana::findOrFail($id)->delete();
  145.         }
  146.     }
  147.  
  148.     public function restore($id)
  149.     {
  150.         if (is_array(explode(',', $id))) {
  151.             MsBencana::withTrashed()
  152.             ->whereIn('id', explode(',', $id))
  153.                 ->restore();
  154.         } else {
  155.             MsBencana::withTrashed()->where('id', $id)->restore();
  156.         }
  157.     }
  158.  
  159.     public function remove($id)
  160.     {
  161.         if (is_array(explode(',', $id))) {
  162.             MsBencana::whereIn('id', explode(',', $id))->forceDelete();
  163.         } else {
  164.             MsBencana::findOrFail($id)->forceDelete();
  165.         }
  166.     }
  167.  
  168.     public function data(Request $request)
  169.     {
  170.         $data = MsBencana::with('user')->withTrashed();
  171.  
  172.         if ($request->has('datefrom') && $request->get('datefrom') != null) {
  173.             $date = explode(' - ', $request->input('datefrom'));
  174.             $dd1 = $date[0].'00:00';
  175.             $dd2 = $date[1].'00:00';
  176.             $date1 = Carbon::parse($dd1)->format('Y-m-d H:i');
  177.             $date2 = Carbon::parse($dd2)->format('Y-m-d H:i');
  178.             $data->whereBetween('created_at', [$date1,$date2])->get();
  179.         } else {
  180.             $data->get();
  181.         }
  182.         return DataTables::of($data)
  183.                             ->addIndexColumn()
  184.                             ->editColumn('code', function ($item) {
  185.                                 return '<a href="'.route('bencana.edit', $item->id).'">'.$item->code.'</a>';
  186.                             })
  187.                             ->editColumn('delete_at', function ($item) {
  188.                                 $green = "<span style='color: green'><i class='icon-checkmark'></i></span>";
  189.                                 $red = "<span style='color: red'><i class='icon-x'></i></span>";
  190.                                 return is_null($item->deleted_at) ? $green : $red;
  191.                             })
  192.                             ->escapeColumns([])
  193.                             ->make(true);
  194.     }
  195.  
  196.     public function export(Request $request)
  197.     {
  198.         $data = MsBencana::with('user')->withTrashed();
  199.         $datefrom = $request->input('datefrom');
  200.         if ($request->has('datefrom') && $request->datefrom != null ) {
  201.             $date = explode(' - ', $request->input('datefrom'));
  202.             $dd1 = $date[0].'00:00';
  203.             $dd2 = $date[1].'23:59';
  204.             $date1 = Carbon::parse($dd1)->format('Y-m-d H:i');
  205.             $date2 = Carbon::parse($dd2)->format('Y-m-d H:i');
  206.             $data =  $data->whereBetween('created_at', [$date1,$date2])->get();
  207.         } else {
  208.             $data = $data->get();
  209.         }
  210.  
  211.         $pdf = App::make('snappy.pdf.wrapper');
  212.         $pdf->loadView('report.Bencana-alam-export', compact('data', 'datefrom'));
  213.         return $pdf->download('Bencana-alam-export.pdf');
  214.     }
  215. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top