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

438 lines
21 KiB
PHP

<?php
class Downloadfrombranch 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();
$this->sys_error_db("select mutasirequestrespon error : ". $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_cek_status = "select *
// from mutasirequestreceive
// WHERE MutasiRequestReceiveID = ?";
// $qry_cek_status = $this->db_inventory->query($sql_cek_status,[
// $v['MutasiRequestResponMutasiRequestReceiveID']
// ]);
// if(!$qry_cek_status){
// $arr_e = [
// "msg" => "select cek status mutasirequestreceive error",
// "error" => $this->db_inventory->error()['message'],
// "lastquery" => $this->db_inventory->last_query()
// ];
// $this->sys_error_db($arr_e);
// exit;
// }
// $data_status = $qry_cek_status->row_array();
// if($data_status['MutasiRequestReceiveStatus'] != "D") {
// $qty = intval($v['MutasiRequestResponReceive']);
// $sql = "UPDATE mutasirequestreceive SET
// MutasiRequestReceiveReceiveQty = MutasiRequestReceiveReceiveQty + $qty,
// MutasiRequestReceiveStatus = ?
// WHERE
// MutasiRequestReceiveID = ?";
// $qry = $this->db_inventory->query($sql,
// array(
// $v['MutasiRequestResponStatus'],
// $v['MutasiRequestResponMutasiRequestReceiveID']
// )
// );
// if(!$qry){
// $this->sys_error_db("update mutasirequestreceive error", $this->db_inventory->last_query());
// exit;
// }
// }
// $qty = intval($v['MutasiRequestResponReceive']);
// $sql = "UPDATE mutasirequestreceive SET
// MutasiRequestReceiveReceiveQty = MutasiRequestReceiveReceiveQty + $qty,
// MutasiRequestReceiveStatus = ?
// WHERE
// MutasiRequestReceiveID = ?";
// $qry = $this->db_inventory->query($sql,
// array(
// $v['MutasiRequestResponStatus'],
// $v['MutasiRequestResponMutasiRequestReceiveID']
// )
// );
// print_r($this->db_inventory->last_query());
// $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
// $sql_check = "SELECT *
// FROM mutasirequestreceive_status
// WHERE MutasiRequestReceiveStatusMutasiRequestReceiveID = ?
// AND
// MutasiRequestReceiveStatusStatus IN ('D','P')
// ";
$MutasiRequestReceiveStatusMutasiRequestReceiveID_check = $v['MutasiRequestResponMutasiRequestReceiveID'];
$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(
'MutasiRequestReceiveType' => 'T',
'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)
{
$sql_cek_status = "select *
from mutasirequestreceive
WHERE MutasiRequestReceiveID = ?";
$qry_cek_status = $this->db_inventory->query($sql_cek_status,[
$v['MutasiRequestResponMutasiRequestReceiveID']
]);
if(!$qry_cek_status){
$arr_e = [
"msg" => "select cek status mutasirequestreceive error",
"error" => $this->db_inventory->error()['message'],
"lastquery" => $this->db_inventory->last_query()
];
$this->sys_error_db($arr_e);
exit;
}
$data_status = $qry_cek_status->row_array();
if($data_status['MutasiRequestReceiveStatus'] != "D") {
$qty = intval($v['MutasiRequestResponReceive']);
$sql = "UPDATE mutasirequestreceive SET
MutasiRequestReceiveReceiveQty = MutasiRequestReceiveReceiveQty + $qty,
MutasiRequestReceiveStatus = ?
WHERE
MutasiRequestReceiveID = ?";
$qry = $this->db_inventory->query($sql,
array(
$v['MutasiRequestResponStatus'],
$v['MutasiRequestResponMutasiRequestReceiveID']
)
);
if(!$qry){
$this->sys_error_db("update mutasirequestreceive error : ". $this->db_inventory->last_query());
exit;
}
}
$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("select 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;
}
}