销售订单客户与收款单客户不一致取消校验

This commit is contained in:
lihao 2025-04-15 13:53:26 +08:00
parent 9901f045eb
commit d5c85788d9
2 changed files with 507 additions and 0 deletions

View File

@ -0,0 +1,328 @@
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
package nc.bs.arap.busireg;
import java.sql.SQLException;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import nc.bs.arap.bill.ArapBillDAO;
import nc.bs.arap.util.ArapVOUtils;
import nc.bs.dao.DAOException;
import nc.bs.pf.pub.PfDataCache;
import nc.vo.arap.basebill.BaseAggVO;
import nc.vo.arap.basebill.BaseBillVO;
import nc.vo.arap.basebill.BaseItemVO;
import nc.vo.arap.pay.PayBillVO;
import nc.vo.arap.pub.BillEnumCollection.CommissionPayType;
import nc.vo.arap.pub.BillEnumCollection.ObjType;
import nc.vo.arap.utils.StringUtil;
import nc.vo.ml.NCLangRes4VoTransl;
import nc.vo.pub.lang.UFBoolean;
import nc.vo.pub.lang.UFDouble;
public class ArapBillUpdateChecker implements BillUpdateChecker {
final List<String> jckBillTypes = Arrays.asList("5801", "5818");
final String STUFF_SETTLE_BILL = "4D39";
final String EXPENSES_SETTLE_BILL = "4D83";
final String PLAN_MONEY_BILL = "4D48";
final String PROJECT_SETTLE_BILL = "4D50";
final String SELL_CONTRACT_BILL = "4D60";
final String GATHERING_PLAN_BILL = "4D62";
final String PREPAY_BILL = "4D46";
final String CONTRACT_BILL = "4D65";
final String VISACONFIRM_BILL = "4D33";
final String DEDUCTIONS_BILL = "4D86";
final String REGISTRATION_BILL = "4D53";
final String SELL_EXPENSES_BILL = "35";
final String BILLTYPE_36S3 = "36S3";
final String BILLTYPE_5F = "5F";
final List<String> immutableRows = Arrays.asList("5790", "5760", "5820", "6090", "5818", "4A2F", "4A3F", "4BL0", "4BL3", "4A3H", "4A77", "4A87", "21", "2201", "36J3", "4D46", "264X", "35", "4D39", "4D83", "4D48", "4D50", "4D60", "4D62", "4D46", "5F");
final List<String> addAllowDelNotAllowRows = Arrays.asList("F0", "F1", "F2", "F3");
final List<String> delAllowAddNotAllowRows = Arrays.asList("36D1");
final List<String> firstEditableFields = Arrays.asList("36D1");
final List<String> secondEditableFields = Arrays.asList("264X", "264x");
public ArapBillUpdateChecker() {
}
public boolean isMatch(BaseAggVO vo) {
return true;
}
public boolean canUpdateBillWithoutCtrl(BaseAggVO vo) {
BaseItemVO[] vosNew = (BaseItemVO[])vo.getChildrenVO();
String top_billtype = vosNew[0].getTop_billtype();
return "5720".equals(top_billtype) || "4B36".equals(top_billtype);
}
public String canAddLine(String top_billtype, List<BaseItemVO> addlines) {
return top_billtype != null && this.immutableRows.contains(top_billtype) ? NCLangRes4VoTransl.getNCLangRes().getStrByID("2006arappub0316_0", "02006arappub0316-0027", (String)null, new String[]{PfDataCache.getBillType(top_billtype).getBilltypenameOfCurrLang()}) : null;
}
public String canDeleteLine(String top_billtype, List<BaseItemVO> deletelines) {
boolean flag = true;
if (top_billtype != null && this.immutableRows.contains(top_billtype)) {
flag = false;
}
return !flag ? NCLangRes4VoTransl.getNCLangRes().getStrByID("2006arappub0316_0", "02006arappub0316-0026", (String)null, new String[]{PfDataCache.getBillType(top_billtype).getBilltypenameOfCurrLang()}) : null;
}
public String canUpdateBodyFieldValue(Map<String, Map<String, Object[]>> fieldvalue, BaseAggVO aggvo, BaseAggVO oldaggvo) {
BaseBillVO billvo = (BaseBillVO)aggvo.getParentVO();
BaseItemVO[] vosNew = (BaseItemVO[])aggvo.getChildrenVO();
boolean otherSystemPushBill = ArapVOUtils.isOtherSystemPushBill(billvo, vosNew[0].getTop_billtype());
UFBoolean sddreversalflag = UFBoolean.FALSE;
if (billvo instanceof PayBillVO) {
sddreversalflag = ((PayBillVO)billvo).getSddreversalflag();
if (null == sddreversalflag) {
sddreversalflag = UFBoolean.FALSE;
}
}
if (!otherSystemPushBill && !sddreversalflag.booleanValue()) {
return null;
} else {
String errmsg = null;
for(BaseItemVO vo : vosNew) {
Map<String, Object[]> valuechangeMap = (Map)fieldvalue.get(vo.getPrimaryKey());
if (vo.getPrimaryKey() != null && valuechangeMap != null && !valuechangeMap.isEmpty() && vo.getTop_billid() != null) {
String topBilltype = vo.getTop_billtype();
if (this.firstEditableFields.contains(topBilltype)) {
break;
}
String[] s1 = new String[]{"objtype", "pk_currtype", "money_de", "money_cr", "groupdebit", "groupcrebit", "groupnotax_cre", "groupnotax_de", "payaccount", "recaccount", "matcustcode"};
String[] s2 = new String[]{NCLangRes4VoTransl.getNCLangRes().getStrByID("common", "UC000-0001935"), NCLangRes4VoTransl.getNCLangRes().getStrByID("common", "UC000-0001755"), NCLangRes4VoTransl.getNCLangRes().getStrByID("common", "UC000-0004112"), NCLangRes4VoTransl.getNCLangRes().getStrByID("common", "UC000-0004112"), NCLangRes4VoTransl.getNCLangRes().getStrByID("common", "UC000-0004112"), NCLangRes4VoTransl.getNCLangRes().getStrByID("common", "UC000-0004112"), NCLangRes4VoTransl.getNCLangRes().getStrByID("common", "UC000-0004112"), NCLangRes4VoTransl.getNCLangRes().getStrByID("common", "UC000-0004112"), NCLangRes4VoTransl.getNCLangRes().getStrByID("2006v61008_0", "02006v61008-0301"), NCLangRes4VoTransl.getNCLangRes().getStrByID("2006v61008_0", "02006v61008-0302"), NCLangRes4VoTransl.getNCLangRes().getStrByID("receivablebill", "2receive-000119")};
List<String> list = Arrays.asList("money_de", "money_cr", "groupdebit", "groupcrebit", "groupnotax_cre", "groupnotax_de");
int t = -1;
for(String s : s1) {
++t;
Object[] values = valuechangeMap.get(s);
if (values != null) {
Object newvalue = values[0];
Object oldvalue = values[1];
if ((!s.equals("payaccount") && !s.equals("recaccount") || oldvalue != null && oldvalue.toString().length() == 20) && (!list.contains(s) || !"FCT1".equals(topBilltype)) && !"FCT2".equals(topBilltype) && !"36U5".equals(topBilltype) && (!list.contains(s) || !"36S3".equals(topBilltype)) && (!s.equals("matcustcode") || !"434C".equals(topBilltype) || !"23E0".equals(vo.getPk_billtype())) && (oldvalue != null || newvalue == null) && (!(vo.getAttributeValue(s) instanceof UFDouble) || (vo.getCommpaytype() == null || !CommissionPayType.REFUSECOMMPAY.VALUE.equals(vo.getCommpaytype()) && !CommissionPayType.COMMPAYPARTLY.VALUE.equals(vo.getCommpaytype())) && !this.jckBillTypes.contains(topBilltype))) {
errmsg = NCLangRes4VoTransl.getNCLangRes().getStrByID("2006pub_0", "02006pub-0432", (String)null, new String[]{s2[t]});
break;
}
}
}
if (!StringUtil.isEmpty(errmsg) || this.secondEditableFields.contains(topBilltype)) {
break;
}
String[] s3 = new String[]{"customer", "supplier", "pk_deptid", "pk_psndoc"};
String[] s4 = new String[]{NCLangRes4VoTransl.getNCLangRes().getStrByID("common", "UC000-0001589"), NCLangRes4VoTransl.getNCLangRes().getStrByID("common", "UC000-0000275"), NCLangRes4VoTransl.getNCLangRes().getStrByID("common", "UC000-0004064"), NCLangRes4VoTransl.getNCLangRes().getStrByID("2006pub_0", "02006pub-0340")};
int[] s5 = new int[]{ObjType.CUSTOMER.VALUE, ObjType.SUPPLIER.VALUE, ObjType.DEP.VALUE, ObjType.PERSON.VALUE};
int m = -1;
for(int s : s5) {
++m;
if (vo.getObjtype() == s) {
Object[] values = valuechangeMap.get(s3[m]);
// if(vo.getMetaData().getEntityName().equals("arap.gatheritem") && vo.getSrc_billtype().equals("30") && s3[m].equals("customer")){
// break;
// }
if (values != null) {
Object oldvalue = values[1];
if (oldvalue != null && oldvalue.toString().length() == 20) {
errmsg = NCLangRes4VoTransl.getNCLangRes().getStrByID("2006pub_0", "02006pub-0432", (String)null, new String[]{s4[m]});
break;
}
}
}
}
if (!StringUtil.isEmpty(errmsg)) {
break;
}
List<String> ctrlPROJECT = Arrays.asList("4D39", "4D83", "4D48", "4D50", "4D60", "4D62", "4D46", "4D65", "4D33", "4D86", "4D53");
List<String> ctrlCONTRACTNO = Arrays.asList("4D39", "4D62", "4D48", "4D50");
List<String> ctrlMATERIAL = Arrays.asList("4D50", "4D48", "4D83", "4D53", "4D65", "4D33", "4D86");
List<String> ctrlPROJECT_TASK = Arrays.asList("4D83", "4D46", "4D48", "4D50", "4D39");
if (ctrlPROJECT.contains(topBilltype)) {
Object[] values = valuechangeMap.get("project");
if (values != null) {
String projectLang = NCLangRes4VoTransl.getNCLangRes().getStrByID("common", "2UC000-001021");
errmsg = NCLangRes4VoTransl.getNCLangRes().getStrByID("2006pub_0", "02006pub-0432", (String)null, new String[]{projectLang});
break;
}
values = valuechangeMap.get("CBS");
if (values != null) {
errmsg = NCLangRes4VoTransl.getNCLangRes().getStrByID("2006pub_0", "02006pub-0432", (String)null, new String[]{"CBS"});
break;
}
if (ctrlCONTRACTNO.contains(topBilltype)) {
values = valuechangeMap.get("contractno");
if (values != null) {
String contractnoLang = NCLangRes4VoTransl.getNCLangRes().getStrByID("common", "2UC000-000234");
errmsg = NCLangRes4VoTransl.getNCLangRes().getStrByID("2006pub_0", "02006pub-0432", (String)null, new String[]{contractnoLang});
break;
}
}
if (ctrlMATERIAL.contains(topBilltype)) {
values = valuechangeMap.get("material");
if (values != null) {
String materialLang = NCLangRes4VoTransl.getNCLangRes().getStrByID("common", "2UC000-000594");
errmsg = NCLangRes4VoTransl.getNCLangRes().getStrByID("2006pub_0", "02006pub-0432", (String)null, new String[]{materialLang});
break;
}
}
if (ctrlPROJECT_TASK.contains(topBilltype)) {
values = valuechangeMap.get("project_task");
if (values != null) {
String project_taskLang = NCLangRes4VoTransl.getNCLangRes().getStrByID("common", "2UC000-001023");
errmsg = NCLangRes4VoTransl.getNCLangRes().getStrByID("2006pub_0", "02006pub-0432", (String)null, new String[]{project_taskLang});
break;
}
}
if ("4D50".equals(topBilltype)) {
values = valuechangeMap.get("pk_payterm");
if (values != null) {
String pk_paytermLang = NCLangRes4VoTransl.getNCLangRes().getStrByID("common", "2UC000-000055");
errmsg = NCLangRes4VoTransl.getNCLangRes().getStrByID("2006pub_0", "02006pub-0432", (String)null, new String[]{pk_paytermLang});
break;
}
values = valuechangeMap.get("busidate");
if (values != null) {
String busidateLang = NCLangRes4VoTransl.getNCLangRes().getStrByID("common", "2UC000-000946");
errmsg = NCLangRes4VoTransl.getNCLangRes().getStrByID("2006pub_0", "02006pub-0432", (String)null, new String[]{busidateLang});
break;
}
}
if ("4D46".equals(topBilltype)) {
values = valuechangeMap.get("prepay");
if (values != null) {
String scommentLang = NCLangRes4VoTransl.getNCLangRes().getStrByID("paybill", "2paybill-000011");
errmsg = NCLangRes4VoTransl.getNCLangRes().getStrByID("2006pub_0", "02006pub-0432", (String)null, new String[]{scommentLang});
break;
}
}
if ("4D60".equals(topBilltype)) {
values = valuechangeMap.get("scomment");
if (values != null) {
String scommentLang = NCLangRes4VoTransl.getNCLangRes().getStrByID("common", "2UC000-000426");
errmsg = NCLangRes4VoTransl.getNCLangRes().getStrByID("2006pub_0", "02006pub-0432", (String)null, new String[]{scommentLang});
break;
}
}
}
if (sddreversalflag.booleanValue()) {
String[] s6 = new String[]{"rate", "grouprate", "globalrate", "local_money_de", "groupdebit", "globaldebit", "sett_org", "pk_org", "pk_balatype", "invoiceno"};
String[] s7 = new String[]{NCLangRes4VoTransl.getNCLangRes().getStrByID("common", "2UC000-000699"), NCLangRes4VoTransl.getNCLangRes().getStrByID("common", "2UC000-001016"), NCLangRes4VoTransl.getNCLangRes().getStrByID("common", "2UC000-000119"), NCLangRes4VoTransl.getNCLangRes().getStrByID("paybill", "2paybill-000013"), NCLangRes4VoTransl.getNCLangRes().getStrByID("paybill", "2paybill-000007"), NCLangRes4VoTransl.getNCLangRes().getStrByID("paybill", "2paybill-000005"), NCLangRes4VoTransl.getNCLangRes().getStrByID("common", "2UC000-000715"), NCLangRes4VoTransl.getNCLangRes().getStrByID("paybill", "2paybill-000028"), NCLangRes4VoTransl.getNCLangRes().getStrByID("common", "2UC000-000712"), NCLangRes4VoTransl.getNCLangRes().getStrByID("common", "2UC000-000220")};
int n = -1;
for(String s : s6) {
++n;
Object[] values = valuechangeMap.get(s);
if (values != null) {
errmsg = NCLangRes4VoTransl.getNCLangRes().getStrByID("2006pub_0", "02006pub-0432", (String)null, new String[]{s7[n]});
break;
}
}
String[] ctrlFieldFromOtherSys = new String[]{"pk_recpaytype"};
String[] ctrlFieldFromOtherSysName = new String[]{NCLangRes4VoTransl.getNCLangRes().getStrByID("paybill", "2paybill-000126")};
String[] ctrlFieldFromOtherSysNameGat = new String[]{NCLangRes4VoTransl.getNCLangRes().getStrByID("gatherbill", "2gather-000127")};
String pk_billtype = vo.getPk_billtype();
if ("36S3".equals(topBilltype)) {
for(String fiel : ctrlFieldFromOtherSys) {
Object[] values = valuechangeMap.get(fiel);
if (values != null) {
String fieldName = "F2".equals(pk_billtype) ? ctrlFieldFromOtherSysNameGat[n] : ctrlFieldFromOtherSysName[n];
errmsg = NCLangRes4VoTransl.getNCLangRes().getStrByID("2006pub_0", "02006pub-1355", (String)null, new String[]{fieldName});
break;
}
}
}
if (!StringUtil.isEmpty(errmsg)) {
break;
}
}
}
}
return errmsg;
}
}
public String canUpdateHeadFieldValue(Map<String, Object[]> fieldvalue, BaseAggVO vo, BaseAggVO oldvo) {
BaseBillVO billvo = (BaseBillVO)vo.getParentVO();
BaseItemVO[] vosNew = (BaseItemVO[])vo.getChildrenVO();
boolean otherSystemPushBill = ArapVOUtils.isOtherSystemPushBill(billvo, vosNew[0].getTop_billtype());
boolean isRedbill = ArapVOUtils.isArapRedBill(billvo, vosNew[0].getTop_billtype());
String errmsg = null;
if (isRedbill) {
String billtype = vo.getHeadVO().getPk_billtype();
String topitsm = (String)vo.getChildrenVO()[0].getAttributeValue("top_itemid");
String[] pks = new String[]{topitsm};
Map<String, List<String>> billFieldBypk = new HashMap();
try {
billFieldBypk = (new ArapBillDAO()).getBillFieldBypk(pks, billtype, Arrays.asList("pk_currtype"), (List)null);
} catch (SQLException | DAOException e) {
errmsg = ((Exception)e).getMessage();
}
String topcurr = (String)((List)billFieldBypk.get(topitsm)).get(0);
String pk_curr = (String)vo.getChildrenVO()[0].getAttributeValue("pk_currtype");
if (!StringUtil.isEmptyWithTrim(topcurr) && !topcurr.equals(pk_curr)) {
String currtype = NCLangRes4VoTransl.getNCLangRes().getStrByID("common", "UC000-0001755");
errmsg = NCLangRes4VoTransl.getNCLangRes().getStrByID("2006pub_0", "02006pub-1330", (String)null, new String[]{currtype});
}
}
UFBoolean sddreversalflag = UFBoolean.FALSE;
if (billvo instanceof PayBillVO) {
sddreversalflag = ((PayBillVO)billvo).getSddreversalflag();
if (null == sddreversalflag) {
sddreversalflag = UFBoolean.FALSE;
}
}
if (!otherSystemPushBill && !sddreversalflag.booleanValue()) {
return null;
} else {
if (sddreversalflag.booleanValue()) {
String[] s1 = new String[]{"expectdealdate"};
String[] s2 = new String[]{NCLangRes4VoTransl.getNCLangRes().getStrByID("paybill", "2paybill-000108")};
int n = -1;
for(String s : s1) {
++n;
Object[] values = fieldvalue.get(s);
if (values != null) {
errmsg = NCLangRes4VoTransl.getNCLangRes().getStrByID("2006pub_0", "02006pub-0432", (String)null, new String[]{s2[n]});
break;
}
}
}
return errmsg;
}
}
public boolean excuteDefaultCheck() {
return false;
}
}

