5 Commits

Author SHA1 Message Date
b7a00bc242 remove workflow add scripts compare file and upload to server 2026-07-09 10:12:42 +07:00
13af691645 add parameter ssh key passphrase to workflow
Some checks failed
Deploy controllers / upload (push) Has been cancelled
2026-07-09 09:51:11 +07:00
775a390bcb add workflow auto update to server
Some checks failed
Deploy controllers / upload (push) Has been cancelled
2026-07-09 09:46:34 +07:00
0d1dcb1b5e add query insert into table stock_inventory in func savehandover receiveitempo inventaris 2026-07-09 08:22:16 +07:00
22719de06f add api file po asset, api receive item inventaris add insert into table stock_inventaris 2026-07-08 17:15:55 +07:00
3 changed files with 348 additions and 202 deletions

View File

@@ -1,8 +1,10 @@
<?php <?php
class PurchaseOrderAset extends MY_Controller { class PurchaseOrderAset extends MY_Controller
{
var $db; var $db;
public function index() { public function index()
{
echo "Purchase Order Aset API"; echo "Purchase Order Aset API";
} }
@@ -12,11 +14,11 @@ class PurchaseOrderAset extends MY_Controller {
} }
## QUERY ## ## QUERY ##
public function getListSupplier() { public function getListSupplier()
{
try { try {
if (!$this->isLogin) { if (!$this->isLogin) {
$this->sys_error("invalid token"); throw new Exception('Invalid token');
exit;
} }
$sql = "SELECT $sql = "SELECT
@@ -26,26 +28,31 @@ class PurchaseOrderAset extends MY_Controller {
WHERE SupplierIsActive = 'Y'"; WHERE SupplierIsActive = 'Y'";
$que = $this->db->query($sql, []); $que = $this->db->query($sql, []);
if (!$que) { if (!$que) {
$this->sys_error_db("[Error] get data supplier"); throw new Exception('failed to query list supplier', 1);
exit;
} }
$data = $que->result_array(); $data = $que->result_array();
$this->sys_ok($data); $this->sys_ok($data);
} catch (Exception $exc) { } catch (Exception $exc) {
$this->sys_error($exc->getMessage()); $msg = '[Error] ' . $exc->getMessage();
$code = $exc->getCode();
if ($code == 0) {
$this->sys_error($msg);
} else {
$this->sys_error_db($msg);
}
exit;
} }
} }
public function getListCabang() { public function getListCabang()
{
try { try {
if (!$this->isLogin) { if (!$this->isLogin) {
$this->sys_error("invalid token"); throw new Exception('Invalid token');
exit;
} }
$user = $this->sys_user; $user = $this->sys_user;
$sql = "SELECT $sql = "SELECT
M_BranchID, M_BranchID,
M_BranchCode, M_BranchCode,
@@ -55,22 +62,28 @@ class PurchaseOrderAset extends MY_Controller {
AND M_BranchS_RegionalID = ?"; AND M_BranchS_RegionalID = ?";
$que = $this->db->query($sql, [$user['S_RegionalID']]); $que = $this->db->query($sql, [$user['S_RegionalID']]);
if (!$que) { if (!$que) {
$this->sys_error_db("[Error] failed get list cabang"); throw new Exception('failed to query list cabang', 1);
exit;
} }
$data = $que->result_array(); $data = $que->result_array();
$this->sys_ok($data); $this->sys_ok($data);
} catch (Exception $exc) { } catch (Exception $exc) {
$this->sys_error($exc->getMessage()); $msg = '[Error] ' . $exc->getMessage();
$code = $exc->getCode();
if ($code == 0) {
$this->sys_error($msg);
} else {
$this->sys_error_db($msg);
}
exit;
} }
} }
public function searchRequestAset() { public function searchRequestAset()
{
try { try {
if (!$this->isLogin) { if (!$this->isLogin) {
$this->sys_error("invalid token"); throw new Exception('Invalid token');
exit;
} }
$para = $this->sys_input; $para = $this->sys_input;
@@ -132,22 +145,25 @@ class PurchaseOrderAset extends MY_Controller {
$sql_data = $sql . " LIMIT ? OFFSET ? "; $sql_data = $sql . " LIMIT ? OFFSET ? ";
$que_data = $this->db->query($sql_data, [ $que_data = $this->db->query($sql_data, [
$para['branchcode'], $keyword, $para['supplierID'], $para['branchcode'],
$limit, $offset $keyword,
$para['supplierID'],
$limit,
$offset
]); ]);
if (!$que_data) { if (!$que_data) {
$this->sys_error_db("[Error] get daftar request data"); throw new Exception('failed to query data request order aset', 1);
exit;
} }
$data = $que_data->result_array(); $data = $que_data->result_array();
$sql_total = "SELECT COUNT(*) AS total FROM ($sql) AS x"; $sql_total = "SELECT COUNT(*) AS total FROM ($sql) AS x";
$que_total = $this->db->query($sql_total, [ $que_total = $this->db->query($sql_total, [
$para['branchcode'], $keyword, $para['supplierID'] $para['branchcode'],
$keyword,
$para['supplierID']
]); ]);
if (!$que_total) { if (!$que_total) {
$this->sys_error_db("[Error] get total request aset"); throw new Exception('failed to query total request order aset', 1);
exit;
} }
$total = $que_total->row_array()['total']; $total = $que_total->row_array()['total'];
@@ -158,29 +174,64 @@ class PurchaseOrderAset extends MY_Controller {
$this->sys_ok($out); $this->sys_ok($out);
} catch (Exception $exc) { } catch (Exception $exc) {
$this->sys_error($exc->getMessage()); $msg = '[Error] ' . $exc->getMessage();
$code = $exc->getCode();
if ($code == 0) {
$this->sys_error($msg);
} else {
$this->sys_error_db($msg);
}
exit;
} }
} }
public function getUserApproveLevel() { public function getUserApproveLevel()
{
try { try {
if (!$this->isLogin) { if (!$this->isLogin) {
$this->sys_error("invalid token"); throw new Exception('Invalid token');
exit;
} }
$user = $this->sys_user; $user = $this->sys_user;
$sql = "SELECT M_UserM_ApproveLevelID FROM m_user $sql = "SELECT M_UserM_ApproveLevelID
WHERE M_UserIsActive = 'Y' AND M_UserID = ? "; FROM m_user
WHERE M_UserIsActive = 'Y'
AND M_UserID = ? ";
$que = $this->db->query($sql, [$user['M_UserID']]); $que = $this->db->query($sql, [$user['M_UserID']]);
if (!$que) { if (!$que) {
$this->sys_error_db("[Error] failed get approval level user"); throw new Exception('failed to query approval level', 1);
exit;
} }
$data = $que->row_array(); $data = $que->row_array();
$this->sys_ok($data); $this->sys_ok($data);
} catch (Exception $exc) { } catch (Exception $exc) {
$this->sys_error($exc->getMessage()); $msg = '[Error] ' . $exc->getMessage();
$code = $exc->getCode();
if ($code == 0) {
$this->sys_error($msg);
} else {
$this->sys_error_db($msg);
}
exit;
}
}
## MUTATIONS ##
public function insertPurchaseOrderAsset()
{
try {
if (!$this->isLogin) {
throw new Exception('Invalid token');
}
} catch (Exception $e) {
$msg = '[Error] ' . $e->getMessage();
$code = $e->getCode();
if ($code == 0) {
$this->sys_error($msg);
} else {
$this->sys_error_db($msg);
}
exit;
} }
} }
} }

View File

@@ -1946,18 +1946,18 @@ class ReceiveItemPoInventaris extends MY_Controller
} }
// insert stockid barcode barang // insert stockid barcode barang
$sql_update_barcode = "UPDATE t_barcode_barang SET // $sql_update_barcode = "UPDATE t_barcode_barang SET
T_BarcodeBarangStockID = ? // T_BarcodeBarangStockID = ?
WHERE T_BarcodeBarangReceiveOrderPoDetailID = ?"; // WHERE T_BarcodeBarangReceiveOrderPoDetailID = ?";
$qry_update_barcode = $this->db->query($sql_update_barcode, [ // $qry_update_barcode = $this->db->query($sql_update_barcode, [
$stock_ID, // $stock_ID,
$detail['ReceiveOrderPoDetailID'] // $detail['ReceiveOrderPoDetailID']
]); // ]);
if (!$qry_update_barcode) { // if (!$qry_update_barcode) {
$this->db->trans_rollback(); // $this->db->trans_rollback();
$this->sys_error_db("[Error] update barcode stockID", $this->db); // $this->sys_error_db("[Error] update barcode stockID", $this->db);
exit; // exit;
} // }
} else { } else {
$sql_insert_stock = "INSERT INTO stock ( $sql_insert_stock = "INSERT INTO stock (
StockWarehouseAlmariID, StockWarehouseAlmariID,
@@ -1990,18 +1990,18 @@ class ReceiveItemPoInventaris extends MY_Controller
$stock_qty_end = intval($batch['qty']); $stock_qty_end = intval($batch['qty']);
// insert stockid barcode barang // insert stockid barcode barang
$sql_update_barcode = "UPDATE t_barcode_barang SET // $sql_update_barcode = "UPDATE t_barcode_barang SET
T_BarcodeBarangStockID = ? // T_BarcodeBarangStockID = ?
WHERE T_BarcodeBarangReceiveOrderPoDetailID = ?"; // WHERE T_BarcodeBarangReceiveOrderPoDetailID = ?";
$qry_update_barcode = $this->db->query($sql_update_barcode, [ // $qry_update_barcode = $this->db->query($sql_update_barcode, [
$stockID, // $stockID,
$detail['ReceiveOrderPoDetailID'] // $detail['ReceiveOrderPoDetailID']
]); // ]);
if (!$qry_update_barcode) { // if (!$qry_update_barcode) {
$this->db->trans_rollback(); // $this->db->trans_rollback();
$this->sys_error_db("[Error] update barcode stockID", $this->db); // $this->sys_error_db("[Error] update barcode stockID", $this->db);
exit; // exit;
} // }
} }
// insert stock card // insert stock card
@@ -2736,6 +2736,47 @@ class ReceiveItemPoInventaris extends MY_Controller
$barcodeID = $this->db->insert_id(); $barcodeID = $this->db->insert_id();
# check if item already in stock #
$sql_cekstock = "SELECT StockID
FROM stock
JOIN warehouse ON WarehouseID = StockWarehouseID
AND WarehouseIsActive = 'Y'
WHERE WarehouseM_BranchID = ?
AND StockItemID = ?
AND StockItemUnitID = ?";
$que_cekstock = $this->db->query($sql_cekstock, [
$user['M_BranchID'],
$item['ReceiveOrderPoItemID'],
$item['ReceiveOrderPoItemUnitID'],
]);
if (!$que_cekstock) {
$this->db->trans_rollback();
$this->sys_error_db("[Error] query cek stock");
exit;
}
$stockID = $que_cekstock->row_array()['StockID'];
# insert stock inventaris #
$sql_stockinventaris = "INSERT INTO stock_inventory (
StockInventoryStockID,
StockInventoryRuanganID,
StockInventoryBarcode,
StockInventoryBranchID,
StockInventoryCreatedUserID
) VALUES (?,?,?,?,?)";
$que_stockinventaris = $this->db->query($sql_stockinventaris, [
$stockID,
$param['ruanganID'],
$noBarcode,
$user['M_BranchID'],
$user['M_UserID']
]);
if (!$que_stockinventaris) {
$this->db->trans_rollback();
$this->sys_error_db("[Error] insert into table stock inventaris");
exit;
}
# insert each inventory handover detail # # insert each inventory handover detail #
$sql_insert_handover_detail = "INSERT INTO asset_handover_detail( $sql_insert_handover_detail = "INSERT INTO asset_handover_detail(
AssetHandoverDetailAssetHandoverID, AssetHandoverDetailAssetHandoverID,

54
scripts/deploy-controllers.sh Executable file
View File

@@ -0,0 +1,54 @@
#!/usr/bin/env bash
set -euo pipefail
REMOTE_HOST="accone.aplikasi.web.id"
LOCAL_PATH="application/controllers/"
REMOTE_PATH="/home/one/project/accone/one-api/application/controllers/"
cd "$(dirname "$0")/.."
if ! command -v rsync >/dev/null 2>&1; then
echo "rsync is required but was not found in PATH." >&2
exit 1
fi
if ! command -v ssh >/dev/null 2>&1; then
echo "ssh is required but was not found in PATH." >&2
exit 1
fi
if ! command -v awk >/dev/null 2>&1; then
echo "awk is required but was not found in PATH." >&2
exit 1
fi
usage() {
echo "Usage: $0 <test|sync> [remote_user]" >&2
echo "Examples:" >&2
echo " $0 test" >&2
echo " $0 sync" >&2
echo " $0 test one" >&2
}
COMMAND="${1:-}"
REMOTE_USER="${2:-one}"
REMOTE="${REMOTE_USER}@${REMOTE_HOST}"
case "$COMMAND" in
test)
echo "Checking SSH connection to ${REMOTE}..."
ssh -o ConnectTimeout=10 "$REMOTE" "test -d '$REMOTE_PATH'"
echo
echo "Files/folders that would be uploaded:"
rsync -rzcin --out-format="%i %n%L" "$LOCAL_PATH" "${REMOTE}:${REMOTE_PATH}" \
| awk '$1 ~ /^</ || $1 ~ /^cd/ { print }'
;;
sync)
rsync -rzcv "$LOCAL_PATH" "${REMOTE}:${REMOTE_PATH}"
;;
*)
usage
exit 1
;;
esac