1653 lines
51 KiB
PHP
1653 lines
51 KiB
PHP
<?php
|
|
class Order extends MY_Controller
|
|
{
|
|
var $db_onedev;
|
|
public function index()
|
|
{
|
|
echo "Patient API";
|
|
/*
|
|
|
|
truncate preorder_header;
|
|
truncate preorder_delivery;
|
|
truncate preorder_test;
|
|
truncate preorder_sample;
|
|
*/
|
|
}
|
|
public function __construct()
|
|
{
|
|
parent::__construct();
|
|
$this->db_onedev = $this->load->database("onedev", true);
|
|
}
|
|
|
|
function add_test($orderid){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$query =" SELECT one_preorder_dev.preorder_test.*, one.t_test.*,one_lis_dev.t_price.*, 'Y' as editable, PreOrder_TestID as xid,
|
|
T_PriceAmount - ((T_PriceDisc/100) * T_PriceAmount) - T_PriceDiscRp as total
|
|
FROM one_preorder_dev.preorder_test
|
|
JOIN one.t_test ON PreOrder_TestT_TestID = T_TestID
|
|
JOIN one.t_price ON T_PriceT_TestID = T_TestID AND T_PriceIsCito = 'N'
|
|
JOIN one_preorder_dev.conf_system ON Conf_SystemIsActive = 'Y' AND Conf_SystemMOUID = T_PriceM_MouID
|
|
WHERE
|
|
PreOrder_TestPreOrder_HeaderID = {$orderid} AND PreOrder_TestIsActive = 'Y'
|
|
";
|
|
//echo $query;
|
|
$rows = $this->db_onedev->query($query)->result_array();
|
|
if(!$rows)
|
|
$rows = array();
|
|
return $rows;
|
|
}
|
|
|
|
function add_deliveries($orderid){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$query =" SELECT *
|
|
FROM one_preorder_dev.preorder_delivery
|
|
LEFT JOIN one.m_delivery ON PreOrder_DeliveryM_DeliveryID = M_DeliveryID
|
|
LEFT JOIN one.m_deliverytype ON PreOrder_DeliveryM_DeliveryTypeID = M_DeliveryTypeID
|
|
LEFT JOIN one.m_kelurahan ON PreOrder_DeliveryM_KelurahanID = M_KelurahanID
|
|
WHERE
|
|
PreOrder_DeliveryPreOrder_HeaderID = {$orderid} AND PreOrder_DeliveryIsActive = 'Y'
|
|
";
|
|
//echo $query;
|
|
$rows = $this->db_onedev->query($query)->result_array();
|
|
if(!$rows)
|
|
$rows = array();
|
|
return $rows;
|
|
}
|
|
|
|
function add_address($patientid){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$query =" SELECT *
|
|
FROM one.m_patientaddress
|
|
WHERE
|
|
M_PatientAddressM_PatientID = {$patientid} AND M_PatientAddressIsActive = 'Y'
|
|
";
|
|
//echo $query;
|
|
$rows = $this->db_onedev->query($query)->result_array();
|
|
if(!$rows)
|
|
$rows = array();
|
|
return $rows;
|
|
}
|
|
|
|
function add_doctor_address($doctorid){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$query =" SELECT *
|
|
FROM one.m_doctoraddress
|
|
WHERE
|
|
M_DoctorAddressM_DoctorID = {$doctorid} AND M_DoctorAddressIsActive = 'Y'
|
|
";
|
|
//echo $query;
|
|
$rows = $this->db_onedev->query($query)->result_array();
|
|
if(!$rows)
|
|
$rows = array();
|
|
return $rows;
|
|
}
|
|
|
|
public function search()
|
|
{
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$prm = $this->sys_input;
|
|
|
|
$fdate = date('Y-m-d',strtotime($prm["fdate"]));
|
|
$fstatus = $prm["fstatus"];
|
|
$ftype = $prm["ftype"];
|
|
|
|
$sql = " SELECT count(*) as total
|
|
FROM one_preorder_dev.preorder_header
|
|
JOIN one.m_patient ON PreOrder_HeaderM_PatientID = M_PatientID
|
|
LEFT JOIN one.m_patientaddress ON PreOrder_HeaderM_PatientAdrressID = M_PatientAddressID
|
|
JOIN one_preorder_dev.m_preordertype ON PreOrder_HeaderM_PreOrderTypeID = M_PreOrderTypeID
|
|
JOIN one_preorder_dev.m_preorderstatus ON PreOrder_HeaderM_PreOrderStatusID = M_PreOrderStatusID
|
|
LEFT JOIN one.m_kelurahan ON PreOrder_HeaderM_KelurahanID = M_KelurahanID
|
|
LEFT JOIN one_preorder_dev.m_preorderareadetail ON M_PreOrderAreaIDM_KelurahanID = PreOrder_HeaderM_KelurahanID
|
|
LEFT JOIN one_preorder_dev.m_preorderarea ON M_PrdeOrderAreaDetailM_PreOrderAreaID = M_PreOrderAreaID
|
|
LEFT JOIN one.m_staff ON PreOrder_HeaderM_StaffID = M_StaffID
|
|
LEFT JOIN one.m_doctor ON PreOrder_HeaderM_DoctorID = M_DoctorID
|
|
WHERE
|
|
PreOrder_HeaderDate = '{$fdate}' AND PreOrder_HeaderM_PreOrderStatusID = {$fstatus} AND PreOrder_HeaderM_PreOrderTypeID = {$ftype} AND PreOrder_HeaderIsActive = 'Y'";
|
|
|
|
$query = $this->db_onedev->query($sql);
|
|
//echo $sql;
|
|
$tot_count = 0;
|
|
if ($query) {
|
|
$tot_count = $query->result_array()[0]["total"];
|
|
} else {
|
|
$this->sys_error_db("m_patient count", $this->db_onedev);
|
|
exit;
|
|
}
|
|
|
|
$sql =" SELECT
|
|
one_preorder_dev.preorder_header.*,
|
|
one.m_patient.*,
|
|
one.m_patientaddress.*,
|
|
one.m_kelurahan.*,
|
|
one_preorder_dev.m_preorderarea.*,
|
|
one.m_staff.*,
|
|
one_preorder_dev.m_preordertype.*,
|
|
one_preorder_dev.m_preorderstatus.*,
|
|
'xxx' as tests,
|
|
one.m_doctor.*,
|
|
'xxx' as deliveries,
|
|
'N' as show_detail,
|
|
IFNULL(Preorder_SampleID,0) as supplies_trx_id
|
|
FROM one_preorder_dev.preorder_header
|
|
JOIN one.m_patient ON PreOrder_HeaderM_PatientID = M_PatientID
|
|
JOIN one.m_patientaddress ON PreOrder_HeaderM_PatientAdrressID = M_PatientAddressID
|
|
JOIN one_preorder_dev.m_preordertype ON PreOrder_HeaderM_PreOrderTypeID = M_PreOrderTypeID
|
|
JOIN one_preorder_dev.m_preorderstatus ON PreOrder_HeaderM_PreOrderStatusID = M_PreOrderStatusID
|
|
LEFT JOIN one.m_kelurahan ON PreOrder_HeaderM_KelurahanID = M_KelurahanID
|
|
LEFT JOIN one_preorder_dev.m_preorderareadetail ON M_PreOrderAreaIDM_KelurahanID = PreOrder_HeaderM_KelurahanID
|
|
LEFT JOIN one_preorder_dev.m_preorderarea ON M_PrdeOrderAreaDetailM_PreOrderAreaID = M_PreOrderAreaID
|
|
LEFT JOIN one.m_staff ON PreOrder_HeaderM_StaffID = M_StaffID
|
|
LEFT JOIN one.m_doctor ON PreOrder_HeaderM_DoctorID = M_DoctorID
|
|
LEFT JOIN one_preorder_dev.preorder_sample ON Preorder_SamplePreOrder_HeaderID = PreOrder_HeaderID
|
|
WHERE
|
|
PreOrder_HeaderDate = '{$fdate}' AND PreOrder_HeaderM_PreOrderStatusID = {$fstatus} AND PreOrder_HeaderM_PreOrderTypeID = {$ftype} AND PreOrder_HeaderIsActive = 'Y'
|
|
limit 0,20";
|
|
|
|
$query = $this->db_onedev->query($sql);
|
|
//echo $sql;
|
|
$rows = $query->result_array();
|
|
//print_r($rows);
|
|
if($rows){
|
|
foreach($rows as $k => $v){
|
|
$rows[$k]['tests'] = $this->add_test($v['PreOrder_HeaderID']);
|
|
$rows[$k]['deliveries'] = $this->add_deliveries($v['PreOrder_HeaderID']);
|
|
$rows[$k]['PreOrder_HeaderTime'] = date('H:i',strtotime($v['PreOrder_HeaderTime']));
|
|
$rows[$k]['PreOrder_HeaderDate'] = date('Y-m-d',strtotime($v['PreOrder_HeaderDate']));
|
|
$rows[$k]['address'] = $this->add_address($v['PreOrder_HeaderM_PatientID']);
|
|
$rows[$k]['doctoraddress'] = $this->add_doctor_address($v['PreOrder_HeaderM_DoctorID']);
|
|
}
|
|
}
|
|
|
|
$result = array("total" => $tot_count, "records" => $rows, "sql"=> $this->db_onedev->last_query());
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
|
|
|
|
public function search_ready()
|
|
{
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$prm = $this->sys_input;
|
|
|
|
$fdate = date('Y-m-d',strtotime($prm["fdate"]));
|
|
$fstatus = $prm["fstatus"];
|
|
$ftype = $prm["ftype"];
|
|
|
|
$sql = " SELECT count(*) as total
|
|
FROM one_preorder_dev.preorder_header
|
|
JOIN one.m_patient ON PreOrder_HeaderM_PatientID = M_PatientID
|
|
LEFT JOIN one.m_patientaddress ON PreOrder_HeaderM_PatientAdrressID = M_PatientAddressID
|
|
JOIN one_preorder_dev.m_preordertype ON PreOrder_HeaderM_PreOrderTypeID = M_PreOrderTypeID
|
|
JOIN one_preorder_dev.m_preorderstatus ON PreOrder_HeaderM_PreOrderStatusID = M_PreOrderStatusID
|
|
LEFT JOIN one.m_kelurahan ON PreOrder_HeaderM_KelurahanID = M_KelurahanID
|
|
LEFT JOIN one_preorder_dev.m_preorderareadetail ON M_PreOrderAreaIDM_KelurahanID = PreOrder_HeaderM_KelurahanID
|
|
LEFT JOIN one_preorder_dev.m_preorderarea ON M_PrdeOrderAreaDetailM_PreOrderAreaID = M_PreOrderAreaID
|
|
LEFT JOIN one.m_staff ON PreOrder_HeaderM_StaffID = M_StaffID
|
|
LEFT JOIN one.m_doctor ON PreOrder_HeaderM_DoctorID = M_DoctorID
|
|
WHERE
|
|
PreOrder_HeaderDate = '{$fdate}' AND PreOrder_HeaderM_PreOrderStatusID = 2 AND PreOrder_HeaderDownloadedMobile = '{$fstatus}' AND PreOrder_HeaderM_PreOrderTypeID = {$ftype} AND PreOrder_HeaderIsActive = 'Y'";
|
|
|
|
$query = $this->db_onedev->query($sql);
|
|
//echo $sql;
|
|
$tot_count = 0;
|
|
if ($query) {
|
|
$tot_count = $query->result_array()[0]["total"];
|
|
} else {
|
|
$this->sys_error_db("m_patient count", $this->db_onedev);
|
|
exit;
|
|
}
|
|
|
|
$sql =" SELECT
|
|
one_preorder_dev.preorder_header.*,
|
|
one.m_patient.*,
|
|
one.m_patientaddress.*,
|
|
one.m_kelurahan.*,
|
|
one_preorder_dev.m_preorderarea.*,
|
|
one.m_staff.*,
|
|
one_preorder_dev.m_preordertype.*,
|
|
one_preorder_dev.m_preorderstatus.*,
|
|
'xxx' as tests,
|
|
one.m_doctor.*,
|
|
'xxx' as deliveries,
|
|
'N' as show_detail
|
|
FROM one_preorder_dev.preorder_header
|
|
JOIN one.m_patient ON PreOrder_HeaderM_PatientID = M_PatientID
|
|
JOIN one.m_patientaddress ON PreOrder_HeaderM_PatientAdrressID = M_PatientAddressID
|
|
JOIN one_preorder_dev.m_preordertype ON PreOrder_HeaderM_PreOrderTypeID = M_PreOrderTypeID
|
|
JOIN one_preorder_dev.m_preorderstatus ON PreOrder_HeaderM_PreOrderStatusID = M_PreOrderStatusID
|
|
LEFT JOIN one.m_kelurahan ON PreOrder_HeaderM_KelurahanID = M_KelurahanID
|
|
LEFT JOIN one_preorder_dev.m_preorderareadetail ON M_PreOrderAreaIDM_KelurahanID = PreOrder_HeaderM_KelurahanID
|
|
LEFT JOIN one_preorder_dev.m_preorderarea ON M_PrdeOrderAreaDetailM_PreOrderAreaID = M_PreOrderAreaID
|
|
LEFT JOIN one.m_staff ON PreOrder_HeaderM_StaffID = M_StaffID
|
|
LEFT JOIN one.m_doctor ON PreOrder_HeaderM_DoctorID = M_DoctorID
|
|
WHERE
|
|
PreOrder_HeaderDate = '{$fdate}' AND PreOrder_HeaderM_PreOrderStatusID = 2 AND PreOrder_HeaderDownloadedMobile = '{$fstatus}' AND PreOrder_HeaderM_PreOrderTypeID = {$ftype} AND PreOrder_HeaderIsActive = 'Y'
|
|
limit 0,20";
|
|
|
|
$query = $this->db_onedev->query($sql);
|
|
//echo $sql;
|
|
$rows = $query->result_array();
|
|
//print_r($rows);
|
|
if($rows){
|
|
foreach($rows as $k => $v){
|
|
$rows[$k]['tests'] = $this->add_test($v['PreOrder_HeaderID']);
|
|
$rows[$k]['deliveries'] = $this->add_deliveries($v['PreOrder_HeaderID']);
|
|
$rows[$k]['PreOrder_HeaderTime'] = date('H:i',strtotime($v['PreOrder_HeaderTime']));
|
|
$rows[$k]['PreOrder_HeaderDate'] = date('Y-m-d',strtotime($v['PreOrder_HeaderDate']));
|
|
$rows[$k]['address'] = $this->add_address($v['PreOrder_HeaderM_PatientID']);
|
|
}
|
|
}
|
|
|
|
$result = array("total" => $tot_count, "records" => $rows, "sql"=> $this->db_onedev->last_query());
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
|
|
public function search_outbox()
|
|
{
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$prm = $this->sys_input;
|
|
|
|
$fdate = date('Y-m-d',strtotime($prm["fdate"]));
|
|
$fstatus = $prm["fstatus"];
|
|
$ftype = $prm["ftype"];
|
|
|
|
$sql = " SELECT count(*) as total
|
|
FROM one_gateway.outbox
|
|
JOIN one_preorder_dev.preorder_header ON outboxRefID = PreOrder_HeaderID
|
|
JOIN one.m_patient ON PreOrder_HeaderM_PatientID = M_PatientID
|
|
JOIN one_gateway.type ON outboxTypeID = typeID
|
|
LEFT JOIN one.m_staff ON PreOrder_HeaderM_StaffID = M_StaffID
|
|
WHERE
|
|
outboxTag = 'HomeService' AND PreOrder_HeaderDate = '{$fdate}' AND ( '{$fstatus}' = 'ALL' OR '{$fstatus}' <> 'ALL' AND outboxIsSent = '{$fstatus}' ) AND outboxTypeID = {$ftype} AND outboxIsActive = 'Y'";
|
|
|
|
$query = $this->db_onedev->query($sql);
|
|
//echo $sql;
|
|
$tot_count = 0;
|
|
if ($query) {
|
|
$tot_count = $query->result_array()[0]["total"];
|
|
} else {
|
|
$this->sys_error_db("m_patient count", $this->db_onedev);
|
|
exit;
|
|
}
|
|
|
|
$sql =" SELECT one_gateway.outbox.*,
|
|
one_preorder_dev.preorder_header.*,
|
|
one.m_patient.*,
|
|
one.m_staff.*,
|
|
one_gateway.type.*
|
|
FROM one_gateway.outbox
|
|
JOIN one_preorder_dev.preorder_header ON outboxRefID = PreOrder_HeaderID
|
|
JOIN one.m_patient ON PreOrder_HeaderM_PatientID = M_PatientID
|
|
JOIN one_gateway.type ON outboxTypeID = typeID
|
|
LEFT JOIN one.m_staff ON PreOrder_HeaderM_StaffID = M_StaffID
|
|
WHERE
|
|
outboxTag = 'HomeService' AND PreOrder_HeaderDate = '{$fdate}' AND ( '{$fstatus}' = 'ALL' OR '{$fstatus}' <> 'ALL' AND outboxIsSent = '{$fstatus}' ) AND outboxTypeID = {$ftype} AND outboxIsActive = 'Y'
|
|
limit 0,20";
|
|
|
|
$query = $this->db_onedev->query($sql);
|
|
//echo $sql;
|
|
$rows = $query->result_array();
|
|
|
|
$result = array("total" => $tot_count, "records" => $rows, "sql"=> $this->db_onedev->last_query());
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
|
|
public function lookup_staff(){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$prm = $this->sys_input;
|
|
|
|
$fdate = date('Y-m-d',strtotime($prm["fdate"]));
|
|
$fstatus = $prm["fstatus"];
|
|
|
|
$query = " SELECT M_StaffID,M_StaffName,
|
|
'xxx' as times,
|
|
'xxx' as areas
|
|
FROM one_preorder_dev.preorder_header
|
|
JOIN one.m_staff ON PreOrder_HeaderM_StaffID = M_StaffID
|
|
WHERE
|
|
PreOrder_HeaderDate = '{$fdate}' AND
|
|
PreOrder_HeaderM_PreOrderStatusID = '{$fstatus}' AND
|
|
PreOrder_HeaderIsActive = 'Y'
|
|
GROUP BY PreOrder_HeaderM_StaffID";
|
|
//echo $query;
|
|
$rows = $this->db_onedev->query($query)->result_array();
|
|
if($rows){
|
|
foreach($rows as $k => $v){
|
|
$rows[$k]['times'] = $this->add_times($v['M_StaffID'],$fdate,$fstatus);
|
|
$rows[$k]['areas'] = $this->add_areas($v['M_StaffID'],$fdate,$fstatus);
|
|
}
|
|
}
|
|
$result = array(
|
|
"total" => count($rows) ,
|
|
"records" => $rows,
|
|
);
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
|
|
function add_times($staffid,$fdate,$fstatus){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$query =" SELECT PreOrder_HeaderTime as xtime
|
|
FROM one_preorder_dev.preorder_header
|
|
JOIN one.m_staff ON PreOrder_HeaderM_StaffID = M_StaffID AND PreOrder_HeaderM_StaffID = {$staffid}
|
|
WHERE
|
|
PreOrder_HeaderDate = '{$fdate}' AND
|
|
PreOrder_HeaderM_PreOrderStatusID = '{$fstatus}' AND
|
|
PreOrder_HeaderIsActive = 'Y'
|
|
";
|
|
//echo $query;
|
|
$rows = $this->db_onedev->query($query)->result_array();
|
|
if(!$rows)
|
|
$rows = array();
|
|
else
|
|
foreach($rows as $k => $v){
|
|
$rows[$k]['xtime'] = date('H:i',strtotime($v['xtime']));
|
|
}
|
|
return $rows;
|
|
}
|
|
|
|
function add_areas($staffid,$fdate,$fstatus){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$query =" SELECT M_PreOrderAreaName as xarea
|
|
FROM one_preorder_dev.preorder_header
|
|
JOIN one.m_staff ON PreOrder_HeaderM_StaffID = M_StaffID AND PreOrder_HeaderM_StaffID = {$staffid}
|
|
JOIN one_preorder_dev.m_preorderareadetail ON M_PreOrderAreaIDM_KelurahanID = PreOrder_HeaderM_KelurahanID
|
|
JOIN one_preorder_dev.m_preorderarea ON M_PrdeOrderAreaDetailM_PreOrderAreaID = M_PreOrderAreaID
|
|
WHERE
|
|
PreOrder_HeaderDate = '{$fdate}' AND
|
|
PreOrder_HeaderM_PreOrderStatusID = '{$fstatus}' AND
|
|
PreOrder_HeaderIsActive = 'Y'
|
|
GROUP BY M_PreOrderAreaID
|
|
";
|
|
//echo $query;
|
|
$rows = $this->db_onedev->query($query)->result_array();
|
|
if(!$rows)
|
|
$rows = array();
|
|
return $rows;
|
|
}
|
|
|
|
function titsexreg(){
|
|
//# cek token valid
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$rows = [];
|
|
$query =" SELECT *
|
|
FROM m_title
|
|
WHERE
|
|
M_TitleIsActive = 'Y'
|
|
";
|
|
//echo $query;
|
|
$rows['titles'] = $this->db_onedev->query($query)->result_array();
|
|
$query =" SELECT *
|
|
FROM m_sex
|
|
WHERE
|
|
M_SexIsActive = 'Y'
|
|
";
|
|
//echo $query;
|
|
$rows['sexs'] = $this->db_onedev->query($query)->result_array();
|
|
$query =" SELECT *
|
|
FROM m_religion
|
|
WHERE
|
|
M_ReligionIsActive = 'Y'
|
|
";
|
|
//echo $query;
|
|
$rows['religions'] = $this->db_onedev->query($query)->result_array();
|
|
$query =" SELECT *
|
|
FROM one_preorder_dev.m_preordertype
|
|
WHERE
|
|
M_PreOrderTypeIsActive = 'Y'
|
|
";
|
|
//echo $query;
|
|
$rows['ordertypes'] = $this->db_onedev->query($query)->result_array();
|
|
$query =" SELECT M_StaffID,M_StaffName
|
|
FROM one_preorder_dev.m_staffhomeservice
|
|
JOIN one.m_staff ON M_StaffHomeServiceM_StaffID = M_StaffID
|
|
WHERE
|
|
M_StaffHomeServiceIsActive = 'Y'
|
|
";
|
|
//echo $query;
|
|
$rows['staffs'] = $this->db_onedev->query($query)->result_array();
|
|
$query =" SELECT *
|
|
FROM one.m_delivery
|
|
JOIN one.m_deliverytype ON M_DeliveryM_DeliveryTypeID = M_DeliveryTypeID
|
|
WHERE
|
|
M_DeliveryIsActive = 'Y' AND M_DeliveryIsHomeService = 'Y'
|
|
";
|
|
//echo $query;
|
|
$rows['deliverytipes'] = $this->db_onedev->query($query)->result_array();
|
|
$query =" SELECT M_SamplingTimeID,TIME_FORMAT(M_SamplingTimeTime, '%H:%i') as M_SamplingTimeTime
|
|
FROM one_preorder_dev.m_samplingtime
|
|
WHERE
|
|
M_SamplingTimeIsActive = 'Y'
|
|
";
|
|
//echo $query;
|
|
$rows['times'] = $this->db_onedev->query($query)->result_array();
|
|
$result = array(
|
|
"total" => count($rows) ,
|
|
"records" => $rows,
|
|
);
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
|
|
function searchcity(){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$prm = $this->sys_input;
|
|
|
|
$max_rst = 12;
|
|
$tot_count =0;
|
|
|
|
$q = [
|
|
'search' => '%'
|
|
];
|
|
|
|
if ($prm['search'] != '')
|
|
{
|
|
$q['search'] = "%{$prm['search']}%";
|
|
}
|
|
|
|
// QUERY TOTAL
|
|
$sql = "SELECT count(*) as total
|
|
FROM m_city
|
|
WHERE
|
|
M_CityName like ?
|
|
AND M_CityIsActive = 'Y'";
|
|
$query = $this->db_onedev->query($sql,$q['search']);
|
|
//echo $query;
|
|
if ($query) {
|
|
$tot_count = $query->result_array()[0]["total"];
|
|
}
|
|
else {
|
|
$this->sys_error_db("m_city count",$this->db_onedev);
|
|
exit;
|
|
}
|
|
|
|
$sql = "
|
|
SELECT *
|
|
FROM m_city
|
|
WHERE
|
|
M_CityName like ?
|
|
AND M_CityIsActive = 'Y'
|
|
ORDER BY M_CityName DESC
|
|
";
|
|
$query = $this->db_onedev->query($sql, array($q['search']));
|
|
|
|
if ($query) {
|
|
$rows = $query->result_array();
|
|
//echo $this->db_onedev->last_query();
|
|
$result = array("total" => $tot_count, "records" => $rows, "total_display" => sizeof($rows));
|
|
$this->sys_ok($result);
|
|
}
|
|
else {
|
|
$this->sys_error_db("m_city rows",$this->db_onedev);
|
|
exit;
|
|
}
|
|
}
|
|
|
|
function getdistrict(){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$prm = $this->sys_input;
|
|
$query =" SELECT *
|
|
FROM m_district
|
|
WHERE
|
|
M_DistrictIsActive = 'Y' AND M_DistrictM_CityID = ?
|
|
";
|
|
//echo $query;
|
|
$rows = $this->db_onedev->query($query,array($prm['id']))->result_array();
|
|
|
|
$result = array(
|
|
"total" => count($rows) ,
|
|
"records" => $rows,
|
|
);
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
|
|
function getkelurahan(){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$prm = $this->sys_input;
|
|
$query =" SELECT *
|
|
FROM m_kelurahan
|
|
WHERE
|
|
M_KelurahanIsActive = 'Y' AND M_KelurahanM_DistrictID = ?
|
|
";
|
|
//echo $query;
|
|
$rows = $this->db_onedev->query($query,array($prm['id']))->result_array();
|
|
|
|
$result = array(
|
|
"total" => count($rows) ,
|
|
"records" => $rows,
|
|
);
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
|
|
function savenewpatient(){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$prm = $this->sys_input;
|
|
$query = "INSERT INTO m_patient (
|
|
M_PatientName,
|
|
M_PatientM_TitleID,
|
|
M_PatientM_SexID,
|
|
M_PatientM_ReligionID,
|
|
M_PatientDOB,
|
|
M_PatientHP,
|
|
M_PatientPhone,
|
|
M_PatientEmail,
|
|
M_PatientCreated,
|
|
M_PatientLastUpdated
|
|
)
|
|
VALUES(
|
|
?,?,?,?,?,?,?,?,now(),now()
|
|
)";
|
|
$insert_new_patient = $this->db_onedev->query($query,array(
|
|
$prm['patientname'],
|
|
$prm['titleid'],
|
|
$prm['sexid'],
|
|
$prm['religionid'],
|
|
date('Y-m-d',strtotime($prm['dob'])),
|
|
$prm['hp'],
|
|
$prm['phone'],
|
|
$prm['email']
|
|
));
|
|
if($insert_new_patient){
|
|
$patient_id = $this->db_onedev->insert_id();
|
|
$query = "INSERT INTO m_patientaddress (
|
|
M_PatientAddressM_PatientID,
|
|
M_PatientAddressNote,
|
|
M_PatientAddressDescription,
|
|
M_PatientAddressM_KelurahanID,
|
|
M_PatientAddressCreated,
|
|
M_PatientAddressLastUpdated
|
|
)
|
|
VALUE(
|
|
?,?,?,?,now(),now()
|
|
)";
|
|
$insert_new_address = $this->db_onedev->query($query,array(
|
|
$patient_id,
|
|
'utama',
|
|
$prm['address'],
|
|
$prm['kelurahanid']
|
|
));
|
|
$query = " SELECT *
|
|
FROM m_patient
|
|
JOIN m_patientaddress ON M_PatientAddressM_PatientID = M_PatientID AND M_PatientAddressIsActive = 'Y' AND M_PatientAddressNote = 'utama'
|
|
WHERE M_PatientID = ? LIMIT 1";
|
|
$rows = $this->db_onedev->query($query,array($patient_id))->result();
|
|
$result = array(
|
|
"total" => count($rows) ,
|
|
"records" => $rows,
|
|
);
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
else {
|
|
$this->sys_error_db("m_patient new",$this->db_onedev);
|
|
exit;
|
|
}
|
|
}
|
|
|
|
function getaddress(){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$prm = $this->sys_input;
|
|
$query =" SELECT *
|
|
FROM m_patientaddress
|
|
WHERE M_PatientAddressM_PatientID = ? AND M_PatientAddressIsActive = 'Y'
|
|
";
|
|
//echo $query;
|
|
$rows = $this->db_onedev->query($query,array($prm['id']))->result_array();
|
|
$rows[] = array('M_PatientAddressID'=>'X','M_PatientAddressDescription'=>'Alamat Baru');
|
|
$result = array(
|
|
"total" => count($rows) ,
|
|
"records" => $rows,
|
|
);
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
|
|
function getdoctoraddress(){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$prm = $this->sys_input;
|
|
$query =" SELECT *
|
|
FROM m_doctoraddress
|
|
WHERE M_DoctorAddressM_DoctorID = ? AND M_DoctorAddressIsActive = 'Y'
|
|
";
|
|
//echo $query;
|
|
$rows = $this->db_onedev->query($query,array($prm['id']))->result_array();
|
|
|
|
$result = array(
|
|
"total" => count($rows) ,
|
|
"records" => $rows,
|
|
);
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
|
|
function searchpatient(){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$prm = $this->sys_input;
|
|
|
|
$max_rst = 12;
|
|
$tot_count =0;
|
|
|
|
$q = [
|
|
'search' => '%'
|
|
];
|
|
|
|
if ($prm['search'] != '')
|
|
{
|
|
$q['search'] = "%{$prm['search']}%";
|
|
}
|
|
|
|
// QUERY TOTAL
|
|
$sql = "SELECT count(*) as total
|
|
FROM m_patient
|
|
WHERE
|
|
M_PatientName like ?
|
|
AND M_PatientIsActive = 'Y'";
|
|
$query = $this->db_onedev->query($sql,$q['search']);
|
|
//echo $query;
|
|
if ($query) {
|
|
$tot_count = $query->result_array()[0]["total"];
|
|
}
|
|
else {
|
|
$this->sys_error_db("m_patient count",$this->db_onedev);
|
|
exit;
|
|
}
|
|
|
|
$sql = "
|
|
SELECT *
|
|
FROM m_patient
|
|
WHERE
|
|
M_PatientName like ?
|
|
AND M_PatientIsActive = 'Y'
|
|
ORDER BY M_PatientName ASC
|
|
";
|
|
$query = $this->db_onedev->query($sql, array($q['search']));
|
|
|
|
if ($query) {
|
|
$rows = $query->result_array();
|
|
//echo $this->db_onedev->last_query();
|
|
$result = array("total" => $tot_count, "records" => $rows, "total_display" => sizeof($rows));
|
|
$this->sys_ok($result);
|
|
}
|
|
else {
|
|
$this->sys_error_db("m_patient rows",$this->db_onedev);
|
|
exit;
|
|
}
|
|
}
|
|
|
|
function searchtest(){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$prm = $this->sys_input;
|
|
|
|
$max_rst = 12;
|
|
$tot_count = 0;
|
|
|
|
$q = [
|
|
'search' => '%'
|
|
];
|
|
|
|
if ($prm['search'] != '')
|
|
{
|
|
$q['search'] = "%{$prm['search']}%";
|
|
}
|
|
|
|
// QUERY TOTAL
|
|
$sql = "SELECT count(*) as total
|
|
FROM one.t_test
|
|
JOIN one.t_price ON T_PriceT_TestID = T_TestID AND T_PriceIsCito = 'N'
|
|
JOIN one_preorder_dev.conf_system ON Conf_SystemIsActive = 'Y' AND Conf_SystemMOUID = T_PriceM_MouID
|
|
WHERE
|
|
T_TestName like ? AND
|
|
T_TestIsActive = 'Y'
|
|
ORDER BY T_TestName ASC";
|
|
$query = $this->db_onedev->query($sql,$q['search']);
|
|
//echo $query;
|
|
if ($query) {
|
|
$tot_count = $query->result_array()[0]["total"];
|
|
}
|
|
else {
|
|
$this->sys_error_db("test count",$this->db_onedev);
|
|
exit;
|
|
}
|
|
|
|
$sql = "
|
|
SELECT 'Y' as editable, 0 as xid, T_TestID, T_TestCode, T_TestName, T_PriceAmount, T_PriceDisc, T_PriceDiscRp, T_PriceAmount - ((T_PriceDisc/100) * T_PriceAmount) - T_PriceDiscRp as total
|
|
FROM one.t_test
|
|
JOIN one.t_price ON T_PriceT_TestID = T_TestID AND T_PriceIsCito = 'N'
|
|
JOIN one_preorder_dev.conf_system ON Conf_SystemIsActive = 'Y' AND Conf_SystemMOUID = T_PriceM_MouID
|
|
WHERE
|
|
T_TestName like ? AND
|
|
T_TestIsActive = 'Y'
|
|
ORDER BY T_TestName ASC
|
|
";
|
|
$query = $this->db_onedev->query($sql, array($q['search']));
|
|
|
|
if ($query) {
|
|
$rows = $query->result_array();
|
|
//echo $this->db_onedev->last_query();
|
|
$result = array("total" => $tot_count, "records" => $rows, "total_display" => sizeof($rows));
|
|
$this->sys_ok($result);
|
|
}
|
|
else {
|
|
$this->sys_error_db("test rows",$this->db_onedev);
|
|
exit;
|
|
}
|
|
}
|
|
|
|
function searchdoctor(){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$prm = $this->sys_input;
|
|
|
|
$max_rst = 12;
|
|
$tot_count =0;
|
|
|
|
$q = [
|
|
'search' => '%'
|
|
];
|
|
|
|
if ($prm['search'] != '')
|
|
{
|
|
$q['search'] = "%{$prm['search']}%";
|
|
}
|
|
|
|
// QUERY TOTAL
|
|
$sql = "SELECT count(*) as total
|
|
FROM m_doctor
|
|
WHERE
|
|
M_DoctorName like ?
|
|
AND M_DoctorIsActive = 'Y'";
|
|
$query = $this->db_onedev->query($sql,$q['search']);
|
|
//echo $query;
|
|
if ($query) {
|
|
$tot_count = $query->result_array()[0]["total"];
|
|
}
|
|
else {
|
|
$this->sys_error_db("m_doctor count",$this->db_onedev);
|
|
exit;
|
|
}
|
|
|
|
$sql = "
|
|
SELECT *
|
|
FROM m_doctor
|
|
WHERE
|
|
M_DoctorName like ?
|
|
AND M_DoctorIsActive = 'Y'
|
|
ORDER BY M_DoctorName ASC
|
|
";
|
|
$query = $this->db_onedev->query($sql, array($q['search']));
|
|
|
|
if ($query) {
|
|
$rows = $query->result_array();
|
|
//echo $this->db_onedev->last_query();
|
|
$result = array("total" => $tot_count, "records" => $rows, "total_display" => sizeof($rows));
|
|
$this->sys_ok($result);
|
|
}
|
|
else {
|
|
$this->sys_error_db("m_doctor rows",$this->db_onedev);
|
|
exit;
|
|
}
|
|
}
|
|
|
|
function saveorder(){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$prm = $this->sys_input;
|
|
$dateorder = $prm['orderdate'];
|
|
$timeorder = $prm['ordertime'];
|
|
$userid = $this->sys_user["M_UserID"];
|
|
|
|
if($prm['orderaddress'] === 'X'){
|
|
$sql = "INSERT INTO m_patientaddress (
|
|
M_PatientAddressM_PatientID,
|
|
M_PatientAddressNote,
|
|
M_PatientAddressDescription,
|
|
M_PatientAddressM_KelurahanID,
|
|
M_PatientAddressCreated,
|
|
M_PatientAddressLastUpdated
|
|
)
|
|
VALUES(
|
|
{$prm['orderpatient']},
|
|
'Lainnya',
|
|
'{$prm['newaddress']}',
|
|
'{$prm['newkelurahan']['M_KelurahanID']}',
|
|
NOW(),
|
|
NOW()
|
|
)";
|
|
$this->db_onedev->query($sql);
|
|
$prm['orderaddress'] = $this->db_onedev->insert_id();
|
|
$prm['orderdeliveryaddressid'] = $prm['orderaddress'];
|
|
$prm['orderdeliverykelurahan'] = $prm['newkelurahan']['M_KelurahanID'];
|
|
$prm['orderkelurahan'] = $prm['newkelurahan']['M_KelurahanID'];
|
|
$prm['orderdeliverydestination'] = $prm['newaddress'];
|
|
|
|
}
|
|
|
|
|
|
$number_trx = $this->db_onedev->query("SELECT one_preorder_dev.fn_numbering('HS') as numx")->row()->numx;
|
|
$query = "INSERT INTO one_preorder_dev.preorder_header (
|
|
PreOrder_HeaderNumbering,
|
|
PreOrder_HeaderM_PatientID,
|
|
PreOrder_HeaderM_PatientAdrressID,
|
|
PreOrder_HeaderDate,
|
|
PreOrder_HeaderTime,
|
|
PreOrder_HeaderM_PreOrderStatusID,
|
|
PreOrder_HeaderM_KelurahanID,
|
|
PreOrder_HeaderM_PreOrderTypeID,
|
|
PreOrder_HeaderPhone,
|
|
PreOrder_HeaderM_StaffID,
|
|
PreOrder_HeaderM_DoctorID,
|
|
PreOrder_HeaderM_DoctorAddressID,
|
|
PreOrder_HeaderUserID,
|
|
PreOrder_HeaderCreated,
|
|
PreOrder_HeaderLastUpdated
|
|
)
|
|
VALUES(
|
|
?,?,?,?,?,?,?,?,?,?,?,?,?,now(),now()
|
|
)";
|
|
$insert_new_order = $this->db_onedev->query($query,array(
|
|
$number_trx,
|
|
$prm['orderpatient'],
|
|
$prm['orderaddress'],
|
|
date('Y-m-d',strtotime($dateorder)),
|
|
date('H:i:s',strtotime($timeorder)),
|
|
1,
|
|
$prm['orderkelurahan'],
|
|
$prm['ordertype'],
|
|
$prm['orderphone'],
|
|
isset($prm['orderstaff'])?$prm['orderstaff']:0,
|
|
isset($prm['orderdoctor'])?$prm['orderdoctor']:0,
|
|
isset($prm['orderdoctoraddress'])?$prm['orderdoctoraddress']:0,
|
|
$userid
|
|
));
|
|
if($insert_new_order){
|
|
$order_id = $this->db_onedev->insert_id();
|
|
foreach($prm['ordertests'] as $k=>$v){
|
|
$query = "INSERT INTO one_preorder_dev.preorder_test (
|
|
PreOrder_TestPreOrder_HeaderID,
|
|
PreOrder_TestT_TestID,
|
|
PreOrder_TestT_TestCode,
|
|
PreOrder_TestT_TestName,
|
|
PreOrder_TestPrice,
|
|
PreOrder_TestDisc,
|
|
PreOrder_TestDiscRp,
|
|
PreOrder_TestTotal,
|
|
PreOrder_TestUserID,
|
|
PreOrder_TestCreated,
|
|
PreOrder_TestLastUpdated
|
|
)
|
|
VALUE(
|
|
?,?,?,?,?,?,?,?,?,now(),now()
|
|
)";
|
|
$insert_new_test = $this->db_onedev->query($query,array(
|
|
$order_id,
|
|
$v['T_TestID'],
|
|
$v['T_TestCode'],
|
|
$v['T_TestName'],
|
|
$v['T_PriceAmount'],
|
|
$v['T_PriceDisc'],
|
|
$v['T_PriceDiscRp'],
|
|
$v['total'],
|
|
$userid
|
|
));
|
|
}
|
|
|
|
if(isset($prm['orderdeliverydeliveryid'])){
|
|
$query = "INSERT INTO one_preorder_dev.preorder_delivery (
|
|
PreOrder_DeliveryPreOrder_HeaderID,
|
|
PreOrder_DeliveryM_DeliveryID,
|
|
PreOrder_DeliveryM_DeliveryTypeID,
|
|
PreOrder_DeliveryDestination,
|
|
PreOrder_DeliveryM_KelurahanID,
|
|
PreOrder_DeliveryAddressID,
|
|
PreOrder_DeliveryUserID,
|
|
PreOrder_DeliveryCreated,
|
|
PreOrder_DeliveryLastUpdated
|
|
)
|
|
VALUE(
|
|
?,?,?,?,?,?,?,now(),now()
|
|
)";
|
|
$insert_new_delivery = $this->db_onedev->query($query,array(
|
|
$order_id,
|
|
$prm['orderdeliverydeliveryid'],
|
|
$prm['orderdeliverydeliverytype'],
|
|
$prm['orderdeliverydestination'],
|
|
$prm['orderdeliverykelurahan'],
|
|
$prm['orderdeliveryaddressid'],
|
|
$userid
|
|
));
|
|
}
|
|
|
|
$sql = "SELECT T_TestT_SampleTypeID, PreOrder_HeaderNumbering, PreOrder_HeaderID
|
|
FROM one_preorder_dev.preorder_header
|
|
JOIN one_preorder_dev.preorder_test ON PreOrder_TestPreOrder_HeaderID = PreOrder_HeaderID AND PreOrder_TestIsActive = 'Y'
|
|
JOIN t_test ON PreOrder_TestT_TestID = T_TestID
|
|
WHERE PreOrder_HeaderID = {$order_id}
|
|
GROUP BY T_TestT_SampleTypeID ";
|
|
$sampletypes = $this->db_onedev->query($sql)->result_array();
|
|
foreach($sampletypes as $k => $v){
|
|
$barcode = $v['PreOrder_HeaderNumbering'].'.'.$v['T_TestT_SampleTypeID'];
|
|
$sql = "INSERT INTO one_preorder_dev.preorder_sample (
|
|
Preorder_SamplePreOrder_HeaderID,
|
|
Preorder_SampleT_SampleTypeID,
|
|
Preorder_SampleBarcode,
|
|
Preorder_SampleUserID,
|
|
Preorder_SampleCreate,
|
|
Preorder_SampleLastUpdated
|
|
)
|
|
VALUES(
|
|
{$v['PreOrder_HeaderID']},
|
|
{$v['T_TestT_SampleTypeID']},
|
|
'{$barcode}',
|
|
{$userid},
|
|
NOW(),
|
|
NOW()
|
|
)";
|
|
$this->db_onedev->query($sql);
|
|
//echo $sql;
|
|
}
|
|
|
|
|
|
//echo $this->db_onedev->last_query();
|
|
$query = " SELECT PreOrder_HeaderNumbering as numberx
|
|
FROM one_preorder_dev.preorder_header
|
|
WHERE PreOrder_HeaderID = ? LIMIT 1";
|
|
$rows = $this->db_onedev->query($query,array($order_id))->result();
|
|
$result = array(
|
|
"total" => count($rows) ,
|
|
"records" => $rows,
|
|
);
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
else {
|
|
$this->sys_error_db("order new",$this->db_onedev);
|
|
exit;
|
|
}
|
|
}
|
|
|
|
function updateorder(){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$prm = $this->sys_input;
|
|
$order_id = $prm['orderid'];
|
|
|
|
if($prm['orderaddress'] === 'X'){
|
|
$sql = "INSERT INTO m_patientaddress (
|
|
M_PatientAddressM_PatientID,
|
|
M_PatientAddressNote,
|
|
M_PatientAddressDescription,
|
|
M_PatientAddressM_KelurahanID,
|
|
M_PatientAddressCreated,
|
|
M_PatientAddressLastUpdated
|
|
)
|
|
VALUES(
|
|
{$prm['orderpatient']},
|
|
'Lainnya',
|
|
'{$prm['newaddress']}',
|
|
'{$prm['newkelurahan']}',
|
|
NOW(),
|
|
NOW()
|
|
)";
|
|
$this->db_onedev->query($sql);
|
|
$prm['orderaddress'] = $this->db_onedev->last_id();
|
|
$prm['orderdeliveryaddressid'] = $prm['orderaddress'];
|
|
$prm['orderdeliverykelurahan'] = $prm['newkelurahan'];
|
|
$prm['orderdeliverydestination'] = $prm['newaddress'];
|
|
|
|
}
|
|
|
|
$dateorder = $prm['orderdate'];
|
|
$timeorder = $prm['ordertime'];
|
|
$userid = $this->sys_user["M_UserID"];
|
|
$query = "UPDATE one_preorder_dev.preorder_header SET
|
|
PreOrder_HeaderM_PatientID = ?,
|
|
PreOrder_HeaderM_PatientAdrressID = ?,
|
|
PreOrder_HeaderDate = ?,
|
|
PreOrder_HeaderTime = ?,
|
|
PreOrder_HeaderM_KelurahanID = ?,
|
|
PreOrder_HeaderM_PreOrderTypeID = ?,
|
|
PreOrder_HeaderPhone = ?,
|
|
PreOrder_HeaderM_StaffID = ?,
|
|
PreOrder_HeaderM_DoctorID = ?,
|
|
PreOrder_HeaderM_DoctorAddressID = ?,
|
|
PreOrder_HeaderUserID = ?,
|
|
PreOrder_HeaderLastUpdated = now()
|
|
WHERE
|
|
PreOrder_HeaderID = ?
|
|
";
|
|
$update_order = $this->db_onedev->query($query,array(
|
|
$prm['orderpatient'],
|
|
$prm['orderaddress'],
|
|
date('Y-m-d',strtotime($dateorder)),
|
|
date('H:i:s',strtotime($timeorder)),
|
|
$prm['orderkelurahan'],
|
|
$prm['ordertype'],
|
|
$prm['orderphone'],
|
|
isset($prm['orderstaff'])?$prm['orderstaff']:0,
|
|
isset($prm['orderdoctor'])?$prm['orderdoctor']:0,
|
|
isset($prm['orderdoctoraddress'])?$prm['orderdoctoraddress']:0,
|
|
$userid,
|
|
$prm['orderid']
|
|
));
|
|
//echo $this->db_onedev->last_query();
|
|
if($update_order){
|
|
foreach($prm['ordertests'] as $k=>$v){
|
|
if($v['xid'] == 0 || $v['xid'] == '0'){
|
|
$query = "INSERT INTO one_preorder_dev.preorder_test (
|
|
PreOrder_TestPreOrder_HeaderID,
|
|
PreOrder_TestT_TestID,
|
|
PreOrder_TestT_TestCode,
|
|
PreOrder_TestT_TestName,
|
|
PreOrder_TestPrice,
|
|
PreOrder_TestDisc,
|
|
PreOrder_TestDiscRp,
|
|
PreOrder_TestTotal,
|
|
PreOrder_TestUserID,
|
|
PreOrder_TestCreated,
|
|
PreOrder_TestLastUpdated
|
|
)
|
|
VALUE(
|
|
?,?,?,?,?,?,?,?,?,now(),now()
|
|
)";
|
|
$insert_new_test = $this->db_onedev->query($query,array(
|
|
$order_id,
|
|
$v['T_TestID'],
|
|
$v['T_TestCode'],
|
|
$v['T_TestName'],
|
|
$v['T_PriceAmount'],
|
|
$v['T_PriceDisc'],
|
|
$v['T_PriceDiscRp'],
|
|
$v['total'],
|
|
$userid
|
|
));
|
|
}
|
|
|
|
}
|
|
|
|
if(isset($prm['deleted_ordertests'])){
|
|
foreach($prm['deleted_ordertests'] as $i=>$del){
|
|
|
|
$query = "UPDATE one_preorder_dev.preorder_test SET
|
|
PreOrder_TestIsActive = 'N',
|
|
PreOrder_TestUserID = '{$userid}',
|
|
PreOrder_TestLastUpdated = now()
|
|
WHERE
|
|
PreOrder_TestID = ?
|
|
";
|
|
$delete_exist_test = $this->db_onedev->query($query,array($del['xid']));
|
|
}
|
|
}
|
|
|
|
if(isset($prm['orderdeliverydeliveryid'])){
|
|
$last_delivery = $this->db_onedev->query(" SELECT
|
|
COUNT(*) as cexist, PreOrder_DeliveryID
|
|
FROM one_preorder_dev.preorder_delivery
|
|
WHERE
|
|
PreOrder_DeliveryPreOrder_HeaderID = {$order_id} AND
|
|
PreOrder_DeliveryIsActive = 'Y' LIMIT 1")->row();
|
|
if($last_delivery->cexist == 0){
|
|
$query = "INSERT INTO one_preorder_dev.preorder_delivery (
|
|
PreOrder_DeliveryPreOrder_HeaderID,
|
|
PreOrder_DeliveryM_DeliveryID,
|
|
PreOrder_DeliveryM_DeliveryTypeID,
|
|
PreOrder_DeliveryDestination,
|
|
PreOrder_DeliveryM_KelurahanID,
|
|
PreOrder_DeliveryAddressID,
|
|
PreOrder_DeliveryUserID,
|
|
PreOrder_DeliveryCreated,
|
|
PreOrder_DeliveryLastUpdated
|
|
)
|
|
VALUE(
|
|
?,?,?,?,?,?,?,now(),now()
|
|
)";
|
|
$insert_new_delivery = $this->db_onedev->query($query,array(
|
|
$order_id,
|
|
$prm['orderdeliverydeliveryid'],
|
|
$prm['orderdeliverydeliverytype'],
|
|
$prm['orderdeliverydestination'],
|
|
$prm['orderdeliverykelurahan'],
|
|
$prm['orderdeliveryaddressid'],
|
|
$userid
|
|
));
|
|
}else{
|
|
$query = "UPDATE one_preorder_dev.preorder_delivery SET
|
|
PreOrder_DeliveryM_DeliveryID = ?,
|
|
PreOrder_DeliveryM_DeliveryTypeID = ?,
|
|
PreOrder_DeliveryDestination = ?,
|
|
PreOrder_DeliveryM_KelurahanID = ?,
|
|
PreOrder_DeliveryAddressID = ?,
|
|
PreOrder_DeliveryUserID = ?,
|
|
PreOrder_DeliveryLastUpdated = now()
|
|
WHERE
|
|
PreOrder_DeliveryID = ?
|
|
";
|
|
$update_exist_delivery = $this->db_onedev->query($query,array(
|
|
$prm['orderdeliverydeliveryid'],
|
|
$prm['orderdeliverydeliverytype'],
|
|
$prm['orderdeliverydestination'],
|
|
$prm['orderdeliverykelurahan'],
|
|
$prm['orderdeliveryaddressid'],
|
|
$userid,
|
|
$last_delivery->PreOrder_DeliveryID
|
|
));
|
|
}
|
|
//echo $this->db_onedev->last_query();
|
|
|
|
}
|
|
|
|
$sql = "UPDATE one_preorder_dev.preorder_sample SET Preorder_SampleIsActive = 'N' WHERE Preorder_SamplePreOrder_HeaderID = {$order_id}";
|
|
$this->db_onedev->query($sql);
|
|
|
|
$sql = "SELECT T_TestT_SampleTypeID, PreOrder_HeaderNumbering, PreOrder_HeaderID, IFNULL(Preorder_SampleID,0) as idx
|
|
FROM one_preorder_dev.preorder_header
|
|
JOIN one_preorder_dev.preorder_test ON PreOrder_TestPreOrder_HeaderID = PreOrder_HeaderID AND PreOrder_TestIsActive = 'Y'
|
|
JOIN t_test ON PreOrder_TestT_TestID = T_TestID
|
|
LEFT JOIN one_preorder_dev.preorder_sample ON Preorder_SamplePreOrder_HeaderID = PreOrder_HeaderID AND T_TestT_SampleTypeID = Preorder_SampleT_SampleTypeID
|
|
WHERE PreOrder_HeaderID = {$order_id}
|
|
GROUP BY T_TestT_SampleTypeID ";
|
|
$sampletypes = $this->db_onedev->query($sql)->result_array();
|
|
foreach($sampletypes as $k => $v){
|
|
if($v['idx'] == 0 || $v['idx'] == '0'){
|
|
$barcode = $v['PreOrder_HeaderNumbering'].'.'.$v['T_TestT_SampleTypeID'];
|
|
$sql = "INSERT INTO one_preorder_dev.preorder_sample (
|
|
Preorder_SamplePreOrder_HeaderID,
|
|
Preorder_SampleT_SampleTypeID,
|
|
Preorder_SampleBarcode,
|
|
Preorder_SampleUserID,
|
|
Preorder_SampleCreate,
|
|
Preorder_SampleLastUpdated
|
|
)
|
|
VALUES(
|
|
{$v['PreOrder_HeaderID']},
|
|
{$v['T_TestT_SampleTypeID']},
|
|
'{$barcode}',
|
|
{$userid},
|
|
NOW(),
|
|
NOW()
|
|
)";
|
|
$this->db_onedev->query($sql);
|
|
//echo $sql;
|
|
}else{
|
|
$sql = "UPDATE one_preorder_dev.preorder_sample SET Preorder_SampleIsActive = 'Y' WHERE Preorder_SampleID = {$v['idx']}";
|
|
$this->db_onedev->query($sql);
|
|
}
|
|
|
|
}
|
|
|
|
|
|
//echo $this->db_onedev->last_query();
|
|
if($prm['act'] == 'update'){
|
|
$query = " SELECT PreOrder_HeaderNumbering as numberx
|
|
FROM one_preorder_dev.preorder_header
|
|
WHERE PreOrder_HeaderID = ? LIMIT 1";
|
|
$rows = $this->db_onedev->query($query,array($order_id))->result();
|
|
$result = array(
|
|
"total" => count($rows) ,
|
|
"records" => $rows,
|
|
);
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
else{
|
|
$this->do_orderlab($prm);
|
|
}
|
|
|
|
}
|
|
else {
|
|
$this->sys_error_db("order update",$this->db_onedev);
|
|
exit;
|
|
}
|
|
}
|
|
|
|
function do_confirm(){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$prm = $this->sys_input;
|
|
$order_id = $prm['orderid'];
|
|
$userid = $this->sys_user["M_UserID"];
|
|
$query = "UPDATE one_preorder_dev.preorder_header SET
|
|
PreOrder_HeaderM_PreOrderStatusID = 2,
|
|
PreOrder_HeaderUserID = '{$userid}',
|
|
PreOrder_HeaderLastUpdated = now()
|
|
WHERE
|
|
PreOrder_HeaderID = ?
|
|
";
|
|
$update_order = $this->db_onedev->query($query,array(
|
|
$prm['orderid']
|
|
));
|
|
//echo $this->db_onedev->last_query();
|
|
if($update_order){
|
|
$query = " SELECT PreOrder_HeaderNumbering as numberx
|
|
FROM one_preorder_dev.preorder_header
|
|
WHERE PreOrder_HeaderID = ? LIMIT 1";
|
|
$rows = $this->db_onedev->query($query,array($order_id))->result();
|
|
$result = array(
|
|
"total" => count($rows) ,
|
|
"records" => $rows,
|
|
);
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
else{
|
|
$this->sys_error_db("confirm update",$this->db_onedev);
|
|
exit;
|
|
}
|
|
|
|
}
|
|
|
|
function do_orderlab(){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$prm = $this->sys_input;
|
|
$order_id = $prm['orderid'];
|
|
$patientage = $prm['patientage'];
|
|
$userid = $this->sys_user["M_UserID"];
|
|
$sql = " SELECT *
|
|
FROM one_preorder_dev.preorder_header
|
|
LEFT JOIN one_preorder_dev.conf_system ON Conf_SystemIsActive = 'Y'
|
|
JOIN one.m_mou ON Conf_SystemMOUID = M_MouID
|
|
WHERE
|
|
PreOrder_HeaderID = '{$order_id}'";
|
|
//echo $query;
|
|
$query = $this->db_onedev->query($sql);
|
|
if (!$query) {
|
|
$this->sys_error_db("select preorder_header", $this->db_onedev);
|
|
exit;
|
|
}
|
|
|
|
$data_order = $query->row();
|
|
//print_r($data_order);
|
|
$query = "INSERT INTO one.t_orderheader (
|
|
T_OrderHeaderDate,
|
|
T_OrderHeaderM_PatientID,
|
|
T_OrderHeaderM_CompanyID,
|
|
T_OrderHeaderM_MouID,
|
|
T_OrderHeaderM_PatientAge,
|
|
T_OrderHeaderSenderM_DoctorID,
|
|
T_OrderHeaderSenderM_DoctorAddressID,
|
|
T_OrderHeaderCreated,
|
|
T_OrderHeaderUserID
|
|
)
|
|
VALUE(
|
|
NOW(),
|
|
?,
|
|
?,
|
|
?,
|
|
?,
|
|
?,
|
|
?,
|
|
NOW(),
|
|
?
|
|
|
|
)";
|
|
$new_order = $this->db_onedev->query($query,array(
|
|
$data_order->PreOrder_HeaderM_PatientID,
|
|
$data_order->M_MouM_CompanyID,
|
|
$data_order->Conf_SystemMOUID,
|
|
$patientage,
|
|
$data_order->PreOrder_HeaderM_DoctorID,
|
|
$data_order->PreOrder_HeaderM_DoctorAddressID,
|
|
$userid
|
|
));
|
|
//echo $this->db_onedev->last_query();
|
|
if($new_order){
|
|
$last_id = $this->db_onedev->insert_id();
|
|
|
|
$query = " SELECT *
|
|
FROM one_preorder_dev.preorder_test
|
|
JOIN one.t_test ON PreOrder_TestT_TestID = T_TestID
|
|
WHERE
|
|
PreOrder_TestPreOrder_HeaderID = '{$order_id}' AND PreOrder_TestIsActive = 'Y'";
|
|
$data_order_detail = $this->db_onedev->query($query)->result();
|
|
$header_total = 0;
|
|
foreach($data_order_detail as $k => $v){
|
|
$dsictot = ((floatval($v->PreOrder_TestDisc)/100) * intval($v->PreOrder_TestPrice)) + intval($v->PreOrder_TestDiscRp);
|
|
$total = intval($v->PreOrder_TestPrice) - $dsictot ;
|
|
$header_total = $header_total + $total;
|
|
$sql = "INSERT INTO t_orderdetail (
|
|
T_OrderDetailT_OrderHeaderID,
|
|
T_OrderDetailT_TestID,
|
|
T_OrderDetailT_TestCode,
|
|
T_OrderDetailT_TestName,
|
|
T_OrderDetailT_TestIsResult,
|
|
T_OrderDetailT_TestIsPrice,
|
|
T_OrderDetailPrice,
|
|
T_OrderDetailPriceForDisc,
|
|
T_OrderDetailDisc,
|
|
T_OrderDetailDiscAmount,
|
|
T_OrderDetailDiscTotal,
|
|
T_OrderDetailTotal,
|
|
T_OrderDetailCreated,
|
|
T_OrderDetailUserID
|
|
)
|
|
VALUE(
|
|
?,
|
|
?,
|
|
?,
|
|
?,
|
|
?,
|
|
?,
|
|
?,
|
|
?,
|
|
?,
|
|
?,
|
|
?,
|
|
?,
|
|
NOW(),
|
|
?
|
|
)";
|
|
$query = $this->db_onedev->query($sql,array(
|
|
$last_id,
|
|
$v->PreOrder_TestT_TestID,
|
|
$v->T_TestCode,
|
|
$v->T_TestName,
|
|
$v->T_TestIsResult,
|
|
$v->T_TestIsPrice,
|
|
$v->PreOrder_TestPrice,
|
|
$v->PreOrder_TestPrice,
|
|
$v->PreOrder_TestDisc,
|
|
$v->PreOrder_TestDiscRp,
|
|
$dsictot,
|
|
$total,
|
|
$userid
|
|
));
|
|
if (!$query) {
|
|
$this->sys_error_db("t_orderdetail insert");
|
|
exit;
|
|
}else{
|
|
//$lastid = $this->db_onedev->insert_id();
|
|
$sql = "SELECT *
|
|
FROM t_test
|
|
WHERE
|
|
T_TestParentT_TestID = '{$v->T_TestID}' AND
|
|
T_TestIsActive = 'Y'";
|
|
$childrentest = $this->db_onedev->query($sql)->result_array();
|
|
if($childrentest){
|
|
foreach($childrentest as $xk => $xv){
|
|
$sql = "insert into t_orderdetail(
|
|
T_OrderDetailT_OrderHeaderID,
|
|
T_OrderDetailT_TestID,
|
|
T_OrderDetailT_TestCode,
|
|
T_OrderDetailT_TestName,
|
|
T_OrderDetailT_TestIsResult,
|
|
T_OrderDetailT_TestIsPrice,
|
|
T_OrderDetailUserID,
|
|
T_OrderDetailCreated,
|
|
T_OrderDetailLastUpdated
|
|
)
|
|
values( ?, ?, ?, ?, ?, ?,?, now(), now())";
|
|
|
|
$query = $this->db_onedev->query($sql,
|
|
array(
|
|
$last_id,
|
|
$xv['T_TestID'],
|
|
$xv['T_TestCode'],
|
|
$xv['T_TestName'],
|
|
$xv['T_TestIsResult'],
|
|
$xv['T_TestIsPrice'],
|
|
$userid
|
|
)
|
|
);
|
|
if (!$query) {
|
|
$this->sys_error_db("t_orderdetail children insert");
|
|
exit;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if($k == count($data_order_detail)-1){
|
|
$roundingx = intval(substr($header_total,-3) > 500?substr($header_total,-3)-500:substr($header_total,-3));
|
|
$total_akhir = $header_total - $roundingx;
|
|
$sql = "UPDATE t_orderheader SET T_OrderHeaderRounding = {$roundingx}, T_OrderHeaderTotal = {$total_akhir} WHERE T_OrderHeaderID = {$last_id}";
|
|
$this->db_onedev->query($sql);
|
|
}
|
|
}
|
|
$query = " SELECT *
|
|
FROM one_preorder_dev.preorder_header
|
|
JOIN one_preorder_dev.preorder_delivery ON PreOrder_DeliveryPreOrder_HeaderID = '{$order_id}' AND PreOrder_DeliveryIsActive = 'Y'
|
|
WHERE
|
|
PreOrder_HeaderID = '{$order_id}'";
|
|
//echo $query;
|
|
$delver = $this->db_onedev->query($query)->result_array();
|
|
foreach($delver as $ii => $vv){
|
|
$addressid = 0;
|
|
/*if($vv['PreOrder_DeliveryM_DeliveryID'] == 2 || $vv['PreOrder_DeliveryM_DeliveryID'] == '2')
|
|
$addressid = $vv['PreOrder_HeaderM_PatientAdrressID'];
|
|
if($vv['PreOrder_DeliveryM_DeliveryID'] == 4 || $vv['PreOrder_DeliveryM_DeliveryID'] == '4')
|
|
$addressid = $vv['PreOrder_HeaderM_DoctorAddressID'];*/
|
|
$sql = "insert into t_orderdelivery(
|
|
T_OrderDeliveryT_OrderHeaderID,
|
|
T_OrderDeliveryM_DeliveryID,
|
|
T_OrderDeliveryM_DeliveryTypeID,
|
|
T_OrderDeliveryDestination,
|
|
T_OrderDeliveryAddressID,
|
|
T_OrderDeliveryM_KelurahanID,
|
|
T_OrderDeliveryUserID,
|
|
T_OrderDeliveryCreated,
|
|
T_OrderDeliveryLastUpdated)
|
|
values( ?, ?, ?, ?, ?, ?, ?, now(), now())";
|
|
|
|
$query = $this->db_onedev->query($sql,
|
|
array(
|
|
$last_id,
|
|
$vv['PreOrder_DeliveryM_DeliveryID'],
|
|
$vv['PreOrder_DeliveryM_DeliveryTypeID'],
|
|
$vv['PreOrder_DeliveryDestination'],
|
|
$vv['PreOrder_DeliveryAddressID'],
|
|
$vv['PreOrder_DeliveryM_KelurahanID'],
|
|
$userid
|
|
)
|
|
);
|
|
|
|
}
|
|
$sql = "UPDATE one_preorder_dev.preorder_header SET PreOrder_HeaderT_OrderHeaderID = '{$last_id}', PreOrder_HeaderM_PreOrderStatusID = 4 WHERE PreOrder_HeaderID = {$order_id}";
|
|
//echo $sql;
|
|
$update_preheader = $this->db_onedev->query($sql);
|
|
if (!$update_preheader) {
|
|
$this->sys_error_db("preorder_header update", $this->db_onedev);
|
|
exit;
|
|
}
|
|
|
|
$sql = "SELECT T_OrderHeaderLabNumber as numberx FROM t_orderheader WHERE T_OrderHeaderID = '{$last_id}'";
|
|
$rst_rtn = $this->db_onedev->query($sql)->row();
|
|
$result = array(
|
|
"total" => 1 ,
|
|
"records" => $rst_rtn,
|
|
);
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
else{
|
|
$this->sys_error_db("new order",$this->db_onedev);
|
|
exit;
|
|
}
|
|
|
|
}
|
|
|
|
function do_cancel(){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$prm = $this->sys_input;
|
|
$order_id = $prm['orderid'];
|
|
|
|
$query = "UPDATE one_preorder_dev.preorder_header SET
|
|
PreOrder_HeaderIsActive = 'N',
|
|
PreOrder_HeaderLastUpdated = now()
|
|
WHERE
|
|
PreOrder_HeaderID = ?
|
|
";
|
|
$update_order = $this->db_onedev->query($query,array(
|
|
$prm['orderid']
|
|
));
|
|
//echo $this->db_onedev->last_query();
|
|
if($update_order){
|
|
$query = " SELECT PreOrder_HeaderNumbering as numberx
|
|
FROM one_preorder_dev.preorder_header
|
|
WHERE PreOrder_HeaderID = ? LIMIT 1";
|
|
$rows = $this->db_onedev->query($query,array($order_id))->result();
|
|
$result = array(
|
|
"total" => count($rows) ,
|
|
"records" => $rows,
|
|
);
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
else{
|
|
$this->sys_error_db("cancel order",$this->db_onedev);
|
|
exit;
|
|
}
|
|
|
|
}
|
|
|
|
function do_download(){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$prm = $this->sys_input;
|
|
$order_id = $prm['orderid'];
|
|
|
|
$query = "UPDATE one_preorder_dev.preorder_header SET
|
|
PreOrder_HeaderDownloadedMobile = 'Y',
|
|
PreOrder_HeaderLastUpdated = now()
|
|
WHERE
|
|
PreOrder_HeaderID = ?
|
|
";
|
|
$update_order = $this->db_onedev->query($query,array(
|
|
$prm['orderid']
|
|
));
|
|
//echo $this->db_onedev->last_query();
|
|
if($update_order){
|
|
$query = " SELECT PreOrder_HeaderNumbering as numberx
|
|
FROM one_preorder_dev.preorder_header
|
|
WHERE PreOrder_HeaderID = ? LIMIT 1";
|
|
$rows = $this->db_onedev->query($query,array($order_id))->result();
|
|
$result = array(
|
|
"total" => count($rows) ,
|
|
"records" => $rows,
|
|
);
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
else{
|
|
$this->sys_error_db("downloaded order",$this->db_onedev);
|
|
exit;
|
|
}
|
|
|
|
}
|
|
|
|
function do_resend(){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$prm = $this->sys_input;
|
|
$order_id = $prm['orderid'];
|
|
$query = "SELECT * FROM one_gateway.outbox WHERE outboxID = {$order_id}";
|
|
$lastdata = $this->db_onedev->query($query)->row();
|
|
|
|
$query = "UPDATE one_gateway.outbox SET
|
|
outboxRetry = 0
|
|
WHERE
|
|
outboxID = ?
|
|
";
|
|
$update_order = $this->db_onedev->query($query,array(
|
|
$prm['orderid']
|
|
));
|
|
//echo $this->db_onedev->last_query();
|
|
if($update_order){
|
|
$query = " SELECT PreOrder_HeaderNumbering as numberx
|
|
FROM one_preorder_dev.preorder_header
|
|
WHERE PreOrder_HeaderID = ? LIMIT 1";
|
|
$rows = $this->db_onedev->query($query,array($lastdata->outboxRefID))->result();
|
|
$result = array(
|
|
"total" => count($rows) ,
|
|
"records" => $rows,
|
|
);
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
else{
|
|
$this->sys_error_db("resend order",$this->db_onedev);
|
|
exit;
|
|
}
|
|
|
|
}
|
|
|
|
}
|