tambah function stok audit khas dan job blast wasap

This commit is contained in:
BTMS1
2023-11-20 08:44:39 +08:00
parent 2649099856
commit eb60667973
5 changed files with 349 additions and 0 deletions
+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,202 @@
<?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 Illuminate\Http\Request;
use App\CawanganDetail;
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','=','']])
->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');
}
}
+57
View File
@@ -0,0 +1,57 @@
<?php
namespace App\Jobs;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Http;
class WhatsappPelangganSAGLAMA extends Job
{
public $nokp;
public $telefon;
public $caw_name;
public $nofoncaw;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct($nokp, $telefon, $caw_name,$nofoncaw)
{
$this->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);
}
}
@@ -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,35 @@
<?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->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('log_blast_wasap');
}
}