add: getDataKontrakPoAset api
This commit is contained in:
@@ -186,6 +186,16 @@ Content-Type: application/json
|
|||||||
"status": "All"
|
"status": "All"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
###
|
||||||
|
// get data kontrak po asset
|
||||||
|
POST https://{{host}}/mockup/purchase/order/PurchaseOrderAset/getDataKontrakPoAset/
|
||||||
|
Content-Type: application/json
|
||||||
|
|
||||||
|
{
|
||||||
|
"token": {{token}},
|
||||||
|
"poID": 1
|
||||||
|
}
|
||||||
|
|
||||||
###
|
###
|
||||||
// create po asset
|
// create po asset
|
||||||
POST https://{{host}}/mockup/purchase/order/PurchaseOrderAset/createPoAsset/
|
POST https://{{host}}/mockup/purchase/order/PurchaseOrderAset/createPoAsset/
|
||||||
|
|||||||
@@ -245,6 +245,187 @@ class PurchaseOrderAset extends MY_Controller {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getDataKontrakPoAset() {
|
||||||
|
try {
|
||||||
|
if (!$this->isLogin) {
|
||||||
|
$this->sys_error("invalid token");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$para = $this->sys_input;
|
||||||
|
|
||||||
|
# get data from purchase order detail #
|
||||||
|
$sql_detail = "SELECT
|
||||||
|
PurchaseOrderID,
|
||||||
|
PurchaseRequestID,
|
||||||
|
PurchaseRequestNumber,
|
||||||
|
PurchaseOrderDetailPurchaseSummaryID AS PurchaseOrderSummaryID,
|
||||||
|
PurchaseOrderDetailPurchaseRequestDetailID AS PurchaseRequestDetailID,
|
||||||
|
PurchaseOrderDetailPurchaseRequestFlagID AS PurchaseRequestFlagID,
|
||||||
|
PurchaseOrderDetailRequestQty AS OriginalQty,
|
||||||
|
PurchaseOrderDetailQty AS RequestQty,
|
||||||
|
PurchaseOrderDetailPrice AS SupplierPrice,
|
||||||
|
PurchaseOrderDetailTotal,
|
||||||
|
PurchaseOrderDetailItemID AS M_ItemID,
|
||||||
|
M_ItemCode,
|
||||||
|
M_ItemDesc,
|
||||||
|
PurchaseOrderDetailItemUnitID AS ItemUnitID,
|
||||||
|
ItemUnitName
|
||||||
|
FROM purchase_order
|
||||||
|
JOIN purchase_order_detail ON PurchaseOrderDetailPurchaseOrderID = PurchaseOrderID
|
||||||
|
AND PurchaseOrderDetailIsActive = 'Y'
|
||||||
|
JOIN purchase_request ON PurchaseRequestID = PurchaseOrderDetailPurchaseRequestID
|
||||||
|
JOIN m_item ON M_ItemID = PurchaseOrderDetailItemID
|
||||||
|
JOIN itemunit ON ItemUnitID = PurchaseOrderDetailItemUnitID
|
||||||
|
WHERE PurchaseOrderDetailIsActive = 'Y'
|
||||||
|
AND PurchaseOrderID = ?";
|
||||||
|
$que_detail = $this->db->query($sql_detail, [$para['poID']]);
|
||||||
|
if (!$que_detail) {
|
||||||
|
$this->sys_error_db("[Error] failed get data po detail asset");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
$detail_asset = $que_detail->result_array();
|
||||||
|
|
||||||
|
# get data from purchase order summary #
|
||||||
|
$sql_sumry = "SELECT
|
||||||
|
PurchaseOrderID,
|
||||||
|
PurchaseOrderSummaryID,
|
||||||
|
PurchaseOrderSummaryQty AS RequestQty,
|
||||||
|
PurchaseOrderSummaryPrice AS SupplierPrice,
|
||||||
|
PurchaseOrderSummaryDiscountRupiah AS DiskonRupiah,
|
||||||
|
PurchaseOrderSummaryDiscountPercent AS DiskonPercent,
|
||||||
|
PurchaseOrderSummaryDiscountAmount AS DiskonAmount,
|
||||||
|
PurchaseOrderSummaryDiscountType AS DiskonType,
|
||||||
|
(PurchaseOrderSummaryPrice - PurchaseOrderSummaryDiscountAmount) AS EndPrice,
|
||||||
|
PurchaseOrderSummaryTotal AS TempTotal,
|
||||||
|
PurchaseOrderSummaryItemID AS M_ItemID,
|
||||||
|
M_ItemCode,
|
||||||
|
M_ItemDesc,
|
||||||
|
PurchaseOrderSummaryItemUnitID AS ItemUnitID,
|
||||||
|
ItemUnitName
|
||||||
|
FROM purchase_order
|
||||||
|
JOIN purchase_order_summary ON PurchaseOrderSummaryPurchaseOrderID = PurchaseOrderID
|
||||||
|
JOIN m_item ON M_ItemID = PurchaseOrderSummaryItemID
|
||||||
|
JOIN itemunit ON ItemUnitID = PurchaseOrderSummaryItemUnitID
|
||||||
|
WHERE PurchaseOrderSummaryIsActive = 'Y'
|
||||||
|
AND PurchaseOrderID = ?";
|
||||||
|
$que_sumry = $this->db->query($sql_sumry, [$para['poID']]);
|
||||||
|
if (!$que_sumry) {
|
||||||
|
$this->sys_error_db("[Error] failed get data po summary asset");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
$data_sumry = $que_sumry->result_array();
|
||||||
|
|
||||||
|
# get data from purchase order #
|
||||||
|
$sql_poasset = "SELECT
|
||||||
|
PurchaseOrderID,
|
||||||
|
PurchaseOrderDate AS podate,
|
||||||
|
PurchaseOrderNote AS catatan,
|
||||||
|
PurchaseOrderNumber,
|
||||||
|
PurchaseOrderStatus,
|
||||||
|
PurchaseOrderRefNumber AS reference,
|
||||||
|
PurchaseOrderGrandTotal AS grandtotal,
|
||||||
|
CASE
|
||||||
|
WHEN PurchaseOrderTaxPpnType = 'P' THEN 'percent'
|
||||||
|
ELSE 'absolute'
|
||||||
|
END AS typepajak,
|
||||||
|
CASE
|
||||||
|
WHEN PurchaseOrderTaxPpnType = 'P' THEN PurchaseOrderTaxPercentPpn
|
||||||
|
ELSE PurchaseOrderTaxAmountPpn
|
||||||
|
END AS valuepajak,
|
||||||
|
CASE
|
||||||
|
WHEN PurchaseOrderDiscountPercent > 0.00 THEN 'percent'
|
||||||
|
ELSE 'absolute'
|
||||||
|
END AS typediskon,
|
||||||
|
CASE
|
||||||
|
WHEN PurchaseOrderDiscountPercent > 0.00 THEN PurchaseOrderDiscountPercent
|
||||||
|
ELSE PurchaseOrderDiscountAmount
|
||||||
|
END AS valuediskon,
|
||||||
|
PurchaseOrderSubTotal AS subtotal,
|
||||||
|
PurchaseOrderGrandTotal AS grandtotal,
|
||||||
|
SupplierID AS supplierID,
|
||||||
|
SupplierName,
|
||||||
|
PurchaseOrderAssetContractID,
|
||||||
|
PurchaseOrderAssetContractTAssetAttachmentID AS assetAttachmentID,
|
||||||
|
PurchaseOrderAssetContractName AS contractName,
|
||||||
|
PurchaseOrderAssetContractDate AS contractDate,
|
||||||
|
PurchaseOrderAssetContractStartDate AS contractStart,
|
||||||
|
PurchaseOrderAssetContractEndDate AS contractEnd,
|
||||||
|
PurchaseOrderAssetContractDuration AS contractDuration,
|
||||||
|
PurchaseOrderAssetContractInstallmentNumber AS installmentNumber,
|
||||||
|
PurchaseOrderAssetContractInstallmentDate AS installmentDate,
|
||||||
|
PurchaseOrderAssetContractInstallmentPayAmount AS installmentPayAmount,
|
||||||
|
PurchaseOrderAssetContractInstallmentDownPaymentType AS installmentDownPaymentType,
|
||||||
|
PurchaseOrderAssetContractInstallmentDownPayment AS installmentDownPayment,
|
||||||
|
PurchaseOrderApprovedManagerUserID AS verifiedby
|
||||||
|
FROM purchase_order
|
||||||
|
JOIN supplier ON SupplierID = PurchaseOrderSupplierID
|
||||||
|
JOIN purchase_order_asset_contract
|
||||||
|
ON PurchaseOrderAssetContractPurchaseOrderID = PurchaseOrderID
|
||||||
|
WHERE PurchaseOrderIsActive = 'Y'
|
||||||
|
AND PurchaseOrderID = ?";
|
||||||
|
$que_poasset = $this->db->query($sql_poasset, [$para['poID']]);
|
||||||
|
if (!$que_poasset) {
|
||||||
|
$this->sys_error_db("[Error] failed get data from purchase order");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
$datapo = $que_poasset->row_array();
|
||||||
|
|
||||||
|
# process data output #
|
||||||
|
/* map detail po to summary */
|
||||||
|
$grouped_detailpo = array();
|
||||||
|
foreach ($detail_asset as $obj) {
|
||||||
|
$idz = $obj['PurchaseOrderSummaryID'];
|
||||||
|
if (!isset($grouped_detailpo[$idz])) {
|
||||||
|
$grouped_detailpo[$idz] = array();
|
||||||
|
}
|
||||||
|
|
||||||
|
$grouped_detailpo[$idz][] = $obj;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($data_sumry as $key => $summary) {
|
||||||
|
$ids = $summary['PurchaseOrderSummaryID'];
|
||||||
|
|
||||||
|
if (isset($grouped_detailpo[$ids])) {
|
||||||
|
$data_sumry[$key]['detail'] = $grouped_detailpo[$ids];
|
||||||
|
} else {
|
||||||
|
$data_sumry[$key]['detail'] = array();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$subtotal = floatval($datapo['subtotal']);
|
||||||
|
$grandtotal = floatval($datapo['grandtotal']);
|
||||||
|
|
||||||
|
$valuediskon = floatval($datapo['valuediskon']);
|
||||||
|
if ($datapo['typediskon'] == 'percent') {
|
||||||
|
$valuediskon = round(floatval($datapo['valuediskon']) * $subtotal / 100, 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
$valuepajak = floatval($datapo['valuepajak']);
|
||||||
|
if ($datapo['typepajak'] == 'percent') {
|
||||||
|
$price = ($subtotal - $valuediskon);
|
||||||
|
$valuepajak = round(floatval($datapo['valuepajak']) * $price / 100, 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
$outsummary = [
|
||||||
|
"subtotal" => $subtotal,
|
||||||
|
"diskon" => $valuediskon,
|
||||||
|
"pajak" => $valuepajak,
|
||||||
|
"total" => $grandtotal
|
||||||
|
];
|
||||||
|
/* map summary to purchase order */
|
||||||
|
$datapo['valuepajak'] = floatval($datapo['valuepajak']);
|
||||||
|
$datapo['valuediskon'] = floatval($datapo['valuediskon']);
|
||||||
|
$datapo['detail'] = $data_sumry;
|
||||||
|
$datapo['summary'] = $outsummary;
|
||||||
|
|
||||||
|
$this->sys_ok($datapo);
|
||||||
|
} catch (Exception $exc) {
|
||||||
|
$msg = $exc->getMessage();
|
||||||
|
$this->sys_error($msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
## MUTATIONS ##
|
## MUTATIONS ##
|
||||||
public function createPoAsset() {
|
public function createPoAsset() {
|
||||||
try {
|
try {
|
||||||
|
|||||||
Reference in New Issue
Block a user