Browse Source

需求单No.137418

master
robin 8 years ago
parent
commit
0a62c9cd11
18 changed files with 1596 additions and 12 deletions
  1. +48
    -3
      B3_DongFangWanQi.Web/B3_DongFangWanQi.Web.csproj
  2. +89
    -0
      B3_DongFangWanQi.Web/Pages/B3_DongFangWanQi/BaseInfos/OutputConfigureEdit.cs
  3. +12
    -0
      B3_DongFangWanQi.Web/Pages/B3_DongFangWanQi/BaseInfos/OutputConfigureList.cs
  4. +31
    -0
      B3_DongFangWanQi.Web/Pages/B3_DongFangWanQi/BaseInfos/OutputConfigureList.xml
  5. +107
    -0
      B3_DongFangWanQi.Web/Pages/B3_DongFangWanQi/Bills/OutputForecastEdit.cs
  6. +31
    -0
      B3_DongFangWanQi.Web/Pages/B3_DongFangWanQi/Bills/OutputForecastList.cs
  7. +29
    -0
      B3_DongFangWanQi.Web/Pages/B3_DongFangWanQi/Bills/OutputForecastList.xml
  8. +412
    -0
      B3_DongFangWanQi.Web/Pages/B3_DongFangWanQi/Tools/SaleForecastUpdateEdit.cs
  9. +422
    -0
      B3_DongFangWanQi.Web/Pages/B3_DongFangWanQi/Tools/SaleOederUpdateList.cs
  10. +82
    -0
      B3_DongFangWanQi.Web/Pages/B3_DongFangWanQi/Tools/SaleOederUpdateList.xml
  11. +23
    -8
      B3_DongFangWanQi/B3_DongFangWanQi.csproj
  12. +16
    -0
      B3_DongFangWanQi/BL/OutputConfigureBL.cs
  13. +19
    -0
      B3_DongFangWanQi/BL/OutputForecastBL.cs
  14. +70
    -0
      B3_DongFangWanQi/BO/Bill/OutputForecast_Detail.cs
  15. +67
    -0
      B3_DongFangWanQi/BO/Bill/Outputforecast.cs
  16. +37
    -0
      B3_DongFangWanQi/BO/OutputConfigure.cs
  17. +69
    -0
      B3_DongFangWanQi/BO/OutputConfigure_Detail.cs
  18. +32
    -1
      WebFolder/Config/Plugins/B3_DongFangWanQi.Plugin

+ 48
- 3
B3_DongFangWanQi.Web/B3_DongFangWanQi.Web.csproj View File

@ -8,7 +8,7 @@
<ProjectGuid>{45605F7D-8A15-43E0-955B-AF22F6FE1B76}</ProjectGuid> <ProjectGuid>{45605F7D-8A15-43E0-955B-AF22F6FE1B76}</ProjectGuid>
<OutputType>Library</OutputType> <OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder> <AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>BWP.Web.Pages</RootNamespace>
<RootNamespace>BWP.Web</RootNamespace>
<AssemblyName>B3_DongFangWanQi.Web</AssemblyName> <AssemblyName>B3_DongFangWanQi.Web</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion> <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileUpgradeFlags> <FileUpgradeFlags>
@ -52,6 +52,17 @@
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="B3Frameworks, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a04fa581c0f74d43, processorArchitecture=MSIL" />
<Reference Include="B3Frameworks.Web, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a04fa581c0f74d43, processorArchitecture=MSIL" />
<Reference Include="B3Sale, Version=1.0.0.0, Culture=neutral, PublicKeyToken=3a973053c7ebf11c, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\tsref\Debug\B3Sale.dll</HintPath>
</Reference>
<Reference Include="B3Sale.Web, Version=1.0.0.0, Culture=neutral, PublicKeyToken=3a973053c7ebf11c, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\tsref\Debug\B3Sale.Web.dll</HintPath>
</Reference>
<Reference Include="B3UnitedInfos, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a04fa581c0f74d43, processorArchitecture=MSIL" />
<Reference Include="Forks.EnterpriseServices, Version=3.1.0.0, Culture=neutral, PublicKeyToken=7254430f49d10aae, processorArchitecture=MSIL" /> <Reference Include="Forks.EnterpriseServices, Version=3.1.0.0, Culture=neutral, PublicKeyToken=7254430f49d10aae, processorArchitecture=MSIL" />
<Reference Include="Forks.Utils, Version=3.0.0.0, Culture=neutral, PublicKeyToken=6911f69af04f1ecb, processorArchitecture=MSIL"> <Reference Include="Forks.Utils, Version=3.0.0.0, Culture=neutral, PublicKeyToken=6911f69af04f1ecb, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
@ -59,6 +70,7 @@
</Reference> </Reference>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Data" /> <Reference Include="System.Data" />
<Reference Include="System.Drawing" />
<Reference Include="System.Web" /> <Reference Include="System.Web" />
<Reference Include="System.Xml" /> <Reference Include="System.Xml" />
<Reference Include="TSingSoft.WebControls2, Version=2.0.0.0, Culture=neutral, PublicKeyToken=2d003d348dae6330, processorArchitecture=MSIL"> <Reference Include="TSingSoft.WebControls2, Version=2.0.0.0, Culture=neutral, PublicKeyToken=2d003d348dae6330, processorArchitecture=MSIL">
@ -66,10 +78,34 @@
<HintPath>..\..\..\TsingSoft2\TSREF\TSingSoft.WebControls2.dll</HintPath> <HintPath>..\..\..\TsingSoft2\TSREF\TSingSoft.WebControls2.dll</HintPath>
</Reference> </Reference>
<Reference Include="Wpf, Version=1.3.0.0, Culture=neutral, PublicKeyToken=a04fa581c0f74d43, processorArchitecture=MSIL" /> <Reference Include="Wpf, Version=1.3.0.0, Culture=neutral, PublicKeyToken=a04fa581c0f74d43, processorArchitecture=MSIL" />
<Reference Include="Wpf.System, Version=1.2.0.0, Culture=neutral, PublicKeyToken=a04fa581c0f74d43, processorArchitecture=MSIL" />
<Reference Include="Wpf.System.Web, Version=1.2.0.0, Culture=neutral, PublicKeyToken=a04fa581c0f74d43, processorArchitecture=MSIL" />
<Reference Include="Wpf.System, Version=1.3.0.0, Culture=neutral, PublicKeyToken=a04fa581c0f74d43, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\tsref\Debug\Wpf.System.dll</HintPath>
</Reference>
<Reference Include="Wpf.System.Web, Version=1.3.0.0, Culture=neutral, PublicKeyToken=a04fa581c0f74d43, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\tsref\Debug\Wpf.System.Web.dll</HintPath>
</Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Pages\B3_DongFangWanQi\BaseInfos\OutputConfigureList.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Pages\B3_DongFangWanQi\BaseInfos\OutputConfigureEdit.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Pages\B3_DongFangWanQi\Bills\OutputForecastList.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Pages\B3_DongFangWanQi\Bills\OutputForecastEdit.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Pages\B3_DongFangWanQi\Tools\SaleForecastUpdateEdit.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Pages\B3_DongFangWanQi\Tools\SaleOederUpdateList.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="PluginClass.cs" /> <Compile Include="PluginClass.cs" />
</ItemGroup> </ItemGroup>
@ -100,6 +136,15 @@
<Install>true</Install> <Install>true</Install>
</BootstrapperPackage> </BootstrapperPackage>
</ItemGroup> </ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Pages\B3_DongFangWanQi\BaseInfos\OutputConfigureList.xml" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Pages\B3_DongFangWanQi\Bills\OutputForecastList.xml" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Pages\B3_DongFangWanQi\Tools\SaleOederUpdateList.xml" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. <!-- 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. Other similar extension points exist, see Microsoft.Common.targets.


+ 89
- 0
B3_DongFangWanQi.Web/Pages/B3_DongFangWanQi/BaseInfos/OutputConfigureEdit.cs View File

@ -0,0 +1,89 @@
using System.Linq;
using System.Web.UI;
using System.Web.UI.WebControls;
using B3_DongFangWanQi.BL;
using B3_DongFangWanQi.BO;
using BWP.B3Frameworks.Utils;
using BWP.B3Sale.BO;
using BWP.B3Sale.Utils;
using BWP.B3UnitedInfos.Utils;
using BWP.Web.Layout;
using BWP.Web.Utils;
using BWP.Web.WebControls;
using Forks.EnterpriseServices.BusinessInterfaces;
using Forks.EnterpriseServices.DataForm;
using TSingSoft.WebControls2;
namespace BWP.Web.Pages.B3_DongFangWanQi.BaseInfos {
class OutputConfigureEdit : DomainBaseInfoEditPage<OutputConfigure, IOutputConfigureBL> {
protected override void BuildBody(Control parent) {
var layoutManage = new LayoutManager("", mDFInfo, mDFContainer);
var config = new AutoLayoutConfig();
config.Add("Name");
config.Add("AccountingUnit_ID");
config.Add("Remark");
layoutManage.Config = config;
parent.Controls.Add(layoutManage.CreateLayout());
CreateDetail(parent.EAdd(new TitlePanel("客户列表")));
}
DFEditGrid _grid;
private void CreateDetail(TitlePanel titlePanel)
{
if (CanSave) {
var hPanel = titlePanel.EAdd(new HLayoutPanel());
hPanel.Add(new LiteralControl("<h2>选择存货:</h2>"));
var customerSelect = hPanel.Add(new ChoiceBox(B3SaleDataSources.) {
Width = Unit.Pixel(160),
EnableInputArgument = true,
AutoPostBack = true
});
customerSelect.SelectedValueChanged += delegate {
if (customerSelect.IsEmpty)
return;
_grid.GetFromUI();
var selectID = long.Parse(customerSelect.Value);
if (Dmo.Details.Any(x => x.Goods_ID == selectID))
return;
using (var context =new TransactionContext()) {
var goods = InnerBLUtil.GetSingleDmo<SaleGoods>(context.Session, "ID", selectID, "Name", "Code", "PrintShortName" );
Dmo.Details.Add(new OutputConfigure_Detail {
Goods_ID = selectID,
Goods_Name = goods.Name,
Goods_Code = goods.Code,
Goods_Spec = goods.Spec,
PrintShortName = goods.PrintShortName
});
}
_grid.DataBind();
customerSelect.Clear();
};
}
var detailEditor = new DFCollectionEditor<OutputConfigure_Detail>(() => Dmo.Details);
detailEditor.AllowDeletionFunc = () => CanSave;
detailEditor.CanDeleteFunc = detail => CanSave;
detailEditor.IsEditableFunc = (field, detail) => CanSave;
_grid = titlePanel.EAdd(new DFEditGrid(detailEditor) { Width = Unit.Percentage(100), ShowLineNo = true });
_grid.Columns.Add(new DFEditGridColumn<DFValueLabel>("Goods_Name"));
_grid.Columns.Add(new DFEditGridColumn<DFValueLabel>("Goods_Code"));
_grid.Columns.Add(new DFEditGridColumn<DFValueLabel>("PrintShortName"));
_grid.Columns.Add(new DFEditGridColumn<DFTextBox>("Number"));
_grid.Columns.Add(new DFEditGridColumn<DFTextBox>("Rate"));
}
public override void GetFromUI() {
base.GetFromUI();
_grid.GetFromUI();
}
public override void AppToUI() {
base.AppToUI();
_grid.DataBind();
}
}
}

+ 12
- 0
B3_DongFangWanQi.Web/Pages/B3_DongFangWanQi/BaseInfos/OutputConfigureList.cs View File

@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using B3_DongFangWanQi.BL;
using B3_DongFangWanQi.BO;
namespace BWP.Web.Pages.B3_DongFangWanQi.BaseInfos {
class OutputConfigureList : DomainBaseInfoListPage<OutputConfigure, IOutputConfigureBL> {
}
}

+ 31
- 0
B3_DongFangWanQi.Web/Pages/B3_DongFangWanQi/BaseInfos/OutputConfigureList.xml View File

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8" ?>
<Select xmlns="urn:XDQuery">
<Columns>
<Field name="ID"/>
</Columns>
<From>
<DmoClass class="B3_DongFangWanQi.BO.OutputConfigure, B3_DongFangWanQi"/>
</From>
<Where>
<And>
<EQ>
<Field name="ID"/>
<QBE paramName="ID"/>
</EQ>
<Or>
<Contains>
<Field name="Name"/>
<QBE paramName="Name"/>
</Contains>
<Contains>
<Field name="Spell"/>
<QBE paramName="Name"/>
</Contains>
</Or>
<Contains>
<Field name="Remark"/>
<QBE paramName="Remark"/>
</Contains>
</And>
</Where>
</Select>

+ 107
- 0
B3_DongFangWanQi.Web/Pages/B3_DongFangWanQi/Bills/OutputForecastEdit.cs View File

@ -0,0 +1,107 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.UI;
using System.Web.UI.WebControls;
using B3_DongFangWanQi.BL;
using B3_DongFangWanQi.BO;
using BWP.B3Frameworks;
using BWP.B3Frameworks.BO.NamedValueTemplate;
using BWP.B3Frameworks.Utils;
using BWP.Web.CustomPageLayout;
using BWP.Web.Layout;
using BWP.Web.WebControls;
using Forks.EnterpriseServices.DataForm;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
using Forks.EnterpriseServices.SqlDoms;
using Forks.Utils.Collections;
using TSingSoft.WebControls2;
using TSingSoft.WebPluginFramework;
namespace BWP.Web.Pages.B3_DongFangWanQi.Bills {
class OutputForecastEdit : DomainBillEditPage<OutputForecast, IOutputForecastBL> {
private DFEditGrid _detailGrid;
protected override void BuildBasePropertiesEditor(TitlePanel titlePanel, PageLayoutSection section) {
var layoutManager = new LayoutManager("main", mDFInfo, mDFContainer);
var config = new AutoLayoutConfig();
config.Add("AccountingUnit_ID");
config.Add("Department_ID");
config.Add("Date");
config.Add("Number");
config.Add("Remark");
layoutManager.Config = config;
section.ApplyLayout(layoutManager, config, mPageLayoutManager, mDFInfo);
titlePanel.Controls.Add(layoutManager.CreateLayout());
}
protected override void BuildBody(Control form) {
base.BuildBody(form);
CreateAccDetailPanel(form.EAdd(new TitlePanel("测算明细")));
}
private void CreateAccDetailPanel(TitlePanel titlePanel) {
var vPanel = new VLayoutPanel();
titlePanel.Controls.Add(vPanel);
if (CanSave) {
var hPanel = vPanel.Add(new HLayoutPanel(), new VLayoutOption(HorizontalAlign.Left));
var button = hPanel.Add(new TSButton("测算"));
button.Click += delegate {
var number = (decimal?)mDFContainer.GetValueFromUI("Number");
if (number == null) {
AspUtil.Alert(this, "屠宰头数录入为空!");
return;
}
var dom = new DmoQuery(typeof(OutputConfigure));
dom.Where.Conditions.Add(DQCondition.EQ("Stopped", false));
dom.OrderBy.Expressions.Add(DQOrderByExpression.Create("ID", true));
dom.Range = SelectRange.Top(1);
var config = dom.EExecuteScalar<OutputConfigure>();
if (config == null) {
AspUtil.Alert(this, "请先进行产值配置!");
return;
}
Dmo.Details.Clear();
foreach (var detail in config.Details) {
var d = new OutputForecast_Detail();
DmoUtil.CopyDmoFields(detail, d, "ID");
DmoUtil.RefreshDependency(d, "Goods_ID");
d.Number = detail.Number * number;
if (d.Goods_UnitConvertDirection == . || d.Goods_UnitConvertDirection == .) {
d.SecondNumber = d.Number / (d.Goods_MainUnitRatio ?? 1) * (d.Goods_SecondUnitRatio ?? 1);
}
Dmo.Details.Add(d);
}
_detailGrid.DataBind();
};
}
var detailEditor = new DFCollectionEditor<OutputForecast_Detail>(() => Dmo.Details);
detailEditor.AllowDeletionFunc = () => CanSave;
detailEditor.CanDeleteFunc = (detail) => CanSave;
detailEditor.IsEditableFunc = (field, detail) => false;
_detailGrid = vPanel.Add(new DFEditGrid(detailEditor) { Width = Unit.Percentage(100) });
_detailGrid.Columns.Add(new DFEditGridColumn<DFValueLabel>("Goods_Name"));
_detailGrid.Columns.Add(new DFEditGridColumn<DFValueLabel>("Goods_Code"));
_detailGrid.Columns.Add(new DFEditGridColumn<DFValueLabel>("PrintShortName"));
_detailGrid.Columns.Add(new DFEditGridColumn<DFValueLabel>("Number"));
}
protected override void OnLoad(EventArgs e) {
base.OnLoad(e);
if (!IsPostBack)
DataBind();
}
public override void GetFromUI() {
base.GetFromUI();
_detailGrid.GetFromUI();
}
}
}

+ 31
- 0
B3_DongFangWanQi.Web/Pages/B3_DongFangWanQi/Bills/OutputForecastList.cs View File

@ -0,0 +1,31 @@
using B3_DongFangWanQi.BL;
using B3_DongFangWanQi.BO;
using BWP.B3Frameworks;
using BWP.Web.Pages.B3Sale.Bills;
using BWP.Web.Utils;
using TSingSoft.WebControls2;
namespace BWP.Web.Pages.B3_DongFangWanQi.Bills {
class OutputForecastList : B3SaleBillListPage<OutputForecast, IOutputForecastBL> {
protected override void AddQueryControls(VLayoutPanel vPanel) {
vPanel.Add(CreateDefaultBillQueryControls((panel, config) => {
panel.Add("AccountingUnit_ID", QueryCreator.DFChoiceBox(mDFInfo.Fields["AccountingUnit_ID"], B3FrameworksConsts.DataSources.));
config.Add("Date");
config.Add("AccountingUnit_ID");
}));
}
protected override void AddDFBrowseGridColumn(DFBrowseGrid grid, string field) {
base.AddDFBrowseGridColumn(grid, field);
if (field == "BillState") {
AddDFBrowseGridColumn(grid, "Date");
AddDFBrowseGridColumn(grid, "AccountingUnit_Name");
AddDFBrowseGridColumn(grid, "Department_Name");
}
}
}
}

+ 29
- 0
B3_DongFangWanQi.Web/Pages/B3_DongFangWanQi/Bills/OutputForecastList.xml View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8" ?>
<Select xmlns="urn:XDQuery">
<Columns>
<Field name="ID"/>
</Columns>
<From>
<DmoClass class="B3_DongFangWanQi.BO.OutputForecast, B3_DongFangWanQi"/>
</From>
<Where>
<And>
<EQ>
<Field name="ID"/>
<QBE paramName="ID"/>
</EQ>
<EQ>
<Field name="AccountingUnit_ID"/>
<QBE paramName="AccountingUnit_ID"/>
</EQ>
<GreaterThanOrEqual>
<Field name="Date"/>
<QBE paramName="MinDate" />
</GreaterThanOrEqual>
<LessThanOrEqual>
<Field name="Date"/>
<QBE paramName="MaxDate"/>
</LessThanOrEqual>
</And>
</Where>
</Select>

+ 412
- 0
B3_DongFangWanQi.Web/Pages/B3_DongFangWanQi/Tools/SaleForecastUpdateEdit.cs View File

@ -0,0 +1,412 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using BWP.B3Frameworks.BO.MoneyTemplate;
using BWP.B3Frameworks.BO.NamedValueTemplate;
using BWP.B3Frameworks.Utils;
using BWP.B3Sale.BL;
using BWP.B3Sale.BO;
using BWP.B3UnitedInfos.BO;
using BWP.Web.Utils;
using Forks.EnterpriseServices.BusinessInterfaces;
using Forks.EnterpriseServices.DataForm;
using Forks.EnterpriseServices.DomainObjects2;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
using Forks.EnterpriseServices.SqlDoms;
using Forks.Utils;
using Forks.Utils.Collections;
using TSingSoft.WebControls2;
using TSingSoft.WebPluginFramework.Controls;
namespace BWP.Web.Pages.B3_DongFangWanQi.Tools {
class SaleOrderUpdateEdit : AppBasePage {
long? SaleGoods_ID {
get {
if (string.IsNullOrEmpty(Request.QueryString["Goods_ID"]))
return null;
return long.Parse(Request.QueryString["Goods_ID"]);
}
}
string Goods_Name {
get {
return Request.QueryString["Goods_Name"];
}
}
long? Customer_ID {
get {
if (string.IsNullOrEmpty(Request.QueryString["Customer_ID"]))
return null;
return long.Parse(Request.QueryString["Customer_ID"]);
}
}
string AccountingUnit_Name {
get {
return Request.QueryString["AccountingUnit_Name"];
}
}
long? AccountingUnit_ID {
get {
if (string.IsNullOrEmpty(Request.QueryString["AccountingUnit_ID"]))
return null;
return long.Parse(Request.QueryString["AccountingUnit_ID"]);
}
}
long? SelectAccountingUnit_ID {
get {
if (string.IsNullOrEmpty(Request.QueryString["SelectAccountingUnit_ID"]))
return null;
return long.Parse(Request.QueryString["SelectAccountingUnit_ID"]);
}
}
long? SelectStore_ID {
get {
if (string.IsNullOrEmpty(Request.QueryString["SelectStore_ID"]))
return null;
return long.Parse(Request.QueryString["SelectStore_ID"]);
}
}
long? SelectCustomer_ID {
get {
if (string.IsNullOrEmpty(Request.QueryString["SelectCustomer_ID"]))
return null;
return long.Parse(Request.QueryString["SelectCustomer_ID"]);
}
}
string SelectGoodsProperty_Name {
get {
if (string.IsNullOrEmpty(Request.QueryString["SelectGoodsProperty_Name"]))
return null;
return Request.QueryString["SelectGoodsProperty_Name"];
}
}
long? SelectGoodsProperty_ID {
get {
if (string.IsNullOrEmpty(Request.QueryString["SelectGoodsProperty_ID"]))
return null;
return long.Parse(Request.QueryString["SelectGoodsProperty_ID"]);
}
}
string SelectGoodsPropertyCatalog_Name {
get {
if (string.IsNullOrEmpty(Request.QueryString["SelectGoodsPropertyCatalog_Name"]))
return null;
return Request.QueryString["SelectGoodsPropertyCatalog_Name"];
}
}
long? SelectGoodsPropertyCatalog_ID {
get {
if (string.IsNullOrEmpty(Request.QueryString["SelectGoodsPropertyCatalog_ID"]))
return null;
return long.Parse(Request.QueryString["SelectGoodsPropertyCatalog_ID"]);
}
}
public List<Order_Detail> Details {
get {
if (ViewState["Details"] == null)
ViewState["Details"] = new List<Order_Detail>();
return (List<Order_Detail>)ViewState["Details"];
}
set { ViewState["Details"] = value; }
}
DateTime? MinTime {
get {
var str = Request.QueryString["MinDate"];
if (string.IsNullOrEmpty(str))
return null;
return DateTime.Parse(str);
}
}
DateTime? MaxTime {
get {
var str = Request.QueryString["MaxDate"];
if (string.IsNullOrEmpty(str))
return null;
return DateTime.Parse(str);
}
}
private DFEditGrid _goodsGrid;
private QueryContainer _queryContainer;
readonly static DFInfo DFInfo = DFInfo.Get(typeof(Order));
private Label _l1, _l2;
private DFContainer _dfContainer;
protected override void InitForm(HtmlForm form) {
_queryContainer = QueryContainer.FromResource(typeof(SaleOederUpdateList).FullName + ".xml", GetType().Assembly);
QueryCreator.TimeRange(DFInfo.Fields["OrderDate"], _queryContainer, "MinOrderDate", "MaxOrderDate", MinTime, MaxTime);
form.Controls.Add(new PageTitle("订单调整"));
var vPanel = new VLayoutPanel();
form.Controls.Add(vPanel);
_dfContainer = new DFContainer();
_dfContainer.ID = "DFContainer";
form.Controls.Add(_dfContainer);
var panel = new HLayoutPanel();
panel.Add(new SimpleLabel("可用数量"));
var label = new Label();
label.Font.Size = 14;
label.Width = 120;
label.Font.Bold = true;
label.Text = decimal.Parse(Request.QueryString["number"]).ToString("0.00");
panel.Add(label);
panel.Add(new SimpleLabel("合计订货数量"));
_l1 = new Label();
_l1.ID = "l1";
_l1.Font.Size = 14;
_l1.Width = 120;
_l1.Font.Bold = true;
panel.Add(_l1);
panel.Add(new SimpleLabel("合计金额"));
_l2 = new Label();
_l2.ID = "l2";
_l2.Font.Size = 14;
_l2.Font.Bold = true;
_l2.Width = 120;
panel.Add(_l2);
vPanel.Add(panel);
_dfContainer.AddNonDFControl(_l1, "$l1");
_dfContainer.AddNonDFControl(_l2, "$l2");
CreateGrid(vPanel);
}
private void CreateGrid(VLayoutPanel vPanel) {
var editor = new DFCollectionEditor<Order_Detail>(() => Details);
editor.CanDeleteFunc = detail => true;
editor.IsEditableFunc = (field, detail) => {
if (field.Name == "SecondNumber") {
var hasSecondUnit = !string.IsNullOrEmpty(detail.Goods_SecondUnit);
return hasSecondUnit;
}
return true;
};
_goodsGrid = new DFEditGrid(editor);
_goodsGrid.DFGridSetEnabled = false;
_goodsGrid.Width = Unit.Percentage(100);
_goodsGrid.ShowLineNo = true;
_goodsGrid.Columns.Add(new DFEditGridColumn<DFValueLabel>("Order_ID"));
_goodsGrid.Columns.Add(new DFEditGridColumn<DFValueLabel>("Customer_Name"));
_goodsGrid.Columns.Add(new DFEditGridColumn<DFValueLabel>("Goods_Code"));
_goodsGrid.Columns.Add(new DFEditGridColumn<DFValueLabel>("Goods_Name"));
_goodsGrid.Columns.Add(new DFEditGridColumn<DFValueLabel>("Goods_Spec"));
_goodsGrid.Columns.EAdd(new DFEditGridColumn<DFTextBox>("UnitNum")).SumMode = SumMode.Sum;
_goodsGrid.Columns.Add(new DFEditGridColumn<DFValueLabel>("Unit"));
_goodsGrid.Columns.EAdd(new DFEditGridColumn<DFTextBox>("SecondNumber")).SumMode = SumMode.Sum;
_goodsGrid.Columns.EAdd(new DFEditGridColumn<DFValueLabel>("Goods_SecondUnit"));
_goodsGrid.Columns.EAdd(new DFEditGridColumn<DFTextBox>("Price"));
_goodsGrid.Columns.EAdd(new DFEditGridColumn<DFValueLabel>("Money")).SumMode = SumMode.Sum;
_goodsGrid.Columns.EAdd(new DFEditGridColumn<DFValueLabel>("PolicyPrice"));
_goodsGrid.Columns.Add(new DFEditGridColumn<DFValueLabel>("GoodsBatch_Name"));
_goodsGrid.ValueColumns.Add("SaleGoods_ID");
_goodsGrid.ValueColumns.Add("Goods_UnitConvertDirection");
_goodsGrid.ValueColumns.Add("Goods_MainUnitRatio");
_goodsGrid.ValueColumns.Add("Goods_SecondUnitRatio");
_goodsGrid.ValueColumns.Add("LeftRatio");
_goodsGrid.ValueColumns.Add("RightRatio");
vPanel.Add(_goodsGrid);
new MainToSecondConvertRowManger(_goodsGrid);
_dfContainer.AddNonDFControl(_goodsGrid, "$Grid");
var hl = vPanel.Add(new HLayoutPanel(), new VLayoutOption(HorizontalAlign.Center));
var saveBt = hl.Add(new TSButton("保存"));
saveBt.Width = Unit.Pixel(80);
saveBt.Click += SaveBtClick;
hl.Add(new LiteralControl("&nbsp;"));
TSButton back;
hl.Add(back=new TSButton("返回", delegate {
DialogUtil.SetCachedObj(this, "");
}));
back.Width = Unit.Pixel(80);
}
void SaveBtClick(object sender, EventArgs e) {
_goodsGrid.GetFromUI();
var groupByOrderID = Details.GroupBy(x => x.Order_ID);
var bl = BIFactory.Create<IOrderBL>();
var cannotUpdateID = new List<long>();
var updateIDs = new List<long>();
foreach (var orderDetails in groupByOrderID) {
var order = bl.Load(orderDetails.Key);
if (order == null)
continue;
var changed = false;
foreach (var cDetail in orderDetails) {
var detail = order.Details.FirstOrDefault(x => x.ID == cDetail.ID);
if (detail == null)
continue;
if (detail.UnitNum != cDetail.UnitNum) {
detail.UnitNum = cDetail.UnitNum;
changed = true;
}
if (detail.SecondNumber != cDetail.SecondNumber) {
detail.SecondNumber = cDetail.SecondNumber;
changed = true;
}
if (detail.Price != cDetail.Price) {
detail.Price = cDetail.Price;
changed = true;
}
}
if (changed) {
if (order.BillState != .) {
cannotUpdateID.Add(order.ID);
continue;
}
bl.Update(order);
updateIDs.Add(order.ID);
}
}
string msg;
if (updateIDs.Count > 0)
msg = string.Format("保存成功\n已更新销售订单No.{0}\n", string.Join(",", updateIDs));
else {
msg = "没有需要更新的产品!\n";
}
if (cannotUpdateID.Count > 0)
msg = string.Format("销售订单No.{0} 不是未审核状态,不能更新!", string.Join(",", cannotUpdateID));
AspUtil.Alert(this, msg);
BindGrid();
}
protected override void OnLoad(EventArgs e) {
base.OnLoad(e);
if (!IsPostBack) {
BindGrid();
}
}
private void BindGrid() {
var dom = _queryContainer.Build();
var order = dom.From.RootSource.Alias;
var detailAlias = new JoinAlias("detail", typeof(Order_Detail));
var goodsPropertyCatalog = new JoinAlias(typeof(GoodsPropertyCatalog));
var goodsProperty = new JoinAlias(typeof(GoodsProperty));
var goods = new JoinAlias(typeof(SaleGoods));
dom.From.AddJoin(JoinType.Inner, new DQDmoSource(detailAlias),
DQCondition.EQ(order, "ID", detailAlias, "Order_ID"));
dom.From.AddJoin(JoinType.Left, new DQDmoSource(goods), DQCondition.EQ(detailAlias, "SaleGoods_ID", goods, "ID"));
dom.From.AddJoin(JoinType.Left, new DQDmoSource(goodsProperty), DQCondition.EQ(goodsProperty, "ID", goods, "GoodsProperty_ID"));
dom.From.AddJoin(JoinType.Left, new DQDmoSource(goodsPropertyCatalog), DQCondition.EQ(goodsProperty, "GoodsPropertyCatalog_ID", goodsPropertyCatalog, "ID"));
dom.Columns.Add(DQSelectColumn.Field("ID", detailAlias));
dom.Columns.Add(DQSelectColumn.Field("UnitNum", detailAlias));
dom.Columns.Add(DQSelectColumn.Field("SecondNumber", detailAlias));
dom.Columns.Add(DQSelectColumn.Field("Number", detailAlias));
dom.Columns.Add(DQSelectColumn.Field("Price", detailAlias));
dom.Columns.Add(DQSelectColumn.Field("PolicyPrice", detailAlias));
dom.Columns.Add(DQSelectColumn.Field("Unit", detailAlias));
dom.Columns.Add(DQSelectColumn.Field("SaleGoods_ID", detailAlias));
dom.Columns.Add(DQSelectColumn.Field("Money", detailAlias));
dom.Columns.Add(DQSelectColumn.Field("Customer_Name", order));
dom.Columns.Add(DQSelectColumn.Field("Order_ID", detailAlias));
dom.Columns.Add(DQSelectColumn.Field("GoodsBatch_ID", detailAlias));
dom.Columns.Add(DQSelectColumn.Field("GoodsBatch_Name", detailAlias));
if (SaleGoods_ID != null) {
dom.Where.Conditions.Add(DQCondition.EQ(detailAlias, "SaleGoods_ID", SaleGoods_ID));
}
if (AccountingUnit_ID != null) {
dom.Where.Conditions.Add(DQCondition.EQ(order, "AccountingUnit_ID", AccountingUnit_ID));
}
if (SelectAccountingUnit_ID != null) {
dom.Where.Conditions.Add(DQCondition.EQ(order, "AccountingUnit_ID", SelectAccountingUnit_ID));
}
if (Customer_ID != null) {
dom.Where.Conditions.Add(DQCondition.EQ(order, "Customer_ID", Customer_ID));
}
if (SelectCustomer_ID != null) {
dom.Where.Conditions.Add(DQCondition.EQ(order, "Customer_ID", SelectCustomer_ID));
}
if (SelectStore_ID != null) {
dom.Where.Conditions.Add(DQCondition.EQ(order, "Store_ID", SelectStore_ID));
}
if (!string.IsNullOrEmpty(SelectGoodsPropertyCatalog_Name)) {
var strs = B3SaleWebUtil.GetDeepByTreeName(SelectGoodsPropertyCatalog_Name);
dom.Where.Conditions.Add(DQCondition.EQ(goodsPropertyCatalog, "TreeDeep" + strs[0] + "ID", SelectGoodsPropertyCatalog_ID));
}
if (SelectGoodsProperty_ID != null) {
dom.Where.Conditions.Add(DQCondition.EQ(goodsProperty, "ID", SelectGoodsProperty_ID));
}
dom.Where.Conditions.Add(DQCondition.EQ("BillState", .));
OrganizationUtil.AddOrganizationLimit(dom, typeof(Order));
Details.Clear();
using (var context = new TransactionContext()) {
using (var reader = context.Session.ExecuteReader(dom)) {
while (reader.Read()) {
var detail = new Order_Detail {
ID = (long)reader[0],
UnitNum = (Money<decimal>?)reader[1],
SecondNumber = (Money<decimal>?)reader[2],
Number = (Money<decimal>?)reader[3],
Price = (Money<decimal>?)reader[4],
PolicyPrice = (Money<decimal>?)reader[5],
Unit = (string)reader[6],
SaleGoods_ID = (long)reader[7],
Money = (Money<>?)reader[8],
Customer_Name = (string)reader[9],
Order_ID = (long)reader[10],
GoodsBatch_ID = (long?)reader[11],
GoodsBatch_Name = (string)reader[12]
};
Details.Add(detail);
}
}
}
foreach (var detail in Details) {
Dmo.RefreshDependency(detail, "SaleGoods_ID");
}
_goodsGrid.DataBind();
_l1.Text = Math.Round(Details.Sum(x => (decimal?)(x.UnitNum) ?? 0), 2).ToString();
_l2.Text = Math.Round(Details.Sum(x => (decimal?)(x.Money) ?? 0), 2).ToString();
}
}
}

+ 422
- 0
B3_DongFangWanQi.Web/Pages/B3_DongFangWanQi/Tools/SaleOederUpdateList.cs View File

@ -0,0 +1,422 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Web;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using B3_DongFangWanQi.BO;
using BWP.B3Frameworks;
using BWP.B3Frameworks.BO;
using BWP.B3Frameworks.BO.NamedValueTemplate;
using BWP.B3Frameworks.Utils;
using BWP.B3Sale.BO;
using BWP.B3Sale.Utils;
using BWP.B3UnitedInfos;
using BWP.B3UnitedInfos.BO;
using BWP.Web.Layout;
using BWP.Web.Utils;
using BWP.Web.WebControls;
using Forks.EnterpriseServices;
using Forks.EnterpriseServices.DataForm;
using Forks.EnterpriseServices.DomainObjects2;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
using Forks.EnterpriseServices.SqlDoms;
using Forks.Utils;
using TSingSoft.WebControls2;
using TSingSoft.WebPluginFramework;
using TSingSoft.WebPluginFramework.Controls;
namespace BWP.Web.Pages.B3_DongFangWanQi.Tools {
class SaleOederUpdateList : AppBasePage {
QueryContainer _queryContainer;
readonly DFInfo _dFInfo = DFInfo.Get(typeof(Order));
private DFChoiceBox _goodsPropertyCatalog;
private ChoiceBox _goodsProperty;
private DFChoiceBox _storeInput, _accInput, _customerInput;
protected override void InitForm(HtmlForm form) {
_queryContainer = QueryContainer.FromResource(GetType().FullName + ".xml", GetType().Assembly);
form.Controls.Add(new PageTitle("销售订单调整"));
var titlePanel = form.EAdd(new TitlePanel("BaseProperties", "查询条件"));
titlePanel.SetPageLayoutSetting(mPageLayoutManager, titlePanel.Name);
var layoutManager = new LayoutManager("main", _dFInfo, _queryContainer);
_goodsProperty = QueryCreator.DFChoiceBox(_dFInfo.Fields["ID"], B3UnitedInfosConsts.DataSources.);
layoutManager.Add("GoodsProperty_ID", new SimpleLabel("存货属性"), _goodsProperty);
layoutManager["GoodsProperty_ID"].NotAutoAddToContainer = true;
_goodsPropertyCatalog = QueryCreator.DFChoiceBox(_dFInfo.Fields["ID"], B3UnitedInfosConsts.DataSources.);
layoutManager.Add("GoodsPropertyCatalog_ID", new SimpleLabel("存货属性分类"), _goodsPropertyCatalog);
layoutManager["GoodsPropertyCatalog_ID"].NotAutoAddToContainer = true;
layoutManager.Add("AccountingUnit_ID", new SimpleLabel("会计单位"), _accInput = QueryCreator.DFChoiceBox(_dFInfo.Fields["AccountingUnit_ID"], B3FrameworksConsts.DataSources.), false);
layoutManager.Add("Store_ID", new SimpleLabel("仓库"), _storeInput = QueryCreator.DFChoiceBox(_dFInfo.Fields["Store_ID"], B3FrameworksConsts.DataSources.), false);
layoutManager.Add("Customer_ID", _customerInput = QueryCreator.DFChoiceBox(_dFInfo.Fields["Customer_ID"], B3SaleDataSources.));
var config = new AutoLayoutConfig();
config.Add("OrderDate");
config.Add("AccountingUnit_ID");
config.Add("Employee_ID");
config.Add("Customer_ID");
config.Add("Store_ID");
config.Add("GoodsProperty_ID");
config.Add("GoodsPropertyCatalog_ID");
layoutManager.Config = config;
var section = mPageLayoutManager.AddSection("BaseProperties", "查询条件");
section.ApplyLayout(layoutManager, config, mPageLayoutManager, _dFInfo);
section.SetDisplayName("GoodsProperty_ID", "存货属性");
section.SetDisplayName("GoodsPropertyCatalog_ID", "存货属性分类");
titlePanel.Controls.Add(layoutManager.CreateLayout());
var tsbtn = new TSButton("开始查询");
tsbtn.Click += delegate {
DataBindGrid();
};
titlePanel.Controls.Add(tsbtn);
AddDetails(form.EAdd(new TitlePanel("订单明细", "订单明细")));
var vPanel = new VLayoutPanel();
form.Controls.Add(vPanel);
// addOperations(vPanel);
}
protected override void OnPreRender(EventArgs e) {
base.OnPreRender(e);
var style = @" <style>
.btn {
color: blue;
border: 0px none;
font-size: 13px;
height:25px;
background-color:#ffffff;
}
.evenbtn{
background-color:#ebebeb;
}
.btn:hover{
color:red;
border: none;
cursor: hand;
cursor: pointer;
background-color:#42a3da;
}
.btn:focus {
outline: none;
}
</style>
";
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "headDiv", style);
}
DFBrowseGrid _grid;
void AddDetails(TitlePanel tPanel) {
HLayoutPanel hPanel;
tPanel.Controls.Add(new LiteralControl("<br />"));
tPanel.Controls.Add(hPanel = new HLayoutPanel());
var editor = new DFDataTableEditor();
_grid = new DFBrowseGrid(editor) {
Width = Unit.Percentage(100),
IgnoreItemsCount = true,
DFGridSetEnabled = false,
};
_grid.Columns.Add(new DFBrowseGridColumn("Goods_Name"));
_grid.Columns.Add(new DFBrowseGridColumn("Goods_Code"));
_grid.Columns.Add(new DFBrowseGridColumn("SecondNumber"));
_grid.Columns.Add(new DFBrowseGridColumn("Goods_SecondUnit"));
_grid.Columns.Add(new DFBrowseGridColumn("UnitNum"));
_grid.Columns.Add(new DFBrowseGridColumn("Unit"));
_grid.Columns.Add(new DFBrowseGridColumn("库存辅数量"));
_grid.Columns.Add(new DFBrowseGridColumn("库存数量"));
_grid.Columns.Add(new DFBrowseGridColumn("生产辅数量"));
_grid.Columns.Add(new DFBrowseGridColumn("生产数量"));
_grid.Columns.Add(new DFBrowseGridColumn("可用辅数量"));
_grid.Columns.Add(new DFBrowseGridColumn("可用数量"));
_grid.Columns.Add(new DFBrowseGridColumn("差异辅数量"));
_grid.Columns.Add(new DFBrowseGridColumn("差异数量"));
_grid.OnDetailDataBound += (htmlRow, dataRow, o) => {
var row = dataRow as DFDataRow;
if (row == null)
return;
var diff = (decimal?)row["差异数量"];
var numberIndext = 13;
var bt = new DialogButton();
bt.CssClass = "btn";
bt.Text = htmlRow.Cells[numberIndext].InnerText;
if (o % 2 != 1) {
bt.CssClass = "btn evenbtn";
}
if (diff < 0) {
bt.BorderStyle = BorderStyle.Solid;
bt.BorderColor = Color.Red;
bt.BorderWidth = 1;
}
htmlRow.Cells[numberIndext].InnerHtml = "";
htmlRow.Cells[numberIndext].Controls.Add(bt);
var idField = row["Goods_ID"];
var number = ((decimal?)row["可用数量"]) ?? 0;
var url = AspUtil.UpdateUrlParam("SaleOrderUpdateEdit.aspx", "Goods_ID", ((long)idField).ToString());
url = AspUtil.UpdateUrlParam(url, "number", number.ToString());
bt.Url = url;
bt.Width = 100;
bt.Click += delegate {
_grid.DataBind();
};
};
tPanel.Controls.Add(_grid);
var section = mPageLayoutManager.AddSection("Columns", "订单明细");
section.ApplyLayout(_grid, mPageLayoutManager, _dFInfo);
}
private void DataBindGrid() {
var args = new LoadArguments(GetQueryDom());
_grid.LoadArguments = args;
_grid.Reset();
_grid.CurrentPageIndex = 0;
_grid.DataBind();
}
private DQueryDom GetQueryDom() {
var bill = new JoinAlias(typeof(OrderTmp));
var goods = new JoinAlias(typeof(SaleGoods));
var storeDetail = new JoinAlias(typeof(StoreDetailTmp));
var output = new JoinAlias(typeof(OutputTmp));
var dom = new DQueryDom(bill);
dom.RegisterQueryTable(typeof(OrderTmp), new[] { "Goods_ID", "Unit", "Number", "SecondNumber", "UnitNum" }, GetOrderDQueryDom());
dom.RegisterQueryTable(typeof(StoreDetailTmp), new[] { "Goods_ID", "Number", "SecondNumber" }, GetStoreDetailDQueryDom());
dom.RegisterQueryTable(typeof(OutputTmp), new[] { "Goods_ID", "Number", "SecondNumber" }, GetOutputDQueryDom());
dom.From.AddJoin(JoinType.Left, new DQDmoSource(goods), DQCondition.EQ(bill, "Goods_ID", goods, "ID"));
dom.From.AddJoin(JoinType.Left, new DQDmoSource(storeDetail), DQCondition.EQ(bill, "Goods_ID", storeDetail, "Goods_ID"));
dom.From.AddJoin(JoinType.Left, new DQDmoSource(output), DQCondition.EQ(bill, "Goods_ID", output, "Goods_ID"));
dom.Columns.Add(DQSelectColumn.Field("Goods_ID", bill));
dom.Columns.Add(DQSelectColumn.Field("Goods_Name", bill));
dom.Columns.Add(DQSelectColumn.Field("Goods_Code", bill));
dom.Columns.Add(DQSelectColumn.Field("PrintShortName", bill));
dom.Columns.Add(DQSelectColumn.Field("UnitNum", bill));
dom.Columns.Add(DQSelectColumn.Field("Unit", bill));
dom.Columns.Add(DQSelectColumn.Field("SecondNumber", bill));
dom.Columns.Add(DQSelectColumn.Field("Goods_SecondUnit", bill));
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(storeDetail, "Number"), "库存数量"));
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(storeDetail, "SecondNumber"), "库存辅数量"));
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(output, "Number"), "生产数量"));
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(output, "SecondNumber"), "生产辅数量"));
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(storeDetail, "Number").EAdd(DQExpression.Field(output, "Number")), "可用数量"));
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(storeDetail, "SecondNumber").EAdd(DQExpression.Field(output, "SecondNumber")), "可用辅数量"));
dom.Columns.Add(DQSelectColumn.Create(
ESubtract(DQExpression.Field(storeDetail, "Number").EAdd(DQExpression.Field(output, "Number")), DQExpression.Field(bill, "UnitNum")), "差异数量"));
dom.Columns.Add(DQSelectColumn.Create(
ESubtract(DQExpression.Field(storeDetail, "SecondNumber").EAdd(DQExpression.Field(output, "SecondNumber")), DQExpression.Field(bill, "SecondNumber")), "差异辅数量"));
return dom;
}
static IDQExpression ESubtract(IDQExpression expression, IDQExpression right) {
return DQExpression.Subtract(expression, DQExpression.IfNull(right, DQExpression.ConstValue(0.0m)));
}
[DFClass]
class OrderTmp {
public long Goods_ID { get; set; }
[LogicName("主数量")]
public Money<decimal>? Number { get; set; }
[LogicName("辅数量")]
public Money<decimal>? SecondNumber { get; set; }
[LogicName("订货报价数量")]
public Money<decimal>? UnitNum { get; set; }
[LogicName("报价单位")]
public string Unit { get; set; }
[LogicName("存货名称")]
[ReferenceTo(typeof(SaleGoods), "Name")]
[Join("Goods_ID", "ID")]
public string Goods_Name { get; set; }
[ReferenceTo(typeof(SaleGoods), "Spell")]
[Join("Goods_ID", "ID")]
public string Goods_Spell { get; set; }
[LogicName("规格")]
[ReferenceTo(typeof(SaleGoods), "Spec")]
[Join("Goods_ID", "ID")]
public string Goods_Spec { get; set; }
[LogicName("存货编码")]
[ReferenceTo(typeof(SaleGoods), "Code")]
[Join("Goods_ID", "ID")]
public string Goods_Code { get; set; }
[LogicName("简称")]
[ReferenceTo(typeof(SaleGoods), "PrintShortName")]
[Join("Goods_ID", "ID")]
public string PrintShortName { get; set; }
[LogicName("主单位")]
[ReferenceTo(typeof(SaleGoods), "MainUnit")]
[Join("Goods_ID", "ID")]
public string Goods_MainUnit { get; set; }
[LogicName("辅单位")]
[ReferenceTo(typeof(SaleGoods), "SecondUnit")]
[Join("Goods_ID", "ID")]
public string Goods_SecondUnit { get; set; }
}
class StoreDetailTmp {
public long Goods_ID { get; set; }
[LogicName("主数量")]
public Money<decimal>? Number { get; set; }
[LogicName("辅数量")]
public Money<decimal>? SecondNumber { get; set; }
}
class OutputTmp {
public long Goods_ID { get; set; }
[LogicName("主数量")]
public Money<decimal>? Number { get; set; }
[LogicName("辅数量")]
public Money<decimal>? SecondNumber { get; set; }
}
DQueryDom GetOrderDQueryDom() {
var dom = _queryContainer.Build();
var bill = dom.From.RootSource.Alias;
var detail = new JoinAlias("detail", typeof(Order_Detail));
var goodsPropertyCatalog = new JoinAlias(typeof(GoodsPropertyCatalog));
var goodsProperty = new JoinAlias(typeof(GoodsProperty));
var goods = new JoinAlias(typeof(SaleGoods));
dom.From.AddJoin(JoinType.Inner, new DQDmoSource(detail),
DQCondition.EQ(bill, "ID", detail, "Order_ID"));
dom.From.AddJoin(JoinType.Left, new DQDmoSource(goods), DQCondition.EQ(detail, "SaleGoods_ID", goods, "ID"));
dom.From.AddJoin(JoinType.Left, new DQDmoSource(goodsProperty), DQCondition.EQ(goodsProperty, "ID", goods, "GoodsProperty_ID"));
dom.From.AddJoin(JoinType.Left, new DQDmoSource(goodsPropertyCatalog), DQCondition.EQ(goodsProperty, "GoodsPropertyCatalog_ID", goodsPropertyCatalog, "ID"));
AddGoodsCondition(goodsPropertyCatalog, goodsProperty, dom);
dom.Columns.Add(DQSelectColumn.Field("SaleGoods_ID", detail));
dom.Columns.Add(DQSelectColumn.Field("Unit", detail));
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Field(detail, "Number")), "主数量"));
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Field(detail, "SecondNumber")), "主数量"));
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Field(detail, "UnitNum")), "主数量"));
dom.GroupBy.Expressions.Add(DQExpression.Field(detail, "SaleGoods_ID"));
dom.GroupBy.Expressions.Add(DQExpression.Field(detail, "Unit"));
dom.Where.Conditions.Add(DQCondition.EQ("BillState", .));
OrganizationUtil.AddOrganizationLimit(dom, typeof(Order));
dom.Where.Conditions.Add(DQCondition.EQ(bill, "Domain_ID", DomainContext.Current.ID));
return dom;
}
DQueryDom GetStoreDetailDQueryDom() {
var storeDetail = new JoinAlias(typeof(StoreDetail));
var store = new JoinAlias(typeof(Store));
var query = new DQueryDom(storeDetail);
var goodsPropertyCatalog = new JoinAlias(typeof(GoodsPropertyCatalog));
var goodsProperty = new JoinAlias(typeof(GoodsProperty));
var goods = new JoinAlias(typeof(SaleGoods));
query.From.AddJoin(JoinType.Left, new DQDmoSource(goods), DQCondition.EQ(storeDetail, "Goods_ID", goods, "ID"));
query.From.AddJoin(JoinType.Left, new DQDmoSource(goodsProperty), DQCondition.EQ(goodsProperty, "ID", goods, "GoodsProperty_ID"));
query.From.AddJoin(JoinType.Left, new DQDmoSource(goodsPropertyCatalog), DQCondition.EQ(goodsProperty, "GoodsPropertyCatalog_ID", goodsPropertyCatalog, "ID"));
AddGoodsCondition(goodsPropertyCatalog, goodsProperty, query);
query.From.AddJoin(JoinType.Left, new DQDmoSource(store), DQCondition.EQ(store, "ID", storeDetail, "Store_ID"));
query.Columns.Add(DQSelectColumn.Field("Goods_ID"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Field("Number")), "主数量"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Field("SecondNumber")), "主数量"));
query.GroupBy.Expressions.Add(DQExpression.Field("Goods_ID"));
query.Where.Conditions.Add(DQCondition.EQ(store, "Domain_ID", DomainContext.Current.ID));
return query;
}
DQueryDom GetOutputDQueryDom() {
var dom = new DQueryDom(new JoinAlias(typeof(OutputForecast)));
dom.Columns.Add(DQSelectColumn.Max("ID"));
dom.Where.Conditions.Add(DQCondition.EQ("Domain_ID", DomainContext.Current.ID));
dom.EAddCheckedCondition(dom.From.RootSource.Alias);
var id = dom.EExecuteScalar<long?>() ?? 0;
var detail = new JoinAlias(typeof(OutputForecast_Detail));
var bill = new JoinAlias(typeof(OutputForecast));
var goodsPropertyCatalog = new JoinAlias(typeof(GoodsPropertyCatalog));
var goodsProperty = new JoinAlias(typeof(GoodsProperty));
var goods = new JoinAlias(typeof(SaleGoods));
var query = new DQueryDom(detail);
query.From.AddJoin(JoinType.Inner, new DQDmoSource(bill),
DQCondition.EQ(bill, "ID", detail, "OutputForecast_ID"));
query.From.AddJoin(JoinType.Left, new DQDmoSource(goods), DQCondition.EQ(detail, "Goods_ID", goods, "ID"));
query.From.AddJoin(JoinType.Left, new DQDmoSource(goodsProperty), DQCondition.EQ(goodsProperty, "ID", goods, "GoodsProperty_ID"));
query.From.AddJoin(JoinType.Left, new DQDmoSource(goodsPropertyCatalog), DQCondition.EQ(goodsProperty, "GoodsPropertyCatalog_ID", goodsPropertyCatalog, "ID"));
AddGoodsCondition(goodsPropertyCatalog, goodsProperty, query);
query.Columns.Add(DQSelectColumn.Field("Goods_ID"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Field("Number")), "主数量"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Field("SecondNumber")), "主数量"));
query.GroupBy.Expressions.Add(DQExpression.Field("Goods_ID"));
query.Where.Conditions.Add(DQCondition.EQ(bill, "ID", id));
return query;
}
private void AddGoodsCondition(JoinAlias goodsPropertyCatalog, JoinAlias goodsProperty, DQueryDom dom) {
if (!_goodsPropertyCatalog.IsEmpty) {
var strs = B3SaleWebUtil.GetDeepByTreeName(_goodsPropertyCatalog.DisplayValue);
var conditions = new List<IDQExpression>();
var values = _goodsPropertyCatalog.GetValues();
for (int index = 0; index < values.Length; index++) {
var value = values[index];
conditions.Add(DQCondition.EQ(goodsPropertyCatalog, "TreeDeep" + strs[index] + "ID", value));
}
dom.Where.Conditions.Add(DQCondition.Or(conditions));
}
if (!_goodsProperty.IsEmpty) {
dom.Where.Conditions.Add(DQCondition.EQ(goodsProperty, "ID", long.Parse(_goodsProperty.Value)));
}
}
protected override void OnLoad(EventArgs e) {
base.OnLoad(e);
if (!IsPostBack) {
DataBindGrid();
}
}
}
}

+ 82
- 0
B3_DongFangWanQi.Web/Pages/B3_DongFangWanQi/Tools/SaleOederUpdateList.xml View File

@ -0,0 +1,82 @@
<?xml version="1.0" encoding="utf-8" ?>
<Select xmlns="urn:XDQuery">
<Columns>
</Columns>
<From>
<DmoClass class="BWP.B3Sale.BO.Order, B3Sale"/>
</From>
<Where>
<And>
<EQ>
<Field name="ID"/>
<QBE paramName="ID"/>
</EQ>
<EQ>
<Field name="Customer_ID"/>
<QBE paramName="Customer_ID"/>
</EQ>
<Contains>
<Field name="CreateUser_Name"/>
<QBE paramName="CreateUser_Name"/>
</Contains>
<Contains>
<Field name="CheckUser_Name"/>
<QBE paramName="CheckUser_Name"/>
</Contains>
<Contains>
<Field name="DeliverAddress"/>
<QBE paramName="DeliverAddress"/>
</Contains>
<GreaterThanOrEqual>
<Field name="OrderDate"/>
<QBE paramName="MinOrderDate"/>
</GreaterThanOrEqual>
<LessThanOrEqual>
<Field name="OrderDate"/>
<QBE paramName="MaxOrderDate"/>
</LessThanOrEqual>
<GreaterThanOrEqual>
<Field name="DeliveryTime"/>
<QBE paramName="MinDeliveryTime"/>
</GreaterThanOrEqual>
<LessThanOrEqual>
<Field name="DeliveryTime"/>
<QBE paramName="MaxDeliveryTime"/>
</LessThanOrEqual>
<EQ>
<Field name="AccountingUnit_ID"/>
<QBE paramName="AccountingUnit_ID"/>
</EQ>
<EQ>
<Field name="Employee_ID"/>
<QBE paramName="Employee_ID"/>
</EQ>
<EQ>
<Field name="BillState"/>
<QBE paramName="BillState"/>
</EQ>
<EQ>
<Field name="IsLocked"/>
<QBE paramName="IsLocked"/>
</EQ>
<Contains>
<Field name="DepartmentWorkFlow_Detail_Name"/>
<QBE paramName="DepartmentWorkFlow_Detail_Name"/>
</Contains>
<EQ>
<Field name="DepartmentWorkFlowStateCategory_ID"/>
<QBE paramName="DepartmentWorkFlowStateCategory_ID"/>
</EQ>
<EQ>
<Field name="SaleKind_ID"/>
<QBE paramName="SaleKind_ID"/>
</EQ>
<EQ>
<Field name="Store_ID"/>
<QBE paramName="Store_ID"/>
</EQ>
</And>
</Where>
</Select>

+ 23
- 8
B3_DongFangWanQi/B3_DongFangWanQi.csproj View File

@ -52,6 +52,16 @@
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="B3Frameworks, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a04fa581c0f74d43, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\tsref\Debug\B3Frameworks.dll</HintPath>
</Reference>
<Reference Include="B3Frameworks.Web, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a04fa581c0f74d43, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\tsref\Debug\B3Frameworks.Web.dll</HintPath>
</Reference>
<Reference Include="B3Sale, Version=1.0.0.0, Culture=neutral, PublicKeyToken=3a973053c7ebf11c, processorArchitecture=MSIL" />
<Reference Include="B3UnitedInfos, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a04fa581c0f74d43, processorArchitecture=MSIL" />
<Reference Include="Forks.EnterpriseServices, Version=3.1.0.0, Culture=neutral, PublicKeyToken=7254430f49d10aae, processorArchitecture=MSIL" /> <Reference Include="Forks.EnterpriseServices, Version=3.1.0.0, Culture=neutral, PublicKeyToken=7254430f49d10aae, processorArchitecture=MSIL" />
<Reference Include="Forks.Utils, Version=3.0.0.0, Culture=neutral, PublicKeyToken=6911f69af04f1ecb, processorArchitecture=MSIL"> <Reference Include="Forks.Utils, Version=3.0.0.0, Culture=neutral, PublicKeyToken=6911f69af04f1ecb, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
@ -65,11 +75,13 @@
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\TsingSoft2\TSREF\TSingSoft.WebControls2.dll</HintPath> <HintPath>..\..\..\TsingSoft2\TSREF\TSingSoft.WebControls2.dll</HintPath>
</Reference> </Reference>
<Reference Include="Wpf, Version=1.2.0.0, Culture=neutral, PublicKeyToken=a04fa581c0f74d43, processorArchitecture=MSIL">
<HintPath>..\..\..\..\tsref\Debug\Wpf.dll</HintPath>
<Reference Include="Wpf, Version=1.3.0.0, Culture=neutral, PublicKeyToken=a04fa581c0f74d43, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\tsref\Debug\Wpf.dll</HintPath>
</Reference> </Reference>
<Reference Include="Wpf.System, Version=1.2.0.0, Culture=neutral, PublicKeyToken=a04fa581c0f74d43, processorArchitecture=MSIL">
<HintPath>..\..\..\..\tsref\Debug\Wpf.System.dll</HintPath>
<Reference Include="Wpf.System, Version=1.3.0.0, Culture=neutral, PublicKeyToken=a04fa581c0f74d43, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\tsref\Debug\Wpf.System.dll</HintPath>
</Reference> </Reference>
<Reference Include="Wpf.System.Web, Version=1.3.0.0, Culture=neutral, PublicKeyToken=a04fa581c0f74d43, processorArchitecture=MSIL"> <Reference Include="Wpf.System.Web, Version=1.3.0.0, Culture=neutral, PublicKeyToken=a04fa581c0f74d43, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
@ -77,12 +89,15 @@
</Reference> </Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="BL\OutputForecastBL.cs" />
<Compile Include="BL\OutputConfigureBL.cs" />
<Compile Include="BO\Bill\Outputforecast.cs" />
<Compile Include="BO\Bill\OutputForecast_Detail.cs" />
<Compile Include="BO\OutputConfigure.cs" />
<Compile Include="BO\OutputConfigure_Detail.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<Folder Include="BL\" />
<Folder Include="BO\Bill\" />
</ItemGroup>
<ItemGroup />
<ItemGroup> <ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5"> <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible> <Visible>False</Visible>


+ 16
- 0
B3_DongFangWanQi/BL/OutputConfigureBL.cs View File

@ -0,0 +1,16 @@
using B3_DongFangWanQi.BO;
using BWP.B3Frameworks.BL;
using Forks.EnterpriseServices;
using Forks.EnterpriseServices.BusinessInterfaces;
namespace B3_DongFangWanQi.BL {
[BusinessInterface(typeof(OutputConfigureBL))]
[LogicName("产值配置")]
public interface IOutputConfigureBL : IDomainBaseInfoBL<OutputConfigure> {
}
public class OutputConfigureBL : DomainBaseInfoBL<OutputConfigure>, IOutputConfigureBL {
}
}

+ 19
- 0
B3_DongFangWanQi/BL/OutputForecastBL.cs View File

@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using B3_DongFangWanQi.BO;
using BWP.B3Frameworks.BL;
using Forks.EnterpriseServices;
using Forks.EnterpriseServices.BusinessInterfaces;
namespace B3_DongFangWanQi.BL {
[BusinessInterface(typeof(OutputForecastBL))]
[LogicName("产值预测")]
public interface IOutputForecastBL : IDomainBillBL<OutputForecast> {
}
public class OutputForecastBL : DomainBillBL<OutputForecast>, IOutputForecastBL {
}
}

+ 70
- 0
B3_DongFangWanQi/BO/Bill/OutputForecast_Detail.cs View File

@ -0,0 +1,70 @@
using System;
using BWP.B3Frameworks.BO;
using BWP.B3Frameworks.BO.NamedValueTemplate;
using BWP.B3Sale.BO;
using Forks.EnterpriseServices;
using Forks.EnterpriseServices.DataForm;
using Forks.EnterpriseServices.DomainObjects2;
using Forks.Utils;
namespace B3_DongFangWanQi.BO
{
[DFClass, Serializable, LogicName("产值预测明细")]
public class OutputForecast_Detail : Base {
public long OutputForecast_ID { get; set; }
[LogicName("存货")]
public long Goods_ID { get; set; }
[LogicName("产量")]
public Money<decimal>? Number { get; set; }
[LogicName("辅数量")]
public Money<decimal>? SecondNumber { get; set; }
[LogicName("比例")]
public Money<decimal>? Rate { get; set; }
[LogicName("存货名称")]
[ReferenceTo(typeof(SaleGoods), "Name")]
[Join("Goods_ID", "ID")]
public string Goods_Name { get; set; }
[LogicName("规格")]
[ReferenceTo(typeof(SaleGoods), "Spec")]
[Join("Goods_ID", "ID")]
public string Goods_Spec { get; set; }
[LogicName("存货编码")]
[ReferenceTo(typeof(SaleGoods), "Code")]
[Join("Goods_ID", "ID")]
public string Goods_Code { get; set; }
[LogicName("简称")]
[ReferenceTo(typeof(SaleGoods), "PrintShortName")]
[Join("Goods_ID", "ID")]
public string PrintShortName { get; set; }
[LogicName("主辅转换方向")]
[ReferenceTo(typeof(SaleGoods), "UnitConvertDirection")]
[Join("Goods_ID", "ID")]
public NamedValue<>? Goods_UnitConvertDirection { get; set; }
[LogicName("主辅换算主单位比例")]
[ReferenceTo(typeof(SaleGoods), "MainUnitRatio")]
[Join("Goods_ID", "ID")]
public Money<decimal>? Goods_MainUnitRatio { get; set; }
[LogicName("主辅换算辅单位比例")]
[ReferenceTo(typeof(SaleGoods), "SecondUnitRatio")]
[Join("Goods_ID", "ID")]
public Money<decimal>? Goods_SecondUnitRatio { get; set; }
}
[Serializable]
public class OutputForecast_DetailCollection : DmoCollection<OutputForecast_Detail> {
}
}

+ 67
- 0
B3_DongFangWanQi/BO/Bill/Outputforecast.cs View File

@ -0,0 +1,67 @@
using System;
using BWP.B3Frameworks;
using BWP.B3Frameworks.BO;
using BWP.B3Frameworks.Utils;
using Forks.EnterpriseServices;
using Forks.EnterpriseServices.DataForm;
using Forks.EnterpriseServices.DomainObjects2;
using TSingSoft.WebControls2;
namespace B3_DongFangWanQi.BO {
[DFClass, Serializable]
[LogicName("产值预测")]
public class OutputForecast : AccountingUnitBill {
[LogicName("屠宰头数")]
public decimal? Number { get; set; }
private DateTime _date = DateTime.Today;
[LogicName("日期")]
public DateTime Date {
get { return _date; }
set { _date = value; }
}
[LogicName("部门")]
[DFExtProperty("WebControlType", DFEditControl.ChoiceBox)]
[DFDataKind(B3FrameworksConsts.DataSources.授权部门)]
[DFExtProperty("DisplayField", "Department_TreeName")]
public long? Department_ID { get; set; }
readonly OutputForecast_DetailCollection _details = new OutputForecast_DetailCollection();
[OneToMany(typeof(OutputForecast_Detail), "ID")]
[Join("ID", "OutputForecast_ID")]
public OutputForecast_DetailCollection Details {
get {
return _details;
}
}
[ReferenceTo(typeof(Department), "Name")]
[Join("Department_ID", "ID")]
[DFPrompt("部门")]
public string Department_Name { get; set; }
[LogicName("部门深度")]
[ReferenceTo(typeof(Department), "Depth")]
[Join("Department_ID", "ID")]
public int? Department_Depth { get; set; }
string mDepartment_TreeName = string.Empty;
[NonDmoProperty]
public string Department_TreeName {
get {
if (string.IsNullOrEmpty(mDepartment_TreeName)) {
return TreeUtil.GetTreePrefix(Department_Depth) + Department_Name;
} else {
return mDepartment_TreeName;
}
}
set {
mDepartment_TreeName = value;
}
}
}
}

+ 37
- 0
B3_DongFangWanQi/BO/OutputConfigure.cs View File

@ -0,0 +1,37 @@
using System;
using BWP.B3Frameworks.BO;
using Forks.EnterpriseServices;
using Forks.EnterpriseServices.DataForm;
using Forks.EnterpriseServices.DomainObjects2;
namespace B3_DongFangWanQi.BO {
[DFClass]
[Serializable]
[LogicName("产值配置")]
public class OutputConfigure : DomainBaseInfo {
[DFDataKind("授权会计单位")]
[DFExtProperty("DisplayField", "AccountingUnit_Name")]
[LogicName("会计单位")]
[DFExtProperty("QueryDataKind", "授权会计单位全部")]
public long? AccountingUnit_ID { get; set; }
readonly OutputConfigure_DetailCollection _details = new OutputConfigure_DetailCollection();
[OneToMany(typeof(OutputConfigure_Detail), "ID")]
[Join("ID", "OutputConfigure_ID")]
public OutputConfigure_DetailCollection Details {
get {
return _details;
}
}
[ReferenceTo(typeof(AccountingUnit), "Name")]
[Join("AccountingUnit_ID", "ID")]
[DFPrompt("会计单位")]
public string AccountingUnit_Name { get; set; }
}
}

+ 69
- 0
B3_DongFangWanQi/BO/OutputConfigure_Detail.cs View File

@ -0,0 +1,69 @@
using System;
using BWP.B3Frameworks.BO;
using BWP.B3Frameworks.BO.NamedValueTemplate;
using BWP.B3Sale.BO;
using Forks.EnterpriseServices;
using Forks.EnterpriseServices.DataForm;
using Forks.EnterpriseServices.DomainObjects2;
using Forks.Utils;
namespace B3_DongFangWanQi.BO {
[DFClass, Serializable, LogicName("产值配置明细")]
public class OutputConfigure_Detail : Base {
public long OutputConfigure_ID { get; set; }
[LogicName("存货")]
public long Goods_ID { get; set; }
[LogicName("产量")]
public Money<decimal>? Number { get; set; }
[LogicName("辅数量")]
public Money<decimal>? SecondNumber { get; set; }
[LogicName("比例")]
public Money<decimal>? Rate { get; set; }
[LogicName("存货名称")]
[ReferenceTo(typeof(SaleGoods), "Name")]
[Join("Goods_ID", "ID")]
public string Goods_Name { get; set; }
[LogicName("规格")]
[ReferenceTo(typeof(SaleGoods), "Spec")]
[Join("Goods_ID", "ID")]
public string Goods_Spec { get; set; }
[LogicName("存货编码")]
[ReferenceTo(typeof(SaleGoods), "Code")]
[Join("Goods_ID", "ID")]
public string Goods_Code { get; set; }
[LogicName("简称")]
[ReferenceTo(typeof(SaleGoods), "PrintShortName")]
[Join("Goods_ID", "ID")]
public string PrintShortName { get; set; }
[LogicName("主辅转换方向")]
[ReferenceTo(typeof(SaleGoods), "UnitConvertDirection")]
[Join("Goods_ID", "ID")]
public NamedValue<>? Goods_UnitConvertDirection { get; set; }
[LogicName("主辅换算主单位比例")]
[ReferenceTo(typeof(SaleGoods), "MainUnitRatio")]
[Join("Goods_ID", "ID")]
public Money<decimal>? Goods_MainUnitRatio { get; set; }
[LogicName("主辅换算辅单位比例")]
[ReferenceTo(typeof(SaleGoods), "SecondUnitRatio")]
[Join("Goods_ID", "ID")]
public Money<decimal>? Goods_SecondUnitRatio { get; set; }
}
[Serializable]
public class OutputConfigure_DetailCollection : DmoCollection<OutputConfigure_Detail> {
}
}

+ 32
- 1
WebFolder/Config/Plugins/B3_DongFangWanQi.Plugin View File

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8" ?> <?xml version="1.0" encoding="utf-8" ?>
<Plugin xmlns="http://www.TSingSoft.com/Schemas/WPF.xsd" name="B3_DongFangWanQi" displayName="东方万旗" version="1.0" appVersion="$appVersion" schemaVersion="1.0" pluginClass="B3_DongFangWanQi.Web.PluginClass, B3_DongFangWanQi.Web"> <Plugin xmlns="http://www.TSingSoft.com/Schemas/WPF.xsd" name="B3_DongFangWanQi" displayName="东方万旗" version="1.0" appVersion="$appVersion" schemaVersion="1.0" pluginClass="B3_DongFangWanQi.Web.PluginClass, B3_DongFangWanQi.Web">
<Requires> <Requires>
<Plugin name="B3Sale" version="$appVersion" />
</Requires> </Requires>
<Assemblies> <Assemblies>
<File name="B3_DongFangWanQi.dll" type="bo bl"/> <File name="B3_DongFangWanQi.dll" type="bo bl"/>
@ -14,10 +15,40 @@
</Profiles> </Profiles>
<Security> <Security>
<FunctionGroup name="产值配置" roleSchemas="employee">
<Function index="0" name="访问"/>
<Function index="1" name="新建"/>
<Function index="2" name="编辑"/>
<Function index="3" name="删除"/>
<Function index="4" name="停用"/>
<Function index="5" name="启用"/>
<Function index="6" name="锁定"/>
<Function index="7" name="解锁"/>
</FunctionGroup>
<FunctionGroup name="产值预测" roleSchemas="employee">
<Function index="0" name="访问" />
<Function index="1" name="新建" />
<Function index="2" name="编辑" />
<Function index="3" name="删除" />
<Function index="4" name="审核" />
<Function index="5" name="撤销" />
<Function index="6" name="锁定" />
<Function index="7" name="解锁" />
<Function index="8" name="管理" />
<Function index="9" name="作废" />
</FunctionGroup>
<FunctionGroup name="订单调整" roleSchemas="employee">
<Function index="0" name="访问" />
<Function index="2" name="编辑" />
</FunctionGroup>
</Security> </Security>
<Menus> <Menus>
<Menu id="0001" name="/B3东方万旗/产值配置" roles="B3_DongFangWanQi.产值配置.访问" url="B3_DongFangWanQi/BaseInfos/OutputConfigureList.aspx"/>
<Menu id="0002" name="/B3东方万旗/产值预测" roles="B3_DongFangWanQi.产值预测.访问" url="B3_DongFangWanQi/Bills/OutputForecastList.aspx"/>
<Menu id="0003" name="/B3东方万旗/订单调整" roles="B3_DongFangWanQi.订单调整.访问" url="B3_DongFangWanQi/Tools/SaleOederUpdateList.aspx"/>
</Menus> </Menus>
</Plugin> </Plugin>

Loading…
Cancel
Save