Siti Rahayu vor 5 Jahren
Ursprung
Commit
79f738203a
36 geänderte Dateien mit 6774 neuen und 444 gelöschten Zeilen
  1. 32
    0
      app/Exports/CompoundBacklogExport.php
  2. 352
    0
      app/Exports/CompoundBacklogSheet.php
  3. 32
    0
      app/Exports/CompoundCurrentExport.php
  4. 350
    0
      app/Exports/CompoundCurrentSheet.php
  5. 88
    0
      app/Exports/CompoundExport.php
  6. 32
    0
      app/Exports/EnforcerStatisticExport.php
  7. 244
    0
      app/Exports/EnforcerStatisticSheet.php
  8. 55
    0
      app/Exports/FaultyStatisticExport.php
  9. 243
    0
      app/Exports/FaultyStatisticSheet.php
  10. 101
    5
      app/Http/Controllers/Api/CompoundResourceController.php
  11. 165
    0
      app/Http/Controllers/Api/Export/CalculateReportCurrentCompound.php
  12. 172
    0
      app/Http/Controllers/Api/Export/CalculationReportBacklog.php
  13. 256
    0
      app/Http/Controllers/Api/Export/CalculationReportEnforcer.php
  14. 582
    0
      app/Http/Controllers/Api/Export/CalculationReportFaulty.php
  15. 132
    0
      app/Http/Controllers/Api/RestfulapiController.php
  16. 140
    0
      app/Http/Controllers/ExportCompound.php
  17. 95
    5
      app/Http/Controllers/Main/CompoundController.php
  18. 708
    0
      app/Http/Controllers/Main/ExportReport.php
  19. 36
    3
      app/Http/Controllers/Main/ReportController.php
  20. 292
    0
      app/Jobs/StoreCompoundEPBT.php
  21. 23
    2
      resources/views/include/horizontal-menu.blade.php
  22. 3
    3
      resources/views/main-dashboard/compound/_part/filter_form.blade.php
  23. 200
    0
      resources/views/main-dashboard/compound/_type/parkir.blade.php
  24. 204
    0
      resources/views/main-dashboard/compound/_type/pelbagai_JPB.blade.php
  25. 204
    0
      resources/views/main-dashboard/compound/_type/pelbagai_KT.blade.php
  26. 204
    0
      resources/views/main-dashboard/compound/_type/pelbagai_LESEN.blade.php
  27. 204
    0
      resources/views/main-dashboard/compound/_type/pelbagai_PA.blade.php
  28. 55
    425
      resources/views/main-dashboard/compound/compound_form.blade.php
  29. 206
    0
      resources/views/main-dashboard/report/backlog.blade.php
  30. 228
    0
      resources/views/main-dashboard/report/compound_index.blade.php
  31. 443
    0
      resources/views/main-dashboard/report/enforcer.blade.php
  32. 258
    0
      resources/views/main-dashboard/report/faulty.blade.php
  33. 9
    0
      resources/views/main-dashboard/report/part/faulty_nav.blade.php
  34. 171
    0
      resources/views/main-dashboard/report/payment_index.blade.php
  35. 244
    0
      resources/views/main-dashboard/report/perbezaan.blade.php
  36. 11
    1
      routes/api.php

+ 32
- 0
app/Exports/CompoundBacklogExport.php Datei anzeigen

@@ -0,0 +1,32 @@
<?php

namespace App\Exports;

use App\Compound;
use Maatwebsite\Excel\Concerns\Exportable;
use Maatwebsite\Excel\Concerns\WithMultipleSheets;

class CompoundBacklogExport implements WithMultipleSheets
{
use Exportable;

private $data_, $year_, $com_price_, $com_sheet_;

public function __construct($data, $year, $com_price, $com_sheet)
{
$this->data_ = $data;
$this->year_ = $year;
$this->com_price_ = $com_price;
$this->com_sheet_ = $com_sheet;
}

/**
* @return array
*/
public function sheets(): array
{
$sheets = [];
$sheets[] = new CompoundBacklogSheet($this->data_, $this->year_, $this->com_price_, $this->com_sheet_);
return $sheets;
}
}

+ 352
- 0
app/Exports/CompoundBacklogSheet.php Datei anzeigen

@@ -0,0 +1,352 @@
<?php
namespace App\Exports;

use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\WithTitle;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
use Maatwebsite\Excel\Concerns\WithStrictNullComparison;
use Maatwebsite\Excel\Concerns\WithCalculatedFormulas;
use Maatwebsite\Excel\Concerns\WithStartRow;
use Maatwebsite\Excel\Concerns\WithCustomStartCell;
use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
use Maatwebsite\Excel\Concerns\WithColumnFormatting;

use Maatwebsite\Excel\Concerns\WithEvents;
use Maatwebsite\Excel\Events\BeforeExport;
use Maatwebsite\Excel\Events\AfterSheet;

use PhpOffice\PhpSpreadsheet\Cell\Coordinate;

class CompoundBacklogSheet implements FromCollection, WithTitle, WithEvents, WithStrictNullComparison, WithCalculatedFormulas, WithCustomStartCell, WithColumnFormatting
{
protected $data_, $year_, $jumlah_, $keping_;

public function __construct($data, $year, $jumlah, $keping)
{
$this->data_ = $data;
$this->year_ = $year;
$this->jumlah_ = $jumlah;
$this->keping_ = $keping;
}

public function collection()
{
return collect($this->data_);
}

public function startCell(): string
{
return 'A10';
}

public function title(): string
{
return 'LAP. TUNGGAKAN';
}

public function columnFormats(): array
{
return [
'A' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1,
'C' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1,
'D' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1,
'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,
'J' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1,
];
}

public function registerEvents(): array
{

return
[
AfterSheet::class => function(AfterSheet $event)
{
$event->sheet->getDelegate()->getColumnDimension('A')->setWidth(10.34);
$event->sheet->getDelegate()->getColumnDimension('B')->setWidth(26.01);
$event->sheet->getDelegate()->getColumnDimension('C')->setWidth(15.07);
$event->sheet->getDelegate()->getColumnDimension('D')->setWidth(14.34);
$event->sheet->getDelegate()->getColumnDimension('E')->setWidth(16.85);
$event->sheet->getDelegate()->getColumnDimension('F')->setWidth(16.78);
$event->sheet->getDelegate()->getColumnDimension('G')->setWidth(12.95);
$event->sheet->getDelegate()->getColumnDimension('H')->setWidth(13.86);
$event->sheet->getDelegate()->getColumnDimension('I')->setWidth(11.88);
$event->sheet->getDelegate()->getColumnDimension('J')->setWidth(14.12);

// set up a style array for cell formatting
$style_bold_text_center_arial = [
'alignment' => [
'horizontal' => 'center',
'vertical' => 'center',
],
'font' => [
'bold' => true,
'size' => 11,
'name' => 'Arial'
]
];

$style_bold_text_center_calibri_12 = [
'alignment' => [
'horizontal' => 'center',
'vertical' => 'center',
],
'font' => [
'bold' => true,
'size' => 12,
'name' => 'Calibri'
]
];

$style_bold_text_center_calibri = [
'alignment' => [
'horizontal' => 'center',
'vertical' => 'center',
],
'font' => [
'bold' => true,
'size' => 10,
'name' => 'Calibri'
]

];

$style_normal_text_center = [
'alignment' => [
'horizontal' => 'center',
'vertical' => 'center',
],
'font' => [
'bold' => false,
'size' => 10,
'name' => 'Calibri'
]
];

$style_bold_text_right = [
'alignment' => [
'horizontal' => 'right',
],
'font' => [
'bold' => true,
'size' => 10,
'name' => 'Calibri'
]
];

$style_border = [
'borders' => [
'allBorders' => [
'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_MEDIUM,
'color' => ['argb' => '000000'],
],
],
];

$style_border_thin = [
'borders' => [
'allBorders' => [
'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN,
'color' => ['argb' => '000000'],
],
],
];

$style_border_medium = [
'borders' => [
'top' => [
'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_MEDIUM,
'color' => ['argb' => '000000'],
],
],
];


$style_border_top = [
'borders' => [
'top' => [
'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN,
'color' => ['argb' => '000000'],
],
],
'font' => [
'bold' => true,
'size' => 10,
'name' => 'Calibri'
],
'alignment' => [
'horizontal' => 'center',
'vertical' => 'center',
],
];

$style_border_side = [
'borders' => [
'left' => [
'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_MEDIUM,
'color' => ['argb' => '000000'],
],
'right' => [
'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_MEDIUM,
'color' => ['argb' => '000000'],
],


],
'font' => [
'bold' => false,
'size' => 11,
'name' => 'Arial'
],
'alignment' => [
'horizontal' => 'center',
'vertical' => 'center',
],
];


if(count($this->data_ ) > 0)
{
$last_column = Coordinate::stringFromColumnIndex(count($this->data_[0]));
$last_row = count($this->data_) + 5 + 4 + 1 ;
$last_row_data = count($this->data_) + 5 + 4 + 1 + 2 ;

//merge cells for full width (main title)
$event->sheet->mergeCells(sprintf('A2:%s2',$last_column));
$event->sheet->mergeCells(sprintf('A3:%s3',$last_column));
$event->sheet->mergeCells(sprintf('A4:%s4',$last_column));

//declare merging cells for header
//horizontal
$event->sheet->mergeCells('A22:B22');
// $event->sheet->mergeCells('B6:C6');
// $event->sheet->mergeCells('B8:C8');
$event->sheet->mergeCells('B24:C24');

//vertical
$event->sheet->mergeCells('A6:A9');
$event->sheet->mergeCells('B6:B7');
$event->sheet->mergeCells('B10:B21');
$event->sheet->mergeCells('C6:C9');
$event->sheet->mergeCells('D6:D9');
$event->sheet->mergeCells('E6:E9');
$event->sheet->mergeCells('E24:E25');
$event->sheet->mergeCells('F6:F9');
$event->sheet->mergeCells('F24:F25');
$event->sheet->mergeCells('G6:G9');
$event->sheet->mergeCells('H6:H9');
$event->sheet->mergeCells('I6:I9');
$event->sheet->mergeCells('J6:J9');

//assign cell values for table header
$event->sheet->setCellValue('A2', 'LAPORAN TUNGGAKAN TAHUN '. $this->year_);
$event->sheet->setCellValue('A3', 'BAHAGIAN PENGUATKUASA');
$event->sheet->setCellValue('A4', 'MAJLIS DAERAH CAMERON HIGHLAND');
$event->sheet->setCellValue('A6', 'BULAN');
$event->sheet->setCellValue('B6', 'BAKI PADA 1.1.'. $this->year_);
$event->sheet->setCellValue('B8', $this->jumlah_);
$event->sheet->setCellValue('B9', $this->keping_);
$event->sheet->setCellValue('C6', 'KUTIPAN BULANAN (RM)');
$event->sheet->setCellValue('D6', 'JUMLAH KOMPAUN BAYAR');
$event->sheet->setCellValue('E6', 'KUTIPAN TERKUMPUL (RM)');
$event->sheet->setCellValue('F6', 'BAKI TUNGGAKAN (RM)');
$event->sheet->setCellValue('G6', 'BAKI BELUM BAYAR');
$event->sheet->setCellValue('H6', 'JUMLAH KURANG (RM)');
$event->sheet->setCellValue('I6', '% KUTIPAN');
$event->sheet->setCellValue('J6', '% TERKUMPUL');

//assign cell values for table footer
$event->sheet->setCellValue(sprintf('C%d',$last_row),'=SUM(C10:C'.$last_row.')');
$event->sheet->setCellValue(sprintf('D%d',$last_row),'=SUM(D10:D'.$last_row.')');
$event->sheet->setCellValue(sprintf('H%d',$last_row),'=SUM(H10:H'.$last_row.')');

$event->sheet->setCellValue(sprintf('B%d',$last_row_data), 'Kutipan tunggakan terkumpul : ');
$event->sheet->setCellValue(sprintf('D%d',$last_row_data), '=SUM(C10:C'.($last_row-1).')');
$event->sheet->setCellValue(sprintf('D%d',$last_row_data+1), $this->jumlah_);
$event->sheet->setCellValue(sprintf('E%d',$last_row_data), 'x 100 =');
$event->sheet->setCellValue(sprintf('F%d',$last_row_data), '=D'.($last_row_data).'/D'.($last_row_data+1).'*100');
// $event->sheet->setCellValue(sprintf('G%d',$last_row_data), '%');

//styling cells
$event->sheet->getStyle('A2')->applyFromArray($style_bold_text_center_arial);
$event->sheet->getStyle('A3:A4')->applyFromArray($style_bold_text_center_arial);
$event->sheet->getStyle('A6:J6')->applyFromArray($style_bold_text_center_arial);
$event->sheet->getStyle('B7:B9')->applyFromArray($style_bold_text_center_arial);
$event->sheet->getStyle('C22')->applyFromArray($style_bold_text_center_arial);
$event->sheet->getStyle('D22')->applyFromArray($style_bold_text_center_arial);
$event->sheet->getStyle('H22')->applyFromArray($style_bold_text_center_arial);
$event->sheet->getStyle('B24:F24')->applyFromArray($style_bold_text_center_arial);
$event->sheet->getStyle('D25')->applyFromArray($style_bold_text_center_arial);
$event->sheet->getStyle('A6:O6')->getAlignment()->setWrapText(true);
$event->sheet->getStyle('A7:O7')->getAlignment()->setWrapText(true);

//text alignment
$event->sheet->getStyle(sprintf('A10:A%d',($last_row-1)))->applyFromArray($style_normal_text_center);
$event->sheet->getStyle(sprintf('B10:B%d',($last_row-1)))->applyFromArray($style_normal_text_center);
$event->sheet->getStyle(sprintf('C10:C%d',($last_row-1)))->applyFromArray($style_normal_text_center);
$event->sheet->getStyle(sprintf('D10:D%d',($last_row-1)))->applyFromArray($style_normal_text_center);
$event->sheet->getStyle(sprintf('E10:E%d',($last_row-1)))->applyFromArray($style_normal_text_center);
$event->sheet->getStyle(sprintf('F10:F%d',($last_row-1)))->applyFromArray($style_normal_text_center);
$event->sheet->getStyle(sprintf('G10:G%d',($last_row-1)))->applyFromArray($style_normal_text_center);
$event->sheet->getStyle(sprintf('H10:H%d',($last_row-1)))->applyFromArray($style_normal_text_center);
$event->sheet->getStyle(sprintf('I10:I%d',($last_row-1)))->applyFromArray($style_normal_text_center);
$event->sheet->getStyle(sprintf('J10:J%d',($last_row-1)))->applyFromArray($style_normal_text_center);

// assign border styles
$event->sheet->getStyle('A6:A9')->applyFromArray($style_border);
$event->sheet->getStyle('B6')->applyFromArray($style_border);
$event->sheet->getStyle('B10')->applyFromArray($style_border);
$event->sheet->getStyle('C6:C9')->applyFromArray($style_border);
$event->sheet->getStyle('D6:D9')->applyFromArray($style_border);
$event->sheet->getStyle('E6:E9')->applyFromArray($style_border);
$event->sheet->getStyle('F6:F9')->applyFromArray($style_border);
$event->sheet->getStyle('G6:G9')->applyFromArray($style_border);
$event->sheet->getStyle('H6:H9')->applyFromArray($style_border);
$event->sheet->getStyle('I6:I9')->applyFromArray($style_border);
$event->sheet->getStyle('J6:J9')->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('A10:A%d',$last_row-1))->applyFromArray($style_border_side);
$event->sheet->getStyle(sprintf('B10:B%d',$last_row-1))->applyFromArray($style_border_side);
$event->sheet->getStyle(sprintf('C10:C%d',$last_row-1))->applyFromArray($style_border_side);
$event->sheet->getStyle(sprintf('D10:D%d',$last_row-1))->applyFromArray($style_border_side);
$event->sheet->getStyle(sprintf('E10:E%d',$last_row-1))->applyFromArray($style_border_side);
$event->sheet->getStyle(sprintf('F10:F%d',$last_row-1))->applyFromArray($style_border_side);
$event->sheet->getStyle(sprintf('G10:G%d',$last_row-1))->applyFromArray($style_border_side);
$event->sheet->getStyle(sprintf('H10:H%d',$last_row-1))->applyFromArray($style_border_side);
$event->sheet->getStyle(sprintf('I10:I%d',$last_row-1))->applyFromArray($style_border_side);
$event->sheet->getStyle(sprintf('J10:J%d',$last_row-1))->applyFromArray($style_border_side);
$event->sheet->getStyle(sprintf('A%d',$last_row))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('B%d',$last_row))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('C%d',$last_row))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('D%d',$last_row))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('E%d',$last_row))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('F%d',$last_row))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('G%d',$last_row))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('H%d',$last_row))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('I%d',$last_row))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('J%d',$last_row))->applyFromArray($style_border);

//cell numbering style
$event->sheet->getStyle('B8')->applyFromArray($style_border_medium)->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_NUMBER_00);
$event->sheet->getStyle(sprintf('D%d', $last_row_data))->applyFromArray($style_bold_text_center_calibri)->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_NUMBER_00);
$event->sheet->getStyle(sprintf('D%d', $last_row_data+1))->applyFromArray($style_border_top)->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_NUMBER_00);
$event->sheet->getStyle(sprintf('F%d', $last_row_data))->applyFromArray($style_bold_text_center_calibri)->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_NUMBER_00);
$event->sheet->getStyle('C22')->applyFromArray($style_bold_text_center_calibri_12)->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_NUMBER_00);
$event->sheet->getStyle('D22')->applyFromArray($style_bold_text_center_calibri_12)->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_NUMBER);
$event->sheet->getStyle(sprintf('D10:D%d', $last_row))->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_NUMBER);
$event->sheet->getStyle('G22')->applyFromArray($style_bold_text_center_calibri)->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_NUMBER);
$event->sheet->getStyle(sprintf('G10:G%d', $last_row))->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_NUMBER);
$event->sheet->getStyle('H22')->applyFromArray($style_bold_text_center_calibri_12)->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_NUMBER_00);

}
}

];
}

}

+ 32
- 0
app/Exports/CompoundCurrentExport.php Datei anzeigen

@@ -0,0 +1,32 @@
<?php

namespace App\Exports;

use App\Compound;
use Maatwebsite\Excel\Concerns\Exportable;
use Maatwebsite\Excel\Concerns\WithMultipleSheets;

class CompoundCurrentExport implements WithMultipleSheets
{
use Exportable;

private $data,$year1,$year2,$end_date;

public function __construct($data,$year1,$year2,$end_date)
{
$this->data = $data;
$this->year1 = $year1;
$this->year2 = $year2;
$this->end_date = $end_date;
}

/**
* @return array
*/
public function sheets(): array
{
$sheets = [];
$sheets[] = new CompoundCurrentSheet($this->data, $this->year1, $this->year2, $this->end_date);
return $sheets;
}
}

+ 350
- 0
app/Exports/CompoundCurrentSheet.php Datei anzeigen

@@ -0,0 +1,350 @@
<?php
namespace App\Exports;

use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\WithTitle;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
use Maatwebsite\Excel\Concerns\WithStrictNullComparison;
use Maatwebsite\Excel\Concerns\WithCalculatedFormulas;
use Maatwebsite\Excel\Concerns\WithStartRow;
use Maatwebsite\Excel\Concerns\WithCustomStartCell;
use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
use Maatwebsite\Excel\Concerns\WithColumnFormatting;

use Maatwebsite\Excel\Concerns\WithEvents;
use Maatwebsite\Excel\Events\BeforeExport;
use Maatwebsite\Excel\Events\AfterSheet;

use PhpOffice\PhpSpreadsheet\Cell\Coordinate;

class CompoundCurrentSheet implements FromCollection, WithTitle, WithEvents, WithStrictNullComparison, WithCalculatedFormulas, WithCustomStartCell, WithColumnFormatting
{
protected $data, $year1, $year2, $end_date, $text_last_row1, $text_last_row2, $text_last_row3;

public function __construct($data, $year1, $year2, $end_date)
{
$this->data = $data;
$this->year1 = $year1;
$this->year2 = $year2;
$this->end_date = $end_date;
}

public function collection()
{
return collect($this->data);
}

public function title(): string
{
return 'LAP. KOMPAUN';
}

public function startCell(): string
{
return 'A11';
}

public function columnFormats(): array
{
return [
'B' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1,
'C' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1,
'D' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1,
'E' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1,
'F' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1,
'I' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1,
'J' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1,
'K' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1,
'L' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1,
'M' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1,
];
}

public function registerEvents(): array
{
return [
AfterSheet::class => function(AfterSheet $event) {
$column = ['B','C','H','I','J'];
foreach ($column as $key => $c) {
$event->sheet->getDelegate()->getColumnDimension($c)->setWidth(11.24);
}
$event->sheet->getDelegate()->getColumnDimension('A')->setWidth(6.71);
$event->sheet->getDelegate()->getColumnDimension('D')->setWidth(12.14);
$event->sheet->getDelegate()->getColumnDimension('K')->setWidth(12.14);
$event->sheet->getDelegate()->getColumnDimension('E')->setWidth(10.57);
$event->sheet->getDelegate()->getColumnDimension('L')->setWidth(10.57);
$event->sheet->getDelegate()->getColumnDimension('F')->setWidth(11.86);
$event->sheet->getDelegate()->getColumnDimension('M')->setWidth(11.86);
$event->sheet->getDelegate()->getColumnDimension('G')->setWidth(9.43);
$event->sheet->getDelegate()->getColumnDimension('N')->setWidth(9.43);
$event->sheet->getDelegate()->getColumnDimension('H')->setWidth(10.86);
$event->sheet->getDelegate()->getColumnDimension('O')->setWidth(10.86);

// set up a style array for cell formatting
$style_bold_text_center_arial = [
'alignment' => [
'horizontal' => 'center',
'vertical' => 'center',
],
'font' => [
'bold' => true,
'size' => 10,
'name' => 'Arial'
]
];

$style_bold_text_center_calibri = [
'alignment' => [
'horizontal' => 'center',
'vertical' => 'center',
],
'font' => [
'bold' => true,
'size' => 10,
'name' => 'Calibri'
]

];

$style_bold_text_right = [
'alignment' => [
'horizontal' => 'right',
],
'font' => [
'bold' => true,
'size' => 10,
'name' => 'Calibri'
]
];

$style_normal_text_right = [
'alignment' => [
'horizontal' => 'right',
],
'font' => [
'bold' => false,
'size' => 10,
'name' => 'Calibri'
]
];

$style_border = [
'borders' => [
'allBorders' => [
'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_MEDIUM,
'color' => ['argb' => '000000'],
],
],
];

$style_border_top = [
'borders' => [
'top' => [
'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN,
'color' => ['argb' => '000000'],
],
],
'font' => [
'bold' => true,
'size' => 10,
'name' => 'Calibri'
],
'alignment' => [
'horizontal' => 'center',
'vertical' => 'center',
],
];

if(count($this->data) > 0){
// last column as letter value (e.g., D)
$last_column = Coordinate::stringFromColumnIndex(count($this->data[0]));
$second_last_column = Coordinate::stringFromColumnIndex(count($this->data[0])-1);
// calculate last row + 1 (total results + header rows + column headings row + new row)
$last_row = count($this->data) + 5 + 4 + 1 + 1;
$last_row_data = count($this->data) + 5 + 4 + 1 + 1 + 4;

// merge cells for full-width
$event->sheet->mergeCells(sprintf('A1:%s1',$last_column));
$event->sheet->mergeCells(sprintf('A2:%s2',$last_column));
$event->sheet->mergeCells(sprintf('A3:%s3',$last_column));
$event->sheet->mergeCells(sprintf('A4:%s4',$last_column));
$event->sheet->mergeCells(sprintf('A5:%s5',$last_column));
$event->sheet->mergeCells(sprintf('A%d:G%d',$last_row_data, $last_row_data));
$event->sheet->mergeCells(sprintf('A%d:G%d',$last_row_data+3, $last_row_data+3));
$event->sheet->mergeCells(sprintf('A%d:G%d',$last_row_data+6, $last_row_data+6));
$event->sheet->mergeCells(sprintf('A%d:G%d',$last_row_data+9, $last_row_data+9));

// merge cells for header
$event->sheet->mergeCells('A6:A9');
$event->sheet->mergeCells('B6:B9');
$event->sheet->mergeCells('C6:C9');
$event->sheet->mergeCells('D6:D9');
$event->sheet->mergeCells('E6:F6');
$event->sheet->mergeCells('E7:E9');
$event->sheet->mergeCells('F7:F9');
$event->sheet->mergeCells('G6:G9');
$event->sheet->mergeCells('H6:H9');
$event->sheet->mergeCells('I6:I9');
$event->sheet->mergeCells('J6:J9');
$event->sheet->mergeCells('K6:K9');
$event->sheet->mergeCells('L6:M6');
$event->sheet->mergeCells('L7:L9');
$event->sheet->mergeCells('M7:M9');
$event->sheet->mergeCells('N6:N9');
$event->sheet->mergeCells('O6:O9');

//assign cell values
$event->sheet->setCellValue('A1','LAPORAN PERBEZAAN KUTIPAN KOMPAUN SEMASA ( '. strtoupper(date('d F Y', strtotime($this->end_date))).' )');
$event->sheet->setCellValue('A2','JABATAN KHIDMAT PENGURUSAN BAHAGIAN PENGUATKUASA');
$event->sheet->setCellValue('A3','MAJLIS DAERAH CAMERON HIGHLANDS');
$event->sheet->setCellValue('A4','TAHUN '.$this->year1.'/'.$this->year2);
$event->sheet->setCellValue('A5','');
// Table TH (Head)
$event->sheet->setCellValue('A6','BULAN');
$event->sheet->setCellValue('B6', 'ANGGARAN TAHUN '.$this->year1);
$event->sheet->setCellValue('C6','KOMPAUN KELUAR (RM)');
$event->sheet->setCellValue('D6','PENGURANGAN KOMPAUN (RM)');
$event->sheet->setCellValue('E6','KUTIPAN SEMASA');
$event->sheet->setCellValue('E7','KUTIPAN BULANAN (RM)');
$event->sheet->setCellValue('F7','KUTIPAN TERKUMPUL (RM)');
$event->sheet->setCellValue('G6','% KUTIPAN');
$event->sheet->setCellValue('H6','% TERKUMPUL');
$event->sheet->setCellValue('I6','ANGGARAN TAHUN '.$this->year2);
$event->sheet->setCellValue('J6','KOMPAUN KELUAR (RM)');
$event->sheet->setCellValue('K6','PENGURANGAN KOMPAUN (RM)');
$event->sheet->setCellValue('L6','KUTIPAN SEMASA');
$event->sheet->setCellValue('L7','KUTIPAN BULANAN (RM)');
$event->sheet->setCellValue('M7','KUTIPAN TERKUMPUL (RM)');
$event->sheet->setCellValue('N6','% KUTIPAN');
$event->sheet->setCellValue('O6','% TERKUMPUL');
// Table TH (Footer)
$event->sheet->setCellValue(sprintf('B%d',$last_row),'JUMLAH ');
$event->sheet->setCellValue(sprintf('I%d',$last_row),'JUMLAH ');
$event->sheet->setCellValue(sprintf('C%d',$last_row),'=SUM(C11:C'.$last_row.')');
$event->sheet->setCellValue(sprintf('D%d',$last_row),'=SUM(D11:D'.$last_row.')');
$event->sheet->setCellValue(sprintf('E%d',$last_row),'=SUM(E11:E'.$last_row.')');
$event->sheet->setCellValue(sprintf('J%d',$last_row),'=SUM(J11:J'.$last_row.')');
$event->sheet->setCellValue(sprintf('K%d',$last_row),'=SUM(K11:K'.$last_row.')');
$event->sheet->setCellValue(sprintf('L%d',$last_row),'=SUM(L11:L'.$last_row.')');

$event->sheet->setCellValue(sprintf('A%d',$last_row_data), '** Kutipan Kompaun Berdasarkan Kepada Anggaran Tahunan ');
$event->sheet->setCellValue(sprintf('A%d', $last_row_data+3), '** Kutipan Kompaun Berdasarkan Kepada Anggaran Dikeluarkan ');
$event->sheet->setCellValue(sprintf('A%d', $last_row_data+6), '** Jumlah Pengurangan Kompaun ');
$event->sheet->setCellValue(sprintf('A%d', $last_row_data+9), '** Kutipan Kompaun Setelah ditolak pengurangan kompaun ');

$event->sheet->setCellValue(sprintf('H%d', $last_row_data), '=L'.$last_row);
$event->sheet->setCellValue(sprintf('H%d', $last_row_data+1), '=I11');
$event->sheet->setCellValue(sprintf('H%d', $last_row_data+3), '=L'.$last_row);
$event->sheet->setCellValue(sprintf('H%d', $last_row_data+4), '=J'.$last_row);

$event->sheet->setCellValue(sprintf('H%d', $last_row_data+6), '=K'.$last_row);
$event->sheet->setCellValue(sprintf('H%d', $last_row_data+7), '=J'.$last_row);

$event->sheet->setCellValue(sprintf('H%d', $last_row_data+9), '=L'.$last_row);
$event->sheet->setCellValue(sprintf('H%d', $last_row_data+10), '=J'.$last_row.'-K'.$last_row);

$event->sheet->setCellValue(sprintf('I%d', $last_row_data), 'X 100 ');
$event->sheet->setCellValue(sprintf('I%d', $last_row_data+3), 'X 100 ');
$event->sheet->setCellValue(sprintf('I%d', $last_row_data+6), 'X 100 ');
$event->sheet->setCellValue(sprintf('I%d', $last_row_data+9), 'X 100 ');

$event->sheet->setCellValue(sprintf('J%d', $last_row_data), '=H'.$last_row_data.'/H'.($last_row_data+1).'*100');
$event->sheet->setCellValue(sprintf('J%d', $last_row_data+3), '=H'.($last_row_data+3).'/H'.($last_row_data+4).'*100');
$event->sheet->setCellValue(sprintf('J%d', $last_row_data+6), '=H'.($last_row_data+6).'/H'.($last_row_data+7).'*100');
$event->sheet->setCellValue(sprintf('J%d', $last_row_data+9), '=H'.($last_row_data+9).'/H'.($last_row_data+10).'*100');

$event->sheet->setCellValue(sprintf('K%d', $last_row_data), '%');
$event->sheet->setCellValue(sprintf('K%d', $last_row_data+3), '%');
$event->sheet->setCellValue(sprintf('K%d', $last_row_data+6), '%');
$event->sheet->setCellValue(sprintf('K%d', $last_row_data+9), '%');

// assign cell styles
$event->sheet->getStyle('A1')->applyFromArray($style_bold_text_center_arial);
$event->sheet->getStyle('A2:A4')->applyFromArray($style_bold_text_center_calibri);
$event->sheet->getStyle(sprintf('A6:%s6',$last_column))->applyFromArray($style_bold_text_center_calibri);
$event->sheet->getStyle('E6')->applyFromArray($style_bold_text_center_calibri);
$event->sheet->getStyle('E7')->applyFromArray($style_bold_text_center_calibri);
$event->sheet->getStyle('F7')->applyFromArray($style_bold_text_center_calibri);
$event->sheet->getStyle('L6')->applyFromArray($style_bold_text_center_calibri);
$event->sheet->getStyle('L7')->applyFromArray($style_bold_text_center_calibri);
$event->sheet->getStyle('M7')->applyFromArray($style_bold_text_center_calibri);
$event->sheet->getStyle('A6:O6')->getAlignment()->setWrapText(true);
$event->sheet->getStyle('A7:O7')->getAlignment()->setWrapText(true);
$event->sheet->getStyle(sprintf('B%d',$last_row))->applyFromArray($style_bold_text_right);
$event->sheet->getStyle(sprintf('C%d',$last_row))->applyFromArray($style_bold_text_right)->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_NUMBER_00);
$event->sheet->getStyle(sprintf('D%d',$last_row))->applyFromArray($style_bold_text_right)->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_NUMBER_00);
$event->sheet->getStyle(sprintf('E%d',$last_row))->applyFromArray($style_bold_text_right)->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_NUMBER_00);
$event->sheet->getStyle(sprintf('I%d',$last_row))->applyFromArray($style_bold_text_right);
$event->sheet->getStyle(sprintf('J%d',$last_row))->applyFromArray($style_bold_text_right)->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_NUMBER_00);
$event->sheet->getStyle(sprintf('K%d',$last_row))->applyFromArray($style_bold_text_right)->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_NUMBER_00);
$event->sheet->getStyle(sprintf('L%d',$last_row))->applyFromArray($style_bold_text_right)->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_NUMBER_00);
$event->sheet->getStyle(sprintf('A11:A%d',($last_row-1)))->applyFromArray($style_normal_text_right);
$event->sheet->getStyle(sprintf('B11:B%d',($last_row-1)))->applyFromArray($style_normal_text_right);
$event->sheet->getStyle(sprintf('C11:C%d',($last_row-1)))->applyFromArray($style_normal_text_right);
$event->sheet->getStyle(sprintf('D11:D%d',($last_row-1)))->applyFromArray($style_normal_text_right);
$event->sheet->getStyle(sprintf('E11:E%d',($last_row-1)))->applyFromArray($style_normal_text_right);
$event->sheet->getStyle(sprintf('F11:F%d',($last_row-1)))->applyFromArray($style_normal_text_right);
$event->sheet->getStyle(sprintf('G11:G%d',($last_row-1)))->applyFromArray($style_normal_text_right);
$event->sheet->getStyle(sprintf('H11:H%d',($last_row-1)))->applyFromArray($style_normal_text_right);
$event->sheet->getStyle(sprintf('I11:I%d',($last_row-1)))->applyFromArray($style_normal_text_right);
$event->sheet->getStyle(sprintf('J11:J%d',($last_row-1)))->applyFromArray($style_normal_text_right);
$event->sheet->getStyle(sprintf('K11:K%d',($last_row-1)))->applyFromArray($style_normal_text_right);
$event->sheet->getStyle(sprintf('L11:L%d',($last_row-1)))->applyFromArray($style_normal_text_right);
$event->sheet->getStyle(sprintf('M11:M%d',($last_row-1)))->applyFromArray($style_normal_text_right);
$event->sheet->getStyle(sprintf('N11:N%d',($last_row-1)))->applyFromArray($style_normal_text_right);
$event->sheet->getStyle(sprintf('O11:O%d',($last_row-1)))->applyFromArray($style_normal_text_right);

