Compare commits
5 Commits
po-asset-c
...
b7a00bc242
| Author | SHA1 | Date | |
|---|---|---|---|
| b7a00bc242 | |||
| 13af691645 | |||
| 775a390bcb | |||
| 0d1dcb1b5e | |||
| 22719de06f |
@@ -172,302 +172,6 @@ Content-Type: application/json
|
||||
"ID": ""
|
||||
}
|
||||
|
||||
###
|
||||
// upload attachment — requires multipart/form-data with file(s)
|
||||
// Gunakan REST Client atau Postman. Contoh format:
|
||||
// POST https://{{host}}/mockup/purchase/order/PurchaseOrderAset/uploadAttachment/
|
||||
// Content-Type: multipart/form-data; boundary=----boundary
|
||||
//
|
||||
// ------boundary
|
||||
// Content-Disposition: form-data; name="token"
|
||||
//
|
||||
// eyJ...
|
||||
// ------boundary
|
||||
// Content-Disposition: form-data; name="ponumber"
|
||||
//
|
||||
// PO24070001
|
||||
// ------boundary
|
||||
// Content-Disposition: form-data; name="poID"
|
||||
//
|
||||
// 1
|
||||
// ------boundary
|
||||
// Content-Disposition: form-data; name="contractID"
|
||||
//
|
||||
// 1
|
||||
// ------boundary
|
||||
// Content-Disposition: form-data; name="files"; filename="foto1.jpg"
|
||||
// Content-Type: image/jpeg
|
||||
//
|
||||
// < /path/to/foto1.jpg
|
||||
// ------boundary
|
||||
// Content-Disposition: form-data; name="files"; filename="foto2.jpg"
|
||||
// Content-Type: image/jpeg
|
||||
//
|
||||
// < /path/to/foto2.jpg
|
||||
// ------boundary--
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"token": {{token}}
|
||||
}
|
||||
|
||||
###
|
||||
// listing po asset
|
||||
POST https://{{host}}/mockup/purchase/order/PurchaseOrderAset/getDaftarPoAset/
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"token": {{token}},
|
||||
"search": "",
|
||||
"currpage": 1,
|
||||
"startdate": "2026-01-01",
|
||||
"enddate": "2026-12-31",
|
||||
"status": "All"
|
||||
}
|
||||
|
||||
###
|
||||
// get daftar attachment
|
||||
POST https://{{host}}/mockup/purchase/order/PurchaseOrderAset/getDaftarAttachment/
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"token": {{token}},
|
||||
"contractID": 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
|
||||
POST https://{{host}}/mockup/purchase/order/PurchaseOrderAset/getDataKontrakPoAset/
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"token": {{token}},
|
||||
"poID": 1
|
||||
}
|
||||
|
||||
###
|
||||
// create po asset
|
||||
POST https://{{host}}/mockup/purchase/order/PurchaseOrderAset/createPoAsset/
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"token": {{token}},
|
||||
"podate": "2026-07-09",
|
||||
"reference": "REF-ASSET-001",
|
||||
"supplierID": 1,
|
||||
"typepajak": "nominal",
|
||||
"valuepajak": 0,
|
||||
"typediskon": "nominal",
|
||||
"valuediskon": 0,
|
||||
"catatan": "PO Asset Test",
|
||||
"summary": {
|
||||
"subtotal": 775000000,
|
||||
"diskon": 37500000,
|
||||
"pajak": 81125000,
|
||||
"total": 818625000
|
||||
},
|
||||
"detail": [
|
||||
{
|
||||
"M_ItemID": 123,
|
||||
"ItemUnitID": 1,
|
||||
"RequestQty": 2,
|
||||
"SupplierPrice": 75000000,
|
||||
"TempTotal": 150000000,
|
||||
"DiskonType": "R",
|
||||
"DiskonAmount": 0,
|
||||
"detail": [
|
||||
{
|
||||
"PurchaseRequestID": 1,
|
||||
"PurchaseRequestDetailID": 1,
|
||||
"PurchaseRequestFlagID": 1,
|
||||
"M_ItemID": 123,
|
||||
"ItemUnitID": 1,
|
||||
"OriginalQty": 2,
|
||||
"RequestQty": 2,
|
||||
"SupplierPrice": 75000000
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"M_ItemID": 124,
|
||||
"ItemUnitID": 2,
|
||||
"RequestQty": 5,
|
||||
"SupplierPrice": 25000000,
|
||||
"TempTotal": 125000000,
|
||||
"DiskonType": "P",
|
||||
"DiskonAmount": 10,
|
||||
"detail": [
|
||||
{
|
||||
"PurchaseRequestID": 2,
|
||||
"PurchaseRequestDetailID": 2,
|
||||
"PurchaseRequestFlagID": 2,
|
||||
"M_ItemID": 124,
|
||||
"ItemUnitID": 2,
|
||||
"OriginalQty": 3,
|
||||
"RequestQty": 3,
|
||||
"SupplierPrice": 25000000
|
||||
},
|
||||
{
|
||||
"PurchaseRequestID": 2,
|
||||
"PurchaseRequestDetailID": 3,
|
||||
"PurchaseRequestFlagID": 3,
|
||||
"M_ItemID": 124,
|
||||
"ItemUnitID": 2,
|
||||
"OriginalQty": 2,
|
||||
"RequestQty": 2,
|
||||
"SupplierPrice": 25000000
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"M_ItemID": 125,
|
||||
"ItemUnitID": 1,
|
||||
"RequestQty": 1,
|
||||
"SupplierPrice": 500000000,
|
||||
"TempTotal": 500000000,
|
||||
"DiskonType": "R",
|
||||
"DiskonAmount": 25000000,
|
||||
"detail": [
|
||||
{
|
||||
"PurchaseRequestID": 3,
|
||||
"PurchaseRequestDetailID": 4,
|
||||
"PurchaseRequestFlagID": 4,
|
||||
"M_ItemID": 125,
|
||||
"ItemUnitID": 1,
|
||||
"OriginalQty": 1,
|
||||
"RequestQty": 1,
|
||||
"SupplierPrice": 500000000
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"assetAttachmentID": null,
|
||||
"contractName": "Kontrak Pengadaan Mesin X",
|
||||
"contractDate": "2026-07-09",
|
||||
"contractStart": "2026-07-09",
|
||||
"contractEnd": "2027-07-09",
|
||||
"contractDuration": 12,
|
||||
"installmentNumber": 12,
|
||||
"installmentDate": 1,
|
||||
"installmentPayAmount": 12500000,
|
||||
"installmentDownPaymentType": "nominal",
|
||||
"installmentDownPayment": 5000000
|
||||
}
|
||||
|
||||
###
|
||||
// edit po asset
|
||||
POST https://{{host}}/mockup/purchase/order/PurchaseOrderAset/editPoAsset/
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"token": {{token}},
|
||||
"PurchaseOrderID": 1,
|
||||
"PurchaseOrderAssetContractID": 1,
|
||||
"podate": "2026-07-09",
|
||||
"reference": "REF-ASSET-001-UPDATED",
|
||||
"supplierID": 1,
|
||||
"typepajak": "percent",
|
||||
"valuepajak": 11,
|
||||
"typediskon": "nominal",
|
||||
"valuediskon": 0,
|
||||
"catatan": "PO Asset Updated",
|
||||
"summary": {
|
||||
"subtotal": 775000000,
|
||||
"diskon": 0,
|
||||
"pajak": 85250000,
|
||||
"total": 860250000
|
||||
},
|
||||
"detail": [
|
||||
{
|
||||
"M_ItemID": 123,
|
||||
"ItemUnitID": 1,
|
||||
"RequestQty": 3,
|
||||
"SupplierPrice": 75000000,
|
||||
"TempTotal": 225000000,
|
||||
"DiskonType": "R",
|
||||
"DiskonAmount": 0,
|
||||
"detail": [
|
||||
{
|
||||
"PurchaseRequestID": 1,
|
||||
"PurchaseRequestDetailID": 1,
|
||||
"PurchaseRequestFlagID": 1,
|
||||
"M_ItemID": 123,
|
||||
"ItemUnitID": 1,
|
||||
"OriginalQty": 3,
|
||||
"RequestQty": 3,
|
||||
"SupplierPrice": 75000000
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"M_ItemID": 124,
|
||||
"ItemUnitID": 2,
|
||||
"RequestQty": 5,
|
||||
"SupplierPrice": 25000000,
|
||||
"TempTotal": 125000000,
|
||||
"DiskonType": "R",
|
||||
"DiskonAmount": 0,
|
||||
"detail": [
|
||||
{
|
||||
"PurchaseRequestID": 2,
|
||||
"PurchaseRequestDetailID": 2,
|
||||
"PurchaseRequestFlagID": 2,
|
||||
"M_ItemID": 124,
|
||||
"ItemUnitID": 2,
|
||||
"OriginalQty": 3,
|
||||
"RequestQty": 3,
|
||||
"SupplierPrice": 25000000
|
||||
},
|
||||
{
|
||||
"PurchaseRequestID": 2,
|
||||
"PurchaseRequestDetailID": 3,
|
||||
"PurchaseRequestFlagID": 3,
|
||||
"M_ItemID": 124,
|
||||
"ItemUnitID": 2,
|
||||
"OriginalQty": 2,
|
||||
"RequestQty": 2,
|
||||
"SupplierPrice": 25000000
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"assetAttachmentID": 1,
|
||||
"contractName": "Kontrak Pengadaan Mesin X - Revisi",
|
||||
"contractDate": "2026-07-10",
|
||||
"contractStart": "2026-07-10",
|
||||
"contractEnd": "2027-10-10",
|
||||
"contractDuration": 15,
|
||||
"installmentNumber": 15,
|
||||
"installmentDate": 5,
|
||||
"installmentPayAmount": 15000000,
|
||||
"installmentDownPaymentType": "persen",
|
||||
"installmentDownPayment": 20
|
||||
}
|
||||
|
||||
###
|
||||
// delete po asset
|
||||
POST https://{{host}}/mockup/purchase/order/PurchaseOrderAset/deletePoAsset/
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"token": {{token}},
|
||||
"poID": 1,
|
||||
"contractID": 1,
|
||||
"ponumber": "PO24070001"
|
||||
}
|
||||
|
||||
### Test isValidMultiple Warehouse
|
||||
### Should return True karena UnitRequest = UnitPurchase
|
||||
GET https://{{host}}/mockup/purchase/order/PurchaseOrder/isValidMultipleWarehouse/
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1946,18 +1946,18 @@ class ReceiveItemPoInventaris extends MY_Controller
|
||||
}
|
||||
|
||||
// insert stockid barcode barang
|
||||
$sql_update_barcode = "UPDATE t_barcode_barang SET
|
||||
T_BarcodeBarangStockID = ?
|
||||
WHERE T_BarcodeBarangReceiveOrderPoDetailID = ?";
|
||||
$qry_update_barcode = $this->db->query($sql_update_barcode, [
|
||||
$stock_ID,
|
||||
$detail['ReceiveOrderPoDetailID']
|
||||
]);
|
||||
if (!$qry_update_barcode) {
|
||||
$this->db->trans_rollback();
|
||||
$this->sys_error_db("[Error] update barcode stockID", $this->db);
|
||||
exit;
|
||||
}
|
||||
// $sql_update_barcode = "UPDATE t_barcode_barang SET
|
||||
// T_BarcodeBarangStockID = ?
|
||||
// WHERE T_BarcodeBarangReceiveOrderPoDetailID = ?";
|
||||
// $qry_update_barcode = $this->db->query($sql_update_barcode, [
|
||||
// $stock_ID,
|
||||
// $detail['ReceiveOrderPoDetailID']
|
||||
// ]);
|
||||
// if (!$qry_update_barcode) {
|
||||
// $this->db->trans_rollback();
|
||||
// $this->sys_error_db("[Error] update barcode stockID", $this->db);
|
||||
// exit;
|
||||
// }
|
||||
} else {
|
||||
$sql_insert_stock = "INSERT INTO stock (
|
||||
StockWarehouseAlmariID,
|
||||
@@ -1990,18 +1990,18 @@ class ReceiveItemPoInventaris extends MY_Controller
|
||||
$stock_qty_end = intval($batch['qty']);
|
||||
|
||||
// insert stockid barcode barang
|
||||
$sql_update_barcode = "UPDATE t_barcode_barang SET
|
||||
T_BarcodeBarangStockID = ?
|
||||
WHERE T_BarcodeBarangReceiveOrderPoDetailID = ?";
|
||||
$qry_update_barcode = $this->db->query($sql_update_barcode, [
|
||||
$stockID,
|
||||
$detail['ReceiveOrderPoDetailID']
|
||||
]);
|
||||
if (!$qry_update_barcode) {
|
||||
$this->db->trans_rollback();
|
||||
$this->sys_error_db("[Error] update barcode stockID", $this->db);
|
||||
exit;
|
||||
}
|
||||
// $sql_update_barcode = "UPDATE t_barcode_barang SET
|
||||
// T_BarcodeBarangStockID = ?
|
||||
// WHERE T_BarcodeBarangReceiveOrderPoDetailID = ?";
|
||||
// $qry_update_barcode = $this->db->query($sql_update_barcode, [
|
||||
// $stockID,
|
||||
// $detail['ReceiveOrderPoDetailID']
|
||||
// ]);
|
||||
// if (!$qry_update_barcode) {
|
||||
// $this->db->trans_rollback();
|
||||
// $this->sys_error_db("[Error] update barcode stockID", $this->db);
|
||||
// exit;
|
||||
// }
|
||||
}
|
||||
|
||||
// insert stock card
|
||||
@@ -2736,6 +2736,47 @@ class ReceiveItemPoInventaris extends MY_Controller
|
||||
|
||||
$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 #
|
||||
$sql_insert_handover_detail = "INSERT INTO asset_handover_detail(
|
||||
AssetHandoverDetailAssetHandoverID,
|
||||
|
||||
54
scripts/deploy-controllers.sh
Executable file
54
scripts/deploy-controllers.sh
Executable 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
|
||||
Reference in New Issue
Block a user