= ? and T_OrderHeaderDate <= ? and T_OrderHeaderIsActive = 'Y'"; $qry = $this->db->query($sql,[$mouID,$start,$end]); if (!$qry) { $this->log("Error Processing Mou ID : $mouID, start : $start , end : $end \n"); return; } $h_rows = $qry->result_array(); if (count($h_rows) == 0) { echo "Tidak ada Order Mou $mouID dari tanggal $start s/d $end"; exit; } foreach($h_rows as $h) { $orderHeaderID = $h["T_OrderHeaderID"]; $this->process($orderHeaderID); } } function json($orderHeaderID, $danoneID) { $url = "http://localhost/one-api/v1/adhi/fisik/Fisik03/json/$orderHeaderID"; $data = file_get_contents($url); $dataJson = json_decode($data, true); $this->log("\tProcessing Json\n"); foreach ($dataJson as $r) { $arr = [ "T_OrderHeaderID" => $orderHeaderID, "danoneJsonDanoneID" => $danoneID, "title" => $r["title"], "subtitle" => $r["subtitle"], "label_flag_normal" => $r["label_flag_normal"], "flag_normal" => $r["flag_normal"], "flag_normal" => $r["flag_normal"], "show_all" => $r["show_all"], "type_form" => $r["type_form"], "T_TestName" => $r["T_TestName"], "So_ResultEntryFisikUmumType" => $r["So_ResultEntryFisikUmumType"], "name" => $r["name"], "table_name" => $r["table_name"], "segment_name" => $r["segment_name"], "id_code" => $r["id_code"], "lang_id" => $r["lang_id"], "label" => $r["label"], "is_normal" => $r["is_normal"], "chx" => $r["chx"], "value" => $r["value"], "value_x" => $r["value_x"], "kesimpulan" => $r["kesimpulan"], "is_inspected" => $r["is_inspected"], ]; $qry = $this->db->insert("one_etl.danone_json", $arr); if (!$qry) { echo "Error insert one_etl.danone_json, " . $this->db->error()["message"]; $this->db->trans_rollback(); return; } } } function log($msg) { echo Date("Y-m-d H:i:s") . " " . $msg . "\n"; } function process($orderHeaderID) { //get from sp $this->log("Processing T_OrderHeaderID : " . $orderHeaderID); $sql = "call sp_rpt_r_mcu_resume(?,'')"; $qry = $this->db->query($sql, [$orderHeaderID]); if (!$qry) { $this->log("\tError Processing T_OrderHeaderID : $orderHeaderID, " . $this->db->error()["message"]); return; } $this->clean_mysqli_connection($this->db->conn_id); $rows = $qry->result_array(); $isFirst = true; $this->db->trans_begin(); //cleaning $this->log("Clearing existing snapshot for T_OrderHeaderID $orderHeaderID"); $sql = "delete from one_etl.danone where T_OrderHeaderID = ?"; $qry = $this->db->query($sql,[$orderHeaderID]); if(!$qry) { $this->db->trans_rollback(); $this->log("Error clean one_etl.danone " . $this->db->error()["message"]); return; } $sql = "delete from one_etl.danone_detail where T_OrderHeaderID = ?"; $qry = $this->db->query($sql,[$orderHeaderID]); if(!$qry) { $this->db->trans_rollback(); $this->log("Error clean one_etl.danone_detail" . $this->db->error()["message"]); return; } $sql = "delete from one_etl.danone_json where T_OrderHeaderID = ?"; $qry = $this->db->query($sql,[$orderHeaderID]); if(!$qry) { $this->db->trans_rollback(); $this->log("Error clean one_etl.danone_json" . $this->db->error()["message"]); return; } $danoneID = 0; $this->log("\tProcessing : one_etl.danone_detail "); foreach ($rows as $r) { if ($isFirst) { $arr = [ "T_OrderHeaderID" => $r["T_OrderHeaderID"], "M_BranchName" => $r["M_BranchName"], "T_OrderHeaderLabNumber" => $r["T_OrderHeaderLabNumber"], "T_OrderHeaderLabNumberExt" => $r["T_OrderHeaderLabNumberExt"], "T_OrderHeaderDate" => $r["T_OrderHeaderDate"], "NAMA" => $r["NAMA"], "shareID" => $r["shareID"], "M_PatientNIK" => $r["M_PatientNIK"], "M_PatientIDNumber" => $r["M_PatientIDNumber"], "JENISKELAMIN" => $r["JENISKELAMIN"], "M_PatientDOB" => $r["M_PatientDOB"], "T_OrderHeaderM_PatientAge" => $r["T_OrderHeaderM_PatientAge"], "M_PatientJabatan" => $r["M_PatientJabatan"], "M_PatientKedudukan" => $r["M_PatientKedudukan"], "M_PatientPJ" => $r["M_PatientPJ"], "M_PatientJob" => $r["M_PatientJob"], "M_PatientLocation" => $r["M_PatientLocation"], "M_CompanyName" => $r["M_CompanyName"], "M_MouName" => $r["M_MouName"], "M_CompanyID" => $r["M_CompanyID"], "M_MouID" => $r["M_MouID"] ]; $qry = $this->db->insert("one_etl.danone", $arr); if (!$qry) { $this->log("Error insert one_etl.danone , " . $this->db->error()["message"]); $this->db->trans_rollback(); return; } $danoneID = $this->db->insert_id(); $isFirst = false; } $arr = [ "danoneDetailDanoneID" => $danoneID, "T_OrderHeaderID" => $r["T_OrderHeaderID"], "T_TestSasCode" => $r["T_TestSasCode"], "T_TestName" => $r["T_TestName"], "Result" => $r["Mcu_ResumeDetailsResult"] ]; $qry = $this->db->insert("one_etl.danone_detail", $arr); if (!$qry) { $this->log("Error insert one_etl.danone_detail , " . $this->db->error()["message"]); $this->db->trans_rollback(); return; } } if ($danoneID > 0) { $this->json($orderHeaderID, $danoneID); } $this->db->trans_commit(); //get from json $this->log("Done Processing T_OrderHeaderID : " . $orderHeaderID); $this->log("Wait 3 second"); sleep(3); } function demo() { $sql = "select count(distinct nik) total from stage_01"; $qry = $this->db->query($sql); $total = 0; if ($qry) { $total = $qry->result_array()[0]["total"]; } echo $total; } }