233 lines
7.9 KiB
PHP
233 lines
7.9 KiB
PHP
<?php
|
|
|
|
class Supplies extends MY_Controller
|
|
{
|
|
var $db_onedev;
|
|
public function index()
|
|
{
|
|
echo "API";
|
|
}
|
|
public function __construct()
|
|
{
|
|
parent::__construct();
|
|
$this->db_onedev = $this->load->database("onedev", true);
|
|
}
|
|
|
|
public function save()
|
|
{
|
|
try {
|
|
//# cek token valid
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
|
|
//# ambil parameter input
|
|
$xuserid = $this->sys_user['M_UserID'];
|
|
$prm = $this->sys_input;
|
|
$orderid = $prm['orderid'];
|
|
$supplies = $prm['supplies'];
|
|
$barcodes = $prm['barcode'];
|
|
$dt_log = array('orderid'=>$orderid,'supplies'=>$supplies,'barcode'=>$barcode);
|
|
$fologcode = 'FO.Verification.BarcodeSupplies';
|
|
$json_dt_log = json_encode($dt_log);
|
|
$sql = "insert into one_log.log_supplies_barcode(
|
|
Log_SuppliesBarcodeDate,
|
|
Log_SuppliesBarcodeCode,
|
|
Log_SuppliesBarcodeJson,
|
|
Log_SuppliesBarcodeUserID)
|
|
values( now(), ?, ?, ?)";
|
|
//echo $sql;
|
|
$query = $this->db_onedev->query($sql,
|
|
array(
|
|
$fologcode,
|
|
$json_dt_log,
|
|
$xuserid
|
|
)
|
|
);
|
|
|
|
if (!$query) {
|
|
$this->sys_error_db("one_log.log_supplies_barcode insert");
|
|
exit;
|
|
}
|
|
//print_r($supplies);
|
|
foreach($supplies as $k => $v){
|
|
if(intval($v['xid']) == 0 && $v['chex'] == true){
|
|
$sql = "insert into t_ordersupplies(
|
|
T_OrderSuppliesT_OrderHeaderID,
|
|
T_OrderSuppliesM_SuppliesID,
|
|
T_OrderSuppliesQty,
|
|
T_OrderSuppliesCreated,
|
|
T_OrderSuppliesLastUpdated,
|
|
T_OrderSuppliesUserID)
|
|
values( ?, ?, ?, now(),now(),?)";
|
|
//echo $sql;
|
|
$query = $this->db_onedev->query($sql,
|
|
array(
|
|
$orderid,
|
|
$v['id'],
|
|
$v['qty'],
|
|
$xuserid
|
|
)
|
|
);
|
|
if (!$query) {
|
|
$this->sys_error_db("t_ordersupplies insert");
|
|
exit;
|
|
}
|
|
}
|
|
if(intval($v['xid']) > 0 && $v['chex'] == true){
|
|
$sql = "update t_ordersupplies
|
|
set
|
|
T_OrderSuppliesQty = {$v['qty']},
|
|
T_OrderSuppliesLastUpdated = now(),
|
|
T_OrderSuppliesUserID = {$xuserid}
|
|
where
|
|
T_OrderSuppliesID = ?
|
|
";
|
|
//echo $sql;
|
|
$query = $this->db_onedev->query($sql,
|
|
array(
|
|
$v['xid']
|
|
)
|
|
);
|
|
if (!$query) {
|
|
$this->sys_error_db("t_ordersupplies update");
|
|
exit;
|
|
}
|
|
}
|
|
if(intval($v['xid']) > 0 && $v['chex'] == false){
|
|
$sql = "update t_ordersupplies
|
|
set
|
|
T_OrderSuppliesIsActive = 'N' ,
|
|
T_OrderSuppliesLastUpdated = now(),
|
|
T_OrderSuppliesUserID = $xuserid
|
|
where
|
|
T_OrderSuppliesID = ?
|
|
";
|
|
//echo $sql;
|
|
$query = $this->db_onedev->query($sql,
|
|
array(
|
|
$v['xid']
|
|
)
|
|
);
|
|
if (!$query) {
|
|
$this->sys_error_db("t_ordersupplies update");
|
|
exit;
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
$sql = "UPDATE t_barcodelab SET T_BarcodeLabIsActive = 'N' WHERE T_BarcodeLabT_OrderHeaderID = {$orderid}";
|
|
$updatex = $this->db_onedev->query($sql);
|
|
|
|
foreach($barcodes as $i => $barcode){
|
|
$children = $barcode['children'];
|
|
foreach($children as $k => $v){
|
|
if(intval($v['xid']) == 0){
|
|
$sql = "insert into t_barcodelab(
|
|
T_BarcodeLabT_OrderHeaderID,
|
|
T_BarcodeLabBarcode,
|
|
T_BarcodeLabT_SampleTypeID,
|
|
T_BarcodeLabCreated,
|
|
T_BarcodeLabLastUpdated,
|
|
T_BarcodeLabUserID)
|
|
values( ?, ?, ?, now(),now(),?)";
|
|
|
|
$query = $this->db_onedev->query($sql,
|
|
array(
|
|
$orderid,
|
|
$v['barcodenumber'],
|
|
$v['id'],
|
|
$xuserid
|
|
)
|
|
);
|
|
if (!$query) {
|
|
$this->sys_error_db("t_barcodelab insert");
|
|
exit;
|
|
}
|
|
}else{
|
|
$sql = "UPDATE t_barcodelab SET T_BarcodeLabIsActive = 'Y' WHERE T_BarcodeLabID = {$v['xid']} ";
|
|
$updatex = $this->db_onedev->query($sql);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
$sql = "select M_SuppliesID as id,
|
|
IFNULL(T_OrderSuppliesID,0) as xid,
|
|
IF(ISNULL(T_OrderSuppliesID),'N',T_OrderSuppliesIsActive) as chex,
|
|
IFNULL(T_OrderSuppliesQty,1) as qty,
|
|
M_SuppliesName as name,
|
|
IF(ISNULL(T_OrderSuppliesID),NOW(),T_OrderSuppliesLastUpdated) as lastupdated,
|
|
IF(ISNULL(T_OrderSuppliesID),NOW(),T_OrderSuppliesLastUpdated) as tx_lastupdated
|
|
from m_supplies
|
|
left join t_ordersupplies ON
|
|
T_OrderSuppliesT_OrderHeaderID = ? AND
|
|
T_OrderSuppliesM_SuppliesID = M_SuppliesID
|
|
WHERE
|
|
M_SuppliesIsActive = 'Y'";
|
|
$sql_param = array($orderid);
|
|
$query = $this->db_onedev->query($sql,$sql_param);
|
|
if ($query) {
|
|
$rows_supplies = $query->result_array();
|
|
foreach($rows_supplies as $k => $v){
|
|
if($v['chex'] == 'N')
|
|
$rows_supplies[$k]['chex'] = false;
|
|
else
|
|
$rows_supplies[$k]['chex'] = true;
|
|
}
|
|
} else {
|
|
$this->sys_error_db("t_ordersupplies select");
|
|
exit;
|
|
}
|
|
|
|
$query =" SELECT T_SampleTypeID as id,
|
|
T_SampleTypeName as name,
|
|
'' as children
|
|
FROM t_orderheader
|
|
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID
|
|
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
|
|
JOIN t_sampletype ON T_TestT_SampleTypeID = T_SampleTypeID
|
|
WHERE
|
|
T_OrderHeaderID = {$orderid}
|
|
GROUP BY T_SampleTypeID
|
|
";
|
|
// echo $query ;
|
|
$rows_barcode = $this->db_onedev->query($query)->result();
|
|
foreach($rows_barcode as $k => $v){
|
|
$query = "SELECT T_SampleTypeID as id, IFNULL(T_BarcodeLabID,0) as xid,
|
|
IF(ISNULL(T_BarcodeLabID),'Y',T_BarcodeLabIsActive) as chex,
|
|
T_TestName as testname,
|
|
T_SampleTypeName as samplename,
|
|
IF(ISNULL(T_BarcodeLabID),CONCAT(T_OrderHeaderLabNumber,'.',T_SampleTypeID,'.',1),T_BarcodeLabBarcode) as barcodenumber
|
|
FROM t_orderdetail
|
|
JOIN t_orderheader ON T_OrderHeaderID = T_OrderDetailT_OrderHeaderID
|
|
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
|
|
JOIN t_sampletype ON T_TestT_SampleTypeID = T_SampleTypeID
|
|
LEFT JOIN t_barcodelab ON T_BarcodeLabT_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND
|
|
T_BarcodeLabT_SampleTypeID = T_TestT_SampleTypeID AND T_BarcodeLabIsActive = 'Y'
|
|
WHERE
|
|
T_OrderDetailT_OrderHeaderID = {$orderid} AND T_SampleTypeID = {$v->id}
|
|
GROUP BY T_BarcodeLabID ";
|
|
$v->children = $this->db_onedev->query($query)->result_array();
|
|
foreach($v->children as $ki => $vi){
|
|
if($vi['chex'] == 'N')
|
|
$v->children[$ki]['chex'] = false;
|
|
else
|
|
$v->children[$ki]['chex'] = true;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
$result = array ("total" => count($rows), "records" => array('supplies'=>$rows_supplies,'barcode'=>$rows_barcode));
|
|
$this->sys_ok($result);
|
|
|
|
} catch(Exception $exc) {
|
|
$message = $exc->getMessage();
|
|
$this->sys_error($message);
|
|
}
|
|
}
|
|
}
|