diff --git a/app/Http/Controllers/Admin/UploadDataController.php b/app/Http/Controllers/Admin/UploadDataController.php new file mode 100644 index 0000000..86b82ed --- /dev/null +++ b/app/Http/Controllers/Admin/UploadDataController.php @@ -0,0 +1,119 @@ +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()); + } + } + +} \ No newline at end of file diff --git a/app/Imports/ImportDataBos.php b/app/Imports/ImportDataBos.php new file mode 100644 index 0000000..5b66627 --- /dev/null +++ b/app/Imports/ImportDataBos.php @@ -0,0 +1,69 @@ +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, + ]; + } +} diff --git a/app/Models/DataUploadBosOmspan.php b/app/Models/DataUploadBosOmspan.php new file mode 100644 index 0000000..8e4934a --- /dev/null +++ b/app/Models/DataUploadBosOmspan.php @@ -0,0 +1,17 @@ +id(); + + $table->smallInteger("no")->nullable(); + $table->string("kanwil",100); + $table->string('kppn',50); + $table->string('lokasi_kewenangan',50); + $table->string('lokasi_sekolah',20); + $table->string('no_tgl_sk',50); + $table->string('jenis_bos',20); + $table->smallInteger('tahap'); + $table->smallInteger('gelombang'); + $table->string('npsn_nama_sekolah',100); + $table->string('jenis_satuan_pendidikan',10); + $table->string('status_sekolah',30); + $table->string('bank',30); + $table->string('no_rekening_nama_rekening',150); + $table->string('npsn',30); + $table->string('rekening',30); + $table->string('nama',10); + $table->string('jenjang_sekolah',10); + $table->string('no_tgl_sp2d_detail',100); + $table->string('no_sp2d',50); + $table->date('tgl_sp2d'); + $table->string('status',50); + $table->decimal('nilai',18,2); + $table->decimal('pagu',18,2); + $table->integer('jmlh_siswa',50); + $table->string('ket_retur',100)->nullable(); + + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('data_upload_bos_omspan'); + } +} diff --git a/resources/views/admin/upload_data/index.blade.php b/resources/views/admin/upload_data/index.blade.php new file mode 100644 index 0000000..0ba0b4a --- /dev/null +++ b/resources/views/admin/upload_data/index.blade.php @@ -0,0 +1,216 @@ +@php + $siteBreadcumb = [ + ["url"=>"/realisasi-belanja","label"=>$siteTitle], + ["url"=>"/realisasi-belanja/create","label"=>$sitesubTitle] + ]; + + $jenisDana = ["All","CHT"]; +@endphp + +@extends('layouts.empty') +@section('styles') + + + + + +@endsection + +@section('content') +
| No | + $rowCol"; + } + ?> +
|---|