255 lines
8.2 KiB
PHP
255 lines
8.2 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Auth;
|
|
use Illuminate\Support\Facades\Session;
|
|
use Illuminate\Support\Facades\Http;
|
|
use Carbon\Carbon;
|
|
|
|
use PDF;
|
|
use Maatwebsite\Excel\Facades\Excel;
|
|
use App\Exports\WTDDetailExport;
|
|
|
|
class WTDController extends Controller
|
|
{
|
|
// public function __construct()
|
|
// {
|
|
// $this->middleware('auth');
|
|
// }
|
|
|
|
public function index()
|
|
{
|
|
return view('wtd.index');
|
|
}
|
|
|
|
public function CetakSenarai(Request $request)
|
|
{
|
|
// $norujukan = $request->norujukan;
|
|
|
|
$norujukan = json_decode($request->norujukan);
|
|
|
|
$tuntutbaki = Http::get(config('api.url') . '/admin/wtd/senarai', ['norujukan' => $norujukan, 'kodcaw' => $request->cawangan])->json();
|
|
|
|
$cawangan = Http::get(config('api.url') . '/api/cawangan/detail/' . $request->cawangan)->json();
|
|
$cawangan_detail = $cawangan[0];
|
|
|
|
$current = Carbon::now();
|
|
$tarikh_cetak = $current->toDateString();
|
|
$api_url = config('api.url');
|
|
$mula = $request->mula;
|
|
$hingga = $request->hingga;
|
|
// $myDateTime = DateTime::createFromFormat('Y-m-d', $tarikh_cetak);
|
|
// $tarikhcetakan = $myDateTime->format('d-m-Y');
|
|
|
|
if (isset($request->jenis)) {
|
|
if ($request->jenis == 'pdf') {
|
|
$pdf = PDF::loadView('wtd.cetakan', compact('tuntutbaki', 'cawangan_detail', 'tarikh_cetak', 'api_url', 'mula', 'hingga'))->setPaper('a4', 'potrait');
|
|
return $pdf->download('wtd_' . $request->cawangan . '_' . $tarikh_cetak . '.pdf');
|
|
} else {
|
|
return view('wtd.cetakanexcel', compact('tuntutbaki', 'cawangan_detail', 'tarikh_cetak', 'api_url', 'mula', 'hingga'));
|
|
}
|
|
}
|
|
}
|
|
|
|
public function CetakWtdDalamProses(Request $request)
|
|
{
|
|
$api_url = config('api.url');
|
|
$current = Carbon::now();
|
|
$tarikh_cetak = $current->toDateString();
|
|
|
|
$cawangan = Http::get(config('api.url') . '/api/cawangan/detail/' . $request->cawangan)->json();
|
|
$cawangan_detail = $cawangan[0];
|
|
|
|
$wtdDalamProses = Http::get(config('api.url') . '/admin/wtd/dalamproses', ['batchno' => $request->batchno, 'kodcaw' => $request->cawangan])->json();
|
|
if (isset($request->jenis)) {
|
|
if ($request->jenis == 'pdf') {
|
|
$pdf = PDF::loadView('wtd.dalamprosespdf', compact('tarikh_cetak', 'cawangan_detail', 'wtdDalamProses', 'api_url'))->setPaper('a4', 'landscape');
|
|
return $pdf->download('wtd_' . $request->cawangan . '_' . $tarikh_cetak . '.pdf');
|
|
} else {
|
|
|
|
|
|
return view('wtd.dalamprosesexcel', compact('tarikh_cetak', 'cawangan_detail', 'wtdDalamProses', 'api_url'));
|
|
}
|
|
}
|
|
}
|
|
|
|
public function janaSimulasi(Request $request)
|
|
{
|
|
$cawangan = Http::get(config('api.url') . '/api/cawangan/')->json();
|
|
|
|
return view('wtd.simulasi.janaSimulasi', compact('cawangan'));
|
|
}
|
|
|
|
public function showSimulasi(Request $request)
|
|
{
|
|
$request->validate([
|
|
'kodcaw' => 'required',
|
|
'tahun' => 'required',
|
|
], [
|
|
'kodcaw.required' => 'Sila Pilih Cawangan Terlebih Dahulu.',
|
|
'tahun.required' => 'Sila Masukkan Tahun Terlebih Dahulu.',
|
|
]);
|
|
|
|
$senaraiSimulasi = Http::get(config('api.url') . '/admin/wtd/janaSimulasi', ['kodcaw' => $request->kodcaw, 'tahun' => $request->tahun])->json();
|
|
|
|
$year = $request->tahun;
|
|
|
|
// dd($senaraiSimulasi, $request->kodcaw, $request->tahun);
|
|
|
|
return view('wtd.simulasi.show', compact('senaraiSimulasi', 'year'));
|
|
}
|
|
|
|
public function showRekod(Request $request)
|
|
{
|
|
$bulan = $request->input('month');
|
|
$bulanNumber = date('n', strtotime($bulan));
|
|
|
|
$rekod = Http::get(config('api.url') . '/admin/wtd/rekodSimulasi', ['kodcaw' => $request->kodcaw, 'month' => $bulanNumber, 'year' => $request->year])->json();
|
|
|
|
$totalBaki = collect($rekod)->sum('baki');
|
|
|
|
// dd($rekod, $bulanNumber, $totalBaki, $bulan);
|
|
|
|
return view('wtd.simulasi.rekod', compact('bulan', 'rekod', 'totalBaki'));
|
|
}
|
|
|
|
public function prosesWTD(Request $request)
|
|
{
|
|
// dd($request->input());
|
|
$request->validate([
|
|
'data.*.bulan' => 'required|string',
|
|
'data.*.jumlah_norujukan' => 'required|numeric',
|
|
'data.*.pembiayaan' => 'required|numeric',
|
|
'data.*.baki' => 'required|numeric',
|
|
'data.*.selected' => 'nullable',
|
|
]);
|
|
|
|
// Process the selected data
|
|
$data = $request->input('data', []);
|
|
$insertedRecords = [];
|
|
$kodcaw = $request->data[0]['kodcaw'];
|
|
|
|
foreach ($data as $item) {
|
|
if (isset($item['selected'])) {
|
|
$insertedRecords[] = [
|
|
'bulan' => $item['bulan'],
|
|
'tahun' => $request->tahun,
|
|
'kodcaw' => $kodcaw,
|
|
'jumlah_sag' => $item['jumlah_norujukan'],
|
|
'pembiayaan' => $item['pembiayaan'],
|
|
'baki' => $item['baki'],
|
|
'created_at' => now(),
|
|
'updated_at' => now(),
|
|
];
|
|
}
|
|
}
|
|
$response = Http::post(config('api.url') . '/admin/wtd/prosesSimulasi', [
|
|
'input' => $insertedRecords
|
|
])->json();
|
|
|
|
// dd($data, $insertedRecords, $kodcaw, $response);
|
|
|
|
return view('wtd.simulasi.pengesahan', compact('insertedRecords', 'response', 'kodcaw'));
|
|
}
|
|
|
|
public function pengesahanSimulasi(Request $request)
|
|
{
|
|
$response = Http::post(config('api.url') . '/admin/wtd/pengesahanSimulasi', [
|
|
'records' => $request->records,
|
|
'kodcaw' => $request->kodcaw,
|
|
])->json();
|
|
|
|
return view('wtd.index');
|
|
}
|
|
|
|
public function serahbaki()
|
|
{
|
|
return view('wtd.simulasi.serahbaki');
|
|
}
|
|
|
|
public function simulasiToDraft(Request $request)
|
|
{
|
|
$response = Http::post(config('api.url') . '/admin/wtd/simulasiToDraft', [
|
|
'bulan' => $request->bulan,
|
|
|
|
])->json();
|
|
|
|
dd($response);
|
|
}
|
|
|
|
public function summaryWtd(Request $request)
|
|
{
|
|
$current = Carbon::now();
|
|
|
|
$getReportDate = function ($date_string) use ($current) {
|
|
return $date_string ? $date_string : $current->toDateString();
|
|
};
|
|
|
|
$request->hostname = config('api.url');
|
|
|
|
$startDate = $getReportDate($request->startDate);
|
|
$endDate = $getReportDate($request->endDate);
|
|
|
|
// $summarywtd = Http::get($request->hostname . '/admin/wtd/summaryWtd', [
|
|
// 'startDate' => $startDate,
|
|
// 'endDate' => $endDate,
|
|
// ])->effectiveUri()->__toString();
|
|
|
|
$summarywtd = Http::get($request->hostname . '/admin/wtd/summaryWtd', [
|
|
'startDate' => $startDate,
|
|
'endDate' => $endDate,
|
|
])->json();
|
|
|
|
|
|
if (!is_array($summarywtd)) {
|
|
$summarywtd = [];
|
|
}
|
|
|
|
return view('reports.wtd.index', compact('summarywtd', 'startDate', 'endDate'));
|
|
}
|
|
|
|
public function exportExcel(Request $request, $kodcaw)
|
|
{
|
|
return Excel::download(
|
|
new WTDDetailExport(
|
|
$kodcaw,
|
|
$request->startDate,
|
|
$request->endDate
|
|
),"Detail_Laporan_WTD_{$kodcaw}.xlsx");
|
|
}
|
|
|
|
public function home()
|
|
{
|
|
return view('wtd.debug.home');
|
|
}
|
|
|
|
public function trail(Request $request)
|
|
{
|
|
$current = Carbon::now();
|
|
|
|
$getReportDate = function ($date_string) use ($current) {
|
|
return $date_string ? $date_string : $current->toDateString();
|
|
};
|
|
|
|
$request->hostname = config('api.url');
|
|
|
|
$startDate = $getReportDate($request->startDate);
|
|
$endDate = $getReportDate($request->endDate);
|
|
|
|
$debugwtd = Http::get($request->hostname . '/admin/wtd/debugWtd', [
|
|
'startDate' => $startDate,
|
|
'endDate' => $endDate,
|
|
])->json();
|
|
|
|
|
|
if (!is_array($debugwtd)) {
|
|
$debugwtd = [];
|
|
}
|
|
|
|
return view('wtd.debug.index', compact('debugwtd', 'startDate', 'endDate'));
|
|
}
|
|
|
|
}
|