支出合同确认单累计冲销预付金额功能开发
This commit is contained in:
parent
21cac3881c
commit
2874c03ad7
|
@ -1,5 +1,7 @@
|
|||
package zcgj.zcdev.zcdev.pr.plugin.form;
|
||||
|
||||
import kd.bos.algo.DataSet;
|
||||
import kd.bos.algo.Row;
|
||||
import kd.bos.bill.AbstractBillPlugIn;
|
||||
import kd.bos.bill.BillShowParameter;
|
||||
import kd.bos.bill.OperationStatus;
|
||||
|
@ -16,12 +18,15 @@ import kd.bos.form.events.HyperLinkClickListener;
|
|||
import kd.bos.orm.query.QCP;
|
||||
import kd.bos.orm.query.QFilter;
|
||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||
import kd.bos.servicehelper.QueryServiceHelper;
|
||||
import kd.ec.contract.common.enums.DirectionEnum;
|
||||
import kd.sdk.plugin.Plugin;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.ArrayList;
|
||||
import java.util.EventObject;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 支出合同确认单插件
|
||||
|
@ -45,7 +50,9 @@ public class OutContractFinaceConfirmePlugin extends AbstractBillPlugIn impleme
|
|||
initData(contractSettleIdObj);
|
||||
this.getView().invokeOperation("save");
|
||||
}
|
||||
//calBcCxAmt();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -56,7 +63,8 @@ public class OutContractFinaceConfirmePlugin extends AbstractBillPlugIn impleme
|
|||
getModel().setValue("zcgj_ec_out_contract_name",ecoutcontractsettle.getString("billname"));
|
||||
getModel().setValue("zcgj_ec_out_contractid", ecoutcontractsettle.getLong("id")); //id文本,冗余
|
||||
getModel().setValue("zcgj_billname",ecoutcontractsettle.getString("billname"));
|
||||
getModel().setValue("zcgj_contract",ecoutcontractsettle.getDynamicObject("contract"));
|
||||
DynamicObject contract = ecoutcontractsettle.getDynamicObject("contract");
|
||||
getModel().setValue("zcgj_contract",contract);
|
||||
getModel().setValue("zcgj_contattr",ecoutcontractsettle.getDynamicObject("contattr"));
|
||||
getModel().setValue("zcgj_project",ecoutcontractsettle.getDynamicObject("project"));
|
||||
getModel().setValue("zcgj_period",ecoutcontractsettle.getDynamicObject("period"));
|
||||
|
@ -72,6 +80,9 @@ public class OutContractFinaceConfirmePlugin extends AbstractBillPlugIn impleme
|
|||
//DynamicObjectCollection entryEntity = this.getModel().getEntryEntity("zcgj_itementry");
|
||||
DynamicObjectCollection entryEntity1 = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_itementry");
|
||||
entryEntity1.clear();
|
||||
BigDecimal contractPayAmt = getContractPayAmt(contract);
|
||||
BigDecimal finaceConfirmeAmt = getFinaceConfirmeAmt(contract);
|
||||
BigDecimal amt = contractPayAmt.subtract(finaceConfirmeAmt);
|
||||
for (DynamicObject dynamicObject : itementry) {
|
||||
DynamicObject item = entryEntity1.addNew();
|
||||
item.set("zcgj_payitem",dynamicObject.getDynamicObject("payitem"));
|
||||
|
@ -80,6 +91,7 @@ public class OutContractFinaceConfirmePlugin extends AbstractBillPlugIn impleme
|
|||
item.set("zcgj_rate",dynamicObject.getBigDecimal("rate"));
|
||||
item.set("zcgj_taxamt",dynamicObject.getBigDecimal("taxamt"));
|
||||
item.set("zcgj_remark",dynamicObject.getString("remark"));
|
||||
item.set("zcgj_ljwcxamt",amt);
|
||||
}
|
||||
this.getView().updateView("zcgj_itementry");
|
||||
}
|
||||
|
@ -91,9 +103,12 @@ public class OutContractFinaceConfirmePlugin extends AbstractBillPlugIn impleme
|
|||
this.ofTaxAmountChanged(changeData); //计算税额和不含税金额
|
||||
}else if(StringUtils.equals(name, "zcgj_ec_out_contract_sett")){
|
||||
DynamicObject newValue = (DynamicObject)changeData.getNewValue();
|
||||
initData(newValue.getLong("id"));
|
||||
if(newValue!=null){
|
||||
initData(newValue.getLong("id"));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
protected void ofTaxAmountChanged(ChangeData changeData) {
|
||||
|
@ -156,4 +171,83 @@ public class OutContractFinaceConfirmePlugin extends AbstractBillPlugIn impleme
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取累计未冲销预付金额
|
||||
* @return 累计未冲销预付金额
|
||||
*/
|
||||
/*private BigDecimal calBcCxAmt(){
|
||||
BigDecimal contractPayAmt = getContractPayAmt();
|
||||
BigDecimal finaceConfirmeAmt = getFinaceConfirmeAmt();
|
||||
BigDecimal amt = contractPayAmt.subtract(finaceConfirmeAmt);
|
||||
// this.getModel().setValue("zcgj_ljwcxamt", amt, rowIndex);
|
||||
DynamicObjectCollection dynamicObjectCollection = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_itementry");
|
||||
DynamicObjectCollection dynamicObjectCollection1 = this.getModel().getDataEntity().getDynamicObjectCollection("zcgj_itementry");
|
||||
DynamicObjectCollection zcgjItementry = this.getModel().getEntryEntity("zcgj_itementry");
|
||||
for (int i = 0; i < dynamicObjectCollection.size(); i++) {
|
||||
this.getModel().setValue("zcgj_ljwcxamt", amt, i);
|
||||
}
|
||||
this.getView().updateView("zcgj_itementry");
|
||||
return amt;
|
||||
}*/
|
||||
|
||||
/**
|
||||
* 获取合同下所有付款申请的预付金额和
|
||||
* 累计实付金额(分)
|
||||
*/
|
||||
private BigDecimal getContractPayAmt(DynamicObject contract){
|
||||
List<QFilter> searchFilterList = new ArrayList<>();
|
||||
searchFilterList.add(new QFilter("entryentity.contract", QCP.equals,contract.getLong("id") ));
|
||||
searchFilterList.add(new QFilter("entryentity.paymenttype", QCP.equals,"PREPAYMENT" ));
|
||||
searchFilterList.add( new QFilter("billstatus", QCP.equals,"C" ));
|
||||
DynamicObject[] outcontractmeasures = BusinessDataServiceHelper.load("ec_paymentapply", "entryentity.totalrealoftaxamount",searchFilterList.toArray(new QFilter [] {}));
|
||||
if(outcontractmeasures!=null && outcontractmeasures.length>0){
|
||||
BigDecimal totalrealoftaxamountAll = BigDecimal.ZERO;
|
||||
for (DynamicObject outcontractmeasure : outcontractmeasures) {
|
||||
for (DynamicObject dynamicObject : outcontractmeasure.getDynamicObjectCollection("entryentity")) {
|
||||
totalrealoftaxamountAll =totalrealoftaxamountAll.add(dynamicObject.getBigDecimal("totalrealoftaxamount"));
|
||||
}
|
||||
}
|
||||
return totalrealoftaxamountAll;
|
||||
}
|
||||
return BigDecimal.ZERO;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取合同下所有财务确认单的本次冲销预付金额
|
||||
*/
|
||||
private BigDecimal getFinaceConfirmeAmt(DynamicObject contract){
|
||||
List<QFilter> searchFilterList = new ArrayList<>();
|
||||
searchFilterList.add(new QFilter("zcgj_contract", QCP.equals,contract.getLong("id") ));
|
||||
searchFilterList.add(new QFilter("billstatus", QCP.equals,"C" ));
|
||||
DynamicObject[] outcontractmeasures = BusinessDataServiceHelper.load("zcgj_ec_out_finaceconfirm", "zcgj_contract,zcgj_itementry.zcgj_bccxamt", searchFilterList.toArray(new QFilter [] {}));
|
||||
if(outcontractmeasures!=null && outcontractmeasures.length>0){
|
||||
BigDecimal bccxamtAll = BigDecimal.ZERO;
|
||||
for (DynamicObject outcontractmeasure : outcontractmeasures) {
|
||||
for (DynamicObject dynamicObject : outcontractmeasure.getDynamicObjectCollection("zcgj_itementry")) {
|
||||
bccxamtAll =bccxamtAll.add(dynamicObject.getBigDecimal("zcgj_bccxamt"));
|
||||
}
|
||||
}
|
||||
return bccxamtAll;
|
||||
}
|
||||
return BigDecimal.ZERO;
|
||||
/*BigDecimal bccxamtAll = BigDecimal.ZERO;
|
||||
List<QFilter> searchFilterList = new ArrayList<>();
|
||||
searchFilterList.add(new QFilter("zcgj_contract", QCP.equals,contract.getLong("id") ));
|
||||
searchFilterList.add(new QFilter("billstatus", QCP.equals,"C" ));
|
||||
DataSet finaceconfirmDataSet = QueryServiceHelper.queryDataSet(
|
||||
this.getClass().getName(),
|
||||
"zcgj_ec_out_finaceconfirm",
|
||||
"zcgj_contract,zcgj_itementry.zcgj_bccxamt as zcgj_bccxamt" ,
|
||||
searchFilterList.toArray(new QFilter [] {}), null
|
||||
);
|
||||
if(finaceconfirmDataSet == null || finaceconfirmDataSet.isEmpty()){
|
||||
return bccxamtAll;
|
||||
}
|
||||
for (Row itemRow : finaceconfirmDataSet) {
|
||||
BigDecimal bccxamt = itemRow.getBigDecimal("zcgj_bccxamt");
|
||||
bccxamtAll =bccxamtAll.add(bccxamt);
|
||||
}
|
||||
return bccxamtAll;*/
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue