143 lines
4.6 KiB
PHP
143 lines
4.6 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Reports;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use Carbon\Carbon;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\App;
|
|
use Illuminate\Support\Facades\Http;
|
|
use Maatwebsite\Excel\Facades\Excel;
|
|
use Illuminate\Support\Facades\Auth;
|
|
use App\Exports\LaporanKeseluruhan\PelangganbaruAllExportExcel;
|
|
use App\Exports\LaporanKeseluruhan\PelangganaktifAllExportExcel;
|
|
use App\Exports\DataPelangganDetailExport;
|
|
|
|
class AnalisaController extends Controller
|
|
{
|
|
public function index(Request $request)
|
|
{
|
|
$current = new Carbon();
|
|
$request->hostname = config('api.url');
|
|
// dd($request->hostname );
|
|
$kod_cawangan = $request->kod_cawangan;
|
|
$action = $request->input('action', 'search');
|
|
// dd($action);
|
|
|
|
$getReportDate = function ($date_string) use ($current) {
|
|
if ($date_string == null) {
|
|
return $current->toDateString();
|
|
}
|
|
|
|
return $date_string;
|
|
};
|
|
|
|
$request->hostname = config('api.url');
|
|
|
|
$pelangganbaru = Http::get($request->hostname . '/api/reports/pelangganbaru', [
|
|
'startDate' => $getReportDate($request->startDate),
|
|
'endDate' => $getReportDate($request->endDate),
|
|
])->json();
|
|
// dd($pelangganbaru);
|
|
|
|
$startDate = $getReportDate($request->startDate);
|
|
$endDate = $getReportDate($request->endDate);
|
|
|
|
if ($action === 'excel') {
|
|
$file_title = sprintf("LaporanPelangganBaru(%s).xlsx", $kod_cawangan, $request->startDate, $request->endDate);
|
|
return Excel::download(new PelangganbaruAllExportExcel($pelangganbaru,$startDate,$endDate), $file_title);
|
|
}
|
|
|
|
$pelangganbaru = $pelangganbaru ?? [];
|
|
|
|
return view('reports.pelangganbaru.index', compact('pelangganbaru', 'startDate', 'endDate'));
|
|
}
|
|
|
|
public function pelangganaktif(Request $request)
|
|
{
|
|
$current = new Carbon();
|
|
$request->hostname = config('api.url');
|
|
// dd($request->hostname );
|
|
$kod_cawangan = $request->kod_cawangan;
|
|
$action = $request->input('action', 'search');
|
|
// dd($action);
|
|
|
|
$getReportDate = function ($date_string) use ($current) {
|
|
if ($date_string == null) {
|
|
return $current->toDateString();
|
|
}
|
|
|
|
return $date_string;
|
|
};
|
|
|
|
$request->hostname = config('api.url');
|
|
|
|
$pelangganaktif = Http::get($request->hostname . '/api/reports/pelangganaktif', [
|
|
'startDate' => $getReportDate($request->startDate),
|
|
'endDate' => $getReportDate($request->endDate),
|
|
])->json();
|
|
// dd($pelangganbaru);
|
|
|
|
$startDate = $getReportDate($request->startDate);
|
|
$endDate = $getReportDate($request->endDate);
|
|
|
|
if ($action === 'excel') {
|
|
$file_title = sprintf("LaporanPelangganAktif(%s).xlsx", $kod_cawangan, $request->startDate, $request->endDate);
|
|
return Excel::download(new PelangganaktifAllExportExcel($pelangganaktif,$startDate,$endDate), $file_title);
|
|
}
|
|
|
|
$pelangganaktif = $pelangganaktif ?? [];
|
|
|
|
return view('reports.pelangganaktif.index', compact('pelangganaktif', 'startDate', 'endDate'));
|
|
}
|
|
|
|
public function dataPelanggan(Request $request)
|
|
{
|
|
$request->hostname = config('api.url');
|
|
$current = new Carbon();
|
|
|
|
$month = $request->filled('month') ? $request->month : $current->month;
|
|
$year = $request->filled('year') ? $request->year : $current->year;
|
|
|
|
return view('reports.data-pelanggan.index', compact('month', 'year'));
|
|
}
|
|
|
|
public function dataPelangganShow(Request $request)
|
|
{
|
|
$validated = $request->validate([
|
|
'year' => 'required|digits:4'
|
|
]);
|
|
|
|
$year = $validated['year'];
|
|
$tarikh_cetak = now()->format('d/m/Y');
|
|
$tebus_date = 'Tahun ' . $year;
|
|
|
|
$request->hostname = config('api.url');
|
|
|
|
$response = Http::get($request->hostname . '/api/reports/data-pelanggan', [
|
|
'year' => $year,
|
|
])->json();
|
|
|
|
$summary = $response['summary'];
|
|
$pelanggan = $response['pelanggan'];
|
|
|
|
if ($request->generateType === 'pdf') {
|
|
return view(
|
|
'reports.data-pelanggan.show',
|
|
compact('summary','pelanggan','tarikh_cetak','tebus_date','year')
|
|
);
|
|
}
|
|
elseif ($request->generateType === 'excel') {
|
|
return Excel::download(
|
|
new DataPelangganDetailExport($pelanggan, $year),
|
|
"Laporan-Data-Pelanggan-{$year}.xlsx"
|
|
);
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|