支出合同确认单累计冲销预付金额功能开发
This commit is contained in:
parent
21cac3881c
commit
2874c03ad7
|
@ -1,5 +1,7 @@
|
||||||
package zcgj.zcdev.zcdev.pr.plugin.form;
|
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.AbstractBillPlugIn;
|
||||||
import kd.bos.bill.BillShowParameter;
|
import kd.bos.bill.BillShowParameter;
|
||||||
import kd.bos.bill.OperationStatus;
|
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.QCP;
|
||||||
import kd.bos.orm.query.QFilter;
|
import kd.bos.orm.query.QFilter;
|
||||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||||
|
import kd.bos.servicehelper.QueryServiceHelper;
|
||||||
import kd.ec.contract.common.enums.DirectionEnum;
|
import kd.ec.contract.common.enums.DirectionEnum;
|
||||||
import kd.sdk.plugin.Plugin;
|
import kd.sdk.plugin.Plugin;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.math.RoundingMode;
|
import java.math.RoundingMode;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.EventObject;
|
import java.util.EventObject;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 支出合同确认单插件
|
* 支出合同确认单插件
|
||||||
|
@ -45,7 +50,9 @@ public class OutContractFinaceConfirmePlugin extends AbstractBillPlugIn impleme
|
||||||
initData(contractSettleIdObj);
|
initData(contractSettleIdObj);
|
||||||
this.getView().invokeOperation("save");
|
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_contract_name",ecoutcontractsettle.getString("billname"));
|
||||||
getModel().setValue("zcgj_ec_out_contractid", ecoutcontractsettle.getLong("id")); //id文本,冗余
|
getModel().setValue("zcgj_ec_out_contractid", ecoutcontractsettle.getLong("id")); //id文本,冗余
|
||||||
getModel().setValue("zcgj_billname",ecoutcontractsettle.getString("billname"));
|
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_contattr",ecoutcontractsettle.getDynamicObject("contattr"));
|
||||||
getModel().setValue("zcgj_project",ecoutcontractsettle.getDynamicObject("project"));
|
getModel().setValue("zcgj_project",ecoutcontractsettle.getDynamicObject("project"));
|
||||||
getModel().setValue("zcgj_period",ecoutcontractsettle.getDynamicObject("period"));
|
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 entryEntity = this.getModel().getEntryEntity("zcgj_itementry");
|
||||||
DynamicObjectCollection entryEntity1 = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_itementry");
|
DynamicObjectCollection entryEntity1 = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_itementry");
|
||||||
entryEntity1.clear();
|
entryEntity1.clear();
|
||||||
|
BigDecimal contractPayAmt = getContractPayAmt(contract);
|
||||||
|
BigDecimal finaceConfirmeAmt = getFinaceConfirmeAmt(contract);
|
||||||
|
BigDecimal amt = contractPayAmt.subtract(finaceConfirmeAmt);
|
||||||
for (DynamicObject dynamicObject : itementry) {
|
for (DynamicObject dynamicObject : itementry) {
|
||||||
DynamicObject item = entryEntity1.addNew();
|
DynamicObject item = entryEntity1.addNew();
|
||||||
item.set("zcgj_payitem",dynamicObject.getDynamicObject("payitem"));
|
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_rate",dynamicObject.getBigDecimal("rate"));
|
||||||
item.set("zcgj_taxamt",dynamicObject.getBigDecimal("taxamt"));
|
item.set("zcgj_taxamt",dynamicObject.getBigDecimal("taxamt"));
|
||||||
item.set("zcgj_remark",dynamicObject.getString("remark"));
|
item.set("zcgj_remark",dynamicObject.getString("remark"));
|
||||||
|
item.set("zcgj_ljwcxamt",amt);
|
||||||
}
|
}
|
||||||
this.getView().updateView("zcgj_itementry");
|
this.getView().updateView("zcgj_itementry");
|
||||||
}
|
}
|
||||||
|
@ -91,9 +103,12 @@ public class OutContractFinaceConfirmePlugin extends AbstractBillPlugIn impleme
|
||||||
this.ofTaxAmountChanged(changeData); //计算税额和不含税金额
|
this.ofTaxAmountChanged(changeData); //计算税额和不含税金额
|
||||||
}else if(StringUtils.equals(name, "zcgj_ec_out_contract_sett")){
|
}else if(StringUtils.equals(name, "zcgj_ec_out_contract_sett")){
|
||||||
DynamicObject newValue = (DynamicObject)changeData.getNewValue();
|
DynamicObject newValue = (DynamicObject)changeData.getNewValue();
|
||||||
initData(newValue.getLong("id"));
|
if(newValue!=null){
|
||||||
|
initData(newValue.getLong("id"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void ofTaxAmountChanged(ChangeData changeData) {
|
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