diff --git a/app/Http/Controllers/AccountController.php b/app/Http/Controllers/AccountController.php index 1b6d9f5c..9c7954fe 100644 --- a/app/Http/Controllers/AccountController.php +++ b/app/Http/Controllers/AccountController.php @@ -90,12 +90,12 @@ class AccountController extends Controller } } - return view('account.sahsagonline', compact('senaraisag', 'user_id', 'lelong_id','total_payment')); + return view('account.sahsagonline', compact('senaraisag', 'lelong_id', 'user_id', 'total_payment')); } - public function sahbayaronline($lelong_id, $user_id) + public function sahbayaronline(Request $request) { - + // dd($request->all()); $currentdate = Carbon::now(); $currentdate = $currentdate->toDateTimeString(); @@ -103,25 +103,26 @@ class AccountController extends Controller $senaraisag = LelongBid::join('lelongbidder', 'lelongbid.id', '=', 'lelongbidder.lelongbid_id') ->join('payment', 'lelongbid.id', '=', 'payment.lelongbid_id') - ->where('lelongbid.lelong_id', $lelong_id) - ->where('lelongbidder.user_id', $user_id) + ->where('lelongbid.lelong_id', $request->lelong_id) + ->where('lelongbidder.user_id', $request->user_id) ->where('lelongbidder.status_bidder', 1) ->where('payment.status_payment_opt', 2) - ->get(); + ->get(); + $total_payment = 0; foreach($senaraisag as $sag) { - $payment = Payment::where('lelong_id', $lelong_id) - ->where('user_id', $user_id) + $payment = Payment::where('lelong_id', $request->lelong_id) + ->where('user_id', $request->user_id) ->where('lelongbid_id',$sag->lelongbid_id) ->first(); + $payment->disahkan_oleh = $user->id; $payment->disahkan_pada = $currentdate; $payment->save(); $total_payment = $total_payment + $payment->total_payment; - $updatelelbidbidder = LelongBidder::where('lelongbid_id', $sag->lelongbid_id) ->first(); $updatelelbidbidder->status_payment = 1; @@ -133,14 +134,14 @@ class AccountController extends Controller $eachbid->save(); } - + $senaraisagallpayment = LelongBid::join('lelongbidder', 'lelongbid.id', '=', 'lelongbidder.lelongbid_id') - ->where('lelongbid.lelong_id', $lelong_id) - ->where('lelongbidder.user_id', $user_id) + ->where('lelongbid.lelong_id', $request->lelong_id) + ->where('lelongbidder.user_id', $request->user_id) ->where('lelongbidder.status_bidder', 1) ->get(); - // dd($senaraisagallpayment); - $resit = Resit::where('id',$payment->resit_id)->first(); + + $resit = Resit::where('id', $payment->resit_id)->first(); $resit->total_payment = $resit->total_payment + $total_payment; if($resit->total_payment >= $senaraisagallpayment->sum('hargabida')) diff --git a/app/Http/Controllers/ApiController.php b/app/Http/Controllers/ApiController.php index 843d3507..4a832278 100644 --- a/app/Http/Controllers/ApiController.php +++ b/app/Http/Controllers/ApiController.php @@ -163,7 +163,7 @@ class ApiController extends Controller Money::MYR($total_bayaran), route('pay.callback'), 'Bayaran Borang', - ['redirect_url' => 'http://192.168.0.88:8003/api/pembayaran/response'] + ['redirect_url' => 'http://192.168.88:8003/api/pembayaran/response'] ); // dd($response); $previous_siri = Resit::orderBy('id','desc')->first(); @@ -296,6 +296,200 @@ class ApiController extends Controller $resit->paid_at = null; $resit->save(); + event(new PaymentNotify('UNSUCCESSFUL',$resit->user_id)); + return response()->json([ + 'success' => false, + 'resit' => $resit + ]); + } + } + + public function bidpayment(Request $request) + { + + $arraycollection_id = array(); + + $http = new HttpMethodsClient( + new GuzzleHttpClient(), + new GuzzleMessageFactory() + ); + + $billplz = new Client($http, $this->api_key); + if(config('app.env') != 'production'){ + $billplz->useSandbox(); + } + + $billplz->useVersion('v4'); + + $bill = $billplz->bill(); + + $current = Carbon::now(); + $current = new Carbon(); + + $day = $current->day; + $month = $current->month; + $year = $current->format('y'); + + $total_bayaran = ($request->total)*100; + + $collection_id = $this->collection_id; + $response = $bill->create( + $collection_id, + $request->email, + $request->notel, + $request->name, + Money::MYR($total_bayaran), + route('pay.bidcallback'), + 'Bayaran Bidaan', + ['redirect_url' => 'http://192.168.88:8003/api/pembayaran/bidresponse'] + ); + // dd($response); + $previous_siri = Resit::orderBy('id','desc')->first(); + if($previous_siri){ + $nosiri = $previous_siri->id + 1; + }else{ + $nosiri = 1; + } + + $billcode = $response->toArray(); + // dd($billcode); + // $billcode['redirect_url'] = 'http://192.168.0.10:8003/api/pembayaran/response'; + // dd($billcode); + $reference_no = 'LPKB' . $day . $month . $year . sprintf("%08d", $nosiri); + // $response2 = $bill->get($billcode['id']); + // dd($response2->toArray()); + $resit = new Resit; + $resit->user_id = $request->user_id; + $resit->lelong_id = $request->lelong_id; + $resit->reference_no = $reference_no; + $resit->billplz_id = $billcode['id']; + $resit->resit_type = 3; //billplz resit for bid payment + $resit->total_payment = $request->total; + $resit->save(); + + + return redirect($billcode['url'] . '?auto_submit=true'); + + // return view('pembayaran.result.berjaya',compact('arraybayaran')); + } + + public function bidcallback(Request $request){ + // dd('hye callback'); + $http = new HttpMethodsClient( + new GuzzleHttpClient(), + new GuzzleMessageFactory() + ); + + $billplz = new Client($http, $this->api_key); + if(config('app.env') != 'production'){ + $billplz->useSandbox(); + } + $billplz->useVersion('v4'); + + $bill = $billplz->bill(); + + $data = $bill->webhook($request->toArray()); + + if($data['billplz']['paid'] == 'true'){ + $resit = Resit::where('billplz_id','=',$data['billplz']['id'])->first(); + $resit->status = 'PAID'; + $resit->paid_at = $data['billplz']['paid_at']; + $resit->save(); + + $resitoriginal = Resit::where('user_id', $resit->user_id) + ->where('lelong_id', $resit->lelong_id) + ->where('resit_type', 2) + ->first(); + $payment = $resit->total_payment; + $resitoriginal->total_payment = $resitoriginal->total_payment + $payment; + $resitoriginal->save(); + + $payment = new Payment; + $payment->user_id = $resitoriginal->user_id; + $payment->lelong_id = $resitoriginal->lelong_id; + $payment->total_payment = $resit->total_payment; + $payment->resit_id = $resitoriginal->id; + $payment->status_payment_opt = 2; //bayar secara online 2 + $payment->status = 1; //fee rm10 - 1 + $payment->remark = 'BAYARAN ONLINCE'; + $payment->save(); + + event(new PaymentNotify('PAID',$resitoriginal->user_id)); + + return response()->json([ + 'success' => true, + 'resit' => $resitoriginal + ]); + + }else{ + $resit = Resit::where('billplz_id','=',$data['billplz']['id'])->first(); + $resit->status = 'UNSUCCESSFUL'; + $resit->paid_at = null; + $resit->save(); + + event(new PaymentNotify('UNSUCCESSFUL',$resit->user_id)); + return response()->json([ + 'success' => false, + 'resit' => $resit + ]); + } + } + + public function bidresponse(Request $request){ + // dd('hye response'); + $http = new HttpMethodsClient( + new GuzzleHttpClient(), + new GuzzleMessageFactory() + ); + + $billplz = new Client($http, $this->api_key); + if(config('app.env') != 'production'){ + $billplz->useSandbox(); + } + $billplz->useVersion('v4'); + + $bill = $billplz->bill(); + $req = $request->toArray(); + $response = $bill->get($req['billplz']['id']); + $data = $response->toArray(); + // dd($data); + if($data['paid'] == 'true'){ + $resit = Resit::where('billplz_id','=',$data['id'])->first(); + $resit->status = 'PAID'; + $resit->paid_at = $data['paid_at']; + $resit->save(); + + $resitoriginal = Resit::where('user_id', $resit->user_id) + ->where('lelong_id', $resit->lelong_id) + ->where('resit_type', 2) + ->first(); + + $resitoriginal->total_payment = $resitoriginal->total_payment + $resit->total_payment; + $resitoriginal->save(); + + $payment = new Payment; + $payment->user_id = $resitoriginal->user_id; + $payment->lelong_id = $resitoriginal->lelong_id; + $payment->total_payment = $resit->total_payment; + $payment->resit_id = $resitoriginal->id; + $payment->status_payment_opt = 2; //bayar secara online 2 + $payment->status = 1; //fee rm10 - 1 + $payment->remark = 'BAYARAN ONLINCE'; + $payment->save(); + + event(new PaymentNotify('PAID',$resit->user_id)); + + return response()->json([ + 'success' => true, + 'resit' => $resit + ]); + + }else{ + $resit = Resit::where('billplz_id','=',$data['id'])->first(); + $resit->status = 'UNSUCCESSFUL'; + $resit->paid_at = null; + $resit->save(); + event(new PaymentNotify('UNSUCCESSFUL',$resit->user_id)); return response()->json([ 'success' => false, diff --git a/app/Http/Controllers/LelongController.php b/app/Http/Controllers/LelongController.php index 80877b9e..703e20bc 100644 --- a/app/Http/Controllers/LelongController.php +++ b/app/Http/Controllers/LelongController.php @@ -474,6 +474,7 @@ class LelongController extends Controller $previous_siri = Resit::orderBy('id','desc')->first(); $checkdata = Resit::where('user_id', $bidder->user_id) ->where('lelong_id', $id) + ->where('resit_type', 2) ->first(); if(!$checkdata){ if($previous_siri){ diff --git a/app/Http/Controllers/MailController.php b/app/Http/Controllers/MailController.php new file mode 100644 index 00000000..7fef14bc --- /dev/null +++ b/app/Http/Controllers/MailController.php @@ -0,0 +1,32 @@ +get(); + + foreach($users as $user) + { + $email = $user->email; + + $mailData = [ + 'title' => 'Notis Lelongan Gadaian', + 'url' => 'https://www.positronx.io' // show unpaid gadaian + ]; + + Mail::to($email)->send(new notislelong($mailData)); + } + + return response()->json([ + 'message' => 'Email has been sent.' + ], Response::HTTP_OK); + } +} \ No newline at end of file diff --git a/app/Http/Controllers/Mobile/LelongMobileController.php b/app/Http/Controllers/Mobile/LelongMobileController.php index 164d78df..1a795f48 100644 --- a/app/Http/Controllers/Mobile/LelongMobileController.php +++ b/app/Http/Controllers/Mobile/LelongMobileController.php @@ -180,4 +180,69 @@ class LelongMobileController extends Controller return response()->json($lelong); } + + public function bidresult($user_id) + { + $sag = LelongBidder::join('lelongbid', 'lelongbidder.lelongbid_id', '=', 'lelongbid.id') + ->join('lelong', 'lelongbid.lelong_id', '=', 'lelong.id') + ->where('lelongbidder.user_id',$user_id) + // ->where('lelongbid.lelong_id',$lelong_id) + ->where('lelongbidder.status_bidder',1) + ->whereNull('lelongbidder.status_payment') + ->select( + 'lelongbid.lelong_id', + 'lelongbidder.user_id', + 'lelongbidder.lelongbid_id', + 'lelongbidder.hargabida', + 'lelongbidder.status_payment', + 'lelongbid.norujukan' + + ) + ->get(); + + // dd($sag); + $data = []; + $total_hargabida = $sag->sum('hargabida'); + array_push($data,[ + 'sag'=> $sag, + 'total_hargabida'=> $total_hargabida + ]); + // dd($winner); + return response()->json($data); + } + + public function updatebiditem(Request $request) + { + // dd($request->norujukan->toArray()); + // foreach($request->norujukan as $norujukan) + // { + // dd($norujukan); + // } + $currentdate = Carbon::now(); + $currentdate = $currentdate->toDateTimeString(); + + $lelongbid = LelongBid::whereIn('norujukan',$request->norujukan) + ->where('lelong_id',$request->lelong_id) + ->get(); + + foreach($lelongbid as $bid) + { + $lelongbidder = LelongBidder::where('lelongbid_id',$bid->id)->first(); + $lelongbidder->status_payment =1; + $lelongbidder->save(); + + $lelongbid = LelongBid::where('id',$bid->id)->first(); + $lelongbid->status_jual = 1; + $lelongbid->t_jual = $currentdate; + $lelongbid->hargajual = $lelongbidder->hargabida; + $lelongbid->save(); + } + $response = [ + 'success' => "success", + 'message' => "Bidaan berjaya dibayar" + ]; + + return response()->json($response, 201); + + } } diff --git a/app/Http/Controllers/NotisController.php b/app/Http/Controllers/NotisController.php index d747ae90..ceb92048 100644 --- a/app/Http/Controllers/NotisController.php +++ b/app/Http/Controllers/NotisController.php @@ -44,8 +44,6 @@ class NotisController extends Controller public function notislelong() { $user = Auth::user(); - - $lelongid = CawanganLelong::join('lelong','cawangan_lelong.lelong_id','=','lelong.id') ->join('cawangan','cawangan_lelong.caw_id','=','cawangan.id') @@ -112,8 +110,6 @@ class NotisController extends Controller } - - public function listnotis(Request $request){ @@ -155,9 +151,6 @@ class NotisController extends Controller } - - - } \ No newline at end of file diff --git a/app/Http/Controllers/PaymentController.php b/app/Http/Controllers/PaymentController.php index 9e9c856a..1e82e6b4 100644 --- a/app/Http/Controllers/PaymentController.php +++ b/app/Http/Controllers/PaymentController.php @@ -117,6 +117,7 @@ class PaymentController extends Controller $resit = Resit::where('lelong_id', $request->lelong_id) ->where('user_id',$request->user_id) + ->where('resit_type', 2) ->first(); $total_hargabida = 0; @@ -170,6 +171,7 @@ class PaymentController extends Controller $eachbidupdate = LelongBid::where('id',$bid)->first(); $eachbidupdate->status_jual = 1; $eachbidupdate->t_jual = $currentdate; + $eachbidupdate->hargajual = $eachbid->hargabida; $eachbidupdate->save(); } diff --git a/app/Http/Controllers/SimulasiController.php b/app/Http/Controllers/SimulasiController.php index 694562cc..59e6958b 100644 --- a/app/Http/Controllers/SimulasiController.php +++ b/app/Http/Controllers/SimulasiController.php @@ -284,6 +284,7 @@ class SimulasiController extends Controller $simulasi = Simulasi::where('id','=',$id)->first(); $cawangansim = CawanganSimulasi::where('simulasi_id','=',$id)->get(); $simkarat = SimKarat::where('simulasi_id','=',$id)->get(); + $jeniskarat = JenisKarat::all(); $arraydata = []; $arraycaw = []; @@ -444,7 +445,8 @@ class SimulasiController extends Controller 'total14K', 'total9K', 'simkarat', - 'simulasi_id')); + 'simulasi_id', + 'jeniskarat')); } public function delete($id) @@ -461,6 +463,65 @@ class SimulasiController extends Controller } + public function kemaskini(Request $request) + { + $simkarat = SimKarat::where('simulasi_id','=',$request->idsimulasi)->get(); + + foreach($simkarat as $karat) //save old harga asas + { + $simkarat_temp = new SimKarat_temp; + $simkarat_temp->simulasi_id = $request->idsimulasi; + $simkarat_temp->karat = $karat->karat; + $simkarat_temp->keterangan = $karat->keterangan; + $simkarat_temp->harga = $karat->harga; + $simkarat_temp->harga2 = $karat->harga2; + $simkarat_temp->save(); + } + foreach($simkarat as $index=>$karat) //update harga asas + { + $karat->karat = $karat->karat; + $karat->keterangan = $karat->keterangan; + $karat->harga = $request->harga[$index]; + $karat->harga2 = $request->harga2[$index]; + $karat->save(); + } + + //update marhun + $simulasibid = SimulasiBid::where('simulasi_id','=',$request->idsimulasi)->get(); + + foreach($simulasibid as $bid) + { + $sumhargaasas = 0; + $simulasibidmarhun = SimulasiBidMarhun::where('simulasibid_id','=',$bid->id)->get(); + foreach($simulasibidmarhun as $marhun) + { + $simkarat = SimKarat::where('simulasi_id','=',$bid->simulasi_id)->get(); + // dd($simkarat); + foreach($simkarat as $karat) + { + + if($karat->karat == $marhun->karat) + { + $val = round($marhun->berat * $karat->harga); + $sumhargaasas = $sumhargaasas + $val; + + $marhun->harga = $karat->harga; + $marhun->n_marhun = $marhun->berat * $karat->harga; + $marhun->hargaasas = floatval(number_format($val,2)); + $marhun->save(); + } + } + } + $bid->hargaasas = $sumhargaasas; + $bid->baki = $sumhargaasas-$bid->pinjaman - $bid->bakiupah - $bid->cajlelong; + $bid->save(); + + } + + return redirect()->route('analisa.senaraisimulasi',$request->idsimulasi) + ->with('success','Kemaskini Berjaya'); + } + // PDF SIMULASI KESELURUHAN SEMUA CAWANGAN public function export(Request $request) diff --git a/app/Mail/notislelong.php b/app/Mail/notislelong.php new file mode 100644 index 00000000..2a3cb7f7 --- /dev/null +++ b/app/Mail/notislelong.php @@ -0,0 +1,35 @@ +mailData = $mailData; + } + + /** + * Build the message. + * + * @return $this + */ + public function build() + { + return $this->markdown('Email.notispembida') + ->with('mailData', $this->mailData); + } +} diff --git a/resources/views/Email/demoEmail.blade.php b/resources/views/Email/demoEmail.blade.php new file mode 100644 index 00000000..fdb499ee --- /dev/null +++ b/resources/views/Email/demoEmail.blade.php @@ -0,0 +1,9 @@ +@component('mail::message') +# {{ $mailData['title'] }} +The body of your message. +@component('mail::button', ['url' => $mailData['url']]) +Button Text +@endcomponent +Thanks,
+{{ config('app.name') }} +@endcomponent \ No newline at end of file diff --git a/resources/views/Email/notispembida.blade.php b/resources/views/Email/notispembida.blade.php new file mode 100644 index 00000000..fdb499ee --- /dev/null +++ b/resources/views/Email/notispembida.blade.php @@ -0,0 +1,9 @@ +@component('mail::message') +# {{ $mailData['title'] }} +The body of your message. +@component('mail::button', ['url' => $mailData['url']]) +Button Text +@endcomponent +Thanks,
+{{ config('app.name') }} +@endcomponent \ No newline at end of file diff --git a/resources/views/account/sahsagonline.blade.php b/resources/views/account/sahsagonline.blade.php index 7fa44ec6..f66642bd 100644 --- a/resources/views/account/sahsagonline.blade.php +++ b/resources/views/account/sahsagonline.blade.php @@ -4,33 +4,32 @@
-
- @csrf - - - -
+
@if ($message = Session::get('success')) -
-

{{ $message }}

-
+
+

{{ $message }}

+
@endif - - - - - - - - - - - - - - @foreach($senaraisag as $sag) + + @csrf + + +
NoNo RujukanTarikh LelongHarga Asas (RM)Harga Bida (RM)Masa BidaanStatus
+ - + + + + + + + + + + + @foreach($senaraisag as $sag) + + @@ -39,31 +38,47 @@ - - @endforeach - + + @endforeach + + + + + + + +
{{ $loop->iteration }} NoNo RujukanTarikh LelongHarga Asas (RM)Harga Bida (RM)Masa BidaanStatus
{{ $loop->iteration }} {{ $sag['norujukan'] }} {{ $sag['t_lelong'] }} {{ $sag['hargaasas'] }} PAID
Jumlah BayaranRM
+ - - Jumlah Bayaran - - RM - - - -
-