|
@@ -44,9 +44,8 @@ public class RecBillAuditOperationServicePlugIn extends AbstractOperationService
|
|
private void updateSaleOrderInfo(AfterOperationArgs e, DynamicObject[] payBills, Boolean iswriteback) {
|
|
private void updateSaleOrderInfo(AfterOperationArgs e, DynamicObject[] payBills, Boolean iswriteback) {
|
|
Set<DynamicObject> scs = new HashSet<>();
|
|
Set<DynamicObject> scs = new HashSet<>();
|
|
List<Object> xsddbillnos = new ArrayList<>();
|
|
List<Object> xsddbillnos = new ArrayList<>();
|
|
- Boolean existError = false;
|
|
|
|
-
|
|
|
|
- for(DynamicObject payBill : payBills) {
|
|
|
|
|
|
+ List<Object> xshtid = new ArrayList<>();
|
|
|
|
+ for(DynamicObject payBill : payBills) {
|
|
DynamicObjectCollection entrys = payBill.getDynamicObjectCollection("entry");
|
|
DynamicObjectCollection entrys = payBill.getDynamicObjectCollection("entry");
|
|
for(DynamicObject entry : entrys) {
|
|
for(DynamicObject entry : entrys) {
|
|
String e_corebilltype = entry.getString("e_corebilltype");
|
|
String e_corebilltype = entry.getString("e_corebilltype");
|
|
@@ -54,6 +53,11 @@ public class RecBillAuditOperationServicePlugIn extends AbstractOperationService
|
|
if("sm_salorder".equals(e_corebilltype) && StringUtils.isNotBlank(e_corebillno)) {
|
|
if("sm_salorder".equals(e_corebilltype) && StringUtils.isNotBlank(e_corebillno)) {
|
|
xsddbillnos.add(e_corebillno);
|
|
xsddbillnos.add(e_corebillno);
|
|
}
|
|
}
|
|
|
|
+ DynamicObject nckd_refbillfield1 = entry.getDynamicObject("nckd_refbillfield1");
|
|
|
|
+ if(nckd_refbillfield1 != null) {
|
|
|
|
+ Object nckd_refbillid = nckd_refbillfield1.getPkValue();
|
|
|
|
+ xshtid.add(nckd_refbillid);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -97,10 +101,39 @@ public class RecBillAuditOperationServicePlugIn extends AbstractOperationService
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- if(!existError && !scs.isEmpty()) {
|
|
|
|
|
|
+ if(!scs.isEmpty()) {
|
|
SaveServiceHelper.update(scs.toArray(new DynamicObject[0]));
|
|
SaveServiceHelper.update(scs.toArray(new DynamicObject[0]));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ Set<DynamicObject> xshts = new HashSet<>();
|
|
|
|
+ if(!xshtid.isEmpty()) {
|
|
|
|
+ QFilter qf = new QFilter("id",QCP.in,xshtid);
|
|
|
|
+ DynamicObject[] xsddarrays = BusinessDataServiceHelper.load("conm_salcontract", "id,billno,receiptallamount", qf.toArray());
|
|
|
|
+ for(DynamicObject xsddarray : xsddarrays) {
|
|
|
|
+ for(DynamicObject payBill : payBills) {
|
|
|
|
+ DynamicObjectCollection entrys = payBill.getDynamicObjectCollection("entry");
|
|
|
|
+ for(DynamicObject entry : entrys) {
|
|
|
|
+ BigDecimal e_receivableamt = entry.getBigDecimal("e_actamt");//应收金额->实收金额
|
|
|
|
+ DynamicObject nckd_refbillfield1 = entry.getDynamicObject("nckd_refbillfield1");//销售合同
|
|
|
|
+ if(nckd_refbillfield1 != null && xsddarray.getPkValue().equals(nckd_refbillfield1.getPkValue())) {
|
|
|
|
+ BigDecimal receiptallamount = xsddarray.getBigDecimal("receiptallamount");//已收金额
|
|
|
|
+ if(iswriteback) {
|
|
|
|
+ BigDecimal receiptallamountNew = receiptallamount.add(e_receivableamt);
|
|
|
|
+ xsddarray.set("receiptallamount", receiptallamountNew);
|
|
|
|
+ }else {
|
|
|
|
+ BigDecimal receiptallamountNew = receiptallamount.subtract(e_receivableamt);
|
|
|
|
+ xsddarray.set("receiptallamount", receiptallamountNew);
|
|
|
|
+ }
|
|
|
|
+ xshts.add(xsddarray);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if(!xshts.isEmpty()) {
|
|
|
|
+ SaveServiceHelper.update(xshts.toArray(new DynamicObject[0]));
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|