|
@@ -37,27 +37,6 @@ public class AmountEditPlugin extends AbstractListPlugin implements Plugin,IErSe
|
|
|
{
|
|
|
super.beforePropertyChanged(e);
|
|
|
String name = e.getProperty().getName();
|
|
|
- //重新出发付现金额计算
|
|
|
- if(nckd_unexporiusedamount.equals(name))
|
|
|
- {
|
|
|
- DynamicObject data=this.getModel().getDataEntity();//获取单据模型
|
|
|
- DynamicObjectCollection tripentry = data.getDynamicObjectCollection("tripentry");//获取形成信息分录
|
|
|
- //付现金额触发
|
|
|
- for (DynamicObject item:tripentry) {
|
|
|
- DynamicObjectCollection entryentity_cl=item.getDynamicObjectCollection("entryentity");//差旅明细分录
|
|
|
- for (int i=0;i< entryentity_cl.size();i++) {
|
|
|
- //判断报销金额是否有值
|
|
|
- if (entryentity_cl.get(i).getBigDecimal("orientryamount").compareTo(BigDecimal.ZERO)>0) {
|
|
|
- BigDecimal amount=entryentity_cl.get(i).getBigDecimal("orientryamount");
|
|
|
- this.getModel().setValue("orientryamount",0,i);
|
|
|
- this.getModel().setValue("orientryamount",amount,i);
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
|
|
|
if (nckd_unexporiusedamount.equals(name)||orientryamount.equals(name))
|
|
|
{
|
|
@@ -67,7 +46,7 @@ public class AmountEditPlugin extends AbstractListPlugin implements Plugin,IErSe
|
|
|
//费用合计
|
|
|
BigDecimal amountfy=new BigDecimal("0");
|
|
|
//行程信息
|
|
|
- DynamicObjectCollection tripentry = data.getDynamicObjectCollection("tripentry");//获取形成信息分录
|
|
|
+ DynamicObjectCollection tripentry = this.getModel().getEntryEntity("tripentry");//获取形成信息分录
|
|
|
for (DynamicObject item:tripentry) {
|
|
|
DynamicObjectCollection entryentity_cl=item.getDynamicObjectCollection("entryentity");//差旅明细分录
|
|
|
for (int i=0;i< entryentity_cl.size();i++) {
|
|
@@ -76,7 +55,8 @@ public class AmountEditPlugin extends AbstractListPlugin implements Plugin,IErSe
|
|
|
}
|
|
|
}
|
|
|
//amountfy报销金额总和
|
|
|
- DynamicObjectCollection nckd_clearloanentry = data.getDynamicObjectCollection("nckd_clearloanentry");//获取冲预付借款分录
|
|
|
+ //获取冲预付借款分录
|
|
|
+ DynamicObjectCollection nckd_clearloanentry=this.getModel().getEntryEntity("nckd_clearloanentry");
|
|
|
for (DynamicObject entryentity:nckd_clearloanentry)
|
|
|
{
|
|
|
//冲销金额
|
|
@@ -86,41 +66,59 @@ public class AmountEditPlugin extends AbstractListPlugin implements Plugin,IErSe
|
|
|
}
|
|
|
//计算收款金额
|
|
|
this.getModel().setValue("orireceiveamount",amountfy.subtract(orgiexpebalanceamount_sum),0);
|
|
|
-
|
|
|
-
|
|
|
//反写预付借款单未核销金额(借款余额)
|
|
|
//获取冲预付借款分录
|
|
|
- nckd_clearloanentry=data.getDynamicObjectCollection("nckd_clearloanentry");
|
|
|
- //获取分录改变行号
|
|
|
- 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});
|
|
|
+ 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});
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //重新触发付现金额计算
|
|
|
+ if(nckd_unexporiusedamount.equals(name))
|
|
|
+ {
|
|
|
+ DynamicObjectCollection tripentry = this.getModel().getEntryEntity("tripentry");//获取形成信息分录
|
|
|
+ //付现金额触发
|
|
|
+ for (DynamicObject item:tripentry) {
|
|
|
+ DynamicObjectCollection entryentity_cl=item.getDynamicObjectCollection("entryentity");//差旅明细分录
|
|
|
+ for (int i=0;i< entryentity_cl.size();i++) {
|
|
|
+ //判断报销金额是否有值
|
|
|
+ if (entryentity_cl.get(i).getBigDecimal("orientryamount").compareTo(BigDecimal.ZERO)>0) {
|
|
|
+ BigDecimal amount=entryentity_cl.get(i).getBigDecimal("orientryamount");
|
|
|
+ this.getModel().setValue("orientryamount",0,i);
|
|
|
+ this.getModel().setValue("orientryamount",amount,i);
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
}
|
|
|
}
|
|
|
|