$event->sheet->getStyle(sprintf('A%d:G%d',$last_row_data, $last_row_data))->applyFromArray($style_bold_text_right);
$event->sheet->getStyle(sprintf('A%d:G%d',($last_row_data+3), ($last_row_data+3)))->applyFromArray($style_bold_text_right);
$event->sheet->getStyle(sprintf('A%d:G%d',($last_row_data+6), ($last_row_data+6)))->applyFromArray($style_bold_text_right);
$event->sheet->getStyle(sprintf('A%d:G%d',($last_row_data+9), ($last_row_data+9)))->applyFromArray($style_bold_text_right);

$event->sheet->getStyle(sprintf('H%d', $last_row_data))->applyFromArray($style_bold_text_center_calibri)->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_NUMBER_00);
$event->sheet->getStyle(sprintf('H%d', $last_row_data+3))->applyFromArray($style_bold_text_center_calibri)->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_NUMBER_00);
$event->sheet->getStyle(sprintf('H%d', $last_row_data+6))->applyFromArray($style_bold_text_center_calibri)->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_NUMBER_00);
$event->sheet->getStyle(sprintf('H%d', $last_row_data+9))->applyFromArray($style_bold_text_center_calibri)->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_NUMBER_00);
$event->sheet->getStyle(sprintf('H%d', $last_row_data+1))->applyFromArray($style_border_top)->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_NUMBER_00);
$event->sheet->getStyle(sprintf('H%d', $last_row_data+4))->applyFromArray($style_border_top)->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_NUMBER_00);
$event->sheet->getStyle(sprintf('H%d', $last_row_data+7))->applyFromArray($style_border_top)->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_NUMBER_00);
$event->sheet->getStyle(sprintf('H%d', $last_row_data+10))->applyFromArray($style_border_top)->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_NUMBER_00);

$event->sheet->getStyle(sprintf('I%d', $last_row_data))->applyFromArray($style_bold_text_right);
$event->sheet->getStyle(sprintf('I%d', $last_row_data+3))->applyFromArray($style_bold_text_right);
$event->sheet->getStyle(sprintf('I%d', $last_row_data+6))->applyFromArray($style_bold_text_right);
$event->sheet->getStyle(sprintf('I%d', $last_row_data+9))->applyFromArray($style_bold_text_right);

$event->sheet->getStyle(sprintf('J%d', $last_row_data))->applyFromArray($style_bold_text_right)->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_NUMBER_00);
$event->sheet->getStyle(sprintf('J%d', $last_row_data+3))->applyFromArray($style_bold_text_right)->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_NUMBER_00);
$event->sheet->getStyle(sprintf('J%d', $last_row_data+6))->applyFromArray($style_bold_text_right)->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_NUMBER_00);
$event->sheet->getStyle(sprintf('J%d', $last_row_data+9))->applyFromArray($style_bold_text_right)->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_NUMBER_00);

$event->sheet->getStyle(sprintf('K%d', $last_row_data))->applyFromArray($style_bold_text_right);
$event->sheet->getStyle(sprintf('K%d', $last_row_data+3))->applyFromArray($style_bold_text_right);
$event->sheet->getStyle(sprintf('K%d', $last_row_data+6))->applyFromArray($style_bold_text_right);
$event->sheet->getStyle(sprintf('K%d', $last_row_data+9))->applyFromArray($style_bold_text_right);

// assign border styles
$event->sheet->getStyle(sprintf('A6:A%d',$last_row))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('B6:B%d',$last_row))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('C6:C%d',$last_row))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('D6:D%d',$last_row))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('E6:E%d',$last_row))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('F6:F%d',$last_row))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('G6:G%d',$last_row))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('H6:H%d',$last_row))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('I6:I%d',$last_row))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('J6:J%d',$last_row))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('K6:K%d',$last_row))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('L6:L%d',$last_row))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('M6:M%d',$last_row))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('N6:N%d',$last_row))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('O6:O%d',$last_row))->applyFromArray($style_border);
}
},
];
}
}

+ 88
- 0
app/Exports/CompoundExport.php Datei anzeigen

@@ -0,0 +1,88 @@
<?php

namespace App\Exports;

use App\Compound;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\Exportable;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\WithEvents;
use Maatwebsite\Excel\Events\AfterSheet;

class CompoundExport implements FromCollection, WithHeadings, WithEvents
{
use Exportable;

private $data, $jenis;

public function __construct($data, $jenis)
{
$this->data = $data;
$this->jenis = $jenis;
}

/**
* @return \Illuminate\Support\Collection
*/
public function collection()
{
return collect($this->data);
}

public function headings(): array
{
if($this->jenis == 'Pelbagai'){
return [
'#',
'Kpd',
'Jenis',
'Tarikh_Masa',
'Kesalahan',
'Nric',
'Nama',
'No_Daftar',
'Akaun_Lesen',
'No_Plate',
'Penguatkuasa',
'Status',
'Catatan_Dari_Admin',
'Amaun_Bayaran',
'Kemaskini_oleh',
'Tarikh_kemaskini',
];
}else if($this->jenis == 'Parkir'){
return [
'#',
'Kpd',
'Jenis',
'Tarikh_Masa',
'Kesalahan',
'No_Plate',
'Penguatkuasa',
'Status',
'Catatan_Dari_Admin',
'Amaun_Bayaran',
'Kemaskini_oleh',
'Tarikh_kemaskini',
];
}
}

public function registerEvents(): array
{
return [
AfterSheet::class => function(AfterSheet $event) {
$event->sheet->getStyle('A1:Z1')->applyFromArray([
'font' => [
'bold' => true
]
]);
},
];
}
}


+ 32
- 0
app/Exports/EnforcerStatisticExport.php Datei anzeigen

@@ -0,0 +1,32 @@
<?php

namespace App\Exports;

use App\Compound;
use Maatwebsite\Excel\Concerns\Exportable;
use Maatwebsite\Excel\Concerns\WithMultipleSheets;

class EnforcerStatisticExport implements WithMultipleSheets
{
use Exportable;

private $dataK, $year;

public function __construct($dataK, $dataJ, $year)
{
$this->dataK = $dataK;
$this->dataJ = $dataJ;
$this->year = $year;
}

/**
* @return array
*/
public function sheets(): array
{
$sheets = [];
$sheets[] = new EnforcerStatisticSheet($this->dataK, $this->year, 'KEPING');
$sheets[] = new EnforcerStatisticSheet($this->dataJ, $this->year, 'JUMLAH');
return $sheets;
}
}

+ 244
- 0
app/Exports/EnforcerStatisticSheet.php Datei anzeigen

@@ -0,0 +1,244 @@
<?php
namespace App\Exports;

use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\WithTitle;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
use Maatwebsite\Excel\Concerns\WithStrictNullComparison;
use Maatwebsite\Excel\Concerns\WithCalculatedFormulas;
use Maatwebsite\Excel\Concerns\WithStartRow;
use Maatwebsite\Excel\Concerns\WithCustomStartCell;
use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
use Maatwebsite\Excel\Concerns\WithColumnFormatting;

use Maatwebsite\Excel\Concerns\WithEvents;
use Maatwebsite\Excel\Events\BeforeExport;
use Maatwebsite\Excel\Events\AfterSheet;

use PhpOffice\PhpSpreadsheet\Cell\Coordinate;

class EnforcerStatisticSheet implements FromCollection, WithHeadings, ShouldAutoSize, WithTitle, WithEvents, WithStrictNullComparison, WithCalculatedFormulas, WithCustomStartCell
{
protected $data, $year, $title, $text_last_row;

public function __construct($data, $year, $title)
{
$this->data = $data;
$this->year = $year;
$this->title = $this->year.'('.$title.')';

if($title == 'KEPING'){
$this->text_last_row = 'JUMLAH PENGELUARAN KOMPAUN BAGI SETIAP ANGGOTA ADALAH SEBANYAK 14 KEPING SEBULAN = 168 KEPING SETAHUN';
}else {
$this->text_last_row = 'JUMLAH PENGELUARAN KOMPAUN BAGI SETIAP ANGGOTA ADALAH SEBANYAK 1000.00 SEBULAN';
}
}

public function collection()
{
return collect($this->data);
}

public function headings(): array
{
return [
'BIL',
'NAMA ANGGOTA',
'JAN',
'FEB',
'MAC',
'APRIL',
'MEI',
'JUN',
'JULAI',
'OGOS',
'SEPT',
'OKT',
'NOV',
'DIS',
'JUM',
];
}

public function title(): string
{
return $this->title;
}

public function startCell(): string
{
return 'A4';
}

public function registerEvents(): array
{
return [
AfterSheet::class => function(AfterSheet $event) {
// set up a style array for cell formatting
$style_bold_text_center = [
'alignment' => [
'horizontal' => 'center',
'vertical' => 'center',
],
'font' => [
'bold' => true
],

];

$style_bold_text_left = [
'alignment' => [
'horizontal' => 'left',
],
'font' => [
'bold' => true
]
];

$style_normal_text_left = [
'alignment' => [
'horizontal' => 'left',
],
'font' => [
'bold' => false
]
];

$style_normal_text_center = [
'alignment' => [
'horizontal' => 'center',
],
'font' => [
'bold' => false
]
];

$style_border = [
'borders' => [
'allBorders' => [
'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THICK,
'color' => ['argb' => '000000'],
],
],
];

if(count($this->data) > 0){
// last column as letter value (e.g., D)
$last_column = Coordinate::stringFromColumnIndex(count($this->data[0]));
$second_last_column = Coordinate::stringFromColumnIndex(count($this->data[0])-1);
// calculate last row + 1 (total results + header rows + column headings row + new row)
$last_row = count($this->data) + 2 + 2 + 1 + 3;

// merge cells for header
$event->sheet->mergeCells('A3:A4');
$event->sheet->mergeCells('B3:B4');
$event->sheet->mergeCells(sprintf('C3:%s3', $second_last_column));
$event->sheet->mergeCells(sprintf('%s3:%s4',$last_column, $last_column));

// merge cells for full-width
$event->sheet->mergeCells(sprintf('A1:%s1',$last_column));
$event->sheet->mergeCells(sprintf('A2:%s2',$last_column));
$event->sheet->mergeCells(sprintf('B%d:%s%d',$last_row,$last_column,$last_row));

// assign cell values
$event->sheet->setCellValue('A1','STATISTIK PENGELUARAN KOMPAUN (BULANAN) BAGI TAHUN '.$this->year);
$event->sheet->setCellValue('A2','');
$event->sheet->setCellValue('A3','BIL');
$event->sheet->setCellValue('B3','NAMA ANGGOTA');
$event->sheet->setCellValue(sprintf('%s3',$last_column),'JUM');
$event->sheet->setCellValue('C3','BULAN');
$event->sheet->setCellValue('C4','JAN');
$event->sheet->setCellValue('D4','FEB');
$event->sheet->setCellValue('E4','MAC');
$event->sheet->setCellValue('F4','APRIL');
$event->sheet->setCellValue('G4','MEI');
$event->sheet->setCellValue('H4','JUN');
$event->sheet->setCellValue('I4','JULAI');
$event->sheet->setCellValue('J4','OGOS');
$event->sheet->setCellValue('K4','SEPT');
$event->sheet->setCellValue('L4','OKT');
$event->sheet->setCellValue('M4','NOV');
$event->sheet->setCellValue('N4','DIS');

$event->sheet->setCellValue(sprintf('A%d',$last_row),'**');
$event->sheet->setCellValue(sprintf('B%d',$last_row), $this->text_last_row);
$event->sheet->setCellValue(sprintf('B%d',$last_row-2), 'JUMLAH BESAR');
$event->sheet->setCellValue(sprintf('C%d',$last_row-2), '=SUM(C5:C'.($last_row-3).')');
$event->sheet->setCellValue(sprintf('D%d',$last_row-2), '=SUM(D5:D'.($last_row-3).')');
$event->sheet->setCellValue(sprintf('E%d',$last_row-2), '=SUM(E5:E'.($last_row-3).')');
$event->sheet->setCellValue(sprintf('F%d',$last_row-2), '=SUM(F5:F'.($last_row-3).')');
$event->sheet->setCellValue(sprintf('G%d',$last_row-2), '=SUM(G5:G'.($last_row-3).')');
$event->sheet->setCellValue(sprintf('H%d',$last_row-2), '=SUM(H5:H'.($last_row-3).')');
$event->sheet->setCellValue(sprintf('I%d',$last_row-2), '=SUM(I5:I'.($last_row-3).')');
$event->sheet->setCellValue(sprintf('J%d',$last_row-2), '=SUM(J5:J'.($last_row-3).')');
$event->sheet->setCellValue(sprintf('K%d',$last_row-2), '=SUM(K5:K'.($last_row-3).')');
$event->sheet->setCellValue(sprintf('L%d',$last_row-2), '=SUM(L5:L'.($last_row-3).')');
$event->sheet->setCellValue(sprintf('M%d',$last_row-2), '=SUM(M5:M'.($last_row-3).')');
$event->sheet->setCellValue(sprintf('N%d',$last_row-2), '=SUM(N5:N'.($last_row-3).')');
$event->sheet->setCellValue(sprintf('O%d',$last_row-2), '=SUM(O5:O'.($last_row-3).')');

// assign cell styles
$event->sheet->getStyle('A1:A2')->applyFromArray($style_bold_text_center);
$event->sheet->getStyle(sprintf('A3:%s3',$last_column))->applyFromArray($style_bold_text_center);
$event->sheet->getStyle('C4:N4')->applyFromArray($style_bold_text_center);
$event->sheet->getStyle(sprintf('A5:A%d',($last_row-2)))->applyFromArray($style_bold_text_center);
$event->sheet->getStyle(sprintf('%s5:%s%d',$last_column,$last_column,($last_row-2)))->applyFromArray($style_normal_text_center);
$event->sheet->getStyle(sprintf('C5:C%d',($last_row-2)))->applyFromArray($style_normal_text_center);
$event->sheet->getStyle(sprintf('D5:D%d',($last_row-2)))->applyFromArray($style_normal_text_center);
$event->sheet->getStyle(sprintf('E5:E%d',($last_row-2)))->applyFromArray($style_normal_text_center);
$event->sheet->getStyle(sprintf('F5:F%d',($last_row-2)))->applyFromArray($style_normal_text_center);
$event->sheet->getStyle(sprintf('G5:G%d',($last_row-2)))->applyFromArray($style_normal_text_center);
$event->sheet->getStyle(sprintf('H5:H%d',($last_row-2)))->applyFromArray($style_normal_text_center);
$event->sheet->getStyle(sprintf('I5:I%d',($last_row-2)))->applyFromArray($style_normal_text_center);
$event->sheet->getStyle(sprintf('J5:J%d',($last_row-2)))->applyFromArray($style_normal_text_center);
$event->sheet->getStyle(sprintf('K5:K%d',($last_row-2)))->applyFromArray($style_normal_text_center);
$event->sheet->getStyle(sprintf('L5:L%d',($last_row-2)))->applyFromArray($style_normal_text_center);
$event->sheet->getStyle(sprintf('M5:M%d',($last_row-2)))->applyFromArray($style_normal_text_center);
$event->sheet->getStyle(sprintf('N5:N%d',($last_row-2)))->applyFromArray($style_normal_text_center);
$event->sheet->getStyle(sprintf('B%d:O%d',($last_row-2),($last_row-2)))->applyFromArray($style_bold_text_center);

$event->sheet->getStyle('A3:O3')->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
->getStartColor()->setARGB('A5A5A5');
$event->sheet->getStyle('C4:N4')->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
->getStartColor()->setARGB('A5A5A5');
$event->sheet->getStyle(sprintf('A%d:O%d', ($last_row-2), ($last_row-2) ))->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
->getStartColor()->setARGB('A5A5A5');
$event->sheet->getStyle(sprintf('A5:A%d', ($last_row-3)))->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
->getStartColor()->setARGB('E5B8B7');
$event->sheet->getStyle(sprintf('B5:B%d', ($last_row-3)))->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
->getStartColor()->setARGB('E5B8B7');
$event->sheet->getStyle(sprintf('O5:O%d', ($last_row-3)))->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
->getStartColor()->setARGB('E5B8B7');

$event->sheet->getStyle(sprintf('A%d',$last_row))->applyFromArray($style_bold_text_left);
$event->sheet->getStyle(sprintf('B%d',$last_row))->applyFromArray($style_bold_text_left);

// assign border styles
$event->sheet->getStyle(sprintf('A3:A%d',($last_row-2)))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('B3:B%d',($last_row-2)))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('C3:C%d',($last_row-2)))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('D3:D%d',($last_row-2)))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('E3:E%d',($last_row-2)))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('F3:F%d',($last_row-2)))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('G3:G%d',($last_row-2)))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('H3:H%d',($last_row-2)))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('I3:I%d',($last_row-2)))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('J3:J%d',($last_row-2)))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('K3:K%d',($last_row-2)))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('L3:L%d',($last_row-2)))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('M3:M%d',($last_row-2)))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('N3:N%d',($last_row-2)))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('O3:O%d',($last_row-2)))->applyFromArray($style_border);
}
},
];
}
}

+ 55
- 0
app/Exports/FaultyStatisticExport.php Datei anzeigen

@@ -0,0 +1,55 @@
<?php

namespace App\Exports;

use App\Compound;
use Maatwebsite\Excel\Concerns\Exportable;
use Maatwebsite\Excel\Concerns\WithMultipleSheets;

class FaultyStatisticExport implements WithMultipleSheets
{
use Exportable;

private $jan,$feb,$mac,$apr,$mei,$jun,$july,$ogos,$sept,$okt,$nov,$dis,$all,$start_date,$end_date;

public function __construct($jan,$feb,$mac,$apr,$mei,$jun,$july,$ogos,$sept,$okt,$nov,$dis,$all,$start_date,$end_date)
{
$this->jan = $jan;
$this->feb = $feb;
$this->mac = $mac;
$this->apr = $apr;
$this->mei = $mei;
$this->jun = $jun;
$this->july = $july;
$this->ogos = $ogos;
$this->sept = $sept;
$this->okt = $okt;
$this->nov = $nov;
$this->dis = $dis;
$this->all = $all;
$this->start_date = $start_date;
$this->end_date = $end_date;
}

/**
* @return array
*/
public function sheets(): array
{
$sheets = [];
$sheets[] = new FaultyStatisticSheet($this->jan, '01', $this->start_date, $this->end_date);
$sheets[] = new FaultyStatisticSheet($this->feb, '02', $this->start_date, $this->end_date);
$sheets[] = new FaultyStatisticSheet($this->mac, '03', $this->start_date, $this->end_date);
$sheets[] = new FaultyStatisticSheet($this->apr, '04', $this->start_date, $this->end_date);
$sheets[] = new FaultyStatisticSheet($this->mei, '05', $this->start_date, $this->end_date);
$sheets[] = new FaultyStatisticSheet($this->jun, '06', $this->start_date, $this->end_date);
$sheets[] = new FaultyStatisticSheet($this->july,'07', $this->start_date, $this->end_date);
$sheets[] = new FaultyStatisticSheet($this->ogos,'08', $this->start_date, $this->end_date);
$sheets[] = new FaultyStatisticSheet($this->sept,'09', $this->start_date, $this->end_date);
$sheets[] = new FaultyStatisticSheet($this->okt, '10', $this->start_date, $this->end_date);
$sheets[] = new FaultyStatisticSheet($this->nov, '11', $this->start_date, $this->end_date);
$sheets[] = new FaultyStatisticSheet($this->dis, '12', $this->start_date, $this->end_date);
$sheets[] = new FaultyStatisticSheet($this->all, 'All', $this->start_date, $this->end_date);
return $sheets;
}
}

+ 243
- 0
app/Exports/FaultyStatisticSheet.php Datei anzeigen

@@ -0,0 +1,243 @@
<?php
namespace App\Exports;

use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\WithTitle;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
use Maatwebsite\Excel\Concerns\WithStrictNullComparison;
use Maatwebsite\Excel\Concerns\WithCalculatedFormulas;

use Maatwebsite\Excel\Concerns\WithEvents;
use Maatwebsite\Excel\Events\BeforeExport;
use Maatwebsite\Excel\Events\AfterSheet;

use PhpOffice\PhpSpreadsheet\Cell\Coordinate;

class FaultyStatisticSheet implements FromCollection, WithHeadings, WithTitle, WithEvents, WithStrictNullComparison, WithCalculatedFormulas
{
protected $data, $year, $title, $subtitle, $start_date, $end_date;

public function __construct($data, $month, $start_date, $end_date)
{
$this->data = $data;
$this->$start_date = $start_date;
$this->end_date = $end_date;
$this->year = date('Y', strtotime($start_date));


if($month == '01'){
$this->title = 'JAN';
$this->subtitle = 'LAPORAN PENGELUARAN KOMPAUN MENGIKUT KESALAHAN BERDASARKAN TARIKH KOMPAUN 01/'.$month.'/'.$this->year.' HINGGA 31/'.$month.'/'.$this->year;
}else if($month == '02'){
$this->title = 'FEB';
$this->subtitle = 'LAPORAN PENGELUARAN KOMPAUN MENGIKUT KESALAHAN BERDASARKAN TARIKH KOMPAUN 01/'.$month.'/'.$this->year.' HINGGA 28/'.$month.'/'.$this->year;
}else if($month == '03'){
$this->title = 'MAC';
$this->subtitle = 'LAPORAN PENGELUARAN KOMPAUN MENGIKUT KESALAHAN BERDASARKAN TARIKH KOMPAUN 01/'.$month.'/'.$this->year.' HINGGA 31/'.$month.'/'.$this->year;
}else if($month == '04'){
$this->title = 'APRIL';
$this->subtitle = 'LAPORAN PENGELUARAN KOMPAUN MENGIKUT KESALAHAN BERDASARKAN TARIKH KOMPAUN 01/'.$month.'/'.$this->year.' HINGGA 30/'.$month.'/'.$this->year;
}else if($month == '05'){
$this->title = 'MEI';
$this->subtitle = 'LAPORAN PENGELUARAN KOMPAUN MENGIKUT KESALAHAN BERDASARKAN TARIKH KOMPAUN 01/'.$month.'/'.$this->year.' HINGGA 31/'.$month.'/'.$this->year;
}else if($month == '06'){
$this->title = 'JUN';
$this->subtitle = 'LAPORAN PENGELUARAN KOMPAUN MENGIKUT KESALAHAN BERDASARKAN TARIKH KOMPAUN 01/'.$month.'/'.$this->year.' HINGGA 30/'.$month.'/'.$this->year;
}else if($month == '07'){
$this->title = 'JULY';
$this->subtitle = 'LAPORAN PENGELUARAN KOMPAUN MENGIKUT KESALAHAN BERDASARKAN TARIKH KOMPAUN 01/'.$month.'/'.$this->year.' HINGGA 31/'.$month.'/'.$this->year;
}else if($month == '08'){
$this->title = 'OGOS';
$this->subtitle = 'LAPORAN PENGELUARAN KOMPAUN MENGIKUT KESALAHAN BERDASARKAN TARIKH KOMPAUN 01/'.$month.'/'.$this->year.' HINGGA 31/'.$month.'/'.$this->year;
}else if($month == '09'){
$this->title = 'SEPT';
$this->subtitle = 'LAPORAN PENGELUARAN KOMPAUN MENGIKUT KESALAHAN BERDASARKAN TARIKH KOMPAUN 01/'.$month.'/'.$this->year.' HINGGA 30/'.$month.'/'.$this->year;
}else if($month == '10'){
$this->title = 'OKT';
$this->subtitle = 'LAPORAN PENGELUARAN KOMPAUN MENGIKUT KESALAHAN BERDASARKAN TARIKH KOMPAUN 01/'.$month.'/'.$this->year.' HINGGA 30/'.$month.'/'.$this->year;
}else if($month == '11'){
$this->title = 'NOV';
$this->subtitle = 'LAPORAN PENGELUARAN KOMPAUN MENGIKUT KESALAHAN BERDASARKAN TARIKH KOMPAUN 01/'.$month.'/'.$this->year.' HINGGA 30/'.$month.'/'.$this->year;
}else if($month == '12'){
$this->title = 'DIS';
$this->subtitle = 'LAPORAN PENGELUARAN KOMPAUN MENGIKUT KESALAHAN BERDASARKAN TARIKH KOMPAUN 01/'.$month.'/'.$this->year.' HINGGA 31/'.$month.'/'.$this->year;
}else if($month == 'All'){
$this->title = 'ALL';
$this->subtitle = 'LAPORAN PENGELUARAN KOMPAUN MENGIKUT KESALAHAN BERDASARKAN TARIKH KOMPAUN '.date('d/m/Y', strtotime($start_date)).' HINGGA '.date('d/m/Y', strtotime($end_date));
}
}

public function collection()
{
return collect($this->data);
}

public function headings(): array
{
return [
'BIL',
'KESALAHAN',
'JUMLAH KOMPAUN KELUAR',
'AMAUN KOMPAUN (RM)',
'JUMLAH BAYAR',
'AMAUN BAYAR (RM)',
'JUMLAH KOMPAUN BELUM BAYAR',
'AMAUN TUNGGAKAN (RM)',
'KOMPAUN BATAL',
'AMAUN BATAL (RM)',
'KOMPAUN KURANG',
'AMAUN KURANG (RM)',
];
}

public function title(): string
{
return $this->title;
}

public function registerEvents(): array
{
return [
AfterSheet::class => function(AfterSheet $event) {
$column = ['C','D','E','F','G','H','I','J','K','L','M'];
foreach ($column as $key => $c) {
$event->sheet->getDelegate()->getColumnDimension($c)->setWidth(8.43);
}
$event->sheet->getDelegate()->getColumnDimension('B')->setWidth(52);

// set up a style array for cell formatting
$style_bold_text_center = [
'alignment' => [
'horizontal' => 'center',
'vertical' => 'center',
],
'font' => [
'bold' => true,
'size' => 8,
'name' => 'Arial'
],

];

$style_bold_text_left = [
'alignment' => [
'horizontal' => 'left',
'vertical' => 'center',
],
'font' => [
'bold' => true,
'size' => 8,
'name' => 'Arial'
]
];

$style_normal_text_left = [
'alignment' => [
'horizontal' => 'left',
'vertical' => 'center',
],
'font' => [
'bold' => false,
'size' => 8,
'name' => 'Arial'
]
];

$style_normal_text_center = [
'alignment' => [
'horizontal' => 'center',
'vertical' => 'center',
],
'font' => [
'bold' => false,
'size' => 8,
'name' => 'Arial'
]
];

$style_border = [
'borders' => [
'allBorders' => [
'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_MEDIUM,
'color' => ['argb' => '000000'],
],
],
];

// at row 1, insert 2 rows
$event->sheet->insertNewRowBefore(1, 2);

// merge cells for full-width
$event->sheet->mergeCells('A1:L1');
$event->sheet->mergeCells('A2:L2');

// assign cell values
$event->sheet->setCellValue('A1', $this->subtitle);
$event->sheet->setCellValue('A2','');

// last column as letter value (e.g., D)
if($this->data != null){

$last_column = Coordinate::stringFromColumnIndex(count($this->data[0]));
$second_last_column = Coordinate::stringFromColumnIndex(count($this->data[0])-1);
// calculate last row + 1 (total results + header rows + column headings row + new row)
$last_row = count($this->data) + 2 + 1 + 1 + 2;

$event->sheet->setCellValue(sprintf('B%d',$last_row-2), 'JUMLAH');
$event->sheet->setCellValue(sprintf('C%d',$last_row-2), '=SUM(C4:C'.($last_row-3).')');
$event->sheet->setCellValue(sprintf('D%d',$last_row-2), '=SUM(D4:D'.($last_row-3).')');
$event->sheet->setCellValue(sprintf('E%d',$last_row-2), '=SUM(E4:E'.($last_row-3).')');
$event->sheet->setCellValue(sprintf('F%d',$last_row-2), '=SUM(F4:F'.($last_row-3).')');
$event->sheet->setCellValue(sprintf('G%d',$last_row-2), '=SUM(G4:G'.($last_row-3).')');
$event->sheet->setCellValue(sprintf('H%d',$last_row-2), '=SUM(H4:H'.($last_row-3).')');
$event->sheet->setCellValue(sprintf('I%d',$last_row-2), '=SUM(I4:I'.($last_row-3).')');
$event->sheet->setCellValue(sprintf('J%d',$last_row-2), '=SUM(J4:J'.($last_row-3).')');
$event->sheet->setCellValue(sprintf('K%d',$last_row-2), '=SUM(K4:K'.($last_row-3).')');
$event->sheet->setCellValue(sprintf('L%d',$last_row-2), '=SUM(L4:L'.($last_row-3).')');

for($i = 0; $i < count($this->data); $i++){
$event->sheet->setCellValue(sprintf('A%d',$i+4), $i+1);
$event->sheet->setCellValue(sprintf('H%d',$i+4), '=D'.($i+4).'-F'.($i+4).'-L'.($i+4));
}

// assign cell styles
$event->sheet->getStyle('A1:A2')->applyFromArray($style_bold_text_center);
$event->sheet->getStyle(sprintf('A3:L3',$last_column))->applyFromArray($style_bold_text_center);
$event->sheet->getStyle(sprintf('A3:L3',$last_column))->getAlignment()->setWrapText(true);
$event->sheet->getStyle(sprintf('B4:B%d',($last_row-2)))->getAlignment()->setWrapText(true);
$event->sheet->getStyle(sprintf('A4:A%d',($last_row-2)))->applyFromArray($style_normal_text_center);
$event->sheet->getStyle(sprintf('B4:B%d',($last_row-2)))->applyFromArray($style_normal_text_left);
$event->sheet->getStyle(sprintf('C4:C%d',($last_row-2)))->applyFromArray($style_normal_text_center);
$event->sheet->getStyle(sprintf('D4:D%d',($last_row-2)))->applyFromArray($style_normal_text_center);
$event->sheet->getStyle(sprintf('E4:E%d',($last_row-2)))->applyFromArray($style_normal_text_center);
$event->sheet->getStyle(sprintf('F4:F%d',($last_row-2)))->applyFromArray($style_normal_text_center);
$event->sheet->getStyle(sprintf('G4:G%d',($last_row-2)))->applyFromArray($style_normal_text_center);
$event->sheet->getStyle(sprintf('H4:H%d',($last_row-2)))->applyFromArray($style_normal_text_center);
$event->sheet->getStyle(sprintf('I4:I%d',($last_row-2)))->applyFromArray($style_normal_text_center);
$event->sheet->getStyle(sprintf('J4:J%d',($last_row-2)))->applyFromArray($style_normal_text_center);
$event->sheet->getStyle(sprintf('K4:K%d',($last_row-2)))->applyFromArray($style_normal_text_center);
$event->sheet->getStyle(sprintf('L4:L%d',($last_row-2)))->applyFromArray($style_normal_text_center);
$event->sheet->getStyle(sprintf('B%d:L%d',($last_row-2),($last_row-2)))->applyFromArray($style_bold_text_center);

//assign border styles
$event->sheet->getStyle(sprintf('A3:A%d',($last_row-2)))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('B3:B%d',($last_row-2)))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('C3:C%d',($last_row-2)))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('D3:D%d',($last_row-2)))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('E3:E%d',($last_row-2)))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('F3:F%d',($last_row-2)))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('G3:G%d',($last_row-2)))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('H3:H%d',($last_row-2)))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('I3:I%d',($last_row-2)))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('J3:J%d',($last_row-2)))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('K3:K%d',($last_row-2)))->applyFromArray($style_border);
$event->sheet->getStyle(sprintf('L3:L%d',($last_row-2)))->applyFromArray($style_border);
}

},
];
}
}

