update
This commit is contained in:
@@ -2209,7 +2209,7 @@ class DokterController extends Controller
|
||||
$nofoto = $request->input('nofoto');
|
||||
$id = $request->input('id');
|
||||
$jpoli = Periksa::where('id', $id)->first();
|
||||
$statuse = $jpoli->status;
|
||||
$statuse = $jpoli->status ?? '';
|
||||
$noregister = $jpoli->noregister;
|
||||
$daftar = $jpoli->daftar;
|
||||
$nama = Session('nama');
|
||||
|
||||
@@ -170,6 +170,323 @@ class FrontpageController extends Controller
|
||||
return view('pendaftaran', $data);
|
||||
}
|
||||
}
|
||||
public function viewMobileMode() {
|
||||
if (Session::get('previlage') == ''){
|
||||
return redirect('/login');
|
||||
} else {
|
||||
$alldata = Periksa::where(function($q) {
|
||||
$q->where(function($sub) {
|
||||
$sub->whereNotIn('status', ['Selesai', 'Arsip'])
|
||||
->where('status', 'not like', 'Dibatalkan%');
|
||||
})->orWhereNull('status');
|
||||
})->get();
|
||||
|
||||
// Kelompok array
|
||||
$cairansteril = [15,16,43,47,48,66,96,205,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223];
|
||||
$cci = [20];
|
||||
$darah = [7,8,13,17,29,33,44,107,114,115,199,200,201,202];
|
||||
$feces = [37,38,148,149,204];
|
||||
$hiv = [30];
|
||||
$kukukulit = [165,179,180,181,183,184,185,187,188,189,190,192,194,195,196,198];
|
||||
$kulturtb = [26,40,45,52,53,56,60,61,68,69,75,92,102,122,123,136,137,144,145,152,153,233];
|
||||
$pusdanjaringan = [18,19,32,35,46,49,50,54,57,58,59,72,160,182,186,191,193,197,206,207,208,224,225,226,227,228,234,235,236,237];
|
||||
$sputum = [1,12,23,24,36,39,229,230,231,232];
|
||||
$swab = [2,4,5,9,10,11,12,21,22,27,34,41,42,51,63,64,65,85,86,87,88,93,97,118,120,121,125,126,127,128,129,130,132,133,134,135,140,147,158,159,161,162,163,164,166,167,168,169,170,171,172,173,174,175,176,177,178];
|
||||
$tcmnontb = [79,80,81,82,83,84,203];
|
||||
$tcmtb = [14,28,55,62,94,104,105,124,138,146];
|
||||
$urine = [3,6,25,31,154,155,156,157];
|
||||
|
||||
// Semua array kategori digabung menjadi satu untuk mencari "lainnya"
|
||||
$allCategories = array_merge(
|
||||
$cairansteril, $cci, $darah, $feces, $hiv, $kukukulit, $kulturtb,
|
||||
$pusdanjaringan, $sputum, $swab, $tcmnontb, $tcmtb, $urine
|
||||
);
|
||||
|
||||
// Hitung total sesuai kategori
|
||||
$data['cairansteril'] = $alldata->whereIn('poli_id', $cairansteril)->count();
|
||||
$data['cci'] = $alldata->whereIn('poli_id', $cci)->count();
|
||||
$data['darah'] = $alldata->whereIn('poli_id', $darah)->count();
|
||||
$data['feces'] = $alldata->whereIn('poli_id', $feces)->count();
|
||||
$data['hiv'] = $alldata->whereIn('poli_id', $hiv)->count();
|
||||
$data['kukukulit'] = $alldata->whereIn('poli_id', $kukukulit)->count();
|
||||
$data['kulturtb'] = $alldata->whereIn('poli_id', $kulturtb)->count();
|
||||
$data['pusdanjaringan'] = $alldata->whereIn('poli_id', $pusdanjaringan)->count();
|
||||
$data['sputum'] = $alldata->whereIn('poli_id', $sputum)->count();
|
||||
$data['swab'] = $alldata->whereIn('poli_id', $swab)->count();
|
||||
$data['tcmnontb'] = $alldata->whereIn('poli_id', $tcmnontb)->count();
|
||||
$data['tcmtb'] = $alldata->whereIn('poli_id', $tcmtb)->count();
|
||||
$data['urine'] = $alldata->whereIn('poli_id', $urine)->count();
|
||||
|
||||
// Hitung yang tidak masuk kategori mana pun
|
||||
$data['lainnya'] = $alldata->filter(function ($item) use ($allCategories) {
|
||||
return !in_array($item->poli_id, $allCategories);
|
||||
})->count();
|
||||
|
||||
// Kirim alldata jika tetap ingin dipakai
|
||||
$data['alldata'] = $alldata;
|
||||
|
||||
return view('mobilemode', $data);
|
||||
}
|
||||
}
|
||||
public function viewTabletsMode($master) {
|
||||
if (Session::get('previlage') == ''){
|
||||
return redirect('/login');
|
||||
} else {
|
||||
$data = [
|
||||
'dokters' => User::where('previlage', 'supervisor')->get(),
|
||||
'allppds' => User::where('previlage', 'ppds')->get(),
|
||||
'allanalis' => User::where('previlage', 'analis')->get(),
|
||||
'antrkrmsitu' => 0,
|
||||
];
|
||||
$allOrganisms = Organisms::orderBy('name', 'ASC')->get();
|
||||
$allASTManual = SiraB::whereNotNull('setmanual')->select('setmanual')->groupBy('setmanual')->get();
|
||||
$groupOrganisms = function ($kelompok) use ($allOrganisms) {
|
||||
$organisms = $allOrganisms->where('kelompok', $kelompok);
|
||||
if ($organisms->isEmpty()) {
|
||||
return [
|
||||
'organismes' => [[['id' => 0, 'name' => 'No Data']]],
|
||||
'categories' => ['No Data'],
|
||||
];
|
||||
}
|
||||
$grouped = $organisms->groupBy('category');
|
||||
$organismes = [];
|
||||
$categories = [];
|
||||
$i = 0;
|
||||
foreach ($grouped as $category => $items) {
|
||||
$categories[] = $category;
|
||||
$j = 0;
|
||||
foreach ($items as $item) {
|
||||
$organismes[$i][$j] = ['id' => $item->id, 'name' => $item->name];
|
||||
$j++;
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
return [
|
||||
'organismes' => $organismes,
|
||||
'categories' => $categories,
|
||||
];
|
||||
};
|
||||
|
||||
$biakankulturData = $groupOrganisms('biakankultur');
|
||||
$mikroorganismeData = $groupOrganisms('mikroorganisme');
|
||||
$data = array_merge($data, [
|
||||
'organismes' => $biakankulturData['organismes'],
|
||||
'bacterycateggories' => $biakankulturData['categories'],
|
||||
'mikroorganismes' => $mikroorganismeData['organismes'],
|
||||
'mikroorganismestlist' => $mikroorganismeData['categories'],
|
||||
]);
|
||||
$kelompokMapping = [
|
||||
'jsonsputum' => 'Sputum',
|
||||
'jsonswabtenggorok' => 'Swab Tenggorok',
|
||||
'jsonurine' => 'Urine',
|
||||
'jsonswabperineum' => 'Swab perineum',
|
||||
'jsonselepitel' => 'Sel Epitel',
|
||||
'jsonselradang' => 'Sel Radang',
|
||||
'jsonmikroorganisme' => 'Q Mikroorganisme',
|
||||
'jsonjumlahlactobacillus' => 'Lactobacillus',
|
||||
'jsonjumlahgardnerella' => 'Gardnerella',
|
||||
'jsonjumlahmobiluncus' => 'Mobiluncus',
|
||||
'jsonpewarnaanziehlnielsen' => 'Pewarnaan Ziehl Nielsen',
|
||||
'jsonpewarnaanneisser' => 'Pewarnaan Neisser',
|
||||
'jsonpewarnaannegatif' => 'Pewarnaan Negatif',
|
||||
'jsonpewarnaanspora' => 'Pewarnaan Spora',
|
||||
'jsonmediabap' => 'Media BAP',
|
||||
'jsonmediacap' => 'Media CAP',
|
||||
'jsonmediamcconkey' => 'Media Mc Conkey',
|
||||
'jsonpemeriksaantl' => 'Pemeriksaan Tambahan Lainnya',
|
||||
'jsonbiakankultur' => 'Biakan Kultur',
|
||||
];
|
||||
foreach ($kelompokMapping as $key => $kelompok) {
|
||||
$data[$key] = $allOrganisms->where('kelompok', $kelompok)->values();
|
||||
}
|
||||
$kelompokBuku = [
|
||||
'buku01' => 'Cairan Steril',
|
||||
'buku02' => 'CCI',
|
||||
'buku03' => 'Darah',
|
||||
'buku04' => 'HIV',
|
||||
'buku05' => 'Kuku, Kulit, Adnexa',
|
||||
'buku06' => 'Kultur TB',
|
||||
'buku07' => 'Pus dan Jaringan',
|
||||
'buku08' => 'Sputum',
|
||||
'buku09' => 'Swab',
|
||||
'buku10' => 'TCM TB',
|
||||
'buku11' => 'TCM non-TB',
|
||||
'buku12' => 'Urine',
|
||||
'buku13' => 'Feces',
|
||||
'buku0' => 'Unknown',
|
||||
];
|
||||
$data['antibiotics']= $allASTManual;
|
||||
$data['lokasi'] = 'Lab Mikrobiologi';
|
||||
$data['master'] = $kelompokBuku[$master] ?? 'Unknown';
|
||||
|
||||
$cairansteril = [15,16,43,47,48,66,96,205,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223];
|
||||
$cci = 20;
|
||||
$darah = [7,8,13,17,29,33,44,107,114,115,199,200,201,202];
|
||||
$feces = [37,38,148,149,204];
|
||||
$hiv = 30;
|
||||
$kukukulit = [165,179,180,181,183,184,185,187,188,189,190,192,194,195,196,198];
|
||||
$kulturtb = [26,40,45,52,53,56,60,61,68,69,75,92,102,122,123,136,137,144,145,152,153,233];
|
||||
$pusdanjaringan = [18,19,32,35,46,49,50,54,57,58,59,72,160,182,186,191,193,197,206,207,208,224,225,226,227,228,234,235,236,237];
|
||||
$sputum = [1,12,23,24,36,39,229,230,231,232];
|
||||
$swab = [2,4,5,9,10,11,12,21,22,27,34,41,42,51,63,64,65,85,86,87,88,93,97,118,120,121,125,126,127,128,129,130,132,133,134,135,140,147,158,159,161,162,163,164,166,167,168,169,170,171,172,173,174,175,176,177,178];
|
||||
$tcmnontb = [79,80,81,82,83,84,203];
|
||||
$tcmtb = [14,28,55,62,94,104,105,124,138,146];
|
||||
$urine = [3,6,25,31,154,155,156,157];
|
||||
//jikabukan_array_tambahkan_kurung
|
||||
$mapped = array_merge(
|
||||
$cairansteril,
|
||||
[$cci],
|
||||
$darah,
|
||||
$feces,
|
||||
[$hiv],
|
||||
$kukukulit,
|
||||
$kulturtb,
|
||||
$pusdanjaringan,
|
||||
$sputum,
|
||||
$swab,
|
||||
$tcmnontb,
|
||||
$tcmtb,
|
||||
$urine
|
||||
);
|
||||
$arraylist = Periksa::select(
|
||||
'id', 'mulai', 'akhir', 'orderid', 'noloket', 'nofoto', 'noregister', 'asalpasien', 'nmrs', 'pasien_id', 'nmpasien',
|
||||
'jkpasien', 'tgllahirpasien', 'tlppasien', 'alamatpasien', 'reques', 'usia', 'berat', 'ktp', 'bpjs', 'ruangan_id',
|
||||
'ruangan', 'dokter_id', 'ppdssenior', 'middleppds', 'ppdsjunior', 'ppdsmiddle2', 'ppdsjunior2', 'analis', 'excutor',
|
||||
'nmdokter', 'nmppdssenior', 'nmmiddleppds', 'nmppdsjunior', 'nmppdsmiddle2', 'nmppdsjunior2', 'nmanalis', 'nmexcutor',
|
||||
'klinisi', 'klinis', 'keterangan', 'kesimpulan', 'poli_id', 'asuransi', 'urgensi', 'diagnosa', 'diagnosa2', 'modality',
|
||||
'kd_spesimen', 'nm_spesimen', 'dlp', 'daftar', 'foto', 'tgldraft', 'nmdrafter', 'baca', 'nmpembaca', 'verifikasi',
|
||||
'export', 'tgladendum', 'nmadendum', 'filefoto', 'pendaftar', 'status', 'created_at', 'updated_at',
|
||||
'bhp_media', 'bhp_potsputum', 'bhp_poturine', 'bhp_oshe', 'bhp_obyekglass', 'bhp_botolbd', 'bhp_parafilm',
|
||||
'bhp_tips', 'bhp_cottonswab', 'bhp_antibiotiktambahan', 'id_esbl', 'id_mrsa', 'rating', 'nmpendaftar',
|
||||
|
||||
DB::raw("DATE(daftar) as daftartgl"),
|
||||
DB::raw("TO_CHAR(daftar, 'HH24:MI:SS') as daftarjam"),
|
||||
DB::raw("TO_CHAR(export, 'HH24:MI:SS') as cetakjam"),
|
||||
DB::raw("TO_CHAR(verifikasi, 'HH24:MI:SS') as verifikasijam"),
|
||||
DB::raw("TO_CHAR(baca, 'HH24:MI:SS') as bacajam"),
|
||||
DB::raw("TO_CHAR(foto, 'HH24:MI:SS') as fotojam"),
|
||||
|
||||
DB::raw("CASE WHEN jkpasien = 'L' THEN '1' ELSE '' END AS l"),
|
||||
DB::raw("CASE WHEN jkpasien = 'P' THEN '1' ELSE '' END AS p"),
|
||||
DB::raw("CONCAT('https://10.10.123.218/hasil/', nofoto::text) as urlhasil"),
|
||||
|
||||
DB::raw("CASE WHEN asuransi IN ('JKN', 'BPJS') THEN '1' ELSE '' END AS jkn"),
|
||||
DB::raw("CASE WHEN asuransi = 'Billing' THEN '1' ELSE '' END AS billing"),
|
||||
DB::raw("CASE WHEN asuransi = 'GCU' THEN '1' ELSE '' END AS gcu"),
|
||||
DB::raw("CASE WHEN asuransi IN ('MANDIRI', 'Umum') THEN '1' ELSE '' END AS umum"),
|
||||
DB::raw("CASE WHEN asuransi = 'SWASTA' THEN '1' ELSE '' END AS swasta"),
|
||||
DB::raw("CASE WHEN asuransi = 'TAG' THEN '1' ELSE '' END AS tag"),
|
||||
|
||||
DB::raw("CASE WHEN urgensi != 'CITO' THEN '1' ELSE '' END AS elective"),
|
||||
DB::raw("CASE WHEN urgensi = 'CITO' THEN '1' ELSE '' END AS cito"),
|
||||
|
||||
DB::raw("CASE
|
||||
WHEN status IS NULL THEN '<span class=\"badge badge-danger\">NEW</span>'
|
||||
WHEN status = '' THEN '<span class=\"badge badge-danger\">NEW</span>'
|
||||
WHEN status LIKE '%Dibatalkan%' THEN '<font color=grey>Batal</font>'
|
||||
WHEN status LIKE '%Pemeriksaan Sampel%' THEN '<font color=green>Pemeriksaan Sampel</font>'
|
||||
WHEN status LIKE '%Proses Analisis Sampel%' THEN '<strong>Diperiksa</strong>'
|
||||
WHEN status LIKE '%Draft%' THEN '<font color=green>Draft</font>'
|
||||
WHEN status LIKE '%Expertise%' THEN '<strong><font color=green>Expertise</font></strong>'
|
||||
WHEN status LIKE '%Decliend%' THEN '<strong><font color=red>Decliend</font></strong>'
|
||||
WHEN status LIKE '%Selesai%' THEN '<span class=\"badge badge-success\">Selesai</span>'
|
||||
WHEN status LIKE '%Arsip%' THEN '<span class=\"badge badge-primary\">Arsip</span>'
|
||||
WHEN status LIKE '%Data Vitek di Terima%' THEN '<span class=\"badge badge-warning\">Data Vitek di Terima</span>'
|
||||
ELSE CONCAT('<span class=\"badge badge-info\">', status::text, '</span>')
|
||||
END AS tlsstatus"),
|
||||
|
||||
DB::raw("CASE
|
||||
WHEN status IS NULL THEN CONCAT('<span class=\"badge badge-danger\">', nofoto::text, '</span>')
|
||||
WHEN status LIKE '%Dibatalkan%' THEN CONCAT('<font color=grey>', nofoto::text, '</font>')
|
||||
WHEN status LIKE '%Pemeriksaan Sampel%' THEN CONCAT('<font color=green>', nofoto::text, '</font>')
|
||||
WHEN status LIKE '%Proses Analisis Sampel%' THEN CONCAT('<strong>', nofoto::text, '</strong>')
|
||||
WHEN status LIKE '%Draft%' THEN CONCAT('<font color=green>', nofoto::text, '</font>')
|
||||
WHEN status LIKE '%Expertise%' THEN CONCAT('<strong><font color=green>', nofoto::text, '</font></strong>')
|
||||
WHEN status LIKE '%Decliend%' THEN CONCAT('<strong><font color=red>', nofoto::text, '</font></strong>')
|
||||
WHEN status LIKE '%Selesai%' THEN CONCAT('<span class=\"badge badge-success\">', nofoto::text, '</span>')
|
||||
WHEN status LIKE '%Arsip%' THEN CONCAT('<span class=\"badge badge-primary\">', nofoto::text, '</span>')
|
||||
ELSE CONCAT('<font color=red>', nofoto::text, '</font>')
|
||||
END AS tlsnofoto"),
|
||||
|
||||
DB::raw("CASE
|
||||
WHEN status IS NULL THEN CONCAT('<span class=\"badge badge-danger\">', noregister::text, '</span>')
|
||||
WHEN status LIKE '%Dibatalkan%' THEN CONCAT('<font color=grey>', noregister::text, '</font>')
|
||||
WHEN status LIKE '%Pemeriksaan Sampel%' THEN CONCAT('<font color=green>', noregister::text, '</font>')
|
||||
WHEN status LIKE '%Proses Analisis Sampel%' THEN CONCAT('<strong>', noregister::text, '</strong>')
|
||||
WHEN status LIKE '%Draft%' THEN CONCAT('<font color=green>', noregister::text, '</font>')
|
||||
WHEN status LIKE '%Expertise%' THEN CONCAT('<strong><font color=green>', noregister::text, '</font></strong>')
|
||||
WHEN status LIKE '%Decliend%' THEN CONCAT('<strong><font color=red>', noregister::text, '</font></strong>')
|
||||
WHEN status LIKE '%Selesai%' THEN CONCAT('<span class=\"badge badge-success\">', noregister::text, '</span>')
|
||||
WHEN status LIKE '%Arsip%' THEN CONCAT('<span class=\"badge badge-primary\">', noregister::text, '</span>')
|
||||
ELSE CONCAT('<font color=red>', noregister::text, '</font>')
|
||||
END AS tlsnoregister"),
|
||||
|
||||
DB::raw("CASE
|
||||
WHEN status IS NULL THEN CONCAT('<span class=\"badge badge-danger\">', nmpasien::text, '</span>')
|
||||
WHEN status LIKE '%Dibatalkan%' THEN CONCAT('<font color=grey>', nmpasien::text, '</font>')
|
||||
WHEN status LIKE '%Pemeriksaan Sampel%' THEN CONCAT('<font color=green>', nmpasien::text, '</font>')
|
||||
WHEN status LIKE '%Proses Analisis Sampel%' THEN CONCAT('<strong>', nmpasien::text, '</strong>')
|
||||
WHEN status LIKE '%Draft%' THEN CONCAT('<font color=green>', nmpasien::text, '</font>')
|
||||
WHEN status LIKE '%Expertise%' THEN CONCAT('<strong><font color=green>', nmpasien::text, '</font></strong>')
|
||||
WHEN status LIKE '%Decliend%' THEN CONCAT('<strong><font color=red>', nmpasien::text, '</font></strong>')
|
||||
WHEN status LIKE '%Selesai%' THEN CONCAT('<span class=\"badge badge-success\">', nmpasien::text, '</span>')
|
||||
WHEN status LIKE '%Arsip%' THEN CONCAT('<span class=\"badge badge-primary\">', nmpasien::text, '</span>')
|
||||
ELSE CONCAT('<font color=red>', nmpasien::text, '</font>')
|
||||
END AS tlsnama"),
|
||||
|
||||
DB::raw("CASE
|
||||
WHEN status IS NULL THEN CONCAT('<span class=\"badge badge-danger\">', reques::text, '</span>')
|
||||
WHEN status LIKE '%Dibatalkan%' THEN CONCAT('<font color=grey>', reques::text, '</font>')
|
||||
WHEN status LIKE '%Pemeriksaan Sampel%' THEN CONCAT('<font color=green>', reques::text, '</font>')
|
||||
WHEN status LIKE '%Proses Analisis Sampel%' THEN CONCAT('<strong>', reques::text, '</strong>')
|
||||
WHEN status LIKE '%Draft%' THEN CONCAT('<font color=green>', reques::text, '</font>')
|
||||
WHEN status LIKE '%Expertise%' THEN CONCAT('<strong><font color=green>', reques::text, '</font></strong>')
|
||||
WHEN status LIKE '%Decliend%' THEN CONCAT('<strong><font color=red>', reques::text, '</font></strong>')
|
||||
WHEN status LIKE '%Selesai%' THEN CONCAT('<span class=\"badge badge-success\">', reques::text, '</span>')
|
||||
WHEN status LIKE '%Arsip%' THEN CONCAT('<span class=\"badge badge-primary\">', reques::text, '</span>')
|
||||
ELSE CONCAT('<font color=red>', reques::text, '</font>')
|
||||
END AS tlsreques")
|
||||
);
|
||||
if ($master == 'buku01'){
|
||||
$arraylist = $arraylist->whereIn('poli_id', $cairansteril);
|
||||
} else if ($master == 'buku02') {
|
||||
$arraylist = $arraylist->where('poli_id', $cci);
|
||||
} else if ($master == 'buku03') {
|
||||
$arraylist = $arraylist->whereIn('poli_id', $darah);
|
||||
} else if ($master == 'buku04') {
|
||||
$arraylist = $arraylist->where('poli_id', $hiv);
|
||||
} else if ($master == 'buku05') {
|
||||
$arraylist = $arraylist->whereIn('poli_id', $kukukulit);
|
||||
} else if ($master == 'buku06') {
|
||||
$arraylist = $arraylist->whereIn('poli_id', $kulturtb);
|
||||
} else if ($master == 'buku07') {
|
||||
$arraylist = $arraylist->whereIn('poli_id', $pusdanjaringan);
|
||||
} else if ($master == 'buku08') {
|
||||
$arraylist = $arraylist->whereIn('poli_id', $sputum);
|
||||
} else if ($master == 'buku09') {
|
||||
$arraylist = $arraylist->whereIn('poli_id', $swab);
|
||||
} else if ($master == 'buku10') {
|
||||
$arraylist = $arraylist->whereIn('poli_id', $tcmtb);
|
||||
} else if ($master == 'buku11') {
|
||||
$arraylist = $arraylist->whereIn('poli_id', $tcmnontb);
|
||||
} else if ($master == 'buku12') {
|
||||
$arraylist = $arraylist->whereIn('poli_id', $urine);
|
||||
} else if ($master == 'buku13') {
|
||||
$arraylist = $arraylist->whereIn('poli_id', $feces);
|
||||
} else if ($master == 'buku0') {
|
||||
$arraylist = $arraylist->whereNotIn('poli_id', $mapped);
|
||||
} else {
|
||||
}
|
||||
$arraylist = $arraylist->where(function($q) {
|
||||
$q->where(function($sub) {
|
||||
$sub->whereNotIn('status', ['Selesai', 'Arsip'])
|
||||
->where('status', 'not like', 'Dibatalkan%');
|
||||
})->orWhereNull('status');
|
||||
});
|
||||
$data['alldata'] = $arraylist->orderBy('daftar', 'ASC')->get();
|
||||
return view('dokter.tabsmode', $data);
|
||||
}
|
||||
}
|
||||
public function autocompleteKlinik(Request $request){
|
||||
$search = $request->get('term');
|
||||
$result = Ruangan::where('ruangan', 'LIKE', '%'.$search.'%')->get();
|
||||
|
||||
@@ -6,7 +6,7 @@ use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\File;
|
||||
use Illuminate\Support\Facades\Response;
|
||||
use ZipArchive;
|
||||
|
||||
use JsonMachine\Items;
|
||||
class JsonTransferController extends Controller
|
||||
{
|
||||
protected $exportPath = 'database/seeders/data/';
|
||||
@@ -94,30 +94,41 @@ class JsonTransferController extends Controller
|
||||
|
||||
return response()->download($zipFile);
|
||||
}
|
||||
public function importTable($table){
|
||||
public function importTable($table) {
|
||||
$path = base_path($this->exportPath . $table . '.json');
|
||||
if (!file_exists($path)) {
|
||||
return redirect()->back()->with('error', "File JSON untuk tabel $table tidak ditemukan.");
|
||||
}
|
||||
$json = file_get_contents($path);
|
||||
$data = json_decode($json, true);
|
||||
if (!is_array($data)) {
|
||||
return redirect()->back()->with('error', "File JSON untuk tabel $table tidak valid.");
|
||||
return back()->with('error', "File JSON untuk tabel $table tidak ditemukan.");
|
||||
}
|
||||
|
||||
try {
|
||||
DB::beginTransaction();
|
||||
DB::table($table)->truncate();
|
||||
$chunks = array_chunk($data, 200);
|
||||
foreach ($chunks as $chunk) {
|
||||
|
||||
$items = Items::fromFile($path);
|
||||
|
||||
$chunk = [];
|
||||
foreach ($items as $row) {
|
||||
$row = json_decode(json_encode($row), true);
|
||||
$chunk[] = $row;
|
||||
|
||||
if (count($chunk) >= 200) {
|
||||
DB::table($table)->insert($chunk);
|
||||
$chunk = [];
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($chunk)) {
|
||||
DB::table($table)->insert($chunk);
|
||||
}
|
||||
|
||||
DB::commit();
|
||||
return redirect()->back()->with('success', "Data untuk tabel $table berhasil di-import.");
|
||||
return back()->with('success', "Import berhasil!");
|
||||
} catch (\Exception $e) {
|
||||
DB::rollBack();
|
||||
return redirect()->back()->with('error', "Gagal import tabel $table: " . $e->getMessage());
|
||||
return back()->with('error', $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public function pull(Request $request){
|
||||
if (session('previlage') !== 'developer') {
|
||||
abort(403, 'Akses ditolak. Anda tidak memiliki izin untuk menjalankan git pull.');
|
||||
|
||||
Reference in New Issue
Block a user