| @@ -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; | |||
| } | |||
| } | |||
| @@ -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); | |||
| } | |||
| } | |||
| ]; | |||
| } | |||
| } | |||
| @@ -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; | |||
| } | |||
| } | |||
| @@ -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); | |||
| } | |||
| }, | |||
| ]; | |||
| } | |||
| } | |||
| @@ -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 | |||
| ] | |||
| ]); | |||
| }, | |||
| ]; | |||
| } | |||
| } | |||
| @@ -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; | |||
| } | |||
| } | |||
| @@ -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); | |||
| } | |||
| }, | |||
| ]; | |||
| } | |||
| } | |||
| @@ -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; | |||
| } | |||
| } | |||
| @@ -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); | |||
| } | |||
| }, | |||
| ]; | |||
| } | |||
| } | |||
| @@ -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); | |||
| @@ -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); | |||
| } | |||
| } | |||
| @@ -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); | |||
| } | |||
| } | |||
| @@ -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); | |||
| } | |||
| } | |||
| @@ -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); | |||
| } | |||
| } | |||
| @@ -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'); | |||
| } | |||
| } | |||
| } | |||
| @@ -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(){ | |||
| } | |||
| } | |||
| @@ -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, | |||
| @@ -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'); | |||
| } | |||
| } | |||
| @@ -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')); | |||
| } | |||
| } | |||
| @@ -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!"); | |||
| } | |||
| } | |||
| } | |||
| @@ -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') | |||
| @@ -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/> <b>No</b></label> | |||
| <label><input type="checkbox" id="check_kpd" checked/> <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> | |||
| @@ -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> | |||
| @@ -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> | |||
| @@ -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> | |||
| @@ -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> | |||
| @@ -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> | |||
| @@ -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(); | |||
| } | |||
| }); | |||
| @@ -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 | |||
| @@ -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" /> <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 | |||
| @@ -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 | |||
| @@ -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 | |||
| @@ -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> | |||
| @@ -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> '+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 | |||
| @@ -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 | |||
| @@ -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'); | |||
| }); | |||