Files
BE_CPONE/application/controllers/v1/preorder/home-service/Android.php
2026-04-27 10:26:26 +07:00

194 lines
6.9 KiB
PHP

<?php
class Android extends MY_Controller
{
var $db_onedev;
var $staffID, $userID;
public function index()
{
echo "API";
}
public function __construct()
{
parent::__construct();
$this->db_onedev = $this->load->database("onedev", true);
$this->staffID = 0;
$sql = "select M_UserM_StaffID from m_user where M_UserID = ?";
$qry = $this->db_onedev->query($sql,array($this->sys_user["M_UserID"]));
if ($qry) {
$rows = $qry->result_array();
if(count($rows) > 0 ) $this->staffID = $rows[0]["M_UserM_StaffID"];
}
$this->userID = $this->sys_user["M_UserID"];
}
// data yg di upload
// status : Arrival , Cancel / Serve , Lokasi
// data lain : Catatan tambahan
/*
drop table if exists address_loc;
create table address_loc (
Addres_LocID int not null auto_increment primary key,
Address_LocM_PatientID int ,
Address_LocM_PatientAddressID int,
Address_LocLat decimal(12,9),
Address_LocLng decimal(12,9),
Address_LocM_UserID int,
Address_LocCreated datetime default current_timestamp(),
Address_LocUpdated datetime default current_timestamp()
on update current_timestamp(),
Address_LocIsActive varchar(1) default 'Y',
key(Address_LocM_PatientID),
key(Address_LocM_PatientAddressID),
key(Address_LocIsActive),
unique(Address_LocM_PatientAddressID)
);
*/
function upload_order() {
$orders = array();
try {
$orders= $this->sys_input["orders"];
} catch(Exception $e) {
}
$updated_no = "";
$this->db_onedev->trans_start();
foreach($orders as $order) {
$id = $order["PreOrder_HeaderID"];
$patientID = $order["PreOrder_HeaderM_PatientID"];
$addressID = $order["PreOrder_HeaderM_PatientAdrressID"];
if ($updated_no != "") $updated_no .= ", ";
$updated_no .= $order["PreOrder_HeaderNumber"];
$updated_mark = "";
if (isset($order["arrived"]) ) {
//update arrival and lat lng
if ($updated_mark != "") $updated_mark .= ",";
$updated_mark .= "Dtg";
}
if (isset($order["note"])) {
//add note
if ($updated_mark != "") $updated_mark .= ",";
$updated_mark .= "Cat";
}
if (isset($order["latlng"])) {
$lat = $order["latlng"]["lat"];
$lng = $order["latlng"]["lng"];
$sql = "insert into address_loc(Address_LocM_PatientID, Address_LocM_PatientAddressID,
Address_LocLat,Address_LocLng, Address_LocM_UserID)
values(?,?,?,?,?)
on duplicate key update
set Address_LocLat = ? , Address_LocLng = ? , Address_LocM_UserID=?
where Address_LocM_PatientAddressID = ? ";
$this->db_onedev->query($sql, array($patientID, $addressID,
$lat, $lng, $this->userID, $lat, $lng, $this->userID, $patientID) );
}
if (isset($order["status"])) {
$status = $order["status"];
foreach($status as $s) {
$statusID = $s["statusID"];
// 6 - ARRIVED , 3 - SERVE , 4 - DONE , 5 - CANCELLED
// insert to log
if ($status == 4 || $id == 5) {
//update status
$sql = "update one_preorder_dev.preorder_header
set PreOrder_HeaderM_PreOrderStatusID = ?
PreOrderM_UserID = ?
where PreOrder_HeaderID = ?";
}
}
//update status serve / cancel
if ($updated_mark != "") $updated_mark .= ",";
$is_cancel = false;
if ($is_cancel) $updated_mark = "Cancel";
$updated_mark .= "Serve";
}
}
}
function mark_order() {
$ids = array();
try {
$ids= $this->sys_input["ids"];
} catch(Exception $e) {
}
foreach($ids as $id) {
$sql = "update one_preorder_dev.preorder_header set PreOrder_HeaderDownloadedMobile='Y',
PreOrder_HeaderM_UserID = ?
where PreOrder_HeaderID = ?";
$this->db_onedev->query($sql,array($this->sys_user["M_UserID"],$id));
}
echo json_encode( array(
"status" => "OK"
));
}
function download_order() {
$date = date("Y-m-d");
try {
$date = $this->sys_input["date"];
} catch(Exception $e) {
}
$sql = "select PreOrder_HeaderID,PreOrder_HeaderNumbering, PreOrder_HeaderDate, PreOrder_HeaderTime,
M_PatientAddressDescription,M_PatientAddressLat, M_PatientAddressLng,
concat(M_TitleName,' ',M_PatientName) M_PatientName,
PreOrder_HeaderPhone,M_KelurahanLat, M_KelurahanLng,
concat(M_DoctorPrefix,' ',M_DoctorName,' ',M_DoctorSufix) M_DoctorName,
M_KelurahanName,M_DistrictName,M_CityName
from
one_preorder_dev.preorder_header
join m_patientaddress on M_PatientAddressID = PreOrder_HeaderM_PatientAdrressID
join m_patient on PreOrder_HeaderM_PatientID = M_PatientID
join m_title on M_PatientM_TitleID = M_TitleID
join m_doctor on PreOrder_HeaderM_DoctorID = M_DoctorID
left join m_kelurahan on PreOrder_HeaderM_KelurahanID = M_KelurahanID
left join m_district on M_KelurahanM_DistrictID= M_DistrictID
left join m_city on M_DistrictM_CityID = M_CityID
where
PreOrder_HeaderDate = ?
and PreOrder_HeaderM_PreOrderStatusID=2
and PreOrder_HeaderDownloadedMobile = 'N'
and PreOrder_HeaderM_StaffID = ?";
$qry = $this->db_onedev->query($sql,array($date,$this->staffID));
$order = array();
if ($qry) {
$order = $qry->result_array();
foreach($order as $idx => $o) {
$id = $o["PreOrder_HeaderID"];
$order[$idx]["test"] = $this->get_test($id);
$order[$idx]["delivery"] = $this->get_delivery($id);
}
}
echo json_encode( array(
"status" => "OK",
"data" => $order
));
}
function get_test($id) {
$sql = "select PreOrder_TestID, PreOrder_TestT_TestCode, PreOrder_TestT_TestName,
PreOrder_TestPrice, PreOrder_TestDisc , PreOrder_TestDiscRp , PreOrder_TestTotal
from
one_preorder_dev.preorder_test
where
PreOrder_TestPreOrder_HeaderID = ?
and PreOrder_TestIsActive = 'Y'";
$qry = $this->db_onedev->query($sql,array($id));
if ($qry) {
return $qry->result_array();
}
return array();
}
function get_delivery($id) {
$sql = "select PreOrder_DeliveryID, M_DeliveryName, PreOrder_DeliveryDestination
from
one_preorder_dev.preorder_delivery
join m_delivery on PreOrder_DeliveryM_DeliveryID = M_DeliveryID
where PreOrder_DeliveryPreOrder_HeaderID = ?
and PreOrder_DeliveryIsActive = 'Y'";
$qry = $this->db_onedev->query($sql,array($id));
if ($qry) {
return $qry->result_array();
}
return array();
}
}