补丁编码:SUPPORT-YonBIP高级版2312-Special-20251107095919-135697
This commit is contained in:
parent
6910229b30
commit
f201d40bca
|
|
@ -0,0 +1,123 @@
|
|||
//
|
||||
// Source code recreated from a .class file by IntelliJ IDEA
|
||||
// (powered by FernFlower decompiler)
|
||||
//
|
||||
|
||||
package nc.pubimpl.ic.api.fill;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import nc.bs.ic.pub.env.ICBSContext;
|
||||
import nc.vo.ic.m45.entity.PurchaseInVO;
|
||||
import nc.vo.ic.m4c.entity.SaleOutVO;
|
||||
import nc.vo.ic.pub.calc.BusiCalculator;
|
||||
import nc.vo.ic.pub.calc.PriceAndMoneyCalculator;
|
||||
import nc.vo.ic.pub.calc.WeightAndVolumeCalc;
|
||||
import nc.vo.ic.pub.calc.PriceAndMoneyCalculator.MnyCalcType;
|
||||
import nc.vo.ic.pub.define.IBizObject;
|
||||
import nc.vo.pub.BusinessException;
|
||||
import nc.vo.pub.CircularlyAccessibleValueObject;
|
||||
import nc.vo.pub.lang.UFDouble;
|
||||
import nc.vo.pubapp.pattern.model.entity.bill.AbstractBill;
|
||||
import nc.vo.pubapp.scale.ScaleUtils;
|
||||
import nc.vo.scmpub.fill.billfill.IBillValueFill;
|
||||
import nc.vo.scmpub.util.ArrayUtil;
|
||||
|
||||
public class ICPriceAndMoneyCalculateBillFill implements IBillValueFill {
|
||||
public ICPriceAndMoneyCalculateBillFill() {
|
||||
}
|
||||
|
||||
public AbstractBill[] fillValue(AbstractBill[] billVOs) throws BusinessException {
|
||||
if (ArrayUtil.isEmpty(billVOs)) {
|
||||
return null;
|
||||
} else {
|
||||
List<CircularlyAccessibleValueObject> numNotNull = new ArrayList();
|
||||
List<CircularlyAccessibleValueObject> numNullButAstNumNotNullbodys = new ArrayList();
|
||||
this.putVO(billVOs, numNotNull, numNullButAstNumNotNullbodys);
|
||||
BusiCalculator cal = BusiCalculator.getBusiCalculatorAtBS();
|
||||
if (numNullButAstNumNotNullbodys.size() > 0) {
|
||||
cal.calcNum((CircularlyAccessibleValueObject[])numNullButAstNumNotNullbodys.toArray(new CircularlyAccessibleValueObject[0]), "nassistnum");
|
||||
numNotNull.addAll(numNullButAstNumNotNullbodys);
|
||||
}
|
||||
|
||||
if (numNotNull.size() == 0) {
|
||||
return billVOs;
|
||||
} else {
|
||||
CircularlyAccessibleValueObject[] calVOs = (CircularlyAccessibleValueObject[])numNotNull.toArray(new CircularlyAccessibleValueObject[0]);
|
||||
cal.calcNum(calVOs, "nnum");
|
||||
cal.calcShouldAstNum(calVOs, "vchangerate");
|
||||
if (this.isNeedCalMny(billVOs)) {
|
||||
if (billVOs[0].getChildrenVO()[0].getAttributeValue("nqtorigprice") != null) {
|
||||
cal.calcMnyNCC(calVOs, "nqtorigprice");
|
||||
}
|
||||
|
||||
cal.calcMny(calVOs, "nnum");
|
||||
}
|
||||
|
||||
ScaleUtils scaleUtil = ScaleUtils.getScaleUtilAtBS();
|
||||
ICBSContext context = new ICBSContext();
|
||||
PriceAndMoneyCalculator pcalc = new PriceAndMoneyCalculator(scaleUtil, context.getOrgInfo());
|
||||
|
||||
for(CircularlyAccessibleValueObject bvo : calVOs) {
|
||||
String pk_finance = context.getOrgInfo().getFinanceOrgIDByCalBodyID((String)bvo.getAttributeValue("pk_org"));
|
||||
if (bvo.getAttributeValue("ncostprice") != null && bvo.getAttributeValue("ncostmny") != null) {
|
||||
pcalc.calcPriceMny((IBizObject)bvo, MnyCalcType.Mny, pk_finance);
|
||||
} else {
|
||||
pcalc.calcPriceMny((IBizObject)bvo, MnyCalcType.Num, pk_finance);
|
||||
}
|
||||
}
|
||||
|
||||
WeightAndVolumeCalc wcalc = new WeightAndVolumeCalc(scaleUtil);
|
||||
IBizObject[] calVOObjs = new IBizObject[calVOs.length];
|
||||
|
||||
for(int i = 0; i < calVOObjs.length; ++i) {
|
||||
calVOObjs[i] = (IBizObject)calVOs[i];
|
||||
}
|
||||
|
||||
wcalc.calculator(calVOObjs, context.getInvInfo());
|
||||
return billVOs;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void putVO(AbstractBill[] billVOs, List<CircularlyAccessibleValueObject> numNotNull, List<CircularlyAccessibleValueObject> numNullButAstNumNotNullbodys) {
|
||||
for(AbstractBill billVO : billVOs) {
|
||||
CircularlyAccessibleValueObject[] bodyVOs = billVO.getAllChildrenVO();
|
||||
if (!ArrayUtil.isEmpty(billVOs)) {
|
||||
for(CircularlyAccessibleValueObject bodyVO : bodyVOs) {
|
||||
int reuslt = this.getNumStatue(bodyVO);
|
||||
switch (reuslt) {
|
||||
case -1:
|
||||
default:
|
||||
break;
|
||||
case 0:
|
||||
numNotNull.add(bodyVO);
|
||||
break;
|
||||
case 1:
|
||||
numNullButAstNumNotNullbodys.add(bodyVO);
|
||||
break;
|
||||
case 2:
|
||||
numNotNull.add(bodyVO);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private int getNumStatue(CircularlyAccessibleValueObject bodyVO) {
|
||||
UFDouble nnum = (UFDouble)bodyVO.getAttributeValue("nnum");
|
||||
UFDouble nastnum = (UFDouble)bodyVO.getAttributeValue("nassistnum");
|
||||
if (nnum == null && nastnum == null) {
|
||||
return -1;
|
||||
} else if (nnum != null && nastnum == null) {
|
||||
return 0;
|
||||
} else {
|
||||
return nnum == null && nastnum != null ? 1 : 2;
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isNeedCalMny(AbstractBill[] billVOs) {
|
||||
return billVOs[0] instanceof SaleOutVO || billVOs[0] instanceof PurchaseInVO;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
//
|
||||
// Source code recreated from a .class file by IntelliJ IDEA
|
||||
// (powered by FernFlower decompiler)
|
||||
//
|
||||
|
||||
package nccloud.api.impl.ic.m45.fill;
|
||||
|
||||
import nc.bs.ic.pub.base.ICRule;
|
||||
import nc.vo.ic.m45.entity.PurchaseInVO;
|
||||
import nc.vo.ic.pub.rule.ICCountryInfoFillRule;
|
||||
import nc.vo.ic.pub.rule.ICCvendoridFillRule;
|
||||
import nc.vo.ic.pub.rule.ICCwarehouseidFillRule;
|
||||
import nc.vo.ic.pub.rule.ICMaterialFullRule;
|
||||
import nc.vo.ic.pub.rule.ICNchangestdrateFillRule;
|
||||
import nc.vo.ic.pub.rule.ICNtaxrateFillRule;
|
||||
import nc.vo.ic.pub.rule.ICOrgFillRule;
|
||||
import nc.vo.ic.pub.rule.ICTranstypeFillRule;
|
||||
import nc.vo.ic.pub.rule.processer.ICAroundProcesser;
|
||||
import nccloud.api.impl.ic.m45.rule.Choose45DefaultFillRule;
|
||||
|
||||
public class PurchaseInSaveFillValue {
|
||||
public PurchaseInSaveFillValue() {
|
||||
}
|
||||
|
||||
public PurchaseInVO[] setDefaultValue(PurchaseInVO[] vos) {
|
||||
ICAroundProcesser<PurchaseInVO> processer = new ICAroundProcesser();
|
||||
ICRule<PurchaseInVO> rule = new ICOrgFillRule();
|
||||
processer.addFillvalueRule(rule);
|
||||
ICRule<PurchaseInVO> var4 = new ICCountryInfoFillRule();
|
||||
processer.addFillvalueRule(var4);
|
||||
ICRule<PurchaseInVO> var5 = new ICCvendoridFillRule();
|
||||
processer.addFillvalueRule(var5);
|
||||
ICRule<PurchaseInVO> var6 = new ICCwarehouseidFillRule();
|
||||
processer.addFillvalueRule(var6);
|
||||
ICRule<PurchaseInVO> var7 = new ICTranstypeFillRule();
|
||||
processer.addFillvalueRule(var7);
|
||||
ICRule<PurchaseInVO> var8 = new ICMaterialFullRule();
|
||||
processer.addFillvalueRule(var8);
|
||||
ICRule<PurchaseInVO> var9 = new Choose45DefaultFillRule();
|
||||
processer.addFillvalueRule(var9);
|
||||
ICRule<PurchaseInVO> var10 = new ICNchangestdrateFillRule();
|
||||
processer.addFillvalueRule(var10);
|
||||
ICRule<PurchaseInVO> var11 = new ICNtaxrateFillRule();
|
||||
processer.addFillvalueRule(var11);
|
||||
processer.fillvalue(vos);
|
||||
return vos;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue