Files
lelong/app/Http/Controllers/LelongController.php
T
2022-02-27 14:13:38 +08:00

687 lines
26 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 PDF;
use App\Models\User;
use App\Models\Cawangan;
use App\Models\JenisEmas;
use App\Models\JenisKarat;
use App\Models\Simulasi;
use App\Models\SimulasiBid;
use App\Models\SimulasiBidMarhun;
use App\Models\SimKarat;
use App\Models\SimKarat_temp;
use App\Models\CawanganSimulasi;
use App\Models\Lelong;
use App\Models\CawanganLelong;
use App\Models\LelongBid;
use App\Models\LelongBidder;
use App\Models\LelongBidMarhun;
use App\Models\LelKarat;
use App\Models\LelKarat_temp;
use App\Models\Resit;
use Carbon\Carbon;
class LelongController 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()
{
$lelong = Lelong::all();
return view('lelong.senarailelong',compact('lelong'));
}
public function show($id)
{
$lelong_id = $id;
$lelong = Lelong::where('id','=',$id)->first();
$cawanganlel = CawanganLelong::where('lelong_id','=',$id)->get();
$lelkarat = LelKarat::where('lelong_id','=',$id)->get();
$jeniskarat = JenisKarat::all();
$arraydata = [];
$arraycaw = [];
$data = [];
$total_marhun = 0;
$total_berat = 0;
$total_nmarhun = 0;
$total_pinjaman = 0;
$total_upah = 0;
$total_hargaasas = 0;
$total_cazlelong = 0;
$total_rugilelong = 0;
$total_bakilelong = 0;
$total24Kgb = 0;
$total24K = 0;
$total23k = 0;
$total22K = 0;
$total21K = 0;
$total20K = 0;
$total18Kp = 0;
$total18K = 0;
$total14Kp = 0;
$total14K = 0;
$total9K = 0;
foreach($cawanganlel as $cawlel)
{
$cawangan = Cawangan::where('id','=',$cawlel->caw_id)->first();
$databid = LelongBid::where('caw_id','=',$cawlel->caw_id)->where('lelong_id','=',$id)->get();
$packet = 0;
$berat = 0;
$nilai_marhun = 0;
$pinjaman =0;
$upah = 0;
$hargaasas = 0;
$cajlelong = 0;
$rugilelong = 0;
$bakilelong = 0;
foreach($databid as $bid)
{
$marhun = LelongBidMarhun::where('lelongbid_id','=',$bid->id)->get();
$berat = $berat + $bid->berat;
$nilai_marhun = $nilai_marhun + ($marhun->sum('n_marhun'));
$pinjaman =$pinjaman + $bid->pinjaman;
$upah = $upah + $bid->upah;
$hargaasas = $hargaasas + $bid->hargaasas;
$cajlelong = $cajlelong + $bid->cajlelong;
if($bid->baki > 0)
{
$bakilelong = $bakilelong + $bid->baki;
}
else
{
$rugilelong = $rugilelong - $bid->baki;
}
$total24Kgb += LelongBidMarhun::where('lelongbid_id','=',$bid->id)
->where('karat','=','24.0Kgb')
->sum('berat');
$total24K += LelongBidMarhun::where('lelongbid_id','=',$bid->id)
->where('karat','=','24.0K')
->sum('berat');
$total23k += LelongBidMarhun::where('lelongbid_id','=',$bid->id)
->where('karat','=','23.0K')
->sum('berat');
$total22K += LelongBidMarhun::where('lelongbid_id','=',$bid->id)
->where('karat','=','22.0K')
->sum('berat');
$total21K += LelongBidMarhun::where('lelongbid_id','=',$bid->id)
->where('karat','=','21.0K')
->sum('berat');
$total20K += LelongBidMarhun::where('lelongbid_id','=',$bid->id)
->where('karat','=','20.0K')
->sum('berat');
$total18Kp += LelongBidMarhun::where('lelongbid_id','=',$bid->id)
->where('karat','=','18.0Kp')
->sum('berat');
$total18K += LelongBidMarhun::where('lelongbid_id','=',$bid->id)
->where('karat','=','18.0K')
->sum('berat');
$total14Kp += LelongBidMarhun::where('lelongbid_id','=',$bid->id)
->where('karat','=','14.0Kp')
->sum('berat');
$total14K += LelongBidMarhun::where('lelongbid_id','=',$bid->id)
->where('karat','=','14.0K')
->sum('berat');
$total9K += LelongBidMarhun::where('lelongbid_id','=',$bid->id)
->where('karat','=','9.0K')
->sum('berat');
}
array_push($arraycaw,[
'id_cawangan'=> $cawangan->id,
'cawangan'=>$cawangan->caw_name,
't_lelong'=>$lelong->tarikh_lelong,
'bil_marhun'=>sizeof($databid),
'berat'=>$berat,
'n_marhun'=>$nilai_marhun,
'pinjaman'=>$pinjaman,
'upah'=>0,
'hargaasas'=>$hargaasas,
'cajlelong'=>$cajlelong,
'rugilelong'=>$rugilelong,
'bakilelong'=>$bakilelong,
]);
$total_marhun = $total_marhun + sizeof($databid);
$total_berat = $total_berat + $berat;
$total_nmarhun = $total_nmarhun + $nilai_marhun;
$total_pinjaman = $total_pinjaman + $pinjaman;
$total_upah = $total_upah + 0;
$total_hargaasas = $total_hargaasas + $hargaasas;
$total_cazlelong = $total_cazlelong + $cajlelong;
$total_rugilelong = $total_rugilelong + $rugilelong;
$total_bakilelong = $total_bakilelong + $bakilelong;
}
return view('lelong.showlelong',compact(
'arraycaw',
'total_marhun',
'total_berat',
'total_nmarhun',
'total_pinjaman',
'total_upah',
'total_hargaasas',
'total_cazlelong',
'total_rugilelong',
'total_bakilelong',
'total24Kgb',
'total24K',
'total23k',
'total22K',
'total21K',
'total20K',
'total18Kp',
'total18K',
'total14Kp',
'total14K',
'total9K',
'lelkarat',
'lelong_id',
'jeniskarat'));
}
public function create($id)
{
$simulasi = Simulasi::where('id','=',$id)->first();
$cawangansim = CawanganSimulasi::where('simulasi_id','=',$id)->get();
$simkarat = SimKarat::where('simulasi_id','=',$id)->get();
$lelong = new Lelong();
$lelong->tarikh_lelong = $simulasi->tarikh_lelong;
$lelong->harga_emas_asas = $simulasi->harga_emas_asas;
$lelong->jbg = $simulasi->jbg;
$lelong->cajlelong = $simulasi->cajlelong;
$lelong->save();
foreach($simkarat as $simulasikarat)
{
$lelkarat = new LelKarat;
$lelkarat->lelong_id = $lelong->id;
$lelkarat->karat = $simulasikarat->karat;
$lelkarat->keterangan = $simulasikarat->keterangan;
$lelkarat->harga = $simulasikarat->harga;
$lelkarat->harga2 = $simulasikarat->harga2;
$lelkarat->save();
}
foreach($cawangansim as $caw)
{
$cawanganlel = CawanganLelong::where('caw_id','=',$caw->caw_id)->orderBy('id','desc')->first();
if($cawanganlel)
{
$batchno = $cawanganlel->batchlel+1;
}
else
{
$batchno = 1;
}
$caw_lelong = new CawanganLelong;
$caw_lelong->batchlel = $batchno;
$caw_lelong->lelong_id = $lelong->id;
$caw_lelong->caw_id = $caw->caw_id;
$caw_lelong->online = $caw->online;
$caw_lelong->lokasi = $caw->lokasi;
$caw_lelong->save();
$datasimbid = SimulasiBid::where('caw_id','=',$caw->caw_id)->get();
foreach ($datasimbid as $simulasibid ) {
$lelongbid = new LelongBid;
$lelongbid->lelong_id = $lelong->id;
$lelongbid->caw_id = $simulasibid->caw_id;
$lelongbid->kodcaw =$simulasibid->kodcaw;
$lelongbid->norujukan =$simulasibid->norujukan;
$lelongbid->t_lelong =$simulasibid->t_lelong;
$lelongbid->hargaasas =$simulasibid->hargaasas;
$lelongbid->hargajual =$simulasibid->hargajual;
$lelongbid->t_jual =$simulasibid->t_jual;
$lelongbid->nopembeli =$simulasibid->nopembeli;
$lelongbid->jbg =$simulasibid->jbg;
$lelongbid->kadarupah =$simulasibid->kadarupah;
$lelongbid->upahsimpan =$simulasibid->upahsimpan;
$lelongbid->ansuran =$simulasibid->ansuran;
$lelongbid->nilaimarhun =$simulasibid->nilaimarhun;
$lelongbid->pinjaman =$simulasibid->pinjaman;
$lelongbid->bakiupah =$simulasibid->bakiupah;
$lelongbid->cajlain =$simulasibid->cajlain;
$lelongbid->cajlelong =$simulasibid->cajlelong;
$lelongbid->baki =$simulasibid->baki;
$lelongbid->berat =$simulasibid->berat;
$lelongbid->marhun =$simulasibid->marhun;
$lelongbid->gst_hj =$simulasibid->gst_hj;
$lelongbid->gst_cl =$simulasibid->gst_cl;
$lelongbid->percent =$simulasibid->percent;
$lelongbid->status_jual =$simulasibid->status_jual;
$lelongbid->status_payment =$simulasibid->status_payment;
$lelongbid->mora_upah =$simulasibid->mora_upah;
$lelongbid->save();
$simulasibidmarhun = SimulasiBidMarhun::where('simulasibid_id','=',$simulasibid->id)->get();
foreach($simulasibidmarhun as $simbidmarhun)
{
$lelongbidmarhun = new LelongBidMarhun;
$lelongbidmarhun->lelongbid_id = $lelongbid->id;
$lelongbidmarhun->bil = $simbidmarhun->bil;
$lelongbidmarhun->marhun = $simbidmarhun->marhun;
$lelongbidmarhun->nota = $simbidmarhun->nota;
$lelongbidmarhun->karat = $simbidmarhun->karat;
$lelongbidmarhun->berat = $simbidmarhun->berat;
$lelongbidmarhun->harga = $simbidmarhun->harga;
$lelongbidmarhun->n_marhun = $simbidmarhun->n_marhun;
$lelongbidmarhun->hargaasas = $simbidmarhun->hargaasas;
$lelongbidmarhun->save();
}
}
}
return redirect()->route('analisa.senaraisimulasi')
->with('success','Create Lelong Berjaya');
}
public function exportnotis($id)
{
$currentdate = Carbon::now();
$currentdate = $currentdate->toDateString();
$lelong = Lelong::where('id','=',$id)->first();
$lelongbid = LelongBid::where('lelong_id','=',$lelong->id)->get();
// return view('pdf.notislelong',compact('currentdate','lelongbid')); //page for editing
$pdf = PDF::loadView('pdf.notislelong',compact('currentdate','lelongbid'));
return $pdf->download('Notis Lelong.pdf');
}
public function delete($id)
{
$lelong = Lelong::where('id','=',$id)->first();
// dd($role);
$lelong->delete();
return redirect()->route('lelong.senarailelong')
->with('success','Padam Lelong Berjaya');
}
public function start($id)
{
$currentdate = Carbon::now();
$currenttime = $currentdate->toTimeString();
$endtime = $currentdate->addHours(2);
$lelong = Lelong::where('id','=',$id)->first();
$lelong->masamula_lelong = $currenttime;
$lelong->masatamat_lelong = $endtime->toTimeString();
$lelong->sts_lelong = 1; //start lelong
$lelong->save();
return redirect()->route('lelong.senarailelong')
->with('success','Lelongan bermula');
}
public function refresh($id)
{
$lelong = Lelong::where('id','=',$id)->first();
$lelong->masakemaskini_data = '2021-12-20 04:51:50';
$lelong->save();
return redirect()->route('lelong.senarailelong')
->with('success','Kemaskini Berjaya');
}
public function kemaskini(Request $request)
{
$lelkarat = lelKarat::where('lelong_id','=',$request->idlelong)->get();
foreach($lelkarat as $karat) //save old harga asas
{
$lelkarat_temp = new LelKarat_temp;
$lelkarat_temp->lelong_id = $request->idlelong;
$lelkarat_temp->karat = $karat->karat;
$lelkarat_temp->keterangan = $karat->keterangan;
$lelkarat_temp->harga = $karat->harga;
$lelkarat_temp->harga2 = $karat->harga2;
$lelkarat_temp->save();
}
foreach($lelkarat as $index=>$karat) //update harga asas
{
$karat->karat = $karat->karat;
$karat->keterangan = $karat->keterangan;
$karat->harga = $request->harga[$index];
$karat->harga2 = $request->harga2[$index];
$karat->save();
}
//update marhun
$lelongbid = LelongBid::where('lelong_id','=',$request->idlelong)->get();
foreach($lelongbid as $bid)
{
$sumhargaasas = 0;
$lelongbidmarhun = LelongBidMarhun::where('lelongbid_id','=',$bid->id)->get();
foreach($lelongbidmarhun as $marhun)
{
$lelkarat = LelKarat::where('lelong_id','=',$bid->lelong_id)->get();
// dd($simkarat);
foreach($lelkarat as $karat)
{
if($karat->karat == $marhun->karat)
{
$val = round($marhun->berat * $karat->harga);
$sumhargaasas = $sumhargaasas + $val;
$marhun->harga = $karat->harga;
$marhun->n_marhun = $marhun->berat * $karat->harga;
$marhun->hargaasas = floatval(number_format($val,2));
$marhun->save();
}
}
}
$bid->hargaasas = $sumhargaasas;
$bid->baki = $sumhargaasas-$bid->pinjaman - $bid->bakiupah - $bid->cajlelong;
$bid->save();
}
return redirect()->route('lelong.show',$request->idlelong)
->with('success','Kemaskini Berjaya');
}
public function janapemenang($id){
$current = Carbon::now();
$current = new Carbon();
$day = $current->day;
$month = $current->month;
$year = $current->format('y');
$lelong = Lelong::where('id','=',$id)->first();
$lelongbid = LelongBid::where('lelong_id','=',$id)->get();
foreach($lelongbid as $bid)
{
$highestprice = LelongBidder::where('lelongbid_id','=',$bid->id)->orderByRaw('lelongbidder.hargabida DESC' )->get();
if($highestprice)
{
foreach($highestprice as $price){
$bidders = LelongBidder::where('hargabida','=',$price->hargabida)->MIN('lelongbidder.masa_bidaan' )->get();
$count = 0;
foreach($bidders as $bidder)
{
$count = $count + 1;
if($count == 1)
{
$pemenang = LelongBidder::where('id','=',$bidder->id)
->first();
$pemenang->status_bidder = 1;
$pemenang->save();
$updatebid = LelongBid::where('id','=',$bid->id)->first();
$updatebid->hargajual = $bidder->hargabida;
$updatebid->nopembeli = $bidder->user_id;
$updatebid->status_jual = 1;
$updatebid->save();
$previous_siri = Resit::orderBy('id','desc')->first();
$checkdata = Resit::where('user_id', $bidder->user_id)
->where('lelong_id', $id)
->first();
if(!$checkdata){
if($previous_siri){
$nosiri = $previous_siri->id + 1;
}else{
$nosiri = 1;
}
$reference_no = 'LPKB' . $day . $month . $year . sprintf("%08d", $nosiri);;
$resit = new Resit;
$resit->user_id = $bidder->user_id;
$resit->lelong_id = $id;
$resit->reference_no = $reference_no;
$resit->billplz_id = '';
$resit->total_payment = '0.00';
$resit->resit_type = 2; // 1 = fee , 2 = bid
$resit->save();
}
}
else
{
$kalah = LelongBidder::where('id','=',$bidder->id)
->first();
$kalah->status_bidder = 0;
$kalah->save();
}
}
}
}
else
{ //xlaku
}
}
$lelong->sts_lelong = 3; //siap jana pemenang
$lelong->save();
// $currentdate = Carbon::now();
// $currentdate = $currentdate->toDateString();
// $lelongbidder = LelongBidder::join('users', 'lelongbidder.user_id', '=', 'users.id')
// ->select(
// 'users.name',
// 'users.nokp',
// 'users.notelbimbit',
// 'lelongbidder.lelongbid_id',
// 'lelongbidder.masa_bidaan',
// 'lelongbidder.hargabida',
// 'lelongbidder.status_bidder'
// )
// ->where('lelongbid_id', '=', $request->id)
// ->orderByRaw('lelongbidder.masa_bidaan ASC, lelongbidder.hargabida DESC' )
// ->first();
// // update table lelongbid status_jual = 1, t_jual current
// $updatelelong = LelongBidder::where('status_bidder', '=', $lelongbidder['status_bidder'])
// ->where('hargabida', '=', $lelongbidder['hargabida'])
// ->where('masa_bidaan', '=', $lelongbidder['masa_bidaan'])
// ->update(array('status_bidder' => 1));
// // update table lelongbid status_jual = 1, t_jual current
// // $updatelelong = LelongBid::join('lelongbidder', 'lelongbid.id', '=', 'lelongbidder.lelongbid_id')
// // ->update(array(
// // 'lelongbid.status_jual' => 1,
// // 'lelongbid.t_jual' => $currentdate
// // ));
// return view('lelong.janapemenang',compact('lelongbidder'));
return redirect()->route('lelong.senarailelong')
->with('success','Selesai menjana pemenang');
}
public function stop($id)
{
$currentdate = Carbon::now();
$currenttime = $currentdate->toTimeString();
$lelong = Lelong::where('id','=',$id)->first();
$lelong->masatamat_lelong = $currenttime;
$lelong->sts_lelong = 2; //stop lelong
$lelong->save();
return redirect()->route('lelong.senarailelong')
->with('success','Lelongan berhenti');
}
public function senarailelongtaklaku(Request $request){
$user = Auth::user();
$senarai = CawanganLelong::join('lelong', 'cawangan_lelong.lelong_id', '=', 'lelong.id')
->join('cawangan','cawangan_lelong.caw_id', '=', 'cawangan.id')
->where('cawangan.caw_code', $user->kodcaw)
->get();
return view('lelong.senarailelongtaklaku',compact('senarai'));
}
public function lelongtaklaku($lelong_id){
$lelongtaklaku = LelongBid::join('cawangan', 'lelongbid.kodcaw', '=', 'cawangan.caw_code')
->where('status_jual', 0)
->where('lelongbid.lelong_id', $lelong_id)
->whereNull('t_jual')
->select(
'lelongbid.t_lelong',
'lelongbid.kodcaw',
'cawangan.caw_name',
'lelongbid.pinjaman',
'lelongbid.berat',
'lelongbid.nilaimarhun',
'lelongbid.hargaasas',
'lelongbid.upahsimpan',
'lelongbid.cajlelong',
'lelongbid.baki',
'lelongbid.status_jual',
)
->get();
foreach($lelongtaklaku as $index1=>$suratlelongtaklaku){
$suratlelongtaklaku = LelongBid::join('lelong', 'lelongbid.lelong_id', '=', 'lelong.id')
->where('lelongbid.lelong_id', $lelong_id)
->whereNull('t_jual')
->get();
$lelongtaklaku[$index1]['suratlelongtaklaku'] = sizeof($suratlelongtaklaku);
}
return view('lelong.lelongtaklaku',compact('lelongtaklaku'));
}
public function senaraipemenang($lelong_id){
$listwinner = LelongBidder::join('lelongbid', 'lelongbidder.lelongbid_id', '=', 'lelongbid.id')
->where('lelongbidder.status_bidder', 1)
->where('lelongbid.lelong_id', $lelong_id)
->select('lelongbidder.user_id'
)
->groupBy('lelongbidder.user_id')
->get()->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)
->get();
$listwinner[$index1]['details'] = $userdetails;
$listwinner[$index1]['total_surat'] = sizeof($SAGWin);
$listwinner[$index1]['totalBid'] = $SAGWin->sum('hargabida');
}
return view('lelong.senaraipemenang',compact('listwinner','lelong_id'));
}
public function senaraisagpemenang($user_id, $lelong_id){
$senaraisag = LelongBid::join('lelongbidder', 'lelongbid.id', '=', 'lelongbidder.lelongbid_id')
->where('lelongbid.lelong_id', $lelong_id)
->where('lelongbidder.user_id', $user_id)
->get();
return view('lelong.senaraisagpemenang', compact('senaraisag', 'user_id', 'lelong_id'));
}
public function senaraimarhun($lelongid, $cawid){
// $marhun = LelongBid::->get();
$marhuns = LelongBid::join('cawangan', 'lelongbid.caw_id', '=', 'cawangan.id')
->where('lelong_id','=',$lelongid)->where('caw_id','=',$cawid)
->select(
'lelongbid.t_lelong',
'lelongbid.kodcaw',
'cawangan.caw_name',
'lelongbid.norujukan',
'lelongbid.pinjaman',
'lelongbid.berat',
'lelongbid.nilaimarhun',
'lelongbid.hargaasas',
'lelongbid.upahsimpan',
'lelongbid.cajlelong',
'lelongbid.baki',
'lelongbid.status_jual',
)
->get();
return view('lelong.senaraimarhun',compact('marhuns','lelongid','cawid'));
}
public function deletemarhun(Request $request){
dd($request->checkboxdata);
$data = $request->checkboxdata;
foreach($data as $index=>$norujukan)
{
$marhun = LelongBid::where('norujukan','=',$norujukan)->first();
$marhun->delete();
}
return redirect()->route('lelong.senaraimarhun',['lelongid'=>$request->lelongid,'cawid'=>$request->cawid])
->with('success','Delete Berjaya');
}
}