+ 101
- 5
app/Http/Controllers/Api/CompoundResourceController.php Datei anzeigen

@@ -19,6 +19,7 @@ use App\Model\Module\Memo;
use App\Model\Module\Attachment;

use App\Jobs\StoreCompound;
use App\Jobs\StoreCompoundEPBT;
use App\Jobs\UpdateCompoundPrice;
use App\Http\Resources\CompoundResource;

@@ -444,6 +445,65 @@ class CompoundResourceController extends BaseController
"no_akaun_lesen" => $request->lesen,
"maklumat_tambahan" => '-',
];
}elseif($request->jenis == 'Pelbagai_PA'){
$compoundData = [
'jenis' => $request->jenis,
'kpd' => $kpd,
'nama' => $request->namaP,
'identity' => $request->noIc,
'nama_syarikat' => $request->namaS,
'no_daftar_syarikat' => strtolower($request->daftarNo),
'alamat' => $request->alamat,
"no_plate" => $request->no_plate,
"no_cukai_jalan" => $request->no_cukai_jalan,
"catatan" => $request->catatan,
"lokasi_kejadian" => '-',
'latlong' => $request->Latlong,
'jbkod' => $request->jabatan,
'akta' => $faulty->deed_law_id,
'seksyen_kesalahan' => $faulty->_id,
'jumlah_asal_kompaun' => $faulty->amount,
'jumlah_kemaskini_kompaun' => '',
'dikeluarkan' => $staff->_id,
"status" => 'Belum Bayar',
"amount_payment" => '',
"receipt" => '',
"modul" => '03',
"penguatkuasa" => '',
"no_telefon" => $request->tel,
"no_akaun_lesen" => $request->lesen,
"maklumat_tambahan" => '-',
];
}
elseif($request->jenis == 'Pelbagai_LESEN'){
$compoundData = [
'jenis' => $request->jenis,
'kpd' => $kpd,
'nama' => $request->namaP,
'identity' => $request->noIc,
'nama_syarikat' => $request->namaS,
'no_daftar_syarikat' => strtolower($request->daftarNo),
'alamat' => $request->alamat,
"no_plate" => $request->no_plate,
"no_cukai_jalan" => $request->no_cukai_jalan,
"catatan" => $request->catatan,
"lokasi_kejadian" => '-',
'latlong' => $request->Latlong,
'jbkod' => $request->jabatan,
'akta' => $faulty->deed_law_id,
'seksyen_kesalahan' => $faulty->_id,
'jumlah_asal_kompaun' => $faulty->amount,
'jumlah_kemaskini_kompaun' => '',
'dikeluarkan' => $staff->_id,
"status" => 'Belum Bayar',
"amount_payment" => '',
"receipt" => '',
"modul" => '03',
"penguatkuasa" => '',
"no_telefon" => $request->tel,
"no_akaun_lesen" => $request->lesen,
"maklumat_tambahan" => '-',
];
}

$file = ConfidentialFile::create($fileData);
@@ -461,6 +521,7 @@ class CompoundResourceController extends BaseController
// }
$this->dispatch(new StoreCompound($request->all(), $kpd, $staff->_id, $no_siri));
array_push($data, array('kpd' => $kpd));
$this->dispatch(new StoreCompoundEPBT($request->all(), $kpd, $staff->StaffDetail->full_name, $staff->StaffDetail->no_badan, $faulty->nama));

return $this->sendResponse($data, 'Berjaya simpan rekod kompaun!');
// }
@@ -521,7 +582,7 @@ class CompoundResourceController extends BaseController
"status" => 'Belum Bayar',
"amount_payment" => '',
"receipt" => '',
"modul" => '05',
"modul" => $request->modul,
"penguatkuasa" => '',
];
}elseif($request->jenis == 'Pelbagai_KT'){
@@ -547,11 +608,13 @@ class CompoundResourceController extends BaseController
"status" => 'Belum Bayar',
"amount_payment" => '',
"receipt" => '',
"modul" => '05',
"modul" => $request->modul,
"penguatkuasa" => '',
"no_telefon" => $request->tel,
"no_akaun_lesen" => $request->lesen,
"maklumat_tambahan" => '-',
"tindakan" => $request->tindakan,
"tempoh" => $request->tempoh,
];
}elseif($request->jenis == 'Pelbagai_JPB'){
$compoundData = [
@@ -576,14 +639,46 @@ class CompoundResourceController extends BaseController
"status" => 'Belum Bayar',
"amount_payment" => '',
"receipt" => '',
"modul" => '05',
"modul" => $request->modul,
"penguatkuasa" => '',
"no_telefon" => $request->tel,
"no_akaun_lesen" => $request->lesen,
"maklumat_tambahan" => '-',
"tindakan" => $request->tindakan,
"tempoh" => $request->tempoh,
];
}
elseif($request->jenis == 'Pelbagai_LESEN'){
$compoundData = [
'jenis' => $request->jenis,
'kpd' => $kpd,
'nama' => $request->namaP,
'identity' => $request->noIc,
'nama_syarikat' => $request->namaS,
'no_daftar_syarikat' => strtolower($request->daftarNo),
'alamat' => $request->alamat,
"no_plate" => $request->no_plate,
"no_cukai_jalan" => $request->no_cukai_jalan,
"catatan" => $request->catatan,
"lokasi_kejadian" => '-',
'latlong' => $request->Latlong,
'jbkod' => $request->jabatan,
'akta' => $faulty->deed_law_id,
'seksyen_kesalahan' => $faulty->_id,
'jumlah_asal_kompaun' => $faulty->amount,
'jumlah_kemaskini_kompaun' => '',
'dikeluarkan' => $staff->_id,
"status" => 'Belum Bayar',
"amount_payment" => '',
"receipt" => '',
"modul" => $request->modul,
"penguatkuasa" => '',
"no_telefon" => $request->tel,
"no_akaun_lesen" => $request->lesen,
"tempoh" => $request->tempoh,
];
}
elseif($request->jenis == 'Lesen'){
elseif($request->jenis == 'Pelbagai_PA'){
$compoundData = [
'jenis' => $request->jenis,
'kpd' => $kpd,
@@ -606,7 +701,7 @@ class CompoundResourceController extends BaseController
"status" => 'Belum Bayar',
"amount_payment" => '',
"receipt" => '',
"modul" => '05',
"modul" => $request->modul,
"penguatkuasa" => '',
"no_telefon" => $request->tel,
"no_akaun_lesen" => $request->lesen,
@@ -614,6 +709,7 @@ class CompoundResourceController extends BaseController
];
}


$file = ConfidentialFile::create($fileData);
$saved = $file->compound()->create($compoundData);


+ 165
- 0
app/Http/Controllers/Api/Export/CalculateReportCurrentCompound.php Datei anzeigen

@@ -0,0 +1,165 @@
<?php
namespace App\Http\Controllers\Api\Export;
use Illuminate\Http\Request;
use App\Http\Controllers\Api\BaseController;
use Carbon\Carbon;

use App\Model\Module\Compound;
use App\Model\Module\ReportEnforcer;
use App\Model\Staff;
use App\Model\StaffDetail;
use App\Model\Module\Department;
class CalculateReportCurrentCompound extends BaseController
{
private function jumlah_kompaun_keluar($year, $month, $jabatan){
$dateS = Carbon::createFromFormat('Y-m-d', $year.'-'.$month.'-01');
$start = $dateS->copy()->startOfMonth();
$end = $dateS->copy()->endOfMonth();

$amaunt_kompaun_keluar = 0;

$compound = Compound::whereBetween('created_at', array($start, $end))->where('jbkod', $jabatan)->get();
foreach ($compound as $key => $c) {

$amaunt_kompaun_keluar = $amaunt_kompaun_keluar + floatval($c->jumlah_asal_kompaun);
}
return number_format($amaunt_kompaun_keluar, 2, '.', '');
}

private function jumlah_kompaun_kurang($year, $month, $jabatan){
$dateS = Carbon::createFromFormat('Y-m-d', $year.'-'.$month.'-01');
$start = $dateS->copy()->startOfMonth();
$end = $dateS->copy()->endOfMonth();

$amaun_kurang = 0;
$compound = Compound::whereBetween('created_at', array($start, $end))->where('jbkod', $jabatan)->get();
foreach ($compound as $key => $c) {

if($c->jumlah_kemaskini_kompaun != ''){
$amaun_kurang = $amaun_kurang + floatval($c->jumlah_kemaskini_kompaun);
}
}

return number_format($amaun_kurang, 2, '.', '');
}

private function jumlah_kompaun_kutipan($year, $month, $jabatan){
$dateS = Carbon::createFromFormat('Y-m-d', $year.'-'.$month.'-01');
$start = $dateS->copy()->startOfMonth();
$end = $dateS->copy()->endOfMonth();

$amaun_kutipan = 0;
$compound = Compound::whereBetween('created_at', array($start, $end))->where('jbkod', $jabatan)->get();
foreach ($compound as $key => $c) {

if($c->status == 'Berbayar'){
$amaun_kutipan = $amaun_kutipan + floatval($c->amount_payment);
}
}

return number_format($amaun_kutipan, 2, '.', '');
}


public function returnReportCurrentCompound(Request $request){

$nested_data = array();

$start_year = $request->start_year;
$end_year = $request->end_year;
$budget1 = number_format((int)$request->budget1, 2, '.', '');
$budget2 = number_format((int)$request->budget2, 2, '.', '');
$jabatan = $request->jabatan;

if($start_year != 'null' && $end_year != 'null' && $budget1 !='' && $budget2 !='' && $jabatan != 'null'){

$year1= date('Y', strtotime($start_year));
$year2= date('Y', strtotime($end_year));
$first_month = date('m', strtotime($start_year));
$first_text_month = strtoupper(date('M', strtotime($start_year)));
$first_month_number = date('n', strtotime($start_year));
$end_month_number = date('n', strtotime($end_year));

array_push($nested_data, array(
'month' => $first_text_month,
'budget1' => $budget1,
'kompaun_keluar1' => $this->jumlah_kompaun_keluar($year1,$first_month,$jabatan),
'kompaun_kurang1' => $this->jumlah_kompaun_kurang($year1,$first_month,$jabatan),
'kutipan_bulanan1' => $this->jumlah_kompaun_kutipan($year1,$first_month,$jabatan),
'kutipan_terkumpul1' => $this->jumlah_kompaun_kutipan($year1,$first_month,$jabatan),
'kutipan1' => round(($this->jumlah_kompaun_kutipan($year1,$first_month,$jabatan)/$budget1) * 100, 2),
'terkumpul1' => round(($this->jumlah_kompaun_kutipan($year1,$first_month,$jabatan)/$budget1) * 100, 2),
'budget2' => $budget2,
'kompaun_keluar2' => $this->jumlah_kompaun_keluar($year2,$first_month,$jabatan),
'kompaun_kurang2' => $this->jumlah_kompaun_kurang($year2,$first_month,$jabatan),
'kutipan_bulanan2' => $this->jumlah_kompaun_kutipan($year2,$first_month,$jabatan),
'kutipan_terkumpul2' => $this->jumlah_kompaun_kutipan($year2,$first_month,$jabatan),
'kutipan2' => round(($this->jumlah_kompaun_kutipan($year2,$first_month,$jabatan)/$budget2) * 100, 2),
'terkumpul2' => round(($this->jumlah_kompaun_kutipan($year2,$first_month,$jabatan)/$budget2) * 100, 2),
));

for($m=($first_month_number+1); $m<=12; ++$m){
$prev_month = date('m', mktime(0, 0, 0, $m-1, 1));
$month = date('m', mktime(0, 0, 0, $m, 1));
$text_month = strtoupper(date('M', mktime(0, 0, 0, $m, 1)));

$k1 = $this->jumlah_kompaun_kutipan($year1,$prev_month,$jabatan) + $this->jumlah_kompaun_kutipan($year1,$month,$jabatan);

if($m<=$end_month_number){

$k2 = $this->jumlah_kompaun_kutipan($year2,$prev_month,$jabatan) + $this->jumlah_kompaun_kutipan($year2,$month,$jabatan);

array_push($nested_data, array(
'month' => $text_month,
'budget1' => '',
'kompaun_keluar1' => $this->jumlah_kompaun_keluar($year1,$month,$jabatan),
'kompaun_kurang1' => $this->jumlah_kompaun_kurang($year1,$month,$jabatan),
'kutipan_bulanan1' => $this->jumlah_kompaun_kutipan($year1,$month,$jabatan),
'kutipan_terkumpul1' => number_format($k1, 2, '.', ''),
'kutipan1' => round(($this->jumlah_kompaun_kutipan($year1,$month,$jabatan)/$budget1) * 100, 2),
'terkumpul1' => round(($k1/$budget1) * 100, 2),
'budget2' => '',
'kompaun_keluar2' => $this->jumlah_kompaun_keluar($year2,$month,$jabatan),
'kompaun_kurang2' => $this->jumlah_kompaun_keluar($year2,$month,$jabatan),
'kutipan_bulanan2' => $this->jumlah_kompaun_kutipan($year2,$month,$jabatan),
'kutipan_terkumpul2' => number_format($k2, 2, '.', ''),
'kutipan2' => round(($this->jumlah_kompaun_kutipan($year2,$month,$jabatan)/$budget2) * 100, 2),
'terkumpul2' => round(($k2/$budget2) * 100, 2),
));
}else {

$k2 = $this->jumlah_kompaun_kutipan($year2,$prev_month,$jabatan) + $this->jumlah_kompaun_kutipan($year2,$month,$jabatan);
array_push($nested_data, array(
'month' => $text_month,
'budget1' => '',
'kompaun_keluar1' => $this->jumlah_kompaun_keluar($year1,$month,$jabatan),
'kompaun_kurang1' => $this->jumlah_kompaun_kurang($year1,$month,$jabatan),
'kutipan_bulanan1' => $this->jumlah_kompaun_kutipan($year1,$month,$jabatan),
'kutipan_terkumpul1' => number_format($k1, 2, '.', ''),
'kutipan1' => round(($this->jumlah_kompaun_kutipan($year1,$month,$jabatan)/$budget1) * 100, 2),
'terkumpul1' => round(($k1/$budget1) * 100, 2),
'budget2' => '',
'kompaun_keluar2' => $this->jumlah_kompaun_keluar($year2,$month,$jabatan),
'kompaun_kurang2' => $this->jumlah_kompaun_keluar($year2,$month,$jabatan),
'kutipan_bulanan2' => $this->jumlah_kompaun_kutipan($year2,$month,$jabatan),
'kutipan_terkumpul2' => number_format($k2, 2, '.', ''),
'kutipan2' => round(($this->jumlah_kompaun_kutipan($year2,$month,$jabatan)/$budget2) * 100, 2),
'terkumpul2' => round(($k2/$budget2) * 100, 2),
));
}
}
}


return \DataTables::of($nested_data)->make(true);
}
}

+ 172
- 0
app/Http/Controllers/Api/Export/CalculationReportBacklog.php Datei anzeigen

@@ -0,0 +1,172 @@
<?php
namespace App\Http\Controllers\Api\Export;
use Illuminate\Http\Request;
use App\Http\Controllers\Api\BaseController;
use Carbon\Carbon;

use App\Model\Module\Compound;
use App\Model\Module\ReportEnforcer;
use App\Model\Staff;
use App\Model\StaffDetail;
use App\Model\Module\Department;

class CalculationReportBacklog extends BaseController
{
public function jumlahKompaunTahunan($year, $jabatan)
{
$date = Carbon::createFromDate($year, 01, 01);
$startOfYear = $date->copy()->startOfYear();
$endOfYear = $date->copy()->endOfYear();

//list of compound 'Belum Bayar' in the year 2019
$compound = Compound::whereBetween('created_at', array($startOfYear, $endOfYear))->where('jbkod', $jabatan)->get();

$jumlah_kompaun = 0;
$keping_kompaun = 0;

foreach($compound as $c)
{
$jumlah_kompaun += $c->jumlah_asal_kompaun;
$keping_kompaun += 1;
}

$result = array();
array_push($result, array(
'jumlah_kompaun' => $jumlah_kompaun,
'keping_kompaun' => $keping_kompaun,
));

return json_encode($result);
}

//Calculate compound with status 'Berbayar'
public function kompaunBayarByBulan($year, $month, $jabatan)
{
$monthly = Carbon::createFromDate($year, $month, 1);
$startOfMonth = $monthly->copy()->startOfMonth();
$endOfMonth = $monthly->copy()->endOfMonth();

$monthly_collection = Compound::whereBetween('created_at', array($startOfMonth, $endOfMonth))->where('jbkod', $jabatan)->where('status', 'Berbayar')->get();
$jumlah_bayar = 0;
$keping_bayar = 0;
$jumlah_asal = 0;
$jumlah_kurang = 0;
$temp_jumlah_kurang = 0;

foreach($monthly_collection as $k)
{
if((!($k->jumlah_kemaskini_kompaun == '')))
{
$temp_jumlah_kurang = $k->jumlah_asal_kompaun - $k->jumlah_kemaskini_kompaun;
}

$keping_bayar += 1;
$jumlah_asal += $k->jumlah_asal_kompaun;
$jumlah_bayar += $k->amount_payment;
$jumlah_kurang += $temp_jumlah_kurang;
}

$result = array();
array_push($result, array(
'jumlah_berbayar' => $jumlah_bayar,
'keping_berbayar' => $keping_bayar,
'jumlah_pengurangan' => $jumlah_kurang,
'jumlah_asal_berbayar' => $jumlah_asal,
));

return json_encode($result);
}

public function berbayarTerkumpul($value1, $value2)
{
return $value1 += $value2;
}

public function bakiTunggakan($baki_tertunggak, $bayar_bulanan, $jumlah_kurang)
{
return $baki_tertunggak - $bayar_bulanan - $jumlah_kurang;
}

public function kepingTunggakan($keping_tertunggak, $keping_bulanan)
{
return $keping_tertunggak -= $keping_bulanan;
}

public function peratusKutipan($jumlah_tertunggak, $berbayar_bulanan)
{
return $berbayar_bulanan /= $jumlah_tertunggak;
}

public function peratusTerkumpul($jumlah_tertunggak, $berbayar_terkumpul)
{
return $berbayar_terkumpul /= $jumlah_tertunggak;
}

public function penguranganTerkumpul($total_pengurangan, $pengurangan_bulanan)
{
return $total_pengurangan += $pengurangan_bulanan;
}

public function returnBacklogCompound(Request $request)
{
$looping_month = array();
$year = $request->year;
$jabatan = $request->jabatan;

//declaring required variables
$kutipan_terkumpul = 0;
$tunggakan_terkumpul = 0;
$pengurangan_terkumpul = 0;
$baki_tunggakan = 0;
$keping_tunggakan = 0;
$nama_bulan = array('JAN', 'FEB', 'MAC', 'APR', 'MEI', 'JUN', 'JUL', 'OGOS', 'SEP', 'OKT', 'NOV', 'DIS');

if(($year != 'null') && ($jabatan != 'null') && ($year != '') && ($jabatan != ''))
{
// search kompaun tertunggak a year before
$tertunggak = json_decode($this->jumlahKompaunTahunan($request->year, $request->jabatan));

if($tertunggak[0]->keping_kompaun != 0 || $tertunggak[0]->jumlah_kompaun != 0)
{
$baki_tunggakan = $tertunggak[0]->jumlah_kompaun;
$keping_tunggakan = $tertunggak[0]->keping_kompaun;

for( $bulan = 1; $bulan < 13; $bulan++)
{
//calling required functions
$bayar_bulanan = json_decode($this->kompaunBayarByBulan($year, $bulan,$jabatan));
$kutipan_terkumpul = $this->berbayarTerkumpul($kutipan_terkumpul, $bayar_bulanan[0]->jumlah_berbayar);
$baki_tunggakan = $this->bakiTunggakan($baki_tunggakan, $bayar_bulanan[0]->jumlah_berbayar, $bayar_bulanan[0]->jumlah_pengurangan);
$keping_tunggakan = $this->kepingTunggakan($keping_tunggakan, $bayar_bulanan[0]->keping_berbayar);
$peratus_kutipan = $this->peratusKutipan($tertunggak[0]->jumlah_kompaun, $bayar_bulanan[0]->jumlah_berbayar);
$peratus_terkumpul = $this->peratusTerkumpul($tertunggak[0]->jumlah_kompaun, $kutipan_terkumpul);
$pengurangan_terkumpul = $this->penguranganTerkumpul($pengurangan_terkumpul, $bayar_bulanan[0]->jumlah_pengurangan);

array_push($looping_month, array(
'bulan' => $nama_bulan[$bulan-1], //A
'space' => "", //B
'kutipan_bulanan' => $bayar_bulanan[0]->jumlah_berbayar, //C
'jumlah_kompaun_bayar' => $bayar_bulanan[0]->keping_berbayar, //D
'kutipan_terkumpul' => $kutipan_terkumpul, //E
'baki_tunggakan' => $baki_tunggakan, //F
'baki_belum_bayar' => $keping_tunggakan, //G
'jumlah_kurang' => $bayar_bulanan[0]->jumlah_pengurangan, //H
'_kutipan' => number_format((float)$peratus_kutipan, 3, '.', ''), //I
'_terkumpul' => number_format((float)$peratus_terkumpul, 3, '.', ''), //J
));
}

$kompaun_j = $tertunggak[0]->jumlah_kompaun;
$kompaun_k = $tertunggak[0]->keping_kompaun;
}
}

return \DataTables::of($looping_month)->make(true);
}
}

+ 256
- 0
app/Http/Controllers/Api/Export/CalculationReportEnforcer.php Datei anzeigen

@@ -0,0 +1,256 @@
<?php
namespace App\Http\Controllers\Api\Export;
use Illuminate\Http\Request;
use App\Http\Controllers\Api\BaseController;
use Carbon\Carbon;

use App\Model\Module\Compound;
use App\Model\Module\ReportEnforcer;
use App\Model\Staff;
use App\Model\StaffDetail;
use App\Model\Module\Department;
class CalculationReportEnforcer extends BaseController
{
private function jumlah_kompaun_bulanan($month, $year, $dikeluarkan){
$dateS = Carbon::createFromFormat('Y-m-d', $year.'-'.$month.'-01');
$start = $dateS->copy()->startOfMonth();
$end = $dateS->copy()->endOfMonth();

$jumlah = 0; $id_array = array();
$compound = Compound::whereBetween('created_at', array($start, $end))->where('dikeluarkan', $dikeluarkan)->get();
foreach ($compound as $key => $c) {
$jumlah = $jumlah + floatval($c->jumlah_asal_kompaun);
$id_array[] = $c->_id;
}

$result = array(
'keping' => count($compound),
'jumlah' => $jumlah,
'compound' => $id_array,
);
return json_encode($result);
}

public function masukkan_report_tahunan($year,$jenis){
$dateS = Carbon::createFromFormat('Y-m-d', $year.'-01-01');
$start = $dateS->copy()->startOfYear();
$end = $dateS->copy()->endOfYear();

$compound = Compound::whereBetween('created_at', array($start, $end))->groupBy('dikeluarkan')->get(['created_at','jbkod']);

if($jenis == 'keping'){
foreach ($compound as $key => $c) {
$report = ReportEnforcer::where('year', $year)->where('staff_detail_id', $c->dikeluarkan)->first();
if(empty($report)){
$enforcer = StaffDetail::where('_id', $c->dikeluarkan)->first();
$dataReport = [
'year' => $year,
'jbkod' => $c->jbkod,
'jan' => [
'keping' => '',
'jumlah' => '',
'compound' => '',
],
'feb' => [
'keping' => '',
'jumlah' => '',
'compound' => '',
],
'mac' => [
'keping' => '',
'jumlah' => '',
'compound' => '',
],
'apr' => [
'keping' => '',
'jumlah' => '',
'compound' => '',
],
'mei' => [
'keping' => '',
'jumlah' => '',
'compound' => '',
],
'jun' => [
'keping' => '',
'jumlah' => '',
'compound' => '',
],
'july' => [
'keping' => '',
'jumlah' => '',
'compound' => '',
],
'ogos' => [
'keping' => '',
'jumlah' => '',
'compound' => '',
],
'sept' => [
'keping' => '',
'jumlah' => '',
'compound' => '',
],
'okt' => [
'keping' => '',
'jumlah' => '',
'compound' => '',
],
'nov' => [
'keping' => '',
'jumlah' => '',
'compound' => '',
],
'dis' => [
'keping' => '',
'jumlah' => '',
'compound' => '',
],
'total' => [
'keping' => '',
'jumlah' => ''
],
];

$enforcer->reportenforcer()->create($dataReport);
}
}
}

dd($dataReport);

return true;
}

public function report_enforcer($year,$jbkod,$jenis){

$masukkan_report = $this->masukkan_report_tahunan($year,$jenis);
if($masukkan_report){

$dateS = Carbon::createFromFormat('Y-m-d', $year.'-01-01');
$start = $dateS->copy()->startOfYear();
$end = $dateS->copy()->endOfYear();

$compound = Compound::whereBetween('created_at', array($start, $end))->groupBy('dikeluarkan')->get(['created_at','jbkod']);



foreach ($compound as $key => $c) {
$report = ReportEnforcer::where('year', $year)->where('staff_detail_id', $c->dikeluarkan)->first();
if(!empty($report)){

$data_bulan_1 = json_decode($this->jumlah_kompaun_bulanan('01', $year, $c->dikeluarkan));
$data_bulan_2 = json_decode($this->jumlah_kompaun_bulanan('02', $year, $c->dikeluarkan));
$data_bulan_3 = json_decode($this->jumlah_kompaun_bulanan('03', $year, $c->dikeluarkan));
$data_bulan_4 = json_decode($this->jumlah_kompaun_bulanan('04', $year, $c->dikeluarkan));
$data_bulan_5 = json_decode($this->jumlah_kompaun_bulanan('05', $year, $c->dikeluarkan));
$data_bulan_6 = json_decode($this->jumlah_kompaun_bulanan('06', $year, $c->dikeluarkan));
$data_bulan_7 = json_decode($this->jumlah_kompaun_bulanan('07', $year, $c->dikeluarkan));
$data_bulan_8 = json_decode($this->jumlah_kompaun_bulanan('08', $year, $c->dikeluarkan));
$data_bulan_9 = json_decode($this->jumlah_kompaun_bulanan('09', $year, $c->dikeluarkan));
$data_bulan_10 = json_decode($this->jumlah_kompaun_bulanan('10', $year, $c->dikeluarkan));
$data_bulan_11 = json_decode($this->jumlah_kompaun_bulanan('11', $year, $c->dikeluarkan));
$data_bulan_12 = json_decode($this->jumlah_kompaun_bulanan('12', $year, $c->dikeluarkan));

$jumlah = 0; $keping = 0;

$jumlah = $data_bulan_1->jumlah + $data_bulan_2->jumlah + $data_bulan_3->jumlah + $data_bulan_4->jumlah + $data_bulan_5->jumlah + $data_bulan_6->jumlah + $data_bulan_7->jumlah + $data_bulan_8->jumlah + $data_bulan_9->jumlah + $data_bulan_10->jumlah + $data_bulan_11->jumlah + $data_bulan_12->jumlah;

$keping = $data_bulan_1->keping + $data_bulan_2->keping + $data_bulan_3->keping + $data_bulan_4->keping + $data_bulan_5->keping + $data_bulan_6->keping + $data_bulan_7->keping + $data_bulan_8->keping + $data_bulan_9->keping + $data_bulan_10->keping + $data_bulan_11->keping + $data_bulan_12->keping;

$report->jan = $data_bulan_1;
$report->feb = $data_bulan_2;
$report->mac = $data_bulan_3;
$report->apr = $data_bulan_4;
$report->mei = $data_bulan_5;
$report->jun = $data_bulan_6;
$report->july = $data_bulan_7;
$report->ogos = $data_bulan_8;
$report->sept = $data_bulan_9;
$report->okt = $data_bulan_10;
$report->nov = $data_bulan_11;
$report->dis = $data_bulan_12;
$report->total = [
'keping' => $keping,
'jumlah' => $jumlah
];
$report->save();
}
}

return true;
}
}

public function returnReportEnforcer(Request $request){
$nested_data = array();

$year = $request->year;
$jenis = $request->jenis;
$current_id = $request->current_id;
$jabatan = $request->jabatan;
$data = false;

if($year != 'null' && $jenis != 'null' && $jabatan != 'null'){

$data = $this->report_enforcer($year,$jabatan,$jenis);

// dd($data);

$data_report = ReportEnforcer::where('year', $year)->where('jbkod', $jabatan)->get();
if(!empty($data_report)){
if($jenis == 'jumlah'){
foreach ($data_report as $key => $d) {
$st = StaffDetail::find($d->staff_detail_id);
array_push($nested_data, array(
'index' => '',
'name' => $st->full_name,
'jan' => $d->jan['jumlah'],
'feb' => $d->feb['jumlah'],
'mac' => $d->mac['jumlah'],
'apr' => $d->apr['jumlah'],
'mei' => $d->mei['jumlah'],
'jun' => $d->jun['jumlah'],
'july' => $d->july['jumlah'],
'ogos' => $d->ogos['jumlah'],
'sept' => $d->sept['jumlah'],
'okt' => $d->okt['jumlah'],
'nov' => $d->nov['jumlah'],
'dis' => $d->dis['jumlah'],
'total' => $d->total['jumlah'],
));
}
}else if($jenis == 'keping'){
foreach ($data_report as $key => $d) {
$st = StaffDetail::find($d->staff_detail_id);
array_push($nested_data, array(
'index' => '',
'name' => $st->full_name,
'jan' => $d->jan['keping'],
'feb' => $d->feb['keping'],
'mac' => $d->mac['keping'],
'apr' => $d->apr['keping'],
'mei' => $d->mei['keping'],
'jun' => $d->jun['keping'],
'july' => $d->july['keping'],
'ogos' => $d->ogos['keping'],
'sept' => $d->sept['keping'],
'okt' => $d->okt['keping'],
'nov' => $d->nov['keping'],
'dis' => $d->dis['keping'],
'total' => $d->total['keping'],
));
}
}
}

}


return \DataTables::of($nested_data)->make(true);
}
}

+ 582
- 0
app/Http/Controllers/Api/Export/CalculationReportFaulty.php Datei anzeigen

@@ -0,0 +1,582 @@
<?php
namespace App\Http\Controllers\Api\Export;
use Illuminate\Http\Request;
use App\Http\Controllers\Api\BaseController;
use Carbon\Carbon;

use App\Model\Module\Compound;
use App\Model\Module\Faulty;
use App\Model\Module\ReportFaulty;
use App\Model\Staff;
use App\Model\StaffDetail;
use App\Model\Module\Department;
class CalculationReportFaulty extends BaseController
{
private function jumlah_kesalahan_bulanan($start_date, $end_date, $month, $jabatan, $faulty_id){

$dateS = Carbon::createFromFormat('Y-m-d', $start_date);
$start = $dateS->copy()->startOfDay();
$dateE = Carbon::createFromFormat('Y-m-d', $end_date);
$end = $dateE->copy()->endOfDay();

$jumlah_kompaun = 0; $amaun_kompaun = 0;
$jumlah_byr = 0; $amaun_byr = 0;
$jum_kompaun_belum_byr = 0; $amaun_tunggakan = 0;
$kompaun_batal = 0; $amaun_batal = 0;
$kompaun_kurang = 0; $amaun_kurang = 0;

$compound = Compound::whereBetween('created_at', array($start, $end))->where('jbkod', $jabatan)->where('seksyen_kesalahan', $faulty_id)->get();

foreach ($compound as $key => $c) {
if(date('m', strtotime($c->created_at)) == $month){

$jumlah_kompaun = $jumlah_kompaun + 1;
$amaun_kompaun = $amaun_kompaun + floatval($c->jumlah_asal_kompaun);
$amaun_tunggakan = $amaun_tunggakan + floatval($c->amount_tunggakan);

if($c->status == 'Berbayar'){
$jumlah_byr = $jumlah_byr + 1;
$amaun_byr = $amaun_byr + floatval($c->amount_payment);
}

if($c->status == 'Belum Bayar'){
$jum_kompaun_belum_byr = $jum_kompaun_belum_byr + 1;
}

if($c->status == 'Batal'){
$kompaun_batal = $kompaun_batal + 1;
$amaun_batal = $amaun_batal + floatval($c->jumlah_asal_kompaun);
}

if($c->jumlah_kemaskini_kompaun != ''){
$kompaun_kurang = $kompaun_kurang + 1;
$amaun_kurang = $amaun_kurang + floatval($c->jumlah_kemaskini_kompaun);
}
}
}
$result = array(
'jum_kompaun_keluar' => $jumlah_kompaun,
'amaun_kompaun' => $amaun_kompaun,
'jumlah_byr' => $jumlah_byr,
'amaun_byr' => $amaun_byr,
'jum_kompaun_belum_byr' => $jum_kompaun_belum_byr,
'amaun_tunggakan' => $amaun_tunggakan,
'kompaun_batal' => $kompaun_batal,
'amaun_batal' => $amaun_batal,
'kompaun_kurang' => $kompaun_kurang,
'amaun_kurang' => $amaun_kurang,
);
return json_encode($result);
}

public function masukkan_report($start_date, $end_date, $jabatan, $month){

$dateS = Carbon::createFromFormat('Y-m-d', $start_date);
$start = $dateS->copy()->startOfDay();
$dateE = Carbon::createFromFormat('Y-m-d', $end_date);
$end = $dateE->copy()->endOfDay();

$compound = Compound::where('jbkod', $jabatan)->whereBetween('created_at', array($start, $end))->groupBy('seksyen_kesalahan')->get(['created_at','jbkod']);


if($month == 'All'){
foreach ($compound as $key => $c) {
$f = Faulty::find($c->seksyen_kesalahan);
$report = ReportFaulty::where('start_date', $start_date)->where('end_date', $end_date)->where('month', date('m',strtotime($c->created_at)))->where('faulty_id', $f->_id)->where('jbkod', $jabatan)->first();
if(empty($report)){
$dataN = new ReportFaulty;
$dataN->start_date = $start_date;
$dataN->end_date = $end_date;
$dataN->month = date('m',strtotime($c->created_at));
$dataN->jbkod = $jabatan;
$dataN->jumlah_kompaun_keluar = '';
$dataN->amaun_kompaun_rm = '';
$dataN->jumlah_bayar = '';
$dataN->amaun_bayar_rm = '';
$dataN->jumlah_kompaun_belum_bayar = '';
$dataN->amaun_tunggakan_rm = '';
$dataN->kompaun_batal = '';
$dataN->amaun_batal_rm = '';
$dataN->kompaun_kurang = '';
$dataN->amaun_kurang_rm = '';
$dataN->faulty_id = $c->seksyen_kesalahan;
$dataN->sketr = $f->sketr;
$dataN->save();
}

$reportTahun = ReportFaulty::where('start_date', $start_date)->where('end_date', $end_date)->where('month', 'All')->where('faulty_id', $f->_id)->where('jbkod', $jabatan)->first();
if(empty($reportTahun)){
$dataNt = new ReportFaulty;
$dataNt->start_date = $start_date;
$dataNt->end_date = $end_date;
$dataNt->month = 'All';
$dataNt->jbkod = $jabatan;
$dataNt->jumlah_kompaun_keluar = '';
$dataNt->amaun_kompaun_rm = '';
$dataNt->jumlah_bayar = '';
$dataNt->amaun_bayar_rm = '';
$dataNt->jumlah_kompaun_belum_bayar = '';
$dataNt->amaun_tunggakan_rm = '';
$dataNt->kompaun_batal = '';
$dataNt->amaun_batal_rm = '';
$dataNt->kompaun_kurang = '';
$dataNt->amaun_kurang_rm = '';
$dataNt->faulty_id = $c->seksyen_kesalahan;
$dataNt->sketr = $f->sketr;
$dataNt->save();
}
}

return 'true';
}
}

public function report_faulty($start_date, $end_date, $jabatan, $month){

$masukkan_report = $this->masukkan_report($start_date, $end_date, $jabatan, $month);

if($masukkan_report){

$dateS = Carbon::createFromFormat('Y-m-d', $start_date);
$start = $dateS->copy()->startOfDay();
$dateE = Carbon::createFromFormat('Y-m-d', $end_date);
$end = $dateE->copy()->endOfDay();

$compound = Compound::where('jbkod', $jabatan)->whereBetween('created_at', array($start, $end))->groupBy('seksyen_kesalahan')->get(['created_at','jbkod']);



foreach ($compound as $key => $c) {
$f = Faulty::find($c->seksyen_kesalahan);

$months = date('m',strtotime($c->created_at));
$report = ReportFaulty::where('start_date', $start_date)->where('end_date', $end_date)->where('month',$months)->where('faulty_id', $f->_id)->where('jbkod', $jabatan)->first();

if(!empty($report)){

$data_bulan = json_decode($this->jumlah_kesalahan_bulanan($start_date, $end_date, $months, $jabatan, $c->seksyen_kesalahan));

$report->jumlah_kompaun_keluar = $data_bulan->jum_kompaun_keluar;
$report->amaun_kompaun_rm = $data_bulan->amaun_kompaun;
$report->jumlah_bayar = $data_bulan->jumlah_byr;
$report->amaun_bayar_rm = $data_bulan->amaun_byr;
$report->jumlah_kompaun_belum_bayar = $data_bulan->jum_kompaun_belum_byr;
$report->amaun_tunggakan_rm = $data_bulan->amaun_tunggakan;
$report->kompaun_batal = $data_bulan->kompaun_batal;
$report->amaun_batal_rm = $data_bulan->amaun_batal;
$report->kompaun_kurang = $data_bulan->kompaun_kurang;
$report->amaun_kurang_rm = $data_bulan->amaun_kurang;
$report->save();
}
}

return true;
}
}

public function report_faulty_all($start_date, $end_date, $jabatan, $month){

$dateS = Carbon::createFromFormat('Y-m-d', $start_date);
$start = $dateS->copy()->startOfDay();
$dateE = Carbon::createFromFormat('Y-m-d', $end_date);
$end = $dateE->copy()->endOfDay();

$compound = Compound::where('jbkod', $jabatan)->whereBetween('created_at', array($start, $end))->groupBy('seksyen_kesalahan')->get(['created_at','jbkod']);

foreach ($compound as $key => $c) {

$report = ReportFaulty::where('start_date', $start_date)->where('end_date', $end_date)->where('month', '!=', 'All')->where('faulty_id', $c->seksyen_kesalahan)->where('jbkod', $jabatan)->get();

if(count($report) > 0){

foreach ($report as $key => $r) {
$jum_kompaun_keluar = 0; $amaun_kompaun = 0; $jumlah_byr = 0; $amaun_byr = 0;
$jum_kompaun_belum_byr = 0; $amaun_tunggakan = 0; $kompaun_batal = 0; $amaun_batal = 0;
$kompaun_kurang = 0 ; $amaun_kurang = 0;

if ($r->amaun_kompaun_rm == ""){
$temp_amount_rm = 0;
}else {
$temp_amount_rm = $r->amaun_kompaun_rm;
}

if ($r->jumlah_kompaun_keluar == ""){
$temp_kompaun_keluar = 0;
}else {
$temp_kompaun_keluar = $r->jumlah_kompaun_keluar;
}

if ($r->jumlah_bayar == ""){
$temp_jumlah_bayar = 0;
}else {
$temp_jumlah_bayar = $r->jumlah_bayar;
}

if ($r->amaun_bayar_rm == ""){
$temp_amaun_bayar = 0;
}else {
$temp_amaun_bayar = $r->amaun_bayar_rm;
}

if ($r->jumlah_kompaun_belum_bayar == ""){
$temp_kompaun_belum_bayar = 0;
}else {
$temp_kompaun_belum_bayar = $r->jumlah_kompaun_belum_bayar;
}

if ($r->amaun_tunggakan_rm == ""){
$temp_tunggakan = 0;
}else {
$temp_tunggakan = $r->amaun_tunggakan_rm;
}

if ($r->kompaun_batal == ""){
$temp_kompaun_batal = 0;
}else {
$temp_kompaun_batal = $r->kompaun_batal;
}

if ($r->amaun_batal_rm == ""){
$temp_amaun_batal = 0;
}else {
$temp_amaun_batal = $r->amaun_batal_rm;
}


if ($r->kompaun_kurang == ""){
$temp_kompaun_kurang = 0;
}else {
$temp_kompaun_kurang = $r->kompaun_kurang;
}

if ($r->amaun_kurang_rm == ""){
$temp_amaun_kurang = 0;
}else {
$temp_amaun_kurang = $r->amaun_kurang_rm;
}

$jum_kompaun_keluar = $jum_kompaun_keluar + $temp_kompaun_keluar;
$amaun_kompaun = $amaun_kompaun + $temp_amount_rm;
$jumlah_byr = $jumlah_byr + $temp_jumlah_bayar;
$amaun_byr = $amaun_byr + $temp_amaun_bayar;
$jum_kompaun_belum_byr = $jum_kompaun_belum_byr + $temp_kompaun_belum_bayar;
$amaun_tunggakan = $amaun_tunggakan + $temp_tunggakan;
$kompaun_batal = $kompaun_batal + $temp_kompaun_batal;
$amaun_batal = $amaun_batal + $temp_amaun_batal;
$kompaun_kurang = $kompaun_kurang + $temp_kompaun_kurang;
$amaun_kurang = $amaun_kurang + $temp_amaun_kurang;
}
}

$reportTahun = ReportFaulty::where('start_date', $start_date)->where('end_date', $end_date)->where('month','All')->where('faulty_id', $c->seksyen_kesalahan)->where('jbkod', $jabatan)->first();

if(!empty($reportTahun)){

$months = date('m',strtotime($c->created_at));
$data_bulan = json_decode($this->jumlah_kesalahan_bulanan($start_date, $end_date, $months, $jabatan, $c->seksyen_kesalahan));

$reportTahun->jumlah_kompaun_keluar = $jum_kompaun_keluar;
$reportTahun->amaun_kompaun_rm = $amaun_kompaun;
$reportTahun->jumlah_bayar = $jumlah_byr;
$reportTahun->amaun_bayar_rm = $amaun_byr;
$reportTahun->jumlah_kompaun_belum_bayar = $jum_kompaun_belum_byr;
$reportTahun->amaun_tunggakan_rm = $amaun_tunggakan;
$reportTahun->kompaun_batal = $kompaun_batal;
$reportTahun->amaun_batal_rm = $amaun_batal;
$reportTahun->kompaun_kurang = $kompaun_kurang;
$reportTahun->amaun_kurang_rm = $amaun_kurang;
$reportTahun->save();

}
}

return true;
}

private function runCalculation($start_date, $end_date, $jabatan, $month){

$dataFaulty = $this->report_faulty($start_date, $end_date, $jabatan, $month);
if($dataFaulty){
$dataFYear = $this->report_faulty_all($start_date, $end_date, $jabatan, $month);
}

return true;
}

public function returnReportFaulty(Request $request){

$nested_data = array();

$start_date = $request->start_date;
$end_date = $request->end_date;
$month = $request->month;
$jabatan = $request->jabatan;

if($start_date != '' && $end_date != '' && $jabatan != 'null'){
$dataFYear = $this->runCalculation($start_date, $end_date, $jabatan, 'All');
if($dataFYear){

if($month == 'All'){

$data_sketr = ReportFaulty::where('start_date', $start_date)->where('end_date', $end_date)->where('month', 'All')->where('jbkod', $jabatan)->groupBy('sketr')->get();

if(count($data_sketr) > 0){
foreach ($data_sketr as $key => $d) {

$jumlah_kompaun_keluar = 0; $amaun_kompaun_rm = 0;
$jumlah_bayar = 0; $amaun_bayar_rm = 0;
$jumlah_kompaun_belum_bayar = 0; $amaun_tunggakan_rm = 0;
$kompaun_batal = 0; $amaun_batal_rm = 0;
$kompaun_kurang = 0; $amaun_kurang_rm = 0;

$name = '';
$ft = Faulty::where('sketr', $d->sketr)->first();
if(strpos($ft->nama, '(RM500)') !== false){
$name = str_replace("(RM500)","",$ft->nama);
}else if(strpos($ft->nama, '(RM100)') !== false){
$name = str_replace("(RM100)","",$ft->nama);
}else if(strpos($ft->nama, '(RM50)') !== false){
$name = str_replace("(RM50)","",$ft->nama);
}else if(strpos($ft->nama, '(RM250)') !== false){
$name = str_replace("(RM250)","",$ft->nama);
}else {
$name = $ft->nama;
}

$data_report = ReportFaulty::where('start_date', $start_date)->where('end_date', $end_date)->where('month', 'All')->where('jbkod', $jabatan)->where('sketr', $d->sketr)->get();

if(count($data_report) > 0){
foreach ($data_report as $key => $r) {

if ($r->amaun_kompaun_rm == ""){
$temp_amount_rm = 0;
}else {
$temp_amount_rm = $r->amaun_kompaun_rm;
}

if ($r->jumlah_kompaun_keluar == ""){
$temp_kompaun_keluar = 0;
}else {
$temp_kompaun_keluar = $r->jumlah_kompaun_keluar;
}

if ($r->jumlah_bayar == ""){
$temp_jumlah_bayar = 0;
}else {
$temp_jumlah_bayar = $r->jumlah_bayar;
}

if ($r->amaun_bayar_rm == ""){
$temp_amaun_bayar = 0;
}else {
$temp_amaun_bayar = $r->amaun_bayar_rm;
}

if ($r->jumlah_kompaun_belum_bayar == ""){
$temp_kompaun_belum_bayar = 0;
}else {
$temp_kompaun_belum_bayar = $r->jumlah_kompaun_belum_bayar;
}

if ($r->amaun_tunggakan_rm == ""){
$temp_tunggakan = 0;
}else {
$temp_tunggakan = $r->amaun_tunggakan_rm;
}

if ($r->kompaun_batal == ""){
$temp_kompaun_batal = 0;
}else {
$temp_kompaun_batal = $r->kompaun_batal;
}

if ($r->amaun_batal_rm == ""){
$temp_amaun_batal = 0;
}else {
$temp_amaun_batal = $r->amaun_batal_rm;
}


if ($r->kompaun_kurang == ""){
$temp_kompaun_kurang = 0;
}else {
$temp_kompaun_kurang = $r->kompaun_kurang;
}

if ($r->amaun_kurang_rm == ""){
$temp_amaun_kurang = 0;
}else {
$temp_amaun_kurang = $r->amaun_kurang_rm;
}

$jumlah_kompaun_keluar = $jumlah_kompaun_keluar + $temp_kompaun_keluar;
$amaun_kompaun_rm = $amaun_kompaun_rm + $temp_amount_rm;
$jumlah_bayar = $jumlah_bayar + $temp_jumlah_bayar;
$amaun_bayar_rm = $amaun_bayar_rm + $temp_amaun_bayar;
$jumlah_kompaun_belum_bayar = $jumlah_kompaun_belum_bayar + $temp_kompaun_belum_bayar;
$amaun_tunggakan_rm = $amaun_tunggakan_rm + $temp_tunggakan;
$kompaun_batal = $kompaun_batal + $temp_kompaun_batal;
$amaun_batal_rm = $amaun_batal_rm + $temp_amaun_batal;
$kompaun_kurang = $kompaun_kurang + $temp_kompaun_kurang;
$amaun_kurang_rm = $amaun_kurang_rm + $temp_amaun_kurang;
}
}

array_push($nested_data, array(
'index' => '',
'sketr' => $d->sketr,
'name' => $name.' - '.$ft->sketr,
'jum_kompaun_keluar' => $jumlah_kompaun_keluar,
'amaun_kompaun' => $amaun_kompaun_rm,
'jumlah_byr' => $jumlah_bayar,
'amaun_byr' => $amaun_bayar_rm,
'jum_kompaun_belum_byr' => $jumlah_kompaun_belum_bayar,
'amaun_tunggakan' => $amaun_tunggakan_rm,
'kompaun_batal' => $kompaun_batal,
'amaun_batal' => $amaun_batal_rm,
'kompaun_kurang' => $kompaun_kurang,
'amaun_kurang' => $amaun_kurang_rm,
));
}
}

}else {

// Calculate by sketr
$data_sketr = ReportFaulty::where('start_date', $start_date)->where('end_date', $end_date)->where('month', $month)->where('jbkod', $jabatan)->groupBy('sketr')->get();

if(count($data_sketr) > 0){
foreach ($data_sketr as $key => $d) {

$jumlah_kompaun_keluar = 0; $amaun_kompaun_rm = 0;
$jumlah_bayar = 0; $amaun_bayar_rm = 0;
$jumlah_kompaun_belum_bayar = 0; $amaun_tunggakan_rm = 0;
$kompaun_batal = 0; $amaun_batal_rm = 0;
$kompaun_kurang = 0; $amaun_kurang_rm = 0;

$name = '';
$ft = Faulty::where('sketr', $d->sketr)->first();
if(strpos($ft->nama, '(RM500)') !== false){
$name = str_replace("(RM500)","",$ft->nama);
}else if(strpos($ft->nama, '(RM100)') !== false){
$name = str_replace("(RM100)","",$ft->nama);
}else if(strpos($ft->nama, '(RM50)') !== false){
$name = str_replace("(RM50)","",$ft->nama);
}else if(strpos($ft->nama, '(RM250)') !== false){
$name = str_replace("(RM250)","",$ft->nama);
}else {
$name = $ft->nama;
}

$data_report = ReportFaulty::where('start_date', $start_date)->where('end_date', $end_date)->where('month', $month)->where('jbkod', $jabatan)->where('sketr', $d->sketr)->get();

if(count($data_report) > 0){
foreach ($data_report as $key => $r) {

if ($r->amaun_kompaun_rm == ""){
$temp_amount_rm = 0;
}else {
$temp_amount_rm = $r->amaun_kompaun_rm;
}

if ($r->jumlah_kompaun_keluar == ""){
$temp_kompaun_keluar = 0;
}else {
$temp_kompaun_keluar = $r->jumlah_kompaun_keluar;
}

if ($r->jumlah_bayar == ""){
$temp_jumlah_bayar = 0;
}else {
$temp_jumlah_bayar = $r->jumlah_bayar;
}

if ($r->amaun_bayar_rm == ""){
$temp_amaun_bayar = 0;
}else {
$temp_amaun_bayar = $r->amaun_bayar_rm;
}

if ($r->jumlah_kompaun_belum_bayar == ""){
$temp_kompaun_belum_bayar = 0;
}else {
$temp_kompaun_belum_bayar = $r->jumlah_kompaun_belum_bayar;
}

if ($r->amaun_tunggakan_rm == ""){
$temp_tunggakan = 0;
}else {
$temp_tunggakan = $r->amaun_tunggakan_rm;
}

if ($r->kompaun_batal == ""){
$temp_kompaun_batal = 0;
}else {
$temp_kompaun_batal = $r->kompaun_batal;
}

if ($r->amaun_batal_rm == ""){
$temp_amaun_batal = 0;
}else {
$temp_amaun_batal = $r->amaun_batal_rm;
}


if ($r->kompaun_kurang == ""){
$temp_kompaun_kurang = 0;
}else {
$temp_kompaun_kurang = $r->kompaun_kurang;
}

if ($r->amaun_kurang_rm == ""){
$temp_amaun_kurang = 0;
}else {
$temp_amaun_kurang = $r->amaun_kurang_rm;
}

$jumlah_kompaun_keluar = $jumlah_kompaun_keluar + $temp_kompaun_keluar;
$amaun_kompaun_rm = $amaun_kompaun_rm + $temp_amount_rm;
$jumlah_bayar = $jumlah_bayar + $temp_jumlah_bayar;
$amaun_bayar_rm = $amaun_bayar_rm + $temp_amaun_bayar;
$jumlah_kompaun_belum_bayar = $jumlah_kompaun_belum_bayar + $temp_kompaun_belum_bayar;
$amaun_tunggakan_rm = $amaun_tunggakan_rm + $temp_tunggakan;
$kompaun_batal = $kompaun_batal + $temp_kompaun_batal;
$amaun_batal_rm = $amaun_batal_rm + $temp_amaun_batal;
$kompaun_kurang = $kompaun_kurang + $temp_kompaun_kurang;
$amaun_kurang_rm = $amaun_kurang_rm + $temp_amaun_kurang;
}
}

array_push($nested_data, array(
'index' => '',
'sketr' => $d->sketr,
'name' => $name.' - '.$ft->sketr,
'jum_kompaun_keluar' => $jumlah_kompaun_keluar,
'amaun_kompaun' => $amaun_kompaun_rm,
'jumlah_byr' => $jumlah_bayar,
'amaun_byr' => $amaun_bayar_rm,
'jum_kompaun_belum_byr' => $jumlah_kompaun_belum_bayar,
'amaun_tunggakan' => $amaun_tunggakan_rm,
'kompaun_batal' => $kompaun_batal,
'amaun_batal' => $amaun_batal_rm,
'kompaun_kurang' => $kompaun_kurang,
'amaun_kurang' => $amaun_kurang_rm,
));
}
}
}
}

}

return \DataTables::of($nested_data)->make(true);
}
}

+ 132
- 0
app/Http/Controllers/Api/RestfulapiController.php Datei anzeigen

@@ -242,4 +242,136 @@ class RestfulapiController extends BaseController
}
}
public function compoundToEPBT()
{
$compound = Compound::with('Department','DeedLaw','Faulty','StaffDetail')->where('jenis', 'Pelbagai_JPB')->get();
dd($compound);
if(!empty($compound))
{
$data = [];
foreach ($compound as $key => $c)
{
if($c->jenis == 'Pelbagai_KT')
{
$data = [
'no_kom' => $c->kpd,
'jenis' => $c->jenis,
'nama' => $c->nama,
'no_ic' => $c->identity,
'no_tel' => $c->no_telefon,
'nama_syarikat' => $c->nama_syarikat,
'no_daftar_syarikat' => $c->no_daftar_syarikat,
'no_akaun_lesen' => $c->no_akaun_lesen,
'alamat' => $c->alamat,
'jabatan' => $c->Department->jnama,
'seksyen' => '['.$c->DeedLaw->akkod.'] ' . $c->DeedLaw->nama,
'kesalahan'=> '['.$c->Faulty->sketr.'] ' . $c->Faulty->nama,
'catatan' => $c->catatan,
'latlong' => $c->latlong,
'status' =>$c->status,
'amaun_bayar' => $c->amount_payment,
'receipt' => $c->receipt,
];
}
if($c->jenis == 'Pelbagai_JPB')
{
$data = [
'no_kom' => $c->kpd,
'jenis' => $c->jenis,
'nama' => $c->nama,
'no_ic' => $c->identity,
'no_tel' => $c->no_telefon,
'nama_syarikat' => $c->nama_syarikat,
'no_daftar_syarikat' => $c->no_daftar_syarikat,
'no_akaun_lesen' => $c->no_akaun_lesen,
'alamat' => $c->alamat,
'jabatan' => $c->Department->jnama,
'seksyen' => '['.$c->DeedLaw->akkod.'] ' . $c->DeedLaw->nama,
'kesalahan'=> '['.$c->Faulty->sketr.'] ' . $c->Faulty->nama,
'catatan' => $c->catatan,
'latlong' => $c->latlong,
'status' =>$c->status,
'amaun_bayar' => $c->amount_payment,
'receipt' => $c->receipt,
];
}
if($c->jenis == 'Pelbagai_PA')
{
$data = [
'no_kom' => $c->kpd,
'jenis' => $c->jenis,
'nama' => $c->nama,
'no_ic' => $c->identity,
'no_tel' => $c->no_telefon,
'nama_syarikat' => $c->nama_syarikat,
'no_daftar_syarikat' => $c->no_daftar_syarikat,
'no_akaun_lesen' => $c->no_akaun_lesen,
'alamat' => $c->alamat,
'jabatan' => $c->Department->jnama,
'seksyen' => '['.$c->DeedLaw->akkod.'] ' . $c->DeedLaw->nama,
'kesalahan'=> '['.$c->Faulty->sketr.'] ' . $c->Faulty->nama,
'bil_haiwan' => $c->bil_haiwan,
'catatan' => $c->catatan,
'latlong' => $c->latlong,
'status' =>$c->status,
'amaun_bayar' => $c->amount_payment,
'receipt' => $c->receipt,
];
}
if($c->jenis == 'Pelbagai_LESEN')
{
$data = [
'no_kom' => $c->kpd,
'jenis' => $c->jenis,
'nama' => $c->nama,
'no_ic' => $c->identity,
'no_tel' => $c->no_telefon,
'nama_syarikat' => $c->nama_syarikat,
'no_daftar_syarikat' => $c->no_daftar_syarikat,
'no_akaun_lesen' => $c->no_akaun_lesen,
'alamat' => $c->alamat,
'jabatan' => $c->Department->jnama,
'seksyen' => '['.$c->DeedLaw->akkod.'] ' . $c->DeedLaw->nama,
'kesalahan'=> '['.$c->Faulty->sketr.'] ' . $c->Faulty->nama,
'catatan' => $c->catatan,
'latlong' => $c->latlong,
'status' =>$c->status,
'amaun_bayar' => $c->amount_payment,
'receipt' => $c->receipt,
];
}
if($c->jenis == 'Parkir')
{
$data = [
'no_kom' => $c->kpd,
'jenis' => $c->jenis,
'nama' => $c->nama,
'no_ic' => $c->identity,
'no_tel' => $c->no_telefon,
'nama_syarikat' => $c->nama_syarikat,
'no_daftar_syarikat' => $c->no_daftar_syarikat,
'no_akaun_lesen' => $c->no_akaun_lesen,
'alamat' => $c->alamat,
'jabatan' => $c->Department->jnama,
'seksyen' => '['.$c->DeedLaw->akkod.'] ' . $c->DeedLaw->nama,
'kesalahan'=> '['.$c->Faulty->sketr.'] ' . $c->Faulty->nama,
'catatan' => $c->catatan,
'latlong' => $c->latlong,
'status' =>$c->status,
'amaun_bayar' => $c->amount_payment,
'receipt' => $c->receipt,
];
}
}
return $this->sendResponse($data, 'Successfully update compound status');
}
}
}

