24 Commits

Author SHA1 Message Date
33666a2f5f add: inventaris item coa mapping API 2026-07-09 16:30:53 +07:00
b29ba9f225 add: inventaris coa mapping API 2026-07-09 15:47:24 +07:00
c83c42698a delete: empty function 2026-07-09 11:36:32 +07:00
009aff7d44 Merge branch 'po-asset-crud' into develop
# Conflicts:
#	application/controllers/mockup/purchase/order/PurchaseOrder.http
#	application/controllers/mockup/purchase/order/PurchaseOrderAset.php
2026-07-09 11:29:36 +07:00
6dbe0e400b remove workflow add scripts compare file and upload to server 2026-07-09 11:25:16 +07:00
0ea56f09fa add parameter ssh key passphrase to workflow 2026-07-09 11:25:16 +07:00
a6412c9688 add workflow auto update to server 2026-07-09 11:25:16 +07:00
bcb553ea56 add query insert into table stock_inventory in func savehandover receiveitempo inventaris 2026-07-09 11:25:16 +07:00
2874fab71d add api file po asset, api receive item inventaris add insert into table stock_inventaris 2026-07-09 11:25:16 +07:00
752c372c2f add: updateApprovalPO api in purchase order aset 2026-07-09 11:09:44 +07:00
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
7e88cf247b add: getDaftarAttachment api for purchase order asset 2026-07-09 10:34:26 +07:00
7af9fb2ca4 add: uploadAttachment api 2026-07-09 10:27:50 +07:00
77fc97e964 add: getDataKontrakPoAset api 2026-07-09 10:16:03 +07:00
834f23f26e add: getDaftarPoAset api 2026-07-09 10:11:28 +07:00
dc88589c78 add: deletePoAsset api 2026-07-09 10:04:43 +07:00
3871a680dd add: editPoAsset api 2026-07-09 09:54:26 +07:00
9c87e9ce25 add: createPoAsset api 2026-07-09 09:39:11 +07:00
4 changed files with 1871 additions and 124 deletions

View File

