Browse Source

批量更新价格增加明细税金更新

hejq 8 years ago
parent
commit
3a695c8e7f

+ 9 - 5
src/main/java/com/uas/platform/b2b/service/impl/PurchaseApBillServiceImpl.java

@@ -27,6 +27,7 @@ import javax.persistence.criteria.CriteriaBuilder;
 import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Root;
+import java.sql.SQLClientInfoException;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -179,14 +180,17 @@ public class PurchaseApBillServiceImpl implements PurchaseApBillService {
 					// 更新明细单价、税率
 					String sql = " merge into purc$apbillitem i using purc$apbill a "
 							+ "on (i.papi_papid = a.pab_id and i.papi_pdinoutno = '" + prod.getPbu_inoutno()
-							+ "' and a.pad_enuu = " + enuu + "and i.papi_product = " + prods.get(0).getId() + ")"
+							+ "' and a.pad_enuu = " + enuu + " and i.papi_product = " + prods.get(0).getId() + ")"
 							+ " when matched then "
 							+ "update set i.papi_price = " + prod.getPbu_orderprice()
 							+ ", i.papi_apamount = i.papi_thisvoqty * " + prod.getPbu_orderprice()
-							+ ", i.papi_amount = i.papi_qty * " + prod.getPbu_orderprice()
-							+ ", i.papi_taxamount = ROUND(SUM(i.papi_qty * " + prod.getPbu_orderprice() + "/(1 + (nvl(i.papi_taxrate, 0)/100)) * (nvl(i.papi_taxrate, 0)/100)), 2)";
-					if(null != prod.getPbu_taxrate())
-						sql = sql + ", i.papi_taxrate = " + prod.getPbu_taxrate();
+							+ ", i.papi_amount = i.papi_qty * " + prod.getPbu_orderprice();
+					if(null != prod.getPbu_taxrate()) {
+						sql = sql + ", i.papi_taxrate = " + prod.getPbu_taxrate() + ", i.papi_taxamount = trunc(i.papi_qty * "
+								  + prod.getPbu_orderprice() + "/(1 +" + prod.getPbu_taxrate()/100 + ") * " + prod.getPbu_taxrate()/100 + ", 2)";
+					} else {
+						sql = sql + ", i.papi_taxamount = trunc(i.papi_qty * " + prod.getPbu_orderprice() + "/(1 + (nvl(i.papi_taxrate, 0)/100)) * (nvl(i.papi_taxrate, 0)/100), 2)";
+					}
 					commonDao.getJdbcTemplate().update(sql);
 					logger.log("批量更新价格", "更新'" + prod.getPbu_inoutno() + "'发票明细价格", 1);
 					// 更新主表的税金合计