+ 140
- 0
app/Http/Controllers/ExportCompound.php Datei anzeigen

@@ -0,0 +1,140 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Exports\CompoundExport;
use Maatwebsite\Excel\Facades\Excel;
class ExportCompound extends Controller
{
/**
* @return \Illuminate\Support\Collection
*/
public function importExportView()
{
return view('import');
}
/**
* @return \Illuminate\Support\Collection
*/
public function export($file, $jenis)
{
$location = 'public/uploads/cache/'.$file.'.json';
$data = json_decode(file_get_contents(base_path($location), true), true);

$final_data = array();

if($jenis == 'Pelbagai'){
foreach ($data as $key => $d) {
$kemaskini_oleh = '';

if($d['status'] == 'Berbayar'){
if(!empty($d['updated_by'])){
$kemaskini_oleh = $d['updated_by']['no_badan'] .', '. $d['updated_by']['full_name'];
}else {
$kemaskini_oleh = 'PahangGo App';
}
}else {
if(!empty($d['updated_by'])){
$kemaskini_oleh = $d['updated_by']['no_badan'] .', '. $d['updated_by']['full_name'];
}
}

$tarikh_kemaskini = '';
if(!empty($row['tarikh_bayar']) && $row['tarikh_bayar'] != ''){
$tarikh_bayar = $d['tarikh_bayar'];
}else{
$tarikh_bayar = $d['updated_at'];
}
array_push($final_data, array(
'#' => $key+1,
'Kpd' => $d['kpd'],
'Jenis' => $d['jenis'],
'Tarikh_Masa' => $d['tarikh_masa'],
'Kesalahan' => 'Seksyen '.$d['faulty_skter'].', '.$d['faulty_name'],
'Nric' => $d['nric'],
'Nama' => $d['nama'],
'No_Daftar' => $d['no_daftar_syarikat'],
'Akaun_Lesen' => $d['lesen'],
'No_Plate' => $d['no_plate'],
'Penguatkuasa' => $d['enforcer'],
'Status' => $d['status'],
'Catatan_Dari_Admin' => $d['catatan_dari_admin'],
'Amaun_Bayaran' => $d['amount_payment'],
'Kemaskini_oleh' => $kemaskini_oleh,
'Tarikh_kemaskini' => $tarikh_kemaskini,

));
}
}else if($jenis == 'Parkir'){
foreach ($data as $key => $d) {
$kemaskini_oleh = '';

if($d['status'] == 'Berbayar'){
if(!empty($d['updated_by'])){
$kemaskini_oleh = $d['updated_by']['no_badan'] .', '. $d['updated_by']['full_name'];
}else {
$kemaskini_oleh = $d['updates_by'];
}
}else {
if(!empty($d['updated_by'])){
$kemaskini_oleh = $d['updated_by']['no_badan'] .', '. $d['updated_by']['full_name'];
}
}

$tarikh_kemaskini = '';
if(!empty($row['tarikh_bayar']) && $row['tarikh_bayar'] != ''){
$tarikh_bayar = $d['tarikh_bayar'];
}else{
$tarikh_bayar = $d['updated_at'];
}

array_push($final_data, array(
'#' => $key+1,
'Kpd' => $d['kpd'],
'Jenis' => $d['jenis'],
'Tarikh_Masa' => $d['tarikh_masa'],
'Kesalahan' => 'Seksyen '.$d['faulty_skter'].', '.$d['faulty_name'],
'No_Plate' => $d['no_plate'],
'Penguatkuasa' => $d['enforcer'],
'Status' => $d['status'],
'Catatan_Dari_Admin' => $d['catatan_dari_admin'],
'Amaun_Bayaran' => $d['amount_payment'],
'Kemaskini_oleh' => $kemaskini_oleh,
'Tarikh_kemaskini' => $tarikh_kemaskini,
));
}
}

$filename = 'Report_Saman_'.$jenis;
return Excel::download(new CompoundExport($final_data,$jenis), $filename.'.xlsx');
}
/**
* @return \Illuminate\Support\Collection
*/
public function import()
{
Excel::import(new UsersImport,request()->file('file'));
return back();
}

public function getData(Request $request)
{
$data = $request->data;
$filename = time();
$location = 'public/uploads/cache/'.$filename.'.json';
file_put_contents(base_path($location), stripslashes($data));

return $filename;
}


public function export_compound_enforcer(){
}
}

+ 95
- 5
app/Http/Controllers/Main/CompoundController.php Datei anzeigen

