Files
kaunter/app/Http/Controllers/CallCenterController.php
T
2025-08-04 12:52:01 +08:00

1152 lines
51 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Services\CustomerService;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Auth;
use Carbon\Carbon;
use PDF;
class CallCenterController extends Controller
{
public function __construct()
{
$this->middleware('auth');
}
public function notisperingatan(Request $request){
$auth_user = Auth::user();
$api_url = config('api.url');
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json();
return view('callcenter.notisperingatan',compact('cawangan_info','api_url'));
}
public function notisperingatanpertama(Request $request){
$auth_user = Auth::user();
$api_url = config('api.url');
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json();
return view('callcenter.notisperingatanpertama',compact('cawangan_info','api_url'));
}
public function cariansag(Request $request)
{
// dd($request->all());
$request->radaktif === 'aktif';
$api_url = config('api.url');
$auth_user = Auth::user();
$current = Carbon::now();
$current = new Carbon();
$tarikh_cetak = $current->toDateString();
$daritempoh = $request->daritempoh;
$hinggatempoh = $request->hinggatempoh;
$cawangan_all = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/arcc/cawangan',[
'daritempoh' => $daritempoh,
'hinggatempoh' => $hinggatempoh,
])->json();
$senarai = [];
foreach($cawangan_all as $cawangan){
$kodcaw = $cawangan['kodcaw'];
// $kodcaw = 'WCY';
$datagadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/arcc/datagadai/'.$request->radaktif.'/'.$kodcaw ,[
'daritempoh' => $daritempoh,
'hinggatempoh' => $hinggatempoh,
])->json();
$data = [
'kodcaw'=>$cawangan['kodcaw'],
'caw_name'=>$cawangan['details_caw'],
'datagadai' => $datagadai ? $datagadai : '',
];
array_push($senarai,$data);
// dd($data);
}
return view('callcenter.listcariansag', compact(
'kodcaw',
'senarai',
'daritempoh',
'hinggatempoh',
));
}
public function cariansagnotispertama(Request $request)
{
// dd($request->all());
$request->radaktif === 'aktif';
$api_url = config('api.url');
$auth_user = Auth::user();
$current = Carbon::now();
$current = new Carbon();
$tarikh_cetak = $current->toDateString();
$fasa = $request->fasa;
$cawangan_all = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/arcc/cawangan',[
'fasa' => $fasa,
])->json();
// dd($cawangan_all );
$senarai = [];
foreach($cawangan_all as $cawangan){
$kodcaw = $cawangan['kodcaw'];
$datagadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/arcc/cariannotispertama/'.$kodcaw,[
'fasa' => $fasa
])->json();
$data = [
'kodcaw'=>$cawangan['kodcaw'],
'caw_name'=>$cawangan['details_caw'],
'datagadai' => $datagadai ? $datagadai : '',
];
array_push($senarai,$data);
}
return view('callcenter.listcariansagnotispertama', compact(
'kodcaw',
'senarai',
'fasa'
));
}
public function janadatanotisperingatan(Request $request)
{
$current = Carbon::now();
$current = new Carbon();
$currentNow = Carbon::now();
$senarai = [];
$tarikh_savedaftarnotis = $current->toDateString();
$daritempoh = $request->daritempoh;
$hinggatempoh = $request->hinggatempoh;
$kodcaw = $request->kodcaw;
$selected_caw = $request->caw;
// dd($selected_caw);
$getbatchnotis=Http::withOptions(['verify' => config('app.api_verify')])->get( config('api.url').'/arcc/getbatchnotis',[
'daritempoh' => $daritempoh,
'hinggatempoh' => $hinggatempoh,
])->json();
$newbatchnotis=$getbatchnotis;
if(!empty($selected_caw))
{
foreach($selected_caw as $index=>$caw){
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $caw)->json();
// dd($cawangan_info);
$insertdatagadai = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url').'/arcc/insertdatagadai/aktif/'.$caw ,[
'daritempoh' => $daritempoh,
'hinggatempoh' => $hinggatempoh,
'kodcaw' => $caw,
'notisid' => $newbatchnotis
])->json();
$data = [
'kodcaw'=>$caw,
'caw_name'=>$cawangan_info['details_caw'],
'datagadai' => $insertdatagadai ? $insertdatagadai : '',
];
array_push($senarai,$data);
}
}
return redirect()->route('arcc.notisperingatan')->with('success','Berjaya Daftar Notis Peringatan.');
}
public function janadatanotispertama(Request $request)
{
$current = Carbon::now();
$current = new Carbon();
$currentNow = Carbon::now();
$senarai = [];
$tarikh_savedaftarnotis = $current->toDateString();
$fasa = $request->fasa;
$kodcaw = $request->kodcaw;
$selected_caw = $request->caw;
// dd($selected_caw);
if(!empty($selected_caw))
{
$getbatchnotispertama=Http::withOptions(['verify' => config('app.api_verify')])->get( config('api.url').'/arcc/getbatchnotispertama',[
'fasa' => $fasa
])->json();
$newbatchnotis=$getbatchnotispertama;
foreach($selected_caw as $index=>$caw){
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $caw)->json();
// dd($cawangan_info);
$insertnotispertama = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url').'/arcc/insertnotispertama/'.$caw ,[
'fasa' => $fasa,
'kodcaw' => $caw,
'notisid' => $newbatchnotis
])->json();
$data = [
'kodcaw'=>$caw,
'caw_name'=>$cawangan_info['details_caw'],
'datagadai' => $insertnotispertama ? $insertnotispertama : '',
];
array_push($senarai,$data);
}
return redirect()->route('arcc.notisperingatanpertama')->with('success','Berjaya Daftar Notis Peringatan Pertama.');
}else{
return redirect()->route('arcc.notisperingatanpertama')->with('failed','Maaf,Tiada Cawangan Dipilih Sila Cuba Lagi...');
}
}
public function rekodnotisperingatan()
{
$auth_user = Auth::user();
$api_url = config('api.url');
$arrayinfo = [];
// $notis = Notis::select('tarikh_notis','id')
// ->groupBy('tarikh_notis')
// ->get();
$notis = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/senarainotisperingatan')->json();
// dd($notis);
foreach($notis as $info)
{
$getcawnotis = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/getcawnotis/'.$info['id'])->json();
array_push($arrayinfo, ['info'=> $info,'cawnotis' => $getcawnotis]);
}
// dd($arrayinfo);
return view('callcenter.rekodnotisperingatan',compact('notis','arrayinfo'));
}
public function detailnotisperingatan($notisid)
{
$auth_user = Auth::user();
$api_url = config('api.url');
$senarai = [];
$detailnotis = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/getcawnotis/'.$notisid)->json();
foreach($detailnotis as $info)
{
$getcawnotisbycaw = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/getcawnotisbycaw', [
'kodcaw' => $info[0]['kodcaw'],
'notisid' => $notisid
])->json();
$data = [
'detailnotis' => $info ? $info : '',
'getcawnotisbycaw' => $getcawnotisbycaw ? $getcawnotisbycaw : '',
];
array_push($senarai,$data);
}
return view('callcenter.detailnotisperingatan',compact('detailnotis','senarai','notisid'));
}
public function bycawnotisperingatan($kodcaw,$notisid, Request $request)
{
$auth_user = Auth::user();
$api_url = config('api.url');
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $kodcaw)->json();
$bycawnotisperingatan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/bycawnotisperingatan/'.$kodcaw.'/'.$notisid)->json();
if($request->type == 'whatsapp')
{
$blastwhatsapp = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url').'/arcc/notis/blastwasapbysag/'.$auth_user['cawangan'],
['kodcaw' => $kodcaw,'notisid' => $notisid, 'namapengguna' => $auth_user['name'],])->json();
if($blastwhatsapp == 'success'){
return redirect()->route('arcc.bycawnotisperingatan',['kodcaw' => $kodcaw, 'notisid' => $notisid])
->with('success','Blast Whatsapp Dalam Proses.');
}
elseif($blastwhatsapp == 'failed'){
return redirect()->route('arcc.bycawnotisperingatan',['kodcaw' => $kodcaw, 'notisid' => $notisid])
->with('failed','Blast Whatsapp Tidak Berjaya, Sila Semak Semula Rekod Blasted.');
}
}
return view('callcenter.bycawdetailnotisperingatan',compact('cawangan_info','bycawnotisperingatan','kodcaw','notisid'));
}
public function blastpertama($kodcaw,$notisid,Request $request)
{
$auth_user = Auth::user();
$api_url = config('api.url');
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $kodcaw)->json();
$bycawnotisperingatan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/bycawnotisperingatan/'.$kodcaw.'/'.$notisid)->json();
if($request->type == 'whatsapp')
{
$blastwhatsapp = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url').'/arcc/notis/blastwasapbysag',
['kodcaw' => $kodcaw,'notisid' => $notisid, 'namapengguna' => $auth_user['name'],])->json();
if($blastwhatsapp == 'success'){
return redirect()->route('arcc.bycawnotisperingatan',['kodcaw' => $kodcaw, 'notisid' => $notisid])
->with('success','Blast Whatsapp Dalam Proses.');
}
elseif($blastwhatsapp == 'failed'){
return redirect()->route('arcc.bycawnotisperingatan',['kodcaw' => $kodcaw, 'notisid' => $notisid])
->with('failed','Blast Whatsapp Tidak Berjaya, Sila Semak Semula Rekod Blasted.');
}
}
elseif($request->type == 'pdf')
{
$current = Carbon::now();
$current = new Carbon();
$tarikh_cetak = $current->toDateString();
$cawangan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/cawangan/detail/'.$kodcaw)->json();
$cawangan_detail=$cawangan[0];
$bycawnotisperingatan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/bycawnotisperingatan/'.$kodcaw.'/'.$notisid)->json();
return view('callcenter.pdfbycawdetailnotisperingatan', compact('cawangan_info','bycawnotisperingatan','kodcaw','notisid','cawangan_detail','tarikh_cetak'));
}
elseif($request->type == 'excel')
{
$current = Carbon::now();
$current = new Carbon();
$tarikh_cetak = $current->toDateString();
$cawangan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/cawangan/detail/'.$kodcaw)->json();
$cawangan_detail=$cawangan[0];
$bycawnotisperingatan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/bycawnotisperingatan/'.$kodcaw.'/'.$notisid)->json();
return view('callcenter.notisperingatanpertama_excel', compact('cawangan_info','bycawnotisperingatan','kodcaw','notisid','cawangan_detail','tarikh_cetak'));
}
return view('callcenter.bycawdetailnotisperingatan',compact('cawangan_info','bycawnotisperingatan','kodcaw','notisid'));
}
public function pelanggan()
{
$search = false;
$api_url = config('api.url');
$auth_user = Auth::user();
$idtype = 'nokp';
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json();
$bank = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/bank')->json();
if($auth_user->roles == 'admin'){
return view('admin.customer_index',compact('search','cawangan_info','bank','api_url','idtype','auth_user'));
}else{
return view('callcenter.index',compact('search','cawangan_info','bank','api_url','idtype','auth_user'));
}
}
public function search(Request $request){
$noic = $request->noic;
$nama = $request->nama;
$idtype = $request->customerIDType;
$kodcaw = $request->cawangan;
// Simpan ke session hanya jika ada input
if ($noic) {
Session::put('noic', $noic);
}
if ($kodcaw) {
Session::put('kodcaw', $kodcaw);
}
$api_url = config('api.url');
$auth_user = Auth::user();
// Dapatkan maklumat cawangan jika kodcaw ada
$cawangan_info = null;
if ($kodcaw) {
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])
->get($api_url . '/api/cawangan/' . $kodcaw)
->json();
}
// Dapatkan senarai bank (jika perlu)
$bank = Http::withOptions(['verify' => config('app.api_verify')])->get($api_url . '/api/bank')->json();
// Bersihkan session yang tidak perlu
$request->session()->forget('page_reload');
$request->session()->forget('norujukan');
$customer_info = null;
// Cari ikut IC jika diisi
if ($noic) {
$customer_info = Http::withOptions(['verify' => config('app.api_verify')])
->get($api_url . '/api/customers/' . $noic)
->json();
}
// Kalau nama diberi & IC tidak jumpa
elseif ($nama) {
$queryParams = ['nama' => $nama];
if ($kodcaw) {
$queryParams['kodcaw'] = $kodcaw;
}
$response = Http::withOptions(['verify' => config('app.api_verify')])
->get($api_url . '/api/customers', $queryParams);
if ($response->successful()) {
$customers = $response->json();
// Jika lebih dari satu pelanggan dijumpai
if (is_array($customers) && count($customers) > 1) {
// Tambah nama cawangan untuk setiap pelanggan
foreach ($customers as &$customer) {
$kodcaw = $customer['kodcaw'] ?? null;
if ($kodcaw) {
$cawangan = Http::withOptions(['verify' => config('app.api_verify')])
->get($api_url . '/api/cawangan/' . $kodcaw)
->json();
$customer['nama_cawangan'] = $cawangan['details_caw'] ?? $kodcaw;
} else {
$customer['nama_cawangan'] = '-';
}
}
Session::put('customer_list', $customers);
return redirect()->route('arcc.pilihpelanggan');
}
// Jika satu pelanggan dijumpai
$customer_info = $customers[0] ?? null;
} else {
logger('API carian nama gagal: ' . $response->body());
}
}
// Jika berjaya jumpa pelanggan
if ($customer_info) {
Session::put('customer_info_arcc', $customer_info);
return redirect()->route('arcc.customer_info', [
'customer_info' => $customer_info,
'cawangan_info' => $cawangan_info,
'api_url' => $api_url
]);
}
// Gagal jumpa pelanggan
return redirect()->route('arcc.pelanggan')
->with('failed', 'Maaf, Tiada Data Pelanggan...');
}
public function info(Request $request)
{
$customer = $request->input('customer_info');
if (!$customer || !isset($customer['kodcaw'])) {
return redirect()->route('arcc.pelanggan')->with('failed', 'Maklumat pelanggan tidak lengkap.');
}
$kodcaw = $customer['kodcaw'];
$nokp = $customer['kpbaru'] ?? $customer['kplama'] ?? null;
if (!$nokp) {
return redirect()->route('arcc.pelanggan')->with('failed', 'No KP pelanggan tidak dijumpai.');
}
Session::put('noic', $nokp);
$api_url = config('api.url');
// Maklumat cawangan
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])
->get($api_url . '/api/cawangan/' . $kodcaw)
->json();
if (!isset($cawangan_info['version'])) {
return redirect()->route('arcc.pelanggan')->with('failed', 'Maklumat cawangan tidak dijumpai.');
}
// Maklumat pelanggan
$customer_info = Http::withOptions(['verify' => config('app.api_verify')])
->get($api_url . '/api/customers/' . $nokp)
->json();
if (!$customer_info || isset($customer_info['error'])) {
return redirect()->route('arcc.pelanggan')->with('failed', 'Pelanggan tidak wujud dalam sistem.');
}
// Data lelong
$bakilelong = Http::withOptions(['verify' => config('app.api_verify')])
->get($api_url . '/api/bakilelong/cawangan/' . $kodcaw . '/' . $nokp . '/baki')
->json();
$rugilelong = Http::withOptions(['verify' => config('app.api_verify')])
->get($api_url . '/api/bakilelong/cawangan/' . $kodcaw . '/' . $nokp . '/rugi')
->json();
// Negeri
$negeri = Http::withOptions(['verify' => config('app.api_verify')])
->get($api_url . '/api/negeri/')
->json();
$request->session()->forget('page_reload');
$request->session()->forget('norujukan');
return view('callcenter.' . $cawangan_info['version'] . '.info', compact(
'cawangan_info',
'api_url',
'customer_info',
'bakilelong',
'rugilelong',
'negeri'
));
}
public function notisperingatankedua(Request $request){
$auth_user = Auth::user();
$api_url = config('api.url');
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json();
return view('callcenter.notisperingatankedua',compact('cawangan_info','api_url'));
}
public function kemaskininotisperingatan($notisid)
{
$auth_user = Auth::user();
$api_url = config('api.url');
$senarai = [];
$detailnotis = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/getcawnotiskemaskini/'.$notisid)->json();
foreach($detailnotis as $index=>$info)
{
$kemaskininotisperingatan = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url'). '/arcc/kemaskininotisperingatan', [
'kodcaw' => $info['kodcaw'],
'notisid' => $notisid
])->json();
}
if($kemaskininotisperingatan == 'success'){
return redirect()->route('arcc.detailnotisperingatan',['notisid' => $notisid])
->with('success','Data Telah Dikemaskini.');
}elseif($kemaskininotisperingatan == 'failed'){
return redirect()->route('arcc.detailnotisperingatan',['notisid' => $notisid])
->with('failed','Data Tidak Dikemaskini. Sila Semak Semula...');
}
return view('callcenter.detailnotisperingatan',compact('detailnotis','senarai','notisid'));
}
public function cariansagnotiskedua(Request $request)
{
// dd($request->all());
$api_url = config('api.url');
$auth_user = Auth::user();
$current = Carbon::now();
$current = new Carbon();
$tarikh_cetak = $current->toDateString();
$fasa = $request->fasa;
$notis = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/arcc/cariannotiskedua',[
'fasa' => $fasa
])->json();
return redirect()->route('arcc.notisperingatankedua')->with('success','Berjaya Daftar Notis Peringatan Kedua.');
}
public function rekodnotisperingatankedua()
{
$auth_user = Auth::user();
$api_url = config('api.url');
$arrayinfo = [];
// $notis = Notis::select('tarikh_notis','id')
// ->groupBy('tarikh_notis')
// ->get();
$notis = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/senarainotisperingatankedua')->json();
// dd($notis);
foreach($notis as $info)
{
$getcawnotis = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/getcawnotis/'.$info['id'])->json();
array_push($arrayinfo, ['info'=> $info,'cawnotis' => $getcawnotis]);
}
// dd($arrayinfo);
return view('callcenter.rekodnotisperingatankedua',compact('notis','arrayinfo'));
}
public function detailnotisperingatankedua($notisid)
{
$auth_user = Auth::user();
$api_url = config('api.url');
$senarai = [];
$detailnotis = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/getcawnotis/'.$notisid)->json();
foreach($detailnotis as $info)
{
$getcawnotiskeduabycaw = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/getcawnotiskeduabycaw', [
'kodcaw' => $info[0]['kodcaw'],
'notisid' => $notisid
])->json();
$data = [
'detailnotis' => $info ? $info : '',
'getcawnotisbycaw' => $getcawnotiskeduabycaw ? $getcawnotiskeduabycaw : '',
];
array_push($senarai,$data);
}
return view('callcenter.detailnotisperingatankedua',compact('detailnotis','senarai','notisid'));
}
public function bycawnotisperingatankedua($kodcaw,$notisid, Request $request)
{
$auth_user = Auth::user();
$api_url = config('api.url');
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $kodcaw)->json();
$bycawnotisperingatankedua = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/bycawnotisperingatankedua/'.$kodcaw.'/'.$notisid)->json();
// if($request->type == 'whatsapp')
// {
// $blastwhatsapp = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url').'/arcc/blastwasapbysag/'.$auth_user['cawangan'],
// ['kodcaw' => $kodcaw,'notisid' => $notisid, 'namapengguna' => $auth_user['name'],])->json();
// if($blastwhatsapp == 'success'){
// return redirect()->route('arcc.bycawnotisperingatankedua',['kodcaw' => $kodcaw, 'notisid' => $notisid])
// ->with('success','Blast Whatsapp Dalam Proses.');
// }
// elseif($blastwhatsapp == 'failed'){
// return redirect()->route('arcc.bycawnotisperingatankedua',['kodcaw' => $kodcaw, 'notisid' => $notisid])
// ->with('failed','Blast Whatsapp Tidak Berjaya, Sila Semak Semula Rekod Blasted.');
// }
// }
return view('callcenter.bycawdetailnotisperingatankedua',compact('cawangan_info','bycawnotisperingatankedua','kodcaw','notisid','api_url'));
}
public function blastkedua($kodcaw,$notisid,Request $request)
{
$current = Carbon::now();
$current = new Carbon();
$tarikh_cetak = $current->toDateString();
$auth_user = Auth::user();
$api_url = config('api.url');
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $kodcaw)->json();
$bycawnotisperingatankedua = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/bycawnotisperingatankedua/'.$kodcaw.'/'.$notisid)->json();
if($request->type == 'whatsapp')
{
$blastwhatsappkedua = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url').'/arcc/notis/blastwasapbysagkedua',
['kodcaw' => $kodcaw,'notisid' => $notisid, 'namapengguna' => $auth_user['name'],])->json();
if($blastwhatsappkedua == 'success'){
return redirect()->route('arcc.bycawnotisperingatankedua',['kodcaw' => $kodcaw, 'notisid' => $notisid])
->with('success','Blast Whatsapp Dalam Proses.');
}
elseif($blastwhatsappkedua == 'failed'){
return redirect()->route('arcc.bycawnotisperingatankedua',['kodcaw' => $kodcaw, 'notisid' => $notisid])
->with('failed','Blast Whatsapp Tidak Berjaya, Sila Semak Semula Rekod Blasted.');
}
}
elseif($request->type == 'pdf')
{
if($request->fasa == 1)
{
$datanotiskedua = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/getdatanotiskedua/'. $kodcaw.'/'.$notisid. '/' . 'fasa1')->json();
$fasa = 'fasa1';
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $kodcaw)->json();
$cawangan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/cawangan/detail/'.$kodcaw)->json();
$cawangan_detail=$cawangan[0];
// return view('print.notislelong', compact('cawangan_info','notislelong','api_url','cawangan_detail','lelong','tarikh_cetak'));
// dd($datanotiskedua);
$pdf=PDF::loadView('callcenter.suratnotisperingatankeduafasa1', compact('cawangan_info','api_url','cawangan_detail','datanotiskedua','fasa','tarikh_cetak'))->setPaper('A4','potrait');
return $pdf->download('notisperingatankedua_'.$tarikh_cetak.'_'.$fasa.'.pdf');
}else{
// dd(false);
$datanotiskedua = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/getdatanotiskedua/'. $kodcaw.'/'.$notisid. '/' . 'fasa2')->json();
$fasa = 'fasa2';
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $kodcaw)->json();
$cawangan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/cawangan/detail/'.$kodcaw)->json();
$cawangan_detail=$cawangan[0];
// return view('print.notislelong', compact('cawangan_info','notislelong','api_url','cawangan_detail','lelong','tarikh_cetak'));
// dd($datanotiskedua);
$pdf=PDF::loadView('callcenter.suratnotisperingatankeduafasa2', compact('cawangan_info','api_url','cawangan_detail','datanotiskedua','fasa','tarikh_cetak'))->setPaper('A4','potrait');
return $pdf->download('notisperingatankedua_'.$tarikh_cetak.'_'.$fasa.'.pdf');
}
}
elseif($request->type == 'pdflist')
{
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $kodcaw)->json();
$cawangan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/cawangan/detail/'.$kodcaw)->json();
$cawangan_detail=$cawangan[0];
$bycawnotisperingatankedua = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/bycawnotisperingatankedua/'.$kodcaw.'/'.$notisid)->json();
return view('callcenter.pdfbycawdetailnotisperingatankedua', compact('cawangan_info','bycawnotisperingatankedua','kodcaw','notisid','cawangan_detail','tarikh_cetak'));
}
return view('callcenter.bycawdetailnotisperingatankedua',compact('cawangan_info','bycawnotisperingatankedua','kodcaw','notisid','api_url'));
}
public function kemaskininotisperingatankedua($notisid)
{
$auth_user = Auth::user();
$api_url = config('api.url');
$senarai = [];
$detailnotis = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/getcawnotiskemaskini/'.$notisid)->json();
foreach($detailnotis as $info)
{
$kemaskininotisperingatan = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url'). '/arcc/kemaskininotisperingatan', [
'kodcaw' => $info['kodcaw'],
'notisid' => $notisid
])->json();
}
if($kemaskininotisperingatan == 'success'){
return redirect()->route('arcc.detailnotisperingatankedua',['notisid' => $notisid])
->with('success','Data Telah Dikemaskini.');
}elseif($kemaskininotisperingatan == 'failed'){
return redirect()->route('arcc.detailnotisperingatan',['notisid' => $notisid])
->with('failed','Data Tidak Dikemaskini. Sila Semak Semula...');
}
return view('callcenter.detailnotisperingatankedua',compact('detailnotis','senarai','notisid'));
}
public function kemaskininotisperingatanbycaw($kodcaw,$notisid)
{
$auth_user = Auth::user();
$api_url = config('api.url');
$senarai = [];
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $kodcaw)->json();
$bycawnotisperingatan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/bycawnotisperingatan/'.$kodcaw.'/'.$notisid)->json();
$kemaskininotisperingatan = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url'). '/arcc/kemaskininotisperingatan', [
'kodcaw' => $kodcaw,
'notisid' => $notisid
])->json();
if($kemaskininotisperingatan == 'success'){
return view('callcenter.bycawdetailnotisperingatan',compact('cawangan_info','bycawnotisperingatan','kodcaw','notisid'));
// return redirect()->route('arcc.detailnotisperingatan',['notisid' => $notisid])
// ->with('success','Data Telah Dikemaskini.');
}elseif($kemaskininotisperingatan == 'failed'){
return redirect()->route('arcc.detailnotisperingatan',['notisid' => $notisid])
->with('failed','Data Tidak Dikemaskini. Sila Semak Semula...');
}
// return view('callcenter.bycawdetailnotisperingatan',compact('cawangan_info','bycawnotisperingatan','kodcaw','notisid'));
}
public function kemaskininotisperingatankeduabycaw($kodcaw,$notisid)
{
$auth_user = Auth::user();
$api_url = config('api.url');
$senarai = [];
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $kodcaw)->json();
$bycawnotisperingatankedua = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/bycawnotisperingatankedua/'.$kodcaw.'/'.$notisid)->json();
$kemaskininotisperingatan = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url'). '/arcc/kemaskininotisperingatan', [
'kodcaw' => $kodcaw,
'notisid' => $notisid
])->json();
if($kemaskininotisperingatan == 'success'){
return view('callcenter.bycawdetailnotisperingatankedua',compact('cawangan_info','bycawnotisperingatankedua','kodcaw','notisid','api_url'));
}elseif($kemaskininotisperingatan == 'failed'){
return redirect()->route('arcc.detailnotisperingatankedua',['notisid' => $notisid])
->with('failed','Data Tidak Dikemaskini. Sila Semak Semula...');
}
}
public function notisJbg(){
$api_url = config('api.url');
$auth_user = Auth::user();
$caw = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json();
//dd('sini');
return view('callcenter.cariangadaian',compact('api_url','caw'));
}
public function carianJbg(Request $request){
$current = Carbon::now();
$current = new Carbon();
$api_url = config('api.url');
$auth_user = Auth::user();
$jbgmula = $request->jbgmula;
$jbghingga = $request->jbghingga;
$tprint = $current->toDateString();
$caw_all = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/arcc/cawangan/')->json();
$senarai = [];
foreach($caw_all as $cwgn)
{
$kodcaw = $cwgn['kodcaw'];
$datagadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/arcc/gadaian/'.$kodcaw,[
'jbgmula' => $request->jbgmula,
'jbghingga' => $request->jbghingga,
])->json();
$data = [
'kodcaw'=>$cwgn['kodcaw'],
'caw_name'=>$cwgn['details_caw'],
'datagadai'=>$datagadai ? $datagadai : '',
];
array_push($senarai,$data);
}
// dd(1);
return view('callcenter.gadaianjbg', compact('kodcaw','senarai','jbgmula','jbghingga'));
}
public function janadatanotisjbg(Request $request){
$current = Carbon::now();
$current = new Carbon();
$currentNow = Carbon::now();
$senarai = [];
$tarikh_savedaftarnotis = $current->toDateString();
$jbgmula = $request->jbgmula;
$jbghingga = $request->jbghingga;
$kodcaw = $request->kodcaw;
$selected_caw = $request->caw;
// dd($selected_caw);
$getbatchnotisjbg=Http::withOptions(['verify' => config('app.api_verify')])->get( config('api.url').'/arcc/getbatchnotisjbg',[
'jbgmula' => $jbgmula,
'jbghingga' => $jbghingga,
])->json();
$newbatchnotis=$getbatchnotisjbg;
if(!empty($selected_caw))
{
foreach($selected_caw as $index=>$caw){
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $caw)->json();
// dd($cawangan_info);
$insertdatagadai = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url').'/arcc/insertdatagadaijbg/'.$caw ,[
'jbgmula' => $jbgmula,
'jbghingga' => $jbghingga,
'kodcaw' => $caw,
'notisid' => $newbatchnotis
])->json();
$data = [
'kodcaw'=>$caw,
'caw_name'=>$cawangan_info['details_caw'],
'datagadai' => $insertdatagadai ? $insertdatagadai : '',
];
array_push($senarai,$data);
}
}
return redirect()->route('arcc.notisjbg')->with('success','Berjaya Daftar Notis Jbg.');
}
public function rekodnotisjbg(){
$auth_user = Auth::user();
$api_url = config('api.url');
$arrayinfo = [];
// $notis = Notis::select('tarikh_notis','id')
// ->groupBy('tarikh_notis')
// ->get();
$notisjbg = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/senarainotisjbg')->json();
// dd($notisjbg);
foreach($notisjbg as $info)
{
$getcawnotisjbg = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/getcawnotisjbg/'.$info['id'])->json();
array_push($arrayinfo, ['info'=> $info,'cawnotis' => $getcawnotisjbg]);
}
// dd($arrayinfo);
return view('callcenter.rekodnotisjbg',compact('notisjbg','arrayinfo'));
}
public function detailnotisjbg(Request $request){
$auth_user = Auth::user();
$api_url = config('api.url');
$senarai = [];
$notisid = $request->notisid;
$detailnotisjbg = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/getcawnotisjbg/'.$notisid)->json();
//dd($detailnotisjbg[0]);
foreach($detailnotisjbg as $info)
{
$getcawnotisjbgbycaw = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/getcawnotisjbgbycaw', [
'kodcaw' => $info[0]['kodcaw'],
'notisid' => $notisid
])->json();
//dd($getcawnotisjbgbycaw);
$data = [
// 'kodcaw'=>$info[0]['kodcaw'],
// 'caw_name'=>$info[0]['details_caw'],
'getcawnotisjbgbycaw' => $getcawnotisjbgbycaw ? $getcawnotisjbgbycaw : '',
];
array_push($senarai,$data);
}
return view('callcenter.detailnotisjbg',compact('detailnotisjbg','senarai','notisid'));
}
public function bycawnotisjbg($kodcaw,$notisid, Request $request)
{
$auth_user = Auth::user();
$api_url = config('api.url');
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $kodcaw)->json();
$bycawnotisjbg = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/bycawnotisjbg/'.$kodcaw.'/'.$notisid)->json();
return view('callcenter.bycawdetailnotisjbg',compact('cawangan_info','bycawnotisjbg','kodcaw','notisid'));
}
public function detsagcallbyjbg($kodcaw, $notisid, $id)
{
$auth_user = Auth::user();
$api_url = config('api.url');
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $kodcaw)->json();
$bysagnotisjbg = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/arcc/bysagnotisjbg/'.$kodcaw.'/'.$notisid.'/'.$id)->json();
$bysagnotisjbgCustomer = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/arcc/bysagnotisjbgcustomer/'.$kodcaw.'/'.$notisid.'/'.$id)->json();
return view('callcenter.callnotisjbg',compact('cawangan_info','bysagnotisjbg','bysagnotisjbgCustomer'));
}
public function bycawnotisjbg2($kodcaw,$notisid, Request $request)
{
$auth_user = Auth::user();
$api_url = config('api.url');
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $kodcaw)->json();
$bycawnotisjbg = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/bycawnotisjbg2/'.$kodcaw.'/'.$notisid)->json();
return view('callcenter.bycawdetailnotisjbg2',compact('cawangan_info','bycawnotisjbg','kodcaw','notisid'));
}
public function detsagcallbyjbg2($kodcaw, $notisid, $nokp)
{
$auth_user = Auth::user();
$api_url = config('api.url');
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $kodcaw)->json();
$bysagnotisjbg = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/arcc/bysagnotisjbg2/'.$kodcaw.'/'.$notisid.'/'.$nokp)->json();
$bysagnotisjbgCustomer = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/arcc/bysagnotisjbgcustomer2/'.$kodcaw.'/'.$notisid.'/'.$nokp)->json();
return view('callcenter.callnotisjbg2',compact('cawangan_info','bysagnotisjbg','bysagnotisjbgCustomer','kodcaw','notisid','nokp','api_url'));
}
public function printnotiscall($kodcaw,$notisid,Request $request)
{
$current = Carbon::now();
$current = new Carbon();
$tarikh_cetak = $current->toDateString();
$auth_user = Auth::user();
$api_url = config('api.url');
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $kodcaw)->json();
$bycawnotisjbg = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/bycawnotisjbg2/'.$kodcaw.'/'.$notisid)->json();
if($request->type == 'pdflist')
{
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $kodcaw)->json();
$cawangan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/cawangan/detail/'.$kodcaw)->json();
$cawangan_detail=$cawangan[0];
$bycawnotisjbg = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/bycawnotisjbg2/'.$kodcaw.'/'.$notisid)->json();
return view('callcenter.pdfbycawdetailnotisjbg2', compact('cawangan_info','bycawnotisjbg','kodcaw','notisid','cawangan_detail','tarikh_cetak'));
}
return view('callcenter.bycawdetailnotisjbg2',compact('cawangan_info','bycawnotisjbg','kodcaw','notisid','api_url'));
}
public function history(Request $request)
{
$auth_user = Auth::user();
$norujukan = $request->norujukan;
$gadai = Http::withOptions(['verify' => config('app.api_verify')])
->get(config('api.url') . '/api/gadai/norujukan/' . $norujukan)
->json();
$arrayhist = [];
if (sizeof($gadai) > 0) {
$history = $gadai[0][0]['historygadaian'];
$dahtebus = $gadai[0][0]['sttebus'];
$kodcaw = $gadai[0][0]['kodcaw'];
// Kalau belum ada history, ambil rekod asal sahaja
if ($dahtebus == 'T') {
$tebusList = Http::withOptions(['verify' => config('app.api_verify')])
->get(config('api.url') . '/api/listpenebusanhistory/' . $kodcaw, [
'norujukan' => $norujukan
])
->json();
$tebus = collect($tebusList)->firstWhere('norujukan', $norujukan);
$arrayhist[] = [
"tagbaru" => $gadai[0][0]['tagbaru'] ?? 0,
"hargajualan" => $gadai[0][0]['hargajualan'] ?? '',
"pinjaman" => $tebus['pinjaman'] ?? 0,
"norujukan" => $norujukan,
"jenistebus" => $tebus['jenistebus'] ?? 0,
"jbg" => $tebus['jbg'] ?? 0,
"t_tebus" => $tebus['t_tebus'] ?? 0,
"bayaran_keuntungan" => $tebus['bayaran_keuntungan'] ?? 0,
"bayaran_pembiayaan" => $tebus['bayaran_pembiayaan'] ?? 0,
"duit_masuk" => $tebus['duit_masuk'] ?? 0,
"trans_type" => $tebus['trans_type'] ?? 0,
];
} else {
// Loop ke belakang (rekod lepas-lepas)
while ($history != "0" && $history != '') {
$prevGadai = Http::withOptions(['verify' => config('app.api_verify')])
->get(config('api.url') . '/api/gadai/norujukan/' . $history)
->json();
$prevKodcaw = $prevGadai[0][0]['kodcaw'] ?? null;
if (!$prevKodcaw) break;
$tebusList = Http::withOptions(['verify' => config('app.api_verify')])
->get(config('api.url') . '/api/listpenebusanhistory/' . $prevKodcaw, [
'norujukan' => $history
])
->json();
$tebus = collect($tebusList)->firstWhere('norujukan', $history);
$arrayhist[] = [
"tagbaru" => $prevGadai[0][0]['tagbaru'] ?? 0,
"hargajualan" => $prevGadai[0][0]['hargajualan'] ?? '',
"pinjaman" => $tebus['pinjaman'] ?? 0,
"norujukan" => $history,
"jenistebus" => $tebus['jenistebus'] ?? 0,
"jbg" => $tebus['jbg'] ?? 0,
"t_tebus" => $tebus['t_tebus'] ?? 0,
"bayaran_keuntungan" => $tebus['bayaran_keuntungan'] ?? 0,
"bayaran_pembiayaan" => $tebus['bayaran_pembiayaan'] ?? 0,
"duit_masuk" => $tebus['duit_masuk'] ?? 0,
"trans_type" => $tebus['trans_type'] ?? 0,
];
$nextHistory = $prevGadai[0][0]['historygadaian'] ?? '0';
// Elakkan infinite loop
if ($nextHistory == $history) {
break;
}
$history = $nextHistory;
}
}
}
return response()->json($arrayhist,200);
}
public function tukaranhargaemas($norujukan)
{
$marhunsaglama = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/marhun/'. $norujukan)->json();
$marhunsaglama = $marhunsaglama[0];
$totalnilaimarhun = 0;
foreach($marhunsaglama as $index=>$marhunloop)
{
$karatbaru = str_replace('.','-',$marhunloop['karat']);
$hargabaru = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/harga_emas/'. $karatbaru)->json();
$nilaimarhun = (floatval($hargabaru['harga']) * floatval($marhunloop['berat']));
$totalnilaimarhun += $nilaimarhun;
}
return $totalnilaimarhun;
}
public function tanyaupah($norujukan){
$auth_user = Auth::user();
$api_url = config('api.url');
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. Session::get('kodcaw'))->json();
$customer_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/'. Session::get('noic'))->json();
$gadaidetail = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/'. $norujukan)->json();
$noic = $gadaidetail[0][0]['nokp'];
$customerdetail = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/'. $noic)->json();
$marhundetail = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/marhun/'. $norujukan)->json();
$marhun = $marhundetail[0];
$nama = $customerdetail['nama'];
$gadai = $gadaidetail[0][0];
$nilaihargasemasa = $this->tukaranhargaemas($norujukan);
$pertambahpinjaman = 0.80;
return view('callcenter.' . $cawangan_info['version'] . '.index',compact('cawangan_info','api_url','gadai','marhun','nama','nilaihargasemasa','pertambahpinjaman'));
}
public function pilihPelanggan()
{
if (!Session::has('customer_list')) {
return redirect()->route('arcc.pelanggan')->with('failed', 'Tiada pelanggan untuk dipilih.');
}
$kodcaw = Session::get('kodcaw'); // Ambil dari sesi
$cawangan_info = null;
// Kalau kodcaw ada, baru ambil cawangan_info
if ($kodcaw) {
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])
->get(config('api.url') . '/api/cawangan/' . $kodcaw)
->json();
// dd($cawangan_info );
}
return view('callcenter.pilihpelanggan', compact('cawangan_info'));
}
public function pilihPelangganProceed(Request $request)
{
$customerData = $request->input('customer');
if ($customerData) {
$customer = json_decode(base64_decode($customerData), true);
$kodcaw = $customer['kodcaw'];
Session::put('customer_info_arcc', $customer);
$api_url = config('api.url');
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])
->get($api_url . '/api/cawangan/' . $kodcaw)->json();
return redirect()->route('arcc.customer_info', [
'customer_info' => $customer,
'cawangan_info' => $cawangan_info,
'api_url' => $api_url
]);
}
return redirect()->route('arcc.pelanggan')->with('failed', 'Pelanggan tidak sah dipilih.');
}
public function ajaxSearchCustomer(Request $request)
{
$search = strtolower($request->query('search', ''));
$customers = collect(session('customer_list', []))
->filter(function ($customer) use ($search) {
return strpos(strtolower($customer['nama']), $search) !== false ||
strpos(strtolower($customer['nokp']), $search) !== false;
});
return view('callcenter.partials.customertable', ['customers' => $customers])->render();
}
}