<?php
namespace App\Imports;
use App\Models\Anggaran;
use App\Models\Rekening;
use App\Models\SubKegiatan;
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 transaksiImport implements ToCollection, WithHeadingRow
{
private $status_data = false;
public function collection(Collection $rows)
{
$kode = null;
$kegiatan = null;
$sub = null;
$tanggal = null;
$uraian = null;
$no_bku = null;
$debit = null;
$kredit = null;
$uang_muka = null;
$id_transaksi = null;
$id_rekening = null;
foreach ($rows as $row) {
$kodex = Rekening::where('kode', $row['kode'])->count();
if($kodex != 0) {
$kegiatanK = Rekening::where('nama', $row['kegiatan'])->count();
if($kegiatanK != 0) {
$subK = SubKegiatan::where('nama', $row['sub_kegiatan'])->count();
if($subK != 0) {
$this->status_data = true;
} else {
$this->status_data = false;
break;
}
} else {
$this->status_data = false;
break;
}
} else {
$this->status_data = false;
break;
}
}
if($this->status_data == true) {
foreach ($rows as $row)
{
if($kode != $row['kode'] || $kegiatan != $row['kegiatan'] || $sub != $row['sub_kegiatan'] || $uraian != $row['uraian'] || $tanggal != $row['tanggal'] || $no_bku != $row['no_bku'] || $debit != $row['debit'] || $kredit != $row['kredit'] || $uang_muka != $row['uang_muka']) {
$kode = $row['kode'];
$kegiatan = $row['kegiatan'];
$sub = $row['sub_kegiatan'];
$tanggal = $row['tanggal'];
$uraian = $row['uraian'];
$no_bku = $row['no_bku'];
$debit = $row['debit'];
$kredit = $row['kredit'];
$uang_muka = $row['uang_muka'];
// dd( \PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($row[2]) );
$kodex = Rekening::where('kode', $row['kode'])->first();
$kegiatanX = Rekening::where('nama', $row['kegiatan'])->first();
$subKegiatanX = SubKegiatan::where('nama', $row['sub_kegiatan'])->first();
$data = Transaksi::create([
'rekening_id' => $kegiatanX->id,
'sub_kegiatan_id' => $subKegiatanX->id,
'tanggal' => \PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($row['tanggal']),
'rekening' => $row['debit'] == null ? $row['kredit'] : $row['debit'],
'uraian' => $row['uraian'],
'no_bku' => $row['no_bku'],
// 'tahun_rekening_id' => $request->tahun,
'type' => $row['debit'] == null ? 1 : 0,
'staf_id' => Auth::user()->id,
'uang_muka' => $row['uang_muka'] == "TRUE" ? 'true' : 'false',
]);
$id_transaksi = $data->id;
// $id_rekening = $kodex->id;
}
$anggaran = Anggaran::create([
'transaksi_id' => $id_transaksi,
'item' => $row['item_pengeluaran'],
'value_volume_1' => $row['volume'],
'nama_volume_1' => $row['satuan'],
// 'value_volume_2' => $request->unit[$index],
// 'nama_volume_2' => $request->nama_volume_2[$index],
'harga_satuan' => $row['harga_satuan'] ,
'sub_total' => $row['sub_total'],
'sisa_anggaran' => $row['sub_total'],
]);
// $grandTotal = $grandTotal + $row['SUB TOTAL'];
// $rekening = Rekening::find($id_rekening);
// $rekening->sisa = $rekening->sisa - $row['sub_total'];
// $rekening->save();
}
}
}
public function getStatusData(): bool
{
return $this->status_data;
}
}
Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]