Initial import
This commit is contained in:
283
application/controllers/tools/monitoring/Rujukan.php
Normal file
283
application/controllers/tools/monitoring/Rujukan.php
Normal file
@@ -0,0 +1,283 @@
|
||||
<?php
|
||||
class rujukan extends MY_Controller
|
||||
{
|
||||
function __construct() {
|
||||
parent::__construct();
|
||||
$this->db = $this->load->database("onedev", true);
|
||||
}
|
||||
function index() {
|
||||
$this->cek(true);
|
||||
$this->cek_order(true);
|
||||
$this->cek_validasi(true);
|
||||
}
|
||||
function clean_up_message($msg) {
|
||||
$msg = str_replace("-","\-",$msg);
|
||||
$msg = str_replace("(","\(",$msg);
|
||||
$msg = str_replace(")","\)",$msg);
|
||||
$msg = str_replace(".","\.",$msg);
|
||||
$msg = str_replace("[","\[",$msg);
|
||||
$msg = str_replace("]","\]",$msg);
|
||||
$msg = str_replace("|","\|",$msg);
|
||||
return $msg;
|
||||
}
|
||||
|
||||
function cek_validasi($do_send=false,$date = "") {
|
||||
if ($date == "" ) {
|
||||
$xdate = new DateTime();
|
||||
$xdate->sub(new DateInterval('P1D'));
|
||||
$date = $xdate->format('Y-m-d');
|
||||
}
|
||||
$sql = "select tx_branch_status.*
|
||||
from tx_branch_status
|
||||
where date(TxBranchStatusCreated) >= '$date'
|
||||
and TxBranchStatusRetry > 10 ";
|
||||
$qry = $this->db->query($sql);
|
||||
if ($qry) {
|
||||
$rows = $qry->result_array();
|
||||
$ids = "0";
|
||||
$child_ids ="0";
|
||||
foreach($rows as $r) {
|
||||
if($r["TxBranchStatusStage"] == "VALIDATION" ) {
|
||||
//print_r($r);
|
||||
if ($r["TxBranchStatusIsSent"] == "Y") continue;
|
||||
$json = json_decode($r["TxBranchStatusJson"],true);
|
||||
foreach($json as $j) {
|
||||
if ($j["incomingRefDetailID"] == "") {
|
||||
continue;
|
||||
}
|
||||
$ids .= "," . $j["incomingRefDetailID"];
|
||||
}
|
||||
foreach($json as $j) {
|
||||
if ($j["incomingRefChildID"] == "") {
|
||||
continue;
|
||||
}
|
||||
$child_ids .= "," . $j["incomingRefChildID"];
|
||||
}
|
||||
}
|
||||
}
|
||||
if($ids != "0" || $child_ids != "0" ) {
|
||||
$sql = "select T_OrderHeaderLabNumber, T_OrderHeaderAddOnLabNumberOrigin,
|
||||
group_concat(incomingRefDetailT_TestName) TestName
|
||||
from
|
||||
incoming_ref_detail
|
||||
join t_orderheader on incomingRefDetailID in ( $ids ) and incomingRefDetailNewT_OrderHeaderID = T_OrderHeaderID
|
||||
join t_orderheaderaddon on T_OrderHeaderID = T_OrderHeaderAddOnT_OrderHeaderID
|
||||
union
|
||||
select T_OrderHeaderLabNumber, T_OrderHeaderAddOnLabNumberOrigin,
|
||||
group_concat(incomingRefChildT_TestName) TestName
|
||||
from
|
||||
incoming_ref_child
|
||||
join t_orderheader on incomingRefChildID in ( $child_ids ) and incomingRefChildNewT_OrderHeaderID = T_OrderHeaderID
|
||||
join t_orderheaderaddon on T_OrderHeaderID = T_OrderHeaderAddOnT_OrderHeaderID
|
||||
group by T_OrderHeaderID
|
||||
";
|
||||
$qry = $this->db->query($sql);
|
||||
if($qry) {
|
||||
$rows = $qry->result_array();
|
||||
$msg = "";
|
||||
foreach($rows as $r) {
|
||||
$msg .= $r["T_OrderHeaderLabNumber"] . "|*" . $r["T_OrderHeaderAddOnLabNumberOrigin"] . "*";
|
||||
$msg .= "\n\t " . $r["TestName"] . "\n";
|
||||
}
|
||||
if ($msg != "" ) {
|
||||
$msg = "Pending Hasil ke perujuk :\n$msg";
|
||||
$msg = $this->clean_up_message($msg);
|
||||
if ($do_send ) {
|
||||
$this->sasone($msg);
|
||||
} else {
|
||||
echo $msg . "\n";
|
||||
}
|
||||
}
|
||||
} else {
|
||||
print_r($this->db->error());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
function order() {
|
||||
$this->cek_order(true);
|
||||
}
|
||||
function cek_barcode($do_send = false, $date = "") {
|
||||
$w_date = "AND date(incomingRefDetailLastUpdated) = date(now())";
|
||||
if ($date != "" ) {
|
||||
$w_date = "AND date(incomingRefDetailLastUpdated) = '$date' ";
|
||||
}
|
||||
$sql = "select
|
||||
incomingRefDetailLastUpdated,incomingRefOriginM_BranchCode, incomingRefT_RefDeliveryOrderNumber, incomingRefDetailT_OrderHeaderLabNumber, incomingRefDetailT_TestID, incomingRefDetailT_TestName
|
||||
from incoming_ref_detail
|
||||
JOIN incoming_ref ON incomingRefDetailIncomingRefID = incomingRefID
|
||||
JOIN t_orderheader ON incomingRefDetailNewT_OrderHeaderID = T_OrderHeaderID AND T_OrderHeaderIsActive = 'Y'
|
||||
$w_date
|
||||
left join t_barcodelab on T_OrderHeaderID = T_BarcodeLabT_OrderHeaderID
|
||||
where T_BarcodeLabID IS NULL AND
|
||||
((TIME_TO_SEC(time(now())) - TIME_TO_SEC(time(incomingRefDetailLastUpdated)))/60) > 5;
|
||||
";
|
||||
$qry = $this->db->query($sql);
|
||||
if ($qry) {
|
||||
$rows = $qry->result_array();
|
||||
$tot_pending_barcode = 0;
|
||||
$no_msg = "";
|
||||
foreach($rows as $r ) {
|
||||
if ($no_msg != "" ) $no_msg .= "\n ";
|
||||
$no_msg .= $r["incomingRefOriginM_BranchCode"] . " \| " . $r["incomingRefT_RefDeliveryOrderNumber"]
|
||||
. " \| " . $r["incomingRefDetailT_OrderHeaderLabNumber"] . " \| " . $r["incomingRefDetailT_TestName"];
|
||||
$tot_pending_barcode++;
|
||||
}
|
||||
$msg = "Pending Create Barcode : * $tot_pending_barcode *,\n" . $no_msg ;
|
||||
if ($tot_pending_barcode> 0 ) {
|
||||
if ($do_send) {
|
||||
$this->sasone($msg);
|
||||
} else {
|
||||
echo $msg . "\n";
|
||||
}
|
||||
}
|
||||
} else {
|
||||
print_r($this->db->error());
|
||||
exit;
|
||||
}
|
||||
|
||||
}
|
||||
function cek_order($do_send = false ) {
|
||||
$sql = "select * from m_branch where M_BranchIsActive = 'Y' and M_BranchIsDefault = 'Y'";
|
||||
$branchName = "No Branch";
|
||||
$qry = $this->db->query($sql);
|
||||
if ($qry) {
|
||||
$rows = $qry->result_array();
|
||||
$branchName = $rows[0]["M_BranchName"];
|
||||
} else {
|
||||
print_r($this->db->error());
|
||||
}
|
||||
$sql ="
|
||||
SELECT
|
||||
incomingRefID,
|
||||
incomingRefT_RefDeliveryOrderDate,
|
||||
incomingRefT_RefDeliveryOrderNumber,
|
||||
incomingRefOriginM_BranchCode,
|
||||
M_BranchName,
|
||||
incomingRefDetailID,
|
||||
incomingRefDetailT_OrderHeaderID,
|
||||
incomingRefDetailT_OrderHeaderLabNumber,
|
||||
incomingRefDetailM_PatientName,
|
||||
incomingRefDetailFoNote,
|
||||
incomingRefDetailVefificationNote,
|
||||
incomingRefDetailSamplingNote,
|
||||
incomingRefDetailT_TestID,
|
||||
incomingRefDetailT_TestName,
|
||||
incomingRefDetailT_OrderPromiseDateTime,
|
||||
incomingRefDetailT_OrderDetailID,
|
||||
incomingRefDetailT_BarcodeLabBarcode,
|
||||
incomingRefDetailPatient
|
||||
FROM incoming_ref_detail
|
||||
JOIN incoming_ref ON incomingRefDetailIncomingRefID = incomingRefID
|
||||
JOIN m_branch ON incomingRefOriginM_BranchCode = M_BranchCode
|
||||
WHERE incomingRefDetailStatus = 'Y'
|
||||
AND incomingRefDetailNewT_OrderHeaderID IS NULL
|
||||
AND date(incomingRefDetailLastUpdated) = date(now())
|
||||
AND ((TIME_TO_SEC(time(now())) - TIME_TO_SEC(time(incomingRefDetailLastUpdated)))/60) > 5;
|
||||
";
|
||||
$qry = $this->db->query($sql);
|
||||
if ($qry) {
|
||||
$rows = $qry->result_array();
|
||||
$tot_pending_kirim = 0;
|
||||
$no_msg = "";
|
||||
foreach($rows as $r ) {
|
||||
if ($no_msg != "" ) $no_msg .= "\n ";
|
||||
$no_msg .= $r["incomingRefDetailT_OrderHeaderLabNumber"] . " \| " . $r["incomingRefDetailT_TestName"];
|
||||
$tot_pending_kirim++;
|
||||
}
|
||||
$msg = "Pending Create Order \[* $branchName \] : $tot_pending_kirim *,\n" . $no_msg ;
|
||||
if ($tot_pending_kirim > 0 ) {
|
||||
if ($do_send) {
|
||||
$this->sasone($msg);
|
||||
} else {
|
||||
echo $msg . "\n";
|
||||
}
|
||||
}
|
||||
} else {
|
||||
print_r($this->db->error());
|
||||
}
|
||||
}
|
||||
function cek($do_send = false) {
|
||||
$sql = "select * from m_branch where M_BranchIsActive = 'Y' and M_BranchIsDefault = 'Y'";
|
||||
$branchName = "No Branch";
|
||||
$qry = $this->db->query($sql);
|
||||
if ($qry) {
|
||||
$rows = $qry->result_array();
|
||||
$branchName = $rows[0]["M_BranchName"];
|
||||
} else {
|
||||
print_r($this->db->error());
|
||||
}
|
||||
$sql = "SELECT distinct * FROM
|
||||
(SELECT T_RefDeliveryOrderID,
|
||||
T_RefDeliveryOrderNumber,
|
||||
T_RefDeliveryOrderDate,
|
||||
b.M_BranchID as cabang_asal_id,
|
||||
b.M_BranchName as cabang_asal,
|
||||
d.M_BranchID as cabang_tujuan_id,
|
||||
d.M_BranchName as cabang_tujuan
|
||||
FROM t_ref_deliveryorder
|
||||
LEFT JOIN m_branch b ON T_RefDeliveryOrderM_BranchID = b.M_BranchID
|
||||
LEFT JOIN m_branch d ON T_RefDeliveryOrderM_DestinationID = d.M_BranchID
|
||||
WHERE
|
||||
T_RefDeliveryOrderIsActive = 'Y' AND
|
||||
T_RefDeliveryOrderIsConfirm = 'Y' AND
|
||||
T_RefDeliveryOrderIsExternal = 'N' AND
|
||||
date(T_RefDeliveryOrderLastUpdated) = date(now()) AND
|
||||
((TIME_TO_SEC(time(now())) - TIME_TO_SEC(time(T_RefDeliveryOrderLastUpdated)))/60) > 5
|
||||
|
||||
UNION
|
||||
SELECT T_RefDeliveryOrderID,
|
||||
T_RefDeliveryOrderNumber,
|
||||
T_RefDeliveryOrderDate,
|
||||
M_BranchID as cabang_asal_id,
|
||||
M_BranchName as cabang_asal,
|
||||
M_LabReferenceID as cabang_tujuan_id,
|
||||
M_LabReferenceName as cabang_tujuan
|
||||
FROM t_ref_deliveryorder
|
||||
LEFT JOIN m_branch ON T_RefDeliveryOrderM_BranchID = M_BranchID
|
||||
LEFT JOIN m_labreference d ON T_RefDeliveryOrderM_DestinationID = M_LabReferenceID
|
||||
WHERE
|
||||
T_RefDeliveryOrderIsActive = 'Y' AND
|
||||
T_RefDeliveryOrderIsConfirm = 'Y' AND
|
||||
T_RefDeliveryOrderIsExternal = 'Y' AND
|
||||
date(T_RefDeliveryOrderLastUpdated) = date(now()) AND
|
||||
((TIME_TO_SEC(time(now())) - TIME_TO_SEC(time(T_RefDeliveryOrderLastUpdated)))/60) > 5
|
||||
) x
|
||||
";
|
||||
$qry = $this->db->query($sql);
|
||||
if ($qry) {
|
||||
$rows = $qry->result_array();
|
||||
$tot_pending_kirim = 0;
|
||||
$no_msg = "";
|
||||
foreach($rows as $r ) {
|
||||
if ($no_msg != "" ) $no_msg .= ", ";
|
||||
$no_msg .= $r["T_RefDeliveryOrderNumber"];
|
||||
$tot_pending_kirim++;
|
||||
}
|
||||
$msg = "Pending Rujukan \[* $branchName \] : $tot_pending_kirim *,\n" . $no_msg ;
|
||||
if ($tot_pending_kirim > 0 ) {
|
||||
if ($do_send) {
|
||||
$this->sasone($msg);
|
||||
} else {
|
||||
echo $msg . "\n";
|
||||
}
|
||||
}
|
||||
} else {
|
||||
print_r($this->db->error());
|
||||
}
|
||||
}
|
||||
function sasone($msg) {
|
||||
$url = "http://bandungraya.aplikasi.web.id/one-api/tgram/xone/sasone";
|
||||
$data = json_encode( array("text" => $msg ));
|
||||
$ch = curl_init($url);
|
||||
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
|
||||
'Content-Type: application/json',
|
||||
'Content-Length: ' . strlen($data))
|
||||
);
|
||||
$result = curl_exec($ch);
|
||||
echo $result;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user