@@ -495,8 +495,8 @@ class CompoundController extends Controller
"nama_taman" => $request->namaTaman,
"nama_jalan" => $request->namaJalan,
"no_parking" => $request->noParking,
"maklumat_tambahan" => $request->catatan,
"catatan" => $request->butiran_kesalahan,
"catatan" => $request->catatan,
"lokasi_kejadian" => '-',
'latlong' => $request->Latlong,
'jbkod' => $request->jabatan,
@@ -512,7 +512,7 @@ class CompoundController extends Controller
"penguatkuasa" => '',
"created_at" => new Carbon($request->tarikh_dikeluarkan),
];
}else if($request->jenisKompaun == 'Pelbagai'){
}else if($request->jenisKompaun == 'Pelbagai_KT'){
$compoundData = [
'jenis' => 'Pelbagai',
'kpd' => $kpd,
@@ -525,8 +525,98 @@ class CompoundController extends Controller
'no_akaun_lesen' =>$request->lesen,
"no_plate" => strtolower($request->no_plate),
"no_cukai_jalan" => $request->noCukaijalan,
"maklumat_tambahan" => $request->catatan,
"catatan" => $request->butiran_kesalahan,
// "maklumat_tambahan" => $request->catatan,
"catatan" => $request->catatan,
"lokasi_kejadian" => $request->lokasi_kejadian,
'latlong' => $request->Latlong,
'jbkod' => $request->jabatan,
'akta' => $faulty->deed_law_id,
'seksyen_kesalahan' => $faulty->_id,
'jumlah_asal_kompaun' => $faulty->amount,
'jumlah_kemaskini_kompaun' => '',
'dikeluarkan' => $request->staff,
"status" => 'Belum Bayar',
"amount_payment" => '',
"receipt" => '',
"modul" => '03',
"penguatkuasa" => '',
"created_at" => new Carbon($request->tarikh_dikeluarkan),
];
}else if($request->jenisKompaun == 'Pelbagai_JPB'){
$compoundData = [
'jenis' => 'Pelbagai',
'kpd' => $kpd,
'nama' => $request->namaP,
'identity' => $request->noIc,
'nama_syarikat' => $request->namaS,
'no_daftar_syarikat' => strtolower($request->daftarNo),
'alamat' => $request->alamat,
'no_telefon' => $request->tel,
'no_akaun_lesen' =>$request->lesen,
"no_plate" => strtolower($request->no_plate),
"no_cukai_jalan" => $request->noCukaijalan,
// "maklumat_tambahan" => $request->catatan,
"catatan" => $request->catatan,
"lokasi_kejadian" => $request->lokasi_kejadian,
'latlong' => $request->Latlong,
'jbkod' => $request->jabatan,
'akta' => $faulty->deed_law_id,
'seksyen_kesalahan' => $faulty->_id,
'jumlah_asal_kompaun' => $faulty->amount,
'jumlah_kemaskini_kompaun' => '',
'dikeluarkan' => $request->staff,
"status" => 'Belum Bayar',
"amount_payment" => '',
"receipt" => '',
"modul" => '03',
"penguatkuasa" => '',
"created_at" => new Carbon($request->tarikh_dikeluarkan),
];
}else if($request->jenisKompaun == 'Pelbagai_PA'){
$compoundData = [
'jenis' => 'Pelbagai',
'kpd' => $kpd,
'nama' => $request->namaP,
'identity' => $request->noIc,
'nama_syarikat' => $request->namaS,
'no_daftar_syarikat' => strtolower($request->daftarNo),
'alamat' => $request->alamat,
'no_telefon' => $request->tel,
'no_akaun_lesen' =>$request->lesen,
"no_plate" => strtolower($request->no_plate),
"no_cukai_jalan" => $request->noCukaijalan,
// "maklumat_tambahan" => $request->catatan,
"catatan" => $request->catatan,
"lokasi_kejadian" => $request->lokasi_kejadian,
'latlong' => $request->Latlong,
'jbkod' => $request->jabatan,
'akta' => $faulty->deed_law_id,
'seksyen_kesalahan' => $faulty->_id,
'jumlah_asal_kompaun' => $faulty->amount,
'jumlah_kemaskini_kompaun' => '',
'dikeluarkan' => $request->staff,
"status" => 'Belum Bayar',
"amount_payment" => '',
"receipt" => '',
"modul" => '03',
"penguatkuasa" => '',
"created_at" => new Carbon($request->tarikh_dikeluarkan),
];
}else if($request->jenisKompaun == 'Pelbagai_LESEN'){
$compoundData = [
'jenis' => 'Pelbagai',
'kpd' => $kpd,
'nama' => $request->namaP,
'identity' => $request->noIc,
'nama_syarikat' => $request->namaS,
'no_daftar_syarikat' => strtolower($request->daftarNo),
'alamat' => $request->alamat,
'no_telefon' => $request->tel,
'no_akaun_lesen' =>$request->lesen,
"no_plate" => strtolower($request->no_plate),
"no_cukai_jalan" => $request->noCukaijalan,
// "maklumat_tambahan" => $request->catatan,
"catatan" => $request->catatan,
"lokasi_kejadian" => $request->lokasi_kejadian,
'latlong' => $request->Latlong,
'jbkod' => $request->jabatan,

+ 708
- 0
app/Http/Controllers/Main/ExportReport.php Datei anzeigen

@@ -0,0 +1,708 @@
<?php
namespace App\Http\Controllers\Main;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
use App\Exports\EnforcerStatisticExport;
use App\Exports\FaultyStatisticExport;
use App\Exports\CompoundCurrentExport;
use App\Exports\CompoundBacklogExport;
use Maatwebsite\Excel\Facades\Excel;
use Carbon\Carbon;

use App\Model\Module\Compound;
use App\Model\Module\Faulty;
use App\Model\Staff;
use App\Model\StaffDetail;
use App\Model\Module\ReportEnforcer;
use App\Model\Module\ReportFaulty;
class ExportReport extends Controller
{
/**
* @return \Illuminate\Support\Collection
*/
public function export_compound_enforcer($year,$jenis,$jbkod){

$keping = array(); $jumlah = array();
$data_report = ReportEnforcer::where('year', $year)->where('jbkod', $jbkod)->get();

if(count($data_report) > 0){
foreach ($data_report as $key => $d) {
$st = StaffDetail::find($d->staff_detail_id);

array_push($jumlah, array(
'index' => $key+1,
'name' => $st->full_name,
'jan' => $d->jan['jumlah'],
'feb' => $d->feb['jumlah'],
'mac' => $d->mac['jumlah'],
'apr' => $d->apr['jumlah'],
'mei' => $d->mei['jumlah'],
'jun' => $d->jun['jumlah'],
'july' => $d->july['jumlah'],
'ogos' => $d->ogos['jumlah'],
'sept' => $d->sept['jumlah'],
'okt' => $d->okt['jumlah'],
'nov' => $d->nov['jumlah'],
'dis' => $d->dis['jumlah'],
'total' => $d->total['jumlah'],
));

array_push($keping, array(
'index' => $key+1,
'name' => $st->full_name,
'jan' => $d->jan['keping'],
'feb' => $d->feb['keping'],
'mac' => $d->mac['keping'],
'apr' => $d->apr['keping'],
'mei' => $d->mei['keping'],
'jun' => $d->jun['keping'],
'july' => $d->july['keping'],
'ogos' => $d->ogos['keping'],
'sept' => $d->sept['keping'],
'okt' => $d->okt['keping'],
'nov' => $d->nov['keping'],
'dis' => $d->dis['keping'],
'total' => $d->total['keping'],
));
}
}

$filename = 'Statistik_Pengeluaran_kompaun_bulanan';
return Excel::download(new EnforcerStatisticExport($keping,$jumlah,$year), $filename.'.xlsx');
}

public function export_compound_faulty($start_date,$end_date,$jabatan){

$jan = array(); $feb = array(); $mac = array(); $apr = array(); $mei = array(); $jun = array();
$july = array(); $ogos = array(); $sept = array(); $okt = array(); $nov = array(); $dis = array();
$all = array();

// All Faulty
$data_sketr = ReportFaulty::where('start_date', $start_date)->where('end_date', $end_date)->where('month', 'All')->where('jbkod', $jabatan)->groupBy('sketr')->get();

if(count($data_sketr) > 0){
$i = 0;
foreach ($data_sketr as $key => $d) {

$jumlah_kompaun_keluar = 0; $amaun_kompaun_rm = 0;
$jumlah_bayar = 0; $amaun_bayar_rm = 0;
$jumlah_kompaun_belum_bayar = 0; $amaun_tunggakan_rm = 0;
$kompaun_batal = 0; $amaun_batal_rm = 0;
$kompaun_kurang = 0; $amaun_kurang_rm = 0;

$name = '';
$ft = Faulty::where('sketr', $d->sketr)->first();
if(strpos($ft->nama, '(RM500)') !== false){
$name = str_replace("(RM500)","",$ft->nama);
}else if(strpos($ft->nama, '(RM100)') !== false){
$name = str_replace("(RM100)","",$ft->nama);
}else if(strpos($ft->nama, '(RM50)') !== false){
$name = str_replace("(RM50)","",$ft->nama);
}else if(strpos($ft->nama, '(RM250)') !== false){
$name = str_replace("(RM250)","",$ft->nama);
}else {
$name = $ft->nama;
}

$data_report = ReportFaulty::where('start_date', $start_date)->where('end_date', $end_date)->where('month', 'All')->where('jbkod', $jabatan)->where('sketr', $d->sketr)->get();

if(count($data_report) > 0){
foreach ($data_report as $key => $r) {
if ($r->amaun_kompaun_rm == ""){
$temp_amount_rm = 0;
}else {
$temp_amount_rm = $r->amaun_kompaun_rm;
}

if ($r->jumlah_kompaun_keluar == ""){
$temp_kompaun_keluar = 0;
}else {
$temp_kompaun_keluar = $r->jumlah_kompaun_keluar;
}

if ($r->jumlah_bayar == ""){
$temp_jumlah_bayar = 0;
}else {
$temp_jumlah_bayar = $r->jumlah_bayar;
}

if ($r->amaun_bayar_rm == ""){
$temp_amaun_bayar = 0;
}else {
$temp_amaun_bayar = $r->amaun_bayar_rm;
}

if ($r->jumlah_kompaun_belum_bayar == ""){
$temp_kompaun_belum_bayar = 0;
}else {
$temp_kompaun_belum_bayar = $r->jumlah_kompaun_belum_bayar;
}

if ($r->amaun_tunggakan_rm == ""){
$temp_tunggakan = 0;
}else {
$temp_tunggakan = $r->amaun_tunggakan_rm;
}

if ($r->kompaun_batal == ""){
$temp_kompaun_batal = 0;
}else {
$temp_kompaun_batal = $r->kompaun_batal;
}

if ($r->amaun_batal_rm == ""){
$temp_amaun_batal = 0;
}else {
$temp_amaun_batal = $r->amaun_batal_rm;
}


if ($r->kompaun_kurang == ""){
$temp_kompaun_kurang = 0;
}else {
$temp_kompaun_kurang = $r->kompaun_kurang;
}

if ($r->amaun_kurang_rm == ""){
$temp_amaun_kurang = 0;
}else {
$temp_amaun_kurang = $r->amaun_kurang_rm;
}

$jumlah_kompaun_keluar = $jumlah_kompaun_keluar + $temp_kompaun_keluar;
$amaun_kompaun_rm = $amaun_kompaun_rm + $temp_amount_rm;
$jumlah_bayar = $jumlah_bayar + $temp_jumlah_bayar;
$amaun_bayar_rm = $amaun_bayar_rm + $temp_amaun_bayar;
$jumlah_kompaun_belum_bayar = $jumlah_kompaun_belum_bayar + $temp_kompaun_belum_bayar;
$amaun_tunggakan_rm = $amaun_tunggakan_rm + $temp_tunggakan;
$kompaun_batal = $kompaun_batal + $temp_kompaun_batal;
$amaun_batal_rm = $amaun_batal_rm + $temp_amaun_batal;
$kompaun_kurang = $kompaun_kurang + $temp_kompaun_kurang;
$amaun_kurang_rm = $amaun_kurang_rm + $temp_amaun_kurang;

}
}

array_push($all, array(
'index' => $i+1,
'name' => strtoupper($name.' - '.$ft->sketr),
'jum_kompaun_keluar' => $jumlah_kompaun_keluar,
'amaun_kompaun' => $amaun_kompaun_rm,
'jumlah_byr' => $jumlah_bayar,
'amaun_byr' => $amaun_bayar_rm,
'jum_kompaun_belum_byr' => $jumlah_kompaun_belum_bayar,
'amaun_tunggakan' => $amaun_tunggakan_rm,
'kompaun_batal' => $kompaun_batal,
'amaun_batal' => $amaun_batal_rm,
'kompaun_kurang' => $kompaun_kurang,
'amaun_kurang' => $amaun_kurang_rm,
));
}
}


for($m=1; $m<=12; ++$m){
$month[] = date('m', mktime(0, 0, 0, $m, 1));
}

foreach ($month as $key => $m) {
// Calculate by sketr
$data_sketrb = ReportFaulty::where('start_date', $start_date)->where('end_date', $end_date)->where('month', $m)->where('jbkod', $jabatan)->groupBy('sketr')->get();

if(count($data_sketrb) > 0){
$i = 0;
foreach ($data_sketrb as $key => $d) {

$jumlah_kompaun_keluar = 0; $amaun_kompaun_rm = 0;
$jumlah_bayar = 0; $amaun_bayar_rm = 0;
$jumlah_kompaun_belum_bayar = 0; $amaun_tunggakan_rm = 0;
$kompaun_batal = 0; $amaun_batal_rm = 0;
$kompaun_kurang = 0; $amaun_kurang_rm = 0;

$name = '';
$ft = Faulty::where('sketr', $d->sketr)->first();
if(strpos($ft->nama, '(RM500)') !== false){
$name = str_replace("(RM500)","",$ft->nama);
}else if(strpos($ft->nama, '(RM100)') !== false){
$name = str_replace("(RM100)","",$ft->nama);
}else if(strpos($ft->nama, '(RM50)') !== false){
$name = str_replace("(RM50)","",$ft->nama);
}else if(strpos($ft->nama, '(RM250)') !== false){
$name = str_replace("(RM250)","",$ft->nama);
}else {
$name = $ft->nama;
}

$data_reportb = ReportFaulty::where('start_date', $start_date)->where('end_date', $end_date)->where('month', 'All')->where('jbkod', $jabatan)->where('sketr', $d->sketr)->get();

if(count($data_reportb) > 0){
foreach ($data_reportb as $key => $r) {

if ($r->amaun_kompaun_rm == ""){
$temp_amount_rm = 0;
}else {
$temp_amount_rm = $r->amaun_kompaun_rm;
}

if ($r->jumlah_kompaun_keluar == ""){
$temp_kompaun_keluar = 0;
}else {
$temp_kompaun_keluar = $r->jumlah_kompaun_keluar;
}

if ($r->jumlah_bayar == ""){
$temp_jumlah_bayar = 0;
}else {
$temp_jumlah_bayar = $r->jumlah_bayar;
}

if ($r->amaun_bayar_rm == ""){
$temp_amaun_bayar = 0;
}else {
$temp_amaun_bayar = $r->amaun_bayar_rm;
}

if ($r->jumlah_kompaun_belum_bayar == ""){
$temp_kompaun_belum_bayar = 0;
}else {
$temp_kompaun_belum_bayar = $r->jumlah_kompaun_belum_bayar;
}

if ($r->amaun_tunggakan_rm == ""){
$temp_tunggakan = 0;
}else {
$temp_tunggakan = $r->amaun_tunggakan_rm;
}

if ($r->kompaun_batal == ""){
$temp_kompaun_batal = 0;
}else {
$temp_kompaun_batal = $r->kompaun_batal;
}

if ($r->amaun_batal_rm == ""){
$temp_amaun_batal = 0;
}else {
$temp_amaun_batal = $r->amaun_batal_rm;
}


if ($r->kompaun_kurang == ""){
$temp_kompaun_kurang = 0;
}else {
$temp_kompaun_kurang = $r->kompaun_kurang;
}

if ($r->amaun_kurang_rm == ""){
$temp_amaun_kurang = 0;
}else {
$temp_amaun_kurang = $r->amaun_kurang_rm;
}

$jumlah_kompaun_keluar = $jumlah_kompaun_keluar + $temp_kompaun_keluar;
$amaun_kompaun_rm = $amaun_kompaun_rm + $temp_amount_rm;
$jumlah_bayar = $jumlah_bayar + $temp_jumlah_bayar;
$amaun_bayar_rm = $amaun_bayar_rm + $temp_amaun_bayar;
$jumlah_kompaun_belum_bayar = $jumlah_kompaun_belum_bayar + $temp_kompaun_belum_bayar;
$amaun_tunggakan_rm = $amaun_tunggakan_rm + $temp_tunggakan;
$kompaun_batal = $kompaun_batal + $temp_kompaun_batal;
$amaun_batal_rm = $amaun_batal_rm + $temp_amaun_batal;
$kompaun_kurang = $kompaun_kurang + $temp_kompaun_kurang;
$amaun_kurang_rm = $amaun_kurang_rm + $temp_amaun_kurang;

}
}

if($m == '01'){
array_push($jan, array(
'index' => $i+1,
'name' => strtoupper($name.' - '.$ft->sketr),
'jum_kompaun_keluar' => $jumlah_kompaun_keluar,
'amaun_kompaun' => $amaun_kompaun_rm,
'jumlah_byr' => $jumlah_bayar,
'amaun_byr' => $amaun_bayar_rm,
'jum_kompaun_belum_byr' => $jumlah_kompaun_belum_bayar,
'amaun_tunggakan' => $amaun_tunggakan_rm,
'kompaun_batal' => $kompaun_batal,
'amaun_batal' => $amaun_batal_rm,
'kompaun_kurang' => $kompaun_kurang,
'amaun_kurang' => $amaun_kurang_rm,
));
}else if($m == '02'){
array_push($feb, array(
'index' => $i+1,
'name' => strtoupper($name.' - '.$ft->sketr),
'jum_kompaun_keluar' => $jumlah_kompaun_keluar,
'amaun_kompaun' => $amaun_kompaun_rm,
'jumlah_byr' => $jumlah_bayar,
'amaun_byr' => $amaun_bayar_rm,
'jum_kompaun_belum_byr' => $jumlah_kompaun_belum_bayar,
'amaun_tunggakan' => $amaun_tunggakan_rm,
'kompaun_batal' => $kompaun_batal,
'amaun_batal' => $amaun_batal_rm,
'kompaun_kurang' => $kompaun_kurang,
'amaun_kurang' => $amaun_kurang_rm,
));
}else if($m == '03'){
array_push($mac, array(
'index' => $i+1,
'name' => strtoupper($name.' - '.$ft->sketr),
'jum_kompaun_keluar' => $jumlah_kompaun_keluar,
'amaun_kompaun' => $amaun_kompaun_rm,
'jumlah_byr' => $jumlah_bayar,
'amaun_byr' => $amaun_bayar_rm,
'jum_kompaun_belum_byr' => $jumlah_kompaun_belum_bayar,
'amaun_tunggakan' => $amaun_tunggakan_rm,
'kompaun_batal' => $kompaun_batal,
'amaun_batal' => $amaun_batal_rm,
'kompaun_kurang' => $kompaun_kurang,
'amaun_kurang' => $amaun_kurang_rm,
));
}else if($m == '04'){
array_push($apr, array(
'index' => $i+1,
'name' => strtoupper($name.' - '.$ft->sketr),
'jum_kompaun_keluar' => $jumlah_kompaun_keluar,
'amaun_kompaun' => $amaun_kompaun_rm,
'jumlah_byr' => $jumlah_bayar,
'amaun_byr' => $amaun_bayar_rm,
'jum_kompaun_belum_byr' => $jumlah_kompaun_belum_bayar,
'amaun_tunggakan' => $amaun_tunggakan_rm,
'kompaun_batal' => $kompaun_batal,
'amaun_batal' => $amaun_batal_rm,
'kompaun_kurang' => $kompaun_kurang,
'amaun_kurang' => $amaun_kurang_rm,
));
}else if($m == '05'){
array_push($mei, array(
'index' => $i+1,
'name' => strtoupper($name.' - '.$ft->sketr),
'jum_kompaun_keluar' => $jumlah_kompaun_keluar,
'amaun_kompaun' => $amaun_kompaun_rm,
'jumlah_byr' => $jumlah_bayar,
'amaun_byr' => $amaun_bayar_rm,
'jum_kompaun_belum_byr' => $jumlah_kompaun_belum_bayar,
'amaun_tunggakan' => $amaun_tunggakan_rm,
'kompaun_batal' => $kompaun_batal,
'amaun_batal' => $amaun_batal_rm,
'kompaun_kurang' => $kompaun_kurang,
'amaun_kurang' => $amaun_kurang_rm,
));
}else if($m == '06'){
array_push($jun, array(
'index' => $i+1,
'name' => strtoupper($name.' - '.$ft->sketr),
'jum_kompaun_keluar' => $jumlah_kompaun_keluar,
'amaun_kompaun' => $amaun_kompaun_rm,
'jumlah_byr' => $jumlah_bayar,
'amaun_byr' => $amaun_bayar_rm,
'jum_kompaun_belum_byr' => $jumlah_kompaun_belum_bayar,
'amaun_tunggakan' => $amaun_tunggakan_rm,
'kompaun_batal' => $kompaun_batal,
'amaun_batal' => $amaun_batal_rm,
'kompaun_kurang' => $kompaun_kurang,
'amaun_kurang' => $amaun_kurang_rm,
));
}else if($m == '07'){
array_push($july, array(
'index' => $i+1,
'name' => strtoupper($name.' - '.$ft->sketr),
'jum_kompaun_keluar' => $jumlah_kompaun_keluar,
'amaun_kompaun' => $amaun_kompaun_rm,
'jumlah_byr' => $jumlah_bayar,
'amaun_byr' => $amaun_bayar_rm,
'jum_kompaun_belum_byr' => $jumlah_kompaun_belum_bayar,
'amaun_tunggakan' => $amaun_tunggakan_rm,
'kompaun_batal' => $kompaun_batal,
'amaun_batal' => $amaun_batal_rm,
'kompaun_kurang' => $kompaun_kurang,
'amaun_kurang' => $amaun_kurang_rm,
));
}else if($m == '08'){
array_push($ogos, array(
'index' => $i+1,
'name' => strtoupper($name.' - '.$ft->sketr),
'jum_kompaun_keluar' => $jumlah_kompaun_keluar,
'amaun_kompaun' => $amaun_kompaun_rm,
'jumlah_byr' => $jumlah_bayar,
'amaun_byr' => $amaun_bayar_rm,
'jum_kompaun_belum_byr' => $jumlah_kompaun_belum_bayar,
'amaun_tunggakan' => $amaun_tunggakan_rm,
'kompaun_batal' => $kompaun_batal,
'amaun_batal' => $amaun_batal_rm,
'kompaun_kurang' => $kompaun_kurang,
'amaun_kurang' => $amaun_kurang_rm,
));
}else if($m == '09'){
array_push($sept, array(
'index' => $i+1,
'name' => strtoupper($name.' - '.$ft->sketr),
'jum_kompaun_keluar' => $jumlah_kompaun_keluar,
'amaun_kompaun' => $amaun_kompaun_rm,
'jumlah_byr' => $jumlah_bayar,
'amaun_byr' => $amaun_bayar_rm,
'jum_kompaun_belum_byr' => $jumlah_kompaun_belum_bayar,
'amaun_tunggakan' => $amaun_tunggakan_rm,
'kompaun_batal' => $kompaun_batal,
'amaun_batal' => $amaun_batal_rm,
'kompaun_kurang' => $kompaun_kurang,
'amaun_kurang' => $amaun_kurang_rm,
));
}else if($m == '10'){
array_push($okt, array(
'index' => $i+1,
'name' => strtoupper($name.' - '.$ft->sketr),
'jum_kompaun_keluar' => $jumlah_kompaun_keluar,
'amaun_kompaun' => $amaun_kompaun_rm,
'jumlah_byr' => $jumlah_bayar,
'amaun_byr' => $amaun_bayar_rm,
'jum_kompaun_belum_byr' => $jumlah_kompaun_belum_bayar,
'amaun_tunggakan' => $amaun_tunggakan_rm,
'kompaun_batal' => $kompaun_batal,
'amaun_batal' => $amaun_batal_rm,
'kompaun_kurang' => $kompaun_kurang,
'amaun_kurang' => $amaun_kurang_rm,
));
}else if($m == '11'){
array_push($nov, array(
'index' => $i+1,
'name' => strtoupper($name.' - '.$ft->sketr),
'jum_kompaun_keluar' => $jumlah_kompaun_keluar,
'amaun_kompaun' => $amaun_kompaun_rm,
'jumlah_byr' => $jumlah_bayar,
'amaun_byr' => $amaun_bayar_rm,
'jum_kompaun_belum_byr' => $jumlah_kompaun_belum_bayar,
'amaun_tunggakan' => $amaun_tunggakan_rm,
'kompaun_batal' => $kompaun_batal,
'amaun_batal' => $amaun_batal_rm,
'kompaun_kurang' => $kompaun_kurang,
'amaun_kurang' => $amaun_kurang_rm,
));
}else if($m == '12'){
array_push($dis, array(
'index' => $i+1,
'name' => strtoupper($name.' - '.$ft->sketr),
'jum_kompaun_keluar' => $jumlah_kompaun_keluar,
'amaun_kompaun' => $amaun_kompaun_rm,
'jumlah_byr' => $jumlah_bayar,
'amaun_byr' => $amaun_bayar_rm,
'jum_kompaun_belum_byr' => $jumlah_kompaun_belum_bayar,
'amaun_tunggakan' => $amaun_tunggakan_rm,
'kompaun_batal' => $kompaun_batal,
'amaun_batal' => $amaun_batal_rm,
'kompaun_kurang' => $kompaun_kurang,
'amaun_kurang' => $amaun_kurang_rm,
));
}
}
}
}

$filename = 'Statistik_Pengeluaran_kompaun_mengikut_kesalahan';
return Excel::download(new FaultyStatisticExport($jan,$feb,$mac,$apr,$mei,$jun,$july,$ogos,$sept,$okt,$nov,$dis,$all,$start_date,$end_date), $filename.'.xlsx');
}


public function export_compound_current($start_year,$end_year,$budget1,$budget2,$jbkod){
$url = 'https://mdch.sipadu.my/api/get/current-compound?start_year='.$start_year.'&end_year='.$end_year.'&budget1='.$budget1.'&budget2='.$budget2.'&jabatan='.$jbkod;

$year1= date('Y', strtotime($start_year));
$year2= date('Y', strtotime($end_year));

$client = new \GuzzleHttp\Client();
$request = $client->get($url);
$response = json_decode($request->getBody());

$data = array();
foreach ($response->data as $key => $d) {
array_push($data, array(
'bulan' => $d->month,
'budget1' => $d->budget1,
'kompaun_keluar1' => $d->kompaun_keluar1,
'kompaun_kurang1' => $d->kompaun_kurang1,
'kutipan_bulanan1' => $d->kutipan_bulanan1,
'kutipan_terkumpul1' => $d->kutipan_terkumpul1,
'kutipan1' => $d->kutipan1,
'terkumpul1' => $d->terkumpul1,
'budget2' => $d->budget2,
'kompaun_keluar2' => $d->kompaun_keluar2,
'kompaun_kurang2' => $d->kompaun_kurang2,
'kutipan_bulanan2' => $d->kutipan_bulanan2,
'kutipan_terkumpul2' => $d->kutipan_terkumpul2,
'kutipan2' => $d->kutipan2,
'terkumpul2' => $d->terkumpul2,
));
}

$filename = 'Laporan_Perbezaan_kutipan_Kompaun_Semasa';
return Excel::download(new CompoundCurrentExport($data,$year1,$year2,$end_year), $filename.'.xlsx');
}

public function jumlah_kopmaun_tahunan($year, $jabatan)
{
$date = Carbon::createFromDate($year, 01, 01);
$startOfYear = $date->copy()->startOfYear();
$endOfYear = $date->copy()->endOfYear();

//list of compound 'Belum Bayar' in the year 2019
$compound = Compound::whereBetween('created_at', array($startOfYear, $endOfYear))->where('jbkod', $jabatan)->get();

$jumlah_kompaun = 0;
$keping_kompaun = 0;
$kpd = array();

foreach($compound as $c)
{
$jumlah_kompaun += $c->jumlah_asal_kompaun;
$keping_kompaun += 1;
$kpd[] = $c->kpd;
}

$result = array();
array_push($result, array(
'jumlah_kompaun' => $jumlah_kompaun,
'keping_kompaun' => $keping_kompaun,
'kpd' => $kpd,
));

return json_encode($result);
}

//Calculate compound with status 'Berbayar'
public function kompaun_bayar_by_bulan($year, $month, $jabatan)
{
$monthly = Carbon::createFromDate($year, $month, 1);
$startOfMonth = $monthly->copy()->startOfMonth();
$endOfMonth = $monthly->copy()->endOfMonth();
$kpd = array();

$monthly_collection = Compound::whereBetween('created_at', array($startOfMonth, $endOfMonth))->where('jbkod', $jabatan)->where('status', 'Berbayar')->get();

// dd($monthly_collection);
$jumlah_bayar = 0;
$keping_bayar = 0;
$jumlah_asal = 0;
$jumlah_kurang = 0;
$temp_jumlah_kurang = 0;
$kpd = array();


foreach($monthly_collection as $k)
{
if((!($k->jumlah_kemaskini_kompaun == '')))
{
$temp_jumlah_kurang = $k->jumlah_asal_kompaun - $k->jumlah_kemaskini_kompaun;
}

$keping_bayar += 1;
$jumlah_asal += $k->jumlah_asal_kompaun;
$jumlah_bayar += $k->amount_payment;
$jumlah_kurang += $temp_jumlah_kurang;

}

$result = array();
array_push($result, array(
'jumlah_berbayar' => $jumlah_bayar,
'keping_berbayar' => $keping_bayar,
'jumlah_pengurangan' => $jumlah_kurang,
'jumlah_asal_berbayar' => $jumlah_asal,

));

return json_encode($result);
}

public function berbayar_terkumpul($value1, $value2)
{
return $value1 += $value2;
}

public function baki_tunggakan($baki_tertunggak, $bayar_bulanan, $jumlah_kurang)
{
return $baki_tertunggak - $bayar_bulanan - $jumlah_kurang;
}

public function keping_tunggakan($keping_tertunggak, $keping_bulanan)
{
return $keping_tertunggak -= $keping_bulanan;
}

public function peratus_kutipan($jumlah_tertunggak, $berbayar_bulanan)
{
return $berbayar_bulanan /= $jumlah_tertunggak;
}

public function peratus_terkumpul($jumlah_tertunggak, $berbayar_terkumpul)
{
return $berbayar_terkumpul /= $jumlah_tertunggak;
}

public function pengurangan_terkumpul($total_pengurangan, $pengurangan_bulanan)
{
return $total_pengurangan += $pengurangan_bulanan;
}

public function export_compound_backlog($year, $jabatan)
{
$looping_month = array();

// search kompaun tertunggak a year before
$tertunggak = json_decode($this->jumlah_kopmaun_tahunan($year, $jabatan));

//declaring required variables
$kutipan_terkumpul = 0;
$tunggakan_terkumpul = 0;
$pengurangan_terkumpul = 0;
$baki_tunggakan = 0;
$keping_tunggakan = 0;
$baki_tunggakan = $tertunggak[0]->jumlah_kompaun;
$keping_tunggakan = $tertunggak[0]->keping_kompaun;
$nama_bulan = array('JAN', 'FEB', 'MAC', 'APR', 'MEI', 'JUN', 'JUL', 'OGOS', 'SEP', 'OKT', 'NOV', 'DIS');
$kpd_bulan = array();

for( $bulan = 1; $bulan < 13; $bulan++)
{
//calling required functions
$bayar_bulanan = json_decode($this->kompaun_bayar_by_bulan($year, $bulan,$jabatan));
$kutipan_terkumpul = $this->berbayar_terkumpul($kutipan_terkumpul, $bayar_bulanan[0]->jumlah_berbayar);
$baki_tunggakan = $this->baki_tunggakan($baki_tunggakan, $bayar_bulanan[0]->jumlah_berbayar, $bayar_bulanan[0]->jumlah_pengurangan);
$keping_tunggakan = $this->keping_tunggakan($keping_tunggakan, $bayar_bulanan[0]->keping_berbayar);
$peratus_kutipan = $this->peratus_kutipan($tertunggak[0]->jumlah_kompaun, $bayar_bulanan[0]->jumlah_berbayar);
$peratus_terkumpul = $this->peratus_terkumpul($tertunggak[0]->jumlah_kompaun, $kutipan_terkumpul);
$pengurangan_terkumpul = $this->pengurangan_terkumpul($pengurangan_terkumpul, $bayar_bulanan[0]->jumlah_pengurangan);

// foreach($bayar_bulanan[0]->kpd as $bb)
// {
// dd($bb);
// }

array_push($looping_month, array(
'bulan' => $nama_bulan[$bulan-1], //A
'space' => '', //B
'kutipan_bulanan(RM)' => $bayar_bulanan[0]->jumlah_berbayar, //C
'jumlah_kompaun_bayar' => $bayar_bulanan[0]->keping_berbayar, //D
'kutipan_terkumpul(RM)' => $kutipan_terkumpul, //E
'baki_tunggakan(RM)' => $baki_tunggakan, //F
'baki_belum_bayar' => $keping_tunggakan, //G
'jumlah_kurang(RM)' => $bayar_bulanan[0]->jumlah_pengurangan, //H
'%_kutipan' => number_format((float)$peratus_kutipan, 3, '.', ''), //I
'%_terkumpul' => number_format((float)$peratus_terkumpul, 3, '.', ''), //J
));
}

$kompaun_j = $tertunggak[0]->jumlah_kompaun;
$kompaun_k = $tertunggak[0]->keping_kompaun;

$filename = 'Laporan_Tunggakan_Tahunan_(Tahun_:_'.$year.')';
return Excel::download(new CompoundBacklogExport($looping_month, $year, $kompaun_j, $kompaun_k), $filename.'.xlsx');
}
}

+ 36
- 3
app/Http/Controllers/Main/ReportController.php Datei anzeigen

@@ -12,6 +12,9 @@ use App\SiteSetting;
use App\Model\Staff;
use App\Model\StaffDetail;
use App\Model\Module\ReportPayment;
use App\Model\Module\ReportEnforcer;
use App\Model\Module\Department;
class ReportController extends Controller
{
@@ -26,14 +29,44 @@ class ReportController extends Controller
$id = Auth::guard('sadmin')->id();
$user = Staff::with('StaffDetail')->find($id);
$site = SiteSetting::first();
return view('main-dashboard.report_payment_index',compact('user','site'));
return view('main-dashboard.report.payment_index',compact('user','site'));
}
public function reportStatisticEnforcer(){
$id = Auth::guard('sadmin')->id();
$user = Staff::with('StaffDetail')->find($id);
$site = SiteSetting::first();
$department = Department::all();
return view('main-dashboard.report.enforcer',compact('user','site','department'));
}
public function reportStatisticFaulty(){
$id = Auth::guard('sadmin')->id();
$user = Staff::with('StaffDetail')->find($id);
$site = SiteSetting::first();
$department = Department::all();
for($m=1; $m<=12; ++$m){
$month[] = date('M', mktime(0, 0, 0, $m, 1));
}
return view('main-dashboard.report.faulty',compact('user','site','month','department'));
}
public function reportCompoundList(){
public function reportCurrentCompound(){
$id = Auth::guard('sadmin')->id();
$user = Staff::with('StaffDetail')->find($id);
$site = SiteSetting::first();
return view('main-dashboard.report_compound_index',compact('user','site'));
$department = Department::all();
return view('main-dashboard.report.perbezaan',compact('user','site','department'));
}
public function reportBacklog()
{
$id =Auth::guard('sadmin')->id();
$user = Staff::with('StaffDetail')->find($id);
$site = SiteSetting::first();
$department = Department::all();
return view('main-dashboard.report.backlog',compact('user','site','department'));
}
}

+ 292
- 0
app/Jobs/StoreCompoundEPBT.php Datei anzeigen

@@ -0,0 +1,292 @@
<?php

namespace App\Jobs;

use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Http\Request;

use App\SiteSetting;
use App\Model\Staff;
use App\Model\StaffDetail;
use App\Model\Module\Department;
use App\Model\Module\DeedLaw;
use App\Model\Module\Faulty;
use App\Model\Module\Compound;
use App\Model\Module\ConfidentialFile;
use App\Model\Module\History;
use App\Model\Module\SubHistory;
use App\Model\Module\Memo;
use App\Model\Module\Attachment;

use App\Jobs\UpdateCompoundPrice;

class StoreCompoundEPBT implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $request, $kpd, $no_badan, $enf_nama, $kesalahan;

/**
* Create a new job instance.
*
* @return void
*/
public function __construct(array $request_, $kpd_, $enf_nama_, $no_badan_, $kesalahan_)
{
$this->request = $request_;
$this->kpd = $kpd_;
$this->enf_nama = $enf_nama_;
$this->no_badan = $no_badan_;
$this->kesalahan= $kesalahan_;
}

/**
* Execute the job.
*
* @return void
*/
public function handle()
{
// $faulty = Faulty::with('DeedLaw', 'Department')->where('_id', $this->seksyen_kesalahan)->first();
$compound = Compound::with('Department','DeedLaw','Faulty')->where('kpd',$this->kpd)->first();

//get ePBT MBIP faulty lists
$client = new \GuzzleHttp\Client();
$result = $client->request('GET', 'http://218.208.81.239:81/appsepbtkompaun_ws/getinfokompaun/infokompaun?infokompaun[]=352405067769401&infokompaun[]=ekpn_kesalahan');
$response = json_decode($result->getBody()->getContents());
dd($compound->created_at->toDateString());
if(!empty($response))
{
$k = [];
foreach($response as $key => $r)
{
//if($this->kesalahan == $r->kesalahan)
if($this->kesalahan == $this->kesalahan)
{
if($compound->jenis == 'Parkir')
{
array_push($k,
$this->kpd, //no kompaun
'KPD', //jenis kompaun
$r->fk_akta, //kod akta
strtoupper($r->kesalahan), //keterangan kesalahan
$compound->created_at->toDateString(), //tarikh
$compound->created_at->toTimeString(), //masa
14, //tempoh
//namajalan, namataman
//kodbandar
'K',//jenis
strtoupper($compound->plate_no), //no plat
$compound->jumlah_asal_kompaun, //jumlah kompaun
strtoupper($this->no_badan), //no badan
'-', //no pembantu penguatkuasa
strtoupper($this->enf_nama), //nama enforcer
Carbon::now('YYYY-MM_DD hh:mm:ss'), //time created epbt
$r->kod, //kod kesalahan
$compound->nama, //nama pesalah
//nama jalan - alamat pesalah
//nama taman - alamat pesalah
'81300', //postcode
//bandar
'JOHOR', //negeri
'B', //notis
'NULL', //notisamaran
'NULL', //latitud
'NULL', //longitud
'NULL', //device
strtoupper($compound->no_cukai_jalan), //mo cukai jalan
strtoupper($compound->plate_no), //no plat
'NULL', //no kupon
strtoupper($compound->jenis_kenderaan), //jenis kenderaan
strtoupper($compound->warna_kenderaan), //warna kenderaan
strtoupper($compound->no_parking), //no petak parking
'NULL' //kod petak

);
}
elseif($compound->jenis == 'Pelbagai_KT')
{
array_push($k,
$this->kpd, //no kompaun
'KPD', //jenis kompaun
$r->fk_akta, //kod akta
strtoupper($r->kesalahan), //keterangan kesalahan
$compound->created_at->toDateString(), //tarikh
$compound->created_at->toTimeString(), //masa
14, //tempoh
//namajalan, namataman
//kodbandar
'K',//jenis
strtoupper($compound->plate_no), //no plat
$compound->jumlah_asal_kompaun, //jumlah kompaun
strtoupper($this->no_badan), //no badan
'-', //no pembantu penguatkuasa
strtoupper($this->enf_nama), //nama enforcer
Carbon::now('YYYY-MM_DD hh:mm:ss'), //time created epbt
$r->kod, //kod kesalahan
$compound->nama, //nama pesalah
//nama jalan - alamat pesalah
//nama taman - alamat pesalah
'81300', //postcode
'ISKANDAR PUTERI'//bandar
'JOHOR', //negeri
'B', //notis
'NULL', //notisamaran
'NULL', //latitud
'NULL', //longitud
'NULL', //device
strtoupper($compound->no_cukai_jalan), //mo cukai jalan
strtoupper($compound->plate_no), //no plat
'NULL', //no kupon
strtoupper($compound->jenis_kenderaan), //jenis kenderaan
strtoupper($compound->warna_kenderaan), //warna kenderaan
strtoupper($compound->no_parking), //no petak parking
'NULL' //kod petak

);
}
elseif($compound->jenis == 'Pelbagai_JPB')
{
array_push($k,
$this->kpd, //no kompaun
'KPD', //jenis kompaun
$r->fk_akta, //kod akta
strtoupper($r->kesalahan), //keterangan kesalahan
$compound->created_at->toDateString(), //tarikh
$compound->created_at->toTimeString(), //masa
14, //tempoh
//namajalan, namataman
//kodbandar
'K',//jenis
strtoupper($compound->plate_no), //no plat
$compound->jumlah_asal_kompaun, //jumlah kompaun
strtoupper($this->no_badan), //no badan
'-', //no pembantu penguatkuasa
strtoupper($this->enf_nama), //nama enforcer
Carbon::now('YYYY-MM_DD hh:mm:ss'), //time created epbt
$r->kod, //kod kesalahan
$compound->nama, //nama pesalah
//nama jalan - alamat pesalah
//nama taman - alamat pesalah
'81300', //postcode
'ISKANDAR PUTERI'//bandar
'JOHOR', //negeri
'B', //notis
'NULL', //notisamaran
'NULL', //latitud
'NULL', //longitud
'NULL', //device
strtoupper($compound->no_cukai_jalan), //mo cukai jalan
strtoupper($compound->plate_no), //no plat
'NULL', //no kupon
strtoupper($compound->jenis_kenderaan), //jenis kenderaan
strtoupper($compound->warna_kenderaan), //warna kenderaan
strtoupper($compound->no_parking), //no petak parking
'NULL' //kod petak

);
}
elseif($compound->jenis == 'Pelbagai_PA')
{
array_push($k,
$this->kpd, //no kompaun
'KPD', //jenis kompaun
$r->fk_akta, //kod akta
strtoupper($r->kesalahan), //keterangan kesalahan
$compound->created_at->toDateString(), //tarikh
$compound->created_at->toTimeString(), //masa
14, //tempoh
//namajalan, namataman
//kodbandar
'K',//jenis
strtoupper($compound->plate_no), //no plat
$compound->jumlah_asal_kompaun, //jumlah kompaun
strtoupper($this->no_badan), //no badan
'-', //no pembantu penguatkuasa
strtoupper($this->enf_nama), //nama enforcer
Carbon::now('YYYY-MM_DD hh:mm:ss'), //time created epbt
$r->kod, //kod kesalahan
$compound->nama, //nama pesalah
//nama jalan - alamat pesalah
//nama taman - alamat pesalah
'81300', //postcode
'ISKANDAR PUTERI'//bandar
'JOHOR', //negeri
'B', //notis
'NULL', //notisamaran
'NULL', //latitud
'NULL', //longitud
'NULL', //device
strtoupper($compound->no_cukai_jalan), //mo cukai jalan
strtoupper($compound->plate_no), //no plat
'NULL', //no kupon
strtoupper($compound->jenis_kenderaan), //jenis kenderaan
strtoupper($compound->warna_kenderaan), //warna kenderaan
strtoupper($compound->no_parking), //no petak parking
'NULL' //kod petak

);
}
elseif($compound->jenis == 'Pelbagai_LESEN')
{
array_push($k,
$this->kpd, //no kompaun
'KPD', //jenis kompaun
$r->fk_akta, //kod akta
strtoupper($r->kesalahan), //keterangan kesalahan
$compound->created_at->toDateString(), //tarikh
$compound->created_at->toTimeString(), //masa
14, //tempoh
//namajalan, namataman
//kodbandar
'K',//jenis
strtoupper($compound->plate_no), //no plat
$compound->jumlah_asal_kompaun, //jumlah kompaun
strtoupper($this->no_badan), //no badan
'-', //no pembantu penguatkuasa
strtoupper($this->enf_nama), //nama enforcer
Carbon::now('YYYY-MM_DD hh:mm:ss'), //time created epbt
$r->kod, //kod kesalahan
$compound->nama, //nama pesalah
//nama jalan - alamat pesalah
//nama taman - alamat pesalah
'81300', //postcode
'ISKANDAR PUTERI'//bandar
'JOHOR', //negeri
'B', //notis
'NULL', //notisamaran
'NULL', //latitud
'NULL', //longitud
'NULL', //device
strtoupper($compound->no_cukai_jalan), //mo cukai jalan
strtoupper($compound->plate_no), //no plat
'NULL', //no kupon
strtoupper($compound->jenis_kenderaan), //jenis kenderaan
strtoupper($compound->warna_kenderaan), //warna kenderaan
strtoupper($compound->no_parking), //no petak parking
'NULL' //kod petak

);
}
}
else
{
Log::info("Rekod kesalahan tidak dijumpai!");
}
}
}
else
{
Log::info("Gagal untuk mendapatkan senarai kesalahan ePBT MBIP!");
}

}

}

+ 23
- 2
resources/views/include/horizontal-menu.blade.php Datei anzeigen

@@ -177,20 +177,41 @@
<span class="pcoded-mcaret"></span>
</a>
<ul class="pcoded-submenu">
<li class="pcoded-nomenu {{ Request::is('main/report') ? 'active' : '' }}">
<!-- <li class="pcoded-nomenu {{ Request::is('main/report') ? 'active' : '' }}">
<a href="{{ url('main/report') }}" class="waves-effect waves-dark">
<span class="pcoded-micon"><i class="ti-receipt"></i><b>L</b></span>
<span class="pcoded-mtext">Tunai</span>
<span class="pcoded-mcaret"></span>
</a>
</li> -->
<li class="{{ Request::is('main/report/statistic/enforcer') ? 'active' : '' }}">
<a href="{{ url('/main/report/statistic/enforcer') }}" class="waves-effect waves-dark">
<span class="pcoded-micon"><i class="ti-bar-chart-alt"></i></span>
<span class="pcoded-mtext">Statistik Pengeluaran Kompaun</span>
<span class="pcoded-mcaret"></span>
</a>
</li>
<li class="{{ Request::is('main/report/statistic/faulty') ? 'active' : '' }}">
<li class="{{ Request::is('/main/report/statistic/faulty') ? 'active' : '' }}">
<a href="{{ url('main/report/statistic/faulty') }}" class="waves-effect waves-dark">
<span class="pcoded-micon"><i class="ti-bar-chart-alt"></i></span>
<span class="pcoded-mtext">Statistik Kesalahan</span>
<span class="pcoded-mcaret"></span>
</a>
</li>
<li class="{{ Request::is('/main/report/current/compound') ? 'active' : '' }}">
<a href="{{ url('main/report/current/compound') }}" class="waves-effect waves-dark">
<span class="pcoded-micon"><i class="ti-bar-chart-alt"></i></span>
<span class="pcoded-mtext">Kompaun Semasa</span>
<span class="pcoded-mcaret"></span>
</a>
</li>
<li class="{{ Request::is('/main/report/backlog') ? 'active' : '' }}">
<a href="{{ url('main/report/backlog') }}" class="waves-effect waves-dark">
<span class="pcoded-micon"><i class="ti-bar-chart-alt"></i></span>
<span class="pcoded-mtext">Kompaun Tertunggak</span>
<span class="pcoded-mcaret"></span>
</a>
</li>
</ul>
</li>
@if($user->roles_access == 'sysadmin')

+ 3
- 3
resources/views/main-dashboard/compound/_part/filter_form.blade.php Datei anzeigen

@@ -6,11 +6,11 @@
<input type="hidden" name="modul" value="{{ $modul }}">
<div class="row clearfix">
<div class="col-lg-3">
<label><input type="checkbox" id="check_kpd" checked/>&nbsp;<b>No</b></label>
<label><input type="checkbox" id="check_kpd" checked/>&nbsp;<b>No Notis/Kompaun</b></label>
<div class="input-group input-group-sm">
<span class="input-group-prepend">
<!-- <span class="input-group-prepend">
<label class="input-group-text">KPD</label>
</span>
</span> -->
<input type="text" class="form-control form-control-sm" placeholder="SCM4744" value="" name="kpd" id="kpd" required />
</div>
</div>

+ 200
- 0
resources/views/main-dashboard/compound/_type/parkir.blade.php Datei anzeigen

@@ -0,0 +1,200 @@
<form action="{{ url('/main/manual/store/compound') }}" class="main cussPayment" method="POST" enctype="multipart/form-data">
<input type="hidden" name="_token" id="csrf-token" value="{{ Session::token() }}" />
<input type="hidden" name="Latlong" value="-" />
<input type="hidden" name="jenisKompaun" value="Parkir" />
<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>No.Kompaun <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="kpd" name="kpd" class="form-control" placeholder="005360" required>
</div>
</div>
</div>
<!-- <div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Akta Kesalahan <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="akta" name="akta" class="form-control" placeholder="Nama yang dikompaunkan" value="-" readonly="">
</div>
</div>
</div> -->
</div>

<div class="row clearfix">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<label for="subject"><b>Seksyen Kesalahan <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<select id="seksyen1" name="seksyen" class="js-section form-control" multiple="multiple" required>
<option value="">Sila pilih seksyen kesalahan</option>
@foreach($faulty as $f)
<option value="{{ $f->_id }}">[{{ $f->sketr }}] {{$f->nama}}</option>
@endforeach
</select>
</div>
</div>
</div>
</div>

<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Jabatan <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<select id="jabatan1" name="jabatan" class="form-control" required="">
<option value="">Sila pilih jabatan</option>
</select>
</div>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Akta Kesalahan <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="akta1" name="akta" class="form-control" placeholder="Nama yang dikompaunkan" value="-" readonly="">
</div>
</div>
</div>
</div>

<hr style="border-top: 2px dotted #8c8b8b;">

<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>No.Plat <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="no_plate" name="no_plate" class="form-control" placeholder="Masukkan nombor plat kereta" required="">
</div>
</div>
</div>

<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>No. Cukai Jalan <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="noCukaijalan" name="noCukaijalan" class="form-control" placeholder="Masukkan cukai jalan" required="">
</div>
</div>
</div>
</div>

<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Model Kenderaan <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="modelKenderaan" name="modelKenderaan" class="form-control" placeholder="Masukkan model kereta" required="">
</div>
</div>
</div>

<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Jenis Kenderaan <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="jenisKenderaan" name="jenisKenderaan" class="form-control" placeholder="Masukkan jenis kereta" required="">
</div>
</div>
</div>
</div>

<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Warna Kenderaan <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="warnakenderaan" name="warnakenderaan" class="form-control" placeholder="Masukkan warna kereta"required="">
</div>
</div>
</div>

<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>No.Parkir<code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="noParking" name="noParking" class="form-control" placeholder="Masukkan nombor parkir" required="">
</div>
</div>
</div>
</div>

<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Nama Taman <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="namaTaman" name="namaTaman" class="form-control" placeholder="Masukkan nama taman" required="">
</div>
</div>
</div>

<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Nama Jalan<code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="namaJalan" name="namaJalan" class="form-control" placeholder="Masukkan nama jalan" required="">
</div>
</div>
</div>
</div>

<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Dikeluarkan Oleh <code>*</code></b></label>
<div class="form-group">
<select id="staff1" name="staff" class="js-section form-control" multiple="multiple" required>
<option value="">Sila pilih penguatkuasa</option>
@foreach($staff as $s)
<option value="{{ $s->_id}}">[{{ $s->no_badan }}] {{ $s->full_name }}</option>
@endforeach
</select>
</div>
</div>

<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Tarikh & Masa Dikeluarkan <code>*</code></b></label>
<div class="form-group">
<div class="form-group">
<input type="datetime-local" name="tarikh_dikeluarkan" value="{{ old('tarikh_mula')}}" class="form-control">
</div>
</div>
</div>
</div>

<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Lokasi kejadian</b></label>
<div class="form-group">
<input type="text" name="lokasi_kejadian" class="form-control" value="-" />
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Butiran Kesalahan</b></label>
<div class="form-group">
<input type="text" name="butiran_kesalahan" class="form-control" value="-" />
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
</div>

<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Catatan</b></label>
<div class="form-group">
<input type="text" name="catatan" class="form-control" value="-" />
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
</div>

<hr>
<div class="row clearfix">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<button type="submit" name="hantar" id="hantar" class="btn btn-sm btn-outline-danger waves-effect f-right"> Simpan Kompaun</button>
</div>
</div>
</form>

+ 204
- 0
resources/views/main-dashboard/compound/_type/pelbagai_JPB.blade.php Datei anzeigen

@@ -0,0 +1,204 @@
<form action="{{ url('/main/manual/store/compound') }}" class="main cussPayment" method="POST" enctype="multipart/form-data">
<input type="hidden" name="_token" id="csrf-token" value="{{ Session::token() }}" />
<input type="hidden" name="Latlong" value="-" />
<input type="hidden" name="no_plate" value="-" />
<input type="hidden" name="jenisKompaun" value="Pelbagai" />

<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>No.Kompaun <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="kpd" name="kpd" class="form-control" placeholder="005360" required>
</div>
</div>
</div>
<!-- <div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Akta Kesalahan <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="akta" name="akta" class="form-control" placeholder="Nama yang dikompaunkan" value="-" readonly="">
</div>
</div>
</div> -->
</div>

<div class="row clearfix">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<label for="subject"><b>Seksyen Kesalahan <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<select id="seksyen" name="seksyen" class="js-section form-control" multiple="multiple" required>
<option value="">Sila pilih seksyen kesalahan</option>
@foreach($faulty as $f)
<option value="{{ $f->_id }}">[{{ $f->sketr }}] {{$f->nama}}</option>
@endforeach
</select>
</div>
</div>
</div>
</div>

<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Jabatan <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<select id="jabatan" name="jabatan" class="form-control" required="">
<option value="">Sila pilih jabatan</option>
</select>
</div>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Akta Kesalahan <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="akta" name="akta" class="form-control" placeholder="Nama yang dikompaunkan" value="-" readonly="">
</div>
</div>
</div>
</div>

<hr style="border-top: 2px dotted #8c8b8b;">
<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Nama</b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="namaP" name="namaP" class="form-control" placeholder="Nama yang dikompaunkan" value="-" required="">
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Identity</b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="noIc" name="noIc" class="form-control" placeholder="900000000000" value="-" required="">
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
</div>
</div>
<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Nama Syarikat</b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="namaS" name="namaS" class="form-control" placeholder="Syarikat Sdn Bhd" value="-" required="">
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Daftar No.Syarikat</b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="daftarNo" name="daftarNo" class="form-control" placeholder="Rcd4567" value="-" required="">
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
</div>
</div>
<div class="row clearfix">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<label for="subject"><b>Alamat</b></label>
<div class="form-group">
<div class="form-line">
<textarea type="text" id="alamat" name="alamat" class="form-control" placeholder="Alamat" required>-</textarea>
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
</div>
</div>

<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>No.Tel </b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="tel" name="tel" class="form-control" placeholder="0173408564" value="-">
</div>
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>No. Akaun Lesen</b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="lesen" name="lesen" class="form-control" placeholder="Masukkan no akaun lesen" value="-">
</div>
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
</div>

<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>No.Plat <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="no_plate" name="no_plate" class="form-control" placeholder="Masukkan nombor plat kereta" value="-">
</div>
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>No. Cukai Jalan <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="noCukaijalan" name="noCukaijalan" class="form-control" placeholder="Masukkan cukai jalan" value="-">
</div>
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
</div>

<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Dikeluarkan Oleh <code>*</code></b></label>
<div class="form-group">
<select id="staff" name="staff" class="js-section form-control" multiple="multiple" required>
<option value="">Sila pilih penguatkuasa</option>
@foreach($staff as $s)
<option value="{{ $s->_id}}">[{{ $s->no_badan }}] {{ $s->full_name }}</option>
@endforeach
</select>
</div>
</div>

<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Tarikh & Masa Dikeluarkan <code>*</code></b></label>
<div class="form-group">
<div class="form-group">
<input type="datetime-local" name="tarikh_dikeluarkan" value="{{ old('tarikh_mula')}}" class="form-control" required="">
</div>
</div>
</div>
</div>

<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Lokasi kejadian</b></label>
<div class="form-group">
<input type="text" name="lokasi_kejadian" class="form-control" value="-" />
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Catatan</b></label>
<div class="form-group">
<input type="text" name="catatan" class="form-control" value="-" />
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
</div>
<hr>
<div class="row clearfix">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<button type="submit" name="hantar" id="hantar" class="btn btn-sm btn-outline-danger waves-effect f-right"> Simpan Kompaun</button>
</div>
</div>
</form>

+ 204
- 0
resources/views/main-dashboard/compound/_type/pelbagai_KT.blade.php Datei anzeigen

@@ -0,0 +1,204 @@
<form action="{{ url('/main/manual/store/compound') }}" class="main cussPayment" method="POST" enctype="multipart/form-data">
<input type="hidden" name="_token" id="csrf-token" value="{{ Session::token() }}" />
<input type="hidden" name="Latlong" value="-" />
<input type="hidden" name="no_plate" value="-" />
<input type="hidden" name="jenisKompaun" value="Pelbagai" />

<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>No.Kompaun <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="kpd" name="kpd" class="form-control" placeholder="005360" required>
</div>
</div>
</div>
<!-- <div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Akta Kesalahan <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="akta" name="akta" class="form-control" placeholder="Nama yang dikompaunkan" value="-" readonly="">
</div>
</div>
</div> -->
</div>

<div class="row clearfix">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<label for="subject"><b>Seksyen Kesalahan <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<select id="seksyen" name="seksyen" class="js-section form-control" multiple="multiple" required>
<option value="">Sila pilih seksyen kesalahan</option>
@foreach($faulty as $f)
<option value="{{ $f->_id }}">[{{ $f->sketr }}] {{$f->nama}}</option>
@endforeach
</select>
</div>
</div>
</div>
</div>

<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Jabatan <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<select id="jabatan" name="jabatan" class="form-control" required="">
<option value="">Sila pilih jabatan</option>
</select>
</div>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Akta Kesalahan <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="akta" name="akta" class="form-control" value="-" readonly="">
</div>
</div>
</div>
</div>

<hr style="border-top: 2px dotted #8c8b8b;">
<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Nama</b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="namaP" name="namaP" class="form-control" value="-" required="">
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Identity</b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="noIc" name="noIc" class="form-control" placeholder="900000000000" value="-" required="">
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
</div>
</div>
<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Nama Syarikat</b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="namaS" name="namaS" class="form-control" placeholder="Syarikat Sdn Bhd" value="-" required="">
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Daftar No.Syarikat</b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="daftarNo" name="daftarNo" class="form-control" placeholder="Rcd4567" value="-" required="">
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
</div>
</div>
<div class="row clearfix">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<label for="subject"><b>Alamat</b></label>
<div class="form-group">
<div class="form-line">
<textarea type="text" id="alamat" name="alamat" class="form-control" placeholder="Alamat" required>-</textarea>
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
</div>
</div>

<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>No.Tel </b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="tel" name="tel" class="form-control" placeholder="0173408564" value="-">
</div>
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>No. Akaun Lesen</b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="lesen" name="lesen" class="form-control" placeholder="Masukkan no akaun lesen" value="-">
</div>
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
</div>

<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>No.Plat <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="no_plate" name="no_plate" class="form-control" placeholder="Masukkan nombor plat kereta" value="-">
</div>
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>No. Cukai Jalan <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="noCukaijalan" name="noCukaijalan" class="form-control" placeholder="Masukkan cukai jalan" value="-">
</div>
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
</div>

<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Dikeluarkan Oleh <code>*</code></b></label>
<div class="form-group">
<select id="staff" name="staff" class="js-section form-control" multiple="multiple" required>
<option value="">Sila pilih penguatkuasa</option>
@foreach($staff as $s)
<option value="{{ $s->_id}}">[{{ $s->no_badan }}] {{ $s->full_name }}</option>
@endforeach
</select>
</div>
</div>

<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Tarikh & Masa Dikeluarkan <code>*</code></b></label>
<div class="form-group">
<div class="form-group">
<input type="datetime-local" name="tarikh_dikeluarkan" value="{{ old('tarikh_mula')}}" class="form-control" required="">
</div>
</div>
</div>
</div>

<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Lokasi kejadian</b></label>
<div class="form-group">
<input type="text" name="lokasi_kejadian" class="form-control" value="-" />
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Catatan</b></label>
<div class="form-group">
<input type="text" name="catatan" class="form-control" value="-" />
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
</div>
<hr>
<div class="row clearfix">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<button type="submit" name="hantar" id="hantar" class="btn btn-sm btn-outline-danger waves-effect f-right"> Simpan Kompaun</button>
</div>
</div>
</form>

+ 204
- 0
resources/views/main-dashboard/compound/_type/pelbagai_LESEN.blade.php Datei anzeigen

@@ -0,0 +1,204 @@
<form action="{{ url('/main/manual/store/compound') }}" class="main cussPayment" method="POST" enctype="multipart/form-data">
<input type="hidden" name="_token" id="csrf-token" value="{{ Session::token() }}" />
<input type="hidden" name="Latlong" value="-" />
<input type="hidden" name="no_plate" value="-" />
<input type="hidden" name="jenisKompaun" value="Pelbagai" />

<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>No.Kompaun <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="kpd" name="kpd" class="form-control" placeholder="005360" required>
</div>
</div>
</div>
<!-- <div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Akta Kesalahan <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="akta" name="akta" class="form-control" placeholder="Nama yang dikompaunkan" value="-" readonly="">
</div>
</div>
</div> -->
</div>

<div class="row clearfix">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<label for="subject"><b>Seksyen Kesalahan <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<select id="seksyen" name="seksyen" class="js-section form-control" multiple="multiple" required>
<option value="">Sila pilih seksyen kesalahan</option>
@foreach($faulty as $f)
<option value="{{ $f->_id }}">[{{ $f->sketr }}] {{$f->nama}}</option>
@endforeach
</select>
</div>
</div>
</div>
</div>

<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Jabatan <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<select id="jabatan" name="jabatan" class="form-control" required="">
<option value="">Sila pilih jabatan</option>
</select>
</div>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Akta Kesalahan <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="akta" name="akta" class="form-control" value="-" readonly="">
</div>
</div>
</div>
</div>

<hr style="border-top: 2px dotted #8c8b8b;">
<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Nama</b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="namaP" name="namaP" class="form-control" placeholder="Nama yang dikompaunkan" value="-" required="">
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Identity</b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="noIc" name="noIc" class="form-control" placeholder="900000000000" value="-" required="">
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
</div>
</div>
<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Nama Syarikat</b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="namaS" name="namaS" class="form-control" placeholder="Syarikat Sdn Bhd" value="-" required="">
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Daftar No.Syarikat</b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="daftarNo" name="daftarNo" class="form-control" placeholder="Rcd4567" value="-" required="">
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
</div>
</div>
<div class="row clearfix">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<label for="subject"><b>Alamat</b></label>
<div class="form-group">
<div class="form-line">
<textarea type="text" id="alamat" name="alamat" class="form-control" placeholder="Alamat" required>-</textarea>
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
</div>
</div>

<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>No.Tel </b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="tel" name="tel" class="form-control" placeholder="0173408564" value="-">
</div>
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>No. Akaun Lesen</b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="lesen" name="lesen" class="form-control" placeholder="Masukkan no akaun lesen" value="-">
</div>
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
</div>

<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>No.Plat <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="no_plate" name="no_plate" class="form-control" placeholder="Masukkan nombor plat kereta" value="-">
</div>
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>No. Cukai Jalan <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="noCukaijalan" name="noCukaijalan" class="form-control" placeholder="Masukkan cukai jalan" value="-">
</div>
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
</div>

<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Dikeluarkan Oleh <code>*</code></b></label>
<div class="form-group">
<select id="staff" name="staff" class="js-section form-control" multiple="multiple" required>
<option value="">Sila pilih penguatkuasa</option>
@foreach($staff as $s)
<option value="{{ $s->_id}}">[{{ $s->no_badan }}] {{ $s->full_name }}</option>
@endforeach
</select>
</div>
</div>

<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Tarikh & Masa Dikeluarkan <code>*</code></b></label>
<div class="form-group">
<div class="form-group">
<input type="datetime-local" name="tarikh_dikeluarkan" value="{{ old('tarikh_mula')}}" class="form-control" required="">
</div>
</div>
</div>
</div>

<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Lokasi kejadian</b></label>
<div class="form-group">
<input type="text" name="lokasi_kejadian" class="form-control" value="-" />
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Catatan</b></label>
<div class="form-group">
<input type="text" name="catatan" class="form-control" value="-" />
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
</div>
<hr>
<div class="row clearfix">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<button type="submit" name="hantar" id="hantar" class="btn btn-sm btn-outline-danger waves-effect f-right"> Simpan Kompaun</button>
</div>
</div>
</form>

+ 204
- 0
resources/views/main-dashboard/compound/_type/pelbagai_PA.blade.php Datei anzeigen

@@ -0,0 +1,204 @@
<form action="{{ url('/main/manual/store/compound') }}" class="main cussPayment" method="POST" enctype="multipart/form-data">
<input type="hidden" name="_token" id="csrf-token" value="{{ Session::token() }}" />
<input type="hidden" name="Latlong" value="-" />
<input type="hidden" name="no_plate" value="-" />
<input type="hidden" name="jenisKompaun" value="Pelbagai" />

<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>No.Kompaun <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="kpd" name="kpd" class="form-control" placeholder="005360" required>
</div>
</div>
</div>
<!-- <div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Akta Kesalahan <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="akta" name="akta" class="form-control" placeholder="Nama yang dikompaunkan" value="-" readonly="">
</div>
</div>
</div> -->
</div>

<div class="row clearfix">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<label for="subject"><b>Seksyen Kesalahan <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<select id="seksyen" name="seksyen" class="js-section form-control" multiple="multiple" required>
<option value="">Sila pilih seksyen kesalahan</option>
@foreach($faulty as $f)
<option value="{{ $f->_id }}">[{{ $f->sketr }}] {{$f->nama}}</option>
@endforeach
</select>
</div>
</div>
</div>
</div>

<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Jabatan <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<select id="jabatan" name="jabatan" class="form-control" required="">
<option value="">Sila pilih jabatan</option>
</select>
</div>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Akta Kesalahan <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="akta" name="akta" class="form-control" value="-" readonly="">
</div>
</div>
</div>
</div>

<hr style="border-top: 2px dotted #8c8b8b;">
<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Nama</b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="namaP" name="namaP" class="form-control" value="-" required="">
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Identity</b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="noIc" name="noIc" class="form-control" placeholder="900000000000" value="-" required="">
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
</div>
</div>
<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Nama Syarikat</b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="namaS" name="namaS" class="form-control" placeholder="Syarikat Sdn Bhd" value="-" required="">
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Daftar No.Syarikat</b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="daftarNo" name="daftarNo" class="form-control" placeholder="Rcd4567" value="-" required="">
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
</div>
</div>
<div class="row clearfix">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<label for="subject"><b>Alamat</b></label>
<div class="form-group">
<div class="form-line">
<textarea type="text" id="alamat" name="alamat" class="form-control" placeholder="Alamat" required>-</textarea>
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
</div>
</div>

<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>No.Tel </b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="tel" name="tel" class="form-control" placeholder="0173408564" value="-">
</div>
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>No. Akaun Lesen</b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="lesen" name="lesen" class="form-control" value="-">
</div>
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
</div>

<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>No.Plat <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="no_plate" name="no_plate" class="form-control" placeholder="Masukkan nombor plat kereta" value="-">
</div>
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>No. Cukai Jalan <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="noCukaijalan" name="noCukaijalan" class="form-control" value="-">
</div>
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
</div>

<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Dikeluarkan Oleh <code>*</code></b></label>
<div class="form-group">
<select id="staff" name="staff" class="js-section form-control" multiple="multiple" required>
<option value="">Sila pilih penguatkuasa</option>
@foreach($staff as $s)
<option value="{{ $s->_id}}">[{{ $s->no_badan }}] {{ $s->full_name }}</option>
@endforeach
</select>
</div>
</div>

<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Tarikh & Masa Dikeluarkan <code>*</code></b></label>
<div class="form-group">
<div class="form-group">
<input type="datetime-local" name="tarikh_dikeluarkan" value="{{ old('tarikh_mula')}}" class="form-control" required="">
</div>
</div>
</div>
</div>

<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Lokasi kejadian</b></label>
<div class="form-group">
<input type="text" name="lokasi_kejadian" class="form-control" value="-" />
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Catatan</b></label>
<div class="form-group">
<input type="text" name="catatan" class="form-control" value="-" />
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
</div>
<hr>
<div class="row clearfix">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<button type="submit" name="hantar" id="hantar" class="btn btn-sm btn-outline-danger waves-effect f-right"> Simpan Kompaun</button>
</div>
</div>
</form>

+ 55
- 425
resources/views/main-dashboard/compound/compound_form.blade.php Datei anzeigen

@@ -90,432 +90,32 @@
<div class="form-line">
<select id="jenis" name="jenis" class="form-control" required>
<option value="">Sila pilih jenis kompaun</option>
<option value="pelbagai">Kompaun Pelbagai</option>
<option value="parking">Kompaun Petak Parkir</option>
<!-- <option value="pelbagai">Kompaun Pelbagai</option> -->
<option value="Parkir">Kompaun Petak Parkir</option>
<option value="Pelbagai_PA">Kompaun Pelbagai PA</option>
<option value="Pelbagai_JPB">Kompaun Pelbagai JPB</option>
<option value="Pelbagai_KT">Kompaun Pelbagai KT</option>
<option value="Pelbagai_LESEN">Kompaun Pelbagai LESEN</option>
</select>
</div>
</div>
</div>
</div>
<hr style="border-top: 2px dotted #8c8b8b;">
<div id="pelbagai">
<form action="{{ url('/main/manual/store/compound') }}" class="main cussPayment" method="POST" enctype="multipart/form-data">
<input type="hidden" name="_token" id="csrf-token" value="{{ Session::token() }}" />
<input type="hidden" name="Latlong" value="-" />
<input type="hidden" name="no_plate" value="-" />
<input type="hidden" name="jenisKompaun" value="Pelbagai" />
<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>No.KPD <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="kpd" name="kpd" class="form-control" placeholder="005360" required>
</div>
</div>
</div>
<!-- <div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Akta Kesalahan <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="akta" name="akta" class="form-control" placeholder="Nama yang dikompaunkan" value="-" readonly="">
</div>
</div>
</div> -->
</div>
<div class="row clearfix">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<label for="subject"><b>Seksyen Kesalahan <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<select id="seksyen" name="seksyen" class="js-section form-control" multiple="multiple" required>
<option value="">Sila pilih seksyen kesalahan</option>
@foreach($faulty as $f)
<option value="{{ $f->_id }}">[{{ $f->sketr }}] {{$f->nama}}</option>
@endforeach
</select>
</div>
</div>
</div>
</div>
<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Jabatan <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<select id="jabatan" name="jabatan" class="form-control" required="">
<option value="">Sila pilih jabatan</option>
</select>
</div>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Akta Kesalahan <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="akta" name="akta" class="form-control" placeholder="Nama yang dikompaunkan" value="-" readonly="">
</div>
</div>
</div>
</div>
<hr style="border-top: 2px dotted #8c8b8b;">
<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Nama</b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="namaP" name="namaP" class="form-control" placeholder="Nama yang dikompaunkan" value="-" required="">
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Identity</b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="noIc" name="noIc" class="form-control" placeholder="900000000000" value="-" required="">
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
</div>
</div>
<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Nama Syarikat</b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="namaS" name="namaS" class="form-control" placeholder="Syarikat Sdn Bhd" value="-" required="">
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Daftar No.Syarikat</b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="daftarNo" name="daftarNo" class="form-control" placeholder="Rcd4567" value="-" required="">
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
</div>
</div>
<div class="row clearfix">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<label for="subject"><b>Alamat</b></label>
<div class="form-group">
<div class="form-line">
<textarea type="text" id="alamat" name="alamat" class="form-control" placeholder="Alamat" required>-</textarea>
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
</div>
</div>
<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>No.Tel </b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="tel" name="tel" class="form-control" placeholder="0173408564" value="-">
</div>
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>No. Akaun Lesen</b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="lesen" name="lesen" class="form-control" placeholder="Masukkan no akaun lesen" value="-">
</div>
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
</div>
<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>No.Plat <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="no_plate" name="no_plate" class="form-control" placeholder="Masukkan nombor plat kereta" value="-">
</div>
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>No. Cukai Jalan <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="noCukaijalan" name="noCukaijalan" class="form-control" placeholder="Masukkan cukai jalan" value="-">
</div>
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
</div>
<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Dikeluarkan Oleh <code>*</code></b></label>
<div class="form-group">
<select id="staff" name="staff" class="js-section form-control" multiple="multiple" required>
<option value="">Sila pilih penguatkuasa</option>
@foreach($staff as $s)
<option value="{{ $s->_id}}">[{{ $s->no_badan }}] {{ $s->full_name }}</option>
@endforeach
</select>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Tarikh & Masa Dikeluarkan <code>*</code></b></label>
<div class="form-group">
<div class="form-group">
<input type="datetime-local" name="tarikh_dikeluarkan" value="{{ old('tarikh_mula')}}" class="form-control" required="">
</div>
</div>
</div>
</div>
<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Lokasi kejadian</b></label>
<div class="form-group">
<input type="text" name="lokasi_kejadian" class="form-control" value="-" />
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Butiran Kesalahan</b></label>
<div class="form-group">
<input type="text" name="butiran_kesalahan" class="form-control" value="-" />
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
</div>
<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Catatan</b></label>
<div class="form-group">
<input type="text" name="catatan" class="form-control" value="-" />
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
</div>
<hr>
<div class="row clearfix">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<button type="submit" name="hantar" id="hantar" class="btn btn-sm btn-outline-danger waves-effect f-right"> Simpan Kompaun</button>
</div>
</div>
</form>
</div>
<div id="pelbagai_PA">
@include('main-dashboard.compound._type.pelbagai_PA')
</div>
<div id="pelbagai_KT">
@include('main-dashboard.compound._type.pelbagai_KT')
</div>
<div id="pelbagai_JPB">
@include('main-dashboard.compound._type.pelbagai_JPB')
</div>
<div id="pelbagai_LESEN">
@include('main-dashboard.compound._type.pelbagai_LESEN')
</div>
<div id="petak">
<form action="{{ url('/main/manual/store/compound') }}" class="main cussPayment" method="POST" enctype="multipart/form-data">
<input type="hidden" name="_token" id="csrf-token" value="{{ Session::token() }}" />
<input type="hidden" name="Latlong" value="-" />
<input type="hidden" name="jenisKompaun" value="Parkir" />
<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>No.KPD <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="kpd" name="kpd" class="form-control" placeholder="005360" required>
</div>
</div>
</div>
<!-- <div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Akta Kesalahan <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="akta" name="akta" class="form-control" placeholder="Nama yang dikompaunkan" value="-" readonly="">
</div>
</div>
</div> -->
</div>
<div class="row clearfix">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<label for="subject"><b>Seksyen Kesalahan <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<select id="seksyen1" name="seksyen" class="js-section form-control" multiple="multiple" required>
<option value="">Sila pilih seksyen kesalahan</option>
@foreach($faulty as $f)
<option value="{{ $f->_id }}">[{{ $f->sketr }}] {{$f->nama}}</option>
@endforeach
</select>
</div>
</div>
</div>
</div>
<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Jabatan <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<select id="jabatan1" name="jabatan" class="form-control" required="">
<option value="">Sila pilih jabatan</option>
</select>
</div>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Akta Kesalahan <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="akta1" name="akta" class="form-control" placeholder="Nama yang dikompaunkan" value="-" readonly="">
</div>
</div>
</div>
</div>
<hr style="border-top: 2px dotted #8c8b8b;">
<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>No.Plat <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="no_plate" name="no_plate" class="form-control" placeholder="Masukkan nombor plat kereta" required="">
</div>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>No. Cukai Jalan <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="noCukaijalan" name="noCukaijalan" class="form-control" placeholder="Masukkan cukai jalan" required="">
</div>
</div>
</div>
</div>
<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Model Kenderaan <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="modelKenderaan" name="modelKenderaan" class="form-control" placeholder="Masukkan model kereta" required="">
</div>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Jenis Kenderaan <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="jenisKenderaan" name="jenisKenderaan" class="form-control" placeholder="Masukkan jenis kereta" required="">
</div>
</div>
</div>
</div>
<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Warna Kenderaan <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="warnakenderaan" name="warnakenderaan" class="form-control" placeholder="Masukkan warna kereta"required="">
</div>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>No.Parkir<code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="noParking" name="noParking" class="form-control" placeholder="Masukkan nombor parkir" required="">
</div>
</div>
</div>
</div>
<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Nama Taman <code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="namaTaman" name="namaTaman" class="form-control" placeholder="Masukkan nama taman" required="">
</div>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Nama Jalan<code>*</code></b></label>
<div class="form-group">
<div class="form-line">
<input type="text" id="namaJalan" name="namaJalan" class="form-control" placeholder="Masukkan nama jalan" required="">
</div>
</div>
</div>
</div>
<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Dikeluarkan Oleh <code>*</code></b></label>
<div class="form-group">
<select id="staff1" name="staff" class="js-section form-control" multiple="multiple" required>
<option value="">Sila pilih penguatkuasa</option>
@foreach($staff as $s)
<option value="{{ $s->_id}}">[{{ $s->no_badan }}] {{ $s->full_name }}</option>
@endforeach
</select>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Tarikh & Masa Dikeluarkan <code>*</code></b></label>
<div class="form-group">
<div class="form-group">
<input type="datetime-local" name="tarikh_dikeluarkan" value="{{ old('tarikh_mula')}}" class="form-control">
</div>
</div>
</div>
</div>
<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Lokasi kejadian</b></label>
<div class="form-group">
<input type="text" name="lokasi_kejadian" class="form-control" value="-" />
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Butiran Kesalahan</b></label>
<div class="form-group">
<input type="text" name="butiran_kesalahan" class="form-control" value="-" />
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
</div>
<div class="row clearfix">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="subject"><b>Catatan</b></label>
<div class="form-group">
<input type="text" name="catatan" class="form-control" value="-" />
<code>Sila gunakan '-' jika tidak berkaitan</code>
</div>
</div>
</div>
<hr>
<div class="row clearfix">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<button type="submit" name="hantar" id="hantar" class="btn btn-sm btn-outline-danger waves-effect f-right"> Simpan Kompaun</button>
</div>
</div>
</form>
@include('main-dashboard.compound._type.parkir')
</div>
</div>
</div>
@@ -552,7 +152,10 @@
$(document).ready(function() {
$('#pelbagai').hide();
$('#pelbagai_PA').hide();
$('#pelbagai_KT').hide();
$('#pelbagai_JPB').hide();
$('#pelbagai_LESEN').hide();
$('#petak').hide();
var origin = window.location.origin;
@@ -637,12 +240,39 @@
$('#jenis').change(function(){
if( $(this).val()==""){
$('#petak').hide();
$('#pelbagai').hide();
}else if($(this).val()=="pelbagai"){
$('#pelbagai_PA').hide();
$('#pelbagai_KT').hide();
$('#pelbagai_JPB').hide();
$('#pelbagai_LESEN').hide();
}else if($(this).val()=="Pelbagai_PA"){
$('#petak').hide();
$('#pelbagai_KT').hide();
$('#pelbagai_JPB').hide();
$('#pelbagai_LESEN').hide();
$('#pelbagai_PA').show();
}else if($(this).val()=="Pelbagai_KT"){
$('#petak').hide();
$('#pelbagai_PA').hide();
$('#pelbagai_JPB').hide();
$('#pelbagai_LESEN').hide();
$('#pelbagai_KT').show();
}else if($(this).val()=="Pelbagai_JPB"){
$('#petak').hide();
$('#pelbagai_KT').hide();
$('#pelbagai_PA').hide();
$('#pelbagai_LESEN').hide();
$('#pelbagai_JPB').show();
}else if($(this).val()=="Pelbagai_LESEN"){
$('#petak').hide();
$('#pelbagai').show();
}else if($(this).val()=="parking"){
$('#pelbagai').hide();
$('#pelbagai_KT').hide();
$('#pelbagai_JPB').hide();
$('#pelbagai_PA').hide();
$('#pelbagai_LESEN').show();
}else if($(this).val()=="Parkir"){
$('#pelbagai_PA').hide();
$('#pelbagai_KT').hide();
$('#pelbagai_JPB').hide();
$('#pelbagai_LESEN').hide();
$('#petak').show();
}
});

+ 206
- 0
resources/views/main-dashboard/report/backlog.blade.php Datei anzeigen

@@ -0,0 +1,206 @@
@extends('layout.master', ['uid' => $user->_id, 'token' => $user->token_firebase])
@section('page_title', 'Kompaun')
@section('sub_page_title', '')
@section('name', $user->StaffDetail->full_name)
@section('img_profile', $user->StaffDetail->profile_img)

@section('content')
<style type="text/css">
select.form-control, select.form-control:focus, select.form-control:hover {
border: 1px solid #ccc !important;
height: auto !important;
}
.glyphicon { margin-right:10px; }
th { font-weight: 600; text-align: center}
table.dataTable.nowrap th, table.dataTable.nowrap td {
white-space: pre-line !important;
}
table.nowrap th, table.nowrap td {
white-space: pre-line !important;
}
</style>

<div class="inner-page">
<div class="row">
<div class="col-md-2">
<div class="card">
<div class="card-block">
<div class="form-group" style="margin-top: 1.25em">
<label><b>Tahun <code>*</code></b></label>
<select name="tahun" id="tahun" class="form-control" required>
<option value="null">Pilih tahun</option>
<option value="2016">2016</option>
<option value="2017">2017</option>
<option value="2018">2018</option>
<option value="2019">2019</option>
<option value="2020">2020</option>
</select>
</div>
<div class="form-group" style="margin-top: 1.25em">
<label><b>Jabatan <code>*</code></b></label>
<select name="jabatan" id="jabatan" class="form-control" required>
<option value="null">Pilih jabatan</option>
@foreach($department as $d)
<option value="{{ $d->_id }}">{{ $d->jbkod }}</option>
@endforeach
</select>
</div>
<div class="form-group">
<button id="jana" class="btn btn-info btn-block waves-effect waves-light">Jana Report</button>
</div>
</div>
</div>
</div>
<div class="col-sm-10">
<div class="card">
<div class="card-header">
<h5>Laporan Tunggakan Tahunan</h5>
<div id="link" style="float:right"></div>
</div>
<div class="card-block">
<!-- <div id='bal'>balance pada tahun </div> -->
<div class="dt-responsive table-responsive">
<table id="reportTt" class="table table-sm table-striped table-bordered nowrap" style="width:100%">
<thead>
<tr>
<th>BULAN</th>
<th id='bal' style="width:17%">BAKI </th>
<th>KUTIPAN BULANAN (RM)</th>
<th>JUMLAH KOMPAUN BAYAR</th>
<th>KUTIPAN TERKUMPUL (RM)</th>
<th>BAKI TUNGGAKAN (RM)</th>
<th>BAKI BELUM BAYAR</th>
<th>JUMLAH KURANG (RM)</th>
<th>% KUTIPAN</th>
<th>% TERKUMPUL</th>
</tr>
</thead>
<tfoot>
<tr>
<th></th>
<th>JUMLAH</th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
</tr>
</tfoot>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@endsection

@section('external_js')
<script type="text/javascript">

// var current_id = "{{ $user->_id }}";
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
var table, test;
$(document).ready(function() {

table = $('#reportTt').DataTable({
"ordering": false,
"searching": false,
"lengthChange": false,
"pageLength": -1,
"paging": false,
"processing": true,
"serverSide": true,
"ajax": {
"url": "{{ url('api/get/backlog-compound') }}",
"data": {
"year": function() { return $('#tahun').val() },
"jabatan": function() { return $('#jabatan').val() },
"current_id": '',
}
},
"columns": [
{ "data": "bulan", "name": "bulan" }, //1
{ "data": "space", "name": "space" }, //2
{ "data": "kutipan_bulanan", "name": "kutipan_bulanan" }, //3
{ "data": "jumlah_kompaun_bayar", "name": "jumlah_kompaun_bayar" }, //4
{ "data": "kutipan_terkumpul", "name": "kutipan_terkumpul" }, //5
{ "data": "baki_tunggakan", "name": "baki_tunggakan" }, //6
{ "data": "baki_belum_bayar", "name": "baki_belum_bayar" }, //7
{ "data": "jumlah_kurang", "name": "jumlah_kurang" }, //8
{ "data": "_kutipan", "name": "_kutipan" }, //9
{ "data": "_terkumpul", "name": "_terkumpul" }, //10
],
"rowCallback": function( row, data ) {
var keping, jumlah;
jumlah = parseInt(table.cell(0,2).data()) + parseInt(table.cell(0,5).data());
keping = parseInt(table.cell(0,3).data()) + parseInt(table.cell(0,6).data());

$('#bal').html("BAKI PADA 1.1." + $('#tahun').val() + " \n " + jumlah + " \n " + keping);
},
"footerCallback": function(row, data, start, end, display) {
var api = this.api();

var kutipan_bulanan,jum_kompaun_bayar,jum_kurang;

test = 8;

kutipan_bulanan = api.column( 2 ).data().reduce( function (a, b) {
return parseFloat(a) + parseFloat(b);
}, 0 );
$( api.column( 2 ).footer() ).html(kutipan_bulanan);

jum_kompaun_bayar = api.column( 3 ).data().reduce( function (a, b) {
return parseFloat(a) + parseFloat(b);
}, 0 );
$( api.column( 3 ).footer() ).html(jum_kompaun_bayar);

jum_kurang = api.column( 7 ).data().reduce( function (a, b) {
return parseFloat(a) + parseFloat(b);
}, 0 );
$( api.column( 7 ).footer() ).html(jum_kurang);

},
"drawCallback": function(settings) {
var api = this.api();

// Output the data for the visible rows to the browser's console
var data = api.rows( {page:'current'} ).data().toArray();
if (data && data.length > 0) {
var link = "{{ url('main/export/report/backlog') }}/"+$('#tahun').val()+"/"+$('#jabatan').val();
$('#link').html('<a target="_blank" href="'+link+'" class="btn btn-primary btn-sm waves-effect waves-light">Excel</a>');
}
},
});

$('#jana').on('click', function(e){
e.preventDefault();

// console.log(" data " + $('#tahun').val()+ " dan " + $('#jabatan').val());
$('#bal').html('BAKI');

if($('#tahun').val() == 'null' || $('#jabatan').val() == 'null'){
alert('Sila pilih tahun dan jabatan');
}else {
table.ajax.reload();
}
});
});
</script>
@endsection

+ 228
- 0
resources/views/main-dashboard/report/compound_index.blade.php Datei anzeigen

@@ -0,0 +1,228 @@
@extends('layout.master', ['uid' => $user->_id, 'token' => $user->token_firebase])
@section('page_title', 'Kompaun')
@section('sub_page_title', '')
@section('name', $user->StaffDetail->full_name)
@section('img_profile', $user->StaffDetail->profile_img)

@section('content')
<style type="text/css">
select.form-control, select.form-control:focus, select.form-control:hover {
border: 1px solid #ccc !important;
height: auto !important;
}

.panel-group .panel {
margin-bottom: 0;
overflow: hidden;
border-radius: 4px;
}
.panel-default {
border-color: #ddd;
}
.panel-default>.panel-heading {
color: #333;
background-color: #f5f5f5;
border-color: #ddd;
}
.panel-title {
margin-top: 0;
margin-bottom: 0;
font-size: 16px;
color: inherit;
}

.panel-body .table>thead>tr>th, .panel-body .table>tbody>tr>th, .panel-body .table>tfoot>tr>th, .panel-body .table>thead>tr>td, .panel-body .table>tbody>tr>td, .panel-body .table>tfoot>tr>td {
padding: 8px;
line-height: 1.428571429;
vertical-align: top;
border-top: 1px solid #ddd;
}
.glyphicon { margin-right:10px; }
.panel-body { padding:0px; }
.panel-body table tr td { padding-left: 15px }
.panel-body .table {margin-bottom: 0px; }

th { font-weight: 600; text-align: center}
table.dataTable.nowrap th, table.dataTable.nowrap td {
white-space: pre-line !important;
}
table.nowrap th, table.nowrap td {
white-space: pre-line !important;
}
</style>

<div class="inner-page">
<div class="row">
<div class="col-md-12">
<div class="card">
<div class="card-block">
<!-- <form class="main"> -->

<div class="row clearfix">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<label><input id="checkDate" type="checkbox" />&nbsp;<b>Tarikh</b></label>
</div>
<div class="col-lg-3">
<input type="date" id="start_date" class=" form-control form-control-sm" value="" />
</div>
<span><b>-</b></span>
<div class="col-lg-3">
<input type="date" id="end_date" class="form-control form-control-sm" value="" />
</div>
</div>
<div class="form-group" style="margin-top: 1.25em">
<button type="submit" id="jana" class="btn btn-info btn-sm waves-effect waves-light">Jana Report</button>
</div>

<!-- </form> -->
</div>
</div>
</div>
</div>

<div class="row">
<div class="col-sm-12">
<div class="card">
<div class="card-header">
<h5>Laporan Pengeluaran Kompaun Mengikut Kesalahan</h5>
</div>
<div class="card-block">
<div class="dt-responsive table-responsive">
<table id="report" class="table table-sm table-striped table-bordered nowrap" style="width:100%">
<thead>
<tr>
<th width="20">#</th>
<th>Kesalahan</th>
<th width="80">Jumlah Kompaun Keluar</th>
<th width="80">Amaun Kompaun (RM)</th>
<th width="80">Jumlah Bayar</th>
<th width="80">Amaun Bayar (RM)</th>
<th width="80">Jumlah Kompaun Belum Bayar</th>
<th width="80">Amaun Tungakkan (RM)</th>
<th width="80">Kompaun Batal</th>
<th width="80">Amaun Batal (RM)</th>
<th width="80">Kompaun Kurang</th>
<th width="80">Amaun Kurang (RM)</th>
</tr>
</thead>
<tfoot>
<tr>
<th width="20">#</th>
<th>Kesalahan</th>
<th width="80">Jumlah Kompaun Keluar</th>
<th width="80">Amaun Kompaun (RM)</th>
<th width="80">Jumlah Bayar</th>
<th width="80">Amaun Bayar (RM)</th>
<th width="80">Jumlah Kompaun Belum Bayar</th>
<th width="80">Amaun Tungakkan (RM)</th>
<th width="80">Kompaun Batal</th>
<th width="80">Amaun Batal (RM)</th>
<th width="80">Kompaun Kurang</th>
<th width="80">Amaun Kurang (RM)</th>
</tr>
</tfoot>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
@endsection

@section('external_js')
<script type="text/javascript">
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});

$(document).ready(function() {
var origin = window.location.origin;

$(".theme-loader").animate({
opacity: "0"
},1000);

setTimeout(function() {
$(".theme-loader").remove();
}, 800);

var checkdate = false;
$('#checkDate').change(function () {
checkdate = !checkdate;

if(checkdate){
$('#start_date').prop('required',true);
}else{
$('#start_date').prop('required',false);
}
});

$('#jana').click(function () {

$('#report').DataTable().clear().destroy();

var url = "";

if($('#start_date').val() == '' && checkdate == false){
url = "{{ url('api/report/compound/list/null/null') }}";
}else if($('#start_date').val() != '' && checkdate == true){
if($('#end_date').val() == ''){
url = "{{ url('api/report/compound/list') }}/"+$('#start_date').val()+"/null";
}else{
url = "{{ url('api/report/compound/list') }}/"+$('#start_date').val()+"/"+$('#end_date').val();
}
}

var table = $('#report').DataTable({
// "lengthMenu": [[50, 100, 200, -1], [50, 100, 200, "All"]],
"pageLength": -1,
"dom": "Bfrtip",
"serverSide": true,
"processing": true,
"ajax": url,
"columns": [
{ "data": "DT_RowIndex","name": "DT_RowIndex"},
{ "data": "kesalahan","name": "kesalahan"},
{ "data": "jumlahK","name": "jumlahK"},
{ "data": "amaunK", "name": "amaunK" },
{ "data": "jumlahB", "name": "jumlahB" },
{ "data": "amaunB", "name": "amaunB" },
{ "data": "belumB", "name": "belumB"},
{ "data": "amaunT", "name": "amaunT"},
{ "data": "kBatal","name": "kBatal"},
{ "data": "amaunBatal","name": "amaunBatal"},
{ "data": "kompaunKurang","name": "kompaunKurang"},
{ "data": "amaunKurang","name": "amaunKurang"},
],
"language": {
"paginate": {
"previous": "Sebelumnya",
"next": "Seterusnya"
},
"sLengthMenu": "Tunjukkan _MENU_ entri",
"zeroRecords": "Tiada Data Ditemui",
"infoEmpty": "Tiada Rekod Yang Wujud",
"infoFiltered": "(Ditapis daripada _MAX_ jumlah rekod)",
"info": "Tunjuk _START_ hingga _END_ daripada _TOTAL_ entri",
"sSearch": "Cari:",
},
"buttons": [{
"extend": "collection",
"text": "Eksport",
"buttons": [
"copy",
'excel',
'csv',
'pdf',
'print'
]
}]
});
});
});
</script>
@endsection

+ 443
- 0
resources/views/main-dashboard/report/enforcer.blade.php Datei anzeigen

@@ -0,0 +1,443 @@
@extends('layout.master', ['uid' => $user->_id, 'token' => $user->token_firebase])
@section('page_title', 'Kompaun')
@section('sub_page_title', '')
@section('name', $user->StaffDetail->full_name)
@section('img_profile', $user->StaffDetail->profile_img)

@section('content')
<style type="text/css">
select.form-control, select.form-control:focus, select.form-control:hover {
border: 1px solid #ccc !important;
height: auto !important;
}
.glyphicon { margin-right:10px; }
th { font-weight: 600; text-align: center}
table.dataTable.nowrap th, table.dataTable.nowrap td {
white-space: pre-line !important;
}
table.nowrap th, table.nowrap td {
white-space: pre-line !important;
}
</style>

<div class="inner-page">
<div class="row">
<div class="col-md-2">
<div class="card">
<div class="card-block">
<div class="form-group" style="margin-top: 1.25em">
<label><b>Tahun <code>*</code></b></label>
<select name="tahun" id="tahun" class="form-control" required>
<option value="null">Pilih tahun</option>
<option value="2016">2016</option>
<option value="2017">2017</option>
<option value="2018">2018</option>
<option value="2019">2019</option>
<option value="2020">2020</option>
</select>
</div>
<div class="form-group" style="margin-top: 1.25em">
<label><b>Jabatan <code>*</code></b></label>
<select name="jabatan" id="jabatan" class="form-control" required>
<option value="null">Pilih jabatan</option>
@foreach($department as $d)
<option value="{{ $d->_id }}">{{ $d->jbkod }}</option>
@endforeach
</select>
</div>
<div class="form-group">
<button id="jana" class="btn btn-info btn-block waves-effect waves-light">Jana Report</button>
</div>
</div>
</div>
</div>
<div class="col-sm-10">
<div class="card">
<div class="card-header">
<h5>Statistik Pengeluaran Kompaun</h5>
<div id="link" style="float:right"></div>
</div>
<div class="card-block">
<div class="row m-b-30">
<div class="col-lg-12 col-xl-12">
<!-- Nav tabs -->
<ul class="nav nav-tabs md-tabs" role="tablist">
<li class="nav-item">
<a class="nav-link active" data-toggle="tab" href="#keping" role="tab">Keping</a>
<div class="slide"></div>
</li>
<li class="nav-item">
<a class="nav-link" data-toggle="tab" href="#jumlah" role="tab">Jumlah</a>
<div class="slide"></div>
</li>
</ul>

<!-- Tab panes -->
<div class="tab-content card-block">
<div class="tab-pane active" id="keping" role="tabpanel">
<div class="dt-responsive table-responsive">
<table id="reportK" class="table table-sm table-striped table-bordered nowrap" style="width:100%">
<thead>
<tr>
<th rowspan="2">BIL</th>
<th rowspan="2">NAMA ANGGOTA</th>
<th colspan="12">Bulan</th>
<th rowspan="2">JUM</th>
</tr>
<tr>
<th>JAN</th>
<th>FEB</th>
<th>MAC</th>
<th>APRIL</th>
<th>MEI</th>
<th>JUN</th>
<th>JULAI</th>
<th>OGOS</th>
<th>SEPT</th>
<th>OKT</th>
<th>NOV</th>
<th>DIS</th>
</tr>
</thead>
<tfoot>
<tr>
<th></th>
<th>JUMLAH BESAR</th>
<th>FEB</th>
<th>MAC</th>
<th>APRIL</th>
<th>MEI</th>
<th>JUN</th>
<th>JULAI</th>
<th>OGOS</th>
<th>SEPT</th>
<th>OKT</th>
<th>NOV</th>
<th>DIS</th>
<th>DIS</th>
<th>JUM</th>
</tr>
</tfoot>
</table>
</div>
</div>
<div class="tab-pane" id="jumlah" role="tabpanel">
<div class="dt-responsive table-responsive">
<table id="reportJ" class="table table-sm table-striped table-bordered nowrap" style="width:100%">
<thead>
<tr>
<th rowspan="2">BIL</th>
<th rowspan="2">NAMA ANGGOTA</th>
<th colspan="12">Bulan</th>
<th rowspan="2">JUM</th>
</tr>
<tr>
<th>JAN</th>
<th>FEB</th>
<th>MAC</th>
<th>APRIL</th>
<th>MEI</th>
<th>JUN</th>
<th>JULAI</th>
<th>OGOS</th>
<th>SEPT</th>
<th>OKT</th>
<th>NOV</th>
<th>DIS</th>
</tr>
</thead>
<tfoot>
<tr>
<th></th>
<th>JUMLAH BESAR</th>
<th>FEB</th>
<th>MAC</th>
<th>APRIL</th>
<th>MEI</th>
<th>JUN</th>
<th>JULAI</th>
<th>OGOS</th>
<th>SEPT</th>
<th>OKT</th>
<th>NOV</th>
<th>DIS</th>
<th>DIS</th>
<th>JUM</th>
</tr>
</tfoot>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@endsection

@section('external_js')
<script type="text/javascript">

var current_id = "{{ $user->_id }}";
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});

