This commit is contained in:
izuddin
2024-09-23 17:22:15 +07:00
parent 1e4155ff8a
commit d5212f1f89
6 changed files with 489 additions and 1 deletions
@@ -0,0 +1,119 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Auth;
use Maatwebsite\Excel\Facades\Excel;
use App\Models\DataUploadBosOmspan;
use App\Models\UploadData;
use App\Imports\ImportDataBos;
use Illuminate\Support\Facades\URL;
class UploadDataController extends Controller
{
public function __construct(){
$this->siteTitle = "Upload Data";
parent::__construct();
$this->setIconTitle("fa fa-share");
}
public function index(Request $request)
{
$method = $request->method();
$this->setTitle("Upload Data");
$this->setSubtitle("Upload File");
$this->setIconTitle("fas fa-upload");
if ($request->isMethod('post')) {
$req = $request->all();
try{
$this->validate($request, [
'file' => 'required|mimes:xls,xlsx',
]);
$file = $request->file('file');
$subJenisDana = $request->optJenisDana;
$ta = $request->ta;
$tujuan_upload = 'uploadFiles';
$file->move($tujuan_upload,$file->getClientOriginalName());
DB::beginTransaction();
// DataUploadBosOmspan::truncate();
Excel::import(new ImportDataBos($ta), $tujuan_upload."/".$file->getClientOriginalName());
DB::commit();
return redirect(URL::to("/admin/upload-data/"))->with('success','Data berhasil diupload, Silahkan validasi data terlebih dahulu!');
}
catch(\Exception $e)
{
// throw new \Exception($e->getMessage());
DB::rollBack();
abort(500, $e->getMessage());
// return redirect(URL::to("/upload-data/".$typeDana))->with('error',$e->getMessage());
}
}
$this->siteTitle = "Upload Data";
return view('admin.upload_data.index');
}
public function uploadDatatable(Request $request)
{
$post = $request->all();
$offset = $post["start"];
$limit = $post["length"];
$src = isset($post["search"])?$post["search"]["value"]:"";
$dataFilter=0;
$data = DataUploadBosOmspan::orderBy("created_at","ASC");
if (!empty($src)){
// $data->whereRaw("(LOWER(kode_skpd) LIKE '%".strtolower($src)."%'
// OR LOWER(nama_skpd) LIKE '%".strtolower($src)."%'
// OR LOWER(kode_rekening) LIKE '%".strtolower($src)."%'
// OR LOWER(nama_rekening) LIKE '%".strtolower($src)."%')");
}
$dataFilter = $data->count();
$dataTotal = DataUploadBosOmspan::count();
return response()->json([
"recordsTotal" => $dataTotal,
"recordsFiltered" => $dataFilter,
"data"=> $data->skip($offset)->take($limit)->get()
]);
}
public function uploadValidate(Request $request)
{
try{
DB::beginTransaction();
UploadData::where("tahun",getTA())->delete();
DB::statement("INSERT INTO upload_data(tahun,kode_skpd,kode_rekening,total_lra)
SELECT tahun,kode_skpd,kode_rekening,total_lra FROM tmp_upload_data ");
$skpds = DB::table('tmp_upload_data')->distinct()->select('kode_skpd')->get();
foreach($skpds as $skpd){
// CEK MAIN INDIKATOR
$txIndikator = TxIndikator::firstOrCreate(["tahun"=>getTA(),"kode_skpd"=>$skpd->kode_skpd],[
"status_approval"=>3, // Operator
]);
$calculation = new CalculationIndikator($txIndikator->id);
$calculation->rasio();
$calculation->summary();
}
TempUploadData::truncate();
DB::commit();
return redirect(URL::to("/admin/upload-data"))->with('success','Data Realisasi belanja berhasil diupload.');
}catch(\Exception $e){
throw new \Exception($e->getMessage());
DB::rollBack();
return redirect(URL::to("/admin/upload-data"))->with('error',$e->getMessage());
}
}
}
+69
View File
@@ -0,0 +1,69 @@
<?php
namespace App\Imports;
use App\Models\DataUploadBosOmspan;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\Importable;
use Maatwebsite\Excel\Concerns\WithStartRow;
use Maatwebsite\Excel\Concerns\WithSkipDuplicates;
use Maatwebsite\Excel\Concerns\WithColumnFormatting;
use Illuminate\Support\Facades\Auth;
class ImportDataBos implements WithColumnFormatting, ToModel, WithStartRow
{
use Importable;
protected $ta;
public function __construct($ta){
$this->ta = $ta;
}
public function startRow(): int
{
return 2;
}
public function model(array $row)
{
// if (!isset($row[0])) {
// return null;
// }
var_dump($row); exit;
$data = [
"no"=>$row[0],
"kanwil"=>$row[1],
"kppn"=>$row[2],
"lokasi_kewenangan"=>$row[3],
"lokasi_sekolah"=>$row[4],
"no_tgl_sk"=>$row[5],
"jenis_bos"=>$row[6],
"tahap"=>$row[7],
"gelombang"=>$row[8],
"npsn_nama_sekolah"=>$row[9],
"jenis_satuan_pendidikan"=>$row[10],
"status_sekolah"=>$row[11],
"bank"=>$row[12],
"no_rekening_nama_rekening"=>$row[13],
"npsn"=>$row[14],
"rekening"=>$row[15],
"nama"=>$row[16],
"jenjang_sekolah"=>$row[17],
"no_tgl_sp2d_detail"=>$row[18],
"no_sp2d"=>$row[19],
"tgl_sp2d"=>$row[20],
"status"=>$row[21],
"nilai"=>$row[22],
"pagu"=>$row[23],
"jmlh_siswa"=>$row[24],
"ket_retur"=>$row[25]
];
return new DataUploadBosOmspan($data);
}
public function columnFormats(): array
{
return [
'Tgl' => NumberFormat::FORMAT_DATE_DDMMYYYY,
];
}
}
+17
View File
@@ -0,0 +1,17 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
use Illuminate\Support\Facades\Auth;
class DataUploadBosOmspan extends Eloquent
{
use HasFactory;
protected $connection = 'Samasa';
protected $table = 'SAMASA.DATA_UPLOAD_BOS_OMSPAN';
protected $guarded = [];
public $timestamps = false;
}