Anons79 Mini Shell

Directory : /home/aplikasiposinfo/public_html/bendahara2.aplikasipos.info/app/Exports/
Upload File :
Current File : /home/aplikasiposinfo/public_html/bendahara2.aplikasipos.info/app/Exports/AnggaranExport.php

<?php

namespace App\Exports;

use App\Models\Transaksi;
use DateInterval;
use DatePeriod;
use DateTime;
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 AnggaranExport implements FromView, ShouldAutoSize, WithStyles
{
    /**
    * @return \Illuminate\Support\Collection
    */
    protected $first, $last, $search;

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

    public function view(): View
    {
        $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::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."%");
                }
            }
        }

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

        return view('laporan.rincian_anggaran.cetak', [
            'transaksi' => $data['transaksi']
        ]);
    	// $pdf = Pdf::loadview('laporan.rincian_biaya.cetak', ['transaksi' => $data['transaksi']]);
    	// // return $pdf->download('laporan-pegawai.pdf');
        // return $pdf->stream("dompdf_out.pdf", array("Attachment" => false));
    }

    public function styles(Worksheet $sheet)
    {
        $sheet->mergeCells('A1:A2');
        $sheet->mergeCells('I1:I2');
        $sheet->mergeCells('B1:H1');
        $sheet->mergeCells('B2:H2');
        $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:I4');
        $sheet->getStyle('A4:I4')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
        $sheet->mergeCells('A5:I5');
        $sheet->getStyle('A5:I5')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
        // $sheet->mergeCells('A1:L1');
        // $sheet->getStyle('A1')->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");
        $sumSapi = count($sapi);

        $begin = new DateTime($this->first);
        $end = new DateTime($this->last);

        $interval = DateInterval::createFromDateString('1 month');
        $period = new DatePeriod($begin, $interval, $end);
        $total_realisasi = 0;

        foreach ($period as $dt) {
            // $total_realisasi++;
            array_push($sapi,chr(64+ $sumSapi++));
            // echo $dt->format("M")."<br>";
        }

        array_push($sapi,chr(64+ $sumSapi));
        array_push($sapi,chr(64+ $sumSapi + 1));
        array_push($sapi,chr(64+ $sumSapi + 2));

        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_CENTER);
            $sheet->getStyle($a."6")->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
        }

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

        $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();
        }

        $no = 7;
        foreach($data['transaksi'] as $b) {
            $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->anggaran as $c) {
                $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($sapi as $a) {
            $sheet->getStyle($a.$no + 1)->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 + 1)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_LEFT);
        }

        // if ($this->kode == 0) {
        //     $this->kode = "";
        // }

        // if($this->status == 2) {
        //     $this->status = "";
        // }

        // if( $this->dari != "0" ||  $this->sampai != "0") {
        //     $datas = BarangDatangDesc::where('kode_barang','like',"%".$this->kode."%")->where('date_in', '>=', $this->dari)->where('date_in', '<=', $this->sampai)->where('status','like',"%".$this->status."%")->get();
        // } else  {
        //     $datas = BarangDatangDesc::where('kode_barang','like',"%".$this->kode."%")->where('status','like',"%".$this->status."%")->get();
        // }
        // $no = 3;
        // foreach($datas as $b) {
        //     $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)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_LEFT);
        //     }
        // }

    }
}

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