update
parent
aca6cf830b
commit
f41401387e
|
|
@ -31,48 +31,53 @@ public function model(array $row)
|
||||||
{
|
{
|
||||||
|
|
||||||
// cek kalau row kosong jangan insert
|
// cek kalau row kosong jangan insert
|
||||||
if (
|
try {
|
||||||
$row[0] === null &&
|
if (
|
||||||
$row[1] === null &&
|
$row[0] === null &&
|
||||||
$row[2] === null &&
|
$row[1] === null &&
|
||||||
$row[3] === null &&
|
$row[2] === null &&
|
||||||
$row[4] === null &&
|
$row[3] === null &&
|
||||||
$row[5] === null &&
|
$row[4] === null &&
|
||||||
$row[6] === null &&
|
$row[5] === null &&
|
||||||
$row[7] === null &&
|
$row[6] === null &&
|
||||||
$row[8] === null &&
|
$row[7] === null &&
|
||||||
$row[9] === null &&
|
$row[8] === null &&
|
||||||
$row[10] === null &&
|
$row[9] === null &&
|
||||||
$row[11] === null &&
|
$row[10] === null &&
|
||||||
$row[12] === null &&
|
$row[11] === null &&
|
||||||
$row[13] === null &&
|
$row[12] === null &&
|
||||||
$row[14] === null &&
|
$row[13] === null &&
|
||||||
$row[15] === null &&
|
$row[14] === null &&
|
||||||
$row[16] === null &&
|
$row[15] === null &&
|
||||||
$row[17] === null
|
$row[16] === null &&
|
||||||
) {
|
$row[17] === null
|
||||||
return null; // baris kosong dilewati
|
) {
|
||||||
|
return null; // baris kosong dilewati
|
||||||
|
}
|
||||||
|
return new DatasetTable32([
|
||||||
|
'dataset_id' => $this->datasetId,
|
||||||
|
'created_by' => $this->userId,
|
||||||
|
'lokasi' => $row[1],
|
||||||
|
'tidak_sekolah_l' => $row[2],
|
||||||
|
'tidak_sekolah_p' => $row[3],
|
||||||
|
'sd_l' => $row[4],
|
||||||
|
'sd_p' => $row[5],
|
||||||
|
'sltp_l' => $row[6],
|
||||||
|
'sltp_p' => $row[7],
|
||||||
|
'slta_smk_l' => $row[8],
|
||||||
|
'slta_smk_p' => $row[9],
|
||||||
|
'pt_l' => $row[10],
|
||||||
|
'pt_p' => $row[11],
|
||||||
|
's1_l' => $row[12],
|
||||||
|
's1_p' => $row[13],
|
||||||
|
's2_l' => $row[14],
|
||||||
|
's2_p' => $row[15],
|
||||||
|
's3_l' => $row[16],
|
||||||
|
's3_p' => $row[17],
|
||||||
|
]);
|
||||||
|
} catch (\Throwable $th) {
|
||||||
|
dd($th->getMessage());
|
||||||
}
|
}
|
||||||
return new DatasetTable32([
|
|
||||||
'dataset_id' => $this->datasetId,
|
|
||||||
'created_by' => $this->userId,
|
|
||||||
'lokasi' => $row[1],
|
|
||||||
'tidak_sekolah_l' => $row[2],
|
|
||||||
'tidak_sekolah_p' => $row[3],
|
|
||||||
'sd_l' => $row[4],
|
|
||||||
'sd_p' => $row[5],
|
|
||||||
'sltp_l' => $row[6],
|
|
||||||
'sltp_p' => $row[7],
|
|
||||||
'slta_smk_l' => $row[8],
|
|
||||||
'slta_smk_p' => $row[9],
|
|
||||||
'pt_l' => $row[10],
|
|
||||||
'pt_p' => $row[11],
|
|
||||||
's1_l' => $row[12],
|
|
||||||
's1_p' => $row[13],
|
|
||||||
's2_l' => $row[14],
|
|
||||||
's2_p' => $row[15],
|
|
||||||
's3_l' => $row[16],
|
|
||||||
's3_p' => $row[17],
|
|
||||||
]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -52,132 +52,126 @@ class DatasetRepository implements DatasetRepositoryInterface
|
||||||
throw new \Exception("Import {$importClass} tidak ditemukan");
|
throw new \Exception("Import {$importClass} tidak ditemukan");
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
// dd($data);
|
||||||
// dd($data);
|
return DB::transaction(function () use ($modelClass, $importClass, $file, $data) {
|
||||||
return DB::transaction(function () use ($modelClass, $importClass, $file, $data) {
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$keyId = decode_id($data['secure_id']);
|
$keyId = decode_id($data['secure_id']);
|
||||||
$json = [];
|
$json = [];
|
||||||
$filePath = null;
|
$filePath = null;
|
||||||
if(@$file){
|
if(@$file){
|
||||||
$file = $file;
|
$file = $file;
|
||||||
$path = $file->getRealPath();
|
$path = $file->getRealPath();
|
||||||
$spreadsheet = IOFactory::load($path);
|
$spreadsheet = IOFactory::load($path);
|
||||||
$sheet = $spreadsheet->getActiveSheet();
|
$sheet = $spreadsheet->getActiveSheet();
|
||||||
$rows = $sheet->toArray();
|
$rows = $sheet->toArray();
|
||||||
$header = $rows[4]; // Baris pertama sebagai header
|
$header = $rows[4]; // Baris pertama sebagai header
|
||||||
if (@$file) {
|
if (@$file) {
|
||||||
$file = $data['file'];
|
$file = $data['file'];
|
||||||
$destinationPath = public_path('uploads/dataset');
|
$destinationPath = public_path('uploads/dataset');
|
||||||
$current = Carbon::now()->format('Y/m/d');
|
$current = Carbon::now()->format('Y/m/d');
|
||||||
$path = $destinationPath . '/' . $current;
|
$path = $destinationPath . '/' . $current;
|
||||||
$fileName = $file->getClientOriginalName();
|
$fileName = $file->getClientOriginalName();
|
||||||
$fileMime = $file->getClientMimeType();
|
$fileMime = $file->getClientMimeType();
|
||||||
$fileExtension = $file->getClientOriginalExtension();
|
$fileExtension = $file->getClientOriginalExtension();
|
||||||
$fileSize = $file->getSize();
|
$fileSize = $file->getSize();
|
||||||
if(($fileExtension != 'xls') && ($fileExtension != 'xlsx')){
|
if(($fileExtension != 'xls') && ($fileExtension != 'xlsx')){
|
||||||
return redirect()->back()->with([
|
return redirect()->back()->with([
|
||||||
'message' => 'Maaf File Harus Berupa xls,xlsx!',
|
'message' => 'Maaf File Harus Berupa xls,xlsx!',
|
||||||
'type' => "error"
|
'type' => "error"
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
$newFilename = session('id').'_'.uniqid('file_') . '.' . $fileExtension;
|
$newFilename = session('id').'_'.uniqid('file_') . '.' . $fileExtension;
|
||||||
|
|
||||||
if (!File::exists($path)) {
|
if (!File::exists($path)) {
|
||||||
File::isDirectory($path) or File::makeDirectory($path, 0777, true, true);
|
File::isDirectory($path) or File::makeDirectory($path, 0777, true, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
$filePath = 'dataset/' . $current . '/' . $newFilename;
|
$filePath = 'dataset/' . $current . '/' . $newFilename;
|
||||||
$uploaded = $file->move($path, $newFilename);
|
$uploaded = $file->move($path, $newFilename);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
for ($i = 5; $i < count($rows); $i++) {
|
for ($i = 5; $i < count($rows); $i++) {
|
||||||
$row = $rows[$i];
|
$row = $rows[$i];
|
||||||
|
|
||||||
// Skip baris kosong
|
// Skip baris kosong
|
||||||
if (collect($row)->filter()->isEmpty()) continue;
|
if (collect($row)->filter()->isEmpty()) continue;
|
||||||
|
|
||||||
$assoc = [];
|
$assoc = [];
|
||||||
foreach ($header as $j => $columnName) {
|
foreach ($header as $j => $columnName) {
|
||||||
if($columnName != null){
|
if($columnName != null){
|
||||||
$key = strtolower(str_replace(' ', '_', $columnName));
|
$key = strtolower(str_replace(' ', '_', $columnName));
|
||||||
$assoc[$key] = $row[$j] ?? null;
|
$assoc[$key] = $row[$j] ?? null;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$json[] = $assoc;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$json[] = $assoc;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(@$keyId){
|
|
||||||
$masterModel = Dataset::find($keyId);
|
|
||||||
$masterModel->instansi_id = decode_id($data['instansi_id']);
|
|
||||||
$masterModel->template_id = decode_id($data['template_id']);
|
|
||||||
$masterModel->name = $data['name'];
|
|
||||||
$masterModel->publik = $data['publik'];
|
|
||||||
// $masterModel->tags = json_encode($data['tags']);
|
|
||||||
if(@$file){
|
|
||||||
$masterModel->data = json_encode($json);
|
|
||||||
$masterModel->file = $filePath;
|
|
||||||
}
|
|
||||||
$masterModel->deskripsi = $data['deskripsi'];
|
|
||||||
$masterModel->save();
|
|
||||||
|
|
||||||
if(@$file){
|
|
||||||
$modelClass::where('dataset_id',$masterModel->DatasetId)->delete();
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
|
|
||||||
$masterModel = Dataset::updateOrCreate([
|
|
||||||
'instansi_id' => decode_id($data['instansi_id']),
|
|
||||||
'template_id' => decode_id($data['template_id']),
|
|
||||||
'tahun' => $data['tahun'],
|
|
||||||
],[
|
|
||||||
'instansi_id' => decode_id($data['instansi_id']),
|
|
||||||
'template_id' => decode_id($data['template_id']),
|
|
||||||
'tahun' => $data['tahun'],
|
|
||||||
'name' => $data['name'],
|
|
||||||
'publik' => $data['publik'],
|
|
||||||
// 'tags' => json_encode($data['tags']),
|
|
||||||
'data' => json_encode($json),
|
|
||||||
'file' => $filePath,
|
|
||||||
'deskripsi' => $data['deskripsi'],
|
|
||||||
'created_by' => auth()->user()->id,
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(@$file){
|
|
||||||
Excel::import(new $importClass($masterModel->DatasetId,auth()->user()->id),$path.'/'.$newFilename);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $masterModel;
|
|
||||||
}catch (\Maatwebsite\Excel\Validators\ValidationException $e) {
|
|
||||||
$failures = $e->failures();
|
|
||||||
|
|
||||||
foreach ($failures as $failure) {
|
|
||||||
// Kolom & baris error
|
|
||||||
dump('Row: '.$failure->row());
|
|
||||||
dump('Attribute: '.$failure->attribute());
|
|
||||||
dump('Errors: ', $failure->errors());
|
|
||||||
dump('Values: ', $failure->values());
|
|
||||||
}
|
|
||||||
|
|
||||||
return $failures;
|
|
||||||
} catch (Exception $e) {
|
|
||||||
dd($e->getMessage());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(@$keyId){
|
||||||
});
|
$masterModel = Dataset::find($keyId);
|
||||||
} catch (Exception $e) {
|
$masterModel->instansi_id = decode_id($data['instansi_id']);
|
||||||
dd($e->getMessage());
|
$masterModel->template_id = decode_id($data['template_id']);
|
||||||
}
|
$masterModel->name = $data['name'];
|
||||||
|
$masterModel->publik = $data['publik'];
|
||||||
|
// $masterModel->tags = json_encode($data['tags']);
|
||||||
|
if(@$file){
|
||||||
|
$masterModel->data = json_encode($json);
|
||||||
|
$masterModel->file = $filePath;
|
||||||
|
}
|
||||||
|
$masterModel->deskripsi = $data['deskripsi'];
|
||||||
|
$masterModel->save();
|
||||||
|
|
||||||
|
if(@$file){
|
||||||
|
$modelClass::where('dataset_id',$masterModel->DatasetId)->delete();
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
|
||||||
|
$masterModel = Dataset::updateOrCreate([
|
||||||
|
'instansi_id' => decode_id($data['instansi_id']),
|
||||||
|
'template_id' => decode_id($data['template_id']),
|
||||||
|
'tahun' => $data['tahun'],
|
||||||
|
],[
|
||||||
|
'instansi_id' => decode_id($data['instansi_id']),
|
||||||
|
'template_id' => decode_id($data['template_id']),
|
||||||
|
'tahun' => $data['tahun'],
|
||||||
|
'name' => $data['name'],
|
||||||
|
'publik' => $data['publik'],
|
||||||
|
// 'tags' => json_encode($data['tags']),
|
||||||
|
'data' => json_encode($json),
|
||||||
|
'file' => $filePath,
|
||||||
|
'deskripsi' => $data['deskripsi'],
|
||||||
|
'created_by' => auth()->user()->id,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(@$file){
|
||||||
|
Excel::import(new $importClass($masterModel->DatasetId,auth()->user()->id),$path.'/'.$newFilename);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $masterModel;
|
||||||
|
}catch (\Maatwebsite\Excel\Validators\ValidationException $e) {
|
||||||
|
$failures = $e->failures();
|
||||||
|
|
||||||
|
foreach ($failures as $failure) {
|
||||||
|
// Kolom & baris error
|
||||||
|
dump('Row: '.$failure->row());
|
||||||
|
dump('Attribute: '.$failure->attribute());
|
||||||
|
dump('Errors: ', $failure->errors());
|
||||||
|
dump('Values: ', $failure->values());
|
||||||
|
}
|
||||||
|
|
||||||
|
return $failures;
|
||||||
|
} catch (Exception $e) {
|
||||||
|
dd($e->getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getChartData($modelClass,$datasetId,$templateId)
|
public function getChartData($modelClass,$datasetId,$templateId)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue