tambah laporan gadai tebus masa
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
namespace App\Exports;
|
||||
|
||||
use Maatwebsite\Excel\Concerns\WithMultipleSheets;
|
||||
|
||||
class GadaiTebusMasaExport implements WithMultipleSheets
|
||||
{
|
||||
public $cawangan_detail;
|
||||
public $query;
|
||||
public $gadaian;
|
||||
public $summary_gadaian;
|
||||
protected $gadaian_full_data;
|
||||
|
||||
public function __construct($data)
|
||||
{
|
||||
$this->cawangan_detail = $data['cawangan_detail'];
|
||||
$this->query = $data['query'];
|
||||
$this->gadaian = $data['gadaian'];
|
||||
$this->summary_gadaian = $data['summary_gadaian'];
|
||||
}
|
||||
|
||||
public function sheets(): array
|
||||
{
|
||||
// Sheet untuk senarai penuh gadaian (gabung semua teller)
|
||||
$full_gadaian_data = [];
|
||||
|
||||
foreach ($this->gadaian as $teller => $data) {
|
||||
if (isset($data['gadaian']) && is_array($data['gadaian'])) {
|
||||
foreach ($data['gadaian'] as $item) {
|
||||
$item['teller'] = $teller; // optional: simpan info teller
|
||||
$full_gadaian_data[] = $item;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$sheets[] = new GadaiTebusMasaFullExport(
|
||||
$this->cawangan_detail,
|
||||
$this->query,
|
||||
$this->gadaian,
|
||||
$full_gadaian_data
|
||||
);
|
||||
|
||||
return $sheets;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
<?php
|
||||
|
||||
namespace App\Exports;
|
||||
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Maatwebsite\Excel\Concerns\FromView;
|
||||
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
|
||||
use Maatwebsite\Excel\Concerns\WithTitle;
|
||||
use Maatwebsite\Excel\Concerns\WithColumnFormatting;
|
||||
use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
|
||||
|
||||
class GadaiTebusMasaFullExport implements FromView, ShouldAutoSize, WithTitle, WithColumnFormatting
|
||||
{
|
||||
protected $cawangan_detail;
|
||||
protected $query;
|
||||
protected $gadaian_full_data;
|
||||
|
||||
public function __construct($cawangan_detail, $query, $gadaian_full_data)
|
||||
{
|
||||
$this->cawangan_detail = $cawangan_detail;
|
||||
$this->query = $query;
|
||||
$this->gadaian_full_data = $gadaian_full_data;
|
||||
}
|
||||
|
||||
public function view(): View
|
||||
{
|
||||
return view('exports.gadaian.full', [
|
||||
'cawangan_detail' => $this->cawangan_detail,
|
||||
'query' => $this->query,
|
||||
'gadaian_data' => $this->gadaian_full_data,
|
||||
]);
|
||||
}
|
||||
|
||||
public function title(): string
|
||||
{
|
||||
return 'SENARAI GADAI TEBUS PENUH';
|
||||
}
|
||||
|
||||
public function columnFormats(): array
|
||||
{
|
||||
return [
|
||||
'E' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1, // Berat
|
||||
'F' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1, // Nilai Marhun
|
||||
'G' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1, // Pinjaman
|
||||
'H' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1, // Keuntungan
|
||||
'I' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1, // caj lelong
|
||||
'J' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1, // baki
|
||||
'K' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1, // baki
|
||||
'L' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1, // baki
|
||||
|
||||
|
||||
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -11,6 +11,7 @@ use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Http;
|
||||
use Maatwebsite\Excel\Facades\Excel;
|
||||
use App\Exports\LaporanKeseluruhan\GadaiTebusAllExportExcel;
|
||||
use App\Exports\GadaiTebusMasaExport;
|
||||
|
||||
class GadaianController extends Controller
|
||||
{
|
||||
@@ -99,4 +100,79 @@ class GadaianController extends Controller
|
||||
|
||||
return view('reports.gadaitebus.index', compact('gadaian', 'startDate', 'endDate'));
|
||||
}
|
||||
|
||||
public function gadaitebusmasa(Request $request)
|
||||
{
|
||||
$current = new Carbon();
|
||||
$action = $request->input('action', 'search');
|
||||
$kod_cawangan = $request->kod_cawangan;
|
||||
|
||||
$getReportDate = function ($date_string) use ($current) {
|
||||
if ($date_string == null) {
|
||||
return $current->toDateString();
|
||||
}
|
||||
|
||||
return $date_string;
|
||||
};
|
||||
|
||||
$request->hostname = config('api.url');
|
||||
|
||||
$gadaian = Http::get($request->hostname . '/api/reports/gadaitebus', [
|
||||
'startDate' => $getReportDate($request->startDate),
|
||||
'endDate' => $getReportDate($request->endDate),
|
||||
])->json();
|
||||
|
||||
$startDate = $getReportDate($request->startDate);
|
||||
$endDate = $getReportDate($request->endDate);
|
||||
|
||||
if ($action === 'excel') {
|
||||
$file_title = sprintf("LaporanGadaiTebusMasa %s (%s - %s).xlsx", $kod_cawangan, $request->startDate, $request->endDate);
|
||||
return Excel::download(new GadaiTebusMasaAllExportExcel($gadaian), $file_title);
|
||||
}
|
||||
|
||||
return view('reports.gadaitebusmasa.index', compact('gadaian', 'startDate', 'endDate'));
|
||||
}
|
||||
|
||||
public function downloadGadaiTebusMasaCawanganExcel(Request $request)
|
||||
{
|
||||
$api_url = $request->hostname;
|
||||
$auth_user = Auth::user();
|
||||
$current = Carbon::now();
|
||||
$tarikh_cetak = $current->toDateString();
|
||||
|
||||
$getReportDate = function ($date_string) use ($current) {
|
||||
return $date_string ?? $current->toDateString();
|
||||
};
|
||||
|
||||
$request->hostname = config('api.url');
|
||||
$kod_cawangan = $request->kod_cawangan;
|
||||
// dd($kod_cawangan);
|
||||
|
||||
$data = Http::get($request->hostname . '/api/reports/gadaitebusmasa/' . $kod_cawangan, [
|
||||
'startDate' => $getReportDate($request->startDate),
|
||||
'endDate' => $getReportDate($request->endDate),
|
||||
])->json();
|
||||
|
||||
$byTeller = $request->input('by_teller', 1); // default ikut teller
|
||||
|
||||
if (!$byTeller) {
|
||||
// Gabung semua data jadi satu baris
|
||||
$gabung = [
|
||||
'teller' => 'Keseluruhan',
|
||||
'jumlah_lelongan' => 0,
|
||||
'jumlah_baki' => 0,
|
||||
];
|
||||
|
||||
foreach ($data as $item) {
|
||||
$gabung['jumlah_lelongan'] += $item['jumlah_lelongan'] ?? 0;
|
||||
$gabung['jumlah_baki'] += $item['jumlah_baki'] ?? 0;
|
||||
}
|
||||
|
||||
$data = [$gabung];
|
||||
}
|
||||
|
||||
|
||||
$file_title = sprintf("LaporanGadaiTebusMasaCawangan %s (%s - %s).xlsx", $kod_cawangan, $request->startDate, $request->endDate);
|
||||
return Excel::download(new GadaiTebusMasaExport($data), $file_title);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user