Merged in feature/nisha/laporan-wtd (pull request #383)

laporan_rumusan_wtd
This commit is contained in:
nurulnisha muhammad
2026-01-06 07:52:08 +00:00
2 changed files with 89 additions and 2 deletions
+87
View File
@@ -5,8 +5,10 @@ namespace App\Http\Controllers;
use App\WTDDraft;
use App\TuntutBaki;
use App\Cawangan;
use App\Customer;
use Illuminate\Http\Request;
use Carbon\Carbon;
use App\Helper;
use Illuminate\Support\Facades\Http;
@@ -34,4 +36,89 @@ class WTDController extends Controller
return response()->json($tuntutbaki);
}
public function getSummaryWtd(Request $request){
$startDate = $request->startDate ?? now()->startOfMonth()->toDateString();
$endDate = $request->endDate ?? now()->endOfMonth()->toDateString();
$active_dbs = Helper::getActiveCawanganDbConnection();
$cawangan = Cawangan::select('kodcaw', 'details_caw', 'mysql')
->whereIn('mysql', $active_dbs)
->get();
$responses = [];
foreach ($cawangan as $caw) {
$db = $caw->mysql;
$tuntutbaki = TuntutBaki::on($db)
->join('serahbaki', 'serahbaki.t_jual', '=', 'tuntutbaki.tarikh')
->join('gadai', 'gadai.norujukan', '=', 'tuntutbaki.norujukan')
->whereBetween('tuntutbaki.tarikh', [$startDate, $endDate])
->where('tuntutbaki.teller', 'DM')
->where('serahbaki.aktif', 1)
->selectRaw("
gadai.nokp as nokp,
tuntutbaki.norujukan as norujukan,
tuntutbaki.jumlah as jumlah,
serahbaki.batchno as batchno,
serahbaki.t_jual as t_jual,
serahbaki.t_htr_ag as t_htr_ag
")
->orderByRaw('CAST(serahbaki.batchno AS UNSIGNED)')
->orderBy('tuntutbaki.norujukan')
->get();
$nokps = $tuntutbaki
->pluck('nokp')
->filter() // elak null
//->unique()
->values();
$customers = Customer::on('mysql7')
->whereIn('kplama', $nokps)
->orWhereIn('kpbaru', $nokps)
->get()
->keyBy(function ($item) {
return $item->kpbaru ?: $item->kplama;
});
$wtd_det = [];
foreach ($tuntutbaki as $tuntut) {
$nokp = $tuntut->nokp;
$cust = $customers->get($nokp);
$wtd_det[] = [
"norujukan" => $tuntut->norujukan,
"nokp" => $nokp,
"jumlah" => (float) $tuntut->jumlah,
"batchno" => $tuntut->batchno,
"t_proses" => $tuntut->t_jual,
"t_htr_ag" => $tuntut->t_htr_ag,
"nama_cust" => $cust->nama ?? null,
];
}
$details = collect($wtd_det)
->values()
->all();
$responses[] = [
'kodcaw' => $caw->kodcaw,
'details_caw' => $caw->details_caw,
// WEB
'jumlah_surat' => count($details),
'sum_baki' => collect($details)->sum('jumlah'),
// EXCEL
'details' => $details,
];
}
return response()->json($responses);
}
}
+2 -2
View File
@@ -896,11 +896,11 @@ $router->group(['prefix'=>'admin'], function () use ($router){
$router->get('wtd/rekodSimulasi',['uses'=>'AdminPageController@RekodSimulasiWTD']);
$router->post('wtd/prosesSimulasi',['uses'=>'AdminPageController@ProsesSimulasiWTD']);
$router->post('wtd/pengesahanSimulasi',['uses'=>'AdminPageController@PengesahanSimulasiWTD']);
$router->post('wtd/simulasiToDraft',['uses'=>'AdminPageController@SimulasiToDraft']);
$router->post('wtd/simulasiBaru',['uses'=>'AdminPageController@SimulasiBaru']);
//laporan wtd
$router->get('wtd/summaryWtd', ['uses' => 'WTDController@getSummaryWtd']);
$router->get('audit/keuntungansebenar',['uses'=>'AdminPageController@KeuntunganSebenarExport']);
$router->get('laporan/aging',['uses'=>'AdminPageController@LaporanAging']);