Files
BE_CPONE/application/controllers/mockup/fo/verification/Supplies.php
2026-04-27 10:31:17 +07:00

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