|
@@ -6,7 +6,9 @@ import kd.bos.dataentity.entity.DynamicObjectCollection;
|
|
|
import kd.bos.dataentity.resource.ResManager;
|
|
|
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.IFormView;
|
|
|
import kd.bos.form.ShowType;
|
|
|
import kd.bos.form.cardentry.CardEntry;
|
|
|
import kd.bos.form.control.Control;
|
|
@@ -40,45 +42,77 @@ public class BatchPriceAdjBaseEditPlugin extends AbstractBillPlugIn implements P
|
|
|
@Override
|
|
|
public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
|
|
|
String name = beforeF7SelectEvent.getProperty().getName();
|
|
|
+
|
|
|
+ switch (name) {
|
|
|
+ case "nckd_xqys_d":
|
|
|
+ beforeSelectF7Xqysd(beforeF7SelectEvent);
|
|
|
+ break;
|
|
|
+ case "nckd_customer":
|
|
|
+ beforeSelectF7Customer(beforeF7SelectEvent);
|
|
|
+ break;
|
|
|
+ case "nckd_saletypes_d":
|
|
|
+ beforeSelectF7SaleTypes(beforeF7SelectEvent);
|
|
|
+ break;
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void beforeSelectF7SaleTypes(BeforeF7SelectEvent beforeF7SelectEvent) {
|
|
|
EntryGrid putentry = this.getView().getControl("nckd_putentry");
|
|
|
int[] selectRows = putentry.getSelectRows();
|
|
|
- DynamicObject entry = this.getView().getModel().getEntryRowEntity("nckd_putentry",selectRows[0]);
|
|
|
+ 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()));
|
|
|
- }
|
|
|
+ DynamicObjectCollection nckdSaletypes = entry.getDynamicObjectCollection("nckd_saletypes");
|
|
|
+ if (!nckdSaletypes.isEmpty()) {
|
|
|
+ List<Object> fbasedataids = nckdSaletypes.stream().map(x -> x.getDynamicObject("fbasedataid").getPkValue()).collect(Collectors.toList());
|
|
|
+ qFilters.add(new QFilter("id", QCP.in, fbasedataids));
|
|
|
+ }
|
|
|
|
|
|
- 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":
|
|
|
+ if (!qFilters.isEmpty())
|
|
|
+ formShowParameter.getListFilterParameter().setQFilters(qFilters);
|
|
|
+ }
|
|
|
|
|
|
|
|
|
+ private void beforeSelectF7Customer(BeforeF7SelectEvent beforeF7SelectEvent) {
|
|
|
+ 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<>();
|
|
|
+ DynamicObjectCollection nckd_subentryentity = entry.getDynamicObjectCollection("nckd_subentryentity");
|
|
|
+ DynamicObject subentry = nckd_subentryentity.get(beforeF7SelectEvent.getRow());
|
|
|
+ DynamicObject nckdXqysD = subentry.getDynamicObject("nckd_xqys_d");
|
|
|
+ DynamicObject fkNckdSaletypesD = subentry.getDynamicObject("nckd_saletypes_d");
|
|
|
+ if (null != nckdXqysD) {
|
|
|
+ qFilters.add(new QFilter("nckd_xqy", QCP.equals, nckdXqysD.getPkValue()));
|
|
|
+ }
|
|
|
|
|
|
- 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);
|
|
|
+ }
|
|
|
|
|
|
- if(null != fkNckdSaletypesD){
|
|
|
- qFilters.add(new QFilter("nckd_xslb", QCP.equals, fkNckdSaletypesD.getPkValue()));
|
|
|
- }
|
|
|
- if (!qFilters.isEmpty())
|
|
|
- formShowParameter.getListFilterParameter().setQFilters(qFilters);
|
|
|
- break;
|
|
|
+ private void beforeSelectF7Xqysd(BeforeF7SelectEvent beforeF7SelectEvent) {
|
|
|
+ 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<>();
|
|
|
+ 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.in, fbasedataids));
|
|
|
}
|
|
|
+ if (!qFilters.isEmpty())
|
|
|
+ formShowParameter.getListFilterParameter().setQFilters(qFilters);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -87,7 +121,7 @@ public class BatchPriceAdjBaseEditPlugin extends AbstractBillPlugIn implements P
|
|
|
|
|
|
Control tripEntry = this.getControl("nckd_putentry");
|
|
|
if (tripEntry instanceof CardEntry) {
|
|
|
- ((CardEntry)tripEntry).addRowClickListener(this);
|
|
|
+ ((CardEntry) tripEntry).addRowClickListener(this);
|
|
|
}
|
|
|
Toolbar toolbar = this.getView().getControl("nckd_advcontoolbarap1");
|
|
|
toolbar.addItemClickListener(this);
|
|
@@ -96,25 +130,33 @@ public class BatchPriceAdjBaseEditPlugin extends AbstractBillPlugIn implements P
|
|
|
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");
|
|
|
+ this.addClickListeners(new String[]{"nckd_alldai", "nckd_allsan", "nckd_updatetripentry", "nckd_cardentryflexpanel12", "nckd_addtjlabel1", "nckd_addptentry"});
|
|
|
+ this.addItemClickListeners("nckd_alldai", "nckd_allsan");
|
|
|
+
|
|
|
+ BasedataEdit nckd_xqys_d = this.getControl("nckd_xqys_d");
|
|
|
+ nckd_xqys_d.addBeforeF7SelectListener(this);
|
|
|
+
|
|
|
+ BasedataEdit nckd_saletypes_d = this.getControl("nckd_saletypes_d");
|
|
|
+ nckd_saletypes_d.addBeforeF7SelectListener(this);
|
|
|
|
|
|
+ BasedataEdit nckd_customer = this.getControl("nckd_customer");
|
|
|
+ nckd_customer.addBeforeF7SelectListener(this);
|
|
|
}
|
|
|
|
|
|
|
|
|
@Override
|
|
|
public void beforeItemClick(BeforeItemClickEvent evt) {
|
|
|
super.beforeItemClick(evt);
|
|
|
- Control source = (Control)evt.getSource();
|
|
|
+ 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())){
|
|
|
+ || 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){
|
|
|
+ if (selectRows == null || selectRows.length < 1) {
|
|
|
this.getView().showErrorNotification("请先选择一个普调分录");
|
|
|
evt.setCancel(true);
|
|
|
}
|
|
@@ -143,7 +185,7 @@ public class BatchPriceAdjBaseEditPlugin extends AbstractBillPlugIn implements P
|
|
|
@Override
|
|
|
public void click(EventObject evt) {
|
|
|
super.click(evt);
|
|
|
- String key = ((Control)evt.getSource()).getKey();
|
|
|
+ String key = ((Control) evt.getSource()).getKey();
|
|
|
//String entityId = this.getView().getEntityId();
|
|
|
IDataModel model = this.getModel();
|
|
|
//DynamicObject dataEntity = model.getDataEntity();
|
|
@@ -168,34 +210,34 @@ public class BatchPriceAdjBaseEditPlugin extends AbstractBillPlugIn implements P
|
|
|
}
|
|
|
|
|
|
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){
|
|
|
+ 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){
|
|
|
+ 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_materialhang", material);
|
|
|
|
|
|
- subentry.set("nckd_cbj",material.getBigDecimal("nckd_decimalfield1"));
|
|
|
- BigDecimal nckdDecimalfield = null==material.getBigDecimal("nckd_decimalfield") ? BigDecimal.ZERO : material.getBigDecimal("nckd_decimalfield") ;
|
|
|
+ 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);
|
|
|
+ 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);
|
|
|
+ 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");
|
|
|
}
|
|
|
|
|
@@ -206,7 +248,70 @@ public class BatchPriceAdjBaseEditPlugin extends AbstractBillPlugIn implements P
|
|
|
@Override
|
|
|
public void propertyChanged(PropertyChangedArgs e) {
|
|
|
super.propertyChanged(e);
|
|
|
+ String name = e.getProperty().getName();
|
|
|
+ ChangeData[] changeSet = e.getChangeSet();
|
|
|
+ ChangeData changeData = changeSet[0];
|
|
|
+ Object newValue = changeData.getNewValue();
|
|
|
+ int rowIndex = changeData.getRowIndex();
|
|
|
+ int parentRowIndex = changeData.getParentRowIndex();
|
|
|
+ IFormView view = this.getView();
|
|
|
+ IDataModel model = view.getModel();
|
|
|
+ if (StringUtils.equals("nckd_materiel_t", name) || StringUtils.equals("nckd_tiaojiatyped_t", name) || StringUtils.equals("nckd_tiaojiafudu_t", name)) {
|
|
|
+
|
|
|
+ Object nckdTiaojiatypedT = model.getValue("nckd_tiaojiatyped_t", rowIndex);
|
|
|
+ Object nckdTiaojiafuduT = model.getValue("nckd_tiaojiafudu_t", rowIndex);
|
|
|
+ Object nckdMaterielT = model.getValue("nckd_materiel_t", rowIndex);
|
|
|
+ if (nckdTiaojiatypedT != null && nckdTiaojiafuduT != null && nckdMaterielT != null) {
|
|
|
+ DynamicObject material = BusinessDataServiceHelper.loadSingleFromCache(((DynamicObject) nckdMaterielT).getPkValue(), ((DynamicObject) nckdMaterielT).getDynamicObjectType().getName());
|
|
|
+ model.setValue("nckd_cbj_t", material.getBigDecimal("nckd_decimalfield1"), rowIndex);
|
|
|
+ BigDecimal nckdDecimalfield = null == material.getBigDecimal("nckd_decimalfield") ? BigDecimal.ZERO : material.getBigDecimal("nckd_decimalfield");
|
|
|
+ BigDecimal tiaozjiage = (BigDecimal) nckdTiaojiafuduT;
|
|
|
+ String nckdTiaojiatype = (String) nckdTiaojiatypedT;
|
|
|
+ BigDecimal newprice = null;
|
|
|
+ if (StringUtils.equals("S", nckdTiaojiatype)) {
|
|
|
+ newprice = nckdDecimalfield.add(tiaozjiage);
|
|
|
+ } else if (StringUtils.equals("X", nckdTiaojiatype)) {
|
|
|
+ newprice = nckdDecimalfield.subtract(tiaozjiage);
|
|
|
+ }
|
|
|
+ view.getModel().beginInit();
|
|
|
+ model.setValue("nckd_tiaojiafudu_t", tiaozjiage, rowIndex);
|
|
|
+ model.setValue("nckd_tiaojiatyped_t", nckdTiaojiatype, rowIndex);
|
|
|
+ model.setValue("nckd_yuanprice_t", nckdDecimalfield, rowIndex);
|
|
|
+ view.getModel().endInit();
|
|
|
+ model.setValue("nckd_newprice_t", newprice, rowIndex);
|
|
|
+ view.updateView("entryentity");
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (StringUtils.equals("nckd_materialhang", name) && null != newValue) {
|
|
|
+ DynamicObjectCollection entity = this.getModel().getEntryEntity("nckd_putentry");
|
|
|
+ DynamicObject entry = entity.get(parentRowIndex);
|
|
|
+ DynamicObjectCollection nckdTjdetailentry = entry.getDynamicObjectCollection("nckd_tjdetailentry");
|
|
|
+ DynamicObject material = BusinessDataServiceHelper.loadSingleFromCache(((DynamicObject) newValue).getPkValue(), ((DynamicObject) newValue).getDynamicObjectType().getName());
|
|
|
+ DynamicObject subentry = nckdTjdetailentry.get(rowIndex);
|
|
|
+
|
|
|
+ this.getView().getModel().beginInit();
|
|
|
+ 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");
|
|
|
+
|
|
|
}
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
|
|
|
@Override
|
|
|
public void closedCallBack(ClosedCallBackEvent closedCallBackEvent) {
|