<?php namespace App\Http\Controllers; use App\Feedback; use App\Homestay; use App\ListBook; use App\Room; use App\Transaksi; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use App\User; use App\Customer; use Illuminate\Support\Facades\DB; use Illuminate\Contracts\Auth\Guard; use DateTime; use PhpParser\Node\Stmt\Const_; use Psy\Command\ListCommand\ConstantEnumerator; use Illuminate\Notifications\Messages\NexmoMessage; use SimpleSoftwareIO\SMS\Drivers\NexmoSMS; use Nexmo\Laravel\Facade\Nexmo; class CustomerController extends Controller { public function __construct(){ //$this->middleware('auth'); $this->middleware('customer'); } public function cancelPemesanan($id){ $dataTrsaksi = Transaksi::find($id); $dataTrsaksi->delete(); DB::table('daftar_book')->where('id_transaksi', '=', $id)->delete(); return redirect('customerHistory'); } public function sendFeedback(Request $request, $id){ if(Auth::guest()){ dd("maaf nggak bisa banf"); } $dataPelanggan = DB::table('pelanggan') ->select('pelanggan.id') ->where('pelanggan.id_Akun','=',Auth::user()->id) ->get(); $dataPemilik = DB::table('homestay') ->select('homestay.idPemilik') ->where('homestay.id','=',$id) ->get(); //dd($dataPelanggan,$dataPemilik); $feed = new Feedback(); $feed->id_pemilikHomestay = $dataPemilik[0]->idPemilik; $feed->idPelanggan = $dataPelanggan[0]->id; $feed->feedback = $request['feedback']; $feed->save(); return redirect()->action('CustomerController@detailhomestay', ['id' => $id]); //return redirect('detailhomestay/{id}',$id); } public function upload(Request $request,$id) { //dd("masuk agan"); $data = Transaksi::find($id); if($request->file('bukti_pembayaran')==null){ $data->bukti_pembayaran = $data->bukti_pembayaran; }else{ $file = $request->file('bukti_pembayaran'); $fileName = $file->getClientOriginalName(); $request->file('bukti_pembayaran')->move("img/",$fileName); $data->bukti_pembayaran = $fileName; } //$cus->update(); $data->update(); return redirect('customerHistory'); } public function bukti($id){ $data = Transaksi::find($id); return view('adminlte::layouts.customers.Upload')->with('data',$data); } public function history(){ $data = DB::table('pelanggan') ->select('pelanggan.*') ->where('pelanggan.id_Akun','=',Auth::user()->id) ->get(); $dataTrans = DB::table('homestay') ->join('transaksi','homestay.id','=','transaksi.id_homestay') ->join('pemilikhomestay','homestay.idPemilik','=','pemilikhomestay.id') ->select('transaksi.*','pemilikhomestay.nama','pemilikhomestay.noRekening') ->where('transaksi.id_pelanggan','=',$data[0]->id) ->get(); // dd($dataTrans); return view('adminlte::layouts.customers.History')->with('data',$dataTrans); } public function profile(){ //dd("masuk agan"); //dd(Auth::user()->id); $data = DB::table('pelanggan') ->select('pelanggan.*') ->where('pelanggan.id_Akun','=',Auth::user()->id) ->get(); //$data2 = User::find(Auth::user()->id); //dd($data[0]); return view('adminlte::layouts.customers.profiles')->with('data',$data[0]); } public function registerStore(Request $data){ $user = new User(); $user->name = $data['name']; $user->username = $data['username']; $user->email = $data['email']; $user->password = bcrypt($data['password']); $user->role = "Customer"; $user->foto = "gravatar.png"; $user->save(); $dataPel = DB::table('users') ->select('users.id') ->where('users.username','=',$data['username']) ->get(); $cus = new Customer(); $cus->id_Akun = $dataPel[0]->id; $cus->nama = $data['name'] ; $cus->alamat = "---"; $cus->noTelepon = "---"; $cus->pekerjaan = "---"; $cus->save(); //$this->guard()->login($user); return redirect('login'); } public function editProfile($id){ $data = Customer::find($id); //dd($data); return view('adminlte::layouts.customers.editprofiles')->with('data',$data); } public function updateProfile(Request $request,$id){ $cus = Customer::find($id); $dataUs = User::find(Auth::user()->id); if($request['nama']==""){ $cus->nama = $cus->nama; $dataUs->name = $dataUs->name; }else{ $cus->nama = $request['nama']; $dataUs->name=$request['nama']; } $cus->alamat = $request['alamat']; $cus->pekerjaan = $request['pekerjaan']; $cus->noTelepon = $request['noTelepon']; if($request->file('foto')==null){ $dataUs->foto = $dataUs->foto; }else{ $file = $request->file('foto'); $fileName = $file->getClientOriginalName(); $request->file('foto')->move("img/",$fileName); $dataUs->foto = $fileName; } $cus->update(); $dataUs->update(); return redirect('customerProfile'); } public function booking(Request $request){ $this->validate($request,[ 'tanggal' => 'required', 'jumlah_hari' => 'required|numeric', 'jumlah_kamar' => 'required|numeric', ],[ 'tanggal.required' => 'Tanggal Harus di isi', 'jumlah_kamar.required' => ' Jumlah Kamar Harus di isi', 'jumlah_kamar.numeric' => ' Jumlah Kamr harus berupa Angka', 'jumlah_hari.required' => ' Lama menginap harus Diisi', 'jumlah_hari.numeric' => ' Lama menginap harus berupa Angka', ]); if(Auth::guest()){ return view('adminlte::errors.Account'); } $lb = new ListBook(); $dataHomestay = DB::table('homestay') ->join('kamar','homestay.id','=','kamar.idHomestay') ->select('kamar.*','homestay.harga','homestay.jumlahKamar') ->where('homestay.id','=',$request['id']) ->get(); $dataPemilik = DB::table('homestay') ->join('pemilikhomestay','homestay.idPemilik','pemilikhomestay.id') ->select('pemilikhomestay.noTelepon') ->where('homestay.id','=',$request['id']) ->get(); //dd("masuk dis "); $homestayJumlahKamar = DB::table('homestay')->select('homestay.jumlahKamar')->where('homestay.id','=',$request['id'])->get(); $dataBookingMulai = DB::table('daftar_book') ->select('daftar_book.*') ->where('daftar_book.tanggal_mulai','=',$request['tanggal']) ->get(); $dataBookingBerakhir = DB::table('daftar_book') ->select('daftar_book.*') ->where('daftar_book.tanggal_berakhir','=',$request['tanggal']) ->get(); if($dataBookingMulai->count() > 0){ $currentJumlahKamar = $homestayJumlahKamar[0]->jumlahKamar - $dataBookingMulai[0]->jumlah_kamar; if($currentJumlahKamar >= $request['jumlah_kamar']){ dd("masuk gan" ,$request['jumlah_kamar'],$request['tanggal']); }else{ dd("nggak boleh"); } }else{ if($dataBookingBerakhir->count() > 0){ $currentJumlahKamar2 = $homestayJumlahKamar[0]->jumlahKamar - $dataBookingBerakhir[0]->jumlah_kamar; if($currentJumlahKamar2 >= $request['jumlah_kamar']){ dd('boleh aja agan'); }else{ dd('nggak boleh'); } }else{ //dd('masuk aja gan'); } } //dd('dataBooking',$dataBooking,'dataHomestay',$dataHomestay); $dataPelanggan = DB::table('users') ->join('pelanggan','users.id','=','pelanggan.id_Akun') ->select('pelanggan.id','pelanggan.nama') ->where('users.id','=',Auth::user()->id) ->get(); //dd($dataHomestay,$dataPelanggan); $time = explode('-', $request['tanggal']); //dd($time[1]+2); if ($time[1]==2){ $time[2] += $request['jumlah_hari']; if ($time[2]>28){ $time[2] = 0; $time[2] += $request['jumlah_hari']; $time[2] -=1; $time[1] +=1; if($time[1]>12){ $time[1] = 1; } } }else{ if($time[1]%2==1){ $time[2] += $request['jumlah_hari']; if($time[2]>31){ $time[2] = 0; $time[2] += $request['jumlah_hari']; $time[1] +=1; } $time[2] -=1; }else{ $time[2] += $request['jumlah_hari']; if($time[2]>30){ $time[2] = 0; $time[2] += $request['jumlah_hari']; $time[1] +=1; } $time[2] -=1; } } $baru = join('-',$time); //dd($request['tanggal'],$baru,$request['jumlah_hari']); //Insert Table Transaksi $trans = new Transaksi(); $trans->id_pelanggan = $dataPelanggan[0]->id; $trans->id_homestay = $request['id']; $trans->tanggal_mulai = $request['tanggal']; $trans->tanggal_berakhir = $baru; $trans->jumlah_kamar =$request['jumlah_kamar']; $trans->lama_menginap = $request['jumlah_hari']; $trans->total_pembayaran = $request['jumlah_kamar'] * $dataHomestay[0]->harga; $trans->status = 0; $trans->save(); $dataTrans = DB::table('transaksi') ->select('transaksi.id') ->where('transaksi.tanggal_mulai','=',$request['tanggal']) ->where('transaksi.tanggal_berakhir','=',$baru) ->get(); //Insert Table Daftar Booking $lb->homestay = $request['id']; $lb->id_transaksi = $dataTrans[0]->id; $lb->nama_pemesan = $dataPelanggan[0]->nama; $lb->jumlah_kamar = $request['jumlah_kamar']; $lb->tanggal_mulai = $request['tanggal'] ; $lb->tanggal_berakhir = $baru; //Save $lb->save(); Nexmo::message()->send([ 'to' => $dataPemilik[0]->noTelepon, 'from' => 'ASDASD', 'text' => 'Hi ini hanya sebuah test no more' ]); return redirect()->action('CobaController@detailhomestay', ['id' => $request['id']]); } }