20250731
This commit is contained in:
parent
940d77c017
commit
f81442fec3
|
|
@ -0,0 +1,42 @@
|
||||||
|
package tqq9.lc123.cloud.app.plugin.form.conm;
|
||||||
|
|
||||||
|
import kd.bos.form.CloseCallBack;
|
||||||
|
import kd.bos.form.FormShowParameter;
|
||||||
|
import kd.bos.form.ShowType;
|
||||||
|
import kd.bos.form.control.events.BeforeItemClickEvent;
|
||||||
|
import kd.bos.form.events.ClosedCallBackEvent;
|
||||||
|
import kd.bos.form.plugin.AbstractFormPlugin;
|
||||||
|
import kd.sdk.plugin.Plugin;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 动态表单插件
|
||||||
|
*/
|
||||||
|
public class purconmAddRebateRulesPlugin extends AbstractFormPlugin implements Plugin {
|
||||||
|
@Override
|
||||||
|
public void beforeItemClick(BeforeItemClickEvent evt) {
|
||||||
|
super.beforeItemClick(evt);
|
||||||
|
String itemKey = evt.getItemKey();
|
||||||
|
if ("tqq9_pur_rebate".equals(itemKey)) {
|
||||||
|
FormShowParameter param = new FormShowParameter();
|
||||||
|
param.setFormId("tqq9_pur_rebate");
|
||||||
|
param.setCloseCallBack(new CloseCallBack(this, "syncFilter"));
|
||||||
|
param.getOpenStyle().setShowType(ShowType.Modal);
|
||||||
|
this.getView().showForm(param);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void closedCallBack(ClosedCallBackEvent closedCallBackEvent) {
|
||||||
|
super.closedCallBack(closedCallBackEvent);
|
||||||
|
if (closedCallBackEvent.getActionId().equals("syncFilter")) {
|
||||||
|
Object returnData = closedCallBackEvent.getReturnData();
|
||||||
|
if (returnData != null) {
|
||||||
|
Map data = (Map) returnData;
|
||||||
|
//调用接口同步数据
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
package tqq9.lc123.cloud.app.plugin.form.im;
|
||||||
|
|
||||||
|
import kd.bos.entity.operate.result.OperationResult;
|
||||||
|
import kd.bos.form.events.AfterDoOperationEventArgs;
|
||||||
|
import kd.bos.form.plugin.AbstractFormPlugin;
|
||||||
|
import kd.sdk.plugin.Plugin;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 动态表单插件
|
||||||
|
*/
|
||||||
|
public class ReturnStockSyncNoticePlugin extends AbstractFormPlugin implements Plugin {
|
||||||
|
@Override
|
||||||
|
public void afterDoOperation(AfterDoOperationEventArgs afterDoOperationEventArgs) {
|
||||||
|
super.afterDoOperation(afterDoOperationEventArgs);
|
||||||
|
OperationResult operationResult = afterDoOperationEventArgs.getOperationResult();
|
||||||
|
String message = operationResult.getMessage();
|
||||||
|
System.out.println(111);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,68 @@
|
||||||
|
package tqq9.lc123.cloud.app.plugin.form.pm;
|
||||||
|
|
||||||
|
import com.alibaba.nacos.common.utils.StringUtils;
|
||||||
|
import kd.bos.dataentity.entity.DynamicObject;
|
||||||
|
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||||
|
import kd.bos.entity.datamodel.IDataModel;
|
||||||
|
import kd.bos.entity.datamodel.events.ChangeData;
|
||||||
|
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
||||||
|
import kd.bos.form.plugin.AbstractFormPlugin;
|
||||||
|
import kd.bos.orm.query.QCP;
|
||||||
|
import kd.bos.orm.query.QFilter;
|
||||||
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||||
|
import kd.sdk.plugin.Plugin;
|
||||||
|
|
||||||
|
import java.util.EventObject;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 表单通用插件,带出创建人部门,许可证号
|
||||||
|
* 注册证号:tqq9_registration
|
||||||
|
* 许可证号:tqq9_licenseno
|
||||||
|
* 创建部门:tqq9_dept
|
||||||
|
* 需保持一致
|
||||||
|
*/
|
||||||
|
public class BaseDataPlugin extends AbstractFormPlugin implements Plugin {
|
||||||
|
@Override
|
||||||
|
public void afterCreateNewData(EventObject e) {
|
||||||
|
super.afterCreateNewData(e);
|
||||||
|
IDataModel model = this.getModel();
|
||||||
|
DynamicObject dataEntity = model.getDataEntity();
|
||||||
|
DynamicObject creator = dataEntity.getDynamicObject("creator");
|
||||||
|
DynamicObject bos_user = BusinessDataServiceHelper.loadSingle("bos_user", new QFilter[]{new QFilter("id", QCP.equals, creator.getLong("id"))});
|
||||||
|
DynamicObjectCollection entryentity = bos_user.getDynamicObjectCollection("entryentity");
|
||||||
|
DynamicObject dept=null;
|
||||||
|
for (DynamicObject dynamicObject : entryentity) {
|
||||||
|
boolean ispartjob = dynamicObject.getBoolean("ispartjob");
|
||||||
|
if (!ispartjob){
|
||||||
|
dept=dynamicObject.getDynamicObject("dpt");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
model.setValue("tqq9_dept",dept);
|
||||||
|
this.getView().updateView();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void propertyChanged(PropertyChangedArgs e) {
|
||||||
|
super.propertyChanged(e);
|
||||||
|
String key = e.getProperty().getName();
|
||||||
|
if (StringUtils.equals("tqq9_registration", key)) {
|
||||||
|
StringBuilder stringBuilder=new StringBuilder();
|
||||||
|
ChangeData[] changeSet = e.getChangeSet();
|
||||||
|
ChangeData changeData = changeSet[0];
|
||||||
|
int rowIndex = changeData.getRowIndex();
|
||||||
|
DynamicObject newValue = (DynamicObject)changeData.getNewValue();
|
||||||
|
if(newValue!=null){
|
||||||
|
DynamicObject tqq9_registration = BusinessDataServiceHelper.loadSingle("tqq9_registration", new QFilter[]{new QFilter("id", QCP.equals, newValue.getLong("id"))});
|
||||||
|
DynamicObjectCollection tqq9_entry = tqq9_registration.getDynamicObjectCollection("tqq9_entry");
|
||||||
|
for (DynamicObject entry : tqq9_entry) {
|
||||||
|
String supno = entry.getString("tqq9_e_supno");
|
||||||
|
stringBuilder.append(",").append(supno);
|
||||||
|
}
|
||||||
|
String substring = stringBuilder.substring(1);
|
||||||
|
this.getModel().setValue("tqq9_licenseno",substring,rowIndex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.getView().updateView();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -70,25 +70,25 @@ public class PuroderBillShareRefundPlugin extends AbstractBillPlugIn {
|
||||||
}
|
}
|
||||||
this.getView().updateView("billentry");
|
this.getView().updateView("billentry");
|
||||||
}
|
}
|
||||||
if("tqq9_disamount".equals(name)){
|
if("tqq9_discountamount".equals(name)){
|
||||||
//优惠金额
|
//优惠金额
|
||||||
BigDecimal tqq9_hshfsyje = dataEntity.getBigDecimal(name);//单头优惠金额
|
BigDecimal tqq9_discountamount = dataEntity.getBigDecimal(name);//单头优惠金额
|
||||||
if(tqq9_hshfsyje.compareTo(BigDecimal.ZERO) > 0){
|
if(tqq9_discountamount.compareTo(BigDecimal.ZERO) > 0){
|
||||||
BigDecimal totalallamount = dataEntity.getBigDecimal("totalallamount");//单头价税合计
|
BigDecimal totalallamount = dataEntity.getBigDecimal("totalallamount");//单头价税合计
|
||||||
DynamicObjectCollection billentries = dataEntity.getDynamicObjectCollection("billentry");
|
DynamicObjectCollection billentries = dataEntity.getDynamicObjectCollection("billentry");
|
||||||
if(billentries != null && billentries.size() > 0){
|
if(billentries != null && billentries.size() > 0){
|
||||||
BigDecimal remainRefundAmt = tqq9_hshfsyje;//拆分后剩余的金额
|
BigDecimal remainRefundAmt = tqq9_discountamount;//拆分后剩余的金额
|
||||||
for (int i = 0; i <= billentries.size() - 1; i++) {
|
for (int i = 0; i <= billentries.size() - 1; i++) {
|
||||||
DynamicObject billentry = billentries.get(i);
|
DynamicObject billentry = billentries.get(i);
|
||||||
if(i == billentries.size() - 1){
|
if(i == billentries.size() - 1){
|
||||||
//如果是最后一行
|
//如果是最后一行
|
||||||
this.getModel().setValue("tqq9_hfamount", remainRefundAmt, i);//明细货返使用金额
|
this.getModel().setValue("tqq9_disamount", remainRefundAmt, i);//明细优惠金额
|
||||||
}else{
|
}else{
|
||||||
//如果不是最后一行
|
//如果不是最后一行
|
||||||
BigDecimal amountandtax = billentry.getBigDecimal("amountandtax");//明细价税合计
|
BigDecimal amountandtax = billentry.getBigDecimal("amountandtax");//明细价税合计
|
||||||
BigDecimal tqq9_hfamount = tqq9_hshfsyje.multiply(amountandtax).divide(totalallamount, 2, RoundingMode.HALF_UP);//分录行含税金额比例
|
BigDecimal tqq9_disamount = tqq9_discountamount.multiply(amountandtax).divide(totalallamount, 2, RoundingMode.HALF_UP);//分录行含税金额比例
|
||||||
this.getModel().setValue("tqq9_hfamount", tqq9_hfamount, i);//明细货返使用金额
|
this.getModel().setValue("tqq9_disamount", tqq9_disamount, i);//明细优惠金额
|
||||||
remainRefundAmt = remainRefundAmt.subtract(tqq9_hfamount);
|
remainRefundAmt = remainRefundAmt.subtract(tqq9_disamount);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,10 +11,14 @@ 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.entity.datamodel.events.ChangeData;
|
||||||
|
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
||||||
|
import kd.bos.entity.operate.result.OperationResult;
|
||||||
import kd.bos.form.*;
|
import kd.bos.form.*;
|
||||||
import kd.bos.form.control.Control;
|
import kd.bos.form.control.Control;
|
||||||
import kd.bos.form.control.EntryGrid;
|
import kd.bos.form.control.EntryGrid;
|
||||||
import kd.bos.form.control.events.BeforeClickEvent;
|
import kd.bos.form.control.events.BeforeClickEvent;
|
||||||
|
import kd.bos.form.events.AfterDoOperationEventArgs;
|
||||||
import kd.bos.form.events.ClosedCallBackEvent;
|
import kd.bos.form.events.ClosedCallBackEvent;
|
||||||
import kd.bos.form.events.HyperLinkClickEvent;
|
import kd.bos.form.events.HyperLinkClickEvent;
|
||||||
import kd.bos.form.events.HyperLinkClickListener;
|
import kd.bos.form.events.HyperLinkClickListener;
|
||||||
|
|
@ -26,6 +30,7 @@ import kd.bos.list.ListFilterParameter;
|
||||||
import kd.bos.list.ListShowParameter;
|
import kd.bos.list.ListShowParameter;
|
||||||
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.plugin.sample.dynamicform.pcform.field.template.PropertyChanged;
|
||||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||||
import kd.bos.workflow.bpmn.model.basedata.BaseDataHelper;
|
import kd.bos.workflow.bpmn.model.basedata.BaseDataHelper;
|
||||||
import kd.sdk.plugin.Plugin;
|
import kd.sdk.plugin.Plugin;
|
||||||
|
|
@ -37,7 +42,7 @@ import java.util.EventObject;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 单据界面插件
|
* 点击付款计划分录付款单,弹出与预付款选择界面进行预付
|
||||||
*/
|
*/
|
||||||
public class PurorderEntryIntroPaybillPlugin extends AbstractBillPlugIn implements HyperLinkClickListener {
|
public class PurorderEntryIntroPaybillPlugin extends AbstractBillPlugIn implements HyperLinkClickListener {
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -48,22 +53,9 @@ public class PurorderEntryIntroPaybillPlugin extends AbstractBillPlugIn implemen
|
||||||
preEntry.addHyperClickListener(this);
|
preEntry.addHyperClickListener(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
// @Override
|
* 点击付款单反写本次结算金额
|
||||||
// public void beforeF7Select(BeforeF7SelectEvent event) {
|
*/
|
||||||
// IDataModel model = this.getModel();
|
|
||||||
// DynamicObject org =model.getDataEntity().getDynamicObject("org");
|
|
||||||
// if (org!=null) {
|
|
||||||
// ListShowParameter param = (ListShowParameter) event.getFormShowParameter();
|
|
||||||
// QFilter qF1 = new QFilter("org.number", QCP.in, org.getString("number"));
|
|
||||||
// QFilter qF2 = new QFilter("yem_iscontactpaybill", QCP.equals, false);
|
|
||||||
// param.getListFilterParameter().getQFilters().add(qF1.and(qF2));
|
|
||||||
// }
|
|
||||||
// CloseCallBack closeCallBack = new CloseCallBack(this.getPluginName(), "zbBill");
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void closedCallBack(ClosedCallBackEvent closedCallBackEvent) {
|
public void closedCallBack(ClosedCallBackEvent closedCallBackEvent) {
|
||||||
super.closedCallBack(closedCallBackEvent);
|
super.closedCallBack(closedCallBackEvent);
|
||||||
|
|
@ -71,7 +63,7 @@ public class PurorderEntryIntroPaybillPlugin extends AbstractBillPlugIn implemen
|
||||||
IFormView view = this.getView();
|
IFormView view = this.getView();
|
||||||
String actionId = closedCallBackEvent.getActionId();
|
String actionId = closedCallBackEvent.getActionId();
|
||||||
Object returnData = closedCallBackEvent.getReturnData();
|
Object returnData = closedCallBackEvent.getReturnData();
|
||||||
if(returnData==null){
|
if (returnData != null) {
|
||||||
if ("paybill".equals(actionId)) {
|
if ("paybill".equals(actionId)) {
|
||||||
DynamicObjectCollection purbillentry_pay = this.getModel().getDataEntity(true).getDynamicObjectCollection("purbillentry_pay");
|
DynamicObjectCollection purbillentry_pay = this.getModel().getDataEntity(true).getDynamicObjectCollection("purbillentry_pay");
|
||||||
int seq = 0;
|
int seq = 0;
|
||||||
|
|
@ -85,19 +77,19 @@ public class PurorderEntryIntroPaybillPlugin extends AbstractBillPlugIn implemen
|
||||||
DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(listSelectedRow.toString(), "cas_paybill");
|
DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(listSelectedRow.toString(), "cas_paybill");
|
||||||
BigDecimal unsettleamount = dynamicObject.getBigDecimal("unsettleamount");
|
BigDecimal unsettleamount = dynamicObject.getBigDecimal("unsettleamount");
|
||||||
|
|
||||||
model.setValue("tqq9_paybillno", dynamicObject.getString("billno"));
|
model.setValue("tqq9_paybillno", dynamicObject.getString("billno"));//付款单
|
||||||
// model.setValue("tqq9_paybillid", dynamicObject.getString("id"));
|
model.setValue("joinpayamount", unsettleamount, seq);//关联付款金额
|
||||||
model.setValue("paidpreallamount", unsettleamount);
|
model.setValue("paidamount", unsettleamount, seq);//已付金额
|
||||||
model.setValue("paidallamount", unsettleamount);
|
model.setValue("tqq9_settleamount", unsettleamount, seq);//本次结算金额
|
||||||
model.setValue("joinpayamount", unsettleamount,seq);
|
view.setVisible(true, "paidpreallamount,paidallamount,joinpayamount,paidamount,tqq9_settleamount");
|
||||||
model.setValue("paidamount", unsettleamount,seq);
|
|
||||||
view.setVisible(true,"paidpreallamount,paidallamount,joinpayamount,paidamount");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.getView().updateView();
|
this.getView().updateView();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 选择付款单前置条件校验:订货供应商不能为空,勾选是否预付,价税合计不能为空
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void beforeClick(BeforeClickEvent evt) {
|
public void beforeClick(BeforeClickEvent evt) {
|
||||||
super.beforeClick(evt);
|
super.beforeClick(evt);
|
||||||
|
|
@ -108,6 +100,11 @@ public class PurorderEntryIntroPaybillPlugin extends AbstractBillPlugIn implemen
|
||||||
EntryGrid entryGrid = this.getControl("purbillentry_pay");
|
EntryGrid entryGrid = this.getControl("purbillentry_pay");
|
||||||
int length = entryGrid.getSelectRows()[0];//获取点击分录序号从0开始
|
int length = entryGrid.getSelectRows()[0];//获取点击分录序号从0开始
|
||||||
DynamicObject pm_purorderbill = model.getDataEntity(true);//采购订单
|
DynamicObject pm_purorderbill = model.getDataEntity(true);//采购订单
|
||||||
|
BigDecimal totalallamount = pm_purorderbill.getBigDecimal("totalallamount");//价税合计
|
||||||
|
if (totalallamount.compareTo(BigDecimal.ZERO)<0) {
|
||||||
|
this.getView().showMessage("价税合计不能为空");
|
||||||
|
evt.setCancel(true);
|
||||||
|
}
|
||||||
DynamicObjectCollection entries = pm_purorderbill.getDynamicObjectCollection("purbillentry_pay");//付款计划分录
|
DynamicObjectCollection entries = pm_purorderbill.getDynamicObjectCollection("purbillentry_pay");//付款计划分录
|
||||||
DynamicObject supplier = pm_purorderbill.getDynamicObject("supplier");//订货供应商
|
DynamicObject supplier = pm_purorderbill.getDynamicObject("supplier");//订货供应商
|
||||||
DynamicObject dynamicObject = entries.get(length);
|
DynamicObject dynamicObject = entries.get(length);
|
||||||
|
|
@ -123,14 +120,17 @@ public class PurorderEntryIntroPaybillPlugin extends AbstractBillPlugIn implemen
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 点击付款单字段选择付款单
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void click(EventObject evt) {
|
public void click(EventObject evt) {
|
||||||
super.click(evt);
|
super.click(evt);
|
||||||
Control c = (Control) evt.getSource();
|
Control c = (Control) evt.getSource();
|
||||||
String key = c.getKey().toLowerCase();
|
String key = c.getKey().toLowerCase();
|
||||||
IDataModel model = this.getModel();
|
|
||||||
|
|
||||||
if ("tqq9_paybillno".equals(key)) {
|
if ("tqq9_paybillno".equals(key)) {
|
||||||
|
IDataModel model = this.getModel();
|
||||||
int entryRowCount = model.getEntryRowCount("purbillentry_pay");
|
int entryRowCount = model.getEntryRowCount("purbillentry_pay");
|
||||||
List<String> selectedNos = new ArrayList(entryRowCount);
|
List<String> selectedNos = new ArrayList(entryRowCount);
|
||||||
DynamicObject pm_purorderbill = model.getDataEntity(true);//采购订单
|
DynamicObject pm_purorderbill = model.getDataEntity(true);//采购订单
|
||||||
|
|
@ -145,21 +145,47 @@ public class PurorderEntryIntroPaybillPlugin extends AbstractBillPlugIn implemen
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
QFilter filter = new QFilter("billstatus", "=", "D");//已付款
|
QFilter filter = new QFilter("billstatus", "=", "D");//已付款
|
||||||
if (ObjectUtils.isEmpty(selectedNos)) {
|
if (!ObjectUtils.isEmpty(selectedNos)) {
|
||||||
filter.and(new QFilter("billno", "not in", selectedNos));
|
filter.and(new QFilter("billno", "not in", selectedNos));
|
||||||
}
|
}
|
||||||
filter.and(new QFilter("itempayeetype", "=", "bd_supplier"));//收款人类型为供应商
|
filter.and(new QFilter("itempayeetype", "=", "bd_supplier"));//收款人类型为供应商
|
||||||
filter.and(new QFilter("itempayee", "=", supplier.getLong("id")));//收款人为采购订单供应商
|
filter.and(new QFilter("itempayee", "=", supplier.getLong("id")));//收款人为采购订单供应商
|
||||||
filter.and(new QFilter("paymenttype.number", "=", "202"));
|
filter.and(new QFilter("paymenttype.number", "=", "202"));
|
||||||
filter.and("unsettleamount", QCP.large_than, BigDecimal.ZERO);
|
filter.and("unsettleamount", QCP.large_than, BigDecimal.ZERO);
|
||||||
// //组织一致
|
//组织一致
|
||||||
// DynamicObject org = (DynamicObject)model.getValue("org");
|
DynamicObject org = (DynamicObject) model.getValue("org");
|
||||||
// filter.and(new QFilter("entry.settleorg", "=", org.getLong("id")));
|
filter.and(new QFilter("entry.settleorg", "=", org.getLong("id")));
|
||||||
DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle("cas_paybill", new QFilter[]{filter});
|
DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle("cas_paybill", new QFilter[]{filter});
|
||||||
showZbBillF7(this.getView(), this.getPluginName(), filter);
|
showZbBillF7(this.getView(), this.getPluginName(), filter);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验付款比例不能大于100%
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void propertyChanged(PropertyChangedArgs e) {
|
||||||
|
super.propertyChanged(e);
|
||||||
|
String key = e.getProperty().getName();
|
||||||
|
ChangeData[] changeSet = e.getChangeSet();
|
||||||
|
if (StringUtils.equals("payrate", key)) {
|
||||||
|
IDataModel model = this.getModel();
|
||||||
|
DynamicObject pm_purorderbill = model.getDataEntity(true);//采购订单
|
||||||
|
DynamicObjectCollection entries = pm_purorderbill.getDynamicObjectCollection("purbillentry_pay");//付款计划分录
|
||||||
|
BigDecimal zero = BigDecimal.ZERO;
|
||||||
|
for (DynamicObject entry : entries) {
|
||||||
|
BigDecimal payrate = entry.getBigDecimal("payrate");
|
||||||
|
zero=zero.add(payrate);
|
||||||
|
}
|
||||||
|
if (zero.compareTo(new BigDecimal(100)) > 0) {
|
||||||
|
this.getView().showErrorNotification("付款计划付款比例总计大于100%,请修改");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void hyperLinkClick(HyperLinkClickEvent hyperLinkClickEvent) {
|
public void hyperLinkClick(HyperLinkClickEvent hyperLinkClickEvent) {
|
||||||
int rowIndex = hyperLinkClickEvent.getRowIndex();
|
int rowIndex = hyperLinkClickEvent.getRowIndex();
|
||||||
|
|
@ -188,5 +214,9 @@ public class PurorderEntryIntroPaybillPlugin extends AbstractBillPlugIn implemen
|
||||||
view.showForm(lsp);
|
view.showForm(lsp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void afterDoOperation(AfterDoOperationEventArgs afterDoOperationEventArgs) {
|
||||||
|
super.afterDoOperation(afterDoOperationEventArgs);
|
||||||
|
OperationResult operationResult = afterDoOperationEventArgs.getOperationResult();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -0,0 +1,59 @@
|
||||||
|
package tqq9.lc123.cloud.app.plugin.form.sys;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import kd.bos.bill.AbstractBillPlugIn;
|
||||||
|
import kd.bos.dataentity.entity.DynamicObject;
|
||||||
|
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||||
|
import kd.bos.dataentity.entity.LocaleString;
|
||||||
|
import kd.bos.dataentity.utils.StringUtils;
|
||||||
|
import kd.bos.entity.datamodel.IDataModel;
|
||||||
|
import kd.bos.entity.datamodel.events.ChangeData;
|
||||||
|
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
||||||
|
import kd.bos.form.field.ComboEdit;
|
||||||
|
import kd.bos.form.field.ComboItem;
|
||||||
|
import kd.sdk.plugin.Plugin;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单据界面插件
|
||||||
|
*/
|
||||||
|
public class CustomerBillPlugin extends AbstractBillPlugIn implements Plugin {
|
||||||
|
@Override
|
||||||
|
public void propertyChanged(PropertyChangedArgs e) {
|
||||||
|
super.propertyChanged(e);
|
||||||
|
String itemKey = e.getProperty().getName();
|
||||||
|
ChangeData[] changeSet = e.getChangeSet();
|
||||||
|
if (StringUtils.equals("tqq9_settlementtype", itemKey)) {
|
||||||
|
String settlementtype = (String) changeSet[0].getNewValue();
|
||||||
|
List<ComboItem> comboItems = new ArrayList<>();
|
||||||
|
ComboEdit comboEdit = (ComboEdit) this.getControl("tqq9_khjslx");
|
||||||
|
if ("B".equals(settlementtype)) {
|
||||||
|
ComboItem comboItem = new ComboItem();
|
||||||
|
ComboItem comboItem1 = new ComboItem();
|
||||||
|
comboItem.setCaption(new LocaleString("现结"));
|
||||||
|
comboItem1.setCaption(new LocaleString("货到付款"));
|
||||||
|
comboItem.setValue("A");
|
||||||
|
comboItem1.setValue("B");
|
||||||
|
comboItems.add(comboItem);
|
||||||
|
comboItems.add(comboItem1);
|
||||||
|
comboEdit.setComboItems(comboItems);
|
||||||
|
} else if ("A".equals(settlementtype)) {
|
||||||
|
ComboItem comboItem = new ComboItem();
|
||||||
|
ComboItem comboItem1 = new ComboItem();
|
||||||
|
comboItem.setCaption(new LocaleString("单店月结"));
|
||||||
|
comboItem1.setCaption(new LocaleString("连锁月结"));
|
||||||
|
comboItem.setValue("C");
|
||||||
|
comboItem1.setValue("D");
|
||||||
|
comboItems.add(comboItem);
|
||||||
|
comboItems.add(comboItem1);
|
||||||
|
comboEdit.setComboItems(comboItems);
|
||||||
|
}else{
|
||||||
|
comboEdit.setComboItems(comboItems);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -15,11 +15,12 @@ import kd.bos.servicehelper.operation.SaveServiceHelper;
|
||||||
import kd.sdk.plugin.Plugin;
|
import kd.sdk.plugin.Plugin;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 采购订单操作插件
|
* 采购订单操作插件
|
||||||
* 1.校验器:未结算金额大于0校验
|
* 1.校验器:校验本次结算金额
|
||||||
* 2.审核插件:付款计划分录对应付款单的未结算金额转化为已结算金额
|
* 2.审核插件:反写本次结算金额
|
||||||
*/
|
*/
|
||||||
public class PurOrderReversePayBillPlugin extends AbstractOperationServicePlugIn implements Plugin {
|
public class PurOrderReversePayBillPlugin extends AbstractOperationServicePlugIn implements Plugin {
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -29,9 +30,15 @@ public class PurOrderReversePayBillPlugin extends AbstractOperationServicePlugIn
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 采购订单操作插件
|
||||||
|
* 1.校验器:未结算金额大于0校验
|
||||||
|
* 2.审核插件:付款计划分录对应付款单的未结算金额转化为已结算金额
|
||||||
|
*/
|
||||||
class UnSettleAmountValidator extends AbstractValidator {
|
class UnSettleAmountValidator extends AbstractValidator {
|
||||||
@Override
|
@Override
|
||||||
public void validate() {
|
public void validate() {
|
||||||
|
HashMap<String, BigDecimal> paybillMap = new HashMap();
|
||||||
for (ExtendedDataEntity dataEntity : this.getDataEntities()) {
|
for (ExtendedDataEntity dataEntity : this.getDataEntities()) {
|
||||||
String billno = dataEntity.getDataEntity().getString("billno");//采购订单单据号
|
String billno = dataEntity.getDataEntity().getString("billno");//采购订单单据号
|
||||||
//查询采购订单
|
//查询采购订单
|
||||||
|
|
@ -39,16 +46,33 @@ public class PurOrderReversePayBillPlugin extends AbstractOperationServicePlugIn
|
||||||
//获取付款计划分录
|
//获取付款计划分录
|
||||||
DynamicObjectCollection purbillentry_pay = purorderbill.getDynamicObjectCollection("purbillentry_pay");
|
DynamicObjectCollection purbillentry_pay = purorderbill.getDynamicObjectCollection("purbillentry_pay");
|
||||||
for (DynamicObject dynamicObject : purbillentry_pay) {
|
for (DynamicObject dynamicObject : purbillentry_pay) {
|
||||||
//付款单单据编号
|
String tqq9_paybillno = dynamicObject.getString("tqq9_paybillno");//付款单单据编号
|
||||||
String tqq9_paybillno = dynamicObject.getString("tqq9_paybillno");
|
BigDecimal tqq9_settleamount = dynamicObject.getBigDecimal("tqq9_settleamount");//本次结算金额
|
||||||
//查询付款单
|
BigDecimal payamount = dynamicObject.getBigDecimal("payamount");//付款金额
|
||||||
DynamicObject paybill = BusinessDataServiceHelper.loadSingle("cas_paybill", new QFilter[]{new QFilter("billno", QCP.equals, tqq9_paybillno)});
|
if (tqq9_settleamount.compareTo(payamount) > 0) {
|
||||||
BigDecimal unsettleamount = paybill.getBigDecimal("unsettleamount");//未结算金额
|
this.addErrorMessage(dataEntity, "单据号:" + billno + "付款计划分录的付款单:" + tqq9_paybillno + "本次结算金额为大于付款金额,请修改");
|
||||||
if (unsettleamount.compareTo(BigDecimal.ZERO) <= 0) {
|
|
||||||
this.addErrorMessage(dataEntity, "单据号:" + billno + "付款计划分录的付款单:" + tqq9_paybillno + "未结算金额为:" + unsettleamount+"无法审核");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//查询付款单
|
||||||
|
DynamicObject paybill = BusinessDataServiceHelper.loadSingle("cas_paybill", new QFilter[]{new QFilter("billno", QCP.equals, tqq9_paybillno)});
|
||||||
|
if (paybill != null) {
|
||||||
|
BigDecimal unsettleamount = paybill.getBigDecimal("unsettleamount");//未结算金额
|
||||||
|
String paybillno = paybill.getString("billno");//未结算金额
|
||||||
|
if (!paybillMap.containsKey(paybillno)) {
|
||||||
|
if (unsettleamount.compareTo(tqq9_settleamount) < 0) {
|
||||||
|
this.addErrorMessage(dataEntity, "单据号:" + billno + "付款计划分录的付款单:" + tqq9_paybillno + "未结算金额为小于本次结算金额,请修改");
|
||||||
|
}
|
||||||
|
paybillMap.put(paybillno, tqq9_settleamount);
|
||||||
|
} else {
|
||||||
|
BigDecimal total_tqq9_settleamount = paybillMap.get(paybillno);
|
||||||
|
tqq9_settleamount=tqq9_settleamount.add(total_tqq9_settleamount);
|
||||||
|
if (unsettleamount.compareTo(tqq9_settleamount) < 0) {
|
||||||
|
this.addErrorMessage(dataEntity, "审核订单中付款计划针对付款单:"+paybillno+",本次结算金额总和为大于未结算金额,请修改");
|
||||||
|
}
|
||||||
|
paybillMap.put(paybillno, tqq9_settleamount);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -67,27 +91,39 @@ public class PurOrderReversePayBillPlugin extends AbstractOperationServicePlugIn
|
||||||
for (DynamicObject dynamicObject : purbillentry_pay) {
|
for (DynamicObject dynamicObject : purbillentry_pay) {
|
||||||
//付款单单据编号
|
//付款单单据编号
|
||||||
String tqq9_paybillno = dynamicObject.getString("tqq9_paybillno");
|
String tqq9_paybillno = dynamicObject.getString("tqq9_paybillno");
|
||||||
|
BigDecimal tqq9_settleamount = dynamicObject.getBigDecimal("tqq9_settleamount");
|
||||||
//查询付款单
|
//查询付款单
|
||||||
DynamicObject paybill = BusinessDataServiceHelper.loadSingle("cas_paybill", new QFilter[]{new QFilter("billno", QCP.equals, tqq9_paybillno)});
|
DynamicObject paybill = BusinessDataServiceHelper.loadSingle("cas_paybill", new QFilter[]{new QFilter("billno", QCP.equals, tqq9_paybillno)});
|
||||||
if (paybill != null) {
|
if (paybill != null) {
|
||||||
//获取付款明细分录
|
//获取付款明细分录
|
||||||
DynamicObjectCollection entries = paybill.getDynamicObjectCollection("entry");
|
DynamicObjectCollection entries = paybill.getDynamicObjectCollection("entry");
|
||||||
BigDecimal unsettleamount = paybill.getBigDecimal("unsettleamount");//未结算金额
|
BigDecimal unsettleamount = BigDecimal.ZERO;//未结算金额
|
||||||
BigDecimal unsettleamountbase = paybill.getBigDecimal("unsettleamountbase");//未结算金额(本位币)
|
BigDecimal unsettleamountbase = BigDecimal.ZERO;//未结算金额(本位币)
|
||||||
//单头未结算金额转化为已结算金额
|
BigDecimal settleamount = BigDecimal.ZERO;//已结算金额
|
||||||
paybill.set("unsettleamount", BigDecimal.ZERO);
|
BigDecimal settleamountbase = BigDecimal.ZERO;//已结算金额(本位币)
|
||||||
paybill.set("unsettleamountbase", BigDecimal.ZERO);
|
|
||||||
paybill.set("settleamount", unsettleamount);//已结算金额
|
|
||||||
paybill.set("settleamountbase", unsettleamountbase);//已结算金额(本位币)
|
|
||||||
for (DynamicObject entry : entries) {
|
for (DynamicObject entry : entries) {
|
||||||
BigDecimal e_unsettledamt = entry.getBigDecimal("e_unsettledamt");//未结算金额
|
BigDecimal e_unsettledamt = entry.getBigDecimal("e_unsettledamt");//未结算金额
|
||||||
BigDecimal e_unsettledlocalamt = entry.getBigDecimal("e_unsettledlocalamt");//未结算金额折本位币
|
BigDecimal e_unsettledlocalamt = entry.getBigDecimal("e_unsettledlocalamt");//未结算金额折本位币
|
||||||
|
BigDecimal e_settledamt = entry.getBigDecimal("e_settledamt");//已结算金额
|
||||||
|
BigDecimal e_settledlocalamt = entry.getBigDecimal("e_settledlocalamt");//已结算金额折本位币
|
||||||
//分录未结算金额转化为已结算金额
|
//分录未结算金额转化为已结算金额
|
||||||
entry.set("e_unsettledamt", BigDecimal.ZERO);
|
entry.set("e_unsettledamt", e_unsettledamt.subtract(tqq9_settleamount));//未结算金额
|
||||||
entry.set("e_unsettledlocalamt", BigDecimal.ZERO);
|
entry.set("e_unlockamt", e_unsettledamt.subtract(tqq9_settleamount));//未锁定金额
|
||||||
entry.set("e_settledamt", e_unsettledamt);//已结算金额
|
unsettleamount = unsettleamount.add(e_unsettledamt.subtract(tqq9_settleamount));
|
||||||
entry.set("e_settledlocalamt", e_unsettledlocalamt);//已结算金额折本币
|
entry.set("e_unsettledlocalamt", e_unsettledlocalamt.subtract(tqq9_settleamount));//未结算金额(本位币)
|
||||||
|
unsettleamountbase = unsettleamountbase.add(e_unsettledlocalamt.subtract(tqq9_settleamount));
|
||||||
|
entry.set("e_settledamt", e_settledamt.add(tqq9_settleamount));//已结算金额
|
||||||
|
entry.set("e_lockamt", e_settledamt.add(tqq9_settleamount));//已锁定金额
|
||||||
|
settleamount = settleamount.add(e_settledamt.add(tqq9_settleamount));
|
||||||
|
entry.set("e_settledlocalamt", e_settledlocalamt.add(tqq9_settleamount));//已结算金额折本币
|
||||||
|
settleamountbase = settleamountbase.add(e_settledlocalamt.add(tqq9_settleamount));
|
||||||
}
|
}
|
||||||
|
//结合本次结算金额计算
|
||||||
|
paybill.set("unsettleamount", unsettleamount);//未结算金额
|
||||||
|
paybill.set("unsettleamountbase", unsettleamountbase);//未结算金额(本位币)
|
||||||
|
paybill.set("settleamount", settleamount);//已结算金额
|
||||||
|
paybill.set("settleamountbase", settleamountbase);//已结算金额(本位币)
|
||||||
paybill.set("entry", entries);
|
paybill.set("entry", entries);
|
||||||
//保存
|
//保存
|
||||||
SaveServiceHelper.save(new DynamicObject[]{paybill});
|
SaveServiceHelper.save(new DynamicObject[]{paybill});
|
||||||
|
|
@ -95,4 +131,5 @@ public class PurOrderReversePayBillPlugin extends AbstractOperationServicePlugIn
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -34,22 +34,35 @@ public class PurOrderUnReversePayBillPlugin extends AbstractOperationServicePlug
|
||||||
if (paybill != null) {
|
if (paybill != null) {
|
||||||
//获取付款明细分录
|
//获取付款明细分录
|
||||||
DynamicObjectCollection entries = paybill.getDynamicObjectCollection("entry");
|
DynamicObjectCollection entries = paybill.getDynamicObjectCollection("entry");
|
||||||
BigDecimal settleamount = paybill.getBigDecimal("settleamount");//已结算金额
|
BigDecimal tqq9_settleamount = dynamicObject.getBigDecimal("tqq9_settleamount");
|
||||||
BigDecimal settleamountbase = paybill.getBigDecimal("settleamountbase");//已结算金额(本位币)
|
BigDecimal settleamount = BigDecimal.ZERO;//已结算金额
|
||||||
//单头已结算金额转化为未结算金额
|
BigDecimal settleamountbase = BigDecimal.ZERO;//已结算金额(本位币)
|
||||||
paybill.set("settleamount", BigDecimal.ZERO);
|
BigDecimal unsettleamount = BigDecimal.ZERO;//未结算金额
|
||||||
paybill.set("settleamountbase", BigDecimal.ZERO);
|
BigDecimal unsettleamountbase = BigDecimal.ZERO;//未结算金额(本位币)
|
||||||
paybill.set("unsettleamount", settleamount);//未结算金额
|
|
||||||
paybill.set("unsettleamountbase", settleamountbase);//已结算金额(本位币)
|
|
||||||
for (DynamicObject entry : entries) {
|
for (DynamicObject entry : entries) {
|
||||||
|
//分录结算金额计算
|
||||||
|
BigDecimal e_unsettledamt = entry.getBigDecimal("e_unsettledamt");//未结算金额
|
||||||
|
BigDecimal e_unsettledlocalamt = entry.getBigDecimal("e_unsettledlocalamt");//未结算金额折本位币
|
||||||
BigDecimal e_settledamt = entry.getBigDecimal("e_settledamt");//已结算金额
|
BigDecimal e_settledamt = entry.getBigDecimal("e_settledamt");//已结算金额
|
||||||
BigDecimal e_settledlocalamt = entry.getBigDecimal("e_settledlocalamt");//已结算金额折本币
|
BigDecimal e_settledlocalamt = entry.getBigDecimal("e_settledlocalamt");//已结算金额折本位币
|
||||||
//分录已结算金额转化为未结算金额
|
//分录未结算金额转化为已结算金额
|
||||||
entry.set("e_settledamt", BigDecimal.ZERO);
|
entry.set("e_unsettledamt", e_unsettledamt.add(tqq9_settleamount));//未结算金额
|
||||||
entry.set("e_settledlocalamt", BigDecimal.ZERO);
|
entry.set("e_unlockamt", e_unsettledamt.add(tqq9_settleamount));//未锁定金额
|
||||||
entry.set("e_unsettledamt", e_settledamt);//未结算金额
|
unsettleamount = unsettleamount.add(e_unsettledamt.add(tqq9_settleamount));
|
||||||
entry.set("e_unsettledlocalamt", e_settledlocalamt);//未结算金额折本币
|
entry.set("e_unsettledlocalamt", e_unsettledlocalamt.add(tqq9_settleamount));//未结算金额(本位币)
|
||||||
|
unsettleamountbase = unsettleamountbase.add(e_unsettledlocalamt.add(tqq9_settleamount));
|
||||||
|
entry.set("e_settledamt", e_settledamt.subtract(tqq9_settleamount));//已结算金额
|
||||||
|
entry.set("e_lockamt", e_settledamt.subtract(tqq9_settleamount));//已锁定金额
|
||||||
|
settleamount = settleamount.add(e_settledamt.subtract(tqq9_settleamount));
|
||||||
|
entry.set("e_settledlocalamt", e_settledlocalamt.subtract(tqq9_settleamount));//已结算金额折本币
|
||||||
|
settleamountbase = settleamountbase.add(e_settledlocalamt.subtract(tqq9_settleamount));
|
||||||
}
|
}
|
||||||
|
//单头结算金额汇总
|
||||||
|
paybill.set("settleamount", settleamount);
|
||||||
|
paybill.set("settleamountbase", settleamountbase);
|
||||||
|
paybill.set("unsettleamount", unsettleamount);//未结算金额
|
||||||
|
paybill.set("unsettleamountbase", unsettleamountbase);//未结算金额(本位币)
|
||||||
paybill.set("entry", entries);
|
paybill.set("entry", entries);
|
||||||
SaveServiceHelper.save(new DynamicObject[]{paybill});// }
|
SaveServiceHelper.save(new DynamicObject[]{paybill});// }
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,58 @@
|
||||||
|
package tqq9.lc123.cloud.app.plugin.operate.im;
|
||||||
|
|
||||||
|
import kd.bos.dataentity.OperateOption;
|
||||||
|
import kd.bos.dataentity.entity.DynamicObject;
|
||||||
|
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||||
|
import kd.bos.entity.operate.result.IOperateInfo;
|
||||||
|
import kd.bos.entity.operate.result.OperationResult;
|
||||||
|
import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
|
||||||
|
import kd.bos.entity.plugin.args.AfterOperationArgs;
|
||||||
|
import kd.bos.orm.query.QCP;
|
||||||
|
import kd.bos.orm.query.QFilter;
|
||||||
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||||
|
import kd.bos.servicehelper.operation.OperationServiceHelper;
|
||||||
|
import kd.sdk.plugin.Plugin;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 采购退货申请单(采购退补货)下推红字采购入库单审核后,根据来源的采购订单生成收货通知单
|
||||||
|
*/
|
||||||
|
public class ReturnStockSyncNotifierPlugin extends AbstractOperationServicePlugIn implements Plugin {
|
||||||
|
@Override
|
||||||
|
public void afterExecuteOperationTransaction(AfterOperationArgs e) {
|
||||||
|
super.afterExecuteOperationTransaction(e);
|
||||||
|
DynamicObject[] dataEntities = e.getDataEntities();
|
||||||
|
for (DynamicObject dataEntity : dataEntities) {
|
||||||
|
DynamicObject biztype = dataEntity.getDynamicObject("biztype");//业务类型
|
||||||
|
String number = biztype.getString("number");
|
||||||
|
//业务类型为物料类采购退补货
|
||||||
|
if ("1102".equals(number)) {
|
||||||
|
String billno = dataEntity.getString("billno");//采购入库单单据编号
|
||||||
|
//采购入库单
|
||||||
|
DynamicObject im_purinbill = BusinessDataServiceHelper.loadSingle("im_purinbill", new QFilter[]{new QFilter("billno", QCP.equals, billno)});
|
||||||
|
DynamicObjectCollection billentry = im_purinbill.getDynamicObjectCollection("billentry");
|
||||||
|
List<String> selectedNos = new ArrayList(billentry.size());
|
||||||
|
DynamicObject[] pm_purorderbills = new DynamicObject[billentry.size()];
|
||||||
|
for (int i = 0; i < billentry.size(); i++) {
|
||||||
|
//核心单据编号
|
||||||
|
String mainbillnumber = billentry.get(i).getString("mainbillnumber");
|
||||||
|
//查询采购订单
|
||||||
|
DynamicObject pm_purorderbill = BusinessDataServiceHelper.loadSingle("pm_purorderbill", new QFilter[]{new QFilter("billno", QCP.equals, mainbillnumber).and(new QFilter("billno", QCP.not_in, selectedNos))});
|
||||||
|
selectedNos.add(mainbillnumber);
|
||||||
|
pm_purorderbills[i] = pm_purorderbill;
|
||||||
|
}
|
||||||
|
|
||||||
|
OperateOption option = OperateOption.create();
|
||||||
|
OperationResult result = OperationServiceHelper.executeOperate("pushandsave", "pm_purorderbill", pm_purorderbills, option);
|
||||||
|
if (result.isSuccess()) {
|
||||||
|
result.setMessage("系统已自动进行退货补货,相关收货通知单已自动生成,请手动调整补货数量,再提交审核");
|
||||||
|
}else{
|
||||||
|
result.setMessage("补货失败,请手动操作");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue