Anons79 Mini Shell

Directory : /home/aplikasiposinfo/www/bendahara2.aplikasipos.info/app/Exports/
Upload File :
Current File : /home/aplikasiposinfo/www/bendahara2.aplikasipos.info/app/Exports/BiayaExport.php

<?php

namespace App\Exports;

use App\Models\CetakRincianBiaya;
use App\Models\Rekening;
use App\Models\Transaksi;
use Illuminate\Contracts\View\View;
use Illuminate\Support\Facades\Schema;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\FromView;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
use Maatwebsite\Excel\Concerns\WithStyles;
use PhpOffice\PhpSpreadsheet\Style\Alignment;
use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;

class BiayaExport implements FromView, ShouldAutoSize, WithStyles
{
    /**
    * @return \Illuminate\Support\Collection
    */
    // public function collection()
    // {
    //     //
    // }
    protected $first, $last, $search, $uang;

    function __construct($first, $last, $search, $uang) {
        $this->first = $first;
        $this->last = $last;
        $this->search = $search;
        $this->uang = $uang;
    }

    public function view(): View
    {
        $post = new Transaksi;
        $tableName = $post->getTable();
        $column = Schema::getColumnListing($tableName);
        //dd($column);
        // $data['transaksi'] = Transaksi::orderBy('created_at', 'ASC');
        // $data['cetak'] = CetakRincianBiaya::find($this->id);
        $data['rekening'] = Rekening::where('id',0);
        if($this->first && $this->last) {
            $first = $this->first;
            $last = $this->last;
            $data['rekening'] = Rekening::whereHas('transaksi', function($t) use($first, $last) {
                $t->orderBy('created_at', 'DESC')->whereNotNull('staf_id')->whereNotNull('bendahara_id')->whereNotNull('kepala_id');
                $t = $t->whereBetween('tanggal', [$first, $last]);
            });
            // $data['transaksi'] = Transaksi::orderBy('created_at', 'DESC')->whereNotNull('staf_id')->whereNotNull('bendahara_id')->whereNotNull('kepala_id');
            // $data['transaksi'] = $data['transaksi']->whereBetween('tanggal', [$this->first, $this->last]);
        }

        if($this->search) {
            // $data['transaksi'] = Transaksi::orderBy('created_at', 'DESC')->whereNotNull('staf_id')->whereNotNull('bendahara_id')->whereNotNull('kepala_id');
            $cari = $this->search;
            $data['rekening'] = Rekening::whereHas('transaksi', function($t) use($first, $last, $column, $cari) {
                $t->orderBy('created_at', 'DESC')->whereNotNull('staf_id')->whereNotNull('bendahara_id')->whereNotNull('kepala_id');
                foreach($column as $a => $value) {
                    if($a == 0) {
                        $t = $t->where($value,'like',"%".$cari."%");
                    } else if($a == 1) {
                        $t = $t->orWhereHas('kode_rekening', function($kode) use($cari) {
                            $kode->Where('kode','like',"%".$cari."%");
                        });
                    } else if($a == 5) {
                        $t = $t->orWhereHas('tahun_rekening', function($tahun) use($cari) {
                            $tahun->Where('tahun','like',"%".$cari."%");
                        });
                    }else {
                        $t = $t->orWhere($value,'like',"%".$cari."%");
                    }
                }
            });
            // $data['transaksi'] = $data['transaksi']->get();
        }

        if($this->first && $this->last || $this->search) {
            $data['rekening'] = $data['rekening']->get();
        }

        // if($this->first && $this->last) {
        //     $data['transaksi'] = Transaksi::orderBy('created_at', 'DESC')->whereNotNull('staf_id')->whereNotNull('bendahara_id')->whereNotNull('kepala_id');
        //     $data['transaksi'] = $data['transaksi']->whereBetween('tanggal', [$this->first, $this->last]);
        // }

        // if($this->search) {
        //     $data['transaksi'] = Transaksi::orderBy('created_at', 'DESC')->whereNotNull('staf_id')->whereNotNull('bendahara_id')->whereNotNull('kepala_id');
        //     $cari = $this->search;
        //     foreach($column as $a => $value) {
        //         if($a == 0) {
        //             $data['transaksi'] = $data['transaksi']->where($value,'like',"%".$cari."%");
        //         } else if($a == 1) {
        //             $data['transaksi'] = $data['transaksi']->orWhereHas('kode_rekening', function($kode) use($cari) {
        //                 $kode->Where('kode','like',"%".$cari."%");
        //             });
        //         } else if($a == 5) {
        //             $data['transaksi'] = $data['transaksi']->orWhereHas('tahun_rekening', function($tahun) use($cari) {
        //                 $tahun->Where('tahun','like',"%".$cari."%");
        //             });
        //         }else {
        //             $data['transaksi'] = $data['transaksi']->orWhere($value,'like',"%".$cari."%");
        //         }
        //     }
        //     $data['transaksi'] = $data['transaksi']->get();
        // }

        // if($this->first && $this->last || $this->search) {
        //     $data['transaksi'] = $data['transaksi']->get();
        // }
        $data['uang_muka'] = $this->uang;
        // dd($data['uang_muka']);

        return view('laporan.rincian_biaya.cetak',$data);
    }

    public function styles(Worksheet $sheet)
    {
        $sheet->mergeCells('A1:A2');
        $sheet->mergeCells('F1:F2');
        $sheet->mergeCells('B1:E1');
        $sheet->mergeCells('B2:E2');
        $sheet->getStyle('B1:E1')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
        $sheet->getStyle('B1:E1')->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
        $sheet->getStyle('B2:E2')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
        $sheet->getStyle('B2:E2')->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
        $sheet->mergeCells('A4:F4');
        $sheet->getStyle('A4:F4')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
        $sheet->mergeCells('A5:F5');
        $sheet->getStyle('A5:F5')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
        // $sheet->getStyle('A1')->getFont()->setSize(26);
        // $sheet->getStyle('A1')->getFont()->setBold(true);
        // $sheet->getStyle('A3:L3')->getFont()->setBold(true);
        $sapi = array("A","B","C","D","E","F");

        foreach($sapi as $a) {
            $sheet->getStyle($a."6")->applyFromArray([
                'borders' => [
                    'allBorders' => [
                        'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN,
                        'color' => ['argb' => '000000'],
                    ],
                ],
            ]);
            // $sheet->getStyle($a.'6')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)->getStartColor()->setARGB('D9D9D9');
            $sheet->getStyle($a."6")->getAlignment()->setHorizontal(Alignment::HORIZONTAL_LEFT);
        }

        $post = new Transaksi;
        $tableName = $post->getTable();
        $column = Schema::getColumnListing($tableName);
        //dd($column);
        // $data['transaksi'] = Transaksi::orderBy('created_at', 'ASC');
        // if($this->first && $this->last) {
        //     $data['transaksi'] = Transaksi::whereBetween('tanggal', [$this->first, $this->last]);
        // }

        // if($this->search) {
        //     $cari = $this->search;
        //     foreach($column as $a => $value) {
        //         if($a == 0) {
        //             $data['transaksi'] = $data['transaksi']->where($value,'like',"%".$cari."%");
        //         } else if($a == 1) {
        //             $data['transaksi'] = $data['transaksi']->orWhereHas('kode_rekening', function($kode) use($cari) {
        //                 $kode->Where('kode','like',"%".$cari."%");
        //             });
        //         } else if($a == 5) {
        //             $data['transaksi'] = $data['transaksi']->orWhereHas('tahun_rekening', function($tahun) use($cari) {
        //                 $tahun->Where('tahun','like',"%".$cari."%");
        //             });
        //         }else {
        //             $data['transaksi'] = $data['transaksi']->orWhere($value,'like',"%".$cari."%");
        //         }
        //     }
        // }

        // if($this->first && $this->last || $this->search) {
        //     $data['transaksi'] = $data['transaksi']->get();
        // }

        $data['rekening'] = Rekening::where('id',0);
        if($this->first && $this->last) {
            $first = $this->first;
            $last = $this->last;
            $data['rekening'] = Rekening::whereHas('transaksi', function($t) use($first, $last) {
                $t->orderBy('created_at', 'DESC')->whereNotNull('staf_id')->whereNotNull('bendahara_id')->whereNotNull('kepala_id');
                $t = $t->whereBetween('tanggal', [$first, $last]);
            });
            // $data['transaksi'] = Transaksi::orderBy('created_at', 'DESC')->whereNotNull('staf_id')->whereNotNull('bendahara_id')->whereNotNull('kepala_id');
            // $data['transaksi'] = $data['transaksi']->whereBetween('tanggal', [$this->first, $this->last]);
        }

        if($this->search) {
            // $data['transaksi'] = Transaksi::orderBy('created_at', 'DESC')->whereNotNull('staf_id')->whereNotNull('bendahara_id')->whereNotNull('kepala_id');
            $cari = $this->search;
            $data['rekening'] = Rekening::whereHas('transaksi', function($t) use($first, $last, $column, $cari) {
                $t->orderBy('created_at', 'DESC')->whereNotNull('staf_id')->whereNotNull('bendahara_id')->whereNotNull('kepala_id');
                foreach($column as $a => $value) {
                    if($a == 0) {
                        $t = $t->where($value,'like',"%".$cari."%");
                    } else if($a == 1) {
                        $t = $t->orWhereHas('kode_rekening', function($kode) use($cari) {
                            $kode->Where('kode','like',"%".$cari."%");
                        });
                    } else if($a == 5) {
                        $t = $t->orWhereHas('tahun_rekening', function($tahun) use($cari) {
                            $tahun->Where('tahun','like',"%".$cari."%");
                        });
                    }else {
                        $t = $t->orWhere($value,'like',"%".$cari."%");
                    }
                }
            });
            // $data['transaksi'] = $data['transaksi']->get();
        }

        if($this->first && $this->last || $this->search) {
            $data['rekening'] = $data['rekening']->get();
        }
        $no = 6;
        foreach($data['rekening'] as $b) {

            // dd($b->transaksi);
            // $no++;
            // foreach($sapi as $a) {
            //     $sheet->getStyle($a.$no)->applyFromArray([
            //         'borders' => [
            //             'allBorders' => [
            //                 'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN,
            //                 'color' => ['argb' => '000000'],
            //             ],
            //         ],
            //     ]);
            //     // $sheet->getStyle($a.$no)->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)->getStartColor()->setARGB('D9D9D9');
            //     $sheet->getStyle($a.$no)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_LEFT);
            // }

            foreach ($b->transaksi as $a) {
                $no++;
                foreach($sapi as $a) {
                    $sheet->getStyle($a.$no)->applyFromArray([
                        'borders' => [
                            'allBorders' => [
                                'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN,
                                'color' => ['argb' => '000000'],
                            ],
                        ],
                    ]);
                    // $sheet->getStyle($a.$no)->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)->getStartColor()->setARGB('D9D9D9');
                    $sheet->getStyle($a.$no)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_LEFT);
                }
            }

            $no++;
            foreach($sapi as $a) {
                $sheet->getStyle($a.$no)->applyFromArray([
                    'borders' => [
                        'allBorders' => [
                            'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN,
                            'color' => ['argb' => '000000'],
                        ],
                    ],
                ]);
                // $sheet->getStyle($a.$no + 1)->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)->getStartColor()->setARGB('D9D9D9');
                $sheet->getStyle($a.$no)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_LEFT);
            }
            $sheet->mergeCells('A'.($no).':D'.($no));
            $sheet->getStyle('A'.($no).':D'.($no))->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);

            $no++;
            foreach($sapi as $a) {
                $sheet->getStyle($a.$no)->applyFromArray([
                    'borders' => [
                        'allBorders' => [
                            'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN,
                            'color' => ['argb' => '000000'],
                        ],
                    ],
                ]);
                // $sheet->getStyle($a.$no + 2)->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)->getStartColor()->setARGB('D9D9D9');
                $sheet->getStyle($a.$no)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_LEFT);
            }
            $sheet->mergeCells('A'.($no).':D'.($no));
            $sheet->getStyle('A'.($no).':D'.($no))->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
        }


    }
}

Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]