db_smartone = $this->load->database("onedev", true); } function get_time_start(){ $rows = date("Y-m-d H:i:s"); $this->sys_ok(["records"=>$rows, "total"=>1, "q"=>$this->db_smartone->last_query()]); } 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_v5('{$prm['order_id']}', '{$header_json}', '{$delivery_json}', '{$detail_json}', '{$req_json}', '{$this->sys_user['M_UserID']}');"; //echo $sql; $query = $this->db_smartone->query($sql); if ($query) { $rst = $query->row(); $this->clean_mysqli_connection($this->db_smartone->conn_id); $rst_id = $rst->id; $rst->data = json_decode($rst->data); $rst_id = $rst->data->id; if($rst_id){ $sql = "UPDATE t_orderheaderaddon SET T_OrderHeaderAddOnAliasDoctorName = '{$hdr['alias_doctor']}', T_OrderHeaderAddOnAliasDoctorAddress = '{$hdr['alias_doctor_address']}' WHERE T_OrderHeaderAddOnT_OrderHeaderID = {$rst_id}"; $this->db_smartone->query($sql); $delivery_note = $prm['delivery']; foreach($delivery_note as $k => $v){ //print_r($v); if($v['noteplus'] != ''){ if($v['delivery_code'] == 'EMAIL' || $v['delivery_code'] == 'WHATSAPP' || $v['delivery_code'] == 'TELEGRAM'){ $sql = "UPDATE t_orderdelivery SET T_OrderDeliveryDestination = '{$v['noteplus']}' WHERE T_OrderDeliveryT_OrderHeaderID = {$rst_id} AND T_OrderDeliveryM_DeliveryID = {$v['delivery_id']} AND T_OrderDeliveryM_DeliveryTypeID = {$v['delivery_type_id']} AND T_OrderDeliveryAddressID = {$v['address_id']} AND T_OrderDeliveryIsActive = 'Y'"; $this->db_smartone->query($sql); //echo $sql; } else{ $sql = "SELECT T_OrderDeliveryID as xdel_id FROM t_orderdelivery WHERE T_OrderDeliveryT_OrderHeaderID = {$rst_id} AND T_OrderDeliveryM_DeliveryID = {$v['delivery_id']} AND T_OrderDeliveryM_DeliveryTypeID = {$v['delivery_type_id']} AND T_OrderDeliveryAddressID = {$v['address_id']} AND T_OrderDeliveryIsActive = 'Y'"; //echo $sql; $xdel_id = $this->db_smartone->query($sql)->row()->xdel_id; $sql = "INSERT INTO t_orderdeliverynote( T_OrderDeliveryNoteT_OrderDeliveryID, T_OrderDeliveryNoteValue, T_OrderDeliveryNoteCreated, T_OrderDeliveryNoteUserID ) VALUES( {$xdel_id}, '{$v['noteplus']}', NOW(), {$this->sys_user['M_UserID']} )"; $this->db_smartone->query($sql); //echo $sql; } } } $sql = "SELECT * FROM t_orderheader JOIN m_patient ON M_PatientID = T_OrderHeaderM_PatientID WHERE T_OrderHeaderID = {$rst_id}"; //echo $sql; $x_header = $this->db_smartone->query($sql)->row_array(); $sql = "SELECT * FROM t_orderdetail WHERE T_OrderDetailT_OrderHeaderID = {$rst_id} AND T_OrderDetailT_TestIsPrice = 'Y' AND T_OrderDetailIsActive = 'Y'"; $x_details = $this->db_smartone->query($sql)->result_array(); $x_details = json_encode($x_details); $x_deliveries = json_encode($prm['delivery']); $sql = "SELECT * FROM t_orderpromise WHERE T_OrderPromiseT_OrderHeaderID = {$rst_id} AND T_OrderPromiseIsActive = 'Y'"; $x_promises = $this->db_smartone->query($sql)->result_array(); $x_promises = json_encode($x_promises); $sql = "INSERT INTO order_log( OrderLogT_OrderHeaderID, OrderLogM_PatientDOB, OrderLogM_CompanyID, OrderLogM_MouID, OrderLogM_DoctorSenderID, OrderLogM_DoctorSenderAddressID, orderLogT_OrderHeaderAddOnAliasDoctorName, orderLogT_OrderHeaderAddOnAliasDoctorAddress, OrderLogAge, OrderLogFoNote, OrderLogSubtotal, OrderLogTotal, OrderLogUserID, OrderLogDetails, OrderLogDeliveries, OrderLogPromises ) VALUES( {$rst_id}, '{$x_header['M_PatientDOB']}', {$x_header['T_OrderHeaderM_CompanyID']}, {$x_header['T_OrderHeaderM_MouID']}, {$x_header['T_OrderHeaderSenderM_DoctorID']}, {$x_header['T_OrderHeaderSenderM_DoctorAddressID']}, '{$hdr['alias_doctor']}', '{$hdr['alias_doctor_address']}', '{$x_header['T_OrderHeaderM_PatientAge']}', '{$x_header['T_OrderHeaderFoNote']}', '{$x_header['T_OrderHeaderSubTotal']}', '{$x_header['T_OrderHeaderTotal']}', {$this->sys_user['M_UserID']}, '{$x_details}', '{$x_deliveries}', '{$x_promises}' )"; //echo $sql; $this->db_smartone->query($sql); } $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, ' ')),IFNULL(M_PatientPrefix,''),' ',M_PatientName,' ',IFNULL(M_PatientSuffix,'')) 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; } } }