支付金额取整
This commit is contained in:
@@ -351,17 +351,18 @@ class DemandService
|
||||
$winContract = ContractService::updateCustomerContractData($demandId, $formData);
|
||||
//如果新的合同金额与旧的合同金额不符,则通过修改尾款订单的金额的方式来弥补差价
|
||||
$firstContract = ContractService::getFirstContract($demandId);
|
||||
if ($firstContract && $firstContract->total_amount != $winContract->total_amount && $winContract->status2 != ContractService::STATUS_FINISHED) {
|
||||
$diffAmount = $winContract->total_amount - $firstContract->total_amount;
|
||||
//更新尾款订单的金额
|
||||
if ($firstContract && bccomp((string)$firstContract->total_amount, (string)$winContract->total_amount, 2) !== 0 && $winContract->status2 != ContractService::STATUS_FINISHED) {
|
||||
// 尾款 = 新合同总额 - 首付款,不按固定 50% 重算
|
||||
$firstOrder = OrderService::getDemandOrder($demand->parent_order_no, OrderService::ORDER_TYPE_FIRST_PAYMENT);
|
||||
$finalOrder = OrderService::getDemandOrder($demand->parent_order_no, OrderService::ORDER_TYPE_FINAL_PAYMENT);
|
||||
$finalOrder->total_amount += $diffAmount;
|
||||
$finalOrder->goods_amount += $diffAmount;
|
||||
$finalOrder->payment_amount += $diffAmount;
|
||||
$saveRes = $finalOrder->save();
|
||||
if (!$saveRes) {
|
||||
exception('弥补订单差价金额失败');
|
||||
if (!$firstOrder || !$finalOrder) {
|
||||
exception('获取分期订单失败');
|
||||
}
|
||||
$finalAmount = bcsub((string)$winContract->total_amount, (string)$firstOrder->payment_amount, 2);
|
||||
if (bccomp($finalAmount, '0', 2) < 0) {
|
||||
exception('合同金额不能小于已确定的首付款');
|
||||
}
|
||||
OrderService::applyOrderAmount($finalOrder, $finalAmount);
|
||||
}
|
||||
//获取签约订单用于支付
|
||||
$order = OrderService::getDemandOrder($demand->parent_order_no, $contractType);
|
||||
|
||||
Reference in New Issue
Block a user