|
@@ -7,6 +7,7 @@ import kd.bos.dataentity.entity.DynamicObject;
|
|
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
|
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
|
import kd.bos.entity.datamodel.events.ChangeData;
|
|
import kd.bos.entity.datamodel.events.ChangeData;
|
|
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
|
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
|
|
|
+import kd.bos.exception.KDBizException;
|
|
import kd.bos.list.plugin.AbstractListPlugin;
|
|
import kd.bos.list.plugin.AbstractListPlugin;
|
|
import kd.bos.orm.query.QCP;
|
|
import kd.bos.orm.query.QCP;
|
|
import kd.bos.orm.query.QFilter;
|
|
import kd.bos.orm.query.QFilter;
|
|
@@ -38,9 +39,10 @@ public class AmountEditPlugin extends AbstractListPlugin implements Plugin,IErSe
|
|
super.beforePropertyChanged(e);
|
|
super.beforePropertyChanged(e);
|
|
String name = e.getProperty().getName();
|
|
String name = e.getProperty().getName();
|
|
|
|
|
|
|
|
+
|
|
if (nckd_unexporiusedamount.equals(name)||orientryamount.equals(name))
|
|
if (nckd_unexporiusedamount.equals(name)||orientryamount.equals(name))
|
|
{
|
|
{
|
|
- DynamicObject data=this.getModel().getDataEntity();//获取单据模型
|
|
|
|
|
|
+
|
|
//冲销金额总数
|
|
//冲销金额总数
|
|
BigDecimal orgiexpebalanceamount_sum = new BigDecimal("0");
|
|
BigDecimal orgiexpebalanceamount_sum = new BigDecimal("0");
|
|
//费用合计
|
|
//费用合计
|
|
@@ -61,44 +63,12 @@ public class AmountEditPlugin extends AbstractListPlugin implements Plugin,IErSe
|
|
{
|
|
{
|
|
//冲销金额
|
|
//冲销金额
|
|
BigDecimal orgiexpebalanceamount=entryentity.getBigDecimal("nckd_unexporiusedamount");
|
|
BigDecimal orgiexpebalanceamount=entryentity.getBigDecimal("nckd_unexporiusedamount");
|
|
|
|
+
|
|
//冲销金额累加计算
|
|
//冲销金额累加计算
|
|
orgiexpebalanceamount_sum=orgiexpebalanceamount_sum.add(orgiexpebalanceamount);
|
|
orgiexpebalanceamount_sum=orgiexpebalanceamount_sum.add(orgiexpebalanceamount);
|
|
}
|
|
}
|
|
//计算收款金额
|
|
//计算收款金额
|
|
this.getModel().setValue("orireceiveamount",amountfy.subtract(orgiexpebalanceamount_sum),0);
|
|
this.getModel().setValue("orireceiveamount",amountfy.subtract(orgiexpebalanceamount_sum),0);
|
|
- //反写预付借款单未核销金额(借款余额)
|
|
|
|
- //获取冲预付借款分录
|
|
|
|
- if(!nckd_clearloanentry.isEmpty()&nckd_unexporiusedamount.equals(name))
|
|
|
|
- {
|
|
|
|
- //获取分录改变行号
|
|
|
|
- int number=e.getChangeSet()[0].getRowIndex();
|
|
|
|
- //数据id
|
|
|
|
- Long id=nckd_clearloanentry.get(number).getLong("nckd_bigintfield");
|
|
|
|
- //冲销金额
|
|
|
|
- BigDecimal nckd_unexporiusedamount=nckd_clearloanentry.get(number).getBigDecimal("nckd_unexporiusedamount");
|
|
|
|
- //借款余额
|
|
|
|
- BigDecimal nckd_exporiusedamount=nckd_clearloanentry.get(number).getBigDecimal("nckd_exporiusedamount");
|
|
|
|
- //获取改变行预付单借款编号
|
|
|
|
- String nckd_billno=nckd_clearloanentry.get(number).getString("nckd_billno");
|
|
|
|
- //根据行号查询预付借款单预付信息数据
|
|
|
|
- QFilter nckd_orgamountFilter = new QFilter("billno", QCP.equals, nckd_billno);
|
|
|
|
- DynamicObject[] nckd_orgamountaccount = BusinessDataServiceHelper.
|
|
|
|
- load(er_prepaybill, "id,number", new QFilter[]{nckd_orgamountFilter});
|
|
|
|
- for (int i=0;i<nckd_orgamountaccount.length;i++) {
|
|
|
|
- DynamicObject dynamicObject = BusinessDataServiceHelper.
|
|
|
|
- loadSingle(nckd_orgamountaccount[i].getPkValue(), nckd_orgamountaccount[i].getDynamicObjectType().getName());
|
|
|
|
- //获取预付信息分录
|
|
|
|
- DynamicObjectCollection expenseentryentity=dynamicObject.getDynamicObjectCollection("expenseentryentity");
|
|
|
|
- for (DynamicObject list:expenseentryentity) {
|
|
|
|
- Long listid=list.getLong("id");
|
|
|
|
- if (listid.equals(id)) {
|
|
|
|
- //未核销金额(借款余额)=借款余额-冲销金额
|
|
|
|
- list.set("nckd_settleamount_et",nckd_exporiusedamount.subtract(nckd_unexporiusedamount));
|
|
|
|
- SaveServiceHelper.save(new DynamicObject[]{dynamicObject});
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
}
|
|
}
|
|
|
|
|
|
//重新触发付现金额计算
|
|
//重新触发付现金额计算
|