【采购订单表单插件】供应商改变时 计算历史未到货数量和历史未到货金额
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