From eb60667973685084f868e183e33958a779448c63 Mon Sep 17 00:00:00 2001 From: BTMS1 Date: Mon, 20 Nov 2023 08:44:39 +0800 Subject: [PATCH 1/5] tambah function stok audit khas dan job blast wasap --- app/BlastWasap.php | 19 ++ app/Http/Controllers/StokAuditController.php | 202 ++++++++++++++++++ app/Jobs/WhatsappPelangganSAGLAMA.php | 57 +++++ .../2023_11_15_155547_create_jobs_table.php | 36 ++++ ...23_11_19_111428_create_log_blast_wasap.php | 35 +++ 5 files changed, 349 insertions(+) create mode 100644 app/BlastWasap.php create mode 100644 app/Http/Controllers/StokAuditController.php create mode 100644 app/Jobs/WhatsappPelangganSAGLAMA.php create mode 100644 database/migrations/2023_11_15_155547_create_jobs_table.php create mode 100644 database/migrations/2023_11_19_111428_create_log_blast_wasap.php diff --git a/app/BlastWasap.php b/app/BlastWasap.php new file mode 100644 index 0000000..f62b6de --- /dev/null +++ b/app/BlastWasap.php @@ -0,0 +1,19 @@ +kodcaw); + $daritempoh = $request->daritempoh; + $hinggatempoh = $request->hinggatempoh; + $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$request->kodcaw)->first(); + + $audit = Gadai::on($cawangan['mysql']) + ->where([['tagpalsu','=',0],['tempoh','>=',$daritempoh],['tempoh','<=',$hinggatempoh],['sttebus','=','']]) + ->orderBy('t_gadai', 'ASC') + ->orderBy('sirig', 'ASC'); + // ->get(); + // dd($audit); + $arraynorujukan = $audit->pluck('norujukan')->toArray(); + $rekodaudit = $audit->get(); + $gadainokp = Gadai::on($cawangan['mysql'])->whereIn('norujukan', $arraynorujukan) + ->select('nokp') + ->groupBy('nokp') + ->get(); + + // dd($gadainokp); + + foreach($gadainokp as $index1=>$cal){ + $customer = Customer::on('mysql7')->where('kpbaru','=',$cal['nokp']) + ->orWhere('kplama','=',$cal['nokp']) + ->first(); + + $listsag = Gadai::on($cawangan['mysql'])->whereIn('norujukan', $arraynorujukan) + // ->where('nokp','=',$cal['nokp']) + ->where('nokp', 'like', '%'.$cal['nokp'].'%') + ->get(); + + foreach($listsag as $index2=>$cal2){ + + if($cal2){ + $checkingnokp = BlastWasap::on('mysql7') + ->where('nokp','=',$cal['nokp']) + ->where('norujukan','=',$cal2['norujukan']) + ->where('kodcaw','=',$kodcaw) + ->first(); + + // $gadainokp[$index1]['blasted'] = $checkingnokp; + + + } + } + + $gadainokp[$index1]['info'] = $customer; + $gadainokp[$index1]['listsag'] = $listsag; + $gadainokp[$index1]['blasted'] = $checkingnokp; + } + + $totalrekod = $audit->sum('pinjaman'); + $totalberat = $audit->sum('berat'); + $totalnilaimarhun = $audit->sum('nilaimarhun'); + $totalpinjaman = $audit->sum('pinjaman'); + $totalbakipjm = $audit->sum('bakipjm'); + $totaltunggakan = $audit->sum('tunggakan'); + + $arrayrekod = ['rekod' => $gadainokp, 'total' => $totalrekod,'totalberat' => $totalberat,'totalnilaimarhun' => $totalnilaimarhun,'totalpinjaman'=>$totalpinjaman,'totalbakipjm'=>$totalbakipjm,'totaltunggakan'=>$totaltunggakan]; + // dd($arrayrekod); + return response()->json($arrayrekod,200); + } + + + public function blastwasap($kodcaw,Request $request) + { + $current = Carbon::now(); + $current = new Carbon(); + $daritempoh = $request->daritempoh; + $hinggatempoh = $request->hinggatempoh; + $namapengguna = $request->namapengguna; + $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$request->kodcaw)->first(); + $cawangan_detail = CawanganDetail::on($cawangan['mysql'])->first(); + $caw_name = $cawangan->details_caw; + $nofoncaw = $cawangan_detail->notel; + // dd($cawangan_detail->notel); + + $audit = Gadai::on($cawangan['mysql']) + ->where([['tagpalsu','=',0],['tempoh','>=',$daritempoh],['tempoh','<=',$hinggatempoh],['sttebus','=','']]) + ->orderBy('t_gadai', 'ASC') + ->orderBy('sirig', 'ASC'); + // ->get(); + // dd($audit); + $rekodaudit = $audit->get(); + $arraynorujukan = $audit->pluck('norujukan')->toArray(); + $keybynorujukan = $rekodaudit->keyBy('norujukan'); + + $gadainokp = Gadai::on($cawangan['mysql'])->whereIn('norujukan', $arraynorujukan) + ->select('nokp') + ->groupBy('nokp') + ->get(); + $gadai_all_groupby_nokp = $rekodaudit->groupBy('nokp'); + // dd($gadai_all_groupby_nokp); + + // dd($gadainokp); + + foreach($gadainokp as $index1=>$cal){ + // dd($cal->nokp); + if($gadai_all_groupby_nokp[$cal->nokp]){ + $gadainokp[$index1]['gadai'] = $gadai_all_groupby_nokp[$cal->nokp]; + } + // dd($gadainokp[$index1]['gadai'][$index1]['norujukan']); + + + $customer = Customer::on('mysql7')->where('kpbaru','=',$cal['nokp']) + ->orWhere('kplama','=',$cal['nokp']) + ->first(); + $nokp=$cal['nokp']; + + foreach($gadainokp[$index1]['gadai'] as $index1=>$cal3){ + + $checkingnokp = BlastWasap::on('mysql7') + ->where('nokp','=',$cal['nokp']) + ->where('norujukan','=',$cal3->norujukan) + ->where('kodcaw','=',$kodcaw) + ->first(); + + if(!$checkingnokp){ + + if($customer->telefon != 'null'){ + $telefon=$customer->telefon; + dispatch(new WhatsappPelangganSAGLAMA($nokp,$customer->telefon,$caw_name,$nofoncaw)); + } + + //insert log blast wasap + $logblastwasap = new BlastWasap(); + $logblastwasap->kodcaw = $kodcaw; + $logblastwasap->nokp = $nokp; + $logblastwasap->notelefon = $customer->telefon; + $logblastwasap->norujukan = $cal3->norujukan; + $logblastwasap->created_at = $current; + $logblastwasap->updated_at = $current; + $logblastwasap->save(); + + //log auditrail + $audit = new Audit(); + $audit->users = $namapengguna; + $audit->actions = 'Blast Whatsapp'; + $audit->norujukan = $cal3->norujukan; + $audit->new_data = 'BLAST WHATSAPP: '.$customer->telefon; + $audit->old_data = $nokp; + $audit->kodcaw = $kodcaw; + $audit->created_at = $current; + $audit->updated_at = $current; + $audit->save(); + + } + else{ + return response()->json('failed'); + } + } + } + return response()->json('success'); + + } + +} diff --git a/app/Jobs/WhatsappPelangganSAGLAMA.php b/app/Jobs/WhatsappPelangganSAGLAMA.php new file mode 100644 index 0000000..b002954 --- /dev/null +++ b/app/Jobs/WhatsappPelangganSAGLAMA.php @@ -0,0 +1,57 @@ +nokp = $nokp; + $this->telefon = $telefon; + $this->caw_name = $caw_name; + $this->nofoncaw = $nofoncaw; + } + + /** + * Execute the job. + * + * @return void + */ + public function handle() + { + // $mobile_no = ltrim($this->telefon, '+6'); + $mobile_no = '60178916936'; + $message = 'AR-RAHN '.$this->caw_name.': MAKLUMAN, selaras penambahbaikan Sistem Ar-Rahn, Tuan/Puan diminta hadir ke premis *sebelum 15/7/2024* bagi menukar SAG dengan cara: + +1. Tebus +atau +2. Tebus Gadai Semula + +Hubungi '.$this->nofoncaw.'(Ar-Rahn '.$this->caw_name.') untuk maklumat lanjut.'; + if(env('APP_ENV') != 'production'){ + $mobile_no = env('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 - Pelanggan SAG Tawarruq Lama".$response); + + } +} diff --git a/database/migrations/2023_11_15_155547_create_jobs_table.php b/database/migrations/2023_11_15_155547_create_jobs_table.php new file mode 100644 index 0000000..1be9e8a --- /dev/null +++ b/database/migrations/2023_11_15_155547_create_jobs_table.php @@ -0,0 +1,36 @@ +bigIncrements('id'); + $table->string('queue')->index(); + $table->longText('payload'); + $table->unsignedTinyInteger('attempts'); + $table->unsignedInteger('reserved_at')->nullable(); + $table->unsignedInteger('available_at'); + $table->unsignedInteger('created_at'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('jobs'); + } +} diff --git a/database/migrations/2023_11_19_111428_create_log_blast_wasap.php b/database/migrations/2023_11_19_111428_create_log_blast_wasap.php new file mode 100644 index 0000000..b551dc8 --- /dev/null +++ b/database/migrations/2023_11_19_111428_create_log_blast_wasap.php @@ -0,0 +1,35 @@ +id(); + $table->string('kodcaw')->nullable(); + $table->string('nokp')->nullable(); + $table->string('notelefon')->nullable(); + $table->string('norujukan')->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('log_blast_wasap'); + } +} From 4c32171e87575077f0cf2de60d42c14415ef3293 Mon Sep 17 00:00:00 2001 From: BTMS1 Date: Mon, 20 Nov 2023 09:45:52 +0800 Subject: [PATCH 2/5] tambah web stokaudit khas --- routes/web.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/routes/web.php b/routes/web.php index 0842c8d..c6e5ba1 100644 --- a/routes/web.php +++ b/routes/web.php @@ -579,6 +579,12 @@ $router->group(['prefix'=>'api'], function () use ($router){ $router->get('kadarujrah',['uses' => 'GadaiController@getKadarUjrah']); $router->post('onepercent',['uses' => 'GadaiController@getOnePercent']); + //STOKAUDITKHAS + $router->get('stokauditkhas/aktif/{kodcaw}',['uses'=>'StokAuditController@LaporanAuditKhasAktif']); + + //API BLAST WASAP + $router->post('blastwasap/{kodcaw}',['uses'=>'StokAuditController@blastwasap']); + }); $router->group(['prefix'=>'e-arrahn'], function () use ($router){ From 22bbef7f6d1918a088f4b1530db0a837782947e5 Mon Sep 17 00:00:00 2001 From: Nur Izzati Zulkifli Date: Mon, 20 Nov 2023 16:06:24 +0800 Subject: [PATCH 3/5] tambah rekod blast --- app/Http/Controllers/StokAuditController.php | 93 ++++++++++++++----- app/Jobs/WhatsappPelangganSAGLAMA.php | 2 +- ...23_11_19_111428_create_log_blast_wasap.php | 1 + routes/web.php | 2 + 4 files changed, 74 insertions(+), 24 deletions(-) diff --git a/app/Http/Controllers/StokAuditController.php b/app/Http/Controllers/StokAuditController.php index 4d52226..23ebf23 100644 --- a/app/Http/Controllers/StokAuditController.php +++ b/app/Http/Controllers/StokAuditController.php @@ -164,31 +164,31 @@ class StokAuditController extends Controller if($customer->telefon != 'null'){ $telefon=$customer->telefon; + //insert log blast wasap + $logblastwasap = new BlastWasap(); + $logblastwasap->kodcaw = $kodcaw; + $logblastwasap->nokp = $nokp; + $logblastwasap->notelefon = $customer->telefon; + $logblastwasap->norujukan = $cal3->norujukan; + $logblastwasap->tempoh = $cal3->tempoh; + $logblastwasap->created_at = $current; + $logblastwasap->updated_at = $current; + $logblastwasap->save(); + + //log auditrail + $audit = new Audit(); + $audit->users = $namapengguna; + $audit->actions = 'Blast Whatsapp'; + $audit->norujukan = $cal3->norujukan; + $audit->new_data = $customer->telefon; + $audit->old_data = $nokp; + $audit->kodcaw = $kodcaw; + $audit->created_at = $current; + $audit->updated_at = $current; + $audit->save(); + dispatch(new WhatsappPelangganSAGLAMA($nokp,$customer->telefon,$caw_name,$nofoncaw)); } - - //insert log blast wasap - $logblastwasap = new BlastWasap(); - $logblastwasap->kodcaw = $kodcaw; - $logblastwasap->nokp = $nokp; - $logblastwasap->notelefon = $customer->telefon; - $logblastwasap->norujukan = $cal3->norujukan; - $logblastwasap->created_at = $current; - $logblastwasap->updated_at = $current; - $logblastwasap->save(); - - //log auditrail - $audit = new Audit(); - $audit->users = $namapengguna; - $audit->actions = 'Blast Whatsapp'; - $audit->norujukan = $cal3->norujukan; - $audit->new_data = 'BLAST WHATSAPP: '.$customer->telefon; - $audit->old_data = $nokp; - $audit->kodcaw = $kodcaw; - $audit->created_at = $current; - $audit->updated_at = $current; - $audit->save(); - } else{ return response()->json('failed'); @@ -198,5 +198,52 @@ class StokAuditController extends Controller return response()->json('success'); } + + public function rekodblast($kodcaw,Request $request) + { + + $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); + + $rekodblast = BlastWasap::on('mysql7') + ->where('kodcaw','=',$kodcaw); + $arraynorujukan = $rekodblast->pluck('norujukan')->toArray(); + $rekodaudit = $rekodblast->orderBy('id', 'asc')->get(); + $keybynorujukan = $rekodaudit->keyBy('norujukan'); + + $gadainokp = Gadai::on($cawangan['mysql'])->whereIn('norujukan', $arraynorujukan) + ->select('nokp') + ->groupBy('nokp') + ->get(); + $gadai_all_groupby_nokp = $rekodaudit->groupBy('nokp'); + // dd($gadai_all_groupby_nokp); + + foreach($gadainokp as $index1=>$cal){ + + if($gadai_all_groupby_nokp[$cal->nokp]){ + $gadainokp[$index1]['rekodblast'] = $gadai_all_groupby_nokp[$cal->nokp]; + } + $customer = Customer::on('mysql7')->where('kpbaru','=',$cal['nokp']) + ->orWhere('kplama','=',$cal['nokp']) + ->first(); + + $listsag = Gadai::on($cawangan['mysql'])->whereIn('norujukan', $arraynorujukan) + ->where('nokp', 'like', '%'.$cal['nokp'].'%') + ->get(); + // dd($listsag); + $gadainokp[$index1]['info'] = $customer; + $gadainokp[$index1]['listsag'] = $listsag; + } + + + $totalrekod = $listsag->sum('pinjaman'); + $totalberat = $listsag->sum('berat'); + $totalnilaimarhun = $listsag->sum('nilaimarhun'); + $totalpinjaman = $listsag->sum('pinjaman'); + $totalbakipjm = $listsag->sum('bakipjm'); + $totaltunggakan = $listsag->sum('tunggakan'); + + $arrayrekod = ['rekod' => $gadainokp, 'total' => $totalrekod,'totalberat' => $totalberat,'totalnilaimarhun' => $totalnilaimarhun,'totalpinjaman'=>$totalpinjaman,'totalbakipjm'=>$totalbakipjm,'totaltunggakan'=>$totaltunggakan]; + return response()->json($arrayrekod,200); + } } diff --git a/app/Jobs/WhatsappPelangganSAGLAMA.php b/app/Jobs/WhatsappPelangganSAGLAMA.php index b002954..5b98dc0 100644 --- a/app/Jobs/WhatsappPelangganSAGLAMA.php +++ b/app/Jobs/WhatsappPelangganSAGLAMA.php @@ -32,7 +32,7 @@ class WhatsappPelangganSAGLAMA extends Job public function handle() { // $mobile_no = ltrim($this->telefon, '+6'); - $mobile_no = '60178916936'; + //$mobile_no = '60178916936'; $message = 'AR-RAHN '.$this->caw_name.': MAKLUMAN, selaras penambahbaikan Sistem Ar-Rahn, Tuan/Puan diminta hadir ke premis *sebelum 15/7/2024* bagi menukar SAG dengan cara: 1. Tebus diff --git a/database/migrations/2023_11_19_111428_create_log_blast_wasap.php b/database/migrations/2023_11_19_111428_create_log_blast_wasap.php index b551dc8..fe2d09a 100644 --- a/database/migrations/2023_11_19_111428_create_log_blast_wasap.php +++ b/database/migrations/2023_11_19_111428_create_log_blast_wasap.php @@ -19,6 +19,7 @@ class CreateLogBlastWasap extends Migration $table->string('nokp')->nullable(); $table->string('notelefon')->nullable(); $table->string('norujukan')->nullable(); + $table->string('tempoh')->nullable(); $table->timestamps(); }); } diff --git a/routes/web.php b/routes/web.php index c6e5ba1..aa61eab 100644 --- a/routes/web.php +++ b/routes/web.php @@ -584,6 +584,8 @@ $router->group(['prefix'=>'api'], function () use ($router){ //API BLAST WASAP $router->post('blastwasap/{kodcaw}',['uses'=>'StokAuditController@blastwasap']); + $router->get('rekodblast/{kodcaw}',['uses'=>'StokAuditController@rekodblast']); + }); From 3364c6167f6d578d708fda65cd7ec8f6252a23ba Mon Sep 17 00:00:00 2001 From: Nur Izzati Zulkifli Date: Tue, 21 Nov 2023 16:22:39 +0800 Subject: [PATCH 4/5] tambah function SMS --- app/Http/Controllers/StokAuditController.php | 19 +++++-- app/Jobs/SMSPelangganSAGLAMA.php | 56 ++++++++++++++++++++ app/Jobs/WhatsappPelangganSAGLAMA.php | 2 +- 3 files changed, 71 insertions(+), 6 deletions(-) create mode 100644 app/Jobs/SMSPelangganSAGLAMA.php diff --git a/app/Http/Controllers/StokAuditController.php b/app/Http/Controllers/StokAuditController.php index 23ebf23..4de19c2 100644 --- a/app/Http/Controllers/StokAuditController.php +++ b/app/Http/Controllers/StokAuditController.php @@ -31,6 +31,7 @@ use App\BlastWasap; use App\HistoryEmasSandaran; use App\InOutMar; use App\Jobs\WhatsappPelangganSAGLAMA; +use App\Jobs\SMSPelangganSAGLAMA; use Illuminate\Http\Request; use App\CawanganDetail; @@ -50,7 +51,7 @@ class StokAuditController extends Controller $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$request->kodcaw)->first(); $audit = Gadai::on($cawangan['mysql']) - ->where([['tagpalsu','=',0],['tempoh','>=',$daritempoh],['tempoh','<=',$hinggatempoh],['sttebus','=','']]) + ->where([['tagpalsu','=',0],['tempoh','>=',$daritempoh],['tempoh','<=',$hinggatempoh],['sttebus','=',''],['taglel','=',0]]) ->orderBy('t_gadai', 'ASC') ->orderBy('sirig', 'ASC'); // ->get(); @@ -121,7 +122,7 @@ class StokAuditController extends Controller // dd($cawangan_detail->notel); $audit = Gadai::on($cawangan['mysql']) - ->where([['tagpalsu','=',0],['tempoh','>=',$daritempoh],['tempoh','<=',$hinggatempoh],['sttebus','=','']]) + ->where([['tagpalsu','=',0],['tempoh','>=',$daritempoh],['tempoh','<=',$hinggatempoh],['sttebus','=',''],['taglel','=',0]]) ->orderBy('t_gadai', 'ASC') ->orderBy('sirig', 'ASC'); // ->get(); @@ -178,7 +179,7 @@ class StokAuditController extends Controller //log auditrail $audit = new Audit(); $audit->users = $namapengguna; - $audit->actions = 'Blast Whatsapp'; + $audit->actions = 'Blast Whatsapp & SMS'; $audit->norujukan = $cal3->norujukan; $audit->new_data = $customer->telefon; $audit->old_data = $nokp; @@ -188,6 +189,7 @@ class StokAuditController extends Controller $audit->save(); dispatch(new WhatsappPelangganSAGLAMA($nokp,$customer->telefon,$caw_name,$nofoncaw)); + dispatch(new SMSPelangganSAGLAMA($nokp,$customer->telefon,$caw_name,$nofoncaw)); } } else{ @@ -234,15 +236,22 @@ class StokAuditController extends Controller $gadainokp[$index1]['listsag'] = $listsag; } - + if($listsag ?? ''){ $totalrekod = $listsag->sum('pinjaman'); $totalberat = $listsag->sum('berat'); $totalnilaimarhun = $listsag->sum('nilaimarhun'); $totalpinjaman = $listsag->sum('pinjaman'); $totalbakipjm = $listsag->sum('bakipjm'); $totaltunggakan = $listsag->sum('tunggakan'); + } - $arrayrekod = ['rekod' => $gadainokp, 'total' => $totalrekod,'totalberat' => $totalberat,'totalnilaimarhun' => $totalnilaimarhun,'totalpinjaman'=>$totalpinjaman,'totalbakipjm'=>$totalbakipjm,'totaltunggakan'=>$totaltunggakan]; + $arrayrekod = ['rekod' => $gadainokp ?? null, + 'total' => $totalrekod ?? null, + 'totalberat' => $totalberat ?? null, + 'totalnilaimarhun' => $totalnilaimarhun ?? null, + 'totalpinjaman'=>$totalpinjaman ?? null, + 'totalbakipjm'=>$totalbakipjm ?? null, + 'totaltunggakan'=>$totaltunggakan ?? null]; return response()->json($arrayrekod,200); } diff --git a/app/Jobs/SMSPelangganSAGLAMA.php b/app/Jobs/SMSPelangganSAGLAMA.php new file mode 100644 index 0000000..b3fe13d --- /dev/null +++ b/app/Jobs/SMSPelangganSAGLAMA.php @@ -0,0 +1,56 @@ +nokp = $nokp; + $this->telefon = $telefon; + $this->caw_name = $caw_name; + $this->nofoncaw = $nofoncaw; + } + + /** + * Execute the job. + * + * @return void + */ + public function handle() + { + // $mobile_no = ltrim($this->telefon, '+6'); + $mobile_no = '60178916936'; + $message = 'AR-RAHN '.$this->caw_name.': MAKLUMAN, selaras penambahbaikan Sistem Ar-Rahn, Tuan/Puan diminta hadir ke premis sebelum 15/7/2024 bagi menukar SAG dengan cara: +1. Tebus atau +2. Tebus Gadai Semula +Hubungi '.$this->nofoncaw.' untuk maklumat lanjut.'; + if(env('APP_ENV') != 'production'){ + $mobile_no = env('ADMIN_PHONE_NUMBER'); + } + + Http::get(env('ONEWAYSMS_API'), [ + 'apiusername' => env('ONEWAYSMS_AUTH_USER'), + 'apipassword' => env('ONEWAYSMS_AUTH_PASS'), + 'senderid' => 'INFO', + 'mobileno' => $mobile_no, + 'message' => $message, + 'languagetype' => 1 + ]); + + Log::info("SMS - Pelanggan ".$this->caw_name." SAG Tawarruq Lama -".$mobile_no); + + } +} diff --git a/app/Jobs/WhatsappPelangganSAGLAMA.php b/app/Jobs/WhatsappPelangganSAGLAMA.php index 5b98dc0..2bf4704 100644 --- a/app/Jobs/WhatsappPelangganSAGLAMA.php +++ b/app/Jobs/WhatsappPelangganSAGLAMA.php @@ -39,7 +39,7 @@ class WhatsappPelangganSAGLAMA extends Job atau 2. Tebus Gadai Semula -Hubungi '.$this->nofoncaw.'(Ar-Rahn '.$this->caw_name.') untuk maklumat lanjut.'; +Hubungi '.$this->nofoncaw.' untuk maklumat lanjut.'; if(env('APP_ENV') != 'production'){ $mobile_no = env('ADMIN_PHONE_NUMBER'); } From 68ee50139ef9b4dfd6e979ad32401dfae0307639 Mon Sep 17 00:00:00 2001 From: Nur Izzati Zulkifli Date: Wed, 22 Nov 2023 15:38:31 +0800 Subject: [PATCH 5/5] tambah rekod blast sms --- app/BlastSMS.php | 20 +++++ app/Http/Controllers/StokAuditController.php | 80 ++++++++++++++++--- app/Jobs/SMSPelangganSAGLAMA.php | 27 ++++++- app/Jobs/WhatsappPelangganSAGLAMA.php | 28 ++++++- ...23_11_19_111428_create_log_blast_wasap.php | 1 + .../2023_11_22_123033_log_blast_sms.php | 37 +++++++++ routes/web.php | 1 + 7 files changed, 177 insertions(+), 17 deletions(-) create mode 100644 app/BlastSMS.php create mode 100644 database/migrations/2023_11_22_123033_log_blast_sms.php diff --git a/app/BlastSMS.php b/app/BlastSMS.php new file mode 100644 index 0000000..2cd3d60 --- /dev/null +++ b/app/BlastSMS.php @@ -0,0 +1,20 @@ +telefon != 'null'){ $telefon=$customer->telefon; - //insert log blast wasap - $logblastwasap = new BlastWasap(); - $logblastwasap->kodcaw = $kodcaw; - $logblastwasap->nokp = $nokp; - $logblastwasap->notelefon = $customer->telefon; - $logblastwasap->norujukan = $cal3->norujukan; - $logblastwasap->tempoh = $cal3->tempoh; - $logblastwasap->created_at = $current; - $logblastwasap->updated_at = $current; - $logblastwasap->save(); + // //insert log blast wasap + // $logblastwasap = new BlastWasap(); + // $logblastwasap->kodcaw = $kodcaw; + // $logblastwasap->nokp = $nokp; + // $logblastwasap->notelefon = $customer->telefon; + // $logblastwasap->norujukan = $cal3->norujukan; + // $logblastwasap->tempoh = $cal3->tempoh; + // $logblastwasap->created_at = $current; + // $logblastwasap->updated_at = $current; + // $logblastwasap->save(); //log auditrail $audit = new Audit(); @@ -188,8 +189,8 @@ class StokAuditController extends Controller $audit->updated_at = $current; $audit->save(); - dispatch(new WhatsappPelangganSAGLAMA($nokp,$customer->telefon,$caw_name,$nofoncaw)); - dispatch(new SMSPelangganSAGLAMA($nokp,$customer->telefon,$caw_name,$nofoncaw)); + dispatch(new WhatsappPelangganSAGLAMA($nokp,$customer->telefon,$caw_name,$nofoncaw,$kodcaw,$cal3->norujukan,$cal3->tempoh)); + dispatch(new SMSPelangganSAGLAMA($nokp,$customer->telefon,$caw_name,$nofoncaw,$kodcaw,$cal3->norujukan,$cal3->tempoh)); } } else{ @@ -254,5 +255,58 @@ class StokAuditController extends Controller 'totaltunggakan'=>$totaltunggakan ?? null]; return response()->json($arrayrekod,200); } - + + public function rekodblastsms($kodcaw,Request $request) + { + + $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); + + $rekodblast = BlastSMS::on('mysql7') + ->where('kodcaw','=',$kodcaw); + $arraynorujukan = $rekodblast->pluck('norujukan')->toArray(); + $rekodaudit = $rekodblast->orderBy('id', 'asc')->get(); + $keybynorujukan = $rekodaudit->keyBy('norujukan'); + + $gadainokp = Gadai::on($cawangan['mysql'])->whereIn('norujukan', $arraynorujukan) + ->select('nokp') + ->groupBy('nokp') + ->get(); + $gadai_all_groupby_nokp = $rekodaudit->groupBy('nokp'); + // dd($gadai_all_groupby_nokp); + + foreach($gadainokp as $index1=>$cal){ + + if($gadai_all_groupby_nokp[$cal->nokp]){ + $gadainokp[$index1]['rekodblast'] = $gadai_all_groupby_nokp[$cal->nokp]; + } + $customer = Customer::on('mysql7')->where('kpbaru','=',$cal['nokp']) + ->orWhere('kplama','=',$cal['nokp']) + ->first(); + + $listsag = Gadai::on($cawangan['mysql'])->whereIn('norujukan', $arraynorujukan) + ->where('nokp', 'like', '%'.$cal['nokp'].'%') + ->get(); + // dd($listsag); + $gadainokp[$index1]['info'] = $customer; + $gadainokp[$index1]['listsag'] = $listsag; + } + + if($listsag ?? ''){ + $totalrekod = $listsag->sum('pinjaman'); + $totalberat = $listsag->sum('berat'); + $totalnilaimarhun = $listsag->sum('nilaimarhun'); + $totalpinjaman = $listsag->sum('pinjaman'); + $totalbakipjm = $listsag->sum('bakipjm'); + $totaltunggakan = $listsag->sum('tunggakan'); + } + + $arrayrekod = ['rekod' => $gadainokp ?? null, + 'total' => $totalrekod ?? null, + 'totalberat' => $totalberat ?? null, + 'totalnilaimarhun' => $totalnilaimarhun ?? null, + 'totalpinjaman'=>$totalpinjaman ?? null, + 'totalbakipjm'=>$totalbakipjm ?? null, + 'totaltunggakan'=>$totaltunggakan ?? null]; + return response()->json($arrayrekod,200); + } } diff --git a/app/Jobs/SMSPelangganSAGLAMA.php b/app/Jobs/SMSPelangganSAGLAMA.php index b3fe13d..4d0ea4e 100644 --- a/app/Jobs/SMSPelangganSAGLAMA.php +++ b/app/Jobs/SMSPelangganSAGLAMA.php @@ -4,6 +4,8 @@ namespace App\Jobs; use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Http; +use App\BlastSMS; +use Carbon\Carbon; class SMSPelangganSAGLAMA extends Job { @@ -11,17 +13,23 @@ class SMSPelangganSAGLAMA extends Job public $telefon; public $caw_name; public $nofoncaw; + public $kodcaw; + public $norujukan; + public $tempoh; /** * Create a new job instance. * * @return void */ - public function __construct($nokp, $telefon, $caw_name,$nofoncaw) + public function __construct($nokp, $telefon, $caw_name,$nofoncaw,$kodcaw,$norujukan,$tempoh) { $this->nokp = $nokp; $this->telefon = $telefon; $this->caw_name = $caw_name; $this->nofoncaw = $nofoncaw; + $this->kodcaw = $kodcaw; + $this->norujukan = $norujukan; + $this->tempoh = $tempoh; } /** @@ -31,6 +39,8 @@ class SMSPelangganSAGLAMA extends Job */ public function handle() { + $current = Carbon::now(); + $current = new Carbon(); // $mobile_no = ltrim($this->telefon, '+6'); $mobile_no = '60178916936'; $message = 'AR-RAHN '.$this->caw_name.': MAKLUMAN, selaras penambahbaikan Sistem Ar-Rahn, Tuan/Puan diminta hadir ke premis sebelum 15/7/2024 bagi menukar SAG dengan cara: @@ -40,8 +50,7 @@ Hubungi '.$this->nofoncaw.' untuk maklumat lanjut.'; if(env('APP_ENV') != 'production'){ $mobile_no = env('ADMIN_PHONE_NUMBER'); } - - Http::get(env('ONEWAYSMS_API'), [ + $response = Http::get(env('ONEWAYSMS_API'), [ 'apiusername' => env('ONEWAYSMS_AUTH_USER'), 'apipassword' => env('ONEWAYSMS_AUTH_PASS'), 'senderid' => 'INFO', @@ -50,6 +59,18 @@ Hubungi '.$this->nofoncaw.' untuk maklumat lanjut.'; 'languagetype' => 1 ]); + //insert log blast sms + $logblastsms = new BlastSMS(); + $logblastsms->kodcaw = $this->kodcaw; + $logblastsms->nokp = $this->nokp; + $logblastsms->notelefon = $this->telefon; + $logblastsms->norujukan = $this->norujukan; + $logblastsms->tempoh = $this->tempoh; + $logblastsms->status = $response; + $logblastsms->created_at = $current; + $logblastsms->updated_at = $current; + $logblastsms->save(); + Log::info("SMS - Pelanggan ".$this->caw_name." SAG Tawarruq Lama -".$mobile_no); } diff --git a/app/Jobs/WhatsappPelangganSAGLAMA.php b/app/Jobs/WhatsappPelangganSAGLAMA.php index 2bf4704..67ef1c4 100644 --- a/app/Jobs/WhatsappPelangganSAGLAMA.php +++ b/app/Jobs/WhatsappPelangganSAGLAMA.php @@ -4,6 +4,8 @@ namespace App\Jobs; use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Http; +use App\BlastWasap; +use Carbon\Carbon; class WhatsappPelangganSAGLAMA extends Job { @@ -11,17 +13,27 @@ class WhatsappPelangganSAGLAMA extends Job public $telefon; public $caw_name; public $nofoncaw; + public $kodcaw; + public $norujukan; + public $tempoh; + + /** * Create a new job instance. * * @return void */ - public function __construct($nokp, $telefon, $caw_name,$nofoncaw) + public function __construct($nokp, $telefon, $caw_name,$nofoncaw,$kodcaw,$norujukan,$tempoh) { $this->nokp = $nokp; $this->telefon = $telefon; $this->caw_name = $caw_name; $this->nofoncaw = $nofoncaw; + $this->kodcaw = $kodcaw; + $this->norujukan = $norujukan; + $this->tempoh = $tempoh; + + } /** @@ -31,6 +43,8 @@ class WhatsappPelangganSAGLAMA extends Job */ public function handle() { + $current = Carbon::now(); + $current = new Carbon(); // $mobile_no = ltrim($this->telefon, '+6'); //$mobile_no = '60178916936'; $message = 'AR-RAHN '.$this->caw_name.': MAKLUMAN, selaras penambahbaikan Sistem Ar-Rahn, Tuan/Puan diminta hadir ke premis *sebelum 15/7/2024* bagi menukar SAG dengan cara: @@ -50,6 +64,18 @@ Hubungi '.$this->nofoncaw.' untuk maklumat lanjut.'; 'instance_id' => env('WABOT_INSTANCES_ID'), 'access_token' => env('WABOT_TOKEN_KEYS') ]); + + //insert log blast wasap + $logblastwasap = new BlastWasap(); + $logblastwasap->kodcaw = $this->kodcaw; + $logblastwasap->nokp = $this->nokp; + $logblastwasap->notelefon = $this->telefon; + $logblastwasap->norujukan = $this->norujukan; + $logblastwasap->tempoh = $this->tempoh; + $logblastwasap->status = $response; + $logblastwasap->created_at = $current; + $logblastwasap->updated_at = $current; + $logblastwasap->save(); Log::info("WABOT - Pelanggan SAG Tawarruq Lama".$response); diff --git a/database/migrations/2023_11_19_111428_create_log_blast_wasap.php b/database/migrations/2023_11_19_111428_create_log_blast_wasap.php index fe2d09a..3556b11 100644 --- a/database/migrations/2023_11_19_111428_create_log_blast_wasap.php +++ b/database/migrations/2023_11_19_111428_create_log_blast_wasap.php @@ -20,6 +20,7 @@ class CreateLogBlastWasap extends Migration $table->string('notelefon')->nullable(); $table->string('norujukan')->nullable(); $table->string('tempoh')->nullable(); + $table->text('status')->nullable(); $table->timestamps(); }); } diff --git a/database/migrations/2023_11_22_123033_log_blast_sms.php b/database/migrations/2023_11_22_123033_log_blast_sms.php new file mode 100644 index 0000000..28515c8 --- /dev/null +++ b/database/migrations/2023_11_22_123033_log_blast_sms.php @@ -0,0 +1,37 @@ +id(); + $table->string('kodcaw')->nullable(); + $table->string('nokp')->nullable(); + $table->string('notelefon')->nullable(); + $table->string('norujukan')->nullable(); + $table->string('tempoh')->nullable(); + $table->text('status')->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('log_blast_sms'); + } +} diff --git a/routes/web.php b/routes/web.php index aa61eab..fd2db7e 100644 --- a/routes/web.php +++ b/routes/web.php @@ -585,6 +585,7 @@ $router->group(['prefix'=>'api'], function () use ($router){ //API BLAST WASAP $router->post('blastwasap/{kodcaw}',['uses'=>'StokAuditController@blastwasap']); $router->get('rekodblast/{kodcaw}',['uses'=>'StokAuditController@rekodblast']); + $router->get('rekodblastsms/{kodcaw}',['uses'=>'StokAuditController@rekodblastsms']); });