diff --git a/app/Http/Controllers/FrontController.php b/app/Http/Controllers/FrontController.php index 62d31b0..b1242b4 100644 --- a/app/Http/Controllers/FrontController.php +++ b/app/Http/Controllers/FrontController.php @@ -6,20 +6,23 @@ use Illuminate\Http\Request; use App\Models\Master\Template; use App\Models\Master\Topik; use App\Models\Master\Instansi; +use App\Models\TxDataset; use App\Models\Dataset; use App\Models\DatasetTambahan; +use App\Models\Master\TabelData; +use App\Models\Master\TabelDataKolom; class FrontController extends Controller { function index() { $data = []; - // $data['template'] = Template::where('show_dashboard',1)->limit(4)->inRandomOrder()->get(); - $data['template'] = Template::limit(4)->inRandomOrder()->get(); + // $data['template'] = TabelData::where('show_dashboard',1)->limit(4)->inRandomOrder()->get(); + $data['template'] = TabelData::limit(4)->inRandomOrder()->get(); $data['dataset'] = Dataset::orderBy('DatasetId','DESC')->limit(4)->get(); $data['count'] = [ 'dataset' => Dataset::count(), - 'resource' => Template::count(), + 'resource' => TabelData::count(), 'instansi' => Instansi::count(), ]; @@ -27,12 +30,15 @@ class FrontController extends Controller } function resource() { $data = []; - $data['template'] = Template::simplePaginate(12); + $data['template'] = TabelData::simplePaginate(12); return view('resource',$data); } function dataset_detail($id) { $keyId = decode_id($id); $data['dataset'] = Dataset::find($keyId); + $template = TabelData::find($data['dataset']->ms_tabel_data_id); + $data['tabel'] = TabelDataKolom::where('ms_tabel_data_id',$template->MsTabelDataId)->orderBy('order','ASC')->get(); + $data['lainnya'] = Dataset::with(['instansi'])->where('DatasetId','!=',$keyId)->limit(4)->get(); $data['keyId'] = $keyId; @@ -40,19 +46,45 @@ class FrontController extends Controller } public function gridDetail(Request $request) { + // $id = $request->query('id'); + // $keyId = $id; + // $item = Dataset::find($keyId); // atau pakai ->pluck(), ->find(), dll + + // $json = json_decode($item->data, true); + // $limit = $request->input('limit', 10); + // $offset = $request->input('offset', 0); + + // $rows = array_slice($json, $offset, $limit); + // return response()->json([ + // 'total' => count($json), + // 'rows' => $rows + // ]); + $id = $request->query('id'); - $keyId = $id; + $keyId = decode_id($id); $item = Dataset::find($keyId); // atau pakai ->pluck(), ->find(), dll + // + $_data = []; + $data = TxDataset::where('dataset_id', $keyId) + ->orderBy('row_id') + ->orderBy('ms_tabel_data_kolom_id') + ->get() + ->groupBy('row_id'); - $json = json_decode($item->data, true); - $limit = $request->input('limit', 10); - $offset = $request->input('offset', 0); + foreach ($data as $rowId => $rows) { - $rows = array_slice($json, $offset, $limit); - return response()->json([ - 'total' => count($json), - 'rows' => $rows - ]); + $rowData = [ + 'no' => $rowId + ]; + + foreach ($rows as $cell) { + $rowData[$cell->ms_tabel_data_kolom_id] = $cell->value; + } + + $_data[] = $rowData; + } + + return response()->json($_data); } function datasetTambahan_detail($id) { @@ -94,7 +126,7 @@ class FrontController extends Controller // $data['dataset'] = Dataset::orderBy('DatasetId','DESC')->paginate(9); // } $data['dataset'] = $dataset->paginate(9); - $data['template'] = Template::all(); + $data['template'] = TabelData::all(); $data['instansi'] = Instansi::all(); return view('dataset',$data); @@ -135,13 +167,13 @@ class FrontController extends Controller $data['dataset'] = $dataset->paginate(9); - $data['template'] = Template::all(); + $data['template'] = TabelData::all(); $data['instansi'] = Instansi::all(); return view('dataset-tambahan',$data); } function search() { $data['topik'] = Topik::all(); - $data['template'] = Template::all(); + $data['template'] = TabelData::all(); $data['instansi'] = Instansi::all(); $data['dataset'] = Dataset::orderBy('DatasetId','DESC')->limit(5)->get(); return view('search',$data); diff --git a/app/Http/Controllers/Opendata/DatasetController.php b/app/Http/Controllers/Opendata/DatasetController.php index 5541c43..8fd3720 100644 --- a/app/Http/Controllers/Opendata/DatasetController.php +++ b/app/Http/Controllers/Opendata/DatasetController.php @@ -164,34 +164,18 @@ class DatasetController extends Controller // dd(request()->all()); try { $keyId = decode_id($request->secure_id); + DB::beginTransaction(); if(@$keyId){ - Validator::make($request->all(), [ - // 'name' => 'required', - // 'instansi_id' => 'required', - // 'template_id' => 'required', - // 'publik' => 'required', - ])->validate(); + //INSERT DATASET; + $dataset = Dataset::find($keyId); + $dataset->tahun = $request->tahun; + $dataset->tahun_data = $request->tahun_data; + $dataset->name = $request->name; + $dataset->deskripsi = $request->deskripsi; + $dataset->save(); }else{ - // dd($request->all()); - // Validator::make($request->all(), [ - // 'name' => 'required', - // 'instansi_id' => 'required', - // 'template_id' => 'required', - // 'publik' => 'required', - // 'template_id' => 'required', - // ])->validate(); - } - - // $template = Template::find(decode_id($request->template_id)); - // $filename = pathinfo($tabelData->template_url, PATHINFO_FILENAME); - // $modelClass = "App\\Models\\Dataset\\Dataset" . ucfirst($filename); - // $importClass = "App\\Imports\\Dataset". ucfirst($filename)."Import"; - - DB::beginTransaction(); - // dd($request->all()); - try { - //INSERT DATASET; + //INSERT DATASET; $dataset = new Dataset; $dataset->instansi_id = decode_id($request->instansi_id); $dataset->ms_tabel_data_id = decode_id($request->template_id); @@ -205,51 +189,42 @@ class DatasetController extends Controller $dataset->deskripsi = $request->deskripsi; $dataset->created_by = auth()->user()->id; $dataset->save(); + } - $tabelData = TabelData::find(decode_id($request->template_id)); + if(@$request->file){ + $tabelData = TabelData::find(decode_id($request->template_id)); - $import = new Import; - Excel::import($import, $request->file('file')); - $data = $import->getData(); - $count = 0; - // dd($data); - foreach ($data as $rowIndex => $row) { - $rowId = $row[str_replace(' ','_',strtolower($tabelData->name)).'_'.date('Y')-1]; - unset($row[str_replace(' ','_',strtolower($tabelData->name)).'_'.date('Y')-1]); - $count++; - foreach ($row as $columnIndex => $value) { - TxDataset::updateOrCreate([ - 'dataset_id' => $dataset->DatasetId, - 'row_id' => $rowIndex + 1, // nomor baris - 'ms_tabel_data_kolom_id' => $columnIndex, - ],[ - 'dataset_id' => $dataset->DatasetId, - 'ms_tabel_data_id' => decode_id($request->template_id), - 'row_id' => $rowIndex + 1, - 'ms_tabel_data_kolom_id' => $columnIndex, - 'value' => $value, - ]); - } + $import = new Import; + Excel::import($import, $request->file('file')); + $data = $import->getData(); + $count = 0; + // dd($data); + foreach ($data as $rowIndex => $row) { + $rowId = $row[preg_replace('/[^a-z0-9]+/', '_', strtolower($tabelData->name)).'_'.date('Y')-1]; + unset($row[preg_replace('/[^a-z0-9]+/', '_', strtolower($tabelData->name)).'_'.date('Y')-1]); + $count++; + foreach ($row as $columnIndex => $value) { + TxDataset::updateOrCreate([ + 'dataset_id' => $dataset->DatasetId, + 'row_id' => $rowIndex + 1, // nomor baris + 'ms_tabel_data_kolom_id' => $columnIndex, + ],[ + 'dataset_id' => $dataset->DatasetId, + 'ms_tabel_data_id' => decode_id($request->template_id), + 'row_id' => $rowIndex + 1, + 'ms_tabel_data_kolom_id' => $columnIndex, + 'value' => $value, + ]); } + } DB::commit(); - - // $insert = $this->repository->createDatasetTable($modelClass,$importClass,$request->file('file'),$request->all()); - // dd($insert); - return redirect()->back()->with([ + } + + return redirect()->back()->with([ 'message' => 'Berhasil update data', 'type' => 'success', ]); - } catch (\Exception $e) { - DB::rollback(); - dd($e->getMessage()); - if ($e->getMessage() === "Start row (2) is beyond highest row (1)") { - return redirect()->back()->with([ - 'message' => $e->getMessage(), - 'type' => "error" - ], 400); - } - } } catch (Exception $e) { DB::rollback(); diff --git a/resources/views/dataset-detail.blade.php b/resources/views/dataset-detail.blade.php index 98d3cfd..4faeab4 100644 --- a/resources/views/dataset-detail.blade.php +++ b/resources/views/dataset-detail.blade.php @@ -16,7 +16,7 @@ {{-- --}}

{{ $dataset->instansi->name }}

- Download + Download
@@ -28,7 +28,7 @@
{{$dataset->tahun}} - +
Bagikan : @@ -42,10 +42,26 @@ data); ?> - @if(@$data) +
+ + + + @foreach ($tabel as $k => $key) + + @endforeach + + +
No{{ $key->name }}
+ + {{-- -
+ --}}
- @endif +
@@ -93,7 +109,7 @@
{{$dataSet->tahun}} - +
diff --git a/resources/views/dataset.blade.php b/resources/views/dataset.blade.php index 5543cdb..47f3ad7 100644 --- a/resources/views/dataset.blade.php +++ b/resources/views/dataset.blade.php @@ -86,7 +86,7 @@
{{$dataSet->tahun}} - +
diff --git a/resources/views/index.blade.php b/resources/views/index.blade.php index 8eebbc4..82ade25 100644 --- a/resources/views/index.blade.php +++ b/resources/views/index.blade.php @@ -209,7 +209,7 @@
{{$dataSet->tahun}} - +
diff --git a/resources/views/modules/opendata/dataset/form.blade.php b/resources/views/modules/opendata/dataset/form.blade.php index 4454a0d..0641e8e 100644 --- a/resources/views/modules/opendata/dataset/form.blade.php +++ b/resources/views/modules/opendata/dataset/form.blade.php @@ -19,7 +19,7 @@
- @foreach($instansi as $dataInstansi) @@ -31,14 +31,15 @@
- + @error('template_id') {{$message}} @enderror
-  Download Template Excel +  Download Template Excel @@ -54,8 +55,8 @@
- - file ? '' : 'required'}}> + + Masukan Ekstensi File : .xls,.xlsx @if(@$item->file)
diff --git a/routes/modules/modules.php b/routes/modules/modules.php index 8e2a7b2..283a975 100644 --- a/routes/modules/modules.php +++ b/routes/modules/modules.php @@ -41,7 +41,7 @@ Route::name('opendata.')->prefix('opendata')->group(function () { Route::get('delete/{id?}',[DatasetController::class,'delete'])->name('delete'); Route::get('aktif/{id?}',[DatasetController::class,'aktif'])->name('aktif'); Route::get('generateTemplate/{id?}',[DatasetController::class,'generateTemplate'])->name('generateTemplate'); - Route::get('download/{id?}',[DatasetController::class,'download'])->name('download'); + // Route::get('download/{id?}',[DatasetController::class,'download'])->name('download'); }); Route::name('dataset-tambahan.')->prefix('dataset-tambahan')->group(function () { diff --git a/routes/web.php b/routes/web.php index 76bcc9c..e88b4a8 100644 --- a/routes/web.php +++ b/routes/web.php @@ -6,6 +6,7 @@ use App\Http\Controllers\FrontController; use App\Http\Controllers\Auth\CustomLoginController; use App\Http\Controllers\Auth\CustomRegisterController; use App\Http\Controllers\AjaxController; +use App\Http\Controllers\Opendata\DatasetController; /* |-------------------------------------------------------------------------- @@ -34,6 +35,7 @@ Route::get('/login', [CustomLoginController::class,'index'])->name('login'); Route::post('login',[CustomLoginController::class,'post_login'])->name('post_login'); Route::get('register',[CustomRegisterController::class,'index'])->name('register'); Route::post('register',[CustomRegisterController::class,'post_register'])->name('post_register'); +Route::get('opendata/dataset/download/{id?}',[DatasetController::class,'download'])->name('download'); Route::get('getInstansi/{type}',[AjaxController::class,'getInstansi'])->name('getInstansi');