优化发票

This commit is contained in:
weiyunlong 2024-10-31 10:03:39 +08:00
parent b49d697f07
commit bfbb917ed4
1 changed files with 33 additions and 1 deletions

View File

@ -20,6 +20,7 @@ import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.dataentity.resource.ResManager; import kd.bos.dataentity.resource.ResManager;
import kd.bos.entity.EntityMetadataCache; import kd.bos.entity.EntityMetadataCache;
import kd.bos.entity.datamodel.ListSelectedRowCollection; import kd.bos.entity.datamodel.ListSelectedRowCollection;
import kd.bos.entity.datamodel.events.ChangeData;
import kd.bos.entity.datamodel.events.PropertyChangedArgs; import kd.bos.entity.datamodel.events.PropertyChangedArgs;
import kd.bos.entity.operate.result.OperationResult; import kd.bos.entity.operate.result.OperationResult;
import kd.bos.fileservice.FileItem; import kd.bos.fileservice.FileItem;
@ -146,6 +147,17 @@ public class ReconPayreqFormPlugin extends AbstractFormPlugin implements BeforeF
String name = e.getProperty().getName(); String name = e.getProperty().getName();
if ("qeug_attachmentcount".equals(name)){ if ("qeug_attachmentcount".equals(name)){
this.getView().addClientCallBack("auto_save",0); this.getView().addClientCallBack("auto_save",0);
}else if ("qeug_isticket".equals(name)){//是否补单字段
ChangeData[] changeSet = e.getChangeSet();
boolean newValue = (boolean) changeSet[0].getNewValue();//新值
if (newValue){//若新值为true则表明需要补票校验发票分录须为空
DynamicObjectCollection invoiceentry = this.getModel().getEntryEntity("invoiceentry");
if (invoiceentry.size() > 0){
this.getModel().setValue("qeug_isticket",false);
this.getView().showTipNotification("进行补票时,不允许上传发票,请删除关联发票后重新勾选");
}
}
} }
} }
@ -551,7 +563,6 @@ public class ReconPayreqFormPlugin extends AbstractFormPlugin implements BeforeF
@Override @Override
public void beforeDoOperation(BeforeDoOperationEventArgs args) { public void beforeDoOperation(BeforeDoOperationEventArgs args) {
super.beforeDoOperation(args); super.beforeDoOperation(args);
FormOperate source = (FormOperate) args.getSource(); FormOperate source = (FormOperate) args.getSource();
String operateKey = source.getOperateKey(); String operateKey = source.getOperateKey();
DynamicObject dataEntity = this.getModel().getDataEntity();//单据数据 DynamicObject dataEntity = this.getModel().getDataEntity();//单据数据
@ -665,6 +676,27 @@ public class ReconPayreqFormPlugin extends AbstractFormPlugin implements BeforeF
} }
} }
break; break;
case "submit":
boolean qeug_isticket = dataEntity.getBoolean("qeug_isticket");//查看是否补单状态
DynamicObjectCollection invoiceEntrys = getModel().getEntryEntity("invoiceentry");//获取发票分录
if (qeug_isticket){//若需要补单则不允许发票分录存在数据
if (invoiceEntrys.size() > 0){
args.setCancel(true);//取消操作
this.getView().showTipNotification("补票单据禁止关联发票,请删除后重新提交");
}
}else {//无需补票的时候必须提交等额申请核销的发票
BigDecimal applyamt = dataEntity.getBigDecimal("applyamt");//本期申请金额
BigDecimal invoiceApplyAmt = BigDecimal.ZERO;//初始化申请核销金额之和
for (DynamicObject invoiceEntry : invoiceEntrys) {
BigDecimal inventry_haswriteoffamt = invoiceEntry.getBigDecimal("inventry_haswriteoffamt");//发票申请核销金额
invoiceApplyAmt = invoiceApplyAmt.add(inventry_haswriteoffamt);//汇总发票申请核销金额
}
if (applyamt.compareTo(invoiceApplyAmt) != 0){
args.setCancel(true);//取消操作
this.getView().showTipNotification("本期申请金额须等于发票申请核销金额之和,请修改关联发票后重新提交");
}
}
break;
default: default:
break; break;
} }