Files
BE_IBL/application/controllers/inventory/receivemutasi/Updateqty.php
2026-04-15 15:23:57 +07:00

418 lines
19 KiB
PHP

<?php
class Updateqty extends MY_Controller
{
var $db;
function __construct()
{
parent::__construct();
$this->db_inventory = $this->load->database("inventory", true);
$this->db_inventory_log = $this->load->database('inventory_log', true);
}
function get_param_z()
{
$body_z = file_get_contents("php://input");
$body = gzuncompress($body_z);
return json_decode($body, true);
}
function reply($resp)
{
echo json_encode($resp);
}
function reply_gz($resp)
{
//echo json_encode($resp);
echo gzcompress(json_encode($resp));
}
function download_data()
{
try {
header("Content-Type:application/json");
// $datas = json_decode(file_get_contents('php://input'), true);
$datas = $this->get_param_z();
// print_r($datas);
// echo json_encode($datas);
// exit;
if($datas){
$arr_inserted = array();
foreach ($datas as $k => $v) {
$sql ="SELECT * FROM mutasirequestrespon WHERE MutasiRequestResponOldID = ? LIMIT 1";
$qry = $this->db_inventory->query([$v['MutasiRequestResponID']]);
//echo $this->db_inventory->last_query();
if(!$qry){
//echo $this->db_inventory->last_query();
exit;
}
if(!$qry->row_array()){
$this->db_inventory->trans_start();
$this->db_inventory->trans_strict(FALSE);
$id = $v['MutasiRequestResponID'];
$M_BranchID = $v['M_BranchID'];
unset($v['M_BranchID']);
unset($v['branch_ip']);
unset($v['MutasiRequestResponID']);
$v['MutasiRequestResponIsUploaded'] = 'Y';
$v['MutasiRequestResponOldID'] = $id;
$v['MutasiRequestResponCreated'] = date("Y-m-d H:i:s");
$v['MutasiRequestResponLastUpdated'] = date("Y-m-d H:i:s");
// $qry = $this->db_inventory->insert('mutasirequestrespon', $v);
$sql = $this->db_inventory->insert_string('mutasirequestrespon', $v) . ' ON DUPLICATE KEY UPDATE MutasiRequestResponOldID = MutasiRequestResponOldID';
$qry = $this->db_inventory->query($sql);
if(!$qry){
$arr = [
"err" => "insert mutasirequestrespon error",
"message" => $this->db_inventory->error()['message']
];
// print_r($this->db_inventory->error()['message']);
// $this->sys_error_db("insert mutasirequestrespon error", $this->db_inventory->error()['message']);
$this->sys_error_db($arr);
exit;
}
$sql = "UPDATE mutasirequestreceive SET
MutasiRequestReceiveReceiveQty = ?,
MutasiRequestReceiveStatus = ?
WHERE
MutasiRequestReceiveID = ?";
$qry = $this->db_inventory->query($sql,
array(
$v['MutasiRequestResponReceive'],
$v['MutasiRequestResponStatus'],
$v['MutasiRequestResponMutasiRequestReceiveID']
)
);
// print_r($this->db_inventory->last_query());
if(!$qry){
$this->sys_error_db("update mutasirequestreceive error", $this->db_inventory->last_query());
exit;
}
// $arr_request_status = array(
// 'MutasiRequestReceiveStatusMutasiRequestReceiveID' => $v['MutasiRequestResponMutasiRequestReceiveID'],
// 'MutasiRequestReceiveStatusStatus' => $v['MutasiRequestResponStatus'],
// 'MutasiRequestReceiveStatusJSON' => json_encode($v),
// 'MutasiRequestReceiveStatusCreated' => date("Y-m-d H:i:s"),
// 'MutasiRequestReceiveStatusUserID' => 10000
// );
// $qry = $this->db_inventory->insert('mutasirequestreceive_status', $arr_request_status);
// if(!$qry){
// $this->sys_error_db("insert mutasirequestreceive_status error", $this->db_inventory->last_query());
// exit;
// }
// add check data mutasirequestreceive_status
$MutasiRequestReceiveStatusMutasiRequestReceiveID_check = $v['MutasiRequestResponMutasiRequestReceiveID'];
// $sql_check = "SELECT *
// FROM mutasirequestreceive_status
// WHERE MutasiRequestReceiveStatusMutasiRequestReceiveID = ?
// AND
// MutasiRequestReceiveStatusStatus IN ('D','P')
// ";
$sql_check = "SELECT COUNT(*) as total
FROM mutasirequestreceive_status
WHERE JSON_EXTRACT(MutasiRequestReceiveStatusJSON, '$.MutasiRequestResponOldID') = ?
AND JSON_EXTRACT(MutasiRequestReceiveStatusJSON, '$.M_BranchID') = ?
AND MutasiRequestReceiveStatusMutasiRequestReceiveID = ?
AND MutasiRequestReceiveStatusStatus = ?";
$qry_check = $this->db_inventory->query($sql_check,[
$v['MutasiRequestResponOldID'],
$M_BranchID,
$MutasiRequestReceiveStatusMutasiRequestReceiveID_check,
$v['MutasiRequestResponStatus']
]);
// print_r($this->db_inventory->last_query());
if(!$qry_check){
$this->sys_error_db("check mutasirequestreceive_status error", $this->db_inventory->last_query());
exit;
}
// exit;
$data_cek = $qry_check->row_array();
// $data_json_cek = json_decode($data_cek['MutasiRequestReceiveStatusJSON']);
// $data_json_cek = $this->objToArray(json_decode($data_cek['MutasiRequestReceiveStatusJSON']));
// print_r($arr_request_status);
// exit;
// exit;
// $json2 = array(
// "MutasiRequestResponOldID"=> $v['MutasiRequestResponOldID'],
// "MutasiRequestResponType"=> $v['MutasiRequestResponType'],
// "MutasiRequestResponMutasiRequestReceiveID"=> $v['MutasiRequestResponMutasiRequestReceiveID'],
// "MutasiRequestResponToCompanyAdddressID"=> $v['MutasiRequestResponToCompanyAdddressID'],
// "MutasiRequestResponFromCompanyAdddressID"=> $v['MutasiRequestResponFromCompanyAdddressID'],
// "MutasiRequestResponMutasiRequestDetailID"=> $v['MutasiRequestResponMutasiRequestDetailID'],
// "MutasiRequestResponMutasiID"=> $v['MutasiRequestResponMutasiID'],
// "MutasiRequestResponMutasiDetailStockID"=> $v['MutasiRequestResponMutasiDetailStockID'],
// "MutasiRequestResponMutasiDetailID"=> $v['MutasiRequestResponMutasiDetailID'],
// "MutasiRequestResponStatus"=> $v['MutasiRequestResponStatus'],
// "MutasiRequestResponReceive"=> $v['MutasiRequestResponReceive'],
// "MutasiRequestResponCreated"=> $v['MutasiRequestResponCreated'],
// "MutasiRequestResponLastUpdated"=> $v['MutasiRequestResponLastUpdated'],
// "MutasiRequestResponIsUploaded"=> $v['MutasiRequestResponIsUploaded'],
// "MutasiRequestResponIsdownloadded"=> $v['MutasiRequestResponIsdownloadded'],
// "M_BranchID"=> $M_BranchID
// );
// print_r($json2);
// print_r("penanda");
$v['M_BranchID'] = $M_BranchID;
$arr_request_status = array(
'MutasiRequestReceiveStatusMutasiRequestReceiveID' => $v['MutasiRequestResponMutasiRequestReceiveID'],
'MutasiRequestReceiveStatusStatus' => $v['MutasiRequestResponStatus'],
'MutasiRequestReceiveStatusJSON' => json_encode($v),
'MutasiRequestReceiveStatusCreated' => date("Y-m-d H:i:s"),
'MutasiRequestReceiveStatusUserID' => 10000
);
// print_r($arr_request_status);
if($data_cek['total'] == 0)
// if(count($data_cek) == 0)
{
// print_r($v);
// echo "<br>";
// print_r($v);
// exit;
// print_r("json cek");
// print_r($data_json_cek);
// print_r($data_cek);
// foreach($data_cek as $k=> $l){
// if($v['MutasiRequestResponOldID'] != $data_json_cek['MutasiRequestResponOldID']
// && (
// ($v['MutasiRequestResponStatus'] != $data_json_cek['MutasiRequestResponStatus']
// && $v['MutasiRequestResponStatus'] != "P")
// || ($v['MutasiRequestResponStatus'] == "P")
// )
// && $M_BranchID != $data_json_cek['M_BranchID']
// ){
// print_r("masuk foreach");
// print_r($l);
$qry = $this->db_inventory->insert('mutasirequestreceive_status', $arr_request_status);
if(!$qry){
$this->sys_error_db("insert mutasirequestreceive_status error", $this->db_inventory->last_query());
exit;
}
// masuk if
$data_update_mutasidetailstock = array('MutasiDetailStockReceiveQty' => $v['MutasiRequestResponReceive']);
$this->db_inventory->where('MutasiDetailStockID', $v['MutasiRequestResponMutasiDetailStockID']);
$this->db_inventory->update('mutasidetailstock', $data_update_mutasidetailstock);
$sql = "UPDATE mutasidetail
SET MutasiDetailReceiveQty = MutasiDetailReceiveQty + {$v['MutasiRequestResponReceive']}
WHERE
MutasiDetailID = ?";
$qry = $this->db_inventory->query($sql,
array(
$v['MutasiRequestResponMutasiDetailID']
)
);
if(!$qry){
$this->sys_error_db("update mutasidetail error", $this->db_inventory->last_query());
exit;
}
// masuk if
$sql = "SELECT COUNT(*) as x_count
FROM mutasidetail
WHERE
( MutasiDetailQty = 0 OR MutasiDetailQty <> MutasiDetailReceiveQty ) AND
MutasiDetailIsActive = 'Y' AND MutasiDetailMutasiID = ? ";
$qry = $this->db_inventory->query($sql,
array(
$v['MutasiRequestResponMutasiID']
)
);
if(!$qry){
$this->sys_error_db("update mutasidetail error", $this->db_inventory->last_query());
exit;
}
// masuk if
$status_mutasi = 'P';
$not_done = $qry->row()->x_count;
if($not_done == 0)
$status_mutasi = 'D';
$data_update_mutasi = array('MutasiStatus' => $status_mutasi);
$this->db_inventory->where('MutasiID', $v['MutasiRequestResponMutasiID']);
$this->db_inventory->update('mutasi', $data_update_mutasi);
// masuk if
// }
// }
}
// end
// // masuk if
// $data_update_mutasidetailstock = array('MutasiDetailStockReceiveQty' => $v['MutasiRequestResponReceive']);
// $this->db_inventory->where('MutasiDetailStockID', $v['MutasiRequestResponMutasiDetailStockID']);
// $this->db_inventory->update('mutasidetailstock', $data_update_mutasidetailstock);
// $sql = "UPDATE mutasidetail
// SET MutasiDetailReceiveQty = MutasiDetailReceiveQty + {$v['MutasiRequestResponReceive']}
// WHERE
// MutasiDetailID = ?";
// $qry = $this->db_inventory->query($sql,
// array(
// $v['MutasiRequestResponMutasiDetailID']
// )
// );
// if(!$qry){
// $this->sys_error_db("update mutasidetail error", $this->db_inventory->last_query());
// exit;
// }
// // masuk if
// masuk if
// $sql = "SELECT COUNT(*) as x_count
// FROM mutasidetail
// WHERE
// ( MutasiDetailQty = 0 OR MutasiDetailQty <> MutasiDetailReceiveQty ) AND
// MutasiDetailIsActive = 'Y' AND MutasiDetailMutasiID = ? ";
// $qry = $this->db_inventory->query($sql,
// array(
// $v['MutasiRequestResponMutasiID']
// )
// );
// if(!$qry){
// $this->sys_error_db("update mutasidetail error", $this->db_inventory->last_query());
// exit;
// }
// masuk if
// // masuk if
// $status_mutasi = 'P';
// $not_done = $qry->row()->x_count;
// if($not_done == 0)
// $status_mutasi = 'D';
// $data_update_mutasi = array('MutasiStatus' => $status_mutasi);
// $this->db_inventory->where('MutasiID', $v['MutasiRequestResponMutasiID']);
// $this->db_inventory->update('mutasi', $data_update_mutasi);
// // masuk if
$this->db_inventory->trans_complete();
array_push($arr_inserted,$id);
}
}
//print_r($arr_inserted);
$result = array( "records" => $arr_inserted);
$this->sys_ok($result);
}
} catch (Exception $exc) {
$message = $exc->getMessage();
$this->sys_error($message);
}
}
protected function objToArray($obj)
{
// Not an object or array
if (!is_object($obj) && !is_array($obj)) {
return $obj;
}
// Parse array
foreach ($obj as $key => $value) {
$arr[$key] = $this->objToArray($value);
}
// Return parsed array
return $arr;
}
function update_qty_try($qty)
{
try {
$sql = "UPDATE mutasirequestreceive SET
MutasiRequestReceiveReceiveQty = MutasiRequestReceiveReceiveQty + $qty,
MutasiRequestReceiveStatus = ?
WHERE
MutasiRequestReceiveID = ?";
$qry = $this->db_inventory->query($sql,
array(
"P",
1
)
);
if(!$qry){
$arr_e = [
"x" => "check mutasirequestreceive_status error",
"msg" => $this->db_inventory->last_query()
];
$this->sys_error_db($arr_e);
exit;
}
} catch (Exception $exc) {
$message = $exc->getMessage();
$this->sys_error($message);
}
}
}