1126 lines
48 KiB
PHP
1126 lines
48 KiB
PHP
<?php
|
|
class Whatsappstatusvip extends MY_Controller
|
|
{
|
|
var $db_onedev;
|
|
public function index()
|
|
{
|
|
echo "Verify Doctor API";
|
|
}
|
|
|
|
public function __construct()
|
|
{
|
|
parent::__construct();
|
|
$this->db_onedev = $this->load->database("onedev", true);
|
|
}
|
|
|
|
public function search()
|
|
{
|
|
$prm = $this->sys_input;
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$nama = $prm["name"];
|
|
$date = $prm['date'];
|
|
$status = $prm["status"];
|
|
$grup = $prm["grup"];
|
|
|
|
/* $e = explode('+', $prm['name']);
|
|
if (isset($e[0]))
|
|
$nama = "%{$e[0]}%";
|
|
if (isset($e[1]))
|
|
$nohp = "%{$e[1]}%";
|
|
// echo $norm;
|
|
|
|
$sql_where = "";
|
|
$sql_param = array();
|
|
if ($nama != "") {
|
|
if ($sql_where != "") {
|
|
$sql_where .=" and ";
|
|
}
|
|
$sql_where .= " M_PatientName like ?";
|
|
$sql_param[] = "$nama";
|
|
//$prm['current_page'] = 1;
|
|
}
|
|
if ($sql_where != "") $sql_where .= " and ";
|
|
*/
|
|
// Order masih dalam status registrasi
|
|
if($grup == 1){
|
|
$sql_where .= " IFNULL(Tx_WhatsappIsSent,'N') = '{$status}' AND IFNULL(Tx_WhatsappGroup_ResultID,1) >= '{$grup}' AND T_OrderHeaderIsActive = 'Y' AND (date(T_OrderHeaderDate) = '{$date}' OR date(T_OrderDeliveryCreated) = '{$date}') AND date(T_OrderHeaderDate) > '2021-11-25'
|
|
AND (JSON_UNQUOTE(JSON_EXTRACT(fn_get_patient_atribute(T_OrderHeaderM_PatientID), '$.patient_fullname')) LIKE CONCAT('%','{$nama}','%') OR T_OrderHeaderLabNumber LIKE CONCAT('%','{$nama}','%'))";
|
|
}else{$sql_where .= " IFNULL(Tx_WhatsappIsSent,'N') = '{$status}' AND T_OrderHeaderIsActive = 'Y' AND (date(T_OrderHeaderDate) = '{$date}' OR date(T_OrderDeliveryCreated) = '{$date}') AND date(T_OrderHeaderDate) > '2021-11-25'
|
|
AND (JSON_UNQUOTE(JSON_EXTRACT(fn_get_patient_atribute(T_OrderHeaderM_PatientID), '$.patient_fullname')) LIKE CONCAT('%','{$nama}','%') OR T_OrderHeaderLabNumber LIKE CONCAT('%','{$nama}','%'))";
|
|
}
|
|
if ($sql_where != "") {
|
|
$sql_where = " where $sql_where";
|
|
//$prm['current_page'] = 1;
|
|
}
|
|
$number_limit = 10;
|
|
$number_offset = ($prm['current_page'] - 1) * $number_limit ;
|
|
if ($status == 'Y'){
|
|
$sql = " SELECT count(*) as total
|
|
FROM
|
|
(SELECT T_OrderHeaderID FROM t_orderheader
|
|
JOIN t_orderheaderaddon ON T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID
|
|
join t_orderdelivery on T_OrderHeaderID = T_OrderDeliveryT_OrderHeaderID and T_OrderDeliveryIsActive = 'Y' and T_OrderDeliveryM_DeliveryTypeID = 4
|
|
join m_delivery ON M_DeliveryID = T_OrderDeliveryM_DeliveryID
|
|
JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID
|
|
join last_statuspayment ON Last_StatusPaymentT_OrderHeaderID = T_OrderHeaderID AND Last_StatusPaymentIsActive = 'Y'
|
|
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailT_TestIsResult = 'Y'
|
|
join group_resultdetail on Group_ResultDetailT_TestID = T_OrderDetailT_TestID
|
|
and T_OrderDetailIsActive = 'Y' and Group_ResultDetailIsActive = 'Y'
|
|
and T_OrderDetailT_OrderHeaderID = T_OrderHeaderID
|
|
join group_result on Group_ResultDetailGroup_ResultID = Group_ResultID
|
|
JOIN tx_whatsapp ON Tx_WhatsappT_OrderHeaderID = T_OrderHeaderID AND Tx_WhatsappGroup_ResultID = Group_ResultID AND Tx_WhatsappM_DeliveryID = M_DeliveryID AND Tx_WhatsappIsActive = 'Y'
|
|
LEFT JOIN t_email_nonlab ON T_EmailNonLabT_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND
|
|
T_EmailNonLabType LIKE CONCAT('%',REPLACE(Group_ResultName, 'Elektromedik', 'electromedis'),'%')
|
|
JOIN t_orderpromise ON T_OrderPromiseT_OrderHeaderID = T_OrderHeaderID
|
|
JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderPromiseID IN(SELECT T_OrderPromiseID FROM t_orderpromise WHERE T_OrderPromiseT_OrderHeaderID = T_OrderHeaderID) AND
|
|
T_OrderDeliveryID = Result_ProcessToOfficeT_OrderDeliveryID AND Result_ProcessToOfficeStatus = 'S'
|
|
AND
|
|
(( Result_ProcessToOfficeGroup_ResultID = T_OrderDetailT_TestID AND Group_ResultFlagPerTest = 'Y')
|
|
or (Result_ProcessToOfficeGroup_ResultID = Group_ResultID AND Group_ResultFlagPerTest = 'N' ))
|
|
WHERE T_OrderHeaderIsActive = 'Y' AND (date(T_OrderHeaderDate) = '{$date}' OR date(T_OrderDeliveryCreated) = '{$date}') AND date(T_OrderHeaderDate) > '2021-11-25'
|
|
AND (JSON_UNQUOTE(JSON_EXTRACT(fn_get_patient_atribute(T_OrderHeaderM_PatientID), '$.patient_fullname')) LIKE CONCAT('%','{$nama}','%') OR T_OrderHeaderLabNumber LIKE CONCAT('%','{$nama}','%'))
|
|
|
|
GROUP BY Group_ResultID,M_DeliveryID,T_OrderHeaderID) a
|
|
";
|
|
$query = $this->db_onedev->query($sql, $sql_param);
|
|
|
|
}else{
|
|
$sql = " SELECT count(*) as total
|
|
FROM
|
|
(SELECT T_OrderHeaderID FROM t_orderheader
|
|
JOIN m_mou ON T_OrderHeaderM_MouID = M_MouID
|
|
JOIN t_orderheaderaddon ON T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID
|
|
join t_orderdelivery on T_OrderHeaderID = T_OrderDeliveryT_OrderHeaderID and T_OrderDeliveryIsActive = 'Y' and T_OrderDeliveryM_DeliveryTypeID = 4
|
|
join m_delivery ON M_DeliveryID = T_OrderDeliveryM_DeliveryID
|
|
JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID
|
|
join last_statuspayment ON Last_StatusPaymentT_OrderHeaderID = T_OrderHeaderID AND Last_StatusPaymentIsActive = 'Y'
|
|
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailT_TestIsResult = 'Y'
|
|
join group_resultdetail on Group_ResultDetailT_TestID = T_OrderDetailT_TestID
|
|
and T_OrderDetailIsActive = 'Y' and Group_ResultDetailIsActive = 'Y'
|
|
and T_OrderDetailT_OrderHeaderID = T_OrderHeaderID
|
|
join group_result on Group_ResultDetailGroup_ResultID = Group_ResultID
|
|
LEFT JOIN tx_whatsapp ON Tx_WhatsappT_OrderHeaderID = T_OrderHeaderID AND Tx_WhatsappGroup_ResultID = Group_ResultID AND Tx_WhatsappM_DeliveryID = M_DeliveryID AND Tx_WhatsappIsActive = 'Y'
|
|
LEFT JOIN tx_whatsapp_partial ON Tx_WhatsappPartialT_OrderHeaderID = T_OrderHeaderID AND Tx_WhatsappPartialGroup_ResultID = Group_ResultID AND Tx_WhatsappPartialM_DeliveryID = M_DeliveryID AND Tx_WhatsappPartialIsActive = 'Y'
|
|
LEFT JOIN t_email_nonlab ON T_EmailNonLabT_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND
|
|
T_EmailNonLabType LIKE CONCAT('%',REPLACE(Group_ResultName, 'Elektromedik', 'electromedis'),'%')
|
|
LEFT JOIN tx_whatsappdetail ON Tx_WhatsappDetailTx_WhatsappID = Tx_WhatsappID
|
|
JOIN t_orderpromise ON T_OrderPromiseT_OrderHeaderID = T_OrderHeaderID
|
|
LEFT JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderPromiseID IN(SELECT T_OrderPromiseID FROM t_orderpromise WHERE T_OrderPromiseT_OrderHeaderID = T_OrderHeaderID) AND
|
|
T_OrderDeliveryID = Result_ProcessToOfficeT_OrderDeliveryID AND Result_ProcessToOfficeStatus = 'S'
|
|
AND
|
|
(( Result_ProcessToOfficeGroup_ResultID = T_OrderDetailT_TestID AND Group_ResultFlagPerTest = 'Y')
|
|
or (Result_ProcessToOfficeGroup_ResultID = Group_ResultID AND Group_ResultFlagPerTest = 'N' ))
|
|
|
|
WHERE Tx_WhatsappID IS NULL AND IFNULL(Tx_WhatsappPartialIsSent,'N') = 'N' AND T_OrderHeaderIsActive = 'Y' AND (date(T_OrderHeaderDate) = '{$date}' OR date(T_OrderDeliveryCreated) = '{$date}') AND date(T_OrderHeaderDate) > '2021-11-25'
|
|
AND (JSON_UNQUOTE(JSON_EXTRACT(fn_get_patient_atribute(T_OrderHeaderM_PatientID), '$.patient_fullname')) LIKE CONCAT('%','{$nama}','%') OR T_OrderHeaderLabNumber LIKE CONCAT('%','{$nama}','%'))
|
|
|
|
GROUP BY Group_ResultID,M_DeliveryID,T_OrderHeaderID) a
|
|
";
|
|
$query = $this->db_onedev->query($sql, $sql_param);
|
|
}
|
|
|
|
$tot_count = 0;
|
|
$tot_page = 0;
|
|
if ($query) {
|
|
$tot_count = $query->result_array()[0]["total"];
|
|
$tot_page = ceil($tot_count/$number_limit);
|
|
} else {
|
|
$this->sys_error_db("t_orderheader count", $this->db_onedev);
|
|
exit;
|
|
}
|
|
if($status == 'Y'){
|
|
$sql = "SELECT T_OrderHeaderID,
|
|
IFNULL(Tx_WhatsappOutboundID,0) as Tx_WhatsappOutboundID,
|
|
IF(Tx_WhatsappOutboundID IS NULL ,'Belum Terkirim ke Provider','') as outboundprovider,
|
|
IFNULL(Tx_WhatsappGroup_ResultID,IF(Group_ResultFlagPerTest = 'Y',T_OrderDetailT_TestID,Group_ResultID)) as Tx_WhatsappGroup_ResultID,
|
|
CONCAT(M_DoctorPrefix, ' ',M_DoctorName) as M_DoctorName,
|
|
JSON_UNQUOTE(JSON_EXTRACT(fn_get_patient_atribute(T_OrderHeaderM_PatientID), '$.patient_fullname')) as M_PatientName,
|
|
T_OrderHeaderLabNumber,
|
|
IF(T_EmailNonLabUrl IS NULL AND Group_ResultFlagNonLab = 'Y',' [Belum Pilih Format Hasil]','') temail,
|
|
IF(Group_ResultFlagPerTest = 'Y',T_OrderDetailT_TestID,Group_ResultID) as Group_ResultID,
|
|
GROUP_CONCAT(DISTINCT Group_ResultName SEPARATOR ' ,') as Group_ResultName,
|
|
IF(M_MouIsBill = 'Y','Sudah Lunas',if(ifnull(Last_StatusPaymentIsLunas,'N') = 'Y','Sudah Lunas','Belum Lunas')) as Last_StatusPaymentIsLunas,
|
|
IF(IFNULL(Tx_WhatsappIsSent,'N') = 'N','Pending','Terkirim') as wastatus,
|
|
IF(IF(Group_ResultFlagNonLab = 'Y','Y',T_OrderHeaderAddOnValidationDone) = 'N','Belum Selesai','Selesai') as validasi,
|
|
M_DeliveryName,
|
|
M_DeliverySource,
|
|
CASE
|
|
WHEN M_DeliverySource = 'PATIENT' THEN IF(T_OrderDeliveryDestination IS NULL OR T_OrderDeliveryDestination = '' OR T_OrderDeliveryDestination= 'null','-',T_OrderDeliveryDestination)
|
|
WHEN M_DeliverySource = 'DOCTOR' THEN IF(M_DoctorHP IS NULL OR M_DoctorHP = '' OR M_DoctorHP = 'null','-',M_DoctorHP)
|
|
END as
|
|
T_OrderDeliveryDestination,
|
|
CASE
|
|
WHEN M_DeliverySource = 'PATIENT' THEN IF(JSON_UNQUOTE(JSON_EXTRACT(fn_get_patient_atribute(T_OrderHeaderM_PatientID), '$.M_PatientHP')) IS NULL OR JSON_UNQUOTE(JSON_EXTRACT(fn_get_patient_atribute(T_OrderHeaderM_PatientID), '$.M_PatientHP')) = '' OR JSON_UNQUOTE(JSON_EXTRACT(fn_get_patient_atribute(T_OrderHeaderM_PatientID), '$.M_PatientHP')) = 'null','---',JSON_UNQUOTE(JSON_EXTRACT(fn_get_patient_atribute(T_OrderHeaderM_PatientID), '$.M_PatientHP')))
|
|
WHEN M_DeliverySource = 'DOCTOR' THEN IF(M_DoctorHP IS NULL OR M_DoctorHP = '' OR M_DoctorHP = 'null','---',M_DoctorHP)
|
|
END as hp,
|
|
Tx_WhatsappNote,
|
|
IF(SUM(IF(IFNULL(Tx_WhatsappDetailIsSend,'N') = 'N',0,1)) = 0,'N',IF(COUNT(Tx_WhatsappDetailID) = SUM(IF(Tx_WhatsappDetailIsSend = 'N',0,1)),'Y','P')) as K,
|
|
IF(SUM(IF(IFNULL(Tx_WhatsappDetailIsReceive,'N') = 'N',0,1)) = 0,'N',IF(COUNT(Tx_WhatsappDetailID) = SUM(IF(Tx_WhatsappDetailIsReceive = 'N',0,1)),'Y','P')) as T,
|
|
IF(SUM(IF(IFNULL(Tx_WhatsappDetailIsRead,'N') = 'N',0,1)) = 0,'N',IF(COUNT(Tx_WhatsappDetailID) = SUM(IF(Tx_WhatsappDetailIsRead = 'N',0,1)),'Y','P')) as B,
|
|
IF(SUM(IF(IFNULL(IF(Tx_WhatsappDetailIsRead = 'Y','N',Tx_WhatsappDetailIsTimeout),'N') = 'N',0,1)) = 0,'N',IF(COUNT(Tx_WhatsappDetailID) = SUM(IF(IF(Tx_WhatsappDetailIsRead = 'Y','N',Tx_WhatsappDetailIsTimeout) = 'N',0,1)),'Y','P')) as istimeout,
|
|
CASE
|
|
WHEN IFNULL(Tx_WhatsappOutboundID,0) = 0 THEN 'Belum Terkirim Provider'
|
|
WHEN Tx_WhatsappOutboundID > 0 AND IF(SUM(IF(IFNULL(IF(Tx_WhatsappDetailIsRead = 'Y','N',Tx_WhatsappDetailIsTimeout),'N') = 'N',0,1)) = 0,'N',IF(COUNT(Tx_WhatsappDetailID) = SUM(IF(IF(Tx_WhatsappDetailIsRead = 'Y','N',Tx_WhatsappDetailIsTimeout) = 'N',0,1)),'Y','P')) <> 'N' THEN 'Data sudah timeout'
|
|
ELSE ''
|
|
END as statusprovider,
|
|
M_DeliveryID,
|
|
4 as M_DeliveryTypeID,
|
|
IFNULL(Result_ProcessToOfficeStatus,'N') as Result_ProcessToOfficeStatus,
|
|
IF(IFNULL(Result_ProcessToOfficeStatus,'N') = 'N', 'Belum Serahkan Hasil','') as serahhasil,
|
|
0 as Tx_WhatsappPartialID,
|
|
'Y' as Tx_WhatsappPartialIsSent
|
|
|
|
FROM t_orderheader
|
|
JOIN m_mou ON T_OrderHeaderM_MouID = M_MouID
|
|
JOIN t_orderheaderaddon ON T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID
|
|
join t_orderdelivery on T_OrderHeaderID = T_OrderDeliveryT_OrderHeaderID and T_OrderDeliveryIsActive = 'Y' and T_OrderDeliveryM_DeliveryTypeID = 4
|
|
join m_delivery ON M_DeliveryID = T_OrderDeliveryM_DeliveryID
|
|
JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID
|
|
join last_statuspayment ON Last_StatusPaymentT_OrderHeaderID = T_OrderHeaderID AND Last_StatusPaymentIsActive = 'Y'
|
|
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailT_TestIsResult = 'Y'
|
|
join group_resultdetail on Group_ResultDetailT_TestID = T_OrderDetailT_TestID
|
|
and T_OrderDetailIsActive = 'Y' and Group_ResultDetailIsActive = 'Y'
|
|
and T_OrderDetailT_OrderHeaderID = T_OrderHeaderID
|
|
join group_result on Group_ResultDetailGroup_ResultID = Group_ResultID
|
|
JOIN tx_whatsapp ON Tx_WhatsappT_OrderHeaderID = T_OrderHeaderID AND (Tx_WhatsappGroup_ResultID = Group_ResultID OR Tx_WhatsappGroup_ResultID = IF(Group_ResultFlagPerTest = 'Y',T_OrderDetailT_TestID,Group_ResultID)) AND Tx_WhatsappM_DeliveryID = M_DeliveryID AND Tx_WhatsappIsActive = 'Y'
|
|
LEFT JOIN t_email_nonlab ON T_EmailNonLabT_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND
|
|
T_EmailNonLabType LIKE CONCAT('%',REPLACE(Group_ResultName, 'Elektromedik', 'electromedis'),'%')
|
|
JOIN tx_whatsappdetail ON Tx_WhatsappDetailTx_WhatsappID = Tx_WhatsappID
|
|
JOIN t_orderpromise ON T_OrderPromiseT_OrderHeaderID = T_OrderHeaderID
|
|
LEFT JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderPromiseID IN(SELECT T_OrderPromiseID FROM t_orderpromise WHERE T_OrderPromiseT_OrderHeaderID = T_OrderHeaderID) AND
|
|
T_OrderDeliveryID = Result_ProcessToOfficeT_OrderDeliveryID AND Result_ProcessToOfficeStatus = 'S'
|
|
AND
|
|
(( Result_ProcessToOfficeGroup_ResultID = T_OrderDetailT_TestID AND Group_ResultFlagPerTest = 'Y')
|
|
or (Result_ProcessToOfficeGroup_ResultID = Group_ResultID AND Group_ResultFlagPerTest = 'N' ))
|
|
|
|
WHERE T_OrderHeaderIsActive = 'Y' AND (date(T_OrderHeaderDate) = '{$date}' OR date(T_OrderDeliveryCreated) = '{$date}') AND date(T_OrderHeaderDate) > '2021-11-25'
|
|
AND (JSON_UNQUOTE(JSON_EXTRACT(fn_get_patient_atribute(T_OrderHeaderM_PatientID), '$.patient_fullname')) LIKE CONCAT('%','{$nama}','%') OR T_OrderHeaderLabNumber LIKE CONCAT('%','{$nama}','%'))
|
|
|
|
GROUP BY IF(Group_ResultFlagPerTest = 'Y',T_OrderDetailT_TestID,Group_ResultID),M_DeliveryID,T_OrderHeaderID
|
|
ORDER BY T_OrderHeaderID DESC
|
|
limit $number_limit offset $number_offset";
|
|
}else{
|
|
$sql = "SELECT T_OrderHeaderID,
|
|
-1 as Tx_WhatsappOutboundID,
|
|
'' as outboundprovider,
|
|
IFNULL(Tx_WhatsappGroup_ResultID,IF(Group_ResultFlagPerTest = 'Y',T_OrderDetailT_TestID,Group_ResultID)) as Tx_WhatsappGroup_ResultID,
|
|
CONCAT(M_DoctorPrefix, ' ',M_DoctorName) as M_DoctorName,
|
|
JSON_UNQUOTE(JSON_EXTRACT(fn_get_patient_atribute(T_OrderHeaderM_PatientID), '$.patient_fullname')) as M_PatientName,
|
|
T_OrderHeaderLabNumber,
|
|
IF(T_EmailNonLabUrl IS NULL AND Group_ResultFlagNonLab = 'Y',' [Belum Pilih Format Hasil]','') temail,
|
|
IF(Group_ResultFlagPerTest = 'Y',T_OrderDetailT_TestID,Group_ResultID) as Group_ResultID,
|
|
GROUP_CONCAT(DISTINCT Group_ResultName SEPARATOR ' ,') as Group_ResultName,
|
|
IF(M_MouIsBill = 'Y','Sudah Lunas',if(ifnull(Last_StatusPaymentIsLunas,'N') = 'Y','Sudah Lunas','Belum Lunas')) as Last_StatusPaymentIsLunas,
|
|
IF(IFNULL(Tx_WhatsappIsSent,'N') = 'N','Pending','Terkirim') as wastatus,
|
|
IF(IF(Group_ResultFlagNonLab = 'Y','Y',T_OrderHeaderAddOnValidationDone) = 'N','Belum Selesai','Selesai') as validasi,
|
|
M_DeliveryName,
|
|
M_DeliverySource,
|
|
CASE
|
|
WHEN M_DeliverySource = 'PATIENT' THEN IF(T_OrderDeliveryDestination IS NULL OR T_OrderDeliveryDestination = '' OR T_OrderDeliveryDestination= 'null','-',T_OrderDeliveryDestination)
|
|
WHEN M_DeliverySource = 'DOCTOR' THEN IF(M_DoctorHP IS NULL OR M_DoctorHP = '' OR M_DoctorHP = 'null','-',M_DoctorHP)
|
|
END as
|
|
T_OrderDeliveryDestination,
|
|
CASE
|
|
WHEN M_DeliverySource = 'PATIENT' THEN IF(JSON_UNQUOTE(JSON_EXTRACT(fn_get_patient_atribute(T_OrderHeaderM_PatientID), '$.M_PatientHP')) IS NULL OR JSON_UNQUOTE(JSON_EXTRACT(fn_get_patient_atribute(T_OrderHeaderM_PatientID), '$.M_PatientHP')) = '' OR JSON_UNQUOTE(JSON_EXTRACT(fn_get_patient_atribute(T_OrderHeaderM_PatientID), '$.M_PatientHP')) = 'null','---',JSON_UNQUOTE(JSON_EXTRACT(fn_get_patient_atribute(T_OrderHeaderM_PatientID), '$.M_PatientHP')))
|
|
WHEN M_DeliverySource = 'DOCTOR' THEN IF(M_DoctorHP IS NULL OR M_DoctorHP = '' OR M_DoctorHP = 'null','---',M_DoctorHP)
|
|
END as hp,
|
|
Tx_WhatsappNote,
|
|
IF(SUM(IF(IFNULL(Tx_WhatsappDetailIsSend,'N') = 'N',0,1)) = 0,'N',IF(COUNT(Tx_WhatsappDetailID) = SUM(IF(Tx_WhatsappDetailIsSend = 'N',0,1)),'Y','P')) as K,
|
|
IF(SUM(IF(IFNULL(Tx_WhatsappDetailIsReceive,'N') = 'N',0,1)) = 0,'N',IF(COUNT(Tx_WhatsappDetailID) = SUM(IF(Tx_WhatsappDetailIsReceive = 'N',0,1)),'Y','P')) as T,
|
|
IF(SUM(IF(IFNULL(Tx_WhatsappDetailIsRead,'N') = 'N',0,1)) = 0,'N',IF(COUNT(Tx_WhatsappDetailID) = SUM(IF(Tx_WhatsappDetailIsRead = 'N',0,1)),'Y','P')) as B,
|
|
IF(SUM(IF(IFNULL(IF(Tx_WhatsappDetailIsRead = 'Y','N',Tx_WhatsappDetailIsTimeout),'N') = 'N',0,1)) = 0,'N',IF(COUNT(Tx_WhatsappDetailID) = SUM(IF(IF(Tx_WhatsappDetailIsRead = 'Y','N',Tx_WhatsappDetailIsTimeout) = 'N',0,1)),'Y','P')) as istimeout,
|
|
'' as statusprovider,
|
|
M_DeliveryID,
|
|
4 as M_DeliveryTypeID,
|
|
IFNULL(Result_ProcessToOfficeStatus,'N') as Result_ProcessToOfficeStatus,
|
|
IF(IFNULL(Result_ProcessToOfficeStatus,'N') = 'N', 'Belum Serahkan Hasil','') as serahhasil,
|
|
IFNULL(Tx_WhatsappPartialID,0) as Tx_WhatsappPartialID,
|
|
IFNULL(Tx_WhatsappPartialIsSent,'N') as Tx_WhatsappPartialIsSent
|
|
FROM t_orderheader
|
|
JOIN m_mou ON T_OrderHeaderM_MouID = M_MouID
|
|
JOIN t_orderheaderaddon ON T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID
|
|
join t_orderdelivery on T_OrderHeaderID = T_OrderDeliveryT_OrderHeaderID and T_OrderDeliveryIsActive = 'Y' and T_OrderDeliveryM_DeliveryTypeID = 4
|
|
join m_delivery ON M_DeliveryID = T_OrderDeliveryM_DeliveryID
|
|
JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID
|
|
join last_statuspayment ON Last_StatusPaymentT_OrderHeaderID = T_OrderHeaderID AND Last_StatusPaymentIsActive = 'Y'
|
|
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailT_TestIsResult = 'Y'
|
|
join group_resultdetail on Group_ResultDetailT_TestID = T_OrderDetailT_TestID
|
|
and T_OrderDetailIsActive = 'Y' and Group_ResultDetailIsActive = 'Y'
|
|
and T_OrderDetailT_OrderHeaderID = T_OrderHeaderID
|
|
join group_result on Group_ResultDetailGroup_ResultID = Group_ResultID
|
|
LEFT JOIN tx_whatsapp ON Tx_WhatsappT_OrderHeaderID = T_OrderHeaderID AND Tx_WhatsappGroup_ResultID = Group_ResultID AND Tx_WhatsappM_DeliveryID = M_DeliveryID AND Tx_WhatsappIsActive = 'Y'
|
|
LEFT JOIN tx_whatsapp_partial ON Tx_WhatsappPartialT_OrderHeaderID = T_OrderHeaderID AND Tx_WhatsappPartialGroup_ResultID = IF(Group_ResultFlagPerTest = 'Y',T_OrderDetailT_TestID,Group_ResultID) AND Tx_WhatsappPartialM_DeliveryID = M_DeliveryID AND Tx_WhatsappPartialIsActive = 'Y'
|
|
LEFT JOIN t_email_nonlab ON T_EmailNonLabT_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND
|
|
T_EmailNonLabType LIKE CONCAT('%',REPLACE(Group_ResultName, 'Elektromedik', 'electromedis'),'%')
|
|
LEFT JOIN tx_whatsappdetail ON Tx_WhatsappDetailTx_WhatsappID = Tx_WhatsappID
|
|
JOIN t_orderpromise ON T_OrderPromiseT_OrderHeaderID = T_OrderHeaderID
|
|
LEFT JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderPromiseID IN(SELECT T_OrderPromiseID FROM t_orderpromise WHERE T_OrderPromiseT_OrderHeaderID = T_OrderHeaderID) AND
|
|
T_OrderDeliveryID = Result_ProcessToOfficeT_OrderDeliveryID AND Result_ProcessToOfficeStatus = 'S'
|
|
AND
|
|
(( Result_ProcessToOfficeGroup_ResultID = T_OrderDetailT_TestID AND Group_ResultFlagPerTest = 'Y')
|
|
or (Result_ProcessToOfficeGroup_ResultID = Group_ResultID AND Group_ResultFlagPerTest = 'N' ))
|
|
|
|
WHERE Tx_WhatsappID IS NULL AND IFNULL(Tx_WhatsappPartialIsSent,'N') = 'N' AND T_OrderHeaderIsActive = 'Y' AND (date(T_OrderHeaderDate) = '{$date}' OR date(T_OrderDeliveryCreated) = '{$date}') AND date(T_OrderHeaderDate) > '2021-11-25'
|
|
AND (JSON_UNQUOTE(JSON_EXTRACT(fn_get_patient_atribute(T_OrderHeaderM_PatientID), '$.patient_fullname')) LIKE CONCAT('%','{$nama}','%') OR T_OrderHeaderLabNumber LIKE CONCAT('%','{$nama}','%'))
|
|
|
|
GROUP BY IF(Group_ResultFlagPerTest = 'Y',T_OrderDetailT_TestID,Group_ResultID),M_DeliveryID,T_OrderHeaderID
|
|
ORDER BY T_OrderHeaderID DESC
|
|
limit $number_limit offset $number_offset";
|
|
}
|
|
|
|
|
|
$query = $this->db_onedev->query($sql, $sql_param);
|
|
//echo $this->db_onedev->last_query();
|
|
$rows = $query->result_array();
|
|
if($rows){
|
|
foreach($rows as $k => $v){
|
|
//$rows[$k]['verification_px'] = $this->add_verification_test($v['M_PatientID']);
|
|
|
|
}
|
|
}
|
|
|
|
|
|
//$this->_add_address($rows);
|
|
$result = array("total" => $tot_page,"total_filter" => $tot_page2,"records" => $rows, "sql"=> $this->db_onedev->last_query());
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
function resend(){
|
|
try {
|
|
//# cek token valid
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
|
|
//# ambil parameter input
|
|
$prm = $this->sys_input;
|
|
$id = $prm['id'];
|
|
$orderid = $prm['orderid'];
|
|
$gresultid = $prm['gresultid'];
|
|
$deliveryid = $prm['deliveryid'];
|
|
$deliverytypeid = $prm['deliverytypeid'];
|
|
$userid = $this->sys_user["M_UserID"];
|
|
$sql = "update tx_whatsapp SET
|
|
Tx_WhatsappIsActive = 'N'
|
|
WHERE
|
|
Tx_WhatsappT_OrderHeaderID = $orderid
|
|
AND
|
|
Tx_WhatsappM_DeliveryID = $deliveryid";
|
|
|
|
$query = $this->db_onedev->query($sql);
|
|
if (!$query) {
|
|
$this->sys_error_db("tx_whatsapp delete");
|
|
exit;
|
|
}
|
|
|
|
$sqlpartial = "update tx_whatsapp_partial SET
|
|
Tx_WhatsappPartialIsActive = 'N'
|
|
WHERE
|
|
Tx_WhatsappPartialT_OrderHeaderID = $orderid
|
|
AND
|
|
Tx_WhatsappPartialM_DeliveryID = $deliveryid";
|
|
|
|
$querypartial = $this->db_onedev->query($sqlpartial);
|
|
// echo $query;
|
|
if (!$querypartial) {
|
|
$this->sys_error_db("tx_whatsapp_partial delete");
|
|
exit;
|
|
}
|
|
$sqlorderdelivery = "update t_orderdelivery set T_OrderDeliveryIsDone = 'N'
|
|
where T_OrderDeliveryT_OrderHeaderID = $orderid and T_OrderDeliveryM_DeliveryID = $deliveryid ";
|
|
$queryorderdelivery = $this->db_onedev->query($sqlorderdelivery);
|
|
if (!$queryorderdelivery) {
|
|
$this->sys_error_db("t_orderdelivery delete");
|
|
exit;
|
|
}
|
|
$sql = "select Result_ProcessToOfficeGroup_ResultID as Group_ResultID
|
|
from result_processtooffice
|
|
where Result_ProcessToOfficeT_OrderHeaderID = $orderid and Result_ProcessToOfficeT_OrderDeliveryM_DeliveryID = $deliveryid
|
|
GROUP BY Result_ProcessToOfficeGroup_ResultID";
|
|
// echo $sql;
|
|
$qry = $this->db->query($sql);
|
|
if (! $qry) {
|
|
return;
|
|
}
|
|
|
|
$rows = $qry->result_array();
|
|
if( count($rows) == 0 ) return;
|
|
foreach($rows as $r) {
|
|
$Group_ResultID = $r["Group_ResultID"];
|
|
$sql = "insert into result_processtooffice (
|
|
Result_ProcessToOfficeT_OrderHeaderID,
|
|
Result_ProcessToOfficeT_OrderDeliveryID,
|
|
Result_ProcessToOfficeT_OrderDeliveryM_DeliveryTypeID,
|
|
Result_ProcessToOfficeT_OrderDeliveryM_DeliveryID,
|
|
Result_ProcessToOfficeT_OrderPromiseID,
|
|
Result_ProcessToOfficeGroup_ResultID,
|
|
Result_ProcessToOfficeSendBy,
|
|
Result_ProcessToOfficeSendTime,
|
|
Result_ProcessToOfficeStatus,
|
|
Result_ProcessToOfficeUserID,
|
|
Result_ProcessToOfficeCreated,
|
|
Result_ProcessToOfficeLastUpdated)
|
|
select
|
|
Result_ProcessToOfficeT_OrderHeaderID,
|
|
Result_ProcessToOfficeT_OrderDeliveryID,
|
|
Result_ProcessToOfficeT_OrderDeliveryM_DeliveryTypeID,
|
|
Result_ProcessToOfficeT_OrderDeliveryM_DeliveryID,
|
|
Result_ProcessToOfficeT_OrderPromiseID,
|
|
Result_ProcessToOfficeGroup_ResultID,
|
|
$userid as Result_ProcessToOfficeSendBy,
|
|
now() as Result_ProcessToOfficeSendTime,
|
|
'S' as Result_ProcessToOfficeStatus,
|
|
$userid as Result_ProcessToOfficeUserID,
|
|
now() as Result_ProcessToOfficeCreated,
|
|
now() Result_ProcessToOfficeLastUpdated
|
|
from result_processtooffice
|
|
WHERE
|
|
Result_ProcessToOfficeIsActive = 'Y' AND
|
|
Result_ProcessToOfficeT_OrderHeaderID = $orderid AND
|
|
Result_ProcessToOfficeT_OrderDeliveryM_DeliveryID = $deliveryid AND
|
|
Result_ProcessToOfficeGroup_ResultID = $Group_ResultID
|
|
GROUP BY Result_ProcessToOfficeGroup_ResultID";
|
|
$qry = $this->db->query($sql);
|
|
// echo $sql;
|
|
// echo $this->db_onedev->last_query();
|
|
}
|
|
|
|
$result = array ("total" => 1, "records" => array("xid" => 0));
|
|
$this->sys_ok($result);
|
|
|
|
} catch(Exception $exc) {
|
|
$message = $exc->getMessage();
|
|
$this->sys_error($message);
|
|
}
|
|
}
|
|
function partialsend(){
|
|
try {
|
|
//# cek token valid
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
|
|
//# ambil parameter input
|
|
$prm = $this->sys_input;
|
|
$id = $prm['id'];
|
|
$orderid = $prm['orderid'];
|
|
$gresultid = $prm['gresultid'];
|
|
$deliveryid = $prm['deliveryid'];
|
|
$deliverytypeid = $prm['deliverytypeid'];
|
|
$pdestinastion = $prm['pdestinastion'];
|
|
|
|
$userid = $this->sys_user["M_UserID"];
|
|
$sql = "insert into tx_whatsapp_partial (
|
|
Tx_WhatsappPartialT_OrderHeaderID,
|
|
Tx_WhatsappPartialGroup_ResultID,
|
|
Tx_WhatsappPartialM_DeliveryID,
|
|
Tx_WhatsappPartialDestination,
|
|
Tx_WhatsappPartialUserID) VALUES(
|
|
$orderid,
|
|
$gresultid,
|
|
$deliveryid,
|
|
'{$pdestinastion}',
|
|
$userid
|
|
)";
|
|
|
|
$query = $this->db_onedev->query($sql);
|
|
// echo $query;
|
|
if (!$query) {
|
|
$this->sys_error_db("tx_whatsapp_partial insert");
|
|
exit;
|
|
}
|
|
|
|
$result = array ("total" => 1, "records" => array("xid" => 0));
|
|
$this->sys_ok($result);
|
|
|
|
} catch(Exception $exc) {
|
|
$message = $exc->getMessage();
|
|
$this->sys_error($message);
|
|
}
|
|
}
|
|
public function searchconfirm()
|
|
{
|
|
$prm = $this->sys_input;
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$code = $prm["code"];
|
|
$nama = $prm["name"];
|
|
$date = $prm['date'];
|
|
|
|
$e = explode('+', $prm['name']);
|
|
if (isset($e[0]))
|
|
$nama = "%{$e[0]}%";
|
|
if (isset($e[1]))
|
|
$alamat = "%{$e[1]}%";
|
|
if (isset($e[2]))
|
|
$nohp = "%{$e[2]}%";
|
|
// echo $norm;
|
|
|
|
$sql_where = "";
|
|
$sql_param = array();
|
|
if ($code != "") {
|
|
if ($sql_where != "") {
|
|
$sql_where .=" and ";
|
|
}
|
|
$sql_where .= " M_DoctorOldCode like ?";
|
|
$sql_param[] = "$code";
|
|
//$prm['current_page'] = 1;
|
|
}
|
|
if ($nama != "") {
|
|
if ($sql_where != "") {
|
|
$sql_where .=" and ";
|
|
}
|
|
$sql_where .= " M_DoctorName like ?";
|
|
$sql_param[] = "$nama";
|
|
//$prm['current_page'] = 1;
|
|
}
|
|
if ($alamat != "") {
|
|
if ($sql_where != "") {
|
|
$sql_where .=" and ";
|
|
}
|
|
$sql_where .= " CONCAT(M_DoctorAddressNote, ': ',M_DoctorAddressDescription) like ?";
|
|
$sql_param[] = "$alamat";
|
|
//$prm['current_page'] = 1;
|
|
}
|
|
if ($nohp != "") {
|
|
if ($sql_where != "") {
|
|
$sql_where .=" and ";
|
|
}
|
|
$sql_where .= " M_DoctorHP like ?";
|
|
$sql_param[] = "$nohp";
|
|
//$prm['current_page'] = 1;
|
|
}
|
|
if ($sql_where != "") $sql_where .= " and ";
|
|
|
|
// Order masih dalam status registrasi
|
|
$sql_where .= " M_DoctorIsMarketingConfirm = 'Y' AND M_DoctorIsActive = 'Y'";
|
|
if ($sql_where != "") {
|
|
$sql_where = " where $sql_where";
|
|
//$prm['current_page'] = 1;
|
|
}
|
|
|
|
$number_limit = 10;
|
|
$number_offset = ($prm['current_page'] - 1) * $number_limit ;
|
|
|
|
$sql = " SELECT count(*) as total, CONCAT(M_DoctorAddressNote, ': ',M_DoctorAddressDescription) as doctor_address
|
|
|
|
FROM m_doctor
|
|
JOIN m_sex ON M_DoctorM_SexID = M_SexID
|
|
LEFT JOIN m_religion ON M_DoctorM_ReligionID = M_ReligionID
|
|
LEFT JOIN m_staff ON M_DoctorM_StaffID = M_StaffID
|
|
left join m_doctoraddress ON M_DoctorOldCode = M_DoctorAddressM_DoctorOldCode AND M_DoctorAddressIsActive = 'Y'
|
|
|
|
$sql_where
|
|
";
|
|
$query = $this->db_onedev->query($sql, $sql_param);
|
|
$tot_count = 0;
|
|
$tot_page = 0;
|
|
if ($query) {
|
|
$tot_count = $query->result_array()[0]["total"];
|
|
$tot_page = ceil($tot_count/$number_limit);
|
|
} else {
|
|
$this->sys_error_db("m_doctor count", $this->db_onedev);
|
|
exit;
|
|
}
|
|
|
|
$doctor_field = "
|
|
M_DoctorID,
|
|
M_DoctorOldCode,
|
|
M_DoctorCode ,
|
|
M_DoctorPrefix ,
|
|
M_DoctorPrefix2 ,
|
|
M_DoctorName ,
|
|
M_DoctorSufix ,
|
|
M_DoctorSufix2 ,
|
|
M_DoctorSufix3 ,
|
|
M_DoctorM_SexID ,
|
|
M_DoctorM_ReligionID,
|
|
M_DoctorM_StaffID,
|
|
IFNULL(M_DoctorEmail,'') as M_DoctorEmail,
|
|
M_DoctorHP ,
|
|
M_DoctorNote,
|
|
M_DoctorPhone ,
|
|
M_DoctorIsMarketingConfirm,
|
|
ifnull(M_DoctorPjIsPJ,'N') M_DoctorIsPJ,
|
|
ifnull(M_DoctorPjIsDefaultPJ,'N') M_DoctorIsDefaultPJ ,
|
|
M_DoctorM_SpecialID ,
|
|
ifnull(M_DoctorPjIsClinic,'N') M_DoctorIsClinic ,
|
|
ifnull(M_DoctorPjIsDefault,'N') M_DoctorIsDefault ,
|
|
M_DoctorEmailIsDefault,
|
|
M_DoctorIsDefaultMcu,
|
|
M_DoctorCreated ,
|
|
M_DoctorLastUpdated,
|
|
M_DoctorIsActive,
|
|
M_DoctorReportCode ,
|
|
M_DoctorPrivateRequest,
|
|
M_DoctorM_UserID ,
|
|
M_DoctorCreated,
|
|
";
|
|
$sql = "SELECT $doctor_field
|
|
CONCAT(IFNULL(M_DoctorPrefix,''),IFNULL(M_DoctorPrefix2,''),' ',M_DoctorName,' ',IFNULL(M_DoctorSufix,''),IFNULL(M_DoctorSufix2,''),IFNULL(M_DoctorSufix3,'')) as doctor_fullname,
|
|
M_SexName,
|
|
M_ReligionName,
|
|
M_StaffName,
|
|
GROUP_CONCAT(CONCAT(M_DoctorAddressNote, ': ',M_DoctorAddressDescription) SEPARATOR '\r\n') as M_DoctorAddressNote,
|
|
GROUP_CONCAT(CONCAT(M_DoctorAddressNote, ': ',M_DoctorAddressDescription) SEPARATOR '\r\n') as doctor_address,
|
|
'Telah dikonfirmasi marketing' as status
|
|
FROM m_doctor
|
|
JOIN m_sex ON M_DoctorM_SexID = M_SexID
|
|
left join m_doctorpj on M_DoctorID = M_DoctorPjM_DoctorID
|
|
left JOIN m_religion ON M_DoctorM_ReligionID = M_ReligionID
|
|
left JOIN m_staff ON M_DoctorM_StaffID = M_StaffID
|
|
left join m_doctoraddress ON M_DoctorOldCode = M_DoctorAddressM_DoctorOldCode AND M_DoctorAddressIsActive = 'Y'
|
|
$sql_where
|
|
GROUP BY M_DoctorID
|
|
ORDER BY M_DoctorName ASC
|
|
limit $number_limit offset $number_offset";
|
|
|
|
$query = $this->db_onedev->query($sql, $sql_param);
|
|
// echo $this->db_onedev->last_query();
|
|
$rows = $query->result_array();
|
|
if($rows){
|
|
foreach($rows as $k => $v){
|
|
//$rows[$k]['verification_px'] = $this->add_verification_test($v['M_PatientID']);
|
|
|
|
}
|
|
}
|
|
|
|
|
|
//$this->_add_address($rows);
|
|
$result = array("total" => $tot_page, "records" => $rows, "sql"=> $this->db_onedev->last_query());
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
function getsexreg(){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$rows = [];
|
|
$query =" SELECT *
|
|
FROM m_sex
|
|
WHERE
|
|
M_SexIsActive = 'Y'
|
|
";
|
|
//echo $query;
|
|
$rows['sexes'] = $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 0 as M_StaffID, 'Semua' as M_StaffName
|
|
UNION
|
|
SELECT M_StaffID, M_StaffName
|
|
FROM m_staff
|
|
WHERE
|
|
M_StaffIsActive = 'Y' and M_StaffM_PositionID = '2'
|
|
|
|
";
|
|
//echo $query;
|
|
$rows['staffs'] = $this->db_onedev->query($query)->result_array();
|
|
$query ="
|
|
SELECT '' as M_BranchCode, 'Semua' as M_BranchName
|
|
UNION
|
|
SELECT M_BranchCode, M_BranchName
|
|
FROM m_branch
|
|
WHERE
|
|
M_BranchIsActive = 'Y'
|
|
|
|
";
|
|
//echo $query;
|
|
$rows['branchs'] = $this->db_onedev->query($query)->result_array();
|
|
|
|
$query =" SELECT *
|
|
FROM nat_jpa
|
|
WHERE
|
|
Nat_JpaIsActive = 'Y'
|
|
";
|
|
//echo $query;
|
|
$rows['jpas'] = $this->db_onedev->query($query)->result_array();
|
|
|
|
|
|
$result = array(
|
|
"total" => count($rows) ,
|
|
"records" => $rows,
|
|
);
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
function getnewcode(){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$sql = $this->db_onedev->query("SELECT `fn_numbering`('DOCTOR') as code")->row();
|
|
$newcode = $sql->code;
|
|
|
|
$rows = [];
|
|
$query ="SELECT `fn_numbering`('DOCTOR') as code
|
|
";
|
|
//echo $query;
|
|
$rows['code'] = $this->db_onedev->query($query)->result_array();
|
|
|
|
|
|
$result = array(
|
|
"total" => 1,
|
|
"records" => $rows,
|
|
"newcode" => $newcode
|
|
);
|
|
$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 getjpa(){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$prm = $this->sys_input;
|
|
$query =" SELECT *
|
|
FROM nat_jpa
|
|
WHERE
|
|
Nat_JpaIsActive = 'Y'
|
|
";
|
|
//echo $query;
|
|
$rows = $this->db_onedev->query($query)->result_array();
|
|
|
|
// $rows['jpas'] = $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"];
|
|
|
|
// ambil data lama
|
|
$sql = "select * from tx_whatsapp where Tx_WhatsappID = ?";
|
|
$qry = $this->db_onedev->query($sql,array($prm["id"]));
|
|
$rows = $qry->result_array();
|
|
$old_doctor = array();
|
|
if (count($rows) > 0 ) $old_doctor = $rows[0];
|
|
|
|
$query ="UPDATE tx_whatsapp SET
|
|
Tx_WhatsappUpdated = now(),
|
|
Tx_WhatsappUserID = '{$userid}',
|
|
Tx_WhatsappIsSent = 'Y'
|
|
WHERE
|
|
Tx_WhatsappID = '{$prm['id']}'
|
|
";
|
|
//echo $query;
|
|
$rows = $this->db_onedev->query($query);
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
|
|
function newdoctor(){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$userid = $this->sys_user["M_UserID"];
|
|
$prm = $this->sys_input;
|
|
$ispj = $prm['M_DoctorIsPJ'];
|
|
$isdefaultpj = $prm['M_DoctorIsDefaultPJ'];
|
|
$isdefault = $prm['M_DoctorIsDefault'];
|
|
$isclinic = $prm['M_DoctorIsClinic'];
|
|
$query ="INSERT INTO m_doctor (
|
|
M_DoctorPrefix,
|
|
M_DoctorPrefix2,
|
|
M_DoctorName,
|
|
M_DoctorSufix,
|
|
M_DoctorSufix2,
|
|
M_DoctorSufix3,
|
|
M_DoctorM_SexID,
|
|
M_DoctorM_ReligionID,
|
|
M_DoctorM_StaffID,
|
|
M_DoctorEmail,
|
|
M_DoctorHP,
|
|
M_DoctorNote,
|
|
M_DoctorPhone,
|
|
M_DoctorIsMarketingConfirm,
|
|
M_DoctorIsPJ,
|
|
M_DoctorIsDefaultPJ,
|
|
M_DoctorIsClinic,
|
|
M_DoctorIsDefault,
|
|
M_DoctorEmailIsDefault,
|
|
M_DoctorM_UserID
|
|
)
|
|
VALUES(
|
|
'{$prm['M_DoctorPrefix']}',
|
|
'{$prm['M_DoctorPrefix2']}',
|
|
'{$prm['M_DoctorName']}',
|
|
'{$prm['M_DoctorSufix']}',
|
|
'{$prm['M_DoctorSufix2']}',
|
|
'{$prm['M_DoctorSufix3']}',
|
|
'{$prm['M_DoctorM_SexID']}',
|
|
'{$prm['M_DoctorM_ReligionID']}',
|
|
'{$prm['M_DoctorM_StaffID']}',
|
|
'{$prm['M_DoctorEmail']}',
|
|
'{$prm['M_DoctorHP']}',
|
|
'{$prm['M_DoctorNote']}',
|
|
'{$prm['M_DoctorPhone']}',
|
|
'{$prm['M_DoctorIsMarketingConfirm']}',
|
|
'{$prm['M_DoctorIsPJ']}',
|
|
'{$prm['M_DoctorIsDefaultPJ']}',
|
|
'{$prm['M_DoctorIsClinic']}',
|
|
'{$prm['M_DoctorIsDefault']}',
|
|
'{$prm['M_DoctorEmailIsDefault']}',
|
|
$userid
|
|
)
|
|
";
|
|
//echo $query;
|
|
$rows = $this->db_onedev->query($query);
|
|
$last_id = $this->db_onedev->insert_id();
|
|
if($rows){
|
|
if($isdefault == 'Y'){
|
|
$querydefault ="UPDATE m_doctorpj SET
|
|
M_DoctorPjIsDefault = 'N' WHERE M_DoctorPjIsDefault = 'Y'
|
|
";
|
|
$rows = $this->db_onedev->query($querydefault);
|
|
}
|
|
if($isdefaultpj == 'Y'){
|
|
$querydefault ="UPDATE m_doctorpj SET
|
|
M_DoctorPjIsDefaultPJ = 'N' WHERE M_DoctorPjIsDefaultPJ = 'Y'
|
|
";
|
|
$rows = $this->db_onedev->query($querydefault);
|
|
}
|
|
if($ispj == 'Y' || $isdefaultpj == 'Y' || $isdefault == 'Y' || $isclinic === 'Y'){
|
|
$querypj ="INSERT INTO m_doctorpj (
|
|
M_DoctorPjM_DoctorID,
|
|
M_DoctorPjIsPJ,
|
|
M_DoctorPjIsDefaultPJ,
|
|
M_DoctorPjIsClinic,
|
|
M_DoctorPjIsDefault,
|
|
M_DoctorPjCreated
|
|
)
|
|
VALUES(
|
|
'{$last_id}',
|
|
'{$prm['M_DoctorIsPJ']}',
|
|
'{$prm['M_DoctorIsDefaultPJ']}',
|
|
'{$prm['M_DoctorIsClinic']}',
|
|
'{$prm['M_DoctorIsDefault']}',
|
|
NOW()
|
|
)
|
|
";
|
|
$rows = $this->db_onedev->query($querypj);
|
|
}
|
|
}
|
|
$result = array(
|
|
"total" => 1 ,
|
|
"records" => array('status'=>'OK'),
|
|
"id" => $last_id
|
|
);
|
|
//sipe tambah log doctor
|
|
$prm["M_DoctorID"] = $last_id;
|
|
$prm["M_DoctorM_UserID"] = $userid;
|
|
$d_doctor = json_encode($prm);
|
|
$this->db_onedev->query("call one_log.log_me('DOCTOR','DOCTOR_ADD','{$d_doctor}',$userid)");
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
|
|
function deletedoctor(){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$prm = $this->sys_input;
|
|
// sipe nambah ambil userid
|
|
$userid = $this->sys_user["M_UserID"];
|
|
|
|
$query ="UPDATE m_doctor SET
|
|
M_DoctorIsActive = 'N'
|
|
WHERE
|
|
M_DoctorID = '{$prm['M_DoctorID']}'
|
|
";
|
|
//echo $query;
|
|
$rows = $this->db_onedev->query($query);
|
|
|
|
$result = array(
|
|
"total" => 1 ,
|
|
"records" => array('status'=>'OK')
|
|
);
|
|
//adi tambah log doctor
|
|
$prm["M_DoctorM_UserID"] = $userid;
|
|
$d_doctor = json_encode($prm);
|
|
$this->db_onedev->query("call one_log.log_me('DOCTOR','DOCTOR_DELETE','{$d_doctor}',$userid)");
|
|
$this->sys_ok($result);
|
|
exit;
|
|
|
|
|
|
}
|
|
|
|
function getaddress(){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$prm = $this->sys_input;
|
|
$query =" SELECT m_doctoraddress.*,
|
|
M_KelurahanName,
|
|
M_DistrictID,
|
|
M_DistrictName,
|
|
M_CityID,
|
|
M_CityName,Nat_JpaName,
|
|
'' as action
|
|
FROM m_doctoraddress
|
|
JOIN m_kelurahan ON M_DoctorAddressM_KelurahanID = M_KelurahanID
|
|
JOIN m_district ON M_KelurahanM_DistrictID = M_DistrictID
|
|
JOIN m_city ON M_DistrictM_CityID = M_CityID
|
|
left join nat_jpa on M_DoctorAddressNat_JpaID = Nat_JpaID
|
|
WHERE
|
|
M_DoctorAddressIsActive = 'Y' AND M_DoctorAddressM_DoctorID = ?
|
|
";
|
|
//echo $query;
|
|
$rows = $this->db_onedev->query($query,array($prm['id']))->result_array();
|
|
if($rows){
|
|
foreach($rows as $k => $v){
|
|
$rows[$k]['action'] = '<v-icon color="error" @click="deleteAddress(props.item)">delete</v-icon>';
|
|
$rows[$k]['action'] .= '<v-icon color="primary" @click="deleteAddress(props.item)">edit</v-icon>';
|
|
|
|
}
|
|
}
|
|
$result = array(
|
|
"total" => count($rows) ,
|
|
"records" => $rows,
|
|
);
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
|
|
function savenewaddress(){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$userid = $this->sys_user["M_UserID"];
|
|
$prm = $this->sys_input;
|
|
$count_addrs = $this->db_onedev->query("SELECT COUNT(*) as countx FROM m_doctoraddress WHERE M_DoctorAddressM_DoctorID = '{$prm['M_DoctorAddressM_DoctorID']}' AND M_DoctorAddressIsActive = 'Y'")->row()->countx;
|
|
|
|
//echo $this->db_onedev->last_query();
|
|
if($count_addrs == 0){
|
|
$prm['M_DoctorAddressNote'] = 'Utama';
|
|
}
|
|
else{
|
|
$count_addrs_utama = $this->db_onedev->query("SELECT COUNT(*) as countx FROM m_doctoraddress WHERE M_DoctorAddressM_DoctorID = '{$prm['M_DoctorAddressM_DoctorID']}' AND M_DoctorAddressNote = 'Utama' AND M_DoctorAddressIsActive = 'Y'")->row()->countx;
|
|
if($count_addrs_utama > 0 && strtolower($prm['M_DoctorAddressNote']) == 'utama'){
|
|
$rx = date('YmdHis');
|
|
$prm['M_DoctorAddressNote'] = 'Utama_'.$rx;
|
|
}
|
|
}
|
|
$query ="INSERT INTO m_doctoraddress (
|
|
M_DoctorAddressM_DoctorID,
|
|
M_DoctorAddressNote,
|
|
M_DoctorAddressDescription,
|
|
M_DoctorAddressM_KelurahanID,
|
|
M_DoctorAddressNat_JpaID,
|
|
M_DoctorAddressCreated
|
|
)
|
|
VALUES(
|
|
'{$prm['M_DoctorAddressM_DoctorID']}',
|
|
'{$prm['M_DoctorAddressNote']}',
|
|
'{$prm['M_DoctorAddressDescription']}',
|
|
'{$prm['M_DoctorAddressM_KelurahanID']}',
|
|
'{$prm['M_DoctorAddressNat_JpaID']}',
|
|
NOW()
|
|
)
|
|
";
|
|
//echo $query;
|
|
$rows = $this->db_onedev->query($query);
|
|
|
|
$result = array(
|
|
"total" => 1 ,
|
|
"records" => array('status'=>'OK')
|
|
);
|
|
//adi tambah log doctor
|
|
$prm["M_DoctorM_UserID"] = $userid;
|
|
$d_doctor = json_encode($prm);
|
|
$this->db_onedev->query("call one_log.log_me('DOCTOR','DOCTOR_ADDR','{$d_doctor}',$userid)");
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
|
|
function saveeditaddress(){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$userid = $this->sys_user["M_UserID"];
|
|
$prm = $this->sys_input;
|
|
|
|
$query ="UPDATE m_doctoraddress SET
|
|
M_DoctorAddressM_DoctorID = '{$prm['M_DoctorAddressM_DoctorID']}',
|
|
M_DoctorAddressNote = '{$prm['M_DoctorAddressNote']}',
|
|
M_DoctorAddressDescription = '{$prm['M_DoctorAddressDescription']}',
|
|
M_DoctorAddressM_KelurahanID = '{$prm['M_DoctorAddressM_KelurahanID']}',
|
|
M_DoctorAddressNat_JpaID = '{$prm['M_DoctorAddressNat_JpaID']}'
|
|
WHERE
|
|
M_DoctorAddressID = '{$prm['M_DoctorAddressID']}'
|
|
";
|
|
// echo $query;
|
|
$rows = $this->db_onedev->query($query);
|
|
|
|
$result = array(
|
|
"total" => 1 ,
|
|
"records" => array('status'=>'OK')
|
|
);
|
|
//adi tambah log doctor
|
|
$prm["M_DoctorM_UserID"] = $userid;
|
|
$d_doctor = json_encode($prm);
|
|
$this->db_onedev->query("call one_log.log_me('DOCTOR','DOCTOR_ADDR_EDIT','{$d_doctor}',$userid)");
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
|
|
function deleteaddress(){
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$userid = $this->sys_user["M_UserID"];
|
|
$prm = $this->sys_input;
|
|
|
|
$query ="UPDATE m_doctoraddress SET
|
|
M_DoctorAddressIsActive = 'N'
|
|
WHERE
|
|
M_DoctorAddressID = '{$prm['M_DoctorAddressID']}'
|
|
";
|
|
//echo $query;
|
|
$rows = $this->db_onedev->query($query);
|
|
|
|
$result = array(
|
|
"total" => 1 ,
|
|
"records" => array('status'=>'OK')
|
|
);
|
|
//adi tambah log doctor
|
|
$prm["M_DoctorM_UserID"] = $userid;
|
|
$d_doctor = json_encode($prm);
|
|
$this->db_onedev->query("call one_log.log_me('DOCTOR','DOCTOR_ADDR_DELETE','{$d_doctor}',$userid)");
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
|
|
}
|