<?php
namespace App\Exports;
use App\Models\Role;
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 kwitansiExport implements FromView, ShouldAutoSize, WithStyles
{
protected $id;
function __construct($id) {
$this->id = $id;
}
public function view(): View
{
//
$data['transaksi'] = Transaksi::find($this->id);
// $data['title'] = "Kwitansi";
$data['grup_user'] = Role::get();
return view('transaksi.kwitansi', $data);
}
public function styles(Worksheet $sheet)
{
$sheet->getStyle('B1')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle('B1')->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$sheet->getStyle('B2')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle('A7')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle('A7')->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$sheet->getStyle('C8')->getAlignment()->setVertical(Alignment::VERTICAL_TOP);
$sheet->getStyle('C11')->getAlignment()->setVertical(Alignment::VERTICAL_TOP);
$sheet->getStyle('C11:F11')->applyFromArray([
'borders' => [
'allBorders' => [
'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN,
'color' => ['argb' => '000000'],
],
],
]);
$sheet->getStyle('C12:F12')->applyFromArray([
'borders' => [
'allBorders' => [
'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN,
'color' => ['argb' => '000000'],
],
],
]);
// $sheet->getStyle('A3:E3')->applyFromArray([
// 'borders' => [
// 'bottom' => [
// 'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN,
// 'color' => ['argb' => '000000'],
// ],
// ],
// ]);
$data['transaksi'] = Transaksi::find($this->id);
$data['grup_user'] = Role::get();
$no = 16;
$sheet->getStyle('A'.$no.':F'.$no)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle('A'.$no.':F'.$no)->applyFromArray([
'borders' => [
'allBorders' => [
'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN,
'color' => ['argb' => '000000'],
],
],
]);
foreach($data['transaksi']->anggaran as $a) {
$no++;
$sheet->getStyle('A'.$no)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle('A'.$no.':F'.$no)->applyFromArray([
'borders' => [
'allBorders' => [
'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN,
'color' => ['argb' => '000000'],
],
],
]);
}
$sheet->getStyle('A'.($no + 8).':F'.($no + 8))->applyFromArray([
'borders' => [
'bottom' => [
'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN,
'color' => ['argb' => '000000'],
],
],
]);
$sheet->getStyle('A'.($no + 14).':F'.($no + 14))->applyFromArray([
'borders' => [
'bottom' => [
'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN,
'color' => ['argb' => '000000'],
],
],
]);
if($data['transaksi']->rekening > $data['grup_user'][2]->limit_nominal) {
$sheet->getStyle('A'.($no + 20).':F'.($no + 20))->applyFromArray([
'borders' => [
'bottom' => [
'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN,
'color' => ['argb' => '000000'],
],
],
]);
}
// $sheet->getStyle('A'.($no + 1).':E'.($no + 1))->applyFromArray([
// 'borders' => [
// 'allBorders' => [
// 'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN,
// 'color' => ['argb' => '000000'],
// ],
// ],
// ]);
// $sheet->getStyle('A'.($no + 5))->applyFromArray([
// 'borders' => [
// 'bottom' => [
// 'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN,
// 'color' => ['argb' => '000000'],
// ],
// ],
// ]);
// if($data['transaksi']->rekening > $data['grup_user'][2]->limit_nominal) {
// $sheet->getStyle('C'.($no + 5))->applyFromArray([
// 'borders' => [
// 'bottom' => [
// 'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN,
// 'color' => ['argb' => '000000'],
// ],
// ],
// ]);
// }
// $sheet->getStyle('E'.($no + 5))->applyFromArray([
// 'borders' => [
// 'bottom' => [
// 'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN,
// 'color' => ['argb' => '000000'],
// ],
// ],
// ]);
}
}
Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]