|
|
@ -212,12 +212,14 @@ public class CustomerStatementDetailController { |
|
|
|
BigDecimal mainBeforeTaxAmount = BigDecimal.ZERO;//主数据未税金额 所有明细行未税金额相加的和
|
|
|
|
BigDecimal mainTaxAmount = BigDecimal.ZERO;//主数据税额
|
|
|
|
BigDecimal mainAdTaxAmount = BigDecimal.ZERO;//主数据价税合计金额
|
|
|
|
BigDecimal moldZs = BigDecimal.ZERO;//每一行模具单价*数量保留两位小数
|
|
|
|
BigDecimal moldTaxAmount = BigDecimal.ZERO;//主数据模具税额
|
|
|
|
BigDecimal moldTaxTotal = BigDecimal.ZERO;//主数据模具含税金额
|
|
|
|
BigDecimal materialsUntaxedAmount = BigDecimal.ZERO;//主数据材料未税金额
|
|
|
|
BigDecimal materialsTaxAmount = BigDecimal.ZERO;//主数据材料税额
|
|
|
|
BigDecimal materialsTaxTotal = BigDecimal.ZERO;//主数据材料含税金额
|
|
|
|
BigDecimal alreadyMoldUntaxedAmount = BigDecimal.ZERO;//主数据已分摊模具未税金额=(已分摊品番数量*分摊单价)保留两位小数 后汇总
|
|
|
|
BigDecimal alreadyMoldTaxAmount = BigDecimal.ZERO;//主数据已分摊模具税额=((已分摊品番数量*分摊单价)保留两位小数*税率)保留两位小数后汇总求和
|
|
|
|
BigDecimal moldTaxAmountDiff = BigDecimal.ZERO;//主数据模具未税差异=已分摊模具未税金额-模具分摊未税金额
|
|
|
|
for(CustomerStatementDetailRespVO en:result.getList()){ |
|
|
|
String number = en.getNumber(); |
|
|
|
String articleNumber = en.getArticleNumber(); |
|
|
@ -228,9 +230,10 @@ public class CustomerStatementDetailController { |
|
|
|
allocationPrice = allocationPriceMap.get(key);//模具分摊单价
|
|
|
|
} |
|
|
|
en.setAllocationPrice(allocationPrice);//模具分摊金额从客户模具分摊对账单查出
|
|
|
|
//计算每一行明细模具分摊单价*数量保留两位小数
|
|
|
|
moldZs = moldZs.add(allocationPrice.multiply(en.getQty()).setScale(2, RoundingMode.HALF_UP));//明细行模具未税金额
|
|
|
|
|
|
|
|
//主数据已分摊模具未税金额=(已分摊品番数量*分摊单价)保留两位小数 后汇总
|
|
|
|
alreadyMoldUntaxedAmount = alreadyMoldUntaxedAmount.add(allocationPrice.multiply(en.getQty()).setScale(2, RoundingMode.HALF_UP));//明细行模具未税金额
|
|
|
|
//主数据已分摊模具税额=((已分摊品番数量*分摊单价)保留两位小数*税率)保留两位小数后汇总求和
|
|
|
|
alreadyMoldTaxAmount = alreadyMoldTaxAmount.add(allocationPrice.multiply(en.getQty()).setScale(2, RoundingMode.HALF_UP).multiply(new BigDecimal(13)).divide(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP)); |
|
|
|
//计算明细合计单价 销售单价+模具分摊单价
|
|
|
|
BigDecimal price1 = en.getPrice();//销售单价
|
|
|
|
//材料未税金额 各明细行的(销售单价 *数量)保留两位小数累加
|
|
|
@ -261,8 +264,8 @@ public class CustomerStatementDetailController { |
|
|
|
moldTaxAmount = moldUntaxedAmount.multiply(new BigDecimal(13)).divide(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP); |
|
|
|
//模具含税金额 = 模具未税金额+模具税额
|
|
|
|
moldTaxTotal = moldUntaxedAmount.add(moldTaxAmount); |
|
|
|
//模具未税尾差模具未税尾差:客户导入模具对账单未税金额保留两位小数的总和 减去 系统明细中品番数量*模具单价 保留两位小数后汇总金额
|
|
|
|
BigDecimal allocationDifferenceBeforeTax = moldUntaxedAmount.subtract(moldZs); |
|
|
|
//模具未税差异=已分摊模具未税金额-模具分摊未税金额
|
|
|
|
moldTaxAmountDiff = moldUntaxedAmount.subtract(alreadyMoldUntaxedAmount); |
|
|
|
|
|
|
|
//各明细行的(销售单价 *数量)之和 * 税率
|
|
|
|
materialsTaxAmount = materialsUntaxedAmount.multiply(new BigDecimal(13)).divide(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP); |
|
|
@ -284,7 +287,9 @@ public class CustomerStatementDetailController { |
|
|
|
if(userNicknameMap.containsKey(Long.valueOf(en.getUpdater()))){ |
|
|
|
en.setUpdater(userNicknameMap.get(Long.valueOf(en.getUpdater()))); |
|
|
|
} |
|
|
|
en.setAllocationDifferenceBeforeTax(allocationDifferenceBeforeTax); |
|
|
|
en.setMoldTaxAmountDiff(moldTaxAmountDiff); |
|
|
|
en.setAlreadyMoldUntaxedAmount(alreadyMoldUntaxedAmount); |
|
|
|
en.setAlreadyMoldTaxAmount(alreadyMoldTaxAmount); |
|
|
|
en.setMoldUntaxedAmount(moldUntaxedAmount); |
|
|
|
en.setMoldTaxAmount(moldTaxTotal); |
|
|
|
en.setMoldTaxTotal(moldTaxTotal); |
|
|
|