@@ -0,0 +1,113 @@
@token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJNX1VzZXJJRCI6IjM4MCIsIk1fVXNlclVzZXJuYW1lIjoicmVnc2J5IiwiTV9Vc2VyR3JvdXBEYXNoYm9hcmQiOiJvbmUtdWlcL3Rlc3RcL3Z1ZXhcL2FjYy1vbmUtanVybmFsXC8iLCJNX1VzZXJEZWZhdWx0VF9TYW1wbGVTdGF0aW9uSUQiOiIwIiwiTV9TdGFmZk5hbWUiOiJTdGFmZiBSZWdpb25hbCIsImlzX2NvdXJpZXIiOiJOIiwidGltZV9hdXRvbG9nb3V0IjoiMTIwIiwiTV9Vc2VyTG9jYXRpb25JRCI6IjM3IiwiTV9Vc2VyTG9jYXRpb25GbGFnIjoiUiIsIlNfUmVnaW9uYWxOYW1lIjoiU3VyYWJheWEgUmF5YSIsIlNfUmVnaW9uYWxJRCI6IjYiLCJNX0JyYW5jaE5hbWUiOiIiLCJNX0JyYW5jaENvZGUiOiIiLCJNX0JyYW5jaElEIjoiMCIsImxvZ2luTGV2ZWwiOiJyZWdpb25hbCIsIk1fQnJhbmNoQ29tcGFueUlEIjoiMSIsIk1fQnJhbmNoQ29tcGFueU5hbWUiOiJQVCBQUkFNSVRBIiwiaXAiOiIxMzkuMTk1LjEyMi4yMzUiLCJhZ2VudCI6Ik1vemlsbGFcLzUuMCAoWDExOyBMaW51eCB4ODZfNjQ7IHJ2OjEzNy4wKSBHZWNrb1wvMjAxMDAxMDEgRmlyZWZveFwvMTM3LjAiLCJ2ZXJzaW9uIjoidjIiLCJsYXN0LWxvZ2luIjoiMjAyNS0wNi0wNCAxMzoyMDowNSIsIk1fU2F0ZWxsaXRlSUQiOjB9.hm6JtstjaQOzb7oDSXQ-oMWuX_jFQZH-HDr3r3OzPac"
@host = accone.aplikasi.web.id/one-api
###
// create inventaris coa mapping
POST https://{{host}}/map/InventarisCoaMapping/createInvCoaMapping/
Content-Type: application/json
{
"token": {{token}},
"M_InventarisGolID": 1,
"CoaInventarisID": 101,
"CoaHutangID": 102,
"CoaPembelianID": 103,
"CoaBebanPenyusutanID": 104,
"CoaAkumulasiPenyusutanID": 105,
"CoaLabaPelepasanID": 106,
"CoaRugiPelepasanID": 107
}
###
// get inventaris coa mapping by ID
POST https://{{host}}/map/InventarisCoaMapping/getInvCoaMapping/
Content-Type: application/json
{
"token": {{token}},
"M_InventarisCoaMappingID": 1
}
###
// edit inventaris coa mapping
POST https://{{host}}/map/InventarisCoaMapping/editInvCoaMapping/
Content-Type: application/json
{
"token": {{token}},
"M_InventarisCoaMappingID": 1,
"M_InventarisGolID": 2,
"CoaInventarisID": 201,
"CoaHutangID": 202,
"CoaPembelianID": 203,
"CoaBebanPenyusutanID": 204,
"CoaAkumulasiPenyusutanID": 205,
"CoaLabaPelepasanID": 206,
"CoaRugiPelepasanID": 207
}
###
// delete inventaris coa mapping
POST https://{{host}}/map/InventarisCoaMapping/deleteInvCoaMapping/
Content-Type: application/json
{
"token": {{token}},
"M_InventarisCoaMappingID": 1
}
###
// create inventaris item coa mapping
POST https://{{host}}/map/InventarisCoaMapping/createInvItemCoaMapping/
Content-Type: application/json
{
"token": {{token}},
"M_ItemID": 10,
"CoaInventarisID": 201,
"CoaHutangID": 202,
"CoaPembelianID": 203,
"CoaBebanPenyusutanID": 204,
"CoaAkumulasiPenyusutanID": 205,
"CoaLabaPelepasanID": 206,
"CoaRugiPelepasanID": 207
}
###
// get inventaris item coa mapping by ID
POST https://{{host}}/map/InventarisCoaMapping/getInvItemCoaMapping/
Content-Type: application/json
{
"token": {{token}},
"M_InventarisItemCoaMappingID": 1
}
###
// edit inventaris item coa mapping
POST https://{{host}}/map/InventarisCoaMapping/editInvItemCoaMapping/
Content-Type: application/json
{
"token": {{token}},
"M_InventarisItemCoaMappingID": 1,
"M_ItemID": 11,
"CoaInventarisID": 301,
"CoaHutangID": 302,
"CoaPembelianID": 303,
"CoaBebanPenyusutanID": 304,
"CoaAkumulasiPenyusutanID": 305,
"CoaLabaPelepasanID": 306,
"CoaRugiPelepasanID": 307
}
###
// delete inventaris item coa mapping
POST https://{{host}}/map/InventarisCoaMapping/deleteInvItemCoaMapping/
Content-Type: application/json
{
"token": {{token}},
"M_InventarisItemCoaMappingID": 1
}

View File

