diff --git a/so/src/public/nccloud/api/so/saleinvoice/operator/IAPISaleInvMaitainImpl.java b/so/src/public/nccloud/api/so/saleinvoice/operator/IAPISaleInvMaitainImpl.java index c1144bb..73bb90e 100644 --- a/so/src/public/nccloud/api/so/saleinvoice/operator/IAPISaleInvMaitainImpl.java +++ b/so/src/public/nccloud/api/so/saleinvoice/operator/IAPISaleInvMaitainImpl.java @@ -319,7 +319,8 @@ public class IAPISaleInvMaitainImpl { itemDetails.put("pk_group", "00");// 集团 itemDetails.put("pk_org", originalJson.getJSONObject("billhead").getString("pk_org"));// 开票组织 itemDetails.put("cunitid", item.getString("castunitid"));// 主单位 - itemDetails.put("vchangerate", value2.getOrDefault("vchangerate", "1/1") + "");// 换算率 + String vchangerate = value2.getOrDefault("vchangerate", "1/1") + ""; + itemDetails.put("vchangerate", vchangerate);// 换算率 // 从销售订单中获取币种 String currencycode = getString_TrimAsNull(value2.get("currencycode")); @@ -370,6 +371,14 @@ public class IAPISaleInvMaitainImpl { itemDetails.put("norigtaxnetprice", norigtaxnetprice);// 主含税净价 itemDetails.put("nnetprice", nnetprice);// 主本币无税净价 itemDetails.put("ntaxmny", ntaxmny);// 本币价税合计 + itemDetails.put("vqtunitrate", vchangerate);// 报价换算率 + UFDouble[] measrateNums = HslParseUtil.parseHsl(vchangerate); + UFDouble measrateNum = UFDouble.ONE_DBL; + if (null != measrateNums && measrateNums.length != 0) { + measrateNum = measrateNums[0].div(measrateNums[1]).setScale(2, 4); + } + // 报价数量 + itemDetails.put("nqtunitnum", nnum.multiply(measrateNum).setScale(2, UFDouble.ROUND_HALF_UP)); csaleinvoicebid.add(itemDetails); }