@Service public class DefaultSplitBillItemAmountServiceImpl extends Object implements SplitBillItemAmountService
| Modifier and Type | Field and Description |
|---|---|
static BigDecimal |
MIN_QUANTITY |
| Constructor and Description |
|---|
DefaultSplitBillItemAmountServiceImpl() |
| Modifier and Type | Method and Description |
|---|---|
protected void |
calculateAmountByPriceMethod(ItemAmountInfo splitAmountInfo)
根据价格方式计算金额
|
protected boolean |
gtLimitAmount(ItemAmountInfo itemAmountInfo,
BigDecimal limitAmount)
是否大于限额
|
static boolean |
isQuantity(String amountSplitRule)
按数量拆单价
|
static boolean |
isUnitPriceAndQuantityInteger(String amountSplitRule)
按单价拆数量,并保证数量为整数, 最后一笔不保证
|
protected boolean |
leftDiscountAmountLtSplitDiscountAmount(ItemAmountInfo itemAmountInfo,
ItemAmountInfo result)
判断剩余折扣是否小于拆分折扣
|
protected void |
processErrorAmount(List<ItemAmountInfo> itemAmountInfoList)
处理金额误差
|
protected void |
processLastItemAmountInfo(ItemAmountInfo itemAmountInfo,
boolean hasQuantity,
SplitRule rule)
处理最好一条
|
protected void |
processUnitPriceOrQuantity(SplitRule rule,
ItemAmountInfo newItemAmountInfo)
处理单价数量
|
protected void |
reCalculateAmount(BigDecimal limitAmount,
SplitRule rule,
ItemAmountInfo itemAmountInfo,
ItemAmountInfo result) |
List<ItemAmountInfo> |
splitAmount(ItemAmountInfo itemAmountInfo,
SplitRule rule)
根据规则限额拆分单据明细金额
|
protected ItemAmountInfo |
splitFirstItemAmountInfo(SplitRule rule,
ItemAmountInfo itemAmountInfo,
BigDecimal limitAmount)
按限额拆分金额
|
public static final BigDecimal MIN_QUANTITY
public DefaultSplitBillItemAmountServiceImpl()
public List<ItemAmountInfo> splitAmount(ItemAmountInfo itemAmountInfo, SplitRule rule)
SplitBillItemAmountServicesplitAmount in interface SplitBillItemAmountServiceitemAmountInfo - 单据明细金额信息rule - 规则protected void calculateAmountByPriceMethod(ItemAmountInfo splitAmountInfo)
splitAmountInfo - protected void processErrorAmount(List<ItemAmountInfo> itemAmountInfoList)
itemAmountInfoList - protected void processLastItemAmountInfo(ItemAmountInfo itemAmountInfo, boolean hasQuantity, SplitRule rule)
itemAmountInfo - hasQuantity - rule - protected void reCalculateAmount(BigDecimal limitAmount, SplitRule rule, ItemAmountInfo itemAmountInfo, ItemAmountInfo result)
protected boolean leftDiscountAmountLtSplitDiscountAmount(ItemAmountInfo itemAmountInfo, ItemAmountInfo result)
protected ItemAmountInfo splitFirstItemAmountInfo(SplitRule rule, ItemAmountInfo itemAmountInfo, BigDecimal limitAmount)
rule - itemAmountInfo - limitAmount - protected void processUnitPriceOrQuantity(SplitRule rule, ItemAmountInfo newItemAmountInfo)
rule - newItemAmountInfo - protected boolean gtLimitAmount(ItemAmountInfo itemAmountInfo, BigDecimal limitAmount)
itemAmountInfo - limitAmount - public static boolean isQuantity(String amountSplitRule)
public static boolean isUnitPriceAndQuantityInteger(String amountSplitRule)
Copyright © 2020. All rights reserved.