From c296d5598b253d0f5f9811f9a2f4840c77a6836e Mon Sep 17 00:00:00 2001 From: bintanghr Date: Thu, 9 Jul 2026 10:04:43 +0700 Subject: [PATCH] add: deletePoAsset api --- .../mockup/purchase/order/PurchaseOrder.http | 11 ++ .../purchase/order/PurchaseOrderAset.php | 112 ++++++++++++++++++ 2 files changed, 123 insertions(+) diff --git a/application/controllers/mockup/purchase/order/PurchaseOrder.http b/application/controllers/mockup/purchase/order/PurchaseOrder.http index 4038b18..667ede9 100644 --- a/application/controllers/mockup/purchase/order/PurchaseOrder.http +++ b/application/controllers/mockup/purchase/order/PurchaseOrder.http @@ -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 diff --git a/application/controllers/mockup/purchase/order/PurchaseOrderAset.php b/application/controllers/mockup/purchase/order/PurchaseOrderAset.php index 43bfaa1..227a914 100644 --- a/application/controllers/mockup/purchase/order/PurchaseOrderAset.php +++ b/application/controllers/mockup/purchase/order/PurchaseOrderAset.php @@ -641,6 +641,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) {