Files
BE_CPONE/application/controllers/tools/Temptosession.php
2026-04-27 10:26:26 +07:00

1150 lines
46 KiB
PHP

<?php
ini_set('display_errors', '1');
ini_set('display_startup_errors', '1');
error_reporting(E_ALL);
class Temptosession extends MY_Controller
{
function __construct() {
parent::__construct();
$this->db_onedev = $this->load->database("onedev", true);
$this->load->helper(array('form', 'url'));
}
function search()
{
$prm = $this->sys_input;
if (! $this->isLogin) {
$this->sys_error("Invalid Token");
exit;
}
$code = $prm["McuOfflinePrepareCode"];
$limit = '';
$number_limit = 10;
$number_offset = ($prm['current_page'] - 1) * $number_limit ;
$sql = " SELECT count(*) as total
FROM mcu_map_order
WHERE Mcu_MapOrderMcuOfflinePrepareCode = '{$code}'
";
//echo $sql;
$query = $this->db_onedev->query($sql, $sql_param);
//echo $this->db_onedev->last_query();
$tot_count = 0;
$tot_page = 0;
if ($query) {
$tot_count = $query->result_array()[0]["total"];
$tot_page = ceil($tot_count/$number_limit);
} else {
$this->sys_error_db("m_patient count", $this->db_onedev);
exit;
}
$sql = "SELECT mcu_map_order.*, '' as info,concat(M_TitleName,'. ',M_PatientName) as M_PatientName
FROM mcu_map_order
JOIN t_orderheader ON Mcu_MapOrderT_OrderHeaderNewID = T_OrderHeaderID
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
JOIN m_title ON M_PatientM_TitleID = M_TitleID
WHERE Mcu_MapOrderMcuOfflinePrepareCode = '{$code}'
ORDER BY Mcu_MapOrderID DESC
limit $number_limit offset $number_offset
";
//echo $sql;
$query = $this->db_onedev->query($sql, $sql_param);
$rows = $query->result_array();
if($rows){
foreach($rows as $k => $v){
$rows[$k]['info'] = json_decode($v['Mcu_MapOrderInfo']);
}
}
//$this->_add_address($rows);
$result = array("total" => $tot_page, "records" => $rows, "setup"=> $xrow);
$this->sys_ok($result);
exit;
}
function search_left()
{
$prm = $this->sys_input;
if (! $this->isLogin) {
$this->sys_error("Invalid Token");
exit;
}
$sql_where = "";
$sql_param = array();
$where = '';
if(isset($prm['name'])){
$where = " AND McuOfflinePrepareCode LIKE '%{$prm['name']}%'";
}
$number_limit = 10;
$number_offset = ($prm['current_page'] - 1) * $number_limit ;
$sql = " SELECT count(*) as total
FROM mcu_offline_prepare
WHERE
McuOfflinePrepareIsActive = 'Y' $where
";
//echo $sql;
$query = $this->db_onedev->query($sql, $sql_param);
//echo $this->db_onedev->last_query();
$tot_count = 0;
$tot_page = 0;
if ($query) {
$tot_count = $query->result_array()[0]["total"];
$tot_page = ceil($tot_count/$number_limit);
} else {
$this->sys_error_db("mcu_offline_prepare count", $this->db_onedev);
exit;
}
$sql = "SELECT mcu_offline_prepare.*,
DATE_FORMAT(McuOfflinePrepareStartDate, '%d-%m-%Y') as start_date,
DATE_FORMAT(McuOfflinePrepareEndDate, '%d-%m-%Y') as end_date,
M_CompanyName
FROM mcu_offline_prepare
JOIN m_company ON McuOfflinePrepareM_CompanyID = M_CompanyID
WHERE
McuOfflinePrepareIsActive = 'Y' $where
LIMIT $number_limit offset $number_offset
";
//echo $sql;
$query = $this->db_onedev->query($sql);
$rows = $query->result_array();
$result = array("total" => $tot_page, "records" => $rows, "setup"=> $xrow);
$this->sys_ok($result);
exit;
}
function savedata()
{
//print_r($_FILES['file']);
$filename = $_FILES['file']['name'];
$path = '/home/one/project/one/one-media/one-image-nonlab/';
//echo $path.$filename;
//print_r(file_exists($path.$filename));
unlink($path.$filename);
if(!file_exists($path.$filename)){
$config['upload_path'] = $path;
$config['allowed_types'] = 'gz';
$config['max_size'] = 10000;
$config['max_width'] = 1024;
$config['max_height'] = 768;
$this->load->library('upload', $config);
if ( ! $this->upload->do_upload('file'))
{
$error = array('error' => $this->upload->display_errors());
$this->sys_ok($error);
exit;
}
else
{
$data = array('upload_data' => $this->upload->data());
$cmd = "gzip -d ".$path.$filename;
exec($cmd);
$oldname = str_replace(".gz","",$path.$filename);
$cmd = "mv ".$oldname." ".$oldname.".sql";
//echo $cmd;
exec($cmd);
$sql = "DROP DATABASE temp_mcu";
$this->db->query($sql);
$sql = "CREATE DATABASE temp_mcu";
$this->db->query($sql);
$restore_file = $oldname.".sql";
$server_name = "localhost";
$username = "root";
$password = "sasone102938";
$database_name = "temp_mcu";
$cmd = "mysql -h {$server_name} -u {$username} -p{$password} {$database_name} < $restore_file";
//echo $cmd;
exec($cmd);
$this->db();
}
}
}
function uncompress($srcName, $dstName) {
$sfp = gzopen($srcName, "rb");
$fp = fopen($dstName, "w");
while (!gzeof($sfp)) {
$string = gzread($sfp, 10000);
fwrite($fp, $string, strlen($string));
}
gzclose($sfp);
fclose($fp);
}
function db() {
$xdb = $this->load->database("onedev",true);
$pwd = $xdb->password;
$sql = "SELECT McuOfflinePrepareID as xid, McuOfflinePrepareCode as xcode
FROM temp_mcu.mcu_offline_prepare
WHERE
McuOfflinePrepareIsActive = 'Y' AND McuOfflinePrepareIsDownloaded = 'Y'
LIMIT 1";
$xrow = $this->db->query($sql)->row_array();
if($xrow){
$prepare_id = $xrow['xid'];
$xcode = date('YmdHis')."-".$xrow['xcode'];
$sql = "INSERT INTO mcu_session.mcu_session (
McuSessionCode,
McuSessionMcuOfflinePrepareID
)
VALUES(
'{$xcode}',
{$prepare_id}
)";
//echo $sql;
$this->db->query($sql);
$mcu_sessionID = $this->db->insert_id();
//echo $mcu_sessionID ;
$sql = "show tables";
$rows = $this->db->query($sql)->result_array();
if($rows){
foreach($rows as $k => $v){
$query = " SELECT *
FROM information_schema.tables
WHERE table_schema = 'temp_mcu'
AND table_name = '{$v['Tables_in_one']}'
LIMIT 1";
//echo $query;
$row = $this->db->query($query)->row_array();
if($row){
$sql = "INSERT INTO mcu_session.{$v['Tables_in_one']}
SELECT temp_mcu.{$v['Tables_in_one']}.*, {$mcu_sessionID}
FROM temp_mcu.{$v['Tables_in_one']}
";
//echo $sql;
$this->db->query($sql);
if($v['Tables_in_one'] == 'so_resultentry'){
//echo $sql;
}
}
}
}
$this->generate_orders($mcu_sessionID);
}
}
function generate_orders($mcu_sessionID){
$sql = "SELECT * FROM mcu_session.mcu_screening WHERE Mcu_ScreeningIsExport = 'V' AND Mcu_ScreeningMcuSessionID = {$mcu_sessionID}";
//echo $sql;
$export_data = $this->db->query($sql)->result();
if(export_data){
//print_r($export_data);
foreach($export_data as $k => $v){
$header_id = 0;
/*check sdh pernah dibuat order atau belum*/
$sql = "SELECT *
FROM one.mcu_map_order
JOIN one.t_orderheader one_order ON one_order.T_OrderHeaderID = Mcu_MapOrderT_OrderHeaderNewID
WHERE
Mcu_MapOrderT_OrderHeaderID = {$v->Mcu_ScreeningT_OrderHeaderID}";
//echo $sql;
$xrow = $this->db->query($sql)->row_array();
//print_r($xrow);
if($xrow){
/*pernah dibuat order*/
$header_id = $xrow['Mcu_MapOrderT_OrderHeaderNewID'];
$header_labno = $xrow['T_OrderHeaderLabNumber'];
}else{
/*belum pernah dibuat order*/
$this->db->trans_start();
/**begin membuat order baru**/
/***insert tabel orderheader dan rentetannya***/
$sql = "SELECT *
FROM mcu_session.t_orderheader WHERE
T_OrderHeaderID = {$v->Mcu_ScreeningT_OrderHeaderID} AND
T_OrderHeaderMcuSessionID = {$v->Mcu_ScreeningMcuSessionID}";
$data_header = $this->db->query($sql)->row_array();
//print_r($data_header);
unset($data_header['T_OrderHeaderID']);
unset($data_header['T_OrderHeaderMcuSessionID']);
//print_r($data_header);
$this->db->insert('one.t_orderheader', $data_header);
//echo $this->db->last_query();
$header_id = $this->db->insert_id();
$sql = "UPDATE one.t_orderheader SET
T_OrderHeaderLabNumber = '{$data_header['T_OrderHeaderLabNumber']}',
T_OrderHeaderLabNumberExt = '{$data_header['T_OrderHeaderLabNumberExt']}'
WHERE
T_OrderHeaderID = {$header_id}";
$this->db->query($sql);
//echo $sql;
$sql = "SELECT * FROM one.t_orderheader WHERE T_OrderHeaderID = {$header_id}";
$data_one_order = $this->db->query($sql)->row_array();
$header_labno = $data_one_order['T_OrderHeaderLabNumber'];
$sql = "DELETE FROM one.t_orderheaderaddon
WHERE T_OrderHeaderAddOnT_OrderHeaderID = {$header_id}";
$this->db->query($sql);
$sql = "SELECT *
FROM mcu_session.t_orderheaderaddon
WHERE T_OrderHeaderAddOnT_OrderHeaderID = {$v->Mcu_ScreeningT_OrderHeaderID} AND
T_OrderHeaderAddOnMcuSessionID = {$v->Mcu_ScreeningMcuSessionID}";
$data_header_addon = $this->db->query($sql)->row_array();
$data_header_addon['T_OrderHeaderAddOnT_OrderHeaderID'] = $header_id;
unset($data_header_addon['T_OrderHeaderAddOnID']);
unset($data_header_addon['T_OrderHeaderAddOnMcuSessionID']);
$this->db->insert('one.t_orderheaderaddon', $data_header_addon);
$sql = "DELETE FROM one.fo_status
WHERE Fo_StatusT_OrderHeaderID = {$header_id}";
$this->db->query($sql);
$sql = "SELECT * FROM mcu_session.fo_status
WHERE
Fo_StatusT_OrderHeaderID = {$v->Mcu_ScreeningT_OrderHeaderID} AND
Fo_StatusMcuSessionID = {$v->Mcu_ScreeningMcuSessionID}";
$datas_fo_status = $this->db->query($sql)->result_array();
foreach($datas_fo_status as $kx => $vx){
$datas_fo_status[$kx]['Fo_StatusT_OrderHeaderID'] = $header_id;
unset($datas_fo_status[$kx]['Fo_StatusID']);
unset($datas_fo_status[$kx]['Fo_StatusMcuSessionID']);
}
$this->db->insert_batch('one.fo_status', $datas_fo_status);
//echo $this->db->last_query();
$sql = "SELECT *
FROM mcu_session.t_orderdetail
WHERE
T_OrderDetailT_OrderHeaderID = {$v->Mcu_ScreeningT_OrderHeaderID} AND
T_OrderDetailMcuSessionID = {$v->Mcu_ScreeningMcuSessionID}
GROUP BY T_OrderDetailID";
//echo $sql;
$datas_details = $this->db->query($sql)->result_array();
foreach($datas_details as $k_detail => $v_detail){
$v_detail['T_OrderDetailT_OrderHeaderID'] = $header_id;
unset($v_detail['T_OrderDetailID']);
unset($v_detail['T_OrderDetailMcuSessionID']);
$this->db->insert('one.t_orderdetail', $v_detail);
//if($k_detail == 0)
//echo $this->db->last_query();
$detail_id = $this->db->insert_id();
$sql = "DELETE FROM one.t_orderdetailaddon
WHERE T_OrderDetailAddOnT_OrderDetailID = {$detail_id}";
$this->db->query($sql);
$sql = "SELECT t_orderdetailaddon.*
FROM mcu_session.t_orderdetail
JOIN mcu_session.t_orderdetailaddon ON T_OrderDetailAddOnT_OrderDetailID = T_OrderDetailID
WHERE
T_OrderDetailT_OrderHeaderID = {$v->Mcu_ScreeningT_OrderHeaderID} AND
T_OrderDetailT_TestID = {$v_detail['T_OrderDetailT_TestID']} AND
T_OrderDetailCreated = '{$v_detail['T_OrderDetailCreated']}' AND
T_OrderDetailMcuSessionID = {$v->Mcu_ScreeningMcuSessionID}
LIMIT 1";
//echo $sql;
$data_detail_addon = $this->db->query($sql)->row_array();
unset($data_detail_addon['T_OrderDetailAddOnID']);
unset($data_detail_addon['T_OrderDetailAddOnMcuSessionID']);
$data_detail_addon['T_OrderDetailAddOnT_OrderDetailID'] = $detail_id;
$this->db->insert('one.t_orderdetailaddon', $data_detail_addon);
}
/**end membuat order baru**/
$this->db->trans_complete();
$sql = "SELECT *
FROM mcu_session.last_master_id
WHERE
LastMasterMcuSessionID = {$v->Mcu_ScreeningMcuSessionID}";
$last_master = $this->db->query($sql)->row_array();
$sql = "SELECT *
FROM mcu_session.t_orderdelivery
WHERE
T_OrderDeliveryT_OrderHeaderID = {$v->Mcu_ScreeningT_OrderHeaderID} AND
T_OrderDeliveryMcuSessionID = {$v->Mcu_ScreeningMcuSessionID}
";
//echo $sql;
$deliveries = $this->db->query($sql)->result_array();
if($deliveries){
foreach($deliveries as $k_delivery => $v_delivery){
//print_r($v_delivery);
unset($v_delivery['T_OrderDeliveryID']);
unset($v_delivery['T_OrderDeliveryMcuSessionID']);
$v_delivery['T_OrderDeliveryT_OrderHeaderID'] = $header_id;
$this->db->insert('one.t_orderdelivery', $v_delivery);
//echo $this->db->last_query();
}
}
$sql = "SELECT mcu_session.t_orderdeliverynote.*
FROM mcu_session.t_orderdelivery
JOIN mcu_session.t_orderdeliverynote ON T_OrderDeliveryNoteT_OrderDeliveryID = T_OrderDeliveryID AND
T_OrderDeliveryNoteIsActive = 'Y'
WHERE
T_OrderDeliveryT_OrderHeaderID = {$v->Mcu_ScreeningT_OrderHeaderID} AND
T_OrderDeliveryMcuSessionID = {$v->Mcu_ScreeningMcuSessionID}";
//echo $sql;
$deliveries_note = $this->db->query($sql)->result_array();
if($deliveries_note){
foreach($deliveries_note as $k_deliverynote => $v_deliverynote){
unset($v_delivery['T_OrderDeliveryNoteID']);
unset($v_delivery['T_OrderDeliveryNoteMcuSessionID']);
$v_delivery['T_OrderDeliveryNoteT_OrderHeaderID'] = $header_id;
$this->db->insert('one.t_orderdeliverynote', $v_delivery);
}
}
$sql = "SELECT *
FROM mcu_session.t_orderpromise
WHERE
T_OrderPromiseT_OrderHeaderID = {$v->Mcu_ScreeningT_OrderHeaderID} AND
T_OrderPromiseMcuSessionID = {$v->Mcu_ScreeningMcuSessionID}";
$promises = $this->db->query($sql)->result_array();
if($promises){
foreach($promises as $k_promise => $v_promise){
unset($v_promise['T_OrderPromiseID']);
unset($v_promise['T_OrderPromiseMcuSessionID']);
$v_promise['T_OrderPromiseT_OrderHeaderID'] = $header_id;
$this->db->insert('one.t_orderpromise', $v_promise);
}
}
/*****order_log****/
$sql = "SELECT *
FROM mcu_session.order_log
WHERE
OrderLogT_OrderHeaderID = {$v->Mcu_ScreeningT_OrderHeaderID} AND
OrderLogT_OrderHeaderMcuSessionID = {$v->Mcu_ScreeningMcuSessionID}";
$order_log = $this->db->query($sql)->result_array();
if($order_log){
foreach($order_log as $k_order_log => $v_order_log){
unset($v_order_log['OrderLogID']);
unset($v_order_log['OrderLogT_OrderHeaderMcuSessionID']);
$v_order_log['OrderLogT_OrderHeaderID'] = $header_id;
$this->db->insert('one.order_log', $v_order_log);
}
}
$sql = "SELECT *
FROM mcu_session.order_attr
WHERE
orderAttrT_OrderHeaderID = {$v->Mcu_ScreeningT_OrderHeaderID} AND
orderAttrMcuSessionID = {$v->Mcu_ScreeningMcuSessionID}";
$order_attr = $this->db->query($sql)->result_array();
if($order_attr){
foreach($order_attr as $k_order_attr => $v_order_attr){
unset($v_order_attr['orderAttrID']);
unset($v_order_attr['orderAttrMcuSessionID']);
$v_order_attr['orderAttrT_OrderHeaderID'] = $header_id;
$this->db->insert('one.order_attr', $v_order_attr);
}
}
$sql = "SELECT *
FROM mcu_session.order_delivery
WHERE
Order_DeliveryT_OrdeheaderID = {$v->Mcu_ScreeningT_OrderHeaderID} AND
Order_DeliveryMcuSessionID = {$v->Mcu_ScreeningMcuSessionID}";
$order_delivery = $this->db->query($sql)->result_array();
if($order_delivery){
foreach($order_delivery as $k_order_delivery => $v_order_delivery){
unset($v_order_delivery['Order_DeliveryID']);
unset($v_order_delivery['Order_DeliveryMcuSessionID']);
$v_order_delivery['Order_DeliveryT_OrdeheaderID'] = $header_id;
$this->db->insert('one.order_delivery', $order_delivery);
}
}
$sql = "SELECT *
FROM mcu_session.order_px
WHERE
OrderPxT_OrderHeaderID = {$v->Mcu_ScreeningT_OrderHeaderID} AND
OrderPxMcuSessionID = {$v->Mcu_ScreeningMcuSessionID}";
$order_px = $this->db->query($sql)->result_array();
if($order_px){
foreach($order_px as $k_order_px=> $v_order_px){
unset($v_order_px['OrderPxID']);
unset($v_order_px['OrderPxMcuSessionID']);
$v_order_px['OrderPxT_OrderHeaderID'] = $header_id;
$this->db->insert('one.order_px', $order_px);
}
}
/*****order_log****/
}
if($header_id != 0 ){
$sql = "SELECT *
FROM one.mcu_map_order
JOIN one.t_orderheader one_order ON one_order.T_OrderHeaderID = Mcu_MapOrderT_OrderHeaderNewID
WHERE
Mcu_MapOrderT_OrderHeaderID = {$v->Mcu_ScreeningT_OrderHeaderID} AND
Mcu_MapOrderT_SampleTypeID = {$v->Mcu_ScreeningT_SampleTypeID} AND
Mcu_MapOrderT_TestID = {$v->Mcu_ScreeningT_TestID} AND
Mcu_MapOrderT_OrderHeaderNewID = {$header_id}";
$map_row = $this->db->query($sql)->row_array();
if(count($map_row) == 0){
$sql = "SELECT *
FROM mcu_session.mcu_offline_prepare
WHERE
McuOfflinePrepareIsActive = 'Y' AND
McuOfflinePrepareMcuSessionID = {$mcu_sessionID}";
$prepare_offline = $this->db->query($sql)->row_array();
$sql = "SELECT mcu_screening.*,
IFNULL(T_TestName,'') test_name,
IFNULL(T_SampleTypeName,'') sample_name,
session_order.T_OrderHeaderLabNumber mcu_nolab,
McuSessionCode as session_code
FROM mcu_session.mcu_screening
LEFT JOIN mcu_session.mcu_session ON Mcu_ScreeningMcuSessionID = McuSessionID
LEFT JOIN one.t_test ON Mcu_ScreeningT_TestID = T_TestID
LEFT JOIN one.t_sampletype ON Mcu_ScreeningT_SampleTypeID = T_SampleTypeID
LEFT JOIN mcu_session.t_orderheader session_order ON Mcu_ScreeningT_OrderHeaderID = session_order.T_OrderHeaderID
WHERE
Mcu_ScreeningID = {$v->Mcu_ScreeningID} AND Mcu_ScreeningMcuSessionID = {$v->Mcu_ScreeningMcuSessionID}
";
//echo $sql;
$dt_screening = $this->db->query($sql)->row_array();
//print_r($dt_screening);
//echo $dt_screening['sample_name'];
$dt_mcu = array(
'prepare_code'=>$prepare_offline['McuOfflinePrepareCode'],
'mcu_nolab' => $dt_screening['mcu_nolab'],
'one_nolab' => $header_labno,
'test_name' => $dt_screening['test_name'],
'sample_name' => $dt_screening['sample_name'],
'session_code' => $dt_screening['session_code']
);
$dt_mcu = json_encode($dt_mcu);
$map_mcu = array(
'Mcu_MapOrderMcuOfflinePrepareCode' => $prepare_offline['McuOfflinePrepareCode'],
'Mcu_MapOrderT_OrderHeaderID' => $v->Mcu_ScreeningT_OrderHeaderID,
'Mcu_MapOrderT_SampleTypeID' => $v->Mcu_ScreeningT_SampleTypeID,
'Mcu_MapOrderT_TestID' => $v->Mcu_ScreeningT_TestID,
'Mcu_MapOrderIsNonLab' => $v->Mcu_ScreeningIsNonLab,
'Mcu_MapOrderT_OrderHeaderNewID' => $header_id,
'Mcu_MapOrderMcu_SessionID' => $v->Mcu_ScreeningMcuSessionID,
'Mcu_MapOrderMcu_SessionCode' => $dt_screening['session_code'],
'Mcu_MapOrderInfo' => $dt_mcu
);
$this->db->insert('one.mcu_map_order', $map_mcu);
}
$sql = "SELECT *
FROM mcu_session.t_barcodelab
WHERE
T_BarcodeLabT_OrderHeaderID = {$v->Mcu_ScreeningT_OrderHeaderID} AND
T_BarcodeLabMcuSessionID = {$v->Mcu_ScreeningMcuSessionID} AND
T_BarcodeLabT_SampleTypeID = {$v->Mcu_ScreeningT_SampleTypeID}";
$datas_barcode = $this->db->query($sql)->result_array();
if($datas_barcode){
foreach($datas_barcode as $kx => $vx){
$datas_barcode[$kx]['T_BarcodeLabT_OrderHeaderID'] = $header_id;
unset($datas_barcode[$kx]['T_BarcodeLabID']);
unset($datas_barcode[$kx]['T_BarcodeLabMcuSessionID']);
$this->db->insert('one.t_barcodelab', $datas_barcode[$kx]);
//$last_x_id = $this->db->insert_id();
}
$this->db->insert_batch('one.t_barcodelab', $datas_barcode);
}
if($v->Mcu_ScreeningT_SampleTypeID != 0){
$sql = "SELECT *
FROM mcu_session.t_ordersample
WHERE
T_OrderSampleT_OrderHeaderID = {$v->Mcu_ScreeningT_OrderHeaderID} AND
T_OrderSampleT_SampleTypeID = {$v->Mcu_ScreeningT_SampleTypeID} AND
T_OrderSampleMcuSessionID = {$mcu_sessionID}";
//echo $sql;
$datas_order_samples = $this->db->query($sql)->result_array();
if($datas_order_samples){
foreach($datas_order_samples as $kx => $vx){
$sql = " SELECT *
FROM one.t_barcodelab
WHERE
T_BarcodeLabT_OrderHeaderID = {$header_id} AND
T_BarcodeLabT_SampleTypeID = {$v->Mcu_ScreeningT_SampleTypeID} AND
T_BarcodeLabIsActive = 'Y' LIMIT 1
";
$data_barcode = $this->db->query($sql)->row_array();
$old_x_id = $datas_order_samples[$kx]['T_OrderSampleID'];
$sql = "DELETE FROM one.t_ordersample
WHERE
T_OrderSampleT_OrderHeaderID = {$header_id} AND
T_OrderSampleT_SampleTypeID = {$v->Mcu_ScreeningT_SampleTypeID}
";
$this->db->query($sql);
$datas_order_samples[$kx]['T_OrderSampleT_OrderHeaderID'] = $header_id;
$datas_order_samples[$kx]['T_OrderSampleT_BarcodeLabID'] = $data_barcode['T_BarcodeLabID'];
unset($datas_order_samples[$kx]['T_OrderSampleID']);
unset($datas_order_samples[$kx]['T_OrderSampleMcuSessionID']);
$this->db->insert('one.t_ordersample', $datas_order_samples[$kx]);
//echo $this->db->last_query();
$last_x_id = $this->db->insert_id();
$sql = "SELECT *
FROM mcu_session.t_ordersamplereq
WHERE
T_OrderSampleReqT_OrderHeaderID = {$v->Mcu_ScreeningT_OrderHeaderID} AND
T_OrderSampleReqT_OrderSampleID = {$old_x_id} AND
T_OrderSampleReqMcuSessionID = {$mcu_sessionID}";
//echo $sql;
$datas_order_samples_req = $this->db->query($sql)->result_array();
if($datas_order_samples_req){
foreach($datas_order_samples_req as $kx_x => $vx_x){
$datas_order_samples_req[$kx_x]['T_OrderSampleReqT_OrderSampleID'] = $last_x_id;
unset($datas_order_samples_req[$kx_x]['T_OrderSampleReqID']);
unset($datas_order_samples_req[$kx_x]['T_OrderSampleReqIDMcuSessionID']);
$this->db->insert('one.t_ordersamplereq', $datas_order_samples_req[$kx]);
}
}
$sql = "DELETE FROM one.sample_by_step
WHERE
SampleByStepT_OrderHeaderID = {$header_id} AND
SampleByStepT_BarcodeLabID = {$data_barcode['T_BarcodeLabID']} AND
SampleByStepMcuSessionID = {$mcu_sessionID}
";
$this->db->query($sql);
$sql = "SELECT *
FROM mcu_session.sample_by_step
WHERE
SampleByStepT_OrderHeaderID = {$v->Mcu_ScreeningT_OrderHeaderID} AND
SampleByStepT_BarcodeLabID = {$vx['T_OrderSampleT_BarcodeLabID']}";
$datas_log_sample = $this->db->query($sql)->result_array();
foreach($datas_log_sample as $k_logsample => $v_logsample){
$datas_log_sample[$k_logsample]['SampleByStepT_OrderHeaderID'] = $header_id;
$datas_log_sample[$k_logsample]['SampleByStepT_BarcodeLabID'] = $data_barcode['T_BarcodeLabID'];
unset($datas_log_sample[$k_logsample]['SampleByStepID']);
unset($datas_log_sample[$k_logsample]['SampleByStepMcuSessionID']);
$this->db->insert('one.sample_by_step', $datas_log_sample[$k_logsample]);
//echo $this->db->last_query();
}
}
$sql = "SELECT T_BahanT_SampleStationID as station_id
FROM one.t_sampletype
JOIN one.t_bahan ON T_SampleTypeT_BahanID = T_BahanID AND T_BahanIsActive = 'Y'
WHERE
T_SampleTypeID = {$v->Mcu_ScreeningT_SampleTypeID} LIMIT 1";
//echo $sql;
$get_station_id = $this->db->query($sql)->row();
if($get_station_id){
$station_id = $get_station_id->station_id;
$sql = "SELECT *
FROM mcu_session.t_sampling_queue_last_status
WHERE
T_SamplingQueueLastStatusT_OrderHeaderID = {$v->Mcu_ScreeningT_OrderHeaderID} AND
T_SamplingQueueLastStatusT_SampleStationID = {$station_id} AND
T_SamplingQueueLastStatusMcuSessionID = {$v->Mcu_ScreeningMcuSessionID}";
$get_last_queue = $this->db->query($sql)->row_array();
if($get_last_queue['T_SamplingQueueLastStatusT_SamplingQueueStatusID'] = 5){
$sql = "DELETE FROM one.t_sampling_queue_last_status
WHERE
T_SamplingQueueLastStatusT_OrderHeaderID = {$header_id} AND
T_SamplingQueueLastStatusT_SampleStationID = {$station_id_so}";
$this->db->query($sql);
$get_last_queue['T_SamplingQueueLastStatusT_OrderHeaderID'] = $header_id;
unset($get_last_queue['T_SamplingQueueLastStatusID']);
unset($get_last_queue['T_SamplingQueueLastStatusMcuSessionID']);
$this->db->insert('one.t_sampling_queue_last_status', $get_last_queue);
$sql = "DELETE FROM one.t_sampling_queue_by_action
WHERE
T_SamplingQueueByActionT_OrderHeaderID = {$v->Mcu_ScreeningT_OrderHeaderID} AND
T_SamplingQueueByActionT_SampleStationID = {$station_id}
";
$this->db->query($sql);
$sql = "SELECT *
FROM mcu_session.t_sampling_queue_by_action
WHERE
T_SamplingQueueByActionT_SampleStationID = {$station_id} AND
T_SamplingQueueByActionT_OrderHeaderID = {$v->Mcu_ScreeningT_OrderHeaderID} AND
T_SamplingQueueByActionMcuSessionID = {$v->Mcu_ScreeningMcuSessionID}";
//echo $sql;
$queue_action = $this->db->query($sql)->result_array();
foreach($queue_action as $kx => $vx){
$queue_action[$kx]['T_SamplingQueueByActionT_OrderHeaderID'] = $header_id;
unset($queue_action[$kx]['T_SamplingQueueByActionID']);
unset($queue_action[$kx]['T_SamplingQueueByActionMcuSessionID']);
}
$this->db->insert_batch('one.t_sampling_queue_by_action', $queue_action);
//echo $this->db->last_query();
}
}
$sql = "SELECT *
FROM one.t_orderdetail
JOIN one.t_test ON T_OrderDetailT_TestID = T_TestID AND
T_TestT_SampleTypeID = {$v->Mcu_ScreeningT_SampleTypeID}
WHERE
T_OrderDetailT_OrderHeaderID = {$header_id} AND
T_OrderDetailIsActive = 'Y'";
//echo $sql;
$one_orderdetail = $this->db->query($sql)->result_array();
foreach($one_orderdetail as $kx => $vx){
$sql = "DELETE FROM one.t_orderdetail
WHERE
T_OrderDetailID = {$vx['T_OrderDetailID']}";
$this->db->query($sql);
}
$sql = "SELECT t_orderdetail.*
FROM mcu_session.t_orderdetail
JOIN one.t_test ON T_OrderDetailT_TestID = T_TestID AND
T_TestT_SampleTypeID = {$v->Mcu_ScreeningT_SampleTypeID}
WHERE
T_OrderDetailT_OrderHeaderID = {$v->Mcu_ScreeningT_OrderHeaderID} AND
T_OrderDetailMcuSessionID = {$v->Mcu_ScreeningMcuSessionID} AND
T_OrderDetailIsActive = 'Y'
GROUP BY T_OrderDetailID";
//echo $sql;
$mcu_orderdetail = $this->db->query($sql)->result_array();
foreach($mcu_orderdetail as $kx => $vx){
$vx['T_OrderDetailT_OrderHeaderID'] = $header_id;
unset($vx['T_OrderDetailID']);
unset($vx['T_OrderDetailMcuSessionID']);
$this->db->insert('one.t_orderdetail', $vx);
}
}
}
/*begin nonlab*/
if($v->Mcu_ScreeningT_TestID != 0){
$sql = "SELECT T_BahanT_SampleStationID as station_id
FROM one.t_test
JOIN one.t_sampletype ON T_TestT_SampleTypeID = T_SampleTypeID
JOIN one.t_bahan ON T_SampleTypeT_BahanID = T_BahanID
WHERE
T_TestID = {$v->Mcu_ScreeningT_TestID} LIMIT 1";
//echo $sql;
$get_station_id_so = $this->db->query($sql)->row();
$station_id_so = $get_station_id_so->station_id;
$sql = "SELECT *
FROM mcu_session.t_samplingso
WHERE
T_SamplingSoT_OrderHeaderID = {$v->Mcu_ScreeningT_OrderHeaderID} AND
T_SamplingSoT_TestID = {$v->Mcu_ScreeningT_TestID} AND
T_SamplingSoMcuSessionID = {$v->Mcu_ScreeningMcuSessionID} AND
T_SamplingSoT_SampleStationID = {$station_id_so}";
//echo $sql;
$datas_order_samples_so = $this->db->query($sql)->result_array();
if($datas_order_samples_so){
$sql = "SELECT *
FROM mcu_session.t_sampling_queue_last_status
WHERE
T_SamplingQueueLastStatusT_OrderHeaderID = {$v->Mcu_ScreeningT_OrderHeaderID} AND
T_SamplingQueueLastStatusMcuSessionID = {$v->Mcu_ScreeningMcuSessionID} AND
T_SamplingQueueLastStatusT_SampleStationID = {$station_id_so}";
$get_last_queue_so = $this->db->query($sql)->row_array();
if($get_last_queue_so['T_SamplingQueueLastStatusT_SamplingQueueStatusID'] = 5){
$sql = "DELETE FROM one.t_sampling_queue_last_status
WHERE
T_SamplingQueueLastStatusT_OrderHeaderID = {$header_id} AND
T_SamplingQueueLastStatusT_SampleStationID = {$station_id_so}";
$this->db->query($sql);
$get_last_queue_so['T_SamplingQueueLastStatusT_OrderHeaderID'] = $header_id;
unset($get_last_queue_so['T_SamplingQueueLastStatusID']);
unset($get_last_queue_so['T_SamplingQueueLastStatusMcuSessionID']);
$this->db->insert('one.t_sampling_queue_last_status', $get_last_queue_so);
$sql = "DELETE FROM one.t_sampling_queue_by_action
WHERE
T_SamplingQueueByActionT_OrderHeaderID = {$v->Mcu_ScreeningT_OrderHeaderID} AND
T_SamplingQueueByActionT_SampleStationID = {$station_id_so}
";
$this->db->query($sql);
$sql = "SELECT *
FROM mcu_session.t_sampling_queue_by_action
WHERE
T_SamplingQueueByActionT_SampleStationID = {$station_id_so} AND
T_SamplingQueueByActionMcuSessionID = {$v->Mcu_ScreeningMcuSessionID} AND
T_SamplingQueueByActionT_OrderHeaderID = {$v->Mcu_ScreeningT_OrderHeaderID}";
//echo $sql;
$queue_action_so = $this->db->query($sql)->result_array();
//print_r($queue_action_so);
foreach($queue_action_so as $kx => $vx){
$queue_action_so[$kx]['T_SamplingQueueByActionT_OrderHeaderID'] = $header_id;
unset($queue_action_so[$kx]['T_SamplingQueueByActionID']);
unset($queue_action_so[$kx]['T_SamplingQueueByActionMcuSessionID']);
}
$this->db->insert_batch('one.t_sampling_queue_by_action', $queue_action_so);
}
foreach($datas_order_samples_so as $k_so => $v_so){
$v_so['T_SamplingSoT_OrderHeaderID'] = $header_id;
unset($v_so['T_SamplingSoID']);
unset($v_so['T_SamplingSoMcuSessionID']);
$this->db->insert('one.t_samplingso', $v_so);
$last_sampling_so_id = $this->db->insert_id();
$sql = "SELECT *
FROM mcu_session.t_samplingso_requirement
WHERE
T_SamplingSoRequirementT_SamplingSoID = {$last_sampling_so_id} AND
T_SamplingSoRequirementMcuSessionID = {$v->Mcu_ScreeningMcuSessionID} AND
T_SamplingSoRequirementT_OrderHeaderID = {$v->Mcu_ScreeningT_OrderHeaderID}";
$requirement_so = $this->db->query($sql)->result_array();
foreach($requirement_so as $kx => $vx){
$requirement_so[$kx]['T_SamplingSoRequirementT_OrderHeaderID'] = $header_id;
unset($requirement_so[$kx]['T_SamplingSoRequirementID']);
unset($requirement_so[$kx]['T_SamplingSoRequirementMcuSessionID']);
}
$this->db->insert_batch('one.t_samplingso_requirement', $requirement_so);
$sql = "SELECT *
FROM mcu_session.t_samplingso_film
WHERE
T_SamplingSoFilmT_SamplingSoID = {$last_sampling_so_id}";
$film_so = $this->db->query($sql)->result_array();
foreach($film_so as $kx => $vx){
unset($film_so[$kx]['T_SamplingSoFilmID']);
unset($film_so[$kx]['T_SamplingSoFilmMcuSessionID']);
}
$this->db->insert_batch('one.t_samplingso_film', $film_so);
$sql = "SELECT *
FROM mcu_session.t_samplingso_form
WHERE
T_SamplingSoFormT_SamplingSOID = {$last_sampling_so_id} AND
T_SamplingSoFormMcuSessionID = {$v->Mcu_ScreeningMcuSessionID} AND
T_SamplingSoFormT_SampleStationID = {$station_id_so}";
$form_so = $this->db->query($sql)->result_array();
foreach($form_so as $kx => $vx){
unset($form_so[$kx]['T_SamplingSoFormID']);
unset($form_so[$kx]['T_SamplingSoFormMcuSessionID']);
}
$this->db->insert_batch('one.t_samplingso_form', $form_so);
}
$sql = "SELECT *
FROM one.t_orderdetail
WHERE
T_OrderDetailT_OrderHeaderID = {$header_id} AND
T_OrderDetailT_TestID = {$v->Mcu_ScreeningT_TestID} AND
T_OrderDetailIsActive = 'Y'";
$one_orderdetail = $this->db->query($sql)->row_array();
$one_orderdetail_id = $one_orderdetail['T_OrderDetailID'];
$sql = "SELECT *
FROM mcu_session.t_orderdetail
WHERE
T_OrderDetailT_OrderHeaderID = {$v->Mcu_ScreeningT_OrderHeaderID} AND
T_OrderDetailT_TestID = {$v->Mcu_ScreeningT_TestID} AND
T_OrderDetailMcuSessionID = {$v->Mcu_ScreeningMcuSessionID} AND
T_OrderDetailIsActive = 'Y'";
$mcu_orderdetail = $this->db->query($sql)->row_array();
$mcu_orderdetail_id = $mcu_orderdetail['T_OrderDetailID'];
unset($mcu_orderdetail['T_OrderDetailID']);
unset($mcu_orderdetail['T_OrderDetailMcuSessionID']);
$mcu_orderdetail['T_OrderDetailT_OrderHeaderID'] = $header_id;
$this->db->update('one.t_orderdetail', $mcu_orderdetail, array('T_OrderDetailID' => $one_orderdetail_id));
$sql = "DELETE FROM one.so_resultentry
WHERE
So_ResultEntryT_OrderHeaderID = {$v->Mcu_ScreeningT_OrderHeaderID} AND
So_ResultEntryT_OrderDetailID = {$one_orderdetail_id}
";
$this->db->query($sql);
$sql = "SELECT *
FROM mcu_session.so_resultentry
WHERE
So_ResultEntryT_OrderHeaderID = {$v->Mcu_ScreeningT_OrderHeaderID} AND
So_ResultEntryMcuSessionID = {$v->Mcu_ScreeningMcuSessionID} AND
So_ResultEntryT_OrderDetailID = {$mcu_orderdetail_id}";
//echo $sql;
$resultentry_so = $this->db->query($sql)->row_array();
$resultentry_so['So_ResultEntryT_OrderHeaderID'] = $header_id;
$resultentry_so['So_ResultEntryT_OrderDetailID'] = $one_orderdetail_id;
$old_id = $resultentry_so['So_ResultEntryID'];/*mcu_session*/
unset($resultentry_so['So_ResultEntryID']);
unset($resultentry_so['So_ResultEntryMcuSessionID']);
$this->db->insert('one.so_resultentry', $resultentry_so);
$last_re_so_id = $this->db->insert_id();
$sql = "DELETE FROM one.so_resultentrydetail
WHERE
So_ResultEntryDetailSo_ResultEntryID = {$last_re_so_id}
";
$this->db->query($sql);
$sql = "SELECT *
FROM mcu_session.so_resultentrydetail
WHERE
So_ResultEntryDetailSo_ResultEntryID = {$old_id} AND
So_ResultEntryDetailMcuSessionID = {$v->Mcu_ScreeningMcuSessionID}";
//echo $sql;
$resultentry_detail_so = $this->db->query($sql)->result_array();
foreach($resultentry_detail_so as $kx => $vx){
unset($resultentry_detail_so[$kx]['So_ResultEntryDetailID']);
unset($resultentry_detail_so[$kx]['So_ResultEntryDetailMcuSessionID']);
$resultentry_detail_so[$kx]['So_ResultEntryDetailSo_ResultEntryID'] = $last_re_so_id;
}
$this->db->insert_batch('one.so_resultentrydetail', $resultentry_detail_so);
$sql = "SELECT *
FROM mcu_session.so_resultentry_fisik_umum
WHERE
So_ResultEntryFisikUmumSo_ResultEntryID = {$old_id} AND
So_ResultEntryFisikUmumMcuSessionID = {$v->Mcu_ScreeningMcuSessionID}";
$resultentry_fisik_so = $this->db->query($sql)->result_array();
foreach($resultentry_fisik_so as $kx => $vx){
unset($resultentry_fisik_so[$kx]['So_ResultEntryFisikUmumSo_ResultEntryID']);
unset($resultentry_fisik_so[$kx]['So_ResultEntryFisikUmumMcuSessionID']);
$resultentry_fisik_so[$kx]['So_ResultEntryFisikUmumSo_ResultEntryID'] = $last_re_so_id;
}
$this->db->insert_batch('one.so_resultentry_fisik_umum', $resultentry_fisik_so);
$sql = "SELECT *
FROM mcu_session.so_resultentrydetail_other
WHERE
So_ResultEntryDetailOtherSo_ResultEntryID = {$old_id} AND
So_ResultEntryDetailOtherMcuSessionID = {$v->Mcu_ScreeningMcuSessionID}";
$resultentry_other_so = $this->db->query($sql)->result_array();
foreach($resultentry_other_so as $kx => $vx){
unset($resultentry_other_so[$kx]['So_ResultEntryDetailOtherID']);
unset($resultentry_other_so[$kx]['So_ResultEntryDetailOtherMcuSessionID']);
$resultentry_other_so[$kx]['So_ResultEntryDetailOtherSo_ResultEntryID'] = $last_re_so_id;
}
$this->db->insert_batch('one.so_resultentrydetail_other', $resultentry_other_so);
}
}
//$this->db->trans_complete();
}
}
$sql = "SELECT *
FROM mcu_session.last_master_id
WHERE
LastMasterMcuSessionID = {$mcu_sessionID}";
$last_master = $this->db->query($sql)->row_array();
$sql = "SELECT McuOfflinePrepareID as xid, McuOfflinePrepareCode as xcode
FROM mcu_session.mcu_offline_prepare
WHERE
McuOfflinePrepareIsActive = 'Y' AND McuOfflinePrepareIsDownloaded = 'Y' AND
McuOfflinePrepareMcuSessionID = {$mcu_sessionID}
LIMIT 1";
$data_prepare = $this->db->query($sql)->row_array();
$sql = "SELECT m_patient.*, Map_McuPatientM_PatientID as xid
FROM mcu_session.m_patient
JOIN mcu_session.t_orderheader ON T_OrderHeaderM_PatientID = M_PatientID
JOIN one.map_mcu_patient ON Map_McuPatientM_McuPatientID = M_PatientID AND
Map_McuPatientMcuOfflinePrepareCode = '{$data_prepare['xcode']}'
WHERE
M_PatientMcuSessionID = {$mcu_sessionID}";
//echo $sql;
$data_patient_update = $this->db->query($sql)->result_array();
if($data_patient_update){
foreach($data_patient_update as $k_dpu => $v_dpu){
$dt_x = $v_dpu;
unset($dt_x['xid']);
$this->db->update('one.m_patient', $dt_x, array('M_PatientID' => $v_dpu['xid']));
}
}
$sql = "SELECT m_patient.*,Mcu_MapOrderT_OrderHeaderNewID as xid
FROM mcu_session.m_patient
JOIN mcu_session.t_orderheader ON T_OrderHeaderM_PatientID = M_PatientID
JOIN one.mcu_map_order ON Mcu_MapOrderT_OrderHeaderID = T_OrderHeaderID AND
Mcu_MapOrderMcuOfflinePrepareCode = '{$data_prepare['xcode']}'
LEFT JOIN one.map_mcu_patient ON Map_McuPatientM_McuPatientID = M_PatientID AND
Map_McuPatientMcuOfflinePrepareCode = '{$data_prepare['xcode']}'
WHERE
M_PatientMcuSessionID = {$mcu_sessionID} AND ISNULL(Map_McuPatientID)
GROUP BY Mcu_MapOrderT_OrderHeaderID";
//echo $sql;
//print_r($last_master);
$data_patient_insert = $this->db->query($sql)->result_array();
if($data_patient_insert){
foreach($data_patient_insert as $k_dpi => $v_dpi){
if(intval($v_dpi['M_PatientID']) > intval($last_master['M_PatientID'])){
$dt_x = $v_dpi;
unset($dt_x['M_PatientID']);
unset($dt_x['M_PatientMcuSessionID']);
unset($dt_x['xid']);
//print_r($dt_x);
$this->db->insert('one.m_patient', $dt_x);
//echo $this->db->last_query();
$new_id = $this->db->insert_id();
//echo $new_id;
$sql = "UPDATE one.t_orderheader
SET T_OrderHeaderM_PatientID = {$new_id}
WHERE
T_OrderHeaderID = {$v_dpi['xid']}";
$this->db->query($sql);
//echo $sql;
$sql = "INSERT INTO map_mcu_patient (
Map_McuPatientM_McuPatientID,
Map_McuPatientM_PatientID,
Map_McuPatientMcuOfflinePrepareCode
)
VALUES(
{$v_dpi['M_PatientID']},
{$new_id},
'{$data_prepare['xcode']}'
)
";
$this->db->query($sql);
}
}
}
$sql = "SELECT m_patient.*
FROM mcu_session.m_patient
JOIN mcu_session.t_orderheader ON T_OrderHeaderM_PatientID = M_PatientID
JOIN one.mcu_map_order ON Mcu_MapOrderT_OrderHeaderID = T_OrderHeaderID AND
Mcu_MapOrderMcuOfflinePrepareCode = '{$data_prepare['xcode']}'
WHERE
M_PatientMcuSessionID = {$mcu_sessionID}
GROUP BY Mcu_MapOrderT_OrderHeaderID"
;
$data_patient_exist = $this->db->query($sql)->result_array();
if($data_patient_exist){
foreach($data_patient_exist as $k_dpe => $v_dpe){
if(intval($v_dpe['M_PatientID']) <= intval($last_master['M_PatientID'])){
$patient_id = $v_dpe['M_PatientID'];
unset($dt_x['M_PatientID']);
unset($dt_x['M_PatientMcuSessionID']);
$dt_x = $v_dpe;
$this->db->update('one.m_patient', $dt_x, array('M_PatientID' => $patient_id));
}
}
}
$sql = "SELECT m_patientaddress.*, Map_McuPatientM_PatientID as patient_id
FROM mcu_session.m_patientaddress
JOIN mcu_session.t_orderheader ON T_OrderHeaderM_PatientID = M_PatientAddressM_PatientID
JOIN one.mcu_map_order ON Mcu_MapOrderT_OrderHeaderID = T_OrderHeaderID AND
Mcu_MapOrderMcuOfflinePrepareCode = '{$data_prepare['xcode']}'
JOIN one.map_mcu_patient ON Map_McuPatientM_McuPatientID = T_OrderHeaderM_PatientID
LEFT JOIN map_mcu_patient_address ON Map_McuPatientAddressM_McuPatientAddressID = M_PatientAddressID
WHERE
M_PatientAddressMcuSessionID = {$mcu_sessionID} AND ISNULL(Map_McuPatientAddressID)
GROUP BY M_PatientAddressID";
//echo $sql;
$data_patient_address_insert = $this->db->query($sql)->result_array();
if($data_patient_address_insert){
foreach($data_patient_address_insert as $k_dpai => $v_dpai){
if(intval($v_dpai['M_PatientAddressID']) > intval($last_master['M_PatientAddressID'])){
$dt_x = $v_dpai;
unset($dt_x['M_PatientAddressID']);
unset($dt_x['M_PatientAddressMcuSessionID']);
unset($dt_x['patient_id']);
$dt_x['M_PatientAddressM_PatientID'] = $v_dpai['patient_id'];
$this->db->insert('one.m_patientaddress', $dt_x);
//echo $this->db->last_query();
$new_id = $this->db->insert_id();
$sql = "INSERT INTO map_mcu_patient_address (
Map_McuPatientAddressM_McuPatientAddressID,
Map_McuPatientAddressM_PatientAddressID,
Map_McuPatientAddressMcuOfflinePrepareCode
)
VALUES(
{$v_dpai['M_PatientAddressID']},
{$new_id},
'{$data_prepare['xcode']}'
)
";
$this->db->query($sql);
//echo $this->db->last_query();
}
}
}
$sql = "SELECT m_patientaddress.*, Map_McuPatientAddressM_PatientAddressID as xid
FROM mcu_session.m_patientaddress
JOIN mcu_session.t_orderheader ON T_OrderHeaderM_PatientID = M_PatientAddressM_PatientID
JOIN one.mcu_map_order ON Mcu_MapOrderT_OrderHeaderID = T_OrderHeaderID AND
Mcu_MapOrderMcuOfflinePrepareCode = '{$data_prepare['xcode']}'
JOIN map_mcu_patient_address ON Map_McuPatientAddressM_McuPatientAddressID = M_PatientAddressID
WHERE
M_PatientAddressMcuSessionID = {$mcu_sessionID}";
//echo 4sql;
$data_patient_address_update = $this->db->query($sql)->result_array();
if($data_patient_address_update){
foreach($data_patient_address_update as $k_dpau => $v_dpau){
if(intval($v_dpau['M_PatientAddressID']) > intval($last_master['M_PatientAddressID'])){
$dt_x = $v_dpau;
unset($dt_x['xid']);
$this->db->update('one.m_patientaddress', $dt_x, array('M_PatientAddressID' => $v_dpau['xid']));
}
}
}
$sql = "SELECT m_patientaddress.*
FROM mcu_session.m_patientaddress
JOIN mcu_session.t_orderheader ON T_OrderHeaderM_PatientID = M_PatientAddressM_PatientID
JOIN one.mcu_map_order ON Mcu_MapOrderT_OrderHeaderID = T_OrderHeaderID AND
Mcu_MapOrderMcuOfflinePrepareCode = '{$data_prepare['xcode']}'
WHERE
M_PatientAddressMcuSessionID = {$mcu_sessionID}";
$data_patient_address_exist = $this->db->query($sql)->result_array();
if($data_patient_address_exist){
foreach($data_patient_address_exist as $k_dpae => $v_dpae){
if(intval($v_dpau['M_PatientAddressID']) <= intval($last_master['M_PatientAddressID'])){
$dt_x = $v_dpae;
unset($dt_x['M_PatientAddressID']);
unset($dt_x['M_PatientAddressMcuSessionID']);
$this->db->update('one.m_patientaddress', $dt_x, array('M_PatientAddressID' => $v_dpae['M_PatientAddressID']));
}
}
}
$result = array("status"=> "OK");
$this->sys_ok($result);
exit;
}else{
echo "sudah terupdate semua";
}
}
}