1.返利规则调整

2.采购订单最高限价调整
This commit is contained in:
龚豆豆 2025-08-21 16:48:38 +08:00
parent e4bae3c609
commit ce426b1c79
5 changed files with 177 additions and 15 deletions

View File

@ -17,7 +17,7 @@ import java.util.List;
/** /**
* 动态表单插件 * 手工结算赋值及自动查询
*/ */
public class ApHandSettleFormPlugin extends ManualSettleBasePlugin { public class ApHandSettleFormPlugin extends ManualSettleBasePlugin {
private final static Log logger = LogFactory.getLog(ApHandSettleFormPlugin.class); private final static Log logger = LogFactory.getLog(ApHandSettleFormPlugin.class);

View File

@ -21,7 +21,7 @@ import tqq9.lc123.cloud.app.plugin.form.conm.purconmAddRebateRulesPlugin;
import java.util.EventObject; import java.util.EventObject;
/** /**
* 单据界面插件 * 付款申请新增抵扣订单按钮
*/ */
public class PayApplyFormPlugin extends AbstractBillPlugIn implements Plugin { public class PayApplyFormPlugin extends AbstractBillPlugIn implements Plugin {
private final static Log logger = LogFactory.getLog(PayApplyFormPlugin.class); private final static Log logger = LogFactory.getLog(PayApplyFormPlugin.class);

View File

@ -1,38 +1,41 @@
package tqq9.lc123.cloud.app.plugin.form.conm; package tqq9.lc123.cloud.app.plugin.form.conm;
import kd.bos.bill.BillShowParameter; import kd.bos.bill.BillShowParameter;
import kd.bos.bill.OperationStatus;
import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection; import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.dataentity.utils.StringUtils; import kd.bos.dataentity.utils.StringUtils;
import kd.bos.entity.datamodel.IDataModel; import kd.bos.entity.datamodel.IDataModel;
import kd.bos.entity.datamodel.ListSelectedRow; import kd.bos.entity.datamodel.ListSelectedRow;
import kd.bos.entity.datamodel.ListSelectedRowCollection; import kd.bos.entity.datamodel.ListSelectedRowCollection;
import kd.bos.form.CloseCallBack; import kd.bos.entity.datamodel.events.BeforeDeleteRowEventArgs;
import kd.bos.form.FormShowParameter; import kd.bos.form.*;
import kd.bos.form.IFormView; import kd.bos.form.control.Control;
import kd.bos.form.ShowType; import kd.bos.form.control.EntryGrid;
import kd.bos.form.control.events.BeforeItemClickEvent; import kd.bos.form.control.events.BeforeItemClickEvent;
import kd.bos.form.control.events.ItemClickEvent; import kd.bos.form.control.events.ItemClickEvent;
import kd.bos.form.events.ClosedCallBackEvent; import kd.bos.form.events.ClosedCallBackEvent;
import kd.bos.form.events.HyperLinkClickEvent;
import kd.bos.form.events.HyperLinkClickListener;
import kd.bos.form.plugin.AbstractFormPlugin; import kd.bos.form.plugin.AbstractFormPlugin;
import kd.bos.logging.Log; import kd.bos.logging.Log;
import kd.bos.logging.LogFactory; import kd.bos.logging.LogFactory;
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.operation.DeleteServiceHelper;
import kd.bos.servicehelper.operation.SaveServiceHelper;
import kd.sdk.plugin.Plugin; import kd.sdk.plugin.Plugin;
import scala.annotation.meta.param;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.*;
import java.util.EventObject;
import java.util.HashMap;
import java.util.Map;
/** /**
* 采购合同表单插件 * 采购合同表单插件
* 点击按钮新增返利规则 * 点击按钮新增返利规则
*/ */
public class purconmAddRebateRulesPlugin extends AbstractFormPlugin implements Plugin { public class purconmAddRebateRulesPlugin extends AbstractFormPlugin implements HyperLinkClickListener {
private final static Log logger = LogFactory.getLog(purconmAddRebateRulesPlugin.class); private final static Log logger = LogFactory.getLog(purconmAddRebateRulesPlugin.class);
@ -41,8 +44,36 @@ public class purconmAddRebateRulesPlugin extends AbstractFormPlugin implements P
super.registerListener(e); super.registerListener(e);
this.addItemClickListeners("tbmain"); this.addItemClickListeners("tbmain");
this.addItemClickListeners("tqq9_rebatetoolbarap"); this.addItemClickListeners("tqq9_rebatetoolbarap");
this.addClickListeners(new String[]{"tqq9_paybillno"});
EntryGrid preEntry = (EntryGrid) this.getView().getControl("tqq9_entryentity");
preEntry.addHyperClickListener(this);
} }
@Override
public void beforeDeleteRow(BeforeDeleteRowEventArgs e) {
super.beforeDeleteRow(e);
int[] selectRows = e.getRowIndexs();
DynamicObjectCollection tqq9_entryentity = this.getModel().getDataEntity(true).getDynamicObjectCollection("tqq9_entryentity");
List<Long> rebate = new ArrayList<>();
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < selectRows.length; i++) {
int selectRow = selectRows[i];
DynamicObject dynamicObject = tqq9_entryentity.get(selectRow);
DynamicObject tqq9_pur_rebate = dynamicObject.getDynamicObject("tqq9_pur_rebate");
if (tqq9_pur_rebate != null) {
String name = dynamicObject.getString("tqq9_rulename");
if (tqq9_pur_rebate.getString("status").equals("A")) {
rebate.add(tqq9_pur_rebate.getLong("id"));
} else {
this.getView().showMessage("名称为:'" + name + "'的返利规则为非暂存状态,无法删除");
e.setCancel(true);
return;
}
}
}
DeleteServiceHelper.delete("tqq9_pur_rebate", new QFilter[]{new QFilter("id", QCP.in, rebate)});
this.getView().showMessage("返利规则删除成功");
}
@Override @Override
public void itemClick(ItemClickEvent evt) { public void itemClick(ItemClickEvent evt) {
@ -58,6 +89,71 @@ public class purconmAddRebateRulesPlugin extends AbstractFormPlugin implements P
param.getOpenStyle().setShowType(ShowType.Modal); param.getOpenStyle().setShowType(ShowType.Modal);
this.getView().showForm(param); this.getView().showForm(param);
} }
// else if (StringUtils.equals("tqq9_rebate_deleterow", itemKey)) {
// EntryGrid entryGrid = this.getControl("tqq9_entryentity");
// int[] selectRows = entryGrid.getSelectRows();
// DynamicObjectCollection tqq9_entryentity = this.getModel().getDataEntity(true).getDynamicObjectCollection("tqq9_entryentity");
// List<Long> rebate = new ArrayList<>();
// StringBuilder stringBuilder = new StringBuilder();
// for (int i = 0; i < selectRows.length; i++) {
// int selectRow = selectRows[i];
// DynamicObject dynamicObject = tqq9_entryentity.get(selectRow);
// DynamicObject tqq9_pur_rebate = dynamicObject.getDynamicObject("tqq9_pur_rebate");
// if (tqq9_pur_rebate != null) {
// String name = dynamicObject.getString("name");
// if (tqq9_pur_rebate.getString("status").equals("A")) {
// rebate.add(tqq9_pur_rebate.getLong("id"));
// } else {
// stringBuilder.append(",").append("名称为:'" + name + "'的返利规则为非暂存状态,无法删除");
// }
// }
// }
// DeleteServiceHelper.delete("tqq9_pur_rebate", new QFilter[]{new QFilter("id", QCP.in, rebate)});
// if (stringBuilder.length() > 0) {
// this.getView().showMessage(stringBuilder.substring(1));
// } else {
// this.getView().showMessage("选择编码规则均为暂存状态,删除成功");
// }
//
// }
}
// @Override
// public void click(EventObject evt) {
// Control c = (Control) evt.getSource();
// String key = c.getKey().toLowerCase();
// if ("tqq9_rulename".equals(key)) {
// BillShowParameter param = new BillShowParameter();
// param.setFormId("tqq9_pur_rebate");
// param.setCustomParam("purcontract_billno", this.getModel().getValue("billno"));
// param.setCustomParam("purcontract_supplier", this.getModel().getValue("supplier"));
// param.setCustomParam("purcontract_tqq9_dxpp", this.getModel().getValue("tqq9_dxpp"));
// param.setCloseCallBack(new CloseCallBack(this, "entry_rebateSync_click"));
// param.getOpenStyle().setShowType(ShowType.Modal);
// this.getView().showForm(param);
// }
// }
@Override
public void hyperLinkClick(HyperLinkClickEvent hyperLinkClickEvent) {
int rowIndex = hyperLinkClickEvent.getRowIndex();
String tqq9_rulename = (String) this.getModel().getValue("tqq9_rulename", rowIndex);
DynamicObject tqq9_pur_rebate = BusinessDataServiceHelper.loadSingle("tqq9_pur_rebate", new QFilter[]{new QFilter("name", QCP.equals, tqq9_rulename)});
if (tqq9_pur_rebate != null) {
Long id = tqq9_pur_rebate.getLong("id");
BillShowParameter formshowParameter = new BillShowParameter();
formshowParameter.setFormId("tqq9_pur_rebate");
formshowParameter.getOpenStyle().setInlineStyleCss(new StyleCss());
formshowParameter.setPkId(id);
formshowParameter.getOpenStyle().setShowType(ShowType.Modal);
formshowParameter.setCustomParam("purcontract_billno", this.getModel().getValue("billno"));
formshowParameter.setCustomParam("purcontract_supplier", this.getModel().getValue("supplier"));
formshowParameter.setCustomParam("purcontract_tqq9_dxpp", this.getModel().getValue("tqq9_dxpp"));
formshowParameter.setCloseCallBack(new CloseCallBack(this, "entry_rebateSync_click"));
this.getView().showForm(formshowParameter);
} else {
this.getView().showErrorNotification("名称为:'" + tqq9_rulename + "'的返利规则不存在或者已删除,请删除该分录后重新编辑");
}
} }
@ -131,10 +227,76 @@ public class purconmAddRebateRulesPlugin extends AbstractFormPlugin implements P
model.setValue("tqq9_creatdate", createtime, size - 1);//创建时间 model.setValue("tqq9_creatdate", createtime, size - 1);//创建时间
model.setValue("tqq9_lastdate", tqq9_lastdate, size - 1);//最后一次执行时间 model.setValue("tqq9_lastdate", tqq9_lastdate, size - 1);//最后一次执行时间
model.setValue("tqq9_pur_rebate", dynamicObject, size - 1);//返利规则 model.setValue("tqq9_pur_rebate", dynamicObject, size - 1);//返利规则
} else if ("entry_rebateSync_click".equals(actionId)) {
DynamicObjectCollection tqq9_entryentity = this.getModel().getDataEntity(true).getDynamicObjectCollection("tqq9_entryentity");
int size = 0;
DynamicObject dynamicObject = (DynamicObject) ((HashMap) returnData).get("tqq9_pur_rebate");
String name = dynamicObject.getString("name");
String id = dynamicObject.getString("id");
for (int i = 0; i < tqq9_entryentity.size(); i++) {
if (StringUtils.equals(tqq9_entryentity.get(i).getString("tqq9_pur_rebate.id"), id)) {
size = i;
}
}
DynamicObjectCollection tqq9_rebatebrand = dynamicObject.getDynamicObjectCollection("tqq9_rebatebrand");//品牌
DynamicObjectCollection tqq9_supplier = dynamicObject.getDynamicObjectCollection("tqq9_supplier");//供应商
Date tqq9_startdate = dynamicObject.getDate("tqq9_startdate");//返利开始时间
Date tqq9_enddate = dynamicObject.getDate("tqq9_enddate");//返利结束时间
String tqq9_status = dynamicObject.getString("tqq9_status");//返利状态
DynamicObject creator = dynamicObject.getDynamicObject("creator");//创建人
Date createtime = dynamicObject.getDate("createtime");//创建时间
Date tqq9_lastdate = dynamicObject.getDate("tqq9_lastdate");//最后一次执行时间
String tqq9_rebatesub = dynamicObject.getString("tqq9_rebatesub");//返利主体
StringBuilder stringBuilder = new StringBuilder();
if (StringUtils.equals("A", tqq9_rebatesub)) {
Boolean tqq9_shanghailici = dynamicObject.getBoolean("tqq9_shanghailici");
if (tqq9_shanghailici) {
stringBuilder.append(",").append("上海励齿");
}
Boolean tqq9_beijinglichi = dynamicObject.getBoolean("tqq9_beijinglichi");
if (tqq9_beijinglichi) {
stringBuilder.append(",").append("北京励齿");
}
Boolean tqq9_guangzhoulici = dynamicObject.getBoolean("tqq9_guangzhoulici");
if (tqq9_guangzhoulici) {
stringBuilder.append(",").append("广州励齿");
}
} else if (StringUtils.equals("B", tqq9_rebatesub)) {
BigDecimal tqq9_shlcbl = dynamicObject.getBigDecimal("tqq9_shlcbl");
if (tqq9_shlcbl.compareTo(BigDecimal.ZERO) == 0) {
stringBuilder.append(",").append("上海励齿");
}
BigDecimal tqq9_bjlcbl = dynamicObject.getBigDecimal("tqq9_bjlcbl");
if (tqq9_bjlcbl.compareTo(BigDecimal.ZERO) == 0) {
stringBuilder.append(",").append("北京励齿");
}
BigDecimal tqq9_gzlcbl = dynamicObject.getBigDecimal("tqq9_gzlcbl");
if (tqq9_gzlcbl.compareTo(BigDecimal.ZERO) == 0) {
stringBuilder.append(",").append("广州励齿");
}
}
model.setValue("tqq9_rulename", name, size);//规则名称
if (stringBuilder.length() > 0) {
model.setValue("tqq9_company", stringBuilder.substring(1), size);//主体
}
model.setValue("tqq9_brand", tqq9_rebatebrand, size);//品牌
model.setValue("tqq9_supplier", tqq9_supplier, size);//供应商
model.setValue("tqq9_startdate", tqq9_startdate, size);//返利开始时间
model.setValue("tqq9_enddate", tqq9_enddate, size);//返利结束时间
model.setValue("tqq9_status", tqq9_status, size);//返利状态
model.setValue("tqq9_creatuser", creator, size);//创建人
model.setValue("tqq9_creatdate", createtime, size);//创建时间
model.setValue("tqq9_lastdate", tqq9_lastdate, size);//最后一次执行时间
model.setValue("tqq9_pur_rebate", dynamicObject, size);//返利规则
} }
} }
this.getView().updateView(); this.getView().updateView();
} }
} }

