e29a5891c8
Reviewed-on: #5 Co-authored-by: ISMAIL MASSERAN <ismail@koppkb.com> Co-committed-by: ISMAIL MASSERAN <ismail@koppkb.com>
1478 lines
62 KiB
PHP
1478 lines
62 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\Cawangan;
|
|
use App\Models\CawanganLelong;
|
|
use App\Models\File;
|
|
use App\Models\FileResit;
|
|
use App\Models\Invoice;
|
|
use App\Models\Lelong;
|
|
use App\Models\LelongBid;
|
|
use App\Models\LelongBidder;
|
|
use App\Models\LogUser;
|
|
use App\Models\Payment;
|
|
use App\Models\ScanJual;
|
|
use App\Models\TakLaku;
|
|
use App\Models\User;
|
|
use App\Services\BillplzService;
|
|
use App\Services\ResitPhotoService;
|
|
use Carbon\Carbon;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Auth;
|
|
use Illuminate\Support\Facades\DB;
|
|
use Spatie\Permission\Models\Role;
|
|
|
|
class PembidaController extends Controller
|
|
{
|
|
private $resitPhotoService;
|
|
|
|
protected $billplzService;
|
|
|
|
protected $ResitSemakanService;
|
|
|
|
/**
|
|
* Create a new controller instance.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function __construct(ResitPhotoService $resitPhotoService, BillplzService $billplzService)
|
|
{
|
|
$this->middleware('auth');
|
|
$this->resitPhotoService = $resitPhotoService;
|
|
$this->billplzService = $billplzService;
|
|
}
|
|
|
|
/**
|
|
* Show the application dashboard.
|
|
*
|
|
* @return \Illuminate\Contracts\Support\Renderable
|
|
*/
|
|
public function index()
|
|
{
|
|
// $alluser = User::all();
|
|
$alluser = User::doesntHave('roles')
|
|
->where('user_type', '=', 2)
|
|
->where('status', '=', 'inprogress')
|
|
->get();
|
|
|
|
// dd($alluser);
|
|
|
|
// $allroles = Role::all()->pluck('name');
|
|
// $user = Auth::user();
|
|
// $user->assignRole('admin');
|
|
return view('pembida.senaraipembida', compact('alluser'));
|
|
}
|
|
|
|
public function show($userid)
|
|
{
|
|
// dd($userid);
|
|
$user = User::where('id', '=', $userid)->first();
|
|
$files = File::where('user_id', '=', $userid)->get()->toArray();
|
|
// dd($files);
|
|
$array_ic = [];
|
|
foreach ($files as $index => $file) {
|
|
$files[$index]['ic64'] = 'data:image/'.$file['file_type'].';base64,'.base64_encode($file['filename']);
|
|
}
|
|
|
|
// dd($files);
|
|
return view('pembida.show', compact('user', 'files'));
|
|
}
|
|
|
|
public function delete(Request $request)
|
|
{
|
|
$user = User::where('id', '=', $request->userid)->first();
|
|
$user->note = $request->note;
|
|
$user->status = 'Fail';
|
|
$user->save();
|
|
|
|
return redirect()->route('pembida.senaraipembida')
|
|
->with('success', 'Padam Pengguna Berjaya');
|
|
}
|
|
|
|
public function sah($userid)
|
|
{
|
|
$currentdate = Carbon::now();
|
|
$currentdate = $currentdate->toDateString();
|
|
|
|
$user = User::where('id', '=', $userid)->first();
|
|
$user->disahkan_pada = $currentdate;
|
|
$user->disahkan_oleh = Auth::user()->id;
|
|
$user->status = 'active';
|
|
|
|
if ($user->save()) {
|
|
$user->assignRole('pembida');
|
|
}
|
|
|
|
return redirect()->route('pembida.senaraipembida')
|
|
->with('success', 'Pengesahan Berjaya');
|
|
}
|
|
|
|
public function reject(Request $request)
|
|
{
|
|
// dd($request->all());
|
|
$currentdate = Carbon::now();
|
|
$currentdate = $currentdate->toDateString();
|
|
|
|
$user = User::where('id', '=', $request->user_id)->first();
|
|
$user->disahkan_pada = $currentdate;
|
|
$user->disahkan_oleh = Auth::user()->id;
|
|
$user->note = $request->nota;
|
|
$user->status = 'rejected';
|
|
$user->save();
|
|
|
|
return redirect()->route('pembida.senaraipembida')
|
|
->with('unsuccessful', 'Pengesahan Ditolak');
|
|
}
|
|
|
|
public function senaraipembidakeseluruhan(Request $request)
|
|
{
|
|
// $alluser = User::all();
|
|
$alluser = User::where('user_type', '=', 2)
|
|
->get();
|
|
|
|
// dd($alluser);
|
|
|
|
// $allroles = Role::all()->pluck('name');
|
|
// $user = Auth::user();
|
|
// $user->assignRole('admin');
|
|
return view('pembida.senaraipembidakeseluruhan', compact('alluser'));
|
|
}
|
|
|
|
public function kemaskini($userid)
|
|
{
|
|
// dd($userid);
|
|
$user = User::where('id', '=', $userid)->first();
|
|
$files = File::where('user_id', '=', $userid)->get()->toArray();
|
|
|
|
$array_ic = [];
|
|
foreach ($files as $index => $file) {
|
|
$files[$index]['ic64'] = 'data:image/'.$file['file_type'].';base64,'.base64_encode($file['filename']);
|
|
}
|
|
|
|
// dd($files);
|
|
return view('pembida.kemaskini', compact('user', 'files'));
|
|
}
|
|
|
|
public function update(Request $request)
|
|
{
|
|
$currentdate = Carbon::now();
|
|
$currentdate = $currentdate->toDateTimeString();
|
|
|
|
if ($request->status == true) {
|
|
$status = 'active';
|
|
} elseif ($request->statusban == true) {
|
|
$status = 'banned';
|
|
} else {
|
|
$status = 'inactive';
|
|
}
|
|
|
|
$user = User::where('id', '=', $request->userid)->first();
|
|
// dd($user);
|
|
$user->name = $request->name;
|
|
$user->username = $request->username;
|
|
$user->nokp = $request->nokp;
|
|
$user->email = $request->email;
|
|
$user->notelbimbit = $request->notelbimbit;
|
|
$user->alamat = $request->alamat;
|
|
$user->updated_at = $currentdate;
|
|
$user->status = $status;
|
|
|
|
$user->save();
|
|
|
|
return redirect()->route('pembida.senaraipembidakeseluruhan')->with('success', 'Pembida Berjaya Dikemaskini');
|
|
}
|
|
|
|
public function senlelpembayaranbidaan(Request $request)
|
|
{
|
|
$kodcaw = $request->kodcaw;
|
|
|
|
$arrayinfo = [];
|
|
|
|
$lelong = Lelong::join('cawangan_lelong', 'lelong.id', '=', 'cawangan_lelong.lelong_id')
|
|
->select('lelong_id', 'tarikh_lelong', 'lelong.fasa', 'harga_emas_asas', 'jbg', 'cajlelong', 'sts_lelong')
|
|
->distinct()
|
|
->orderBy('lelong_id', 'DESC')
|
|
->where('lelong.sts_lelong', 3)
|
|
->get()
|
|
->toArray();
|
|
|
|
foreach ($lelong as $details) {
|
|
|
|
$detailsinfo = CawanganLelong::join('cawangan', 'cawangan_lelong.caw_id', '=', 'cawangan.id')
|
|
->select('cawangan_lelong.lelong_id', 'cawangan_lelong.caw_id', 'caw_name', 'caw_code', 'cawangan_lelong.export_data_sts')
|
|
->where('lelong_id', $details['lelong_id'])
|
|
->distinct()
|
|
->orderBy('lelong_id')
|
|
->get()
|
|
->toArray();
|
|
// dd($detailsinfo);
|
|
|
|
array_push($arrayinfo, ['detail' => $details, 'detailsinfo' => $detailsinfo]);
|
|
}
|
|
// dd($request->kodcaw);
|
|
|
|
return view('pembida.senlelpembayaranbidaan', compact('lelong', 'arrayinfo'));
|
|
}
|
|
|
|
public function senlelbelumbayarbidaan(Request $request)
|
|
{
|
|
$kodcaw = $request->kodcaw;
|
|
$arraysms = [];
|
|
$arraysls = [];
|
|
$tarikh_semasa = date('Y-m-d', strtotime(now()));
|
|
|
|
$lelong = LelongBid::join('cawangan_lelong', 'lelongbid.lelong_id', '=', 'cawangan_lelong.lelong_id')
|
|
->join('lelongbidder', 'lelongbid.id', '=', 'lelongbidder.lelongbid_id')
|
|
->join('lelong', 'lelong.id', '=', 'lelongbid.lelong_id')
|
|
->join('cawangan', 'cawangan.id', '=', 'lelongbid.caw_id')
|
|
->select('lelongbid.lelong_id', 'lelongbid.caw_id', 'lelongbid.kodcaw', 'lelongbid.t_lelong', 'lelong.sts_lelong', 'cawangan.caw_name', 'lelong.tarikh_lelong')
|
|
->distinct()
|
|
->orderBy('lelongbid.lelong_id')
|
|
->where('lelongbid.status_jual', 1)
|
|
->where('lelong.sts_lelong', 3)
|
|
->where(function ($query) {
|
|
$query->whereNull('lelongbidder.status_payment')
|
|
->orWhere('lelongbidder.status_payment', 2)
|
|
->where('lelongbidder.status_bidder', 1);
|
|
})
|
|
->orderBy('lelong.id', 'DESC')
|
|
->get();
|
|
// dd($lelong);
|
|
foreach ($lelong as $index => $info) {
|
|
if ($info['tarikh_lelong'] == $tarikh_semasa) {
|
|
array_push($arraysms, ['info' => $info]);
|
|
} else {
|
|
array_push($arraysls, ['info' => $info]);
|
|
}
|
|
}
|
|
|
|
return view('pembida.senlelbelumbayarbidaan', compact('arraysms', 'arraysls', 'lelong'));
|
|
}
|
|
|
|
public function pembayaranbidaan(Request $request)
|
|
{
|
|
// dd($request->all());
|
|
$getkodcaw = Cawangan::where('caw_code', $request->kodcaw)->select('caw_name')->first();
|
|
$listwinner = LelongBidder::join('lelongbid', 'lelongbidder.lelongbid_id', '=', 'lelongbid.id')
|
|
->join('payment', 'lelongbidder.payment_id', '=', 'payment.id')
|
|
->where('lelongbidder.status_bidder', 1)
|
|
// ->where('payment.status', 1)
|
|
->where('lelongbidder.status_payment', 1)
|
|
->where('lelongbid.lelong_id', $request->lelong_id)
|
|
->where('lelongbid.kodcaw', $request->kodcaw)
|
|
->select('lelongbidder.user_id')
|
|
->groupBy('lelongbidder.user_id')
|
|
->get()->toArray();
|
|
// dd($listwinner);
|
|
|
|
foreach ($listwinner as $index1 => $winner) {
|
|
$userdetails = User::where('id', $winner['user_id'])->first();
|
|
|
|
$SAGWin = LelongBidder::join('lelongbid', 'lelongbidder.lelongbid_id', '=', 'lelongbid.id')
|
|
->where('lelongbid.nopembeli', $winner['user_id'])
|
|
->where('lelongbid.kodcaw', $request->kodcaw)
|
|
->where('lelongbidder.status_bidder', 1)
|
|
->where('lelongbid.lelong_id', $request->lelong_id)
|
|
->get();
|
|
// dd($SAGWin);
|
|
|
|
foreach ($SAGWin as $index2 => $sag) {
|
|
// dd($sag->payment_id);
|
|
if ($sag) {
|
|
$detailspayment = Payment::where('id', $sag->payment_id)->first();
|
|
// dd($detailspayment);
|
|
}
|
|
}
|
|
|
|
$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', $request->lelong_id)
|
|
->where('lelongbid.kodcaw', $request->kodcaw)
|
|
->select('lelongbidder.payment_id')
|
|
->groupBy('lelongbidder.payment_id')
|
|
->get();
|
|
// dd($payment_id);
|
|
|
|
$total_payment = 0;
|
|
foreach ($payment as $id) {
|
|
$payment = Payment::where('id', $id->payment_id)
|
|
->first();
|
|
// dd($payment);
|
|
|
|
if ($payment) {
|
|
$payment_id = $id->payment_id;
|
|
$total_payment = $total_payment + $payment->total_payment;
|
|
}
|
|
}
|
|
|
|
$listwinner[$index1]['details'] = $userdetails;
|
|
$listwinner[$index1]['total_surat'] = count($SAGWin);
|
|
$listwinner[$index1]['totalBid'] = $SAGWin->sum('hargabida');
|
|
$listwinner[$index1]['totalPay'] = $total_payment;
|
|
$listwinner[$index1]['payment_id'] = $payment_id;
|
|
$listwinner[$index1]['jenisbayaran']['status_payment'] = $sag->status_payment;
|
|
$listwinner[$index1]['jenisbayaran']['status'] = ($detailspayment) ? $detailspayment['status'] : 0;
|
|
$listwinner[$index1]['jenisbayaran']['kaedah_bayaran'] = ($detailspayment) ? $detailspayment['status_payment_opt'] : 0;
|
|
|
|
}
|
|
$sum = 0;
|
|
$kaedah = Payment::where('kodcaw', $request->kodcaw)
|
|
->where('status', '=', 2)
|
|
->where('lelong_id', $request->lelong_id)
|
|
->select('payment.status_payment_opt', 'payment.total_payment')
|
|
// ->groupBy('payment.status_payment_opt')
|
|
->get();
|
|
$kaedah_cdm = $kaedah->where('status_payment_opt', 3)->sum('total_payment');
|
|
$kaedah_fpx = $kaedah->where('status_payment_opt', 2)->sum('total_payment');
|
|
$kaedah_tunai = $kaedah->where('status_payment_opt', 1)->sum('total_payment');
|
|
|
|
$bilcdm = $kaedah->where('status_payment_opt', 3)->count('norujukan');
|
|
$bilfpx = $kaedah->where('status_payment_opt', 2)->count('norujukan');
|
|
$biltunai = $kaedah->where('status_payment_opt', 1)->count('norujukan');
|
|
|
|
$kodcaw = $request->kodcaw;
|
|
$lelong_id = $request->lelong_id;
|
|
$payment_id = $request->payment_id;
|
|
|
|
// dd($kodcaw);
|
|
return view('pembida.pembayaranbidaan', compact('bilcdm', 'bilfpx', 'biltunai', 'kaedah_cdm', 'kaedah_fpx', 'kaedah_tunai', 'listwinner', 'lelong_id', 'getkodcaw', 'kodcaw'));
|
|
}
|
|
|
|
public function detailsbidaan($lelong_id, $user_id, $kodcaw)
|
|
{
|
|
|
|
$userdetail = User::where('id', $user_id)->first();
|
|
|
|
$infos = LelongBid::join('cawangan', 'lelongbid.kodcaw', '=', 'cawangan.caw_code')
|
|
->join('lelongbidder', 'lelongbid.id', '=', 'lelongbidder.lelongbid_id')
|
|
->where('lelongbid.nopembeli', $user_id)
|
|
// ->where('lelongbidder.payment_id', $payment_id)
|
|
->where('cawangan.caw_code', $kodcaw)
|
|
->where('lelongbid.kodcaw', $kodcaw)
|
|
->where('lelongbidder.status_payment', 1)
|
|
->where('lelongbid.lelong_id', $lelong_id)
|
|
->select('lelongbid.id as lelongbid_id',
|
|
'lelongbidder.id as lelongbidder_id',
|
|
'lelongbid.lelong_id',
|
|
'lelongbidder.payment_id',
|
|
'lelongbid.t_lelong',
|
|
'cawangan.caw_name',
|
|
'lelongbid.norujukan',
|
|
'lelongbid.marhun',
|
|
'lelongbid.hargaasas',
|
|
'lelongbidder.hargabida',
|
|
'lelongbidder.masa_bidaan',
|
|
'lelongbidder.notelbimbit'
|
|
)
|
|
->get();
|
|
// dd($infos);
|
|
|
|
foreach ($infos as $index1 => $info) {
|
|
$butiranbidaan = Payment::join('resit', 'payment.resit_id', '=', 'resit.id')
|
|
->where('payment.id', $info['payment_id'])
|
|
->where('payment.lelong_id', $info['lelong_id'])
|
|
->whereNotNull('payment.disahkan_oleh')
|
|
->whereNotNull('payment.disahkan_pada')
|
|
->select('payment.remark',
|
|
'resit.reference_no'
|
|
)
|
|
->get();
|
|
// dd($butiranbidaan);
|
|
|
|
$infos[$index1]['info'] = $info;
|
|
// dd($infos[$index1]['info']);
|
|
$infos[$index1]['butiran_bidaan'] = $butiranbidaan;
|
|
// dd($infos[$index1]['butiran_bidaan']);
|
|
}
|
|
|
|
return view('pembida.detailsbidaan', compact('infos', 'userdetail', 'kodcaw'));
|
|
}
|
|
|
|
public function detailsbayaran($lelong_id, $user_id, $kodcaw)
|
|
{
|
|
$lelong = Lelong::find($lelong_id, ['id', 'tarikh_lelong']);
|
|
$cawangan = Cawangan::where('caw_code', $kodcaw)->select('id', 'caw_name')->first();
|
|
$user = User::find($user_id, ['id', 'name']);
|
|
$lelong_bid_all = LelongBid::join('cawangan', 'lelongbid.kodcaw', '=', 'cawangan.caw_code')
|
|
->join('lelongbidder', 'lelongbid.id', '=', 'lelongbidder.lelongbid_id')
|
|
->where('lelongbid.nopembeli', $user_id)
|
|
->where('cawangan.caw_code', $kodcaw)
|
|
->where('lelongbid.kodcaw', $kodcaw)
|
|
->where('lelongbidder.status_payment', 1)
|
|
->where('lelongbid.lelong_id', $lelong_id)
|
|
->select('lelongbid.id', 'norujukan', 'hargabida')
|
|
->get();
|
|
$disahkan_oleh = Payment::with('disahkanOleh:id,name')->where('lelongbid_id', $lelong_bid_all[0]->id)->where('disahkan_oleh', '<>', null)->select('id', 'disahkan_oleh', 'disahkan_pada', 'remark')->first();
|
|
|
|
$total_payment = $lelong_bid_all->sum('hargabida');
|
|
$fileresit_all = FileResit::where('lelong_id', $lelong_id)->where('user_id', $user_id)->where('kodcaw', $kodcaw)->get();
|
|
if ($disahkan_oleh->remark == 'BERJAYA BAYARAN ONLINE') {
|
|
$disahkan_oleh->remark = 'FPX';
|
|
}
|
|
|
|
return view('pembida.detailspembayaran', compact('lelong', 'cawangan', 'user', 'fileresit_all', 'total_payment', 'disahkan_oleh'));
|
|
}
|
|
|
|
public function showPhotoResit(Request $request)
|
|
{
|
|
$resit = FileResit::where('id', '=', $request->fileresit_id)->first();
|
|
|
|
return $this->resitPhotoService->show($request->user_id, $resit);
|
|
}
|
|
|
|
public function belumbayarbidaan(Request $request)
|
|
{
|
|
|
|
// $userdetail = User::where('id', $user_id)->first();
|
|
|
|
$infos = LelongBid::join('lelongbidder', 'lelongbid.id', '=', 'lelongbidder.lelongbid_id')
|
|
->join('lelong', 'lelong.id', '=', 'lelongbid.lelong_id')
|
|
->select('lelongbid.kodcaw', 'lelongbid.caw_id', 'lelongbidder.user_id', 'lelongbidder.nama_bidder', 'lelongbidder.hargabida', 'lelongbid.norujukan', 'lelongbid.hargaasas', 'lelongbidder.masa_bidaan', 'lelongbid.t_lelong', 'lelongbid.id', 'lelongbid.fasa', 'lelongbid.lelong_id')
|
|
->where('lelongbid.lelong_id', $request->lelong_id)
|
|
->where('lelongbid.kodcaw', $request->kodcaw)
|
|
->where('lelongbid.status_jual', 1)
|
|
->where('lelongbidder.status_bidder', 1)
|
|
->where(function ($query) {
|
|
$query->whereNull('lelongbidder.status_payment')
|
|
->orWhere('lelongbidder.status_payment', 2);
|
|
})
|
|
->get();
|
|
// dd($infos);
|
|
|
|
return view('pembida.detailsbidaanbelumbayar', compact('infos'));
|
|
}
|
|
|
|
public function declaretidaklaku(Request $request)
|
|
{
|
|
// dd($request->user_id);
|
|
$currentdate = Carbon::now();
|
|
$currentdate = $currentdate->toDateTimeString();
|
|
$t_lelong = Carbon::parse($request->t_lelong);
|
|
$data = $request->checkboxdata;
|
|
// dd($data);
|
|
foreach ($data as $index => $norujukan) {
|
|
$user = Auth::user();
|
|
$currentdate = Carbon::now();
|
|
$currentdate = $currentdate->toDateTimeString();
|
|
|
|
// $marhun = LelongBid::where('norujukan','=',$norujukan)->first();
|
|
// $taklaku = new TakLaku;
|
|
// $taklaku->lelong_id = $request->lelong_id;
|
|
// $taklaku->caw_id = $request->caw_id;
|
|
// $taklaku->kodcaw = $request->kodcaw;
|
|
// $taklaku->norujukan = $norujukan;
|
|
// $taklaku->t_lelong = $t_lelong;
|
|
// $taklaku->status = '0';
|
|
// $taklaku->fasa = $request->fasa;
|
|
// $taklaku->save();
|
|
|
|
$infos = LelongBid::join('lelongbidder', 'lelongbid.id', '=', 'lelongbidder.lelongbid_id')
|
|
->join('lelong', 'lelong.id', '=', 'lelongbid.lelong_id')
|
|
->select('lelongbid.kodcaw', 'lelongbid.caw_id', 'lelongbidder.user_id', 'lelongbidder.nama_bidder', 'lelongbidder.hargabida', 'lelongbid.norujukan', 'lelongbid.hargaasas', 'lelongbidder.masa_bidaan', 'lelongbid.t_lelong', 'lelongbid.id', 'lelongbid.fasa', 'lelongbid.lelong_id')
|
|
->where('lelongbid.norujukan', $norujukan)
|
|
->where('lelongbid.kodcaw', $request->kodcaw)
|
|
->where('lelongbid.status_jual', 1)
|
|
->where('lelongbidder.status_bidder', 1)
|
|
->groupBy('lelongbidder.user_id')
|
|
->where(function ($query) {
|
|
$query->whereNull('lelongbidder.status_payment')
|
|
->orWhere('lelongbidder.status_payment', 2);
|
|
})
|
|
->first();
|
|
// dd($infos->user_id);
|
|
|
|
// banned pembida
|
|
$user = User::where('id', '=', $infos->user_id)->first();
|
|
// dd($user);
|
|
$user->updated_at = $currentdate;
|
|
$user->status = 'banned';
|
|
$user->save();
|
|
|
|
// update status_jual = 0
|
|
$bida = LelongBid::where('norujukan', '=', $norujukan)->first();
|
|
$bida->status_jual = '0';
|
|
$bida->t_jual = null;
|
|
$bida->hargajual = 0.00;
|
|
$bida->nopembeli = null;
|
|
$bida->cajlelong = 0.00;
|
|
$bida->baki = 0.00;
|
|
$bida->save();
|
|
// dd($request->user_id);
|
|
|
|
// temp lelongbidder
|
|
$datalelbid = LelongBidder::where('lelongbid_id', $bida->id)
|
|
->where('user_id', $infos->user_id)->get();
|
|
$suratcaw = $datalelbid->all();
|
|
foreach (array_chunk($suratcaw, 100) as $data_chunk) {
|
|
// dd($datalelbid);
|
|
foreach ($data_chunk as $data) {
|
|
$savedata = $data->replicate();
|
|
$savedata->setTable('lelongbidder_temp');
|
|
$savedata->save();
|
|
|
|
// audit trail
|
|
$loguser = new LogUser;
|
|
$loguser->user_id = $user->id;
|
|
$loguser->date = $currentdate;
|
|
$loguser->username = $user->username;
|
|
$loguser->nama_user = $user->name;
|
|
$loguser->norujukan = $norujukan;
|
|
$loguser->nota = 'Isytihar Joy Bidder';
|
|
$loguser->save();
|
|
}
|
|
}
|
|
|
|
$datalelbidxlaku = LelongBid::where('norujukan', $bida->norujukan)->get();
|
|
$suratcawxlaku = $datalelbidxlaku->all();
|
|
foreach (array_chunk($suratcawxlaku, 100) as $data_chunkxlaku) {
|
|
// dd($datalelbid);
|
|
foreach ($data_chunkxlaku as $dataxlaku) {
|
|
$savedataxlaku = $dataxlaku->replicate();
|
|
$savedataxlaku->setTable('lelongbid_xlaku');
|
|
$savedataxlaku->save();
|
|
// dd($caw_lelsag);
|
|
$caw_lelsag = LelongBid::where('norujukan', $dataxlaku->norujukan)->first();
|
|
$caw_lelsag->status_payment = '0';
|
|
$caw_lelsag->xlaku = '1';
|
|
$caw_lelsag->update();
|
|
}
|
|
}
|
|
// hapus lelongbidder
|
|
$lelongbidder = LelongBidder::where('lelongbid_id', $bida->id)
|
|
->where('user_id', $infos->user_id)
|
|
->delete();
|
|
// dd($lelongbidder);
|
|
|
|
// audit trail
|
|
$loguser = new LogUser;
|
|
$loguser->user_id = $user->id;
|
|
$loguser->date = $currentdate;
|
|
$loguser->username = $user->username;
|
|
$loguser->nama_user = $user->name;
|
|
$loguser->norujukan = $norujukan;
|
|
$loguser->nota = ' Tak Laku Lelong';
|
|
$loguser->save();
|
|
}
|
|
|
|
return redirect()->route('pembida.senlelbelumbayarbidaan');
|
|
}
|
|
|
|
public function kebenaranbayarantunai(Request $request)
|
|
{
|
|
$kodcaw = $request->kodcaw;
|
|
|
|
$arrayinfo = [];
|
|
|
|
$lelong = Lelong::join('cawangan_lelong', 'lelong.id', '=', 'cawangan_lelong.lelong_id')
|
|
->select('lelong_id', 'tarikh_lelong', 'lelong.fasa', 'harga_emas_asas', 'jbg', 'cajlelong', 'sts_lelong')
|
|
->distinct()
|
|
->orderBy('lelong_id', 'DESC')
|
|
->where('lelong.sts_lelong', 3)
|
|
->get()
|
|
->toArray();
|
|
|
|
foreach ($lelong as $details) {
|
|
|
|
$detailsinfo = CawanganLelong::join('cawangan', 'cawangan_lelong.caw_id', '=', 'cawangan.id')
|
|
->select('cawangan_lelong.lelong_id', 'cawangan_lelong.caw_id', 'caw_name', 'caw_code', 'cawangan_lelong.export_data_sts')
|
|
->where('lelong_id', $details['lelong_id'])
|
|
->distinct()
|
|
->orderBy('lelong_id')
|
|
->get()
|
|
->toArray();
|
|
// dd($detailsinfo);
|
|
|
|
array_push($arrayinfo, ['detail' => $details, 'detailsinfo' => $detailsinfo]);
|
|
}
|
|
// dd($request->kodcaw);
|
|
$datacaw = Cawangan::where('caw_code', '=', $kodcaw)
|
|
->get();
|
|
|
|
return view('pembida.listkebenaranbayarantunai', compact('datacaw', 'lelong', 'arrayinfo'));
|
|
}
|
|
|
|
// public function senaraipemenangbycaw(Request $request, $lelong_id){
|
|
|
|
// $caw_code = $request->kodcaw;
|
|
|
|
// $listwinner = LelongBidder::join('lelongbid', 'lelongbidder.lelongbid_id', '=', 'lelongbid.id')
|
|
// ->where('lelongbidder.status_bidder', 1)
|
|
// ->where('lelongbid.lelong_id', $lelong_id)
|
|
// ->where('lelongbid.kodcaw', $caw_code)
|
|
// ->select('lelongbidder.user_id')
|
|
// ->groupBy('lelongbidder.user_id')
|
|
// ->get()->toArray();
|
|
// // dd($listwinner);
|
|
|
|
// foreach($listwinner as $index1=>$winner){
|
|
|
|
// $userdetails = User::where('id', $winner['user_id'])->first();
|
|
// $SAGWin = LelongBidder::join('lelongbid', 'lelongbidder.lelongbid_id', '=', 'lelongbid.id')
|
|
// ->where('user_id', $winner['user_id'])
|
|
// ->where('lelongbidder.status_bidder', 1)
|
|
// ->where('lelongbid.lelong_id', $lelong_id)
|
|
// ->where('lelongbid.kodcaw', $caw_code)
|
|
// ->get();
|
|
|
|
// $listwinner[$index1]['details'] = $userdetails;
|
|
// $listwinner[$index1]['total_surat'] = sizeof($SAGWin);
|
|
// $listwinner[$index1]['totalBid'] = $SAGWin->sum('hargabida');
|
|
// $listwinner[$index1]['lelong_id'] = $lelong_id;
|
|
// // $listwinner[$index1]['kodcaw'] = $kodcaw;
|
|
// // dd( $caw_code);
|
|
// }
|
|
|
|
// return view('pembida.senaraipemenangbycaw',compact('listwinner','lelong_id','caw_code'));
|
|
// }
|
|
|
|
public function senaraisagpemenangbycaw($user_id, $lelong_id, $kodcaw)
|
|
{
|
|
|
|
$userdetails = User::where('id', $user_id)->first();
|
|
|
|
$senaraisag = LelongBid::join('lelongbidder', 'lelongbid.id', '=', 'lelongbidder.lelongbid_id')
|
|
->where('lelongbid.lelong_id', $lelong_id)
|
|
->where('lelongbid.kodcaw', $kodcaw)
|
|
->where('lelongbidder.user_id', $user_id)
|
|
->where('lelongbidder.status_bidder', 1)
|
|
->get();
|
|
|
|
return view('pembida.senaraisagpemenangbycaw', compact('senaraisag', 'user_id', 'lelong_id', 'userdetails'));
|
|
}
|
|
|
|
public function senaraipemenangbycaw(Request $request, $lelong_id)
|
|
{
|
|
|
|
// $user = Auth::user();
|
|
$caw_code = $request->kodcaw;
|
|
|
|
$listwinner = LelongBidder::join('lelongbid', 'lelongbidder.lelongbid_id', '=', 'lelongbid.id')
|
|
->where('lelongbidder.status_bidder', 1)
|
|
->where('lelongbid.kodcaw', $caw_code)
|
|
->where('lelongbid.lelong_id', $lelong_id)
|
|
->select('lelongbidder.user_id')
|
|
->groupBy('lelongbidder.user_id')
|
|
->get()->toArray();
|
|
|
|
foreach ($listwinner as $index1 => $winner) {
|
|
|
|
$userdetails = User::where('id', $winner['user_id'])->first();
|
|
$SAGWin = LelongBidder::join('lelongbid', 'lelongbidder.lelongbid_id', '=', 'lelongbid.id')
|
|
->where('user_id', $winner['user_id'])
|
|
->where('lelongbid.kodcaw', $caw_code)
|
|
->where('lelongbidder.status_bidder', 1)
|
|
->where('lelongbid.lelong_id', $lelong_id)
|
|
->get();
|
|
// dd($userdetails);
|
|
|
|
$sts_payment = LelongBidder::join('lelongbid', 'lelongbidder.lelongbid_id', '=', 'lelongbid.id')
|
|
->where('user_id', $winner['user_id'])
|
|
->where('lelongbidder.status_bidder', 1)
|
|
->where('lelongbid.kodcaw', $caw_code)
|
|
->where('lelongbid.lelong_id', $lelong_id)
|
|
->select('lelongbidder.status_payment')
|
|
->get();
|
|
// dd($sts_payment[0]['status_payment']);
|
|
|
|
$payment_id = LelongBidder::join('lelongbid', 'lelongbidder.lelongbid_id', '=', 'lelongbid.id')
|
|
->where('user_id', $winner['user_id'])
|
|
->where('lelongbid.kodcaw', $caw_code)
|
|
->where('lelongbidder.status_bidder', 1)
|
|
->where('lelongbid.lelong_id', $lelong_id)
|
|
->select('payment_id')->groupBy('payment_id')->get();
|
|
|
|
$total_payment = 0;
|
|
foreach ($payment_id as $id) {
|
|
$payment = Payment::where('id', $id->payment_id)
|
|
->first();
|
|
// dd($payment);
|
|
|
|
if ($payment) {
|
|
$total_payment = $total_payment + $payment->total_payment;
|
|
}
|
|
}
|
|
// dd($total_payment);
|
|
|
|
$listwinner[$index1]['details'] = $userdetails;
|
|
$listwinner[$index1]['total_surat'] = count($SAGWin);
|
|
$listwinner[$index1]['totalBid'] = $SAGWin->sum('hargabida');
|
|
$listwinner[$index1]['totalPay'] = $total_payment;
|
|
$listwinner[$index1]['sts_payment'] = $sts_payment[0]['status_payment'];
|
|
|
|
}
|
|
$datacaw = Cawangan::where('caw_code', '=', $caw_code)
|
|
->get();
|
|
|
|
// return view('pembayaran.kaunterpembayaran',compact('listwinner','lelong_id'));
|
|
return view('pembida.senaraipemenangbycaw', compact('datacaw', 'listwinner', 'lelong_id', 'caw_code'));
|
|
|
|
}
|
|
|
|
public function SAGBidItembycaw($user_id, $lelong_id, $kodcaw)
|
|
{
|
|
|
|
// $user = Auth::user();
|
|
|
|
$SAGBidItem = LelongBidder::join('lelongbid', 'lelongbidder.lelongbid_id', '=', 'lelongbid.id')
|
|
->join('users', 'lelongbidder.user_id', '=', 'users.id')
|
|
->where('lelongbidder.status_bidder', 1)
|
|
->where('users.id', $user_id)
|
|
->where('lelongbid.kodcaw', $kodcaw)
|
|
->where('lelongbid.lelong_id', $lelong_id)
|
|
->select(
|
|
'users.id',
|
|
'users.name',
|
|
'users.nokp',
|
|
'users.alamat',
|
|
'users.notelbimbit'
|
|
)
|
|
->first();
|
|
|
|
$eachbid = LelongBidder::join('lelongbid', 'lelongbidder.lelongbid_id', '=', 'lelongbid.id')
|
|
->join('users', 'lelongbidder.user_id', '=', 'users.id')
|
|
->where('lelongbidder.status_bidder', 1)
|
|
->where('users.id', $user_id)
|
|
->where('lelongbid.lelong_id', $lelong_id)
|
|
->where('lelongbid.kodcaw', $kodcaw)
|
|
->select('lelongbidder.hargabida',
|
|
'lelongbidder.user_id',
|
|
'lelongbid.hargaasas',
|
|
'lelongbid.norujukan',
|
|
'lelongbidder.lelongbid_id',
|
|
'lelongbidder.status_payment'
|
|
)
|
|
->get();
|
|
// dd($eachbid);
|
|
|
|
foreach ($eachbid as $bid) {
|
|
$totalbidaan = $bid->sum('hargabida');
|
|
// dd($totalbidaan);
|
|
}
|
|
$totalbidaan = $eachbid->SUM('hargabida');
|
|
// dd($totalbidaan);
|
|
|
|
$statuspayment = LelongBidder::join('lelongbid', 'lelongbidder.lelongbid_id', '=', 'lelongbid.id')
|
|
->join('users', 'lelongbidder.user_id', '=', 'users.id')
|
|
->where('lelongbidder.status_bidder', 1)
|
|
->where('users.id', $user_id)
|
|
->where('lelongbid.lelong_id', $lelong_id)
|
|
->where('lelongbid.kodcaw', $kodcaw)
|
|
->select('lelongbidder.hargabida',
|
|
'lelongbidder.user_id',
|
|
'lelongbid.hargaasas',
|
|
'lelongbid.norujukan',
|
|
'lelongbidder.lelongbid_id',
|
|
'lelongbidder.status_payment',
|
|
'lelongbid.opencash'
|
|
)
|
|
->first();
|
|
// dd($statuspayment);
|
|
|
|
$getresit = FileResit::join('payment', 'fileresit.payment_id', '=', 'payment.id')
|
|
->where('payment.lelong_id', $lelong_id)
|
|
->where('payment.user_id', $user_id)
|
|
->get()->toArray();
|
|
// dd($getresit);
|
|
|
|
$getinvoice = Invoice::where('lelong_id', $lelong_id)
|
|
->where('user_id', '=', $user_id)
|
|
->first();
|
|
// dd($getinvoice);
|
|
|
|
$array_resit = [];
|
|
foreach ($getresit as $index1 => $resit) {
|
|
$getresit[$index1]['resit64'] = 'data:image/'.$resit['file_type'].';base64'.base64_encode($resit['filename']);
|
|
}
|
|
|
|
$datacaw = Cawangan::where('caw_code', '=', $kodcaw)
|
|
->get();
|
|
// dd($datacaw);
|
|
|
|
return view('pembida.SAGBidItembycaw', compact('statuspayment', 'totalbidaan', 'datacaw', 'SAGBidItem', 'eachbid', 'lelong_id', 'user_id', 'getresit', 'getinvoice', 'kodcaw'));
|
|
}
|
|
|
|
public function benarkantunai(Request $request)
|
|
{
|
|
$currentdate = Carbon::now();
|
|
$currentdate = $currentdate->toDateTimeString();
|
|
|
|
$user = Auth::user();
|
|
|
|
$idpembida = $request->user_id;
|
|
$lelong_id = $request->lelong_id;
|
|
$kodcaw = $request->kodcaw;
|
|
|
|
// $opencash = Invoice::where('lelong_id',$lelong_id)
|
|
// ->where('user_id','=',$idpembida)
|
|
// ->first();
|
|
// $opencash->opencash = 1;
|
|
// $opencash->save();
|
|
|
|
$lelongbid = LelongBid::where('lelong_id', $lelong_id)
|
|
->where('nopembeli', '=', $idpembida)
|
|
->where('kodcaw', '=', $kodcaw)
|
|
->get();
|
|
// dd($opencashlelongbid);
|
|
foreach ($lelongbid as $lelbid) {
|
|
$opencashlelongbid = LelongBid::where('lelong_id', $lelong_id)
|
|
->where('nopembeli', '=', $idpembida)
|
|
->where('kodcaw', '=', $kodcaw)
|
|
->where('norujukan', '=', $lelbid->norujukan)
|
|
->first();
|
|
// dd($opencashlelongbid);
|
|
$opencashlelongbid->opencash = 1;
|
|
$opencashlelongbid->save();
|
|
|
|
$loguser = new LogUser;
|
|
$loguser->user_id = $user->id;
|
|
$loguser->date = $currentdate;
|
|
$loguser->username = $user->username;
|
|
$loguser->nama_user = $user->name;
|
|
$loguser->norujukan = $lelbid->norujukan;
|
|
$loguser->nota = 'Benarkan Bayaran Tunai';
|
|
$loguser->save();
|
|
}
|
|
|
|
// audit trail
|
|
|
|
return redirect()->route('pembida.kebenaranbayarantunai')->with('success', 'Kebenaran Berjaya');
|
|
|
|
}
|
|
|
|
public function SenaraiPemenang($lelong_id, $kodcaw)
|
|
{
|
|
|
|
// $user = Auth::user();
|
|
|
|
$listwinner = LelongBidder::join('lelongbid', 'lelongbidder.lelongbid_id', '=', 'lelongbid.id')
|
|
->where('lelongbidder.status_bidder', 1)
|
|
->where('lelongbid.kodcaw', $kodcaw)
|
|
->where('lelongbid.lelong_id', $lelong_id)
|
|
->select('lelongbidder.user_id')
|
|
->groupBy('lelongbidder.user_id')
|
|
->get()->toArray();
|
|
|
|
foreach ($listwinner as $index1 => $winner) {
|
|
|
|
$userdetails = User::where('id', $winner['user_id'])->first();
|
|
$SAGWin = LelongBidder::join('lelongbid', 'lelongbidder.lelongbid_id', '=', 'lelongbid.id')
|
|
->where('user_id', $winner['user_id'])
|
|
->where('lelongbid.kodcaw', $kodcaw)
|
|
->where('lelongbidder.status_bidder', 1)
|
|
->where('lelongbid.lelong_id', $lelong_id)
|
|
->get();
|
|
// dd($userdetails);
|
|
|
|
$sts_payment = LelongBidder::join('lelongbid', 'lelongbidder.lelongbid_id', '=', 'lelongbid.id')
|
|
->where('user_id', $winner['user_id'])
|
|
->where('lelongbidder.status_bidder', 1)
|
|
->where('lelongbid.kodcaw', $kodcaw)
|
|
->where('lelongbid.lelong_id', $lelong_id)
|
|
->select('lelongbidder.status_payment')
|
|
->get();
|
|
// dd($sts_payment[0]['status_payment']);
|
|
|
|
$payment_id = LelongBidder::join('lelongbid', 'lelongbidder.lelongbid_id', '=', 'lelongbid.id')
|
|
->where('user_id', $winner['user_id'])
|
|
->where('lelongbid.kodcaw', $kodcaw)
|
|
->where('lelongbidder.status_bidder', 1)
|
|
->where('lelongbid.lelong_id', $lelong_id)
|
|
->select('payment_id')->groupBy('payment_id')->get();
|
|
|
|
$total_payment = 0;
|
|
foreach ($payment_id as $id) {
|
|
$payment = Payment::where('id', $id->payment_id)
|
|
->first();
|
|
// dd($payment);
|
|
|
|
if ($payment) {
|
|
$total_payment = $total_payment + $payment->total_payment;
|
|
}
|
|
}
|
|
// dd($total_payment);
|
|
|
|
$listwinner[$index1]['details'] = $userdetails;
|
|
$listwinner[$index1]['total_surat'] = count($SAGWin);
|
|
$listwinner[$index1]['totalBid'] = $SAGWin->sum('hargabida');
|
|
$listwinner[$index1]['totalPay'] = $total_payment;
|
|
$listwinner[$index1]['sts_payment'] = $sts_payment[0]['status_payment'];
|
|
|
|
}
|
|
|
|
return view('home.kaunterpembayaran', compact('listwinner', 'lelong_id', 'kodcaw'));
|
|
|
|
}
|
|
|
|
public function statuspembayaran(Request $request)
|
|
{
|
|
$kodcaw = $request->kodcaw;
|
|
$tarikh_semasa = date('Y-m-d', strtotime(now()));
|
|
|
|
$sumtotalpayment = 0;
|
|
$arrayinfo = [];
|
|
$arraysms = [];
|
|
$arraysls = [];
|
|
|
|
$lelong = Lelong::join('cawangan_lelong', 'lelong.id', '=', 'cawangan_lelong.lelong_id')
|
|
->select('lelong_id', 'tarikh_lelong', 'lelong.fasa', 'harga_emas_asas', 'jbg', 'cajlelong', 'sts_lelong')
|
|
->distinct()
|
|
->orderBy('lelong_id')
|
|
->where('lelong.sts_lelong', 3)
|
|
->get()
|
|
->toArray();
|
|
// dd($lelong);
|
|
|
|
foreach ($lelong as $details) {
|
|
$detailsinfo = CawanganLelong::join('cawangan', 'cawangan_lelong.caw_id', '=', 'cawangan.id')
|
|
->select('cawangan_lelong.lelong_id', 'cawangan_lelong.caw_id', 'caw_name', 'cawangan.caw_code', 'cawangan_lelong.export_data_sts')
|
|
->where('lelong_id', $details['lelong_id'])
|
|
->distinct()
|
|
->orderBy('lelong_id')
|
|
->get();
|
|
|
|
// array_push($arrayinfo,['detail'=>$details, 'detailsinfo'=>$detailsinfo]);
|
|
if ($details['tarikh_lelong'] == $tarikh_semasa) {
|
|
array_push($arraysms, ['detail' => $details, 'detailsinfo' => $detailsinfo]);
|
|
} else {
|
|
array_push($arraysls, ['detail' => $details, 'detailsinfo' => $detailsinfo]);
|
|
}
|
|
|
|
foreach ($detailsinfo as $index1 => $cal) {
|
|
$listwinner = LelongBidder::join('lelongbid', 'lelongbidder.lelongbid_id', '=', 'lelongbid.id')
|
|
// ->join('payment', 'lelongbidder.payment_id', '=', 'payment.id')
|
|
->where('lelongbidder.status_bidder', 1)
|
|
// ->where('payment.status', 1)
|
|
// ->where('lelongbidder.status_payment', 1)
|
|
->where('lelongbid.lelong_id', $details['lelong_id'])
|
|
->where('lelongbid.kodcaw', $cal['caw_code'])
|
|
->select('lelongbidder.user_id', 'lelongbid.lelong_id', 'lelongbid.kodcaw')
|
|
->groupBy('lelongbidder.user_id')
|
|
->get();
|
|
foreach ($listwinner as $index => $listing) {
|
|
$total_payment = 0;
|
|
$userdetails = User::where('id', $listing['user_id'])->first();
|
|
$SAGWin = LelongBidder::join('lelongbid', 'lelongbidder.lelongbid_id', '=', 'lelongbid.id')
|
|
->where('lelongbid.nopembeli', $listing['user_id'])
|
|
->where('lelongbid.kodcaw', $listing['kodcaw'])
|
|
->where('lelongbidder.status_bidder', 1)
|
|
->where('lelongbid.lelong_id', $listing['lelong_id'])
|
|
->get();
|
|
foreach ($SAGWin as $index2 => $sag) {
|
|
// dd($detailspayment);
|
|
$detailspayment = null;
|
|
if ($sag['payment_id'] != null) {
|
|
$detailspayment = Payment::where('id', $sag['payment_id'])->first();
|
|
$total_payment = $total_payment + $detailspayment->total_payment;
|
|
// dd($total_payment);
|
|
} else {
|
|
$total_payment = '0.00';
|
|
}
|
|
|
|
}
|
|
$listwinner[$index]['details'] = $userdetails;
|
|
$listwinner[$index]['total_surat'] = count($SAGWin);
|
|
$listwinner[$index]['totalBid'] = $SAGWin->sum('hargabida');
|
|
$listwinner[$index]['totalPay'] = $total_payment;
|
|
$listwinner[$index]['jenisbayaran'] = $detailspayment;
|
|
}
|
|
|
|
$detailsinfo[$index1]['nama'] = $userdetails;
|
|
$detailsinfo[$index1]['listwinner'] = $listwinner;
|
|
}
|
|
}
|
|
|
|
// $sumtotalpayment += $total_payment;
|
|
// dd($sumtotalpayment);
|
|
// dd($arrayinfo);
|
|
return view('pembida.statuspembayaran', compact('arraysms', 'arraysls', 'listwinner', 'lelong', 'arrayinfo', 'detailsinfo'));
|
|
}
|
|
|
|
public function statuspembayaran2()
|
|
{
|
|
$current_date = Carbon::now();
|
|
$current_date = $current_date->toDateString();
|
|
|
|
$lelong_all = Lelong::with(
|
|
'cawangan:id,caw_code,caw_name',
|
|
'lelongBidJual:lelong_id,id,norujukan,caw_id,kodcaw',
|
|
'lelongBidJual.lelongBidderMenang:lelongbid_id,user_id,nama_bidder,hargabida,status_payment',
|
|
'lelongBidJual.lelongBidderMenang.payment:lelongbid_id,user_id,status_payment_opt',
|
|
'lelongBidJual.lelongBidderMenang.payment.user:id,name',
|
|
'lelongBidJual.scanjual:lelongbid_id,norujukan,serahkpdpembida',
|
|
'lelongBidJual.lelongBidderMenang.scanjual:lelongbid_id,norujukan,serahkpdpembida'
|
|
)->select('id', 'tarikh_lelong')->where('sts_lelong', 3)->orderBy('id', 'DESC')->get();
|
|
|
|
$lelong_array = [];
|
|
foreach ($lelong_all as $lelong) {
|
|
$allCawangan = $lelong->cawangan->keyBy('caw_code');
|
|
$lelongBid = $lelong->lelongBidJual->groupBy('kodcaw');
|
|
|
|
foreach ($lelongBid as $index => $lelong_bid) {
|
|
foreach ($allCawangan as $data => $cawangan) {
|
|
if ($data == $index) {
|
|
$cawangan['lelongBidFix'] = $lelong_bid;
|
|
}
|
|
}
|
|
}
|
|
$cawangan_array = [];
|
|
foreach ($lelong->cawangan as $caw) {
|
|
if ($caw->lelongBidFix) {
|
|
$users = $caw->lelongBidFix->pluck('lelongBidderMenang')->groupBy('user_id');
|
|
$jumlah_bidaan_cawangan = $caw->lelongBidFix->pluck('lelongBidderMenang')->sum('hargabida');
|
|
$user_array = [];
|
|
foreach ($users as $user) {
|
|
$user_to_be_added = [];
|
|
$user_to_be_added['name_bidder'] = $user[0]->nama_bidder;
|
|
$user_to_be_added['jumlah_bidaan'] = $user->sum('hargabida');
|
|
$user_to_be_added['status_bayaran'] = $user[0]->status_payment;
|
|
$user_to_be_added['serah'] = $user[0]->scanjual ? $user[0]->scanjual->serahkpdpembida : '';
|
|
if ($user[0]->payment != null) {
|
|
$user_to_be_added['jenis_bayaran'] = $user[0]->payment->status_payment_opt;
|
|
} else {
|
|
$user_to_be_added['jenis_bayaran'] = '99';
|
|
}
|
|
array_push($user_array, $user_to_be_added);
|
|
}
|
|
$cawangan_to_be_added = [];
|
|
$cawangan_to_be_added['caw_code'] = $caw->caw_code;
|
|
$cawangan_to_be_added['caw_name'] = $caw->caw_name;
|
|
$cawangan_to_be_added['pembida'] = $user_array;
|
|
$cawangan_to_be_added['jumlah_bidaan_cawangan'] = $jumlah_bidaan_cawangan;
|
|
array_push($cawangan_array, $cawangan_to_be_added);
|
|
}
|
|
}
|
|
$lelong_to_be_added = [];
|
|
$lelong_to_be_added['lelong_id'] = $lelong->id;
|
|
$lelong_to_be_added['tarikh_lelong'] = $lelong->tarikh_lelong;
|
|
$lelong_to_be_added['cawangan'] = $cawangan_array;
|
|
array_push($lelong_array, $lelong_to_be_added);
|
|
}
|
|
$lelong_array_semasa = [];
|
|
$lelong_array_selesai = [];
|
|
foreach ($lelong_array as $lelong) {
|
|
if ($lelong['tarikh_lelong'] == $current_date) {
|
|
array_push($lelong_array_semasa, $lelong);
|
|
} else {
|
|
array_push($lelong_array_selesai, $lelong);
|
|
}
|
|
}
|
|
|
|
return view('pembida.statuspembayaran2', compact('lelong_array_semasa', 'lelong_array_selesai'));
|
|
}
|
|
|
|
public function statuspembayaranbypembida(Request $request)
|
|
{
|
|
$kodcaw = $request->kodcaw;
|
|
|
|
$arrayinfo = [];
|
|
|
|
$lelong = Lelong::join('cawangan_lelong', 'lelong.id', '=', 'cawangan_lelong.lelong_id')
|
|
->select('lelong_id', 'tarikh_lelong', 'lelong.fasa', 'harga_emas_asas', 'jbg', 'cajlelong', 'sts_lelong')
|
|
->distinct()
|
|
->orderBy('lelong_id')
|
|
->where('lelong.sts_lelong', 3)
|
|
->get()
|
|
->toArray();
|
|
// dd($lelong);
|
|
|
|
foreach ($lelong as $details) {
|
|
$listwinner = LelongBidder::join('lelongbid', 'lelongbidder.lelongbid_id', '=', 'lelongbid.id')
|
|
->where('lelongbidder.status_bidder', 1)
|
|
->where('lelongbid.lelong_id', $details['lelong_id'])
|
|
->select('lelongbidder.user_id', 'lelongbid.lelong_id', 'lelongbid.kodcaw')
|
|
->groupBy('lelongbid.nopembeli')
|
|
->get();
|
|
// dd($listwinner);
|
|
|
|
array_push($arrayinfo, ['detail' => $details, 'listwinner' => $listwinner]);
|
|
|
|
foreach ($listwinner as $index1 => $cal) {
|
|
|
|
$userdetails = User::where('id', $cal['user_id'])->first();
|
|
$SAGWin = LelongBidder::join('lelongbid', 'lelongbidder.lelongbid_id', '=', 'lelongbid.id')
|
|
->where('lelongbid.nopembeli', $cal['user_id'])
|
|
// ->where('lelongbid.kodcaw', $cal['kodcaw'])
|
|
->where('lelongbidder.status_bidder', 1)
|
|
->where('lelongbid.lelong_id', $cal['lelong_id'])
|
|
->get();
|
|
// dd($SAGWin);
|
|
$total_payment = 0;
|
|
foreach ($SAGWin as $index2 => $sag) {
|
|
// dd($detailspayment);
|
|
$detailspayment = null;
|
|
if ($sag['payment_id'] != null) {
|
|
$detailspayment = Payment::where('id', $sag['payment_id'])
|
|
->get();
|
|
$total_payment += $detailspayment->sum('total_payment');
|
|
// dd($total_payment);
|
|
} else {
|
|
$total_payment = '0.00';
|
|
}
|
|
|
|
}
|
|
$cawanganbidder = CawanganLelong::join('cawangan', 'cawangan_lelong.caw_id', '=', 'cawangan.id')
|
|
->select('cawangan_lelong.lelong_id', 'cawangan_lelong.caw_id', 'caw_name', 'cawangan.caw_code', 'cawangan_lelong.export_data_sts')
|
|
->where('lelong_id', $details['lelong_id'])
|
|
->where('cawangan.caw_code', $cal['kodcaw'])
|
|
->distinct()
|
|
->orderBy('lelong_id')
|
|
->get();
|
|
foreach ($cawanganbidder as $index => $listing) {
|
|
|
|
$listwinner[$index]['cawangan'] = $cawanganbidder;
|
|
}
|
|
$listwinner[$index1]['details'] = $userdetails;
|
|
$listwinner[$index1]['total_surat'] = count($SAGWin);
|
|
$listwinner[$index1]['totalBid'] = $SAGWin->sum('hargabida');
|
|
$listwinner[$index1]['totalPay'] = $total_payment;
|
|
$listwinner[$index1]['jenisbayaran'] = $detailspayment;
|
|
}
|
|
}
|
|
|
|
return view('pembida.statuspembayaranbypembida', compact('listwinner', 'lelong', 'arrayinfo', 'cawanganbidder'));
|
|
}
|
|
|
|
public function statusserahanbidaan(Request $request)
|
|
{
|
|
$kodcaw = $request->kodcaw;
|
|
$tarikh_semasa = date('Y-m-d', strtotime(now()));
|
|
|
|
// dd($tarikh_semasa);
|
|
|
|
$sumtotalpayment = 0;
|
|
$arrayinfo = [];
|
|
$arraysms = [];
|
|
$arraysls = [];
|
|
|
|
$lelong = Lelong::join('cawangan_lelong', 'lelong.id', '=', 'cawangan_lelong.lelong_id')
|
|
->select('lelong_id', 'tarikh_lelong', 'lelong.fasa', 'harga_emas_asas', 'jbg', 'cajlelong', 'sts_lelong')
|
|
->distinct()
|
|
->orderBy('lelong_id', 'DESC')
|
|
->where('lelong.sts_lelong', 3)
|
|
->get()
|
|
->toArray();
|
|
// dd($lelong);
|
|
|
|
foreach ($lelong as $details) {
|
|
|
|
$detailsinfo = CawanganLelong::join('cawangan', 'cawangan_lelong.caw_id', '=', 'cawangan.id')
|
|
->select('cawangan_lelong.lelong_id', 'cawangan_lelong.caw_id', 'caw_name', 'cawangan.caw_code', 'cawangan_lelong.export_data_sts')
|
|
->where('lelong_id', $details['lelong_id'])
|
|
->distinct()
|
|
->orderBy('lelong_id')
|
|
->get();
|
|
|
|
if ($details['tarikh_lelong'] == $tarikh_semasa) {
|
|
array_push($arraysms, ['detail' => $details, 'detailsinfo' => $detailsinfo]);
|
|
} else {
|
|
array_push($arraysls, ['detail' => $details, 'detailsinfo' => $detailsinfo]);
|
|
}
|
|
|
|
// array_push($arrayinfo,['detail'=>$details, 'detailsinfo'=>$detailsinfo]);
|
|
|
|
foreach ($detailsinfo as $index1 => $cal) {
|
|
$listwinner = LelongBidder::join('lelongbid', 'lelongbidder.lelongbid_id', '=', 'lelongbid.id')
|
|
// ->join('payment', 'lelongbidder.payment_id', '=', 'payment.id')
|
|
->where('lelongbidder.status_bidder', 1)
|
|
// ->where('payment.status', 1)
|
|
// ->where('lelongbidder.status_payment', 1)
|
|
->where('lelongbid.lelong_id', $details['lelong_id'])
|
|
->where('lelongbid.kodcaw', $cal['caw_code'])
|
|
->select('lelongbidder.user_id', 'lelongbid.lelong_id', 'lelongbid.kodcaw')
|
|
->groupBy('lelongbidder.user_id')
|
|
->get();
|
|
foreach ($listwinner as $index => $listing) {
|
|
$total_payment = 0;
|
|
$userdetails = User::where('id', $listing['user_id'])->first();
|
|
$SAGWin = LelongBidder::join('lelongbid', 'lelongbidder.lelongbid_id', '=', 'lelongbid.id')
|
|
->where('lelongbid.nopembeli', $listing['user_id'])
|
|
->where('lelongbid.kodcaw', $listing['kodcaw'])
|
|
->where('lelongbidder.status_bidder', 1)
|
|
->where('lelongbid.lelong_id', $listing['lelong_id'])
|
|
->get();
|
|
foreach ($SAGWin as $index2 => $sag) {
|
|
// dd($detailspayment);
|
|
$detailspayment = null;
|
|
$scanserah = null;
|
|
if ($sag['payment_id'] != null) {
|
|
$detailspayment = Payment::where('id', $sag['payment_id'])->first();
|
|
$total_payment = $total_payment + $detailspayment->total_payment;
|
|
// dd($total_payment);
|
|
$scanserah = ScanJual::where('lelongbid_id', $sag['lelongbid_id'])
|
|
->select('serahkpdpembida')
|
|
->first();
|
|
// dd($scanserah);
|
|
|
|
} else {
|
|
$total_payment = '0.00';
|
|
// $scanserah = 'Belum Bayar';
|
|
$scanserah = null;
|
|
}
|
|
|
|
}
|
|
$listwinner[$index]['details'] = $userdetails;
|
|
$listwinner[$index]['total_surat'] = count($SAGWin);
|
|
$listwinner[$index]['totalBid'] = $SAGWin->sum('hargabida');
|
|
$listwinner[$index]['totalPay'] = $total_payment;
|
|
$listwinner[$index]['jenisbayaran'] = $detailspayment;
|
|
$listwinner[$index]['serah'] = $scanserah;
|
|
}
|
|
|
|
$detailsinfo[$index1]['nama'] = $userdetails;
|
|
$detailsinfo[$index1]['listwinner'] = $listwinner;
|
|
}
|
|
|
|
}
|
|
|
|
// $sumtotalpayment += $total_payment;
|
|
// dd($sumtotalpayment);
|
|
// dd($arrayinfo);
|
|
|
|
return view('pembida.statusserahanbidaan', compact('arraysms', 'arraysls', 'listwinner', 'lelong', 'detailsinfo'));
|
|
}
|
|
|
|
public function statusserahanbypembida(Request $request)
|
|
{
|
|
$kodcaw = $request->kodcaw;
|
|
$tarikh_semasa = date('Y-m-d', strtotime(now()));
|
|
|
|
$arraysms = [];
|
|
$arraysls = [];
|
|
$arrayinfo = [];
|
|
|
|
$lelong = Lelong::join('cawangan_lelong', 'lelong.id', '=', 'cawangan_lelong.lelong_id')
|
|
->select('lelong_id', 'tarikh_lelong', 'lelong.fasa', 'harga_emas_asas', 'jbg', 'cajlelong', 'sts_lelong')
|
|
->distinct()
|
|
->orderBy('lelong_id', 'DESC')
|
|
->where('lelong.sts_lelong', 3)
|
|
->get()
|
|
->toArray();
|
|
// dd($lelong);
|
|
|
|
foreach ($lelong as $details) {
|
|
$listwinner = LelongBidder::join('lelongbid', 'lelongbidder.lelongbid_id', '=', 'lelongbid.id')
|
|
->where('lelongbidder.status_bidder', 1)
|
|
->where('lelongbid.lelong_id', $details['lelong_id'])
|
|
->select('lelongbidder.user_id', 'lelongbid.lelong_id', 'lelongbid.kodcaw')
|
|
->groupBy('lelongbid.nopembeli')
|
|
->get();
|
|
// dd($listwinner);
|
|
|
|
if ($details['tarikh_lelong'] == $tarikh_semasa) {
|
|
array_push($arraysms, ['detail' => $details, 'listwinner' => $listwinner]);
|
|
} else {
|
|
array_push($arraysls, ['detail' => $details, 'listwinner' => $listwinner]);
|
|
}
|
|
|
|
// array_push($arrayinfo,['detail'=>$details, 'listwinner'=>$listwinner]);
|
|
|
|
foreach ($listwinner as $index1 => $cal) {
|
|
|
|
$userdetails = User::where('id', $cal['user_id'])->first();
|
|
$SAGWin = LelongBidder::join('lelongbid', 'lelongbidder.lelongbid_id', '=', 'lelongbid.id')
|
|
->where('lelongbid.nopembeli', $cal['user_id'])
|
|
// ->where('lelongbid.kodcaw', $cal['kodcaw'])
|
|
->where('lelongbidder.status_bidder', 1)
|
|
->where('lelongbid.lelong_id', $cal['lelong_id'])
|
|
->get();
|
|
// dd($SAGWin);
|
|
$total_payment = 0;
|
|
foreach ($SAGWin as $index2 => $sag) {
|
|
// dd($detailspayment);
|
|
$detailspayment = null;
|
|
if ($sag['payment_id'] != null) {
|
|
$detailspayment = Payment::where('id', $sag['payment_id'])
|
|
->get();
|
|
$total_payment += $detailspayment->sum('total_payment');
|
|
// dd($total_payment);
|
|
$scanserah = ScanJual::where('lelongbid_id', $sag['lelongbid_id'])
|
|
->select('serahkpdpembida')
|
|
->first();
|
|
} else {
|
|
$total_payment = '0.00';
|
|
}
|
|
|
|
}
|
|
$cawanganbidder = CawanganLelong::join('cawangan', 'cawangan_lelong.caw_id', '=', 'cawangan.id')
|
|
->select('cawangan_lelong.lelong_id', 'cawangan_lelong.caw_id', 'caw_name', 'cawangan.caw_code', 'cawangan_lelong.export_data_sts')
|
|
->where('lelong_id', $details['lelong_id'])
|
|
->where('cawangan.caw_code', $cal['kodcaw'])
|
|
->distinct()
|
|
->orderBy('lelong_id')
|
|
->get();
|
|
foreach ($cawanganbidder as $index => $listing) {
|
|
|
|
$listwinner[$index]['cawangan'] = $cawanganbidder;
|
|
}
|
|
$listwinner[$index1]['details'] = $userdetails;
|
|
$listwinner[$index1]['total_surat'] = count($SAGWin);
|
|
$listwinner[$index1]['totalBid'] = $SAGWin->sum('hargabida');
|
|
$listwinner[$index1]['totalPay'] = $total_payment;
|
|
$listwinner[$index1]['jenisbayaran'] = $detailspayment;
|
|
$listwinner[$index1]['serah'] = $scanserah;
|
|
}
|
|
}
|
|
|
|
// return view('pembida.statusserahanbypembida',compact('listwinner','lelong','arrayinfo','cawanganbidder'));
|
|
return view('pembida.statusserahanbypembida', compact('arraysms', 'arraysls', 'listwinner', 'lelong', 'cawanganbidder'));
|
|
}
|
|
|
|
public function semakanBillplz(Request $request, BillplzService $billplzService)
|
|
{
|
|
$date = $request->input('date') ?? now()->toDateString();
|
|
|
|
try {
|
|
$dateObj = Carbon::createFromFormat('Y-m-d', $date);
|
|
} catch (\Exception $e) {
|
|
return back()->with('error', 'Tarikh tidak sah. Guna format YYYY-MM-DD.');
|
|
}
|
|
|
|
$date = $dateObj->toDateString();
|
|
|
|
$allPendingResits = DB::table('resit as r')
|
|
->join('payment as p', 'p.resit_id', '=', 'r.id')
|
|
->join(DB::raw('(
|
|
SELECT user_id, total_payment, MIN(id) AS min_id
|
|
FROM payment
|
|
GROUP BY user_id, total_payment
|
|
) as unique_payment'), 'p.id', '=', 'unique_payment.min_id')
|
|
->join('users as u', 'p.user_id', '=', 'u.id')
|
|
->join('cawangan as c', 'p.kodcaw', '=', 'c.caw_code') // JOIN ikut kodcaw
|
|
// Elakkan resit yang ada CDM payment pada hari yang sama
|
|
->whereNotExists(function ($query) use ($date) {
|
|
$query->select(DB::raw(1))
|
|
->from('resit as r2')
|
|
->join('payment as p2', 'p2.resit_id', '=', 'r2.id')
|
|
->whereRaw('p2.user_id = p.user_id')
|
|
->whereRaw('p2.total_payment = p.total_payment')
|
|
->whereDate('r2.created_at', $date)
|
|
->where('r2.billplz_id', 'LIKE', '%CDM%');
|
|
})
|
|
->whereNull('r.status')
|
|
->where('p.status', 0)
|
|
->whereNotNull('r.billplz_id')
|
|
->where('r.billplz_id', 'NOT LIKE', '%CDM%')
|
|
->whereDate('r.created_at', $date)
|
|
->select(
|
|
'r.*',
|
|
'p.id as payment_id',
|
|
'p.total_payment',
|
|
'p.user_id',
|
|
'u.name as payer_name',
|
|
'c.caw_name as cawangan_nama' // Tambah nama cawangan
|
|
)
|
|
->distinct()
|
|
->get();
|
|
|
|
// Kumpul mengikut billplz_id dan user_id
|
|
$groupedResitsUnpaid = $allPendingResits
|
|
->groupBy('billplz_id') // Group mengikut billplz_id
|
|
->map(function ($items) {
|
|
return (object) [
|
|
'billplz_id' => $items->first()->billplz_id,
|
|
'jumlah_bayaran' => $items->sum('total_payment'),
|
|
'payer_name' => $items->first()->payer_name,
|
|
'cawangan_nama' => $items->first()->cawangan_nama,
|
|
'resit_id' => $items->first()->id,
|
|
'created_at' => $items->first()->created_at,
|
|
'user_id' => $items->first()->user_id,
|
|
];
|
|
})
|
|
->values(); // Reset index
|
|
|
|
$billplzWithCdmResits = DB::table('resit as r')
|
|
->join('payment as p', 'p.resit_id', '=', 'r.id')
|
|
->join(DB::raw('(
|
|
SELECT user_id, total_payment, MIN(id) AS min_id
|
|
FROM payment
|
|
GROUP BY user_id, total_payment
|
|
) as unique_payment'), 'p.id', '=', 'unique_payment.min_id')
|
|
->join('users as u', 'p.user_id', '=', 'u.id')
|
|
->join('cawangan as c', 'p.kodcaw', '=', 'c.caw_code')
|
|
->whereNull('r.status')
|
|
->where('p.status', 0)
|
|
->whereNotNull('r.billplz_id')
|
|
->where('r.billplz_id', 'NOT LIKE', '%CDM%')
|
|
->whereDate('r.created_at', $date)
|
|
->whereExists(function ($query) use ($date) {
|
|
$query->select(DB::raw(1))
|
|
->from('resit as r2')
|
|
->join('payment as p2', 'p2.resit_id', '=', 'r2.id')
|
|
->join('users as u2', 'p2.user_id', '=', 'u2.id')
|
|
->whereRaw('u2.name = u.name') // banding nama
|
|
->whereRaw('p2.total_payment = p.total_payment') // dan jumlah
|
|
->whereDate('r2.created_at', $date)
|
|
->where('r2.billplz_id', 'LIKE', '%CDM%');
|
|
})
|
|
->select('r.*', 'p.id as payment_id', 'p.total_payment', 'u.name as payer_name', 'c.caw_name as cawangan_nama')
|
|
->distinct()
|
|
->get();
|
|
|
|
$groupedResits = $billplzWithCdmResits
|
|
->groupBy('billplz_id')
|
|
->map(function ($items) {
|
|
return (object) [
|
|
'billplz_id' => $items->first()->billplz_id,
|
|
'jumlah_bayaran' => $items->sum('total_payment'),
|
|
'payer_name' => $items->first()->payer_name,
|
|
'cawangan_nama' => $items->first()->cawangan_nama,
|
|
'resit_id' => $items->first()->id,
|
|
'created_at' => $items->first()->created_at,
|
|
'user_id' => $items->first()->user_id,
|
|
];
|
|
})->values();
|
|
|
|
// Semak status Billplz untuk setiap resit
|
|
$paidResits = collect();
|
|
$unpaidResits = collect();
|
|
$processingResits = collect();
|
|
|
|
foreach ($allPendingResits as $resit) {
|
|
$billData = $billplzService->testGetBill($resit->billplz_id);
|
|
|
|
$isPaid = isset($billData['paid']) && $billData['paid'] === true;
|
|
$isProcessing = isset($billData['state']) && in_array($billData['state'], ['pending', 'processing']) && isset($billData['paid_at']);
|
|
|
|
if ($isPaid) {
|
|
$resit->paid_at = $billData['paid_at'] ?? now();
|
|
$paidResits->push($resit);
|
|
} elseif ($isProcessing) {
|
|
$resit->paid_at = $billData['paid_at'];
|
|
$resit->state = $billData['state'];
|
|
$processingResits->push($resit);
|
|
} else {
|
|
$unpaidResits->push($resit);
|
|
}
|
|
}
|
|
|
|
return view('pembida.semakanbillplz', compact(
|
|
'paidResits',
|
|
'unpaidResits',
|
|
'billplzWithCdmResits',
|
|
'processingResits',
|
|
'groupedResits',
|
|
'groupedResitsUnpaid',
|
|
'date'
|
|
));
|
|
}
|
|
|
|
public function prosesBillplz(Request $request)
|
|
{
|
|
$data = [
|
|
'billplz' => [
|
|
'id' => $request->billplz_id,
|
|
'resit_id' => $request->resit_id,
|
|
'paid' => 'true',
|
|
'paid_at' => $request->paid_at ?? now()->toDateTimeString(),
|
|
],
|
|
];
|
|
|
|
$apiController = app(ApiController::class);
|
|
$apiController->processPaidResit($data);
|
|
|
|
return redirect()->back()->with('success', 'Resit telah diproses.');
|
|
}
|
|
}
|