12 Commits

Author SHA1 Message Date
c125289b92 add: getDaftarAttachment api for purchase order asset 2026-07-09 10:39:28 +07:00
fe5e6dd6cb add: uploadAttachment api 2026-07-09 10:39:28 +07:00
5fd6db863a add: getDataKontrakPoAset api 2026-07-09 10:39:28 +07:00
fc9947bce4 add: getDaftarPoAset api 2026-07-09 10:39:28 +07:00
c296d5598b add: deletePoAsset api 2026-07-09 10:39:28 +07:00
5bd8e038fc add: editPoAsset api 2026-07-09 10:39:28 +07:00
8f07a65485 add: createPoAsset api 2026-07-09 10:39:01 +07:00
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
4 changed files with 330 additions and 281 deletions

View File

@@ -236,17 +236,6 @@ Content-Type: application/json
"poID": 1 "poID": 1
} }
###
// update approval PO — verifikasi manager (level 1)
POST https://{{host}}/mockup/purchase/order/PurchaseOrderAset/updateApprovalPO/
Content-Type: application/json
{
"token": {{token}},
"poID": 1,
"approvelevel": "1"
}
### ###
// get data kontrak po asset // get data kontrak po asset
POST https://{{host}}/mockup/purchase/order/PurchaseOrderAset/getDataKontrakPoAset/ POST https://{{host}}/mockup/purchase/order/PurchaseOrderAset/getDataKontrakPoAset/

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,40 +14,45 @@ 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
SupplierID, SupplierID,
SupplierName SupplierName
FROM supplier FROM supplier
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;
@@ -87,67 +100,70 @@ class PurchaseOrderAset extends MY_Controller {
} }
$sql = "SELECT $sql = "SELECT
PurchaseRequestID, PurchaseRequestID,
PurchaseRequestNumber, PurchaseRequestNumber,
PurchaseRequestDetailID, PurchaseRequestDetailID,
PurchaseRequestFlagID, PurchaseRequestFlagID,
PurchaseRequestFlagM_BranchCode AS BranchCode, PurchaseRequestFlagM_BranchCode AS BranchCode,
PurchaseRequestItemCategoryID AS ItemCategoryID, PurchaseRequestItemCategoryID AS ItemCategoryID,
PurchaseRequestFlagQtyRest - PurchaseRequestFlagQtyProses AS UnprocessFlagQty, PurchaseRequestFlagQtyRest - PurchaseRequestFlagQtyProses AS UnprocessFlagQty,
PurchaseRequestDetailQty AS RequestQty, PurchaseRequestDetailQty AS RequestQty,
PurchaseRequestDetailQty AS OriginalQty, PurchaseRequestDetailQty AS OriginalQty,
M_BranchName, M_BranchName,
M_ItemID, M_ItemID,
M_ItemCode, M_ItemCode,
M_ItemDesc, M_ItemDesc,
ItemUnitID, ItemUnitID,
ItemUnitName, ItemUnitName,
SupplierPricePrice as SupplierPrice SupplierPricePrice as SupplierPrice
FROM purchase_request FROM purchase_request
JOIN purchase_request_detail ON PurchaseRequestDetailPurchaseRequestID = PurchaseRequestID JOIN purchase_request_detail ON PurchaseRequestDetailPurchaseRequestID = PurchaseRequestID
AND PurchaseRequestDetailIsActive = 'Y' AND PurchaseRequestDetailIsActive = 'Y'
AND PurchaseRequestM_BranchCode = ? AND PurchaseRequestM_BranchCode = ?
AND PurchaseRequestItemCategoryID = '3' -- id category item asset AND PurchaseRequestItemCategoryID = '3' -- id category item asset
AND PurchaseRequestNumber LIKE ? AND PurchaseRequestNumber LIKE ?
JOIN purchase_request_flag ON PurchaseRequestFlagPurchaseRequestDetailID = PurchaseRequestDetailID JOIN purchase_request_flag ON PurchaseRequestFlagPurchaseRequestDetailID = PurchaseRequestDetailID
AND PurchaseRequestFlagStatus = 'PO' AND PurchaseRequestFlagStatus = 'PO'
AND PurchaseRequestFlagIsActive = 'Y' AND PurchaseRequestFlagIsActive = 'Y'
JOIN m_item ON M_ItemID = PurchaseRequestDetailM_ItemID JOIN m_item ON M_ItemID = PurchaseRequestDetailM_ItemID
JOIN itemunit ON ItemUnitID = PurchaseRequestDetailItemUnitID JOIN itemunit ON ItemUnitID = PurchaseRequestDetailItemUnitID
JOIN supplier_price ON SupplierPriceSupplierID = ? JOIN supplier_price ON SupplierPriceSupplierID = ?
AND SupplierPriceM_ItemID = M_ItemID AND SupplierPriceM_ItemID = M_ItemID
AND SupplierPriceItemUnitID = ItemUnitID AND SupplierPriceItemUnitID = ItemUnitID
AND SupplierPriceIsActive = 'Y' AND SupplierPriceIsActive = 'Y'
JOIN m_branch ON M_BranchCode = PurchaseRequestFlagM_BranchCode JOIN m_branch ON M_BranchCode = PurchaseRequestFlagM_BranchCode
AND M_BranchIsActive = 'Y' AND M_BranchIsActive = 'Y'
WHERE NOT EXISTS ( WHERE NOT EXISTS (
SELECT 1 SELECT 1
FROM purchase_order_detail FROM purchase_order_detail
JOIN purchase_order ON PurchaseOrderDetailPurchaseOrderID = PurchaseOrderID JOIN purchase_order ON PurchaseOrderDetailPurchaseOrderID = PurchaseOrderID
AND PurchaseOrderStatus = 'Approved' AND PurchaseOrderStatus = 'Approved'
AND PurchaseOrderIsActive = 'Y' AND PurchaseOrderIsActive = 'Y'
AND PurchaseOrderDetailIsActive = 'Y' AND PurchaseOrderDetailIsActive = 'Y'
WHERE PurchaseOrderDetailPurchaseRequestDetailID = PurchaseRequestDetailID WHERE PurchaseOrderDetailPurchaseRequestDetailID = PurchaseRequestDetailID
)"; )";
$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,7 +174,14 @@ 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;
} }
} }
@@ -1102,91 +1125,33 @@ class PurchaseOrderAset extends MY_Controller {
} }
} }
public function updateApprovalPO() {
try {
if (!$this->isLogin) {
$this->sys_error("invalid token");
exit;
}
$this->db->trans_begin();
$para = $this->sys_input;
$user = $this->sys_user;
$approvelevel = $para['approvelevel'];
/* request purchase order */
if ($approvelevel == '0') {
$sql = "UPDATE purchase_order SET
PurchaseOrderStatus = 'Pending',
PurchaseOrderLastUpdated = NOW()
WHERE PurchaseOrderID = ?
AND PurchaseOrderIsActive = 'Y'";
$que = $this->db->query($sql, [$para['poID']]);
if (!$que) {
$this->db->trans_rollback();
$this->sys_error_db("[Error] failed update table purchase order request");
exit;
}
}
/* verifikasi oleh manager */
if ($approvelevel == '1') {
$sql = "UPDATE purchase_order SET
PurchaseOrderApprovedManagerUserID = ?,
PurchaseOrderLastUpdated = NOW()
WHERE PurchaseOrderID = ?
AND PurchaseOrderIsActive = 'Y'";
$que = $this->db->query($sql, [$user['M_UserID'], $para['poID']]);
if (!$que) {
$this->db->trans_rollback();
$this->sys_error_db("[Error] failed update table purchase order verif");
exit;
}
}
/* approval oleh kepala regional */
if ($approvelevel == '2') {
$sql = "UPDATE purchase_order SET
PurchaseOrderStatus = 'Approved',
PurchaseOrderLastUpdated = NOW(),
PurchaseOrderApprovedUserID = ?
WHERE PurchaseOrderID = ?
AND PurchaseOrderIsActive = 'Y'";
$que = $this->db->query($sql, [$user['M_UserID'], $para['poID']]);
if (!$que) {
$this->db->trans_rollback();
$this->sys_error_db("[Error] failed update table purchase order approve");
exit;
}
}
$this->db->trans_commit();
$this->sys_ok("[Success] success update status PO Asset");
} catch (Exception $exc) {
$msg = $exc->getMessage();
$this->sys_error($msg);
}
}
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;
} }
} }

