diff --git a/app/Http/Controllers/AccountController.php b/app/Http/Controllers/AccountController.php index 6b942503..fca6d2a6 100644 --- a/app/Http/Controllers/AccountController.php +++ b/app/Http/Controllers/AccountController.php @@ -20,6 +20,11 @@ use App\Models\FileMarhun; use App\Services\MarhunPhotoService; use App\Models\Pengesahan; use App\Models\LelongBidMarhun; +use App\Models\LogUser; +use Illuminate\Support\Facades\DB; +use Illuminate\Support\Facades\Log; +use App\Jobs\WhatsappPengesahanPembida; +use App\Jobs\WhatsappTidakSahBayaran; use PDF; class AccountController extends Controller @@ -277,6 +282,7 @@ class AccountController extends Controller public function sahbayaronline(Request $request) { + // dd($request->all()); $currentdate = Carbon::now(); $currentdate = $currentdate->toDateTimeString(); @@ -285,32 +291,65 @@ class AccountController extends Controller $total_payment = 0; $senaraisag = $request->senarai_sag; + $user_notelbimbit = $request->notel_pembida; + $user_namapembida = $request->nama_pembida; + + + if($request->jenis_button == 'tidaksah'){ + //insert loguser + $loguser = new LogUser; + $loguser->user_id = $user->id; + $loguser->date = $currentdate; + $loguser->username = $user->username; + $loguser->nama_user = $user->name; + // $loguser->norujukan = $data['norujukan']; + $loguser->nota = $request->kodcaw.': '.$request->nama_pembida.' ('.$request->nokp_pembida.'): Bukti Bayaran Tidak Sah'; + $loguser->save(); + + WhatsappTidakSahBayaran::dispatch($user_namapembida); + + return redirect()->route('home')->with('failed','Pembayaran Tidak Sah'); + + + }elseif($request->jenis_button == 'sah'){ + foreach(json_decode($senaraisag) as $sag) + { + $payment = Payment::where('id', $sag->payment_id)->first(); + $payment->disahkan_oleh = $user->id; + $payment->disahkan_pada = $currentdate; + $payment->save(); - foreach(json_decode($senaraisag) as $sag) - { - $payment = Payment::where('id', $sag->payment_id)->first(); - $payment->disahkan_oleh = $user->id; - $payment->disahkan_pada = $currentdate; - $payment->save(); - - $total_payment = $total_payment + $payment->total_payment; + $total_payment = $total_payment + $payment->total_payment; - $eachbid = LelongBid::where('id',$sag->lelongbid_id)->first(); - $eachbid->status_payment = 1; - $eachbid->status_jual = 1; - $eachbid->status_semak = 1; - $eachbid->t_jual = $currentdate; - $eachbid->save(); + $eachbid = LelongBid::where('id',$sag->lelongbid_id)->first(); + $eachbid->status_payment = 1; + $eachbid->status_jual = 1; + $eachbid->status_semak = 1; + $eachbid->t_jual = $currentdate; + $eachbid->save(); - $bidder = LelongBidder::where('lelongbid_id', $sag->lelongbid_id) - ->where('payment_id', $sag->payment_id) - ->where('user_id', $sag->user_id) - ->first(); - $bidder->status_payment = 1; - $bidder->update(); + $bidder = LelongBidder::where('lelongbid_id', $sag->lelongbid_id) + ->where('payment_id', $sag->payment_id) + ->where('user_id', $sag->user_id) + ->first(); + $bidder->status_payment = 1; + $bidder->update(); + } + WhatsappPengesahanPembida::dispatch($user_notelbimbit,$user_namapembida); + + //insert loguser + $loguser = new LogUser; + $loguser->user_id = $user->id; + $loguser->date = $currentdate; + $loguser->username = $user->username; + $loguser->nama_user = $user->name; + // $loguser->norujukan = $data['norujukan']; + $loguser->nota = $request->kodcaw.': '.$request->nama_pembida.' ('.$request->nokp_pembida.'): Bukti Bayaran Telah Sah'; + $loguser->save(); + + + return redirect()->route('home')->with('success','Pembayaran Berjaya'); } - - return redirect()->route('home')->with('success','Pembayaran Berjaya'); } diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php index 2f80ec25..01052082 100644 --- a/app/Http/Controllers/HomeController.php +++ b/app/Http/Controllers/HomeController.php @@ -426,7 +426,9 @@ class HomeController extends Controller $user = Auth::user(); $dateTime = date('Y-m-d'); - if ($user->hasRole('callcenter')) { + if ($user->hasRole('ajk')) { + return view('homeajk'); + } else if ($user->hasRole('callcenter')) { return view('homecallcenter'); } else if ($user->hasRole('operasi-kpi')) { return view('homeoperasikpi'); diff --git a/app/Http/Controllers/LelongController.php b/app/Http/Controllers/LelongController.php index 754a3938..8f9c4caf 100644 --- a/app/Http/Controllers/LelongController.php +++ b/app/Http/Controllers/LelongController.php @@ -54,6 +54,7 @@ use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Log; use App\Jobs\HantarMail; use App\Jobs\WhatsappPemenang; +use App\Jobs\AutoTamatlelong; class LelongController extends Controller { @@ -1955,6 +1956,8 @@ class LelongController extends Controller $currentdate = Carbon::now(); $currenttime = $currentdate->toTimeString(); $endtime = $currentdate->addHours(2); + // $endtime = $currentdate->addMinutes(3); + $lelong = Lelong::where('id','=',$id)->first(); $lelong->masamula_lelong = $currenttime; @@ -1968,8 +1971,22 @@ class LelongController extends Controller $cawlel->masamula_lelong = $currenttime; $cawlel->masatamat_lelong = $endtime->toTimeString(); $cawlel->status_online = 1; //start lelong - $cawlel->save(); + $cawlel->save(); } + //run job tamat lelong + AutoTamatLelong::dispatch($id)->delay(Carbon::now()->addHours(2)); + // AutoTamatLelong::dispatch($id)->delay(Carbon::now()->addMinutes(3)); + + + //insert loguser + $loguser = new LogUser; + // $loguser->user_id = $user->id; + $loguser->date = $currentdate; + $loguser->username = 'System'; + $loguser->nama_user = 'System'; + // $loguser->norujukan = $data['norujukan']; + $loguser->nota = 'Lelongan Mula'; + $loguser->save(); return redirect()->route('home'); } @@ -3601,11 +3618,39 @@ class LelongController extends Controller $datalelbid = LelongBid::where('caw_id','=',$caw->caw_id)->where('lelong_id',$id)->where('status_jual','=', 0)->get(); $suratcaw = $datalelbid->all(); + foreach(array_chunk($suratcaw,100) as $data_chunk) { // dd($datalelbid); + foreach($data_chunk as $data1) + { + $biddersag = LelongBidder::where('lelongbid_id', $data1->id) + ->where('status_bidder','=', 0)->first(); + if($biddersag){ + $savedatabidder = $biddersag->replicate(); + $savedatabidder->setTable('lelongbidder_temp'); + $savedatabidder->save(); + + //insert loguser + $loguser = new LogUser; + $loguser->user_id = $biddersag->user_id; + $loguser->date = $currentdate; + $loguser->nama_user = $biddersag->nama_bidder; + $loguser->norujukan = $data1->norujukan; + $loguser->nota = 'Pernah Bid Sebelum Ini Tapi Kalah'; + $loguser->save(); + //hapus lelongbidder yg pernah bid + $lelongbidder = LelongBidder::where('lelongbid_id', $data1->id) + ->where('status_bidder', 0) + ->delete(); + } + + + + + } foreach($data_chunk as $data) - { + { $savedata = $data->replicate(); $savedata->setTable('lelongbid_xlaku'); $savedata->save(); diff --git a/app/Http/Controllers/NotisController.php b/app/Http/Controllers/NotisController.php index 4a15013e..56ba4113 100644 --- a/app/Http/Controllers/NotisController.php +++ b/app/Http/Controllers/NotisController.php @@ -330,6 +330,173 @@ class NotisController extends Controller return $pdf->download('Penjanaan Notis Fasa 1:Batch Lelong ' . $lelong_id . '.pdf'); } + public function jananotis2_new($lelong_id) + { + // focus only on variable: $marhuns, $lelongid, $caw, $tarikh_cetak + // variable not use: $lelong_id, $customer, $listsag + + $user = Auth::user(); + + $caw = Cawangan::where('caw_code', '=', $user->kodcaw)->first(); + + $currentdate = Carbon::now(); + $tarikh_cetak = $currentdate->toDateString(); + + $current_date_time = $currentdate->toDateTimeString(); + + Log::info("Jana notis fasa 1: " . $user->kodcaw . ", " . $user->name); + NotifyJanaNotis::dispatch($user->id, $user->kodcaw, $user->name, 'Jana Notis Fasa 1', $current_date_time); + + $lelongid = Lelong::find($lelong_id); + + $arraynorujukan = LelongBid::where('lelong_id', $lelong_id)->where('kodcaw', $caw->caw_code)->pluck('norujukan'); + + $marhuns = Gadai::on($caw->caw_code)->whereIn('norujukan', $arraynorujukan)->select('nokp', 'norujukan','bakipjm','tagbaru')->orderBy('nokp', 'asc')->get(); + + $marhuns_pluck_nokp = $marhuns->pluck('nokp'); + + $customers = Customer::whereIn('kpbaru', $marhuns_pluck_nokp) + ->orWhereIn('kplama', $marhuns_pluck_nokp) + ->join('poskod', 'customer.poskod', '=', 'poskod.poskod') + ->join('daerah', 'poskod.koddaerah', '=', 'daerah.koddaerah') + ->join('negeri', 'poskod.kodnegeri', '=', 'negeri.kodnegeri') + ->get(); + + $customers_keyBy_noKp = $customers->keyBy(function ($item) { + if ($item->kpbaru != '') { + return $item->kpbaru; + } else if ($item->kplama != '') { + return $item->kplama; + } + }); + + foreach ($marhuns as $index => $marhun) { + if ($customers_keyBy_noKp[$marhun->nokp]) { + $marhuns[$index]['nama'] = $customers_keyBy_noKp[$marhun->nokp]; + } + + $getdatalelongbid = LelongBid::where('lelong_id', $lelong_id)->where('norujukan', $marhun->norujukan)->first(); + //jika ambil data dari api + $tagbaru = $marhun->tagbaru; + // dd($tagbaru); + if($tagbaru == '0'){ + $getkeuntunganhinggatarikhlelong = Http::get(config('app.api_ujrah_url'). 'get/upahtawarruqbytarikh',[ + 'kodcaw' => $user->kodcaw, + 'norujukan' => $marhun->norujukan, + 'tarikh' => $getdatalelongbid['t_lelong'], + 'jeniskeuntungan' => 'asal' + ])->json(); + }elseif($tagbaru == '1'){ + $getkeuntunganhinggatarikhlelong = Http::get(config('app.api_ujrah_url'). 'get/upahtawarruqbytarikh',[ + 'kodcaw' => $user->kodcaw, + 'norujukan' => $marhun->norujukan, + 'tarikh' => $getdatalelongbid['t_lelong'], + 'jeniskeuntungan' => 'onepercent' + ])->json(); + } + // dd($getkeuntunganhinggatarikhlelong); + $nilaitebus = (float) $getkeuntunganhinggatarikhlelong['harga_tebus']; + $nilaipembiayaan = (float) $getdatalelongbid['pinjaman']; + $nilaikeuntungan = (float) $getkeuntunganhinggatarikhlelong['upahsemasa']; + $jumlah = $nilaipembiayaan + $nilaikeuntungan; + + $marhuns[$index]['nilaitebus'] = $nilaitebus; + $marhuns[$index]['nilaipembiayaan'] = $nilaipembiayaan; + $marhuns[$index]['nilaikeuntungan'] = $nilaikeuntungan; + $marhuns[$index]['jumlah'] = $jumlah; + } + // return view('pdf.jananotis', compact('marhuns', 'lelongid', 'caw', 'tarikh_cetak')); + $pdf = PDF::loadView('pdf.jananotis_new', compact('marhuns', 'lelongid', 'caw', 'tarikh_cetak')) + ->setPaper('a4', 'potrait'); + + return $pdf->download('Penjanaan Notis Fasa 1:Batch Lelong ' . $lelong_id . '.pdf'); + } + + public function jananotis2_new2($lelong_id) + { + // focus only on variable: $marhuns, $lelongid, $caw, $tarikh_cetak + // variable not use: $lelong_id, $customer, $listsag + + $user = Auth::user(); + + $caw = Cawangan::where('caw_code', '=', $user->kodcaw)->first(); + + $currentdate = Carbon::now(); + $tarikh_cetak = $currentdate->toDateString(); + + $current_date_time = $currentdate->toDateTimeString(); + + Log::info("Jana notis fasa 1: " . $user->kodcaw . ", " . $user->name); + NotifyJanaNotis::dispatch($user->id, $user->kodcaw, $user->name, 'Jana Notis Fasa 1', $current_date_time); + + $lelongid = Lelong::find($lelong_id); + + $arraynorujukan = LelongBid::where('lelong_id', $lelong_id)->where('kodcaw', $caw->caw_code)->pluck('norujukan'); + + $marhuns = Gadai::on($caw->caw_code)->whereIn('norujukan', $arraynorujukan)->select('nokp', 'norujukan','bakipjm','tagbaru')->orderBy('nokp', 'asc')->get(); + + $marhuns_pluck_nokp = $marhuns->pluck('nokp'); + + $customers = Customer::whereIn('kpbaru', $marhuns_pluck_nokp) + ->orWhereIn('kplama', $marhuns_pluck_nokp) + ->join('poskod', 'customer.poskod', '=', 'poskod.poskod') + ->join('daerah', 'poskod.koddaerah', '=', 'daerah.koddaerah') + ->join('negeri', 'poskod.kodnegeri', '=', 'negeri.kodnegeri') + ->get(); + + $customers_keyBy_noKp = $customers->keyBy(function ($item) { + if ($item->kpbaru != '') { + return $item->kpbaru; + } else if ($item->kplama != '') { + return $item->kplama; + } + }); + + foreach ($marhuns as $index => $marhun) { + if ($customers_keyBy_noKp[$marhun->nokp]) { + $marhuns[$index]['nama'] = $customers_keyBy_noKp[$marhun->nokp]; + } + + $getdatalelongbid = LelongBid::where('lelong_id', $lelong_id)->where('norujukan', $marhun->norujukan)->first(); + //jika ambil data dari api + $tagbaru = $marhun->tagbaru; + // dd($tagbaru); + if($tagbaru == '0'){ + $getkeuntunganhinggatarikhlelong = Http::get(config('app.api_ujrah_url'). 'get/upahtawarruqbytarikh',[ + 'kodcaw' => $user->kodcaw, + 'norujukan' => $marhun->norujukan, + 'tarikh' => $getdatalelongbid['t_lelong'], + 'jeniskeuntungan' => 'asal' + ])->json(); + }elseif($tagbaru == '1'){ + $getkeuntunganhinggatarikhlelong = Http::get(config('app.api_ujrah_url'). 'get/upahtawarruqbytarikh',[ + 'kodcaw' => $user->kodcaw, + 'norujukan' => $marhun->norujukan, + 'tarikh' => $getdatalelongbid['t_lelong'], + 'jeniskeuntungan' => 'onepercent' + ])->json(); + } + // dd($getkeuntunganhinggatarikhlelong); + $nilaitebus = (float) $getkeuntunganhinggatarikhlelong['harga_tebus']; + $nilaipembiayaan = (float) $getdatalelongbid['pinjaman']; + $nilaikeuntungan = (float) $getkeuntunganhinggatarikhlelong['upahsemasa']; + $jumlah = $nilaipembiayaan + $nilaikeuntungan; + + $marhuns[$index]['nilaitebus'] = $nilaitebus; + $marhuns[$index]['nilaipembiayaan'] = $nilaipembiayaan; + $marhuns[$index]['nilaikeuntungan'] = $nilaikeuntungan; + $marhuns[$index]['jumlah'] = $jumlah; + } + // return view('pdf.jananotis', compact('marhuns', 'lelongid', 'caw', 'tarikh_cetak')); + $pdf = PDF::loadView('pdf.jananotisfasa2_new', compact('marhuns', 'lelongid', 'caw', 'tarikh_cetak')) + ->setPaper('a4', 'potrait'); + + return $pdf->download('Penjanaan Notis Fasa 2:Batch Lelong ' . $lelong_id . '.pdf'); + } + + + + public function listnotis(Request $request){ diff --git a/app/Http/Controllers/PembidaController.php b/app/Http/Controllers/PembidaController.php index ec31b174..597b7b45 100644 --- a/app/Http/Controllers/PembidaController.php +++ b/app/Http/Controllers/PembidaController.php @@ -519,6 +519,48 @@ class PembidaController extends Controller $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) diff --git a/app/Http/Controllers/PenggunaController.php b/app/Http/Controllers/PenggunaController.php index a8af394b..eedb0ecb 100644 --- a/app/Http/Controllers/PenggunaController.php +++ b/app/Http/Controllers/PenggunaController.php @@ -112,12 +112,19 @@ class PenggunaController extends Controller $user->name = $request->name; $user->username = $request->username; $user->kodcaw = $request->caw; + $user->notelbimbit = $request->notelbimbit; $user->status = 'active'; $user->t_daftar = $currentdate; $user->email = $request->email; $user->email_verified_at = $currentdate; $user->password = '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi'; //password - $user->user_type = 1; + if($arraytaraf[0] == 'ajk'){ + $user->user_type = 3; + } + else{ + $user->user_type = 1; + } + $user->save(); $user->syncRoles($arraytaraf); @@ -173,7 +180,7 @@ class PenggunaController extends Controller $user->email = $request->emel; $user->kodcaw = $request->caw; $user->username = $request->username; - // $user->notelbimbit = $request->notelbimbit; + $user->notelbimbit = $request->notelbimbit; // $user->nokp = $request->nokp; $user->updated_at = $currentdate; $user->status = $status; @@ -358,6 +365,18 @@ class PenggunaController extends Controller // return $pdf->download('Roles.pdf'); } } + + public function listajk() + { + $alluser = User::with('roles','cawangan')->whereHas("roles", function($q) { + $q->where("name",'=', 'ajk');}) + ->orderBy('name','ASC') + ->get(); + $allroles = Role::all(); + $allRolesPluck= $allroles->pluck('name'); + $caw = Cawangan::all(); + return view('parameter.listajk',compact('alluser','allroles','caw', 'allRolesPluck')); + } } \ No newline at end of file diff --git a/app/Jobs/AutoTamatLelong.php b/app/Jobs/AutoTamatLelong.php new file mode 100644 index 00000000..6818c1d7 --- /dev/null +++ b/app/Jobs/AutoTamatLelong.php @@ -0,0 +1,99 @@ +id = $id; + } + + /** + * Execute the job. + * + * @return void + */ + public function handle() + { + $dt = Carbon::now(); + $timeloni = $dt->toTimeString(); + $tarikhlelong = $dt->toDateString(); + + event(new LelongNotify('stop')); + $updatestatus = Lelong::where('sts_lelong',1) + ->where('tarikh_lelong',$tarikhlelong) + ->update(['sts_lelong' => 2]); + + $cawlelong = CawanganLelong::where('lelong_id','=',$this->id)->get(); + foreach($cawlelong as $cawlel) //save old harga asas + { + // $cawlel->masatamat_lelong = $currenttime; + $cawlel->status_online = 0; //start lelong + $cawlel->save(); + } + + $hapuscart = Cart::truncate(); + + + + $getnoajk = User::where('user_type', 3)->get(); + foreach($getnoajk as $notifikasi){ + $mobile_no = '6'.$notifikasi->notelbimbit; + + if(config('app.env') != 'production'){ + $mobile_no = config('app.admin_phone_number'); + } + $response = Http::get(env('WABOT_API'), [ + 'number' => $mobile_no, + 'type' => 'text', + 'message' => 'Lelongan Telah Tamat, Sila Jana Pemenang', + 'instance_id' => env('WABOT_INSTANCES_ID'), + 'access_token' => env('WABOT_TOKEN_KEYS') + ]); + } + + //insert loguser + $loguser = new LogUser; + // $loguser->user_id = $user->id; + $loguser->date = $dt; + $loguser->username = 'System'; + $loguser->nama_user = 'System'; + // $loguser->norujukan = $data['norujukan']; + $loguser->nota = 'Lelongan Tamat'; + $loguser->save(); + + Log::info("Lelongan Telah Tamat" . $response); + // } + + // event(new LelongNotify('stop')); + // } + } +} diff --git a/app/Jobs/WhatsappPengesahanPembida.php b/app/Jobs/WhatsappPengesahanPembida.php new file mode 100644 index 00000000..45338a91 --- /dev/null +++ b/app/Jobs/WhatsappPengesahanPembida.php @@ -0,0 +1,61 @@ +user_notelbimbit = $user_notelbimbit; + $this->user_namapembida = $user_namapembida; + } + + /** + * Execute the job. + * + * @return void + */ + public function handle() + { + $mobile_no = ltrim($this->user_notelbimbit, '+'); + $message = 'AR-RAHN PKB: Terima Kasih '.$this->user_namapembida .', Pembayaran Anda Telah Disahkan, Sila Ke Cawangan Berkenaan Untuk Tuntutan Barang Bidaan Anda Hari Ini.'; + if(config('app.env') != 'production'){ + $mobile_no = config('app.admin_phone_number'); + } + $response = Http::get(env('WABOT_API'), [ + 'number' => $mobile_no, + 'type' => 'text', + 'message' => $message, + 'instance_id' => env('WABOT_INSTANCES_ID'), + 'access_token' => env('WABOT_TOKEN_KEYS') + ]); + + Log::info("WABOT - Akaun Telah Sahkan Pembayaran: ".$this->user_namapembida .'' . $response); + } +} diff --git a/app/Jobs/WhatsappTidakSahBayaran.php b/app/Jobs/WhatsappTidakSahBayaran.php new file mode 100644 index 00000000..3cf7b056 --- /dev/null +++ b/app/Jobs/WhatsappTidakSahBayaran.php @@ -0,0 +1,58 @@ +user_namapembida = $user_namapembida; + } + + /** + * Execute the job. + * + * @return void + */ + public function handle() + { + $getnoajk = User::where('user_type', 3)->get(); + foreach($getnoajk as $notifikasi){ + $mobile_no = '6'.$notifikasi->notelbimbit; + + if(config('app.env') != 'production'){ + $mobile_no = config('app.admin_phone_number'); + } + $response = Http::get(env('WABOT_API'), [ + 'number' => $mobile_no, + 'type' => 'text', + 'message' => 'Bayaran Pembida yang bernama *'.$this->user_namapembida.'* Adalah *Tidak Sah*, Mohon Pihak AJK Lelong Untuk Buat Semakan, Terima Kasih.' , + 'instance_id' => env('WABOT_INSTANCES_ID'), + 'access_token' => env('WABOT_TOKEN_KEYS') + ]); + } + } +} + diff --git a/app/Models/Lelong.php b/app/Models/Lelong.php index 3dc88a4f..e9a16bc9 100644 --- a/app/Models/Lelong.php +++ b/app/Models/Lelong.php @@ -13,6 +13,7 @@ class Lelong extends Model protected $fillable = [ 'tarikh_lelong', + 'masamula_lelong', 'masatamat_lelong', 'kali', 'harga_emas_asas', diff --git a/app/Models/LelongBidderTemp.php b/app/Models/LelongBidderTemp.php new file mode 100644 index 00000000..df83b5cc --- /dev/null +++ b/app/Models/LelongBidderTemp.php @@ -0,0 +1,40 @@ +hasOne(LelongBid::class,'id', 'lelongbid_id'); + } + + public function payment() + { + return $this->hasOne(Payment::class, 'lelongbid_id', 'lelongbid_id')->where('remark', '<>', ''); + } + + public function scanjual() { + return $this->hasOne(ScanJual::class, 'lelongbid_id', 'lelongbid_id'); + } + +} diff --git a/config/app.php b/config/app.php index 6d6305e0..e0f476b6 100644 --- a/config/app.php +++ b/config/app.php @@ -245,6 +245,8 @@ return [ 'api_url' => env('API_URL', 'http://localhost'), + 'api_ujrah_url' => env('API_UJRAH_URL', 'http://localhost'), + 'api_verify' => env('API_VERIFY', true), 'api_url_kaunter' => env('API_URL_KAUNTER', 'http://localhost'), diff --git a/database/migrations/2021_12_14_041557_create_lelongs_table.php b/database/migrations/2021_12_14_041557_create_lelongs_table.php index bfb6efed..9246f49d 100644 --- a/database/migrations/2021_12_14_041557_create_lelongs_table.php +++ b/database/migrations/2021_12_14_041557_create_lelongs_table.php @@ -244,6 +244,7 @@ class CreateLelongsTable extends Migration $table->string('mora_upah'); $table->integer('fasa')->default(0); $table->integer('opencash')->default(0); + $table->integer('xlaku')->default(0); $table->timestamps(); // $table->foreign('caw_id') diff --git a/database/migrations/2022_02_27_052051_add_para2_to_cawangan_table.php b/database/migrations/2022_02_27_052051_add_para2_to_cawangan_table.php deleted file mode 100644 index 24621f04..00000000 --- a/database/migrations/2022_02_27_052051_add_para2_to_cawangan_table.php +++ /dev/null @@ -1,35 +0,0 @@ -longText('para2')->nullable(); - $table->longText('para3')->nullable(); - }); - - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('cawangan', function (Blueprint $table) { - $table->dropColumn('para2') ; - $table->dropColumn('para3') ; - }); - } -} diff --git a/database/migrations/2024_06_11_123008_create_lelongbidder_temp_table.php b/database/migrations/2024_06_11_123008_create_lelongbidder_temp_table.php new file mode 100644 index 00000000..7bb56af3 --- /dev/null +++ b/database/migrations/2024_06_11_123008_create_lelongbidder_temp_table.php @@ -0,0 +1,44 @@ +bigIncrements('id'); + $table->unsignedBigInteger('user_id')->unsigned(); + $table->unsignedBigInteger('lelongbid_id')->unsigned(); + $table->string('kodcaw')->nullable(); + $table->string('nama_bidder'); + $table->decimal('hargabida'); + $table->string('notelbimbit'); + $table->decimal('nilaimarhun'); + $table->decimal('cajlelong'); + $table->integer('status_bidder')->nullable(); //1 = win + $table->integer('payment_id')->nullable(); + $table->integer('status_payment')->nullable(); // 1=paid, 2=memerlukan pengesahan operasi (CDM) + $table->datetime('masa_bidaan'); + $table->timestamps(); + + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('lelongbidder_temp'); + } +} diff --git a/database/seeders/RolesSeeder.php b/database/seeders/RolesSeeder.php index 9453fdd1..96ff3dba 100644 --- a/database/seeders/RolesSeeder.php +++ b/database/seeders/RolesSeeder.php @@ -201,6 +201,13 @@ class RolesSeeder extends Seeder 'name' => 'skoptugasan', 'description' => 'Skop Tugasan Cawangan Kegunaan E-KPI' ]); + + //ajklelong + Permission::create([ + 'name' => 'semakanlelong', + 'description' => 'Semakan Lelongan' + ]); + // create roles and assign existing permissions $role1 = Role::create(['name' => 'admin']); $role1->givePermissionTo('pengguna'); @@ -296,6 +303,9 @@ class RolesSeeder extends Seeder $role14->givePermissionTo('pengurusangambar'); $role14->givePermissionTo('pendaftaranbatch'); + $role15 = Role::create(['name' => 'ajk']); + $role15->givePermissionTo('semakanlelong'); + // $role3 = Role::create(['name' => 'Super-Admin']); // gets all permissions via Gate::before rule; see AuthServiceProvider @@ -416,5 +426,13 @@ class RolesSeeder extends Seeder 'user_type' => 1 ]); $user->assignRole($role14); + + $user = \App\Models\User::factory()->create([ + 'name' => 'Ahli Jawatan Kuasa', + 'username' => 'ajk', + 'email' => 'ajk@example.com', + 'user_type' => 3 + ]); + $user->assignRole($role15); } } diff --git a/resources/views/account/sahsagcdm.blade.php b/resources/views/account/sahsagcdm.blade.php index 1488ad73..b1c9ba15 100644 --- a/resources/views/account/sahsagcdm.blade.php +++ b/resources/views/account/sahsagcdm.blade.php @@ -40,6 +40,12 @@ + + + + + + {{-- @@ -127,7 +133,8 @@ {{-- @if($sag['checking_payment']) @else --}} - + + {{-- @endif --}} {{-- @endforeach --}} @@ -163,6 +170,7 @@ + +@endsection \ No newline at end of file diff --git a/resources/views/pdf/jananotis_new.blade.php b/resources/views/pdf/jananotis_new.blade.php new file mode 100644 index 00000000..8a38a200 --- /dev/null +++ b/resources/views/pdf/jananotis_new.blade.php @@ -0,0 +1,356 @@ + + + + + + + + + + + + + +@foreach($marhuns as $index1=> $notis) +{{-- {{dd($notis['nama']['alamat1'])}} --}} + + + + +
+
+ + {{-- --}} + + + + + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NO.RUJUKAN:{{$notis['norujukan']}}
TARIKH + :@php + $myDateTime = DateTime::createFromFormat('Y-m-d', $tarikh_cetak); + $datez = $myDateTime->format('d M Y'); + // echo($datez); + + $fmt = datefmt_create( + 'ms_MY', + IntlDateFormatter::LONG, + IntlDateFormatter::NONE, + 'Asia/Kuala_Lumpur', + IntlDateFormatter::GREGORIAN + ); + $cal = DateTime::createFromFormat('Y-m-d', $tarikh_cetak); + + echo '' . strtoupper($fmt->format($cal)); + @endphp +

+ + + + + + + + + + + + + +
KEPADA :{{ $notis['nama']['nama']}} +
{{ strtoupper($notis['nama']['alamat1']) }} + {{-- {!! ($notis['nama']['alamat1'] === null || $notis['nama']['alamat1'] === '') ? '' : '
' . strtoupper($notis['nama']['alamat1']) !!}
--}}
+ {{ ' ' . $notis['nama']['poskod'] . ' ' . strtoupper($notis['nama']['namadaerah']) . ' ' . strtoupper($notis['nama']['negeri'])}}
+ + +

Tuan/Puan,

+

NOTIS LELONGAN AWAM BARANG GADAIAN + {{-- @php + $myDateTime = DateTime::createFromFormat('Y-m-d', $lelongid->tarikh_lelong); + $datez = $myDateTime->format('d-m-Y'); + echo($datez); + + @endphp --}} +

+

Dengan hormatnya kami ingin memaklumkan bahawa barang-barang cagaran tuan/puan keatas pembiayaan yang diberikan di cawangan seperti di atas akan dilelong.

+ +

Butiran lelongan adalah seperti berikut :-

+ + + + + + + + + + + + + + + + + {{-- --}} + + + + + + + +
Tarikh Lelongan: @php + $myDateTime = DateTime::createFromFormat('Y-m-d', $lelongid->tarikh_lelong); + $datez = $myDateTime->format('d-m-Y'); + //echo($datez); + $fmttlelong = datefmt_create( + 'ms_MY', + IntlDateFormatter::LONG, + IntlDateFormatter::NONE, + 'Asia/Kuala_Lumpur', + IntlDateFormatter::GREGORIAN + ); + $tlelong = DateTime::createFromFormat('Y-m-d', $lelongid->tarikh_lelong); + + echo '' . strtoupper($fmttlelong->format($tlelong)); + @endphp
Cawangan:{{ $caw['caw_name'] }}
Waktu:{{ date('H:i',strtotime($notis['masa'])). ' pagi' }}{{ '10.30 pagi' }}
No.SAG:{{$notis['norujukan']}}
+ + +

Tuan/Puan adalah dikehendaki untuk membuat urusan berikut dikaunter cawangan selewat-lewatnya pada atau sebelum + @php + $myDateTime = DateTime::createFromFormat('Y-m-d', $lelongid->tarikh_lelong ); + $datez = $myDateTime->modify('-3 day')->format('d-m-Y'); + //echo($datez); + $fmtsblm = datefmt_create( + 'ms_MY', + IntlDateFormatter::LONG, + IntlDateFormatter::NONE, + 'Asia/Kuala_Lumpur', + IntlDateFormatter::GREGORIAN + ); + $tlelong = DateTime::createFromFormat('Y-m-d', $lelongid->tarikh_lelong); + $datez = $tlelong->modify('-3 day'); + echo '' . strtoupper($fmtsblm->format($datez)); + @endphp + @php + $myDateTime = DateTime::createFromFormat('Y-m-d', $lelongid->tarikh_lelong ); + $datez = $myDateTime->modify('-3 day')->format('d-m-Y'); + //echo($datez); + $fmtsblm = datefmt_create( + 'ms_MY', + IntlDateFormatter::FULL, + IntlDateFormatter::FULL, + 'Asia/Kuala_Lumpur', + IntlDateFormatter::GREGORIAN + ); + $tlelong = DateTime::createFromFormat('Y-m-d', $lelongid->tarikh_lelong); + $datez = $tlelong->modify('-3 day'); + $fmtsblm->setPattern('EEEE'); + echo '(' . strtoupper($fmtsblm->format($datez).')'); + @endphp:-

+ + + {{-- @php $upah = $notis['keuntungan']['keuntunganrebet']+$notis['keuntungan']['bakipjm'] @endphp --}} + {{-- {{dd($notis['nilaips'])}} --}} + {{--
    +
  1. Bayar Keuntungan Semasa RM{{number_format($notis['keuntungan']['keuntungan'], 2, '.', ',') }}
  2. +
  3. Pembiayaan Semula RM{{number_format($notis['nilaitebus'], 2, '.', ',') }}
  4. +
  5. Penyelesaian Penuh RM{{number_format($notis['nilaitebus'], 2, '.', ',')}}
  6. +
--}} + + + + + + + + + + + + + + + + + + + + + + + + + +
Pembiayaan:RM{{number_format($notis['nilaipembiayaan'], 2, '.', ',') }}
Keuntungan:RM{{number_format($notis['nilaikeuntungan'], 2, '.', ',') }}
RM{{ number_format($notis['jumlah'], 2, '.', ',') }}
+ +

Tuan/Puan juga boleh membuat bayaran secara atas talian melalui portal arrahnPay dihttps://pay.arrahn.com.my. + Pembayaran terakhir atas talian adalah (3)hari sebelum tarikh lelongan. + Untuk sebarang pertanyaan, Tuan/Puan boleh menghubungi nombor tertera.

+ +

Sekiranya tuan/puan masih tidak berurusan sehingga tarikh dinyatakan, maka pihak kami berhak menjual secara lelongan awam barang gadaian tersebut.
+ Sekian, terima kasih.

+ +

Nota:

+ Sila bawa bersama Surat Akaun Gadai (SAG) untuk sebarang urusan.
+ {{--Jumlah bayaran yang dipaparkan mengikut tarikh surat dicetak.--}} + Sila abaikan notis ini sekiranya pembayaran telah dibuat. + +

Surat ini adalah cetakan komputer dan tiada tandatangan diperlukan.

+ +
+ + @endforeach \ No newline at end of file diff --git a/resources/views/pdf/jananotisfasa2_new.blade.php b/resources/views/pdf/jananotisfasa2_new.blade.php new file mode 100644 index 00000000..34579f0b --- /dev/null +++ b/resources/views/pdf/jananotisfasa2_new.blade.php @@ -0,0 +1,341 @@ + + + + + + + + + + + + + +@foreach($marhuns as $index1=> $notis) +{{-- {{dd($notis['nama']['alamat1'])}} --}} + + + + +
+ + + {{-- --}} + + + + + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
NO.RUJUKAN:{{$notis['norujukan']}}
TARIKH + :@php + $myDateTime = DateTime::createFromFormat('Y-m-d', $tarikh_cetak); + $datez = $myDateTime->format('d-m-Y'); + //echo($datez); + $fmt = datefmt_create( + 'ms_MY', + IntlDateFormatter::LONG, + IntlDateFormatter::NONE, + 'Asia/Kuala_Lumpur', + IntlDateFormatter::GREGORIAN + ); + $cal = DateTime::createFromFormat('Y-m-d', $tarikh_cetak); + + echo '' . strtoupper($fmt->format($cal)); + @endphp +

+ + + + + + + + + + +
KEPADA:{{ $notis['nama']['nama']}} +
{{ strtoupper($notis['nama']['alamat1']) }}
+ {{-- {!! ($notis['nama']['alamat1'] === null || $notis['nama']['alamat1'] === '') ? '' : '
' . strtoupper($notis['nama']['alamat1']) !!}
--}} + {{-- {!! ($notis['nama']['alamat2'] === null || $notis['nama']['alamat2'] === '') ? '' : '
' . strtoupper($notis['nama']['alamat2']) !!}
--}} + {{ ' ' . $notis['nama']['poskod'] . ' ' . strtoupper($notis['nama']['namadaerah']) . ' ' . strtoupper($notis['nama']['negeri'])}}
+ + +

Tuan/Puan,

+

NOTIS LELONGAN AWAM BARANG GADAIAN + {{-- @php + $myDateTime = DateTime::createFromFormat('Y-m-d', $lelongid->tarikh_lelong); + $datez = $myDateTime->format('d-m-Y'); + echo($datez); + + @endphp --}} +

+

Dengan hormatnya kami ingin memaklumkan bahawa barang-barang cagaran tuan/puan keatas pembiayaan yang diberikan di cawangan seperti di atas akan/telah tamat kontrak dan akan dilelong.

+ +

Butiran lelongan adalah seperti berikut :-

+ + + + + + + + + + + + + + + + {{-- --}} + + + + + + + +
Tarikh Lelongan: @php + $myDateTime = DateTime::createFromFormat('Y-m-d', $lelongid->tarikh_lelong); + $datez = $myDateTime->format('d-m-Y'); + //echo($datez); + $fmttlelong = datefmt_create( + 'ms_MY', + IntlDateFormatter::LONG, + IntlDateFormatter::NONE, + 'Asia/Kuala_Lumpur', + IntlDateFormatter::GREGORIAN + ); + $tlelong = DateTime::createFromFormat('Y-m-d', $lelongid->tarikh_lelong); + + echo '' . strtoupper($fmttlelong->format($tlelong)); + @endphp
Cawangan:{{ $caw['caw_name'] }}
Waktu:{{ date('H:i',strtotime($notis['masa'])). ' pagi' }}{{ '10.30 pagi' }}
No.SAG:{{$notis['norujukan']}}
+ + +

Tuan/Puan adalah dikehendaki untuk membuat urusan berikut dikaunter cawangan selewat-lewatnya pada atau sebelum + @php + $myDateTime = DateTime::createFromFormat('Y-m-d', $lelongid->tarikh_lelong ); + $datez = $myDateTime->modify('-3 day')->format('d-m-Y'); + //echo($datez); + $fmtsblm = datefmt_create( + 'ms_MY', + IntlDateFormatter::LONG, + IntlDateFormatter::NONE, + 'Asia/Kuala_Lumpur', + IntlDateFormatter::GREGORIAN + ); + $tlelong = DateTime::createFromFormat('Y-m-d', $lelongid->tarikh_lelong); + $datez = $tlelong->modify('-3 day'); + echo '' . strtoupper($fmtsblm->format($datez)); + @endphp + @php + $myDateTime = DateTime::createFromFormat('Y-m-d', $lelongid->tarikh_lelong ); + $datez = $myDateTime->modify('-3 day')->format('d-m-Y'); + //echo($datez); + $fmtsblm = datefmt_create( + 'ms_MY', + IntlDateFormatter::FULL, + IntlDateFormatter::FULL, + 'Asia/Kuala_Lumpur', + IntlDateFormatter::GREGORIAN + ); + $tlelong = DateTime::createFromFormat('Y-m-d', $lelongid->tarikh_lelong); + $datez = $tlelong->modify('-3 day'); + $fmtsblm->setPattern('EEEE'); + echo '(' . strtoupper($fmtsblm->format($datez).')'); + @endphp:-

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Pembiayaan:RM{{number_format($notis['nilaipembiayaan'], 2, '.', ',') }}
Keuntungan:RM{{number_format($notis['nilaikeuntungan'], 2, '.', ',') }}
RM{{ number_format($notis['jumlah'], 2, '.', ',') }}
+

Sekiranya tuan/puan masih tidak berurusan sehingga tarikh dinyatakan, maka pihak kami berhak menjual secara lelongan awam barang gadaian tersebut. + Untuk sebarang pertanyaan, Tuan/Puan boleh menghubungi nombor tertera.
+ + Sekian, terima kasih.

+ +

Nota:

+ Sila bawa bersama Surat Akaun Gadai (SAG) untuk sebarang urusan.
+ Sila abaikan notis ini sekiranya pembayaran telah dibuat. + + +

Surat ini adalah cetakan komputer dan tiada tandatangan diperlukan.

+ +
+
+ @endforeach \ No newline at end of file diff --git a/resources/views/pengurusanpengguna/index.blade.php b/resources/views/pengurusanpengguna/index.blade.php index 141aac1d..e3ef3778 100644 --- a/resources/views/pengurusanpengguna/index.blade.php +++ b/resources/views/pengurusanpengguna/index.blade.php @@ -130,6 +130,13 @@ +
+ +
+ + +
+

Taraf Pengguna

@@ -172,6 +179,10 @@ $(".checkbox").each(function() { $(this).not('#tarafaccount').prop("disabled", true); }); + }else if (taraf.id == "tarafajk") { + $(".checkbox").each(function() { + $(this).not('#tarafajk').prop("disabled", true); + }); } else if (taraf.id == "tarafcallcenter") { $(".checkbox").each(function() { $(this).not('#tarafcallcenter').prop("disabled", true); diff --git a/resources/views/pengurusanpengguna/show.blade.php b/resources/views/pengurusanpengguna/show.blade.php index 16a15186..5107dccc 100644 --- a/resources/views/pengurusanpengguna/show.blade.php +++ b/resources/views/pengurusanpengguna/show.blade.php @@ -40,6 +40,12 @@
+ @if($user->user_type == 3) +
+ + +
+ @endif

Taraf Pengguna

@@ -53,7 +59,7 @@ @endforeach
- @if($user->user_type == 1) + @if($user->user_type == 1 | $user->user_type == 3)
@@ -110,7 +116,12 @@ $(".checkbox").each(function() { $(this).not('#tarafaccount').prop("disabled", true); }); - } else if (taraf.id == "tarafcallcenter") { + }else if (taraf.id == "tarafajk") { + $(".checkbox").each(function() { + $(this).not('#tarafajk').prop("disabled", true); + }); + } + else if (taraf.id == "tarafcallcenter") { $(".checkbox").each(function() { $(this).not('#tarafcallcenter').prop("disabled", true); }); diff --git a/routes/web.php b/routes/web.php index bd085252..f0f3ecc7 100644 --- a/routes/web.php +++ b/routes/web.php @@ -501,6 +501,9 @@ Route::group(['middleware' => ['permission:pengesahanbayaran'],'prefix'=>'accoun Route::post('/laporanakaundetailexport',['as'=>'account.laporanakaundetailexport','uses'=>'AccountController@laporanakaundetailexport']); Route::get('/laporanakaundetailall/{lelong_id}',['as'=>'account.laporanakaundetailall','uses'=>'AccountController@laporanakaundetailall']); Route::post('/laporanakaundetailallexport',['as'=>'account.laporanakaundetailallexport','uses'=>'AccountController@laporanakaundetailallexport']); + + Route::post('/xsahbayaronline', ['as'=>'account.xsahbayaronline','uses'=>'AccountController@xsahbayaronline']); + }); // Pengurus Cawangan @@ -516,6 +519,9 @@ Route::group(['middleware' => ['permission:jananotis'],'prefix'=>'jananotis'], f Route::get('/pembida',['as'=>'jananotis.pembida','uses'=>'NotisController@pembida']); Route::get('/senarainotis/{lelong_id}',['as'=>'jananotis.senarainotis','uses'=>'NotisController@senarainotis2']); Route::get('/jananotis/{lelong_id}',['as'=>'jananotis.jananotis','uses'=>'NotisController@jananotis2']); + Route::get('/jananotis_new/{lelong_id}',['as'=>'jananotis.jananotis_new','uses'=>'NotisController@jananotis2_new']); + Route::get('/jananotis_new2/{lelong_id}',['as'=>'jananotis.jananotis_new2','uses'=>'NotisController@jananotis2_new2']); + Route::post('/listnotis',['as'=>'jananotis.listnotis','uses'=>'NotisController@listnotis2']); Route::get('/send-email',['as'=>'jananotis.email','uses'=>'MailController@sendEmail']); @@ -597,6 +603,9 @@ Route::get('/searchforecastgadaian', ['as'=>'report.searchforecastgadaian','uses Route::get('/senarailapbidaanresult/{lelong_id}/{kodcaw}',['as' =>'report.senarailapbidaanresult','uses'=>'ReportController@senarailapbidaanresult']); Route::post('/kemaskinibidaan',['as'=>'report.kemaskinibidaan','uses'=>'ReportController@kemaskinibidaan']); + +Route::get('/joybidder',['as'=>'report.joybidder','uses'=>'ReportController@joybidder']); + }); //Report by KALI @@ -753,6 +762,11 @@ Route::group(['middleware' => ['permission:parameter'],'prefix'=>'parameter'], f Route::get('/kemaskininotislelwabot',['as'=>'parameter.kemaskininotislelwabot','uses'=>'NotisController@kemaskininotislelwabot']); Route::post('/storepara2blast',['as'=>'parameter.storepara2blast','uses'=>'NotisController@storepara2blast']); Route::post('/storepara3blast',['as'=>'parameter.storepara3blast','uses'=>'NotisController@storepara3blast']); + + //blastnotifikasitamatlelongajk + Route::get('/notifikasitamatlelong',['as'=>'parameter.notifikasitamatlelong','uses'=>'PenggunaController@notifikasitamatlelong']); + Route::get('/listajk',['as'=>'parameter.listajk','uses'=>'PenggunaController@listajk']); + }); Route::group(['middleware' => ['permission:WTD'],'prefix'=>'wtd'], function () {