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

254 lines
9.4 KiB
PHP

<?php
class IncomingRef_v4 extends MY_Controller
{
public function __construct()
{
parent::__construct();
$this->db = $this->load->database("onedev", true);
}
public function ref_order($incomingRefID)
{
$sql = "select * from incoming_ref where incomingRefID = ?";
$qry = $this->db->query($sql, array($incomingRefID));
$rows = array();
$branchID = 0;
if ($qry) {
$rows = $qry->result_array();
if (count($rows) > 0) {
$branchID = $rows[0]["incomingRefM_BranchID"];
}
}
$companyID = 0;
if ($branchID > 0) {
$sql = "select *
from m_branch where M_BranchID = ?";
$qry = $this->db->query($sql, array($branchID));
if ($qry) {
$rows = $qry->result_array();
$companyID = $rows[0]["M_BranchM_CompanyID"];
$mouID = $rows[0]["M_BranchM_MouID"];
$doctorID = $rows[0]["M_BranchM_DoctorID"];
$doctorAddressID = $rows[0]["M_BranchM_DoctorAddressID"];
}
}
if ($companyID > 0) {
$sql = "";
}
}
public function fo_verify($orderID, $userID)
{
$sql = "INSERT INTO fo_verificationsvalue (
Fo_VerificationsValueT_OrderHeaderID,
Fo_VerificationsValueFo_VerificationsLabelID,
Fo_VerificationsValueCheck,
Fo_VerificationsValueNote,
Fo_VerificationsValueUserID,
Fo_VerificationsValueCreated )
SELECT {$orderID},
Fo_VerificationsLabelID,
'Y',
'', {$userID},
NOW()
FROM fo_verificationslabel
WHERE
Fo_VerificationsLabelIsActive = 'Y' ";
$this->db->query($sql);
$sql = "call sp_fo_barcode_generate({$orderID})";
$this->db->query($sql);
$fostatusid = 3;
$fologcode = 'FO.VERIFICATION.CONFIRM';
$sql = "insert into fo_status(
Fo_StatusDate,
Fo_StatusT_OrderHeaderID,
Fo_StatusM_StatusID,
Fo_StatusM_UserID,
Fo_StatusCreated,
Fo_StatusUpdated)
values( now(), ?, ?, ?, now(),now())";
$query = $this->db->query(
$sql,
array(
$orderID,
$fostatusid, $userID
)
);
if (!$query) {
$this->sys_error_db("fo_status insert");
exit;
}
$sql = "SELECT * FROM fo_verificationsvalue WHERE Fo_VerificationsValueT_OrderHeaderID = {$orderID}";
$data_log = array();
$data_log['orderid'] = $orderID;
$data_log['values'] = $this->db->query($sql)->result_array();
$data_log['note'] = '';
$json_dt_log = json_encode($data_log);
$sql = "insert into one_log.log_fo(
Log_FoDate,
Log_FoCode,
Log_FoJson,
Log_FoUserID)
values( now(), ?, ?, ?)";
$query = $this->db->query(
$sql,
array(
$fologcode,
$json_dt_log,
$userID
)
);
if (!$query) {
$this->sys_error_db("one_log.fo_log insert");
exit;
}
/* T_OrderSample */
$adminUserID = 3;
$sql = "update t_ordersample
set T_OrderSampleSampling='Y', T_OrderSampleSamplingDate = now(),
T_OrderSampleSamplingTime = now(),T_OrderSampleSamplingUserID = $adminUserID,
T_OrderSampleReceive='Y', T_OrderSampleReceiveDate = now() , T_OrderSampleReceiveTime = now(),
T_OrderSampleReceiveUserID = $adminUserID,
T_OrderSampleVerification='Y', T_OrderSampleVerificationDate=now(), T_OrderSampleVerificationTime=now(),
T_OrderSampleVerificationUserID = $adminUserID,
T_OrderSampleSendHandling = 'Y', T_OrderSampleSendHandlingDate =now(), T_OrderSampleSendHandlingTime=now(),
T_OrderSampleSendHandlingUserID = $adminUserID,
T_OrderSampleReceiveHandling = 'Y', T_OrderSampleReceiveHandlingDate=now(), T_OrderSampleReceiveHandlingTime=now(),
T_OrderSampleReceiveHandlingUserID=$adminUserID,
T_OrderSampleHandling='Y', T_OrderSampleHandlingDate=now(), T_OrderSampleHandlingTime=now(),
T_OrderSampleHandlingUserID=$adminUserID,
T_OrderSampleProcessing='Y', T_OrderSampleReadyToProcessDateTime=now(), T_OrderSampleProcessingDate=now(),
T_OrderSampleProcessingTime=now(), T_OrderSampleProcessingUserID=$adminUserID,
T_OrderSampleUserID=$adminUserID
where T_OrderSampleT_OrderHeaderID = ?";
$qry = $this->db->query($sql, array($orderID));
if (!$qry) {
echo $this->db->last_query();
$this->sys_error_db("one_log.fo_log insert");
exit;
}
$this->sys_ok("Verified");
$this->broadcast("fo-verification-y");
}
public function get_param()
{
$zdata = file_get_contents("php://input");
$data = gzinflate($zdata);
return json_decode($data, true);
}
//Penerimaan Order
public function receive()
{
$prm = $this->get_param();
$branchCode = $prm[0]["OriginM_BranchCode"];
$sql = "select M_BranchID from m_branch where M_BranchIsActive = 'Y' and
M_BranchCode=?";
$qry = $this->db->query($sql, array($branchCode));
$branchID = 0;
if ($qry) {
$rows = $qry->result_array();
if (count($rows) > 0) {
$branchID = $rows[0]["M_BranchID"];
}
}
$flag_first = true;
try {
$this->db->trans_begin();
$err_msg = "";
foreach ($prm as $p) {
if ($flag_first) {
$flag_first = false;
$sql_h = "insert into incoming_ref(incomingRefT_RefDeliveryOrderID,
incomingRefOriginM_BranchCode,incomingRefM_BranchID, incomingRefT_RefDeliveryOrderDate,
incomingRefT_RefDeliveryOrderNumber) values(?,
?,?,?,
?)";
$qry = $this->db->query($sql_h, array(
$p["T_RefDeliveryOrderID"],
$p["OriginM_BranchCode"], $branchID, $p["T_RefDeliveryOrderDate"],
$p["T_RefDeliveryOrderNumber"]
));
if (!$qry) {
$err_msg .= print_r($this->db->error(), true);
}
$orderID = $this->db->insert_id();
}
//insert detail
$sql_d = "insert into incoming_ref_detail(incomingRefDetailIncomingRefID,
incomingRefDetailT_OrderHeaderID, incomingRefDetailT_OrderHeaderLabNumber,
incomingRefDetailM_PatientName, incomingRefDetailFoNote,
incomingRefDetailVefificationNote, incomingRefDetailSamplingNote,
incomingRefDetailT_TestID, incomingRefDetailT_TestName,
incomingRefDetailT_OrderPromiseDateTime, incomingRefDetailT_OrderDetailID,
incomingRefDetailT_BarcodeLabBarcode,incomingRefDetailRequirements,
incomingRefDetailPatient
)
values( ?,
?, ?,
?, ?,
?, ?,
?, ?,
?, ?,
?, ?,
?)";
$patient = json_encode($p["patient"]);
$requirements = json_encode($p["requirements"]);
foreach ($p["test"] as $t) {
$qry = $this->db->query($sql_d, array(
$orderID,
$p["T_OrderHeaderID"], $p["T_OrderHeaderLabNumber"],
$p["M_PatientName"], $p["FoNote"],
$p["VerificationNote"], $p["SamplingNote"],
$t["T_TestID"], $t["T_TestName"],
$t["T_OrderPromiseDateTime"], $t["T_OrderDetailID"],
$t["T_BarcodeLabBarcode"], $requirements, $patient
));
if (!$qry) {
$err_msg .= print_r($this->db->error(), true);
}
}
//insert child
$sql_child = "insert into incoming_ref_child(incomingRefChildIncomingRefID,
incomingRefChildT_TestID, incomingRefChildT_TestName,
incomingRefChildT_OrderPromiseDateTime, incomingRefChildT_OrderDetailID,
incomingRefChildT_OrderHeaderID)
values( ?,
?, ?,
?, ?,?)";
foreach ($p["child_test"] as $t) {
$qry = $this->db->query($sql_child, array(
$orderID,
$t["T_TestID"], $t["T_TestName"],
$t["T_OrderPromiseDateTime"], $t["T_OrderDetailID"],
$t["T_OrderHeaderID"]
));
if (!$qry) {
$err_msg .= print_r($this->db->error(), true);
}
}
}
if ($this->db->trans_status() === false) {
$this->db->trans_rollback();
$this->sys_error("Error Insert Data " . $err_msg);
} else {
$this->db->trans_commit();
$this->sys_ok("Data Inserted");
}
} catch (Exception $e) {
$this->sys_error($e->message);
}
}
}