feature: po pay downpayment
This commit is contained in:
@@ -228,11 +228,15 @@ class PurchaseOrderAset extends MY_Controller {
|
||||
PurchaseOrderAssetContractEndDate AS contractEnd,
|
||||
IFNULL(attach.AttachmentCount, 0) AS AttachmentCount,
|
||||
SupplierID,
|
||||
SupplierName
|
||||
SupplierName,
|
||||
SupplierDownpaymentID
|
||||
FROM purchase_order
|
||||
JOIN supplier ON SupplierID = PurchaseOrderSupplierID
|
||||
JOIN purchase_order_asset_contract
|
||||
ON PurchaseOrderAssetContractPurchaseOrderID = PurchaseOrderID
|
||||
LEFT JOIN supplier_downpayment
|
||||
ON SupplierDownpaymentPurchasOrderID = PurchaseOrderID
|
||||
AND SupplierDownpaymentIsActive = 'Y'
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
ContractAssetAttachmentPurchaseOrderID,
|
||||
@@ -398,55 +402,59 @@ class PurchaseOrderAset extends MY_Controller {
|
||||
|
||||
# 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 'nominal'
|
||||
END AS typepajak,
|
||||
CASE
|
||||
WHEN PurchaseOrderTaxPpnType = 'P' THEN PurchaseOrderTaxPercentPpn
|
||||
ELSE PurchaseOrderTaxAmountPpn
|
||||
END AS valuepajak,
|
||||
CASE
|
||||
WHEN PurchaseOrderDiscountPercent > 0.00 THEN 'percent'
|
||||
ELSE 'nominal'
|
||||
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,
|
||||
WarehouseID AS gudangID,
|
||||
WarehouseM_BranchID AS branchID,
|
||||
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 warehouse ON WarehouseID = PurchaseOrderWarehouseID
|
||||
JOIN purchase_order_asset_contract
|
||||
ON PurchaseOrderAssetContractPurchaseOrderID = PurchaseOrderID
|
||||
WHERE PurchaseOrderIsActive = 'Y'
|
||||
AND PurchaseOrderID = ?";
|
||||
PurchaseOrderID,
|
||||
PurchaseOrderDate AS podate,
|
||||
PurchaseOrderNote AS catatan,
|
||||
PurchaseOrderNumber,
|
||||
PurchaseOrderStatus,
|
||||
PurchaseOrderRefNumber AS reference,
|
||||
PurchaseOrderGrandTotal AS grandtotal,
|
||||
CASE
|
||||
WHEN PurchaseOrderTaxPpnType = 'P' THEN 'percent'
|
||||
ELSE 'nominal'
|
||||
END AS typepajak,
|
||||
CASE
|
||||
WHEN PurchaseOrderTaxPpnType = 'P' THEN PurchaseOrderTaxPercentPpn
|
||||
ELSE PurchaseOrderTaxAmountPpn
|
||||
END AS valuepajak,
|
||||
CASE
|
||||
WHEN PurchaseOrderDiscountPercent > 0.00 THEN 'percent'
|
||||
ELSE 'nominal'
|
||||
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,
|
||||
WarehouseID AS gudangID,
|
||||
WarehouseM_BranchID AS branchID,
|
||||
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,
|
||||
SupplierDownpaymentID
|
||||
FROM purchase_order
|
||||
JOIN supplier ON SupplierID = PurchaseOrderSupplierID
|
||||
JOIN warehouse ON WarehouseID = PurchaseOrderWarehouseID
|
||||
JOIN purchase_order_asset_contract
|
||||
ON PurchaseOrderAssetContractPurchaseOrderID = PurchaseOrderID
|
||||
LEFT JOIN supplier_downpayment
|
||||
ON SupplierDownpaymentPurchasOrderID = PurchaseOrderID
|
||||
AND SupplierDownpaymentIsActive = 'Y'
|
||||
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");
|
||||
@@ -592,6 +600,7 @@ class PurchaseOrderAset extends MY_Controller {
|
||||
$summary_subtotal = floatval($para['summary']['subtotal']);
|
||||
$summary_diskon = floatval($para['summary']['diskon']);
|
||||
$summary_pajak = floatval($para['summary']['pajak']);
|
||||
$summary_downpayment = floatval($para['summary']['downpayment']);
|
||||
$summary_total = floatval($para['summary']['total']);
|
||||
|
||||
$sql_po = "INSERT INTO purchase_order (
|
||||
@@ -762,6 +771,33 @@ class PurchaseOrderAset extends MY_Controller {
|
||||
exit;
|
||||
}
|
||||
|
||||
# INSERT into table supplier_downpayment #
|
||||
$sql_dp = "INSERT INTO supplier_downpayment (
|
||||
SupplierDownpaymentPurchasOrderID,
|
||||
SupplierDownpaymentSupplierID,
|
||||
SupplierDownpaymentAmount,
|
||||
SupplierDownpaymentDate,
|
||||
SupplierDownpaymentDueDate,
|
||||
SupplierDownpaymentStatus,
|
||||
SupplierDownpaymentCreatedUserID,
|
||||
SupplierDownpaymentLastUpdatedUserID
|
||||
) VALUES (?,?,?,?,?,?,?,?)";
|
||||
$que_dp = $this->db->query($sql_dp, [
|
||||
$PurchaseOrderID,
|
||||
$para['supplierID'],
|
||||
$summary_downpayment ?: 0.00,
|
||||
$para['contractStart'],
|
||||
$para['contractStart'],
|
||||
'Draft',
|
||||
$user['M_UserID'],
|
||||
$user['M_UserID']
|
||||
]);
|
||||
if (!$que_dp) {
|
||||
$this->db->trans_rollback();
|
||||
$this->sys_error_db("[Error] failed insert supplier downpayment");
|
||||
exit;
|
||||
}
|
||||
|
||||
$this->insertLog(
|
||||
$PurchaseOrderID, 'CREATE', $para, '',
|
||||
[], $user['M_UserID'], 'create purchase order asset'
|
||||
@@ -803,6 +839,7 @@ class PurchaseOrderAset extends MY_Controller {
|
||||
$summary_subtotal = floatval($para['summary']['subtotal']);
|
||||
$summary_diskon = floatval($para['summary']['diskon']);
|
||||
$summary_pajak = floatval($para['summary']['pajak']);
|
||||
$summary_downpayment = floatval($para['summary']['downpayment']);
|
||||
$summary_total = floatval($para['summary']['total']);
|
||||
|
||||
# update po header #
|
||||
@@ -871,6 +908,29 @@ class PurchaseOrderAset extends MY_Controller {
|
||||
exit;
|
||||
}
|
||||
|
||||
## UPDATE existing downpayment ##
|
||||
$sql = "UPDATE supplier_downpayment SET
|
||||
SupplierDownpaymentAmount = ?,
|
||||
SupplierDownpaymentDate = ?,
|
||||
SupplierDownpaymentDueDate = ?,
|
||||
SupplierDownpaymentStatus = ?,
|
||||
SupplierDownpaymentLastUpdatedUserID = ?
|
||||
WHERE SupplierDownpaymentID = ?
|
||||
AND SupplierDownpaymentIsActive = 'Y'";
|
||||
$que = $this->db->query($sql, [
|
||||
$summary_downpayment ?: 0.00,
|
||||
$para['contractStart'],
|
||||
$para['contractStart'],
|
||||
'Draft',
|
||||
$user['M_UserID'],
|
||||
$para['SupplierDownpaymentID']
|
||||
]);
|
||||
if (!$que) {
|
||||
$this->db->trans_rollback();
|
||||
$this->sys_error_db("[Error] failed update supplier downpayment");
|
||||
exit;
|
||||
}
|
||||
|
||||
# update status old po summary isActive to 'N' #
|
||||
$sql_active = "UPDATE purchase_order_summary SET
|
||||
PurchaseOrderSummaryIsActive = 'N'
|
||||
@@ -956,7 +1016,7 @@ class PurchaseOrderAset extends MY_Controller {
|
||||
PurchaseOrderDetailQty,
|
||||
PurchaseOrderDetailPrice,
|
||||
PurchaseOrderDetailTotal,
|
||||
PurchaseOrderWarehouseID,
|
||||
PurchaseOrderDetailWarehouseID,
|
||||
PurchaseOrderDetailUserID,
|
||||
PurchaseOrderDetailCreatedUserID,
|
||||
PurchaseOrderDetailCreated
|
||||
@@ -1097,6 +1157,21 @@ class PurchaseOrderAset extends MY_Controller {
|
||||
exit;
|
||||
}
|
||||
|
||||
/* soft delete supplier_downpayment */
|
||||
$sql_deldp = "UPDATE supplier_downpayment SET
|
||||
SupplierDownpaymentIsActive = 'N',
|
||||
SupplierDownpaymentLastUpdatedUserID = ?
|
||||
WHERE SupplierDownpaymentID = ?
|
||||
AND SupplierDownpaymentIsActive = 'Y'";
|
||||
$que_deldp = $this->db->query($sql_deldp, [
|
||||
$user['M_UserID'], $para['SupplierDownpaymentID']
|
||||
]);
|
||||
if (!$que_deldp) {
|
||||
$this->db->trans_rollback();
|
||||
$this->sys_error_db("[Error] failed soft delete supplier downpayment");
|
||||
exit;
|
||||
}
|
||||
|
||||
/* soft delete purchase order */
|
||||
$sql_delorder = "UPDATE purchase_order SET
|
||||
PurchaseOrderIsActive = 'N',
|
||||
@@ -1298,8 +1373,4 @@ class PurchaseOrderAset extends MY_Controller {
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
private function generateDownPaymentPI() {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user