Files
lelong/app/Http/Controllers/HomeController.php
T
2023-03-26 12:16:11 +08:00

529 lines
21 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Spatie\Permission\Models\Role;
use Spatie\Permission\Models\Permission;
use Illuminate\Support\Facades\Auth;
use App\Models\Lelong;
use App\Models\CawanganLelong;
use App\Models\Pengesahan;
use Carbon\Carbon;
use App\Models\Cawangan;
use App\Models\LelongBid;
use App\Models\Payment;
use App\Models\User;
use App\Models\LelongBidder;
use Hash;
use DateTime;
class HomeController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
}
/**
* Show the application dashboard.
*
* @return \Illuminate\Contracts\Support\Renderable
*/
public function index()
{
// $user = Auth::user();
// $user->assignRole('admin');
$user = Auth::user();
$caw = Cawangan::where('caw_code','=',$user->kodcaw)->first();
$dateTime = date('Y-m-d');
// dd($dateTime);
$arrayinfo = [];
$semakCountArray = [];
// $lelong = Lelong::join('cawangan_lelong','lelong.id','=','cawangan_lelong.lelong_id')
// ->join('lelongbid', function($join)
// {
// $join->on('cawangan_lelong.lelong_id', '=', 'lelongbid.lelong_id')
// ->on('cawangan_lelong.caw_id', '=', 'lelongbid.caw_id');
// })
// ->where('lelong.tarikh_lelong', $dateTime)
// ->where('lelongbid.status_semak',1)
// ->select('lelong.fasa','cawangan_lelong.lelong_id','lelong.tarikh_lelong','lelong.masatamat_lelong','lelong.harga_emas_asas','lelong.jbg','lelong.cajlelong','lelong.sts_lelong')
// ->groupBy('cawangan_lelong.lelong_id','cawangan_lelong.caw_id')
// ->get()
// ->toArray();
$lelong = Lelong::join('cawangan_lelong','lelong.id','=','cawangan_lelong.lelong_id')
->where('lelong.tarikh_lelong', '=', $dateTime)
->select(
'lelong.fasa',
'lelong.id AS lelong_id',
'lelong.tarikh_lelong',
'lelong.masatamat_lelong',
'lelong.harga_emas_asas',
'lelong.jbg',
'lelong.cajlelong',
'lelong.sts_lelong'
)
->groupBy('cawangan_lelong.lelong_id')
->get()->toArray();
//dd($lelong);
foreach($lelong as $info)
{
$detailsinfo = CawanganLelong::join('cawangan','cawangan_lelong.caw_id','=','cawangan.id')
->select('batchlel','lelong_id','cawangan_lelong.caw_id','cawangan.caw_name','cawangan.caw_code','status_online','cawangan_lelong.masamula_lelong','cawangan_lelong.masatamat_lelong')
->where('lelong_id',$info['lelong_id'])
->get()
->toArray();
foreach($detailsinfo as $det)
{
$cawsemak = LelongBid::where('status_semak', 0)
->where('lelong_id',$det['lelong_id'])
->where('caw_id',$det['caw_id'])
->get();
$semakCount = $cawsemak->count();
array_push($semakCountArray,$semakCount);
}
array_push($arrayinfo,['info'=>$info, 'detailsinfo'=>$detailsinfo]);
// dd($arrayinfo);
}//dd($detailsinfo);
$arrayinfomutu = [];
//HOME KELULUSAN MUTU MARHUN
$lelongmutu = pengesahan::join('lelong','lelong.id','=','pengesahan.lelong_id')
->join('lelongbid','lelongbid.norujukan','=','pengesahan.norujukan')
// ->where('sts_lelong', 0)
->where('lelongbid.kodcaw', $user->kodcaw)
->whereIn('pengesahan.status_ubah', [1,2,3,4,5,7,8,9,10])
->where('disahkan_oleh','=', NULL)
->select('pengesahan.lelong_id','lelong.id','lelong.tarikh_lelong','lelong.masatamat_lelong','lelong.harga_emas_asas','lelong.jbg','lelong.cajlelong','sts_lelong')
// ->groupBy('pengesahan.lelong_id')
->distinct()
->get()
->toArray();
// dd($lelong);
foreach($lelongmutu as $infomutu)
{
$detailsinfo = CawanganLelong::join('cawangan','cawangan_lelong.caw_id','=','cawangan.id')
->where('cawangan.caw_code', $user->kodcaw)
->where('lelong_id',$infomutu['lelong_id'])
->get()
->toArray();
array_push($arrayinfomutu,['info'=>$infomutu, 'detailsinfo'=>$detailsinfo]);
}
$all_lelong = Lelong::select('id', 'tarikh_lelong')->where('sts_lelong', 0)->get()->keyBy('id');
foreach ($all_lelong as $data) {
$data->tarikh_lelong = DateTime::createFromFormat('Y-m-d', $data->tarikh_lelong);
$data->tarikh_lelong = $data->tarikh_lelong->format('d-m-Y');
}
if ($caw <> NULL) { //staf cwgn
$sag = LelongBid::where('status_semak', 0) //belum disemak
->where('kodcaw', $caw['caw_code'])
->get();
$sag_by_lelong_id = $sag->groupBy('lelong_id');
foreach ($sag_by_lelong_id as $index => $lelong) {
if ($all_lelong[$index]); {
$all_lelong[$index]['sag_belum_semak'] = $lelong->count();
}
}
} else { //operasi,jurulelong
$sag = LelongBid::where('status_semak', 0) //belum disemak
->get();
}
//paparan pemenang lelongan harini
$arrayinfomenang = [];
$listwinnermenang = [];
$lelongmenang = 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)
->where('tarikh_lelong', '=', $dateTime)
->get()
->toArray();
// dd($lelongmenang);
foreach($lelongmenang 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();
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();
if ($listwinner) {
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 => $sag1) {
$detailspayment = null;
if ($sag1['payment_id'] != null) {
$detailspayment = Payment::where('id', $sag1['payment_id'])->first();
$total_payment = $total_payment + $detailspayment->total_payment;
} else {
$total_payment = '0.00';
}
}
$listwinner[$index]['details'] = $userdetails;
$listwinner[$index]['total_surat'] = sizeof($SAGWin);
$listwinner[$index]['totalBid'] = $SAGWin->sum('hargabida');
$listwinner[$index]['totalPay'] = $total_payment;
$listwinner[$index]['jenisbayaran'] = $detailspayment;
}
$detailsinfo[$index1]['nama'] = "";
$detailsinfo[$index1]['listwinner'] = $listwinner;
}
}
array_push($arrayinfomenang,['detail'=>$details, 'detailsinfo'=>$detailsinfo, 'listwinner'=>$listwinner]);
//array_push($arrayinfomenang,['detail'=>$details, 'detailsinfo'=>$detailsinfo]);
}
//end paparan pemenang lelongan harini
//paparan untuk account
$arrayinfoaccount = [];
$listwinner = [];
// $dateTimedummy = date('2022-10-23');
$senarai = Lelong::join('cawangan_lelong','lelong.id','=','cawangan_lelong.lelong_id')
->select('lelong_id','tarikh_lelong','lelong.fasa','sts_lelong')
->distinct()
->orderBy('lelong_id')
->where('lelong.sts_lelong', 3)
->where('tarikh_lelong', '=', $dateTime)
->get()
->toArray();
// dd($senarai);
foreach($senarai as $details)
{
// dd($details['lelong_id']);
$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();
// dd($detailsinfo);
foreach($detailsinfo as $index1=>$details1)
{
// dd($details1['caw_code']);
$listwinner = Payment::join('lelongbid', 'payment.kodcaw', '=', 'lelongbid.kodcaw')
->join('lelongbidder', 'payment.id', '=', 'lelongbidder.payment_id')
->where('lelongbidder.status_bidder', 1)
->where('lelongbid.lelong_id', $details1['lelong_id'])
->where('payment.kodcaw', $details1['caw_code'])
// ->where('lelongbidder.status_payment', 2)
->where('payment.status', 2)
->whereNull('payment.disahkan_pada')
->where('payment.status_payment_opt', 2)
->select('lelongbidder.user_id', 'payment.user_id')
->groupBy('lelongbidder.user_id', 'payment.user_id')
->get();
// dd($listwinner);
foreach($listwinner as $index=>$listwin)
{
$namawinner = User::where('id', $listwin['user_id'])
->first();
$total_payment = 0;
$userdetails = User::where('id', $listwin['user_id'])->first();
$SAGWin = LelongBidder::join('lelongbid', 'lelongbidder.lelongbid_id', '=', 'lelongbid.id')
->where('lelongbid.nopembeli', $listwin['user_id'])
->where('lelongbid.kodcaw', $listwin['kodcaw'])
->where('lelongbidder.status_bidder', 1)
->where('lelongbid.lelong_id', $listwin['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]['jenisbayaran'] = $detailspayment ;
}
// dd($namawinner);
// $listwinner[$index]['namawinner'] = sizeof($namawinner);
$listwinner[$index]['details'] = $userdetails;
$listwinner[$index]['nama'] = $userdetails['name'];
$listwinner[$index]['caw_code'] = $details1['caw_code'];
$listwinner[$index]['totalPay'] = $total_payment;
$detailsinfo[$index1]['nama'] = $userdetails;
}
// $detailsinfo[$index1]['nama'] = $namawinner['name'];
$detailsinfo[$index1]['listwinner'] = $listwinner;
// dd($listwinner[$index]['nama']);
}
array_push($arrayinfoaccount,['detail'=>$details, 'detailsinfo'=>$detailsinfo, 'listwinner'=>$listwinner]);
}
$arrayinfoaccountcdm = [];
$listwinnercdm = [];
// $dateTimedummy = date('2022-12-14');
$senaraicdm = Lelong::join('cawangan_lelong','lelong.id','=','cawangan_lelong.lelong_id')
->select('lelong_id','tarikh_lelong','lelong.fasa','sts_lelong')
->distinct()
->orderBy('lelong_id')
->where('lelong.sts_lelong', 3)
->where('tarikh_lelong', '=', $dateTime)
->get()
->toArray();
// dd($senarai);
foreach($senaraicdm as $detailscdm)
{
// dd($details['lelong_id']);
$detailsinfocdm = 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',$detailscdm['lelong_id'])
->distinct()
->orderBy('lelong_id')
->get();
// dd($detailsinfo);
foreach($detailsinfocdm as $index1=>$details1cdm)
{
// dd($details1['caw_code']);
$listwinnercdm = Payment::join('lelongbid', 'payment.kodcaw', '=', 'lelongbid.kodcaw')
->join('lelongbidder', 'payment.id', '=', 'lelongbidder.payment_id')
->where('lelongbidder.status_bidder', 1)
->where('lelongbid.lelong_id', $details1cdm['lelong_id'])
->where('payment.kodcaw', $details1cdm['caw_code'])
// ->where('lelongbidder.status_payment', 2)
->where('payment.status', 2)
->whereNull('payment.disahkan_pada')
->where('payment.status_payment_opt', 3)
// ->orWhere(function ($query) {
// $query->where('payment.status_payment_opt', 3);
// })
->select('lelongbidder.user_id', 'payment.user_id')
->groupBy('lelongbidder.user_id', 'payment.user_id')
->get();
// dd($listwinner);
foreach($listwinnercdm as $index=>$listwincdm)
{
$namawinnercdm = User::where('id', $listwincdm['user_id'])
->first();
$total_paymentcdm = 0;
$userdetailscdm = User::where('id', $listwincdm['user_id'])->first();
$SAGWincdm = LelongBidder::join('lelongbid', 'lelongbidder.lelongbid_id', '=', 'lelongbid.id')
->where('lelongbid.nopembeli', $listwincdm['user_id'])
->where('lelongbid.kodcaw', $listwincdm['kodcaw'])
->where('lelongbidder.status_bidder', 1)
->where('lelongbid.lelong_id', $listwincdm['lelong_id'])
->get();
foreach($SAGWincdm as $index2=>$sagcdm)
{
// dd($detailspayment);
$detailspaymentcdm = null;
if($sagcdm['payment_id'] != null)
{
$detailspaymentcdm = Payment::where('id', $sagcdm['payment_id'])->first();
$total_paymentcdm = $total_payment + $detailspaymentcdm->total_payment;
// dd($total_payment);
}else
{
$total_paymentcdm = '0.00';
}
$listwinnercdm[$index]['jenisbayaran'] = $detailspaymentcdm ;
}
// dd($namawinner);
// $listwinner[$index]['namawinner'] = sizeof($namawinner);
$listwinnercdm[$index]['details'] = $userdetailscdm;
$listwinnercdm[$index]['nama'] = $userdetailscdm['name'];
$listwinnercdm[$index]['caw_code'] = $details1cdm['caw_code'];
$listwinnercdm[$index]['totalPay'] = $total_paymentcdm;
$detailsinfocdm[$index1]['nama'] = $userdetailscdm;
}
// $detailsinfo[$index1]['nama'] = $namawinner['name'];
$detailsinfocdm[$index1]['listwinner'] = $listwinnercdm;
// dd($listwinner[$index]['nama']);
}
array_push($arrayinfoaccountcdm,['detailcdm'=>$detailscdm, 'detailsinfocdm'=>$detailsinfocdm, 'listwinnercdm'=>$listwinnercdm]);
}
//endpaparan untuk account page
return view('home',compact('all_lelong','lelongmutu', 'arrayinfomutu','arrayinfo','sag','semakCountArray','arrayinfomenang','arrayinfoaccount','arrayinfoaccountcdm'));
}
public function about()
{
// $user = Auth::user();
// $user->assignRole('admin');
return view('about');
}
public function senarailelongubahmutu()
{
$arrayinfo = [];
$user = Auth::user();
// dd($user->kodcaw);
$lelong = pengesahan::join('lelong','lelong.id','=','pengesahan.lelong_id')
->whereIn('pengesahan.status_ubah', [1,2,3,4,5])
->select('pengesahan.lelong_id','lelong.id','lelong.tarikh_lelong','lelong.masatamat_lelong','lelong.harga_emas_asas','lelong.jbg','lelong.cajlelong','sts_lelong')
// ->groupBy('pengesahan.lelong_id')
->distinct()
->get()
->toArray();
foreach($lelong as $info)
{
$detailsinfo = CawanganLelong::join('cawangan','cawangan_lelong.caw_id','=','cawangan.id')
->where('lelong_id',$info['lelong_id'])
->get()
->toArray();
array_push($arrayinfo,['info'=>$info, 'detailsinfo'=>$detailsinfo]);
}
return view('home',compact('lelong', 'arrayinfo'));
}
public function editprofile()
{
// $user = Auth::user();
// $user->assignRole('admin');
return view('profil');
}
public function profileUpdate(Request $request){
//validation rules
$request->validate([
'name' =>'required|min:4|string|max:255',
'username' =>'required|min:4|string|max:255',
'email'=>'required|email|string|max:255'
]);
$user =Auth::user();
$user->name = $request['name'];
$user->email = $request['email'];
$user->save();
return back()->with('message','Profil Telah Kemaskini');
}
public function tukarkatalaluan()
{
// $user = Auth::user();
// $user->assignRole('admin');
return view('tukarkatalaluan');
}
public function tukarkatalaluanupdate(Request $request){
//validation rules
$request->validate([
'name' =>'required|min:4|string|max:255',
'username' =>'required|min:4|string|max:255',
'email'=>'required|email|string|max:255'
]);
$user =Auth::user();
$user->name = $request['name'];
$user->email = $request['email'];
$user->save();
return back()->with('message','Profil Telah Kemaskini');
}
public function showChangePasswordGet() {
return view('tukarkatalaluan');
}
public function changePasswordPost(Request $request) {
if (!(Hash::check($request->get('current-password'), Auth::user()->password))) {
// The passwords matches
return redirect()->back()->with("error","Katalaluan Lama Tidak Sama Dengan katalaluan.");
}
if(strcmp($request->get('current-password'), $request->get('new-password')) == 0){
// Current password and new password same
return redirect()->back()->with("error","Katalaluan Baru Tidak Boleh Sama Dengan Katalaluan Lama.");
}
$validatedData = $request->validate([
'current-password' => 'required',
'new-password' => 'required|string|min:8|confirmed',
]);
//Change Password
$user = Auth::user();
$user->password = bcrypt($request->get('new-password'));
$user->save();
return redirect()->back()->with("success","Katalaluan Berjaya Dikemaskini!");
}
}