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.'); } }