View File

@ -30,7 +30,7 @@ import java.math.BigDecimal;
import java.util.*; import java.util.*;
/** /**
* 动态表单插件 * 采购建议报表
*/ */
public class PurSuggestRptFromPlugin extends AbstractFormPlugin implements Plugin { public class PurSuggestRptFromPlugin extends AbstractFormPlugin implements Plugin {
private final static Log logger = LogFactory.getLog(PurSuggestRptFromPlugin.class); private final static Log logger = LogFactory.getLog(PurSuggestRptFromPlugin.class);

View File

@ -300,11 +300,11 @@ public class PuroderBillShareRefundPlugin extends AbstractBillPlugIn {
if (StringUtils.equals("priceandtax", name)) { if (StringUtils.equals("priceandtax", name)) {
ChangeData changeData = e.getChangeSet()[0]; ChangeData changeData = e.getChangeSet()[0];
int rowIndex = changeData.getRowIndex(); int rowIndex = changeData.getRowIndex();
int seq = rowIndex + 1; int seq = rowIndex;
BigDecimal newValue = (BigDecimal) changeData.getNewValue(); BigDecimal newValue = (BigDecimal) changeData.getNewValue();
BigDecimal tqq9_zgcgxj = (BigDecimal) getModel().getValue("tqq9_zgcgxj"); BigDecimal tqq9_zgcgxj = (BigDecimal) getModel().getValue("tqq9_zgcgxj",seq);
if (newValue.compareTo(tqq9_zgcgxj) > 0 && tqq9_zgcgxj.compareTo(BigDecimal.ZERO) > 0) { if (newValue.compareTo(tqq9_zgcgxj) > 0 && tqq9_zgcgxj.compareTo(BigDecimal.ZERO) > 0) {
getModel().setValue("priceandtax", 0); getModel().setValue("priceandtax", 0,seq);
this.getView().showErrorNotification("物料明细分录行" + seq + "含税单价超过最高采购限价,请修改"); this.getView().showErrorNotification("物料明细分录行" + seq + "含税单价超过最高采购限价,请修改");
} }