Files
lelong/app/Http/Controllers/Mobile/LelongMobileController.php
T
2024-11-03 21:40:42 +08:00

1737 lines
62 KiB
PHP

<?php
namespace App\Http\Controllers\Mobile;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Lelong;
use App\Models\LelongBid;
use App\Models\LelongBidder;
use App\Models\LelongBidMarhun;
use App\Models\LelKarat;
use App\Models\User;
use App\Models\Payment;
use App\Models\Cart;
use Carbon\Carbon;
use App\Models\Cawangan;
use App\Models\CawanganLelong;
use App\Models\FileMarhun;
use App\Models\Resit;
use App\Models\FileResit;
use App\Models\Invoice;
use App\Models\JenisEmas;
use App\Services\MarhunPhotoService;
use App\Services\ResitPhotoService;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Storage;
use PDF;
class LelongMobileController extends Controller
{
public function getlelongdetails(Request $request){
$currentdate = Carbon::now();
$currentdate = $currentdate->toDateString();
// $arrayLelong = [];
$lelong = Lelong::where('tarikh_lelong','=',$currentdate)
->where('sts_lelong','=',1)
->get()->toArray();
if($lelong)
{
foreach($lelong as $index1=>$lel)
{
$lelongbid = LelongBid::whereIn('lelong_id',$lelong)
->get()->toArray();
$lelong[$index1]['lelongbid'] = $lelongbid;
foreach($lelongbid as $index2=>$lelbidmarhun){
$cawangan = Cawangan::where('id','=',$lelbidmarhun['caw_id'])->first()->toArray();
// $id = lelongbid::first();
$lelongbidmarhun = LelongBidMarhun::where('lelongbid_id', $lelbidmarhun['id'])
->get()->toArray();
$lelong[$index1]['lelongbid'][$index2]['lelongbidmarhun'] = $lelongbidmarhun;
$lelong[$index1]['lelongbid'][$index2]['cawangan'] = $cawangan;
}
}
}
else
{
$lelong[0]['lelongbid'] = [];
}
return response()->json($lelong);
}
public function getListKarat()
{
$activeLelong = Lelong::where('sts_lelong', '=', 1)->first();
if (isset($activeLelong)) {
$getKarat = LelKarat::where('lelong_id', '=' ,$activeLelong['id'])->whereNotIn('karat', ['18.0Kp', '14.0Kp'])->get();
$date_convert = strtotime($getKarat[0]['updated_at']);
$updatedDateTime = date("d-m-Y h:i A", $date_convert);
return response()->json([
'success' => true,
'karat' => $getKarat,
'update_time' => $updatedDateTime
], 201);
} else {
return response()->json([
'success' => false,
], 201);
}
}
public function bidderSelectBidItem(Request $request){
// $feepayment = Payment::join('resit', 'payment.resit_id','=','resit.id')
// ->where('payment.user_id',$request->user_id)
// ->where('payment.lelong_id', '=', $request->lelong_id)
// ->where('resit.resit_type',1)
// ->where('resit.status','PAID')->first();
// // dd($feepayment);
// if($feepayment != null){
$user = User::where('id', '=', $request->user_id)
->first();
$carts = Cart::join('lelongbid', 'carts.lelongbid_id', '=', 'lelongbid.id')
// ->join('lelong', 'lelongbid.lelong_id', '=', 'lelong.id')
// ->where('lelong.sts_lelong','=',1)
->where('carts.user_id', $user->id)
->select('lelongbid.id as lelongbid_id',
'lelongbid.t_lelong',
'lelongbid.nilaimarhun',
'lelongbid.cajlelong',
'carts.hargabida',
'carts.id as cart_id')
->get();
// dd($carts);
// dd($selectBid[0]->hargabida);
$currentdate = Carbon::now()->toDateTimeString();
foreach($carts as $cart)
{
$lelongBidder = new LelongBidder();
$lelongBidder->nama_bidder = $request->name;
$lelongBidder->user_id = $user->id;
$lelongBidder->notelbimbit = $user->notelbimbit;
$lelongBidder->hargabida = $cart->hargabida;
$lelongBidder->lelongbid_id = $cart->lelongbid_id;
$lelongBidder->nilaimarhun = $cart->nilaimarhun;
$lelongBidder->cajlelong = $cart->cajlelong;
$lelongBidder->masa_bidaan = $currentdate;
if($lelongBidder->save())
{
$delincart = Cart::where('id',$cart->cart_id)->first();
$delincart->delete();
}
}
$response = [
'success' => "success",
'message' => "Bidder berjaya disimpan"
];
return response()->json($response, 201);
// }
// else if($feepayment == null){
// $response = [
// 'success' => "error",
// 'message' => "Something wrong with the server"
// ];
// return response()->json($response, 201);
// }
}
public function listBidItem(Request $request){
$lelongbidder = LelongBidder::where('user_id','=', $request->user_id)
->get()->toArray();
foreach($lelongbidder as $index1=>$lelbid)
{
$lelongbid = LelongBid::whereIn('id',$lelongbidder)
->get()->toArray();
$lelongbidder[$index1]['lelongbid'] = $lelongbid;
}
return response()->json($lelongbidder);
}
public function bidRecord(Request $request)
{
$lelongbidder = LelongBidder::join('lelongbid', 'lelongbidder.lelongbid_id', '=', 'lelongbid.id')
->where('user_id', '=', $request->user_id)
->where('lelong_id', '=', $request->lelong_id)
->get()->toArray();
foreach ($lelongbidder as $index => $data) {
$cawangan = Cawangan::where('caw_code', '=', $data['kodcaw'])->select('caw_name')->first();
$lelongbidder[$index]['caw_name'] = $cawangan['caw_name'];
}
return response()->json($lelongbidder);
}
public function bidRecordByCawangan($userId)
{
$currentdate = Carbon::now();
$currentdate = $currentdate->toDateString();
$lelong = Lelong::where('tarikh_lelong', '=', $currentdate)->select('id', 'masatamat_lelong')->first();
if ($lelong) {
$date_convert = strtotime($lelong->masatamat_lelong);
$lelong['masatamat_lelong'] = date("h:i A", $date_convert);
$groupCawangan = LelongBidder::join('lelongbid', 'lelongbidder.lelongbid_id', '=', 'lelongbid.id')
->join('cawangan', 'lelongbid.caw_id', '=', 'cawangan.id')
->where('user_id', '=', $userId)
->where('lelong_id', $lelong->id)
->select('caw_id', 'caw_name')
->groupBy('caw_id')
->get()->toArray();
foreach ($groupCawangan as $index => $cawangan) {
$lelongBidder = LelongBidder::join('lelongbid', 'lelongbidder.lelongbid_id', '=', 'lelongbid.id')
->where('user_id', $userId)
->where('caw_id', $cawangan)
->where('lelong_id', $lelong->id)
->get()->toArray();
$total_hargabida = 0;
$total_berat = 0;
foreach ($lelongBidder as $index1 => $data) {
$fileMarhun = FileMarhun::where('lelongbid_id', $data['id'])->where('photo_type', 1)->get();
if ($fileMarhun->isNotEmpty()) {
$lelongBidder[$index1]['filemarhun'] = $fileMarhun;
}
$date_convert = strtotime($data['masa_bidaan']);
$lelongBidder[$index1]['masa_bidaan'] = date("h:i A", $date_convert);
$total_hargabida += $data['hargabida'];
$total_berat += $data['berat'];
$marhun = LelongBidMarhun::where('lelongbid_id', '=', $data['id'])->get()->toArray();
$lelongBidder[$index1]['lelongbidmarhun'] = $marhun;
}
$groupCawangan[$index]['total_berat'] = number_format((float)$total_berat, 2, '.', '');
$groupCawangan[$index]['total_bidaan'] = number_format((float)$total_hargabida, 2, '.', '');
$groupCawangan[$index]['lelongbid'] = $lelongBidder;
}
}
if ($lelong && $groupCawangan) {
return response()->json([
'success' => true,
'lelongbidder' => $groupCawangan,
'lelong' => $lelong,
], 201);
} else {
return response()->json([
'success' => false,
'message' => 'Empty Data'
], 201);
}
}
// please do not delete this changes
// backup web pembida
public function listBidItemWeb($user_id, Request $request){
$lelongbidder = LelongBidder::join('lelongbid', 'lelongbidder.lelongbid_id', '=', 'lelongbid.id')
->where('user_id','=', $request->user_id)
->select('lelongbid.lelong_id', 'lelongbid.t_lelong')
->groupBy('lelongbid.lelong_id', 'lelongbid.t_lelong')
->get()->toArray();
foreach($lelongbidder as $index1=>$lelbid)
{
$lelongbid = LelongBid::join('lelongbidder', 'lelongbid.id', '=', 'lelongbidder.lelongbid_id')
->where('lelong_id', $lelbid['lelong_id'])
->where('lelongbidder.user_id', $request->user_id)
->get()->toArray();
$lelongbidder[$index1]['lelongbid']=$lelongbid;
}
return response()->json($lelongbidder);
}
public function historyFeePay (Request $request)
{
$checkpay = Payment::join('resit', 'payment.resit_id', '=', 'resit.id')
->where('resit.user_id', $request->user_id)
->where('payment.lelong_id', $request->lelong_id)
->where('payment.status', 1)
->where('resit.resit_type', 1)
->select('resit.id as resit id',
'resit.resit_type',
'resit.status as resit_status',
'resit.paid_at',
'payment.id as payment_id',
'payment.lelong_id',
'payment.status as payment_status'
)
->first();
if($checkpay)
{
$response =
[
"message" => "Success",
"status" => 1
];
}
else
{
$response =
[
"message" => "Sila buat pembayaran yuran terlebih dahulu",
"status" => 2
];
}
return response()->json($response, 201) ;
}
public function searchLelByCaw(Request $request){
$currentdate = Carbon::now();
$currentdate = $currentdate->toDateString();
// $arrayLelong = [];
$lelong = Lelong::join('cawangan_lelong', 'lelong.id', '=', 'cawangan_lelong.lelong_id')
->where('tarikh_lelong','=',$currentdate)
->where('caw_id', '=', $request->caw_id)
->where('status_online', '=', 1)
->get()->toArray();
foreach($lelong as $index1=>$lel)
{
$lelongbid = LelongBid::where('lelong_id',$lel['lelong_id'])
->where('caw_id', '=', $request->caw_id)
->get()->toArray();
$lelong[$index1]['lelongbid'] = $lelongbid;
foreach($lelongbid as $index2=>$lelbidmarhun){
// $cawangan = Cawangan::where('id','=',$lelbidmarhun['caw_id'])->first()->toArray();
// $id = lelongbid::first();
$lelongbidmarhun = LelongBidMarhun::where('lelongbid_id', $lelbidmarhun['id'])
->get()->toArray();
$lelong[$index1]['lelongbid'][$index2]['lelongbidmarhun'] = $lelongbidmarhun;
// $lelong[$index1]['lelongbid'][$index2]['cawangan'] = $cawangan;
}
}
if($lelong) {
return response()->json(
['success' => true, 'message' => $lelong], 201
);
}
else {
return response()->json(
['success' => false, 'message' => 'Empty Data'], 201
);
}
}
public function listSuratLelong(Request $request)
{
$currentdate = Carbon::now();
$currentdate = $currentdate->toDateString();
$lelong = Lelong::join('cawangan_lelong', 'lelong.id', '=', 'cawangan_lelong.lelong_id')
->where('tarikh_lelong', '=', $currentdate)
->where('caw_id', '=', $request->caw_id)
->where('status_online', '=', 1)
->first();
if ($lelong) {
$lelongbid = LelongBid::where('lelong_id', $lelong['lelong_id'])
->where('caw_id', '=', $request->caw_id)
->where('status_jual', '=', 0)
->select('id', 'kodcaw')
->get();
$pluckedLelongBid = $lelongbid->pluck('id')->toArray();
$carts = Cart::where('user_id', $request->user_id)
->select('lelongbid_id')
->get();
$pluckedCarts = $carts->pluck('lelongbid_id')->toArray();
$lelongbidder = LelongBidder::join('lelongbid', 'lelongbidder.lelongbid_id', "=", 'lelongbid.id')
->where('lelong_id', $request->lelong_id)
->where('user_id', $request->user_id)
->select('lelongbid_id')
->get();
$pluckedLelongBidder = $lelongbidder->pluck('lelongbid_id')->toArray();
$arrayDiff1 = array_diff($pluckedLelongBid, $pluckedCarts);
$arrayDiff2 = array_diff($arrayDiff1, $pluckedLelongBidder);
$listLelong = [];
foreach ($arrayDiff2 as $index => $data) {
$lelongbid = LelongBid::where('id', $data)->first()->toArray();
$lelongbidmarhun = LelongBidMarhun::where('lelongbid_id', $lelongbid['id'])->get()->toArray();
foreach ($lelongbidmarhun as $index1 => $marhun) {
$marhunDesc = JenisEmas::where('marhun', $marhun['marhun'])->first()->toArray();
$lelongbidmarhun[$index1]['marhun_desc'] = $marhunDesc['descpt'];
}
$lelongbid['lelongbidmarhun'] = $lelongbidmarhun;
$fileMarhun = FileMarhun::where('lelongbid_id', $lelongbid['id'])->where('photo_type', 1)->get();
// dd($fileMarhun);
// foreach ($fileMarhun as $index) {
// dd($index);
// // $eachmarhun = FileMarhun::where('lelongbidmarhun_id', '=', $index['id'])->first();
// // if (isset($eachmarhun)) {
// // $index->eachmarhun_filename = route('marhun.showphotomarhun', ['norujukan_sag' => $lelongbid['norujukan'], 'filemarhun_id' => $index->id]);
// // $test = route('marhun.showphotomarhun', ['norujukan_sag' => $lelongbid['norujukan'], 'filemarhun_id' => $index->id]);
// $marhunPhotoService = new MarhunPhotoService();
// $marhun_photo = $marhunPhotoService->get($lelongbid['norujukan'], $index);
// dd($marhun_photo);
// return $marhun_photo;
// }
// // dd($fileMarhun);
if ($fileMarhun->isNotEmpty()) {
$lelongbid['filemarhun'] = $fileMarhun;
}
array_push($listLelong, $lelongbid);
}
$lelong['lelongbid'] = $listLelong;
return response()->json(
['success' => true, 'message' => $lelong],
201
);
} else {
return response()->json(
['success' => false, 'message' => 'Empty Data'],
201
);
}
}
public function listSuratLelong2(Request $request)
{
$currentdate = Carbon::now();
$currentdate = $currentdate->toDateString();
$lelong = Lelong::join('cawangan_lelong', 'lelong.id', '=', 'cawangan_lelong.lelong_id')
->where('tarikh_lelong', '=', $currentdate)
->where('caw_id', '=', $request->caw_id)
->where('status_online', '=', 1)
->select('lelong.id', 'lelong.tarikh_lelong', 'lelong.sts_lelong', 'cawangan_lelong.caw_id')
->first();
$listLelong = [];
if ($lelong) {
$jenis_emas = JenisEmas::select('marhun', 'descpt')->get()->keyBy('marhun');
$cart_all = Cart::join('lelongbid', 'carts.lelongbid_id', "=", 'lelongbid.id')
->where('user_id', $request->user_id)
->where('caw_id', '=', $request->caw_id)
->pluck('lelongbid_id');
$lelongbidder_all = LelongBidder::join('lelongbid', 'lelongbidder.lelongbid_id', "=", 'lelongbid.id')
->where('lelong_id', $lelong->id)
->where('user_id', $request->user_id)
->where('caw_id', '=', $request->caw_id)
->pluck('lelongbid_id');
$combine_carts_lelongbidder = $cart_all->concat($lelongbidder_all);
$lelongbid_all = LelongBid::with('lelongBidMarhun', 'fileMarhunMainMany')
->where('lelong_id', $lelong->id)
->where('caw_id', $request->caw_id)
->where('status_jual', 0)
->whereNotIn('id', $combine_carts_lelongbidder)
->get();
foreach ($lelongbid_all as $lelongbid) {
foreach ($lelongbid->lelongBidMarhun as $lel_bid_marhun) {
if ($jenis_emas[$lel_bid_marhun->marhun]) {
$lel_bid_marhun['marhun_desc'] = $jenis_emas[$lel_bid_marhun->marhun]->descpt;
}
}
$lelongbid->lelongbidmarhun = $lelongbid->lelongBidMarhun;
unset($lelongbid->lelongBidMarhun);
if ($lelongbid->fileMarhunMainMany->isNotEmpty()) {
$lelongbid->filemarhun = $lelongbid->fileMarhunMainMany;
}
unset($lelongbid->fileMarhunMainMany);
array_push($listLelong, $lelongbid);
}
$lelong['lelongbid'] = $listLelong;
return response()->json(
['success' => true, 'message' => $lelong],201
);
} else {
return response()->json(
['success' => false, 'message' => 'Empty Data'],201
);
}
}
public function photoMarhun(Request $request)
{
$fileMarhun = FileMarhun::find($request->filemarhun_id);
$marhunPhotoService = new MarhunPhotoService();
$marhun_photo = $marhunPhotoService->get($request->norujukan, $fileMarhun);
return base64_encode($marhun_photo);
}
public function lelongOnline()
{
$lelong = Lelong::where('sts_lelong', '=', 1)->first();
if ($lelong) {
$date_convert = strtotime($lelong->masatamat_lelong);
$lelong->masatamat_lelong = date("h:i A", $date_convert);
return response()->json(['success' => true, 'lelong' => $lelong]);
} else {
return response()->json(['success' => false,]);
}
}
public function itemInCart(Request $request)
{
$cart = Cart::where('user_id', $request->user_id)->count();
if ($cart) {
return response()->json(['success' => true, 'cart' => $cart]);
} else {
return response()->json(['success' => false,]);
}
}
public function searchLelongByCawangan(Request $request){
$currentdate = Carbon::now();
$currentdate = $currentdate->toDateString();
// $arrayLelong = [];
$lelong = Lelong::join('cawangan_lelong', 'lelong.id', '=', 'cawangan_lelong.lelong_id')
->where('tarikh_lelong','=',$currentdate)
->where('caw_id', '=', $request->caw_id)
->where('status_online', '=', 1)
->get()->toArray();
foreach($lelong as $index1 => $lel)
{
$lelongbid = LelongBid ::where('lelong_id', $lel['lelong_id'])
->where('caw_id', '=', $request->caw_id)
->get()->toArray();
$lelong[$index1]['lelongbid'] = $lelongbid;
// dd($lelong);
foreach($lelongbid as $index=>$lelbidmarhun){
// $cawangan = Cawangan::where('id','=',$lelbidmarhun['caw_id'])->first()->toArray();
// $id = lelongbid::first();
$lelongbidmarhun = LelongBidMarhun::where('lelongbid_id', $lelbidmarhun['id'])
->get()->toArray();
$lelong['lelongbid'][$index]['lelongbidmarhun'] = $lelongbidmarhun;
// $lelong[$index1]['lelongbid'][$index2]['cawangan'] = $cawangan;
// dd($lelong);
}
}
if($lelong) {
return response()->json(
['success' => true, 'message' => $lelong], 201
);
}
else {
return response()->json(
['success' => false, 'message' => 'Empty Data'], 201
);
}
}
public function bidresult($user_id)
{
$sag = LelongBidder::join('lelongbid', 'lelongbidder.lelongbid_id', '=', 'lelongbid.id')
->join('lelong', 'lelongbid.lelong_id', '=', 'lelong.id')
->where('lelongbidder.user_id',$user_id)
// ->where('lelongbid.lelong_id',$lelong_id)
->where('lelongbidder.status_bidder',1)
->whereNull('lelongbidder.status_payment')
->select(
'lelongbid.lelong_id',
'lelongbidder.user_id',
'lelongbidder.lelongbid_id',
'lelongbidder.hargabida',
'lelongbidder.status_payment',
'lelongbid.norujukan'
)
->get();
// dd($sag);
$data = [];
$total_hargabida = $sag->sum('hargabida');
array_push($data,[
'sag'=> $sag,
'total_hargabida'=> $total_hargabida
]);
// dd($winner);
return response()->json($data);
}
public function resultInCawangan(Request $request)
{
$user = User::find($request->user_id, ['name', 'nokp']);
$lelongbid = LelongBid::join('lelongbidder', 'lelongbid.id', '=', 'lelongbidder.lelongbid_id')
->where('lelongbid.lelong_id', $request->lelong_id)
->where('lelongbidder.user_id', $request->user_id)
->where('lelongbidder.status_bidder', 1)
->where('lelongbid.kodcaw', $request->kodcaw)
->select(
'lelongbid.id AS id',
'lelongbidder.id AS bidder_id',
'lelongbid.norujukan',
'lelongbid.kodcaw',
'lelongbidder.hargabida',
'lelongbid.marhun',
'lelongbid.berat',
)
->get();
foreach ($lelongbid as $index => $data) {
$lelongbidmarhun = LelongBidMarhun::where('lelongbid_id', $data->id)->get();
foreach ($lelongbidmarhun as $index1 => $lelbidmarhun) {
$jenis_emas = JenisEmas::where('marhun', '=', $lelbidmarhun->marhun)->select('descpt')->first();
$lelongbidmarhun[$index1]['marhun_desc'] = $jenis_emas->descpt;
}
$lelongbid[$index]['lelongbidmarhun'] = $lelongbidmarhun->toArray();
}
// dd($lelongbid->toArray(), $user->toArray());
return response()->json([
'success' => true,
'user' => $user,
'lelongbid' => $lelongbid
]);
}
public function resultInCawangan2(Request $request)
{
$current = new Carbon();
$date_convert = strtotime($current);
$current_convert = date("d-m-Y h:i A", $date_convert);
$user = User::find($request->user_id, ['name', 'nokp', 'alamat', 'notelbimbit']);
$lelong = Lelong::find($request->lelong_id, ['id', 'tarikh_lelong']);
$date_convert = strtotime($lelong->tarikh_lelong);
$date_lelong_convert = date("d-m-Y", $date_convert);
$cawangan = Cawangan::where('caw_code', $request->kodcaw)->select('caw_name', 'alamat1', 'alamat2', 'notel', 'nofaks')->first();
$lelong_bid_all = LelongBid::with(['lelongBidMarhun:id,lelongbid_id,marhun,berat', 'lelongBidMarhun.jenisEmas:marhun,descpt'])
->join('lelongbidder', 'lelongbid.id', '=', 'lelongbidder.lelongbid_id')
->where('lelongbid.lelong_id', $request->lelong_id)
->where('lelongbidder.user_id', $request->user_id)
->where('lelongbidder.status_bidder', 1)
->where('lelongbid.kodcaw', $request->kodcaw)
->select(
'lelongbid.id AS id',
'lelongbidder.id AS bidder_id',
'lelongbid.norujukan',
'lelongbid.kodcaw',
'lelongbidder.hargabida',
'lelongbid.marhun',
'lelongbid.berat',
)
->get();
// return view('pdf.surathakkepemilikanbrg', compact('current_convert', 'date_lelong_convert', 'user', 'lelong_bid_all', 'cawangan'));
$pdf = PDF::loadView('pdf.surathakkepemilikanbrg', compact('current_convert', 'date_lelong_convert', 'user', 'lelong_bid_all', 'cawangan'))->setPaper('a4', 'potrait');
return $pdf->download('Penyata Bayaran.pdf');
}
public function downloadInvoice(Request $request)
{
$user = User::find($request->user_id, ['name', 'nokp']);
$pdf = PDF::loadView('pdf.penyatabayaranpembida')->setPaper('a4', 'potrait');
return $pdf->download('Penyata Bayaran.pdf');
return response()->json($user);
}
public function bidresults($user_id, $lelong_id)
{
$sag = LelongBid::join('lelongbidder', 'lelongbid.id', '=', 'lelongbidder.lelongbid_id')
->where('lelongbid.lelong_id', $lelong_id)
->where('lelongbidder.user_id', $user_id)
->where('lelongbidder.status_bidder', 1)
->select(
'lelongbid.kodcaw'
)
->groupBy('lelongbid.kodcaw')
->get();
$getTarikhLelong = Lelong::where('id', $lelong_id)->select('tarikh_lelong')->first();
$tarikhLelong = $getTarikhLelong->tarikh_lelong;
$tarikhLelong = strtotime($tarikhLelong);
$tarikhLelong = date("d-m-Y", $tarikhLelong);
$data = [];
foreach ($sag as $index1 => $kodcaw) {
$groupBycaw = LelongBid::join('lelongbidder', 'lelongbid.id', '=', 'lelongbidder.lelongbid_id')
->where('lelongbid.lelong_id', $lelong_id)
->where('lelongbidder.user_id', $user_id)
->where('lelongbidder.status_bidder', 1)
->where('lelongbid.kodcaw', $kodcaw->kodcaw)
->select(
'lelongbid.id AS id',
'lelongbidder.id AS bidder_id',
'lelongbid.norujukan AS norujukan',
'lelongbid.kodcaw AS kodcaw',
'lelongbidder.hargabida AS total_payment',
'lelongbid.marhun AS marhun',
'lelongbid.hargaasas',
'lelongbid.berat',
'lelongbidder.status_payment')
->get();
$getCawangan = Cawangan::where('caw_code', $kodcaw->kodcaw)
->select('caw_name', 'caw_code')
->first();
$namaCawangan = $getCawangan->caw_name;
$kodCawangan = $getCawangan->caw_code;
$status_payment_cawangan['status'] = 1;
$payment = Payment::where('norujukan', $groupBycaw[0]->norujukan)
->where(function ($query) {
$query->where('status', '=', 1)
->orWhere('status', '=', 2);
})
->first();
if ($payment != null) {
$checkPayMethod = Resit::find($payment->resit_id);
$date_convert = strtotime($checkPayMethod->created_at);
$checkPayMethod['pay_time'] = date("H:i:s", $date_convert);
$status_payment_cawangan['resit'] = $checkPayMethod->toArray();
if ($checkPayMethod->billplz_id == "") {
$status_payment_cawangan['payment_method'] = "TUNAI";
$status_payment_cawangan['payment_method_opt'] = 1;
} elseif (str_starts_with($checkPayMethod->billplz_id, 'CDM')) {
$status_payment_cawangan['payment_method'] = "CDM";
$status_payment_cawangan['payment_method_opt'] = 3;
$file_resit = FileResit::where('user_id', $user_id)->where('lelong_id', $lelong_id)->where('kodcaw', $kodCawangan)->get();
foreach($file_resit as $index => $resit)
{
$date_convert = strtotime($resit->created_at);
$updatedDateTime = date("H:i:s", $date_convert);
$file_resit[$index]['masa_upload'] = $updatedDateTime;
}
$status_payment_cawangan['file_resit'] = $file_resit;
} else {
$status_payment_cawangan['payment_method'] = "ONLINE";
$status_payment_cawangan['payment_method_opt'] = 2;
}
if ($payment->disahkan_pada == NULL) {
$status_payment_cawangan['status'] = 9; // status pending tunggu pengesahan
}
} else {
$status_payment_cawangan['status'] = null;
}
$total_hargabida = 0;
foreach ($groupBycaw as $index => $hargabida) {
$fileMarhun = FileMarhun::where('lelongbid_id', $hargabida->id)->where('photo_type', 1)->get();
if ($fileMarhun->isNotEmpty()) {
$groupBycaw[$index]['filemarhun'] = $fileMarhun;
}
$marhun = LelongBidMarhun::where('lelongbid_id', '=', $hargabida->id)->get()->toArray();
$groupBycaw[$index]['lelongbidmarhun'] = $marhun;
$totalbida = Lelongbidder::where('id', $hargabida->bidder_id)
->select('hargabida')
->first();
$groupBycaw[$index]['hargabida'] = number_format($totalbida['hargabida'], 2, '.', ',');
$total_hargabida = $total_hargabida + $totalbida['hargabida'];
}
$sag = $groupBycaw;
array_push($data, [
'kodcaw' => $kodCawangan,
'cawangan' => $namaCawangan,
'sag' => $sag,
'total_hargabida' => number_format($total_hargabida, 2, '.', ','),
'status_payment_cawangan' => $status_payment_cawangan
]);
}
$response = [
'success' => true,
'tarikh_lelong' => $tarikhLelong,
'data' => $data
];
return response()->json($response);
}
public function bidPayRemaining($user_id, $lelong_id)
{
$sag = LelongBid::join('lelongbidder', 'lelongbid.id', '=', 'lelongbidder.lelongbid_id')
->where('lelongbid.lelong_id', $lelong_id)
->where('lelongbidder.user_id', $user_id)
->where('lelongbidder.status_bidder', 1)
->whereNull('lelongbidder.status_payment')
->select(
'lelongbid.kodcaw'
)
->groupBy('lelongbid.kodcaw')
->get();
// dd($sag->toArray());
$getTarikhLelong = Lelong::where('id', $lelong_id)->select('tarikh_lelong')->first();
$tarikhLelong = $getTarikhLelong->tarikh_lelong;
$date_convert = strtotime($tarikhLelong);
$tarikhLelong = date("d-m-Y", $date_convert);
$data = [];
foreach ($sag as $index1 => $kodcaw) {
// dd($kodcaw->toArray());
$groupBycaw = LelongBid::join('lelongbidder', 'lelongbid.id', '=', 'lelongbidder.lelongbid_id')
->where('lelongbid.lelong_id', $lelong_id)
->where('lelongbidder.user_id', $user_id)
->where('lelongbidder.status_bidder', 1)
->whereNull('lelongbidder.status_payment')
->where('lelongbid.kodcaw', $kodcaw->kodcaw)
->select(
'lelongbidder.id AS id',
'lelongbid.id AS lelongbid_id',
'lelongbid.norujukan AS norujukan',
'lelongbid.kodcaw AS kodcaw',
'lelongbidder.hargabida AS total_payment',
'lelongbid.marhun AS marhun',
'lelongbidder.status_payment')
->get();
$getCawangan = Cawangan::where('caw_code', $kodcaw->kodcaw)
->select('caw_name', 'caw_code')
->first();
$namaCawangan = $getCawangan->caw_name;
$kodCawangan = $getCawangan->caw_code;
$sag = $groupBycaw;
$total_hargabida = 0;
foreach ($groupBycaw as $hargabida) {
$totalbida = Lelongbidder::where('id', $hargabida['id'])
->select('hargabida')
->first();
$total_hargabida = $total_hargabida + $totalbida['hargabida'];
}
array_push($data, [
'kodcaw' => $kodCawangan,
'cawangan' => $namaCawangan,
'sag' => $sag,
'total_hargabida' => number_format($total_hargabida, 2, '.', ',')
]);
}
$response = [
'success' => true,
'tarikh_lelong' => $tarikhLelong,
'data' => $data
];
return response()->json($response);
}
public function updatebiditem(Request $request)
{
// dd($request->norujukan->toArray());
// foreach($request->norujukan as $norujukan)
// {
// dd($norujukan);
// }
$currentdate = Carbon::now();
$currentdate = $currentdate->toDateTimeString();
$lelongbid = LelongBid::whereIn('norujukan',$request->norujukan)
->where('lelong_id',$request->lelong_id)
->get();
foreach($lelongbid as $bid)
{
$lelongbidder = LelongBidder::where('lelongbid_id',$bid->id)
->where('user_id',$request->user_id)->first();
$lelongbidder->status_payment =1;
$lelongbidder->payment_id = $request->paymentid;
$lelongbidder->save();
$lelongbid = LelongBid::where('id',$bid->id)->first();
$lelongbid->status_jual = 1;
$lelongbid->t_jual = $currentdate;
$lelongbid->hargajual = $lelongbidder->hargabida;
$lelongbid->save();
}
// $alllelongbidder = LelongBidder::join('lelongbid','lelongbidder.lelongbid_id','lelongbid.id')
// ->where('lelongbidder.user_id',$request->user_id)
// ->where('lelongbid.lelong_id',$request->lelong_id)
// ->where('lelongbidder.status_bidder',1)
// ->select('lelongbidder.hargabida')
// ->get();
// $resit = Resit::where('lelong_id',$request->lelong_id)
// ->where('user_id',$request->user_id)
// ->where('resit_type',2)
// ->first();
// if($resit->total_payment > $alllelongbidder->SUM('hargabida'))
// {
// $resit->status = 'PAID';
// $resit->paid_at = $currentdate;
// $resit->save();
// }
$response = [
'success' => "success",
'message' => "Bidaan berjaya dibayar"
];
return response()->json($response, 201);
}
public function history($user_id)
{
$lelongs_id = LelongBidder::join('lelongbid', 'lelongbidder.lelongbid_id', '=', 'lelongbid.id')
->where('lelongbidder.user_id',$user_id)->select('lelongbid.lelong_id')->groupBy('lelongbid.lelong_id')->get();
$arrayID = [];
foreach($lelongs_id as $lelong_id)
{
array_push($arrayID,$lelong_id);
}
$lelongs = Lelong::whereIn('id',$arrayID)->get()->toArray();
// dd($lelongs);
foreach($lelongs as $index1 => $lelong)
{
// dd($lelong['id']);
$datalelongbidder = LelongBidder::join('lelongbid', 'lelongbidder.lelongbid_id', '=', 'lelongbid.id')
->where('lelongbid.lelong_id',$lelong['id'])
->where('user_id',$user_id)
->where('status_bidder',1)->get();
$payment = Payment::join('resit', 'payment.resit_id', '=', 'resit.id')
->where('payment.lelong_id',$lelong['id'])
->where('payment.user_id',$user_id)
->where('resit.resit_type',2)
->first();
if($payment->status == 'PAID')
{
$status = 'Selesai';
}
else
{
$status = 'Belum Selesai';
}
$lelongs[$index1]['total'] = $datalelongbidder->sum('hargabida');
$lelongs[$index1]['status'] = $status;
$lelongs[$index1]['detail_sag'] = $datalelongbidder;
}
return response()->json($lelongs, 201);
}
public function listCawLelongToday()
{
$currentdate = Carbon::now();
$currentdate = $currentdate->toDateString();
$lelong = Lelong::join('cawangan_lelong', 'lelong.id', '=', 'cawangan_lelong.lelong_id')
->join('cawangan', 'cawangan_lelong.caw_id', '=', 'cawangan.id')
->where('tarikh_lelong', '=', $currentdate)
->select(
'lelong.id as lelong_id',
'lelong.tarikh_lelong',
'cawangan.caw_name',
'cawangan_lelong.caw_id',
'cawangan_lelong.masamula_lelong',
'cawangan_lelong.masatamat_lelong',
)
->groupBy('cawangan.caw_name')
->get();
foreach($lelong as $index => $data)
{
if($data['masamula_lelong'] != null)
{
$date_convert = strtotime($data['masamula_lelong']);
$lelong[$index]['masamula_lelong'] = date("h:i A", $date_convert);
$date_convert_2 = strtotime($data['masatamat_lelong']);
$lelong[$index]['masatamat_lelong'] = date("h:i A", $date_convert_2);
}
$lelong[$index]['caw_name'] = substr($data['caw_name'], 8);
}
if ($lelong->isNotEmpty()) {
return response()->json([
'success' => true,
'lelong' => $lelong,
]);
} else {
return response()->json([
'success' => false,
]);
}
}
public function listCawLelongTodayStarted()
{
$currentdate = Carbon::now();
$currentdate = $currentdate->toDateString();
$lelong = Lelong::join('cawangan_lelong', 'lelong.id', '=', 'cawangan_lelong.lelong_id')
->join('cawangan', 'cawangan_lelong.caw_id', '=', 'cawangan.id')
->where('tarikh_lelong', '=', $currentdate)
->where('cawangan_lelong.status_online', 1)
->select(
'lelong.id as lelong_id',
'lelong.tarikh_lelong',
'cawangan.caw_name',
'cawangan_lelong.caw_id',
'lelong.masamula_lelong',
'lelong.masatamat_lelong',
)
->get()->toArray();
// dd($lelong);
if ($lelong) {
return response()->json([
'success' => true,
'lelong' => $lelong
]);
} else {
return response()->json([
'success' => false,
]);
}
}
public function listCawLelongNext()
{
$currentdate = Carbon::now();
$currentdate = $currentdate->toDateString();
$lelongs = Lelong::join('cawangan_lelong', 'lelong.id', '=', 'cawangan_lelong.lelong_id')
->join('cawangan', 'cawangan_lelong.caw_id', '=', 'cawangan.id')
->where('tarikh_lelong', '>', $currentdate)
->select(
'lelong.id as lelong_id',
'lelong.tarikh_lelong',
'cawangan.caw_name',
'cawangan_lelong.caw_id',
'lelong.masamula_lelong',
'lelong.masatamat_lelong',
)
->orderBy('lelong.tarikh_lelong', 'ASC')
->get();
$lelongs = $lelongs->groupBy('tarikh_lelong');
$lelong = collect();
foreach ($lelongs as $index => $lel) {
$unique_caw = $lel->unique('caw_id');
foreach ($unique_caw as $lel_caw) {
$lelong->add($lel_caw);
}
}
foreach($lelong as $index => $data)
{
$date_convert = strtotime($data['tarikh_lelong']);
$lelong[$index]['tarikh_lelong'] = date("d-m-Y", $date_convert);
$lelong[$index]['caw_name'] = substr($data['caw_name'], 8);
}
if ($lelong) {
return response()->json([
'success' => true,
'lelong' => $lelong
]);
} else {
return response()->json([
'success' => false,
'message' => "Empty Data"
]);
}
}
public function bayarCdm(Request $request)
{
// dd($request->all());
$validator = Validator::make($request->all(), [
'lelong_id' => 'required|string',
'user_id' => 'required',
]);
if ($validator->fails()) {
$errors = [
'success' => "error",
'message' => $validator->errors()
];
return response($errors, 201);
}
$currentdate = Carbon::now();
$currentdate = $currentdate->toDateTimeString();
$user = Auth::user();
// $imageName = time().'.'.$request->resit->extension();
// $data = base64_encode($request->resit->get());
// $file_type = $request->resit->extension();
$resit = Resit::where('lelong_id', $request->lelong_id)
->where('user_id',$request->user_id)
->where('resit_type', 2)
->first();
$payment = new Payment;
$payment->user_id = $request->user_id;
$payment->lelong_id = $request->lelong_id;
$payment->kodcaw = $user->kodcaw;
$payment->status_payment_opt = 3;
$payment->status = 2;
$payment->remark = 'BAYARAN CDM';
$payment->resit_id = $resit->id;
$payment->total_payment = $request->total_payment;
$payment->diminta_pada = $currentdate;
$payment->diminta_oleh = $user->id;
$payment->save();
if($payment)
{
$images = $request->images;
foreach($images as $img)
{
$addfile = new FileResit;
$addfile->user_id = $request->user_id;
$addfile->payment_id = $payment->id;
$addfile->file_type = $img['file_type'];
$addfile->filename = $img['filename'];
$addfile->save();
}
}
$bid_id = $request->bid_id;
foreach($bid_id as $bid)
{
$eachbid = LelongBidder::join('lelongbid', 'lelongbidder.lelongbid_id', '=', 'lelongbid.id')
->join('users', 'lelongbidder.user_id', '=', 'users.id')
->where('lelongbidder.lelongbid_id', $bid['lelongbid_id'])
->select('lelongbidder.hargabida',
'lelongbid.hargaasas',
'lelongbid.norujukan',
'lelongbidder.lelongbid_id',
'lelongbidder.id as lelongbidder_id',
'lelongbid.lelong_id as lelong_id'
)
->first();
$updatelelbidbidder = LelongBidder::where('lelongbid_id', $bid['lelongbid_id'])
->where('user_id',$request->user_id)
->first();
$updatelelbidbidder->status_payment = 2;
$updatelelbidbidder->payment_id = $payment->id;
$updatelelbidbidder->save();
$eachbidupdate = LelongBid::where('id',$bid)->first();
$eachbidupdate->hargajual = $eachbid->hargabida;
$eachbidupdate->save();
}
if ($payment) {
return response()->json([
'success' => true,
'user' => $user,
'payment' => $payment,
'file_resit' => $images,
'updatelelbidbidder' => $updatelelbidbidder,
'eachbidupdate' => $eachbidupdate
]);
}
else {
return response()->json([
'success' => false,
'message' => "Muat naik bukti pembayaran tidak berjaya!"
]);
}
// return response($response, 201);
}
public function updateResit(Request $request)
{
$validator = Validator::make($request->all(), [
'lelong_id' => 'required|string',
'user_id' => 'required',
'payment_id' => 'required'
]);
if ($validator->fails()) {
$errors = [
'success' => "error",
'message' => $validator->errors()
];
return response($errors, 201);
}
$paymentexist = Payment::join('fileresit', 'payment.id', '=', 'fileresit.payment_id')
->where('payment.lelong_id', $request->lelong_id)
->where('payment.user_id', $request->user_id)
->first();
if($paymentexist)
{
$getpayment = Payment::join('fileresit', 'payment.id', '=', 'fileresit.payment_id')
->where('payment.lelong_id', $request->lelong_id)
->where('payment.user_id', $request->user_id)
->select('payment.id as payment_id',
'payment.lelong_id',
'payment.user_id',
'fileresit.id as fileresit_id',
'fileresit.file_type',
'fileresit.filename'
)
->first();
$images = $request->images;
foreach($images as $img)
{
$deletepayment = FileResit::where('payment_id', $request->payment_id)
->where('id', $img['fileresit_id'])
->delete();
$addfile = new FileResit;
$addfile->user_id = $request->user_id;
$addfile->payment_id = $request->payment_id;
$addfile->file_type = $img['file_type'];
$addfile->filename = $img['filename'];
$addfile->save();
}
}
if ($addfile) {
return response()->json([
'success' => true,
'payment' => $paymentexist,
'file_resit' => $images
]);
}
else {
return response()->json([
'success' => false,
'message' => "Kemaskini bukti pembayaran tidak berjaya!"
]);
}
}
public function getInvoiceId(Request $request) {
$invoice = Invoice::where('user_id', $request->user_id)->where('lelong_id', $request->lelong_id)->first();
$lelong = Lelong::find($request->lelong_id);
$date_convert = strtotime($lelong->tarikh_lelong);
$lelong->tarikh_lelong = date("d/m/Y", $date_convert);
if ($invoice) {
return response()->json([
'success' => true,
'invoice' => $invoice,
'lelong' => $lelong
]);
} else {
return response()->json([
'success' => false,
]);
}
}
public function resultLelong()
{
$user = Auth::user();
$current_date = Carbon::now()->toDateString();
$lelong = Lelong::join('lelongbid', 'lelong.id', '=', 'lelongbid.lelong_id')
->join('lelongbidder', 'lelongbid.id', '=', 'lelongbidder.lelongbid_id')
->where('lelongbidder.user_id', $user->id)
->where('status_bidder', 1)
->select('lelong.id', 'lelong.tarikh_lelong')
->groupBy('lelong.id')
->orderBy('lelong.id','desc')
->get();
foreach ($lelong as $index => $tarikhLelong) {
$jumlah = 0;
$status = 1;
$lelongbid = LelongBid::join('lelongbidder', 'lelongbid.id', 'lelongbidder.lelongbid_id')
->where('lelongbid.lelong_id', $tarikhLelong->id)
->where('lelongbidder.user_id', $user->id)
->where('status_bidder', 1)
->select('lelongbidder.hargabida', 'lelongbidder.status_payment')
->get();
foreach ($lelongbid as $data) {
$jumlah = $jumlah + $data->hargabida;
if ($data->status_payment == null) {
$status = null;
}
}
$date_convert = strtotime($tarikhLelong->tarikh_lelong);
$lelong[$index]['tarikh_lelong'] = date("d-m-Y", $date_convert);
$lelong[$index]['jumlah'] = number_format($jumlah, 2, '.', ',');
$lelong[$index]['status'] = $status;
}
if ($lelong->isNotEmpty()) {
return response()->json([
'success' => true,
'lelong' => $lelong,
]);
} else {
$current_lelong = Lelong::where('tarikh_lelong', $current_date)->where('sts_lelong', 3)->select('id', 'tarikh_lelong')->first();
if ($current_lelong != null) {
$lelong_bidder_user = LelongBidder::query()
->join('lelongbid', 'lelongbidder.lelongbid_id', 'lelongbid.id')
->where('user_id', $user->id)
->where('lelongbid.lelong_id', $current_lelong->id)
->select(
'lelongbidder.id AS lelongbidder_id',
'lelongbid.id AS lelongbid_id',
'nama_bidder',
'user_id',
'status_bidder'
)
->get();
if ($lelong_bidder_user->isNotEmpty()) {
$status_menang = 0; // kalah semua bidaan
foreach ($lelong_bidder_user as $lelong_bidder) {
if ($lelong_bidder->status_bidder == 1) {
$status_menang = 1; // menang sekurang-kurangnya satu bidaan
}
}
return response()->json([
'success' => false,
'status' => $status_menang,
'message' => 'Kalah semua bidaan.'
]);
}
}
return response()->json([
'success' => false, // tiada bidaan dibuat @ tiada lelong pada hari semasa
'message' => 'Tiada bidaan dibuat @ tiada lelong pada hari semasa.'
]);
}
}
public function resultStatus($userId, $lelongId)
{
// dd('hey');
$lelong = Lelong::join('lelongbid', 'lelong.id', '=', 'lelongbid.lelong_id')
->join('lelongbidder', 'lelongbid.id', '=', 'lelongbidder.lelongbid_id')
->where('lelongbidder.user_id', $userId)
->where('lelong.id', $lelongId)
->where('status_bidder', 1)
->get();
foreach ($lelong as $index) {
$status = true;
if ($index->status_payment == null || $index->status_payment == 0) {
$status = false;
}
}
if ($lelong) {
return response()->json([
'success' => true,
'statusMenang' => true,
'statusBayaran' => $status,
]);
} else {
return response()->json([
'success' => false,
'statusMenang' => false,
]);
}
}
public function listPhotoResit(Request $request)
{
$file_resit = FileResit::where('user_id', '=', $request->user_id)->where('lelong_id', '=', $request->lelong_id)->get();
if ($file_resit->isNotEmpty()) {
foreach($file_resit as $index => $resit)
{
$date_convert = strtotime($resit->created_at);
$updatedDateTime = date("d-m-Y H:i:s", $date_convert);
$file_resit[$index]['masa_upload'] = $updatedDateTime;
}
return response()->json([
'success' => true,
'file_resit' => $file_resit,
]);
} else {
return response()->json([
'success' => false,
]);
}
}
public function addPhotoResit(Request $request)
{
$file_type = $request->gambarResit->getClientOriginalExtension();
if(strtolower($file_type) != "jpg" && strtolower($file_type) != "jpeg" && strtolower($file_type) != "png")
{
return response()->json([
'success' => false,
'message1' => "Jenis gambar tidak sah",
'message2' => "Sila muat naik gambar dalam bentuk PNG atau JPG sahaja."
]);
}
$addfile = new FileResit();
$addfile->user_id = $request->user_id;
$addfile->lelong_id = $request->lelong_id;
$addfile->original_file_type = $file_type;
$addfile->kodcaw = $request->kodcaw;
$addfile->payment_id = 0;
$addfile->original_size = filesize($request->gambarResit);
$addfile->save();
$directory = "/{$request->user_id}/{$request->lelong_id}/";
$imageExtension = $file_type;
$resitImageFileName = $addfile->id;
Storage::disk('resit')->putFileAs($directory, $request->gambarResit, "${resitImageFileName}.${imageExtension}");
$stored_path = Storage::disk('resit')->path("{$directory}{$resitImageFileName}.${imageExtension}");
$resitPhotoService = new ResitPhotoService();
try {
$convertToWebP = $resitPhotoService->optimizeImageToWebP($stored_path, $directory, $resitImageFileName);
} catch (\Exception $e) {
return $e;
}
$compress_size = Storage::disk('resit')->getSize("{$directory}${resitImageFileName}.webp");
$addfile->update([
'file_type' => 'webp',
'compress_size' => $compress_size
]);
Storage::disk('resit')->delete("{$directory}${resitImageFileName}.${imageExtension}");
return response()->json(['success' => true]);
}
public function showPhotoResit(Request $request)
{
$fileResit = FileResit::find($request->fileresit_id);
$resitPhotoService = new ResitPhotoService();
$resit_photo = $resitPhotoService->get($fileResit->user_id, $fileResit);
return base64_encode($resit_photo);
}
public function deletePhotoResit(Request $request)
{
$deleteFile = FileResit::find($request->fileresit_id);
$directory = "/{$deleteFile->user_id}/{$deleteFile->lelong_id}/";
$imageExtension = $deleteFile->file_type;
$deleteFile_id = $deleteFile->id;
$resitImageFileName = "${deleteFile_id}.${imageExtension}";
Storage::disk('resit')->delete("{$directory}${resitImageFileName}");
$deleteFile->delete();
return response()->json(['success' => true]);
}
public function portalApi(Request $request)
{
$lelong = LelongBid::select('fasa', 't_lelong','hargajual','t_jual')
->where([['norujukan', $request->norujukan]])
->first();
if($lelong){
$givenDate = Carbon::createFromFormat('Y-m-d', $lelong->t_lelong);
$lastbayar = $givenDate->subDays(3);
$lelong['lastbayar'] = $lastbayar->toDateString();
}
return response()->json(['lelong' => $lelong]);
}
public function initializeCdmPayment(Request $request)
{
$current = Carbon::now();
$current = new Carbon();
$day = $current->day;
$month = $current->month;
$year = $current->format('y');
$original_file_type = strtolower($request->gambarResit->getClientOriginalExtension());
if($original_file_type != "jpg" && $original_file_type != "jpeg" && $original_file_type != "png")
{
return response()->json([
'success' => false,
'message1' => "Jenis gambar tidak sah",
'message2' => "Sila muat naik gambar dalam bentuk PNG atau JPG sahaja."
]);
}
$this->addPhotoResit($request);
$previous_siri = Resit::orderBy('id','desc')->first();
if($previous_siri){
$nosiri = $previous_siri->id + 1;
}else{
$nosiri = 1;
}
$reference_no = 'LPKB' . $day . $month . $year . sprintf("%08d", $nosiri);
$cdm_reference = 'CDM' . sprintf('%06d', $nosiri);
$add_resit = new Resit();
$add_resit->user_id = $request->user_id;
$add_resit->lelong_id = $request->lelong_id;
$add_resit->reference_no = $reference_no;
$add_resit->invoice_id = $request->invoice_id;
$add_resit->invoice_no = $request->invoice_no;
$add_resit->billplz_id = $cdm_reference;
$add_resit->total_payment = $request->total;
$add_resit->resit_type = 2;
$add_resit->save();
$selectedSag = json_decode($request->sag, true);
foreach ($selectedSag as $index) {
$add_payment = new Payment;
$add_payment->user_id = $request->user_id;
$add_payment->lelong_id = $request->lelong_id;
$add_payment->kodcaw = $index['kodcaw'];
$add_payment->lelongbid_id = $index['lelongbid_id'];
$add_payment->norujukan = $index['norujukan'];
$add_payment->total_payment = $index['total_payment'];
$add_payment->status_payment_opt = 3; //bayar secara CDM 3
$add_payment->status = 2; //paybidwin
$add_payment->remark = 'CDM';
$add_payment->resit_id = $add_resit->id;
$add_payment->save();
$updateTagBid = LelongBid::where('norujukan', $index['norujukan'])->first();
$updateTagBid->status_payment = 2;
$updateTagBid->save();
$updateTagBidder = LelongBidder::where('lelongbid_id', $updateTagBid->id)
->where('user_id', $request->user_id)->first();
$updateTagBidder->status_payment = 2;
$updateTagBidder->payment_id = $add_payment->id;
$updateTagBidder->save();
}
return response()->json(['success' => true]);
}
public function listLelong()
{
$lelong_all = Lelong::select('id', 'tarikh_lelong', 'fasa')->get();
foreach($lelong_all as $index => $lelong)
{
$date_convert = strtotime($lelong->tarikh_lelong);
$lelong_all[$index]['tarikh_lelong'] = date("d-m-Y", $date_convert);
}
return response()->json($lelong_all);
}
public function listLelongByCawangan(Request $request)
{
$cawangan = Cawangan::with('lelong')->find($request->caw_id);
$lelong_all = $cawangan->lelong;
foreach($lelong_all as $index => $lelong)
{
$date_convert = strtotime($lelong->tarikh_lelong);
$lelong_all[$index]['tarikh_lelong'] = date("d-m-Y", $date_convert);
$lelong_all[$index]['new_id'] = str_pad($lelong->id, 3, "0", STR_PAD_LEFT);
}
return response()->json($lelong_all);
}
public function listCawangan(Request $request)
{
$cawangan_all = CawanganLelong::join('cawangan','cawangan_lelong.caw_id','=','cawangan.id')
->where('lelong_id', $request->lelong_id)
->select('cawangan_lelong.caw_id', 'cawangan.caw_name')->get();
return response()->json($cawangan_all);
}
public function listLelongBid(Request $request)
{
$lelong_bid_all = LelongBid::with('fileMarhunMain')
->where('caw_id', $request->caw_id)
->where('lelong_id', $request->lelong_id)
->select(['id','norujukan', 'marhun', 'nilaimarhun', 'status_semak', 'berat', 'hargaasas'])
->get();
$belum_semak = $lelong_bid_all->where('status_semak', 0)->count();
return response()->json([
"jumlah_surat" => $lelong_bid_all->count(),
"belum_semak" => $belum_semak,
"lelong_bid" => $lelong_bid_all,
]);
}
public function showPhotoMarhun(Request $request)
{
$fileMarhun = FileMarhun::find($request->filemarhun_id, ['file_type']);
$directory = "/{$request->norujukan}/overall_photo/";
$imageExtension = $fileMarhun->file_type;
$marhunImageFileName = "overall.{$imageExtension}";
if (Storage::disk('marhun')->exists("{$directory}${marhunImageFileName}")) {
$marhun_photo = Storage::disk('marhun')->get("{$directory}${marhunImageFileName}");
return base64_encode($marhun_photo);
} else {
return 0;
}
}
public function checkAvailabilityFpxSession(Request $request)
{
$user = Auth::user();
$current_date_time = Carbon::now()->toDateTimeString();
$payment = Payment::query()
->where('user_id', $user->id)
->where('lelong_id', $request->lelong_id)
->where('kodcaw', $request->kodcaw)
->orderBy('id', 'DESC')
->select('resit_id')
->first();
if ($payment) {
$resit = Resit::query()
->where('id', $payment->resit_id)
->select('id', 'status', 'created_at')
->first();
$resit_date_time = $resit->created_at->toDateTimeString();
$resit_time = strtotime($resit_date_time);
$future_date = $resit_time + (60 * 2);
$end_session_date_time_formated = date("Y-m-d H:i:s", $future_date);
if ($resit->status == null && $end_session_date_time_formated > $current_date_time) {
return response()->json([
'status' => false,
'message' => 'Previous session is active! Please wait 2 minutes before start again.'
]);
} else {
return response()->json([
'status' => true,
'message' => 'None session active'
]);
}
} else {
return response()->json([
'status' => true,
'message' => 'None session active'
]);
}
}
}