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/LelongController.php b/app/Http/Controllers/LelongController.php index 80c76755..8d62fec4 100644 --- a/app/Http/Controllers/LelongController.php +++ b/app/Http/Controllers/LelongController.php @@ -1936,7 +1936,7 @@ class LelongController extends Controller $currentdate = Carbon::now(); $currenttime = $currentdate->toTimeString(); $endtime = $currentdate->addHours(2); - // $endtime = $currentdate->addMinutes(1); + // $endtime = $currentdate->addMinutes(3); $lelong = Lelong::where('id','=',$id)->first(); @@ -1954,8 +1954,8 @@ class LelongController extends Controller $cawlel->save(); } //run job tamat lelong - AutoTamatLelong::dispatch()->delay(Carbon::now()->addHours(2)); - // AutoTamatLelong::dispatch()->delay(Carbon::now()->addMinutes(1)); + AutoTamatLelong::dispatch($id)->delay(Carbon::now()->addHours(2)); + // AutoTamatLelong::dispatch($id)->delay(Carbon::now()->addMinutes(3)); //insert loguser @@ -3598,11 +3598,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/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/Jobs/AutoTamatLelong.php b/app/Jobs/AutoTamatLelong.php index 4a967ab8..6818c1d7 100644 --- a/app/Jobs/AutoTamatLelong.php +++ b/app/Jobs/AutoTamatLelong.php @@ -15,6 +15,8 @@ use Illuminate\Support\Facades\Http; use Illuminate\Support\Facades\Log; use App\Models\LogUser; use App\Models\User; +use App\Models\CawanganLelong; +use App\Models\Cart; @@ -22,14 +24,16 @@ class AutoTamatLelong implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; + public $id; + /** * Create a new job instance. * * @return void */ - public function __construct() + public function __construct($id) { - // + $this->id = $id; } /** @@ -48,6 +52,18 @@ class AutoTamatLelong implements ShouldQueue ->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; 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/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/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/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 @@