fix tubecomment, add users edit role, todo users edit pass, users set
This commit is contained in:
parent
c354bd7130
commit
d2713b9f57
@ -15,9 +15,12 @@ $routes->get('/tubes/uncollect/(:any)/(:any)', 'Tubes::uncollect/$1/$2');
|
|||||||
$routes->get('/tubes/uncollectAll/(:any)', 'Tubes::uncollectAll/$1');
|
$routes->get('/tubes/uncollectAll/(:any)', 'Tubes::uncollectAll/$1');
|
||||||
$routes->get('/tubes/unreceive/(:any)/(:any)', 'Tubes::unreceive/$1/$2');
|
$routes->get('/tubes/unreceive/(:any)/(:any)', 'Tubes::unreceive/$1/$2');
|
||||||
$routes->get('/tubes/unreceiveAll/(:any)', 'Tubes::unreceiveAll/$1');
|
$routes->get('/tubes/unreceiveAll/(:any)', 'Tubes::unreceiveAll/$1');
|
||||||
|
$routes->post('/tubes/comment/(:any)/(:any)', 'Tubes::comment/$1/$2');
|
||||||
|
|
||||||
// Users
|
// Users
|
||||||
$routes->get('/users/', 'Users::index');
|
$routes->get('/users/', 'Users::index');
|
||||||
|
$routes->match(['get','post'], '/users/editRole/(:any)', 'Users::editRole/$1');
|
||||||
|
$routes->match(['get','post'], '/users/editPass/(:any)', 'Users::editPass/$1');
|
||||||
|
|
||||||
// DICT_TESTS
|
// DICT_TESTS
|
||||||
$routes->get('/dict_tests/', 'Dict_tests::index');
|
$routes->get('/dict_tests/', 'Dict_tests::index');
|
||||||
|
|||||||
@ -6,16 +6,48 @@ class Dashboard extends BaseController {
|
|||||||
|
|
||||||
public function index(): string {
|
public function index(): string {
|
||||||
$db = \Config\Database::connect();
|
$db = \Config\Database::connect();
|
||||||
$sql = "select sr.COLLECTIONDATE, sr.SP_ACCESSNUMBER, sr.HOSTORDERNUMBER, p.PATNUMBER, p.NAME,
|
$sql = "select top 50 sr.COLLECTIONDATE, sr.SP_ACCESSNUMBER, sr.HOSTORDERNUMBER, p.PATNUMBER, p.NAME,
|
||||||
TESTS=stuff(( select ', '+'('+T.SP_TESTCODE+')' from
|
TESTS=stuff(( select ', '+'('+T.SP_TESTCODE+')' from
|
||||||
( select T.SP_TESTCODE from SP_TESTS T
|
( select T.SP_TESTCODE from SP_TESTS T
|
||||||
where T.SP_ACCESSNUMBER=sr.SP_ACCESSNUMBER
|
where T.SP_ACCESSNUMBER=sr.SP_ACCESSNUMBER
|
||||||
and T.DEPTH=0 AND T.SP_TESTCODE <> 'Q'
|
and T.DEPTH=0 AND T.SP_TESTCODE <> 'Q'
|
||||||
) as T
|
) as T
|
||||||
for xml path('')),1,1,'')
|
for xml path('')),1,1,''),
|
||||||
from SP_REQUESTS sr
|
case
|
||||||
left join PATIENTS p on p.PATID=sr.PATID
|
when exists (select 1 from AUDIT_TRAIL at where at.ATR_ACCESSNUMBER=sr.SP_ACCESSNUMBER and at.STEPTYPE=2 and at.LIS_SESSION='RFC' ) then
|
||||||
where sr.COLLECTIONDATE between '2023-09-15 00:00' and '2023-09-16 23:59'";
|
case
|
||||||
|
when exists (select 1 from SP_TUBES st where st.SP_ACCESSNUMBER=sr.SP_ACCESSNUMBER and st.TUBESTATUS=0 ) then 'PartRecv'
|
||||||
|
when exists (select 1 from TESTS T where T.REQUESTID=r.REQUESTID and (T.RESTYPE IN (null,'0') OR T.TESTID='1805') ) then 'Inc'
|
||||||
|
--when exists (select 1 from TESTS T where T.REQUESTID=r.REQUESTID and T.RESTYPE IN (null,'0') and T.TESTID='1805' ) then 'Inc'
|
||||||
|
else 'Comp'
|
||||||
|
end
|
||||||
|
-- inc
|
||||||
|
when exists (select 1 from TESTS T where T.RESTYPE not in (0,4) and T.REQUESTID=r.REQUESTID AND T.TESTID<>'1805') then
|
||||||
|
case
|
||||||
|
when exists ( select 1 from cmod.dbo.CM_TUBES T where T.ACCESSNUMBER=sr.SP_ACCESSNUMBER and T.COLLSTATUS=0 ) then 'PartColl'
|
||||||
|
when exists (select 1 from SP_TUBES st where st.SP_ACCESSNUMBER=sr.SP_ACCESSNUMBER and st.TUBESTATUS=0 ) then 'PartRecv'
|
||||||
|
else 'Inc'
|
||||||
|
end
|
||||||
|
--rcv
|
||||||
|
when not exists (select 1 from SP_TUBES st where st.SP_ACCESSNUMBER=sr.SP_ACCESSNUMBER and st.TUBESTATUS=0 ) then
|
||||||
|
case
|
||||||
|
when exists (select 1 from cmod.dbo.CM_TUBES T where T.ACCESSNUMBER=sr.SP_ACCESSNUMBER and T.COLLSTATUS=0 ) then 'PartColl'
|
||||||
|
else 'Recv'
|
||||||
|
end
|
||||||
|
--coll
|
||||||
|
when not exists (select 1 FROM cmod.dbo.CM_TUBES T where T.ACCESSNUMBER=sr.SP_ACCESSNUMBER and T.COLLSTATUS=0 ) then
|
||||||
|
case
|
||||||
|
when exists (select 1 from SP_TUBES st where st.SP_ACCESSNUMBER=sr.SP_ACCESSNUMBER and st.TUBESTATUS=4 ) then 'PartRecv'
|
||||||
|
else 'Coll'
|
||||||
|
end
|
||||||
|
when exists ( select 1 from CMOD.dbo.CM_TUBES T where T.ACCESSNUMBER=sr.SP_ACCESSNUMBER and T.COLLSTATUS=1 ) then 'PartColl'
|
||||||
|
else 'Pend'
|
||||||
|
end STATS
|
||||||
|
from SP_REQUESTS sr
|
||||||
|
left join PATIENTS p on p.PATID=sr.PATID
|
||||||
|
left join REQUESTS r on r.ACCESSNUMBER=sr.SP_ACCESSNUMBER
|
||||||
|
where sr.COLLECTIONDATE between '2023-09-16 00:00' and '2023-09-17 23:59'
|
||||||
|
order by sr.COLLECTIONDATE desc";
|
||||||
$query = $db->query($sql);
|
$query = $db->query($sql);
|
||||||
$results = $query->getResultArray();
|
$results = $query->getResultArray();
|
||||||
$data['data'] = $results;
|
$data['data'] = $results;
|
||||||
|
|||||||
@ -17,7 +17,7 @@ class Tubes extends BaseController {
|
|||||||
|
|
||||||
public function uncollect($access, $sample) {
|
public function uncollect($access, $sample) {
|
||||||
$db = \Config\Database::connect();
|
$db = \Config\Database::connect();
|
||||||
$sql = "UPDATE cmod.dbo.CM_TUBES set COLLSTATUS=null where ACCESSNUMBER='$access' and SAMPLETYPE='$sample'";
|
$sql = "UPDATE cmod.dbo.CM_TUBES set COLLSTATUS=0 where ACCESSNUMBER='$access' and SAMPLETYPE='$sample'";
|
||||||
$query = $db->query($sql);
|
$query = $db->query($sql);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -48,7 +48,7 @@ class Tubes extends BaseController {
|
|||||||
|
|
||||||
public function uncollectAll($access) {
|
public function uncollectAll($access) {
|
||||||
$db = \Config\Database::connect();
|
$db = \Config\Database::connect();
|
||||||
$sql = "UPDATE cmod.dbo.CM_TUBES set COLLSTATUS=null where ACCESSNUMBER='$access'";
|
$sql = "UPDATE cmod.dbo.CM_TUBES set COLLSTATUS=0 where ACCESSNUMBER='$access'";
|
||||||
$query = $db->query($sql);
|
$query = $db->query($sql);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -58,10 +58,19 @@ class Tubes extends BaseController {
|
|||||||
$query = $db->query($sql);
|
$query = $db->query($sql);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function comment($access, $sample) {
|
||||||
public function commentUpdate($access, $sample) {
|
$userid = session()->userid;
|
||||||
|
$request = service('request');
|
||||||
|
$jsonData = $request->getJSON();
|
||||||
$db = \Config\Database::connect();
|
$db = \Config\Database::connect();
|
||||||
$sql = "UPDATE cmod.dbo.CM_TUBES set TUBECOMMENT='$comment' where ACCESSNUMBER='$access' and SAMPLETYPE='$sample'";
|
$comment = $jsonData->comment;
|
||||||
|
$sql = "if (not exists (select * from cmod.dbo.CM_TUBES where ACCESSNUMBER='$access' AND SAMPLETYPE='$sample')) BEGIN
|
||||||
|
INSERT INTO cmod.dbo.CM_TUBES(ACCESSNUMBER, SAMPLETYPE, COLL_USERID, TUBECOMMENT, CREATEDATE) VALUES
|
||||||
|
('$access','$sample', '$userid', '$comment', GETDATE())
|
||||||
|
END ELSE BEGIN
|
||||||
|
UPDATE cmod.dbo.CM_TUBES set TUBECOMMENT='$comment' where ACCESSNUMBER='$access' and SAMPLETYPE='$sample'
|
||||||
|
END";
|
||||||
|
echo "$sql";
|
||||||
$query = $db->query($sql);
|
$query = $db->query($sql);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,8 +4,66 @@ namespace App\Controllers;
|
|||||||
|
|
||||||
class Users extends BaseController {
|
class Users extends BaseController {
|
||||||
|
|
||||||
public function index(): string {
|
public function __construct() {
|
||||||
|
$this->userrole = array(
|
||||||
|
"0" => "superuser",
|
||||||
|
"1" => "analyst",
|
||||||
|
"2" => "phlebotomist"
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function index(): string {
|
||||||
|
$db = \Config\Database::connect();
|
||||||
|
$sql = "select u.USERID, u.USERNAME, u1.USERROLEID from cmod.dbo.CM_USERS u1
|
||||||
|
full join USERS u on u.USERID=u1.USERID
|
||||||
|
where ( u.LOCKEDACCOUNT is null or u.LOCKEDACCOUNT=0 )";
|
||||||
|
$query = $db->query($sql);
|
||||||
|
$results = $query->getResultArray();
|
||||||
|
|
||||||
|
$data['users'] = $results;
|
||||||
|
return view('users_index', $data);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function editRole($userid) {
|
||||||
|
if ($this->request->getMethod() == 'POST') {
|
||||||
|
$request = service('request');
|
||||||
|
$jsonData = $request->getJSON();
|
||||||
|
$userroleid = $jsonData->userroleid;
|
||||||
|
$db = \Config\Database::connect();
|
||||||
|
$sql = "if (not exists (select * from cmod.dbo.CM_USERS where USERID='$userid')) BEGIN
|
||||||
|
INSERT INTO cmod.dbo.CM_USERS(USERID, USERROLEID, CREATEDATE) VALUES
|
||||||
|
('$userid','$userroleid', GETDATE())
|
||||||
|
END ELSE BEGIN
|
||||||
|
UPDATE cmod.dbo.CM_USERS set USERROLEID='$userroleid' where USERID='$userid'
|
||||||
|
END";
|
||||||
|
$query = $db->query($sql);
|
||||||
|
} else {
|
||||||
|
$db = \Config\Database::connect();
|
||||||
|
$sql = "select u.USERID, u.USERNAME, u1.USERROLEID from cmod.dbo.CM_USERS u1
|
||||||
|
full join USERS u on u.USERID=u1.USERID
|
||||||
|
where u.USERID='$userid'";
|
||||||
|
$query = $db->query($sql);
|
||||||
|
$results = $query->getResultArray();
|
||||||
|
|
||||||
|
$data['users'] = $results;
|
||||||
|
$data['userroles'] = $this->userrole;
|
||||||
|
return view('users_editRole', $data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function comment($access, $sample) {
|
||||||
|
$userid = session()->userid;
|
||||||
|
$request = service('request');
|
||||||
|
$jsonData = $request->getJSON();
|
||||||
|
$db = \Config\Database::connect();
|
||||||
|
$comment = $jsonData->comment;
|
||||||
|
$sql = "if (not exists (select * from cmod.dbo.CM_TUBES where ACCESSNUMBER='$access' AND SAMPLETYPE='$sample')) BEGIN
|
||||||
|
INSERT INTO cmod.dbo.CM_TUBES(ACCESSNUMBER, SAMPLETYPE, COLL_USERID, TUBECOMMENT, CREATEDATE) VALUES
|
||||||
|
('$access','$sample', '$userid', '$comment', GETDATE())
|
||||||
|
END ELSE BEGIN
|
||||||
|
UPDATE cmod.dbo.CM_TUBES set TUBECOMMENT='$comment' where ACCESSNUMBER='$access' and SAMPLETYPE='$sample'
|
||||||
|
END";
|
||||||
|
echo "$sql";
|
||||||
|
$query = $db->query($sql);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -69,6 +69,11 @@
|
|||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
<script type="text/javascript" src="<?=base_url();?>assets/js/mdb.min.js"></script>
|
<script type="text/javascript" src="<?=base_url();?>assets/js/mdb.min.js"></script>
|
||||||
|
<script>
|
||||||
|
window.onload = function() {
|
||||||
|
document.getElementById("userid").focus();
|
||||||
|
}
|
||||||
|
</script>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
@ -152,17 +152,15 @@ function unreceiveAll(access) {
|
|||||||
function comment(sample, access, sampletext, comments) {
|
function comment(sample, access, sampletext, comments) {
|
||||||
const url = '<?=base_url();?>tubes/comment/'+access+'/'+sample;
|
const url = '<?=base_url();?>tubes/comment/'+access+'/'+sample;
|
||||||
let comment = prompt('Comment for sample '+sampletext, comments);
|
let comment = prompt('Comment for sample '+sampletext, comments);
|
||||||
if(comment != null) {
|
if(comment) {
|
||||||
$('#comment'+sample).html(comment +"<i class='bi bi-pencil-square' onclick='comment("+ sample +", "+ access +', "'+sampletext+'", "'+comment+'")\'></i>');
|
$('#comment'+sample).html(comment +"<i class='bi bi-pencil-square' onclick='comment("+ sample +", "+ access +', "'+sampletext+'", "'+comment+'")\'></i>');
|
||||||
fetch(url, {
|
fetch(url, {
|
||||||
method: "POST",
|
method: "POST",
|
||||||
body: JSON.stringify({
|
body: JSON.stringify({ comment : comment }),
|
||||||
comment : comment
|
|
||||||
}),
|
|
||||||
headers: { "Content-type": "application/json; charset=UTF-8" }
|
headers: { "Content-type": "application/json; charset=UTF-8" }
|
||||||
})
|
})
|
||||||
.then( response => response.json() )
|
.then(data => console.log(data))
|
||||||
.then( json => console.log(json) );
|
.catch(error => { console.error('Error:',error); });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -3,8 +3,8 @@
|
|||||||
<div class="sb-sidenav-menu">
|
<div class="sb-sidenav-menu">
|
||||||
<div class="nav">
|
<div class="nav">
|
||||||
<div class="sb-sidenav-menu-heading">Administration</div>
|
<div class="sb-sidenav-menu-heading">Administration</div>
|
||||||
<a class="nav-link" href="index.html"> <div class="sb-nav-link-icon"><i class="fas bi-journal-album"></i></div> Dictionary Test </a>
|
<a class="nav-link" href="#"> <div class="sb-nav-link-icon"><i class="fas bi-journal-album"></i></div> Dictionary Test </a>
|
||||||
<a class="nav-link" href="index.html"> <div class="sb-nav-link-icon"><i class="bi bi-person-circle"></i></div> Users </a>
|
<a class="nav-link" href="<?=base_url();?>users/"> <div class="sb-nav-link-icon"><i class="bi bi-person-circle"></i></div> Users </a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="sb-sidenav-footer">
|
<div class="sb-sidenav-footer">
|
||||||
|
|||||||
48
app/Views/users_editRole.php
Normal file
48
app/Views/users_editRole.php
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
<?php
|
||||||
|
$userid = $users[0]['USERID'];
|
||||||
|
$username = $users[0]['USERNAME'];
|
||||||
|
$userroleid = $users[0]['USERROLEID'];
|
||||||
|
?>
|
||||||
|
<div class="modal-header">
|
||||||
|
<h1 class="modal-title fs-5" id="exampleModalToggleLabel">Edit Users Role</h1>
|
||||||
|
<button type="button" class="btn-close" data-bs-dismiss="modal" ></button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body" style='background-color:#F4F6FF'>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12">
|
||||||
|
<table class="table table-sm table-borderless">
|
||||||
|
<tr> <th>Userid</th> <th>:</th> <td><?=$userid;?></td> </tr>
|
||||||
|
<tr> <th>Username</th> <th>:</th> <td><?=$username;?></td> </tr>
|
||||||
|
<tr class="align-middle"> <th>User Role</th> <th>:</th>
|
||||||
|
<td>
|
||||||
|
<select class='form-control' id='userroleid'>
|
||||||
|
<?php
|
||||||
|
foreach($userroles as $quserroleid => $quserrole) {
|
||||||
|
echo "<option value='$quserroleid'>$quserrole</option>";
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</select>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<button class='btn btn-sm btn-primary' onclick='save("<?=$userid;?>")'>Save</button>
|
||||||
|
<button class='btn btn-sm btn-secondary' data-bs-dismiss="modal">Cancel</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
function save(userid) {
|
||||||
|
// Assuming your select element has an ID of "mySelect"
|
||||||
|
const userroleid = $("#userroleid").val();
|
||||||
|
const url = '<?=base_url();?>users/editRole/'+userid;
|
||||||
|
console.log(url+' '+userroleid);
|
||||||
|
fetch(url, {
|
||||||
|
method: "POST",
|
||||||
|
body: JSON.stringify({ userroleid : userroleid }),
|
||||||
|
headers: { "Content-type": "application/json; charset=UTF-8" }
|
||||||
|
})
|
||||||
|
.then(response => {return response.text()})
|
||||||
|
.then(data => console.log(data))
|
||||||
|
.catch(error => { console.error('Error:',error); });
|
||||||
|
}
|
||||||
|
</script>
|
||||||
74
app/Views/users_index.php
Normal file
74
app/Views/users_index.php
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
<?= $this->extend('layouts/main.php') ?>
|
||||||
|
|
||||||
|
<?= $this->section('content') ?>
|
||||||
|
<div class="card border-0">
|
||||||
|
<div class="body-card">
|
||||||
|
<div class="table-responsive">
|
||||||
|
<table id="table_dashboard" class="table">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>#</th>
|
||||||
|
<th>Userid</th>
|
||||||
|
<th>Name</th>
|
||||||
|
<th>Role</th>
|
||||||
|
<th>Action</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<?php
|
||||||
|
$i = 1;
|
||||||
|
foreach ($users as $data) {
|
||||||
|
$userid = $data['USERID'];
|
||||||
|
$username = $data['USERNAME'];
|
||||||
|
$userroleid = $data['USERROLEID'];
|
||||||
|
?>
|
||||||
|
<tr class="table-row">
|
||||||
|
<td><?=$i;?></td>
|
||||||
|
<td><?=$userid;?></td>
|
||||||
|
<td><?=$username;?></td>
|
||||||
|
<td><?=$userroleid;?></td>
|
||||||
|
<td>
|
||||||
|
<button class='badge text-bg-dark editRole' data-bs-toggle="modal" data-bs-target="#modal" data-userid='<?=$userid;?>'>edit role</button>
|
||||||
|
<button class='badge text-bg-warning editPass' data-userid='<?=$userid;?>'>edit password</button>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<?php
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal fade" id="modal" aria-hidden="true" tabindex="-1">
|
||||||
|
<div class="modal-dialog modal-dialog-centered modal-dialog-scrollable">
|
||||||
|
<div class="modal-content">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<?= $this->endSection() ?>
|
||||||
|
|
||||||
|
<?= $this->section('script') ?>
|
||||||
|
<script>
|
||||||
|
$(document).ready(function() {
|
||||||
|
$('#table_dashboard').DataTable({
|
||||||
|
order: [],
|
||||||
|
pageLength: 25
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
$('.editPass').on('click',function(){
|
||||||
|
var userid = $(this).data('userid');
|
||||||
|
$('.modal-content').load('<?=base_url();?>users/editPass/'+userid, function(){
|
||||||
|
$('#modal').modal('show');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
$('.editRole').on('click',function(){
|
||||||
|
var userid = $(this).data('userid');
|
||||||
|
$('.modal-content').load('<?=base_url();?>users/editRole/'+userid , function(){
|
||||||
|
$('#modal').modal('show');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<?= $this->endSection() ?>
|
||||||
Loading…
x
Reference in New Issue
Block a user