get_param(); $branchCode = $param["branchCode"]; $username = $param["username"]; $this->db->trans_begin(); $sql = "insert into nat_patient.stage_03(M_BranchID,M_BranchCode,Username) select M_BranchID,M_BranchCode,? from nat_patient.m_branch where M_BranchCode=? "; $qry = $this->db->query($sql, [$username, $branchCode]); if (!$qry) { echo json_encode([ "status" => "ERR", "message" => $this->db->error()["message"], ]); $this->db->trans_rollback(); exit(); } $stage03ID = $this->db->insert_id(); $sql = "insert into nat_patient.stage_03_detail(stage03ID,M_BranchID, M_BranchCode,M_PatientID,Status) select ?,M_BranchID,M_BranchCode,?,? from nat_patient.m_branch where M_BranchCode =?"; foreach ($param["data"] as $d) { $M_PatientID = $d["M_PatientID"]; $M_BranchCode = $d["branchCode"]; $Status = $d["Status"]; $qry = $this->db->query($sql, [ $stage03ID, $M_PatientID, $Status, $M_BranchCode, ]); if (!$qry) { echo json_encode([ "status" => "ERR", "message" => $this->db->error()["message"], ]); $this->db->trans_rollback(); exit(); } } echo json_encode([ "status" => "OK", "message" => "Validasi updated", ]); $this->db->trans_commit(); } function get_param() { $j_data = file_get_contents("php://input"); $data = json_decode($j_data, true); return $data; } function search($nik) { $sql = "select nat_patient.fn_simple_nik_check(?) as simple_check"; $qry = $this->db->query($sql, [$nik]); if (!$qry) { echo json_encode([ "status" => "ERR", "message" => $this->db->error()["message"], ]); exit(); } $rows = $qry->result_array(); if (count($rows) == 0) { echo json_encode([ "status" => "ERR", "message" => "Invalid NIK : $nik", ]); exit(); } if ($rows[0]["simple_check"] != "Y") { echo json_encode([ "status" => "ERR", "message" => "Invalid NIK : $nik | " . $rows[0]["simple_check"], ]); exit(); } $sql = "select * from nat_patient.stage_02 where nik=?"; $qry = $this->db->query($sql, [$nik]); if (!$qry) { echo json_encode([ "status" => "ERR", "message" => $this->db->error()["message"], ]); exit(); } $rows = $qry->result_array(); if (count($rows) == 0) { echo json_encode([ "status" => "ERR", "message" => "NIK $nik not found", ]); exit(); } $total = $rows[0]["total"]; $j_member = $rows[0]["member"]; $member = json_decode($j_member, true); $sql = "select * from nat_patient.nat_patient np where "; $w_sql = ""; $w_sql_addr = ""; $param = []; foreach ($member as $m) { $pat_member = $m["member"]; foreach ($pat_member as $pid) { if ($w_sql != "") { $w_sql .= " OR "; } if ($w_sql_addr != "") { $w_sql_addr .= " OR "; } $w_sql .= " (np.M_BranchID =? and np.M_PatientID = ?)"; $w_sql_addr .= " (na.M_BranchID =? and na.Nat_PatientAddressM_PatientID = ?)"; $param[] = $m["M_BranchID"]; $param[] = $pid; } } $sql = $sql . $w_sql; $qry = $this->db->query($sql, $param); if (!$qry) { echo json_encode([ "status" => "ERR", "message" => $this->db->error()["message"] . "|\n" . $this->db->last_query(), ]); exit(); } $rows_patient = $qry->result_array(); $sql = "select * from nat_patient.nat_patientaddress na where $w_sql_addr"; $qry = $this->db->query($sql, $param); if (!$qry) { echo json_encode([ "status" => "ERR", "message" => $this->db->error()["message"] . "|\n" . $this->db->last_query(), ]); exit(); } $rows_addr = $qry->result_array(); //global address foreach ($rows_patient as $idx => $p) { $p_addr = array_filter($rows_addr, function ($addr) use ($p) { if ( $addr["M_BranchID"] == $p["M_BranchID"] && $p["M_PatientID"] == $addr["Nat_PatientAddressM_PatientID"] ) { return true; } return false; }); $np_addr = []; //reset index foreach ($p_addr as $p) { $np_addr[] = $p; } $rows_patient[$idx]["address"] = $np_addr; } echo json_encode([ "status" => "OK", "data" => $rows_patient, "all_address" => $rows_addr, ]); } }