|
@@ -2,30 +2,32 @@ package nckd.wnq01.wnq.scm.plugin.form;
|
|
|
|
|
|
import kd.bos.bill.AbstractBillPlugIn;
|
|
import kd.bos.bill.AbstractBillPlugIn;
|
|
import kd.bos.dataentity.entity.DynamicObject;
|
|
import kd.bos.dataentity.entity.DynamicObject;
|
|
|
|
+import kd.bos.dataentity.entity.DynamicObjectCollection;
|
|
import kd.bos.dataentity.resource.ResManager;
|
|
import kd.bos.dataentity.resource.ResManager;
|
|
|
|
+import kd.bos.dataentity.utils.StringUtils;
|
|
import kd.bos.entity.datamodel.IDataModel;
|
|
import kd.bos.entity.datamodel.IDataModel;
|
|
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
|
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
|
import kd.bos.form.ShowType;
|
|
import kd.bos.form.ShowType;
|
|
import kd.bos.form.cardentry.CardEntry;
|
|
import kd.bos.form.cardentry.CardEntry;
|
|
import kd.bos.form.control.Control;
|
|
import kd.bos.form.control.Control;
|
|
-import kd.bos.form.control.events.ClickListener;
|
|
|
|
-import kd.bos.form.control.events.RowClickEventListener;
|
|
|
|
|
|
+import kd.bos.form.control.EntryGrid;
|
|
|
|
+import kd.bos.form.control.Toolbar;
|
|
|
|
+import kd.bos.form.control.events.*;
|
|
import kd.bos.form.events.ClosedCallBackEvent;
|
|
import kd.bos.form.events.ClosedCallBackEvent;
|
|
|
|
+import kd.bos.form.field.BasedataEdit;
|
|
import kd.bos.form.field.events.BeforeF7SelectEvent;
|
|
import kd.bos.form.field.events.BeforeF7SelectEvent;
|
|
import kd.bos.form.field.events.BeforeF7SelectListener;
|
|
import kd.bos.form.field.events.BeforeF7SelectListener;
|
|
-import kd.fi.er.business.ext.enums.ErExtcaseEnum;
|
|
|
|
-import kd.fi.er.business.ext.helper.ErExtHelper;
|
|
|
|
-import kd.fi.er.business.utils.CalculateTripSumUtil;
|
|
|
|
-import kd.fi.er.business.utils.ErEntityTypeUtils;
|
|
|
|
|
|
+import kd.bos.list.ListShowParameter;
|
|
|
|
+import kd.bos.orm.query.QCP;
|
|
|
|
+import kd.bos.orm.query.QFilter;
|
|
|
|
+import kd.bos.servicehelper.BusinessDataServiceHelper;
|
|
import kd.fi.er.common.ShowPageUtils;
|
|
import kd.fi.er.common.ShowPageUtils;
|
|
-import kd.fi.er.formplugin.web.TripBaseBillEdit;
|
|
|
|
import kd.fi.er.model.FormModel;
|
|
import kd.fi.er.model.FormModel;
|
|
import kd.sdk.plugin.Plugin;
|
|
import kd.sdk.plugin.Plugin;
|
|
|
|
|
|
-import java.util.EventObject;
|
|
|
|
-import java.util.HashMap;
|
|
|
|
-import java.util.List;
|
|
|
|
-import java.util.Map;
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
|
+import java.util.*;
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
/**
|
|
* @Author: Boil
|
|
* @Author: Boil
|
|
@@ -37,17 +39,105 @@ public class BatchPriceAdjBaseEditPlugin extends AbstractBillPlugIn implements P
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
|
|
public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
|
|
|
|
+ String name = beforeF7SelectEvent.getProperty().getName();
|
|
|
|
+ EntryGrid putentry = this.getView().getControl("nckd_putentry");
|
|
|
|
+ int[] selectRows = putentry.getSelectRows();
|
|
|
|
+ DynamicObject entry = this.getView().getModel().getEntryRowEntity("nckd_putentry",selectRows[0]);
|
|
|
|
+ ListShowParameter formShowParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter();
|
|
|
|
+ List<QFilter> qFilters = new ArrayList<>();
|
|
|
|
+ switch (name){
|
|
|
|
+ case "nckd_xqys_d":
|
|
|
|
+ DynamicObject nckdQuyus = entry.getDynamicObject("nckd_quyus");
|
|
|
|
+ DynamicObjectCollection nckdXqys = entry.getDynamicObjectCollection("nckd_xqys");
|
|
|
|
+ if(null != nckdQuyus){
|
|
|
|
+ qFilters.add(new QFilter("nckd_qy", QCP.equals, nckdQuyus.getPkValue()));
|
|
|
|
+ }
|
|
|
|
|
|
|
|
+ if (!nckdXqys.isEmpty()){
|
|
|
|
+ List<Object> fbasedataids = nckdXqys.stream().map(x -> x.getDynamicObject("fbasedataid").getPkValue()).collect(Collectors.toList());
|
|
|
|
+ qFilters.add(new QFilter("id",QCP.not_in,fbasedataids));
|
|
|
|
+ }
|
|
|
|
+ if (!qFilters.isEmpty())
|
|
|
|
+ formShowParameter.getListFilterParameter().setQFilters(qFilters);
|
|
|
|
+ break;
|
|
|
|
+ case "nckd_customer":
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ DynamicObjectCollection nckdTjdetailentry = entry.getDynamicObjectCollection("nckd_tjdetailentry");
|
|
|
|
+ DynamicObject subentry = nckdTjdetailentry.get(beforeF7SelectEvent.getRow());
|
|
|
|
+ DynamicObject nckdXqysD = subentry.getDynamicObject("nckd_xqys_d");
|
|
|
|
+ DynamicObject fkNckdSaletypesD = subentry.getDynamicObject("fk_nckd_saletypes_d");
|
|
|
|
+ if(null != nckdXqysD){
|
|
|
|
+ qFilters.add(new QFilter("nckd_xqy", QCP.equals, nckdXqysD.getPkValue()));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if(null != fkNckdSaletypesD){
|
|
|
|
+ qFilters.add(new QFilter("nckd_xslb", QCP.equals, fkNckdSaletypesD.getPkValue()));
|
|
|
|
+ }
|
|
|
|
+ if (!qFilters.isEmpty())
|
|
|
|
+ formShowParameter.getListFilterParameter().setQFilters(qFilters);
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public void registerListener(EventObject e) {
|
|
public void registerListener(EventObject e) {
|
|
super.registerListener(e);
|
|
super.registerListener(e);
|
|
- this.addClickListeners(new String[]{"nckd_updatetripentry", "nckd_cardentryflexpanel12", "nckd_addtjlabel1", "nckd_addptentry"});
|
|
|
|
|
|
+
|
|
Control tripEntry = this.getControl("nckd_putentry");
|
|
Control tripEntry = this.getControl("nckd_putentry");
|
|
if (tripEntry instanceof CardEntry) {
|
|
if (tripEntry instanceof CardEntry) {
|
|
((CardEntry)tripEntry).addRowClickListener(this);
|
|
((CardEntry)tripEntry).addRowClickListener(this);
|
|
}
|
|
}
|
|
|
|
+ Toolbar toolbar = this.getView().getControl("nckd_advcontoolbarap1");
|
|
|
|
+ toolbar.addItemClickListener(this);
|
|
|
|
+ toolbar.addClickListener(this);
|
|
|
|
+
|
|
|
|
+ Toolbar toolbar2 = this.getView().getControl("nckd_advcontoolbarap2");
|
|
|
|
+ toolbar2.addItemClickListener(this);
|
|
|
|
+ toolbar2.addClickListener(this);
|
|
|
|
+ this.addClickListeners(new String[]{"nckd_alldai","nckd_allsan","nckd_updatetripentry", "nckd_cardentryflexpanel12", "nckd_addtjlabel1", "nckd_addptentry"});
|
|
|
|
+ this.addItemClickListeners("nckd_alldai","nckd_allsan");
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void beforeItemClick(BeforeItemClickEvent evt) {
|
|
|
|
+ super.beforeItemClick(evt);
|
|
|
|
+ Control source = (Control)evt.getSource();
|
|
|
|
+ if (StringUtils.equals("nckd_alldai", evt.getItemKey())
|
|
|
|
+ || StringUtils.equals("nckd_allsan", evt.getItemKey())
|
|
|
|
+ || StringUtils.equals("nckd_advconbaritemap2", evt.getItemKey())
|
|
|
|
+ || StringUtils.equals("nckd_advconbaritemap3", evt.getItemKey())
|
|
|
|
+ || StringUtils.equals("nckd_advconbaritemap", evt.getItemKey())
|
|
|
|
+ || StringUtils.equals("nckd_advconbaritemap1", evt.getItemKey())){
|
|
|
|
+ EntryGrid nckdPutentry = this.getView().getControl("nckd_putentry");
|
|
|
|
+ int[] selectRows = nckdPutentry.getSelectRows();
|
|
|
|
+ if (selectRows==null || selectRows.length<1){
|
|
|
|
+ this.getView().showErrorNotification("请先选择一个普调分录");
|
|
|
|
+ evt.setCancel(true);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void beforeClick(BeforeClickEvent evt) {
|
|
|
|
+ super.beforeClick(evt);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void itemClick(ItemClickEvent evt) {
|
|
|
|
+ super.itemClick(evt);
|
|
|
|
+ String key = evt.getItemKey();
|
|
|
|
+ switch (key) {
|
|
|
|
+ case "nckd_alldai":
|
|
|
|
+ allAddentry("袋装");
|
|
|
|
+ break;
|
|
|
|
+ case "nckd_allsan":
|
|
|
|
+ allAddentry("散装");
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -68,6 +158,48 @@ public class BatchPriceAdjBaseEditPlugin extends AbstractBillPlugIn implements P
|
|
case "nckd_addptentry":
|
|
case "nckd_addptentry":
|
|
this.openPtEntry(-1, true);
|
|
this.openPtEntry(-1, true);
|
|
break;
|
|
break;
|
|
|
|
+ case "nckd_alldai":
|
|
|
|
+ allAddentry("袋装");
|
|
|
|
+ break;
|
|
|
|
+ case "nckd_allsan":
|
|
|
|
+ allAddentry("散装");
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void allAddentry(String materialType) {
|
|
|
|
+ DynamicObject[] materialArr = BusinessDataServiceHelper.load("bd_material", "id,masterid,name,nckd_decimalfield,nckd_decimalfield1", new QFilter[]{new QFilter("name", QCP.like, "%"+materialType+"%")});
|
|
|
|
+ if (materialArr.length>0){
|
|
|
|
+ EntryGrid nckdPutentry = this.getView().getControl("nckd_putentry");
|
|
|
|
+ int[] selectRows = nckdPutentry.getSelectRows();
|
|
|
|
+ DynamicObjectCollection entity=this.getModel().getEntryEntity("nckd_putentry");
|
|
|
|
+ if(selectRows!=null && selectRows.length>0){
|
|
|
|
+ DynamicObject entry = entity.get(selectRows[0]);
|
|
|
|
+ DynamicObjectCollection nckdTjdetailentry = entry.getDynamicObjectCollection("nckd_tjdetailentry");
|
|
|
|
+ for (DynamicObject material : materialArr) {
|
|
|
|
+ DynamicObject subentry = nckdTjdetailentry.addNew();
|
|
|
|
+ this.getView().getModel().beginInit();
|
|
|
|
+ subentry.set("nckd_materialhang",material);
|
|
|
|
+
|
|
|
|
+ subentry.set("nckd_cbj",material.getBigDecimal("nckd_decimalfield1"));
|
|
|
|
+ BigDecimal nckdDecimalfield = null==material.getBigDecimal("nckd_decimalfield") ? BigDecimal.ZERO : material.getBigDecimal("nckd_decimalfield") ;
|
|
|
|
+ BigDecimal tiaozjiage = null == entry.getBigDecimal("nckd_tiaozjiage") ? BigDecimal.ZERO : entry.getBigDecimal("nckd_tiaozjiage");
|
|
|
|
+ String nckdTiaojiatype = entry.getString("nckd_tiaojiatype");
|
|
|
|
+ BigDecimal newprice=null;
|
|
|
|
+ if(StringUtils.equals("S",nckdTiaojiatype)){
|
|
|
|
+ newprice=nckdDecimalfield.add(tiaozjiage);
|
|
|
|
+ }else if (StringUtils.equals("X",nckdTiaojiatype)){
|
|
|
|
+ newprice=nckdDecimalfield.subtract(tiaozjiage);
|
|
|
|
+ }
|
|
|
|
+ subentry.set("nckd_tiaojiafudu",tiaozjiage);
|
|
|
|
+ subentry.set("nckd_tiaojiatyped",nckdTiaojiatype);
|
|
|
|
+ subentry.set("nckd_yuanprice",nckdDecimalfield);
|
|
|
|
+ this.getView().getModel().endInit();;
|
|
|
|
+ subentry.set("nckd_newprice",newprice);
|
|
|
|
+ this.getView().updateView("nckd_tjdetailentry");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|