gdc_cmod/app/Views/cs/index.php
2025-12-04 15:40:54 +07:00

285 lines
13 KiB
PHP

<?= $this->extend('_layouts/main.php') ?>
<?= $this->section('title') ?>
<title>Customer Service Glenlis</title>
<?= $this->endSection() ?>
<?= $this->section('content') ?>
<div class="container-fluid px-3">
<div class='row p-1'>
<div class='col fw-bold'>Dashboard, <?=session('userrole');?></div>
<div class='col text-end'>
Hi, <?=session('userid');?>
<button class="btn btn-sm btn-secondary" type="button" id="dropdownMenuButton1" data-bs-toggle="dropdown" aria-expanded="false"><i class="bi bi-list"></i></button>
<div class="dropdown">
<ul class="dropdown-menu" aria-labelledby="dropdownMenuButton1">
<li><a class="dropdown-item" href="<?=base_url('cs/');?>">Dashboard</a></li>
<li><a class="dropdown-item" href="<?=base_url('');?>">Report</a></li>
<li><a class="dropdown-item" href="<?=base_url('logout');?>">Log Out</a></li>
</ul>
</div>
</div>
</div>
<div class="row">
<div class='col'>
<form method="GET" action='<?= base_url('/cs') ?>'>
<div class="row align-items-center g-1">
<div class="col-auto fw-semibold text-muted">
Date :
</div>
<div class="col-auto">
<input type="date" class="form-control form-control-sm" name="date1"
value="<?php echo $date1; ?>" />
</div>
<div class="col-auto">-</div>
<div class="col-auto">
<input type="date" class="form-control form-control-sm" name="date2"
value="<?php echo $date2; ?>" />
</div>
<div class="col-auto">
<button type="submit" class="btn btn-sm btn-primary">Search</button>
</div>
<div class="col-auto"> <button type="button" class="btn btn-sm btn-outline-dark" onclick="window.location.href='<?=base_url();?>';"> RESET </button> </div>
</div>
</form>
</div>
<div id="filterGroup" class="col text-end">
<button class='btn btn-sm btn-outline-secondary' data-type='secondary'><?=$counter['pending'];?> <small>Pending</small></button>
<button class='btn btn-sm btn-outline-info' data-type='info'><?=$counter['collect'];?> <small>Collect</small></button>
<button class='btn btn-sm btn-outline-primary' data-type='primary'><?=$counter['recv'];?> <small>Receive</small></button>
<button class='btn btn-sm btn-outline-warning' data-type='warning'><?=$counter['incomplete'];?> <small>Incomplete</small></button>
<button class='btn btn-sm btn-outline-success' data-type='success'><?=$counter['complete'];?> <small>Complete</small></button>
<button class='btn btn-sm btn-dark' data-type='dark'><?=$counter['total'];?> <small>Total</small></button>
</div>
<div class="col-1">
<button id="filterValBtn" class='btn btn-sm btn-outline-primary' onclick="filterVal('<?=session('userid');?>')"> <small>Validate</small></button>
</div>
</div>
<div class="table table-responsive-scroll">
<table id="datatables" class="table table-sm table-hover table-bordered align-middle table-striped">
<thead class="table-primary">
<tr>
<th style="width:1%;">S</th>
<th style='width:7%;'>Order Datetime</th>
<th>Patient Name</th>
<th style='width:7%;'>No Lab</th>
<th style='width:7%;'>No Register</th>
<th style='width:8%;'>Reff</th>
<th style='width:8%;'>Doctor</th>
<th style='width:15%;'>Tests</th>
<th style='width:5%;'>Result To</th>
<th style='width:5%;'>Validation</th>
<th style='width:4%;'>Status</th>
</tr>
</thead>
<tbody>
<?php foreach($dataList as $row) : ?>
<?php
switch ($row['statscode']) {
case 1: $class = 'BackPend'; break;
case 2: $class = 'PartColl'; break;
case 3: $class = 'Collected'; break;
case 4: $class = 'PartRecv'; break;
case 5: $class = 'Received'; break;
case 6: $class = 'Incomplete'; break;
case 7: $class = 'Final'; break;
case 8: $class = 'FinVerification'; break;
case 9: $class = 'PenVerification'; break;
default: $class = ''; break;
}
$tests = esc($row['tests']);
$tests = str_replace(",", ", ", $tests);
$accessnumber = $row['sp_accessnumber'];
?>
<tr>
<!--
<td class="pointercol" data-access="<?= $row['sp_accessnumber'] ?>" data-bs-toggle="modal" data-bs-target="#detailModal"> <?= esc($row['statscode']) ?> </td>
<td class="pointercol" data-access="<?= $row['sp_accessnumber'] ?>" data-bs-toggle="modal" data-bs-target="#detailModal"> <?= esc($row['reqdate']) ?> </td>
<td class="pointercol" data-access="<?= $row['sp_accessnumber'] ?>" data-bs-toggle="modal" data-bs-target="#detailModal"> <?= esc($row['patname']) ?> </td>
<td class="pointercol" data-access="<?= $row['sp_accessnumber'] ?>" data-bs-toggle="modal" data-bs-target="#detailModal"> <?= esc($row['sp_accessnumber']) ?> </td>
<td class="pointercol" data-access="<?= $row['sp_accessnumber'] ?>" data-bs-toggle="modal" data-bs-target="#detailModal"> <?= esc($row['hostordernumber']) ?> </td>
<td class="pointercol" data-access="<?= $row['sp_accessnumber'] ?>" data-bs-toggle="modal" data-bs-target="#detailModal"> <?= esc($row['reff']) ?> </td>
<td class="pointercol" data-access="<?= $row['sp_accessnumber'] ?>" data-bs-toggle="modal" data-bs-target="#detailModal"> <?= esc($row['doc']) ?> </td>
<td class="pointercol" data-access="<?= $row['sp_accessnumber'] ?>" data-bs-toggle="modal" data-bs-target="#detailModal"> <?= esc($row['tests']) ?> </td>
<td class="pointercol" data-access="<?= $row['sp_accessnumber'] ?>" data-bs-toggle="modal" data-bs-target="#detailModal"> <?= esc($row['odr_cresult_to']) ?> </td>
-->
<td> <?= esc($row['statscode']) ?> </td> <td> <?= esc($row['reqdate']) ?> </td> <td> <?= esc($row['patname']) ?> </td>
<td> <?= esc($row['sp_accessnumber']) ?> </td> <td> <?= esc($row['hostordernumber']) ?> </td> <td> <?= esc($row['reff']) ?> </td>
<td> <?= esc($row['doc']) ?> </td> <td> <?= $tests; ?> </td>
<td>
<?= esc($row['odr_cresult_to']) ?> <br/>
<?php if($row['valcounter'] == 2) { ?>
<input type="checkbox" name="printed" id='printed'> Printed <br/>
<input type="checkbox" name="eng" id='eng'> Eng
<?php } ?>
</td>
<td class="text-center">
<table class='mx-auto'>
<tr>
<td id='val1user-<?=$accessnumber;?>'>1 : <?=$row['val1user'];?></td>
</tr>
<tr>
<td id='val2user-<?=$accessnumber;?>'>2 : <?=$row['val2user'];?></td>
</tr>
<?php if($row['isvaltd'] != 0) { ?>
<?php
$user = session()->get('userid');
$val1 = $row['val1user'];
$val2 = $row['val2user'];
$valButton = (($val1 === '-') || ($val2 === '-')) && ($user !== $val1 && $user !== $val2);
$unvalButton = ($val1 !== '-') || ($val2 !== '-');
?>
<tr>
<td id="btnContainer-<?=$accessnumber;?>">
<?php if ($unvalButton): ?>
<button id='unvalBtn-<?=$accessnumber;?>' class='btn btn-xs btn-outline-secondary px-1 py-0 mb-1' onclick="unvalidateShow(<?=$row['sp_accessnumber'];?>)" data-bs-toggle="modal" data-bs-target="#unvalidateModal"><i class="bi bi-arrow-counterclockwise"></i></button>
<?php endif; ?>
<?php if ($valButton): ?>
<button id='valBtn-<?= $accessnumber; ?>' class='btn btn-xs btn-outline-success px-1 py-0 mb-1' onclick="validateShow(<?= $row['sp_accessnumber']; ?>)" data-bs-toggle="modal" data-bs-target="#validateModal"> <i class="bi bi-check-lg"></i></button>
<?php endif; ?>
</td>
</tr>
<?php } ?>
</table>
</td>
<td class="pointercol <?= esc($class) ?>" data-access="<?= $row['sp_accessnumber'] ?>" onclick="detailShow('<?=session('userrole');?>')" data-bs-toggle="modal" data-bs-target="#detailModal"> <?= esc($row['stats']) ?> </td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
</div>
<!-- Modal Specimen Collection-->
<div class="modal fade" id="detailModal" aria-hidden="true" aria-labelledby="detailModal" tabindex="-1">
<div class="modal-dialog modal-xl modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fw-bold fs-4" id="detailModal">Specimen Collection</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body" id="specimenModalContent"> </div>
</div>
</div>
</div>
<div class="modal fade" id="validateModal" aria-hidden="true" aria-labelledby="validateModal" tabindex="-1">
<div class="modal-dialog modal-xl modal-dialog-centered">
<div class="modal-content">
<div class="modal-body" id="validateModalContent"> </div>
</div>
</div>
</div>
<div class="modal fade" id="unvalidateModal" aria-hidden="true" aria-labelledby="unvalidateModal" tabindex="-1">
<div class="modal-dialog modal-xl modal-dialog-centered">
<div class="modal-content">
<div class="modal-body" id="unvalidateModalContent"> </div>
</div>
</div>
</div>
</div>
<?= $this->endSection() ?>
<?= $this->section('script') ?>
<script>
$(document).ready(function () {
table = $('#datatables').DataTable({
layout: {
topEnd: 'search',
bottomStart: null, bottomEnd: null
},
order: [[0, 'asc'], [3, 'asc']],
paging: false,
scrollCollapse: true,
scrollY: '70vh',
columnDefs: [{
className: 'text-center',
targets: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
}, // semua kolom di tengah
{
className: 'text-start',
targets: [10]
}
],
responsive: true,
});
$('#filterGroup .btn').on('click', function () {
$('#filterGroup .btn').each(function () {
const type = $(this).data('type');
$(this).removeClass(`btn-${type}`).addClass(`btn-outline-${type}`);
});
const type = $(this).data('type');
$(this).removeClass(`btn-outline-${type}`).addClass(`btn-${type}`);
let vals;
if(type=='secondary') { vals = [0]; }
if(type=='info') { vals = ['1','2']; }
if(type=='primary') { vals = ['3','4','5']; }
if(type=='warning') { vals = [6,7]; }
if(type=='success') { vals = [8]; }
if(type=='dark') {vals=[];}
regex = vals.join('|');
table.column(0).search(regex, true, false).draw();
});
});
// Select the column by index (1) and apply a search that excludes "Test"
// The regex: ^((?!Test).)*$
// - ^...$ anchors the start and end
// - (?!Test) is a negative lookahead, failing the match if "Test" is found
function filterVal(userid) {
var currentSearch = table.column(9).search();
if (currentSearch.includes(userid)) {
table.column(9).search( '' ).draw();
$("#filterValBtn").removeClass(`btn-primary`).addClass(`btn-outline-primary`);
} else {
table.column(9).search( `^((?!${userid}).)*$`, true, false ).draw();
$("#filterValBtn").removeClass(`btn-outline-primary`).addClass(`btn-primary`);
}
}
function unvalidate(accessnumber,userid) {
if(confirm("Are you sure?")) {
fetch(`${BASE_URL}/api/request/validate/${accessnumber}`, {
method: "DELETE",
headers: {"Content-Type": "application/json"},
body: JSON.stringify({ userid:`${userid}` })
}).then(response => {
console.log("Response:", response);
$(`#val1user-${accessnumber}`).text("1 : ");
$(`#val2user-${accessnumber}`).text("2 : ");
$(`#valBtn-${accessnumber}`).prop('disabled', false);
$(`#unvalBtn-${accessnumber}`).prop('disabled', false);
}).catch(error => {
console.log("Error:", error);
});
}
}
const BASE_URL = "<?= base_url(); ?>";
</script>
<script src="<?=base_url('js/admin/specimen.js');?>"></script>
<script src="<?=base_url('js/admin/request.js');?>"></script>
<?= $this->endSection() ?>