Files
lis/htdocs/app/Http/Controllers/TemplateController.php
Duidev Software House 2d87021d60 Update Banner dan Report
2025-09-25 20:03:12 +07:00

396 lines
14 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Storage;
use App\Jawaban;
use App\Subjawaban;
use App\SiraB;
use App\Organisms;
use App\Periksa;
use App\KomponenJawaban;
use Validator;
use Picqer\Barcode\BarcodeGeneratorPNG;
use Session;
class TemplateController extends Controller
{
public function index() {
if (Session::get('previlage') == ''){
return redirect('/login');
} else {
$data = [];
$getsirab = Organisms::whereNotIn('kelompok', ['biakankultur', 'mikroorganisme', 'listkodespesimen'])->select('kelompok')->groupBy('kelompok')->orderBy('kelompok', 'ASC')->get();
$data['parameters'] = $getsirab;
return view('admin.template', $data);
}
}
public function viewSIRAb() {
$previlage = Session('previlage');
if ($previlage == 'developer' OR $previlage == 'supervisor') {
$data = [];
return view('admin.sirab', $data);
} else {
$data = [];
$data['kalimatheader'] = 'Access Denied';
$data['kalimatbody'] = 'Laman khusus SPV';
return view('errors.error', $data);
}
}
public function backup() {
$previlage = Session('previlage');
if ($previlage == 'developer' OR $previlage == 'supervisor') {
$data = [];
$data['alldata'] = Storage::allFiles('/usr/share/nginx/html/rispacs/public/backupdata');
return view('backup', $data);
} else {
$data = [];
$data['kalimatheader'] = 'Access Denied';
$data['kalimatbody'] = 'Laman khusus SPV';
return view('errors.error', $data);
}
}
public function getListJawaban() {
$results = DB::table('jawaban')->get();
$arraylist = [];
$arraylist[]= array(
'id' => 'new',
'jawaban' => '<span class="badge badge-primary">Add New</span>'
);
foreach ($results as $result) {
$arraylist[] = array(
'id' => $result->id,
'jawaban' => $result->jawaban,
);
}
echo json_encode($arraylist);
}
public function updateJawaban(Request $request) {
$validator = Validator::make($request->all(), [
'val01' => 'required',
'val02' => 'required'
]);
if($validator->fails()) {
return response()->json(['status' => 'error', 'message' => 'Please fill input field or fill with right input']);
} else {
$id = $request->input('val02');
if ($id != 'new'){
Jawaban::where('id', $id)->update(['jawaban' => $request->input('val01')]);
}
else {
Jawaban::create(['jawaban' => $request->input('val01')]);
}
return response()->json(['status' => 'Success !!', 'message' => 'Category Saved..!!']);
}
}
public function deleteJawaban(Request $request) {
try {
$id = $request->id;
if ($id == 'sirab'){
$data = SiraB::find($request->idsirab);
} else if ($id == 'mikroorganisme'){
$data = Organisms::find($request->idsirab);
} else {
$data = Jawaban::find($id);
}
$data->delete();
if ($data){
return response()->json(['icon' => 'success', 'warna' => '#5ba035', 'status' => 'Success', 'message' => 'Deleted']);
return back();
} else {
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Failed', 'message' => 'Unkown Error']);
return back();
}
} catch (\Exception $e) {
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Failed', 'message' => $e->getMessage()]);
return back();
}
}
public function getListSubjawaban(Request $request) {
$idkat = $request->input('val01');
$kategori = $request->input('val02');
if ($idkat == 'new') {
$arraylist = [];
$arraylist[]= array(
'id' => 'gakboleh',
'kategori' => '-',
'judul' => '<span class="badge badge-danger">Please Select Category First</span>',
'isine' => '-',
'kesimpulan'=> '-'
);
} else {
$arraylist = [];
$arraylist[]= array(
'id' => 'new',
'kategori' => '-',
'judul' => '<span class="badge badge-custom">Add New Expertise Themplate</span>',
'isine' => '-',
'kesimpulan'=> '-'
);
$results = Subjawaban::where('kategori', $idkat)->get();
foreach ($results as $result) {
$isine = $result->subjawaban;
$kesimpulan = $result->kesimpulan;
$isine = $isine.' '.$kesimpulan;
$arraylist[] = array(
'id' => $result->id,
'kategori' => $kategori,
'judul' => $result->judul,
'isine' => $isine,
'kesimpulan'=> ''
);
}
}
echo json_encode($arraylist);
}
public function updateSubjawaban(Request $request) {
$validator = Validator::make($request->all(), [
'val01' => 'required',
'val02' => 'required',
'val03' => 'required',
'val04' => 'required'
]);
if($validator->fails()) {
return response()->json(['status' => 'Error !!', 'message' => 'Please fill input field or fill with right input']);
} else {
$id = $request->input('val02');
if ($id != 'new'){
Subjawaban::where('id', $id)->update([
'judul' => $request->input('val03'),
'subjawaban'=> $request->input('val04'),
'kesimpulan'=> ''
]);
}
else {
Subjawaban::create([
'kategori' => $request->input('val01'),
'judul' => $request->input('val03'),
'subjawaban'=> $request->input('val04'),
'kesimpulan'=> ''
]);
}
return response()->json(['status' => 'Success !!', 'message' => 'Template Saved..!!']);
}
}
public function deleteSubjawaban(Request $request) {
$id = $request->id;
$subjawaban = Subjawaban::find($id);
$subjawaban->delete();
return back();
}
public function showImage($imageName){
// Menentukan path gambar di storage
$filePath = public_path("{$imageName}");
// Cek apakah file ada
if (!file_exists($filePath)) {
abort(404); // Jika file tidak ditemukan, tampilkan error 404
}
// Ambil konten file gambar
$imageContent = file_get_contents($filePath);
// Tentukan MIME type untuk gambar PNG
$mimeType = mime_content_type($filePath);
// Kirim gambar sebagai response dengan header untuk mencegah cache
return response($imageContent, 200)
->header('Content-Type', $mimeType) // Tentukan MIME type gambar
->header('Cache-Control', 'no-store, no-cache, must-revalidate') // Tidak cache di browser
->header('Pragma', 'no-cache') // Tidak menggunakan cache pada browser lama
->header('Expires', '0'); // Jangan pernah kadaluarsa
}
public function exUploadKOP(Request $request) {
if($request->hasFile('file')) {
$ImageExt = $request->file('file')->getClientOriginalExtension();
$file_tmp = $request->file('file');
$data = file_get_contents($file_tmp);
if ($ImageExt == 'png'){
try {
$unggah = Storage::disk('langsungpublic')->put('kopsurat.png', $data);
if ($unggah){
return response()->json(['icon' => 'success', 'warna' => '#5ba035', 'status' => 'Success', 'message' => 'Pictures Saved, please refresh to apply the change']);
return back();
} else {
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Failed', 'message' => 'Unkown Error']);
return back();
}
} catch (\Exception $e) {
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Failed', 'message' => $e->getMessage()]);
return back();
}
} else {
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Failed', 'message' => 'Only Accept PNG File']);
return back();
}
} else {
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Failed', 'message' => 'No File Selected']);
return back();
}
}
public function showBarcode($nofoto){
$generator = new BarcodeGeneratorPNG();
$barcodeImage = $generator->getBarcode($nofoto, $generator::TYPE_CODE_128);
return response($barcodeImage, 200)->header('Content-Type', 'image/png');
}
public function exSIRAb(Request $request) {
try {
$id = $request->id;
$tabel = $request->tabel;
$data = null;
$pesan = 'Unkown Error';
if ($tabel == 'Organisme'){
if ($id == 'new'){
$ceksudah = Organisms::where('name', $request->name)->where('category', $request->category)->where('kelompok', $request->kelompok)->count();
if ($ceksudah == 0){
$data = new Organisms;
$inputData = $request->except(['id', 'tabel', '_token']);
$data->fill($inputData);
$data->save();
} else {
$pesan = $request->name.' ('.$request->category.') Sudah ada, Mohon ubah Data sebelum simpan kembali';
}
} else {
$ceksudah = Organisms::where('id', '!=', $id)->where('name', $request->name)->where('category', $request->category)->where('kelompok', $request->kelompok)->count();
if ($ceksudah == 0){
$data = Organisms::find($id);
$inputData = $request->except(['id', 'tabel', '_token']);
$data->update($inputData);
} else {
$pesan = $request->name.' ('.$request->category.') Sudah ada, Mohon ubah Data sebelum simpan kembali';
}
}
if ($data){
return response()->json(['icon' => 'success', 'warna' => '#5ba035', 'status' => 'Success', 'message' => 'Saved']);
return back();
} else {
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Failed', 'message' => 'Unkown Error']);
return back();
}
} else if ($tabel == 'Speciment'){
$kodelama = '';
if ($id == 'new'){
$ceksudah = Organisms::where('name', $request->name)->where('kelompok', $request->kelompok)->count();
if ($ceksudah == 0){
$data = new Organisms;
$inputData = $request->except(['id', 'tabel', '_token']);
$data->fill($inputData);
$data->save();
} else {
$pesan = $request->name.' ('.$request->category.') Sudah ada, Mohon ubah Data sebelum simpan kembali';
}
} else {
$ceksudah = Organisms::where('id', '!=', $id)->where('name', $request->name)->where('kelompok', $request->kelompok)->count();
if ($ceksudah == 0){
$data = Organisms::find($id);
$kodelama = $data->category;
$kodebaru = $request->category;
$inputData = $request->except(['id', 'tabel', '_token']);
$data->update($inputData);
} else {
$pesan = $request->name.' ('.$request->category.') Sudah ada, Mohon ubah Data sebelum simpan kembali';
}
}
if ($data){
if ($kodelama != ''){
Periksa::where('kd_spesimen', $kodelama)->update(['kd_spesimen' => $kodebaru]);
}
return response()->json(['icon' => 'success', 'warna' => '#5ba035', 'status' => 'Success', 'message' => 'Saved']);
return back();
} else {
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Failed', 'message' => 'Unkown Error']);
return back();
}
} else if ($tabel == 'Parameter'){
$getdatalama = Organisms::where('kelompok', $request->kelompok)->first();
$category = $getdatalama->category ?? $request->kelompok;
if ($id == 'new'){
$ceksudah = Organisms::where('name', $request->name)->where('category', $category)->where('kelompok', $request->kelompok)->count();
if ($ceksudah == 0){
$data = Organisms::create([
'name' => $request->name,
'category' => $category,
'kelompok' => $request->kelompok
]);
} else {
$pesan = $request->name.' ('.$request->category.') Sudah ada, Mohon ubah Data sebelum simpan kembali';
}
} else {
$ceksudah = Organisms::where('id', '!=', $id)->where('name', $request->name)->where('category', $category)->where('kelompok', $request->kelompok)->count();
if ($ceksudah == 0){
$data = Organisms::where('id', $id)->update([
'name' => $request->name,
'category' => $category,
'kelompok' => $request->kelompok
]);
} else {
$pesan = $request->name.' ('.$request->category.') Sudah ada, Mohon ubah Data sebelum simpan kembali';
}
}
if ($data){
return response()->json(['icon' => 'success', 'warna' => '#5ba035', 'status' => 'Success', 'message' => 'Saved']);
return back();
} else {
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Failed', 'message' => 'Unkown Error']);
return back();
}
} else if ($tabel == 'BioRepository'){
$kategorisimpan = $request->kategorisimpan;
$shelfnomor = $request->shelfnomor;
$raknomor = $request->raknomor;
$slotnomor = $request->slotnomor;
$boxnomor = $request->boxnomor;
$tubenomor = $request->tubenomor;
$nomor = $kategorisimpan.''.$shelfnomor.''.$raknomor.''.$slotnomor.''.$boxnomor.'-'.$tubenomor;
$data = KomponenJawaban::where('id', $id)->update([
'isidata' => $request->nmbakteri,
'nobiorepository' => $nomor,
'strain' => $request->strain,
'atcc' => $request->atcc,
'sample' => $request->nmbakteri,
'tglpenyimpanan' => $request->tglpenyimpanan,
'created_by' => $request->created_by
]);
if ($data){
return response()->json(['icon' => 'success', 'warna' => '#5ba035', 'status' => 'Success', 'message' => 'Saved']);
return back();
} else {
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Failed', 'message' => 'Unkown Error']);
return back();
}
} else {
if ($id == 'new'){
$data = new SiraB;
$inputData = $request->except(['id', 'tabel', '_token']);
$data->fill($inputData);
$data->save();
} else {
$data = SiraB::find($id);
$inputData = $request->except(['id', 'tabel', '_token']);
$data->update($inputData);
}
if ($data){
return response()->json(['icon' => 'success', 'warna' => '#5ba035', 'status' => 'Success', 'message' => 'Saved']);
return back();
} else {
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Failed', 'message' => 'Unkown Error']);
return back();
}
}
} catch (\Exception $e) {
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Failed', 'message' => $e->getMessage()]);
return back();
}
}
}