企业成本核算添加成本项下拉列表过滤逻辑
This commit is contained in:
parent
4f7256b80f
commit
236b5f7abf
|
|
@ -42,21 +42,65 @@ import java.util.*;
|
|||
* 企业成本核算表单插件
|
||||
* 说明:1:点击自动取数按钮获取核算余额表
|
||||
* 2:子分录成本分解结构跟随父分录成本分解结构赋值
|
||||
* 3:子分录成本分解结构过滤逻辑
|
||||
* 4:二级分类过滤逻辑
|
||||
* 3:子分录成本分解结构和二级分类和项目过滤逻辑
|
||||
* 4:成本项下拉列表过滤
|
||||
* 工序即为成本分解结构
|
||||
*/
|
||||
public class EntCostSplitBillPlugin extends AbstractBillPlugIn implements BeforeF7SelectListener, Plugin {
|
||||
@Override
|
||||
public void registerListener(EventObject e) {
|
||||
super.registerListener(e);
|
||||
BasedataEdit cbs = (BasedataEdit) this.getControl("zcgj_cbs");
|
||||
BasedataEdit cbs = (BasedataEdit) this.getControl("zcgj_cbs");//成本分解结构
|
||||
cbs.addBeforeF7SelectListener(this);
|
||||
BasedataEdit zcgj_sectypef7 = (BasedataEdit) this.getControl("zcgj_sectypef7");
|
||||
BasedataEdit zcgj_sectypef7 = (BasedataEdit) this.getControl("zcgj_sectypef7");//二级分类
|
||||
zcgj_sectypef7.addBeforeF7SelectListener(this);
|
||||
BasedataEdit project = (BasedataEdit) this.getControl("project");//项目
|
||||
project.addBeforeF7SelectListener(this);
|
||||
this.addItemClickListeners("advcontoolbarap");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterCreateNewData(EventObject e) {
|
||||
super.afterCreateNewData(e);
|
||||
DynamicObject period = (DynamicObject) this.getModel().getValue("period");//期间
|
||||
if (period != null) {
|
||||
Date enddate = period.getDate("enddate");//结束日期
|
||||
Calendar cal = Calendar.getInstance();
|
||||
cal.set(2025, Calendar.NOVEMBER, 1, 0, 0, 0);
|
||||
cal.set(Calendar.MILLISECOND, 0);
|
||||
Date threshold = cal.getTime();
|
||||
|
||||
if (enddate != null && enddate.before(threshold)) {
|
||||
setCostItemList(true);
|
||||
} else {
|
||||
setCostItemList(false);
|
||||
}
|
||||
} else {
|
||||
setCostItemList(false);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterBindData(EventObject e) {
|
||||
super.afterBindData(e);
|
||||
DynamicObject period = (DynamicObject) this.getModel().getValue("period");//期间
|
||||
if (period != null) {
|
||||
Date enddate = period.getDate("enddate");//结束日期
|
||||
Calendar cal = Calendar.getInstance();
|
||||
cal.set(2025, Calendar.NOVEMBER, 1, 0, 0, 0);
|
||||
cal.set(Calendar.MILLISECOND, 0);
|
||||
Date threshold = cal.getTime();
|
||||
|
||||
if (enddate != null && enddate.before(threshold)) {
|
||||
setCostItemList(true);
|
||||
} else {
|
||||
setCostItemList(false);
|
||||
}
|
||||
} else {
|
||||
setCostItemList(false);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void propertyChanged(PropertyChangedArgs e) {
|
||||
super.propertyChanged(e);
|
||||
|
|
@ -81,6 +125,29 @@ public class EntCostSplitBillPlugin extends AbstractBillPlugIn implements Before
|
|||
if (newValue == null || !newValue.equals(oldValue)) {
|
||||
this.getModel().setValue("zcgj_sectypef7", null, rowIndex);//二级分类
|
||||
}
|
||||
} else if ("period".equals(key)) {
|
||||
//期间
|
||||
this.getModel().deleteEntryData("entryentity");
|
||||
this.getModel().deleteEntryData("zcgj_subentryentity");
|
||||
|
||||
ChangeData[] changeSet = e.getChangeSet();
|
||||
ChangeData changeData = changeSet[0];
|
||||
DynamicObject period = (DynamicObject) changeData.getNewValue();//新值
|
||||
if (period != null) {
|
||||
Date enddate = period.getDate("enddate");//结束日期
|
||||
Calendar cal = Calendar.getInstance();
|
||||
cal.set(2025, Calendar.NOVEMBER, 1, 0, 0, 0);
|
||||
cal.set(Calendar.MILLISECOND, 0);
|
||||
Date threshold = cal.getTime();
|
||||
|
||||
if (enddate != null && enddate.before(threshold)) {
|
||||
setCostItemList(true);
|
||||
} else {
|
||||
setCostItemList(false);
|
||||
}
|
||||
} else {
|
||||
setCostItemList(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -116,6 +183,12 @@ public class EntCostSplitBillPlugin extends AbstractBillPlugIn implements Before
|
|||
return;
|
||||
}
|
||||
parameter.getListFilterParameter().setQFilters(qFilter);
|
||||
} else if (StringUtils.equals(name, "project")) {
|
||||
//项目
|
||||
List<QFilter> qFilter = new ArrayList<>();
|
||||
DynamicObject org = (DynamicObject) this.getModel().getValue("org");//所属组织
|
||||
qFilter.add(new QFilter("projectorg", QCP.equals, org.getPkValue()));
|
||||
parameter.getListFilterParameter().setQFilters(qFilter);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -162,6 +235,23 @@ public class EntCostSplitBillPlugin extends AbstractBillPlugIn implements Before
|
|||
}
|
||||
}
|
||||
|
||||
private void setCostItemList(boolean isHistoryData) {
|
||||
ComboEdit comboEdit = this.getControl("costtype");
|
||||
List<ComboItem> data = new ArrayList<>();
|
||||
data.add(new ComboItem(new LocaleString("人工成本"), "10."));
|
||||
if (isHistoryData) {
|
||||
data.add(new ComboItem(new LocaleString("材料成本"), "20."));
|
||||
data.add(new ComboItem(new LocaleString("机械设备"), "30."));
|
||||
data.add(new ComboItem(new LocaleString("合同成本"), "40."));
|
||||
}
|
||||
data.add(new ComboItem(new LocaleString("安全支出"), "60."));
|
||||
data.add(new ComboItem(new LocaleString("期间费用"), "70."));
|
||||
data.add(new ComboItem(new LocaleString("税金及附加"), "80."));
|
||||
data.add(new ComboItem(new LocaleString("财务费用"), "90."));
|
||||
data.add(new ComboItem(new LocaleString("研发支出"), "100."));
|
||||
comboEdit.setComboItems(data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 自动取数处理方法
|
||||
*/
|
||||
|
|
|
|||
Loading…
Reference in New Issue