PJ_DOCTOR_ID = 0; $this->SENDER_DOCTOR_ID = 0; $this->SENDER_ADDRESS_ID = 0; $this->ONLINE_USER_ID = 1500; } public function index() { echo "Fixing snapshot ss_piutang_test"; } function get_rows($sql, $prm = false) { if ($prm) { $qry = $this->db->query($sql, $prm); } else { $qry = $this->db->query($sql); } if (!$qry) { $msg = "Error Query : {$this->db->error()["message"]} | {$this->db->last_query()}\n"; return [false, $msg]; } $rows = $qry->result_array(); return [true, $rows]; } function get_one_row($sql, $prm) { list($status, $msg) = $this->get_rows($sql, $prm); if ($status !== true) { return [$status, $msg]; } if (count($msg) == 0) { return [false, "Record not found. | " . $msg]; } return [true, $msg[0]]; } function now() { return Date("Y-m-d H:i:s"); } public function fix($futureNo) { $sql = "select FutureOrderID, FutureOrderNumber, FutureOrderDateBooking, FutureOrderIsActive, JSON_EXTRACT( fn_get_patient_atribute(FutureOrderM_PatientID) , '$.patient_fullname' ) PatientName, JSON_EXTRACT( fn_get_patient_atribute(FutureOrderM_PatientID) , '$.M_PatientHP' ) PatientHP, ifnull(T_OrderHeaderLabNumber,'Pending') LabNumber , if(FutureOrderDateBooking > date(now()), 'Y', 'N') inFuture, if(FutureMapT_OrderHeaderID is not null, 'Y', 'N') isMapped from future_order left join future_map on FutureOrderID = FutureMapFutureOrderID left join t_orderheader on FutureMapT_OrderHeaderID = T_OrderHeaderID where FutureOrderNumber = ? "; list($status, $row) = $this->get_one_row($sql, [$futureNo]); if ($status === false) { echo "ERR get Future Order: $row"; exit(); } $this->print_table([$row], array_keys($row)); if ($row["inFuture"] == "Y") { echo "

Booking masa depan

"; exit(); } if ($row["FutureOrderIsActive"] == "N") { echo "

Booking dihapus

"; exit(); } if ($row["isMapped"] == "Y") { echo "

Sudah Tercreate ORDER {$row["LabNumber"]}

"; exit(); } $url_fix = "/one-api/fix/fix_future/do_fix/" . $row["FutureOrderID"] . "/" . md5($row["FutureOrderNumber"]); echo "
\n"; } function do_fix($futureOrderID, $md5Future) { $sql = "select FutureOrderNumber, if(FutureOrderDateBooking > date(now()) , 'Y' , 'N') inFuture, if(FutureMapID is not null,'Y','N') isMapped, FutureMapT_OrderHeaderID from future_order left join future_map on FutureOrderID = FutureMapFutureOrderID and FutureMapIsActive ='Y' where FutureOrderID = ? and FutureOrderIsActive = 'Y' "; list($status, $msg) = $this->get_one_row($sql, [$futureOrderID]); if ($status === false) { echo $msg; exit(); } $row = $msg; $futureOrderNumber = $row["FutureOrderNumber"]; if (md5($row["FutureOrderNumber"]) != $md5Future) { echo "Invalid Redirect Link"; exit(); } if ($row["inFuture"] == "Y") { echo "Booking Masa depan > hari ini"; exit(); } if ($row["inMapped"] == "Y") { echo "Booking sudah ada"; exit(); } ob_start(); echo "
Generate Order
"; $this->generate_order($futureOrderID); $result = ob_get_contents(); ob_end_clean(); echo "
$result
"; $url_fix = "/one-ui/test/vuex/one-fo-cashier-new-payment-v4/"; echo "
\n"; } public function fix_debug($futureNo) { $sql = "select FutureOrderID, FutureOrderNumber, FutureOrderDateBooking, FutureOrderIsActive, JSON_EXTRACT( fn_get_patient_atribute(FutureOrderM_PatientID) , '$.patient_fullname' ) PatientName, JSON_EXTRACT( fn_get_patient_atribute(FutureOrderM_PatientID) , '$.M_PatientHP' ) PatientHP, ifnull(T_OrderHeaderLabNumber,'Pending') LabNumber , if(FutureOrderDateBooking > date(now()), 'Y', 'N') inFuture, if(FutureMapT_OrderHeaderID is not null, 'Y', 'N') isMapped from future_order left join future_map on FutureOrderID = FutureMapFutureOrderID left join t_orderheader on FutureMapT_OrderHeaderID = T_OrderHeaderID where FutureOrderNumber = ? "; list($status, $row) = $this->get_one_row($sql, [$futureNo]); if ($status === false) { echo "ERR get Future Order: $row"; exit(); } $this->print_table([$row], array_keys($row)); if ($row["inFuture"] == "Y") { echo "

Booking masa depan

"; exit(); } if ($row["FutureOrderIsActive"] == "N") { echo "

Booking dihapus

"; exit(); } if ($row["isMapped"] == "Y") { echo "

Sudah Tercreate ORDER {$row["LabNumber"]}

"; exit(); } $url_fix = "/one-api/fix/fix_future/do_fix_debug/" . $row["FutureOrderID"] . "/" . md5($row["FutureOrderNumber"]); echo "
\n"; } function do_fix_debug($futureOrderID, $md5Future) { $sql = "select FutureOrderNumber, if(FutureOrderDateBooking > date(now()) , 'Y' , 'N') inFuture, if(FutureMapID is not null,'Y','N') isMapped, FutureMapT_OrderHeaderID from future_order left join future_map on FutureOrderID = FutureMapFutureOrderID and FutureMapIsActive ='Y' where FutureOrderID = ? and FutureOrderIsActive = 'Y' "; list($status, $msg) = $this->get_one_row($sql, [$futureOrderID]); if ($status === false) { echo $msg; exit(); } $row = $msg; $futureOrderNumber = $row["FutureOrderNumber"]; if (md5($row["FutureOrderNumber"]) != $md5Future) { echo "Invalid Redirect Link"; exit(); } if ($row["inFuture"] == "Y") { echo "Booking Masa depan > hari ini"; exit(); } if ($row["inMapped"] == "Y") { echo "Booking sudah ada"; exit(); } ob_start(); echo "
Generate Order
"; $this->generate_order_debug($futureOrderID); $result = ob_get_contents(); ob_end_clean(); echo "
$result
"; $url_fix = "/one-ui/test/vuex/one-fo-cashier-new-payment-v4/"; echo "
\n"; } public function print_table_style() { echo " "; } public function print_table($rows, $keys) { $this->print_table_style(); echo ""; echo ""; foreach ($keys as $k) { echo ""; } echo "\n"; foreach ($rows as $r) { echo ""; foreach ($keys as $k) { echo ""; } echo ""; } echo "
$k
" . $r[$k] . "
"; } public function get_branch_default() { $sql = "select * from m_branch where M_BranchIsDefault = 'Y' and M_BranchIsActive = 'Y'"; $qry = $this->db->query($sql); if (!$qry) { echo "{$this->now()} ERR : {$this->db->error()["message"]}\n"; exit(); } $rows = $qry->result_array(); if (count($rows) == 0) { echo "{$this->now()} ERR Get Default Branch: {$this->db->error()["message"]}\n"; exit(); } $branchKelurahanID = $rows[0]["M_BranchM_KelurahanID"]; $this->SENDER_DOCTOR_ID = $rows[0]["M_BranchM_DoctorID"]; $this->SENDER_ADDRESS_ID = $rows[0]["M_BranchM_DoctorAddressID"]; $sql = "select * from m_doctorpj where M_DoctorPjIsActive = 'Y' and M_DoctorPjIsDefaultPJ='Y'"; $qry = $this->db->query($sql); if (!$qry) { echo "{$this->now()} ERR : {$this->db->error()["message"]}\n"; exit(); } $rows = $qry->result_array(); if (count($rows) == 0) { echo "{$this->now()} ERR Get Default PJ: {$this->db->error()["message"]}\n"; exit(); } $this->PJ_DOCTOR_ID = $rows[0]["M_DoctorPjM_DoctorID"]; return [$branchKelurahanID]; } public function do_pelunasan( $headerID, $bankAccountID, $paymentTypeID, $paymentNote, $amount ) { $paymentTotal = $amount; $paymentDate = date("Y-m-d H:i:s"); $arr = [ "F_PaymentT_OrderHeaderID" => $headerID, "F_PaymentDate" => $paymentDate, "F_PaymentNote" => $paymentNote, "F_PaymentTotal" => $paymentTotal, "F_PaymentM_UserID" => $this->ONLINE_USER_ID, ]; $qry = $this->db->insert("f_payment", $arr); if (!$qry) { echo "{$this->now()} ERR Get Total Order: {$this->db->error()["message"]} | {$this->db->last_query()}\n"; return false; } $paymentID = $this->db->insert_id(); $detailNote = ""; $arr = [ "F_PaymentDetailF_PaymentID" => $paymentID, "F_PaymentDetailM_PaymentTypeID" => $paymentTypeID, "F_PaymentDetailEDCNat_BankID" => 0, "F_PaymentDetailCardNat_BankID" => 0, "F_PaymentDetailM_BankAccountID" => $bankAccountID, "F_PaymentDetailNote" => $paymentNote, "F_PaymentDetailAmount" => $paymentTotal, "F_PaymentDetailActual" => $paymentTotal, "F_PaymentDetailChange" => 0, ]; $qry = $this->db->insert("f_paymentdetail", $arr); if (!$qry) { echo "{$this->now()} ERR Pelunasan: {$this->db->error()["message"]} | {$this->db->last_query()}\n"; return false; } return true; } function add_delivery_note($orderHeaderID, $delivery_note) { $rst_id = $orderHeaderID; $db_msg = ""; foreach ($delivery_note as $k => $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'"; $qry = $this->db_smartone->query($sql); if (!$qry) { $db_msg .= "ERR : Update T_orderDelivery " . $this->db->error()["message"] . " | " . $$this->db->last_query(); $db_msg .= "\n"; } } 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; $qry = $this->db_smartone->query($sql); if (!$qry) { $db_msg .= "ERR : Get T_orderDelivery for XDel " . $this->db->error()["message"] . " | " . $$this->db->last_query(); $db_msg .= "\n"; } $xdel_id = $qry->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"]} )"; $qry = $this->db_smartone->query($sql); if (!$qry) { $db_msg .= "ERR : Update T_orderDelivery " . $this->db->error()["message"] . " | " . $$this->db->last_query(); $db_msg .= "\n"; } } } } return $db_msg; } public function generate_order_debug($futureOrderID) { $this->db->trans_begin(); $this->get_branch_default(); $sql = "select future_order.*, if(FutureMapIsActive is null , 'N', 'Y') isMapped from future_order left join future_map on FutureOrderID = FutureMapFutureOrderID where FutureOrderID = ? "; $qry = $this->db->query($sql, [$futureOrderID]); if (!$qry) { $this->db->trans_rollback(); echo "{$this->now()} Err GetFutureOrder {$this->db->error()["message"]} | {$this->db->last_query()}\n"; return; } $rows = $qry->result_array(); if (count($rows) == 0) { $this->db->trans_rollback(); echo "{$this->now()} Err GetFutureOrder not found | {$this->db->last_query()}\n"; return; } if ($rows[0]["isMapped"] == "Y") { $this->db->trans_rollback(); echo "{$this->now()} Err Order sudah di future_map | {$this->db->last_query()}\n"; return; } $futureOrder = $rows[0]; echo "{$this->now()} Create Order from {$futureOrder["FutureOrderNumber"]} \n"; $x_header = ($futureOrder["FutureOrderJSONHeader"]); echo "$x_header\n"; $x_header = preg_replace('/[[:^print:]]/', '', $x_header); $header = json_decode($x_header,true); echo "HEADER : ". $x_header; echo "JSON LAST ERR : " . json_last_error_msg() . "\n"; print_r($header); echo "

"; $header["date"] = date("Y-m-d H:i:s"); echo "New Header: " ; print_r($header); $t_header = json_encode($header); echo "XXX Header : $t_header | " . json_last_error_msg(); echo "

"; $x_delivery = $futureOrder["FutureOrderJSONDelivery"]; $x_delivery = str_replace("\n","",$x_delivery); $delivery = json_decode($x_delivery, true); echo "Raw Delivery :
$x_delivery
"; echo "Decode Delivery Json : " . json_last_error_msg() . "
"; $delivery_note = json_decode( $futureOrder["FutureOrderJSONDeliveryNote"], true ); $req = json_decode($futureOrder["FutureOrderJSONReq"], true); $detail = json_decode($futureOrder["FutureOrderJSONDetail"], true); $header_json = addslashes( str_replace('\n', '\\\n', json_encode($header)) ); $detail_json = str_replace('\n', '\\\n', json_encode($detail)); $delivery_json = addslashes( str_replace('\n', '\\\n', json_encode($delivery)) ); echo "
"; echo "Delivery String:
"; echo $delivery; echo "
"; $req_json = json_encode($req); echo "
"; print_r($header_json); echo "
"; print_r($detail_json); echo "
"; echo "Delivery JSON:"; print_r($delivery_json); $sql = "CALL sp_fo_register_save_online_debug(0, '{$header_json}', '{$delivery_json}', '{$detail_json}', '{$req_json}', '3');"; $query = $this->db->query($sql); if (!$query) { $this->db->trans_rollback(); echo "{$this->now()} Err Create Order : {$this->db->error()["message"]} | {$this->db->last_query()}\n"; return; } $rows = $query->result_array(); $this->db->trans_rollback(); $rst_data = json_decode($rows[0]["data"]); $rst_id = $rst_data->id; if ($rows[0]["status"] == "ERR") { echo "ERR CALL sp_fo_register_save_online_debug| "; echo "
"; print_r($rows); $this->db->trans_rollback(); return; } $this->db->trans_rollback(); echo "DEBUG ONLY"; return; $this->clean_mysqli_connection($this->db->conn_id); $orderHeaderID = $rst_id; if ($orderHeaderID == 0) { $this->db->trans_rollback(); echo "{$this->now()} Err Generate Order | {$this->db->last_query()}\n"; return; } $orderHeaderNo = $rst->data->number; $db_msg = $this->add_delivery_note($orderHeaderID, $delivery_note); if ($db_msg != "") { $this->db->trans_rollback(); echo "{$this->now()} Err Add Delivery Note $db_msg\n"; return; } //Doctor Alias $sql = "UPDATE t_orderheaderaddon SET T_OrderHeaderAddOnAliasDoctorName = '{$futureOrder["FutureOrderDoctorAlias"]}', T_OrderHeaderAddOnAliasDoctorAddress = '{$futureOrder["FutureOrderDoctorAddress"]}', T_OrderHeaderAddOnFoTimeStart = '{$futureOrder["FutureOrderFoTimeStart"]}', T_OrderHeaderAddOnFoTimeEnd = '{$futureOrder["FutureOrderFoTimeEnd"]}' WHERE T_OrderHeaderAddOnT_OrderHeaderID = '{$orderHeaderID}'"; $query = $this->db->query($sql); if (!$query) { $this->db->trans_rollback(); echo "{$this->now()} Err Create Order : {$this->db->error()["message"]} | {$this->db->last_query()}\n"; return; } // futtureMap $arr = [ "FutureMapT_OrderHeaderID" => $orderHeaderID, "FutureMapFutureOrderID" => $futureOrderID, ]; $qry = $this->db->insert("future_map", $arr); if (!$qry) { $this->db->trans_rollback(); echo "{$this->now()} Err Future Map: {$this->db->error()["message"]} | {$this->db->last_query()}\n"; return; } // // Down payment // $sql = "select group_concat(FutureDownpaymentNumber) as dpNo, sum(FutureDownpaymentTotal) dpTotal from future_downpayment where FutureDownpaymentFutureOrderID = ? and FutureDownpaymentIsActive='Y'"; $query = $this->db->query($sql, $futureOrderID); if (!$query) { $this->db->trans_rollback(); echo "{$this->now()} Err Get DownPaymentNumber : {$this->db->error()["message"]} | {$this->db->last_query()}\n"; return; } $rows = $query->result_array(); $dpTotal = 0; $dpNo = ""; if (count($rows) > 0) { $dpTotal = $rows[0]["dpTotal"]; $dpNo = $rows[0]["dpNo"]; } if ($dpTotal > 0) { $bankAccountID = 0; $paymentTypeID = 10; $paymentNote = "DP : $dpNo"; $rst_payment = $this->do_pelunasan( $orderHeaderID, $bankAccountID, $paymentTypeID, $paymentNote, $dpTotal ); } if ($this->db->trans_status === false) { $this->db->trans_rollback(); echo "{$this->now()} ERR : {$db_msg}\n"; } else { $this->db->trans_commit(); echo "{$this->now()} $orderHeaderNo [Success]\n"; } } public function generate_order($futureOrderID) { $this->db->trans_begin(); $this->get_branch_default(); $sql = "select future_order.*, if(FutureMapIsActive is null , 'N', 'Y') isMapped from future_order left join future_map on FutureOrderID = FutureMapFutureOrderID where FutureOrderID = ? "; $qry = $this->db->query($sql, [$futureOrderID]); if (!$qry) { $this->db->trans_rollback(); echo "{$this->now()} Err GetFutureOrder {$this->db->error()["message"]} | {$this->db->last_query()}\n"; return; } $rows = $qry->result_array(); if (count($rows) == 0) { $this->db->trans_rollback(); echo "{$this->now()} Err GetFutureOrder not found | {$this->db->last_query()}\n"; return; } if ($rows[0]["isMapped"] == "Y") { $this->db->trans_rollback(); echo "{$this->now()} Err Order sudah di future_map | {$this->db->last_query()}\n"; return; } $futureOrder = $rows[0]; echo "{$this->now()} Create Order from {$futureOrder["FutureOrderNumber"]} \n"; $x_header = ($futureOrder["FutureOrderJSONHeader"]); $x_header = preg_replace('/[[:^print:]]/', '', $x_header); $header = json_decode($x_header,true); $header["date"] = date("Y-m-d H:i:s"); $x_delivery = $futureOrder["FutureOrderJSONDelivery"]; $x_delivery = str_replace("\n","",$x_delivery); $delivery = json_decode($x_delivery, true); $delivery_note = json_decode( $futureOrder["FutureOrderJSONDeliveryNote"], true ); $req = json_decode($futureOrder["FutureOrderJSONReq"], true); $detail = json_decode($futureOrder["FutureOrderJSONDetail"], true); $header_json = addslashes( str_replace('\n', '\\\n', json_encode($header)) ); $detail_json = str_replace('\n', '\\\n', json_encode($detail)); $delivery_json = addslashes( str_replace('\n', '\\\n', json_encode($delivery)) ); $req_json = json_encode($req); $sql = "CALL sp_fo_register_save_online(0, '{$header_json}', '{$delivery_json}', '{$detail_json}', '{$req_json}', '3');"; $query = $this->db->query($sql); if (!$query) { $this->db->trans_rollback(); echo "{$this->now()} Err Create Order : {$this->db->error()["message"]} | {$this->db->last_query()}\n"; return; } $rst = $query->row(); $rst->data = json_decode($rst->data); $rst_id = $rst->data->id; $this->clean_mysqli_connection($this->db->conn_id); $orderHeaderID = $rst_id; if ($orderHeaderID == 0) { $this->db->trans_rollback(); echo "{$this->now()} Err Generate Order | {$this->db->last_query()}\n"; return; } $orderHeaderNo = $rst->data->number; $db_msg = $this->add_delivery_note($orderHeaderID, $delivery_note); if ($db_msg != "") { $this->db->trans_rollback(); echo "{$this->now()} Err Add Delivery Note $db_msg\n"; return; } //Doctor Alias $sql = "UPDATE t_orderheaderaddon SET T_OrderHeaderAddOnAliasDoctorName = '{$futureOrder["FutureOrderDoctorAlias"]}', T_OrderHeaderAddOnAliasDoctorAddress = '{$futureOrder["FutureOrderDoctorAddress"]}', T_OrderHeaderAddOnFoTimeStart = '{$futureOrder["FutureOrderFoTimeStart"]}', T_OrderHeaderAddOnFoTimeEnd = '{$futureOrder["FutureOrderFoTimeEnd"]}' WHERE T_OrderHeaderAddOnT_OrderHeaderID = '{$orderHeaderID}'"; $query = $this->db->query($sql); if (!$query) { $this->db->trans_rollback(); echo "{$this->now()} Err Create Order : {$this->db->error()["message"]} | {$this->db->last_query()}\n"; return; } // futtureMap $arr = [ "FutureMapT_OrderHeaderID" => $orderHeaderID, "FutureMapFutureOrderID" => $futureOrderID, ]; $qry = $this->db->insert("future_map", $arr); if (!$qry) { $this->db->trans_rollback(); echo "{$this->now()} Err Future Map: {$this->db->error()["message"]} | {$this->db->last_query()}\n"; return; } // // Down payment // $sql = "select group_concat(FutureDownpaymentNumber) as dpNo, sum(FutureDownpaymentTotal) dpTotal from future_downpayment where FutureDownpaymentFutureOrderID = ? and FutureDownpaymentIsActive='Y'"; $query = $this->db->query($sql, $futureOrderID); if (!$query) { $this->db->trans_rollback(); echo "{$this->now()} Err Get DownPaymentNumber : {$this->db->error()["message"]} | {$this->db->last_query()}\n"; return; } $rows = $query->result_array(); $dpTotal = 0; $dpNo = ""; if (count($rows) > 0) { $dpTotal = $rows[0]["dpTotal"]; $dpNo = $rows[0]["dpNo"]; } if ($dpTotal > 0) { $bankAccountID = 0; $paymentTypeID = 10; $paymentNote = "DP : $dpNo"; $rst_payment = $this->do_pelunasan( $orderHeaderID, $bankAccountID, $paymentTypeID, $paymentNote, $dpTotal ); } if ($this->db->trans_status === false) { $this->db->trans_rollback(); echo "{$this->now()} ERR : {$db_msg}\n"; } else { $this->db->trans_commit(); echo "{$this->now()} $orderHeaderNo [Success]\n"; } } function do_order_log($orderHeaderID, $delivery) { $rst_id = $$orderHeaderID; $sql = "SELECT * FROM t_orderheader JOIN m_patient ON M_PatientID = T_OrderHeaderM_PatientID WHERE T_OrderHeaderID = {$rst_id}"; //echo $sql; $qry = $this->db_smartone->query($sql); if (!$qry) { $this->db->trans_rollback(); echo "{$this->now()} ERR : {$db_msg}\n"; return false; } $x_header = $qry->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($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}' )"; $this->db->query($sql); } public function update_delivery($orderID, $deliveries) { $db_msg = ""; $sql = "update t_orderdelivery set T_OrderDeliveryIsActive = 'N' where T_OrderDeliveryT_OrderHeaderID = ?"; $qry = $this->db->query($sql, [$orderID]); if (!$qry) { return "ERR Update Delivery | " . $this->db->error()["message"] . "|" . $this->db->last_query(); } foreach ($deliveries as $d) { $arr = [ "T_OrderDeliveryT_OrderHeaderID" => $orderID, "T_OrderDeliveryM_DeliveryID" => $d["T_OrderDeliveriesM_DeliveryID"], "T_OrderDeliveryM_DeliveryTypeID" => $d["T_OrderDeliveriesM_DeliveryTypeID"], "T_OrderDeliveryDestination" => $d["T_OrderDeliveriesDestination"], ]; $qry = $this->db->insert("t_orderdelivery", $arr); if (!$qry) { $db_msg .= "ERR Update Delivery | " . $this->db->error()["message"] . "|" . $this->db->last_query() . "\n"; } } return $db_msg; } }