var table;
$(document).ready(function() {

table1 = $('#reportK').DataTable({
"ordering": false,
"searching": false,
"lengthChange": false,
"pageLength": -1,
"paging": false,
"processing": true,
"serverSide": true,
"ajax": {
"url": "{{ url('api/get/statistic-compound/enforcer') }}",
"data": {
"year": function() { return $('#tahun').val() },
"jabatan": function() { return $('#jabatan').val() },
"jenis": "keping",
"current_id": current_id,
}
},
"columns": [
{ "data": "index", "name": "index" },
{ "data" : "name", "name": "name" },
{ "data": "jan", "jan": "kpd" },
{ "data": "feb", "name": "feb" },
{ "data": "mac", "name": "mac" },
{ "data": "apr", "name": "apr" },
{ "data": "mei", "name": "mei" },
{ "data": "jun", "name": "jun" },
{ "data": "july", "name": "july" },
{ "data": "ogos", "name": "ogos" },
{ "data": "sept", "name": "sept" },
{ "data": "okt", "name": "okt" },
{ "data": "nov", "name": "nov" },
{ "data": "dis", "name": "dis" },
{ "data": "total", "name": "total" },
],
"columnDefs": [
{
"render": function ( data, type, row, meta ) {
return (meta.row+1);
},
"targets": 0,
},
],
"footerCallback": function(row, data, start, end, display) {
var api = this.api();

var jan,feb,mar,apr,mei,jun,jul,ogos,sept,okt,nov,dis,jum;
jan = api.column( 2 ).data().reduce( function (a, b) {
return parseFloat(a) + parseFloat(b);
}, 0 );
$( api.column( 2 ).footer() ).html(jan);

feb = api.column( 3 ).data().reduce( function (a, b) {
return parseFloat(a) + parseFloat(b);
}, 0 );
$( api.column( 3 ).footer() ).html(feb);

mar = api.column( 4 ).data().reduce( function (a, b) {
return parseFloat(a) + parseFloat(b);
}, 0 );
$( api.column( 4 ).footer() ).html(mar);

apr = api.column( 5 ).data().reduce( function (a, b) {
return parseFloat(a) + parseFloat(b);
}, 0 );
$( api.column( 5 ).footer() ).html(apr);

mei = api.column( 6 ).data().reduce( function (a, b) {
return parseFloat(a) + parseFloat(b);
}, 0 );
$( api.column( 6 ).footer() ).html(mei);

jun = api.column( 7 ).data().reduce( function (a, b) {
return parseFloat(a) + parseFloat(b);
}, 0 );
$( api.column( 7 ).footer() ).html(jun);

jul = api.column( 8 ).data().reduce( function (a, b) {
return parseFloat(a) + parseFloat(b);
}, 0 );
$( api.column( 8 ).footer() ).html(jul);

ogos = api.column( 9 ).data().reduce( function (a, b) {
return parseFloat(a) + parseFloat(b);
}, 0 );
$( api.column( 9 ).footer() ).html(ogos);

sept = api.column( 10 ).data().reduce( function (a, b) {
return parseFloat(a) + parseFloat(b);
}, 0 );
$( api.column( 10 ).footer() ).html(sept);

okt = api.column( 11 ).data().reduce( function (a, b) {
return parseFloat(a) + parseFloat(b);
}, 0 );
$( api.column( 11 ).footer() ).html(okt);

nov = api.column( 12 ).data().reduce( function (a, b) {
return parseFloat(a) + parseFloat(b);
}, 0 );
$( api.column( 12 ).footer() ).html(nov);

dis = api.column( 13 ).data().reduce( function (a, b) {
return parseFloat(a) + parseFloat(b);
}, 0 );
$( api.column( 13 ).footer() ).html(dis);

jum = api.column( 14 ).data().reduce( function (a, b) {
return parseFloat(a) + parseFloat(b);
}, 0 );
$( api.column( 14 ).footer() ).html(jum);
},
"drawCallback": function(settings) {
var api = this.api();
// Output the data for the visible rows to the browser's console
var data = api.rows( {page:'current'} ).data().toArray();
if (data && data.length > 0) {
var link = "{{ url('main/export/report/enforcer') }}/"+$('#tahun').val()+"/"+$('#jenis').val()+"/"+$('#jabatan').val();
$('#link').html('<a target="_blank" href="'+link+'" class="btn btn-primary btn-sm waves-effect waves-light">Excel</a>');
}
},
});

table2 = $('#reportJ').DataTable({
"ordering": false,
"searching": false,
"lengthChange": false,
"pageLength": -1,
"paging": false,
"processing": true,
"serverSide": true,
"ajax": {
"url": "{{ url('api/get/statistic-compound/enforcer') }}",
"data": {
"year": function() { return $('#tahun').val() },
"jabatan": function() { return $('#jabatan').val() },
"jenis": "jumlah",
"current_id": current_id,
}
},
"columns": [
{ "data": "index", "name": "index" },
{ "data" : "name", "name": "name" },
{ "data": "jan", "jan": "kpd" },
{ "data": "feb", "name": "feb" },
{ "data": "mac", "name": "mac" },
{ "data": "apr", "name": "apr" },
{ "data": "mei", "name": "mei" },
{ "data": "jun", "name": "jun" },
{ "data": "july", "name": "july" },
{ "data": "ogos", "name": "ogos" },
{ "data": "sept", "name": "sept" },
{ "data": "okt", "name": "okt" },
{ "data": "nov", "name": "nov" },
{ "data": "dis", "name": "dis" },
{ "data": "total", "name": "total" },
],
"columnDefs": [
{
"render": function ( data, type, row, meta ) {
return (meta.row+1);
},
"targets": 0,
},
],
"footerCallback": function(row, data, start, end, display) {
var api = this.api();

var jan,feb,mar,apr,mei,jun,jul,ogos,sept,okt,nov,dis,jum;
jan = api.column( 2 ).data().reduce( function (a, b) {
return parseFloat(a) + parseFloat(b);
}, 0 );
$( api.column( 2 ).footer() ).html(jan);

feb = api.column( 3 ).data().reduce( function (a, b) {
return parseFloat(a) + parseFloat(b);
}, 0 );
$( api.column( 3 ).footer() ).html(feb);

mar = api.column( 4 ).data().reduce( function (a, b) {
return parseFloat(a) + parseFloat(b);
}, 0 );
$( api.column( 4 ).footer() ).html(mar);

apr = api.column( 5 ).data().reduce( function (a, b) {
return parseFloat(a) + parseFloat(b);
}, 0 );
$( api.column( 5 ).footer() ).html(apr);

mei = api.column( 6 ).data().reduce( function (a, b) {
return parseFloat(a) + parseFloat(b);
}, 0 );
$( api.column( 6 ).footer() ).html(mei);

jun = api.column( 7 ).data().reduce( function (a, b) {
return parseFloat(a) + parseFloat(b);
}, 0 );
$( api.column( 7 ).footer() ).html(jun);

jul = api.column( 8 ).data().reduce( function (a, b) {
return parseFloat(a) + parseFloat(b);
}, 0 );
$( api.column( 8 ).footer() ).html(jul);

ogos = api.column( 9 ).data().reduce( function (a, b) {
return parseFloat(a) + parseFloat(b);
}, 0 );
$( api.column( 9 ).footer() ).html(ogos);

sept = api.column( 10 ).data().reduce( function (a, b) {
return parseFloat(a) + parseFloat(b);
}, 0 );
$( api.column( 10 ).footer() ).html(sept);

okt = api.column( 11 ).data().reduce( function (a, b) {
return parseFloat(a) + parseFloat(b);
}, 0 );
$( api.column( 11 ).footer() ).html(okt);

nov = api.column( 12 ).data().reduce( function (a, b) {
return parseFloat(a) + parseFloat(b);
}, 0 );
$( api.column( 12 ).footer() ).html(nov);

dis = api.column( 13 ).data().reduce( function (a, b) {
return parseFloat(a) + parseFloat(b);
}, 0 );
$( api.column( 13 ).footer() ).html(dis);

jum = api.column( 14 ).data().reduce( function (a, b) {
return parseFloat(a) + parseFloat(b);
}, 0 );
$( api.column( 14 ).footer() ).html(jum);
},
});

$('#jana').on('click', function(e){
e.preventDefault();

if($('#tahun').val() == 'null' || $('#jabatan').val() == 'null'){
alert('Sila pilih tahun dan jabatan');
}else {
table1.ajax.reload();
table2.ajax.reload();
}
});
});
</script>
@endsection