View File

@ -0,0 +1,179 @@
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
package nc.pubimpl.so.sobalance.arap.listener;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import nc.bs.businessevent.IBusinessEvent;
import nc.bs.businessevent.IBusinessListener;
import nc.bs.ml.NCLangResOnserver;
import nc.impl.pubapp.bill.convertor.ViewToBillConvertor;
import nc.impl.pubapp.pattern.data.vo.VOQuery;
import nc.itf.arap.forso.IDataFromF2ForM30;
import nc.pubitf.arap.pub.GetSODataByArapUtils;
import nc.vo.ml.NCLangRes4VoTransl;
import nc.vo.pub.BusinessException;
import nc.vo.pub.lang.UFDouble;
import nc.vo.so.m30.entity.SaleOrderHVO;
import nc.vo.so.m30.sobalance.entity.SoBalanceBVO;
import nc.vo.so.m30.sobalance.entity.SoBalanceHVO;
import nc.vo.so.m30.sobalance.entity.SoBalanceVO;
import nc.vo.so.m30.sobalance.entity.SoBalanceViewVO;
import nc.vo.so.m30.sobalance.enumeration.SoBalanceType;
public class GatheringUpdateBeforeListener implements IBusinessListener {
public GatheringUpdateBeforeListener() {
}
private Map<String, IDataFromF2ForM30> organizeDataMap(IDataFromF2ForM30[] datas) {
Map<String, IDataFromF2ForM30> retMap = new HashMap();
for(IDataFromF2ForM30 data : datas) {
retMap.put(data.getPayBillRowID(), data);
}
return retMap;
}
private Map<String, SoBalanceVO> organizeBalanceMap(SoBalanceVO[] vos) {
Map<String, SoBalanceVO> balanceMap = new HashMap();
if (vos != null && vos.length > 0) {
for(SoBalanceVO vo : vos) {
SoBalanceBVO[] bodys = vo.getChildrenVO();
for(SoBalanceBVO body : bodys) {
balanceMap.put(body.getCpaybillrowid(), vo);
}
}
}
return balanceMap;
}
public void doAction(IBusinessEvent event) throws BusinessException {
IDataFromF2ForM30[] datas = (new GetSODataByArapUtils()).getIDataFromF2ForM30(event);
Map<String, IDataFromF2ForM30> dataMap = this.organizeDataMap(datas);
String[] payBillRowIDs = (String[])dataMap.keySet().toArray(new String[dataMap.keySet().size()]);
if (payBillRowIDs != null && payBillRowIDs.length != 0) {
SoBalanceViewVO[] views = ArListenerUtils.getInstance().querySoBalanceViewByGatheringBillBodyIDs(payBillRowIDs);
ViewToBillConvertor<SoBalanceViewVO, SoBalanceVO> convert = new ViewToBillConvertor(SoBalanceVO.class);
SoBalanceVO[] vos = (SoBalanceVO[])convert.convert(views);
if (vos != null && vos.length != 0) {
Map<String, SoBalanceVO> balanceMap = this.organizeBalanceMap(vos);
this.checkDatas(datas, balanceMap);
}
}
}
private void checkDatas(IDataFromF2ForM30[] datas, Map<String, SoBalanceVO> balanceMap) throws BusinessException {
StringBuffer errMsg = new StringBuffer();
List<IDataFromF2ForM30> deleteList = new ArrayList();
List<IDataFromF2ForM30> updateList = new ArrayList();
for(IDataFromF2ForM30 data : datas) {
if (3 == data.getRowStatus()) {
deleteList.add(data);
} else if (1 == data.getRowStatus()) {
updateList.add(data);
}
}
if (deleteList.size() > 0) {
IDataFromF2ForM30[] deleteDatas = (IDataFromF2ForM30[])deleteList.toArray(new IDataFromF2ForM30[deleteList.size()]);
for(IDataFromF2ForM30 data : deleteDatas) {
if (balanceMap.containsKey(data.getPayBillRowID())) {
String payBillNo = data.getPayBillNo();
String billRowID = ((SoBalanceVO)balanceMap.get(data.getPayBillRowID())).getParentVO().getVbillcode();
errMsg.append(NCLangResOnserver.getInstance().getStrByID("4006011_0", "04006011-0363", (String)null, new String[]{payBillNo, billRowID}));
errMsg.append("\n");
}
}
}
if (updateList.size() > 0) {
IDataFromF2ForM30[] updateDatas = (IDataFromF2ForM30[])updateList.toArray(new IDataFromF2ForM30[updateList.size()]);
List<String> list = new ArrayList();
Map<String, String> map = new HashMap();
Map<String, String> map2 = new HashMap();
Map<String, String> map3 = new HashMap();
for(String payBillRowid : balanceMap.keySet()) {
map.put(((SoBalanceVO)balanceMap.get(payBillRowid)).getParentVO().getCsobalanceid(), ((SoBalanceVO)balanceMap.get(payBillRowid)).getParentVO().getCsaleorderid());
list.add(((SoBalanceVO)balanceMap.get(payBillRowid)).getParentVO().getCsaleorderid());
}
VOQuery<SaleOrderHVO> voQuery = new VOQuery(SaleOrderHVO.class);
SaleOrderHVO[] heads = (SaleOrderHVO[])voQuery.query((String[])list.toArray(new String[list.size()]));
if (heads == null || heads.length == 0) {
return;
}
for(int i = 0; i < heads.length; ++i) {
map2.put(heads[i].getCsaleorderid(), heads[i].getVbillcode());
}
for(String string : map.keySet()) {
map3.put(string, (String)map2.get(map.get(string)));
}
for(IDataFromF2ForM30 data : updateDatas) {
if (balanceMap.containsKey(data.getPayBillRowID())) {
SoBalanceVO sbVO = (SoBalanceVO)balanceMap.get(data.getPayBillRowID());
this.checkGatheringbillAndSoBalanceConsistent(data, sbVO, map3);
}
}
}
if (errMsg.length() > 0) {
throw new BusinessException(errMsg.toString());
}
}
private void checkGatheringbillAndSoBalanceConsistent(IDataFromF2ForM30 data, SoBalanceVO sbVO, Map<String, String> map) throws BusinessException {
Map<String, UFDouble> balancePaybillMap = new HashMap();
SoBalanceHVO head = sbVO.getParentVO();
String ccustomerid = head.getCcustomerid();
String cinvoicecustid = head.getCinvoicecustid();
String corigcurrencyid = head.getCorigcurrencyid();
String carorgid = head.getCarorgid();
SoBalanceBVO[] bodys = sbVO.getChildrenVO();
int fibaltype = 1;
for(SoBalanceBVO body : bodys) {
balancePaybillMap.put(body.getCpaybillrowid(), body.getNorigarmny());
if (body.getCpaybillrowid().equals(data.getPayBillRowID())) {
fibaltype = body.getFibaltype();
break;
}
}
if (SoBalanceType.SOBALANCE_ORDERBAL.getIntValue() == fibaltype) {
if (!ccustomerid.equals(data.getPayBillOrderCust())) {
throw new BusinessException(NCLangRes4VoTransl.getNCLangRes().getStrByID("4006011_0", "04006011-0193", (String)null, new String[]{(String)map.get(head.getCsobalanceid())}));
}
if (!cinvoicecustid.equals(data.getPayBillCustomer())) {
throw new BusinessException(NCLangRes4VoTransl.getNCLangRes().getStrByID("4006011_0", "04006011-0194", (String)null, new String[]{(String)map.get(head.getCsobalanceid())}));
}
if (!corigcurrencyid.equals(data.getPayBillCurID())) {
throw new BusinessException(NCLangRes4VoTransl.getNCLangRes().getStrByID("4006011_0", "04006011-0195", (String)null, new String[]{(String)map.get(head.getCsobalanceid())}));
}
if (!carorgid.equals(data.getPayBillOrg())) {
throw new BusinessException(NCLangRes4VoTransl.getNCLangRes().getStrByID("4006011_0", "04006011-0196", (String)null, new String[]{(String)map.get(head.getCsobalanceid())}));
}
if (!((UFDouble)balancePaybillMap.get(data.getPayBillRowID())).equals(data.getPayBillmny())) {
throw new BusinessException(NCLangRes4VoTransl.getNCLangRes().getStrByID("4006011_0", "04006011-0612", (String)null, new String[]{(String)map.get(head.getCsobalanceid())}));
}
}
}
}