Files
BE_IBL/application/controllers/mockup/masterdata/Doctorv4.php
2026-04-15 15:24:12 +07:00

953 lines
30 KiB
PHP

<?php
class Doctorv4 extends MY_Controller
{
var $db_regional;
public function index()
{
echo "Doctor API";
}
public function __construct()
{
parent::__construct();
$this->db_regional = $this->load->database("onedev", true);
}
public function search()
{
$prm = $this->sys_input;
if (! $this->isLogin) {
$this->sys_error("Invalid Token");
exit;
}
$nama = $prm["name"];
$status = $prm["status"];
$staff = $prm['staff'];
// echo $norm;
//echo 'dasdsa';
$sql_where = "WHERE M_DoctorIsActive = 'Y' AND M_DoctorIsMarketingConfirm = '{$status}'";
$sql_param = array();
if ($nama != "") {
if ($sql_where != "") {
$sql_where .=" and ";
}
$sql_where .= " M_DoctorName like ? ";
$sql_param[] = "%$nama%";
//$prm['current_page'] = 1;
}
//if ($sql_where != "") $sql_where .= " and ";
// Order masih dalam status registrasi
//$sql_where .= " M_DoctorIsMarketingConfirm = '{$status}' AND M_DoctorIsActive = 'Y' ";
if ($sql_where != "") {
$sql_where = "$sql_where";
//$prm['current_page'] = 1;
}
if(intval($staff) > 0){
$sql_where = "$sql_where AND M_DoctorM_StaffNIK = '{$staff}'";
}
$number_limit = 10;
$number_offset = ($prm['current_page'] - 1) * $number_limit ;
$sql = " SELECT count(*) as total
FROM (
SELECT *
FROM m_doctor
JOIN m_sex ON M_DoctorM_SexID = M_SexID
LEFT JOIN m_religion ON M_DoctorM_ReligionID = M_ReligionID
LEFT JOIN nat_staff ON M_DoctorM_StaffNIK = Nat_StaffNIK
$sql_where
GROUP BY M_DoctorID
) x
";
//echo $sql;
$query = $this->db_regional->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_regional);
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_DoctorM_StaffNIK,
M_DoctorM_SpecialistID,
DATE_FORMAT(M_DoctorDOB,'%d%m%Y') M_DoctorDOB,
";
$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,
Nat_StaffID,
Nat_StaffNIK,
IF(Nat_StaffNIK = '' OR Nat_StaffNIK IS NULL, '', Nat_StaffName) as Nat_StaffName,
IF(M_DoctorM_SpecialistID = 0 OR M_DoctorM_SpecialistID IS NULL, '', M_SpecialistName) as M_SpecialistName,
IF(M_DoctorIsMarketingConfirm = 'N', 'Belum dikonfirmasi marketing','Sudah 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 AND M_DoctorPjIsActive = 'Y'
left JOIN m_religion ON M_DoctorM_ReligionID = M_ReligionID
left JOIN nat_staff ON M_DoctorM_StaffNIK = Nat_StaffNIK
LEFT JOIN m_specialist ON M_DoctorM_SpecialistID = M_SpecialistID
$sql_where
GROUP BY M_DoctorID
ORDER BY M_DoctorName ASC
limit $number_limit offset $number_offset";
$query = $this->db_regional->query($sql, $sql_param);
//echo $this->db_regional->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_regional->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_regional->query($query)->result_array();
$query =" SELECT *
FROM m_religion
WHERE
M_ReligionIsActive = 'Y'
";
//echo $query;
$rows['religions'] = $this->db_regional->query($query)->result_array();
$query ="
SELECT 0 as Nat_StaffID, 'Semua' as Nat_StaffName, '' as Nat_StaffNIK
UNION
SELECT Nat_StaffID, Nat_StaffName, Nat_StaffNIK
FROM nat_staff
left join m_position ON Nat_StaffM_PositionID = M_PositionID
WHERE
Nat_StaffIsActive = 'Y' and M_PositionIsMarketing = 'Y'
";
//echo $query;
$rows['staffs'] = $this->db_regional->query($query)->result_array();
$query =" SELECT *
FROM nat_jpa
WHERE
Nat_JpaIsActive = 'Y'
";
//echo $query;
$rows['jpas'] = $this->db_regional->query($query)->result_array();
$query =" SELECT M_SpecialistID as id, M_SpecialistName as name
FROM m_specialist
WHERE
M_SpecialistIsActive = 'Y'
";
// echo $query;
$rows['specialistes'] = $this->db_regional->query($query)->result_array();
//print_r($rows['specialistes']);
$result = array(
"total" => count($rows) ,
"records" => $rows,
);
$this->sys_ok($result);
exit;
}
function searchstaff(){
if (! $this->isLogin) {
$this->sys_error("Invalid Token");
exit;
}
$prm = $this->sys_input;
$max_rst = 12;
$tot_count =0;
$name = $prm['name'];
$hirarkiid = intval($prm['id']) - 1;
// QUERY TOTAL
$sql = "SELECT count(*) as total
FROM nat_staff
left join m_position ON Nat_StaffM_PositionID = M_PositionID
WHERE
Nat_StaffIsActive = 'Y' and M_PositionIsMarketing = 'Y'
AND (Nat_StaffName like '%{$name}%' OR Nat_StaffNIK like '%{$name}%')";
$query = $this->db_regional->query($sql);
//echo $query;
if ($query) {
$tot_count = $query->result_array()[0]["total"];
}
else {
$this->sys_error_db("nat_staff count",$this->db_regional);
exit;
}
$sql = "
SELECT * FROM(SELECT *, CONCAT(Nat_StaffName, ' [',Nat_StaffNIK,']') as Nat_StaffNames
FROM nat_staff
left join m_position ON Nat_StaffM_PositionID = M_PositionID
WHERE
Nat_StaffIsActive = 'Y' and M_PositionIsMarketing = 'Y') a
WHERE
(Nat_StaffName like '%{$name}%' OR Nat_StaffNIK like '%{$name}%')
AND Nat_StaffIsActive = 'Y'
ORDER BY Nat_StaffName ASC
";
$query = $this->db_regional->query($sql);
if ($query) {
$rows = $query->result_array();
//echo $this->db_regional->last_query();
$result = array("total" => $tot_count, "records" => $rows, "total_display" => sizeof($rows));
$this->sys_ok($result);
}
else {
$this->sys_error_db("nat_staff rows",$this->db_regional);
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_regional->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_regional);
exit;
}
$sql = "
SELECT *
FROM m_city
WHERE
M_CityName like ?
AND M_CityIsActive = 'Y'
ORDER BY M_CityName DESC
";
$query = $this->db_regional->query($sql, array($q['search']));
if ($query) {
$rows = $query->result_array();
//echo $this->db_regional->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_regional);
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_regional->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_regional->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_regional->query($query)->result_array();
// $rows['jpas'] = $this->db_regional->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 m_doctor where M_DoctorID = ?";
$qry = $this->db_regional->query($sql,array($prm["M_DoctorID"]));
$rows = $qry->result_array();
$old_doctor = array();
if (count($rows) > 0 ) $old_doctor = $rows[0];
if($prm['M_DoctorEmail'] == ''){
$prm['M_DoctorEmailIsDefault'] = 'N';
}
$x_dob = $prm['M_DoctorDOB'];
$updated_dob = substr($x_dob, 0,2).'-'.substr($x_dob, 2,2).'-'.substr($x_dob, 4,4);
$xxdob = date("Y-m-d", strtotime($updated_dob));
$query ="UPDATE m_doctor SET
M_DoctorPrefix = '{$prm['M_DoctorPrefix']}',
M_DoctorPrefix2 = '{$prm['M_DoctorPrefix2']}',
M_DoctorName = '{$prm['M_DoctorName']}',
M_DoctorSufix = '{$prm['M_DoctorSufix']}',
M_DoctorSufix2 = '{$prm['M_DoctorSufix2']}',
M_DoctorSufix3 = '{$prm['M_DoctorSufix3']}',
M_DoctorM_SexID = '{$prm['M_DoctorM_SexID']}',
M_DoctorM_ReligionID = '{$prm['M_DoctorM_ReligionID']}',
M_DoctorM_StaffID = '{$prm['M_DoctorM_StaffID']}',
M_DoctorM_StaffNIK = '{$prm['M_DoctorM_StaffNIK']}',
M_DoctorEmail = '{$prm['M_DoctorEmail']}',
M_DoctorHP = '{$prm['M_DoctorHP']}',
M_DoctorNote = '{$prm['M_DoctorNote']}',
M_DoctorPhone = '{$prm['M_DoctorPhone']}',
M_DoctorIsMarketingConfirm = '{$prm['M_DoctorIsMarketingConfirm']}',
M_DoctorEmailIsDefault = '{$prm['M_DoctorEmailIsDefault']}',
M_DoctorDOB = '{$xxdob}',
M_DoctorM_SpecialistID = {$prm['M_DoctorM_SpecialistID']}
WHERE
M_DoctorID = '{$prm['M_DoctorID']}'
";
//echo $query;
$rows = $this->db_regional->query($query);
if($rows){
$data = json_encode($prm);
//print_r($prm);
$md5 = md5($data);
$param = array("data" => $data, "md5" => $md5);
$jparam = json_encode($param);
$sql = "SELECT * FROM m_branch WHERE M_BranchIsActive = 'Y'";
$branches = $this->db_regional->query($sql)->result_array();
foreach($branches as $k => $v){
try {
$sql = "INSERT INTO doctortobranch (
DoctorToBranchM_DoctorID,
DoctorToBranchM_BranchIPAddress,
DoctorToBranchCreated,
DoctorToBranchUserID
)
VALUES(
{$prm['M_DoctorID']},
'{$v['M_BranchIPAddress']}',
NOW(),
{$userid}
)";
//echo $sql;
$this->db_regional->query($sql);
$last_xid = $this->db_regional->insert_id();
$url = "http://".$v['M_BranchIPAddress']."/one-api/tools/marketing/updatedoctor/";
//echo "Uploading : ".$prm['M_DoctorName'];
$j_result = $this->post($url,$jparam);
$result = json_decode($j_result,true);
//print_r($result);
//echo $result["qry"];
if ($result["status"] == "OK") {
//echo $result["qry"];
$sql = "UPDATE doctortobranch set DoctorToBranchStatus = 'Y'
WHERE
DoctorToBranchID = {$last_xid}";
$this->db_regional->query($sql);
}
else{
//echo $result["qry"];
$sql = "UPDATE doctortobranch set DoctorToBranchRetry = DoctorToBranchRetry + 1
WHERE
DoctorToBranchID = {$last_xid}";
$this->db_regional->query($sql);
throw new Exception("ERRR : " . $result["qry"] . "\n");
}
} catch(Exception $exc) {
$message = $exc->getMessage();
echo $message;
}
}
}
$result = array(
"total" => 1 ,
"records" => array('status'=>'OK')
);
// ambil data baru
$sql = "select * from m_doctor where M_DoctorID = ?";
$qry = $this->db_regional->query($sql,array($prm["M_DoctorID"]));
$rows = $qry->result_array();
$new_doctor = array();
if (count($rows) > 0 ) $new_doctor = $rows[0];
$d_doctor = json_encode(array("old" => $old_doctor , "new" => $new_doctor));
$this->db_regional->query("call one_log.log_me('DOCTOR','DOCTOR_EDIT','{$d_doctor}',$userid)");
$this->sys_ok($result);
exit;
}
function newdoctor(){
if (! $this->isLogin) {
$this->sys_error("Invalid Token");
exit;
}
//echo 'Yihaa';
$userid = $this->sys_user["M_UserID"];
$prm = $this->sys_input;
///print_r($prm);
$prm['userid'] = $userid;
if(!$prm['M_DoctorM_StaffID'])
$prm['M_DoctorM_StaffID'] = 0;
$x_dob = $prm['M_DoctorDOB'];
$updated_dob = substr($x_dob, 0,2).'-'.substr($x_dob, 2,2).'-'.substr($x_dob, 4,4);
$xxdob = date("Y-m-d", strtotime($updated_dob));
$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_DoctorM_StaffNIK,
M_DoctorEmail,
M_DoctorHP,
M_DoctorNote,
M_DoctorPhone,
M_DoctorIsMarketingConfirm,
M_DoctorEmailIsDefault,
M_DoctorDOB,
M_DoctorM_SpecialistID,
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_DoctorM_StaffNIK']}',
'{$prm['M_DoctorEmail']}',
'{$prm['M_DoctorHP']}',
'{$prm['M_DoctorNote']}',
'{$prm['M_DoctorPhone']}',
'{$prm['M_DoctorIsMarketingConfirm']}',
'{$prm['M_DoctorEmailIsDefault']}',
'{$xxdob}',
'{$prm['M_DoctorM_SpecialistID']}',
$userid
)
";
//echo $query;
$rows = $this->db_regional->query($query);
$last_id = $this->db_regional->insert_id();
if($rows){
$data = json_encode($prm);
//print_r($prm);
$md5 = md5($data);
$param = array("data" => $data, "md5" => $md5);
$jparam = json_encode($param);
$sql = "SELECT * FROM m_branch WHERE M_BranchIsActive = 'Y'";
$branches = $this->db_regional->query($sql)->result_array();
foreach($branches as $k => $v){
try {
$sql = "INSERT INTO doctortobranch (
DoctorToBranchM_DoctorID,
DoctorToBranchM_BranchIPAddress,
DoctorToBranchCreated,
DoctorToBranchUserID
)
VALUES(
{$last_id},
'{$v['M_BranchIPAddress']}',
NOW(),
{$userid}
)";
//echo $sql;
$this->db_regional->query($sql);
$last_xid = $this->db_regional->insert_id();
$url = "http://".$v['M_BranchIPAddress']."/one-api/tools/marketing/downloaddoctor/";
//echo "Uploading : ".$prm['M_DoctorName'];
$j_result = $this->post($url,$jparam);
$result = json_decode($j_result,true);
//echo $result["qry"];
if ($result["status"] == "OK") {
//echo $result["qry"];
$sql = "UPDATE doctortobranch set DoctorToBranchStatus = 'Y'
WHERE
DoctorToBranchID = {$last_xid}";
$this->db_regional->query($sql);
}
else{
$sql = "UPDATE doctortobranch set DoctorToBranchRetry = DoctorToBranchRetry + 1
WHERE
DoctorToBranchID = {$last_xid}";
$this->db_regional->query($sql);
throw new Exception("ERR : " . $result["message"] . "\n");
}
} catch(Exception $exc) {
$message = $exc->getMessage();
echo $message;
}
}
}
$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_regional->query("call one_log.log_me('DOCTOR','DOCTOR_ADD','{$d_doctor}',$userid)");
$this->sys_ok($result);
exit;
}
function post($url,$data) {
$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);
return $result;
}
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_regional->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_regional->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_regional->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_regional->query("SELECT COUNT(*) as countx FROM m_doctoraddress WHERE M_DoctorAddressM_DoctorOldCode = '{$prm['M_DoctorAddressM_DoctorOldCode']}' AND M_DoctorAddressIsActive = 'Y'")->row()->countx;
//echo $this->db_regional->last_query();
if($count_addrs == 0){
$prm['M_DoctorAddressNote'] = 'Utama';
}
else{
$count_addrs_utama = $this->db_regional->query("SELECT COUNT(*) as countx FROM m_doctoraddress WHERE M_DoctorAddressM_DoctorOldCode = '{$prm['M_DoctorAddressM_DoctorOldCode']}' 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_DoctorOldCode,
M_DoctorAddressNote,
M_DoctorAddressDescription,
M_DoctorAddressM_KelurahanID,
M_DoctorAddressNat_JpaID,
M_DoctorAddressLastUpdated,
M_DoctorAddressCreated
)
VALUES(
'{$prm['M_DoctorAddressM_DoctorOldCode']}',
'{$prm['M_DoctorAddressNote']}',
'{$prm['M_DoctorAddressDescription']}',
'{$prm['M_DoctorAddressM_KelurahanID']}',
'{$prm['M_DoctorAddressNat_JpaID']}',
NOW(),
NOW()
)
";
//echo $query;
$rows = $this->db_regional->query($query);
$last_id = $this->db_regional->insert_id();
if($rows){
$data = json_encode($prm);
//print_r($prm);
$md5 = md5($data);
$param = array("data" => $data, "md5" => $md5);
$jparam = json_encode($param);
$sql = "SELECT * FROM m_branch WHERE M_BranchIsActive = 'Y'";
$branches = $this->db_regional->query($sql)->result_array();
foreach($branches as $k => $v){
try {
$sql = "INSERT INTO doctortobranch (
DoctorToBranchM_DoctorID,
DoctorToBranchM_BranchIPAddress,
DoctorToBranchType,
DoctorToBranchCreated,
DoctorToBranchUserID
)
VALUES(
{$last_id},
'{$v['M_BranchIPAddress']}',
'A',
NOW(),
{$userid}
)";
//echo $sql;
$this->db_regional->query($sql);
$last_xid = $this->db_regional->insert_id();
//echo $last_xid;
$url = "http://".$v['M_BranchIPAddress']."/one-api/tools/marketing/newaddressdoctor/";
//echo $url;
//echo "Uploading : ".$prm['M_DoctorName'];
$j_result = $this->post($url,$jparam);
$result = json_decode($j_result,true);
//echo $result["qry"];
if ($result["status"] == "OK") {
//echo $result["qry"];
$sql = "UPDATE doctortobranch set DoctorToBranchStatus = 'Y'
WHERE
DoctorToBranchID = {$last_xid}";
$this->db_regional->query($sql);
}
else{
$sql = "UPDATE doctortobranch set DoctorToBranchRetry = DoctorToBranchRetry + 1
WHERE
DoctorToBranchID = {$last_xid}";
$this->db_regional->query($sql);
throw new Exception("ERRZ : " . $result["message"] . "\n");
}
} catch(Exception $exc) {
$message = $exc->getMessage();
echo $message;
}
}
}
$result = array(
"total" => 1 ,
"records" => array('status'=>'OK')
);
//adi tambah log doctor
$prm["M_DoctorM_UserID"] = $userid;
$d_doctor = json_encode($prm);
$this->db_regional->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_DoctorOldCode = '{$prm['M_DoctorAddressM_DoctorOldCode']}',
M_DoctorAddressNote = '{$prm['M_DoctorAddressNote']}',
M_DoctorAddressDescription = '{$prm['M_DoctorAddressDescription']}',
M_DoctorAddressM_KelurahanID = '{$prm['M_DoctorAddressM_KelurahanID']}',
M_DoctorAddressNat_JpaID = '{$prm['M_DoctorAddressNat_JpaID']}',
M_DoctorAddressLastUpdated = now()
WHERE
M_DoctorAddressID = '{$prm['M_DoctorAddressID']}'
";
// echo $query;
$rows = $this->db_regional->query($query);
$last_id = $prm['M_DoctorAddressID'];
if($rows){
$data = json_encode($prm);
//print_r($prm);
$md5 = md5($data);
$param = array("data" => $data, "md5" => $md5);
$jparam = json_encode($param);
$sql = "SELECT * FROM m_branch WHERE M_BranchIsActive = 'Y'";
$branches = $this->db_regional->query($sql)->result_array();
foreach($branches as $k => $v){
try {
$sql = "INSERT INTO doctortobranch (
DoctorToBranchM_DoctorID,
DoctorToBranchM_BranchIPAddress,
DoctorToBranchType,
DoctorToBranchCreated,
DoctorToBranchUserID
)
VALUES(
{$last_id},
'{$v['M_BranchIPAddress']}',
'A',
NOW(),
{$userid}
)";
//echo $sql;
$this->db_regional->query($sql);
$last_xid = $this->db_regional->insert_id();
//echo $last_xid;
$url = "http://".$v['M_BranchIPAddress']."/one-api/tools/marketing/updateaddressdoctor/";
//echo $url;
//echo "Uploading : ".$prm['M_DoctorName'];
$j_result = $this->post($url,$jparam);
$result = json_decode($j_result,true);
//echo $result["qry"];
if ($result["status"] == "OK") {
//echo $result["qry"];
$sql = "UPDATE doctortobranch set DoctorToBranchStatus = 'Y'
WHERE
DoctorToBranchID = {$last_xid}";
$this->db_regional->query($sql);
}
else{
$sql = "UPDATE doctortobranch set DoctorToBranchRetry = DoctorToBranchRetry + 1
WHERE
DoctorToBranchID = {$last_xid}";
$this->db_regional->query($sql);
throw new Exception("ERRZ : " . $result["message"] . "\n");
}
} catch(Exception $exc) {
$message = $exc->getMessage();
echo $message;
}
}
}
$result = array(
"total" => 1 ,
"records" => array('status'=>'OK')
);
//adi tambah log doctor
$prm["M_DoctorM_UserID"] = $userid;
$d_doctor = json_encode($prm);
$this->db_regional->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',
M_DoctorAddressLastUpdated = now()
WHERE
M_DoctorAddressID = '{$prm['M_DoctorAddressID']}'
";
//echo $query;
$rows = $this->db_regional->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_regional->query("call one_log.log_me('DOCTOR','DOCTOR_ADDR_DELETE','{$d_doctor}',$userid)");
$this->sys_ok($result);
exit;
}
}