Merged in izzati-ujrah (pull request #20)

Izzati ujrah
This commit is contained in:
izzati zulkifli
2023-11-28 08:57:21 +00:00
9 changed files with 630 additions and 0 deletions
+20
View File
@@ -0,0 +1,20 @@
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class BlastSMS extends Model
{
protected $table = 'log_blast_sms';
protected $connection = 'mysql7';
protected $fillable = [
'id',
'kodcaw',
'nokp',
'notelefon',
'status',
'created_at',
'updated_at',
];
}
+19
View File
@@ -0,0 +1,19 @@
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class BlastWasap extends Model
{
protected $table = 'log_blast_wasap';
protected $connection = 'mysql7';
protected $fillable = [
'id',
'kodcaw',
'nokp',
'notelefon',
'created_at',
'updated_at',
];
}
@@ -0,0 +1,312 @@
<?php
namespace App\Http\Controllers;
use App\Gadai;
use App\Marhun;
use App\Cawangan;
use App\Transaction;
use App\TransaksiKeuntungan;
use App\TransactionOnline;
use App\batalGadai;
use App\TuntutBaki;
use App\AnsRugi;
use App\Lelong;
use App\WTD;
use App\HapusKira;
use App\Tebus;
use App\Vault;
use App\Tunai;
use App\Komuditi;
use App\KawalanStokLama;
use App\KawalanStok;
use App\KadarUpah;
use App\Moratorium;
use App\Audit;
use App\Customer;
use App\KomuditiPurchase;
use App\KomuditiTransaksi;
use App\Advansur;
use App\BlastWasap;
use App\HistoryEmasSandaran;
use App\InOutMar;
use App\Jobs\WhatsappPelangganSAGLAMA;
use App\Jobs\SMSPelangganSAGLAMA;
use Illuminate\Http\Request;
use App\CawanganDetail;
use App\BlastSMS;
use App\Services\OnePercentServices;
use Illuminate\Support\Facades\DB;
use Carbon\Carbon;
class StokAuditController extends Controller
{
public function LaporanAuditKhasAktif($kodcaw,Request $request)
{
// dd($request->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','=',''],['taglel','=',0]])
->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','=',''],['taglel','=',0]])
->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;
// //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 & SMS';
$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,$kodcaw,$cal3->norujukan,$cal3->tempoh));
dispatch(new SMSPelangganSAGLAMA($nokp,$customer->telefon,$caw_name,$nofoncaw,$kodcaw,$cal3->norujukan,$cal3->tempoh));
}
}
else{
return response()->json('failed');
}
}
}
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;
}
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);
}
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);
}
}
+77
View File
@@ -0,0 +1,77 @@
<?php
namespace App\Jobs;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Http;
use App\BlastSMS;
use Carbon\Carbon;
class SMSPelangganSAGLAMA extends Job
{
public $nokp;
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,$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;
}
/**
* Execute the job.
*
* @return void
*/
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:
1. Tebus atau
2. Tebus Gadai Semula
Hubungi '.$this->nofoncaw.' untuk maklumat lanjut.';
if(env('APP_ENV') != 'production'){
$mobile_no = env('ADMIN_PHONE_NUMBER');
}
$response = Http::get(env('ONEWAYSMS_API'), [
'apiusername' => env('ONEWAYSMS_AUTH_USER'),
'apipassword' => env('ONEWAYSMS_AUTH_PASS'),
'senderid' => 'INFO',
'mobileno' => $mobile_no,
'message' => $message,
'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);
}
}
+83
View File
@@ -0,0 +1,83 @@
<?php
namespace App\Jobs;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Http;
use App\BlastWasap;
use Carbon\Carbon;
class WhatsappPelangganSAGLAMA extends Job
{
public $nokp;
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,$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;
}
/**
* Execute the job.
*
* @return void
*/
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:
1. Tebus
atau
2. Tebus Gadai Semula
Hubungi '.$this->nofoncaw.' 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')
]);
//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);
}
}
@@ -0,0 +1,36 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateJobsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('jobs', function (Blueprint $table) {
$table->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');
}
}
@@ -0,0 +1,37 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateLogBlastWasap extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('log_blast_wasap', function (Blueprint $table) {
$table->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_wasap');
}
}
@@ -0,0 +1,37 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class LogBlastSms extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('log_blast_sms', function (Blueprint $table) {
$table->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');
}
}
+9
View File
@@ -590,6 +590,15 @@ $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->get('rekodblast/{kodcaw}',['uses'=>'StokAuditController@rekodblast']);
$router->get('rekodblastsms/{kodcaw}',['uses'=>'StokAuditController@rekodblastsms']);
});
$router->group(['prefix'=>'e-arrahn'], function () use ($router){