Files
BE_IBL/application/controllers/tools/local/R_download_local.php
2026-04-15 15:23:57 +07:00

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;
}
}