diff --git a/main/java/shkd/repc/recon/opplugin/CalculationQuotaListOpPlugin.java b/main/java/shkd/repc/recon/opplugin/CalculationQuotaListOpPlugin.java index 8a2da31..14606b3 100644 --- a/main/java/shkd/repc/recon/opplugin/CalculationQuotaListOpPlugin.java +++ b/main/java/shkd/repc/recon/opplugin/CalculationQuotaListOpPlugin.java @@ -28,12 +28,12 @@ public class CalculationQuotaListOpPlugin extends AbstractOperationServicePlugIn BigDecimal qeug_taxamount = dynamicObject1.getBigDecimal("qeug_taxamount");//税额 Object qeug_taxrate1 = dynamicObject1.get("qeug_taxrate"); if(qeug_taxrate1!=null){ - qeug_taxrate = dynamicObject1.getBigDecimal("qeug_taxrate.taxrate"); + qeug_taxrate = returnRate(dynamicObject1.getBigDecimal("qeug_taxrate.taxrate")); } boolean qty1 = returnComperZero(qty);//数量 if(!qty1){ e.setCancel(true); - e.setCancelMessage("数量必填"); + e.setCancelMessage("非定额清单的数量必填"); return; } boolean noTaxPrice = returnComperZero(qeug_exclusiveprice);//不含税 @@ -45,7 +45,12 @@ public class CalculationQuotaListOpPlugin extends AbstractOperationServicePlugIn */ BigDecimal qeug_notaxtotalprice = BigDecimal.ZERO;//不含税总价 BigDecimal qeug_taxtotalprice = BigDecimal.ZERO;//含税总价 - if(!noTaxPrice && TaxPrice && !taxRate && !Tax){ + if(!noTaxPrice && !TaxPrice){ + qeug_notaxtotalprice = qty.multiply(qeug_exclusiveprice); + dynamicObject1.set("qeug_notaxtotalprice", qeug_notaxtotalprice); + qeug_taxtotalprice = qty.multiply(qeug_taxprice); + dynamicObject1.set("qeug_taxtotalprice", qeug_taxtotalprice); + }else if(!noTaxPrice && TaxPrice && !taxRate && !Tax){ qeug_exclusiveprice = qeug_taxprice; dynamicObject1.set("qeug_exclusiveprice",qeug_exclusiveprice); qeug_notaxtotalprice = qty.multiply(qeug_exclusiveprice); @@ -60,7 +65,7 @@ public class CalculationQuotaListOpPlugin extends AbstractOperationServicePlugIn qeug_taxtotalprice = qty.multiply(qeug_taxprice); dynamicObject1.set("qeug_taxtotalprice", qeug_taxtotalprice); }else if(!noTaxPrice && TaxPrice && taxRate && !Tax){ - qeug_exclusiveprice = qeug_taxprice.divide(BigDecimal.ONE.add(qeug_taxamount), 2, RoundingMode.HALF_UP); + qeug_exclusiveprice = qeug_taxprice.divide(BigDecimal.ONE.add(qeug_taxrate), 2, RoundingMode.HALF_UP); dynamicObject1.set("qeug_exclusiveprice",qeug_exclusiveprice); qeug_notaxtotalprice = qty.multiply(qeug_exclusiveprice); dynamicObject1.set("qeug_notaxtotalprice", qeug_notaxtotalprice); @@ -89,7 +94,7 @@ public class CalculationQuotaListOpPlugin extends AbstractOperationServicePlugIn qeug_taxtotalprice = qty.multiply(qeug_taxprice); dynamicObject1.set("qeug_taxtotalprice", qeug_taxtotalprice); }else if(noTaxPrice && !TaxPrice && taxRate && !Tax){ - qeug_taxprice = qeug_exclusiveprice.divide(BigDecimal.ONE.add(qeug_taxamount), 2, RoundingMode.HALF_UP); + qeug_taxprice = qeug_exclusiveprice.multiply(BigDecimal.ONE.add(qeug_taxrate)); dynamicObject1.set("qeug_taxprice",qeug_taxprice); qeug_notaxtotalprice = qty.multiply(qeug_exclusiveprice); dynamicObject1.set("qeug_notaxtotalprice", qeug_notaxtotalprice); @@ -132,4 +137,15 @@ public class CalculationQuotaListOpPlugin extends AbstractOperationServicePlugIn private boolean returnComperZero(BigDecimal bigDecimal){ return BigDecimal.ZERO.compareTo(bigDecimal) == -1; } + + private BigDecimal returnRate(BigDecimal bigDecimal){ + if(bigDecimal==null){ + return BigDecimal.ZERO; + } + if(BigDecimal.ONE.compareTo(bigDecimal) <= 0){ + return bigDecimal.divide(new BigDecimal(100)); + }else{ + return bigDecimal; + } + } }