1842 lines
67 KiB
PHP
Executable File
1842 lines
67 KiB
PHP
Executable File
<?php
|
|
class Acceptcourier extends MY_Controller
|
|
{
|
|
var $db_onedev;
|
|
public function index()
|
|
{
|
|
echo "Accept Courier API";
|
|
}
|
|
|
|
public function __construct()
|
|
{
|
|
parent::__construct();
|
|
$this->db_onedev = $this->load->database("onedev", true);
|
|
$this->load->helper(array('form', 'url'));
|
|
}
|
|
|
|
|
|
function getcompanycouriers(){
|
|
$rows = [];
|
|
|
|
$sql = "SELECT M_CompanyID as id,
|
|
M_CompanyName as name
|
|
FROM m_company
|
|
WHERE
|
|
M_CompanyIsActive = 'Y' AND M_CompanyIsLabFrom = 'Y'";
|
|
//echo $sql;
|
|
$rows['companys'] = $this->db_onedev->query($sql)->result_array();
|
|
|
|
$sql = "SELECT M_StaffID as id,
|
|
M_StaffName as name
|
|
FROM m_courier
|
|
JOIN m_staff ON M_StaffID = M_CourierM_StaffID
|
|
WHERE
|
|
M_CourierIsActive = 'Y'";
|
|
//echo $sql;
|
|
$rows['couriers'] = $this->db_onedev->query($sql)->result_array();
|
|
$result = array(
|
|
"total" => count($rows) ,
|
|
"records" => $rows,
|
|
);
|
|
$this->sys_ok($result);
|
|
exit;
|
|
|
|
}
|
|
|
|
function getdetails($id){
|
|
$rows = [];
|
|
|
|
$sql = "SELECT t_receiverefacceptcourierdetail.*,
|
|
M_CompanyName as namaperusahaan,
|
|
M_CompanyAddress as alamatperusahaan,
|
|
T_ReceiveReferencePatientID,
|
|
T_ReceiveReferencePatientNoRef as nolab,
|
|
T_ReceiverefAcceptCourierDate as trx_date,
|
|
T_ReceiveReferencePatientDOB as patient_dob,
|
|
CONCAT(T_ReceiveReferencePatientName, '( ', M_SexName, ' |', DATE_FORMAT(T_ReceiveReferencePatientDOB,'%d-%m-%Y'), ' )') as pasien,
|
|
T_SampleTypeName as sampel,
|
|
'Y' as active,
|
|
T_ReceiverefAcceptCourierDetailSampleIsOk as sampleisok,
|
|
T_ReceiverefAcceptCourierDetailNote as note,
|
|
T_ReceiverefAcceptCourierDetailID as idx,
|
|
T_ReceiveReferencePatientTotal,
|
|
T_ReceiveReferencePatientDPPercent,
|
|
T_ReceiveReferencePatientDPAmount,
|
|
T_ReceiveReferencePatientDPAmount as dp
|
|
|
|
FROM t_receiverefacceptcourierdetail
|
|
LEFT JOIN t_receiverefacceptcourier ON T_ReceiverefAcceptCourierDetailT_ReceiverefAcceptCourierID = T_ReceiverefAcceptCourierID
|
|
LEFT JOIN t_receiverefdistributcourierdetail ON T_ReceiverefAcceptCourierDetailT_ReceiverefDistributCourierDetID = T_ReceiverefDistributCourierDetailID
|
|
LEFT JOIN t_receivereferencedeliverydetail ON T_ReceiverefAcceptCourierDetailT_ReceiveReferenceDeliveryDetID = T_ReceiveReferenceDeliveryDetailID
|
|
LEFT JOIN t_receivereferencepatient ON T_ReceiveReferenceDeliveryDetailT_ReceiveReferencePatientID = T_ReceiveReferencePatientID
|
|
LEFT JOIN m_sex ON T_ReceiveReferencePatientM_SexID = M_SexID
|
|
LEFT JOIN t_sampletype ON T_ReceiveReferenceDeliveryDetailT_SampleTypeID = T_SampleTypeID
|
|
LEFT JOIN t_receivereferenceheader ON T_ReceiveReferenceDeliveryDetailT_ReceiveReferenceHeaderID = T_ReceiveReferenceHeaderID
|
|
JOIN m_company ON T_ReceiveReferenceHeaderM_CompanyID = M_CompanyID
|
|
WHERE
|
|
T_ReceiverefAcceptCourierDetailT_ReceiverefAcceptCourierID = {$id} AND T_ReceiverefAcceptCourierDetailIsActive = 'Y'";
|
|
//echo $sql;
|
|
$rows = $this->db_onedev->query($sql)->result_array();
|
|
/*
|
|
if($rows){
|
|
foreach($rows as $k => $v){
|
|
$rows[$k]['labs'] = $this->add_lab($v['T_ReceiverefAcceptCourierDetailT_ReceiveReferenceDeliveryID']);
|
|
|
|
}
|
|
}
|
|
*/
|
|
return $rows;
|
|
|
|
}
|
|
function getdetaildps($id){
|
|
$rows = [];
|
|
|
|
$sql = "SELECT t_receiverefacceptcourierdp.*,
|
|
M_CompanyID as companyid,
|
|
M_CompanyName as companyname,
|
|
T_ReceiverefAcceptCourierDPT_ReceiveReferenceHeaderID as orderid,
|
|
T_ReceiveReferenceHeaderNumber as ordernumber,
|
|
'Y' as active,
|
|
T_ReceiverefAcceptCourierDPID as idx,
|
|
T_ReceiverefAcceptCourierDPAmount as amount
|
|
|
|
FROM t_receiverefacceptcourierdp
|
|
LEFT JOIN t_receivereferenceheader ON T_ReceiverefAcceptCourierDPT_ReceiveReferenceHeaderID = T_ReceiveReferenceHeaderID
|
|
JOIN m_company ON T_ReceiveReferenceHeaderM_CompanyID = M_CompanyID
|
|
WHERE
|
|
T_ReceiverefAcceptCourierDPT_ReceiverefAcceptCourierID = {$id} AND T_ReceiverefAcceptCourierDPIsActive = 'Y'";
|
|
//echo $sql;
|
|
$rows = $this->db_onedev->query($sql)->result_array();
|
|
/*
|
|
if($rows){
|
|
foreach($rows as $k => $v){
|
|
$rows[$k]['labs'] = $this->add_lab($v['T_ReceiverefAcceptCourierDetailT_ReceiveReferenceDeliveryID']);
|
|
|
|
}
|
|
}
|
|
*/
|
|
return $rows;
|
|
|
|
}
|
|
function add_lab($orderid){
|
|
$query ="SELECT t_receivereferencedeliverydetail.*, M_SexName,
|
|
T_ReceiveReferencePatientName as patient_fullname,
|
|
T_SampleTypeName as samplename,
|
|
T_ReceiveReferencePatientNoRef as labnumberref,
|
|
T_OrderHeaderLabNumber as labnumber,
|
|
'Y' as active,
|
|
T_ReceiveReferenceDeliveryDetailID as idx,
|
|
T_ReceiveReferencePatientID as orderid,
|
|
T_SampleTypeID as sampleid,
|
|
DATE_FORMAT(T_ReceiveReferencePatientDOB,'%d-%m-%Y') as dob
|
|
FROM t_receivereferencedeliverydetail
|
|
JOIN t_receivereferenceheader ON T_ReceiveReferenceDeliveryDetailT_ReceiveReferenceHeaderID = T_ReceiveReferenceHeaderID
|
|
JOIN t_receivereferencepatient ON T_ReceiveReferenceDeliveryDetailT_ReceiveReferencePatientID = T_ReceiveReferencePatientID
|
|
LEFT JOIN t_orderheader ON T_ReceiveReferencePatientT_OrderHeaderID = T_OrderHeaderID
|
|
JOIN t_sampletype ON T_ReceiveReferenceDeliveryDetailT_SampleTypeID = T_SampleTypeID
|
|
JOIN m_sex ON T_ReceiveReferencePatientM_SexID = M_SexID
|
|
WHERE
|
|
T_ReceiveReferenceDeliveryDetailT_ReceiveReferenceDeliveryID = {$orderid} AND T_ReceiveReferenceDeliveryDetailIsActive = 'Y'";
|
|
//echo $query;
|
|
$rows = $this->db_onedev->query($query)->result_array();
|
|
if(!$rows)
|
|
$rows = array();
|
|
return $rows;
|
|
}
|
|
public function search()
|
|
{
|
|
$prm = $this->sys_input;
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
|
|
$search = $prm["namelab"];
|
|
$status = $prm["stationid"];
|
|
$startdate = $prm["startdate"];
|
|
$enddate = $prm["enddate"];
|
|
|
|
$sql_where = "WHERE T_ReceiverefAcceptCourierStatus = '{$status}' AND ( T_ReceiverefAcceptCourierDate BETWEEN '{$startdate} 00:00:00' AND '{$enddate} 23:59:59' ) AND T_ReceiverefAcceptCourierIsActive = 'Y'";
|
|
|
|
//$sql_param = array();
|
|
if ($search != "") {
|
|
if ($sql_where != "") {
|
|
$sql_where .=" and ";
|
|
}
|
|
$sql_where .= " ( T_ReceiverefAcceptCourierNumber like '%$search%' ) ";
|
|
//$sql_param[] = "%$nama%";
|
|
}
|
|
|
|
|
|
$sql = " SELECT count(*) as total
|
|
FROM t_receiverefacceptcourier
|
|
LEFT JOIN m_staff ON T_ReceiverefAcceptCourierM_StaffID = M_StaffID
|
|
$sql_where
|
|
";
|
|
//echo $sql;
|
|
$query = $this->db_onedev->query($sql);
|
|
|
|
$tot_count = 0;
|
|
if ($query) {
|
|
$tot_count = $query->result_array()[0]["total"];
|
|
} else {
|
|
$this->sys_error_db("m_company count", $this->db_onedev);
|
|
exit;
|
|
}
|
|
|
|
$sql = "SELECT t_receiverefacceptcourier.*, IFNULL(M_StaffName,'-') as courier_name,
|
|
T_ReceiverefAcceptCourierID as trx_id,
|
|
T_ReceiverefAcceptCourierNumber as trx_numbering,
|
|
T_ReceiverefAcceptCourierDate as trx_date,
|
|
DATE_FORMAT(T_ReceiverefAcceptCourierDate,'%d-%m-%Y') as trx_date_ina,
|
|
T_ReceiverefAcceptCourierNote as trx_note,
|
|
T_ReceiverefAcceptCourierStatus as status,
|
|
'' as details,
|
|
CASE
|
|
WHEN T_ReceiverefAcceptCourierStatus = 'CREATED' THEN 'BARU'
|
|
WHEN T_ReceiverefAcceptCourierStatus = 'RELEASEC' THEN 'DISERAHKAN KURIR'
|
|
WHEN T_ReceiverefAcceptCourierStatus = 'RCVDOC' THEN 'DITERIMA DOKTER'
|
|
WHEN T_ReceiverefAcceptCourierStatus = 'PARTDONE' THEN 'SELESAI SEBAGIAN'
|
|
ELSE 'SELESAI'
|
|
END as status_name
|
|
FROM t_receiverefacceptcourier
|
|
LEFT JOIN m_staff ON T_ReceiverefAcceptCourierM_StaffID = M_StaffID
|
|
$sql_where
|
|
ORDER BY T_ReceiverefAcceptCourierID DESC
|
|
limit 0,20";
|
|
//echo $sql;
|
|
$query = $this->db_onedev->query($sql);
|
|
//echo $this->db_onedev->last_query();
|
|
$rows = $query->result_array();
|
|
if($rows){
|
|
foreach($rows as $k => $v){
|
|
//$rows[$k]['companys'] = $this->getcompanys();
|
|
$rows[$k]['details'] = $this->getdetails($v['T_ReceiverefAcceptCourierID']);
|
|
$rows[$k]['detaildps'] = $this->getdetaildps($v['T_ReceiverefAcceptCourierID']);
|
|
|
|
}
|
|
}
|
|
|
|
|
|
//$this->_add_address($rows);
|
|
$result = array("total" => $tot_count, "records" => $rows, "sql"=> $this->db_onedev->last_query());
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
|
|
function getordersamples(){
|
|
$prm = $this->sys_input;
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$prm = $this->sys_input;
|
|
$courierid = $prm['courierid'];
|
|
$sql = "SELECT * FROM
|
|
(SELECT 0 as idx,
|
|
M_CompanyName as namaperusahaan,
|
|
M_CompanyAddress as alamatperusahaan,
|
|
T_ReceiveReferencePatientNoRef as nolab,
|
|
CONCAT(T_ReceiveReferencePatientName, '( ', M_SexName, ' |', DATE_FORMAT(T_ReceiveReferencePatientDOB,'%d-%m-%Y'), ' )') as pasien,
|
|
T_SampleTypeName as sampel,
|
|
'Y' as active,
|
|
'Y' as sampleisok,
|
|
'' as note,
|
|
T_ReceiverefDistributCourierDetailID as distributdetailid,
|
|
T_ReceiveReferenceDeliveryDetailID as sjdetailid,
|
|
T_ReceiverefAcceptCourierDetailID,
|
|
T_ReceiveReferencePatientDPAmount as dp
|
|
|
|
FROM t_receiverefdistributcourier
|
|
|
|
LEFT JOIN t_receiverefdistributcourierdetail ON T_ReceiverefDistributCourierID = T_ReceiverefDistributCourierDetailT_ReceiverefDistributCourierID
|
|
LEFT JOIN t_receivereferencedeliverydetail ON T_ReceiverefDistributCourierDetailT_ReceiveReferenceDeliveryID = T_ReceiveReferenceDeliveryDetailT_ReceiveReferenceDeliveryID
|
|
LEFT JOIN t_receiverefacceptcourierdetail ON T_ReceiverefDistributCourierDetailID = T_ReceiverefAcceptCourierDetailT_ReceiverefDistributCourierDetID AND T_ReceiverefAcceptCourierDetailT_ReceiveReferenceDeliveryDetID = T_ReceiveReferenceDeliveryDetailID
|
|
LEFT JOIN t_receivereferencepatient ON T_ReceiveReferenceDeliveryDetailT_ReceiveReferencePatientID = T_ReceiveReferencePatientID AND T_ReceiveReferencePatientT_OrderHeaderID = 0
|
|
LEFT JOIN t_sampletype ON T_ReceiveReferenceDeliveryDetailT_SampleTypeID = T_SampleTypeID
|
|
LEFT JOIN m_sex ON T_ReceiveReferencePatientM_SexID = M_SexID
|
|
LEFT JOIN t_receivereferenceheader ON T_ReceiveReferenceDeliveryDetailT_ReceiveReferenceHeaderID = T_ReceiveReferenceHeaderID
|
|
LEFT JOIN m_company ON T_ReceiveReferenceHeaderM_CompanyID = M_CompanyID
|
|
WHERE T_ReceiverefDistributCourierM_StaffID = {$courierid} AND T_ReceiverefDistributCourierIsActive = 'Y'
|
|
AND T_ReceiverefDistributCourierStatus = 'RELEASEC'
|
|
GROUP BY T_ReceiveReferenceDeliveryDetailID) a
|
|
WHERE T_ReceiverefAcceptCourierDetailID IS NULL";
|
|
//echo $sql;
|
|
$rows = $this->db_onedev->query($sql)->result_array();
|
|
/* if($rows){
|
|
|
|
foreach($rows as $k => $v){
|
|
$rows[$k]['labs'] = $this->add_lab($v['sjid']);
|
|
|
|
}
|
|
}
|
|
*/
|
|
// return $rows;
|
|
$result = array(
|
|
"total" => count($rows) ,
|
|
"records" => $rows,
|
|
);
|
|
$this->sys_ok($result);
|
|
exit;
|
|
|
|
|
|
}
|
|
|
|
function getstation(){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$rows = [];
|
|
$query =" SELECT T_SampleStationID as id, T_SampleStationName as name
|
|
FROM t_samplestation
|
|
WHERE
|
|
T_SampleStationIsActive = 'Y'
|
|
";
|
|
//echo $query;
|
|
$rows['stations'] = $this->db_onedev->query($query)->result_array();
|
|
//print_r($statuses);
|
|
foreach($statuses as $k=>$v){
|
|
array_push($rows['statuses'],$v);
|
|
}
|
|
|
|
$result = array(
|
|
"total" => count($rows) ,
|
|
"records" => $rows,
|
|
);
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
|
|
function getcompanyaddress(){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$prm = $this->sys_input;
|
|
$query =" SELECT M_CompanyAddressID as id, M_CompanyAddressDescription as name
|
|
FROM m_companyaddress
|
|
WHERE
|
|
M_CompanyAddressM_CompanyID = {$prm['id']} AND M_CompanyAddressIsActive = 'Y'
|
|
";
|
|
//echo $query;
|
|
$rows = $this->db_onedev->query($query)->result_array();
|
|
|
|
$result = array(
|
|
"total" => count($rows) ,
|
|
"records" => $rows,
|
|
);
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
|
|
|
|
function save(){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$prm = $this->sys_input;
|
|
$userid = $this->sys_user["M_UserID"];
|
|
|
|
$xdate = date('Y-m-d',strtotime($prm["trx_date"]));
|
|
if($prm['trx_id'] == '0' || $prm['trx_id'] == 0){
|
|
$numbering = $this->db_onedev->query("SELECT fn_numbering('REF.ACCEPT') as numbering")->row()->numbering;
|
|
$query ="INSERT INTO t_receiverefacceptcourier (
|
|
T_ReceiverefAcceptCourierNumber,
|
|
T_ReceiverefAcceptCourierDate,
|
|
T_ReceiverefAcceptCourierNote,
|
|
T_ReceiverefAcceptCourierM_StaffID,
|
|
T_ReceiverefAcceptCourierCreated,
|
|
T_ReceiverefAcceptCourierUserID
|
|
)
|
|
VALUES(
|
|
'{$numbering}',
|
|
'{$xdate}',
|
|
'{$prm['trx_note']}',
|
|
'{$prm['courier']['id']}',
|
|
NOW(),
|
|
'{$userid}'
|
|
)
|
|
";
|
|
//echo $query;
|
|
$saveheader = $this->db_onedev->query($query);
|
|
$last_id = $this->db_onedev->insert_id();
|
|
}else{
|
|
$numbering = $this->db_onedev->query("SELECT T_ReceiverefAcceptCourierNumber as numbering FROM t_receiverefacceptcourier WHERE T_ReceiverefAcceptCourierID = {$prm['trx_id']}")->row()->numbering;
|
|
$query ="UPDATE t_receiverefacceptcourier SET
|
|
T_ReceiverefAcceptCourierDate = '{$xdate}',
|
|
T_ReceiverefAcceptCourierNote = '{$prm['trx_note']}',
|
|
T_ReceiverefAcceptCourierCreated = NOW(),
|
|
T_ReceiverefAcceptCourierUserID = '{$userid}'
|
|
WHERE
|
|
T_ReceiverefAcceptCourierID = {$prm['trx_id']}
|
|
";
|
|
//echo $query;
|
|
$saveheader = $this->db_onedev->query($query);
|
|
$last_id = $prm['trx_id'];
|
|
}
|
|
if($saveheader){
|
|
foreach($prm['details'] as $k => $v){
|
|
if(($v['idx'] == 0 || $v['idx'] == '0')){
|
|
$query ="INSERT INTO t_receiverefacceptcourierdetail (
|
|
T_ReceiverefAcceptCourierDetailT_ReceiverefAcceptCourierID,
|
|
T_ReceiverefAcceptCourierDetailT_ReceiverefDistributCourierDetID,
|
|
T_ReceiverefAcceptCourierDetailT_ReceiveReferenceDeliveryDetID,
|
|
T_ReceiverefAcceptCourierDetailSampleIsOk,
|
|
T_ReceiverefAcceptCourierDetailNote,
|
|
T_ReceiverefAcceptCourierDetailCreated,
|
|
T_ReceiverefAcceptCourierDetailUserID
|
|
)
|
|
VALUES(
|
|
'{$last_id}',
|
|
'{$v['distributdetailid']}',
|
|
'{$v['sjdetailid']}',
|
|
'{$v['sampleisok']}',
|
|
'{$v['note']}',
|
|
NOW(),
|
|
'{$userid}'
|
|
)";
|
|
//echo $query;
|
|
$savedetail = $this->db_onedev->query($query);
|
|
|
|
}
|
|
|
|
if(($v['idx'] != 0 || $v['idx'] != '0')){
|
|
$query ="UPDATE t_receiverefacceptcourierdetail SET
|
|
T_ReceiverefAcceptCourierDetailT_ReceiverefAcceptCourierID = '{$last_id}',
|
|
T_ReceiverefAcceptCourierDetailT_ReceiverefDistributCourierDetID = '{$v['distributdetailid']}',
|
|
T_ReceiverefAcceptCourierDetailT_ReceiveReferenceDeliveryDetID = '{$v['sjdetailid']}',
|
|
T_ReceiverefAcceptCourierDetailSampleIsOk = '{$v['sampleisok']}',
|
|
T_ReceiverefAcceptCourierDetailNote = '{$v['note']}',
|
|
T_ReceiverefAcceptCourierDetailUserID = '{$userid}'
|
|
WHERE
|
|
T_ReceiverefAcceptCourierDetailID = {$v['idx']}
|
|
";
|
|
//echo $query;
|
|
$savedetail = $this->db_onedev->query($query);
|
|
}
|
|
/*
|
|
if($v['active'] === 'N' && $v['idx'] != 0){
|
|
$query ="UPDATE t_receiverefacceptcourierdetail SET
|
|
T_ReceiverefAcceptCourierDetailIsActive = 'N',
|
|
T_ReceiverefAcceptCourierDetailUserID = '{$userid}'
|
|
WHERE
|
|
T_ReceiverefAcceptCourierDetailID = {$v['idx']}
|
|
";
|
|
//echo $query;
|
|
$savedetail = $this->db_onedev->query($query);
|
|
}
|
|
*/
|
|
}
|
|
|
|
foreach($prm['detaildps'] as $k => $v){
|
|
if($v['active'] === 'Y' && ($v['idx'] == 0 || $v['idx'] == '0')){
|
|
$query ="INSERT INTO t_receiverefacceptcourierdp (
|
|
T_ReceiverefAcceptCourierDPT_ReceiverefAcceptCourierID,
|
|
T_ReceiverefAcceptCourierDPT_ReceiveReferenceHeaderID,
|
|
T_ReceiverefAcceptCourierDPAmount,
|
|
T_ReceiverefAcceptCourierDPCreated,
|
|
T_ReceiverefAcceptCourierDPUserID
|
|
)
|
|
VALUES(
|
|
'{$last_id}',
|
|
'{$v['orderid']}',
|
|
'{$v['amount']}',
|
|
NOW(),
|
|
'{$userid}'
|
|
)";
|
|
//echo $query;
|
|
$savedetaildp = $this->db_onedev->query($query);
|
|
|
|
}
|
|
|
|
if($v['active'] === 'Y' && ($v['idx'] != 0 || $v['idx'] != '0')){
|
|
$query ="UPDATE t_receiverefacceptcourierdp SET
|
|
T_ReceiverefAcceptCourierDPT_ReceiverefAcceptCourierID = '{$last_id}',
|
|
T_ReceiverefAcceptCourierDPT_ReceiveReferenceHeaderID = '{$v['orderid']}',
|
|
T_ReceiverefAcceptCourierDPAmount = '{$v['amount']}',
|
|
T_ReceiverefAcceptCourierDPUserID = '{$userid}'
|
|
WHERE
|
|
T_ReceiverefAcceptCourierDPID = {$v['idx']}
|
|
";
|
|
//echo $query;
|
|
$savedetaildp = $this->db_onedev->query($query);
|
|
}
|
|
|
|
if($v['active'] === 'N' && $v['idx'] != 0){
|
|
$query ="UPDATE t_receiverefacceptcourierdp SET
|
|
T_ReceiverefAcceptCourierDPIsActive = 'N',
|
|
T_ReceiverefAcceptCourierDPUserID = '{$userid}'
|
|
WHERE
|
|
T_ReceiverefAcceptCourierDPID = {$v['idx']}
|
|
";
|
|
//echo $query;
|
|
$savedetaildp = $this->db_onedev->query($query);
|
|
}
|
|
}
|
|
}
|
|
$result = array(
|
|
"total" => 1 ,
|
|
"records" => array('status'=>'OK'),
|
|
"numbering" => $numbering,
|
|
"id" => $last_id
|
|
);
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
|
|
|
|
|
|
function deletetrx(){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$prm = $this->sys_input;
|
|
$userid = $this->sys_user["M_UserID"];
|
|
|
|
$query ="UPDATE t_receiverefacceptcourier SET
|
|
T_ReceiverefAcceptCourierIsActive = 'N',
|
|
T_ReceiverefAcceptCourierUserID = '{$userid}'
|
|
WHERE
|
|
T_ReceiverefAcceptCourierID = {$prm['trx_id']}
|
|
";
|
|
//echo $query;
|
|
$saveheader = $this->db_onedev->query($query);
|
|
$last_id = $prm['trx_id'];
|
|
|
|
$result = array(
|
|
"total" => 1 ,
|
|
"records" => array('status'=>'OK'),
|
|
"numbering" => $prm['trx_numbering'],
|
|
"id" => $prm['trx_id']
|
|
);
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
function searchnoorder(){
|
|
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 t_receivereferenceheader
|
|
WHERE
|
|
T_ReceiveReferenceHeaderNumber like ?
|
|
AND T_ReceiveReferenceHeaderIsActive = 'Y' AND T_ReceiveReferenceHeaderIsConfirm = '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("t_receivereferenceheader count",$this->db_onedev);
|
|
exit;
|
|
}
|
|
|
|
$sql = "
|
|
SELECT *, CONCAT(M_CompanyName, ' | ', T_ReceiveReferenceHeaderNumber) as T_ReceiveReferenceHeaderNumber
|
|
FROM t_receivereferenceheader
|
|
JOIN m_company ON T_ReceiveReferenceHeaderM_CompanyID = M_CompanyID
|
|
WHERE
|
|
T_ReceiveReferenceHeaderNumber like ?
|
|
AND T_ReceiveReferenceHeaderIsActive = 'Y' AND T_ReceiveReferenceHeaderIsConfirm = 'Y'
|
|
ORDER BY T_ReceiveReferenceHeaderNumber 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("t_receivereferenceheader rows",$this->db_onedev);
|
|
exit;
|
|
}
|
|
}
|
|
function doaction(){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$prm = $this->sys_input;
|
|
$userid = $this->sys_user["M_UserID"];
|
|
$data_rst = array();
|
|
|
|
$sql = "UPDATE t_receiverefacceptcourier SET
|
|
T_ReceiverefAcceptCourierStatus = 'RELEASEC',
|
|
T_ReceiverefAcceptCourierNote = '{$prm['trx_note']}',
|
|
T_ReceiverefAcceptCourierUserID = {$userid}
|
|
WHERE
|
|
T_ReceiverefAcceptCourierID = {$prm['trx']['trx_id']}";
|
|
//echo $sql;
|
|
$this->db_onedev->query($sql);
|
|
foreach($prm['detaildps'] as $k => $v){
|
|
$sqldp = "INSERT INTO f_dp_labreference
|
|
(F_DpLabReferenceDate,
|
|
F_DpLabReferenceM_CompanyID,
|
|
F_DpLabReferenceT_ReceiveReferenceHeaderID,
|
|
F_DpLabReferenceAmount,
|
|
F_DpLabReferenceUserID,
|
|
F_DpLabReferenceCreated,
|
|
F_DpLabReferenceLastUpdated)
|
|
VALUES
|
|
(now(),
|
|
'{$v['companyid']}',
|
|
'{$v['orderid']}',
|
|
'{$v['amount']}',
|
|
'{$userid}',
|
|
now(),
|
|
now())";
|
|
// echo $sqldp;
|
|
$r_dp = $this->db_onedev->query($sqldp);
|
|
}
|
|
foreach($prm['details'] as $k => $v){
|
|
$saveorderlab = $this->orderlab($v['T_ReceiverefAcceptCourierDetailID'],$v['T_ReceiverefAcceptCourierDetailT_ReceiverefAcceptCourierID'],$v['patient_age']);
|
|
$data_receivepatient = $this->db_onedev->query("SELECT T_ReceiveReferencePatientID
|
|
FROM t_receiverefacceptcourierdetail
|
|
LEFT JOIN t_receivereferencedeliverydetail ON T_ReceiverefAcceptCourierDetailT_ReceiveReferenceDeliveryDetID = T_ReceiveReferenceDeliveryDetailID
|
|
LEFT JOIN t_receivereferenceheader ON T_ReceiveReferenceDeliveryDetailT_ReceiveReferenceHeaderID = T_ReceiveReferenceHeaderID
|
|
LEFT JOIN t_receivereferencepatient ON T_ReceiveReferenceDeliveryDetailT_ReceiveReferencePatientID = T_ReceiveReferencePatientID
|
|
WHERE
|
|
T_ReceiverefAcceptCourierDetailT_ReceiverefAcceptCourierID = '{$v['T_ReceiverefAcceptCourierDetailT_ReceiverefAcceptCourierID']}'")->row();
|
|
// echo $data_receivepatient;
|
|
$sqlreceivepatient = "UPDATE t_receivereferencepatient SET
|
|
T_ReceiveReferencePatientT_OrderHeaderID = '{$saveorderlab->id}'
|
|
WHERE T_ReceiveReferencePatientID = {$v['T_ReceiveReferencePatientID']}";
|
|
// echo $sqlreceivepatient;
|
|
$r_receivepatient = $this->db_onedev->query($sqlreceivepatient);
|
|
|
|
array_push($data_rst,array(
|
|
'id'=>$saveorderlab->id,
|
|
'number'=>$saveorderlab->number,
|
|
'verification_patient'=>array(),
|
|
'verification_delivery'=>array(),
|
|
'verification_payment'=>array(),
|
|
'verification_supplies'=>array(),
|
|
'verification_barcode'=>array(),
|
|
'verification_companymou'=>array(),
|
|
'verification_px'=>array(),
|
|
'verification_info'=>array(),
|
|
'address_patient'=>array(),
|
|
'address_doctor'=>array()
|
|
));
|
|
|
|
if($saveorderlab){
|
|
$data_header = $this->db_onedev->query("SELECT * FROM t_orderheader WHERE T_OrderHeaderID = '{$saveorderlab->id}'")->row();
|
|
$sql = "INSERT INTO f_payment (
|
|
F_PaymentT_OrderHeaderID,
|
|
F_PaymentDate,
|
|
F_PaymentNote,
|
|
F_PaymentTotal,
|
|
F_PaymentCreated
|
|
)
|
|
VALUES(
|
|
{$saveorderlab->id},
|
|
CURDATE(),
|
|
'',
|
|
{$data_header->T_OrderHeaderTotal},
|
|
NOW()
|
|
)";
|
|
//echo $sql;
|
|
$r_pay = $this->db_onedev->query($sql);
|
|
$last_payment_id = $this->db_onedev->insert_id();
|
|
$last_payment_id = $this->db_onedev->query("SELECT F_PaymentID as id FROM f_payment WHERE F_PaymentT_OrderHeaderID = {$saveorderlab->id} AND F_PaymentIsActive = 'Y' LIMIT 1")->row()->id;
|
|
//echo $last_payment_id;
|
|
$sql = "INSERT INTO f_paymentdetail (
|
|
F_PaymentDetailF_PaymentID,
|
|
F_PaymentDetailM_PaymentTypeID,
|
|
F_PaymentDetailAmount,
|
|
F_PaymentDetailActual,
|
|
F_PaymentDetailCreated,
|
|
F_PaymentDetailUserID
|
|
)
|
|
VALUES(
|
|
{$last_payment_id},
|
|
{$v['paymenttype_id']},
|
|
{$v['T_ReceiveReferencePatientDPAmount']},
|
|
{$v['T_ReceiveReferencePatientDPAmount']},
|
|
NOW(),
|
|
{$userid}
|
|
)";
|
|
$this->db_onedev->query($sql);
|
|
|
|
//insert into barcode
|
|
|
|
$sql = "SELECT T_OrderHeaderLabNumber as labnumber, T_SampleTypeID as sampletypeid
|
|
FROM t_orderdetail
|
|
JOIN t_orderheader ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID
|
|
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
|
|
JOIN t_sampletype ON T_TestT_SampleTypeID = T_SampleTypeID
|
|
WHERE T_OrderHeaderID = {$saveorderlab->id} AND T_OrderDetailIsActive = 'Y'
|
|
GROUP BY T_SampleTypeID";
|
|
//echo $sql;
|
|
$dt_sampletype = $this->db_onedev->query($sql)->result();
|
|
foreach($dt_sampletype as $k => $v){
|
|
$barcode = $v->labnumber.'.'.$v->sampletypeid.'.1';
|
|
$sql = "INSERT INTO t_barcodelab (
|
|
T_BarcodeLabT_OrderHeaderID,
|
|
T_BarcodeLabBarcode,
|
|
T_BarcodeLabT_SampleTypeID,
|
|
T_BarcodeLabCreated,
|
|
T_BarcodeLabLastUpdated,
|
|
T_BarcodeLabUserID
|
|
)
|
|
VALUES(
|
|
{$saveorderlab->id},
|
|
'{$barcode}',
|
|
{$v->sampletypeid},
|
|
NOW(),
|
|
NOW(),
|
|
{$userid}
|
|
)";
|
|
//echo $sql;
|
|
$savebarcode = $this->db_onedev->query($sql);
|
|
if($savebarcode){
|
|
$barcodeid = $this->db_onedev->insert_id();
|
|
$sql = "SELECT *
|
|
FROM t_ordersample
|
|
WHERE
|
|
T_OrderSampleT_OrderHeaderID = {$saveorderlab->id} AND
|
|
T_OrderSampleT_SampleTypeID = {$v->sampletypeid} AND
|
|
T_OrderSampleT_BarcodeLabID = {$barcodeid} AND T_OrderSampleIsActive = 'Y'";
|
|
$ordersample = $this->db_onedev->query($sql)->row();
|
|
|
|
$sql = "UPDATE t_ordersample SET
|
|
T_OrderSampleSampling = 'Y',
|
|
T_OrderSampleSamplingDate = CURDATE(),
|
|
T_OrderSampleSamplingTime = CURTIME(),
|
|
T_OrderSampleSamplingUserID = {$userid},
|
|
T_OrderSampleReceive = 'Y',
|
|
T_OrderSampleReceiveDate = CURDATE(),
|
|
T_OrderSampleReceiveTime = CURTIME(),
|
|
T_OrderSampleReceiveUserID = {$userid},
|
|
T_OrderSampleVerification = 'Y',
|
|
T_OrderSampleVerificationDate = CURDATE(),
|
|
T_OrderSampleVerificationTime = CURTIME(),
|
|
T_OrderSampleVerificationUserID = {$userid}
|
|
WHERE
|
|
T_OrderSampleID = {$ordersample->T_OrderSampleID}";
|
|
$this->db_onedev->query($sql);
|
|
|
|
$sql = "SELECT *
|
|
FROM last_statussample
|
|
WHERE
|
|
Last_StatusSampleT_OrderHeaderID = {$saveorderlab->id} AND
|
|
Last_StatusSampleT_SampleTypeID = {$v->sampletypeid} AND
|
|
Last_StatusSampleBarcode = '{$ordersample->T_OrderSampleBarcode}' AND Last_StatusSampleIsActive = 'Y'";
|
|
$last_statussample = $this->db_onedev->query($sql)->row();
|
|
|
|
$sql = "UPDATE last_statussample SET
|
|
Last_StatusSampleM_StatusSampleID = '15',
|
|
Last_StatusSampleUserID = {$userid}
|
|
WHERE
|
|
Last_StatusSampleID = {$last_statussample->Last_StatusSampleID}";
|
|
$this->db_onedev->query($sql);
|
|
|
|
$sql = "INSERT INTO t_ordersampleaddon (
|
|
T_OrderSampleAddonT_OrderSampleID,
|
|
T_OrderSampleAddonVerificationSampleType,
|
|
T_OrderSampleAddonVerificationQuantity,
|
|
T_OrderSampleAddonVerificationQuality
|
|
|
|
)
|
|
VALUES(
|
|
{$ordersample->T_OrderSampleID},
|
|
'Y',
|
|
'Y',
|
|
'Y'
|
|
)";
|
|
|
|
$this->db_onedev->query($sql);
|
|
$sql = "INSERT INTO helper_order (
|
|
Helper_OrderT_OrderHeaderID,
|
|
Helper_OrderSamplingVerificationPhoto,
|
|
Helper_OrderCreated,
|
|
Helper_OrderLastUpdated,
|
|
Helper_OrderUserID
|
|
)
|
|
VALUES(
|
|
{$saveorderlab->id},
|
|
'Y',
|
|
NOW(),
|
|
NOW(),
|
|
{$userid}
|
|
)";
|
|
$this->db_onedev->query($sql);
|
|
|
|
$sql = "SELECT * FROM helper_sst WHERE Helper_SstT_OrderHeaderID = {$saveorderlab->id}";
|
|
//echo $sql;
|
|
$sample_per_station = $this->db_onedev->query($sql)->result();
|
|
foreach($sample_per_station as $k => $v){
|
|
$sql = "INSERT INTO t_sampling_queue_last_status(
|
|
T_SamplingQueueLastStatusT_SampleStationID,
|
|
T_SamplingQueueLastStatusT_OrderHeaderID,
|
|
T_SamplingQueueLastStatusT_SamplingQueueStatusID,
|
|
T_SamplingQueueLastStatusUserID
|
|
)
|
|
VALUES(
|
|
{$v->Helper_SstT_SampleStationID},
|
|
{$v->Helper_SstT_OrderHeaderID},
|
|
5,
|
|
{$userid}
|
|
)";
|
|
$ins_queue_sample = $this->db_onedev->query($sql);
|
|
$sql = "UPDATE helper_sst SET Helper_SstStatus = 'Y' WHERE Helper_SstID = {$v->Helper_SstID}";
|
|
$this->db_onedev->query($sql);
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
foreach($data_rst as $k=>$v){
|
|
$data_rst[$k]['verification_patient'] = $this->add_verification_patient($v['id']);
|
|
$data_rst[$k]['verification_doctor'] = $this->add_verification_doctor($v['id']);
|
|
$data_rst[$k]['verification_delivery'] = $this->add_verification_delivery($v['id']);
|
|
//$data_rst[$k]['verification_payment'] = $this->add_verification_payment($v['id']);
|
|
$data_rst[$k]['verification_supplies'] = $this->add_verification_supplies($v['id']);
|
|
$data_rst[$k]['verification_barcode'] = $this->add_verification_barcode($v['id']);
|
|
$data_rst[$k]['verification_companymou'] = $this->add_verification_companymou($v['id']);
|
|
$data_rst[$k]['verification_px'] = $this->add_verification_test($v['id']);
|
|
//$data_rst[$k]['verification_info'] = $this->add_verification_info($v['id']);
|
|
$data_rst[$k]['address_patient'] = $this->add_address_patient($v['id']);
|
|
$data_rst[$k]['address_doctor'] = $this->add_address_doctor($v['id']);
|
|
|
|
$saveverication = $this->savetrxverification($v['id'],$data_rst[$k]);
|
|
}
|
|
|
|
|
|
$result = array(
|
|
"total" => 1 ,
|
|
"records" => $data_rst
|
|
);
|
|
$this->sys_ok($result);
|
|
exit;
|
|
|
|
}
|
|
/***begin-verification***/
|
|
function add_address_patient($orderid){
|
|
$query =" SELECT M_PatientAddressID as id,
|
|
M_PatientAddressNote as note,
|
|
M_PatientAddressDescription as description,
|
|
M_PatientAddressM_KelurahanID as vilageid
|
|
FROM m_patientaddress
|
|
JOIN t_orderheader ON M_PatientAddressM_PatientID = T_OrderHeaderM_PatientID
|
|
WHERE
|
|
T_OrderHeaderID = {$orderid} AND M_PatientAddressIsActive = 'Y'
|
|
";
|
|
//echo $query;
|
|
$rows = $this->db_onedev->query($query)->result_array();
|
|
if($rows)
|
|
return $rows;
|
|
else
|
|
return array();
|
|
}
|
|
|
|
function add_address_doctor($orderid){
|
|
$query =" SELECT M_DoctorAddressID as id,
|
|
M_DoctorAddressNote as note,
|
|
M_DoctorAddressDescription as description,
|
|
M_DoctorAddressM_KelurahanID as vilageid
|
|
FROM m_doctoraddress
|
|
JOIN t_orderheader ON T_OrderHeaderSenderM_DoctorID = M_DoctorAddressM_DoctorID
|
|
WHERE
|
|
T_OrderHeaderID = {$orderid} AND M_DoctorAddressIsActive = 'Y'
|
|
";
|
|
//echo $query;
|
|
$rows = $this->db_onedev->query($query)->result_array();
|
|
if($rows)
|
|
return $rows;
|
|
else
|
|
return array();
|
|
}
|
|
|
|
function add_verification_patient($orderid){
|
|
$query =" SELECT Fo_VerificationsLabelID as id,
|
|
0 as xid,
|
|
'Y' as chex,
|
|
'' as note,
|
|
Fo_VerificationsLabelName as label
|
|
FROM fo_verificationslabel
|
|
LEFT JOIN fo_verificationsvalue ON Fo_VerificationsValueFo_VerificationsLabelID = Fo_VerificationsLabelID AND Fo_VerificationsValueT_OrderHeaderID = $orderid
|
|
WHERE
|
|
Fo_VerificationsLabelID = 1 AND Fo_VerificationsLabelIsActive = 'Y'
|
|
GROUP BY Fo_VerificationsLabelID
|
|
";
|
|
//echo $query;
|
|
$rows = $this->db_onedev->query($query)->result_array();
|
|
foreach($rows as $k => $v){
|
|
if($v['chex'] == 'N')
|
|
$rows[$k]['chex'] = false;
|
|
else
|
|
$rows[$k]['chex'] = true;
|
|
}
|
|
return $rows;
|
|
}
|
|
|
|
function add_verification_doctor($orderid){
|
|
$query =" SELECT Fo_VerificationsLabelID as id,
|
|
0 as xid,
|
|
'Y' as chex,
|
|
'' as note,
|
|
Fo_VerificationsLabelName as label
|
|
FROM fo_verificationslabel
|
|
LEFT JOIN fo_verificationsvalue ON Fo_VerificationsValueFo_VerificationsLabelID = Fo_VerificationsLabelID AND Fo_VerificationsValueT_OrderHeaderID = $orderid
|
|
WHERE
|
|
Fo_VerificationsLabelID = 2 AND Fo_VerificationsLabelIsActive = 'Y'
|
|
GROUP BY Fo_VerificationsLabelID
|
|
";
|
|
$rows = $this->db_onedev->query($query)->result_array();
|
|
foreach($rows as $k => $v){
|
|
if($v['chex'] == 'N')
|
|
$rows[$k]['chex'] = false;
|
|
else
|
|
$rows[$k]['chex'] = true;
|
|
}
|
|
return $rows;
|
|
}
|
|
|
|
function add_verification_companymou($orderid){
|
|
$query =" SELECT Fo_VerificationsLabelID as id,
|
|
0 as xid,
|
|
'Y' as chex,
|
|
'' as note,
|
|
Fo_VerificationsLabelName as label
|
|
FROM fo_verificationslabel
|
|
LEFT JOIN fo_verificationsvalue ON Fo_VerificationsValueFo_VerificationsLabelID = Fo_VerificationsLabelID AND Fo_VerificationsValueT_OrderHeaderID = $orderid
|
|
WHERE
|
|
Fo_VerificationsLabelID = 3 AND Fo_VerificationsLabelIsActive = 'Y'
|
|
GROUP BY Fo_VerificationsLabelID
|
|
";
|
|
$rows = $this->db_onedev->query($query)->result_array();
|
|
foreach($rows as $k => $v){
|
|
if($v['chex'] == 'N')
|
|
$rows[$k]['chex'] = false;
|
|
else
|
|
$rows[$k]['chex'] = true;
|
|
}
|
|
return $rows;
|
|
}
|
|
|
|
function add_verification_payment($orderid){
|
|
$query =" SELECT Fo_VerificationsLabelID as id,
|
|
0 as xid,
|
|
'Y' as chex,
|
|
'' as note,
|
|
Fo_VerificationsLabelName as label,
|
|
'reguler' as type
|
|
FROM fo_verificationslabel
|
|
LEFT JOIN fo_verificationsvalue ON Fo_VerificationsValueFo_VerificationsLabelID = Fo_VerificationsLabelID AND Fo_VerificationsValueT_OrderHeaderID = $orderid
|
|
WHERE
|
|
Fo_VerificationsLabelButton = 'PAYMENT' AND Fo_VerificationsLabelIsActive = 'Y'
|
|
GROUP BY Fo_VerificationsLabelID
|
|
";
|
|
$rows = $this->db_onedev->query($query)->result_array();
|
|
foreach($rows as $k => $v){
|
|
if($v['chex'] == 'N')
|
|
$rows[$k]['chex'] = false;
|
|
else
|
|
$rows[$k]['chex'] = true;
|
|
}
|
|
return $rows;
|
|
}
|
|
|
|
function add_verification_supplies($orderid){
|
|
$query =" SELECT M_SuppliesID as id,
|
|
0 as xid,
|
|
'Y' as chex,
|
|
1 as qty,
|
|
M_SuppliesName as name,
|
|
IF(ISNULL(T_OrderSuppliesID),NOW(),T_OrderSuppliesLastUpdated) as lastupdated,
|
|
IF(ISNULL(T_OrderSuppliesID),NOW(),T_OrderSuppliesLastUpdated) as tx_lastupdated
|
|
FROM m_supplies
|
|
LEFT JOIN t_ordersupplies ON T_OrderSuppliesT_OrderHeaderID = $orderid AND T_OrderSuppliesM_SuppliesID = M_SuppliesID
|
|
WHERE
|
|
M_SuppliesIsActive = 'Y'
|
|
";
|
|
//echo $query ;
|
|
$rows = $this->db_onedev->query($query)->result_array();
|
|
foreach($rows as $k => $v){
|
|
if($v['chex'] == 'N')
|
|
$rows[$k]['chex'] = false;
|
|
else
|
|
$rows[$k]['chex'] = true;
|
|
}
|
|
return $rows;
|
|
}
|
|
|
|
|
|
function add_verification_barcode($orderid){
|
|
$query =" SELECT T_SampleTypeID as id,
|
|
T_SampleTypeName as name,
|
|
'' as children
|
|
FROM t_orderheader
|
|
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID
|
|
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
|
|
JOIN t_sampletype ON T_TestT_SampleTypeID = T_SampleTypeID
|
|
WHERE
|
|
T_OrderHeaderID = {$orderid}
|
|
GROUP BY T_SampleTypeID
|
|
";
|
|
// echo $query ;
|
|
$rows = $this->db_onedev->query($query)->result();
|
|
foreach($rows as $k => $v){
|
|
$query = "SELECT T_SampleTypeID as id, 0 as xid,
|
|
'Y' as chex,
|
|
T_TestName as testname,
|
|
T_SampleTypeName as samplename,
|
|
IF(ISNULL(T_BarcodeLabID),CONCAT(T_OrderHeaderLabNumber,'.',T_SampleTypeID,'.',1),T_BarcodeLabBarcode) as barcodenumber
|
|
FROM t_orderdetail
|
|
JOIN t_orderheader ON T_OrderHeaderID = T_OrderDetailT_OrderHeaderID
|
|
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
|
|
JOIN t_sampletype ON T_TestT_SampleTypeID = T_SampleTypeID
|
|
LEFT JOIN t_barcodelab ON T_BarcodeLabT_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND
|
|
T_BarcodeLabT_SampleTypeID = T_TestT_SampleTypeID AND T_BarcodeLabIsActive = 'Y'
|
|
WHERE
|
|
T_OrderDetailT_OrderHeaderID = {$orderid} AND T_SampleTypeID = {$v->id}
|
|
GROUP BY T_BarcodeLabID ";
|
|
$v->children = $this->db_onedev->query($query)->result_array();
|
|
foreach($v->children as $ki => $vi){
|
|
if($vi['chex'] == 'N')
|
|
$v->children[$ki]['chex'] = false;
|
|
else
|
|
$v->children[$ki]['chex'] = true;
|
|
}
|
|
}
|
|
return $rows;
|
|
}
|
|
|
|
function add_verification_delivery($orderid){
|
|
$query =" SELECT T_OrderDeliveryID as id,
|
|
0 as xid,
|
|
M_DeliveryTypeCode as code,
|
|
'Y' as chex,
|
|
M_DeliveryID as deliveryid,
|
|
M_DeliveryTypeID as typedeliveryid,
|
|
T_OrderDeliveryM_KelurahanID as vilageid,
|
|
IF(ISNULL(Fo_VerificationDeliveryID),'',Fo_VerificationDeliveryReason) as note,
|
|
'reguler' as type,
|
|
CASE
|
|
WHEN T_OrderDeliveryM_DeliveryID = 1 THEN M_DeliveryName
|
|
WHEN T_OrderDeliveryM_DeliveryID = 4 THEN CONCAT(M_DeliveryName, ' : ', M_DoctorAddressDescription)
|
|
WHEN T_OrderDeliveryM_DeliveryID = 2 THEN CONCAT(M_DeliveryName, ' : ', M_PatientAddressDescription)
|
|
WHEN ( T_OrderDeliveryM_DeliveryID = 7 OR T_OrderDeliveryM_DeliveryID = 9 ) THEN CONCAT(M_DeliveryName, ' : ', M_DoctorHP)
|
|
WHEN ( T_OrderDeliveryM_DeliveryID = 6 OR T_OrderDeliveryM_DeliveryID = 8 ) THEN CONCAT(M_DeliveryName, ' : ', M_PatientHP)
|
|
ELSE
|
|
CONCAT(M_DeliveryName,' : ',T_OrderDeliveryDestination)
|
|
END as label,
|
|
CASE
|
|
WHEN T_OrderDeliveryM_DeliveryID = 1 THEN ''
|
|
WHEN T_OrderDeliveryM_DeliveryID = 4 THEN M_DoctorAddressDescription
|
|
WHEN T_OrderDeliveryM_DeliveryID = 2 THEN M_PatientAddressDescription
|
|
WHEN ( T_OrderDeliveryM_DeliveryID = 7 OR T_OrderDeliveryM_DeliveryID = 9 ) THEN M_DoctorHP
|
|
WHEN ( T_OrderDeliveryM_DeliveryID = 6 OR T_OrderDeliveryM_DeliveryID = 8 ) THEN M_PatientHP
|
|
ELSE
|
|
T_OrderDeliveryDestination
|
|
END as destination,
|
|
CASE
|
|
WHEN T_OrderDeliveryM_DeliveryID = 4 THEN M_DoctorAddressID
|
|
WHEN T_OrderDeliveryM_DeliveryID = 2 THEN M_PatientAddressID
|
|
ELSE
|
|
0
|
|
END as addressid
|
|
FROM t_orderdelivery
|
|
JOIN t_orderheader ON T_OrderDeliveryT_OrderHeaderID = T_OrderHeaderID
|
|
JOIN m_delivery ON T_OrderDeliveryM_DeliveryID = M_DeliveryID
|
|
JOIN m_deliverytype ON T_OrderDeliveryM_DeliveryTypeID = M_DeliveryTypeID
|
|
LEFT JOIN m_doctoraddress ON T_OrderDeliveryAddressID = M_DoctorAddressID AND T_OrderDeliveryM_DeliveryID = 4
|
|
LEFT JOIN m_patientaddress ON T_OrderDeliveryAddressID = M_PatientAddressID AND T_OrderDeliveryM_DeliveryID = 2
|
|
LEFT JOIN fo_verification_delivery ON Fo_VerificationDeliveryT_OrderHeaderID = T_OrderDeliveryT_OrderHeaderID AND Fo_VerificationDeliveryIsActive = 'Y'
|
|
LEFT JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID AND ( T_OrderDeliveryM_DeliveryID = 7 OR T_OrderDeliveryM_DeliveryID = 9 )
|
|
LEFT JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND ( T_OrderDeliveryM_DeliveryID = 6 OR T_OrderDeliveryM_DeliveryID = 8 )
|
|
WHERE
|
|
T_OrderDeliveryT_OrderHeaderID = {$orderid} AND T_OrderDeliveryIsActive = 'Y'
|
|
GROUP BY T_OrderDeliveryID
|
|
UNION
|
|
SELECT 0 as id,
|
|
0 as xid,
|
|
M_DeliveryTypeCode as code,
|
|
'Y' as chex,
|
|
Fo_VerificationDeliveryAddM_DeliveryID as deliveryid,
|
|
Fo_VerificationDeliveryAddM_DeliveryTypeID as typedeliveryid,
|
|
Fo_VerificationDeliveryAddM_KelurahanID as vilageid,
|
|
IF(ISNULL(Fo_VerificationDeliveryAddID),'',Fo_VerificationDeliveryAddReason) as note,
|
|
'reguler' as type,
|
|
CASE
|
|
WHEN Fo_VerificationDeliveryAddM_DeliveryID = 1 THEN M_DeliveryName
|
|
WHEN Fo_VerificationDeliveryAddM_DeliveryID = 4 THEN CONCAT(M_DeliveryName, ' : ', M_DoctorAddressDescription)
|
|
WHEN Fo_VerificationDeliveryAddM_DeliveryID = 2 THEN CONCAT(M_DeliveryName, ' : ', M_PatientAddressDescription)
|
|
WHEN ( Fo_VerificationDeliveryAddM_DeliveryID = 7 OR Fo_VerificationDeliveryAddM_DeliveryID = 9 ) THEN CONCAT(M_DeliveryName, ' : ', M_DoctorHP)
|
|
WHEN ( Fo_VerificationDeliveryAddM_DeliveryID = 6 OR Fo_VerificationDeliveryAddM_DeliveryID = 8 ) THEN CONCAT(M_DeliveryName, ' : ', M_PatientHP)
|
|
ELSE
|
|
CONCAT(M_DeliveryName,' : ',Fo_VerificationDeliveryAddDestination)
|
|
END as label,
|
|
CASE
|
|
WHEN Fo_VerificationDeliveryAddM_DeliveryID = 1 THEN ''
|
|
WHEN Fo_VerificationDeliveryAddM_DeliveryID = 4 THEN M_DoctorAddressDescription
|
|
WHEN Fo_VerificationDeliveryAddM_DeliveryID = 2 THEN M_PatientAddressDescription
|
|
WHEN ( Fo_VerificationDeliveryAddM_DeliveryID = 7 OR Fo_VerificationDeliveryAddM_DeliveryID = 9 ) THEN M_DoctorHP
|
|
WHEN ( Fo_VerificationDeliveryAddM_DeliveryID = 6 OR Fo_VerificationDeliveryAddM_DeliveryID = 8 ) THEN M_PatientHP
|
|
ELSE
|
|
Fo_VerificationDeliveryAddDestination
|
|
END as destination,
|
|
CASE
|
|
WHEN Fo_VerificationDeliveryAddM_DeliveryID = 4 THEN M_DoctorAddressID
|
|
WHEN Fo_VerificationDeliveryAddM_DeliveryID = 2 THEN M_PatientAddressID
|
|
ELSE
|
|
0
|
|
END as addressid
|
|
FROM fo_verification_delivery_add
|
|
JOIN t_orderheader ON Fo_VerificationDeliveryAddT_OrderHeaderID = T_OrderHeaderID
|
|
JOIN m_delivery ON Fo_VerificationDeliveryAddM_DeliveryID = M_DeliveryID
|
|
JOIN m_deliverytype ON Fo_VerificationDeliveryAddM_DeliveryTypeID = M_DeliveryTypeID
|
|
LEFT JOIN m_doctoraddress ON Fo_VerificationDeliveryAddAddressID = M_DoctorAddressID AND Fo_VerificationDeliveryAddM_DeliveryID = 4
|
|
LEFT JOIN m_patientaddress ON Fo_VerificationDeliveryAddAddressID = M_PatientAddressID AND Fo_VerificationDeliveryAddM_DeliveryID = 2
|
|
LEFT JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID AND ( Fo_VerificationDeliveryAddM_DeliveryID = 7 OR Fo_VerificationDeliveryAddM_DeliveryID = 9 )
|
|
LEFT JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND ( Fo_VerificationDeliveryAddM_DeliveryID = 6 OR Fo_VerificationDeliveryAddM_DeliveryID = 8 )
|
|
WHERE
|
|
Fo_VerificationDeliveryAddT_OrderHeaderID = {$orderid} AND Fo_VerificationDeliveryAddIsActive = 'Y'
|
|
";
|
|
//echo $query ;
|
|
$rows = $this->db_onedev->query($query)->result_array();
|
|
foreach($rows as $k => $v){
|
|
if($v['chex'] == 'N')
|
|
$rows[$k]['chex'] = false;
|
|
else
|
|
$rows[$k]['chex'] = true;
|
|
}
|
|
return $rows;
|
|
}
|
|
|
|
function add_verification_test($orderid){
|
|
$query =" SELECT * FROM (
|
|
SELECT T_OrderDetailID as id,
|
|
0 as xid,
|
|
'Y' as chex,
|
|
IF(ISNULL(Fo_VerificationTestID),'',Fo_VerificationTestReason) as note,
|
|
T_TestID as pxid,
|
|
T_TestName as pxname,
|
|
T_OrderDetailIsCito as flagcito,
|
|
T_OrderDetailPrice as bruto,
|
|
T_OrderDetailDiscTotal as discount,
|
|
T_OrderDetailTotal as total,
|
|
'N' as addon
|
|
FROM t_orderdetail
|
|
JOIN t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsPrice = 'Y'
|
|
LEFT JOIN fo_verification_test ON Fo_VerificationTestT_OrderDetailID = T_OrderDetailID
|
|
WHERE
|
|
T_OrderDetailT_OrderHeaderID = $orderid AND T_OrderDetailIsActive = 'Y'
|
|
UNION
|
|
SELECT 0 as id,
|
|
IFNULL(Fo_VerificationTestAddID,0) as xid,
|
|
IF(ISNULL(Fo_VerificationTestAddIsOK),'N',Fo_VerificationTestAddIsOK) as chex,
|
|
'' as note,
|
|
Fo_VerificationTestAddT_TestID as pxid,
|
|
T_TestName as pxname,
|
|
Fo_VerificationTestAddIsCito as flagcito,
|
|
Fo_VerificationTestAddBruto as bruto,
|
|
Fo_VerificationTestAddDiscount as discount,
|
|
Fo_VerificationTestAddTotal as total,
|
|
'N' as addon
|
|
FROM fo_verification_test_add
|
|
JOIN t_test ON Fo_VerificationTestAddT_TestID = T_TestID
|
|
WHERE
|
|
Fo_VerificationTestAddT_OrderHeaderID = $orderid AND Fo_VerificationTestAddIsActive = 'Y' ) x
|
|
GROUP BY pxid
|
|
";
|
|
//echo $query ;
|
|
$rows = $this->db_onedev->query($query)->result_array();
|
|
foreach($rows as $k => $v){
|
|
if($v['chex'] == 'N')
|
|
$rows[$k]['chex'] = false;
|
|
else
|
|
$rows[$k]['chex'] = true;
|
|
|
|
if($v['addon'] == 'N')
|
|
$rows[$k]['addon'] = false;
|
|
else
|
|
$rows[$k]['addon'] = true;
|
|
}
|
|
return $rows;
|
|
}
|
|
|
|
function add_verification_info($orderid){
|
|
$query =" SELECT Fo_VerificationsLabelID as id,
|
|
0 as xid,
|
|
'Y' as chex,
|
|
IF(ISNULL(Fo_VerificationID),'',Fo_VerificationReason) as note,
|
|
Fo_VerificationsLabelName as label
|
|
FROM fo_verificationslabel
|
|
LEFT JOIN fo_verificationsvalue ON Fo_VerificationsValueFo_VerificationsLabelID = Fo_VerificationsLabelID AND Fo_VerificationsValueT_OrderHeaderID = $orderid
|
|
WHERE
|
|
Fo_VerificationsLabelButton = 'INFO' AND Fo_VerificationsLabelIsActive = 'Y'
|
|
GROUP BY Fo_VerificationsLabelID
|
|
";
|
|
//echo $query;
|
|
$rows = $this->db_onedev->query($query)->result_array();
|
|
foreach($rows as $k => $v){
|
|
if($v['chex'] == 'N')
|
|
$rows[$k]['chex'] = false;
|
|
else
|
|
$rows[$k]['chex'] = true;
|
|
}
|
|
return $rows;
|
|
}
|
|
|
|
|
|
public function savetrxverification($orderid,$prm)
|
|
{
|
|
try {
|
|
//print_r($prm);
|
|
//# cek token valid
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$xuserid = $this->sys_user["M_UserID"];
|
|
//# ambil parameter input
|
|
|
|
//print_r($xprm);
|
|
//$prm = $xprm['patient'];
|
|
$fostatusid = 3;
|
|
$fologcode = 'FO.VERIFICATION.CONFIRM';
|
|
|
|
|
|
|
|
//print_r($prm);
|
|
$xverificationnote = $prm['verification_note'];
|
|
//echo $xverificationnote;
|
|
$id = $orderid;
|
|
/*$sql = "update t_orderheader
|
|
set
|
|
T_OrderHeaderVerificationNote = ''
|
|
where
|
|
T_OrderHeaderID = $id";
|
|
//echo $sql;
|
|
$query = $this->db_onedev->query($sql);*/
|
|
|
|
//print_r($prm['verification_patient']);
|
|
$xverification_patient = $this->saveverifications($id,$prm['verification_patient'],'PASIEN',$xuserid);
|
|
$xverification_doctor = $this->saveverifications($id,$prm['verification_doctor'],'ORDER',$xuserid);
|
|
$xverification_companymou = $this->saveverifications($id,$prm['verification_companymou'],'ORDER',$xuserid);
|
|
//$xverification_payment = $this->saveverifications($id,$prm['verification_payment'],'PAYMENT',$xuserid);
|
|
//$xverification_info = $this->saveverifications($id,$prm['verification_info'],'INFO',$xuserid);
|
|
|
|
$xverification_delivery = $this->saveverification_delivery($id,$prm['verification_delivery'],$xuserid);
|
|
$xverification_px = $this->saveverification_px($id,$prm['verification_px'],$xuserid);
|
|
|
|
$sql = "insert into fo_status(
|
|
Fo_StatusDate,
|
|
Fo_StatusT_OrderHeaderID,
|
|
Fo_StatusM_StatusID,
|
|
Fo_StatusM_UserID,
|
|
Fo_StatusCreated,
|
|
Fo_StatusUpdated)
|
|
values( now(), ?, ?, ?, now(),now())";
|
|
//echo $sql;
|
|
$query = $this->db_onedev->query($sql,
|
|
array(
|
|
$id,
|
|
$fostatusid,
|
|
$xuserid
|
|
)
|
|
);
|
|
//echo $this->db_onedev->last_query();
|
|
if (!$query) {
|
|
$this->sys_error_db("fo_status insert");
|
|
exit;
|
|
}
|
|
|
|
|
|
$data_log = array();
|
|
$data_log['orderid'] = $id;
|
|
$data_log['verification_patient'] = $prm['verification_patient'];
|
|
$data_log['verification_doctor'] = $prm['verification_doctor'];
|
|
$data_log['verification_companymou'] = $prm['verification_companymou'];
|
|
$data_log['verification_payment'] = $prm['verification_payment'];
|
|
$data_log['verification_info'] = $prm['verification_info'];
|
|
$data_log['verification_px'] = $prm['verification_px'];
|
|
$data_log['verification_delivery'] = $prm['verification_delivery'];
|
|
|
|
$json_dt_log = json_encode($data_log);
|
|
$sql = "insert into one_log.log_fo(
|
|
Log_FoDate,
|
|
Log_FoCode,
|
|
Log_FoJson,
|
|
Log_FoUserID)
|
|
values( now(), ?, ?, ?)";
|
|
//echo $sql;
|
|
$query = $this->db_onedev->query($sql,
|
|
array(
|
|
$fologcode,
|
|
$json_dt_log,
|
|
$xuserid
|
|
)
|
|
);
|
|
|
|
if (!$query) {
|
|
$this->sys_error_db("one_log.fo_log insert");
|
|
exit;
|
|
}
|
|
|
|
if($xstatus == 'Y'){
|
|
$msg = 'Verifikasi berhasil dilakukan';
|
|
}
|
|
else{
|
|
$msg = 'Tolak Verifikasi berhasil dilakukan';
|
|
$sql = "INSERT INTO t_ordermessage (
|
|
T_OrderMessageT_OrderHeaderID,
|
|
T_OrderMessageType,
|
|
T_OrderMessageMessage,
|
|
T_OrderMessageFromUserID,
|
|
T_OrderMessageCreated,
|
|
T_OrderMessageLastUpdated
|
|
)
|
|
VALUES(
|
|
{$id},
|
|
'FO.VERIFICATION.REJECT',
|
|
'{$xverificationnote}',
|
|
{$xuserid},
|
|
NOW(),
|
|
NOW()
|
|
)";
|
|
//echo $sql;
|
|
$query = $this->db_onedev->query($sql);
|
|
if (!$query) {
|
|
$this->sys_error_db("one_log.t_ordermessage insert");
|
|
exit;
|
|
}
|
|
}
|
|
|
|
|
|
return rows;
|
|
} catch(Exception $exc) {
|
|
$message = $exc->getMessage();
|
|
$this->sys_error($message);
|
|
}
|
|
|
|
}
|
|
|
|
function saveverifications($id,$verifications,$type,$userid)
|
|
{
|
|
try {
|
|
//$xverificationtypeid = $this->db_onedev->query("SELECT * FROM fo_verificationslabel WHERE Fo_VerificationsLabelButton = '{$type}' AND Fo_VerificationsLabelIsActive = 'Y'")->row()->Fo_VerificationsLabelID;
|
|
//echo $xverificationtypeid;
|
|
//print_r($verifications);
|
|
foreach($verifications as $k => $v){
|
|
//print_r($v);
|
|
if($v['xid'] === 0 || $v['xid'] === '0'){
|
|
$sql = "insert into fo_verificationsvalue(
|
|
Fo_VerificationsValueT_OrderHeaderID,
|
|
Fo_VerificationsValueFo_VerificationsLabelID,
|
|
Fo_VerificationsValueCheck,
|
|
Fo_VerificationsValueNote,
|
|
Fo_VerificationsValueCreated,
|
|
Fo_VerificationsValueLastUpdated,
|
|
Fo_VerificationsValueUserID)
|
|
values( ?, ?, ?, ?, now(),now(),?)";
|
|
//echo $sql;
|
|
$query = $this->db_onedev->query($sql,
|
|
array(
|
|
$id,
|
|
$v['id'],
|
|
$v['chex'] == true ?'Y':'N',
|
|
$v['note'],
|
|
$userid
|
|
)
|
|
);
|
|
//echo $this->db_onedev->last_query();
|
|
//echo "///////////////////////";
|
|
if (!$query) {
|
|
$this->sys_error_db("fo_verificationsvalue insert");
|
|
exit;
|
|
}
|
|
}
|
|
}
|
|
return true;
|
|
|
|
} catch(Exception $exc) {
|
|
$message = $exc->getMessage();
|
|
$this->sys_error($message);
|
|
}
|
|
}
|
|
|
|
function saveverification_delivery($id,$deliveries,$userid)
|
|
{
|
|
try {
|
|
foreach($deliveries as $k => $v){
|
|
if($v['id'] === 0){
|
|
$sql = "insert into fo_verification_delivery_add(
|
|
Fo_VerificationDeliveryAddT_OrderHeaderID,
|
|
Fo_VerificationDeliveryAddM_DeliveryID,
|
|
Fo_VerificationDeliveryAddM_DeliveryTypeID,
|
|
Fo_VerificationDeliveryAddDestination,
|
|
Fo_VerificationDeliveryAddAddressID,
|
|
Fo_VerificationDeliveryAddM_KelurahanID,
|
|
Fo_VerificationDeliveryAddOK,
|
|
Fo_VerificationDeliveryAddReason,
|
|
Fo_VerificationDeliveryAddCreated,
|
|
Fo_VerificationDeliveryAddLastUpdated,
|
|
Fo_VerificationDeliveryAddUserID)
|
|
values( ?, ?, ?, ?,?,?,?,?, now(),now(),?)";
|
|
//echo $sql;
|
|
$query = $this->db_onedev->query($sql,
|
|
array(
|
|
$id,
|
|
$v['deliveryid'],
|
|
$v['typedeliveryid'],
|
|
$v['destination'],
|
|
$v['addressid'],
|
|
$v['vilageid'],
|
|
$v['chex'] == true ?'Y':'N',
|
|
$v['note'],
|
|
$userid
|
|
)
|
|
);
|
|
if (!$query) {
|
|
echo $this->db_onedev->last_query();
|
|
$this->sys_error_db("fo_verification_delivery_add insert");
|
|
exit;
|
|
}
|
|
|
|
}else{
|
|
$sql = "insert into fo_verification_delivery(
|
|
Fo_VerificationDeliveryT_OrderHeaderID,
|
|
Fo_VerificationDeliveryT_OrderDeliveryID,
|
|
Fo_VerificationDeliveryIsOK,
|
|
Fo_VerificationDeliveryReason,
|
|
Fo_VerificationDeliveryCreated,
|
|
Fo_VerificationDeliveryLastUpdated,
|
|
Fo_VerificationDeliveryUserID)
|
|
values( ?, ?, ?, ?, now(),now(),?)";
|
|
//echo $sql;
|
|
$query = $this->db_onedev->query($sql,
|
|
array(
|
|
$id,
|
|
$v['id'],
|
|
$v['chex'] == true ?'Y':'N',
|
|
$v['note'],
|
|
$userid
|
|
)
|
|
);
|
|
if (!$query) {
|
|
echo $this->db_onedev->last_query();
|
|
$this->sys_error_db("fo_verification_delivery insert");
|
|
exit;
|
|
}
|
|
//echo $this->db_onedev->last_query();
|
|
}
|
|
}
|
|
return true;
|
|
|
|
} catch(Exception $exc) {
|
|
$message = $exc->getMessage();
|
|
$this->sys_error($message);
|
|
}
|
|
}
|
|
|
|
function saveverification_px($id,$pxs,$userid)
|
|
{
|
|
try {
|
|
foreach($pxs as $k => $v){
|
|
|
|
if(intval($v['id']) == 0){
|
|
$cxh = $v['chex'] == true ?'Y':'N';
|
|
$sql = "insert into fo_verification_test_add(
|
|
Fo_VerificationTestAddT_OrderHeaderID,
|
|
Fo_VerificationTestAddT_TestID,
|
|
Fo_VerificationTestAddBruto,
|
|
Fo_VerificationTestAddDiscount,
|
|
Fo_VerificationTestAddTotal,
|
|
Fo_VerificationTestAddIsOK,
|
|
Fo_VerificationTestAddIsCito,
|
|
Fo_VerificationTestAddCreated,
|
|
Fo_VerificationTestAddLastUpdated,
|
|
Fo_VerificationTestAddUserID)
|
|
values( $id, {$v['pxid']}, {$v['bruto']}, {$v['discount']},{$v['total']},'{$cxh}','{$v['flagcito']}',now(),now(),{$userid})";
|
|
//echo $sql;
|
|
$query = $this->db_onedev->query($sql);
|
|
//echo $this->db_onedev->last_query();
|
|
if (!$query) {
|
|
$this->sys_error_db("fo_verification_test_add insert");
|
|
exit;
|
|
}
|
|
}else{
|
|
$sql = "insert into fo_verification_test(
|
|
Fo_VerificationTestT_OrderHeaderID,
|
|
Fo_VerificationTestT_OrderDetailID,
|
|
Fo_VerificationTestIsOK,
|
|
Fo_VerificationTestReason,
|
|
Fo_VerificationTestCreated,
|
|
Fo_VerificationTestLastUpdated,
|
|
Fo_VerificationTestUserID)
|
|
values( ?, ?, ?, ?, now(),now(),?)";
|
|
//echo $sql;
|
|
$query = $this->db_onedev->query($sql,
|
|
array(
|
|
$id,
|
|
$v['id'],
|
|
$v['chex'] == true ?'Y':'N',
|
|
$v['note'],
|
|
$userid
|
|
)
|
|
);
|
|
//echo $this->db_onedev->last_query();
|
|
if (!$query) {
|
|
$this->sys_error_db("fo_verification_test insert");
|
|
exit;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
return true;
|
|
|
|
} catch(Exception $exc) {
|
|
$message = $exc->getMessage();
|
|
$this->sys_error($message);
|
|
}
|
|
}
|
|
|
|
|
|
/***end-verification***/
|
|
function orderlab($orderdetail_id,$order_id,$patientage){
|
|
//$order_id = $prm['orderid'];
|
|
//$patientage = $prm['patientage'];
|
|
$userid = $this->sys_user["M_UserID"];
|
|
/***t_orderheader***/
|
|
$sql = "SELECT t_receivereferenceheader.* ,t_receivereferencepatient.*, m_company.*,M_PatientAddressID, M_DoctorAddressID
|
|
FROM t_receiverefacceptcourierdetail
|
|
LEFT JOIN t_receivereferencedeliverydetail ON T_ReceiverefAcceptCourierDetailT_ReceiveReferenceDeliveryDetID = T_ReceiveReferenceDeliveryDetailID
|
|
LEFT JOIN t_receivereferenceheader ON T_ReceiveReferenceDeliveryDetailT_ReceiveReferenceHeaderID = T_ReceiveReferenceHeaderID
|
|
LEFT JOIN t_receivereferencepatient ON T_ReceiveReferenceDeliveryDetailT_ReceiveReferencePatientID = T_ReceiveReferencePatientID
|
|
LEFT JOIN m_company ON T_ReceiveReferenceHeaderM_CompanyID = M_CompanyID
|
|
LEFT JOIN m_patient ON T_ReceiveReferencePatientM_PatientID = M_PatientID
|
|
LEFT JOIN m_patientaddress ON M_PatientID = M_PatientAddressM_PatientID
|
|
LEFT JOIN m_doctor ON M_CompanyM_DoctorID = M_DoctorID
|
|
LEFT JOIN m_doctoraddress ON M_DoctorID = M_DoctorAddressM_DoctorID AND M_DoctorAddressIsActive = 'Y' AND M_DoctorAddressDeliveryDefault = 'Y'
|
|
WHERE
|
|
T_ReceiverefAcceptCourierDetailID = '{$orderdetail_id}'";
|
|
//echo $sql;
|
|
$query = $this->db_onedev->query($sql);
|
|
if (!$query) {
|
|
$this->sys_error_db("select t_receiverefacceptcourierdetail", $this->db_onedev);
|
|
exit;
|
|
}
|
|
$data_order = $query->row_array();
|
|
$xheader = array(
|
|
'patient_id' => $data_order['T_ReceiveReferencePatientM_PatientID'],
|
|
'age' => $patientage,
|
|
'sender_doctor_id' => $data_order['M_CompanyM_DoctorID'],
|
|
'sender_address_id' => $data_order['M_DoctorAddressID'],
|
|
'company_id' => $data_order['T_ReceiveReferenceHeaderM_CompanyID'],
|
|
'mou_id' => $data_order['T_ReceiveReferenceHeaderM_MouID'],
|
|
'lang_id' => '1',
|
|
'lang_si' => 'N',
|
|
'doctor_note' => '',
|
|
'fo_note' => '',
|
|
'queue' => '',
|
|
'received_sample' => 'N',
|
|
'lang_id_2' => '2',
|
|
'lang_si_2' => 'N',
|
|
);
|
|
|
|
$xdelivery = array();
|
|
$query = " SELECT t_receivereferenceheader.*,M_CompanyAddress
|
|
FROM t_receiverefacceptcourierdetail
|
|
LEFT JOIN t_receivereferencedeliverydetail ON T_ReceiverefAcceptCourierDetailT_ReceiveReferenceDeliveryDetID = T_ReceiveReferenceDeliveryDetailID
|
|
LEFT JOIN t_receivereferenceheader ON T_ReceiveReferenceDeliveryDetailT_ReceiveReferenceHeaderID = T_ReceiveReferenceHeaderID
|
|
LEFT JOIN m_company ON T_ReceiveReferenceHeaderM_CompanyID = M_CompanyID
|
|
WHERE
|
|
T_ReceiverefAcceptCourierDetailID = '{$orderdetail_id}'";
|
|
//echo $query;
|
|
$delver = $this->db_onedev->query($query)->result_array();
|
|
foreach($delver as $k => $v){
|
|
$xdel = array(
|
|
'address_id' => $v['T_ReceiveReferenceHeaderM_CompanyID'],
|
|
'delivery_id' => '10',
|
|
'delivery_type_id' => '2',
|
|
'note' => $v['M_CompanyAddress']
|
|
);
|
|
array_push($xdelivery,$xdel);
|
|
}
|
|
//print_r($xdelivery );
|
|
$query = " SELECT T_ReceiveReferenceTestT_TestID,T_ReceiveReferenceTestT_TestPrice,
|
|
T_ReceiveReferenceTestT_TestDisc,T_ReceiveReferenceTestT_TestDiscRp,
|
|
'PX' as testtype,
|
|
'N' as ispaket
|
|
FROM t_receiverefacceptcourierdetail
|
|
LEFT JOIN t_receivereferencedeliverydetail ON T_ReceiverefAcceptCourierDetailT_ReceiveReferenceDeliveryDetID = T_ReceiveReferenceDeliveryDetailID
|
|
LEFT JOIN t_receivereferenceheader ON T_ReceiveReferenceDeliveryDetailT_ReceiveReferenceHeaderID = T_ReceiveReferenceHeaderID
|
|
LEFT JOIN t_receivereferencepatient ON T_ReceiveReferenceDeliveryDetailT_ReceiveReferencePatientID = T_ReceiveReferencePatientID
|
|
LEFT JOIN t_receivereferencetest ON T_ReceiveReferenceDeliveryDetailT_ReceiveReferencePatientID = T_ReceiveReferenceTestT_ReceiveReferencePatientID
|
|
JOIN t_test ON T_ReceiveReferenceTestT_TestID = T_TestID
|
|
WHERE
|
|
T_ReceiverefAcceptCourierDetailT_ReceiverefAcceptCourierID = '{$order_id}' AND T_ReceiverefAcceptCourierDetailIsActive = 'Y'";
|
|
$data_order_detail = $this->db_onedev->query($query)->result_array();
|
|
$xdetails = array();
|
|
foreach($data_order_detail as $k => $v){
|
|
$xdet = array(
|
|
't_id' => $v['T_ReceiveReferenceTestT_TestID'],
|
|
't_cito' => 'N',
|
|
't_price' => $v['T_ReceiveReferenceTestT_TestPrice'],
|
|
't_disc' => $v['T_ReceiveReferenceTestT_TestDisc'],
|
|
't_discrp' => $v['T_ReceiveReferenceTestT_TestDiscRp'],
|
|
't_req' => 'Y',
|
|
't_reqnote' => '',
|
|
't_ispacket' => $v['ispaket'],
|
|
't_packettype' => $v['testtype'],
|
|
't_packetid' => '0'
|
|
);
|
|
array_push($xdetails,$xdet);
|
|
}
|
|
|
|
$xreq = array(
|
|
'status' => 'Y',
|
|
'reqs' => '[]'
|
|
);
|
|
$header_json = json_encode($xheader);
|
|
$delivery_json = json_encode($xdelivery);
|
|
$detail_json = json_encode($xdetails);
|
|
$req_json = json_encode($xreq);
|
|
$sql = "CALL one.sp_fo_register_save(
|
|
0,
|
|
'{$header_json}',
|
|
'{$delivery_json}',
|
|
'{$detail_json}',
|
|
'{$req_json}',
|
|
'{$userid}'
|
|
)";
|
|
//echo $sql;
|
|
$r = $this->db_onedev->query($sql)->row();
|
|
$this->clean_mysqli_connection($this->db_onedev->conn_id);
|
|
return json_decode($r->data);
|
|
/***t_orderheader***/
|
|
}
|
|
function doactionold(){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$prm = $this->sys_input;
|
|
$userid = $this->sys_user["M_UserID"];
|
|
|
|
if($prm['act'] == 'RELEASEC'){
|
|
$sql = "UPDATE t_receiverefacceptcourier SET
|
|
T_ReceiverefAcceptCourierStatus = '{$prm['act']}',
|
|
T_ReceiverefAcceptCourierNote = '{$prm['trx_note']}',
|
|
T_ReceiverefAcceptCourierUserID = {$userid}
|
|
WHERE
|
|
T_ReceiverefAcceptCourierID = {$prm['trx']['trx_id']}
|
|
";
|
|
$this->db_onedev->query($sql);
|
|
|
|
$details = $prm['details'];
|
|
|
|
/***t_orderheader***/
|
|
$sql = " SELECT t_receivereferenceheader.* ,t_receivereferencepatient.*, m_company.*
|
|
FROM t_receiverefacceptcourierdetail
|
|
LEFT JOIN t_receivereferencedeliverydetail ON T_ReceiverefAcceptCourierDetailT_ReceiveReferenceDeliveryDetID = T_ReceiveReferenceDeliveryDetailID
|
|
LEFT JOIN t_receivereferenceheader ON T_ReceiveReferenceDeliveryDetailT_ReceiveReferenceHeaderID = T_ReceiveReferenceHeaderID
|
|
LEFT JOIN t_receivereferencepatient ON T_ReceiveReferenceDeliveryDetailT_ReceiveReferencePatientID = T_ReceiveReferencePatientID
|
|
LEFT JOIN m_company ON T_ReceiveReferenceHeaderM_CompanyID = M_CompanyID
|
|
WHERE
|
|
T_ReceiverefAcceptCourierDetailT_ReceiverefAcceptCourierID = '{$prm['trx']['trx_id']}'";
|
|
//echo $query;
|
|
$query = $this->db_onedev->query($sql);
|
|
if (!$query) {
|
|
$this->sys_error_db("select t_receiverefacceptcourierdetail", $this->db_onedev);
|
|
exit;
|
|
}
|
|
$data_order = $query->row_array();
|
|
$xheader = array(
|
|
'patient_id' => '',
|
|
'age' => $patientage,
|
|
'company_id' => $data_order['T_ReceiveReferenceHeaderM_CompanyID'],
|
|
'mou_id' => $data_order['T_ReceiveReferenceHeaderM_MouID'],
|
|
'lang_id' => '',
|
|
'sender_address_id' => '',
|
|
'sender_doctor_id' => $data_order['M_CompanyM_DoctorID'],
|
|
'doctor_note' => '',
|
|
'fo_note' => '',
|
|
'queue' => '',
|
|
'received_sample' => 'N',
|
|
);
|
|
$xdelivery = array();
|
|
$query = " SELECT t_receivereferenceheader.*
|
|
FROM t_receiverefacceptcourierdetail
|
|
LEFT JOIN t_receivereferencedeliverydetail ON T_ReceiverefAcceptCourierDetailT_ReceiveReferenceDeliveryDetID = T_ReceiveReferenceDeliveryDetailID
|
|
LEFT JOIN t_receivereferenceheader ON T_ReceiveReferenceDeliveryDetailT_ReceiveReferenceHeaderID = T_ReceiveReferenceHeaderID
|
|
WHERE
|
|
T_ReceiverefAcceptCourierDetailT_ReceiverefAcceptCourierID = '{$prm['trx']['trx_id']}'";
|
|
//echo $query;
|
|
$delver = $this->db_onedev->query($query)->result_array();
|
|
foreach($delver as $k => $v){
|
|
$xdel = array(
|
|
'address_id' => $v['T_ReceiveReferenceHeaderM_CompanyID'],
|
|
'delivery_id' => '10',
|
|
'delivery_type_id' => '2',
|
|
'note' => ''
|
|
);
|
|
array_push($xdelivery,$xdel);
|
|
}
|
|
//print_r($xdelivery );
|
|
$query = " SELECT *
|
|
FROM t_receiverefacceptcourierdetail
|
|
LEFT JOIN t_receivereferencedeliverydetail ON T_ReceiverefAcceptCourierDetailT_ReceiveReferenceDeliveryDetID = T_ReceiveReferenceDeliveryDetailID
|
|
LEFT JOIN t_receivereferenceheader ON T_ReceiveReferenceDeliveryDetailT_ReceiveReferenceHeaderID = T_ReceiveReferenceHeaderID
|
|
LEFT JOIN t_receivereferencepatient ON T_ReceiveReferenceDeliveryDetailT_ReceiveReferencePatientID = T_ReceiveReferencePatientID
|
|
LEFT JOIN t_receivereferencetest ON T_ReceiveReferenceDeliveryDetailT_ReceiveReferencePatientID = T_ReceiveReferenceTestT_ReceiveReferencePatientID
|
|
JOIN t_test ON T_ReceiveReferenceTestT_TestID = T_TestID
|
|
JOIN nat_test ON T_TestNat_TestID = Nat_TestID
|
|
LEFT JOIN nat_testrequirement ON Nat_TestID = Nat_TestRequirementNat_TestID
|
|
LEFT JOIN nat_requirement ON Nat_TestRequirementNat_RequirementID = Nat_RequirementID
|
|
WHERE
|
|
T_ReceiverefAcceptCourierDetailT_ReceiverefAcceptCourierID = '{$prm['trx']['trx_id']}' AND T_ReceiverefAcceptCourierDetailIsActive = 'Y'";
|
|
$data_order_detail = $this->db_onedev->query($query)->result_array();
|
|
$xdetails = array();
|
|
foreach($data_order_detail as $k => $v){
|
|
$xdet = array(
|
|
't_id' => $v['T_ReceiveReferenceTestT_TestID'],
|
|
't_cito' => 'N',
|
|
't_price' => $v['T_ReceiveReferenceTestT_TestPrice'],
|
|
't_disc' => $v['T_ReceiveReferenceTestT_TestDisc'],
|
|
't_discrp' => $v['T_ReceiveReferenceTestT_TestDiscRp'],
|
|
't_req' => 'Y',
|
|
't_reqnote' => $v['Nat_RequirementName']
|
|
);
|
|
array_push($xdetails,$xdet);
|
|
}
|
|
$header_json = json_encode($xheader);
|
|
$delivery_json = json_encode($xdelivery);
|
|
$detail_json = json_encode($xdetails);
|
|
$sql = "CALL one.sp_fo_register_save(
|
|
0,
|
|
'{$header_json}',
|
|
'{$delivery_json}',
|
|
'{$detail_json}',
|
|
'{$userid}'
|
|
)";
|
|
//echo $sql;
|
|
$r = $this->db_onedev->query($sql)->row();
|
|
$this->clean_mysqli_connection($this->db_onedev->conn_id);
|
|
return json_decode($r->data);
|
|
}
|
|
if($prm['act'] === 'RCVLAB' ){
|
|
$sql = "UPDATE t_receiverefacceptcourier SET
|
|
T_ReceiverefAcceptCourierStatus = '{$prm['act']}',
|
|
T_ReceiverefAcceptCourierNote = '{$prm['trx_note']}',
|
|
T_ReceiverefAcceptCourierUserID = {$userid}
|
|
WHERE
|
|
T_ReceiverefAcceptCourierID = {$prm['trx']['trx_id']}
|
|
";
|
|
$this->db_onedev->query($sql);
|
|
|
|
$details = $prm['details'];
|
|
foreach($details as $k => $v){
|
|
$querystatus = "SELECT COUNT(*) as exist FROM g_receivereferenceheaderstatuslog WHERE G_ReceiveReferenceHeaderStatusLogIsActive = 'Y' AND G_ReceiveReferenceHeaderStatusLogT_ReceiveReferenceHeaderID = '{$v['T_ReceiverefAcceptCourierDetailT_ReceiveReferenceHeaderID']}' AND G_ReceiveReferenceHeaderStatusLogM_StatusReferenceID = '6'";
|
|
$exist_id = $this->db_onedev->query($querystatus)->row()->exist;
|
|
if($exist_id == 0){
|
|
$querylog ="INSERT INTO g_receivereferenceheaderstatuslog (
|
|
G_ReceiveReferenceHeaderStatusLogDate,
|
|
G_ReceiveReferenceHeaderStatusLogT_ReceiveReferenceHeaderID,
|
|
G_ReceiveReferenceHeaderStatusLogM_StatusReferenceID,
|
|
G_ReceiveReferenceHeaderStatusLogM_UserID,
|
|
G_ReceiveReferenceHeaderStatusLogUserID,
|
|
G_ReceiveReferenceHeaderStatusLogCreated,
|
|
G_ReceiveReferenceHeaderStatusLogLastUpdated
|
|
)
|
|
VALUES(
|
|
NOW(),
|
|
'{$v['T_ReceiverefAcceptCourierDetailT_ReceiveReferenceHeaderID']}',
|
|
'6',
|
|
'{$userid}',
|
|
'{$userid}',
|
|
NOW(),
|
|
NOW()
|
|
)";
|
|
//echo $querylog;
|
|
$insert_new_log = $this->db_onedev->query($querylog);
|
|
|
|
}
|
|
}
|
|
}
|
|
if($prm['act'] === 'DONE'){
|
|
$details = $prm['details'];
|
|
$count_n = 0;
|
|
foreach($details as $k => $v){
|
|
if($v['flag_image_receive'] === 'N'){
|
|
$count_n++;
|
|
}
|
|
if($v['flag_result_receive'] === 'N'){
|
|
$count_n++;
|
|
}
|
|
$query ="UPDATE t_receiverefacceptcourierdetail SET
|
|
T_ReceiverefAcceptCourierDetailFlagReceiveImage = '{$v['flag_image_receive']}',
|
|
T_ReceiverefAcceptCourierDetailFlagReceiveResult = '{$v['flag_result_receive']}',
|
|
T_ReceiverefAcceptCourierDetailUserID = '{$userid}'
|
|
WHERE
|
|
T_ReceiverefAcceptCourierDetailID = {$v['idx']}
|
|
";
|
|
//echo $query;
|
|
$savedetail = $this->db_onedev->query($query);
|
|
}
|
|
$status = 'DONE';
|
|
if($count_n > 0){
|
|
$status = 'PARTDONE';
|
|
}
|
|
$sql = "UPDATE t_receiverefacceptcourier SET
|
|
T_ReceiverefAcceptCourierStatus = '{$status}',
|
|
T_ReceiverefAcceptCourierNote = '{$prm['trx_note']}',
|
|
T_ReceiverefAcceptCourierUserID = {$userid}
|
|
WHERE
|
|
T_ReceiverefAcceptCourierID = {$prm['trx']['trx_id']}
|
|
";
|
|
$this->db_onedev->query($sql);
|
|
}
|
|
|
|
if($prm['act'] == 'FORCEDONE'){
|
|
$sql = "UPDATE t_receiverefacceptcourier SET
|
|
T_ReceiverefAcceptCourierNote = '{$prm['trx_note']}',
|
|
T_ReceiverefAcceptCourierStatus = 'DONE',
|
|
T_ReceiverefAcceptCourierUserID = {$userid}
|
|
WHERE
|
|
T_ReceiverefAcceptCourierID = {$prm['trx']['trx_id']}
|
|
";
|
|
$this->db_onedev->query($sql);
|
|
}
|
|
|
|
$result = array(
|
|
"total" => 1 ,
|
|
"records" => array('status'=>'OK')
|
|
);
|
|
$this->sys_ok($result);
|
|
|
|
exit;
|
|
}
|
|
|
|
|
|
|
|
} |