Merge remote main
This commit is contained in:
@@ -0,0 +1,130 @@
|
||||
<?php
|
||||
|
||||
namespace App\Exports;
|
||||
|
||||
use Illuminate\Support\Collection;
|
||||
use Maatwebsite\Excel\Concerns\FromCollection;
|
||||
use Maatwebsite\Excel\Concerns\WithHeadings;
|
||||
use Maatwebsite\Excel\Concerns\WithMapping;
|
||||
use Maatwebsite\Excel\Concerns\WithStyles;
|
||||
use Maatwebsite\Excel\Concerns\WithCustomStartCell;
|
||||
use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
|
||||
|
||||
class DataPelangganBycawDetailExport implements
|
||||
FromCollection,
|
||||
WithHeadings,
|
||||
WithMapping,
|
||||
WithStyles,
|
||||
WithCustomStartCell
|
||||
{
|
||||
protected $pelanggan;
|
||||
protected $year;
|
||||
protected $no = 0;
|
||||
|
||||
public function __construct($pelanggan, $year)
|
||||
{
|
||||
$this->pelanggan = collect($pelanggan);
|
||||
$this->year = $year;
|
||||
}
|
||||
|
||||
/**
|
||||
* Data source
|
||||
*/
|
||||
public function collection(): Collection
|
||||
{
|
||||
return $this->pelanggan;
|
||||
}
|
||||
|
||||
/**
|
||||
* Start data from row 5 (sebab ada tajuk)
|
||||
*/
|
||||
public function startCell(): string
|
||||
{
|
||||
return 'A5';
|
||||
}
|
||||
|
||||
/**
|
||||
* Header column
|
||||
*/
|
||||
public function headings(): array
|
||||
{
|
||||
return [
|
||||
'No',
|
||||
'Cawangan',
|
||||
'No.Pelanggan',
|
||||
'Umur',
|
||||
'Jantina',
|
||||
'Pekerjaan',
|
||||
'Lokasi',
|
||||
'Tempoh Pajakan',
|
||||
'Tarikh Mula',
|
||||
'Tarikh Tamat',
|
||||
'Hari Sejak Transaksi Terakhir',
|
||||
'Bil Transaksi',
|
||||
'Bil Outstanding',
|
||||
'Bil Tebus',
|
||||
'Jumlah Pinjaman (RM)',
|
||||
'Jumlah Ujrah (RM)',
|
||||
'Tujuan Gadaian',
|
||||
'Status Aktif',
|
||||
'Cara Bayaran',
|
||||
'Tarikh Lelong',
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Map setiap row
|
||||
*/
|
||||
public function map($row): array
|
||||
{
|
||||
return [
|
||||
++$this->no,
|
||||
$row['cawangan'],
|
||||
$row['nopelanggan'],
|
||||
$row['umur'],
|
||||
$row['jantina'],
|
||||
$row['pekerjaan'],
|
||||
$row['daerah'],
|
||||
$row['tempoh_pajakan'],
|
||||
$row['tarikh_mula'],
|
||||
$row['tarikh_tamat'],
|
||||
$row['hari_sejak_transaksi'],
|
||||
$row['bil_transaksi'],
|
||||
$row['bil_outstanding'],
|
||||
$row['bil_tebus'],
|
||||
number_format($row['jumlah_pinjaman'], 2),
|
||||
number_format($row['jumlah_ujrah'], 2),
|
||||
$row['tujuan_gadai'],
|
||||
$row['status_aktif'],
|
||||
$row['cara_bayaran'],
|
||||
$row['tarikh_lelong'] ?? '-',
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Styling Excel
|
||||
*/
|
||||
public function styles(Worksheet $sheet)
|
||||
{
|
||||
// Tajuk utama
|
||||
$sheet->mergeCells('A1:R1');
|
||||
$sheet->setCellValue('A1', 'LAPORAN DATA PELANGGAN MENGIKUT CAWANGAN');
|
||||
$sheet->getStyle('A1')->getFont()->setBold(true)->setSize(14);
|
||||
$sheet->getStyle('A1')->getAlignment()->setHorizontal('center');
|
||||
|
||||
// Tahun
|
||||
$sheet->mergeCells('A2:R2');
|
||||
$sheet->setCellValue('A2', 'TAHUN : ' . $this->year);
|
||||
$sheet->getStyle('A2')->getFont()->setBold(true);
|
||||
$sheet->getStyle('A2')->getAlignment()->setHorizontal('center');
|
||||
|
||||
// Header table
|
||||
$sheet->getStyle('A5:R5')->getFont()->setBold(true);
|
||||
$sheet->getStyle('A5:R5')->getAlignment()->setHorizontal('center');
|
||||
|
||||
// Auto width
|
||||
foreach (range('A', 'R') as $col) {
|
||||
$sheet->getColumnDimension($col)->setAutoSize(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,130 @@
|
||||
<?php
|
||||
|
||||
namespace App\Exports;
|
||||
|
||||
use Illuminate\Support\Collection;
|
||||
use Maatwebsite\Excel\Concerns\FromCollection;
|
||||
use Maatwebsite\Excel\Concerns\WithHeadings;
|
||||
use Maatwebsite\Excel\Concerns\WithMapping;
|
||||
use Maatwebsite\Excel\Concerns\WithStyles;
|
||||
use Maatwebsite\Excel\Concerns\WithCustomStartCell;
|
||||
use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
|
||||
|
||||
class DataPelangganDetailExport implements
|
||||
FromCollection,
|
||||
WithHeadings,
|
||||
WithMapping,
|
||||
WithStyles,
|
||||
WithCustomStartCell
|
||||
{
|
||||
protected $pelanggan;
|
||||
protected $year;
|
||||
protected $no = 0;
|
||||
|
||||
public function __construct($pelanggan, $year)
|
||||
{
|
||||
$this->pelanggan = collect($pelanggan);
|
||||
$this->year = $year;
|
||||
}
|
||||
|
||||
/**
|
||||
* Data source
|
||||
*/
|
||||
public function collection(): Collection
|
||||
{
|
||||
return $this->pelanggan;
|
||||
}
|
||||
|
||||
/**
|
||||
* Start data from row 5 (sebab ada tajuk)
|
||||
*/
|
||||
public function startCell(): string
|
||||
{
|
||||
return 'A5';
|
||||
}
|
||||
|
||||
/**
|
||||
* Header column
|
||||
*/
|
||||
public function headings(): array
|
||||
{
|
||||
return [
|
||||
'No',
|
||||
'Nama Pelanggan',
|
||||
'No.Pelanggan',
|
||||
'Umur',
|
||||
'Jantina',
|
||||
'Pekerjaan',
|
||||
'Lokasi',
|
||||
'Tempoh Pajakan',
|
||||
'Tarikh Mula',
|
||||
'Tarikh Tamat',
|
||||
'Hari Sejak Transaksi Terakhir',
|
||||
'Bil Transaksi',
|
||||
'Bil Outstanding',
|
||||
'Bil Tebus',
|
||||
'Jumlah Pinjaman (RM)',
|
||||
'Jumlah Ujrah (RM)',
|
||||
'Tujuan Gadaian',
|
||||
'Status Aktif',
|
||||
'Cara Bayaran',
|
||||
'Tarikh Lelong',
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Map setiap row
|
||||
*/
|
||||
public function map($row): array
|
||||
{
|
||||
return [
|
||||
++$this->no,
|
||||
strtoupper($row['nama']),
|
||||
$row['nopelanggan'],
|
||||
$row['umur'],
|
||||
$row['jantina'],
|
||||
$row['pekerjaan'],
|
||||
$row['daerah'],
|
||||
$row['tempoh_pajakan'],
|
||||
$row['tarikh_mula'],
|
||||
$row['tarikh_tamat'],
|
||||
$row['hari_sejak_transaksi'],
|
||||
$row['bil_transaksi'],
|
||||
$row['bil_outstanding'],
|
||||
$row['bil_tebus'],
|
||||
number_format($row['jumlah_pinjaman'], 2),
|
||||
number_format($row['jumlah_ujrah'], 2),
|
||||
$row['tujuan_gadai'],
|
||||
$row['status_aktif'],
|
||||
$row['cara_bayaran'],
|
||||
$row['tarikh_lelong'] ?? '-',
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Styling Excel
|
||||
*/
|
||||
public function styles(Worksheet $sheet)
|
||||
{
|
||||
// Tajuk utama
|
||||
$sheet->mergeCells('A1:R1');
|
||||
$sheet->setCellValue('A1', 'LAPORAN DATA PELANGGAN');
|
||||
$sheet->getStyle('A1')->getFont()->setBold(true)->setSize(14);
|
||||
$sheet->getStyle('A1')->getAlignment()->setHorizontal('center');
|
||||
|
||||
// Tahun
|
||||
$sheet->mergeCells('A2:R2');
|
||||
$sheet->setCellValue('A2', 'TAHUN : ' . $this->year);
|
||||
$sheet->getStyle('A2')->getFont()->setBold(true);
|
||||
$sheet->getStyle('A2')->getAlignment()->setHorizontal('center');
|
||||
|
||||
// Header table
|
||||
$sheet->getStyle('A5:R5')->getFont()->setBold(true);
|
||||
$sheet->getStyle('A5:R5')->getAlignment()->setHorizontal('center');
|
||||
|
||||
// Auto width
|
||||
foreach (range('A', 'R') as $col) {
|
||||
$sheet->getColumnDimension($col)->setAutoSize(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
<?php
|
||||
|
||||
namespace App\Exports;
|
||||
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Maatwebsite\Excel\Concerns\FromView;
|
||||
use Illuminate\Support\Facades\Http;
|
||||
|
||||
class GadaianDetailExport implements FromView
|
||||
{
|
||||
protected $kodcaw;
|
||||
protected $startDate;
|
||||
protected $endDate;
|
||||
|
||||
public function __construct($kodcaw, $startDate, $endDate)
|
||||
{
|
||||
$this->kodcaw = $kodcaw;
|
||||
$this->startDate = $startDate;
|
||||
$this->endDate = $endDate;
|
||||
}
|
||||
|
||||
public function view(): View
|
||||
{
|
||||
$generatedAt = now()->format('d-m-Y');
|
||||
|
||||
$data = Http::get(config('api.url') . '/api/reports/saringan/gadaian', [
|
||||
'startDate' => $this->startDate,
|
||||
'endDate' => $this->endDate,
|
||||
])->json();
|
||||
|
||||
$branch = collect($data)->firstWhere('kodcaw', $this->kodcaw);
|
||||
$details = collect($branch['details'] ?? []);
|
||||
|
||||
$tgb_lelong = $details->where('jenis', 'TGB_LELONG')->values();
|
||||
$tgb_biasa = $details->where('jenis', 'TGB_BIASA')->values();
|
||||
$gadai_biasa = $details->where('jenis', 'GADAI_BIASA')->values();
|
||||
|
||||
$subtotal = [
|
||||
'tgb_lelong' => [
|
||||
'berat' => $tgb_lelong->sum('berat'),
|
||||
'nilai' => $tgb_lelong->sum('nilaimarhun'),
|
||||
'pinjaman' => $tgb_lelong->sum('pinjaman'),
|
||||
],
|
||||
'tgb_biasa' => [
|
||||
'berat' => $tgb_biasa->sum('berat'),
|
||||
'nilai' => $tgb_biasa->sum('nilaimarhun'),
|
||||
'pinjaman' => $tgb_biasa->sum('pinjaman'),
|
||||
],
|
||||
'gadai_biasa' => [
|
||||
'berat' => $gadai_biasa->sum('berat'),
|
||||
'nilai' => $gadai_biasa->sum('nilaimarhun'),
|
||||
'pinjaman' => $gadai_biasa->sum('pinjaman'),
|
||||
],
|
||||
];
|
||||
|
||||
$grandTotal = [
|
||||
'berat' => $subtotal['tgb_lelong']['berat']
|
||||
+ $subtotal['tgb_biasa']['berat']
|
||||
+ $subtotal['gadai_biasa']['berat'],
|
||||
|
||||
'nilai' => $subtotal['tgb_lelong']['nilai']
|
||||
+ $subtotal['tgb_biasa']['nilai']
|
||||
+ $subtotal['gadai_biasa']['nilai'],
|
||||
|
||||
'pinjaman' => $subtotal['tgb_lelong']['pinjaman']
|
||||
+ $subtotal['tgb_biasa']['pinjaman']
|
||||
+ $subtotal['gadai_biasa']['pinjaman'],
|
||||
];
|
||||
|
||||
return view('reports.saringan-gadaian.excel', compact(
|
||||
'branch',
|
||||
'generatedAt',
|
||||
'tgb_lelong',
|
||||
'tgb_biasa',
|
||||
'gadai_biasa',
|
||||
'subtotal',
|
||||
'grandTotal'
|
||||
));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,222 @@
|
||||
<?php
|
||||
|
||||
namespace App\Exports\LaporanKeseluruhan;
|
||||
|
||||
use Maatwebsite\Excel\Concerns\FromArray;
|
||||
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
|
||||
use Maatwebsite\Excel\Concerns\WithCustomValueBinder;
|
||||
use Maatwebsite\Excel\Concerns\WithHeadings;
|
||||
use Maatwebsite\Excel\Concerns\WithStrictNullComparison;
|
||||
use PhpOffice\PhpSpreadsheet\Cell\Cell;
|
||||
use PhpOffice\PhpSpreadsheet\Cell\DataType;
|
||||
use PhpOffice\PhpSpreadsheet\Cell\DefaultValueBinder;
|
||||
use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
|
||||
use Maatwebsite\Excel\Concerns\WithColumnFormatting;
|
||||
use Maatwebsite\Excel\Concerns\WithMultipleSheets;
|
||||
use Maatwebsite\Excel\Concerns\WithCustomStartCell;
|
||||
use Maatwebsite\Excel\Events\AfterSheet;
|
||||
use Maatwebsite\Excel\Concerns\WithEvents;
|
||||
|
||||
class AgingTebusAllExportExcel extends DefaultValueBinder implements
|
||||
FromArray,
|
||||
WithStrictNullComparison,
|
||||
WithHeadings,
|
||||
ShouldAutoSize,
|
||||
WithCustomValueBinder,
|
||||
WithColumnFormatting,
|
||||
WithEvents,
|
||||
WithCustomStartCell
|
||||
{
|
||||
protected $aging;
|
||||
protected $startDate;
|
||||
protected $endDate;
|
||||
|
||||
|
||||
public function __construct($aging,$startDate,$endDate)
|
||||
{
|
||||
$this->aging = $aging;
|
||||
$this->startDate = $startDate;
|
||||
$this->endDate = $endDate;
|
||||
}
|
||||
|
||||
public function array(): array
|
||||
{
|
||||
$rows = [];
|
||||
$totals = [];
|
||||
|
||||
foreach ($this->aging as $branch) {
|
||||
$row = [$branch['cawangan']];
|
||||
$i = 0;
|
||||
|
||||
foreach ($branch['summary_by_tempoh'] as $summary) {
|
||||
$row[] = $summary['count'];
|
||||
$row[] = $summary['sum_bayaran_keuntungan_rebet'];
|
||||
|
||||
// Totals per column
|
||||
$totals[$i]['count'] = ($totals[$i]['count'] ?? 0) + $summary['count'];
|
||||
$totals[$i]['sum_bayaran_keuntungan_rebet'] = ($totals[$i]['sum_bayaran_keuntungan_rebet'] ?? 0) + $summary['sum_bayaran_keuntungan_rebet'];
|
||||
$i++;
|
||||
}
|
||||
|
||||
// Total per row (cawangan)
|
||||
$jumlahBil = collect($branch['summary_by_tempoh'])->sum('count');
|
||||
$jumlahRM = collect($branch['summary_by_tempoh'])->sum('sum_bayaran_keuntungan_rebet');
|
||||
$row[] = $jumlahBil;
|
||||
$row[] = $jumlahRM;
|
||||
|
||||
// Add to column totals
|
||||
$totals['jumlah']['count'] = ($totals['jumlah']['count'] ?? 0) + $jumlahBil;
|
||||
$totals['jumlah']['sum_bayaran_keuntungan_rebet'] = ($totals['jumlah']['sum_bayaran_keuntungan_rebet'] ?? 0) + $jumlahRM;
|
||||
|
||||
$rows[] = $row;
|
||||
}
|
||||
|
||||
// Add final total row
|
||||
$totalRow = ['Jumlah'];
|
||||
foreach ($totals as $key => $val) {
|
||||
$totalRow[] = $val['count'];
|
||||
$totalRow[] = $val['sum_bayaran_keuntungan_rebet'];
|
||||
}
|
||||
|
||||
$rows[] = $totalRow;
|
||||
|
||||
return $rows;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Multi-row headings (2 rows)
|
||||
*/
|
||||
public function headings(): array
|
||||
{
|
||||
$row1 = ['Cawangan'];
|
||||
$row2 = [''];
|
||||
|
||||
if (!empty($this->aging[0]['summary_by_tempoh'])) {
|
||||
foreach ($this->aging[0]['summary_by_tempoh'] as $summary) {
|
||||
$row1[] = $summary['label'];
|
||||
$row1[] = ''; // empty to allow merged cell
|
||||
$row2[] = 'Bil';
|
||||
$row2[] = 'RM';
|
||||
}
|
||||
}
|
||||
|
||||
$row1[] = 'Jumlah';
|
||||
$row1[] = ''; // for merged "Jumlah" cell
|
||||
$row2[] = 'Bil';
|
||||
$row2[] = 'RM';
|
||||
|
||||
return [$row1, $row2];
|
||||
}
|
||||
|
||||
public function columnFormats(): array
|
||||
{
|
||||
$formats = [];
|
||||
$colIndex = 2; // Start at column B (Cawangan is A)
|
||||
|
||||
$tempohCount = count($this->aging[0]['summary_by_tempoh'] ?? []);
|
||||
for ($i = 0; $i < $tempohCount; $i++) {
|
||||
// Bil column
|
||||
$bilCol = \PhpOffice\PhpSpreadsheet\Cell\Coordinate::stringFromColumnIndex($colIndex++);
|
||||
$formats[$bilCol] = NumberFormat::FORMAT_NUMBER; // ✅ No decimal
|
||||
|
||||
// RM column
|
||||
$rmCol = \PhpOffice\PhpSpreadsheet\Cell\Coordinate::stringFromColumnIndex($colIndex++);
|
||||
$formats[$rmCol] = NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1; // RM with comma and decimals
|
||||
}
|
||||
|
||||
// Jumlah Bil
|
||||
$jumlahBilCol = \PhpOffice\PhpSpreadsheet\Cell\Coordinate::stringFromColumnIndex($colIndex++);
|
||||
$formats[$jumlahBilCol] = NumberFormat::FORMAT_NUMBER; // ✅ No decimal
|
||||
|
||||
// Jumlah RM
|
||||
$jumlahRMCol = \PhpOffice\PhpSpreadsheet\Cell\Coordinate::stringFromColumnIndex($colIndex++);
|
||||
$formats[$jumlahRMCol] = NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1;
|
||||
|
||||
return $formats;
|
||||
}
|
||||
|
||||
|
||||
public function bindValue(Cell $cell, $value)
|
||||
{
|
||||
if (is_numeric($value)) {
|
||||
$cell->setValueExplicit($value, DataType::TYPE_NUMERIC);
|
||||
return true;
|
||||
}
|
||||
|
||||
return parent::bindValue($cell, $value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Merge heading cells using AfterSheet event
|
||||
*/
|
||||
public function registerEvents(): array
|
||||
{
|
||||
return [
|
||||
AfterSheet::class => function(AfterSheet $event) {
|
||||
|
||||
$sheet = $event->sheet->getDelegate();
|
||||
|
||||
// Tajuk laporan
|
||||
$sheet->setCellValue('A1', 'KEUNTUNGAN PENYELESAIAN PEMBIAYAAN BY TEMPOH');
|
||||
|
||||
// Tarikh laporan
|
||||
$sheet->setCellValue(
|
||||
'A2',
|
||||
'Tarikh : ' .
|
||||
\Carbon\Carbon::parse($this->startDate)->format('d/m/Y') .
|
||||
' hingga ' .
|
||||
\Carbon\Carbon::parse($this->endDate)->format('d/m/Y')
|
||||
);
|
||||
|
||||
// Merge tajuk
|
||||
$lastColumn = \PhpOffice\PhpSpreadsheet\Cell\Coordinate::stringFromColumnIndex(
|
||||
(count($this->aging[0]['summary_by_tempoh'] ?? []) * 2) + 3
|
||||
);
|
||||
|
||||
$sheet->mergeCells("A1:{$lastColumn}1");
|
||||
|
||||
// Style tajuk
|
||||
$sheet->getStyle("A1:{$lastColumn}1")->applyFromArray([
|
||||
'font' => [
|
||||
'bold' => true,
|
||||
'size' => 14,
|
||||
],
|
||||
'alignment' => [
|
||||
'horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER,
|
||||
],
|
||||
]);
|
||||
|
||||
// Merge header tempoh
|
||||
$colIndex = 2; // Start from column B
|
||||
$tempohCount = count($this->aging[0]['summary_by_tempoh'] ?? []);
|
||||
|
||||
$headingRow = 3;
|
||||
|
||||
for ($i = 0; $i < $tempohCount; $i++) {
|
||||
|
||||
$startCol = \PhpOffice\PhpSpreadsheet\Cell\Coordinate::stringFromColumnIndex($colIndex);
|
||||
|
||||
$endCol = \PhpOffice\PhpSpreadsheet\Cell\Coordinate::stringFromColumnIndex($colIndex + 1);
|
||||
|
||||
$sheet->mergeCells("{$startCol}{$headingRow}:{$endCol}{$headingRow}");
|
||||
|
||||
$colIndex += 2;
|
||||
}
|
||||
|
||||
// Merge Jumlah
|
||||
$startCol = \PhpOffice\PhpSpreadsheet\Cell\Coordinate::stringFromColumnIndex($colIndex);
|
||||
|
||||
$endCol = \PhpOffice\PhpSpreadsheet\Cell\Coordinate::stringFromColumnIndex($colIndex + 1);
|
||||
|
||||
$sheet->mergeCells("{$startCol}{$headingRow}:{$endCol}{$headingRow}");
|
||||
},
|
||||
];
|
||||
}
|
||||
|
||||
// Mulakan sel untuk data bermula dari A4 (Baris 3 adalah header)
|
||||
public function startCell(): string
|
||||
{
|
||||
return 'A3'; // Data bermula dari baris 4
|
||||
}
|
||||
}
|
||||
@@ -34,6 +34,7 @@ class LelonganAllExportExcel extends DefaultValueBinder implements FromArray, Wi
|
||||
'Baki Pembiayaan (RM)',
|
||||
'Keuntungan (RM)',
|
||||
'Caj Lelong (RM)',
|
||||
'Harga Asas (RM)',
|
||||
'Harga Jual (RM)',
|
||||
'Baki (RM)',
|
||||
];
|
||||
@@ -57,6 +58,7 @@ class LelonganAllExportExcel extends DefaultValueBinder implements FromArray, Wi
|
||||
$sum_pinjaman = 0;
|
||||
$sum_bakiupah = 0;
|
||||
$sum_cajlelong = 0;
|
||||
$sum_hargaasas = 0;
|
||||
$sum_hargajual = 0;
|
||||
$sum_baki = 0;
|
||||
|
||||
@@ -73,6 +75,7 @@ class LelonganAllExportExcel extends DefaultValueBinder implements FromArray, Wi
|
||||
number_format((float) ($data['sum_bakipjm'] ?? 0), 2),
|
||||
number_format((float) ($data['sum_bakiupah'] ?? 0), 2),
|
||||
number_format((float) ($data['sum_cajlelong'] ?? 0), 2),
|
||||
number_format((float) ($data['sum_hargaasas'] ?? 0), 2),
|
||||
number_format((float) ($data['sum_hargajual'] ?? 0), 2),
|
||||
number_format((float) ($data['sum_baki'] ?? 0), 2),
|
||||
|
||||
@@ -87,6 +90,7 @@ class LelonganAllExportExcel extends DefaultValueBinder implements FromArray, Wi
|
||||
$sum_bakipjm += (float) $data['sum_bakipjm'];
|
||||
$sum_bakiupah += (float) $data['sum_bakiupah'];
|
||||
$sum_cajlelong += (float) $data['sum_cajlelong'];
|
||||
$sum_hargaasas += (float) $data['sum_hargaasas'];
|
||||
$sum_hargajual += (float) $data['sum_hargajual'];
|
||||
$sum_baki += (float) $data['sum_baki'];
|
||||
|
||||
@@ -102,6 +106,7 @@ class LelonganAllExportExcel extends DefaultValueBinder implements FromArray, Wi
|
||||
number_format($sum_bakipjm, 2),
|
||||
number_format($sum_bakiupah, 2),
|
||||
number_format($sum_cajlelong, 2),
|
||||
number_format($sum_hargaasas, 2),
|
||||
number_format($sum_hargajual, 2),
|
||||
number_format($sum_baki, 2),
|
||||
|
||||
@@ -128,6 +133,7 @@ class LelonganAllExportExcel extends DefaultValueBinder implements FromArray, Wi
|
||||
(float) str_replace(',', '', $data[7] ?? 0), // Total Untung 1%
|
||||
(float) str_replace(',', '', $data[8] ?? 0), // Total Ujrah
|
||||
(float) str_replace(',', '', $data[9] ?? 0), // Total Ujrah
|
||||
(float) str_replace(',', '', $data[10] ?? 0), // Total Ujrah
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@@ -24,6 +24,8 @@ class OutstandingAllExportExcel implements FromCollection, WithHeadings
|
||||
return [
|
||||
'Kod Cawangan',
|
||||
'Cawangan',
|
||||
'Bil Pembiayaan (BRG KES)',
|
||||
'Jumlah Pembiayaan (RM)',
|
||||
'Bil Pembiayaan (SAG LAMA)',
|
||||
'Jumlah Pembiayaan (RM)',
|
||||
'Bil Pembiayaan (SAG BARU)',
|
||||
|
||||
@@ -48,6 +48,24 @@ class LelonganExport implements WithMultipleSheets
|
||||
$sheets[] = new LelonganPerTellerExport($this->cawangan_detail, $this->query, $teller_with_lelongan_data);
|
||||
}
|
||||
|
||||
// Sheet untuk senarai penuh lelongan (gabung semua teller)
|
||||
$full_lelongan_data = [];
|
||||
|
||||
foreach ($this->lelongan as $teller => $data) {
|
||||
if (isset($data['lelongan']) && is_array($data['lelongan'])) {
|
||||
foreach ($data['lelongan'] as $item) {
|
||||
$item['teller'] = $teller; // optional: simpan info teller
|
||||
$full_lelongan_data[] = $item;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$sheets[] = new LelonganFullExport(
|
||||
$this->cawangan_detail,
|
||||
$this->query,
|
||||
$full_lelongan_data
|
||||
);
|
||||
|
||||
return $sheets;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
<?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 LelonganFullExport implements FromView, ShouldAutoSize, WithTitle, WithColumnFormatting
|
||||
{
|
||||
protected $cawangan_detail;
|
||||
protected $query;
|
||||
protected $lelongan_full_data;
|
||||
|
||||
public function __construct($cawangan_detail, $query, $lelongan_full_data)
|
||||
{
|
||||
$this->cawangan_detail = $cawangan_detail;
|
||||
$this->query = $query;
|
||||
$this->lelongan_full_data = $lelongan_full_data;
|
||||
}
|
||||
|
||||
public function view(): View
|
||||
{
|
||||
return view('exports.lelongan.full', [
|
||||
'cawangan_detail' => $this->cawangan_detail,
|
||||
'query' => $this->query,
|
||||
'lelongan_data' => $this->lelongan_full_data,
|
||||
]);
|
||||
}
|
||||
|
||||
public function title(): string
|
||||
{
|
||||
return 'SENARAI LELONGAN 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
|
||||
'M' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1, // baki
|
||||
'N' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1, // baki
|
||||
'O' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1, // baki
|
||||
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -71,6 +71,7 @@ class LelonganPerTellerExport extends DefaultValueBinder implements FromView, Sh
|
||||
'J' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1,
|
||||
'K' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1,
|
||||
'L' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1,
|
||||
'M' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1,
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@@ -68,6 +68,7 @@ class LelonganSummaryExport extends DefaultValueBinder implements FromView, Shou
|
||||
'J' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1,
|
||||
'C' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1,
|
||||
'D' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1,
|
||||
'K' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1,
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,189 @@
|
||||
<?php
|
||||
|
||||
namespace App\Exports;
|
||||
|
||||
use Maatwebsite\Excel\Concerns\WithHeadings;
|
||||
use Maatwebsite\Excel\Concerns\FromCollection;
|
||||
use Maatwebsite\Excel\Concerns\WithTitle;
|
||||
use Maatwebsite\Excel\Concerns\WithMapping;
|
||||
use Maatwebsite\Excel\Concerns\WithStyles;
|
||||
use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
|
||||
use Maatwebsite\Excel\Concerns\WithCustomStartCell;
|
||||
use Maatwebsite\Excel\Concerns\WithColumnFormatting;
|
||||
use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
|
||||
use PhpOffice\PhpSpreadsheet\Style\Border;
|
||||
use PhpOffice\PhpSpreadsheet\Style\Alignment;
|
||||
|
||||
class SAExportAudit implements FromCollection, WithHeadings, WithTitle, WithMapping, WithStyles, WithCustomStartCell, WithColumnFormatting
|
||||
{
|
||||
protected $stokaudit;
|
||||
protected $jenisLaporan;
|
||||
protected $tebus_date;
|
||||
protected $namacaw;
|
||||
|
||||
public function __construct($stokaudit, $jenisLaporan = 'LAPORAN STOK AUDIT', $tebus_date, $namacaw)
|
||||
{
|
||||
$this->stokaudit = $stokaudit;
|
||||
$this->jenisLaporan = strtoupper($jenisLaporan);
|
||||
$this->tebus_date = $tebus_date;
|
||||
$this->namacaw = $namacaw;
|
||||
}
|
||||
|
||||
public function collection()
|
||||
{
|
||||
$data = collect($this->stokaudit);
|
||||
|
||||
$totals = [
|
||||
'No Rujukan' => 'TOTAL',
|
||||
'No KP' => '',
|
||||
'Marhun' => '',
|
||||
'Tempoh' => '',
|
||||
'Berat (g)' => $data->sum(fn($row) => floatval($row['Berat (g)'] ?? 0)),
|
||||
'Nilai Marhun' => $data->sum(fn($row) => floatval($row['Nilai Marhun'] ?? 0)),
|
||||
'Pinjaman' => $data->sum(fn($row) => floatval($row['Pinjaman'] ?? 0)),
|
||||
'Baki Pinjaman' => $data->sum(fn($row) => floatval($row['Baki Pinjaman'] ?? 0)),
|
||||
];
|
||||
|
||||
$data->push($totals);
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
public function headings(): array
|
||||
{
|
||||
return [
|
||||
['LAPORAN STOK AUDIT'],
|
||||
["CAWANGAN:", $this->namacaw],
|
||||
["TARIKH:", $this->tebus_date],
|
||||
[],
|
||||
[
|
||||
'BIL',
|
||||
'NORUJUKAN',
|
||||
'NO KP',
|
||||
'MARHUN',
|
||||
'BERAT (G)',
|
||||
'BERAT AUDIT',
|
||||
'NILAI MARHUN (RM)',
|
||||
'PEMBIAYAAN (RM)',
|
||||
'BAKI PEMBIAYAAN (RM)',
|
||||
'JBG',
|
||||
'CATATAN'
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
public function startCell(): string
|
||||
{
|
||||
return 'A1';
|
||||
}
|
||||
|
||||
public function map($row): array
|
||||
{
|
||||
static $counter = 1;
|
||||
|
||||
if (($row['No Rujukan'] ?? '') === 'TOTAL') {
|
||||
return [
|
||||
'',
|
||||
'JUMLAH',
|
||||
'',
|
||||
'',
|
||||
$row['Berat (g)'] ?? 0,
|
||||
'',
|
||||
$row['Nilai Marhun'] ?? 0,
|
||||
$row['Pinjaman'] ?? 0,
|
||||
$row['Baki Pinjaman'] ?? 0,
|
||||
'',
|
||||
'',
|
||||
];
|
||||
}
|
||||
|
||||
return [
|
||||
$row['Bil'] ?? $counter++,
|
||||
$row['No Rujukan'] ?? '',
|
||||
isset($row['No KP']) ? "'" . $row['No KP'] : '',
|
||||
$row['Marhun'] ?? '',
|
||||
$row['Berat (g)'] ?? 0,
|
||||
'',
|
||||
$row['Nilai Marhun'] ?? 0,
|
||||
$row['Pinjaman'] ?? 0,
|
||||
$row['Baki Pinjaman'] ?? 0,
|
||||
$row['Tempoh'] ?? '',
|
||||
'',
|
||||
];
|
||||
}
|
||||
|
||||
public function title(): string
|
||||
{
|
||||
return $this->jenisLaporan;
|
||||
}
|
||||
|
||||
public function styles(Worksheet $sheet)
|
||||
{
|
||||
$sheet->mergeCells('A1:K1');
|
||||
$sheet->getStyle('A1')->getFont()->setBold(true)->setSize(16);
|
||||
$sheet->getStyle('A1')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
|
||||
|
||||
$sheet->getStyle('A5:K5')->getFont()->setBold(true);
|
||||
|
||||
$lastRow = $sheet->getHighestRow();
|
||||
$lastCol = 'K';
|
||||
|
||||
// Border untuk semua data
|
||||
$sheet->getStyle("A5:{$lastCol}{$lastRow}")
|
||||
->getBorders()
|
||||
->getAllBorders()
|
||||
->setBorderStyle(Border::BORDER_THIN);
|
||||
|
||||
// Bold TOTAL row
|
||||
$sheet->getStyle("A{$lastRow}:{$lastCol}{$lastRow}")->getFont()->setBold(true);
|
||||
|
||||
// Align center untuk column tertentu
|
||||
$sheet->getStyle("A5:A{$lastRow}")->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
|
||||
$sheet->getStyle("B5:B{$lastRow}")->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
|
||||
$sheet->getStyle("C5:C{$lastRow}")->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
|
||||
$sheet->getStyle("D5:D{$lastRow}")->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
|
||||
|
||||
// Wrap text untuk semua column
|
||||
$sheet->getStyle("A5:{$lastCol}{$lastRow}")->getAlignment()->setWrapText(true);
|
||||
|
||||
// Auto-fit semua column kecuali Marhun
|
||||
foreach (range('A', $lastCol) as $col) {
|
||||
if ($col !== 'D') { // skip Marhun
|
||||
$sheet->getColumnDimension($col)->setAutoSize(true);
|
||||
}
|
||||
}
|
||||
|
||||
// Untuk column Marhun (D), kita boleh set width minimum supaya tak terlalu besar
|
||||
$sheet->getColumnDimension('D')->setWidth(18); // boleh adjust ikut perlu
|
||||
|
||||
return [];
|
||||
}
|
||||
|
||||
public function columnWidths(): array
|
||||
{
|
||||
return [
|
||||
'A' => 5,
|
||||
'B' => 20,
|
||||
'C' => 18,
|
||||
'D' => 18,
|
||||
'E' => 12,
|
||||
'F' => 15,
|
||||
'G' => 18,
|
||||
'H' => 18,
|
||||
'I' => 18,
|
||||
'J' => 12,
|
||||
'K' => 15,
|
||||
];
|
||||
}
|
||||
|
||||
public function columnFormats(): array
|
||||
{
|
||||
return [
|
||||
'E' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1,
|
||||
'F' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1,
|
||||
'G' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1,
|
||||
'H' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1,
|
||||
'I' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1,
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
|
||||
namespace App\Exports;
|
||||
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Maatwebsite\Excel\Concerns\FromView;
|
||||
use Illuminate\Support\Facades\Http;
|
||||
|
||||
class WTDDetailExport implements FromView
|
||||
{
|
||||
protected $kodcaw;
|
||||
protected $startDate;
|
||||
protected $endDate;
|
||||
|
||||
public function __construct($kodcaw, $startDate, $endDate)
|
||||
{
|
||||
$this->kodcaw = $kodcaw;
|
||||
$this->startDate = $startDate;
|
||||
$this->endDate = $endDate;
|
||||
}
|
||||
|
||||
public function view(): View
|
||||
{
|
||||
$data = Http::get(config('api.url') . '/admin/wtd/summaryWtd', [
|
||||
'startDate' => $this->startDate,
|
||||
'endDate' => $this->endDate,
|
||||
])->json();
|
||||
|
||||
$branch = collect($data)->firstWhere('kodcaw', $this->kodcaw);
|
||||
$details = collect($branch['details'] ?? []);
|
||||
|
||||
return view('reports.wtd.excel', [
|
||||
'details' => $details, // data WTD
|
||||
'branch' => $branch,
|
||||
'generatedAt' => now()->format('d/m/Y H:i'),
|
||||
'startDate' => $this->startDate,
|
||||
'endDate' => $this->endDate,
|
||||
]);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Support\Facades\Http;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class AccountStatementController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display the bank statement view with mock data.
|
||||
*
|
||||
* @return \Illuminate\View\View
|
||||
*/
|
||||
public function showStatement(Request $request)
|
||||
{
|
||||
$gadaian = Http::get(config('api.url').'/api/gadai/norujukan/'.$request->norujukan)->json()[0][0];
|
||||
$transaction = Http::get(config('api.url').'/portal/transaksipelanggan',['norujukan' => $request->norujukan])->json();
|
||||
$cawangan=Http::get(config('api.url').'/api/cawangan/detail/'. $gadaian['kodcaw'])->json()[0];
|
||||
$customer = Http::get(config('api.url') . '/api/customers/' . $gadaian['nokp'])->json();
|
||||
$poskod = Http::get(config('api.url') . '/api/poskod/' . $customer['poskod'])->json();
|
||||
|
||||
$accountHolder = [
|
||||
'name' => $customer['nama'],
|
||||
'address' => $customer['alamat1'] . '<br>' . $customer['alamat2'],
|
||||
'city_state_zip' => $customer['poskod'] . ', ' . $poskod['daerah']['namadaerah'] . ', ' . $poskod['negeri']['negeri'],
|
||||
];
|
||||
|
||||
$bankDetails = [
|
||||
'name' => $cawangan['cawangan'],
|
||||
'address' => $cawangan['alamat1'] . '<br>' . $cawangan['alamat2'],
|
||||
'branch' => $cawangan['namacaw'],
|
||||
];
|
||||
|
||||
|
||||
$transaction_count = count(array_filter($transaction, fn($trans) => $trans['trans_type'] == 'A'));
|
||||
$totalPages = ceil($transaction_count / 10);
|
||||
|
||||
$ansuranTransaction = array_values(array_filter($transaction, fn($trans) => $trans['trans_type'] == 'A'));
|
||||
$originLoan = $gadaian['pinjaman'];
|
||||
$bakipinjaman = $originLoan;
|
||||
$ansuranTransaction = array_map(function($trans) use(&$bakipinjaman) {
|
||||
$bakipinjaman -= $trans['bayaran_pembiayaan'];
|
||||
return array_merge($trans, ['bakipinjaman' => $bakipinjaman]);
|
||||
}, $ansuranTransaction);
|
||||
|
||||
$tebusTransaction = array_values(array_filter($transaction, fn($trans) => $trans['trans_type'] == 'T'))[0];
|
||||
|
||||
return view('accounts-statements', compact('tebusTransaction','ansuranTransaction','transaction_count','gadaian','transaction','accountHolder', 'bankDetails'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper function to format currency.
|
||||
* In a real app, this would be a Blade helper or filter.
|
||||
* We'll format it directly in the view for simplicity in this example.
|
||||
*/
|
||||
}
|
||||
@@ -5,6 +5,7 @@ namespace App\Http\Controllers;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Http;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Carbon\Carbon;
|
||||
|
||||
use Barryvdh\DomPDF\Facade as PDF;
|
||||
@@ -22,6 +23,7 @@ use Maatwebsite\Excel\Facades\Excel;
|
||||
use App\Exports\PendSerExport;
|
||||
use App\Exports\SAExport;
|
||||
use App\Exports\SAcombineExport;
|
||||
use App\Exports\SAExportAudit;
|
||||
|
||||
class AkaunController extends Controller
|
||||
{
|
||||
@@ -314,7 +316,7 @@ class AkaunController extends Controller
|
||||
|
||||
// return view('akaun.laporan_imbanduga',compact('tarikh_imbangan', 'tarikh_imbangan2','hartasemasa','untungrugifield','tanggungansemasa','totalhartasemasa','totaluntungrugi','totaltanggungansemasa','tarikh_cetak','cawangan_info','cawangan','api_url','cawangan_detail'));
|
||||
}
|
||||
|
||||
////ainizazi
|
||||
public function cetakLaporanGadai(Request $request){
|
||||
$api_url = $request->hostname;
|
||||
$auth_user = Auth::user();
|
||||
@@ -337,10 +339,20 @@ class AkaunController extends Controller
|
||||
}
|
||||
// $gadai = Http::get($request->hostname. '/api/gadai/laporan/'. $request->kodcaw .'/'. $gadai_date)->json();
|
||||
|
||||
$gadai = Http::get($request->hostname. '/api/gadailaporanRangeDate/'. $request->kodcaw,['mula' => $tarikh_mula,'akhir' => $tarikh_akhir])->json();
|
||||
$reportGadai = Http::get($request->hostname. '/api/gadailaporanRangeDate/'. $request->kodcaw,['mula' => $tarikh_mula,'akhir' => $tarikh_akhir])->json();
|
||||
$gadai = $reportGadai['gadai'];
|
||||
// dd($reportsGadai);
|
||||
$statistik =$reportGadai['statistik'];
|
||||
$reportPembiayaan= $statistik['reportPembiayaan'];
|
||||
$reportLoanAmount=$statistik['reportLoanAmount'];
|
||||
$reportMarhunValue=$statistik['reportMarhunValue'];
|
||||
$reportMarhunMargin=$statistik['reportMarhunMargin'];
|
||||
$reportCustomerJob=$statistik['reportCustomerJob'];
|
||||
$reportCustomerRace=$statistik['reportCustomerRace'];
|
||||
|
||||
|
||||
$cawangan=Http::get($request->hostname.'/api/cawangan/detail/'.$request->kodcaw)->json();
|
||||
$cawangan_detail=$cawangan[0];
|
||||
$cawangan_detail=$cawangan[0];
|
||||
|
||||
if(isset($request->jenis))
|
||||
{
|
||||
@@ -349,10 +361,9 @@ class AkaunController extends Controller
|
||||
$pdf = PDF::loadView('akaun.laporan_gadaian', compact('gadai','cawangan_detail','tarikh_cetak','tarikh_mula','tarikh_akhir','api_url'))->setPaper('a4', 'landscape');
|
||||
return $pdf->download('laporan_gadaian_' . $request->kodcaw .'_'. $tarikh_mula .'-'. $tarikh_akhir .'.pdf');
|
||||
}else{
|
||||
return view('akaun.laporan_gadaian', compact('gadai','cawangan_detail','tarikh_cetak','tarikh_mula','tarikh_akhir','api_url'));
|
||||
return view('akaun.laporan_gadaian', compact('gadai','cawangan_detail','tarikh_cetak','tarikh_mula','tarikh_akhir','api_url','reportGadai','gadai','statistik','reportPembiayaan','reportLoanAmount','reportMarhunValue','reportMarhunMargin','reportCustomerJob','reportCustomerRace'));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public function cetakLaporanPenebusan(Request $request){
|
||||
@@ -416,8 +427,6 @@ class AkaunController extends Controller
|
||||
return view('akaun.laporan_ansuran', compact('tebus','cawangan_detail','tarikh_cetak','tebus_date','api_url'));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -492,7 +501,7 @@ class AkaunController extends Controller
|
||||
|
||||
return view('akaun.laporan_petibesi', compact('petibesi','cawangan_detail','tarikh_cetak','tebus_date','api_url','hutang'));
|
||||
}
|
||||
|
||||
|
||||
public function cetaklaporan_laporan_pendserahan(Request $request)
|
||||
{
|
||||
|
||||
@@ -572,9 +581,9 @@ class AkaunController extends Controller
|
||||
|
||||
$request->hostname = config('app.env') == 'production' ? 'http://apiujrah.arrahn' : $request->hostname;
|
||||
|
||||
$tuntutbaki = Http::get($request->hostname. '/api/TuntutBakiRangeDate/'. $request->kodcaw,['mula' => $tarikh_mula,'akhir' => $tarikh_akhir])->json();
|
||||
$tuntutbaki = Http::get($api_url. '/api/TuntutBakiRangeDate/'. $request->kodcaw,['mula' => $tarikh_mula,'akhir' => $tarikh_akhir])->json();
|
||||
|
||||
$cawangan=Http::get($request->hostname.'/api/cawangan/detail/'.$request->kodcaw)->json();
|
||||
$cawangan=Http::get($api_url.'/api/cawangan/detail/'.$request->kodcaw)->json();
|
||||
$cawangan_detail=$cawangan[0];
|
||||
|
||||
if(isset($request->jenis))
|
||||
@@ -760,6 +769,49 @@ class AkaunController extends Controller
|
||||
$cawangan_detail['namacaw']// ✅ Use the correct branch name from API
|
||||
), 'laporan_stokaudit_' . $request->kodcaw . '_' . $tebus_date . '.xlsx');
|
||||
}
|
||||
elseif ($request->jenis == 'excelaudit') {
|
||||
|
||||
if ($request->radaktif === 'aktif') {
|
||||
$stokaudit = Http::get($api_url . '/api/stokaudit/aktif/' . $request->kodcaw, [
|
||||
'tarikh' => $tebus_date
|
||||
])->json();
|
||||
} else {
|
||||
$stokaudit = Http::get($api_url . '/api/stokaudit/takaktif/' . $request->kodcaw, [
|
||||
'tarikh' => $tebus_date
|
||||
])->json();
|
||||
}
|
||||
|
||||
$stokauditRecords = $stokaudit['rekod'] ?? [];
|
||||
|
||||
if (empty($stokauditRecords)) {
|
||||
return back()->with('error', 'No records found to export.');
|
||||
}
|
||||
|
||||
// pilih column untuk audit sahaja
|
||||
$auditRecords = collect($stokauditRecords)->values()->map(function ($item, $index) {
|
||||
return [
|
||||
'Bil' => $index + 1,
|
||||
'No Rujukan' => $item['norujukan'] ?? '',
|
||||
'No KP' => $item['nokp'] ?? '',
|
||||
'Marhun' => $item['marhun'] ?? '',
|
||||
'Berat (g)' => $item['berat'] ?? '',
|
||||
'Nilai Marhun' => $item['nilaimarhun'] ?? '',
|
||||
'Pinjaman' => $item['pinjaman'] ?? '',
|
||||
'Baki Pinjaman' => $item['bakipjm'] ?? '',
|
||||
'Tempoh' => $item['tempoh'] ?? '',
|
||||
];
|
||||
});
|
||||
|
||||
return Excel::download(
|
||||
new SAExportAudit(
|
||||
$auditRecords,
|
||||
'Laporan Stok Audit',
|
||||
$tebus_date,
|
||||
$cawangan_detail['namacaw']
|
||||
),
|
||||
'laporan_stokaudit_audit_' . $request->kodcaw . '_' . $tebus_date . '.xlsx'
|
||||
);
|
||||
}
|
||||
else {
|
||||
if ($request->radaktif === 'aktif') {
|
||||
$stokaudit = Http::get($api_url . '/api/stokaudit/aktif/' . $request->kodcaw, ['tarikh' => $tebus_date])->json();
|
||||
@@ -831,7 +883,6 @@ class AkaunController extends Controller
|
||||
// ])->json();
|
||||
|
||||
// $laporan_ringkasan = $laporan_ringkasan[0];
|
||||
|
||||
$cawangan=Http::get(config('api.url').'/api/cawangan/detail/'.$request->kodcaw)->json();
|
||||
$cawangan_detail=$cawangan[0];
|
||||
|
||||
@@ -860,9 +911,8 @@ class AkaunController extends Controller
|
||||
|
||||
$petibesi = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/api/laporanpetibesi/'. $request->kodcaw .'/'. $tebus_date)->json();
|
||||
|
||||
if(!$petibesi)
|
||||
{
|
||||
return redirect()->back()->with('errormessage', 'Tiada data pada tarikh tersebut.');
|
||||
if (($petibesi['error'] ?? null) === 'Tiada data pada tarikh tersebut') {
|
||||
return redirect()->back()->with('peti_besi_error_message', 'Tiada data pada tarikh tersebut.');
|
||||
}
|
||||
|
||||
if(isset($request->jenis))
|
||||
@@ -1656,44 +1706,71 @@ class AkaunController extends Controller
|
||||
|
||||
}
|
||||
|
||||
public function cetakLaporanAnsuranRangeDate(Request $request){
|
||||
$api_url = $request->hostname;
|
||||
$auth_user = Auth::user();
|
||||
$current = Carbon::now();
|
||||
$current = new Carbon();
|
||||
$tarikh_cetak = $current->toDateString();
|
||||
|
||||
if($request->datemula == null){
|
||||
$mula_date = $current->toDateString();
|
||||
}else{
|
||||
$split_date = explode('-',$request->datemula);
|
||||
$mula_date = $request->datemula;
|
||||
}
|
||||
|
||||
if($request->datehingga == null){
|
||||
$hingga_date = $current->toDateString();
|
||||
}else{
|
||||
$split_date2 = explode('-',$request->datehingga);
|
||||
$hingga_date = $request->datehingga;
|
||||
}
|
||||
$request->hostname = config('app.env') == 'production' ? 'http://apiujrah.arrahn' : $request->hostname;
|
||||
$tebus = Http::get($request->hostname. '/api/ansuranujrah/laporan/'. $request->kodcaw,['mula' => $mula_date,'akhir' => $hingga_date])->json();
|
||||
$cawangan=Http::get($request->hostname.'/api/cawangan/detail/'.$request->kodcaw)->json();
|
||||
$cawangan_detail=$cawangan[0];
|
||||
if(isset($request->jenis))
|
||||
{
|
||||
if($request->jenis == 'pdf')
|
||||
{
|
||||
$pdf = PDF::loadView('akaun.laporan_ansuran', compact('tebus','cawangan_detail','tarikh_cetak','mula_date','hingga_date','api_url'))->setPaper('a4', 'potrait');
|
||||
return $pdf->download('laporan_ansuran_' . $request->kodcaw .'_'. $mula_date .'-'. $hingga_date .'.pdf');
|
||||
|
||||
}else{
|
||||
return view('akaun.laporan_ansuran', compact('tebus','cawangan_detail','tarikh_cetak','api_url','mula_date','hingga_date'));
|
||||
}
|
||||
}
|
||||
public function cetakLaporanAnsuranRangeDate(Request $request){
|
||||
$api_url = $request->hostname;
|
||||
$auth_user = Auth::user();
|
||||
$current = Carbon::now();
|
||||
$tarikh_cetak = $current->toDateString();
|
||||
|
||||
// Tarikh mula
|
||||
if ($request->datemula == null) {
|
||||
$mula_date = $current->toDateString();
|
||||
} else {
|
||||
$mula_date = $request->datemula;
|
||||
}
|
||||
|
||||
// Tarikh hingga
|
||||
if ($request->datehingga == null) {
|
||||
$hingga_date = $current->toDateString();
|
||||
} else {
|
||||
$hingga_date = $request->datehingga;
|
||||
}
|
||||
|
||||
// Tetapkan hostname ikut environment
|
||||
$request->hostname = config('app.env') == 'production' ? 'http://apiujrah.arrahn' : $request->hostname;
|
||||
|
||||
$response = Http::get($api_url . '/api/ansuranujrah/laporan/' . $request->kodcaw, [
|
||||
'mula' => $mula_date,
|
||||
'akhir' => $hingga_date,
|
||||
'jenis' => $request->laporanansuran
|
||||
]);
|
||||
|
||||
if ($response->failed() || !$response->json()) {
|
||||
$tebus = []; // fallback elak error di view
|
||||
} else {
|
||||
$tebus = $response->json();
|
||||
}
|
||||
|
||||
$cawangan = Http::get($api_url . '/api/cawangan/detail/' . $request->kodcaw)->json();
|
||||
$cawangan_detail = $cawangan[0] ?? ['nama' => 'Tiada data'];
|
||||
|
||||
// Tajuk laporan ikut jenis
|
||||
$reportTitles = [
|
||||
'online' => 'Laporan Ansuran Pembiayaan (Arrahn Pay)',
|
||||
'kaunter' => 'Laporan Ansuran Pembiayaan (Kaunter aros)',
|
||||
'all' => 'Laporan Ansuran Pembiayaan Semua'
|
||||
];
|
||||
|
||||
$jenisLaporan = $request->laporanansuran;
|
||||
$fileTitle = $reportTitles[$jenisLaporan] ?? 'Laporan_Tidak_Diketahui';
|
||||
|
||||
// PDF atau view biasa
|
||||
if (isset($request->jenis)) {
|
||||
if ($request->jenis == 'pdf') {
|
||||
$pdf = PDF::loadView('akaun.laporan_ansuran', compact(
|
||||
'tebus', 'cawangan_detail', 'tarikh_cetak', 'mula_date', 'hingga_date', 'api_url', 'jenisLaporan'
|
||||
))->setPaper('a4', 'potrait');
|
||||
|
||||
return $pdf->download('laporan_ansuran_' . $request->kodcaw . '_' . $mula_date . '-' . $hingga_date . '.pdf');
|
||||
} else {
|
||||
return view('akaun.laporan_ansuran', compact(
|
||||
'tebus', 'cawangan_detail', 'tarikh_cetak', 'api_url', 'jenisLaporan', 'mula_date', 'hingga_date'
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function cetakLaporanPenebusanRangeDate(Request $request){
|
||||
$api_url = $request->hostname;
|
||||
$auth_user = Auth::user();
|
||||
@@ -1890,6 +1967,55 @@ class AkaunController extends Controller
|
||||
));
|
||||
}
|
||||
|
||||
public function cetak_laporanbarangkes(Request $request)
|
||||
|
||||
{
|
||||
$api_url = $request->hostname;
|
||||
// $api_url = ($request->hostname) ? $request->hostname : config('api.url');
|
||||
$auth_user = Auth::user();
|
||||
$current = Carbon::now();
|
||||
$current = new Carbon();
|
||||
$tarikh_cetak = $current->toDateString();
|
||||
|
||||
if($request->datemula == null){
|
||||
$mula_date = '2017-01-01';
|
||||
}else{
|
||||
$mula_date = $request->datemula;
|
||||
}
|
||||
|
||||
if($request->datehingga == null){
|
||||
$hingga_date = $current->toDateString();
|
||||
}else{
|
||||
$hingga_date = $request->datehingga;
|
||||
}
|
||||
|
||||
$status = $request->status ?? 'all';
|
||||
// $barangkes = Http::get($request->hostname . '/api/barangkes/laporan/', ['kodcaw' => $request->kodcaw,'alasan' => $request->sltalasan,'tarikh_mula' => $mula_date,'tarikh_akhir' => $hingga_date, 'status' => $status,])->json();
|
||||
$palsu = Http::get($request->hostname . '/api/palsu/laporan/', ['kodcaw' => $request->kodcaw,'tarikh_mula' => $mula_date,'tarikh_akhir' => $hingga_date, 'status' => $status,])->json();
|
||||
|
||||
if (!is_array($palsu)) {
|
||||
$palsu = []; // utk nak tengok data tubik ke dok
|
||||
}
|
||||
|
||||
$cawangan_info = Http::get($request->hostname . '/api/cawangan/'. $request->kodcaw)->json();
|
||||
$cawangan = Http::get($request->hostname . '/api/cawangan/detail/'. $request->kodcaw)->json();
|
||||
$cawangan_detail=$cawangan[0];
|
||||
|
||||
$hostname = $request->hostname;
|
||||
|
||||
if(isset($request->jenis))
|
||||
{
|
||||
if($request->jenis == 'pdf')
|
||||
{
|
||||
$pdf = PDF::loadView('akaun.laporan_brgkes', compact('hostname','palsu','cawangan_detail','tarikh_cetak','mula_date','hingga_date','api_url','status'))->setPaper('a4', 'potrait');
|
||||
return $pdf->download('laporan_brgkes' . $request->kodcaw .'_'. $mula_date .'_'. $hingga_date . '.pdf');
|
||||
}else{
|
||||
return view('akaun.laporan_brgkes', compact('hostname','palsu','cawangan_detail','tarikh_cetak','mula_date','hingga_date','api_url','status'));
|
||||
}
|
||||
}
|
||||
|
||||
return view('akaun.laporan_brgkes', compact('hostname','cawangan_detail','mula_date','hingga_date','tarikh_cetak','api_url','palsu','status'));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
<?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;
|
||||
|
||||
class BarangkesController extends Controller
|
||||
{
|
||||
// lebih kurg mcm index
|
||||
public function AdminBarangKes(Request $request)
|
||||
{
|
||||
$api_url = config('api.url');
|
||||
$auth_user = Auth::user();
|
||||
// dd($api_url);
|
||||
return view('barangkes.barangkes',compact('api_url','auth_user'));
|
||||
// return view('barangkes.index', compact('data'));
|
||||
}
|
||||
|
||||
public function Detailssag(Request $request, $id)
|
||||
{
|
||||
$api_url = config('api.url');
|
||||
$auth_user = Auth::user();
|
||||
|
||||
// ambil customer info
|
||||
$customer_info = Http::get($api_url . '/admin/Customers/' . $id)->json();
|
||||
// dd($customer_info);
|
||||
// ambil gadai info (by kodcaw + norujukan dari route)
|
||||
// $gadai = null;
|
||||
if (!empty($customer_info['kodcaw']) && !empty($norujukan)) {
|
||||
$gadai = Http::get($api_url . '/api/gadai/norujukan/'
|
||||
. $customer_info['kodcaw'] . '/' . $norujukan)->json();
|
||||
}
|
||||
|
||||
$gadai = Http::get($api_url . '/api/gadai/norujukan/' . $request->kodcaw . '/' . $request->norujukan)->json();
|
||||
$gadai = $gadai[0];
|
||||
|
||||
return view('pelanggan.detailssag', compact('api_url', 'auth_user', 'customer_info', 'gadai'));
|
||||
}
|
||||
|
||||
public function store(Request $request, $id){
|
||||
|
||||
$api_url = config('api.url');
|
||||
$customer_info = Http::get($api_url . '/admin/Customers/' . $id)->json();
|
||||
// $auth_user = Auth::user();
|
||||
// dd($customer_info);
|
||||
|
||||
return view('pelanggan.detailssag', ['customer' => $customer_info,'kodcaw' => $request->query('kodcaw'),'norujukan' => $request->query('norujukan'),
|
||||
]);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -9,7 +9,7 @@ use Illuminate\Support\Facades\App;
|
||||
use Illuminate\Support\Facades\Http;
|
||||
use Maatwebsite\Excel\Facades\Excel;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use App\Exports\LaporanKeseluruhan\AgingAllExportExcel;
|
||||
use App\Exports\LaporanKeseluruhan\AgingTebusAllExportExcel;
|
||||
|
||||
class AgingController extends Controller
|
||||
{
|
||||
@@ -81,4 +81,77 @@ class AgingController extends Controller
|
||||
}
|
||||
return view('reports.aging.index', compact('aging', 'endDate'));
|
||||
}
|
||||
|
||||
public function agingtebus(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');
|
||||
|
||||
$startDate = $getReportDate($request->startDate);
|
||||
|
||||
$endDate = $getReportDate($request->endDate);
|
||||
|
||||
$aging = Http::get($request->hostname . '/api/reports/agingtebus', [
|
||||
'startDate' => $startDate,
|
||||
'endDate' => $endDate,
|
||||
])->json();
|
||||
|
||||
$aging = $aging ?? [];
|
||||
|
||||
if ($action === 'excel') {
|
||||
$file_title = sprintf("LaporanAging(%s).xlsx", $kod_cawangan, $startDate, $endDate);
|
||||
return Excel::download(new AgingTebusAllExportExcel($aging,$startDate,$endDate), $file_title);
|
||||
}
|
||||
|
||||
return view('reports.agingtebus.index', compact('aging', 'startDate', 'endDate'));
|
||||
}
|
||||
public function showagingtebus(Request $request)
|
||||
{
|
||||
$current = Carbon::now();
|
||||
$action = $request->input('action', 'search');
|
||||
|
||||
$getReportDate = function ($date_string) use ($current) {
|
||||
return $date_string ? $date_string : $current->toDateString();
|
||||
};
|
||||
|
||||
$hostname = config('api.url');
|
||||
|
||||
$startDate = $getReportDate($request->startDate);
|
||||
$endDate = $getReportDate($request->endDate);
|
||||
|
||||
$response = Http::get("$hostname/api/reports/agingtebus", [
|
||||
'startDate' => $startDate,
|
||||
'endDate' => $endDate,
|
||||
]);
|
||||
|
||||
$aging = $response->json() ?? []; // Ensure it's an array
|
||||
|
||||
// Debugging: Check the response before using it
|
||||
if (empty($aging)) {
|
||||
return back()->with('error', 'Failed to fetch data from API.');
|
||||
}
|
||||
|
||||
if ($action === 'excel') {
|
||||
// Ensure $kod_cawangan is defined (Modify as per your data structure)
|
||||
$kod_cawangan = $request->input('kod_cawangan', 'DEFAULT');
|
||||
|
||||
$file_title = sprintf("LaporanAgingTebus(%s).xlsx", $kod_cawangan, $startDate, $endDate);
|
||||
return Excel::download(new AgingTebusAllExportExcel($aging, $startDate, $endDate), $file_title);
|
||||
}
|
||||
return view('reports.agingtebus.index', compact('aging', 'startDate', 'endDate'));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,6 +11,8 @@ use Maatwebsite\Excel\Facades\Excel;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use App\Exports\LaporanKeseluruhan\PelangganbaruAllExportExcel;
|
||||
use App\Exports\LaporanKeseluruhan\PelangganaktifAllExportExcel;
|
||||
use App\Exports\DataPelangganDetailExport;
|
||||
use App\Exports\DataPelangganBycawDetailExport;
|
||||
|
||||
class AnalisaController extends Controller
|
||||
{
|
||||
@@ -90,5 +92,114 @@ class AnalisaController extends Controller
|
||||
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"
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function dataPelangganBycaw(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-bycaw.index', compact('month', 'year'));
|
||||
}
|
||||
|
||||
public function dataPelangganBycawShow(Request $request)
|
||||
{
|
||||
$validated = $request->validate([
|
||||
'year' => 'required|digits:4',
|
||||
'cawangan' => 'required|array|min:1'
|
||||
]);
|
||||
|
||||
$year = $validated['year'];
|
||||
$cawangan = $validated['cawangan']; // array kod cawangan
|
||||
|
||||
$tarikh_cetak = now()->format('d/m/Y');
|
||||
$tebus_date = 'Tahun ' . $year;
|
||||
|
||||
$request->hostname = config('api.url');
|
||||
|
||||
// 🔑 Forward ke API
|
||||
$response = Http::get(
|
||||
$request->hostname . '/api/reports/data-pelanggan-bycaw',
|
||||
[
|
||||
'year' => $year,
|
||||
'cawangan' => $cawangan, // array terus
|
||||
]
|
||||
)->json();
|
||||
|
||||
if (!isset($response['summary'], $response['pelanggan'])) {
|
||||
abort(500, 'Data API tidak sah');
|
||||
}
|
||||
|
||||
$summary = $response['summary'];
|
||||
$pelanggan = $response['pelanggan'];
|
||||
|
||||
if ($request->generateType === 'pdf') {
|
||||
return view(
|
||||
'reports.data-pelanggan-bycaw.show',
|
||||
compact('summary','pelanggan','tarikh_cetak','tebus_date','year','cawangan')
|
||||
);
|
||||
}
|
||||
|
||||
if ($request->generateType === 'excel') {
|
||||
return Excel::download(
|
||||
new DataPelangganBycawDetailExport($pelanggan, $year, $cawangan),
|
||||
"Laporan-Data-Pelanggan-Bycaw-{$year}.xlsx"
|
||||
);
|
||||
}
|
||||
|
||||
abort(400, 'Jenis laporan tidak sah');
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -25,38 +25,53 @@ class StokAuditController extends Controller
|
||||
|
||||
public function show(Request $request)
|
||||
{
|
||||
$tarikh_cetak = Carbon::now()->toDateString(); // tarikh cetak
|
||||
|
||||
if ($request->dateOption === 'current') {
|
||||
$date = Carbon::now();
|
||||
$tebus_date = $date->format('d-m-Y'); // tarikh semasa
|
||||
$monthName = $date->translatedFormat('F'); // bulan semasa
|
||||
} else {
|
||||
$validated = $request->validate(
|
||||
['monthYear' => 'required'],
|
||||
['monthYear.required' => 'Sila isi tarikh sebelum hantar',
|
||||
]);
|
||||
|
||||
$current = Carbon::now();
|
||||
$tarikh_cetak = $current->toDateString();
|
||||
$tokens = explode('-', $validated['monthYear']);
|
||||
$month = ltrim($tokens[0], '0');
|
||||
$year = $tokens[1];
|
||||
|
||||
// Set the locale to Malaysian
|
||||
App::setLocale('ms');
|
||||
|
||||
// Create a Carbon instance representing the date
|
||||
$date = Carbon::createFromDate($year, $month, 1); // Set the day to 1st of the month
|
||||
|
||||
// Get the name of the month in Malaysian local
|
||||
$date = Carbon::createFromDate($year, $month, 1); // set day = 1
|
||||
$monthName = $date->translatedFormat('F');
|
||||
$tebus_date = $monthName . ' ' . $year;
|
||||
}
|
||||
|
||||
$month = $date->month;
|
||||
$year = $date->year;
|
||||
|
||||
$request->hostname = config('api.url');
|
||||
|
||||
$stokAudit = Http::get($request->hostname . '/api/reports/stok-audit', [
|
||||
'month' => $month,
|
||||
'year' => $year,
|
||||
'dateOption' => $request->dateOption
|
||||
])->json();
|
||||
|
||||
$tebus_date = $monthName . ' ' . $year;
|
||||
$file_title = sprintf("Laporan-StokAudit %s (%s - %s).xlsx", 'Semua cawangan', $monthName, $year);
|
||||
$file_title = sprintf(
|
||||
"Laporan-StokAudit %s (%s).xlsx",
|
||||
'Semua cawangan',
|
||||
$tebus_date
|
||||
);
|
||||
|
||||
if ($request->generateType === 'pdf') {
|
||||
return view('reports.stok-audit.show', compact('tebus_date', 'tarikh_cetak', 'stokAudit', 'month', 'year'));
|
||||
return view('reports.stok-audit.show', compact(
|
||||
'stokAudit',
|
||||
'month',
|
||||
'year',
|
||||
'monthName',
|
||||
'tarikh_cetak',
|
||||
'tebus_date'
|
||||
));
|
||||
} else {
|
||||
return Excel::download(new StokAuditExport($stokAudit), $file_title);
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\User;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Session;
|
||||
@@ -17,7 +18,7 @@ class ResitController extends Controller
|
||||
|
||||
public function resit($id)
|
||||
{
|
||||
|
||||
$auth_user = Auth::user();
|
||||
$totaltransaction = 0;
|
||||
|
||||
$transaction = Http::get(config('api.url') . '/api/transaction/id/'. $id)->json();
|
||||
@@ -32,7 +33,16 @@ class ResitController extends Controller
|
||||
|
||||
$customers_info = Http::get(config('api.url') . '/api/customers/'. $gadai['nokp'])->json();
|
||||
|
||||
return view('resit.resitansuran',compact('transaction','gadai','customers_info'));
|
||||
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $gadai['kodcaw'])->json();
|
||||
|
||||
$wakil = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getwakil/' . $auth_user['cawangan'] . '/code/' . $transaction['nowakil'])->json();
|
||||
|
||||
if($gadai['tagbaru'] == 1){
|
||||
return view('resit.resitansuran_ujrah',compact('transaction','gadai','customers_info','cawangan_info','wakil'));
|
||||
|
||||
}else{
|
||||
return view('resit.resitansuran',compact('transaction','gadai','customers_info','cawangan_info','wakil'));
|
||||
}
|
||||
}
|
||||
|
||||
public function resittebusseparuh($id)
|
||||
@@ -114,7 +124,7 @@ class ResitController extends Controller
|
||||
|
||||
public function resittebus($id)
|
||||
{
|
||||
|
||||
$auth_user = Auth::user();
|
||||
$gadai = Http::get(config('api.url') . '/api/gadai/norujukan/'. $id)->json();
|
||||
|
||||
if(sizeof($gadai) != 0)
|
||||
@@ -126,6 +136,8 @@ class ResitController extends Controller
|
||||
|
||||
$transaction = Http::get(config('api.url') . '/api/transaction/'. $id)->json();
|
||||
|
||||
$transaction_tebus = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/one/'. $id)->json();
|
||||
|
||||
foreach($transaction as $trans)
|
||||
{
|
||||
$totaltransaction += $trans['duit_masuk'];
|
||||
@@ -142,10 +154,25 @@ class ResitController extends Controller
|
||||
|
||||
$totalBayaranAnsuran = Http::get(config('api.url') . '/api/transaction/norujukan/total/ansuran',['norujukan'=>$id])->json();
|
||||
|
||||
if(sizeof($wakil) != 0)
|
||||
$wakil = $wakil[0];
|
||||
// $totalrebate = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/reports/totalrebate',['norujukan'=>$id])->json();
|
||||
|
||||
$surat_wakil = [];
|
||||
if(sizeof($wakil) != 0) {
|
||||
$wakil = $wakil[0];
|
||||
$surat_wakil = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getsuratwakil/' . $auth_user['cawangan'] . '/' . $id)->json();
|
||||
}
|
||||
|
||||
return view('resit.resittebus',compact('transaction','gadai','cawangan_info','customers_info','penebusan','wakil','totaltransaction','totalBayaranAnsuran'));
|
||||
$transaction_tebus = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/one/'. $id)->json();
|
||||
$totalrebate = ['ujrah' => ($transaction_tebus['ujrah'] - $transaction_tebus['ujrah_rebet']), 'onepercent' => ($transaction_tebus['onepercent'] - $transaction_tebus['onepercent_rebet'])];
|
||||
|
||||
$khazanah_user = User::where('role_harian', 'khazanah')->where('cawangan', $auth_user['cawangan'])->select('name')->first();
|
||||
|
||||
if($gadai['tagbaru'] == 1){
|
||||
return view('resit.resittebus_ujrah',compact('transaction','transaction_tebus','totalrebate','khazanah_user','gadai','cawangan_info','customers_info','penebusan','wakil','totaltransaction','totalBayaranAnsuran'));
|
||||
|
||||
}else{
|
||||
return view('resit.resittebus',compact('transaction','transaction_tebus','totalrebate','khazanah_user','gadai','cawangan_info','customers_info','penebusan','wakil','totaltransaction','totalBayaranAnsuran'));
|
||||
}
|
||||
}
|
||||
|
||||
public function resitbelumtebus($id)
|
||||
|
||||
@@ -0,0 +1,115 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Http;
|
||||
use Maatwebsite\Excel\Facades\Excel;
|
||||
use App\Exports\GadaianDetailExport;
|
||||
|
||||
class SaringanGadaianController extends Controller
|
||||
{
|
||||
|
||||
public function index(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);
|
||||
|
||||
|
||||
$gadaian = Http::get($request->hostname . '/api/reports/saringan/gadaian', [
|
||||
'startDate' => $startDate,
|
||||
'endDate' => $endDate,
|
||||
])->json();
|
||||
|
||||
return view('reports.saringan-gadaian.index', compact('gadaian', 'startDate', 'endDate'));
|
||||
}
|
||||
|
||||
public function exportExcel(Request $request, $kodcaw)
|
||||
{
|
||||
return Excel::download(
|
||||
new GadaianDetailExport(
|
||||
$kodcaw,
|
||||
$request->startDate,
|
||||
$request->endDate
|
||||
),
|
||||
"Saringan_Gadaian_{$kodcaw}.xlsx"
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,105 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Http;
|
||||
use Maatwebsite\Excel\Facades\Excel;
|
||||
use App\Exports\GadaianDetailExport;
|
||||
|
||||
class StatistikController extends Controller
|
||||
{
|
||||
|
||||
public function index(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);
|
||||
|
||||
|
||||
$gadaian = Http::get($request->hostname . '/api/statistik', [
|
||||
'startDate' => $startDate,
|
||||
'endDate' => $endDate,
|
||||
])->json();
|
||||
dd($gadaian);
|
||||
|
||||
return view('akaun.laporan_gadaian', compact('gadaian', 'startDate', 'endDate'));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Session;
|
||||
@@ -10,7 +9,8 @@ use Illuminate\Support\Facades\Http;
|
||||
use Carbon\Carbon;
|
||||
|
||||
use PDF;
|
||||
use Maatwebsite\Excel\Excel;
|
||||
use Maatwebsite\Excel\Facades\Excel;
|
||||
use App\Exports\WTDDetailExport;
|
||||
|
||||
class WTDController extends Controller
|
||||
{
|
||||
@@ -19,8 +19,8 @@ class WTDController extends Controller
|
||||
// $this->middleware('auth');
|
||||
// }
|
||||
|
||||
public function index(){
|
||||
|
||||
public function index()
|
||||
{
|
||||
return view('wtd.index');
|
||||
}
|
||||
|
||||
@@ -30,27 +30,25 @@ class WTDController extends Controller
|
||||
|
||||
$norujukan = json_decode($request->norujukan);
|
||||
|
||||
$tuntutbaki = Http::get(config('api.url').'/admin/wtd/senarai',['norujukan' => $norujukan,'kodcaw' => $request->cawangan])->json();
|
||||
$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];
|
||||
$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;
|
||||
$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'));
|
||||
|
||||
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'));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -61,21 +59,196 @@ class WTDController extends Controller
|
||||
$current = Carbon::now();
|
||||
$tarikh_cetak = $current->toDateString();
|
||||
|
||||
$cawangan=Http::get(config('api.url').'/api/cawangan/detail/'. $request->cawangan)->json();
|
||||
$cawangan_detail=$cawangan[0];
|
||||
$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{
|
||||
$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'));
|
||||
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'));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -277,10 +277,12 @@ class ImbangdugaServices
|
||||
{
|
||||
if($variable !== 'recno' && $variable !== 'kodcaw' && $variable !== 'tarikh' && $variable !== 'totalharta' && $variable !== 'totaltanggungan' && $variable !== 'tagtally' && $variable !== 'created_at' && $variable !== 'updated_at'){
|
||||
if($variable == 'bakilelong'){
|
||||
$imbangdugadata = ImbangDuga::orderBy('glcode')->where([['single_var',$variable],['variable',$variable]])->first()->toArray();
|
||||
$imbangdugaRow = ImbangDuga::orderBy('glcode')->where([['single_var',$variable],['variable',$variable]])->first();
|
||||
}else{
|
||||
$imbangdugadata = ImbangDuga::orderBy('glcode')->where('variable',$variable)->orWhere('single_var',$variable)->first()->toArray();
|
||||
$imbangdugaRow = ImbangDuga::orderBy('glcode')->where('variable',$variable)->orWhere('single_var',$variable)->first();
|
||||
}
|
||||
if(!$imbangdugaRow) continue;
|
||||
$imbangdugadata = $imbangdugaRow->toArray();
|
||||
if($imbangdugadata['jenis'] == 'harta'){
|
||||
array_push($array_harta,['glcode' => $imbangdugadata['glcode'],'descpt' => $imbangdugadata['descpt'],'amaun' => $res]);
|
||||
}else{
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
namespace App\View\Components;
|
||||
|
||||
use Illuminate\View\Component;
|
||||
|
||||
class JanaSimulasi extends Component
|
||||
{
|
||||
/**
|
||||
* Create a new component instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the view / contents that represent the component.
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View|\Closure|string
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
return view('components.jana-simulasi');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
namespace App\View\Components;
|
||||
|
||||
use Illuminate\View\Component;
|
||||
|
||||
class SenaraiSimulasi extends Component
|
||||
{
|
||||
/**
|
||||
* Create a new component instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the view / contents that represent the component.
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View|\Closure|string
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
return view('components.senarai-simulasi');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user