add: deletePoAsset api

This commit is contained in:
2026-07-09 10:04:43 +07:00
parent 3871a680dd
commit dc88589c78
2 changed files with 123 additions and 0 deletions

View File

@@ -371,6 +371,17 @@ Content-Type: application/json
"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

View File

@@ -618,6 +618,118 @@ class PurchaseOrderAset extends MY_Controller {
}
}
public function deletePoAsset() {
try {
if (!$this->isLogin) {
$this->sys_error("invalid token");
exit;
}
$this->db->trans_begin();
$para = $this->sys_input;
$user = $this->sys_user;
$sql_detail = "SELECT
PurchaseOrderDetailPurchaseRequestFlagID,
PurchaseOrderDetailQty
FROM purchase_order_detail
WHERE PurchaseOrderDetailPurchaseOrderID = ?
AND PurchaseOrderDetailIsActive = 'Y'";
$que_detail = $this->db->query($sql_detail, [$para['poID']]);
if (!$que_detail) {
$this->db->trans_rollback();
$this->sys_error_db("[Error] failed current data purchase order detail asset");
exit;
}
$asset_detail = $que_detail->result_array();
/* reduce qty process in purchase order flag */
foreach ($asset_detail as $key => $obj) {
$sql_updateflag = "UPDATE purchase_request_flag SET
PurchaseRequestFlagQtyProses = PurchaseRequestFlagQtyProses - ?
WHERE PurchaseRequestFlagID = ?";
$que_updateflag = $this->db->query($sql_updateflag, [
$obj['PurchaseOrderDetailQty'],
$obj['PurchaseOrderDetailPurchaseRequestFlagID']
]);
if (!$que_updateflag) {
$this->db->trans_rollback();
$this->sys_error_db("[Error] failed to update qty po asset");
exit;
}
}
/* soft delete purchase order detail */
$sql_deldetail = "UPDATE purchase_order_detail SET
PurchaseOrderDetailIsActive = 'N',
PurchaseOrderDetailDeleted = NOW(),
PurchaseOrderDetailDeletedUserID = ?
WHERE PurchaseOrderDetailPurchaseOrderID = ?";
$que_deldetail = $this->db->query($sql_deldetail, [
$user['M_UserID'], $para['poID']
]);
if (!$que_deldetail) {
$this->db->trans_rollback();
$this->sys_error_db("[Error] failed soft delete data purchase order detail");
exit;
}
/* soft delete purchase order summary */
$sql_delsummary = "UPDATE purchase_order_summary SET
PurchaseOrderSummaryIsActive = 'N',
PurchaseOrderSummaryDeleted = NOW(),
PurchaseOrderSummaryDeletedUserID = ?
WHERE PurchaseOrderSummaryPurchaseOrderID = ?";
$que_delsummary = $this->db->query($sql_delsummary, [
$user['M_UserID'], $para['poID']
]);
if (!$que_delsummary) {
$this->db->trans_rollback();
$this->sys_error_db("[Error] failed soft delete data purchase order summary");
exit;
}
/* soft delete purchase_order_asset_contract */
$sql_delcontract = "UPDATE purchase_order_asset_contract SET
PurchaseOrderAssetContractIsActive = 'N',
PurchaseOrderAssetContractLastUpdated = NOW()
WHERE PurchaseOrderAssetContractID = ?
AND PurchaseOrderAssetContractPurchaseOrderID = ?";
$que_delcontract = $this->db->query($sql_delcontract, [
$para['contractID'], $para['poID']
]);
if (!$que_delcontract) {
$this->db->trans_rollback();
$this->sys_error_db("[Error] failed soft delete data purchase order asset contract");
exit;
}
/* soft delete purchase order */
$sql_delorder = "UPDATE purchase_order SET
PurchaseOrderIsActive = 'N',
PurchaseOrderDeleted = NOW(),
PurchaseOrderDeletedUserID = ?
WHERE PurchaseOrderID = ?";
$que_delorder = $this->db->query($sql_delorder, [
$user['M_UserID'], $para['poID']
]);
if (!$que_delorder) {
$this->db->trans_rollback();
$this->sys_error_db("[Error] failed soft delete data purchase order");
exit;
}
$desc = "delete purchase order asset dengan nomor {$para['ponumber']}";
$this->insertLog($para['poID'], 'DELETE', $para, '', [], $user['M_UserID'], $desc);
$this->db->trans_commit();
$this->sys_ok("[Success] {$desc}");
} catch (Exception $exc) {
$msg = $exc->getMessage();
$this->sys_error($msg);
}
}
public function getUserApproveLevel() {
try {
if (!$this->isLogin) {