+ 258
- 0
resources/views/main-dashboard/report/faulty.blade.php Datei anzeigen

@@ -0,0 +1,258 @@
@extends('layout.master', ['uid' => $user->_id, 'token' => $user->token_firebase])
@section('page_title', 'Kompaun')
@section('sub_page_title', '')
@section('name', $user->StaffDetail->full_name)
@section('img_profile', $user->StaffDetail->profile_img)

@section('content')
<style type="text/css">
select.form-control, select.form-control:focus, select.form-control:hover {
border: 1px solid #ccc !important;
height: auto !important;
}
.glyphicon { margin-right:10px; }
th { font-weight: 600; text-align: center}
table.dataTable.nowrap th, table.dataTable.nowrap td {
white-space: pre-line !important;
}
table.nowrap th, table.nowrap td {
white-space: pre-line !important;
}
</style>

<div class="inner-page">
<div class="row">
<div class="col-md-2">
<div class="card">
<div class="card-block">
<div class="form-group" style="margin-top: 1.25em">
<label><b>Dari Tarikh <code>*</code></b></label>
<input type="date" name="start_date" id="start_date" class="form-control" required>
</div>
<div class="form-group" style="margin-top: 1.25em">
<label><b>Hingga Tarikh <code>*</code></b></label>
<input type="date" name="end_date" id="end_date" class="form-control" required>
</div>
<div class="form-group" style="margin-top: 1.25em">
<label><b>Jabatan <code>*</code></b></label>
<select name="jabatan" id="jabatan" class="form-control" required>
<option value="null">Pilih jabatan</option>
@foreach($department as $d)
<option value="{{ $d->_id }}">{{ $d->jbkod }}</option>
@endforeach
</select>
</div>
<div class="form-group">
<button id="jana" class="btn btn-info btn-block waves-effect waves-light">Jana Report</button>
</div>
</div>
</div>
</div>
<div class="col-sm-10">
<div class="card">
<div class="card-header">
<h5>Statistik Pengeluaran Kompaun Mengikut Kesalahan</h5>
<div id="link" style="float:right"></div>
</div>
<div class="card-block">
<div class="row m-b-30">
<div class="col-lg-12 col-xl-12">
@include('main-dashboard.report.part.faulty_nav')

