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 @@
{{-- --}}
| No | + @foreach ($tabel as $k => $key) +{{ $key->name }} | + @endforeach +
|---|