feature: file receiveItemAset & change some query purchaseorderasest

This commit is contained in:
2026-07-10 15:49:00 +07:00
parent 34fb944e6e
commit e62ec1d994
2 changed files with 3329 additions and 73 deletions

View File

@@ -81,59 +81,58 @@ class PurchaseOrderAset extends MY_Controller {
} }
$limit = 10; $limit = 10;
$offset = 0;
if ($para['currpage'] > 0) {
$offset = ($para['currpage'] - 1) * $limit;
}
$sql = "SELECT $sql = "SELECT
PurchaseRequestID, PurchaseRequestID,
PurchaseRequestNumber, PurchaseRequestNumber,
PurchaseRequestDetailID, PurchaseRequestDetailID,
PurchaseRequestFlagID, PurchaseRequestFlagID,
PurchaseRequestFlagM_BranchCode AS BranchCode, M_BranchID,
PurchaseRequestItemCategoryID AS ItemCategoryID, PurchaseRequestFlagM_BranchCode AS BranchCode,
PurchaseRequestFlagQtyRest - PurchaseRequestFlagQtyProses AS UnprocessFlagQty, PurchaseRequestItemCategoryID AS ItemCategoryID,
PurchaseRequestDetailQty AS RequestQty, PurchaseRequestFlagQtyRest - PurchaseRequestFlagQtyProses AS UnprocessFlagQty,
PurchaseRequestDetailQty AS OriginalQty, PurchaseRequestDetailQty AS RequestQty,
M_BranchName, PurchaseRequestDetailQty AS OriginalQty,
M_ItemID, M_BranchName,
M_ItemCode, M_ItemID,
M_ItemDesc, M_ItemCode,
ItemUnitID, M_ItemDesc,
ItemUnitName, ItemUnitID,
SupplierPricePrice as SupplierPrice ItemUnitName,
FROM purchase_request SupplierPricePrice as SupplierPrice,
JOIN purchase_request_detail ON PurchaseRequestDetailPurchaseRequestID = PurchaseRequestID M_UserUsername AS Requestedby
AND PurchaseRequestDetailIsActive = 'Y' FROM purchase_request
AND PurchaseRequestM_BranchCode = ? JOIN purchase_request_detail ON PurchaseRequestDetailPurchaseRequestID = PurchaseRequestID
AND PurchaseRequestItemCategoryID = '3' -- id category item asset AND PurchaseRequestDetailIsActive = 'Y'
AND PurchaseRequestNumber LIKE ? AND PurchaseRequestItemCategoryID = '3' -- id category item asset
JOIN purchase_request_flag ON PurchaseRequestFlagPurchaseRequestDetailID = PurchaseRequestDetailID JOIN m_item ON M_ItemID = PurchaseRequestDetailM_ItemID
AND PurchaseRequestFlagStatus = 'PO' AND (PurchaseRequestNumber LIKE ? OR M_ItemDesc LIKE ?)
AND PurchaseRequestFlagIsActive = 'Y' JOIN purchase_request_flag ON PurchaseRequestFlagPurchaseRequestDetailID = PurchaseRequestDetailID
JOIN m_item ON M_ItemID = PurchaseRequestDetailM_ItemID AND PurchaseRequestFlagStatus = 'PO'
JOIN itemunit ON ItemUnitID = PurchaseRequestDetailItemUnitID AND PurchaseRequestFlagIsActive = 'Y'
JOIN supplier_price ON SupplierPriceSupplierID = ? JOIN m_branch ON M_BranchCode = PurchaseRequestFlagM_BranchCode
AND SupplierPriceM_ItemID = M_ItemID AND M_BranchID = ?
AND SupplierPriceItemUnitID = ItemUnitID AND M_BranchIsActive = 'Y'
AND SupplierPriceIsActive = 'Y' JOIN itemunit ON ItemUnitID = PurchaseRequestDetailItemUnitID
JOIN m_branch ON M_BranchCode = PurchaseRequestFlagM_BranchCode JOIN supplier_price ON SupplierPriceSupplierID = ?
AND M_BranchIsActive = 'Y' AND SupplierPriceM_ItemID = M_ItemID
WHERE NOT EXISTS ( AND SupplierPriceItemUnitID = ItemUnitID
SELECT 1 AND SupplierPriceIsActive = 'Y'
FROM purchase_order_detail JOIN m_user ON M_UserID = PurchaseRequestRequestedBy
JOIN purchase_order ON PurchaseOrderDetailPurchaseOrderID = PurchaseOrderID WHERE NOT EXISTS (
AND PurchaseOrderStatus = 'Approved' SELECT 1
AND PurchaseOrderIsActive = 'Y' FROM purchase_order_detail
AND PurchaseOrderDetailIsActive = 'Y' JOIN purchase_order ON PurchaseOrderDetailPurchaseOrderID = PurchaseOrderID
WHERE PurchaseOrderDetailPurchaseRequestDetailID = PurchaseRequestDetailID AND PurchaseOrderStatus = 'Approved'
)"; AND PurchaseOrderIsActive = 'Y'
AND PurchaseOrderDetailIsActive = 'Y'
WHERE PurchaseOrderDetailPurchaseRequestDetailID = PurchaseRequestDetailID
)";
$sql_data = $sql . " LIMIT ? OFFSET ? "; $sql_data = $sql . " LIMIT ? ";
$que_data = $this->db->query($sql_data, [ $que_data = $this->db->query($sql_data, [
$para['branchcode'], $keyword, $para['supplierID'], $keyword, $keyword, $para['branchID'], $para['supplierID'],
$limit, $offset $limit
]); ]);
if (!$que_data) { if (!$que_data) {
$this->sys_error_db("[Error] get daftar request data"); $this->sys_error_db("[Error] get daftar request data");
@@ -143,7 +142,7 @@ class PurchaseOrderAset extends MY_Controller {
$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'] $keyword, $keyword, $para['branchID'], $para['supplierID']
]); ]);
if (!$que_total) { if (!$que_total) {
$this->sys_error_db("[Error] get total request aset"); $this->sys_error_db("[Error] get total request aset");
@@ -459,6 +458,28 @@ class PurchaseOrderAset extends MY_Controller {
} }
} }
public function getUserApproveLevel() {
try {
if (!$this->isLogin) {
$this->sys_error("invalid token");
exit;
}
$user = $this->sys_user;
$sql = "SELECT M_UserM_ApproveLevelID FROM m_user
WHERE M_UserIsActive = 'Y' AND M_UserID = ? ";
$que = $this->db->query($sql, [$user['M_UserID']]);
if (!$que) {
$this->sys_error_db("[Error] failed get approval level user");
exit;
}
$data = $que->row_array();
$this->sys_ok($data);
} catch (Exception $exc) {
$this->sys_error($exc->getMessage());
}
}
## MUTATIONS ## ## MUTATIONS ##
public function createPoAsset() { public function createPoAsset() {
try { try {
@@ -1027,7 +1048,6 @@ class PurchaseOrderAset extends MY_Controller {
} }
} }
// upload file
public function uploadAttachment() { public function uploadAttachment() {
try { try {
if (!$this->isLogin) { if (!$this->isLogin) {
@@ -1166,28 +1186,6 @@ class PurchaseOrderAset extends MY_Controller {
} }
} }
public function getUserApproveLevel() {
try {
if (!$this->isLogin) {
$this->sys_error("invalid token");
exit;
}
$user = $this->sys_user;
$sql = "SELECT M_UserM_ApproveLevelID FROM m_user
WHERE M_UserIsActive = 'Y' AND M_UserID = ? ";
$que = $this->db->query($sql, [$user['M_UserID']]);
if (!$que) {
$this->sys_error_db("[Error] failed get approval level user");
exit;
}
$data = $que->row_array();
$this->sys_ok($data);
} catch (Exception $exc) {
$this->sys_error($exc->getMessage());
}
}
private function insertLog($poID, $type, $prm, $dataBefore, $dataAfter, $userID, $desc = '') { private function insertLog($poID, $type, $prm, $dataBefore, $dataAfter, $userID, $desc = '') {
$sql = "INSERT INTO acc_one_log.purchase_order_log ( $sql = "INSERT INTO acc_one_log.purchase_order_log (
PurchaseOrderLogPurchaseOrderID, PurchaseOrderLogPurchaseOrderID,

File diff suppressed because it is too large Load Diff