View File

@@ -1514,23 +1514,23 @@ class ReceiveItemPoInventaris extends MY_Controller
# GET DATA RO # # GET DATA RO #
$json_ro_before = $this->getDataROPO($ROID); $json_ro_before = $this->getDataROPO($ROID);
$sql_ro = "SELECT $sql_ro = "SELECT
receive_order_po.*, receive_order_po.*,
DATE_FORMAT(ReceiveOrderPoIDate, '%d-%m-%Y') AS formatedDate, DATE_FORMAT(ReceiveOrderPoIDate, '%d-%m-%Y') AS formatedDate,
CASE CASE
WHEN WarehouseType = 'B' WHEN WarehouseType = 'B'
THEN CONCAT(WarehouseCode,' ', WarehouseName, ' - ', M_BranchName) THEN CONCAT(WarehouseCode,' ', WarehouseName, ' - ', M_BranchName)
WHEN WarehouseType = 'R' WHEN WarehouseType = 'R'
THEN CONCAT(WarehouseCode,' ', WarehouseName, ' - ', S_RegionalName) THEN CONCAT(WarehouseCode,' ', WarehouseName, ' - ', S_RegionalName)
ELSE '' ELSE ''
END WarehouseName, END WarehouseName,
WarehouseID WarehouseID
FROM receive_order_po FROM receive_order_po
JOIN warehouse ON ReceiveOrderPoWarehouseID = WarehouseID JOIN warehouse ON ReceiveOrderPoWarehouseID = WarehouseID
JOIN s_regional ON WarehouseS_RegionalID = S_RegionalID JOIN s_regional ON WarehouseS_RegionalID = S_RegionalID
AND S_RegionalIsActive = 'Y' AND S_RegionalIsActive = 'Y'
LEFT JOIN m_branch ON WarehouseM_BranchID = M_BranchID LEFT JOIN m_branch ON WarehouseM_BranchID = M_BranchID
AND M_BranchIsActive = 'Y' AND M_BranchIsActive = 'Y'
WHERE ReceiveOrderPoID = ?"; WHERE ReceiveOrderPoID = ?";
$que_ro = $this->db->query($sql_ro, [$ROID]); $que_ro = $this->db->query($sql_ro, [$ROID]);
if (!$que_ro) { if (!$que_ro) {
$this->db->trans_rollback(); $this->db->trans_rollback();
@@ -1545,23 +1545,23 @@ class ReceiveItemPoInventaris extends MY_Controller
} }
$sql_detail_ro = "SELECT $sql_detail_ro = "SELECT
receive_order_po_detail.*, receive_order_po_detail.*,
PurchaseOrderID, PurchaseOrderID,
PurchaseOrderNumber, PurchaseOrderNumber,
PurchaseOrderTaxPercentPph, PurchaseOrderTaxPercentPph,
PurchaseOrderTaxPercentPpn, PurchaseOrderTaxPercentPpn,
PurchaseOrderSummaryDiscountAmount as DiscountPerItem, PurchaseOrderSummaryDiscountAmount as DiscountPerItem,
PurchaseOrderSummaryQty as QtyAllPO, PurchaseOrderSummaryQty as QtyAllPO,
PurchaseOrderSummaryTotal as TotalAllPO, PurchaseOrderSummaryTotal as TotalAllPO,
PurchaseOrderDiscountPercent AS DiscPOPercent, PurchaseOrderDiscountPercent AS DiscPOPercent,
PurchaseOrderDiscountAmount AS DiscPORupiah PurchaseOrderDiscountAmount AS DiscPORupiah
FROM receive_order_po_detail FROM receive_order_po_detail
JOIN purchase_order ON ReceiveOrderPoDetailPurchaseOrderID = PurchaseOrderID JOIN purchase_order ON ReceiveOrderPoDetailPurchaseOrderID = PurchaseOrderID
JOIN purchase_order_summary ON ReceiveOrderPoDetailPurchaseOrderSummaryID = PurchaseOrderSummaryID JOIN purchase_order_summary ON ReceiveOrderPoDetailPurchaseOrderSummaryID = PurchaseOrderSummaryID
AND PurchaseOrderSummaryIsActive = 'Y' AND PurchaseOrderSummaryIsActive = 'Y'
WHERE ReceiveOrderPoDetailReceiveOrderPoID = ? WHERE ReceiveOrderPoDetailReceiveOrderPoID = ?
AND ReceiveOrderPoDetailIsActive='Y' AND ReceiveOrderPoDetailIsActive='Y'
GROUP BY ReceiveOrderPoDetailID"; GROUP BY ReceiveOrderPoDetailID";
$que_detail_ro = $this->db->query($sql_detail_ro, [$ROID]); $que_detail_ro = $this->db->query($sql_detail_ro, [$ROID]);
if (!$que_detail_ro) { if (!$que_detail_ro) {
$this->db->trans_rollback(); $this->db->trans_rollback();
@@ -1572,10 +1572,10 @@ class ReceiveItemPoInventaris extends MY_Controller
# UPDATE STATUS RO # # UPDATE STATUS RO #
$sql_update_ro = "UPDATE receive_order_po SET $sql_update_ro = "UPDATE receive_order_po SET
ReceiveOrderPoConfirmed = 'Y', ReceiveOrderPoConfirmed = 'Y',
ReceiveOrderPoConfirmedDate = NOW(), ReceiveOrderPoConfirmedDate = NOW(),
ReceiveOrderPoConfirmedUserID = ? ReceiveOrderPoConfirmedUserID = ?
WHERE ReceiveOrderPoID = ?"; WHERE ReceiveOrderPoID = ?";
$que_update_ro = $this->db->query($sql_update_ro, [$user['M_UserID'], $ROID]); $que_update_ro = $this->db->query($sql_update_ro, [$user['M_UserID'], $ROID]);
if (!$que_update_ro) { if (!$que_update_ro) {
$this->db->trans_rollback(); $this->db->trans_rollback();
@@ -1594,8 +1594,8 @@ class ReceiveItemPoInventaris extends MY_Controller
$jurnal_number = $que_jrnl_num->row_array()['numbering']; $jurnal_number = $que_jrnl_num->row_array()['numbering'];
$sql_periode = "SELECT periodeID FROM periode $sql_periode = "SELECT periodeID FROM periode
WHERE DATE(NOW()) BETWEEN periodeStartDate AND periodeEndDate WHERE DATE(NOW()) BETWEEN periodeStartDate AND periodeEndDate
AND periodeIsActive= 'Y' AND periodeIsClosed = 'N'"; AND periodeIsActive= 'Y' AND periodeIsClosed = 'N'";
$que_periode = $this->db->query($sql_periode, []); $que_periode = $this->db->query($sql_periode, []);
if (!$que_periode) { if (!$que_periode) {
$this->sys_error_db("[Error] get periode", $this->db); $this->sys_error_db("[Error] get periode", $this->db);
@@ -1631,17 +1631,17 @@ class ReceiveItemPoInventaris extends MY_Controller
# INSERT JURNAL HEADER # # INSERT JURNAL HEADER #
$sql_head_jurnal = "INSERT INTO jurnal ( $sql_head_jurnal = "INSERT INTO jurnal (
jurnalM_BranchCompanyID, jurnalM_BranchCompanyID,
JurnalS_RegionalID, JurnalS_RegionalID,
jurnalM_BranchCode, jurnalM_BranchCode,
jurnalperiodeID, jurnalperiodeID,
jurnalNo, jurnalNo,
jurnalTitle, jurnalTitle,
jurnalDescription, jurnalDescription,
jurnalDate, jurnalDate,
jurnalJurnalTypeID, jurnalJurnalTypeID,
jurnalM_UserID jurnalM_UserID
) VALUES (?,?,?,?,?,?,?,NOW(),?,?)"; ) VALUES (?,?,?,?,?,?,?,NOW(),?,?)";
$que_head_jurnal = $this->db->query($sql_head_jurnal, [ $que_head_jurnal = $this->db->query($sql_head_jurnal, [
$user['M_BranchCompanyID'], $user['M_BranchCompanyID'],
$user['S_RegionalID'], $user['S_RegionalID'],
@@ -1668,9 +1668,9 @@ class ReceiveItemPoInventaris extends MY_Controller
foreach ($data_detail_ro as $key => $detail) { foreach ($data_detail_ro as $key => $detail) {
# UPDATE PO Summary # # UPDATE PO Summary #
$sql_posummary = "UPDATE purchase_order_summary SET $sql_posummary = "UPDATE purchase_order_summary SET
PurchaseOrderSummaryQtyReceived = PurchaseOrderSummaryQtyReceived + ? PurchaseOrderSummaryQtyReceived = PurchaseOrderSummaryQtyReceived + ?
WHERE PurchaseOrderSummaryIsActive = 'Y' WHERE PurchaseOrderSummaryIsActive = 'Y'
AND PurchaseOrderSummaryID = ?"; AND PurchaseOrderSummaryID = ?";
$que_posummary = $this->db->query($sql_posummary, [ $que_posummary = $this->db->query($sql_posummary, [
intval($detail['ReceiveOrderPoDetailQty']), intval($detail['ReceiveOrderPoDetailQty']),
$detail['ReceiveOrderPoDetailPurchaseOrderSummaryID'] $detail['ReceiveOrderPoDetailPurchaseOrderSummaryID']
@@ -1862,8 +1862,8 @@ class ReceiveItemPoInventaris extends MY_Controller
// save diskon prorata // save diskon prorata
$sql_save_diskon = "UPDATE receive_order_po_detail SET $sql_save_diskon = "UPDATE receive_order_po_detail SET
ReceiveOrderPoDetailDiskonPoProrata = ? ReceiveOrderPoDetailDiskonPoProrata = ?
WHERE ReceiveOrderPoDetailID = ?"; WHERE ReceiveOrderPoDetailID = ?";
$que_save_diskon = $this->db->query($sql_save_diskon, [ $que_save_diskon = $this->db->query($sql_save_diskon, [
$diskon_prorata_item, $diskon_prorata_item,
$detail['ReceiveOrderPoDetailID'] $detail['ReceiveOrderPoDetailID']
@@ -1898,9 +1898,9 @@ class ReceiveItemPoInventaris extends MY_Controller
// update stock based on batch // update stock based on batch
foreach ($batch_list as $key => $batch) { foreach ($batch_list as $key => $batch) {
$sql_cek_stock = "SELECT * $sql_cek_stock = "SELECT *
FROM stock s FROM stock s
JOIN m_item i ON s.StockItemID = i.M_ItemID JOIN m_item i ON s.StockItemID = i.M_ItemID
WHERE s.StockItemID = ? WHERE s.StockItemID = ?
AND s.StockItemUnitID = ? AND s.StockItemUnitID = ?
AND s.StockWarehouseID = ? AND s.StockWarehouseID = ?
AND i.M_ItemItem_CategoryID = ?"; AND i.M_ItemItem_CategoryID = ?";
@@ -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
@@ -2095,14 +2095,14 @@ class ReceiveItemPoInventaris extends MY_Controller
// insert jurnal tx for GRNI // insert jurnal tx for GRNI
$total_grni = round($total_debet - ($total_discount_item + $total_discount_po), 2) + $ship_cost; $total_grni = round($total_debet - ($total_discount_item + $total_discount_po), 2) + $ship_cost;
$sql_grni = "INSERT INTO jurnal_tx ( $sql_grni = "INSERT INTO jurnal_tx (
jurnalTxJurnalID, jurnalTxJurnalID,
jurnalTxCoaID, jurnalTxCoaID,
jurnalTxDescription, jurnalTxDescription,
jurnalTxDebit, jurnalTxDebit,
jurnalTxCredit, jurnalTxCredit,
jurnalTxM_UserID jurnalTxM_UserID
) SELECT ?, coaID, coaDescription, 0, ?, ? ) SELECT ?, coaID, coaDescription, 0, ?, ?
FROM coa WHERE coaAccountNo = '2110100030' LIMIT 1"; FROM coa WHERE coaAccountNo = '2110100030' LIMIT 1";
$que_grni = $this->db->query($sql_grni, [$jurnal_ID, $total_grni, $user['M_UserID']]); $que_grni = $this->db->query($sql_grni, [$jurnal_ID, $total_grni, $user['M_UserID']]);
if (!$que_grni) { if (!$que_grni) {
$this->db->trans_rollback(); $this->db->trans_rollback();
@@ -2112,13 +2112,13 @@ class ReceiveItemPoInventaris extends MY_Controller
$grni_jurnal_id = $this->db->insert_id(); $grni_jurnal_id = $this->db->insert_id();
$sql_addon_grni = "INSERT INTO jurnal_addon ( $sql_addon_grni = "INSERT INTO jurnal_addon (
jurnalAddOnJurnalID, jurnalAddOnJurnalID,
jurnalAddOnJurnalTxID, jurnalAddOnJurnalTxID,
jurnalAddOnCode, jurnalAddOnCode,
jurnalAddOnValue, jurnalAddOnValue,
jurnalAddOnCreated, jurnalAddOnCreated,
jurnalAddOnCreatedUserID jurnalAddOnCreatedUserID
) VALUES (?,?,'RONUMB',?,NOW(),?)"; ) VALUES (?,?,'RONUMB',?,NOW(),?)";
$que_addon_grni = $this->db->query($sql_addon_grni, [ $que_addon_grni = $this->db->query($sql_addon_grni, [
$jurnal_ID, $jurnal_ID,
$grni_jurnal_id, $grni_jurnal_id,
@@ -2344,22 +2344,22 @@ class ReceiveItemPoInventaris extends MY_Controller
$this->db->trans_begin(); $this->db->trans_begin();
$sql_insert = "INSERT INTO receive_order_po_inspeksi ( $sql_insert = "INSERT INTO receive_order_po_inspeksi (
ReceiveOrderPoInspeksiReceiveOrderPoDetailID, ReceiveOrderPoInspeksiReceiveOrderPoDetailID,
ReceiveOrderPoInspeksiQtyPesan, ReceiveOrderPoInspeksiQtyPesan,
ReceiveOrderPoInspeksiQtyActual, ReceiveOrderPoInspeksiQtyActual,
ReceiveOrderPoInspeksiPricePesan, ReceiveOrderPoInspeksiPricePesan,
ReceiveOrderPoInspeksiPriceActual, ReceiveOrderPoInspeksiPriceActual,
ReceiveOrderPoInspeksiDatePesan, ReceiveOrderPoInspeksiDatePesan,
ReceiveOrderPoInspeksiDateActual, ReceiveOrderPoInspeksiDateActual,
ReceiveOrderPoInspeksiExpireDate, ReceiveOrderPoInspeksiExpireDate,
ReceiveOrderPoInspeksiKeadaanKemasan, ReceiveOrderPoInspeksiKeadaanKemasan,
ReceiveOrderPoInspeksiKondisiPengiriman, ReceiveOrderPoInspeksiKondisiPengiriman,
ReceiveOrderPoInspeksiSimpulan, ReceiveOrderPoInspeksiSimpulan,
ReceiveOrderPoInspeksiCatatan, ReceiveOrderPoInspeksiCatatan,
ReceiveOrderPoInspeksiStaffPenerima, ReceiveOrderPoInspeksiStaffPenerima,
ReceiveOrderPoInspeksiStaffPengirim, ReceiveOrderPoInspeksiStaffPengirim,
ReceiveOrderPoInspeksiUserID ReceiveOrderPoInspeksiUserID
) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; ) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
$que_insert = $this->db->query($sql_insert, [ $que_insert = $this->db->query($sql_insert, [
$ROdetailID, $ROdetailID,
$inspeksi['qty_po'], $inspeksi['qty_po'],
@@ -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