@@ -0,0 +1,361 @@
<?php
class InventarisCoaMapping extends MY_Controller {
var $db;
public function index() {
echo "Inventaris COA Mapping API";
}
public function __construct()
{
parent::__construct();
}
## MUTATIONS ##
public function createInvCoaMapping() {
try {
if (!$this->isLogin) {
$this->sys_error("invalid token");
exit;
}
$this->db->trans_begin();
$para = $this->sys_input;
$user = $this->sys_user;
$sql = "INSERT INTO m_inventaris_coa_mapping (
M_InventarisCoaMappingM_InventarisGolID,
M_InventarisCoaMappingCoaInventarisID,
M_InventarisCoaMappingCoaHutangID,
M_InventarisCoaMappingCoaPembelianID,
M_InventarisCoaMappingCoaBebanPenyusutanID,
M_InventarisCoaMappingCoaAkumulasiPenyusutanID,
M_InventarisCoaMappingCoaLabaPelepasanID,
M_InventarisCoaMappingCoaRugiPelepasanID,
M_InventarisCoaMappingCreatedUserID,
M_InventarisCoaMappingCreated,
M_InventarisCoaMappingLastUpdated
) VALUES (?,?,?,?,?,?,?,?,?,NOW(),NOW())";
$query = $this->db->query($sql, [
$para['M_InventarisGolID'],
$para['CoaInventarisID'],
$para['CoaHutangID'],
$para['CoaPembelianID'],
$para['CoaBebanPenyusutanID'],
$para['CoaAkumulasiPenyusutanID'],
$para['CoaLabaPelepasanID'],
$para['CoaRugiPelepasanID'],
$user['M_UserID']
]);
if (!$query) {
$this->db->trans_rollback();
$this->sys_error_db("[Error] insert into table m_inventaris_coa_mapping");
exit;
}
$insertID = $this->db->insert_id();
$this->db->trans_commit();
$this->sys_ok($insertID);
} catch (Exception $exc) {
$msg = $exc->getMessage();
$this->sys_error($msg);
}
}
## QUERY ##
public function getInvCoaMapping() {
try {
if (!$this->isLogin) {
$this->sys_error("invalid token");
exit;
}
$para = $this->sys_input;
$sql = "SELECT
M_InventarisCoaMappingID,
M_InventarisCoaMappingM_InventarisGolID,
M_InventarisCoaMappingCoaInventarisID,
M_InventarisCoaMappingCoaHutangID,
M_InventarisCoaMappingCoaPembelianID,
M_InventarisCoaMappingCoaBebanPenyusutanID,
M_InventarisCoaMappingCoaAkumulasiPenyusutanID,
M_InventarisCoaMappingCoaLabaPelepasanID,
M_InventarisCoaMappingCoaRugiPelepasanID,
M_InventarisCoaMappingCreatedUserID,
M_InventarisCoaMappingCreated,
M_InventarisCoaMappingLastUpdated
FROM m_inventaris_coa_mapping
WHERE M_InventarisCoaMappingIsActive = 'Y'
AND M_InventarisCoaMappingID = ?";
$query = $this->db->query($sql, [$para['M_InventarisCoaMappingID']]);
if (!$query) {
$this->sys_error_db("[Error] get data m_inventaris_coa_mapping");
exit;
}
$data = $query->row_array();
$this->sys_ok($data);
} catch (Exception $exc) {
$msg = $exc->getMessage();
$this->sys_error($msg);
}
}
## MUTATIONS ##
public function editInvCoaMapping() {
try {
if (!$this->isLogin) {
$this->sys_error("invalid token");
exit;
}
$this->db->trans_begin();
$para = $this->sys_input;
$user = $this->sys_user;
$sql = "UPDATE m_inventaris_coa_mapping SET
M_InventarisCoaMappingM_InventarisGolID = ?,
M_InventarisCoaMappingCoaInventarisID = ?,
M_InventarisCoaMappingCoaHutangID = ?,
M_InventarisCoaMappingCoaPembelianID = ?,
M_InventarisCoaMappingCoaBebanPenyusutanID = ?,
M_InventarisCoaMappingCoaAkumulasiPenyusutanID = ?,
M_InventarisCoaMappingCoaLabaPelepasanID = ?,
M_InventarisCoaMappingCoaRugiPelepasanID = ?,
M_InventarisCoaMappingLastUpdated = NOW()
WHERE M_InventarisCoaMappingIsActive = 'Y'
AND M_InventarisCoaMappingID = ?";
$query = $this->db->query($sql, [
$para['M_InventarisGolID'],
$para['CoaInventarisID'],
$para['CoaHutangID'],
$para['CoaPembelianID'],
$para['CoaBebanPenyusutanID'],
$para['CoaAkumulasiPenyusutanID'],
$para['CoaLabaPelepasanID'],
$para['CoaRugiPelepasanID'],
$para['M_InventarisCoaMappingID']
]);
if (!$query) {
$this->db->trans_rollback();
$this->sys_error_db("[Error] update table m_inventaris_coa_mapping");
exit;
}
$this->db->trans_commit();
$this->sys_ok("[Success] update data inventaris coa mapping");
} catch (Exception $exc) {
$msg = $exc->getMessage();
$this->sys_error($msg);
}
}
public function deleteInvCoaMapping() {
try {
if (!$this->isLogin) {
$this->sys_error("invalid token");
exit;
}
$this->db->trans_begin();
$para = $this->sys_input;
$sql = "UPDATE m_inventaris_coa_mapping SET
M_InventarisCoaMappingIsActive = 'N',
M_InventarisCoaMappingLastUpdated = NOW()
WHERE M_InventarisCoaMappingIsActive = 'Y'
AND M_InventarisCoaMappingID = ?";
$query = $this->db->query($sql, [$para['M_InventarisCoaMappingID']]);
if (!$query) {
$this->db->trans_rollback();
$this->sys_error_db("[Error] soft delete data m_inventaris_coa_mapping");
exit;
}
$this->db->trans_commit();
$this->sys_ok("[Success] delete data inventaris coa mapping");
} catch (Exception $exc) {
$msg = $exc->getMessage();
$this->sys_error($msg);
}
}
## MUTATIONS ITEM ##
public function createInvItemCoaMapping() {
try {
if (!$this->isLogin) {
$this->sys_error("invalid token");
exit;
}
$this->db->trans_begin();
$para = $this->sys_input;
$user = $this->sys_user;
$sql = "INSERT INTO m_inventaris_item_coa_mapping (
M_InventarisItemCoaMappingM_ItemID,
M_InventarisItemCoaMappingCoaInventarisID,
M_InventarisItemCoaMappingCoaHutangID,
M_InventarisItemCoaMappingCoaPembelianID,
M_InventarisItemCoaMappingCoaBebanPenyusutanID,
M_InventarisItemCoaMappingCoaAkumulasiPenyusutanID,
M_InventarisItemCoaMappingCoaLabaPelepasanID,
M_InventarisItemCoaMappingCoaRugiPelepasanID,
M_InventarisItemCoaMappingCreatedUserID,
M_InventarisItemCoaMappingCreated,
M_InventarisItemCoaMappingLastUpdated
) VALUES (?,?,?,?,?,?,?,?,?,NOW(),NOW())";
$query = $this->db->query($sql, [
$para['M_ItemID'],
$para['CoaInventarisID'],
$para['CoaHutangID'],
$para['CoaPembelianID'],
$para['CoaBebanPenyusutanID'],
$para['CoaAkumulasiPenyusutanID'],
$para['CoaLabaPelepasanID'],
$para['CoaRugiPelepasanID'],
$user['M_UserID']
]);
if (!$query) {
$this->db->trans_rollback();
$this->sys_error_db("[Error] insert into table m_inventaris_item_coa_mapping");
exit;
}
$insertID = $this->db->insert_id();
$this->db->trans_commit();
$this->sys_ok($insertID);
} catch (Exception $exc) {
$msg = $exc->getMessage();
$this->sys_error($msg);
}
}
## QUERY ITEM ##
public function getInvItemCoaMapping() {
try {
if (!$this->isLogin) {
$this->sys_error("invalid token");
exit;
}
$para = $this->sys_input;
$sql = "SELECT
M_InventarisItemCoaMappingID,
M_InventarisItemCoaMappingM_ItemID,
M_InventarisItemCoaMappingCoaInventarisID,
M_InventarisItemCoaMappingCoaHutangID,
M_InventarisItemCoaMappingCoaPembelianID,
M_InventarisItemCoaMappingCoaBebanPenyusutanID,
M_InventarisItemCoaMappingCoaAkumulasiPenyusutanID,
M_InventarisItemCoaMappingCoaLabaPelepasanID,
M_InventarisItemCoaMappingCoaRugiPelepasanID,
M_InventarisItemCoaMappingCreatedUserID,
M_InventarisItemCoaMappingCreated,
M_InventarisItemCoaMappingLastUpdated
FROM m_inventaris_item_coa_mapping
WHERE M_InventarisItemCoaMappingIsActive = 'Y'
AND M_InventarisItemCoaMappingID = ?";
$query = $this->db->query($sql, [$para['M_InventarisItemCoaMappingID']]);
if (!$query) {
$this->sys_error_db("[Error] get data m_inventaris_item_coa_mapping");
exit;
}
$data = $query->row_array();
$this->sys_ok($data);
} catch (Exception $exc) {
$msg = $exc->getMessage();
$this->sys_error($msg);
}
}
## MUTATIONS ITEM ##
public function editInvItemCoaMapping() {
try {
if (!$this->isLogin) {
$this->sys_error("invalid token");
exit;
}
$this->db->trans_begin();
$para = $this->sys_input;
$user = $this->sys_user;
$sql = "UPDATE m_inventaris_item_coa_mapping SET
M_InventarisItemCoaMappingM_ItemID = ?,
M_InventarisItemCoaMappingCoaInventarisID = ?,
M_InventarisItemCoaMappingCoaHutangID = ?,
M_InventarisItemCoaMappingCoaPembelianID = ?,
M_InventarisItemCoaMappingCoaBebanPenyusutanID = ?,
M_InventarisItemCoaMappingCoaAkumulasiPenyusutanID = ?,
M_InventarisItemCoaMappingCoaLabaPelepasanID = ?,
M_InventarisItemCoaMappingCoaRugiPelepasanID = ?,
M_InventarisItemCoaMappingLastUpdated = NOW()
WHERE M_InventarisItemCoaMappingIsActive = 'Y'
AND M_InventarisItemCoaMappingID = ?";
$query = $this->db->query($sql, [
$para['M_ItemID'],
$para['CoaInventarisID'],
$para['CoaHutangID'],
$para['CoaPembelianID'],
$para['CoaBebanPenyusutanID'],
$para['CoaAkumulasiPenyusutanID'],
$para['CoaLabaPelepasanID'],
$para['CoaRugiPelepasanID'],
$para['M_InventarisItemCoaMappingID']
]);
if (!$query) {
$this->db->trans_rollback();
$this->sys_error_db("[Error] update table m_inventaris_item_coa_mapping");
exit;
}
$this->db->trans_commit();
$this->sys_ok("[Success] update data inventaris item coa mapping");
} catch (Exception $exc) {
$msg = $exc->getMessage();
$this->sys_error($msg);
}
}
public function deleteInvItemCoaMapping() {
try {
if (!$this->isLogin) {
$this->sys_error("invalid token");
exit;
}
$this->db->trans_begin();
$para = $this->sys_input;
$sql = "UPDATE m_inventaris_item_coa_mapping SET
M_InventarisItemCoaMappingIsActive = 'N',
M_InventarisItemCoaMappingLastUpdated = NOW()
WHERE M_InventarisItemCoaMappingIsActive = 'Y'
AND M_InventarisItemCoaMappingID = ?";
$query = $this->db->query($sql, [$para['M_InventarisItemCoaMappingID']]);
if (!$query) {
$this->db->trans_rollback();
$this->sys_error_db("[Error] soft delete data m_inventaris_item_coa_mapping");
exit;
}
$this->db->trans_commit();
$this->sys_ok("[Success] delete data inventaris item coa mapping");
} catch (Exception $exc) {
$msg = $exc->getMessage();
$this->sys_error($msg);
}
}
}

View File

@@ -172,6 +172,302 @@ Content-Type: application/json
"ID": "" "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 ### Test isValidMultiple Warehouse
### Should return True karena UnitRequest = UnitPurchase ### Should return True karena UnitRequest = UnitPurchase
GET https://{{host}}/mockup/purchase/order/PurchaseOrder/isValidMultipleWarehouse/ GET https://{{host}}/mockup/purchase/order/PurchaseOrder/isValidMultipleWarehouse/