diff --git a/app/Http/Controllers/ApiController.php b/app/Http/Controllers/ApiController.php index 8b3ee292..96b7d5f5 100644 --- a/app/Http/Controllers/ApiController.php +++ b/app/Http/Controllers/ApiController.php @@ -239,10 +239,16 @@ class ApiController extends Controller event(new PaymentNotify('PAID',$resit->user_id,$payment->id)); - return response()->json([ - 'success' => true, - 'resit' => $resit - ]); + $success = true; + + $result = $resit->toArray(); + + // return response()->json([ + // 'success' => true, + // 'resit' => $resit + // ]); + + return view('pembida.feePaymentResult',compact('data', 'result', 'success')); }else{ $resit = Resit::where('billplz_id','=',$data['billplz']['id'])->first(); @@ -250,11 +256,16 @@ class ApiController extends Controller $resit->paid_at = null; $resit->save(); + $result = $resit->toArray(); + + $success = false; + event(new PaymentNotify('UNSUCCESSFUL',$resit->user_id,'')); - return response()->json([ - 'success' => false, - 'resit' => $resit - ]); + // return response()->json([ + // 'success' => false, + // 'resit' => $resit + // ]); + return view('pembida.feePaymentResult',compact('data', 'result', 'success')); } } @@ -328,7 +339,6 @@ class ApiController extends Controller public function bidpayment(Request $request) { - $arraycollection_id = array(); $http = new HttpMethodsClient( @@ -353,6 +363,8 @@ class ApiController extends Controller $year = $current->format('y'); $total_bayaran = ($request->total)*100+100; + // dump($request->total); + // dd($total_bayaran); $collection_id = $this->collection_id; $response = $bill->create( @@ -365,7 +377,7 @@ class ApiController extends Controller 'Bayaran Bidaan', ['redirect_url' => route('pay.bidpaymentStatus')] ); - // dd($response); + // dd($response->toArray()); $previous_siri = Resit::orderBy('id','desc')->first(); if($previous_siri){ $nosiri = $previous_siri->id + 1; @@ -380,6 +392,7 @@ class ApiController extends Controller $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; @@ -387,7 +400,28 @@ class ApiController extends Controller $resit->billplz_id = $billcode['id']; $resit->resit_type = 2; //billplz resit for bid payment $resit->total_payment = $request->total; + $resit->invoice_id = $request->invoice_id; + $resit->invoice_no = $request->invoice_no; $resit->save(); + // dd($resit); + + // $selectedSag = []; + $selectedSag = $request->sag; + // dd($selectedSag); + foreach ($selectedSag as $index) { + // dd($index['kodcaw']); + $payment = new Payment; + $payment->user_id = $request->user_id; + $payment->lelong_id = $request->lelong_id; + $payment->kodcaw = $index['kodcaw']; + $payment->norujukan = $index['norujukan']; + $payment->total_payment = $index['total_payment']; + $payment->status_payment_opt = 2; //bayar secara online 2 + $payment->status = 0; //0-unpaid //1-fee //2-bid + $payment->remark = ''; + $payment->resit_id = $resit->id; + $payment->save(); + } // return redirect($billcode['url'] . '?auto_submit=true'); @@ -397,148 +431,174 @@ class ApiController extends Controller ], 201); // return view('pembayaran.result.berjaya',compact('arraybayaran')); } - - public function bidcallback(Request $request){ + + 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'); + $http = new HttpMethodsClient( + new GuzzleHttpClient(), + new GuzzleMessageFactory() + ); - $bill = $billplz->bill(); + $billplz = new Client($http, $this->api_key); + if (config('app.env') != 'production') { + $billplz->useSandbox(); + } + $billplz->useVersion('v4'); - $data = $bill->webhook($request->toArray()); - - if($data['billplz']['paid'] == 'true'){ - $resit = Resit::where('billplz_id','=',$data['billplz']['id'])->first(); + $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(); + ->where('lelong_id', $resit->lelong_id) + ->where('resit_type', 2) + ->first(); - $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 ONLINE'; - $payment->save(); + // $resitoriginal->total_payment = $resitoriginal->total_payment + $resit->total_payment; + // $resitoriginal->save(); - event(new PaymentNotify('PAID',$resitoriginal->user_id,$payment->id)); + // $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 ONLINE'; + // $payment->save(); - 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 - ]); - } - } + $payment = Payment::where('lelong_id', $resit->lelong_id) + ->where('user_id', $resit->user_id) + ->where('resit_id', $resit->id) + ->get(); + foreach ($payment as $index) { + $index->status = 2; //0-unpaid //1-fee //2-bid + $index->remark = "BERJAYA BAYARAN ONLINE"; + $index->update(); + } - 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 ONLINE'; - $payment->save(); - - event(new PaymentNotify('PAID',$resit->user_id,$payment->id)); + event(new PaymentNotify('PAID', $resit->user_id, $payment)); $success = true; $result = $resit->toArray(); - // dump($success); - // dump($data); - // dump($result); - // return response()->json([ // 'success' => true, // 'resit' => $resit // ]); - return view('pembida.feePaymentResult',compact('data', 'result', 'success')); - - }else{ - $resit = Resit::where('billplz_id','=',$data['id'])->first(); + return view('pembida.feePaymentResult', compact('data', 'result', 'success')); + } 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,'')); + + event(new PaymentNotify('UNSUCCESSFUL', $resit->user_id, '')); $result = $resit->toArray(); $success = false; - // return response()->json([ + // return response()->json([ // 'success' => false, // 'resit' => $resit // ]); - return view('pembida.feePaymentResult',compact('data', 'result', 'success')); + return view('pembida.feePaymentResult', compact('data', 'result', 'success')); + } + } - } - } + public function bidresponse(Request $request) + { + $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(); + 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 ONLINE'; + // $payment->save(); + + $payment = Payment::where('lelong_id', $resit->lelong_id) + ->where('user_id', $resit->user_id) + ->where('resit_id', $resit->id) + ->get(); + foreach ($payment as $index) { + $index->status = 2; //0-unpaid //1-fee //2-bid + $index->remark = "BERJAYA BAYARAN ONLINE"; + $index->update(); + } + + event(new PaymentNotify('PAID', $resit->user_id, $payment)); + + $success = true; + + $result = $resit->toArray(); + + // return response()->json([ + // 'success' => true, + // 'resit' => $resit + // ]); + + return view('pembida.feePaymentResult', compact('data', 'result', 'success')); + } 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, '')); + + $result = $resit->toArray(); + + $success = false; + + // return response()->json([ + // 'success' => false, + // 'resit' => $resit + // ]); + + return view('pembida.feePaymentResult', compact('data', 'result', 'success')); + } + } } \ No newline at end of file diff --git a/app/Http/Controllers/LelongController.php b/app/Http/Controllers/LelongController.php index 5705b8bc..be27bb39 100644 --- a/app/Http/Controllers/LelongController.php +++ b/app/Http/Controllers/LelongController.php @@ -31,6 +31,7 @@ use App\Models\LelongBidMarhun; use App\Models\LelKarat; use App\Models\LelKarat_temp; use App\Models\Resit; +use App\Models\Invoice; use App\Models\LogUser; use App\Models\Customer; @@ -1700,7 +1701,8 @@ class LelongController extends Controller } - public function janapemenangallcaw($lelong_id){ + public function janapemenangallcaw($lelong_id) + { $current = Carbon::now(); $current = new Carbon(); @@ -1708,95 +1710,97 @@ class LelongController extends Controller $day = $current->day; $month = $current->month; - $year = $current->format('y'); + $year = $current->format('y'); + + $lelong = Lelong::where('id', '=', $lelong_id)->first(); + $lelongbid = LelongBid::where('lelong_id', '=', $lelong_id)->get(); + foreach ($lelongbid as $bid) { + $highestprice = LelongBidder::where('lelongbid_id', '=', $bid->id)->orderBy('lelongbidder.hargabida', 'DESC')->first(); - $lelong = Lelong::where('id','=',$lelong_id)->first(); - $lelongbid = LelongBid::where('lelong_id','=',$lelong_id)->get(); - foreach($lelongbid as $bid) - { - $highestprice = LelongBidder::where('lelongbid_id','=',$bid->id)->orderBy('lelongbidder.hargabida','DESC' )->first(); - // dd($highestprice->hargabida); - if($highestprice) - { + if ($highestprice) { // foreach($highestprice as $price){ - // $bidders = LelongBidder::where('lelongbid_id','=',$bid->id)->where('hargabida','=',$highestprice->hargabida)->orderBy('masa_bidaan','ASC' )->get(); - $bidders = LelongBidder::join('lelongbid','lelongbid.id','=','lelongbidder.lelongbid_id') - ->where('lelongbid_id','=',$bid->id) - ->where('hargabida','=',$highestprice->hargabida)->orderBy('masa_bidaan','ASC' ) - ->select('lelongbidder.user_id','lelongbidder.id','lelongbidder.hargabida','lelongbid.pinjaman','lelongbid.bakiupah') + // $bidders = LelongBidder::where('lelongbid_id','=',$bid->id)->where('hargabida','=',$highestprice->hargabida)->orderBy('masa_bidaan','ASC' )->get(); + $bidders = LelongBidder::join('lelongbid', 'lelongbid.id', '=', 'lelongbidder.lelongbid_id') + ->where('lelongbid_id', '=', $bid->id) + ->where('hargabida', '=', $highestprice->hargabida)->orderBy('masa_bidaan', 'ASC') + ->select('lelongbidder.user_id', 'lelongbidder.id', 'lelongbidder.hargabida', 'lelongbid.pinjaman', 'lelongbid.bakiupah') ->get(); - // dd($bidders); - $count = 0; - foreach($bidders as $bidder) - { - $count = $count + 1; - if($count == 1) - { - $pemenang = LelongBidder::where('id','=',$bidder->id) + // dd($bidders); + $count = 0; + foreach ($bidders as $bidder) { + $count = $count + 1; + if ($count == 1) { + $pemenang = LelongBidder::where('id', '=', $bidder->id) ->first(); - $pemenang->status_bidder = 1; - $pemenang->save(); - - // $updatebid = LelongBid::where('id','=',$bid->id)->first(); - // // dd($updatebid); - // $updatebid->hargajual = $bidder->hargabida; - // $updatebid->nopembeli = $bidder->user_id; - // $updatebid->status_jual = 1; - // $updatebid->save(); + $pemenang->status_bidder = 1; + $pemenang->save(); - $datalelong = Lelong::where('id',$lelong_id)->get(); - $sumcajlelong = $bidder->hargabida * ($datalelong[0]['cajlelong']/100); - // dd($bidder->pinjaman); - $totalbaki = $bidder->hargabida - $bidder->pinjaman - bcdiv($bidder->bakiupah,1,1) - bcdiv($sumcajlelong,1,1); - $updatebid = LelongBid::where('id','=',$bid->id)->first(); - // dd($totalbaki); - $updatebid->hargajual = $bidder->hargabida; - $updatebid->t_jual = $currentdate; - $updatebid->cajlelong = bcdiv($sumcajlelong,1,1); - $updatebid->baki = $totalbaki; - $updatebid->nopembeli = $bidder->user_id; - $updatebid->status_jual = 1; - $updatebid->save(); + // $updatebid = LelongBid::where('id','=',$bid->id)->first(); + // // dd($updatebid); + // $updatebid->hargajual = $bidder->hargabida; + // $updatebid->nopembeli = $bidder->user_id; + // $updatebid->status_jual = 1; + // $updatebid->save(); + + $datalelong = Lelong::where('id', $lelong_id)->get(); + $sumcajlelong = $bidder->hargabida * ($datalelong[0]['cajlelong'] / 100); + // dd($bidder->pinjaman); + $totalbaki = $bidder->hargabida - $bidder->pinjaman - bcdiv($bidder->bakiupah, 1, 1) - bcdiv($sumcajlelong, 1, 1); + $updatebid = LelongBid::where('id', '=', $bid->id)->first(); + // dd($totalbaki); + $updatebid->hargajual = $bidder->hargabida; + $updatebid->t_jual = $currentdate; + $updatebid->cajlelong = bcdiv($sumcajlelong, 1, 1); + $updatebid->baki = $totalbaki; + $updatebid->nopembeli = $bidder->user_id; + $updatebid->status_jual = 1; + $updatebid->save(); - $previous_siri = Resit::orderBy('id','desc')->first(); - $checkdata = Resit::where('user_id', $bidder->user_id) + $previous_siri = Invoice::orderBy('id', 'desc')->first(); + $checkdata = Invoice::where('user_id', $bidder->user_id) ->where('lelong_id', $lelong_id) - ->where('resit_type', 2) + ->where('invoice_type', 2) ->first(); - if(!$checkdata){ - if($previous_siri){ - $nosiri = $previous_siri->id + 1; - }else{ - $nosiri = 1; - } - - $reference_no = 'LPKB' . $day . $month . $year . sprintf("%08d", $nosiri);; - - $resit = new Resit; - $resit->user_id = $bidder->user_id; - $resit->lelong_id = $lelong_id; - $resit->reference_no = $reference_no; - $resit->billplz_id = ''; - $resit->total_payment = '0.00'; - $resit->resit_type = 2; // 1 = fee , 2 = bid - $resit->save(); + // dump($previous_siri->toArray()); + if (!$checkdata) { + if ($previous_siri) { + $nosiri = $previous_siri->id + 1; + } else { + $nosiri = 1; } + + $reference_no = 'iPKB' . $day . $month . $year . sprintf("%08d", $nosiri);; + + // $resit = new Resit; + // $resit->user_id = $bidder->user_id; + // $resit->lelong_id = $lelong_id; + // $resit->reference_no = $reference_no; + // $resit->billplz_id = ''; + // $resit->total_payment = '0.00'; + // $resit->resit_type = 2; // 1 = fee , 2 = bid + // $resit->save(); + $invoice = new Invoice; + $invoice->user_id = $bidder->user_id; + $invoice->lelong_id = $lelong_id; + $invoice->invoice_no = $reference_no; + $invoice->total_invoice = '0.00'; + $invoice->invoice_type = 2; // 1 = fee , 2 = bid + $invoice->save(); + // dd($invoice->toArray()); + // dd("sni"); } - else - { - $kalah = LelongBidder::where('id','=',$bidder->id) - ->first(); - $kalah->status_bidder = 0; - $kalah->save(); - } + } else { + $kalah = LelongBidder::where('id', '=', $bidder->id) + ->first(); + $kalah->status_bidder = 0; + $kalah->save(); } + } // } - - } - else - { //xlaku + + } else { //xlaku } } @@ -1804,8 +1808,7 @@ class LelongController extends Controller $lelong->save(); return redirect()->route('lelong.senarailelong') - ->with('success','Selesai menjana pemenang'); - + ->with('success', 'Selesai menjana pemenang'); } public function kemaskinidata($lelong_id) diff --git a/app/Http/Controllers/Mobile/LelongMobileController.php b/app/Http/Controllers/Mobile/LelongMobileController.php index 85fd889d..483e46eb 100644 --- a/app/Http/Controllers/Mobile/LelongMobileController.php +++ b/app/Http/Controllers/Mobile/LelongMobileController.php @@ -16,6 +16,7 @@ use Carbon\Carbon; use App\Models\Cawangan; use App\Models\Resit; use App\Models\FileResit; +use App\Models\Invoice; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Validator; @@ -344,49 +345,61 @@ class LelongMobileController extends Controller { $sag = LelongBid::join('lelongbidder', 'lelongbid.id', '=', 'lelongbidder.lelongbid_id') ->where('lelongbid.lelong_id', $lelong_id) - ->where('lelongbidder.user_id',$user_id) - ->where('lelongbidder.status_bidder',1) - ->whereNull('lelongbidder.status_payment') - ->select( - 'lelongbid.kodcaw' - ) - ->groupBy('lelongbid.kodcaw') - ->get(); + ->where('lelongbidder.user_id', $user_id) + ->where('lelongbidder.status_bidder', 1) + ->whereNull('lelongbidder.status_payment') + ->select( + 'lelongbid.kodcaw' + ) + ->groupBy('lelongbid.kodcaw') + ->get(); + $getTarikhLelong = Lelong::where('id', $lelong_id)->select('tarikh_lelong')->first(); + $tarikhLelong = $getTarikhLelong->tarikh_lelong; $data = []; - foreach($sag as $index1=>$kodcaw) - { + foreach ($sag as $index1 => $kodcaw) { // dd($kodcaw); $groupBycaw = LelongBid::join('lelongbidder', 'lelongbid.id', '=', 'lelongbidder.lelongbid_id') ->where('lelongbid.lelong_id', $lelong_id) - ->where('lelongbidder.user_id',$user_id) - ->where('lelongbidder.status_bidder',1) - ->whereNull('lelongbidder.status_payment') - ->where('lelongbid.kodcaw', $kodcaw['kodcaw']) - ->get(); + ->where('lelongbidder.user_id', $user_id) + ->where('lelongbidder.status_bidder', 1) + ->whereNull('lelongbidder.status_payment') + ->where('lelongbid.kodcaw', $kodcaw['kodcaw']) + ->get(); - $sag[$index1]['kodcaw'] = $groupBycaw; + $getCawangan = Cawangan::where('caw_code', $kodcaw->kodcaw) + ->select('caw_name', 'caw_code') + ->first(); + $namaCawangan = $getCawangan->caw_name; + $kodCawangan = $getCawangan->caw_code; + + $sag = $groupBycaw; $total_hargabida = 0; - foreach($groupBycaw as $hargabida) - { + foreach ($groupBycaw as $hargabida) { $totalbida = Lelongbidder::where('id', $hargabida['id']) ->select('hargabida') ->first(); - $total_hargabida = $total_hargabida + $totalbida['hargabida']; } - array_push($data,[ - 'sag'=> $kodcaw, - 'total_hargabida'=> $total_hargabida + array_push($data, [ + 'kodcaw' => $kodCawangan, + 'cawangan' => $namaCawangan, + 'sag' => $sag, + 'total_hargabida' => $total_hargabida ]); - } - - // dd($winner); - return response()->json($data); + + $response = [ + 'success' => true, + 'tarikh_lelong' => $tarikhLelong, + 'data' => $data + ]; + + return response()->json($response); + } public function updatebiditem(Request $request) @@ -759,4 +772,20 @@ class LelongMobileController extends Controller } } + + public function getInvoiceId(Request $request) { + $invoice = Invoice::where('user_id', $request->user_id)->where('lelong_id', $request->lelong_id)->first(); + + if ($invoice) { + return response()->json([ + 'success' => true, + 'invoice' => $invoice, + ]); + } else { + return response()->json([ + 'success' => false, + ]); + } + dd($invoice); + } } diff --git a/app/Models/Invoice.php b/app/Models/Invoice.php new file mode 100644 index 00000000..e0be608f --- /dev/null +++ b/app/Models/Invoice.php @@ -0,0 +1,23 @@ + 1 = paid , 2 = pending + 'paid_at' + ]; +} diff --git a/database/migrations/2022_01_25_010223_create_payment_table.php b/database/migrations/2022_01_25_010223_create_payment_table.php index 28370591..8a08b300 100644 --- a/database/migrations/2022_01_25_010223_create_payment_table.php +++ b/database/migrations/2022_01_25_010223_create_payment_table.php @@ -59,6 +59,8 @@ class CreatePaymentTable extends Migration $table->unsignedBigInteger('user_id')->unsigned(); $table->unsignedBigInteger('lelong_id')->unsigned(); $table->string('reference_no')->nullable(); + $table->integer('invoice_id')->nullable(); + $table->string('invoice_no')->nullable(); $table->string('billplz_id'); $table->decimal('total_payment', $precision = 11, $scale = 2); $table->string('resit_type'); // 1 = fee , 2 = bid @@ -75,6 +77,26 @@ class CreatePaymentTable extends Migration ->onDelete('cascade'); }); + Schema::create('invoice', function (Blueprint $table) { + $table->bigIncrements('id'); + $table->unsignedBigInteger('user_id')->unsigned(); + $table->unsignedBigInteger('lelong_id')->unsigned(); + $table->string('invoice_no')->nullable(); + $table->decimal('total_invoice', $precision = 11, $scale = 2); + $table->string('invoice_type'); // 1 = fee , 2 = bid + $table->string('status')->nullable(); //status => 1 = paid , 2 = pending + $table->timestamp('paid_at')->nullable(); + $table->timestamps(); + + $table->foreign('user_id') + ->references('id')->on('users') + ->onDelete('cascade'); + + $table->foreign('lelong_id') + ->references('id')->on('lelong') + ->onDelete('cascade'); + }); + } /** @@ -86,5 +108,6 @@ class CreatePaymentTable extends Migration { Schema::dropIfExists('payment'); Schema::dropIfExists('resit'); + Schema::dropIfExists('invoice'); } } diff --git a/database/seeders/RolesSeeder.php b/database/seeders/RolesSeeder.php index cd0bc714..0a8a8a6a 100644 --- a/database/seeders/RolesSeeder.php +++ b/database/seeders/RolesSeeder.php @@ -263,5 +263,15 @@ class RolesSeeder extends Seeder 'notelbimbit' => '0198080123' ]); $user->assignRole($role8); + + $user = \App\Models\User::factory()->create([ + 'name' => 'Amir', + 'username' => 'Amir', + 'email' => 'amir@example.com', + 'user_type' => 2, + 'nokp' => '980430032222', + 'notelbimbit' => '0198080000' + ]); + $user->assignRole($role8); } } diff --git a/routes/api.php b/routes/api.php index 98f2870e..bd138d71 100644 --- a/routes/api.php +++ b/routes/api.php @@ -32,10 +32,8 @@ Route::post('/password/email', [ForgotPasswordController::class, 'sendResetLinkE // Route::get('/callback', [ApiController::class, 'feepayment']); Route::post('/feepayment', [ApiController::class, 'feepayment'])->name('feepayment'); - - - Route::post('/bidpayment', [ApiController::class, 'bidpayment'])->name('bidpayment'); + //Protected routes Route::group(['middleware' => ['auth:sanctum']], function () { @@ -68,6 +66,8 @@ Route::group(['middleware' => ['auth:sanctum']], function () { Route::post('/bayarcdm', [LelongMobileController::class, 'bayarCdm']); Route::post('/updateresit', [LelongMobileController::class, 'updateResit']); + Route::get('/invoice', [LelongMobileController::class, 'getInvoiceId']); + // Lelong => Bidder Route::post('/bidder/biditem', [LelongMobileController::class, 'bidderSelectBidItem']); Route::get('/bidder/listbiditem', [LelongMobileController::class, 'listBidItem']);