销售订单修改接口调整
This commit is contained in:
parent
b97c945e84
commit
6e3183ee67
|
@ -6,7 +6,6 @@ import nc.bs.dao.DAOException;
|
||||||
import nc.bs.framework.common.NCLocator;
|
import nc.bs.framework.common.NCLocator;
|
||||||
import nc.bs.trade.business.HYSuperDMO;
|
import nc.bs.trade.business.HYSuperDMO;
|
||||||
import nc.impl.pubapp.pattern.data.bill.BillQuery;
|
import nc.impl.pubapp.pattern.data.bill.BillQuery;
|
||||||
import nc.itf.fi.pub.Currency;
|
|
||||||
import nc.itf.scmpub.reference.uap.bd.customer.CustomerPubService;
|
import nc.itf.scmpub.reference.uap.bd.customer.CustomerPubService;
|
||||||
import nc.itf.scmpub.reference.uap.pf.PfServiceScmUtil;
|
import nc.itf.scmpub.reference.uap.pf.PfServiceScmUtil;
|
||||||
import nc.itf.so.m30.self.ISaleOrderMaintain;
|
import nc.itf.so.m30.self.ISaleOrderMaintain;
|
||||||
|
@ -159,7 +158,7 @@ public class APISaleOrderMaitainImpl implements IAPISaleOrderMaitain {
|
||||||
childrenVO.setFtaxtypeflag(1);
|
childrenVO.setFtaxtypeflag(1);
|
||||||
UFDouble nexchangerate = getUFDouble_NullAsOne(childrenVO.getNexchangerate());
|
UFDouble nexchangerate = getUFDouble_NullAsOne(childrenVO.getNexchangerate());
|
||||||
childrenVO.setNexchangerate(nexchangerate);
|
childrenVO.setNexchangerate(nexchangerate);
|
||||||
// 处理单价(4位)和金额(2位)
|
// 处理数量、单价(4位)和金额(2位)
|
||||||
// 含税单价
|
// 含税单价
|
||||||
UFDouble nqtorigtaxprice = childrenVO.getNqtorigtaxprice();
|
UFDouble nqtorigtaxprice = childrenVO.getNqtorigtaxprice();
|
||||||
nqtorigtaxprice = nqtorigtaxprice.setScale(4, UFDouble.ROUND_HALF_UP);
|
nqtorigtaxprice = nqtorigtaxprice.setScale(4, UFDouble.ROUND_HALF_UP);
|
||||||
|
@ -186,7 +185,7 @@ public class APISaleOrderMaitainImpl implements IAPISaleOrderMaitain {
|
||||||
childrenVO.setNorigprice(norigprice);
|
childrenVO.setNorigprice(norigprice);
|
||||||
// 主含税净价
|
// 主含税净价
|
||||||
UFDouble norigtaxnetprice = childrenVO.getNorigtaxnetprice();
|
UFDouble norigtaxnetprice = childrenVO.getNorigtaxnetprice();
|
||||||
norigprice = norigtaxnetprice.setScale(4, UFDouble.ROUND_HALF_UP);
|
norigtaxnetprice = norigtaxnetprice.setScale(4, UFDouble.ROUND_HALF_UP);
|
||||||
childrenVO.setNorigtaxnetprice(norigtaxnetprice);
|
childrenVO.setNorigtaxnetprice(norigtaxnetprice);
|
||||||
// 主无税净价
|
// 主无税净价
|
||||||
UFDouble norignetprice = childrenVO.getNorignetprice();
|
UFDouble norignetprice = childrenVO.getNorignetprice();
|
||||||
|
@ -247,7 +246,7 @@ public class APISaleOrderMaitainImpl implements IAPISaleOrderMaitain {
|
||||||
childrenVO.setNnetprice(nnetprice);
|
childrenVO.setNnetprice(nnetprice);
|
||||||
Map<String, Object> goodsMap = getMaterlInfo(childrenVO.getCmaterialid());
|
Map<String, Object> goodsMap = getMaterlInfo(childrenVO.getCmaterialid());
|
||||||
String measrate = "1/1";
|
String measrate = "1/1";
|
||||||
if (goodsMap != null && StringUtils.isEmpty(goodsMap.getOrDefault("measrate","") + "")) {
|
if (goodsMap != null && StringUtils.isEmpty(goodsMap.getOrDefault("measrate", "") + "")) {
|
||||||
measrate = goodsMap.get("measrate") + "";
|
measrate = goodsMap.get("measrate") + "";
|
||||||
}
|
}
|
||||||
childrenVO.setVchangerate(measrate);// 换算率
|
childrenVO.setVchangerate(measrate);// 换算率
|
||||||
|
@ -518,7 +517,7 @@ public class APISaleOrderMaitainImpl implements IAPISaleOrderMaitain {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateFields(SaleOrderVO target, SaleOrderVO source) {
|
private void updateFields(SaleOrderVO target, SaleOrderVO source) throws BusinessException {
|
||||||
// 更新 SaleOrderHVO 字段
|
// 更新 SaleOrderHVO 字段
|
||||||
SaleOrderHVO targetHVO = target.getParentVO();
|
SaleOrderHVO targetHVO = target.getParentVO();
|
||||||
SaleOrderHVO sourceHVO = source.getParentVO();
|
SaleOrderHVO sourceHVO = source.getParentVO();
|
||||||
|
@ -569,25 +568,122 @@ public class APISaleOrderMaitainImpl implements IAPISaleOrderMaitain {
|
||||||
if (sourceBVO != null) {
|
if (sourceBVO != null) {
|
||||||
int status = targetBVO.getStatus();
|
int status = targetBVO.getStatus();
|
||||||
if (VOStatus.UPDATED == status) {
|
if (VOStatus.UPDATED == status) {
|
||||||
// 数量
|
|
||||||
UFDouble nnum = sourceBVO.getNnum();
|
|
||||||
targetBVO.setNnum(nnum);
|
|
||||||
targetBVO.setNastnum(nnum);
|
|
||||||
// targetBVO.setNqtunitnum(nnum);
|
|
||||||
// 价税合计
|
|
||||||
targetBVO.setNorigtaxmny(sourceBVO.getNorigtaxmny());
|
|
||||||
targetBVO.setCmaterialvid(sourceBVO.getCmaterialvid());
|
|
||||||
// 是否赠品
|
// 是否赠品
|
||||||
targetBVO.setBlargessflag(sourceBVO.getBlargessflag());
|
targetBVO.setBlargessflag(sourceBVO.getBlargessflag());
|
||||||
// 折本汇率
|
// 折本汇率
|
||||||
UFDouble nexchangerate = getUFDouble_NullAsOne(sourceBVO.getNexchangerate());
|
UFDouble nexchangerate = getUFDouble_NullAsOne(sourceBVO.getNexchangerate());
|
||||||
targetBVO.setNexchangerate(nexchangerate);
|
targetBVO.setNexchangerate(nexchangerate);
|
||||||
// 物料编码
|
// 物料编码
|
||||||
|
targetBVO.setCmaterialvid(sourceBVO.getCmaterialvid());
|
||||||
String cmaterialvid = sourceBVO.getCmaterialvid();
|
String cmaterialvid = sourceBVO.getCmaterialvid();
|
||||||
// 物料关联字段赋值
|
// 物料关联字段赋值
|
||||||
if (cmaterialvid != null && !cmaterialvid.isEmpty()) {
|
if (cmaterialvid != null && !cmaterialvid.isEmpty()) {
|
||||||
setMaterl(targetBVO);
|
setMaterl(targetBVO);
|
||||||
}
|
}
|
||||||
|
// 处理数量、单价(4位)和金额(2位)
|
||||||
|
// 含税单价
|
||||||
|
UFDouble nqtorigtaxprice = sourceBVO.getNqtorigtaxprice();
|
||||||
|
nqtorigtaxprice = nqtorigtaxprice.setScale(4, UFDouble.ROUND_HALF_UP);
|
||||||
|
targetBVO.setNqtorigtaxprice(nqtorigtaxprice);
|
||||||
|
// 无税单价
|
||||||
|
UFDouble nqtorigprice = sourceBVO.getNqtorigprice();
|
||||||
|
nqtorigprice = nqtorigprice.setScale(4, UFDouble.ROUND_HALF_UP);
|
||||||
|
targetBVO.setNqtorigprice(nqtorigprice);
|
||||||
|
// 含税净价
|
||||||
|
UFDouble nqtorigtaxnetprc = sourceBVO.getNqtorigtaxnetprc();
|
||||||
|
nqtorigtaxnetprc = nqtorigtaxnetprc.setScale(4, UFDouble.ROUND_HALF_UP);
|
||||||
|
targetBVO.setNqtorigtaxnetprc(nqtorigtaxnetprc);
|
||||||
|
// 无税净价
|
||||||
|
UFDouble nqtorignetprice = sourceBVO.getNqtorignetprice();
|
||||||
|
nqtorignetprice = nqtorignetprice.setScale(4, UFDouble.ROUND_HALF_UP);
|
||||||
|
targetBVO.setNqtorignetprice(nqtorignetprice);
|
||||||
|
// 主含税单价
|
||||||
|
UFDouble norigtaxprice = sourceBVO.getNorigtaxprice();
|
||||||
|
norigtaxprice = norigtaxprice.setScale(4, UFDouble.ROUND_HALF_UP);
|
||||||
|
targetBVO.setNorigtaxprice(norigtaxprice);
|
||||||
|
// 主无税单价
|
||||||
|
UFDouble norigprice = sourceBVO.getNorigprice();
|
||||||
|
norigprice = norigprice.setScale(4, UFDouble.ROUND_HALF_UP);
|
||||||
|
targetBVO.setNorigprice(norigprice);
|
||||||
|
// 主含税净价
|
||||||
|
UFDouble norigtaxnetprice = sourceBVO.getNorigtaxnetprice();
|
||||||
|
norigtaxnetprice = norigtaxnetprice.setScale(4, UFDouble.ROUND_HALF_UP);
|
||||||
|
targetBVO.setNorigtaxnetprice(norigtaxnetprice);
|
||||||
|
// 主无税净价
|
||||||
|
UFDouble norignetprice = sourceBVO.getNorignetprice();
|
||||||
|
norignetprice = norignetprice.setScale(4, UFDouble.ROUND_HALF_UP);
|
||||||
|
targetBVO.setNorignetprice(norignetprice);
|
||||||
|
// 本币无税金额
|
||||||
|
UFDouble nmny = sourceBVO.getNmny();
|
||||||
|
nmny = nmny.setScale(2, UFDouble.ROUND_HALF_UP);
|
||||||
|
targetBVO.setNmny(nmny);
|
||||||
|
targetBVO.setNcaltaxmny(nmny);// 计税金额
|
||||||
|
// 本币价税合计
|
||||||
|
UFDouble ntaxmny = sourceBVO.getNtaxmny();
|
||||||
|
ntaxmny = ntaxmny.setScale(2, UFDouble.ROUND_HALF_UP);
|
||||||
|
targetBVO.setNtaxmny(ntaxmny);
|
||||||
|
// 税额
|
||||||
|
UFDouble ntax = sourceBVO.getNtax();
|
||||||
|
ntax = ntax.setScale(2, UFDouble.ROUND_HALF_UP);
|
||||||
|
targetBVO.setNtax(ntax);
|
||||||
|
// 无税金额
|
||||||
|
UFDouble norigmny = sourceBVO.getNorigmny();
|
||||||
|
norigmny = norigmny.setScale(2, UFDouble.ROUND_HALF_UP);
|
||||||
|
targetBVO.setNorigmny(norigmny);
|
||||||
|
// 价税合计
|
||||||
|
UFDouble norigtaxmny = sourceBVO.getNorigtaxmny();
|
||||||
|
norigtaxmny = norigtaxmny.setScale(2, UFDouble.ROUND_HALF_UP);
|
||||||
|
targetBVO.setNorigtaxmny(norigtaxmny);
|
||||||
|
// 本币含税单价
|
||||||
|
UFDouble nqttaxprice = sourceBVO.getNqttaxprice();
|
||||||
|
nqttaxprice = nqttaxprice.setScale(4, UFDouble.ROUND_HALF_UP);
|
||||||
|
targetBVO.setNqttaxprice(nqttaxprice);
|
||||||
|
// 本币无税单价
|
||||||
|
UFDouble nqtprice = sourceBVO.getNqtprice();
|
||||||
|
nqtprice = nqtprice.setScale(4, UFDouble.ROUND_HALF_UP);
|
||||||
|
targetBVO.setNqtprice(nqtprice);
|
||||||
|
// 本币含税净价
|
||||||
|
UFDouble nqttaxnetprice = sourceBVO.getNqttaxnetprice();
|
||||||
|
nqttaxnetprice = nqttaxnetprice.setScale(4, UFDouble.ROUND_HALF_UP);
|
||||||
|
targetBVO.setNqttaxnetprice(nqttaxnetprice);
|
||||||
|
// 本币无税净价
|
||||||
|
UFDouble nqtnetprice = sourceBVO.getNqtnetprice();
|
||||||
|
nqtnetprice = nqtnetprice.setScale(4, UFDouble.ROUND_HALF_UP);
|
||||||
|
targetBVO.setNqtnetprice(nqtnetprice);
|
||||||
|
// 主本币含税单价
|
||||||
|
UFDouble ntaxprice = sourceBVO.getNtaxprice();
|
||||||
|
ntaxprice = ntaxprice.setScale(4, UFDouble.ROUND_HALF_UP);
|
||||||
|
targetBVO.setNtaxprice(ntaxprice);
|
||||||
|
// 主本币无税单价
|
||||||
|
UFDouble nprice = sourceBVO.getNprice();
|
||||||
|
nprice = nprice.setScale(4, UFDouble.ROUND_HALF_UP);
|
||||||
|
targetBVO.setNprice(nprice);
|
||||||
|
// 主本币含税净价
|
||||||
|
UFDouble ntaxnetprice = sourceBVO.getNtaxnetprice();
|
||||||
|
ntaxnetprice = ntaxnetprice.setScale(4, UFDouble.ROUND_HALF_UP);
|
||||||
|
targetBVO.setNtaxnetprice(ntaxnetprice);
|
||||||
|
// 主本币无税净价
|
||||||
|
UFDouble nnetprice = sourceBVO.getNnetprice();
|
||||||
|
nnetprice = nnetprice.setScale(4, UFDouble.ROUND_HALF_UP);
|
||||||
|
targetBVO.setNnetprice(nnetprice);
|
||||||
|
String measrate = "1/1";
|
||||||
|
if (StringUtils.isNotEmpty(targetBVO.getVchangerate())) {
|
||||||
|
measrate = targetBVO.getVchangerate();
|
||||||
|
}
|
||||||
|
// targetBVO.setVchangerate(measrate);// 换算率
|
||||||
|
// targetBVO.setVqtunitrate(measrate);// 报价换算率
|
||||||
|
UFDouble[] measrateNums = HslParseUtil.parseHsl(measrate);
|
||||||
|
UFDouble measrateNum = UFDouble.ONE_DBL;
|
||||||
|
if (null != measrateNums && measrateNums.length != 0) {
|
||||||
|
measrateNum = measrateNums[0].div(measrateNums[1]).setScale(2, 4);
|
||||||
|
}
|
||||||
|
// 主数量
|
||||||
|
UFDouble nnum = sourceBVO.getNnum().setScale(2, UFDouble.ROUND_HALF_UP);
|
||||||
|
targetBVO.setNnum(nnum);
|
||||||
|
UFDouble nastnum = nnum.multiply(measrateNum).setScale(2, UFDouble.ROUND_HALF_UP);
|
||||||
|
targetBVO.setNastnum(nastnum);// 数量
|
||||||
|
targetBVO.setNqtunitnum(nastnum);// 报价单位数量
|
||||||
|
|
||||||
// 自定义项赋值
|
// 自定义项赋值
|
||||||
String vbdef1 = sourceBVO.getVbdef1();// 合同编号
|
String vbdef1 = sourceBVO.getVbdef1();// 合同编号
|
||||||
Map<String, String> defList = getDefList("zdy-001");
|
Map<String, String> defList = getDefList("zdy-001");
|
||||||
|
@ -820,7 +916,7 @@ public class APISaleOrderMaitainImpl implements IAPISaleOrderMaitain {
|
||||||
*/
|
*/
|
||||||
private void setMaterl(SaleOrderBVO bVO) {
|
private void setMaterl(SaleOrderBVO bVO) {
|
||||||
String cmaterialvid = bVO.getCmaterialvid();
|
String cmaterialvid = bVO.getCmaterialvid();
|
||||||
UFDouble nnum = bVO.getNnum();
|
// UFDouble nnum = bVO.getNnum();
|
||||||
UFDouble ntaxrate = bVO.getNtaxrate();
|
UFDouble ntaxrate = bVO.getNtaxrate();
|
||||||
try {
|
try {
|
||||||
String sql = " select a.pk_material,a.pk_source, a.pk_measdoc cunitid,nvl(b.pk_measdoc,a.pk_measdoc) castunitid,nvl(b.measrate,'1/1') measrate "
|
String sql = " select a.pk_material,a.pk_source, a.pk_measdoc cunitid,nvl(b.pk_measdoc,a.pk_measdoc) castunitid,nvl(b.measrate,'1/1') measrate "
|
||||||
|
@ -830,8 +926,8 @@ public class APISaleOrderMaitainImpl implements IAPISaleOrderMaitain {
|
||||||
if (map == null) {
|
if (map == null) {
|
||||||
throw new BusinessException(cmaterialvid + "物料未查到");
|
throw new BusinessException(cmaterialvid + "物料未查到");
|
||||||
}
|
}
|
||||||
NCCForUAPLogger.debug(String.format("setMaterl: cqtunitid = [%S], cunitid = [%S], castunitid = [%S]",
|
// NCCForUAPLogger.debug(String.format("setMaterl: cqtunitid = [%S], cunitid = [%S], castunitid = [%S]",
|
||||||
map.get("cqtunitid"), map.get("cunitid"), map.get("castunitid")));
|
// map.get("cqtunitid"), map.get("cunitid"), map.get("castunitid")));
|
||||||
bVO.setAttributeValue("castunitid", map.get("castunitid"));
|
bVO.setAttributeValue("castunitid", map.get("castunitid"));
|
||||||
bVO.setAttributeValue("vchangerate", map.get("vchangerate"));
|
bVO.setAttributeValue("vchangerate", map.get("vchangerate"));
|
||||||
|
|
||||||
|
@ -841,13 +937,15 @@ public class APISaleOrderMaitainImpl implements IAPISaleOrderMaitain {
|
||||||
|
|
||||||
bVO.setAttributeValue("cmaterialid", map.get("pk_material"));
|
bVO.setAttributeValue("cmaterialid", map.get("pk_material"));
|
||||||
bVO.setAttributeValue("cmaterialvid", map.get("pk_material"));
|
bVO.setAttributeValue("cmaterialvid", map.get("pk_material"));
|
||||||
|
bVO.setVchangerate(map.get("measrate") + "");// 换算率
|
||||||
|
bVO.setVqtunitrate(map.get("measrate") + "");// 报价换算率
|
||||||
|
|
||||||
UFDouble nqtunitnum = BFPubTools.getUFDouble_NullAsZero(nnum)
|
// UFDouble nqtunitnum = BFPubTools.getUFDouble_NullAsZero(nnum)
|
||||||
.div(BFPubTools.getUFDouble_NullAsZero(map.get("measrate").toString().split("/")[0]));
|
// .div(BFPubTools.getUFDouble_NullAsZero(map.get("measrate").toString().split("/")[0]));
|
||||||
bVO.setAttributeValue("nqtunitnum", nqtunitnum);
|
// bVO.setAttributeValue("nqtunitnum", nqtunitnum);
|
||||||
|
|
||||||
sql = "select sl.pk_taxcode from bd_taxrate sl inner join bd_taxcode sm on sl.pk_taxcode=sm.pk_taxcode where sl.taxrate="
|
sql = "select sl.pk_taxcode from bd_taxrate sl inner join bd_taxcode sm on sl.pk_taxcode=sm.pk_taxcode where sl.taxrate="
|
||||||
+ ntaxrate + " and sm.pk_group<>'~' " + "";
|
+ ntaxrate + " and sm.pk_group<>'~' ";
|
||||||
|
|
||||||
String o_pk_project = (String) new BaseDAO().executeQuery(sql, new ColumnProcessor());
|
String o_pk_project = (String) new BaseDAO().executeQuery(sql, new ColumnProcessor());
|
||||||
// 税码
|
// 税码
|
||||||
|
@ -860,6 +958,7 @@ public class APISaleOrderMaitainImpl implements IAPISaleOrderMaitain {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取物料的信息
|
* 获取物料的信息
|
||||||
|
*
|
||||||
* @param pk_material
|
* @param pk_material
|
||||||
* @return
|
* @return
|
||||||
* @throws BusinessException
|
* @throws BusinessException
|
||||||
|
@ -904,11 +1003,8 @@ public class APISaleOrderMaitainImpl implements IAPISaleOrderMaitain {
|
||||||
for (Object body : bodyArr) {
|
for (Object body : bodyArr) {
|
||||||
Map<String, Object> bodydata = (Map<String, Object>) body;
|
Map<String, Object> bodydata = (Map<String, Object>) body;
|
||||||
if ("add".equals(bodydata.get("status"))) {
|
if ("add".equals(bodydata.get("status"))) {
|
||||||
String pkOrgV = hvo.getPk_org_v();
|
|
||||||
String pkOrg = hvo.getPk_org();
|
|
||||||
String pk_group = AppContext.getInstance().getPkGroup();
|
String pk_group = AppContext.getInstance().getPkGroup();
|
||||||
// 新数据的实体
|
// 新数据的实体
|
||||||
// SaleOrderBVO newBvo = (SaleOrderBVO) bvos[0].clone();
|
|
||||||
SaleOrderBVO newBvo = new SaleOrderBVO();
|
SaleOrderBVO newBvo = new SaleOrderBVO();
|
||||||
newBvo.setStatus(VOStatus.NEW);
|
newBvo.setStatus(VOStatus.NEW);
|
||||||
newBvo.setAttributeValue("pk_group", pk_group);
|
newBvo.setAttributeValue("pk_group", pk_group);
|
||||||
|
@ -921,128 +1017,134 @@ public class APISaleOrderMaitainImpl implements IAPISaleOrderMaitain {
|
||||||
cprojectid = (String) new BaseDAO().executeQuery(sql, new ColumnProcessor());
|
cprojectid = (String) new BaseDAO().executeQuery(sql, new ColumnProcessor());
|
||||||
}
|
}
|
||||||
newBvo.setAttributeValue("cprojectid", cprojectid);
|
newBvo.setAttributeValue("cprojectid", cprojectid);
|
||||||
// newBvo.setAttributeValue("ctrafficorgvid", pkOrg);
|
|
||||||
// newBvo.setAttributeValue("csendstockorgvid", pkOrg);
|
|
||||||
// newBvo.setAttributeValue("csendstordocid", pkOrg);
|
|
||||||
// newBvo.setAttributeValue("csendstockorgid", pkOrg);
|
|
||||||
// newBvo.setAttributeValue("carorgid", pkOrg);
|
|
||||||
// newBvo.setAttributeValue("carorgvid", pkOrg);
|
|
||||||
// newBvo.setAttributeValue("csettleorgid", pkOrg);
|
|
||||||
// newBvo.setAttributeValue("csettleorgvid", pkOrg);
|
|
||||||
|
|
||||||
newBvo.setAttributeValue("ctaxcountryid", "CN");
|
newBvo.setAttributeValue("ctaxcountryid", "CN");
|
||||||
newBvo.setAttributeValue("crececountryid", "CN");
|
newBvo.setAttributeValue("crececountryid", "CN");
|
||||||
newBvo.setAttributeValue("csendcountryid", "CN");
|
newBvo.setAttributeValue("csendcountryid", "CN");
|
||||||
|
|
||||||
newBvo.setAttributeValue("fbuysellflag", 1);
|
newBvo.setAttributeValue("fbuysellflag", 1);
|
||||||
|
// 折本汇率
|
||||||
UFDouble nexchangerateBip = getUFDouble_NullAsOne(bodydata.get("nexchangerate"));
|
UFDouble nexchangerateBip = getUFDouble_NullAsOne(bodydata.get("nexchangerate"));
|
||||||
newBvo.setNexchangerate(nexchangerateBip);
|
newBvo.setNexchangerate(nexchangerateBip);
|
||||||
// 设置物料的关联字段的值
|
// 设置物料的关联字段的值
|
||||||
newBvo.setCmaterialvid(bodydata.get("cmaterialvid") + "");
|
newBvo.setCmaterialvid(bodydata.get("cmaterialvid") + "");
|
||||||
UFDouble ntaxrate = BFPubTools.getUFDouble_NullAsZero(bodydata.get("ntaxrate"));
|
UFDouble ntaxrate = BFPubTools.getUFDouble_NullAsZero(bodydata.get("ntaxrate"));
|
||||||
UFDouble nnum = BFPubTools.getUFDouble_NullAsZero(bodydata.get("nnum"));
|
|
||||||
newBvo.setAttributeValue("ntaxrate", ntaxrate);
|
newBvo.setAttributeValue("ntaxrate", ntaxrate);
|
||||||
newBvo.setAttributeValue("nnum", nnum);
|
|
||||||
newBvo.setVbdef11(bodydata.getOrDefault("vbdef11", "") + "");
|
newBvo.setVbdef11(bodydata.getOrDefault("vbdef11", "") + "");
|
||||||
|
|
||||||
UFDouble norigtaxprice = BFPubTools.getUFDouble_NullAsZero(bodydata.get("norigtaxprice"));
|
|
||||||
newBvo.setAttributeValue("norigtaxprice", norigtaxprice);
|
|
||||||
UFDouble norigprice = BFPubTools.getUFDouble_NullAsZero(bodydata.get("norigprice"));
|
|
||||||
newBvo.setAttributeValue("norigprice", norigprice);
|
|
||||||
setMaterl(newBvo);
|
|
||||||
newBvo.setCsaleorderbid(null);
|
newBvo.setCsaleorderbid(null);
|
||||||
|
|
||||||
newBvo.setCcurrencyid(ybpk);
|
newBvo.setCcurrencyid(ybpk);
|
||||||
String zbbz = newBvo.getCcurrencyid();
|
|
||||||
|
|
||||||
newBvo.setFtaxtypeflag(1);
|
newBvo.setFtaxtypeflag(1);
|
||||||
|
// 行号
|
||||||
// 折本汇率
|
|
||||||
UFDouble nexchangerate = newBvo.getNexchangerate();
|
|
||||||
// 含税单价
|
|
||||||
UFDouble nqtorigtaxprice = BFPubTools.getUFDouble_NullAsZero(bodydata.get("nqtorigtaxprice"));
|
|
||||||
newBvo.setAttributeValue("nqtorigtaxprice", nqtorigtaxprice);
|
|
||||||
// 无税单价
|
|
||||||
UFDouble nqtorigprice = nqtorigtaxprice.div(UFDouble.ONE_DBL.add(ntaxrate.div(100)));
|
|
||||||
// 价税合计
|
|
||||||
UFDouble norigtaxmny = nqtorigtaxprice.multiply(newBvo.getNqtunitnum()).setScale(2, 4);
|
|
||||||
newBvo.setNorigtaxmny(norigtaxmny);
|
|
||||||
// 无税金额
|
|
||||||
UFDouble norigmny = nqtorigprice.multiply(newBvo.getNqtunitnum());
|
|
||||||
|
|
||||||
newBvo.setNorigmny(nc.itf.fi.pub.Currency.getFormaUfValue(ybpk, norigmny));
|
|
||||||
// 税额
|
|
||||||
newBvo.setNqtorigprice(nqtorigprice.setScale(4, 4));
|
|
||||||
|
|
||||||
// 无税本币金额单价
|
|
||||||
UFDouble taxspric = nqtorigtaxprice.div(UFDouble.ONE_DBL.add(ntaxrate.div(100)));
|
|
||||||
|
|
||||||
nqtorigprice = nqtorigprice.setScale(4, 4);
|
|
||||||
// nqtorigtaxnetprc--含税净价
|
|
||||||
newBvo.setNqtorigtaxnetprc(nqtorigtaxprice);
|
|
||||||
// ,nqtorignetprice --无税净价
|
|
||||||
newBvo.setNqtorignetprice(nqtorigprice);
|
|
||||||
String Vqtunitrate = newBvo.getVqtunitrate();
|
|
||||||
UFDouble dVqtunitrate = UFDouble.ONE_DBL;
|
|
||||||
if (Vqtunitrate != null) {
|
|
||||||
dVqtunitrate = BFPubTools.getUFDouble_NullAsZero(Vqtunitrate.split("/")[0]);
|
|
||||||
}
|
|
||||||
// ,norigtaxprice --主含税单价
|
|
||||||
|
|
||||||
UFDouble wsje = taxspric.multiply(nexchangerate).multiply(newBvo.getNqtunitnum());
|
|
||||||
if (ybpk.equals(zbbz) && BFPubTools.getString_TrimAsNull(newBvo.getCqtunitid())
|
|
||||||
.equals(BFPubTools.getString_TrimAsNull(newBvo.getCastunitid()))) {
|
|
||||||
wsje = taxspric.multiply(nexchangerate).multiply(newBvo.getNqtunitnum());
|
|
||||||
}
|
|
||||||
|
|
||||||
wsje = nc.itf.fi.pub.Currency.getFormaUfValue(zbbz, wsje);
|
|
||||||
// 本币无税金额
|
|
||||||
newBvo.setNorigtaxprice(nqtorigtaxprice.div(dVqtunitrate).setScale(4, 4));
|
|
||||||
// ,norigprice --主无税单价
|
|
||||||
newBvo.setNorigprice(nqtorigprice.div(dVqtunitrate).setScale(4, 4));
|
|
||||||
// ,norigtaxnetprice --主含税净价
|
|
||||||
newBvo.setNorigtaxnetprice(newBvo.getNorigtaxprice());
|
|
||||||
// ,norignetprice --主无税净价
|
|
||||||
newBvo.setNorignetprice(newBvo.getNorigprice());
|
|
||||||
// ncaltaxmny --计税金额
|
|
||||||
|
|
||||||
// ,nqttaxprice --本币含税单价
|
|
||||||
newBvo.setNqttaxprice(nqtorigtaxprice.multiply(nexchangerate));
|
|
||||||
// ,nqtprice --本币无税单价
|
|
||||||
UFDouble bbwsd = nqtorigtaxprice.div(UFDouble.ONE_DBL.add(ntaxrate.div(100)))
|
|
||||||
.multiply(nexchangerate);
|
|
||||||
newBvo.setNqtprice(bbwsd.setScale(4, 4));
|
|
||||||
// , nqttaxnetprice --本币含税净价
|
|
||||||
newBvo.setNqttaxnetprice(nqtorigtaxprice.multiply(nexchangerate));
|
|
||||||
// ,nqtnetprice --本币无税净价
|
|
||||||
UFDouble Nqtnetprice = nqtorigtaxprice.div(UFDouble.ONE_DBL.add(ntaxrate.div(100)))
|
|
||||||
.multiply(nexchangerate);
|
|
||||||
newBvo.setNqtnetprice(Nqtnetprice.setScale(4, 4));
|
|
||||||
// ,ntaxprice --主本币含税单价 , nprice --主本币无税单价
|
|
||||||
newBvo.setNtaxprice(nqtorigtaxprice.div(dVqtunitrate).multiply(nexchangerate).setScale(4, 4));
|
|
||||||
UFDouble Nprice = nqtorigtaxprice.div(dVqtunitrate).div(UFDouble.ONE_DBL.add(ntaxrate.div(100)))
|
|
||||||
.multiply(nexchangerate);
|
|
||||||
newBvo.setNprice(Nprice.setScale(4, 4));
|
|
||||||
// ,ntaxnetprice --主本币含税净价
|
|
||||||
newBvo.setNtaxnetprice(
|
|
||||||
nqtorigtaxprice.div(dVqtunitrate).multiply(nexchangerate).setScale(4, 4));
|
|
||||||
// ,nnetprice --主本币无税净价
|
|
||||||
UFDouble nnetprice = nqtorigtaxprice.div(UFDouble.ONE_DBL.add(ntaxrate.div(100)))
|
|
||||||
.div(dVqtunitrate);
|
|
||||||
nnetprice = nnetprice.multiply(nexchangerate).setScale(4, 4);
|
|
||||||
newBvo.setNnetprice(nnetprice);
|
|
||||||
// nmny --本币无税金额
|
|
||||||
// ntaxmny-- 本币价税合计
|
|
||||||
newBvo.setNmny(Currency.getFormaUfValue(zbbz, norigmny.multiply(nexchangerate)));
|
|
||||||
newBvo.setNtaxmny(nqtorigtaxprice.multiply(nexchangerate).multiply(newBvo.getNqtunitnum())
|
|
||||||
.setScale(2, 4));
|
|
||||||
newBvo.setNcaltaxmny(wsje);
|
|
||||||
UFDouble ntax = norigtaxmny.multiply(nexchangerate).sub(wsje);
|
|
||||||
newBvo.setNtax(ntax.setScale(2, 4));
|
|
||||||
newBvo.setCrowno(bodydata.get("crowno") + "");
|
newBvo.setCrowno(bodydata.get("crowno") + "");
|
||||||
// 是否赠品
|
// 是否赠品
|
||||||
String blargessflag = bodydata.getOrDefault("blargessflag", "N") + "";
|
String blargessflag = bodydata.getOrDefault("blargessflag", "N") + "";
|
||||||
newBvo.setBlargessflag(UFBoolean.valueOf(blargessflag));
|
newBvo.setBlargessflag(UFBoolean.valueOf(blargessflag));
|
||||||
|
|
||||||
|
setMaterl(newBvo);
|
||||||
|
|
||||||
|
// 处理数量、单价(4位)和金额(2位)
|
||||||
|
// 含税单价
|
||||||
|
UFDouble nqtorigtaxprice = BFPubTools.getUFDouble_NullAsZero(bodydata.get("nqtorigtaxprice"));
|
||||||
|
nqtorigtaxprice = nqtorigtaxprice.setScale(4, UFDouble.ROUND_HALF_UP);
|
||||||
|
newBvo.setNqtorigtaxprice(nqtorigtaxprice);
|
||||||
|
// 无税单价
|
||||||
|
UFDouble nqtorigprice = BFPubTools.getUFDouble_NullAsZero(bodydata.get("nqtorigtaxprice"));
|
||||||
|
nqtorigprice = nqtorigprice.setScale(4, UFDouble.ROUND_HALF_UP);
|
||||||
|
newBvo.setNqtorigprice(nqtorigprice);
|
||||||
|
// 含税净价
|
||||||
|
UFDouble nqtorigtaxnetprc = BFPubTools.getUFDouble_NullAsZero(bodydata.get("nqtorigtaxprice"));
|
||||||
|
nqtorigtaxnetprc = nqtorigtaxnetprc.setScale(4, UFDouble.ROUND_HALF_UP);
|
||||||
|
newBvo.setNqtorigtaxnetprc(nqtorigtaxnetprc);
|
||||||
|
// 无税净价
|
||||||
|
UFDouble nqtorignetprice = BFPubTools.getUFDouble_NullAsZero(bodydata.get("nqtorigtaxprice"));
|
||||||
|
nqtorignetprice = nqtorignetprice.setScale(4, UFDouble.ROUND_HALF_UP);
|
||||||
|
newBvo.setNqtorignetprice(nqtorignetprice);
|
||||||
|
// 主含税单价
|
||||||
|
UFDouble norigtaxprice = BFPubTools.getUFDouble_NullAsZero(bodydata.get("nqtorigtaxprice"));
|
||||||
|
norigtaxprice = norigtaxprice.setScale(4, UFDouble.ROUND_HALF_UP);
|
||||||
|
newBvo.setNorigtaxprice(norigtaxprice);
|
||||||
|
// 主无税单价
|
||||||
|
UFDouble norigprice = BFPubTools.getUFDouble_NullAsZero(bodydata.get("nqtorigtaxprice"));
|
||||||
|
norigprice = norigprice.setScale(4, UFDouble.ROUND_HALF_UP);
|
||||||
|
newBvo.setNorigprice(norigprice);
|
||||||
|
// 主含税净价
|
||||||
|
UFDouble norigtaxnetprice = BFPubTools.getUFDouble_NullAsZero(bodydata.get("nqtorigtaxprice"));
|
||||||
|
norigprice = norigtaxnetprice.setScale(4, UFDouble.ROUND_HALF_UP);
|
||||||
|
newBvo.setNorigtaxnetprice(norigtaxnetprice);
|
||||||
|
// 主无税净价
|
||||||
|
UFDouble norignetprice = BFPubTools.getUFDouble_NullAsZero(bodydata.get("nqtorigtaxprice"));
|
||||||
|
norignetprice = norignetprice.setScale(4, UFDouble.ROUND_HALF_UP);
|
||||||
|
newBvo.setNorignetprice(norignetprice);
|
||||||
|
// 本币无税金额
|
||||||
|
UFDouble nmny = BFPubTools.getUFDouble_NullAsZero(bodydata.get("nqtorigtaxprice"));
|
||||||
|
nmny = nmny.setScale(2, UFDouble.ROUND_HALF_UP);
|
||||||
|
newBvo.setNmny(nmny);
|
||||||
|
newBvo.setNcaltaxmny(nmny);// 计税金额
|
||||||
|
// 本币价税合计
|
||||||
|
UFDouble ntaxmny = BFPubTools.getUFDouble_NullAsZero(bodydata.get("nqtorigtaxprice"));
|
||||||
|
ntaxmny = ntaxmny.setScale(2, UFDouble.ROUND_HALF_UP);
|
||||||
|
newBvo.setNtaxmny(ntaxmny);
|
||||||
|
// 税额
|
||||||
|
UFDouble ntax = BFPubTools.getUFDouble_NullAsZero(bodydata.get("nqtorigtaxprice"));
|
||||||
|
ntax = ntax.setScale(2, UFDouble.ROUND_HALF_UP);
|
||||||
|
newBvo.setNtax(ntax);
|
||||||
|
// 无税金额
|
||||||
|
UFDouble norigmny = BFPubTools.getUFDouble_NullAsZero(bodydata.get("nqtorigtaxprice"));
|
||||||
|
norigmny = norigmny.setScale(2, UFDouble.ROUND_HALF_UP);
|
||||||
|
newBvo.setNorigmny(norigmny);
|
||||||
|
// 价税合计
|
||||||
|
UFDouble norigtaxmny = BFPubTools.getUFDouble_NullAsZero(bodydata.get("nqtorigtaxprice"));
|
||||||
|
norigtaxmny = norigtaxmny.setScale(2, UFDouble.ROUND_HALF_UP);
|
||||||
|
newBvo.setNorigtaxmny(norigtaxmny);
|
||||||
|
// 本币含税单价
|
||||||
|
UFDouble nqttaxprice = BFPubTools.getUFDouble_NullAsZero(bodydata.get("nqtorigtaxprice"));
|
||||||
|
nqttaxprice = nqttaxprice.setScale(4, UFDouble.ROUND_HALF_UP);
|
||||||
|
newBvo.setNqttaxprice(nqttaxprice);
|
||||||
|
// 本币无税单价
|
||||||
|
UFDouble nqtprice = BFPubTools.getUFDouble_NullAsZero(bodydata.get("nqtorigtaxprice"));
|
||||||
|
nqtprice = nqtprice.setScale(4, UFDouble.ROUND_HALF_UP);
|
||||||
|
newBvo.setNqtprice(nqtprice);
|
||||||
|
// 本币含税净价
|
||||||
|
UFDouble nqttaxnetprice = BFPubTools.getUFDouble_NullAsZero(bodydata.get("nqtorigtaxprice"));
|
||||||
|
nqttaxnetprice = nqttaxnetprice.setScale(4, UFDouble.ROUND_HALF_UP);
|
||||||
|
newBvo.setNqttaxnetprice(nqttaxnetprice);
|
||||||
|
// 本币无税净价
|
||||||
|
UFDouble nqtnetprice = BFPubTools.getUFDouble_NullAsZero(bodydata.get("nqtorigtaxprice"));
|
||||||
|
nqtnetprice = nqtnetprice.setScale(4, UFDouble.ROUND_HALF_UP);
|
||||||
|
newBvo.setNqtnetprice(nqtnetprice);
|
||||||
|
// 主本币含税单价
|
||||||
|
UFDouble ntaxprice = BFPubTools.getUFDouble_NullAsZero(bodydata.get("nqtorigtaxprice"));
|
||||||
|
ntaxprice = ntaxprice.setScale(4, UFDouble.ROUND_HALF_UP);
|
||||||
|
newBvo.setNtaxprice(ntaxprice);
|
||||||
|
// 主本币无税单价
|
||||||
|
UFDouble nprice = BFPubTools.getUFDouble_NullAsZero(bodydata.get("nqtorigtaxprice"));
|
||||||
|
nprice = nprice.setScale(4, UFDouble.ROUND_HALF_UP);
|
||||||
|
newBvo.setNprice(nprice);
|
||||||
|
// 主本币含税净价
|
||||||
|
UFDouble ntaxnetprice = BFPubTools.getUFDouble_NullAsZero(bodydata.get("nqtorigtaxprice"));
|
||||||
|
ntaxnetprice = ntaxnetprice.setScale(4, UFDouble.ROUND_HALF_UP);
|
||||||
|
newBvo.setNtaxnetprice(ntaxnetprice);
|
||||||
|
// 主本币无税净价
|
||||||
|
UFDouble nnetprice = BFPubTools.getUFDouble_NullAsZero(bodydata.get("nqtorigtaxprice"));
|
||||||
|
nnetprice = nnetprice.setScale(4, UFDouble.ROUND_HALF_UP);
|
||||||
|
newBvo.setNnetprice(nnetprice);
|
||||||
|
String measrate = "1/1";
|
||||||
|
if (StringUtils.isNotEmpty(newBvo.getVchangerate())) {
|
||||||
|
measrate = newBvo.getVchangerate();
|
||||||
|
}
|
||||||
|
// newBvo.setVchangerate(measrate);// 换算率
|
||||||
|
// newBvo.setVqtunitrate(measrate);// 报价换算率
|
||||||
|
UFDouble[] measrateNums = HslParseUtil.parseHsl(measrate);
|
||||||
|
UFDouble measrateNum = UFDouble.ONE_DBL;
|
||||||
|
if (null != measrateNums && measrateNums.length != 0) {
|
||||||
|
measrateNum = measrateNums[0].div(measrateNums[1]).setScale(2, 4);
|
||||||
|
}
|
||||||
|
// 主数量
|
||||||
|
UFDouble nnum = BFPubTools.getUFDouble_NullAsZero(bodydata.get("nnum")).setScale(2, UFDouble.ROUND_HALF_UP);
|
||||||
|
newBvo.setNnum(nnum);
|
||||||
|
UFDouble nastnum = nnum.multiply(measrateNum).setScale(2, UFDouble.ROUND_HALF_UP);
|
||||||
|
newBvo.setNastnum(nastnum);// 数量
|
||||||
|
newBvo.setNqtunitnum(nastnum);// 报价单位数量
|
||||||
bvoList.add(newBvo);
|
bvoList.add(newBvo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1052,7 +1154,7 @@ public class APISaleOrderMaitainImpl implements IAPISaleOrderMaitain {
|
||||||
}
|
}
|
||||||
|
|
||||||
// 填充默认值
|
// 填充默认值
|
||||||
new SaleOrderSaveFillValue().setDefValue(copyVOs);
|
new SaleOrderSaveFillValue().setDefValue1(copyVOs);
|
||||||
Map<String, List<SaleOrderBVO>> listMap = new HashMap<>();
|
Map<String, List<SaleOrderBVO>> listMap = new HashMap<>();
|
||||||
for (SaleOrderVO copyVO : copyVOs) {
|
for (SaleOrderVO copyVO : copyVOs) {
|
||||||
List<SaleOrderBVO> newBvoList = new ArrayList<>();
|
List<SaleOrderBVO> newBvoList = new ArrayList<>();
|
||||||
|
|
Loading…
Reference in New Issue