Bladeren bron

发票添加部分收款数据精度丢失问题调整

user5 2 jaren geleden
bovenliggende
commit
2d826af842

+ 3 - 2
src/main/java/com/jeeplus/modules/workinvoice/web/WorkInvoiceAllController.java

@@ -357,6 +357,7 @@ public class WorkInvoiceAllController extends BaseController {
 			workInvoice.setInvoiceDate(new Date());
 		}
 
+		//已收款处理
 		if(null != workInvoice.getWorkReceiptList() && workInvoice.getWorkReceiptList().size()>0){
 			BigDecimal moneyAll = new BigDecimal(0);
 			for (WorkInvoiceReceipt info: workInvoice.getWorkReceiptList()) {
@@ -364,12 +365,12 @@ public class WorkInvoiceAllController extends BaseController {
 					moneyAll = moneyAll.add(new BigDecimal(info.getMoney()));
 				}
 			}
-			workInvoice.setProceedsMoney(moneyAll.toString());
+			workInvoice.setProceedsMoney(moneyAll.setScale(2,BigDecimal.ROUND_HALF_UP).toString());
 
 			if(null != workInvoice.getMoney() && null != moneyAll){
 				BigDecimal money = new BigDecimal(workInvoice.getMoney());
 				BigDecimal noProceedsMoney = money.subtract(moneyAll);
-				workInvoice.setNoProceedsMoney(noProceedsMoney.toString());
+				workInvoice.setNoProceedsMoney(noProceedsMoney.setScale(2,BigDecimal.ROUND_HALF_UP).toString());
 			}
 
 		}

+ 8 - 2
src/main/webapp/webpage/modules/workinvoice/workInvoiceAllReceiptForm.jsp

@@ -220,7 +220,13 @@
 			}
 		}
 
-		function getProceedsMoneys(value){
+		function getProceedsMoneys(obj){
+
+			obj.value = obj.value.replace(/[^\d.]/g,""); //清除"数字"和"."以外的字符
+			obj.value = obj.value.replace(/^\./g,""); //验证第一个字符是数字
+			obj.value = obj.value.replace(/\.{2,}/g,"."); //只保留第一个, 清除多余的
+			obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");
+			obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3'); //只能输入两个小数
 
 			var proceedsMoneys = "0.00";
 			//方法一使用id选择器进行计算。
@@ -649,7 +655,7 @@
                                         <input id="workReceiptList{{idx}}_companyName" placeholder="请输入汇款单位" name="workReceiptList[{{idx}}].companyName" value="{{row.companyName}}" style="text-align: center" class="form-control judgment "/>
                                     </td>
                                     <td>
-                                        <input id="workReceiptList{{idx}}_money" name="workReceiptList[{{idx}}].money" placeholder="请输入汇款金额" value="{{row.money}}" onchange="getProceedsMoneys(this.value)" style="text-align: center" class="form-control number judgment"/>
+                                        <input id="workReceiptList{{idx}}_money" name="workReceiptList[{{idx}}].money" placeholder="请输入汇款金额" value="{{row.money}}" onchange="getProceedsMoneys(this)" style="text-align: center" class="form-control number judgment"/>
                                     </td>
 
                                     <td>