db_onedev = $this->load->database("onedev", true); } function add_test($orderid){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $query =" SELECT one_preorder_dev.preorder_test.*, one.t_test.*,one_lis_dev.t_price.*, 'Y' as editable, PreOrder_TestID as xid, T_PriceAmount - ((T_PriceDisc/100) * T_PriceAmount) - T_PriceDiscRp as total FROM one_preorder_dev.preorder_test JOIN one.t_test ON PreOrder_TestT_TestID = T_TestID JOIN one.t_price ON T_PriceT_TestID = T_TestID AND T_PriceIsCito = 'N' JOIN one_preorder_dev.conf_system ON Conf_SystemIsActive = 'Y' AND Conf_SystemMOUID = T_PriceM_MouID WHERE PreOrder_TestPreOrder_HeaderID = {$orderid} AND PreOrder_TestIsActive = 'Y' "; //echo $query; $rows = $this->db_onedev->query($query)->result_array(); if(!$rows) $rows = array(); return $rows; } function add_deliveries($orderid){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $query =" SELECT * FROM one_preorder_dev.preorder_delivery LEFT JOIN one.m_delivery ON PreOrder_DeliveryM_DeliveryID = M_DeliveryID LEFT JOIN one.m_deliverytype ON PreOrder_DeliveryM_DeliveryTypeID = M_DeliveryTypeID LEFT JOIN one.m_kelurahan ON PreOrder_DeliveryM_KelurahanID = M_KelurahanID WHERE PreOrder_DeliveryPreOrder_HeaderID = {$orderid} AND PreOrder_DeliveryIsActive = 'Y' "; //echo $query; $rows = $this->db_onedev->query($query)->result_array(); if(!$rows) $rows = array(); return $rows; } function add_address($patientid){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $query =" SELECT * FROM one.m_patientaddress WHERE M_PatientAddressM_PatientID = {$patientid} AND M_PatientAddressIsActive = 'Y' "; //echo $query; $rows = $this->db_onedev->query($query)->result_array(); if(!$rows) $rows = array(); return $rows; } function add_doctor_address($doctorid){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $query =" SELECT * FROM one.m_doctoraddress WHERE M_DoctorAddressM_DoctorID = {$doctorid} AND M_DoctorAddressIsActive = 'Y' "; //echo $query; $rows = $this->db_onedev->query($query)->result_array(); if(!$rows) $rows = array(); return $rows; } public function search() { if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $fdate = date('Y-m-d',strtotime($prm["fdate"])); $fstatus = $prm["fstatus"]; $ftype = $prm["ftype"]; $sql = " SELECT count(*) as total FROM one_preorder_dev.preorder_header JOIN one.m_patient ON PreOrder_HeaderM_PatientID = M_PatientID LEFT JOIN one.m_patientaddress ON PreOrder_HeaderM_PatientAdrressID = M_PatientAddressID JOIN one_preorder_dev.m_preordertype ON PreOrder_HeaderM_PreOrderTypeID = M_PreOrderTypeID JOIN one_preorder_dev.m_preorderstatus ON PreOrder_HeaderM_PreOrderStatusID = M_PreOrderStatusID LEFT JOIN one.m_kelurahan ON PreOrder_HeaderM_KelurahanID = M_KelurahanID LEFT JOIN one_preorder_dev.m_preorderareadetail ON M_PreOrderAreaIDM_KelurahanID = PreOrder_HeaderM_KelurahanID LEFT JOIN one_preorder_dev.m_preorderarea ON M_PrdeOrderAreaDetailM_PreOrderAreaID = M_PreOrderAreaID LEFT JOIN one.m_staff ON PreOrder_HeaderM_StaffID = M_StaffID LEFT JOIN one.m_doctor ON PreOrder_HeaderM_DoctorID = M_DoctorID WHERE PreOrder_HeaderDate = '{$fdate}' AND PreOrder_HeaderM_PreOrderStatusID = {$fstatus} AND PreOrder_HeaderM_PreOrderTypeID = {$ftype} AND PreOrder_HeaderIsActive = 'Y'"; $query = $this->db_onedev->query($sql); //echo $sql; $tot_count = 0; if ($query) { $tot_count = $query->result_array()[0]["total"]; } else { $this->sys_error_db("m_patient count", $this->db_onedev); exit; } $sql =" SELECT one_preorder_dev.preorder_header.*, one.m_patient.*, one.m_patientaddress.*, one.m_kelurahan.*, one_preorder_dev.m_preorderarea.*, one.m_staff.*, one_preorder_dev.m_preordertype.*, one_preorder_dev.m_preorderstatus.*, 'xxx' as tests, one.m_doctor.*, 'xxx' as deliveries, 'N' as show_detail, IFNULL(Preorder_SampleID,0) as supplies_trx_id FROM one_preorder_dev.preorder_header JOIN one.m_patient ON PreOrder_HeaderM_PatientID = M_PatientID JOIN one.m_patientaddress ON PreOrder_HeaderM_PatientAdrressID = M_PatientAddressID JOIN one_preorder_dev.m_preordertype ON PreOrder_HeaderM_PreOrderTypeID = M_PreOrderTypeID JOIN one_preorder_dev.m_preorderstatus ON PreOrder_HeaderM_PreOrderStatusID = M_PreOrderStatusID LEFT JOIN one.m_kelurahan ON PreOrder_HeaderM_KelurahanID = M_KelurahanID LEFT JOIN one_preorder_dev.m_preorderareadetail ON M_PreOrderAreaIDM_KelurahanID = PreOrder_HeaderM_KelurahanID LEFT JOIN one_preorder_dev.m_preorderarea ON M_PrdeOrderAreaDetailM_PreOrderAreaID = M_PreOrderAreaID LEFT JOIN one.m_staff ON PreOrder_HeaderM_StaffID = M_StaffID LEFT JOIN one.m_doctor ON PreOrder_HeaderM_DoctorID = M_DoctorID LEFT JOIN one_preorder_dev.preorder_sample ON Preorder_SamplePreOrder_HeaderID = PreOrder_HeaderID WHERE PreOrder_HeaderDate = '{$fdate}' AND PreOrder_HeaderM_PreOrderStatusID = {$fstatus} AND PreOrder_HeaderM_PreOrderTypeID = {$ftype} AND PreOrder_HeaderIsActive = 'Y' limit 0,20"; $query = $this->db_onedev->query($sql); //echo $sql; $rows = $query->result_array(); //print_r($rows); if($rows){ foreach($rows as $k => $v){ $rows[$k]['tests'] = $this->add_test($v['PreOrder_HeaderID']); $rows[$k]['deliveries'] = $this->add_deliveries($v['PreOrder_HeaderID']); $rows[$k]['PreOrder_HeaderTime'] = date('H:i',strtotime($v['PreOrder_HeaderTime'])); $rows[$k]['PreOrder_HeaderDate'] = date('Y-m-d',strtotime($v['PreOrder_HeaderDate'])); $rows[$k]['address'] = $this->add_address($v['PreOrder_HeaderM_PatientID']); $rows[$k]['doctoraddress'] = $this->add_doctor_address($v['PreOrder_HeaderM_DoctorID']); } } $result = array("total" => $tot_count, "records" => $rows, "sql"=> $this->db_onedev->last_query()); $this->sys_ok($result); exit; } public function search_ready() { if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $fdate = date('Y-m-d',strtotime($prm["fdate"])); $fstatus = $prm["fstatus"]; $ftype = $prm["ftype"]; $sql = " SELECT count(*) as total FROM one_preorder_dev.preorder_header JOIN one.m_patient ON PreOrder_HeaderM_PatientID = M_PatientID LEFT JOIN one.m_patientaddress ON PreOrder_HeaderM_PatientAdrressID = M_PatientAddressID JOIN one_preorder_dev.m_preordertype ON PreOrder_HeaderM_PreOrderTypeID = M_PreOrderTypeID JOIN one_preorder_dev.m_preorderstatus ON PreOrder_HeaderM_PreOrderStatusID = M_PreOrderStatusID LEFT JOIN one.m_kelurahan ON PreOrder_HeaderM_KelurahanID = M_KelurahanID LEFT JOIN one_preorder_dev.m_preorderareadetail ON M_PreOrderAreaIDM_KelurahanID = PreOrder_HeaderM_KelurahanID LEFT JOIN one_preorder_dev.m_preorderarea ON M_PrdeOrderAreaDetailM_PreOrderAreaID = M_PreOrderAreaID LEFT JOIN one.m_staff ON PreOrder_HeaderM_StaffID = M_StaffID LEFT JOIN one.m_doctor ON PreOrder_HeaderM_DoctorID = M_DoctorID WHERE PreOrder_HeaderDate = '{$fdate}' AND PreOrder_HeaderM_PreOrderStatusID = 2 AND PreOrder_HeaderDownloadedMobile = '{$fstatus}' AND PreOrder_HeaderM_PreOrderTypeID = {$ftype} AND PreOrder_HeaderIsActive = 'Y'"; $query = $this->db_onedev->query($sql); //echo $sql; $tot_count = 0; if ($query) { $tot_count = $query->result_array()[0]["total"]; } else { $this->sys_error_db("m_patient count", $this->db_onedev); exit; } $sql =" SELECT one_preorder_dev.preorder_header.*, one.m_patient.*, one.m_patientaddress.*, one.m_kelurahan.*, one_preorder_dev.m_preorderarea.*, one.m_staff.*, one_preorder_dev.m_preordertype.*, one_preorder_dev.m_preorderstatus.*, 'xxx' as tests, one.m_doctor.*, 'xxx' as deliveries, 'N' as show_detail FROM one_preorder_dev.preorder_header JOIN one.m_patient ON PreOrder_HeaderM_PatientID = M_PatientID JOIN one.m_patientaddress ON PreOrder_HeaderM_PatientAdrressID = M_PatientAddressID JOIN one_preorder_dev.m_preordertype ON PreOrder_HeaderM_PreOrderTypeID = M_PreOrderTypeID JOIN one_preorder_dev.m_preorderstatus ON PreOrder_HeaderM_PreOrderStatusID = M_PreOrderStatusID LEFT JOIN one.m_kelurahan ON PreOrder_HeaderM_KelurahanID = M_KelurahanID LEFT JOIN one_preorder_dev.m_preorderareadetail ON M_PreOrderAreaIDM_KelurahanID = PreOrder_HeaderM_KelurahanID LEFT JOIN one_preorder_dev.m_preorderarea ON M_PrdeOrderAreaDetailM_PreOrderAreaID = M_PreOrderAreaID LEFT JOIN one.m_staff ON PreOrder_HeaderM_StaffID = M_StaffID LEFT JOIN one.m_doctor ON PreOrder_HeaderM_DoctorID = M_DoctorID WHERE PreOrder_HeaderDate = '{$fdate}' AND PreOrder_HeaderM_PreOrderStatusID = 2 AND PreOrder_HeaderDownloadedMobile = '{$fstatus}' AND PreOrder_HeaderM_PreOrderTypeID = {$ftype} AND PreOrder_HeaderIsActive = 'Y' limit 0,20"; $query = $this->db_onedev->query($sql); //echo $sql; $rows = $query->result_array(); //print_r($rows); if($rows){ foreach($rows as $k => $v){ $rows[$k]['tests'] = $this->add_test($v['PreOrder_HeaderID']); $rows[$k]['deliveries'] = $this->add_deliveries($v['PreOrder_HeaderID']); $rows[$k]['PreOrder_HeaderTime'] = date('H:i',strtotime($v['PreOrder_HeaderTime'])); $rows[$k]['PreOrder_HeaderDate'] = date('Y-m-d',strtotime($v['PreOrder_HeaderDate'])); $rows[$k]['address'] = $this->add_address($v['PreOrder_HeaderM_PatientID']); } } $result = array("total" => $tot_count, "records" => $rows, "sql"=> $this->db_onedev->last_query()); $this->sys_ok($result); exit; } public function search_outbox() { if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $fdate = date('Y-m-d',strtotime($prm["fdate"])); $fstatus = $prm["fstatus"]; $ftype = $prm["ftype"]; $sql = " SELECT count(*) as total FROM one_gateway.outbox JOIN one_preorder_dev.preorder_header ON outboxRefID = PreOrder_HeaderID JOIN one.m_patient ON PreOrder_HeaderM_PatientID = M_PatientID JOIN one_gateway.type ON outboxTypeID = typeID LEFT JOIN one.m_staff ON PreOrder_HeaderM_StaffID = M_StaffID WHERE outboxTag = 'HomeService' AND PreOrder_HeaderDate = '{$fdate}' AND ( '{$fstatus}' = 'ALL' OR '{$fstatus}' <> 'ALL' AND outboxIsSent = '{$fstatus}' ) AND outboxTypeID = {$ftype} AND outboxIsActive = 'Y'"; $query = $this->db_onedev->query($sql); //echo $sql; $tot_count = 0; if ($query) { $tot_count = $query->result_array()[0]["total"]; } else { $this->sys_error_db("m_patient count", $this->db_onedev); exit; } $sql =" SELECT one_gateway.outbox.*, one_preorder_dev.preorder_header.*, one.m_patient.*, one.m_staff.*, one_gateway.type.* FROM one_gateway.outbox JOIN one_preorder_dev.preorder_header ON outboxRefID = PreOrder_HeaderID JOIN one.m_patient ON PreOrder_HeaderM_PatientID = M_PatientID JOIN one_gateway.type ON outboxTypeID = typeID LEFT JOIN one.m_staff ON PreOrder_HeaderM_StaffID = M_StaffID WHERE outboxTag = 'HomeService' AND PreOrder_HeaderDate = '{$fdate}' AND ( '{$fstatus}' = 'ALL' OR '{$fstatus}' <> 'ALL' AND outboxIsSent = '{$fstatus}' ) AND outboxTypeID = {$ftype} AND outboxIsActive = 'Y' limit 0,20"; $query = $this->db_onedev->query($sql); //echo $sql; $rows = $query->result_array(); $result = array("total" => $tot_count, "records" => $rows, "sql"=> $this->db_onedev->last_query()); $this->sys_ok($result); exit; } public function lookup_staff(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $fdate = date('Y-m-d',strtotime($prm["fdate"])); $fstatus = $prm["fstatus"]; $query = " SELECT M_StaffID,M_StaffName, 'xxx' as times, 'xxx' as areas FROM one_preorder_dev.preorder_header JOIN one.m_staff ON PreOrder_HeaderM_StaffID = M_StaffID WHERE PreOrder_HeaderDate = '{$fdate}' AND PreOrder_HeaderM_PreOrderStatusID = '{$fstatus}' AND PreOrder_HeaderIsActive = 'Y' GROUP BY PreOrder_HeaderM_StaffID"; //echo $query; $rows = $this->db_onedev->query($query)->result_array(); if($rows){ foreach($rows as $k => $v){ $rows[$k]['times'] = $this->add_times($v['M_StaffID'],$fdate,$fstatus); $rows[$k]['areas'] = $this->add_areas($v['M_StaffID'],$fdate,$fstatus); } } $result = array( "total" => count($rows) , "records" => $rows, ); $this->sys_ok($result); exit; } function add_times($staffid,$fdate,$fstatus){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $query =" SELECT PreOrder_HeaderTime as xtime FROM one_preorder_dev.preorder_header JOIN one.m_staff ON PreOrder_HeaderM_StaffID = M_StaffID AND PreOrder_HeaderM_StaffID = {$staffid} WHERE PreOrder_HeaderDate = '{$fdate}' AND PreOrder_HeaderM_PreOrderStatusID = '{$fstatus}' AND PreOrder_HeaderIsActive = 'Y' "; //echo $query; $rows = $this->db_onedev->query($query)->result_array(); if(!$rows) $rows = array(); else foreach($rows as $k => $v){ $rows[$k]['xtime'] = date('H:i',strtotime($v['xtime'])); } return $rows; } function add_areas($staffid,$fdate,$fstatus){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $query =" SELECT M_PreOrderAreaName as xarea FROM one_preorder_dev.preorder_header JOIN one.m_staff ON PreOrder_HeaderM_StaffID = M_StaffID AND PreOrder_HeaderM_StaffID = {$staffid} JOIN one_preorder_dev.m_preorderareadetail ON M_PreOrderAreaIDM_KelurahanID = PreOrder_HeaderM_KelurahanID JOIN one_preorder_dev.m_preorderarea ON M_PrdeOrderAreaDetailM_PreOrderAreaID = M_PreOrderAreaID WHERE PreOrder_HeaderDate = '{$fdate}' AND PreOrder_HeaderM_PreOrderStatusID = '{$fstatus}' AND PreOrder_HeaderIsActive = 'Y' GROUP BY M_PreOrderAreaID "; //echo $query; $rows = $this->db_onedev->query($query)->result_array(); if(!$rows) $rows = array(); return $rows; } function titsexreg(){ //# cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $rows = []; $query =" SELECT * FROM m_title WHERE M_TitleIsActive = 'Y' "; //echo $query; $rows['titles'] = $this->db_onedev->query($query)->result_array(); $query =" SELECT * FROM m_sex WHERE M_SexIsActive = 'Y' "; //echo $query; $rows['sexs'] = $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 * FROM one_preorder_dev.m_preordertype WHERE M_PreOrderTypeIsActive = 'Y' "; //echo $query; $rows['ordertypes'] = $this->db_onedev->query($query)->result_array(); $query =" SELECT M_StaffID,M_StaffName FROM one_preorder_dev.m_staffhomeservice JOIN one.m_staff ON M_StaffHomeServiceM_StaffID = M_StaffID WHERE M_StaffHomeServiceIsActive = 'Y' "; //echo $query; $rows['staffs'] = $this->db_onedev->query($query)->result_array(); $query =" SELECT * FROM one.m_delivery JOIN one.m_deliverytype ON M_DeliveryM_DeliveryTypeID = M_DeliveryTypeID WHERE M_DeliveryIsActive = 'Y' AND M_DeliveryIsHomeService = 'Y' "; //echo $query; $rows['deliverytipes'] = $this->db_onedev->query($query)->result_array(); $query =" SELECT M_SamplingTimeID,TIME_FORMAT(M_SamplingTimeTime, '%H:%i') as M_SamplingTimeTime FROM one_preorder_dev.m_samplingtime WHERE M_SamplingTimeIsActive = 'Y' "; //echo $query; $rows['times'] = $this->db_onedev->query($query)->result_array(); $result = array( "total" => count($rows) , "records" => $rows, ); $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 savenewpatient(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $query = "INSERT INTO m_patient ( M_PatientName, M_PatientM_TitleID, M_PatientM_SexID, M_PatientM_ReligionID, M_PatientDOB, M_PatientHP, M_PatientPhone, M_PatientEmail, M_PatientCreated, M_PatientLastUpdated ) VALUES( ?,?,?,?,?,?,?,?,now(),now() )"; $insert_new_patient = $this->db_onedev->query($query,array( $prm['patientname'], $prm['titleid'], $prm['sexid'], $prm['religionid'], date('Y-m-d',strtotime($prm['dob'])), $prm['hp'], $prm['phone'], $prm['email'] )); if($insert_new_patient){ $patient_id = $this->db_onedev->insert_id(); $query = "INSERT INTO m_patientaddress ( M_PatientAddressM_PatientID, M_PatientAddressNote, M_PatientAddressDescription, M_PatientAddressM_KelurahanID, M_PatientAddressCreated, M_PatientAddressLastUpdated ) VALUE( ?,?,?,?,now(),now() )"; $insert_new_address = $this->db_onedev->query($query,array( $patient_id, 'utama', $prm['address'], $prm['kelurahanid'] )); $query = " SELECT * FROM m_patient JOIN m_patientaddress ON M_PatientAddressM_PatientID = M_PatientID AND M_PatientAddressIsActive = 'Y' AND M_PatientAddressNote = 'utama' WHERE M_PatientID = ? LIMIT 1"; $rows = $this->db_onedev->query($query,array($patient_id))->result(); $result = array( "total" => count($rows) , "records" => $rows, ); $this->sys_ok($result); exit; } else { $this->sys_error_db("m_patient new",$this->db_onedev); exit; } } function getaddress(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $query =" SELECT * FROM m_patientaddress WHERE M_PatientAddressM_PatientID = ? AND M_PatientAddressIsActive = 'Y' "; //echo $query; $rows = $this->db_onedev->query($query,array($prm['id']))->result_array(); $rows[] = array('M_PatientAddressID'=>'X','M_PatientAddressDescription'=>'Alamat Baru'); $result = array( "total" => count($rows) , "records" => $rows, ); $this->sys_ok($result); exit; } function getdoctoraddress(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $query =" SELECT * FROM m_doctoraddress WHERE M_DoctorAddressM_DoctorID = ? AND M_DoctorAddressIsActive = 'Y' "; //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 searchpatient(){ 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_patient WHERE M_PatientName like ? AND M_PatientIsActive = '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_patient count",$this->db_onedev); exit; } $sql = " SELECT * FROM m_patient WHERE M_PatientName like ? AND M_PatientIsActive = 'Y' ORDER BY M_PatientName 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("m_patient rows",$this->db_onedev); exit; } } function searchtest(){ 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 one.t_test JOIN one.t_price ON T_PriceT_TestID = T_TestID AND T_PriceIsCito = 'N' JOIN one_preorder_dev.conf_system ON Conf_SystemIsActive = 'Y' AND Conf_SystemMOUID = T_PriceM_MouID WHERE T_TestName like ? AND T_TestIsActive = 'Y' ORDER BY T_TestName ASC"; $query = $this->db_onedev->query($sql,$q['search']); //echo $query; if ($query) { $tot_count = $query->result_array()[0]["total"]; } else { $this->sys_error_db("test count",$this->db_onedev); exit; } $sql = " SELECT 'Y' as editable, 0 as xid, T_TestID, T_TestCode, T_TestName, T_PriceAmount, T_PriceDisc, T_PriceDiscRp, T_PriceAmount - ((T_PriceDisc/100) * T_PriceAmount) - T_PriceDiscRp as total FROM one.t_test JOIN one.t_price ON T_PriceT_TestID = T_TestID AND T_PriceIsCito = 'N' JOIN one_preorder_dev.conf_system ON Conf_SystemIsActive = 'Y' AND Conf_SystemMOUID = T_PriceM_MouID WHERE T_TestName like ? AND T_TestIsActive = 'Y' ORDER BY T_TestName 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("test rows",$this->db_onedev); exit; } } function searchdoctor(){ 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_doctor WHERE M_DoctorName like ? AND M_DoctorIsActive = '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_doctor count",$this->db_onedev); exit; } $sql = " SELECT * FROM m_doctor WHERE M_DoctorName like ? AND M_DoctorIsActive = 'Y' ORDER BY M_DoctorName 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("m_doctor rows",$this->db_onedev); exit; } } function saveorder(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $dateorder = $prm['orderdate']; $timeorder = $prm['ordertime']; $userid = $this->sys_user["M_UserID"]; if($prm['orderaddress'] === 'X'){ $sql = "INSERT INTO m_patientaddress ( M_PatientAddressM_PatientID, M_PatientAddressNote, M_PatientAddressDescription, M_PatientAddressM_KelurahanID, M_PatientAddressCreated, M_PatientAddressLastUpdated ) VALUES( {$prm['orderpatient']}, 'Lainnya', '{$prm['newaddress']}', '{$prm['newkelurahan']['M_KelurahanID']}', NOW(), NOW() )"; $this->db_onedev->query($sql); $prm['orderaddress'] = $this->db_onedev->insert_id(); $prm['orderdeliveryaddressid'] = $prm['orderaddress']; $prm['orderdeliverykelurahan'] = $prm['newkelurahan']['M_KelurahanID']; $prm['orderkelurahan'] = $prm['newkelurahan']['M_KelurahanID']; $prm['orderdeliverydestination'] = $prm['newaddress']; } $number_trx = $this->db_onedev->query("SELECT one_preorder_dev.fn_numbering('HS') as numx")->row()->numx; $query = "INSERT INTO one_preorder_dev.preorder_header ( PreOrder_HeaderNumbering, PreOrder_HeaderM_PatientID, PreOrder_HeaderM_PatientAdrressID, PreOrder_HeaderDate, PreOrder_HeaderTime, PreOrder_HeaderM_PreOrderStatusID, PreOrder_HeaderM_KelurahanID, PreOrder_HeaderM_PreOrderTypeID, PreOrder_HeaderPhone, PreOrder_HeaderM_StaffID, PreOrder_HeaderM_DoctorID, PreOrder_HeaderM_DoctorAddressID, PreOrder_HeaderUserID, PreOrder_HeaderCreated, PreOrder_HeaderLastUpdated ) VALUES( ?,?,?,?,?,?,?,?,?,?,?,?,?,now(),now() )"; $insert_new_order = $this->db_onedev->query($query,array( $number_trx, $prm['orderpatient'], $prm['orderaddress'], date('Y-m-d',strtotime($dateorder)), date('H:i:s',strtotime($timeorder)), 1, $prm['orderkelurahan'], $prm['ordertype'], $prm['orderphone'], isset($prm['orderstaff'])?$prm['orderstaff']:0, isset($prm['orderdoctor'])?$prm['orderdoctor']:0, isset($prm['orderdoctoraddress'])?$prm['orderdoctoraddress']:0, $userid )); if($insert_new_order){ $order_id = $this->db_onedev->insert_id(); foreach($prm['ordertests'] as $k=>$v){ $query = "INSERT INTO one_preorder_dev.preorder_test ( PreOrder_TestPreOrder_HeaderID, PreOrder_TestT_TestID, PreOrder_TestT_TestCode, PreOrder_TestT_TestName, PreOrder_TestPrice, PreOrder_TestDisc, PreOrder_TestDiscRp, PreOrder_TestTotal, PreOrder_TestUserID, PreOrder_TestCreated, PreOrder_TestLastUpdated ) VALUE( ?,?,?,?,?,?,?,?,?,now(),now() )"; $insert_new_test = $this->db_onedev->query($query,array( $order_id, $v['T_TestID'], $v['T_TestCode'], $v['T_TestName'], $v['T_PriceAmount'], $v['T_PriceDisc'], $v['T_PriceDiscRp'], $v['total'], $userid )); } if(isset($prm['orderdeliverydeliveryid'])){ $query = "INSERT INTO one_preorder_dev.preorder_delivery ( PreOrder_DeliveryPreOrder_HeaderID, PreOrder_DeliveryM_DeliveryID, PreOrder_DeliveryM_DeliveryTypeID, PreOrder_DeliveryDestination, PreOrder_DeliveryM_KelurahanID, PreOrder_DeliveryAddressID, PreOrder_DeliveryUserID, PreOrder_DeliveryCreated, PreOrder_DeliveryLastUpdated ) VALUE( ?,?,?,?,?,?,?,now(),now() )"; $insert_new_delivery = $this->db_onedev->query($query,array( $order_id, $prm['orderdeliverydeliveryid'], $prm['orderdeliverydeliverytype'], $prm['orderdeliverydestination'], $prm['orderdeliverykelurahan'], $prm['orderdeliveryaddressid'], $userid )); } $sql = "SELECT T_TestT_SampleTypeID, PreOrder_HeaderNumbering, PreOrder_HeaderID FROM one_preorder_dev.preorder_header JOIN one_preorder_dev.preorder_test ON PreOrder_TestPreOrder_HeaderID = PreOrder_HeaderID AND PreOrder_TestIsActive = 'Y' JOIN t_test ON PreOrder_TestT_TestID = T_TestID WHERE PreOrder_HeaderID = {$order_id} GROUP BY T_TestT_SampleTypeID "; $sampletypes = $this->db_onedev->query($sql)->result_array(); foreach($sampletypes as $k => $v){ $barcode = $v['PreOrder_HeaderNumbering'].'.'.$v['T_TestT_SampleTypeID']; $sql = "INSERT INTO one_preorder_dev.preorder_sample ( Preorder_SamplePreOrder_HeaderID, Preorder_SampleT_SampleTypeID, Preorder_SampleBarcode, Preorder_SampleUserID, Preorder_SampleCreate, Preorder_SampleLastUpdated ) VALUES( {$v['PreOrder_HeaderID']}, {$v['T_TestT_SampleTypeID']}, '{$barcode}', {$userid}, NOW(), NOW() )"; $this->db_onedev->query($sql); //echo $sql; } //echo $this->db_onedev->last_query(); $query = " SELECT PreOrder_HeaderNumbering as numberx FROM one_preorder_dev.preorder_header WHERE PreOrder_HeaderID = ? LIMIT 1"; $rows = $this->db_onedev->query($query,array($order_id))->result(); $result = array( "total" => count($rows) , "records" => $rows, ); $this->sys_ok($result); exit; } else { $this->sys_error_db("order new",$this->db_onedev); exit; } } function updateorder(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $order_id = $prm['orderid']; if($prm['orderaddress'] === 'X'){ $sql = "INSERT INTO m_patientaddress ( M_PatientAddressM_PatientID, M_PatientAddressNote, M_PatientAddressDescription, M_PatientAddressM_KelurahanID, M_PatientAddressCreated, M_PatientAddressLastUpdated ) VALUES( {$prm['orderpatient']}, 'Lainnya', '{$prm['newaddress']}', '{$prm['newkelurahan']}', NOW(), NOW() )"; $this->db_onedev->query($sql); $prm['orderaddress'] = $this->db_onedev->last_id(); $prm['orderdeliveryaddressid'] = $prm['orderaddress']; $prm['orderdeliverykelurahan'] = $prm['newkelurahan']; $prm['orderdeliverydestination'] = $prm['newaddress']; } $dateorder = $prm['orderdate']; $timeorder = $prm['ordertime']; $userid = $this->sys_user["M_UserID"]; $query = "UPDATE one_preorder_dev.preorder_header SET PreOrder_HeaderM_PatientID = ?, PreOrder_HeaderM_PatientAdrressID = ?, PreOrder_HeaderDate = ?, PreOrder_HeaderTime = ?, PreOrder_HeaderM_KelurahanID = ?, PreOrder_HeaderM_PreOrderTypeID = ?, PreOrder_HeaderPhone = ?, PreOrder_HeaderM_StaffID = ?, PreOrder_HeaderM_DoctorID = ?, PreOrder_HeaderM_DoctorAddressID = ?, PreOrder_HeaderUserID = ?, PreOrder_HeaderLastUpdated = now() WHERE PreOrder_HeaderID = ? "; $update_order = $this->db_onedev->query($query,array( $prm['orderpatient'], $prm['orderaddress'], date('Y-m-d',strtotime($dateorder)), date('H:i:s',strtotime($timeorder)), $prm['orderkelurahan'], $prm['ordertype'], $prm['orderphone'], isset($prm['orderstaff'])?$prm['orderstaff']:0, isset($prm['orderdoctor'])?$prm['orderdoctor']:0, isset($prm['orderdoctoraddress'])?$prm['orderdoctoraddress']:0, $userid, $prm['orderid'] )); //echo $this->db_onedev->last_query(); if($update_order){ foreach($prm['ordertests'] as $k=>$v){ if($v['xid'] == 0 || $v['xid'] == '0'){ $query = "INSERT INTO one_preorder_dev.preorder_test ( PreOrder_TestPreOrder_HeaderID, PreOrder_TestT_TestID, PreOrder_TestT_TestCode, PreOrder_TestT_TestName, PreOrder_TestPrice, PreOrder_TestDisc, PreOrder_TestDiscRp, PreOrder_TestTotal, PreOrder_TestUserID, PreOrder_TestCreated, PreOrder_TestLastUpdated ) VALUE( ?,?,?,?,?,?,?,?,?,now(),now() )"; $insert_new_test = $this->db_onedev->query($query,array( $order_id, $v['T_TestID'], $v['T_TestCode'], $v['T_TestName'], $v['T_PriceAmount'], $v['T_PriceDisc'], $v['T_PriceDiscRp'], $v['total'], $userid )); } } if(isset($prm['deleted_ordertests'])){ foreach($prm['deleted_ordertests'] as $i=>$del){ $query = "UPDATE one_preorder_dev.preorder_test SET PreOrder_TestIsActive = 'N', PreOrder_TestUserID = '{$userid}', PreOrder_TestLastUpdated = now() WHERE PreOrder_TestID = ? "; $delete_exist_test = $this->db_onedev->query($query,array($del['xid'])); } } if(isset($prm['orderdeliverydeliveryid'])){ $last_delivery = $this->db_onedev->query(" SELECT COUNT(*) as cexist, PreOrder_DeliveryID FROM one_preorder_dev.preorder_delivery WHERE PreOrder_DeliveryPreOrder_HeaderID = {$order_id} AND PreOrder_DeliveryIsActive = 'Y' LIMIT 1")->row(); if($last_delivery->cexist == 0){ $query = "INSERT INTO one_preorder_dev.preorder_delivery ( PreOrder_DeliveryPreOrder_HeaderID, PreOrder_DeliveryM_DeliveryID, PreOrder_DeliveryM_DeliveryTypeID, PreOrder_DeliveryDestination, PreOrder_DeliveryM_KelurahanID, PreOrder_DeliveryAddressID, PreOrder_DeliveryUserID, PreOrder_DeliveryCreated, PreOrder_DeliveryLastUpdated ) VALUE( ?,?,?,?,?,?,?,now(),now() )"; $insert_new_delivery = $this->db_onedev->query($query,array( $order_id, $prm['orderdeliverydeliveryid'], $prm['orderdeliverydeliverytype'], $prm['orderdeliverydestination'], $prm['orderdeliverykelurahan'], $prm['orderdeliveryaddressid'], $userid )); }else{ $query = "UPDATE one_preorder_dev.preorder_delivery SET PreOrder_DeliveryM_DeliveryID = ?, PreOrder_DeliveryM_DeliveryTypeID = ?, PreOrder_DeliveryDestination = ?, PreOrder_DeliveryM_KelurahanID = ?, PreOrder_DeliveryAddressID = ?, PreOrder_DeliveryUserID = ?, PreOrder_DeliveryLastUpdated = now() WHERE PreOrder_DeliveryID = ? "; $update_exist_delivery = $this->db_onedev->query($query,array( $prm['orderdeliverydeliveryid'], $prm['orderdeliverydeliverytype'], $prm['orderdeliverydestination'], $prm['orderdeliverykelurahan'], $prm['orderdeliveryaddressid'], $userid, $last_delivery->PreOrder_DeliveryID )); } //echo $this->db_onedev->last_query(); } $sql = "UPDATE one_preorder_dev.preorder_sample SET Preorder_SampleIsActive = 'N' WHERE Preorder_SamplePreOrder_HeaderID = {$order_id}"; $this->db_onedev->query($sql); $sql = "SELECT T_TestT_SampleTypeID, PreOrder_HeaderNumbering, PreOrder_HeaderID, IFNULL(Preorder_SampleID,0) as idx FROM one_preorder_dev.preorder_header JOIN one_preorder_dev.preorder_test ON PreOrder_TestPreOrder_HeaderID = PreOrder_HeaderID AND PreOrder_TestIsActive = 'Y' JOIN t_test ON PreOrder_TestT_TestID = T_TestID LEFT JOIN one_preorder_dev.preorder_sample ON Preorder_SamplePreOrder_HeaderID = PreOrder_HeaderID AND T_TestT_SampleTypeID = Preorder_SampleT_SampleTypeID WHERE PreOrder_HeaderID = {$order_id} GROUP BY T_TestT_SampleTypeID "; $sampletypes = $this->db_onedev->query($sql)->result_array(); foreach($sampletypes as $k => $v){ if($v['idx'] == 0 || $v['idx'] == '0'){ $barcode = $v['PreOrder_HeaderNumbering'].'.'.$v['T_TestT_SampleTypeID']; $sql = "INSERT INTO one_preorder_dev.preorder_sample ( Preorder_SamplePreOrder_HeaderID, Preorder_SampleT_SampleTypeID, Preorder_SampleBarcode, Preorder_SampleUserID, Preorder_SampleCreate, Preorder_SampleLastUpdated ) VALUES( {$v['PreOrder_HeaderID']}, {$v['T_TestT_SampleTypeID']}, '{$barcode}', {$userid}, NOW(), NOW() )"; $this->db_onedev->query($sql); //echo $sql; }else{ $sql = "UPDATE one_preorder_dev.preorder_sample SET Preorder_SampleIsActive = 'Y' WHERE Preorder_SampleID = {$v['idx']}"; $this->db_onedev->query($sql); } } //echo $this->db_onedev->last_query(); if($prm['act'] == 'update'){ $query = " SELECT PreOrder_HeaderNumbering as numberx FROM one_preorder_dev.preorder_header WHERE PreOrder_HeaderID = ? LIMIT 1"; $rows = $this->db_onedev->query($query,array($order_id))->result(); $result = array( "total" => count($rows) , "records" => $rows, ); $this->sys_ok($result); exit; } else{ $this->do_orderlab($prm); } } else { $this->sys_error_db("order update",$this->db_onedev); exit; } } function do_confirm(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $order_id = $prm['orderid']; $userid = $this->sys_user["M_UserID"]; $query = "UPDATE one_preorder_dev.preorder_header SET PreOrder_HeaderM_PreOrderStatusID = 2, PreOrder_HeaderUserID = '{$userid}', PreOrder_HeaderLastUpdated = now() WHERE PreOrder_HeaderID = ? "; $update_order = $this->db_onedev->query($query,array( $prm['orderid'] )); //echo $this->db_onedev->last_query(); if($update_order){ $query = " SELECT PreOrder_HeaderNumbering as numberx FROM one_preorder_dev.preorder_header WHERE PreOrder_HeaderID = ? LIMIT 1"; $rows = $this->db_onedev->query($query,array($order_id))->result(); $result = array( "total" => count($rows) , "records" => $rows, ); $this->sys_ok($result); exit; } else{ $this->sys_error_db("confirm update",$this->db_onedev); exit; } } function do_orderlab(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $order_id = $prm['orderid']; $patientage = $prm['patientage']; $userid = $this->sys_user["M_UserID"]; $sql = " SELECT * FROM one_preorder_dev.preorder_header LEFT JOIN one_preorder_dev.conf_system ON Conf_SystemIsActive = 'Y' JOIN one.m_mou ON Conf_SystemMOUID = M_MouID WHERE PreOrder_HeaderID = '{$order_id}'"; //echo $query; $query = $this->db_onedev->query($sql); if (!$query) { $this->sys_error_db("select preorder_header", $this->db_onedev); exit; } $data_order = $query->row(); //print_r($data_order); $query = "INSERT INTO one.t_orderheader ( T_OrderHeaderDate, T_OrderHeaderM_PatientID, T_OrderHeaderM_CompanyID, T_OrderHeaderM_MouID, T_OrderHeaderM_PatientAge, T_OrderHeaderSenderM_DoctorID, T_OrderHeaderSenderM_DoctorAddressID, T_OrderHeaderCreated, T_OrderHeaderUserID ) VALUE( NOW(), ?, ?, ?, ?, ?, ?, NOW(), ? )"; $new_order = $this->db_onedev->query($query,array( $data_order->PreOrder_HeaderM_PatientID, $data_order->M_MouM_CompanyID, $data_order->Conf_SystemMOUID, $patientage, $data_order->PreOrder_HeaderM_DoctorID, $data_order->PreOrder_HeaderM_DoctorAddressID, $userid )); //echo $this->db_onedev->last_query(); if($new_order){ $last_id = $this->db_onedev->insert_id(); $query = " SELECT * FROM one_preorder_dev.preorder_test JOIN one.t_test ON PreOrder_TestT_TestID = T_TestID WHERE PreOrder_TestPreOrder_HeaderID = '{$order_id}' AND PreOrder_TestIsActive = 'Y'"; $data_order_detail = $this->db_onedev->query($query)->result(); $header_total = 0; foreach($data_order_detail as $k => $v){ $dsictot = ((floatval($v->PreOrder_TestDisc)/100) * intval($v->PreOrder_TestPrice)) + intval($v->PreOrder_TestDiscRp); $total = intval($v->PreOrder_TestPrice) - $dsictot ; $header_total = $header_total + $total; $sql = "INSERT INTO t_orderdetail ( T_OrderDetailT_OrderHeaderID, T_OrderDetailT_TestID, T_OrderDetailT_TestCode, T_OrderDetailT_TestName, T_OrderDetailT_TestIsResult, T_OrderDetailT_TestIsPrice, T_OrderDetailPrice, T_OrderDetailPriceForDisc, T_OrderDetailDisc, T_OrderDetailDiscAmount, T_OrderDetailDiscTotal, T_OrderDetailTotal, T_OrderDetailCreated, T_OrderDetailUserID ) VALUE( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NOW(), ? )"; $query = $this->db_onedev->query($sql,array( $last_id, $v->PreOrder_TestT_TestID, $v->T_TestCode, $v->T_TestName, $v->T_TestIsResult, $v->T_TestIsPrice, $v->PreOrder_TestPrice, $v->PreOrder_TestPrice, $v->PreOrder_TestDisc, $v->PreOrder_TestDiscRp, $dsictot, $total, $userid )); if (!$query) { $this->sys_error_db("t_orderdetail insert"); exit; }else{ //$lastid = $this->db_onedev->insert_id(); $sql = "SELECT * FROM t_test WHERE T_TestParentT_TestID = '{$v->T_TestID}' AND T_TestIsActive = 'Y'"; $childrentest = $this->db_onedev->query($sql)->result_array(); if($childrentest){ foreach($childrentest as $xk => $xv){ $sql = "insert into t_orderdetail( T_OrderDetailT_OrderHeaderID, T_OrderDetailT_TestID, T_OrderDetailT_TestCode, T_OrderDetailT_TestName, T_OrderDetailT_TestIsResult, T_OrderDetailT_TestIsPrice, T_OrderDetailUserID, T_OrderDetailCreated, T_OrderDetailLastUpdated ) values( ?, ?, ?, ?, ?, ?,?, now(), now())"; $query = $this->db_onedev->query($sql, array( $last_id, $xv['T_TestID'], $xv['T_TestCode'], $xv['T_TestName'], $xv['T_TestIsResult'], $xv['T_TestIsPrice'], $userid ) ); if (!$query) { $this->sys_error_db("t_orderdetail children insert"); exit; } } } } if($k == count($data_order_detail)-1){ $roundingx = intval(substr($header_total,-3) > 500?substr($header_total,-3)-500:substr($header_total,-3)); $total_akhir = $header_total - $roundingx; $sql = "UPDATE t_orderheader SET T_OrderHeaderRounding = {$roundingx}, T_OrderHeaderTotal = {$total_akhir} WHERE T_OrderHeaderID = {$last_id}"; $this->db_onedev->query($sql); } } $query = " SELECT * FROM one_preorder_dev.preorder_header JOIN one_preorder_dev.preorder_delivery ON PreOrder_DeliveryPreOrder_HeaderID = '{$order_id}' AND PreOrder_DeliveryIsActive = 'Y' WHERE PreOrder_HeaderID = '{$order_id}'"; //echo $query; $delver = $this->db_onedev->query($query)->result_array(); foreach($delver as $ii => $vv){ $addressid = 0; /*if($vv['PreOrder_DeliveryM_DeliveryID'] == 2 || $vv['PreOrder_DeliveryM_DeliveryID'] == '2') $addressid = $vv['PreOrder_HeaderM_PatientAdrressID']; if($vv['PreOrder_DeliveryM_DeliveryID'] == 4 || $vv['PreOrder_DeliveryM_DeliveryID'] == '4') $addressid = $vv['PreOrder_HeaderM_DoctorAddressID'];*/ $sql = "insert into t_orderdelivery( T_OrderDeliveryT_OrderHeaderID, T_OrderDeliveryM_DeliveryID, T_OrderDeliveryM_DeliveryTypeID, T_OrderDeliveryDestination, T_OrderDeliveryAddressID, T_OrderDeliveryM_KelurahanID, T_OrderDeliveryUserID, T_OrderDeliveryCreated, T_OrderDeliveryLastUpdated) values( ?, ?, ?, ?, ?, ?, ?, now(), now())"; $query = $this->db_onedev->query($sql, array( $last_id, $vv['PreOrder_DeliveryM_DeliveryID'], $vv['PreOrder_DeliveryM_DeliveryTypeID'], $vv['PreOrder_DeliveryDestination'], $vv['PreOrder_DeliveryAddressID'], $vv['PreOrder_DeliveryM_KelurahanID'], $userid ) ); } $sql = "UPDATE one_preorder_dev.preorder_header SET PreOrder_HeaderT_OrderHeaderID = '{$last_id}', PreOrder_HeaderM_PreOrderStatusID = 4 WHERE PreOrder_HeaderID = {$order_id}"; //echo $sql; $update_preheader = $this->db_onedev->query($sql); if (!$update_preheader) { $this->sys_error_db("preorder_header update", $this->db_onedev); exit; } $sql = "SELECT T_OrderHeaderLabNumber as numberx FROM t_orderheader WHERE T_OrderHeaderID = '{$last_id}'"; $rst_rtn = $this->db_onedev->query($sql)->row(); $result = array( "total" => 1 , "records" => $rst_rtn, ); $this->sys_ok($result); exit; } else{ $this->sys_error_db("new order",$this->db_onedev); exit; } } function do_cancel(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $order_id = $prm['orderid']; $query = "UPDATE one_preorder_dev.preorder_header SET PreOrder_HeaderIsActive = 'N', PreOrder_HeaderLastUpdated = now() WHERE PreOrder_HeaderID = ? "; $update_order = $this->db_onedev->query($query,array( $prm['orderid'] )); //echo $this->db_onedev->last_query(); if($update_order){ $query = " SELECT PreOrder_HeaderNumbering as numberx FROM one_preorder_dev.preorder_header WHERE PreOrder_HeaderID = ? LIMIT 1"; $rows = $this->db_onedev->query($query,array($order_id))->result(); $result = array( "total" => count($rows) , "records" => $rows, ); $this->sys_ok($result); exit; } else{ $this->sys_error_db("cancel order",$this->db_onedev); exit; } } function do_download(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $order_id = $prm['orderid']; $query = "UPDATE one_preorder_dev.preorder_header SET PreOrder_HeaderDownloadedMobile = 'Y', PreOrder_HeaderLastUpdated = now() WHERE PreOrder_HeaderID = ? "; $update_order = $this->db_onedev->query($query,array( $prm['orderid'] )); //echo $this->db_onedev->last_query(); if($update_order){ $query = " SELECT PreOrder_HeaderNumbering as numberx FROM one_preorder_dev.preorder_header WHERE PreOrder_HeaderID = ? LIMIT 1"; $rows = $this->db_onedev->query($query,array($order_id))->result(); $result = array( "total" => count($rows) , "records" => $rows, ); $this->sys_ok($result); exit; } else{ $this->sys_error_db("downloaded order",$this->db_onedev); exit; } } function do_resend(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $order_id = $prm['orderid']; $query = "SELECT * FROM one_gateway.outbox WHERE outboxID = {$order_id}"; $lastdata = $this->db_onedev->query($query)->row(); $query = "UPDATE one_gateway.outbox SET outboxRetry = 0 WHERE outboxID = ? "; $update_order = $this->db_onedev->query($query,array( $prm['orderid'] )); //echo $this->db_onedev->last_query(); if($update_order){ $query = " SELECT PreOrder_HeaderNumbering as numberx FROM one_preorder_dev.preorder_header WHERE PreOrder_HeaderID = ? LIMIT 1"; $rows = $this->db_onedev->query($query,array($lastdata->outboxRefID))->result(); $result = array( "total" => count($rows) , "records" => $rows, ); $this->sys_ok($result); exit; } else{ $this->sys_error_db("resend order",$this->db_onedev); exit; } } }