1524 lines
61 KiB
PHP
1524 lines
61 KiB
PHP
<?php
|
|
class R_download_local extends MY_Controller
|
|
{
|
|
public function __construct()
|
|
{
|
|
parent::__construct();
|
|
$this->db_onedev = $this->load->database("onedev", true);
|
|
$this->db_log = $this->load->database("one_lab_log", true);
|
|
$this->load->helper(array('form', 'url'));
|
|
}
|
|
|
|
function uncompress()
|
|
{
|
|
$data = file_get_contents("php://input");
|
|
$this->sys_input = json_decode(gzinflate($data), true);
|
|
}
|
|
|
|
function index()
|
|
{
|
|
$this->uncompress();
|
|
$data = $this->sys_input["data"];
|
|
$user_id = 555;
|
|
|
|
$md5 = $this->sys_input["md5"];
|
|
$l_md5 = md5(json_encode($data));
|
|
if ($md5 != $l_md5) {
|
|
$this->sys_error("Md5 $md5 <> $l_md5");
|
|
exit();
|
|
}
|
|
|
|
$order = $data["order"];
|
|
$tests = $data["tests"];
|
|
$samples = $data["samples"];
|
|
$order_promises = $data["order_promises"];
|
|
$order_detail_promises = $data["order_detail_promises"];
|
|
|
|
$log_id = null;
|
|
$old_order_id = $order["T_OrderHeaderID"];
|
|
$lab_number = $order["T_OrderHeaderLabNumber"] ?? null;
|
|
if($lab_number == null)
|
|
{
|
|
echo gzdeflate(
|
|
json_encode([
|
|
"status" => "ERR",
|
|
"message" => "Lab number tidak ditemukan",
|
|
]),
|
|
9
|
|
);
|
|
exit;
|
|
}else{
|
|
$sql = "INSERT INTO log_download (
|
|
Log_DownloadReffID,
|
|
Log_DownloadLabNumber,
|
|
Log_DownloadData,
|
|
Log_DownloadStatus,
|
|
Log_DownloadCreatedUserID,
|
|
Log_DownloadCreated
|
|
) VALUES (
|
|
?,?,?,?,?,NOW()
|
|
)";
|
|
$query = $this->db_log->query($sql, [$old_order_id, $lab_number, json_encode($data), 'P',555]);
|
|
if(!$query)
|
|
{
|
|
$sql = "";
|
|
echo gzdeflate(
|
|
json_encode([
|
|
"status" => "ERR",
|
|
"message" => "Gagal menyimpan log",
|
|
]),
|
|
9
|
|
);
|
|
exit;
|
|
}
|
|
$log_id = $this->db_log->insert_id();
|
|
}
|
|
|
|
$this->db_onedev->trans_begin();
|
|
|
|
$patient = $this->get_patient($order);
|
|
if($patient["status"] == "ERR")
|
|
{
|
|
$this->db_onedev->trans_rollback();
|
|
if($log_id != null)
|
|
$this->update_log($log_id,'E',$patient["message"]);
|
|
|
|
echo gzdeflate(
|
|
json_encode([
|
|
"status" => "ERR",
|
|
"message" => $patient["message"],
|
|
|
|
]),
|
|
9
|
|
);
|
|
exit;
|
|
}
|
|
|
|
$patient_id = $patient["data"]["New_PatientID"];
|
|
if(intval($patient_id) == 0)
|
|
{
|
|
$this->db_onedev->trans_rollback();
|
|
$this->insert_error('get_patient:get_patient', '', json_encode($patient), 'pasien tidak ditemukan');
|
|
if($log_id != null)
|
|
$this->update_log($log_id,'E','Pasien tidak ditemukan');
|
|
|
|
echo gzdeflate(
|
|
json_encode([
|
|
"status" => "ERR",
|
|
"message" => "Pasien tidak ditemukan",
|
|
]),
|
|
9
|
|
);
|
|
exit;
|
|
}
|
|
|
|
$sql = "SELECT *
|
|
FROM m_company
|
|
WHERE
|
|
M_CompanyNumber = 'CPONE' AND
|
|
M_CompanyIsActive = 'Y'";
|
|
$query = $this->db_onedev->query($sql);
|
|
if(!$query)
|
|
{
|
|
$this->db_onedev->trans_rollback();
|
|
if($log_id != null)
|
|
$this->update_log($log_id,'E','Gagal mengambil data perusahaan');
|
|
|
|
echo gzdeflate(
|
|
json_encode([
|
|
"status" => "ERR",
|
|
"message" => "Gagal mengambil data perusahaan",
|
|
]),
|
|
9
|
|
);
|
|
exit;
|
|
}
|
|
$company = $query->row_array();
|
|
if(!$company || $company["M_CompanyID"] == null)
|
|
{
|
|
$this->db_onedev->trans_rollback();
|
|
if($log_id != null)
|
|
$this->update_log($log_id,'E','Perusahaan cpone tidak ditemukan');
|
|
|
|
echo gzdeflate(
|
|
json_encode([
|
|
"status" => "ERR",
|
|
"message" => "Perusahaan cpone tidak ditemukan",
|
|
|
|
]),
|
|
9
|
|
);
|
|
exit;
|
|
}
|
|
|
|
$sql = "SELECT *
|
|
FROM m_mou
|
|
WHERE M_MouIsActive = 'Y' AND M_MouM_CompanyID = ? AND M_MouIsDefault = 'Y'
|
|
ORDER BY M_MouID DESC
|
|
LIMIT 1";
|
|
$query = $this->db_onedev->query($sql, [$company["M_CompanyID"]]);
|
|
if(!$query)
|
|
{
|
|
$this->db_onedev->trans_rollback();
|
|
if($log_id != null)
|
|
$this->update_log($log_id,'E','Gagal mengambil data mou');
|
|
|
|
echo gzdeflate(
|
|
json_encode([
|
|
"status" => "ERR",
|
|
"message" => "Gagal mengambil data mou",
|
|
]),
|
|
9
|
|
);
|
|
exit;
|
|
}
|
|
|
|
$mou = $query->row_array();
|
|
if(!$mou || $mou["M_MouID"] == null)
|
|
{
|
|
$this->db_onedev->trans_rollback();
|
|
|
|
if($log_id != null)
|
|
$this->update_log($log_id,'E','Mou tidak ditemukan');
|
|
|
|
echo gzdeflate(
|
|
json_encode([
|
|
"status" => "ERR",
|
|
"message" => "Mou tidak ditemukan",
|
|
]),
|
|
9
|
|
);
|
|
exit;
|
|
}
|
|
|
|
$mou_id = $mou["M_MouID"];
|
|
|
|
$check_test = $this->check_test($tests);
|
|
if($check_test["status"] == "ERR")
|
|
{
|
|
$this->db_onedev->trans_rollback();
|
|
if($log_id != null)
|
|
$this->update_log($log_id,'E',$check_test["message"]);
|
|
|
|
echo gzdeflate(
|
|
json_encode([
|
|
"status" => "ERR",
|
|
"message" => $check_test["message"],
|
|
]),
|
|
9
|
|
);
|
|
exit;
|
|
}
|
|
|
|
$order['T_OrderHeaderM_CompanyID'] = $company["M_CompanyID"];
|
|
$order['T_OrderHeaderM_MouID'] = $mou_id;
|
|
|
|
$sql = "SELECT *
|
|
FROM config_local
|
|
WHERE Config_LocalIsActive = 'Y'";
|
|
$query = $this->db_onedev->query($sql);
|
|
if(!$query)
|
|
{
|
|
$this->db_onedev->trans_rollback();
|
|
if($log_id != null)
|
|
$this->update_log($log_id,'E','Gagal mengambil data config local');
|
|
|
|
echo gzdeflate(
|
|
json_encode([
|
|
"status" => "ERR",
|
|
"message" => "Gagal mengambil data config local",
|
|
]),
|
|
9
|
|
);
|
|
exit;
|
|
}
|
|
$config_local = $query->row_array();
|
|
if(!$config_local || $config_local["Config_LocalID"] == null)
|
|
{
|
|
$this->db_onedev->trans_rollback();
|
|
if($log_id != null)
|
|
$this->update_log($log_id,'E','Config local tidak ditemukan');
|
|
|
|
echo gzdeflate(
|
|
json_encode([
|
|
"status" => "ERR",
|
|
"message" => "Config local tidak ditemukan",
|
|
]),
|
|
9
|
|
);
|
|
exit;
|
|
}
|
|
|
|
if( $config_local["Config_LocalSenderM_DoctorID"] == 0 ||
|
|
$config_local["Config_LocalSenderM_DoctorAddressID"] == 0 ||
|
|
$config_local["Config_LocalPjM_DoctorID"] == 0){
|
|
|
|
$this->db_onedev->trans_rollback();
|
|
if($log_id != null)
|
|
$this->update_log($log_id,'E','Config dokter sender atau pj tidak ditemukan');
|
|
|
|
echo gzdeflate(
|
|
json_encode([
|
|
"status" => "ERR",
|
|
"message" => "Config dokter sender atau pj tidak ditemukan",
|
|
]),
|
|
9
|
|
);
|
|
exit;
|
|
}
|
|
|
|
$order["T_OrderHeaderSenderM_DoctorID"] = $config_local["Config_LocalSenderM_DoctorID"];
|
|
$order["T_OrderHeaderSenderM_DoctorAddressID"] = $config_local["Config_LocalSenderM_DoctorAddressID"];
|
|
$order["T_OrderHeaderPjM_DoctorID"] = $config_local["Config_LocalPjM_DoctorID"];
|
|
$order["T_OrderHeaderM_PatientID"] = $patient_id;
|
|
$order["T_OrderHeaderCorporateID"] = $order['CorporateID'];
|
|
|
|
|
|
$save_order_header = $this->save_order_header($order);
|
|
if($save_order_header["status"] == "ERR")
|
|
{
|
|
$this->db_onedev->trans_rollback();
|
|
if($log_id != null)
|
|
$this->update_log($log_id,'E',$save_order_header["message"]);
|
|
}
|
|
$order_header_id = $save_order_header["data"]["T_OrderHeaderID"];
|
|
if($order_header_id == null)
|
|
{
|
|
$this->db_onedev->trans_rollback();
|
|
if($log_id != null)
|
|
$this->update_log($log_id,'E','Gagal menyimpan data order header');
|
|
echo gzdeflate(
|
|
json_encode([
|
|
"status" => "ERR",
|
|
"message" => "Gagal menyimpan data order header",
|
|
]),
|
|
9
|
|
);
|
|
exit;
|
|
}
|
|
|
|
/*$save_order_promise = $this->save_order_promise($order_header_id,$order);
|
|
if($save_order_promise["status"] == "ERR")
|
|
{
|
|
$this->db_onedev->trans_rollback();
|
|
if($log_id != null)
|
|
$this->update_log($log_id,'E',$save_order_promise["message"]);
|
|
echo gzdeflate(
|
|
json_encode([
|
|
"status" => "ERR",
|
|
"message" => $save_order_promise["message"],
|
|
]),
|
|
9
|
|
);
|
|
exit;
|
|
}
|
|
|
|
$promise_id = $save_order_promise["data"]["T_OrderPromiseID"];*/
|
|
$promise_id = 0;
|
|
|
|
$save_detail = $this->save_detail($tests,$order_header_id,$promise_id);
|
|
if($save_detail["status"] == "ERR")
|
|
{
|
|
$this->db_onedev->trans_rollback();
|
|
if($log_id != null)
|
|
$this->update_log($log_id,'E',$save_detail["message"]);
|
|
echo gzdeflate(
|
|
json_encode([
|
|
"status" => "ERR",
|
|
"message" => $save_detail["message"],
|
|
]),
|
|
9
|
|
);
|
|
exit;
|
|
}
|
|
|
|
$save_sample = $this->save_sample($samples,$order_header_id);
|
|
if($save_sample["status"] == "ERR")
|
|
{
|
|
$this->db_onedev->trans_rollback();
|
|
if($log_id != null)
|
|
$this->update_log($log_id,'E',$save_sample["message"]);
|
|
echo gzdeflate(
|
|
json_encode([
|
|
"status" => "ERR",
|
|
"message" => $save_sample["message"],
|
|
]),
|
|
9
|
|
);
|
|
exit;
|
|
}
|
|
|
|
$save_corporate = $this->save_corporate($order);
|
|
if($save_corporate["status"] == "ERR")
|
|
{
|
|
$this->db_onedev->trans_rollback();
|
|
if($log_id != null)
|
|
$this->update_log($log_id,'E',$save_corporate["message"]);
|
|
echo gzdeflate(
|
|
json_encode([
|
|
"status" => "ERR",
|
|
"message" => $save_corporate["message"],
|
|
]),
|
|
9
|
|
);
|
|
exit;
|
|
}
|
|
|
|
$save_order_promises = $this->save_order_promises($orderheader_id,$order_promises);
|
|
if($save_corporate["status"] == "ERR")
|
|
{
|
|
$this->db_onedev->trans_rollback();
|
|
if($log_id != null)
|
|
$this->update_log($log_id,'E',$save_corporate["message"]);
|
|
echo gzdeflate(
|
|
json_encode([
|
|
"status" => "ERR",
|
|
"message" => $save_corporate["message"],
|
|
]),
|
|
9
|
|
);
|
|
exit;
|
|
}
|
|
|
|
$save_order_detail_promises = $this->save_order_detail_promises($order_header_id,$order_detail_promises);
|
|
if($save_order_detail_promises["status"] == "ERR")
|
|
{
|
|
$this->db_onedev->trans_rollback();
|
|
if($log_id != null)
|
|
$this->update_log($log_id,'E',$save_order_detail_promises["message"]);
|
|
echo gzdeflate(
|
|
json_encode([
|
|
"status" => "ERR",
|
|
"message" => $save_order_detail_promises["message"],
|
|
]),
|
|
9
|
|
);
|
|
exit;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
$this->update_log($log_id,'D','Menyimpan data order header',$order_header_id);
|
|
|
|
$this->db_onedev->trans_commit();
|
|
|
|
echo gzdeflate(
|
|
json_encode([
|
|
"status" => "OK",
|
|
"result" => $result,
|
|
]),
|
|
9
|
|
);
|
|
}
|
|
|
|
function update_log($log_id,$status,$message,$header_id = 0)
|
|
{
|
|
|
|
$sql = "UPDATE log_download SET Log_DownloadStatus = ?, Log_DownloadMessage = ?, Log_DownloadT_OrderHeaderID = ? WHERE Log_DownloadID = ?";
|
|
$query = $this->db_log->query($sql, [$status,$message,$header_id,$log_id]);
|
|
$this->insert_error('update_log:update_log', $this->db_log->last_query(), json_encode([$status,$message,$header_id,$log_id]), 'update log');
|
|
if(!$query)
|
|
{
|
|
$this->insert_error('update_log:update_log', $this->db_log->last_query(), json_encode([$status,$message,$header_id,$log_id]), 'update log');
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
function save_corporate($data){
|
|
$result = [
|
|
"status" => "OK",
|
|
"message" => "Berhasil menyimpan data corporate",
|
|
"data" => null
|
|
];
|
|
|
|
|
|
$corporate_id = $data["CorporateID"];
|
|
$corporate_name = $data["CorporateName"];
|
|
$corporate_code = $data["CorporateCode"];
|
|
|
|
|
|
$sql = "SELECT * FROM corporate WHERE CorporateCode = ? AND CorporateIsActive = 'Y'";
|
|
$query = $this->db_onedev->query($sql, [$corporate_code]);
|
|
if(!$query)
|
|
{
|
|
$result["status"] = "ERR";
|
|
$result["message"] = "Gagal mendapatkan data corporate";
|
|
$this->insert_error('save_corporate:get_corporate', $this->db_onedev->last_query(), json_encode($data), $result["message"]);
|
|
return $result;
|
|
}
|
|
$corporate = $query->row_array();
|
|
if(!$corporate)
|
|
{
|
|
$sql = "INSERT INTO corporate(
|
|
CorporateID,
|
|
CorporateCode,
|
|
CorporateName,
|
|
CorporateCreatedUserID,
|
|
CorporateCreated
|
|
) VALUES (
|
|
?,?,?,?,NOW()
|
|
)";
|
|
$query = $this->db_onedev->query($sql, [$corporate_id,$corporate_code,$corporate_name,555]);
|
|
if(!$query)
|
|
{
|
|
$result["status"] = "ERR";
|
|
$result["message"] = "Gagal menyimpan data corporate";
|
|
$this->insert_error('save_corporate:save_corporate', $this->db_onedev->last_query(), json_encode($data), $result["message"]);
|
|
return $result;
|
|
}
|
|
$corporate_id = $this->db_onedev->insert_id();
|
|
}else{
|
|
$corporate_id = $corporate["CorporateID"];
|
|
}
|
|
|
|
$result["data"] = $corporate;
|
|
return $result;
|
|
}
|
|
|
|
function get_patient($data){
|
|
$result = [
|
|
"status" => "OK",
|
|
"message" => "Berhasil mendapatkan data pasien",
|
|
"data" => null
|
|
];
|
|
$patient_id = $data["M_PatientID"];
|
|
$new_patient_id = 0;
|
|
$sql = "SELECT * FROM m_patient WHERE M_PatientOldPID = ? AND M_PatientIsActive = 'Y'";
|
|
$query = $this->db_onedev->query($sql, [$patient_id]);
|
|
if(!$query)
|
|
{
|
|
$result["status"] = "ERR";
|
|
$result["message"] = "Gagal mendapatkan data pasien";
|
|
return $result;
|
|
}
|
|
$patient = $query->row_array();
|
|
if(!$patient)
|
|
{
|
|
$sql = "INSERT INTO m_patient(
|
|
M_PatientOldPID,
|
|
M_PatientNoReg,
|
|
M_PatientPrefix,
|
|
M_PatientName,
|
|
M_PatientM_TitleID,
|
|
M_PatientSuffix,
|
|
M_PatientM_SexID,
|
|
M_PatientPOB,
|
|
M_PatientDOB,
|
|
M_PatientReligionCode,
|
|
M_PatientReligionSystem,
|
|
M_PatientBloodTypeCode,
|
|
M_PatientBloodTypeSystem,
|
|
M_PatientBloodRhCode,
|
|
M_PatientBloodRhSystem,
|
|
M_PatientEducationCode,
|
|
M_PatientEducationSystem,
|
|
M_PatientCitizenship,
|
|
M_PatientEtnicCode,
|
|
M_PatientEtnicSystem,
|
|
M_PatientIdentifierCode,
|
|
M_PatientIdentifierSystem,
|
|
M_PatientIdentifierValue,
|
|
M_PatientHP,
|
|
M_PatientPhone,
|
|
M_PatientEmail,
|
|
M_PatientIDNumber,
|
|
M_PatientNote,
|
|
M_PatientNIK,
|
|
M_PatientJabatan,
|
|
M_PatientKedudukan,
|
|
M_PatientPJ,
|
|
M_PatientLocation,
|
|
M_PatientNIP,
|
|
M_PatientJob,
|
|
M_PatientPosisi,
|
|
M_PatientDivisi,
|
|
M_PatientDepartement,
|
|
M_PatientCreatedUserID,
|
|
M_PatientCreated
|
|
) VALUES (
|
|
?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,NOW()
|
|
)";
|
|
$query = $this->db_onedev->query($sql, [
|
|
$data["M_PatientID"],
|
|
$data["M_PatientNoReg"],
|
|
$data["M_PatientPrefix"],
|
|
$data["M_PatientName"],
|
|
strtolower($data["M_PatientGender"]) == 'male' ? 1 : 3,
|
|
$data["M_PatientSuffix"],
|
|
strtolower($data["M_PatientGender"]) == 'male' ? 1 : 2,
|
|
$data["M_PatientPOB"],
|
|
$data["M_PatientDOB"],
|
|
$data["M_PatientReligionCode"],
|
|
$data["M_PatientReligionSystem"],
|
|
$data["M_PatientBloodTypeCode"],
|
|
$data["M_PatientBloodTypeSystem"],
|
|
$data["M_PatientBloodRhCode"],
|
|
$data["M_PatientBloodRhSystem"],
|
|
$data["M_PatientEducationCode"],
|
|
$data["M_PatientEducationSystem"],
|
|
$data["M_PatientCitizenship"],
|
|
$data["M_PatientEtnicCode"],
|
|
$data["M_PatientEtnicSystem"],
|
|
$data["M_PatientIdentifierCode"],
|
|
$data["M_PatientIdentifierSystem"],
|
|
$data["M_PatientIdentifierValue"],
|
|
$data["M_PatientHP"],
|
|
$data["M_PatientPhone"],
|
|
$data["M_PatientEmail"],
|
|
$data["M_PatientIDNumber"],
|
|
$data["M_PatientNote"],
|
|
$data["M_PatientNIK"],
|
|
$data["M_PatientJabatan"],
|
|
$data["M_PatientKedudukan"],
|
|
$data["M_PatientPJ"],
|
|
$data["M_PatientLocation"],
|
|
$data["M_PatientNIP"],
|
|
$data["M_PatientJob"],
|
|
$data["M_PatientPosisi"],
|
|
$data["M_PatientDivisi"],
|
|
$data["M_PatientDepartement"],
|
|
555
|
|
]);
|
|
if(!$query)
|
|
{
|
|
$result["status"] = "ERR";
|
|
$result["message"] = "Gagal menyimpan data pasien";
|
|
$this->insert_error('get_patient:save_patient', $this->db_onedev->last_query(), json_encode($data), $result["message"]);
|
|
return $result;
|
|
}
|
|
|
|
$new_patient_id = $this->db_onedev->insert_id();
|
|
|
|
$sql = "INSERT INTO m_patientaddress(
|
|
M_PatientAddressM_PatientID,
|
|
M_PatientAddressNote,
|
|
M_PatientAddressDescription,
|
|
M_PatientAddressRegionalCd,
|
|
M_PatientAddressLocation,
|
|
M_PatientAddressCity,
|
|
M_PatientAddressRT,
|
|
M_PatientAddressRW,
|
|
M_PatientAddressVillage,
|
|
M_PatientAddressDistrict,
|
|
M_PatientAddressState,
|
|
M_PatientAddressCountry,
|
|
M_PatientAddressCountryCode,
|
|
M_PatientAddressCreatedUserID,
|
|
M_PatientAddressCreated
|
|
)
|
|
VALUES(
|
|
?,?,?,?,?,?,?,?,?,?,?,?,?,?,NOW()
|
|
)";
|
|
$query = $this->db_onedev->query($sql, [
|
|
$new_patient_id,
|
|
'Utama',
|
|
$data["M_PatientAddress"]?$data["M_PatientAddress"]:'',
|
|
$data["M_PatientAddressRegionalCd"]?$data["M_PatientAddressRegionalCd"]:'',
|
|
'',
|
|
$data["M_PatientAddressCity"]?$data["M_PatientAddressCity"]:'',
|
|
$data["M_PatientAddressRT"]?$data["M_PatientAddressRT"]:'',
|
|
$data["M_PatientAddressRW"]?$data["M_PatientAddressRW"]:'',
|
|
$data["M_PatientAddressVillage"]?$data["M_PatientAddressVillage"]:'',
|
|
$data["M_PatientAddressDistrict"]?$data["M_PatientAddressDistrict"]:'',
|
|
$data["M_PatientAddressState"]?$data["M_PatientAddressState"]:'',
|
|
$data["M_PatientAddressCountry"]?$data["M_PatientAddressCountry"]:'',
|
|
$data["M_PatientAddressCountry"] == 'Indonesia'?'ID':'',
|
|
555
|
|
]);
|
|
|
|
if(!$query)
|
|
{
|
|
$result["status"] = "ERR";
|
|
$result["message"] = "Gagal menyimpan data alamat pasien";
|
|
$this->insert_error('get_patient:save_patient_address', $this->db_onedev->last_query(), json_encode($data), $result["message"]);
|
|
return $result;
|
|
}
|
|
}else{
|
|
$new_patient_id = $patient["M_PatientID"];
|
|
}
|
|
|
|
$this->insert_error('get_patient:get_patient', '', json_encode($patient), 'berhasil get patient');
|
|
$patient["New_PatientID"] = $new_patient_id;
|
|
|
|
$result["data"] = $patient;
|
|
return $result;
|
|
}
|
|
|
|
function check_test($data){
|
|
$result = [
|
|
"status" => "OK",
|
|
"message" => "Berhasil mendapatkan data test",
|
|
"data" => null
|
|
];
|
|
$test_fail = [];
|
|
$tests = $data["tests"];
|
|
foreach($tests as $test){
|
|
$test_id = $test["M_TestID"];
|
|
$sql = "SELECT *
|
|
FROM t_test
|
|
JOIN t_sampletype ON T_SampleTypeID = T_TestT_SampleTypeID
|
|
JOIN t_bahan ON T_BahanID = T_SampleT_BahanID
|
|
WHERE T_TestID = ? AND T_TestIsActive = 'Y'";
|
|
$query = $this->db_onedev->query($sql, [$test_id]);
|
|
if(!$query)
|
|
{
|
|
$test_fail[] = $test;
|
|
}
|
|
}
|
|
|
|
if(count($test_fail) > 0)
|
|
{
|
|
$result["status"] = "ERR";
|
|
$string_test_fail = join(',',array_column($test_fail,'T_TestName'));
|
|
$result["message"] = "Test $string_test_fail tidak ditemukan";
|
|
$result["data"] = $test_fail;
|
|
$this->insert_error('check_test:get_test', '', json_encode($test_fail), $result["message"]);
|
|
}
|
|
return $result;
|
|
}
|
|
|
|
function save_order_header($data){
|
|
|
|
|
|
$return = [
|
|
"status" => "OK",
|
|
"message" => "",
|
|
"data" => []
|
|
];
|
|
//get no trans
|
|
$no_trans = $data["T_OrderHeaderLabNumber"];
|
|
|
|
$sql = "SELECT *
|
|
FROM log_download
|
|
WHERE
|
|
Log_DownloadReffID = ? AND
|
|
Log_DownloadLabNumber = ? AND
|
|
Log_DownloadStatus = 'D'
|
|
ORDER BY Log_DownloadID DESC
|
|
LIMIT 1";
|
|
$query = $this->db_log->query($sql, [$data["T_OrderHeaderID"],$no_trans]);
|
|
if(!$query)
|
|
{
|
|
$return["status"] = "ERR";
|
|
$return["message"] = "Gagal mendapatkan data log download";
|
|
$this->insert_error('save_order_header:get_log_download', $this->db_log->last_query(), json_encode($data), $return["message"]);
|
|
return $return;
|
|
}
|
|
|
|
$log_download = $query->row_array();
|
|
if($log_download && intval($log_download["Log_DownloadT_OrderHeaderID"]) > 0)
|
|
{
|
|
$sql = "SELECT *
|
|
FROM t_orderheader
|
|
WHERE T_OrderHeaderID = ?";
|
|
$query = $this->db_onedev->query($sql, [$log_download["Log_DownloadT_OrderHeaderID"]]);
|
|
if(!$query)
|
|
{
|
|
$return["status"] = "ERR";
|
|
$return["message"] = "Gagal mendapatkan data order header exist";
|
|
$this->insert_error('save_order_header:get_order_header_exist', $this->db_onedev->last_query(), json_encode($data), $return["message"]);
|
|
return $return;
|
|
}
|
|
$order_header = $query->row_array();
|
|
if($order_header)
|
|
{
|
|
$return["status"] = "OK";
|
|
$return["message"] = "Order header sudah ada";
|
|
$return["data"] = $order_header;
|
|
return $return;
|
|
}
|
|
}
|
|
|
|
$header = $data;
|
|
$age = $this->generate_age($header['M_PatientDOB'],$header['T_OrderHeaderDate']);
|
|
|
|
//insert header
|
|
$sql_header = "INSERT INTO t_orderheader (
|
|
T_OrderHeaderDate,
|
|
T_OrderHeaderLabNumber,
|
|
T_OrderHeaderM_PatientID,
|
|
T_OrderHeaderM_CompanyID,
|
|
T_OrderHeaderCorporateID,
|
|
T_OrderHeaderM_MouID,
|
|
T_OrderHeaderM_PatientAge,
|
|
T_OrderHeaderSenderM_DoctorID,
|
|
T_OrderHeaderSenderM_DoctorAddressID,
|
|
T_OrderHeaderPjM_DoctorID,
|
|
T_OrderHeaderPj2M_DoctorID,
|
|
T_OrderHeaderM_LangID,
|
|
T_OrderHeaderLangIsSI,
|
|
T_OrderHeaderIsCito,
|
|
T_OrderHeaderNat_CitoID,
|
|
T_OrderHeaderDiagnose,
|
|
T_OrderHeaderFoNote,
|
|
T_OrderHeaderFoNoteM_UserID,
|
|
T_OrderHeaderCreatedUserID,
|
|
T_OrderHeaderCreated
|
|
) VALUES (
|
|
?,
|
|
?,
|
|
?,
|
|
?,
|
|
?,
|
|
?,
|
|
?,
|
|
?,
|
|
?,
|
|
?,
|
|
?,
|
|
?,
|
|
?,
|
|
?,
|
|
?,
|
|
?,
|
|
?,
|
|
?,
|
|
?,
|
|
NOW()
|
|
)
|
|
";
|
|
|
|
$prm_header = [
|
|
$header['T_OrderHeaderDate'],
|
|
$no_trans,
|
|
$header['T_OrderHeaderM_PatientID'],
|
|
$header['T_OrderHeaderM_CompanyID'],
|
|
$header['CorporateID'],
|
|
$header['T_OrderHeaderM_MouID'],
|
|
$age,
|
|
$header['T_OrderHeaderSenderM_DoctorID'],
|
|
$header['T_OrderHeaderSenderM_DoctorAddressID'],
|
|
$header['T_OrderHeaderPjM_DoctorID'],
|
|
0,
|
|
1,
|
|
'N',
|
|
'N',
|
|
0,
|
|
$header['T_OrderHeaderDiagnose'],
|
|
$header['T_OrderHeaderFoNote'],
|
|
0,
|
|
555
|
|
];
|
|
$this->insert_error('save_order_header:sql_header', $sql_header, json_encode($prm_header), 'insert header debug');
|
|
$query_header = $this->db_onedev->query($sql_header, $prm_header);
|
|
//this->insert_error('save_order_header:save_order_header', $this->db_onedev->last_query(), json_encode($prm_header), 'insert header');
|
|
if (!$query_header) {
|
|
$return["status"] = "ERR";
|
|
$return["message"] = "Gagal menyimpan data order header";
|
|
$this->insert_error('save_order_header:save_order_header', $this->db_onedev->last_query(), json_encode($data), $return["message"]);
|
|
return $return;
|
|
}
|
|
|
|
//get header id
|
|
$header_id = $this->db_onedev->insert_id();
|
|
|
|
$sql = "INSERT INTO t_orderheaderaddon (
|
|
T_OrderHeaderAddOnT_OrderHeaderID,
|
|
T_OrderHeaderAddOnSecondM_LangID,
|
|
T_OrderHeaderAddOnSecondLangIsSI,
|
|
T_OrderHeaderAddOnAliasDoctorName,
|
|
T_OrderHeaderAddOnAliasDoctorAddress,
|
|
T_OrderHeaderAddOnOnlySampleTime,
|
|
T_OrderHeaderAddOnPatientMcu,
|
|
T_OrderHeaderAddOnCreated,
|
|
T_OrderHeaderAddOnCreatedUserID
|
|
)
|
|
VALUES(
|
|
?,?,?,?,?,?,?,NOW(),?
|
|
)";
|
|
$prm_addon = [
|
|
$header_id,
|
|
2,
|
|
'N',
|
|
'',
|
|
'',
|
|
'',
|
|
'Y',
|
|
555
|
|
];
|
|
$query_addon = $this->db_onedev->query($sql, $prm_addon);
|
|
if (!$query_addon) {
|
|
$return["status"] = "ERR";
|
|
$return["message"] = "Gagal menyimpan data order header addon";
|
|
$this->insert_error('save_order_header:save_order_header_addon', $this->db_onedev->last_query(), json_encode($data), $return["message"]);
|
|
return $return;
|
|
}
|
|
|
|
$sqlheaderlang = "INSERT INTO t_orderheaderlang
|
|
(T_OrderHeaderLangT_OrderHeaderID,
|
|
T_OrderHeaderLangM_LangID,
|
|
T_OrderHeaderLangCreated,
|
|
T_OrderHeaderLangCreatedUserID,
|
|
T_OrderHeaderLangLastUpdated,
|
|
T_OrderHeaderLangLastUpdatedUserID)
|
|
VALUES(?,?,NOW(),?,NOW(),?)";
|
|
$prm_header_lang = [
|
|
$header_id,
|
|
1,
|
|
555,
|
|
555
|
|
];
|
|
$query_header_lang = $this->db_onedev->query($sqlheaderlang, $prm_header_lang);
|
|
if (!$query_header_lang) {
|
|
$return["status"] = "ERR";
|
|
$return["message"] = "Gagal menyimpan data order header lang";
|
|
$this->insert_error('save_order_header:save_order_header_lang', $this->db_onedev->last_query(), json_encode($data), $return["message"]);
|
|
return $return;
|
|
}
|
|
|
|
$sql = "SELECT *
|
|
FROM t_orderheader
|
|
WHERE T_OrderHeaderID = ? AND T_OrderHeaderIsActive = 'Y'";
|
|
$query = $this->db_onedev->query($sql, [$header_id]);
|
|
if(!$query)
|
|
{
|
|
$return["status"] = "ERR";
|
|
$return["message"] = "Gagal mendapatkan data order header";
|
|
$this->insert_error('save_order_header:get_order_header', $this->db_onedev->last_query(), json_encode($data), $return["message"]);
|
|
return $return;
|
|
}
|
|
|
|
|
|
$order_header = $query->row_array();
|
|
|
|
$return["status"] = "OK";
|
|
$return["message"] = "Berhasil menyimpan data order header";
|
|
$return["data"] = $order_header;
|
|
//$this->insert_error('save_order_header:get_order_header', '', json_encode($order_header), 'berhasil order header');
|
|
return $return;
|
|
}
|
|
|
|
function generate_age($dob, $xdate){
|
|
// Pastikan format tanggal yang valid
|
|
if (empty($dob) || empty($xdate)) {
|
|
return "0 tahun 0 bulan 0 hari";
|
|
}
|
|
|
|
try {
|
|
// Konversi string tanggal ke DateTime object
|
|
$birth_date = new DateTime($dob);
|
|
$reference_date = new DateTime($xdate);
|
|
|
|
// Pastikan tanggal lahir tidak lebih besar dari tanggal referensi
|
|
if ($birth_date > $reference_date) {
|
|
return "0 tahun 0 bulan 0 hari";
|
|
}
|
|
|
|
// Hitung selisih tanggal
|
|
$interval = $birth_date->diff($reference_date);
|
|
|
|
// Format output
|
|
$years = $interval->y;
|
|
$months = $interval->m;
|
|
$days = $interval->d;
|
|
|
|
$age_string = "";
|
|
|
|
// Tambahkan tahun jika ada
|
|
if ($years > 0) {
|
|
$age_string .= $years . " tahun";
|
|
}
|
|
|
|
// Tambahkan bulan jika ada
|
|
if ($months > 0) {
|
|
if (!empty($age_string)) $age_string .= " ";
|
|
$age_string .= $months . " bulan";
|
|
}
|
|
|
|
// Tambahkan hari jika ada
|
|
if ($days > 0) {
|
|
if (!empty($age_string)) $age_string .= " ";
|
|
$age_string .= $days . " hari";
|
|
}
|
|
|
|
// Jika semua nilai 0 (bayi baru lahir)
|
|
if (empty($age_string)) {
|
|
$age_string = "0 hari";
|
|
}
|
|
|
|
return $age_string;
|
|
|
|
} catch (Exception $e) {
|
|
// Jika terjadi error dalam parsing tanggal
|
|
return "Format tanggal tidak valid";
|
|
}
|
|
}
|
|
|
|
function save_order_promise($header_id,$order,$userid=555){
|
|
$result = [
|
|
"status" => "OK",
|
|
"message" => "Berhasil menyimpan data promise",
|
|
"data" => []
|
|
];
|
|
|
|
$promise_date = date('Y-m-d H:i:s',strtotime($order["T_OrderHeaderDate"] . ' +1 day'));
|
|
$sql = "INSERT INTO t_orderpromise(
|
|
T_OrderPromiseT_OrderHeaderID,
|
|
T_OrderPromiseDateTime,
|
|
T_OrderPromiseCreatedUserID,
|
|
T_OrderPromiseCreated
|
|
) VALUES (?,?,?,NOW())";
|
|
$query = $this->db_onedev->query($sql, [$header_id,$promise_date,$userid]);
|
|
if(!$query)
|
|
{
|
|
$result["status"] = "ERR";
|
|
$result["message"] = "Gagal menyimpan data promise";
|
|
$this->insert_error('save_order_promise:save_order_promise', $this->db_onedev->last_query(), json_encode($order), $result["message"]);
|
|
}
|
|
|
|
$promise_id = $this->db_onedev->insert_id();
|
|
$result["data"] = array('T_OrderPromiseID' => $promise_id);
|
|
return $result;
|
|
}
|
|
|
|
function save_detail($tests,$header_id,$promise_id,$userid=555){
|
|
$result = [
|
|
"status" => "OK",
|
|
"message" => "Berhasil menyimpan data detail",
|
|
"data" => []
|
|
];
|
|
|
|
if(count($tests) == 0)
|
|
{
|
|
$result["status"] = "ERR";
|
|
$result["message"] = "Tidak ada data test";
|
|
return $result;
|
|
}
|
|
|
|
foreach($tests as $test)
|
|
{
|
|
$old_id = $test["T_OrderDetailID"];
|
|
$sql = "SELECT *
|
|
FROM t_orderdetail
|
|
WHERE T_OrderDetailT_OrderHeaderID = ? AND
|
|
T_OrderDetailT_OrderDetailOldID = ? AND
|
|
T_OrderDetailIsActive = 'Y'";
|
|
$query = $this->db_onedev->query($sql, [$header_id,$old_id]);
|
|
if(!$query)
|
|
{
|
|
$result["status"] = "ERR";
|
|
$result["message"] = "Gagal check exist detail";
|
|
$this->insert_error('save_detail:get_detail', $this->db_onedev->last_query(), json_encode($test), $result["message"]);
|
|
return $result;
|
|
}
|
|
|
|
$detail = $query->result_array();
|
|
if(count($detail) == 0)
|
|
{
|
|
$sql = "INSERT INTO t_orderdetail(
|
|
T_OrderDetailT_OrderDetailOldID,
|
|
T_OrderDetailT_OrderHeaderID,
|
|
T_OrderDetailT_TestID,
|
|
T_OrderDetailT_TestCode,
|
|
T_OrderDetailT_TestSasCode,
|
|
T_OrderDetailT_TestName,
|
|
T_OrderDetailT_TestIsResult,
|
|
T_OrderDetailT_TestIsPanel,
|
|
T_OrderDetailT_TestIsPanelChildren,
|
|
T_OrderDetailT_TestIsPanelChildrenPrintNota,
|
|
T_OrderDetailT_TestIsPrice,
|
|
T_OrderDetailNat_UnitID,
|
|
T_OrderDetailNat_UnitName,
|
|
T_OrderDetailT_OrderPromiseID,
|
|
T_OrderDetailCreatedUserID,
|
|
T_OrderDetailCreated
|
|
)
|
|
VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,NOW())";
|
|
$params = [
|
|
$old_id,
|
|
$header_id,
|
|
$test["T_OrderDetailT_TestID"],
|
|
$test["T_OrderDetailT_TestCode"],
|
|
$test["T_OrderDetailT_TestSasCode"],
|
|
$test["T_OrderDetailT_TestName"],
|
|
$test["T_OrderDetailT_TestIsResult"],
|
|
$test["T_OrderDetailT_TestIsPanel"],
|
|
$test["T_OrderDetailT_TestIsPanelChildren"],
|
|
$test["T_OrderDetailT_TestIsPanelChildrenPrintNota"],
|
|
$test["T_OrderDetailT_TestIsPrice"],
|
|
$test["T_OrderDetailNat_UnitID"],
|
|
$test["T_OrderDetailNat_UnitName"],
|
|
$promise_id,
|
|
$userid
|
|
];
|
|
$query = $this->db_onedev->query($sql, $params);
|
|
if(!$query)
|
|
{
|
|
$result["status"] = "ERR";
|
|
$result["message"] = "Gagal menyimpan data detail baru";
|
|
$this->insert_error('save_detail:save_detail', $this->db_onedev->last_query(), json_encode($params), $result["message"]);
|
|
return $result;
|
|
}
|
|
}
|
|
}
|
|
|
|
return $result;
|
|
|
|
|
|
}
|
|
|
|
function save_sample($samples,$header_id,$userid=555){
|
|
$result = [
|
|
"status" => "OK",
|
|
"message" => "Berhasil menyimpan data sample",
|
|
"data" => []
|
|
];
|
|
|
|
if(count($samples) == 0)
|
|
{
|
|
$result["status"] = "ERR";
|
|
$result["message"] = "Tidak ada data sample";
|
|
return $result;
|
|
}
|
|
|
|
foreach($samples as $sample)
|
|
{
|
|
$old_id = $sample["T_OrderSampleID"];
|
|
$sql = "SELECT *
|
|
FROM t_ordersample
|
|
WHERE T_OrderSampleT_OrderHeaderID = ? AND
|
|
T_OrderSampleOldID = ? AND
|
|
T_OrderSampleIsActive = 'Y'";
|
|
$query = $this->db_onedev->query($sql, [$header_id,$old_id]);
|
|
if(!$query)
|
|
{
|
|
$result["status"] = "ERR";
|
|
$result["message"] = "Gagal check exist sample";
|
|
$this->insert_error('save_sample:get_sample', $this->db_onedev->last_query(), json_encode($sample), $result["message"]);
|
|
return $result;
|
|
}
|
|
|
|
$sample_exist = $query->result_array();
|
|
if(count($sample_exist) == 0)
|
|
{
|
|
$sql = "INSERT INTO t_ordersample(
|
|
T_OrderSampleOldID,
|
|
T_OrderSampleT_OrderHeaderID,
|
|
T_OrderSampleT_SampleTypeID,
|
|
T_OrderSampleT_BarcodeLabID,
|
|
T_OrderSampleT_SampleStationID,
|
|
T_OrderSampleBarcode,
|
|
T_OrderSampleSampling,
|
|
T_OrderSampleSamplingDate,
|
|
T_OrderSampleSamplingTime,
|
|
T_OrderSampleSamplingUserID,
|
|
T_OrderSampleReceive,
|
|
T_OrderSampleReceiveDate,
|
|
T_OrderSampleReceiveTime,
|
|
T_OrderSampleReceiveUserID,
|
|
T_OrderSampleVerification,
|
|
T_OrderSampleVerificationDate,
|
|
T_OrderSampleVerificationTime,
|
|
T_OrderSampleVerificationUserID,
|
|
T_OrderSampleHandling,
|
|
T_OrderSampleHandlingDate,
|
|
T_OrderSampleHandlingTime,
|
|
T_OrderSampleHandlingUserID,
|
|
T_OrderSampleSendHandling,
|
|
T_OrderSampleSendHandlingDate,
|
|
T_OrderSampleSendHandlingTime,
|
|
T_OrderSampleSendHandlingUserID,
|
|
T_OrderSampleReceiveHandling,
|
|
T_OrderSampleReceiveHandlingDate,
|
|
T_OrderSampleReceiveHandlingTime,
|
|
T_OrderSampleReceiveHandlingUserID,
|
|
T_OrderSampleProcessing,
|
|
T_OrderSampleReadyToProcessDateTime,
|
|
T_OrderSampleProcessingDate,
|
|
T_OrderSampleProcessingTime,
|
|
T_OrderSampleProcessingUserID,
|
|
T_OrderSampleCreatedUserID,
|
|
T_OrderSampleCreated
|
|
)
|
|
VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,NOW(),CURDATE(),CURTIME(),?,?,NOW())";
|
|
$query = $this->db_onedev->query($sql, [
|
|
$old_id,
|
|
$header_id,
|
|
$sample["T_OrderSampleT_SampleTypeID"],
|
|
$sample["T_OrderSampleT_BarcodeLabID"],
|
|
$sample["T_OrderSampleT_SampleStationID"],
|
|
$sample["T_OrderSampleBarcode"],
|
|
$sample["T_OrderSampleSampling"],
|
|
$sample["T_OrderSampleSamplingDate"],
|
|
$sample["T_OrderSampleSamplingTime"],
|
|
$userid,
|
|
$sample["T_OrderSampleReceive"],
|
|
$sample["T_OrderSampleReceiveDate"],
|
|
$sample["T_OrderSampleReceiveTime"],
|
|
$userid,
|
|
$sample["T_OrderSampleReceive"],
|
|
$sample["T_OrderSampleReceiveDate"],
|
|
$sample["T_OrderSampleReceiveTime"],
|
|
$userid,
|
|
$sample["T_OrderSampleReceive"],
|
|
$sample["T_OrderSampleReceiveDate"],
|
|
$sample["T_OrderSampleReceiveTime"],
|
|
$userid,
|
|
$sample["T_OrderSampleReceive"],
|
|
$sample["T_OrderSampleReceiveDate"],
|
|
$sample["T_OrderSampleReceiveTime"],
|
|
$userid,
|
|
$sample["T_OrderSampleReceive"],
|
|
$sample["T_OrderSampleReceiveDate"],
|
|
$sample["T_OrderSampleReceiveTime"],
|
|
$userid,
|
|
'Y',
|
|
$userid,
|
|
$userid
|
|
]);
|
|
if(!$query)
|
|
{
|
|
$result["status"] = "ERR";
|
|
$result["message"] = "Gagal menyimpan data sample baru";
|
|
$this->insert_error('save_sample:save_sample', $this->db_onedev->last_query(), json_encode($sample), $result["message"]);
|
|
return $result;
|
|
}
|
|
|
|
$sql = "CALL `sp_sampling_set_normal`(?,?)";
|
|
$r_schedule_set = $this->db_onedev->query($sql,[$header_id,$sample["T_OrderSampleT_SampleTypeID"]]);
|
|
$this->clean_mysqli_connection($this->db_onedev->conn_id);
|
|
}
|
|
}
|
|
|
|
return $result;
|
|
}
|
|
|
|
function save_order_promises($order_header_id,$order_promises){
|
|
$result = [
|
|
"status" => "OK",
|
|
"message" => "Berhasil menyimpan data promise",
|
|
"data" => []
|
|
];
|
|
/*
|
|
CREATE TABLE `t_orderpromises` (
|
|
`T_OrderPromisesID` int(11) NOT NULL AUTO_INCREMENT,
|
|
`T_OrderPromisesT_OrderHeaderID` int(11) DEFAULT 0,
|
|
`T_OrderPromisesT_OrderHeaderOldID` int(11) DEFAULT 0,
|
|
`T_OrderPromisesDateTime` datetime DEFAULT '0000-00-00 00:00:00',
|
|
`T_OrderPromisesTestIDs` varchar(500) DEFAULT '',
|
|
`T_OrderPromisesM_ScheduleID` int(11) DEFAULT 0,
|
|
`T_OrderPromisesM_ScheduleFlagAtTime` char(1) DEFAULT NULL,
|
|
`T_OrderPromisesM_ScheduleAtTime` time DEFAULT NULL,
|
|
`T_OrderPromisesTAT_Menit` int(11) DEFAULT NULL,
|
|
`T_OrderPromisesM_ScheduleStartHourMinute` time DEFAULT NULL,
|
|
`T_OrderPromisesM_ScheduleEndHourMinute` time DEFAULT NULL,
|
|
`T_OrderPromisesCreated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
|
`T_OrderPromisesCreatedUserID` int(11) NOT NULL DEFAULT 0,
|
|
`T_OrderPromisesLastUpdated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
|
`T_OrderPromisesLastUpdatedUserID` int(11) NOT NULL DEFAULT 0,
|
|
`T_OrderPromisesIsActive` char(1) NOT NULL DEFAULT 'Y',
|
|
PRIMARY KEY (`T_OrderPromisesID`),
|
|
KEY `T_OrderPromisesT_OrderHeaderOldID` (`T_OrderPromisesT_OrderHeaderOldID`),
|
|
KEY `T_OrderPromisesT_OrderHeaderID` (`T_OrderPromisesT_OrderHeaderID`),
|
|
KEY `T_OrderPromisesCreatedUserID` (`T_OrderPromisesCreatedUserID`),
|
|
KEY `T_OrderPromisesLastUpdatedUserID` (`T_OrderPromisesLastUpdatedUserID`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
|
*/
|
|
|
|
if(count($order_promises) > 0){
|
|
$sql = "UPDATE t_orderpromises SET T_OrderPromisesIsActive = 'X'
|
|
WHERE
|
|
T_OrderPromisesT_OrderHeaderID = ? AND T_OrderPromisesIsActive = 'Y'";
|
|
$query = $this->db_onedev->query($sql, [$order_header_id]);
|
|
if(!$query)
|
|
{
|
|
$result["status"] = "ERR";
|
|
$result["message"] = "Gagal update data promise";
|
|
$this->insert_error('save_order_promises:update_order_promises', $this->db_onedev->last_query(), json_encode($order_promises), $result["message"]);
|
|
return $result;
|
|
}
|
|
|
|
foreach($order_promises as $order_promise){
|
|
$sql = "SELECT *
|
|
FROM t_orderpromises
|
|
WHERE T_OrderPromisesT_OrderHeaderID = ? AND
|
|
T_OrderPromisesIsActive = 'X' AND
|
|
T_OrderPromisesID = ?
|
|
LIMIT 1";
|
|
$query = $this->db_onedev->query($sql, [$order_header_id,$order_promise["T_OrderPromisesID"]]);
|
|
if(!$query)
|
|
{
|
|
$result["status"] = "ERR";
|
|
$result["message"] = "Gagal check exist promise";
|
|
$this->insert_error('save_order_promises:get_promise', $this->db_onedev->last_query(), json_encode($order_promise), $result["message"]);
|
|
return $result;
|
|
}
|
|
|
|
$dt_exist = $query->result_array();
|
|
if(count($dt_exist) > 0)
|
|
{
|
|
$sql = "UPDATE t_orderpromises SET T_OrderPromisesIsActive = 'Y'
|
|
WHERE
|
|
T_OrderPromisesID = ? AND
|
|
T_OrderPromisesIsActive = 'X' AND
|
|
T_OrderPromisesT_OrderHeaderID = ?";
|
|
$query = $this->db_onedev->query($sql, [$order_promise["T_OrderPromisesID"],$order_header_id]);
|
|
if(!$query)
|
|
{
|
|
$result["status"] = "ERR";
|
|
$result["message"] = "Gagal update data promise";
|
|
$this->insert_error('save_order_promises:update_order_promises', $this->db_onedev->last_query(), json_encode($order_promise), $result["message"]);
|
|
return $result;
|
|
}
|
|
}else{
|
|
$sql = "INSERT INTO t_orderpromises(
|
|
T_OrderPromisesID,
|
|
T_OrderPromisesT_OrderHeaderID,
|
|
T_OrderPromisesT_OrderHeaderOldID,
|
|
T_OrderPromisesDateTime,
|
|
T_OrderPromisesTestIDs,
|
|
T_OrderPromisesM_ScheduleID,
|
|
T_OrderPromisesM_ScheduleFlagAtTime,
|
|
T_OrderPromisesM_ScheduleAtTime,
|
|
T_OrderPromisesTAT_Menit,
|
|
T_OrderPromisesM_ScheduleStartHourMinute,
|
|
T_OrderPromisesM_ScheduleEndHourMinute,
|
|
T_OrderPromisesCreatedUserID,
|
|
T_OrderPromisesCreated
|
|
) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,NOW())";
|
|
$query = $this->db_onedev->query($sql, [
|
|
$order_promise["T_OrderPromisesID"],
|
|
$order_header_id,
|
|
$order_promise["T_OrderPromisesT_OrderHeaderID"],
|
|
$order_promise["T_OrderPromisesDateTime"],
|
|
$order_promise["T_OrderPromisesTestIDs"],
|
|
$order_promise["T_OrderPromisesM_ScheduleID"],
|
|
$order_promise["T_OrderPromisesM_ScheduleFlagAtTime"],
|
|
$order_promise["T_OrderPromisesM_ScheduleAtTime"],
|
|
$order_promise["T_OrderPromisesTAT_Menit"],
|
|
$order_promise["T_OrderPromisesM_ScheduleStartHourMinute"],
|
|
$order_promise["T_OrderPromisesM_ScheduleEndHourMinute"],
|
|
$order_promise["T_OrderPromisesCreatedUserID"]]);
|
|
|
|
if(!$query)
|
|
{
|
|
$result["status"] = "ERR";
|
|
$result["message"] = "Gagal menyimpan data promise";
|
|
$this->insert_error('save_order_promises:save_order_promises', $this->db_onedev->last_query(), json_encode($order_promises), $result["message"]);
|
|
continue;
|
|
}
|
|
}
|
|
}
|
|
|
|
$sql = "UPDATE t_orderpromises SET T_OrderPromisesIsActive = 'N'
|
|
WHERE
|
|
T_OrderPromisesT_OrderHeaderID = ? AND T_OrderPromisesIsActive = 'X'";
|
|
$query = $this->db_onedev->query($sql, [$order_header_id]);
|
|
if(!$query)
|
|
{
|
|
$result["status"] = "ERR";
|
|
$result["message"] = "Gagal update data promise";
|
|
$this->insert_error('save_order_promises:update_order_promises', $this->db_onedev->last_query(), json_encode($order_promises), $result["message"]);
|
|
return $result;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
return $result;
|
|
|
|
}
|
|
|
|
function save_order_detail_promises($header_id,$order_detail_promises){
|
|
$result = [
|
|
"status" => "OK",
|
|
"message" => "Berhasil menyimpan data detail promise",
|
|
"data" => []
|
|
];
|
|
/*
|
|
CREATE TABLE `t_orderdetail_promise` (
|
|
`T_OrderDetailPromiseID` int(11) NOT NULL AUTO_INCREMENT,
|
|
`T_OrderDetailPromiseOldID` int(11) NOT NULL DEFAULT 0,
|
|
`T_OrderDetailPromiseT_OrderHeaderID` int(11) NOT NULL DEFAULT 0,
|
|
`T_OrderDetailPromiseT_OrderHeaderOldID` int(11) NOT NULL DEFAULT 0,
|
|
`T_OrderDetailPromiseT_OrderDetailID` int(11) NOT NULL DEFAULT 0,
|
|
`T_OrderDetailPromiseT_OrderDetailOldID` int(11) NOT NULL DEFAULT 0,
|
|
`T_OrderDetailPromiseT_OrderPromiseID` int(11) NOT NULL DEFAULT 0,
|
|
`T_OrderDetailPromiseT_OrderPromiseOldID` int(11) NOT NULL DEFAULT 0,
|
|
`T_OrderDetailPromiseIsActive` char(1) NOT NULL DEFAULT 'Y',
|
|
`T_OrderDetailPromiseCreated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
|
`T_OrderDetailPromiseCreatedUserID` int(11) NOT NULL DEFAULT 0,
|
|
`T_OrderDetailPromiseDeleted` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
|
`T_OrderDetailPromiseDeletedUserID` int(11) NOT NULL DEFAULT 0,
|
|
PRIMARY KEY (`T_OrderDetailPromiseID`),
|
|
KEY `T_OrderDetailPromiseT_OrderPromiseID` (`T_OrderDetailPromiseT_OrderPromiseID`),
|
|
KEY `T_OrderDetailPromiseCreatedUserID` (`T_OrderDetailPromiseCreatedUserID`),
|
|
KEY `T_OrderDetailPromiseDeletedUserID` (`T_OrderDetailPromiseDeletedUserID`),
|
|
KEY `T_OrderDetailPromiseT_OrderPromiseOldID` (`T_OrderDetailPromiseT_OrderPromiseOldID`),
|
|
KEY `T_OrderDetailPromiseOldID` (`T_OrderDetailPromiseOldID`),
|
|
KEY `T_OrderDetailPromiseT_OrderHeaderID` (`T_OrderDetailPromiseT_OrderHeaderID`),
|
|
KEY `T_OrderDetailPromiseT_OrderHeaderOldID` (`T_OrderDetailPromiseT_OrderHeaderOldID`),
|
|
KEY `T_OrderDetailPromiseT_OrderDetailID` (`T_OrderDetailPromiseT_OrderDetailID`),
|
|
KEY `T_OrderDetailPromiseT_OrderDetailOldID` (`T_OrderDetailPromiseT_OrderDetailOldID`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
|
|
|
|
|
*/
|
|
|
|
if(count($order_detail_promises) > 0){
|
|
$sql = "UPDATE t_orderdetail_promise SET T_OrderDetailPromiseIsActive = 'X'
|
|
WHERE
|
|
T_OrderDetailPromiseT_OrderHeaderID = ? AND T_OrderDetailPromiseIsActive = 'Y'";
|
|
$query = $this->db_onedev->query($sql, [$header_id]);
|
|
if(!$query)
|
|
{
|
|
$result["status"] = "ERR";
|
|
$result["message"] = "Gagal update data detail promise";
|
|
$this->insert_error('save_order_detail_promises:update_order_detail_promises', $this->db_onedev->last_query(), json_encode($order_detail_promises), $result["message"]);
|
|
return $result;
|
|
}
|
|
|
|
foreach($order_detail_promises as $order_detail_promise){
|
|
$sql = "SELECT *
|
|
FROM t_orderdetail
|
|
WHERE
|
|
T_OrderDetailT_OrderDetailOldID = ? AND
|
|
T_OrderDetailT_OrderHeaderID = ? AND
|
|
T_OrderDetailIsActive = 'Y'
|
|
LIMIT 1";
|
|
$query = $this->db_onedev->query($sql, [$order_detail_promise["T_OrderDetailPromiseT_OrderDetailID"],$header_id]);
|
|
if(!$query)
|
|
{
|
|
$result["status"] = "ERR";
|
|
$result["message"] = "Gagal check exist detail promise";
|
|
$this->insert_error('save_order_detail_promises:get_detail_promise', $this->db_onedev->last_query(), json_encode($order_detail_promise), $result["message"]);
|
|
return $result;
|
|
}
|
|
|
|
$data_new_detail = $query->result_array();
|
|
|
|
//$this->insert_error('save_order_detail_promises:get_detail_promise', $this->db_onedev->last_query(), json_encode($order_detail_promise), json_encode($data_new_detail));
|
|
/*if(count($data_new_detail) == 0)
|
|
{
|
|
$result["status"] = "ERR";
|
|
$result["message"] = "Detail promise tidak ditemukan";
|
|
$this->insert_error('save_order_detail_promises:get_detail_promise', $this->db_onedev->last_query(), json_encode($order_detail_promise), $result["message"]);
|
|
continue;
|
|
}*/
|
|
|
|
if(count($data_new_detail) > 0)
|
|
{
|
|
$data_new_detail = $data_new_detail[0];
|
|
$t_orderdetailID = $data_new_detail["T_OrderDetailID"];
|
|
}
|
|
else
|
|
{
|
|
$t_orderdetailID = 0;
|
|
}
|
|
|
|
if( $t_orderdetailID > 0)
|
|
{
|
|
$sql = "SELECT *
|
|
FROM t_orderdetail_promise
|
|
WHERE T_OrderDetailPromiseT_OrderHeaderID = ? AND
|
|
T_OrderDetailPromiseIsActive = 'X' AND
|
|
T_OrderDetailPromiseID = ? AND
|
|
T_OrderDetailPromiseT_OrderDetailID = ?
|
|
LIMIT 1";
|
|
$query = $this->db_onedev->query($sql, [
|
|
$header_id,
|
|
$order_detail_promise["T_OrderDetailPromiseID"],
|
|
$t_orderdetailID
|
|
]);
|
|
|
|
if(!$query)
|
|
{
|
|
$result["status"] = "ERR";
|
|
$result["message"] = "Gagal check exist detail promise";
|
|
$this->insert_error('save_order_detail_promises:get_detail_promise', $this->db_onedev->last_query(), json_encode($order_detail_promise), $result["message"]);
|
|
return $result;
|
|
}
|
|
|
|
$dt_exist = $query->result_array();
|
|
if(count($dt_exist) > 0){
|
|
$sql = "UPDATE t_orderdetail_promise SET T_OrderDetailPromiseIsActive = 'Y'
|
|
WHERE
|
|
T_OrderDetailPromiseID = ? AND
|
|
T_OrderDetailPromiseIsActive = 'X' AND
|
|
T_OrderDetailPromiseT_OrderHeaderID = ? AND
|
|
T_OrderDetailPromiseT_OrderDetailID = ?";
|
|
$query = $this->db_onedev->query($sql, [$order_detail_promise["T_OrderDetailPromiseID"],$header_id,$t_orderdetailID]);
|
|
if(!$query)
|
|
{
|
|
$result["status"] = "ERR";
|
|
$result["message"] = "Gagal update data detail promise";
|
|
$this->insert_error('save_order_detail_promises:update_order_detail_promises', $this->db_onedev->last_query(), json_encode($order_detail_promise), $result["message"]);
|
|
return $result;
|
|
}
|
|
}else{
|
|
$sql = "INSERT INTO t_orderdetail_promise(
|
|
T_OrderDetailPromiseID,
|
|
T_OrderDetailPromiseOldID,
|
|
T_OrderDetailPromiseT_OrderHeaderID,
|
|
T_OrderDetailPromiseT_OrderHeaderOldID,
|
|
T_OrderDetailPromiseT_OrderDetailID,
|
|
T_OrderDetailPromiseT_OrderDetailOldID,
|
|
T_OrderDetailPromiseT_OrderPromiseID,
|
|
T_OrderDetailPromiseT_OrderPromiseOldID,
|
|
T_OrderDetailPromiseCreatedUserID,
|
|
T_OrderDetailPromiseCreated
|
|
) VALUES (?,?,?,?,?,?,?,?,?,NOW())";
|
|
|
|
$query = $this->db_onedev->query($sql, [
|
|
$order_detail_promise["T_OrderDetailPromiseID"],
|
|
$order_detail_promise["T_OrderDetailPromiseID"],
|
|
$header_id,
|
|
$order_detail_promise["T_OrderDetailPromiseT_OrderHeaderID"],
|
|
$t_orderdetailID,
|
|
$order_detail_promise["T_OrderDetailPromiseT_OrderDetailID"],
|
|
$order_detail_promise["T_OrderDetailPromiseT_OrderPromiseID"],
|
|
$order_detail_promise["T_OrderDetailPromiseT_OrderPromiseID"],
|
|
$order_detail_promise["T_OrderDetailPromiseCreatedUserID"]]);
|
|
|
|
if(!$query)
|
|
{
|
|
$result["status"] = "ERR";
|
|
$result["message"] = "Gagal menyimpan data detail promise";
|
|
$this->insert_error('save_order_detail_promises:save_order_detail_promises', $this->db_onedev->last_query(), json_encode($order_detail_promise), $result["message"]);
|
|
return $result;
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
$sql = "UPDATE t_orderdetail_promise SET T_OrderDetailPromiseIsActive = 'N'
|
|
WHERE
|
|
T_OrderDetailPromiseT_OrderHeaderID = ? AND T_OrderDetailPromiseIsActive = 'X'";
|
|
$query = $this->db_onedev->query($sql, [$header_id]);
|
|
if(!$query)
|
|
{
|
|
$result["status"] = "ERR";
|
|
$result["message"] = "Gagal update data detail promise";
|
|
$this->insert_error('save_order_detail_promises:update_order_detail_promises', $this->db_onedev->last_query(), json_encode($order_detail_promises), $result["message"]);
|
|
return $result;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
return $result;
|
|
}
|
|
|
|
function insert_error($fn,$query,$data,$message)
|
|
{
|
|
$sql = "INSERT INTO log_error_download(
|
|
Log_ErrorDownloadFn,
|
|
Log_ErrorDownloadQuery,
|
|
Log_ErrorDownloadData,
|
|
Log_ErrorDownloadMessage,
|
|
Log_ErrorDownloadCreated
|
|
) VALUES (?,?,?,?,NOW())";
|
|
$query = $this->db_log->query($sql, [$fn,$query,$data,$message]);
|
|
if(!$query)
|
|
{
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
}
|