crud freezer

This commit is contained in:
2026-07-07 09:29:00 +07:00
parent 907b3b2aec
commit cc615a58ca
23 changed files with 618 additions and 164 deletions

View File

@@ -23,8 +23,7 @@ class BuildingController extends Controller
} }
public function index(Request $request){ public function index(Request $request){
$recordStatusCondition = Auth::id()==1 ? [RecordStatusEnum::DELETE, RecordStatusEnum::ACTIVE] : [RecordStatusEnum::ACTIVE]; $buildings = $this->model::query()->where(BaseModel::RECORD_STATUS_FIELD, RecordStatusEnum::ACTIVE)
$buildings = $this->model::query()->whereIn(BaseModel::RECORD_STATUS_FIELD, $recordStatusCondition)
->where('organization_id', $this->baseOrganizationId) ->where('organization_id', $this->baseOrganizationId)
->when(!empty($request->kword), function ($labs) use($request){ ->when(!empty($request->kword), function ($labs) use($request){
$labs->whereRaw("replace(name_en, ' ','') like '%".str_replace(" ","",$request->kword)."%'") $labs->whereRaw("replace(name_en, ' ','') like '%".str_replace(" ","",$request->kword)."%'")

View File

@@ -23,9 +23,8 @@ class ConceptController extends Controller
} }
public function index(Request $request){ public function index(Request $request){
$recordStatusCondition = Auth::id()==1 ? [RecordStatusEnum::DELETE, RecordStatusEnum::ACTIVE] : [RecordStatusEnum::ACTIVE];
$conceptCategories = $this->model::query()->groupBy('concept_category_code')->get('concept_category_code'); $conceptCategories = $this->model::query()->groupBy('concept_category_code')->get('concept_category_code');
$concepts = $this->model::query()->whereIn(BaseModel::RECORD_STATUS_FIELD, $recordStatusCondition) $concepts = $this->model::query()->where(BaseModel::RECORD_STATUS_FIELD, RecordStatusEnum::ACTIVE)
->when(!empty($request->kword), function ($query) use($request){ ->when(!empty($request->kword), function ($query) use($request){
$query->whereRaw("replace(name_en, ' ','') like '%".str_replace(" ","",$request->kword)."%'") $query->whereRaw("replace(name_en, ' ','') like '%".str_replace(" ","",$request->kword)."%'")
->orWhereRaw("replace(name_kh, ' ','') like '%".str_replace(" ","",$request->kword)."%'") ->orWhereRaw("replace(name_kh, ' ','') like '%".str_replace(" ","",$request->kword)."%'")

View File

@@ -26,9 +26,8 @@ class ContainerTypeController extends Controller
} }
public function index(Request $request){ public function index(Request $request){
$recordStatusCondition = Auth::id()==1 ? [RecordStatusEnum::DELETE, RecordStatusEnum::ACTIVE] : [RecordStatusEnum::ACTIVE];
$concepts = $this->conceptModel::query()->where(BaseModel::RECORD_STATUS_FIELD, RecordStatusEnum::ACTIVE)->get(); $concepts = $this->conceptModel::query()->where(BaseModel::RECORD_STATUS_FIELD, RecordStatusEnum::ACTIVE)->get();
$containerTypes = $this->model::with(['containerName', 'sampleType'])->whereIn(BaseModel::RECORD_STATUS_FIELD, $recordStatusCondition) $containerTypes = $this->model::with(['containerName', 'sampleType'])->where(BaseModel::RECORD_STATUS_FIELD, RecordStatusEnum::ACTIVE)
->when(!empty($request->kword), function ($query) use($request){ ->when(!empty($request->kword), function ($query) use($request){
$query->whereRaw("replace(name_en, ' ','') like '%".str_replace(" ","",$request->kword)."%'") $query->whereRaw("replace(name_en, ' ','') like '%".str_replace(" ","",$request->kword)."%'")
->orWhereRaw("replace(name_kh, ' ','') like '%".str_replace(" ","",$request->kword)."%'"); ->orWhereRaw("replace(name_kh, ' ','') like '%".str_replace(" ","",$request->kword)."%'");

View File

@@ -0,0 +1,154 @@
<?php
namespace App\Http\Controllers;
use App\Enums\RecordStatusEnum;
use App\Http\Controllers\Helper\GlobalController;
use App\Models\BaseModel;
use App\Models\Concept;
use App\Models\Equipment;
use App\Models\Room;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Session;
class EquipmentController extends Controller
{
protected $model;
protected $baseOrganizationId;
protected $roomModel;
protected $conceptModel;
public function __construct(){
$this->baseOrganizationId = Session::get('base_organization_id');
$this->base = Session::get('base_organization');
$this->model = new Equipment();
$this->roomModel = new Room();
$this->conceptModel = new Concept();
}
public function index(Request $request){
$recordStatusCondition = Auth::id()==1 ? [RecordStatusEnum::DELETE, RecordStatusEnum::ACTIVE] : [RecordStatusEnum::ACTIVE];
$rooms = $this->roomModel::with(['building'])->where(BaseModel::RECORD_STATUS_FIELD, RecordStatusEnum::ACTIVE)
->where('organization_id', $this->baseOrganizationId)->get();
$concepts = $this->conceptModel::query()->where(BaseModel::RECORD_STATUS_FIELD, RecordStatusEnum::ACTIVE)->get();
$equipments = $this->model::with(['room'])->whereIn(BaseModel::RECORD_STATUS_FIELD, $recordStatusCondition)
->where('organization_id', $this->baseOrganizationId)
->when(!empty($request->kword), function ($query) use($request){
$query->whereRaw("replace(name_en, ' ','') like '%".str_replace(" ","",$request->kword)."%'")
->orWhereRaw("replace(code, ' ','') like '%".str_replace(" ","",$request->kword)."%'");
})->when(!empty(trim($request->room_id)), function ($query) use($request){
$query->where('room_id', $request->room_id);
})->orderBy(BaseModel::CREATED_AT,'desc')->paginate(config('nrml.pagination.perpage', 10));
return view('equipment', ['equipments' => $equipments, 'rooms' => $rooms, 'concepts' => $concepts]);
}
public function save(Request $request){
try {
$validator = \Validator::make($request->all(), [
'name_en' => 'required',
'capacity' => 'required',
'room_id' => 'required',
'code' => 'required',
'equipment_type_concept_id' => 'required',
'installed_date' => 'required'
]);
if ($validator->fails()) {
return response()->json(['success' => false, 'message' => __('building.create_fail'), 'errors' => $validator->errors()->all()]);
}
$data = array(
'name_en' => $request->name_en,
'capacity' => $request->capacity,
'code' => $request->code,
'equipment_type_concept_id' => $request->equipment_type_concept_id,
'room_id' => $request->room_id,
'model' => $request->model,
'serial_number' => $request->serial_number,
'min_temperature' => $request->min_temperature,
'max_temperature' => $request->max_temperature,
'status' => BaseModel::RECORD_STATUS_ACTIVE,
'installed_date' => date('Y-m-d', strtotime($request->installed_date)),
'organization_id' => $this->baseOrganizationId,
'created_at' => date('Y-m-d H:i:s'),
'created_by' => Auth::id()
);
$this->model::query()->insert($data);
return response()->json(['success' => true, 'message' => __('laboratory.create_success')]);
}
catch (\Exception $e){
return response()->json(['success' => false, 'message' => __('laboratory.create_fail'), 'errors' => $e->getMessage()]);
}
}
public function update(Request $request){
try {
$validator = \Validator::make($request->all(), [
'name_en' => 'required',
'capacity' => 'required',
'room_id' => 'required',
'code' => 'required',
'equipment_type_concept_id' => 'required',
'installed_date' => 'required'
]);
if ($validator->fails()) return response()->json(['errors' => $validator->errors()->all()]);
$data = array(
'name_en' => $request->name_en,
'capacity' => $request->capacity,
'code' => $request->code,
'equipment_type_concept_id' => $request->equipment_type_concept_id,
'room_id' => $request->room_id,
'model' => $request->model,
'serial_number' => $request->serial_number,
'min_temperature' => $request->min_temperature,
'max_temperature' => $request->max_temperature,
'installed_date' => date('Y-m-d', strtotime($request->installed_date)),
'updated_at' => date('Y-m-d H:i:s'),
'updated_by' => Auth::id()
);
$this->model::query()->where('id', $request->equipment_id)->update($data);
return response()->json(['success' => true, 'message' => __('laboratory.update_success')]);
} catch (\Exception $e){
return response()->json(['success' => false, 'message' => __('laboratory.update_fail'), 'errors' => $e->getMessage()]);
}
}
public function get(Request $request){
try{
$lab = $this->model::query()->where('id', $request->equipment_id)->get()->first();
return response()->json(['success' => true, 'message' => __('laboratory.get_success'), 'data' => $lab]);
} catch (\Exception $e){
return response()->json(['success' => false, 'message' => __('laboratory.get_fail'), 'errors' => $e->getMessage()]);
}
}
public function delete(Request $request){
try{
$this->model::query()->where('id', $request->equipment_id)->update(array(
BaseModel::DELETED_AT_FIELD => date('Y-m-d H:i:s'),
BaseModel::DELETED_BY_FIELD => Auth::id(),
BaseModel::RECORD_STATUS_FIELD => RecordStatusEnum::DELETE
));
return response()->json(['success' => true, 'message' => __('laboratory.delete_success')]);
}
catch (\Exception $e){
return response()->json(['success' => false, 'message' => __('laboratory.delete_fail'), 'errors' => $e->getMessage()]);
}
}
public function restore(Request $request){
try{
$this->model::query()->where('id', $request->equipment_id)->update(array(BaseModel::RECORD_STATUS_FIELD=> RecordStatusEnum::ACTIVE));
return response()->json(['success' => true, 'message' => __('laboratory.restore_success')]);
}
catch (\Exception $e){
return response()->json(['success' => false, 'message' => __('laboratory.restore_fail'), 'errors' => $e->getMessage()]);
}
}
}

View File

@@ -22,8 +22,7 @@ class IncidentTypeController extends Controller
} }
public function index(Request $request){ public function index(Request $request){
$recordStatusCondition = Auth::id()==1 ? [RecordStatusEnum::DELETE, RecordStatusEnum::ACTIVE] : [RecordStatusEnum::ACTIVE]; $incidentTypes = $this->model::query()->where(BaseModel::RECORD_STATUS_FIELD, RecordStatusEnum::ACTIVE)
$incidentTypes = $this->model::query()->whereIn(BaseModel::RECORD_STATUS_FIELD, $recordStatusCondition)
->when(!empty($request->kword), function ($query) use($request){ ->when(!empty($request->kword), function ($query) use($request){
$query->whereRaw("replace(name_en, ' ','') like '%".str_replace(" ","",$request->kword)."%'") $query->whereRaw("replace(name_en, ' ','') like '%".str_replace(" ","",$request->kword)."%'")
->orWhereRaw("replace(name_kh, ' ','') like '%".str_replace(" ","",$request->kword)."%'") ->orWhereRaw("replace(name_kh, ' ','') like '%".str_replace(" ","",$request->kword)."%'")

View File

@@ -1,105 +0,0 @@
<?php
namespace App\Http\Controllers;
use App\Enums\RecordStatusEnum;
use App\Http\Controllers\Helper\GlobalController;
use App\Http\Requests\TestSampleCreateRequest;
use App\Models\BaseModel;
use App\Models\Organism;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Session;
class OrganismController extends Controller
{
protected $model;
protected $baseOrganizationId;
protected $labs;
public function __construct(Organism $organism){
$this->model = $organism;
$this->baseOrganizationId = Session::get('base_organization_id');
$this->base = Session::get('base_organization');
}
public function index(Request $request){
if(!GlobalController::user_can(Auth::user()->role_id, ['view_organism'])) return redirect(url('my-profile'));
$organisms = $this->model::with(['lab'])->where(BaseModel::RECORD_STATUS_FIELD, RecordStatusEnum::ACTIVE)
//->where('organization_id', $this->baseOrganizationId)
->when(!empty($request->kword), function ($organisms) use($request){
$organisms->whereRaw("replace(name_en, ' ','') like '%".str_replace(" ","",$request->kword)."%'");
})->orderBy(BaseModel::CREATED_AT_FIELD,'desc')->paginate(config('nrml.pagination.perpage', 10));
return view('organism', ['organisms' => $organisms]);
}
public function save(Request $request){
try{
if(!GlobalController::user_can(Auth::user()->role_id, ['create_organism'])) return false;
$validator = \Validator::make($request->all(), ['name_en' => 'required']);
if ($validator->fails()) return response()->json(['success' => false, 'message' => __('organism.create_fail'), 'errors' => $validator->errors()->all()]);
$new = $this->model::query()->firstOrNew(['name_en' => $request->name_en]);
$new->name_en = $request->name_en;
$new->weight = $request->weight;
$new->is_bold = $request->is_bold;
$new->organization_id = $this->baseOrganizationId;
$new->created_at = date('Y-m-d H:i:s');
$new->created_by = Auth::id();
$new->record_status_id = RecordStatusEnum::ACTIVE;
$new->save();
return response()->json(['success' => true, 'message' => __('organism.create_success'), 'data' => [$new]]);
} catch (\Exception $e){
return response()->json(['success' => false, 'message' => __('organism.create_fail'), 'errors' => $e->getMessage()]);
}
}
public function update(Request $request){
try{
if(!GlobalController::user_can(Auth::user()->role_id, ['update_organism'])) return false;
$validator = \Validator::make($request->all(), ['name_en' => 'required']);
if ($validator->fails()) return response()->json(['success' => false, 'message' => __('organism.update_fail'), 'errors' => $validator->errors()->all()]);
$data = array(
'name_en' => $request->name_en,
'name_kh' => $request->name_kh,
'is_bold' => $request->is_bold,
'updated_at' => date('Y-m-d H:i:s'),
'updated_by' => Auth::id()
);
$this->model::query()->where('id', $request->uid)->update($data);
return response()->json(['success' => true, 'message' => __('organism.update_success')]);
} catch (\Exception $e){
return response()->json(['success' => false, 'message' => __('organism.update_fail'), 'errors' => $e->getMessage()]);
}
}
public function get(Request $request){
try{
$organism = $this->model::query()->find($request->uid);
return response()->json(['success' => true, 'message' => __('organism.get_success'), 'data' => $organism]);
} catch (\Exception $e){
return response()->json(['success' => false, 'message' => __('organism.get_fail'), 'errors' => $e->getMessage()]);
}
}
public function delete(Request $request){
try{
if(!GlobalController::user_can(Auth::user()->role_id, ['delete_organism'])) return false;
$this->model::query()->where('id', $request->uid)->update(array( BaseModel::RECORD_STATUS_FIELD => RecordStatusEnum::DELETE));
return response()->json(['success' => true, 'message' => __('organism.delete_success')]);
} catch (\Exception $e){
return response()->json(['success' => false, 'message' => __('organism.delete_fail'), 'errors' => $e->getMessage()]);
}
}
public function restore(Request $request){
try{
$this->model::query()->where('id', $request->uid)->update(array( BaseModel::RECORD_STATUS_FIELD => RecordStatusEnum::ACTIVE));
return response()->json(['success' => true, 'message' => __('organism.restore_success')]);
} catch (\Exception $e){
return response()->json(['success' => false, 'message' => __('organism.restore_fail'), 'errors' => $e->getMessage()]);
}
}
}

View File

@@ -26,8 +26,7 @@ class OrganizationController extends Controller
} }
public function index(Request $request){ public function index(Request $request){
$recordStatusCondition = Auth::id()==1 ? [RecordStatusEnum::DELETE, RecordStatusEnum::ACTIVE] : [RecordStatusEnum::ACTIVE]; $labs = $this->model::query()->where(BaseModel::RECORD_STATUS_FIELD, RecordStatusEnum::ACTIVE)
$labs = $this->model::query()->whereIn(BaseModel::RECORD_STATUS_FIELD, $recordStatusCondition)
->when(Auth::id()!=1, function ($labs){ ->when(Auth::id()!=1, function ($labs){
$labs->whereIn('id', $this->labs->pluck('id')); $labs->whereIn('id', $this->labs->pluck('id'));
})->when(!empty($request->kword), function ($labs) use($request){ })->when(!empty($request->kword), function ($labs) use($request){

View File

@@ -26,9 +26,8 @@ class PathogenController extends Controller
} }
public function index(Request $request){ public function index(Request $request){
$recordStatusCondition = Auth::id()==1 ? [RecordStatusEnum::DELETE, RecordStatusEnum::ACTIVE] : [RecordStatusEnum::ACTIVE];
$concepts = $this->conceptModel::query()->where(BaseModel::RECORD_STATUS_FIELD, RecordStatusEnum::ACTIVE)->get(); $concepts = $this->conceptModel::query()->where(BaseModel::RECORD_STATUS_FIELD, RecordStatusEnum::ACTIVE)->get();
$pathogens = $this->model::with(['riskGroup', 'bsl', 'pathogenType'])->whereIn(BaseModel::RECORD_STATUS_FIELD, $recordStatusCondition) $pathogens = $this->model::with(['riskGroup', 'bsl', 'pathogenType'])->where(BaseModel::RECORD_STATUS_FIELD, RecordStatusEnum::ACTIVE)
->when(!empty($request->kword), function ($query) use($request){ ->when(!empty($request->kword), function ($query) use($request){
$query->whereRaw("replace(scientific_name, ' ','') like '%".str_replace(" ","",$request->kword)."%'") $query->whereRaw("replace(scientific_name, ' ','') like '%".str_replace(" ","",$request->kword)."%'")
->orWhereRaw("replace(common_name, ' ','') like '%".str_replace(" ","",$request->kword)."%'") ->orWhereRaw("replace(common_name, ' ','') like '%".str_replace(" ","",$request->kword)."%'")

View File

@@ -31,8 +31,7 @@ class RoleController extends Controller
public function index(Request $request){ public function index(Request $request){
if(!GlobalController::user_can(Auth::user()->role_id, ['view_user_role'])) return redirect(url('my-profile')); if(!GlobalController::user_can(Auth::user()->role_id, ['view_user_role'])) return redirect(url('my-profile'));
$recordStatusCondition = Auth::id()==1 ? [RecordStatusEnum::DELETE, RecordStatusEnum::ACTIVE] : [RecordStatusEnum::ACTIVE]; $roles = $this->roleModel::query()->where(BaseModel::RECORD_STATUS_FIELD, RecordStatusEnum::ACTIVE)
$roles = $this->roleModel::query()->whereIn(BaseModel::RECORD_STATUS_FIELD, $recordStatusCondition)
->whereNotIn('id', [UtilEnum::ADMINISTRATOR_ROLE]) ->whereNotIn('id', [UtilEnum::ADMINISTRATOR_ROLE])
->when(!empty($request->kword), function ($roles) use($request){ ->when(!empty($request->kword), function ($roles) use($request){
$roles->whereRaw("replace(name_en, ' ','') like '%".str_replace(" ","",$request->kword)."%'"); $roles->whereRaw("replace(name_en, ' ','') like '%".str_replace(" ","",$request->kword)."%'");

View File

@@ -29,11 +29,10 @@ class RoomController extends Controller
} }
public function index(Request $request){ public function index(Request $request){
$recordStatusCondition = Auth::id()==1 ? [RecordStatusEnum::DELETE, RecordStatusEnum::ACTIVE] : [RecordStatusEnum::ACTIVE];
$buildings = $this->buildingModel::query()->where(BaseModel::RECORD_STATUS_FIELD, RecordStatusEnum::ACTIVE) $buildings = $this->buildingModel::query()->where(BaseModel::RECORD_STATUS_FIELD, RecordStatusEnum::ACTIVE)
->where('organization_id', $this->baseOrganizationId)->get(); ->where('organization_id', $this->baseOrganizationId)->get();
$concepts = $this->conceptModel::query()->where(BaseModel::RECORD_STATUS_FIELD, RecordStatusEnum::ACTIVE)->get(); $concepts = $this->conceptModel::query()->where(BaseModel::RECORD_STATUS_FIELD, RecordStatusEnum::ACTIVE)->get();
$rooms = $this->model::with(['building', 'bsl'])->whereIn(BaseModel::RECORD_STATUS_FIELD, $recordStatusCondition) $rooms = $this->model::with(['building', 'bsl'])->where(BaseModel::RECORD_STATUS_FIELD, RecordStatusEnum::ACTIVE)
->where('organization_id', $this->baseOrganizationId) ->where('organization_id', $this->baseOrganizationId)
->when(!empty($request->kword), function ($query) use($request){ ->when(!empty($request->kword), function ($query) use($request){
$query->whereRaw("replace(name_en, ' ','') like '%".str_replace(" ","",$request->kword)."%'") $query->whereRaw("replace(name_en, ' ','') like '%".str_replace(" ","",$request->kword)."%'")

50
app/Models/Equipment.php Normal file
View File

@@ -0,0 +1,50 @@
<?php
namespace App\Models;
use App\Enums\RecordStatusEnum;
use App\Models\Traits\HasLocalizedName;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Support\Facades\Session;
use App\Traits\AuditLogTrait;
class Equipment extends BaseModel
{
public $timestamps = false;
use HasFactory;
use HasLocalizedName;
use AuditLogTrait;
/**
* The table associated with the model.
*
* @var string
*/
protected $table = 'equipments';
protected $appends = ['name'];
protected $primaryKey = 'id';
protected $fillable = [
'code', 'room_id', 'name_en','capacity', 'model', 'serial_number', 'organization_id',
'equipment_type_concept_id', 'min_temperature', 'max_temperature', 'status', 'installed_date',
BaseModel::CREATED_BY_FIELD, BaseModel::UPDATED_AT_FIELD, BaseModel::UPDATED_BY_FIELD,
BaseModel::DELETED_AT_FIELD, BaseModel::DELETED_BY_FIELD, BaseModel::RECORD_STATUS_FIELD
];
public static function boot()
{
parent::boot();
}
public function type(){
return $this->belongsTo(Concept::class, 'equipment_type_concept_id', 'id');
}
public function room(){
return $this->belongsTo(Room::class, 'room_id', 'id');
}
}

View File

@@ -0,0 +1,127 @@
$("#btnSave").on('click',function(e){
e.preventDefault();
let equipment_id = $('#equipment_id').val();
url = parseInt(equipment_id) === 0 ? save_url : update_url;
$.ajax({
url: url,
type:"POST",
data:{
"_token": csrf_token,
equipment_id : equipment_id,
room_id: $('#room_id').val(),
name_en: $('#name-en').val(),
capacity: $('#capacity').val(),
code: $('#code').val(),
serial_number: $('#serial_number').val(),
equipment_type_concept_id: $('#equipment_type_concept_id').val(),
model: $('#model').val(),
installed_date: $('#installed_date').val(),
min_temperature: $('#min_temperature').val(),
max_temperature: $('#max_temperature').val(),
},
success:function(res){
handleMessage(res.success, res.message)
if(res.success){ setTimeout(function () {location.reload()}, messageDuration)}
}
});
});
function delete_lab(equipment_id){
Swal.fire({
text: confirm_delete_record,
icon: 'question',
showCancelButton: true,
cancelButtonClass:'danger',
confirmButtonText: confirm_ok_delete,
cancelButtonText: confirm_cancel
}).then((result) => {
if (result.value) {
$.ajax({
url: delete_url,
method:'POST',
data:{
"_token": csrf_token,
equipment_id : equipment_id,
},
success:function(res){
handleMessage(res.success, res.message)
if(res.success) { setTimeout(function () {location.reload()}, messageDuration) }
}
})
}
});
}
function restore_lab(equipment_id){
Swal.fire({
text: confirm_restore_record,
icon: 'question',
showCancelButton: true,
cancelButtonClass:'danger',
confirmButtonText: confirm_ok_restore,
cancelButtonText: confirm_cancel_restore,
}).then((result) => {
if (result.value) {
$.ajax({
url: restore_url,
method:'POST',
data:{
"_token": csrf_token,
equipment_id : equipment_id,
},
success:function(res){
handleMessage(res.success, res.message)
if(res.success) { setTimeout(function () {location.reload()}, messageDuration)}
}
})
}
});
}
$('#modal-equipment').on('show.bs.modal', function (event) {
var button = $(event.relatedTarget) // Button that triggered the modal
var action = button.data('action') // Extract info from data-* attributes
var modal = $(this);
if(action === "new"){
// Clear inputs
modal.find('.modal-body input').val("");
modal.find('.modal-body select[name="room_id"]').val("").trigger('change');
modal.find('.modal-body select[name="equipment_type_concept_id"]').val("").trigger('change');
modal.find('.modal-body input[name="equipment_id"]').val(0);
modal.find('.modal-title').html(modal_add_title);
}else if(action === "edit"){
equipment_id = button.data('equipment_id');
modal.find('.modal-body input[name="equipment_id"]').val(equipment_id);
modal.find('.modal-title').html(modal_edit_title);
//e.preventDefault();
$.ajax({
url: get_url,
type:"POST",
data:{
"_token": csrf_token,
equipment_id: equipment_id,
},
success:function(res){
if(res.success) {
let data = res.data;
modal.find('.modal-body input[name="name_en"]').val(data.name_en);
modal.find('.modal-body input[name="capacity"]').val(data.capacity);
modal.find('.modal-body input[name="code"]').val(data.code);
modal.find('.modal-body input[name="model"]').val(data.model);
modal.find('.modal-body input[name="serial_number"]').val(data.serial_number);
modal.find('.modal-body input[name="min_temperature"]').val(data.min_temperature);
modal.find('.modal-body input[name="max_temperature"]').val(data.max_temperature);
modal.find('.modal-body input[name="installed_date"]').val(data.installed_date);
modal.find('.modal-body select[name="room_id"]').val(data.room_id).trigger('change');
modal.find('.modal-body select[name="equipment_type_concept_id"]').val(data.equipment_type_concept_id).trigger('change');
} else{
handleMessage(res.success, res.message)
}
},
});
}
})

View File

@@ -52,7 +52,7 @@
<th class="py-2" width="120px">{{__('general.code')}}</th> <th class="py-2" width="120px">{{__('general.code')}}</th>
<th class="py-2">{{__('laboratory.table_name_en')}}</th> <th class="py-2">{{__('laboratory.table_name_en')}}</th>
<th class="py-2">{{__('laboratory.table_name_kh')}}</th> <th class="py-2">{{__('laboratory.table_name_kh')}}</th>
<th class="py-2 text-center" width="100px">{{__('laboratory.table_status')}}</th> <th class="py-2 text-center" width="300px">{{__('បរិយាយ')}}</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@@ -72,8 +72,8 @@
<td class="py-1">{{$building->code}}</td> <td class="py-1">{{$building->code}}</td>
<td class="py-1">{{$building->name_en}}</td> <td class="py-1">{{$building->name_en}}</td>
<td class="py-1">{{$building->name_kh}}</td> <td class="py-1">{{$building->name_kh}}</td>
<td class="py-1 text-center"> <td class="py-1">
<i class="mdi {{$building->record_status_id == 1 ? 'mdi-check-circle text-primary' : 'mdi-checkbox-blank-circle-outline'}}"></i> {{$building->description}}
</td> </td>
</tr> </tr>
@endforeach @endforeach

View File

@@ -58,7 +58,7 @@
<th class="py-2" width="150px">{{__('general.code')}}</th> <th class="py-2" width="150px">{{__('general.code')}}</th>
<th class="py-2">{{__('ឈ្មោះ')}}</th> <th class="py-2">{{__('ឈ្មោះ')}}</th>
<th class="py-2">{{__('Category')}}</th> <th class="py-2">{{__('Category')}}</th>
<th class="py-2 text-center" width="100px">{{__('laboratory.table_status')}}</th> {{-- <th class="py-2 text-center" width="100px">{{__('laboratory.table_status')}}</th>--}}
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@@ -78,9 +78,9 @@
<td class="py-1">{{$concept->code}}</td> <td class="py-1">{{$concept->code}}</td>
<td class="py-1">{{$concept->name}}</td> <td class="py-1">{{$concept->name}}</td>
<td class="py-1">{{$concept->concept_category_code}}</td> <td class="py-1">{{$concept->concept_category_code}}</td>
<td class="py-1 text-center"> {{-- <td class="py-1 text-center">--}}
<i class="mdi {{$concept->record_status_id == 1 ? 'mdi-check-circle text-primary' : 'mdi-checkbox-blank-circle-outline'}}"></i> {{-- <i class="mdi {{$concept->record_status_id == 1 ? 'mdi-check-circle text-primary' : 'mdi-checkbox-blank-circle-outline'}}"></i>--}}
</td> {{-- </td>--}}
</tr> </tr>
@endforeach @endforeach
</tbody> </tbody>

View File

@@ -0,0 +1,243 @@
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
@include('layout.header')
<style>
#search-area .select2-container--default .select2-selection--single, #search-area .select2-container--default .select2-selection--single .select2-search__field {
border-radius: 0px !important;
}
</style>
</head>
<body>
<div class="row" id="x" style="display: none;">
<div class="col-12">
<span class="d-flex align-items-center purchase-popup">
<i class="typcn typcn-delete-outline" id="bannerClose"></i>
</span>
</div>
</div>
<div class="container-scroller">
@include('layout.navbar')
<!-- partial -->
@include('layout.breadscrum')
<div class="container-fluid page-body-wrapper">
@include('layout.sidebar')
<!-- partial -->
<div class="main-panel">
<div class="content-wrapper">
<div class="row">
<div class="col-md-12 grid-margin stretch-card">
<div class="card" style="min-height: 80vh;">
<div class="card-body">
<h4 class="card-title"><i class="mdi mdi-dots-vertical menu-icon"></i> ទូររក្សាទុកសំណាក</h4>
<div class="row">
<div class="col-sm-12">
<form id="search-area" method="get" action="{{url('equipment/search')}}">
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-8 col-lg-8">
<div class="input-group">
<input type="text" class="form-control form-control-md rounded-left-25 rounded-right-0" value="{{isset($_GET['kword']) ? $_GET['kword'] : ''}}" name="kword" id="kword" placeholder="{{__('laboratory.search_placeholder')}}">
<div class="input-group-append">
<select class="form-control select2 rounded-left-0 rounded-right-0" name="concept_category_code" style="width: 250px !important;">
<option></option>
@foreach($rooms as $room)
<option {{@$_GET['room_id']==$room->id? 'selected':''}} value="{{$room->id}}">{{$room->building->name . ' / ' . $room->name}}</option>
@endforeach
</select>
<select class="form-control rounded-left-0 rounded-right-0" name="concept_category_code" style="width: 150px !important;">
<option>Status</option>
<option>Active</option>
<option>Maintenance</option>
<option>Out of Service</option>
</select>
<button class="btn btn-md btn-inverse-secondary rounded-right-25 px-3" type="submit"><i class="fa fa-search"></i>&nbsp;{{__('general.btn_search')}}</button>
<button class="btn btn-md btn-inverse-success waves-effect rounded-25 px-4 ml-3" type="button" data-action="new" data-toggle="modal" data-target="#modal-equipment" data-backdrop="static"><i class="typcn typcn-plus"></i> {{__('general.btn_add_new')}}</button>
</div>
</div>
</div>
</div>
</form> <hr class="my-3 d-none">
<div class="col-sm-12 p-0 mb-1 mt-3">
<div class="table-responsive">
<table class="table table-bordered table-striped table-hover" id="lab_dt">
<thead>
<tr class="bg-gradient-light">
<th class="py-2" width="50px">{{__('laboratory.table_no')}}</th>
<th class="py-2 text-center" width="100px">{{__('laboratory.table_action')}}</th>
<th class="py-2" width="120px">{{__('general.code')}}</th>
<th class="py-2">{{__('ឈ្មោះ')}}</th>
<th class="py-2">{{__('ប្រភេទ')}}</th>
<th class="py-2">{{__('ទីតាំងបន្ទប់')}}</th>
<th class="py-2">{{__('ចំណុះផ្ទុក (ប្រអប់)')}}</th>
<th class="py-2 text-center" width="100px">{{__('laboratory.table_status')}}</th>
</tr>
</thead>
<tbody>
@foreach($equipments as $k=>$equipment)
<tr>
<td class="py-1 text-center">{{($k+1) + (($_GET['page'] ?? 1) * 20) - 20}}</td>
<td class="text-center py-1">
<div class="btn-group" role="group" aria-label="Basic example" >
<button type="button" class="btn btn-sm btn-inverse-primary mr-2" title="Edit" data-action="edit" data-equipment_id="{{$equipment->id}}" data-toggle="modal" data-target="#modal-equipment" data-backdrop="static"><i class="typcn typcn-edit"></i></button>
@if($equipment->record_status_id==0)
<button type="button" class="btn btn-sm btn-inverse-primary" title="Restore" onclick="restore_lab({{$equipment->id}})"><i class="typcn typcn-plus"></i></button>
@else
<button type="button" class="btn btn-sm btn-inverse-danger " title="Delete" onclick="delete_lab({{$equipment->id}})"><i class="mdi mdi-close-circle"></i></button>
@endif
</div>
</td>
<td class="py-1">{{$equipment->code}}</td>
<td class="py-1">{{$equipment->name}}</td>
<td class="py-1">{{$equipment->type->name}}</td>
<td class="py-1">{{$equipment->room->building->name . ' / ' . $equipment->room->name}}</td>
<td class="py-1">{{$equipment->capacity}}</td>
<td class="py-1 text-center">
<i class="mdi {{$equipment->status == 1 ? 'mdi-check-circle text-primary' : 'mdi-checkbox-blank-circle-outline'}}"></i>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
<div class="float-right mt-3">
{!! $equipments->links('pagination.custom') !!}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Modal Laboratory -->
<div class="modal mt-5 fade modal-primary" id="modal-equipment">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h6 class="modal-title">{{__('_')}}</h6>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true" class="mdi mdi-close"></span></button>
</div>
<div class="modal-body">
<form method="post" action="#" id="form" onkeydown="return event.key != 'Enter';">
@csrf
<input type="hidden" class="form-control" name="equipment_id" id="equipment_id" value="0" />
<div class="form-vertical">
<div class="row">
<div class="col-sm-6">
<div class="form-group mb-1">
<label for="lab-name-kh">{{__('លេខកូដ')}} <span class="text-danger">*</span> </label>
<input type="text" class="form-control" name="code" id="code" value="" />
</div>
</div>
<div class="col-sm-6">
<div class="form-group mb-1">
<label for="lab-name-en">{{__('ឈ្មោះទូបង្កក')}} <span class="text-danger">*</span></label>
<input type="text" class="form-control" name="name_en" id="name-en" value="" placeholder="ឈ្មោះទូបង្កក">
</div>
</div>
<div class="col-sm-6">
<div class="form-group mb-1">
<label for="lab-name-en">{{__('ប្រភេទ')}} <span class="text-danger">*</span></label>
<select class="form-control select2" name="equipment_type_concept_id" id="equipment_type_concept_id" style="width: 100% !important;">
<option></option>
@foreach(collect($concepts)->where('concept_category_code', 'EQUIPMENT') as $concept)
<option value="{{$concept->id}}">{{$concept->name}}</option>
@endforeach
</select>
</div>
</div>
<div class="col-sm-6">
<div class="form-group mb-1">
<label for="lab-name-en">{{__('ម៉ាកយីហោ')}} <span class="text-danger"></span></label>
<input type="text" class="form-control" name="model" id="model" value="">
</div>
</div>
<div class="col-sm-6">
<div class="form-group mb-1">
<label for="lab-name-en">{{__('លេខស៊េរី')}} <span class="text-danger"></span></label>
<input type="text" class="form-control" name="serial_number" id="serial_number" value="">
</div>
</div>
<div class="col-sm-6">
<div class="form-group mb-1">
<label for="lab-name-en">{{__('ចំណុះផ្ទុក(គិតជាប្រអប់)')}} <span class="text-danger">*</span></label>
<input type="number" class="form-control" name="capacity" id="capacity" value="" placeholder="">
</div>
</div>
<div class="col-sm-6">
<div class="form-group mb-1">
<label for="lab-name-en">{{__('កម្រិតស៊ីតុណ្ហភាពទាបបំផុត')}} <span class="text-danger">*</span></label>
<input type="number" class="form-control" name="min_temperature" id="min_temperature" value="" placeholder="-80">
</div>
</div>
<div class="col-sm-6">
<div class="form-group mb-1">
<label for="lab-name-en">{{__('កម្រិតស៊ីតុណ្ហភាពខ្ពស់បំផុត')}} <span class="text-danger">*</span></label>
<input type="number" class="form-control" name="max_temperature" id="max_temperature" value="" placeholder="-70">
</div>
</div>
<div class="col-sm-6">
<div class="form-group mb-1">
<label for="lab-name-en">{{__('ថ្ងៃចាប់ផ្តើមដំណើរការ')}} <span class="text-danger">*</span></label>
<input type="date" class="form-control" name="installed_date" id="installed_date" value="">
</div>
</div>
<div class="col-sm-6">
<div class="form-group mb-1">
<label for="lab-name-en">{{__('ទីតាំងបន្ទប់')}} <span class="text-danger">*</span></label>
<select class="form-control select2" name="room_id" id="room_id" style="width: 100% !important;">
<option></option>
@foreach($rooms as $room)
<option value="{{$room->id}}">{{$room->building->name. ' / ' . $room->name}}</option>
@endforeach
</select>
</div>
</div>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-success rounded-25" id="btnSave"><i class="fa fa-floppy-o"></i>&nbsp;&nbsp;<span class="save">{{__('lang.save')}}</span><span class="update" style="display: none">{{__('lang.update')}}</span></button>
<button type="button" class="btn btn-secondary rounded-25 ml-2" data-dismiss='modal'>{{__('lang.cancel')}}</button>
</div>
</div>
</div>
</div>
@include('layout.footer')
</div>
</div>
</div>
@include('layout.common_script')
<script>
var save_url = "{{url('equipment.save')}}";
var update_url = "{{url('equipment.update')}}";
var delete_url = "{{url('equipment.delete')}}";
var restore_url = "{{url('equipment.restore')}}";
var get_url = "{{url('equipment.get')}}";
let modal_add_title = "Add Equipment";
let modal_edit_title = "Add Equipment";
</script>
<script src="{{url(env("APP_URL").'storage/assets/js/admin/equipment.js?_').time()}}"></script>
</body>
</html>

View File

@@ -52,7 +52,7 @@
<th class="py-2" width="120px">{{__('general.code')}}</th> <th class="py-2" width="120px">{{__('general.code')}}</th>
<th class="py-2">{{__('laboratory.table_name_kh')}}</th> <th class="py-2">{{__('laboratory.table_name_kh')}}</th>
<th class="py-2">{{__('laboratory.table_name_en')}}</th> <th class="py-2">{{__('laboratory.table_name_en')}}</th>
<th class="py-2 text-center" width="100px">{{__('laboratory.table_status')}}</th> <th class="py-2" width="300px">{{__('បរិយាយ')}}</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@@ -72,8 +72,8 @@
<td class="py-1">{{$incidentType->code}}</td> <td class="py-1">{{$incidentType->code}}</td>
<td class="py-1">{{$incidentType->name_kh}}</td> <td class="py-1">{{$incidentType->name_kh}}</td>
<td class="py-1">{{$incidentType->name_en}}</td> <td class="py-1">{{$incidentType->name_en}}</td>
<td class="py-1 text-center"> <td class="py-1">
<i class="mdi {{$incidentType->record_status_id == 1 ? 'mdi-check-circle text-primary' : 'mdi-checkbox-blank-circle-outline'}}"></i> {{$incidentType->description}}
</td> </td>
</tr> </tr>
@endforeach @endforeach

View File

@@ -49,10 +49,9 @@
<tr class="bg-gradient-light"> <tr class="bg-gradient-light">
<th class="py-2" width="50px">{{__('laboratory.table_no')}}</th> <th class="py-2" width="50px">{{__('laboratory.table_no')}}</th>
<th class="py-2 text-center" width="100px">{{__('laboratory.table_action')}}</th> <th class="py-2 text-center" width="100px">{{__('laboratory.table_action')}}</th>
<th class="py-2">{{__('lab_profile.short_name')}}</th>
<th class="py-2">{{__('laboratory.table_name_en')}}</th> <th class="py-2">{{__('laboratory.table_name_en')}}</th>
<th class="py-2">{{__('laboratory.table_name_kh')}}</th> <th class="py-2">{{__('laboratory.table_name_kh')}}</th>
<th class="py-2">{{__('lab_profile.short_name')}}</th>
<th class="py-2 text-center" width="100px">{{__('laboratory.table_status')}}</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@@ -69,12 +68,9 @@
@endif @endif
</div> </div>
</td> </td>
<td class="py-1">{{$laboratory->code}}</td>
<td class="py-1">{{$laboratory->name_en}}</td> <td class="py-1">{{$laboratory->name_en}}</td>
<td class="py-1">{{$laboratory->name_kh}}</td> <td class="py-1">{{$laboratory->name_kh}}</td>
<td class="py-1">{{$laboratory->code}}</td>
<td class="py-1 text-center">
<i class="mdi {{$laboratory->record_status_id == 1 ? 'mdi-check-circle text-primary' : 'mdi-checkbox-blank-circle-outline'}}"></i>
</td>
</tr> </tr>
@endforeach @endforeach
</tbody> </tbody>

View File

@@ -62,17 +62,17 @@
</div> </div>
</li> </li>
<li class="nav-item {{ in_array(request()->segment(1), ['building', 'room']) ? 'active' : '' }}"> <li class="nav-item {{ in_array(request()->segment(1), ['building', 'room', 'equipment']) ? 'active' : '' }}">
<a class="nav-link" data-toggle="collapse" href="#lab-manager" aria-expanded="false" aria-controls="lab_manager"> <a class="nav-link" data-toggle="collapse" href="#lab-manager" aria-expanded="false" aria-controls="lab_manager">
<i class="fa fa-folder-open-o menu-icon"></i> <i class="fa fa-folder-open-o menu-icon"></i>
<span class="menu-title text-uppercase">គ្រប់គ្រង</span> <span class="menu-title text-uppercase">គ្រប់គ្រង</span>
<i class="menu-arrow"></i> <i class="menu-arrow"></i>
</a> </a>
<div class="collapse {{ in_array(request()->segment(1), ['building', 'room']) ? 'show' : '' }}" id="lab-manager"> <div class="collapse {{ in_array(request()->segment(1), ['building', 'room', 'equipment']) ? 'show' : '' }}" id="lab-manager">
<ul class="nav flex-column sub-menu"> <ul class="nav flex-column sub-menu">
<li class="nav-item"> <a class="nav-link {{request()->segment(1)=='building' ? 'active':''}}" href="{{url('building')}}">អគារ</a></li> <li class="nav-item"> <a class="nav-link {{request()->segment(1)=='building' ? 'active':''}}" href="{{url('building')}}">អគារ</a></li>
<li class="nav-item"> <a class="nav-link {{request()->segment(1)=='room' ? 'active':''}}" href="{{url('room')}}">បន្ទប់សុវត្ថិភាព</a></li> <li class="nav-item"> <a class="nav-link {{request()->segment(1)=='room' ? 'active':''}}" href="{{url('room')}}">បន្ទប់សុវត្ថិភាព</a></li>
<li class="nav-item"> <a class="nav-link" href="">ទូររក្សាសំណាក</a></li> <li class="nav-item"> <a class="nav-link {{request()->segment(1)=='equipment' ? 'active':''}}" href="{{url('equipment')}}">ទូររក្សាសំណាក</a></li>
<li class="nav-item"> <a class="nav-link" href="">ធ្នើ</a></li> <li class="nav-item"> <a class="nav-link" href="">ធ្នើ</a></li>
<li class="nav-item"> <a class="nav-link" href="">ប្រអប់សំណាក</a></li> <li class="nav-item"> <a class="nav-link" href="">ប្រអប់សំណាក</a></li>
</ul> </ul>

View File

@@ -54,7 +54,7 @@
<th class="py-2">{{__('ក្រុមមេរោគ/ជាតិពុល')}}</th> <th class="py-2">{{__('ក្រុមមេរោគ/ជាតិពុល')}}</th>
<th class="py-2">{{__('កម្រិតហានិភ័យរបស់មេរោគ')}}</th> <th class="py-2">{{__('កម្រិតហានិភ័យរបស់មេរោគ')}}</th>
<th class="py-2">{{__('កម្រិតជីវសុវត្ថិភាព')}}</th> <th class="py-2">{{__('កម្រិតជីវសុវត្ថិភាព')}}</th>
<th class="py-2 text-center" width="100px">{{__('laboratory.table_status')}}</th> {{-- <th class="py-2 text-center" width="100px">{{__('laboratory.table_status')}}</th>--}}
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@@ -76,9 +76,9 @@
<td class="py-1">{{$pathogen->pathogenType->name}}</td> <td class="py-1">{{$pathogen->pathogenType->name}}</td>
<td class="py-1">{{$pathogen->riskGroup->name}}</td> <td class="py-1">{{$pathogen->riskGroup->name}}</td>
<td class="py-1">{{$pathogen->bsl->name}}</td> <td class="py-1">{{$pathogen->bsl->name}}</td>
<td class="py-1 text-center"> {{-- <td class="py-1 text-center">--}}
<i class="mdi {{$pathogen->record_status_id == 1 ? 'mdi-check-circle text-primary' : 'mdi-checkbox-blank-circle-outline'}}"></i> {{-- <i class="mdi {{$pathogen->record_status_id == 1 ? 'mdi-check-circle text-primary' : 'mdi-checkbox-blank-circle-outline'}}"></i>--}}
</td> {{-- </td>--}}
</tr> </tr>
@endforeach @endforeach
</tbody> </tbody>

View File

@@ -53,9 +53,6 @@
<th class="py-2" width="50px">{{__('system_role.table_no')}}</th> <th class="py-2" width="50px">{{__('system_role.table_no')}}</th>
<th class="py-2 text-center" width="100px">{{__('system_role.table_action')}}</th> <th class="py-2 text-center" width="100px">{{__('system_role.table_action')}}</th>
<th class="py-2">{{__('system_role.table_name')}}</th> <th class="py-2">{{__('system_role.table_name')}}</th>
{{-- <th class="py-2">{{__('system_role.table_default_page')}}</th>--}}
{{-- <th class="py-2">{{__('system_role.table_permission')}}</th>--}}
<th class="py-2 text-center" width="100px">{{__('system_role.table_status')}}</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@@ -76,11 +73,6 @@
</div> </div>
</td> </td>
<td class="py-1">{{$role->name_en}}</td> <td class="py-1">{{$role->name_en}}</td>
{{-- <td class="py-1"> - </td>--}}
{{-- <td class="py-1 text-center" width="100px"> </td>--}}
<td class="py-1 text-center">
<i class="mdi {{$role->record_status_id == 1 ? 'mdi-check-circle text-primary ' : 'mdi-checkbox-blank-circle-outline'}}"></i>
</td>
</tr> </tr>
@endforeach @endforeach
</tbody> </tbody>

View File

@@ -53,7 +53,7 @@
<th class="py-2">{{__('ឈ្មោះ')}}</th> <th class="py-2">{{__('ឈ្មោះ')}}</th>
<th class="py-2">{{__('អគារ')}}</th> <th class="py-2">{{__('អគារ')}}</th>
<th class="py-2">{{__('កម្រិតជីវសុវត្ថិភាព')}}</th> <th class="py-2">{{__('កម្រិតជីវសុវត្ថិភាព')}}</th>
<th class="py-2 text-center" width="100px">{{__('laboratory.table_status')}}</th> <th class="py-2" width="200px">{{__('កម្រិតស៊ីតុណ្ហភាព')}}</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@@ -74,9 +74,7 @@
<td class="py-1">{{$room->name}}</td> <td class="py-1">{{$room->name}}</td>
<td class="py-1">{{$room->building->name}}</td> <td class="py-1">{{$room->building->name}}</td>
<td class="py-1">{{$room->bsl->name}}</td> <td class="py-1">{{$room->bsl->name}}</td>
<td class="py-1 text-center"> <td class="py-1">{{$room->temperature_range}}</td>
<i class="mdi {{$room->record_status_id == 1 ? 'mdi-check-circle text-primary' : 'mdi-checkbox-blank-circle-outline'}}"></i>
</td>
</tr> </tr>
@endforeach @endforeach
</tbody> </tbody>

View File

@@ -51,9 +51,9 @@
<th class="py-2 text-center" width="100px">{{__('laboratory.table_action')}}</th> <th class="py-2 text-center" width="100px">{{__('laboratory.table_action')}}</th>
<th class="py-2" width="120px">{{__('general.code')}}</th> <th class="py-2" width="120px">{{__('general.code')}}</th>
<th class="py-2">{{__('ឈ្មោះ')}}</th> <th class="py-2">{{__('ឈ្មោះ')}}</th>
<th class="py-2">{{__('អគារ')}}</th> <th class="py-2">{{__('ប្រភេទសំណាករក្សាទុក')}}</th>
<th class="py-2">{{__('កម្រិតជីវសុវត្ថិភាព')}}</th> <th class="py-2">{{__('សារធាតុបន្ថែម')}}</th>
<th class="py-2 text-center" width="100px">{{__('laboratory.table_status')}}</th> <th class="py-2" width="100px">{{__('ចំណុះ (គិតជាមីលីលីត្រ)')}}</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@@ -72,11 +72,9 @@
</td> </td>
<td class="py-1">{{$containerType->containerName->code}}</td> <td class="py-1">{{$containerType->containerName->code}}</td>
<td class="py-1">{{$containerType->containerName->name}}</td> <td class="py-1">{{$containerType->containerName->name}}</td>
<td class="py-1"></td> <td class="py-1">{{$containerType->sampleType->name}}</td>
<td class="py-1"></td> <td class="py-1">{{$containerType->additive}}</td>
<td class="py-1 text-center"> <td class="py-1">{{$containerType->volume_ml}}</td>
<i class="mdi {{$containerType->record_status_id == 1 ? 'mdi-check-circle text-primary' : 'mdi-checkbox-blank-circle-outline'}}"></i>
</td>
</tr> </tr>
@endforeach @endforeach
</tbody> </tbody>

View File

@@ -8,6 +8,7 @@ use App\Http\Controllers\ConceptController;
use App\Http\Controllers\ContainerTypeController; use App\Http\Controllers\ContainerTypeController;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use App\Http\Controllers\DashboardController; use App\Http\Controllers\DashboardController;
use App\Http\Controllers\EquipmentController;
use App\Http\Controllers\IncidentTypeController; use App\Http\Controllers\IncidentTypeController;
use App\Http\Controllers\InvoiceController; use App\Http\Controllers\InvoiceController;
use App\Http\Controllers\OrganismController; use App\Http\Controllers\OrganismController;
@@ -131,6 +132,14 @@ Route::middleware(['auth'])->group(function () {
Route::post('room.delete', [RoomController::class, 'delete'])->middleware(VerifyBaseLab::class); Route::post('room.delete', [RoomController::class, 'delete'])->middleware(VerifyBaseLab::class);
Route::post('room.restore', [RoomController::class, 'restore'])->middleware(VerifyBaseLab::class); Route::post('room.restore', [RoomController::class, 'restore'])->middleware(VerifyBaseLab::class);
Route::get('equipment', [EquipmentController::class, 'index'])->name('equipment')->middleware(VerifyBaseLab::class);
Route::get('equipment/search', [EquipmentController::class, 'index'])->name('equipment.search')->middleware(VerifyBaseLab::class);
Route::post('equipment.save', [EquipmentController::class, 'save'])->middleware(VerifyBaseLab::class);
Route::post('equipment.get', [EquipmentController::class, 'get'])->middleware(VerifyBaseLab::class);
Route::post('equipment.update', [EquipmentController::class, 'update'])->middleware(VerifyBaseLab::class);
Route::post('equipment.delete', [EquipmentController::class, 'delete'])->middleware(VerifyBaseLab::class);
Route::post('equipment.restore', [EquipmentController::class, 'restore'])->middleware(VerifyBaseLab::class);
Route::get('concept', [ConceptController::class, 'index'])->name('concept')->middleware(VerifyBaseLab::class); Route::get('concept', [ConceptController::class, 'index'])->name('concept')->middleware(VerifyBaseLab::class);
Route::get('concept/search', [ConceptController::class, 'index'])->name('concept.search')->middleware(VerifyBaseLab::class); Route::get('concept/search', [ConceptController::class, 'index'])->name('concept.search')->middleware(VerifyBaseLab::class);
Route::post('concept.save', [ConceptController::class, 'save'])->middleware(VerifyBaseLab::class); Route::post('concept.save', [ConceptController::class, 'save'])->middleware(VerifyBaseLab::class);