<?php
namespace App\Imports;
use App\Models\Anggaran;
use App\Models\Rekening;
use App\Models\SubKegiatan;
use App\Models\TahunRekening;
use App\Models\Transaksi;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Auth;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\ToCollection;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
class RekeningImport implements ToCollection, WithHeadingRow
{
private $status_data = true;
public function collection(Collection $rows)
{
$kode_rekening = null;
$kegiatan = null;
$sub = null;
// $jumlah_anggaran = null;
$total_anggaran = null;
$tahun_rekening = null;
$id_rekening = null;
foreach ($rows as $row) {
$kodex = TahunRekening::where('tahun', $row['tahun_rekening'])->count();
if($kodex != 0) {
$this->status_data = true;
} else {
$this->status_data = false;
break;
}
}
if($this->status_data == true) {
foreach ($rows as $row)
{
if($kode_rekening != $row['kode_rekening'] || $kegiatan != $row['kegiatan'] || $total_anggaran != $row['total_anggaran'] || $tahun_rekening != $row['tahun_rekening']) {
$kode_rekening = $row['kode_rekening'];
$kegiatan = $row['kegiatan'];
// $sub = $row['sub_kegiatan'];
// $jumlah_anggaran = $row['jumlah_anggaran'];
$total_anggaran = $row['total_anggaran_kegiatan'];
$tahun_rekening = $row['tahun_rekening'];
// dd( \PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($row[2]) );
// $kodex = Rekening::where('kode', $row['kode_rekening'])->first();
$TahunRekeningX = TahunRekening::where('tahun', $row['tahun_rekening'])->first();
// $subKegiatanX = SubKegiatan::where('nama', $row['sub_kegiatan'])->first();
$data = Rekening::create([
'kode' => $kode_rekening,
'nama' => $kegiatan,
'jumlah' => $total_anggaran,
'sisa' => $total_anggaran,
'tahun_rekening_id' => $TahunRekeningX->id,
]);
$id_rekening = $data->id;
// $id_rekening = $kodex->id;
}
$anggaran = SubKegiatan::create([
'rekening_id' => $id_rekening,
'nama' => $row['sub_kegiatan'],
'jumlah' => $row['jumlah_anggaran_sub_kegiatan'],
'sisa' => $row['jumlah_anggaran_sub_kegiatan'],
]);
}
}
}
public function getStatusData(): bool
{
return $this->status_data;
}
}
Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]