Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2019
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.71 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement