Browse Source

需求单No.138533

master
wugang 7 years ago
parent
commit
d6a709a8aa
4 changed files with 538 additions and 1 deletions
  1. +6
    -0
      BWP.B3_YunKen.Web/BWP.B3_YunKen.Web.csproj
  2. +414
    -0
      BWP.B3_YunKen.Web/Pages/B3YunKen/Reports/YunKenStoreDetailQuery.cs
  3. +116
    -0
      BWP.B3_YunKen.Web/Pages/B3YunKen/Reports/YunKenStoreDetailQuery.xml
  4. +2
    -1
      WebFolder/Config/Plugins/B3_YunKen.Plugin

+ 6
- 0
BWP.B3_YunKen.Web/BWP.B3_YunKen.Web.csproj View File

@ -170,6 +170,9 @@
<Compile Include="Pages\B3YunKen\Reports\ToFreightNetPriceReport2.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Pages\B3YunKen\Reports\YunKenStoreDetailQuery.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Pages\B3YunKen\SaleForecastUpdateList_\SaleForecastUpdateEdit.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
@ -262,6 +265,9 @@
<ItemGroup>
<EmbeddedResource Include="Pages\B3YunKen\Dialogs\ReturnApplication_CustomerAcceptDialog.xml" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Pages\B3YunKen\Reports\YunKenStoreDetailQuery.xml" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.


+ 414
- 0
BWP.B3_YunKen.Web/Pages/B3YunKen/Reports/YunKenStoreDetailQuery.cs View File

@ -0,0 +1,414 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.UI.WebControls;
using Forks.EnterpriseServices.DataForm;
using Forks.EnterpriseServices.DomainObjects2;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
using TSingSoft.WebControls2;
using BWP.Web.Layout;
using BWP.B3UnitedInfos.BO;
using BWP.Web.Utils;
using System.Security;
using System.Web.UI.HtmlControls;
using BWP.Web.WebControls;
using BWP.B3Frameworks;
using BWP.B3Frameworks.Utils;
using BWP.B3Frameworks.BO;
using System.Collections.Specialized;
using BWP.B3UnitedInfos;
using Forks.EnterpriseServices.SqlDoms;
using TSingSoft.WebPluginFramework;
using System.Web.UI;
using System.Collections;
namespace BWP.Web.Pages.B3YunKen.Reports {
public class YunKenStoreDetailQuery : DFGridReportPage
{
protected override string QueryOptionsTabName
{
get
{
return "选项";
}
}
bool MergeOptionSelected(string option)
{
return OptionIsSelected("合并", option);
}
bool ShowOptionSelected(string name)
{
return OptionIsSelected("显示字段", name);
}
protected override void AddQueryOptions(VLayoutPanel vPanel)
{
AddQueryOption("显示字段", new string[] { "会计单位", "仓库", "属性分类", "存货属性", "产品线", "品牌", "货位","品牌项","存货编码","存货名称","批号","规格", "产地", "简称", "主单位", "辅数量", "辅单位", "辅数量II", "辅单位II", "单价", "金额", "生产日期", "保质天数", "有效日期", "入库日期", "库龄", "产品线分类" }, new string[0]);
AddOtherQueryOptionControls();
base.AddQueryOptions(vPanel);
}
CheckBox showGoodsPropertyCatalogLevel = null;
DropDownList goodsPropertyCatalogLevel = null;
bool TryGetGoodsPropertyCatalogLevel(out int level) {
level = default(int);
if (showGoodsPropertyCatalogLevel == null || goodsPropertyCatalogLevel == null
|| !showGoodsPropertyCatalogLevel.Checked || string.IsNullOrEmpty(goodsPropertyCatalogLevel.SelectedValue)
) {
return false;
}
level = int.Parse(goodsPropertyCatalogLevel.SelectedValue);
return true;
}
private void AddOtherQueryOptionControls() {
var maxDepth = TreeUtil.GetMaxDepth<GoodsPropertyCatalog>();
if (maxDepth == null) {
return;
}
var placeHolder = new PlaceHolder();
showGoodsPropertyCatalogLevel = new CheckBox() { Text = "属性分类等级" };
placeHolder.Controls.Add(showGoodsPropertyCatalogLevel);
mQueryControls.Add("ShowGoodsPropertyCatalogLevel", showGoodsPropertyCatalogLevel);
placeHolder.Controls.Add(new LiteralControl(" 显示到"));
goodsPropertyCatalogLevel = new DropDownList();
for (var i = 1; i <= maxDepth.Value; i++) {
goodsPropertyCatalogLevel.Items.Add(new ListItem(i.ToString() + "级", i.ToString()));
}
mQueryControls.Add("GoodsPropertyCatalogLevel", goodsPropertyCatalogLevel);
goodsPropertyCatalogLevel.SelectedValue = string.Empty;
placeHolder.Controls.Add(goodsPropertyCatalogLevel);
AddOtherQueryOptionControls("其他显示字段", placeHolder);
}
protected override string Caption {
get { return "耘垦库存查询"; }
}
JoinAlias goodsAlias {
get {
return JoinAlias.Create("goods");
}
}
JoinAlias storeAlias
{
get
{
return JoinAlias.Create("store");
}
}
void AddColumn(DQueryDom query, IDQExpression expresion, string name, bool isNumber=false)
{
if (isNumber)
{
expresion = DQExpression.Sum(expresion);
}
query.Columns.Add(DQSelectColumn.Create(expresion, name));
if (!isNumber)
{
query.GroupBy.Expressions.Add(expresion);
}
ColumnNames.Add(name);
if (isNumber)
{
SumColumnNames.Add(name);
}
}
protected override DQueryDom GetQueryDom() {
var query = base.GetQueryDom();
JoinAlias goodsBatchAlias = new JoinAlias("goodsBatch",typeof(GoodsBatch));
query.From.AddJoin(JoinType.Left, new DQDmoSource(goodsBatchAlias),
DQCondition.EQ(goodsBatchAlias, "ID", query.From.RootSource.Alias, "GoodsBatch_ID"));
var goodsProperty = goodsAlias.EJoin<GoodsProperty>(query, aliasName: "goodsProperty");
var goodsPropertyCatalog = goodsProperty.EJoin<GoodsPropertyCatalog>(query, aliasName: "goodsCatalog");
var goods = JoinAlias.Create("goods");
TreeUtil.AddTreeCondition<GoodsPropertyCatalog>(query, mQueryContainer, "GoodsPropertyCatalog_ID", goodsPropertyCatalog);
query.Where.Conditions.Add(DQCondition.EQ(storeAlias, "Domain_ID", DomainContext.Current.ID));
OrganizationUtil.AddOrganizationLimit(query, typeof(Store), storeAlias);
var expiredDateExpression = DQExpression.Add(DQExpression.Field(goodsBatchAlias, "ProductionDate"), DQExpression.Field(goodsAlias, "QualityDays"))
.ECastType<DateTime>();
var inStoreDaysExpression = DQExpression.DateDiff(DQExpression.Field(goodsBatchAlias, "InStoreDate"),
DateTime.Today);
var minExpiredDateLink = mQueryContainer.GetLink("MinExpiredDate");
if (!minExpiredDateLink.IsEmpty) {
query.Where.Conditions.Add(DQCondition.GreaterThanOrEqual(expiredDateExpression, DQExpression.Value(minExpiredDateLink.Value)));
}
var maxExpiredDateLink = mQueryContainer.GetLink("MaxExpiredDate");
if (!maxExpiredDateLink.IsEmpty) {
query.Where.Conditions.Add(DQCondition.LessThanOrEqual(expiredDateExpression, DQExpression.Value(maxExpiredDateLink.Value)));
}
var lineChb = mQueryContainer.GetControl<DFChoiceBox>("ProductLine_ID");
if (!lineChb.IsEmpty) {
query.Where.Conditions.Add(DQCondition.InList(DQExpression.Field(goods, "ProductLine_ID"),lineChb.GetValues().Select(x=>DQExpression.Value(x)).ToArray()));
}
var minInStoreDaysLink = mQueryContainer.GetLink("MinInStoreDays");
if (!minInStoreDaysLink.IsEmpty) {
query.Where.Conditions.Add(DQCondition.GreaterThanOrEqual(inStoreDaysExpression, DQExpression.Value(minInStoreDaysLink.Value)));
}
var maxInStoreDaysLink = mQueryContainer.GetLink("MaxInStoreDays");
if (!maxInStoreDaysLink.IsEmpty) {
query.Where.Conditions.Add(DQCondition.LessThanOrEqual(inStoreDaysExpression, DQExpression.Value(maxInStoreDaysLink.Value)));
}
if (ShowOptionSelected("会计单位")) {
AddColumn(query, DQExpression.Field(storeAlias,"AccountingUnit_Name"), "会计单位");
}
if (ShowOptionSelected("仓库")) {
AddColumn(query, DQExpression.Field("Store_Name"), "仓库");
}
if (ShowOptionSelected("货位")) {
AddColumn(query, DQExpression.Field("CargoSpace_Name"), "货位");
}
if (EnabelBrandItem && ShowOptionSelected("品牌项"))
{
AddColumn(query, DQExpression.Field("BrandItem_Name"), "品牌项");
}
if (ShowOptionSelected("存货编码")) {
AddColumn(query, DQExpression.Field("Goods_Code"), "存货编码");
}
if (ShowOptionSelected("存货名称")) {
AddColumn(query, DQExpression.Field("Goods_Name"), "存货名称");
}
if (ShowOptionSelected("属性分类")) {
AddColumn(query, DQExpression.Field(goodsPropertyCatalog, "Name"), "属性分类");
}
if (ShowOptionSelected("批号")) {
AddColumn(query, DQExpression.Field("GoodsBatch_Name"), "批号");
}
int selectedGoodsPropertyCatalogLevel;
if (TryGetGoodsPropertyCatalogLevel(out selectedGoodsPropertyCatalogLevel)) {
for (var i = 1; i <= selectedGoodsPropertyCatalogLevel; i++) {
var p = new JoinAlias("_p" + i, typeof(GoodsPropertyCatalog));
query.From.AddJoin(JoinType.Left, new DQDmoSource(p), DQCondition.EQ(p, "ID", goodsPropertyCatalog, string.Format("TreeDeep{0}ID", i)));
AddColumn(query, DQExpression.Field(p, "Name"), i + "级分类");
}
}
if (ShowOptionSelected("存货属性")) {
AddColumn(query, DQExpression.Field(goodsAlias, "GoodsProperty_Name"), "存货属性");
}
if (ShowOptionSelected("产品线")) {
AddColumn(query, DQExpression.Field(goodsAlias, "ProductLine_Name"), "产品线");
}
if (ShowOptionSelected("品牌")) {
AddColumn(query, DQExpression.Field(goodsAlias, "Brand"), "品牌");
}
if (ShowOptionSelected("规格")) {
AddColumn(query, DQExpression.Field(goodsAlias, "Spec"), "规格");
}
if (ShowOptionSelected("产地")) {
AddColumn(query, DQExpression.Field(goodsAlias, "Origin"), "产地");
}
if (ShowOptionSelected("简称"))
{
AddColumn(query, DQExpression.Field(goodsAlias, "PrintShortName"), "简称");
}
AddColumn(query, DQExpression.Field("Number"), "数量",true);
if (ShowOptionSelected("主单位")) {
AddColumn(query, DQExpression.Field(goodsAlias, "MainUnit"), "主单位");
}
if (ShowOptionSelected("辅数量"))
{
AddColumn(query, DQExpression.Field("SecondNumber"), "辅数量", true);
}
if (ShowOptionSelected("辅单位")) {
AddColumn(query, DQExpression.Field(goodsAlias, "SecondUnit"), "辅单位");
}
if (ShowOptionSelected("辅数量II")) {
var expression = DQExpression.Divide(DQExpression.Multiply(DQExpression.Field("Number"), DQExpression.Field(goodsAlias, "SecondUnitII_SecondUnitRatio")),
DQExpression.Field(goodsAlias, "SecondUnitII_MainUnitRatio"));
AddColumn(query, expression, "辅数量II", true);
}
if (ShowOptionSelected("辅单位II")) {
AddColumn(query, DQExpression.Field(goodsAlias, "SecondUnitII"), "辅单位II");
}
if (ShowOptionSelected("单价")) {
AddColumn(query, DQExpression.Field("CostPrice"), "单价");
}
if (ShowOptionSelected("金额"))
{
var moneyExpression = DQExpression.Multiply(DQExpression.Field("CostPrice"), DQExpression.Field("Number"));
AddColumn(query, moneyExpression, "金额", true);
}
if (ShowOptionSelected("生产日期")) {
AddColumn(query, DQExpression.Field(goodsBatchAlias, "ProductionDate"), "生产日期");
}
if (ShowOptionSelected("保质天数")) {
AddColumn(query, DQExpression.Field(goodsAlias, "QualityDays"), "保质天数");
}
if (ShowOptionSelected("有效日期")) {
AddColumn(query, expiredDateExpression, "有效日期");
}
if (ShowOptionSelected("入库日期")) {
AddColumn(query, DQExpression.Field(goodsBatchAlias, "InStoreDate"), "入库日期");
}
if (ShowOptionSelected("库龄")) {
AddColumn(query, inStoreDaysExpression, "库龄");
}
if (ShowOptionSelected("产品线分类"))
{
AddColumn(query, DQExpression.Field(goodsAlias, "ProductLineCategory_Name"), "产品线分类");
}
if (!_goodsPropertyCatalogName.IsEmpty)
{
var goodsProPertyList = _goodsPropertyCatalogName.Text.Split(' ');
var conditonList = new List<IDQExpression>();
foreach (var g in goodsProPertyList)
{
conditonList.Add(DQCondition.Like(goodsPropertyCatalog, "Name", g));
}
query.Where.Conditions.Add(DQCondition.Or(conditonList));
}
return query;
}
protected override void InitForm(HtmlForm form) {
base.InitForm(form);
mDFGrid.AllowColGroup = true;
mDFGrid.AllowSorting = true;
mDFGrid.AllowRowGroup = true;
}
DFInfo detailInfo = DFInfo.Get(typeof(StoreDetail));
DFInfo goodsBatchInfo = DFInfo.Get(typeof(GoodsBatch));
DFInfo goodsInfo = DFInfo.Get(typeof(Goods));
static bool EnabelBrandItem
{
get
{
return GlobalFlags.get(B3UnitedInfosConsts.GlobalFlags.);
}
}
DFChoiceBox store, cargoSpace;
private DFTextBox _goodsPropertyCatalogName;
protected override void AddQueryControls(VLayoutPanel vPanel) {
base.AddQueryControls(vPanel);
var dfInfo = DFInfo.Get(typeof(StoreDetail));
var layoutManager = new LayoutManager("Main", dfInfo);
layoutManager.Add("AccountingUnit_ID", new SimpleLabel("会计单位"), QueryCreator.DFChoiceBoxEnableMultiSelection(dfInfo.Fields["Store_ID"], mQueryContainer, "AccountingUnit_ID", B3FrameworksConsts.DataSources.));
layoutManager["AccountingUnit_ID"].NotAutoAddToContainer = true;
layoutManager.Add("Store_ID", store=QueryCreator.DFChoiceBoxEnableMultiSelection(dfInfo.Fields["Store_ID"], mQueryContainer, "Store_ID", B3FrameworksConsts.DataSources.));
layoutManager["Store_ID"].NotAutoAddToContainer = true;
layoutManager.Add("CargoSpace_ID", new SimpleLabel("货位"), cargoSpace = QueryCreator.DFChoiceBoxEnableMultiSelection(dfInfo.Fields["CargoSpace_ID"], mQueryContainer, "CargoSpace_ID", B3UnitedInfosConsts.DataSources.));
layoutManager["CargoSpace_ID"].NotAutoAddToContainer = true;
cargoSpace.CodeArgumentReferenceTo = store;
layoutManager.Add("GoodsPropertyCatalog_ID", new SimpleLabel("属性分类"), QueryCreator.DFChoiceBox(dfInfo.Fields["Goods_ID"], B3UnitedInfosConsts.DataSources.));
layoutManager.Add("GoodsProperty_ID", new SimpleLabel("存货属性"), QueryCreator.DFChoiceBoxEnableMultiSelection(dfInfo.Fields["Goods_ID"], mQueryContainer, "GoodsProperty_ID", B3UnitedInfosConsts.DataSources.));
layoutManager["GoodsProperty_ID"].NotAutoAddToContainer = true;
layoutManager.Add("Goods_ID", QueryCreator.DFChoiceBoxEnableMultiSelection(dfInfo.Fields["Goods_ID"], mQueryContainer, "Goods_ID", B3UnitedInfosConsts.DataSources.));
layoutManager["Goods_ID"].NotAutoAddToContainer = true;
layoutManager.Add("ProductLine_ID", new SimpleLabel("产品线"), QueryCreator.DFChoiceBoxEnableMultiSelection(dfInfo.Fields["ID"], mQueryContainer, "ProductLine_ID", B3UnitedInfosConsts.DataSources.线));
layoutManager["ProductLine_ID"].NotAutoAddToContainer = true;
layoutManager.Add("ProductLineCategory_ID", new SimpleLabel("产品线分类"), QueryCreator.DFChoiceBoxEnableMultiSelection(goodsInfo.Fields["ProductLine_ID"], mQueryContainer, "ProductLineCategory_ID", B3UnitedInfosConsts.DataSources.线));
layoutManager["ProductLineCategory_ID"].NotAutoAddToContainer = true;
layoutManager.Add("Goods_Name", QueryCreator.DFTextBox(dfInfo.Fields["Goods_Name"]));
layoutManager.Add("Goods_Code", QueryCreator.DFTextBox(dfInfo.Fields["Goods_Code"]));
layoutManager.Add("GoodsPropertyCatalog_Name", new SimpleLabel("存货分类"), _goodsPropertyCatalogName = QueryCreator.DFTextBox(dfInfo.Fields["Goods_Name"]));
if (EnabelBrandItem)
{
layoutManager.Add("BrandItem_ID", QueryCreator.DFChoiceBox(dfInfo.Fields["BrandItem_ID"], B3UnitedInfosConsts.DataSources.));
}
layoutManager.Add("GoodsBatch_Name", QueryCreator.DFTextBox(dfInfo.Fields["GoodsBatch_Name"]));
layoutManager.Add("Brand", new SimpleLabel("品牌"), new DFTextBox(goodsInfo.Fields["Brand"]));
layoutManager.Add("Origin", new SimpleLabel("产地"), new DFTextBox(goodsInfo.Fields["Origin"]));
layoutManager.Add("ProductionDate",new SimpleLabel("生产日期"),QueryCreator.DateRange(dfInfo.Fields["GoodsBatch_ProductionDate"], mQueryContainer, "MinProductionDate", "MaxProductionDate"));
layoutManager["ProductionDate"].NotAutoAddToContainer = true;
layoutManager.Add("QualityDays", new SimpleLabel("保质天数"), QueryCreator.DayRange(goodsInfo.Fields["QualityDays"], mQueryContainer, "MinQualityDays", "MaxQualityDays"));
layoutManager["QualityDays"].NotAutoAddToContainer = true;
layoutManager.Add("ExpiredDate", new SimpleLabel("过期日期"), QueryCreator.DateRange(dfInfo.Fields["GoodsBatch_ProductionDate"], mQueryContainer, "MinExpiredDate", "MaxExpiredDate"));
layoutManager.Add("InStoreDate", new SimpleLabel("入库日期"), QueryCreator.DateRange(goodsBatchInfo.Fields["InStoreDate"], mQueryContainer, "MinInStoreDate", "MaxInStoreDate"));
layoutManager.Add("InStoreDays", new SimpleLabel("库龄"), QueryCreator.DayRange(goodsInfo.Fields["QualityDays"], mQueryContainer, "MinInStoreDays", "MaxInStoreDays"));
layoutManager["InStoreDays"].NotAutoAddToContainer = true;
layoutManager.CreateDefaultConfig(2).Expand = false;
vPanel.Add(layoutManager.CreateLayout());
layoutManager.AutoAddToQueryContainer(mQueryContainer);
}
protected override string AccessRoleName
{
get { return "B3_YunKen.报表分析.耘垦库存查询"; }
}
}
}

+ 116
- 0
BWP.B3_YunKen.Web/Pages/B3YunKen/Reports/YunKenStoreDetailQuery.xml View File

@ -0,0 +1,116 @@
<?xml version="1.0" encoding="utf-8" ?>
<Select xmlns="urn:XDQuery">
<Columns>
</Columns>
<From>
<!--
下面的表别名在程序中添加
GoodsBatch goodsBatch
-->
<Join>
<Join>
<DmoClass class="BWP.B3UnitedInfos.BO.StoreDetail, B3UnitedInfos"/>
<DmoClass class="BWP.B3UnitedInfos.BO.Goods, B3UnitedInfos" alias="goods"/>
<Condition>
<EQ>
<Field name="Goods_ID"/>
<Field name="ID" alias="goods"/>
</EQ>
</Condition>
</Join>
<DmoClass class="BWP.B3Frameworks.BO.Store, B3Frameworks" alias="store"/>
<Condition>
<EQ>
<Field name="Store_ID"/>
<Field name="ID" alias="store"/>
</EQ>
</Condition>
</Join>
</From>
<Where>
<And>
<InEQ>
<Field name="Number"/>
<Decimal value="0"/>
</InEQ>
<QBEIn>
<Field name="AccountingUnit_ID" alias="store"/>
<QBE paramName="AccountingUnit_ID"/>
</QBEIn>
<QBEIn>
<Field name="Store_ID"/>
<QBE paramName="Store_ID"/>
</QBEIn>
<QBEIn>
<Field name="Goods_ID"/>
<QBE paramName="Goods_ID"/>
</QBEIn>
<QBEIn>
<Field name="GoodsProperty_ID" alias="goods"/>
<QBE paramName="GoodsProperty_ID"/>
</QBEIn>
<Like>
<Field name="GoodsBatch_Name"/>
<QBE paramName="GoodsBatch_Name"/>
</Like>
<Or>
<Contains>
<Field name="Name" alias="goods"/>
<QBE paramName="Goods_Name"/>
</Contains>
<Contains>
<Field name="Spell" alias="goods"/>
<QBE paramName="Goods_Name"/>
</Contains>
</Or>
<Contains>
<Field name="Code" alias="goods"/>
<QBE paramName="Goods_Code"/>
</Contains>
<GreaterThanOrEqual>
<Field name="ProductionDate" alias="goodsBatch"/>
<QBE paramName="MinProductionDate" />
</GreaterThanOrEqual>
<LessThanOrEqual>
<Field name="ProductionDate" alias="goodsBatch"/>
<QBE paramName="MaxProductionDate"/>
</LessThanOrEqual>
<GreaterThanOrEqual>
<Field name="QualityDays" alias="goods"/>
<QBE paramName="MinQualityDays"/>
</GreaterThanOrEqual>
<LessThanOrEqual>
<Field name="QualityDays" alias="goods"/>
<QBE paramName="MaxQualityDays" />
</LessThanOrEqual>
<GreaterThanOrEqual>
<Field name="InStoreDate" alias="goodsBatch"/>
<QBE paramName="MinInStoreDate"/>
</GreaterThanOrEqual>
<LessThanOrEqual>
<Field name="InStoreDate" alias="goodsBatch"/>
<QBE paramName="MaxInStoreDate"/>
</LessThanOrEqual>
<EQ>
<Field alias="goods" name="Brand"/>
<QBE paramName="Brand"/>
</EQ>
<EQ>
<Field alias="goods" name="Origin"/>
<QBE paramName="Origin"/>
</EQ>
<EQ>
<Field name="BrandItem_ID"/>
<QBE paramName="BrandItem_ID"/>
</EQ>
<QBEIn>
<Field name="CargoSpace_ID"/>
<QBE paramName="CargoSpace_ID" />
</QBEIn>
<QBEIn>
<Field name="ProductLineCategory_ID" alias="goods"/>
<QBE paramName="ProductLineCategory_ID" />
</QBEIn>
</And>
</Where>
</Select>

+ 2
- 1
WebFolder/Config/Plugins/B3_YunKen.Plugin View File

@ -43,6 +43,7 @@
<Function index="2" name="去运费净价表" />
<Function index="3" name="变价关系表" />
<Function index="4" name="去运费净价表_验收" />
<Function index="5" name="耘垦库存查询" />
</FunctionGroup>
<FunctionGroup name="耘垦销售出库转验收单" roleSchemas="employee">
<Function index="0" name="访问" />
@ -60,7 +61,7 @@
<Menu id="0009" name="/B3耘垦模块/定价调整" roles="B3_YunKen.定价调整.访问" url="B3YunKen/Bill/PriceBill_DetailAdjust.aspx"/>
<Menu id="0010" name="/B3耘垦模块/报表分析/变价关系表" roles="B3_YunKen.报表分析.变价关系表" url="B3YunKen/Reports/DynamicPriceReport.aspx"/>
<Menu id="0011" name="/B3耘垦模块/报表分析/去运费净价表_验收" roles="B3_YunKen.报表分析.去运费净价表_验收" url="B3YunKen/Reports/ToFreightNetPriceReport2.aspx"/>
<Menu id="0012" name="/B3耘垦模块/报表分析/耘垦库存查询" roles="B3_YunKen.报表分析.耘垦库存查询" url="B3YunKen/Reports/YunKenStoreDetailQuery.aspx"/>
</Menus>
</Plugin>

Loading…
Cancel
Save