<!-- Tab panes -->
<div class="tab-content card-block">
@foreach($month as $key => $m)
<div class="tab-pane {{ $key == 0 ? 'active' : '' }}" id="{{ $m }}" role="tabpanel">
<div class="dt-responsive table-responsive">
<table id="tbl_{{$m}}" class="table table-sm table-striped table-bordered nowrap" style="width:100%">
<thead>
<tr>
<th>BIL</th>
<th width="319">KESALAHAN</th>
<th>JUMLAH KOMPAUN KELUAR</th>
<th>AMAUN KOMPAUN (RM)</th>
<th>JUMLAH BAYAR</th>
<th>AMAUN BAYAR (RM)</th>
<th>JUMLAH KOMPAUN BELUM BAYAR</th>
<th>AMAUN TUNGGAKAN (RM)</th>
<th>KOMPAUN BATAL</th>
<th>AMAUN BATAL (RM)</th>
<th>KOMPAUN KURANG</th>
<th>AMAUN KURANG (RM)</th>
</tr>
</thead>
<tfoot>
<tr>
<th></th>
<th>JUMLAH</th>
<th>0</th>
<th>0</th>
<th>0</th>
<th>0</th>
<th>0</th>
<th>0</th>
<th>0</th>
<th>0</th>
<th>0</th>
<th>0</th>
</tr>
</tfoot>
</table>
</div>
</div>
@endforeach
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@endsection

@section('external_js')
<script type="text/javascript">

var current_id = "{{ $user->_id }}";
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});

var table = [], i ,month = <?php echo json_encode($month); ?>;
$(document).ready(function() {

for (i=0;i<=month.length;i++) {
var j = i+1;
var mm = j.toString();
if(mm.length == 1){
mm = '0'+mm;
}
console.log(mm);

table[i] = $('#tbl_'+month[i]).DataTable({
"ordering": false,
"searching": false,
"lengthChange": false,
"pageLength": -1,
"paging": false,
"processing": true,
"serverSide": true,
"ajax": {
"url": "{{ url('api/get/statistic-faulty') }}",
"data": {
"start_date": function() { return $('#start_date').val() },
"end_date": function() { return $('#end_date').val() },
"jabatan": function() { return $('#jabatan').val() },
"month": mm,
}
},
"columns": [
{ "data": "index", "name": "index" },
{ "data" : "name", "name": "name" },
{ "data": "jum_kompaun_keluar", "jan": "jkk" },
{ "data": "amaun_kompaun", "name": "ako" },
{ "data": "jumlah_byr", "name": "jb" },
{ "data": "amaun_byr", "name": "ab" },
{ "data": "jum_kompaun_belum_byr", "name": "jkbb" },
{ "data": "amaun_tunggakan", "name": "at" },
{ "data": "kompaun_batal", "name": "kb" },
{ "data": "amaun_batal", "name": "abt" },
{ "data": "kompaun_kurang", "name": "kk" },
{ "data": "amaun_kurang", "name": "ak" },
],
"columnDefs": [
{
"render": function ( data, type, row, meta ) {
return (meta.row+1);
},
"targets": 0,
},
],
"footerCallback": function(row, data, start, end, display) {
var api = this.api();

var jkk,ako,jb,ab,jkbb,at,kb,abt,kk,ak;
jkk = api.column( 2 ).data().reduce( function (a, b) {
return parseFloat(a) + parseFloat(b);
}, 0 );
$( api.column( 2 ).footer() ).html(jkk);

ako = api.column( 3 ).data().reduce( function (a, b) {
return parseFloat(a) + parseFloat(b);
}, 0 );
$( api.column( 3 ).footer() ).html(ako);

jb = api.column( 4 ).data().reduce( function (a, b) {
return parseFloat(a) + parseFloat(b);
}, 0 );
$( api.column( 4 ).footer() ).html(jb);

ab = api.column( 5 ).data().reduce( function (a, b) {
return parseFloat(a) + parseFloat(b);
}, 0 );
$( api.column( 5 ).footer() ).html(ab);

jkbb = api.column( 6 ).data().reduce( function (a, b) {
return parseFloat(a) + parseFloat(b);
}, 0 );
$( api.column( 6 ).footer() ).html(jkbb);

at = api.column( 7 ).data().reduce( function (a, b) {
return parseFloat(a) + parseFloat(b);
}, 0 );
$( api.column( 7 ).footer() ).html(at);

kb = api.column( 8 ).data().reduce( function (a, b) {
return parseFloat(a) + parseFloat(b);
}, 0 );
$( api.column( 8 ).footer() ).html(kb);

abt = api.column( 9 ).data().reduce( function (a, b) {
return parseFloat(a) + parseFloat(b);
}, 0 );
$( api.column( 9 ).footer() ).html(abt);

kk = api.column( 10 ).data().reduce( function (a, b) {
return parseFloat(a) + parseFloat(b);
}, 0 );
$( api.column( 10 ).footer() ).html(kk);

ak = api.column( 11 ).data().reduce( function (a, b) {
return parseFloat(a) + parseFloat(b);
}, 0 );
$( api.column( 11 ).footer() ).html(ak);
},
"drawCallback": function(settings) {
var api = this.api();
// Output the data for the visible rows to the browser's console
if($('#start_date').val() != 'null' && $('#end_date').val() != 'null' && $('#jabatan').val() != 'null'){
var href = document.getElementById('mylink');
var d_link = document.getElementById('link').contains(href);
if(!d_link){
var link = "{{ url('main/export/report/faulty') }}/"+$('#start_date').val()+"/"+$('#end_date').val()+"/"+$('#jabatan').val()+"/All";
$('#link').html('<a target="_blank" id="mylink" href="'+link+'" class="btn btn-primary btn-sm waves-effect waves-light">Excel</a>');
}
}
},
});
}

$('#jana').on('click', function(e){
e.preventDefault();

if($('#start_date').val() == '' || $('#end_date').val() == '' || $('#jabatan').val() == 'null'){
alert('Sila pilih tarikh dan jabatan');
}else {
for (i=0;i<=month.length;i++) {
table[i].ajax.reload();
}
}
});
});
</script>
@endsection

+ 9
- 0
resources/views/main-dashboard/report/part/faulty_nav.blade.php Datei anzeigen

@@ -0,0 +1,9 @@
<!-- Nav tabs -->
<ul class="nav nav-tabs md-tabs" role="tablist">
@foreach($month as $key => $m)
<li class="nav-item">
<a class="nav-link {{ $key == 0 ? 'active' : '' }}" data-toggle="tab" href="#{{$m}}" role="tab">{{$m}}</a>
<div class="slide"></div>
</li>
@endforeach
</ul>

+ 171
- 0
resources/views/main-dashboard/report/payment_index.blade.php Datei anzeigen

@@ -0,0 +1,171 @@
@extends('layout.master', ['uid' => $user->_id, 'token' => $user->token_firebase])
@section('page_title', 'Kompaun')
@section('sub_page_title', '')
@section('name', $user->StaffDetail->full_name)
@section('img_profile', $user->StaffDetail->profile_img)

@section('content')
<style type="text/css">
select.form-control, select.form-control:focus, select.form-control:hover {
border: 1px solid #ccc !important;
height: auto !important;
}

.panel-group .panel {
margin-bottom: 0;
overflow: hidden;
border-radius: 4px;
}
.panel-default {
border-color: #ddd;
}
.panel-default>.panel-heading {
color: #333;
background-color: #f5f5f5;
border-color: #ddd;
}
.panel-title {
margin-top: 0;
margin-bottom: 0;
font-size: 16px;
color: inherit;
}

.panel-body .table>thead>tr>th, .panel-body .table>tbody>tr>th, .panel-body .table>tfoot>tr>th, .panel-body .table>thead>tr>td, .panel-body .table>tbody>tr>td, .panel-body .table>tfoot>tr>td {
padding: 8px;
line-height: 1.428571429;
vertical-align: top;
border-top: 1px solid #ddd;
}
.glyphicon { margin-right:10px; }
.panel-body { padding:0px; }
.panel-body table tr td { padding-left: 15px }
.panel-body .table {margin-bottom: 0px; }
th { font-weight: 600; }
table.dataTable.nowrap th, table.dataTable.nowrap td {
white-space: pre-line !important;
}
</style>

<div class="inner-page">
<div class="row">
<div class="col-sm-12">
<div class="card">
<div class="card-header">
<h5>Laporan Tunai (Bayaran kepada PenguatKuasa)</h5>
</div>
<div class="card-block">
<div class="dt-responsive table-responsive">
<table id="report" class="table table-sm table-striped table-bordered nowrap" style="width:100%">
<thead>
<tr>
<th>#</th>
<th>No.Kompaun</th>
<th>Nama Kesalahan</th>
<th>Nama</th>
<th>Nric</th>
<th>No.Telefon</th>
<th>Emel</th>
<th>Jumlah Bayar</th>
<th>PenguatKuasa</th>
</tr>
</thead>
<tfoot>
<tr>
<th>#</th>
<th>No.Kompaun</th>
<th>Nama Kesalahan</th>
<th>Nama</th>
<th>Nric</th>
<th>No.Telefon</th>
<th>Emel</th>
<th>Jumlah Bayar</th>
<th>PenguatKuasa</th>
</tr>
</tfoot>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
@endsection

@section('external_js')

<script type="text/javascript">
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});

$(document).ready(function() {
var origin = window.location.origin;

$(".theme-loader").animate({
opacity: "0"
},1000);
setTimeout(function() {
$(".theme-loader").remove();
}, 800);

$('[data-toggle="tooltip"]').tooltip();

var table = $('#report').DataTable({
"dom": "Bfrtip",
"ordering": false,
"serverSide": true,
"processing": true,
"ajax": "{{ url('api/report/payment/list') }}",
"columns": [
{ "data": "#","name": "#"},
{ "data": "kpd","name": "kpd"},
{ "data": "kesalahan","name": "kesalahan"},
{ "data": "nama","name": "nama"},
{ "data": "identity", "name": "identity" },
{ "data": "mobile", "name": "mobile"},
{ "data": "email", "name": "email"},
{ "data": "jumlah","name": "jumlah"},
{ "data": "no_badan","name": "no_badan"},
],
"columnDefs": [{
"render": function ( data, type, row ) {
if (data.indexOf("Baru/") >= 0) {
var split = data.split('/');
return '<label class="label label-success">'+split[0]+'</label>&nbsp;'+split[1];
}else {
return data;
}
},
"targets": 0,
}],
"language": {
"paginate": {
"previous": "Sebelum",
"next": "Selepas"
},
"sLengthMenu": "Tunjukkan _MENU_ entri",
"zeroRecords": "Tiada Data Ditemui",
"infoEmpty": "Tiada Rekod Yang Wujud",
"infoFiltered": "(Ditapis daripada _MAX_ jumlah rekod)",
"info": "Tunjuk _START_ hingga _END_ daripada _TOTAL_ entri",
"sSearch": "Cari:",
},
"buttons": [{
"extend": "collection",
"text": "Eksport",
"buttons": [
"copy",
'excel',
'csv',
'pdf',
'print'
]
}]
});
});
</script>
@endsection

+ 244
- 0
resources/views/main-dashboard/report/perbezaan.blade.php Datei anzeigen

@@ -0,0 +1,244 @@
@extends('layout.master', ['uid' => $user->_id, 'token' => $user->token_firebase])
@section('page_title', 'Kompaun')
@section('sub_page_title', '')
@section('name', $user->StaffDetail->full_name)
@section('img_profile', $user->StaffDetail->profile_img)

@section('content')
<style type="text/css">
select.form-control, select.form-control:focus, select.form-control:hover {
border: 1px solid #ccc !important;
height: auto !important;
}
.glyphicon { margin-right:10px; }
th { font-weight: 600; text-align: center}
table.dataTable.nowrap th, table.dataTable.nowrap td {
white-space: pre-line !important;
font-size: 11px !important;
}
table.nowrap th, table.nowrap td {
white-space: pre-line !important;
}
</style>

<div class="inner-page">
<div class="row">
<div class="col-md-2">
<div class="card">
<div class="card-block">
<div class="form-group" style="margin-top: 1.25em">
<label><b>Tahun1 <code>*</code></b></label>
<input type="date" name="tahun1" id="tahun1" class="form-control" required>
<!-- <select name="tahun1" id="tahun1" class="form-control" required>
<option value="null">Pilih tahun pertama</option>
<option value="2016">2016</option>
<option value="2017">2017</option>
<option value="2018">2018</option>
<option value="2019">2019</option>
<option value="2020">2020</option>
</select> -->
</div>
<div class="form-group" style="margin-top: 1.25em">
<label><b>Anggaran Tahun1 <code>*</code></b></label>
<input name="budget1" id="budget1" class="form-control" required>
<small style="color:red">Sila masukkan nombor sahaja</small>
</div>
<div class="form-group" style="margin-top: 1.25em">
<label><b>Tahun2 <code>*</code></b></label>
<input type="date" name="tahun2" id="tahun2" class="form-control" required>
<!-- <select name="tahun2" id="tahun2" class="form-control" required>
<option value="null">Pilih tahun kedua</option>
<option value="2016">2016</option>
<option value="2017">2017</option>
<option value="2018">2018</option>
<option value="2019">2019</option>
<option value="2020">2020</option>
</select> -->
</div>
<div class="form-group" style="margin-top: 1.25em">
<label><b>Anggaran Tahun2 <code>*</code></b></label>
<input name="budget2" id="budget2" class="form-control" required>
<small style="color:red">Sila masukkan nombor sahaja</small>
</div>
<div class="form-group" style="margin-top: 1.25em">
<label><b>Jabatan<code>*</code></b></label>
<select name="jabatan" id="jabatan" class="form-control" required>
<option value="null">Pilih jabatan</option>
@foreach($department as $d)
<option value="{{ $d->_id }}">{{ $d->jbkod }}</option>
@endforeach
</select>
</div>
<div class="form-group">
<button id="jana" class="btn btn-info btn-block waves-effect waves-light">Jana Report</button>
</div>
</div>
</div>
</div>
<div class="col-sm-10">
<div class="card">
<div class="card-header">
<h5>Statistik Pengeluaran Kompaun</h5>
<div id="link" style="float:right"></div>
</div>
<div class="card-block">
<div class="dt-responsive table-responsive">
<table id="reportK" class="table table-sm table-striped table-bordered nowrap" style="width:100%">
<thead>
<tr>
<th rowspan="2">BULAN</th>
<th rowspan="2">ANGGARAN TAHUN <div id="tahun_1"></th>
<th rowspan="2">KOMPAUN KELUAR (RM)</th>
<th rowspan="2">PENGURANGAN KOMPAUN (RM)</th>
<th colspan="2">KUTIPAN SEMASA</th>
<th rowspan="2">% KUTIPAN</th>
<th rowspan="2">% TERKUMPUL</th>
<th rowspan="2">ANGGARAN TAHUN <div id="tahun_2"></th>
<th rowspan="2">KOMPAUN KELUAR (RM)</th>
<th rowspan="2">PENGURANGAN KOMPAUN (RM)</th>
<th colspan="2">KUTIPAN SEMASA</th>
<th rowspan="2">% KUTIPAN</th>
<th rowspan="2">% TERKUMPUL</th>
</tr>
<tr>
<th>KUTIPAN BULAN (RM)</th>
<th>KUTIPAN TERKUMPUL (RM)</th>
<th>KUTIPAN BULAN (RM)</th>
<th>KUTIPAN TERKUMPUL (RM)</th>
</tr>
</thead>
<tfoot>
<tr>
<th></th>
<th>JUMLAH</th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th>JUMLAH</th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
</tr>
</tfoot>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
@endsection

@section('external_js')
<script type="text/javascript">

var current_id = "{{ $user->_id }}";
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});

var table;
$(document).ready(function() {

table = $('#reportK').DataTable({
"ordering": false,
"searching": false,
"lengthChange": false,
"pageLength": -1,
"paging": false,
"processing": true,
"serverSide": true,
"ajax": {
"url": "{{ url('api/get/current-compound') }}",
"data": {
"start_year": function() { return $('#tahun1').val() },
"end_year": function() { return $('#tahun2').val() },
"budget1": function() { return $('#budget1').val() },
"budget2": function() { return $('#budget2').val() },
"jabatan": function() { return $('#jabatan').val() },
}
},
"columns": [
{ "data": "month", "name": "month" },
{ "data" : "budget1", "name": "budget1" },
{ "data": "kompaun_keluar1", "name": "kompaun_keluar1" },
{ "data": "kompaun_kurang1", "name": "kompaun_kurang1" },
{ "data": "kutipan_bulanan1", "name": "kutipan_bulanan1" },
{ "data": "kutipan_terkumpul1", "name": "kutipan_terkumpul1" },
{ "data": "kutipan1", "name": "kutipan1" },
{ "data": "terkumpul1", "name": "terkumpul1" },
{ "data": "budget2", "name": "budget2" },
{ "data": "kompaun_keluar2", "name": "kompaun_keluar2" },
{ "data": "kompaun_kurang2", "name": "kompaun_kurang2" },
{ "data": "kutipan_bulanan2", "name": "kutipan_bulanan2" },
{ "data": "kutipan_terkumpul2", "name": "kutipan_terkumpul2" },
{ "data": "kutipan2", "name": "kutipan2" },
{ "data": "terkumpul2", "name": "terkumpul2" },
],
"footerCallback": function(row, data, start, end, display) {
var api = this.api();

var jum_kompaun1,jum_kurang1,jum_kutipan1,jum_kompaun2,jum_kurang2,jum_kutipan2;
jum_kompaun1 = api.column( 2 ).data().reduce( function (a, b) {
return parseFloat(a) + parseFloat(b);
}, 0 );
$( api.column( 2 ).footer() ).html(jum_kompaun1);

jum_kurang1 = api.column( 3 ).data().reduce( function (a, b) {
return parseFloat(a) + parseFloat(b);
}, 0 );
$( api.column( 3 ).footer() ).html(jum_kurang1);

jum_kutipan1 = api.column( 4 ).data().reduce( function (a, b) {
return parseFloat(a) + parseFloat(b);
}, 0 );
$( api.column( 4 ).footer() ).html(jum_kutipan1);

jum_kompaun2 = api.column( 9 ).data().reduce( function (a, b) {
return parseFloat(a) + parseFloat(b);
}, 0 );
$( api.column( 9 ).footer() ).html(jum_kompaun2);

jum_kurang2 = api.column( 10 ).data().reduce( function (a, b) {
return parseFloat(a) + parseFloat(b);
}, 0 );
$( api.column( 10 ).footer() ).html(jum_kurang2);

jum_kutipan2 = api.column( 11 ).data().reduce( function (a, b) {
return parseFloat(a) + parseFloat(b);
}, 0 );
$( api.column( 11 ).footer() ).html(jum_kutipan2);
},
"drawCallback": function(settings) {
var api = this.api();
// Output the data for the visible rows to the browser's console
var data = api.rows( {page:'current'} ).data().toArray();
if (data && data.length > 0) {
var link = "{{ url('main/export/report/current/compound') }}/"+$('#tahun1').val()+"/"+$('#tahun2').val()+"/"+$('#budget1').val()+"/"+$('#budget2').val()+"/"+$('#jabatan').val();
$('#link').html('<a target="_blank" href="'+link+'" class="btn btn-primary btn-sm waves-effect waves-light">Excel</a>');
}
},
});

$('#jana').on('click', function(e){
e.preventDefault();

if($('#jabatan').val() == 'null' && $('#tahun1').val() == '' && $('#tahun2').val() == '' && $('#budget1').val() == '' && $('#budget2').val() == ''){
alert('Sila pilih tahun1, tahun2, anggaran tahun1, anggaran tahun2, dan jabatan');
}else {
table.ajax.reload();
}
});
});
</script>
@endsection

+ 11
- 1
routes/api.php Datei anzeigen

@@ -141,11 +141,21 @@ Route::group(['middleware' => 'mobileapps'], function() {
|-------------------------------------------------------------------------*/
Route::get('/report/compound/list/{start}/{end}', 'Api\StatisticController@reportCompoundList');
/*-------------------------------------------------------------------------
| Export / Store Report Data
|-------------------------------------------------------------------------*/
Route::get('/get/onsite/payment/enforcer', 'Api\Export\CaculationOnSiteReport@returnReportOnSite');
Route::get('/get/masukkan_data/{year}/{jbkod}', 'Api\Export\CalculationReportEnforcer@report_enforcer');
Route::get('/get/statistic-compound/enforcer', 'Api\Export\CalculationReportEnforcer@returnReportEnforcer');
Route::get('/get/statistic-faulty', 'Api\Export\CalculationReportFaulty@returnReportFaulty');
Route::get('/get/backlog-compound', 'Api\Export\CalculationReportBacklog@returnBacklogCompound');
Route::get('/get/current-compound', 'Api\Export\CalculateReportCurrentCompound@returnReportCurrentCompound');
Route::get('/run_faulty_db/{year}', 'Api\Export\CalculationReportFaulty@run_statistik');
/*-------------------------------------------------------------------------
| API Integration
|-------------------------------------------------------------------------*/
Route::post('/search/compound', 'Api\RestfulapiController@viewCompoundPersonal');
Route::post('/update/compound/payment', 'Api\RestfulapiController@updatePaymentIntegrasi');

Route::get('/get/compound-for/epbt', 'Api\RestfulapiController@compoundToEPBT');
Route::get('/store/external/summon', 'Api\ImportDataController@storeExternalCompound');
});


Laden…
Abbrechen
Speichern