【采购订单表单插件】供应商改变时 计算历史未到货数量和历史未到货金额
This commit is contained in:
		
							parent
							
								
									393981702e
								
							
						
					
					
						commit
						b1ff0ea6e8
					
				|  | @ -0,0 +1,61 @@ | |||
| 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.entity.datamodel.events.ChangeData; | ||||
| import kd.bos.entity.datamodel.events.PropertyChangedArgs; | ||||
| import kd.bos.orm.query.QFilter; | ||||
| import kd.bos.servicehelper.BusinessDataServiceHelper; | ||||
| 
 | ||||
| import java.math.BigDecimal; | ||||
| 
 | ||||
| /** | ||||
|  * 采购订单计算 | ||||
|  *      供应商发生改变,历史未到账余额,历史未到账数量 | ||||
|  */ | ||||
| public class PurorderCalculateBillPlugin extends AbstractBillPlugIn { | ||||
| 
 | ||||
| 
 | ||||
|     @Override | ||||
|     public void propertyChanged(PropertyChangedArgs e) { | ||||
|         super.propertyChanged(e); | ||||
|         String name = e.getProperty().getName(); | ||||
|         ChangeData[] changeSet = e.getChangeSet(); | ||||
|         Object newValue = changeSet[0].getNewValue(); | ||||
|         if("supplier".equals(name)){ | ||||
|             BigDecimal totalAmount = BigDecimal.ZERO; | ||||
|             BigDecimal totalCount = BigDecimal.ZERO; | ||||
|             DynamicObject supplier = (DynamicObject) newValue; | ||||
|             // 查询正常的采购订单 总额,总数量 | ||||
|             QFilter f1 = new QFilter("supplier.id", "=", supplier.getPkValue()); | ||||
|             QFilter f2 = new QFilter("billstatus", "=", "C");//已审核的订单 | ||||
|             QFilter f3 = new QFilter("closestatus", "=", "A");//排除已关闭的订单 | ||||
|             DynamicObject[] pmBillArr = BusinessDataServiceHelper.load("pm_purorderbill", | ||||
|                     "id,billno,totalamount,billentry.qty", | ||||
|                     new QFilter[]{f1, f2, f3}); | ||||
|             for (DynamicObject bill : pmBillArr) { | ||||
|                 totalAmount = totalAmount.add(bill.getBigDecimal("totalamount")); | ||||
|                 DynamicObjectCollection entries = bill.getDynamicObjectCollection("billentry"); | ||||
|                 for (DynamicObject entry : entries) { | ||||
|                     totalCount = totalCount.add(entry.getBigDecimal("qty")); | ||||
|                 } | ||||
|             } | ||||
|             //查询采购入库单的总金额,总数量 | ||||
|             QFilter qf1 = new QFilter("supplier.id", "=", supplier.getPkValue()); | ||||
|             QFilter qf2 = new QFilter("billstatus", "=", "C"); | ||||
|             DynamicObject[] imBillArr = BusinessDataServiceHelper.load("im_purinbill", | ||||
|                     "id,billno,billentry.qty,billentry.amountandtax", | ||||
|                     new QFilter[]{qf1, qf2}); | ||||
|             for (DynamicObject bill : imBillArr) { | ||||
|                 DynamicObjectCollection entries = bill.getDynamicObjectCollection("billentry"); | ||||
|                 for (DynamicObject entry : entries) { | ||||
|                     totalAmount = totalAmount.subtract(entry.getBigDecimal("amountandtax")); | ||||
|                     totalCount = totalCount.subtract(entry.getBigDecimal("qty")); | ||||
|                 } | ||||
|             } | ||||
|             this.getModel().setValue("tqq9_lswdhje", totalAmount); | ||||
|             this.getModel().setValue("tqq9_lswdhsl", totalCount); | ||||
|         } | ||||
|     } | ||||
| } | ||||
		Loading…
	
		Reference in New Issue