db_smartone = $this->load->database("onedev", true); } function save() { $prm = $this->sys_input; $hdr = $prm['header']; $header_json = addslashes(str_replace('\n', '\\\n', json_encode($hdr))); $detail_json = str_replace('\n', '\\\n', json_encode($prm['detail'])); $delivery_json = addslashes(str_replace('\n', '\\\n', json_encode($prm['delivery']))); $req_json = json_encode($prm['req']); $sql = "CALL sp_fo_register_save('{$prm['order_id']}', '{$header_json}', '{$delivery_json}', '{$detail_json}', '{$req_json}', '{$this->sys_user['M_UserID']}');"; $query = $this->db_smartone->query($sql); if ($query) { $rst = $query->row(); $this->clean_mysqli_connection($this->db_smartone->conn_id); //print_r($rst); $rst_id = $rst->id; //echo $rst_id; //print_r($rst); $rst->data = json_decode($rst->data); //print_r($rst->data); $rst_id = $rst->data->id; $x = preg_match("/janji hasi/", $rst->message); if ($x) $rst->message = "Masih ada pemeriksaan yang BELUM DISET JANJI HASILNYA !"; $rst->message = ["text"=>$rst->message, "query"=>$this->db_smartone->last_query()]; // pe : add broadcast notification $rst->order_header = $this->get_header($rst_id); $rst->order_detail = $this->get_details($rst_id); $rst->order_delivery = $this->get_delivery($rst_id); $this->broadcast("fo-register"); echo json_encode($rst); } else { $this->sys_error_db("save order", $this->db_smartone); exit; } } function get_header($id){ $sql = " SELECT T_OrderHeaderID as order_id, T_OrderHeaderLabNumber as order_no, T_OrderHeaderDate as order_date, T_OrderHeaderSubTotal as order_subtotal, T_OrderHeaderRounding as order_rounding, T_OrderHeaderTotal as order_total, concat(if(M_TitleID is null, '', concat(M_TitleName, ' ')), M_PatientName) as patient_name, M_PatientNoReg as patient_mr, M_MouName as order_mou, M_CompanyName as order_company, fn_global_doctor_name(da.M_DoctorID) doctor_sender, fn_global_doctor_name(db.M_DoctorID) doctor_pj, fn_global_doctor_address(aa.M_DoctorAddressID, 1) doctor_sender_address, M_MouIsBill M_CompanyIsBill, M_MouMinDP M_CompanyMinDP, M_MouIsAgingOnHold M_CompanyIsAgingOnHold, M_MouIsAgingOnHoldNote M_CompanyIsAgingOnHoldNote from t_orderheader join m_patient on T_OrderHeaderM_PatientID = M_PatientID join m_company on T_OrderHeaderM_CompanyID = M_CompanyID join m_mou on T_OrderHeaderM_MouID = M_MouID join m_doctor da on T_OrderHeaderSenderM_DoctorID = da.M_DoctorID join m_doctoraddress aa on T_OrderHeaderSenderM_DoctorAddressID = aa.M_DoctorAddressID join m_doctor db on T_OrderHeaderSenderM_DoctorID = db.M_DoctorID left join m_title on m_patientm_titleid = m_titleid where T_OrderHeaderID = {$id}"; // echo $sql; $query = $this->db_smartone->query($sql); $rows = $query->row(); //echo $this->db->last_query(); return $rows; } function get_delivery($id){ $sql = "CALL sp_fo_payment_get_delivery('{$id}')"; $rows = $this->db_smartone->query($sql)->row(); $this->clean_mysqli_connection($this->db_smartone->conn_id); return json_decode($rows->delivery); } function get_details($id){ $sql = " select T_OrderDetailID as d_id, T_OrderDetailT_TestID as t_id, IFNULL(T_OrderDetailT_TestName, T_PacketName) as t_name, T_OrderDetailPrice as t_price, T_OrderDetailDiscTotal as t_disctotal, T_OrderDetailTotal as t_total from t_orderdetail join t_orderdetailaddon on T_OrderDetailAddOnT_OrderDetailID = T_OrderDetailID left join t_test on t_orderdetailt_testid = t_testid left join t_packet on t_orderdetailaddonispacket = 'Y' and t_orderdetailaddont_packetid = t_packetid where T_OrderDetailT_OrderHeaderID = {$id} and T_ORderDetailIsActive = 'Y' and ((T_ORderDetailAddOnIsPacket = 'N' AND T_TestIsPrintNota = 'Y' AND T_OrderDetailT_TestIsPanelChildren = 'N') OR (T_OrderDetailT_TestIsPanelChildren = 'Y' AND T_OrderDetailT_TestIsPanelChildrenPrintNota = 'Y') OR (T_ORderDetailAddOnIsPacket = 'Y' AND T_PacketIsNOta = 'Y'))"; $query = $this->db_smartone->query($sql); //echo $this->db->last_query(); $rows = $query->result_array(); return $rows; } function load_from_clinic() { $prm = $this->sys_input; $sql = "CALL sp_fo_clinic_load('{$prm['queue']}');"; $query = $this->db_smartone->query($sql); if ($query) { $rst = $query->row(); if ($rst->status == "OK") { $rst->data = json_decode($rst->data); $rst->data->doctor->address = $rst->data->doctor_address; unset($rst->data->doctor_address); $rst->data->company->mou = [$rst->data->mou]; unset($rst->data->mou); } else { $this->sys_error("Tidak ada order"); exit; } echo json_encode($rst); } else { $this->sys_error_db("save order", $this->db_smartone); exit; } } function load() { $prm = $this->sys_input; $sql = "CALL sp_fo_register_load('{$prm['id']}');"; $query = $this->db_smartone->query($sql); if ($query) { $rst = $query->row(); if ($rst->status == "OK") { $rst->data = json_decode($rst->data); $rst->data->doctor->address = $rst->data->doctor_address; unset($rst->data->doctor_address); $rst->data->company->mou = [$rst->data->mou]; unset($rst->data->mou); } else { $this->sys_error("Tidak ada order"); exit; } echo json_encode($rst); } else { $this->sys_error_db("save order", $this->db_smartone); exit; } } }