update blast wabot tuntut baki dan parameter setting

This commit is contained in:
Nur Izzati Zulkifli
2023-05-31 15:50:39 +08:00
parent abfdc8f235
commit 5960e2265c
10 changed files with 411 additions and 53 deletions
+84 -2
View File
@@ -28,6 +28,7 @@ use App\Models\LelongTebus;
use App\Models\LogUser;
use Illuminate\Support\Facades\Log;
use App\Jobs\WhatsappNotisPeringatanKedua;
use App\Jobs\WhatsappNotisTuntutBaki;
use App\Models\FailedJob;
use Carbon\Carbon;
use PDF;
@@ -1741,10 +1742,10 @@ Sekian, terima kasih.';
$lelongid[$index1]['bilangan'] = sizeof($listsag);
// dd(sizeof($listsag));
$caw_id = $bil['caw_id'];
}
return view('jananotis.notistuntutbaki',compact('lelongid'));
return view('jananotis.notistuntutbaki',compact('lelongid','caw_id','caw'));
}
public function senaraituntutbaki($lelongid, $cawid)
@@ -1907,6 +1908,87 @@ Sekian, terima kasih.';
return $pdf->download('Penjanaan Notis Tuntut Baki ' . $lelong_id . '.pdf');
}
public function blastnotistuntutbaki($lelong_id,$caw_id)
{
$user = Auth::user();
$caw = Cawangan::where('id', '=', $caw_id)->first();
$bilblast = 0;
$currentdate = Carbon::now();
$lel = Lelong::find($lelong_id);
WhatsappNotisTuntutBaki::dispatch($user->id, $user->kodcaw, $lelong_id, $caw_id);
$updatestatus = CawanganLelong::where('lelong_id', '=', $lelong_id)->where('caw_id', '=', $caw_id)->first();
$bilblast = $updatestatus->bilblast;
$bilblast++;
$updatestatus->bilblast = $bilblast; //blastwabot
$updatestatus->save();
return redirect()->route('jananotis.notistuntutbaki')
->with('success','Blast Whatsapp Dalam Proses');
}
Public function kemaskininotistuntutbaki(Request $request){
$tetapan = Tetapan::where('id','=',1)->get();
return view('parameter.kemaskininotistuntutbaki',compact('tetapan'));
}
public function storeparabaki(Request $request) {
// dd($request->all());
$tetapan = Tetapan::find(1);
$tetapan->parabaki = $request->parabaki;
$tetapan->update();
$cawangan = Cawangan::all();
foreach($cawangan as $updatecaw){
$update = Cawangan::where('id', $updatecaw['id'])
->update(['parabaki'=>$request->parabaki]);
// $update->para2 = $request->para2;
// $update->update();
}
return redirect()->route('parameter.kemaskininotistuntutbaki')
->with('success','Kemaskini Berjaya');
}
public function storeparabaki2(Request $request) {
// dd($request->all());
$tetapan = Tetapan::find(1);
$tetapan->parabaki2 = $request->parabaki2;
$tetapan->update();
$cawangan = Cawangan::all();
foreach($cawangan as $updatecaw){
$update = Cawangan::where('id', $updatecaw['id'])
->update(['parabaki2'=>$request->parabaki2]);
// $update->para2 = $request->para2;
// $update->update();
}
return redirect()->route('parameter.kemaskininotistuntutbaki')
->with('success','Kemaskini Berjaya');
}
+165
View File
@@ -0,0 +1,165 @@
<?php
namespace App\Jobs;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldBeUnique;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use App\Models\Cawangan;
use Carbon\Carbon;
use App\Models\Lelong;
use App\Models\LelongCawangan;
use App\Models\LelongBid;
use App\Models\Gadai;
use App\Models\Customer;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Http;
use App\Models\CawanganLelong;
use Illuminate\Support\Facades\Artisan;
class WhatsappNotisTuntutBaki implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public $user_id;
public $user_kodcaw;
protected $lelong_id;
protected $caw_id;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct($user_id, $user_kodcaw, $lelong_id,$caw_id)
{
$this->user_id = $user_id;
$this->user_kodcaw = $user_kodcaw;
$this->lelong_id = $lelong_id;
$this->caw_id = $caw_id;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
// $user = Auth::user();
$caw = Cawangan::where('id', '=', $this->caw_id)->first();
$currentdate = Carbon::now();
$lel = Lelong::with('cawangan')->find($this->lelong_id);
$cawanganDetail = $lel->cawangan->find($this->caw_id);
$lelong_id = $this->lelong_id;
$cawangan = Cawangan::with(["lelongBid" => function($q) use ($lelong_id){
$q->where('lelong_id', '=', $lelong_id)->select('id','caw_id','kodcaw','norujukan','pinjaman','bakiupah','hargaasas','nilaimarhun','cajlelong','baki');
}])
->where('caw_code','=',$cawanganDetail->caw_code)->first();
$lelongbid_data_pluck_norujukan = $cawangan->lelongBid->pluck('norujukan')->toArray();
$gadai_all = LelongCawangan::on($cawanganDetail->caw_code)->whereIn('lelong.norujukan', $lelongbid_data_pluck_norujukan)
->join('gadai','gadai.norujukan','=','lelong.norujukan')
->where('trkhtuntut','=',null)
->where('baki','>', '0.00')
->select('nokp', 'lelong.norujukan','lelong.t_lelong AS tarikhlelong','lelong.hargajual','lelong.gst_hj','gadai.bakipjm','lelong.bakiupah','lelong.cajlelong','lelong.gst_cl','lelong.cajlain','lelong.baki')
->orderBy('nokp', 'asc')
->orderBy('lelong.norujukan','ASC')
->get();
$customers_list = $gadai_all->pluck('nokp')->unique();
$customers = Customer::whereIn('kpbaru', $customers_list)
->orWhereIn('kplama', $customers_list)
->select('id','kpbaru','kplama' ,'nama', 'telefon')
->get()->keyBy('id');
$customers_keyBy_noKp = $customers->keyBy(function ($item) {
if ($item->kpbaru != '') {
return $item->kpbaru;
} else if ($item->kplama != '') {
return $item->kplama;
}
});
$customers_pluck_notel = $customers_keyBy_noKp->pluck('telefon');
// dd($customers_pluck_notel);
foreach($customers_pluck_notel as $index1 =>$custphone) {
// dd($custphone);
$special = preg_match('/[\'^£$%&*()}{@#~?><>,|=_+¬-]/', $custphone);
// dump($special);
if($special == 0){
if($custphone == ''){
$newtel = '';
}elseif($custphone <> ''){
$newtel = '6'.$custphone;
}
}
elseif($special == 1){
if($custphone == ''){
$newtel = '';
}elseif($custphone <> ''){
$newtel = '6'.str_replace( array( '-' ), '', $custphone);
}
}
// dump($newtel);
}
$lelong_bid_all_groupby_norujukan = $gadai_all->groupBy('norujukan');
$lelong_all_keyBy_norujukan = $gadai_all->keyBy('norujukan');
foreach($lelong_bid_all_groupby_norujukan as $index7=>$lelongbid){
// dd($notis_all_keyBy_norujukan);
if($lelong_all_keyBy_norujukan[$index7]){
$gadai_true = $lelong_all_keyBy_norujukan[$index7];
$gadai_true['data_lelongbid'] = $lelongbid;
}
}
// dd($gadai_all);
foreach ($gadai_all as $index => $suratnotis) {
$datanotisbid = $suratnotis['data_lelongbid'][0]->fasa;
// dd($suratnotis);
if($customers_keyBy_noKp[$suratnotis->nokp])
{
$mobile_no = '60178916936';
// $mobile_no = $newtel;
$user_true = $customers_keyBy_noKp[$suratnotis->nokp];
$nama = $user_true->nama;
$baki = number_format($suratnotis->baki, 2, '.', ',');
$t_jual = Carbon::parse($suratnotis->t_jual);
$t_jualf1 = $t_jual->format('d-m-Y');
$cawname = $caw->caw_name;
$parabaki2 = $caw->parabaki2;
// dd($t_matang1);
$message = '*NOTIS MAKLUMAN LEBIHAN WANG LELONGAN BARANGAN*
Nama: *'.$nama.'*
No.KP: *'.$suratnotis->nokp.'*'.'
No.Rujukan: *'.$suratnotis->norujukan.'*
Tarikh Lelong: *'.$t_jualf1.'*
Wang Lebihan: *RM'.$baki.'*'.'
'.$parabaki2. ' *'.$cawname.'*.
Terima Kasih';
$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 - Notis Tuntutan Baki Lelong" . $response);
}
sleep(2);
}
}
}
@@ -30,7 +30,10 @@ class CreateCawangansTable extends Migration
$table->string('nofaks')->nullable();
$table->string('lokasi')->nullable();
$table->string('pkb_jmc')->nullable();
// $table->string('para2')->nullable();
$table->longText('para2')->nullable();
$table->longText('para3')->nullable();
$table->longText('parabaki')->nullable();
$table->longText('parabaki2')->nullable();
$table->timestamps();
});
@@ -65,6 +65,7 @@ class CreateLelongsTable extends Migration
$table->string('lokasi')->nullable();
$table->integer('fasa')->default(0);
$table->integer('kali')->nullable();
$table->integer('bilblast')->nullable();
$table->timestamps();
$table->foreign('caw_id')
@@ -199,6 +200,8 @@ class CreateLelongsTable extends Migration
$table->timestamps();
$table->longText('para2')->nullable();
$table->longText('para3')->nullable();
$table->longText('parabaki')->nullable();
$table->longText('parabaki2')->nullable();
// $table->foreign('norujukan')
@@ -220,5 +223,6 @@ class CreateLelongsTable extends Migration
Schema::dropIfExists('lelongbidmarhun');
Schema::dropIfExists('lelkarat');
Schema::dropIfExists('lelkarat_temp');
Schema::dropIfExists('tetapan');
}
}
+6
View File
@@ -145,6 +145,11 @@ class RolesSeeder extends Seeder
'description' => 'Report By Cawangan(operasi)'
]);
Permission::create([
'name' => 'parameter',
'description' => 'Parameter'
]);
//account
Permission::create([
'name' => 'pengesahanbayaran',
@@ -232,6 +237,7 @@ class RolesSeeder extends Seeder
$role6->givePermissionTo('reportkali');
$role6->givePermissionTo('pengurusangambar');
$role6->givePermissionTo('reportbycaw');
$role6->givePermissionTo('parameter');
+14 -43
View File
@@ -584,16 +584,7 @@
<li class="{{ (request()->is('tangguhlelong/tangguhlelongoperasi/*') || request()->is('tangguhlelong/tangguhlelongoperasi') ) ? 'active' : '' }}">
<a href="{{url('tangguhlelong/tangguhlelongoperasi')}}">Tangguh Lelong</a>
</li>
<li class="{{ (request()->is('jananotis/*')) ? 'active' : '' }}">
<a href="{{url('jananotis/kemaskininotis')}}">
<!-- <div class="sidebar-menu-main-title"> -->
<!-- <span class="material-symbols-rounded sidebar-menu-item-main">
published_with_changes
</span> -->
Notis Lelong
<!-- </div> -->
</a>
</li>
</ul>
</li>
<li>
@@ -762,49 +753,29 @@
</li>
</ul>
</li>
{{-- <li class="{{ (request()->is('reportkali/')) ? 'active' : '' }}">
<a href="#reportallSubmenu" data-toggle="collapse" aria-expanded="false">
<li>
<div class="sidebar-menu-title">Parameter</div>
</li>
<li class="{{ (request()->is('parameter/')) ? 'active' : '' }}">
<a href="#parameterSubmenu" data-toggle="collapse" aria-expanded="false">
<div class="sidebar-menu">
<div class="sidebar-menu-main-title">
<span class="material-symbols-rounded sidebar-menu-item-main">
chat
add_circle
</span>
By Batch
Notis
</div>
<span class="material-symbols-rounded sidebar-menu-item-expand">expand_more</span>
</div>
</a>
<ul class="list-unstyled collapse {{ (request()->is('reportkali/*')) ? 'show' : '' }}" id="reportallSubmenu">
<li class="{{ (request()->is('report/lapbrglelongindexall/*') || request()->is('reportkali/lapbrglelongindexall') ) ? 'active' : '' }}">
<a href="{{url('reportkali/lapbrglelongindexall')}}">Barang Lelong by Batch</a>
<ul class="list-unstyled collapse {{ (request()->is('parameter/*')) ? 'show' : '' }}" id="parameterSubmenu">
<li class="{{ (request()->is('parameter/kemaskininotis/*') || request()->is('parameter/kemaskininotis') ) ? 'active' : '' }}">
<a href="{{url('parameter/kemaskininotis')}}">Notis Lelong</a>
</li>
</ul>
<ul class="list-unstyled collapse {{ (request()->is('reportkali/*')) ? 'show' : '' }}" id="reportallSubmenu">
<li class="{{ (request()->is('reportkali/lapbidaanpembidaindexall/*') || request()->is('reportkali/lapbidaanpembidaindexall') ) ? 'active' : '' }}">
<a href="{{url('reportkali/lapbidaanpembidaindexall')}}">Senarai Lelong Pembida by Batch</a>
</li>
</ul>
<ul class="list-unstyled collapse {{ (request()->is('reportkali/*')) ? 'show' : '' }}" id="reportallSubmenu">
<li class="{{ (request()->is('reportkali/laplelongindexall/*') || request()->is('reportkali/laplelongindexall') ) ? 'active' : '' }}">
<a href="{{url('reportkali/laplelongindexall')}}">Lelong Keseluruhan by Batch</a>
</li>
</ul>
</li> --}}
<li class="{{ (request()->is('backdate/')) ? 'active' : '' }}">
<a href="#reportBackdateSubmenu" data-toggle="collapse" aria-expanded="false">
<div class="sidebar-menu">
<div class="sidebar-menu-main-title">
<span class="material-symbols-rounded sidebar-menu-item-main">
chat_bubble
</span>
Back Date
</div>
<span class="material-symbols-rounded sidebar-menu-item-expand">expand_more</span>
</div>
</a>
<ul class="list-unstyled collapse {{ (request()->is('backdate/*')) ? 'show' : '' }}" id="reportBackdateSubmenu">
<li class="{{ (request()->is('backdate/bdbrglelong/*') || request()->is('backdate/bdbrglelong') ) ? 'active' : '' }}">
<a href="{{url('backdate/bdbrglelong')}}">Barang Lelong</a>
<ul class="list-unstyled collapse {{ (request()->is('parameter/*')) ? 'show' : '' }}" id="parameterSubmenu">
<li class="{{ (request()->is('parameter/kemaskininotistuntutbaki/*') || request()->is('parameter/kemaskininotistuntutbaki') ) ? 'active' : '' }}">
<a href="{{url('parameter/kemaskininotistuntutbaki')}}">Notis Tuntut Baki</a>
</li>
</ul>
</li>
@@ -24,7 +24,7 @@
<th>Batch Lelong</th>
<th>Tarikh Lelong</th>
<th>Fasa</th>
<th>Bilangan SAG</th>
<th>Bilangan SAG <br>Belum Tuntut</th>
<th class="text-center">Tindakan</th>
</tr>
</thead>
@@ -44,8 +44,9 @@
<td class="text-center">
<a class="btn m-1 btn-primary" href="{{ route('jananotis.senaraituntutbaki',['lelongid'=>$bid->lelong_id,'cawid'=>$bid['caw_id']]) }}" data-toggle="tooltip" data-placement="top" title="Butiran Senarai Notis" ><i class="far fa-edit"></i></a>
{{-- @if($bid->fasa == '1') --}}
<a class="confirmrefresh btn m-1 btn-warning" href="{{ route('jananotis.surattuntutbakipdf',$bid->lelong_id) }}" data-toggle="tooltip" data-placement="top" title="Muat Turun Jana Notis Fasa 1" style="margin-right:40px" ><i class="fas fa-download"></i></a>
<a class="confirmrefresh btn m-1 btn-warning" href="{{ route('jananotis.surattuntutbakipdf',$bid->lelong_id) }}" data-toggle="tooltip" data-placement="top" title="Muat Turun Jana Notis Tuntut Baki" style="margin-right:40px" ><i class="fas fa-download"></i></a>
<a class="confirmrefresh btn m-1 btn-success" href="{{ route('jananotis.blastnotistuntutbaki',[$bid->lelong_id,$bid->caw_id]) }}" data-toggle="tooltip" data-placement="top" title="Blast Whatsapp" style="margin-right:40px" ><i class="fas fa-phone"></i></a>
<span>
{{-- @elseif($bid->fasa == '2')
<a class="confirmrefresh btn m-1 btn-warning" href="{{ route('jananotis.jananotisfasa2',$bid->lelong_id) }}" data-toggle="tooltip" data-placement="top" title="Muat Turun Jana Notis Fasa 2" style="margin-right:40px" ><i class="fas fa-download"></i></a>
@endif --}}
@@ -0,0 +1,118 @@
@extends('layouts.app')
@section('content')
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.10/css/select2.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.10/js/select2.min.js"></script>
<script src="https://cdn.ckeditor.com/4.16.2/standard/ckeditor.js"></script>
<div class="container-fluid">
<div class="row ">
<div class="col-md-12 mx-auto card">
<h3 class="pt-3">Kemaskini Notis Tuntut Baki Surat</h3>
@if ($message = Session::get('failed'))
<div class="alert alert-danger">
<p>{{ $message }}</p>
</div>
@endif
<form action="{{route('parameter.storeparabaki')}}" method="POST" enctype="multipart/form-data">
@csrf
@foreach($tetapan as $notis)
{{-- {{dd($notis->para2)}} --}}
<div class="form-group row">
<div class="col-sm-4" id="parabaki">
<textarea name="parabaki" id="article-ckeditor" >
{{$notis->parabaki}}
</textarea>
</div>
</div>
<div class="form-group row">
<div class="col-sm-10">
<button type="submit" class="btn btn-primary">Simpan</button>
</div>
</div>
@endforeach
</form>
</div>
</div>
</div>
<div class="container-fluid">
<div class="row ">
<div class="col-md-12 mx-auto card">
<h3 class="pt-3">Kemaskini Notis Tuntut Baki Blast Whatsapp</h3>
@if ($message = Session::get('failed'))
<div class="alert alert-danger">
<p>{{ $message }}</p>
</div>
@endif
<form action="{{route('parameter.storeparabaki2')}}" method="POST" enctype="multipart/form-data">
@csrf
@foreach($tetapan as $notis)
{{-- {{dd($notis->para2)}} --}}
<div class="form-group row">
<div class="col-sm-4" id="parabaki2">
<textarea name="parabaki2" rows="6" cols="150">
{{$notis->parabaki2}}
</textarea>
</div>
</div>
<div class="form-group row">
<div class="col-sm-10">
<button type="submit" class="btn btn-primary">Simpan</button>
</div>
</div>
@endforeach
</form>
</div>
</div>
</div>
<script>
CKEDITOR.replace( 'article-ckeditor', {
height: 400,
width: 1500
} );
</script>
<script>
CKEDITOR.replace( 'article-ckeditor2', {
height: 400,
width: 1500
} );
</script>
<script>
$('#caw').select2({
width: '100%',
placeholder: "Pilih Cawangan",
allowClear: true
});
$(document).ready(function () {
$("input[name=fasa]").change(function(){
if($("#fasa1").is(':checked')){
$("#jbg").val('').prop("readonly", false);
}
if($("#fasa2").is(':checked')){
$("#jbg").val('12').prop("readonly", true);
}
});
});
</script>
@endsection
@@ -272,10 +272,10 @@
</table>
<br>
<p align="justify">Jika tuan/puan gagal menuntut wang lebihan (sekiranya ada) dalam masa empat bulan dari tarikh surat ini, wang lebihan tersebut akan diserahkan kepada Akauntan
<p>@php echo $caw['parabaki']; @endphp</p>
{{-- <p align="justify">Jika tuan/puan gagal menuntut wang lebihan (sekiranya ada) dalam masa empat bulan dari tarikh surat ini, wang lebihan tersebut akan diserahkan kepada Akauntan
Negara (Seksyen 25(1) Akta Pemegang Pajak Gadai 1992). Tuan/puan diminta membawa Kad Pengenalan dan Surat Akuan Gadaian semasa membuat tuntutan wang tersebut.
</p>
</p> --}}
<br>
<p>Sekian, terima kasih.</p>
+8
View File
@@ -513,6 +513,7 @@ Route::group(['middleware' => ['permission:jananotis'],'prefix'=>'jananotis'], f
Route::get('/notistuntutbaki',['as'=>'jananotis.notistuntutbaki','uses'=>'NotisController@notistuntutbaki']);
Route::get('/senaraituntutbaki/{lelongid}/{cawid}', ['as'=>'jananotis.senaraituntutbaki','uses'=>'NotisController@senaraituntutbaki']);
Route::get('/surattuntutbakipdf/{lelong_id}',['as'=>'jananotis.surattuntutbakipdf','uses'=>'NotisController@surattuntutbakipdf']);
Route::get('/blastnotistuntutbaki/{lelong_id}/{caw_id}',['as'=>'jananotis.blastnotistuntutbaki','uses'=>'NotisController@blastnotistuntutbaki']);
});
//Report
@@ -679,3 +680,10 @@ Route::group(['middleware' => ['permission:reportbycaw'],'prefix'=>'reportbycaw'
});
// Route::get('/', 'ChartController@index');
Route::group(['middleware' => ['permission:parameter'],'prefix'=>'parameter'], function () {
Route::get('/kemaskininotis',['as'=>'parameter.kemaskininotis','uses'=>'NotisController@kemaskininotis']);
Route::get('/kemaskininotistuntutbaki',['as'=>'parameter.kemaskininotistuntutbaki','uses'=>'NotisController@kemaskininotistuntutbaki']);
Route::post('/storeparabaki',['as'=>'parameter.storeparabaki','uses'=>'NotisController@storeparabaki']);
Route::post('/storeparabaki2',['as'=>'parameter.storeparabaki2','uses'=>'NotisController@storeparabaki2']);
});