diff --git a/lc123/cloud/app/plugin/form/pm/PurorderCalculateBillPlugin.java b/lc123/cloud/app/plugin/form/pm/PurorderCalculateBillPlugin.java index c8a0068..e0065db 100644 --- a/lc123/cloud/app/plugin/form/pm/PurorderCalculateBillPlugin.java +++ b/lc123/cloud/app/plugin/form/pm/PurorderCalculateBillPlugin.java @@ -3,8 +3,12 @@ package tqq9.lc123.cloud.app.plugin.form.pm; import kd.bos.bill.AbstractBillPlugIn; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.dataentity.utils.StringUtils; import kd.bos.entity.datamodel.events.ChangeData; import kd.bos.entity.datamodel.events.PropertyChangedArgs; +import kd.bos.form.events.AfterDoOperationEventArgs; +import kd.bos.form.events.BeforeDoOperationEventArgs; +import kd.bos.form.operate.FormOperate; import kd.bos.orm.query.QFilter; import kd.bos.servicehelper.BusinessDataServiceHelper; @@ -60,4 +64,52 @@ public class PurorderCalculateBillPlugin extends AbstractBillPlugIn { } } + + @Override + public void beforeDoOperation(BeforeDoOperationEventArgs args) { + super.beforeDoOperation(args); + FormOperate formOperate = (FormOperate) args.getSource(); + String operateKey = formOperate.getOperateKey(); + if ("save".equals(operateKey) || "submit".equals(operateKey)) { + DynamicObject supplier = (DynamicObject) this.getModel().getValue("supplier"); + if (null != supplier) { + BigDecimal totalAmount = BigDecimal.ZERO; + BigDecimal totalCount = BigDecimal.ZERO; + //查询已审核未关闭非克隆(上游单据编号为空)数量-到货数量、有优惠有返利含税单价*(数量-到货数量) + + // 查询正常的采购订单 总额,总数量 + QFilter f1 = new QFilter("supplier.id", "=", supplier.getPkValue()); + QFilter f2 = new QFilter("billstatus", "=", "C");//已审核 + QFilter f3 = new QFilter("closestatus", "=", "A");//关闭状态正常 + QFilter f4 = new QFilter("tqq9_sourcebillno", "=", "");//上游单据编号为空 + DynamicObject[] pmBillArr = BusinessDataServiceHelper.load("pm_receiptnotice", + "id,billno,supplier,billentry.qty,billentry.tqq9_dhsl,billentry.tqq9_yyhyflje,tqq9_sourcebillno", + new QFilter[]{f1, f2, f3, f4}); + for (DynamicObject bill : pmBillArr) { + //String billno = bill.getString("billno"); + //String tqq9_sourcebillno = bill.getString("tqq9_sourcebillno"); + DynamicObjectCollection entries = bill.getDynamicObjectCollection("billentry"); + for (DynamicObject entry : entries) { + BigDecimal qty = entry.getBigDecimal("qty") == null ? BigDecimal.ZERO : entry.getBigDecimal("qty");//数量 + BigDecimal tqq9_dhsl = entry.getBigDecimal("tqq9_dhsl") == null ? BigDecimal.ZERO : entry.getBigDecimal("tqq9_dhsl");//到货数量 + BigDecimal wrkqty = qty.subtract(tqq9_dhsl);//未入库数量 + totalCount = totalCount.add(wrkqty); + BigDecimal tqq9_disandrefoundprice = entry.getBigDecimal("tqq9_yyhyflje") == null ? + BigDecimal.ZERO : entry.getBigDecimal("tqq9_yyhyflje");//有优惠有返利含税单价 + BigDecimal wrkAmount = tqq9_disandrefoundprice.multiply(wrkqty); + totalAmount = totalAmount.add(wrkAmount); + } + } + + this.getModel().setValue("tqq9_lswdhje", totalAmount); + this.getModel().setValue("tqq9_lswdhsl", totalCount); + } + + } + } + + @Override + public void afterDoOperation(AfterDoOperationEventArgs afterDoOperationEventArgs) { + super.afterDoOperation(afterDoOperationEventArgs); + } } diff --git a/lc123/cloud/app/plugin/operate/im/PurOrderPushPurRefundConverPlugin.java b/lc123/cloud/app/plugin/operate/im/PurOrderPushPurRefundConverPlugin.java index 64a637a..3714d88 100644 --- a/lc123/cloud/app/plugin/operate/im/PurOrderPushPurRefundConverPlugin.java +++ b/lc123/cloud/app/plugin/operate/im/PurOrderPushPurRefundConverPlugin.java @@ -49,7 +49,7 @@ public class PurOrderPushPurRefundConverPlugin extends AbstractConvertPlugIn imp "billentry.tqq9_brand,billentry.warehouse,billentry.qty,billentry.ispresent," + "billentry.ownertype,billentry.mversion,billentry.unit2nd,billentry.qtyunit2nd," + "billentry.auxpty,billentry.discountrate,billentry.price,billentry.priceandtax," + - "billentry.amount,billentry.curamount,billentry.taxamount,billentry.curtaxamount," + + "billentry.amount,billentry.curamount,billentry.taxamount,billentry.curtaxamount,billentry.tqq9_cs," + "billentry.discountamount,billentry.amountandtax,billentry.curamountandtax,billentry.returnqty," + "billentry.returnbaseqty,billentry.tqq9_yyhyflje,billentry.tqq9_yyhwflje,billentry.lotnumber," + "billentry.tqq9_goods,billentry.tqq9_wmsdetailid,billentry.producedate,billentry.expirydate,creator,createtime,modifier,modifytime,billentry.owner,billentry.taxrate,billentry.srcbillnumber,billentry.tqq9_inwarebillentryid", new QFilter[]{new QFilter("billentry.mainbillnumber", QCP.equals, mainbillnumber).and("billstatus", QCP.equals, "C")}); @@ -90,7 +90,7 @@ public class PurOrderPushPurRefundConverPlugin extends AbstractConvertPlugIn imp Date modifytime = dynamicObject.getDate("modifytime");//修改时间 DynamicObject linetype = object.getDynamicObject("linetype");//行类型 DynamicObject tqq9_registration = object.getDynamicObject("tqq9_registration");//注册证 - DynamicObject tqq9_cs = object.getDynamicObject("tqq9_cs");//生产厂商 + String tqq9_cs = object.getString("tqq9_cs");//生产厂商 String tqq9_licenseno = object.getString("tqq9_licenseno");//许可证 DynamicObject tqq9_brand = masterid.getDynamicObject("tqq9_brand");//品牌 DynamicObject warehouse = object.getDynamicObject("warehouse");//入库仓库