Files
lelong/app/Http/Controllers/AccountController.php
T
2022-03-30 13:41:33 +08:00

200 lines
7.4 KiB
PHP

<?php
namespace App\Http\Controllers;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\Models\User;
use App\Models\Cawangan;
use App\Models\CawanganLelong;
use App\Models\Lelong;
use App\Models\Payment;
use App\Models\LelongBid;
use App\Models\LelongBidder;
use App\Models\Resit;
class AccountController extends Controller
{
public function senarailelongan(){
$user = Auth::user();
$senarai = CawanganLelong::join('lelong', 'cawangan_lelong.lelong_id', '=', 'lelong.id')
->join('cawangan','cawangan_lelong.caw_id', '=', 'cawangan.id')
->where('lelong.sts_lelong', 3)
->get();
return view('account.senarailelongan',compact('senarai'));
}
public function listbayaranonline($lelong_id){
// $listwinner = Payment::join('lelongbid', 'payment.lelongbid_id', '=', 'lelongbid.id')
// ->join('lelongbidder', 'payment.lelongbidder_id', '=', 'lelongbidder.id')
// ->where('lelongbidder.status_bidder', 1)
// ->where('lelongbid.lelong_id', $lelong_id)
// ->select('payment.user_id'
// )
// ->groupBy('payment.user_id')
// ->get();
$listwinner = LelongBidder::join('lelongbid', 'lelongbidder.lelongbid_id', '=', 'lelongbid.id')
->where('lelongbidder.status_bidder', 1)
->where('lelongbid.lelong_id', $lelong_id)
->select('.lelongbidder.user_id'
)
->groupBy('lelongbidder.user_id')
->get();
// dd($listwinner);
foreach($listwinner as $index1=>$winner){
$userdetails = User::where('id', $winner['user_id'])->first();
// $SAGWin = Payment::join('lelongbid', 'payment.lelongbid_id', '=', 'lelongbid.id')
// ->join('lelongbidder', 'payment.lelongbidder_id', '=', 'lelongbidder.id')
// ->where('payment.user_id', $winner['user_id'])
// ->where('lelongbidder.status_bidder', 1)
// ->where('lelongbid.lelong_id', $lelong_id)
// ->get();
$SAGWin = LelongBidder::join('lelongbid', 'lelongbidder.lelongbid_id', '=', 'lelongbid.id')
->where('lelongbidder.user_id', $winner['user_id'])
->where('lelongbidder.status_bidder', 1)
->where('lelongbid.lelong_id', $lelong_id)
->get();
// dd($SAGWin->sum('hargabida'));
$id_payment = LelongBidder::join('lelongbid', 'lelongbidder.lelongbid_id', '=', 'lelongbid.id')
->where('lelongbidder.user_id', $winner['user_id'])
->where('lelongbidder.status_bidder', 1)
->where('lelongbid.lelong_id', $lelong_id)
->select('lelongbidder.payment_id')
->groupBy('lelongbidder.payment_id')
->get();
// dd($id_payment);
$total_payment = 0;
foreach($id_payment as $id){
$payment = Payment::where('id', $id->payment_id)
->first();
if($payment){
$total_payment = $total_payment + $payment->total_payment;
}
}
$listwinner[$index1]['details'] = $userdetails;
$listwinner[$index1]['total_surat'] = sizeof($SAGWin);
$listwinner[$index1]['totalBid'] = $SAGWin->sum('hargabida');
$listwinner[$index1]['totalPay'] = $total_payment;
}
return view('account.listbayaranonline',compact('listwinner','lelong_id'));
}
public function sahsagonline($lelong_id, $user_id)
{
$senaraisag = LelongBidder::join('lelongbid', 'lelongbidder.lelongbid_id', '=', 'lelongbid.id')
->join('payment', 'lelongbidder.payment_id', '=', 'payment.id')
->where('lelongbid.lelong_id', $lelong_id)
->where('lelongbidder.user_id', $user_id)
->where('lelongbidder.status_bidder', 1)
->where('payment.status_payment_opt', 2)
->get()->toArray();
$saggroupbyid = LelongBidder::join('lelongbid', 'lelongbidder.lelongbid_id', '=', 'lelongbid.id')
->join('payment', 'lelongbidder.payment_id', '=', 'payment.id')
->where('lelongbid.lelong_id', $lelong_id)
->where('lelongbidder.user_id', $user_id)
->where('lelongbidder.status_bidder', 1)
->where('payment.status_payment_opt', 2)
->select(
'lelongbidder.payment_id as payment_id'
)
->groupBy('lelongbidder.payment_id')
->get();
// $payments = Payment::whereIn($saggroupbyid)->get()
$total_payment = Payment::whereIn($saggroupbyid)->get()->sum('total_payment');
return view('account.sahsagonline', compact('senaraisag', 'lelong_id', 'user_id', 'total_payment'));
}
public function sahbayaronline(Request $request)
{
// dd($request->all());
$currentdate = Carbon::now();
$currentdate = $currentdate->toDateTimeString();
$user = Auth::user();
$senaraisag = LelongBidder::join('lelongbid', 'lelongbidder.lelongbid_id', '=', 'lelongbid.id')
->join('payment', 'lelongbidder.payment_id', '=', 'payment.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)
->select(
'lelongbid.id as lelongbid_id',
'payment.id as payment_id',
'lelongbid.lelong_id',
'lelongbidder.user_id',
)
->get();
$total_payment = 0;
$paymentid = LelongBidder::join('lelongbid', 'lelongbidder.lelongbid_id', '=', 'lelongbid.id')
->join('payment', 'lelongbidder.payment_id', '=', 'payment.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)
->select(
'lelongbidder.payment_id as payment_id'
)
->groupBy('lelongbidder.payment_id')
->get();
foreach($paymentid as $dataid)
{
$payment = Payment::where('id', $dataid->payment_id)->first();
$payment->disahkan_oleh = $user->id;
$payment->disahkan_pada = $currentdate;
$payment->save();
$total_payment = $total_payment + $payment->total_payment;
}
foreach($senaraisag as $sag)
{
$eachbid = LelongBid::where('id',$sag->lelongbid_id)->first();
$eachbid->status_payment = 1;
$eachbid->status_jual = 1;
$eachbid->t_jual = $currentdate;
$eachbid->save();
}
$senaraisagallpayment = LelongBid::join('lelongbidder', 'lelongbid.id', '=', 'lelongbidder.lelongbid_id')
->where('lelongbid.lelong_id', $request->lelong_id)
->where('lelongbidder.user_id', $request->user_id)
->where('lelongbidder.status_bidder', 1)
->get();
$resit = Resit::where('id', $payment->resit_id)->first();
$resit->total_payment = $resit->total_payment + $total_payment;
if($resit->total_payment >= $senaraisagallpayment->sum('hargabida'))
{
$resit->status = 'PAID';
$resit->paid_at = $currentdate;
}
$resit->save();
return redirect()->route('account.senarailelongan')->with('success','Pembayaran Berjaya');
}
}