Browse Source

Merge branch 'master' of 192.168.1.5:BWPB3/B3QingDaoWanFu

# Conflicts:
#	B3QingDaoWanFu.Web/B3QingDaoWanFu.Web.csproj
#	B3QingDaoWanFu/B3QingDaoWanFu.csproj
#	WebFolder/config/plugins/B3QingDaoWanFu.plugin
master
wushukun 7 years ago
parent
commit
d0a5c442ee
38 changed files with 2441 additions and 76 deletions
  1. +41
    -0
      B3QingDaoWanFu.Web/B3QingDaoWanFu.Web.csproj
  2. +252
    -0
      B3QingDaoWanFu.Web/ExportBaseInfoList.cs
  3. +128
    -0
      B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Bills/CostRecord_/CostRecordEdit.cs
  4. +35
    -0
      B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Bills/CostRecord_/CostRecordList.cs
  5. +58
    -0
      B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Bills/CostRecord_/CostRecordList.xml
  6. +19
    -0
      B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Bills/CostRecord_/CostRecordPrint.cs
  7. +134
    -0
      B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/ExportUI/GoodsExportToMES.cs
  8. +59
    -0
      B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/ExportUI/GoodsExportToMES.xml
  9. +6
    -0
      B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Overlays/SaleOutStoreEdit_Ext.cs
  10. +48
    -2
      B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Overlays/StatPayEdit_Ext.cs
  11. +20
    -0
      B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Overlays/StatPayList_Ext.cs
  12. +113
    -31
      B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/ComprehensiveReport.cs
  13. +66
    -5
      B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/PayInfoExport.cs
  14. +4
    -0
      B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/PayInfoExport.xml
  15. +162
    -0
      B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/StatPayAnalyse.cs
  16. +53
    -0
      B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/StatPayAnalyse.xml
  17. +21
    -6
      B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Tools/CarLoadingBySendLinePage.cs
  18. +208
    -3
      B3QingDaoWanFu.Web/Pages/TypeIOCs/CarLoadingTypeIOC.cs
  19. +3
    -0
      B3QingDaoWanFu.Web/PluginClass.cs
  20. +25
    -0
      B3QingDaoWanFu/B3QingDaoWanFu.csproj
  21. +20
    -0
      B3QingDaoWanFu/BL/Bill/CostRecordBL/CostRecordBL.cs
  22. +135
    -0
      B3QingDaoWanFu/BL/ExportBL/GoodsExportBL.cs
  23. +34
    -0
      B3QingDaoWanFu/BLActions/BLActionUtil.cs
  24. +82
    -0
      B3QingDaoWanFu/BLActions/SaleOrderBLAction.cs
  25. +39
    -0
      B3QingDaoWanFu/BLActions/SaleOutStoreBLActions.cs
  26. +56
    -0
      B3QingDaoWanFu/BO/Bill/CostRecord/CostRecord.cs
  27. +56
    -0
      B3QingDaoWanFu/BO/Bill/CostRecord/CostRecord_Detail.cs
  28. +17
    -0
      B3QingDaoWanFu/BO/SaleOutStoreBarCodeToMESLog.cs
  29. +3
    -2
      B3QingDaoWanFu/Rpc/GatheringRpc.cs
  30. +170
    -0
      B3QingDaoWanFu/Tasks/SyncSaleOutStoreInfoToMES.cs
  31. +65
    -0
      B3QingDaoWanFu/TypeIOCs/GoodsBLTypeIOC.cs
  32. +166
    -15
      B3QingDaoWanFu/TypeIOCs/SaleOutStoreBLTypeIoc.cs
  33. +67
    -8
      B3QingDaoWanFu/TypeIOCs/StatPayBLTypeIoc.cs
  34. +15
    -0
      B3QingDaoWanFu/Utils/B3QingDaoWanFuConsts.cs
  35. +14
    -0
      B3QingDaoWanFu/Utils/WanFuOnlineConfig.cs
  36. +1
    -1
      B3WanFuSaleWebService/RpcHelper/RpcHelperUtil.cs
  37. +25
    -0
      WebFolder/config/billreports/B3QingDaoWanFu/CostRecordPrint.xml
  38. +21
    -3
      WebFolder/config/plugins/B3QingDaoWanFu.plugin

+ 41
- 0
B3QingDaoWanFu.Web/B3QingDaoWanFu.Web.csproj View File

@ -41,6 +41,14 @@
<HintPath>D:\BwpB3Project\tsref\Debug\B3ButcherManage.Web.dll</HintPath> <HintPath>D:\BwpB3Project\tsref\Debug\B3ButcherManage.Web.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="B3ExportBase, Version=1.0.0.0, Culture=neutral, PublicKeyToken=3a973053c7ebf11c, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\tsref\Debug\B3ExportBase.dll</HintPath>
</Reference>
<Reference Include="B3ExportBase.Web, Version=1.0.0.0, Culture=neutral, PublicKeyToken=3a973053c7ebf11c, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\tsref\Debug\B3ExportBase.Web.dll</HintPath>
</Reference>
<Reference Include="B3Frameworks, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a04fa581c0f74d43, processorArchitecture=MSIL"> <Reference Include="B3Frameworks, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a04fa581c0f74d43, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>D:\BwpB3Project\tsref\Debug\B3Frameworks.dll</HintPath> <HintPath>D:\BwpB3Project\tsref\Debug\B3Frameworks.dll</HintPath>
@ -69,10 +77,12 @@
<Reference Include="B3Sale, Version=1.0.0.0, Culture=neutral, PublicKeyToken=3a973053c7ebf11c, processorArchitecture=MSIL"> <Reference Include="B3Sale, Version=1.0.0.0, Culture=neutral, PublicKeyToken=3a973053c7ebf11c, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\tsref\Debug\B3Sale.dll</HintPath> <HintPath>..\..\..\tsref\Debug\B3Sale.dll</HintPath>
<Private>False</Private>
</Reference> </Reference>
<Reference Include="B3Sale.Web, Version=1.0.0.0, Culture=neutral, PublicKeyToken=3a973053c7ebf11c, processorArchitecture=MSIL"> <Reference Include="B3Sale.Web, Version=1.0.0.0, Culture=neutral, PublicKeyToken=3a973053c7ebf11c, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\tsref\Debug\B3Sale.Web.dll</HintPath> <HintPath>..\..\..\tsref\Debug\B3Sale.Web.dll</HintPath>
<Private>False</Private>
</Reference> </Reference>
<Reference Include="B3UnitedInfos, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a04fa581c0f74d43, processorArchitecture=MSIL"> <Reference Include="B3UnitedInfos, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a04fa581c0f74d43, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
@ -141,9 +151,24 @@
<Compile Include="DFGridReportPage.cs"> <Compile Include="DFGridReportPage.cs">
<SubType>ASPXCodeBehind</SubType> <SubType>ASPXCodeBehind</SubType>
</Compile> </Compile>
<Compile Include="ExportBaseInfoList.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Pages\B3QingDaoWanFu\Bills\CostRecord_\CostRecordEdit.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Pages\B3QingDaoWanFu\Bills\CostRecord_\CostRecordList.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Pages\B3QingDaoWanFu\Bills\CostRecord_\CostRecordPrint.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Pages\B3QingDaoWanFu\CustomerDeviceSet_\CustomerDeviceSetEdit.cs"> <Compile Include="Pages\B3QingDaoWanFu\CustomerDeviceSet_\CustomerDeviceSetEdit.cs">
<SubType>ASPXCodeBehind</SubType> <SubType>ASPXCodeBehind</SubType>
</Compile> </Compile>
<Compile Include="Pages\B3QingDaoWanFu\ExportUI\GoodsExportToMES.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Pages\B3QingDaoWanFu\Overlays\SaleOutStoreEdit_Ext.cs"> <Compile Include="Pages\B3QingDaoWanFu\Overlays\SaleOutStoreEdit_Ext.cs">
<SubType>ASPXCodeBehind</SubType> <SubType>ASPXCodeBehind</SubType>
</Compile> </Compile>
@ -153,6 +178,9 @@
<Compile Include="Pages\B3QingDaoWanFu\Overlays\StatPayEdit_Ext.cs"> <Compile Include="Pages\B3QingDaoWanFu\Overlays\StatPayEdit_Ext.cs">
<SubType>ASPXCodeBehind</SubType> <SubType>ASPXCodeBehind</SubType>
</Compile> </Compile>
<Compile Include="Pages\B3QingDaoWanFu\Overlays\StatPayList_Ext.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Pages\B3QingDaoWanFu\Reports\ButcherPigInfo.cs"> <Compile Include="Pages\B3QingDaoWanFu\Reports\ButcherPigInfo.cs">
<SubType>ASPXCodeBehind</SubType> <SubType>ASPXCodeBehind</SubType>
</Compile> </Compile>
@ -170,6 +198,9 @@
<Compile Include="Pages\B3QingDaoWanFu\SaleOutStore_\SaleOutStoreSimpleAnaysePrint.cs"> <Compile Include="Pages\B3QingDaoWanFu\SaleOutStore_\SaleOutStoreSimpleAnaysePrint.cs">
<SubType>ASPXCodeBehind</SubType> <SubType>ASPXCodeBehind</SubType>
</Compile> </Compile>
<Compile Include="Pages\B3QingDaoWanFu\Reports\StatPayAnalyse.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Pages\B3QingDaoWanFu\Tools\CarLoadingBySendLinePage.cs"> <Compile Include="Pages\B3QingDaoWanFu\Tools\CarLoadingBySendLinePage.cs">
<SubType>ASPXCodeBehind</SubType> <SubType>ASPXCodeBehind</SubType>
</Compile> </Compile>
@ -184,6 +215,7 @@
<ProjectReference Include="..\B3QingDaoWanFu\B3QingDaoWanFu.csproj"> <ProjectReference Include="..\B3QingDaoWanFu\B3QingDaoWanFu.csproj">
<Project>{b47ce3c3-c269-48b8-84a7-32360e5a9e8e}</Project> <Project>{b47ce3c3-c269-48b8-84a7-32360e5a9e8e}</Project>
<Name>B3QingDaoWanFu</Name> <Name>B3QingDaoWanFu</Name>
<Private>False</Private>
</ProjectReference> </ProjectReference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
@ -197,6 +229,15 @@
<ItemGroup> <ItemGroup>
<EmbeddedResource Include="Pages\B3QingDaoWanFu\Reports\PayInfoExport.xml" /> <EmbeddedResource Include="Pages\B3QingDaoWanFu\Reports\PayInfoExport.xml" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Pages\B3QingDaoWanFu\Bills\CostRecord_\CostRecordList.xml" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Pages\B3QingDaoWanFu\Reports\StatPayAnalyse.xml" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Pages\B3QingDaoWanFu\ExportUI\GoodsExportToMES.xml" />
</ItemGroup>
<ItemGroup> <ItemGroup>
<EmbeddedResource Include="Pages\B3QingDaoWanFu\SaleOutStore_\SaleOutStoreSimpleAnayse.xml" /> <EmbeddedResource Include="Pages\B3QingDaoWanFu\SaleOutStore_\SaleOutStoreSimpleAnayse.xml" />
</ItemGroup> </ItemGroup>


+ 252
- 0
B3QingDaoWanFu.Web/ExportBaseInfoList.cs View File

@ -0,0 +1,252 @@
using BWP.B3ExportBase;
using BWP.B3ExportBase.BL;
using BWP.B3Frameworks;
using BWP.B3Frameworks.Utils;
using BWP.Web.Layout;
using BWP.Web.Utils;
using Forks.EnterpriseServices.BusinessInterfaces;
using Forks.EnterpriseServices.DataForm;
using Forks.EnterpriseServices.DomainObjects2;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security;
using System.Text;
using System.Web.UI;
using System.Web.UI.WebControls;
using TSingSoft.WebControls2;
using TSingSoft.WebPluginFramework;
using Forks.Utils.Collections;
namespace BWP.Web
{
public abstract class ExportBaseInfoList<TDmo, TBL> : ListPageBase, IExportUIBase
where TBL : IExportBaseBL
{
protected override bool EnableExcelExport
{
get
{
return false;
}
}
protected readonly static DFInfo mDFInfo = DFInfo.Get(typeof(TDmo));
public virtual Control CreateUI()
{
return null;
}
protected TBL BL = BIFactory.Create<TBL>();
private ChoiceBox _chb;
private short? _billTypeID;
protected short BillTypeID
{
get
{
if (_billTypeID == null)
{
_billTypeID = DmoTypeIDAttribute.GetID(typeof(TDmo));
}
return _billTypeID.Value;
}
}
private short? _methodID;
public short MethodID
{
get
{
if (_methodID == null)
_methodID = BL.GetMethodID();
return _methodID.Value;
}
}
public abstract string Url { get; }
protected virtual string AccessRoleName
{
get { return ""; }
}
protected override void InitForm(System.Web.UI.HtmlControls.HtmlForm form)
{
var hPanel = new HLayoutPanel();
hPanel.Add(new SimpleLabel("导出方法"));
form.Controls.Add(hPanel);
_chb = hPanel.Add(new ChoiceBox(B3ExportBaseConsts.DataSources.));
_chb.Width = 150;
_chb.AutoPostBack = true;
_chb.EnableInputArgument = true;
_chb.SelectedValueChanged += delegate
{
var ui = B3ExportBaseUtil.GetExportUI(short.Parse(_chb.Value));
if (ui == null)
return;
if (!string.IsNullOrEmpty(ui.Url))
{
AspUtil.Redirect(ui.Url);
}
else
{
AspUtil.Redirect("~/B3ExportBase/ExportPage.aspx?methodID=" + _chb.Value);
}
};
if (BLContext.User.IsInRole("B3ExportBase.接口管理.配置"))
{
var button = new TSButton("配置") { UseSubmitBehavior = false };
button.OnClientClick = string.Format("preventEventDefault(event);OpenUrlInTopTab('B3ExportBase/ExportConfigEdit.aspx?methodID={0}','{1}配置');", MethodID, Caption);
hPanel.Add(button);
}
base.InitForm(form);
}
static readonly bool IsWithCode = TypeUtil.IsWithCodeBaseInfo(typeof(TDmo));
protected Control CreateDefaultBaseInfoQueryControls(Action<LayoutManager, AutoLayoutConfig> beforeCreateLayout = null)
{
var layoutManager = new LayoutManager("", mDFInfo, mQueryContainer);
var config = new AutoLayoutConfig() { Cols = 8, DefaultLabelWidth = 4 };
config.Add("ID");
config.Add("Name");
if (IsWithCode)
{
config.Add("Code");
}
config.Add("Stopped");
config.Add("IsLocked");
config.Add("Remark");
layoutManager.Config = config;
if (beforeCreateLayout != null)
{
beforeCreateLayout(layoutManager, config);
}
var section = mPageLayoutManager.AddSection(B3FrameworksConsts.PageLayouts.QueryConditions, B3FrameworksConsts.PageLayouts.QueryConditions_DisplayName);
section.ApplyLayout(layoutManager, config, mPageLayoutManager, mDFInfo);
return layoutManager.CreateLayout();
}
protected override void AddGrid(Control parent)
{
var hbox = new HLayoutPanel();
hbox.CssClass += " LeftPaddingWrapper";
parent.Controls.Add(hbox);
AddExportControl(hbox);
base.AddGrid(parent);
}
protected virtual void AddExportControl(HLayoutPanel hbox)
{
var btnExport = hbox.Add(new TSButton("导出"));
btnExport.Click += (sender, obj) => Export();
hbox.Add(new LiteralControl("&nbsp;&nbsp;"));
}
protected virtual void BeforeUnExport(List<long> ids)
{
}
private void Export()
{
var idList = mBrowseGrid.GetSelectedItems().Select(item => (long)item["ID"]).ToList();
var message = DoExport(idList);
AspUtil.Alert(this, message);
mBrowseGrid.DataBind();
}
protected abstract string DoExport(List<long> idList);
protected override void InitBrowseGrid(DFBrowseGrid grid)
{
base.InitBrowseGrid(grid);
var section = mPageLayoutManager.AddSection(B3FrameworksConsts.PageLayouts.QueryResult, B3FrameworksConsts.PageLayouts.QueryResult_DisplayName);
section.ApplyLayout(grid, mPageLayoutManager, mDFInfo);
grid.MultiSelectionEnabled = true;
}
protected override DQueryDom GetQueryDom()
{
var query = base.GetQueryDom();
OrganizationUtil.AddOrganizationLimit(query, typeof(TDmo));
if (query.OrderBy.Expressions.Count == 0)
{
query.OrderBy.Expressions.Add(DQOrderByExpression.Create("ID", true));
}
return query;
}
protected override void OnLoad(EventArgs e)
{
if (!IsPostBack && MethodID > 0)
{
_chb.Value = MethodID.ToString();
_chb.DisplayValue = Caption;
}
base.OnLoad(e);
}
protected override bool NotWaitingUserInput()
{
return true;
}
protected override void OnInit(EventArgs e)
{
if (!string.IsNullOrEmpty(AccessRoleName) && !User.IsInRole(AccessRoleName))
{
throw new SecurityException("您无权访问此页面");
}
base.OnInit(e);
}
protected override void CreateDFBrowseGridColumns(DFBrowseGrid grid)
{
if (string.IsNullOrEmpty(EditUrl))
{
AddDFBrowseGridColumn(grid, "ID");
}
else
{
grid.Columns.EAdd(new DFBrowseGridCustomExtColumn((row, cell, dataSourceIndex) =>
{
var id = row["ID"];
var linkButton = new LinkButton();
linkButton.OnClientClick = string.Format("OpenUrlInTopTab('{0}?ID={1}');return false;", EditUrl, id);
linkButton.Text = string.Format("No.{0}", id);
cell.Controls.Add(linkButton);
cell.Align = "center";
})).HeaderText = "单号";
}
if (IsWithCode)
AddDFBrowseGridColumn(grid, "Code");
AddDFBrowseGridColumn(grid, "Name");
AddDFBrowseGridColumn(grid, "Stopped");
AddDFBrowseGridColumn(grid, "IsLocked");
AddDFBrowseGridColumn(grid, "Remark");
}
protected virtual string EditUrl
{
get
{
return "";
}
}
protected virtual string LogicName
{
get { return mDFInfo.LogicName; }
}
//conString = InnerBLUtil.GetDmoPropertyByID<string>(context.Session, typeof(ExtSystem), "Address", extSystemID);
}
}

+ 128
- 0
B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Bills/CostRecord_/CostRecordEdit.cs View File

@ -0,0 +1,128 @@
using BWP.B3ButcherManage.BO;
using BWP.B3ButcherManage.Utils;
using BWP.B3Frameworks.BO.NamedValueTemplate;
using BWP.B3Frameworks.Utils;
using BWP.B3QingDaoWanFu.BL;
using BWP.B3QingDaoWanFu.BO;
using BWP.Web.Layout;
using BWP.Web.WebControls;
using Forks.EnterpriseServices.DataForm;
using Forks.EnterpriseServices.DomainObjects2;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.UI.WebControls;
using TSingSoft.WebControls2;
using TSingSoft.WebPluginFramework;
namespace BWP.Web.Pages.B3QingDaoWanFu.Bills.CostRecord_
{
class CostRecordEdit : DomainBillEditPage<CostRecord, ICostRecordBL>
{
DFEditGrid _detailGrid;
protected override void BuildBasePropertiesEditor(TitlePanel titlePanel, CustomPageLayout.PageLayoutSection pageLayoutSection)
{
var layoutManager = new LayoutManager("", mDFInfo, mDFContainer);
var config = new AutoLayoutConfig();
config.Add("AccountingUnit_ID");
config.Add("Date");
config.Add("PurchaseType_ID");
layoutManager.Config = config;
pageLayoutSection.ApplyLayout(layoutManager, config, mPageLayoutManager, mDFInfo);
titlePanel.Controls.Add(layoutManager.CreateLayout());
}
protected override void BuildBody(System.Web.UI.Control parent)
{
base.BuildBody(parent);
AddDetail(parent.EAdd(new TitlePanel("单据明细", "单据明细")));
}
private void AddDetail(TitlePanel titlePanel)
{
if (CanSave)
titlePanel.EAdd(new TSButton("载入", LoadDetail));
var editor = new DFCollectionEditor<CostRecord_Detail>(() => Dmo.Details);
editor.AllowDeletionFunc = () => CanSave;
editor.CanDeleteFunc = detail => CanSave;
editor.IsEditableFunc = (field, detail) => CanSave;
_detailGrid = titlePanel.EAdd(new DFEditGrid(editor) { Width = Unit.Percentage(100) });
_detailGrid.Columns.Add(new DFEditGridColumn<DFValueLabel>("WeightBill_ID"));
_detailGrid.Columns.Add(new DFEditGridColumn<DFValueLabel>("Supplier_Name"));
_detailGrid.Columns.Add(new DFEditGridColumn<DFValueLabel>("Employee_Name"));
_detailGrid.Columns.Add(new DFEditGridColumn<DFValueLabel>("Car_Name"));
_detailGrid.Columns.Add(new DFEditGridColumn<DFValueLabel>("BuyNum"));
_detailGrid.Columns.Add(new DFEditGridColumn("Mileage"));
_detailGrid.Columns.Add(new DFEditGridColumn("TransferFee"));
_detailGrid.Columns.Add(new DFEditGridColumn("JingJiFee"));
var section = mPageLayoutManager.AddSection("DetaiColumns", "明细列");
titlePanel.SetPageLayoutSetting(mPageLayoutManager, section.Name);
section.ApplyLayout(_detailGrid, mPageLayoutManager, DFInfo.Get(typeof(CostRecord_Detail)));
}
private void LoadDetail(object sender, EventArgs e)
{
GetFromUI();
if (Dmo.PurchaseType_ID == null)
throw new Exception("请选择收购类型");
Dmo.Details.Clear();
var query = new DQueryDom(new JoinAlias("_weighBill", typeof(WeighBill)));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("PurchaseType_ID", Dmo.PurchaseType_ID), DQCondition.EQ(DQExpression.Snippet("CAST([_weighBill].[WeighTime] AS DATE)"), DQExpression.Value(Dmo.Date)), DQCondition.GreaterThanOrEqual("BillState", .)));
query.Columns.Add(DQSelectColumn.Field("ID"));
query.Columns.Add(DQSelectColumn.Field("Supplier_Name"));
query.Columns.Add(DQSelectColumn.Field("Employee_Name"));
query.Columns.Add(DQSelectColumn.Field("Car_Name"));
query.Columns.Add(DQSelectColumn.Field("BuyNum"));
query.OrderBy.Expressions.Add(DQOrderByExpression.Create("WeighTime"));
using (var session = Forks.EnterpriseServices.DomainObjects2.Dmo.NewSession())
{
using (var reader = session.ExecuteReader(query))
{
while (reader.Read())
{
var detail = new CostRecord_Detail()
{
WeightBill_ID = (long)reader[0],
Supplier_Name = (string)reader[1],
Employee_Name = (string)reader[2],
Car_Name = (string)reader[3],
BuyNum = (int?)reader[4]
};
Dmo.Details.Add(detail);
}
}
}
_detailGrid.DataBind();
}
public override void AppToUI()
{
base.AppToUI();
_detailGrid.DataBind();
}
public override void GetFromUI()
{
base.GetFromUI();
_detailGrid.GetFromUI();
}
protected override void InitNewDmo(CostRecord dmo)
{
base.InitNewDmo(dmo);
var profile = DomainUserProfileUtil.Load<B3ButcherManageUserProfile>();
if (profile.AccountingUnit_ID.HasValue)
{
dmo.AccountingUnit_ID = profile.AccountingUnit_ID;
dmo.AccountingUnit_Name = profile.AccountingUnit_Name;
}
}
}
}

+ 35
- 0
B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Bills/CostRecord_/CostRecordList.cs View File

@ -0,0 +1,35 @@
using BWP.B3QingDaoWanFu.BL;
using BWP.B3QingDaoWanFu.BO;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TSingSoft.WebControls2;
namespace BWP.Web.Pages.B3QingDaoWanFu.Bills.CostRecord_
{
class CostRecordList : DomainBillListPage<CostRecord, ICostRecordBL>
{
protected override void AddQueryControls(VLayoutPanel vPanel)
{
vPanel.Add(CreateDefaultBillQueryControls((panel, config) =>
{
config.Add("Date");
config.Add("AccountingUnit_ID");
config.Add("PurchaseType_ID");
config.Remvoe("Remark");
}));
}
protected override void AddDFBrowseGridColumn(DFBrowseGrid grid, string field)
{
base.AddDFBrowseGridColumn(grid, field);
if (field == "BillState")
{
AddDFBrowseGridColumn(grid, "AccountingUnit_Name");
AddDFBrowseGridColumn(grid, "Date");
AddDFBrowseGridColumn(grid, "PurchaseType_Name");
}
}
}
}

+ 58
- 0
B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Bills/CostRecord_/CostRecordList.xml View File

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="utf-8" ?>
<Select xmlns="urn:XDQuery">
<Columns>
<Field name="ID"/>
</Columns>
<From>
<DmoClass class="BWP.B3QingDaoWanFu.BO.CostRecord, B3QingDaoWanFu"/>
</From>
<Where>
<And>
<EQ>
<Field name="ID"/>
<QBE paramName="ID"/>
</EQ>
<EQ>
<Field name="AccountingUnit_ID"/>
<QBE paramName="AccountingUnit_ID"/>
</EQ>
<EQ>
<Field name="PurchaseType_ID"/>
<QBE paramName="PurchaseType_ID"/>
</EQ>
<EQ>
<Field name="IsLocked"/>
<QBE paramName="IsLocked"/>
</EQ>
<Contains>
<Field name="CreateUser_Name"/>
<QBE paramName="CreateUser_Name"/>
</Contains>
<Contains>
<Field name="CheckUser_Name"/>
<QBE paramName="CheckUser_Name"/>
</Contains>
<GreaterThanOrEqual>
<Field name="CreateTime"/>
<QBE paramName="MinCreateTime" />
</GreaterThanOrEqual>
<LessThanOrEqual>
<Field name="CreateTime"/>
<QBE paramName="MaxCreateTime"/>
</LessThanOrEqual>
<GreaterThanOrEqual>
<Field name="Date"/>
<QBE paramName="MinDate" />
</GreaterThanOrEqual>
<LessThanOrEqual>
<Field name="Date"/>
<QBE paramName="MaxDate"/>
</LessThanOrEqual>
<EQ>
<Field name="BillState"/>
<QBE paramName ="BillState"/>
</EQ>
</And>
</Where>
</Select>

+ 19
- 0
B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Bills/CostRecord_/CostRecordPrint.cs View File

@ -0,0 +1,19 @@
using BWP.B3QingDaoWanFu.BL;
using BWP.B3QingDaoWanFu.BO;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace BWP.Web.Pages.B3QingDaoWanFu.Bills.CostRecord_
{
class CostRecordPrint : DomainTemplatePrintPage<CostRecord, ICostRecordBL>
{
protected override void AddParameters(IDictionary<string, object> dic)
{
dic.Add("$ID", Dmo.ID);
dic.Add("$Details", Dmo.Details);
dic.Add("$DetailType", typeof(CostRecord_Detail));
}
}
}

+ 134
- 0
B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/ExportUI/GoodsExportToMES.cs View File

@ -0,0 +1,134 @@
using BWP.B3ExportBase;
using BWP.B3ExportBase.Utils;
using BWP.B3Frameworks;
using BWP.B3Frameworks.Utils;
using BWP.B3QingDaoWanFu.BL;
using BWP.B3UnitedInfos;
using BWP.B3UnitedInfos.BO;
using BWP.Web.Layout;
using BWP.Web.Pages.B3ExportBase;
using BWP.Web.Utils;
using Forks.EnterpriseServices.BusinessInterfaces;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
using Forks.EnterpriseServices.SqlDoms;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.UI;
using TSingSoft.WebControls2;
using TSingSoft.WebPluginFramework;
namespace BWP.Web.Pages.B3QingDaoWanFu.ExportUI
{
// [LogicName("存货导MES")]
class GoodsExportToMES : ExportBaseInfoList<Goods, IGoodsExportBL>
{
private ChoiceBox _dfcUrl;
protected override void AddExportControl(HLayoutPanel hbox)
{
hbox.Add(new SimpleLabel("外部系统"));
_dfcUrl = hbox.Add(new ChoiceBox());
_dfcUrl.DataKind = B3ExportBaseConsts.DataSources.;
_dfcUrl.EnableInputArgument = true;
_dfcUrl.SmartOrderEnabled = false;
_dfcUrl.EnableTopItem = true;
_dfcUrl.Width = 130;
base.AddExportControl(hbox);
}
protected override string DoExport(List<long> idList)
{
if (idList.Count == 0)
{
throw new ApplicationException("请选择档案!");
}
if (_dfcUrl.IsEmpty)
{
throw new ApplicationException("请选择外部系统!");
}
BL.Export(idList, long.Parse(_dfcUrl.Value));
return BIFactory.GetLastMessage();
}
public override string Url
{
get { return "~/B3QingDaoWanFu/ExportUI/GoodsExportToMES.aspx"; }
}
protected override string Caption
{
get { return "存货导MES存货"; }
}
protected override string EditUrl
{
get
{
return "B3UnitedInfos/BaseInfos/Goods_/GoodsEdit.aspx";
}
}
protected override DQueryDom GetQueryDom()
{
var query = base.GetQueryDom();
var goodsProperty = query.EJoin<GoodsProperty>();
var catalog = query.EJoin<GoodsPropertyCatalog>("GoodsPropertyCatalog_ID", JoinType.Left, goodsProperty);
query.Columns.Add(DQSelectColumn.Create(DQExpression.Field(goodsProperty, "Name"), "存货属性"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.Field(catalog, "Name"), "存货属性分类"));
TreeUtil.AddTreeCondition<GoodsPropertyCatalog>(query, mQueryContainer, "存货属性分类", catalog);
DomainUtil.AddDomainPermissionLimit(query, typeof(GoodsProperty), goodsProperty);
return query;
}
protected override void AddQueryControls(VLayoutPanel vPanel)
{
vPanel.Add(CreateDefaultBaseInfoQueryControls((layoutManager, config) =>
{
layoutManager.Add("存货属性分类", new SimpleLabel("属性分类"), QueryCreator.DFChoiceBox(mDFInfo.Fields["ID"], B3UnitedInfosConsts.DataSources.));
config.AddAfter("GoodsProperty_ID", "ID");
config.AddBefore("存货属性分类", "GoodsProperty_ID");
config.Add("ProductLine_ID");
config.Add("Brand");
config.Add("Origin");
}));
}
protected override void AddDFBrowseGridColumn(DFBrowseGrid grid, string field)
{
base.AddDFBrowseGridColumn(grid, field);
if (field == "Name")
{
AddDFBrowseGridColumn(grid, "Brand");
AddDFBrowseGridColumn(grid, "Origin");
AddDFBrowseGridColumn(grid, "存货属性");
AddDFBrowseGridColumn(grid, "存货属性分类");
AddDFBrowseGridColumn(grid, "ProductLine_Name");
AddDFBrowseGridColumn(grid, "MainUnit");
AddDFBrowseGridColumn(grid, "SecondUnit");
AddDFBrowseGridColumn(grid, "Spec");
}
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
if (!IsPostBack)
{
var tuple = ExportConfigUtil.LoadDefaultExtSystems(MethodID);
if (tuple != null)
{
_dfcUrl.Value = tuple.Item1.ToString();
_dfcUrl.DisplayValue = tuple.Item2;
}
}
}
}
}

+ 59
- 0
B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/ExportUI/GoodsExportToMES.xml View File

@ -0,0 +1,59 @@
<?xml version="1.0" encoding="utf-8" ?>
<Select xmlns="urn:XDQuery">
<Columns>
<Field name="ID"/>
</Columns>
<From>
<DmoClass class="BWP.B3UnitedInfos.BO.Goods, B3UnitedInfos"/>
</From>
<Where>
<And>
<EQ>
<Field name="ID"/>
<QBE paramName="ID"/>
</EQ>
<EQ>
<Field name="GoodsProperty_ID"/>
<QBE paramName="GoodsProperty_ID"/>
</EQ>
<EQ>
<Field name="ProductLine_ID"/>
<QBE paramName="ProductLine_ID"/>
</EQ>
<Or>
<Contains>
<Field name="Name"/>
<QBE paramName="Name"/>
</Contains>
<Contains>
<Field name="Spell"/>
<QBE paramName="Name"/>
</Contains>
</Or>
<Contains>
<Field name="Code"/>
<QBE paramName="Code"/>
</Contains>
<EQ>
<Field name="Stopped"/>
<QBE paramName="Stopped"/>
</EQ>
<EQ>
<Field name="IsLocked"/>
<QBE paramName="IsLocked"/>
</EQ>
<Contains>
<Field name="Brand"/>
<QBE paramName="Brand"/>
</Contains>
<Contains>
<Field name="Origin"/>
<QBE paramName="Origin"/>
</Contains>
<Contains>
<Field name="Remark"/>
<QBE paramName="Remark"/>
</Contains>
</And>
</Where>
</Select>

+ 6
- 0
B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Overlays/SaleOutStoreEdit_Ext.cs View File

@ -2,6 +2,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using BWP.Web.Layout;
using BWP.Web.Pages.B3Sale.Bills.SaleOutStore_; using BWP.Web.Pages.B3Sale.Bills.SaleOutStore_;
using TSingSoft.WebControls2; using TSingSoft.WebControls2;
@ -9,6 +10,11 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Overlays
{ {
class SaleOutStoreEdit_Ext: SaleOutStoreEdit class SaleOutStoreEdit_Ext: SaleOutStoreEdit
{ {
protected override void AddEmpInfo(AutoLayoutConfig config)
{
config.Add("BalanceMoney");
}
protected override void AddCustomerDetailColumns(DFEditGrid detailGrid) protected override void AddCustomerDetailColumns(DFEditGrid detailGrid)
{ {
detailGrid.Columns.Add(new DFEditGridColumn<DFValueLabel>("FactoryPrice")); detailGrid.Columns.Add(new DFEditGridColumn<DFValueLabel>("FactoryPrice"));


+ 48
- 2
B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Overlays/StatPayEdit_Ext.cs View File

@ -1,9 +1,15 @@
using BWP.Web.Pages.B3ButcherManage.Bills.StatPay_;
using BWP.B3ButcherManage.BO;
using BWP.Web.Pages.B3ButcherManage.Bills.StatPay_;
using BWP.Web.WebControls;
using Forks.EnterpriseServices.DataForm;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks;
using System.Web.UI.WebControls;
using TSingSoft.WebControls2;
using TSingSoft.WebPluginFramework;
namespace BWP.Web.Pages.B3QingDaoWanFu.Overlays namespace BWP.Web.Pages.B3QingDaoWanFu.Overlays
{ {
@ -15,5 +21,45 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Overlays
if (tag != null) if (tag != null)
tag.Key = "WeightSumRate2"; tag.Key = "WeightSumRate2";
} }
DFEditGrid _farmerGrid;
protected override void AddFarmerDetail(System.Web.UI.Control control)
{
var panel = control.EAdd(new TitlePanel("养殖户信息", "养殖户信息"));
var editor = new DFCollectionEditor<Weigh_FarmerDetail>(() => Dmo.FarmerDetails);
editor.AllowDeletionFunc = () => false;
editor.CanDeleteFunc = detail => false;
editor.IsEditableFunc = (field, detail) => {
return CanSave && field.Name == "ExtMoney";
};
_farmerGrid = panel.EAdd(new DFEditGrid(editor) { Width = Unit.Percentage(100), ShowLineNo = true });
_farmerGrid.Columns.Add(new DFEditGridColumn("Farmer_Name"));
_farmerGrid.Columns.Add(new DFEditGridColumn("Farmer_IDCard"));
_farmerGrid.Columns.Add(new DFEditGridColumn("Farmer_BankAccount"));
_farmerGrid.Columns.Add(new DFEditGridColumn("Farmer_Address"));
_farmerGrid.Columns.Add(new DFEditGridColumn("Farmer_Tel"));
_farmerGrid.Columns.Add(new DFEditGridColumn("Number"));
_farmerGrid.Columns.Add(new DFEditGridColumn("ExeWeight"));
_farmerGrid.Columns.Add(new DFEditGridColumn("ExtMoney"));
var section4 = mPageLayoutManager.AddSection("detailColumns4", "养殖户信息");
section4.ApplyLayout(_farmerGrid, mPageLayoutManager, DFInfo.Get(typeof(Weigh_FarmerDetail)));
panel.SetPageLayoutSetting(mPageLayoutManager, section4.Name);
}
public override void GetFromUI()
{
base.GetFromUI();
_farmerGrid.GetFromUI();
}
public override void AppToUI()
{
base.AppToUI();
mDFContainer.MakeReadonly("ShackMoney");
_farmerGrid.DataBind();
}
} }
} }

+ 20
- 0
B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Overlays/StatPayList_Ext.cs View File

@ -0,0 +1,20 @@
using BWP.Web.Pages.B3ButcherManage.Bills.StatPay_;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TSingSoft.WebControls2;
namespace BWP.Web.Pages.B3QingDaoWanFu.Overlays
{
class StatPayList_Ext : StatPayList
{
protected override void InitToolBar(TSingSoft.WebControls2.HLayoutPanel toolbar)
{
base.InitToolBar(toolbar);
var button = new TSButton("养殖户分析") { UseSubmitBehavior = false };
button.OnClientClick = "preventEventDefault(event);OpenUrlInTopTab('B3QingDaoWanFu/Reports/StatPayAnalyse.aspx','养殖户分析');";
toolbar.Add(button);
}
}
}

+ 113
- 31
B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/ComprehensiveReport.cs View File

@ -25,6 +25,7 @@ using BWP.B3Frameworks;
using System.Web.UI; using System.Web.UI;
using TSingSoft.WebPluginFramework.Controls; using TSingSoft.WebPluginFramework.Controls;
using TSingSoft.WebPluginFramework.Exports; using TSingSoft.WebPluginFramework.Exports;
using BWP.B3QingDaoWanFu.BO;
namespace BWP.Web.Pages.B3QingDaoWanFu.Reports namespace BWP.Web.Pages.B3QingDaoWanFu.Reports
{ {
@ -62,7 +63,7 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports
var = (Money<>?)(objToDecimal() + objToDecimal()); var = (Money<>?)(objToDecimal() + objToDecimal());
row["皮肉重量"] = ; row["皮肉重量"] = ;
sum皮肉重量 += ( ?? 0); sum皮肉重量 += ( ?? 0);
var = objToDecimal(row["到厂毛重"]); var = objToDecimal(row["到厂毛重"]);
row["皮肉比"] = Math.Round((double)( / * 100), 2); row["皮肉比"] = Math.Round((double)( / * 100), 2);
} }
@ -74,12 +75,13 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports
table.SumRow["皮肉重量"] = sum皮肉重量; table.SumRow["皮肉重量"] = sum皮肉重量;
} }
catch { } catch { }
SetCommonDivSumTable(table, "毛重单价", "应付金额", "到厂毛重");
SetCommonDivSumTable(table, "付单价", "付金额", "到厂毛重");
SetCommonDivSumTable(table, "核算单价", "核算金额", "到厂毛重");
SetCommonDivSumTable(table, "付单价", "付金额", "到厂毛重");
SetCommonDivSumTable(table, "单头盈亏", "盈亏", "收购头数"); SetCommonDivSumTable(table, "单头盈亏", "盈亏", "收购头数");
SetCommonDivSumTable(table, "均重", "到厂毛重", "收购头数"); SetCommonDivSumTable(table, "均重", "到厂毛重", "收购头数");
SetCommonDivSumTable(table, "损耗比", "损耗", "原发毛重",true);
SetCommonDivSumTable(table, "损耗比", "损耗", "原发毛重", true);
SetCommonDivSumTable(table, "皮肉比", "皮肉重量", "到厂毛重", true); SetCommonDivSumTable(table, "皮肉比", "皮肉重量", "到厂毛重", true);
SetCommonDivSumTable(table, "成本单价", "成本金额", "到厂毛重");
Set占比(table); Set占比(table);
@ -93,7 +95,36 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports
table.SumRow["死亡头数"] = n; table.SumRow["死亡头数"] = n;
} }
// Set占比(table,);
//if (_checkbox.Items.FindByText("人工费").Selected)
//{
// Money<金额> n = 0m;
// foreach (DFDataRow row in table.Rows)
// {
// n += Convert.ToDecimal(row["人工费"] ?? 0);
// }
// table.SumRow["人工费"] = n;
//}
//if (_checkbox.Items.FindByText("运费").Selected)
//{
// Money<金额> n = 0;
// foreach (DFDataRow row in table.Rows)
// {
// n += Convert.ToDecimal(row["运费"] ?? 0);
// }
// table.SumRow["运费"] = n;
//}
//if (_checkbox.Items.FindByText("里程").Selected)
//{
// decimal n = 0;
// foreach (DFDataRow row in table.Rows)
// {
// n += Convert.ToDecimal(row["里程"] ?? 0);
// }
// table.SumRow["里程"] = n;
//}
// Set占比(table,);
} }
private void Set占比(DFDataTable table) private void Set占比(DFDataTable table)
@ -115,21 +146,21 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports
var = + + + + ; var = + + + + ;
table.SumRow["剥皮|一级|占比"] =Math.Round( / *100,2);
table.SumRow["剥皮|二级|占比"] =Math.Round( / *100,2);
table.SumRow["剥皮|三级|占比"] =Math.Round( / *100,2);
table.SumRow["剥皮|四级|占比"] =Math.Round( / *100,2);
table.SumRow["剥皮|五级|占比"] =Math.Round( / *100,2);
table.SumRow["剥皮|一级|占比"] = Math.Round( / * 100, 2);
table.SumRow["剥皮|二级|占比"] = Math.Round( / * 100, 2);
table.SumRow["剥皮|三级|占比"] = Math.Round( / * 100, 2);
table.SumRow["剥皮|四级|占比"] = Math.Round( / * 100, 2);
table.SumRow["剥皮|五级|占比"] = Math.Round( / * 100, 2);
table.SumRow["烫褪|一级|占比"] =Math.Round( / *100,2);
table.SumRow["烫褪|二级|占比"] =Math.Round( / *100,2);
table.SumRow["烫褪|三级|占比"] =Math.Round( / *100,2);
table.SumRow["烫褪|四级|占比"] =Math.Round( / *100,2);
table.SumRow["烫褪|五级|占比"] =Math.Round( / *100, 2);
table.SumRow["烫褪|一级|占比"] = Math.Round( / * 100, 2);
table.SumRow["烫褪|二级|占比"] = Math.Round( / * 100, 2);
table.SumRow["烫褪|三级|占比"] = Math.Round( / * 100, 2);
table.SumRow["烫褪|四级|占比"] = Math.Round( / * 100, 2);
table.SumRow["烫褪|五级|占比"] = Math.Round( / * 100, 2);
var = + + + ; var = + + + ;
var = + ; var = + ;
table.SumRow["一二级比"] =Math.Round( / * 100, 2);
table.SumRow["一二级比"] = Math.Round( / * 100, 2);
} }
@ -211,7 +242,9 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports
_checkbox.Items.Add(new ListItem("过磅单号", "Weigh_ID")); _checkbox.Items.Add(new ListItem("过磅单号", "Weigh_ID"));
_checkbox.Items.Add(new ListItem("结算单号", "ID")); _checkbox.Items.Add(new ListItem("结算单号", "ID"));
_checkbox.Items.Add(new ListItem("业务员", "Employee_Name")); _checkbox.Items.Add(new ListItem("业务员", "Employee_Name"));
_checkbox.Items.Add(new ListItem("里程", "Mileage"));
_checkbox.Items.Add(new ListItem("运费", "TransferFee"));
_checkbox.Items.Add(new ListItem("人工费", "JingJiFee"));
_checkbox.Items.Add(new ListItem("收购头数", "RealNumber")); _checkbox.Items.Add(new ListItem("收购头数", "RealNumber"));
_checkbox.Items.Add(new ListItem("死亡头数", "DeathNumber")); _checkbox.Items.Add(new ListItem("死亡头数", "DeathNumber"));
@ -237,10 +270,12 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports
_checkbox.Items.Add(new ListItem("宰后扣款", "宰后扣款")); _checkbox.Items.Add(new ListItem("宰后扣款", "宰后扣款"));
_checkbox.Items.Add(new ListItem("死猪扣款", "DeadPigRewardMoney")); _checkbox.Items.Add(new ListItem("死猪扣款", "DeadPigRewardMoney"));
_checkbox.Items.Add(new ListItem("实付金额", "ActualMoney"));
_checkbox.Items.Add(new ListItem("应付金额", "Money"));
_checkbox.Items.Add(new ListItem("实付单价", "ActualPrice"));
_checkbox.Items.Add(new ListItem("毛重单价", "RawPrice"));
_checkbox.Items.Add(new ListItem("付款金额", "ActualMoney"));
_checkbox.Items.Add(new ListItem("核算金额", "Money"));
_checkbox.Items.Add(new ListItem("成本金额", "CostMoney"));
_checkbox.Items.Add(new ListItem("付款单价", "ActualPrice"));
_checkbox.Items.Add(new ListItem("核算单价", "RawPrice"));
_checkbox.Items.Add(new ListItem("成本单价", "CostPrice"));
_checkbox.Items.Add(new ListItem("盈亏", "盈亏")); _checkbox.Items.Add(new ListItem("盈亏", "盈亏"));
_checkbox.Items.Add(new ListItem("单头盈亏", "单头盈亏")); _checkbox.Items.Add(new ListItem("单头盈亏", "单头盈亏"));
@ -280,8 +315,8 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports
{ {
return new QuerySettings(SelectRange.All, mDFGrid.SortField, mDFGrid.SortDirection); return new QuerySettings(SelectRange.All, mDFGrid.SortField, mDFGrid.SortDirection);
}; };
queryPanel.ButtonsPanel.EAdd(new TSButton("导出到Excel", (sender, args) => exporter.Export(excelExporter)));
queryPanel.ButtonsPanel.EAdd(new TSButton("导出到Excel", (sender, args) => exporter.Export(excelExporter)));
queryPanel.ButtonsPanel.EAdd(exporter); queryPanel.ButtonsPanel.EAdd(exporter);
} }
@ -323,6 +358,10 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports
tempUnionDom.Register(query); tempUnionDom.Register(query);
var unionAlias = new JoinAlias("tempUnionDom", typeof(tempUnionDom)); var unionAlias = new JoinAlias("tempUnionDom", typeof(tempUnionDom));
query.From.AddJoin(JoinType.Left, new DQDmoSource(unionAlias), DQCondition.EQ(bill, "ID", unionAlias, "StatPay_ID")); query.From.AddJoin(JoinType.Left, new DQDmoSource(unionAlias), DQCondition.EQ(bill, "ID", unionAlias, "StatPay_ID"));
var costRecord = new JoinAlias(typeof(CostRecordTemp));
CostRecordTemp.Register(query);
query.From.AddJoin(JoinType.Left, new DQDmoSource(costRecord), DQCondition.And(DQCondition.EQ(unionAlias, "UnionType", 1), DQCondition.EQ(bill, "Weigh_ID", costRecord, "WeightBill_ID")));
query.GroupBy.Expressions.Add(DQExpression.Field(bill, "Date")); query.GroupBy.Expressions.Add(DQExpression.Field(bill, "Date"));
@ -330,8 +369,8 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports
var = DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 1), DQExpression.Field(unionAlias, "RealWeight"))); var = DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 1), DQExpression.Field(unionAlias, "RealWeight")));
var = DQExpression.Subtract(, ); var = DQExpression.Subtract(, );
var = DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "TotalWeight"))); var = DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "TotalWeight")));
var = DQExpression.Subtract(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 1), DQExpression.Field(unionAlias, "Money"))), DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 1), DQExpression.Field(unionAlias, "ActualMoney"))));
var = DQExpression.Subtract(DQExpression.Subtract(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 1), DQExpression.Field(unionAlias, "Money"))), DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 1), DQExpression.Field(unionAlias, "ActualMoney")))), DQExpression.Sum(DQExpression.Add(DQExpression.IfNull(DQExpression.Field(costRecord, "TransferFee"), DQExpression.Value(0)), DQExpression.IfNull(DQExpression.Field(costRecord, "JingJiFee"), DQExpression.Value(0)))));
var costMoney = DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 1), DQExpression.Add(DQExpression.Add(DQExpression.IfNull(DQExpression.Field(costRecord, "TransferFee"), DQExpression.Value(0)), DQExpression.IfNull(DQExpression.Field(costRecord, "JingJiFee"), DQExpression.Value(0))), DQExpression.IfNull(DQExpression.Field(unionAlias, "ActualMoney"), DQExpression.Value(0)))));
var sumColumn = new List<string>(); var sumColumn = new List<string>();
foreach (ListItem field in _checkbox.Items) foreach (ListItem field in _checkbox.Items)
@ -359,7 +398,12 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports
query.Columns.Add(DQSelectColumn.Create(DQExpression.Field(field.Value), field.Text)); query.Columns.Add(DQSelectColumn.Create(DQExpression.Field(field.Value), field.Text));
query.GroupBy.Expressions.Add(DQExpression.Field(field.Value)); query.GroupBy.Expressions.Add(DQExpression.Field(field.Value));
break; break;
case "里程":
case "运费":
case "人工费":
query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Field(costRecord, field.Value)), field.Text));
sumColumn.Add(field.Text);
break;
case "均重": case "均重":
query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 1), DQExpression.Field(unionAlias, "RealWeight"))).ESafeDivide(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 1), DQExpression.Field(unionAlias, "RealNumber")))).ECastType<Money<>>(), "均重")); query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 1), DQExpression.Field(unionAlias, "RealWeight"))).ESafeDivide(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 1), DQExpression.Field(unionAlias, "RealNumber")))).ECastType<Money<>>(), "均重"));
break; break;
@ -367,16 +411,28 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports
case "收购头数": case "收购头数":
case "原发毛重": case "原发毛重":
case "到厂毛重": case "到厂毛重":
case "付金额":
case "应付金额":
case "毛重单价":
case "付单价":
case "付金额":
case "核算金额":
case "核算单价":
case "付单价":
case "宰前扣款": case "宰前扣款":
case "死猪扣款": case "死猪扣款":
query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 1), DQExpression.Field(unionAlias, field.Value))), field.Text)); query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 1), DQExpression.Field(unionAlias, field.Value))), field.Text));
sumColumn.Add(field.Text); sumColumn.Add(field.Text);
break; break;
case "成本金额":
query.Columns.Add(DQSelectColumn.Create(costMoney.ECastType<Money<>?>(), field.Text));
sumColumn.Add(field.Text);
break;
case "成本单价":
query.Columns.Add(DQSelectColumn.Create(DQExpression.Divide(costMoney, DQExpression.NullIfZero(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 1), DQExpression.Field(unionAlias, "RealWeight"))))).ECastType<Money<>?>(), field.Text));
sumColumn.Add(field.Text);
break;
case "盈亏": case "盈亏":
query.Columns.Add(DQSelectColumn.Create(, "盈亏")); query.Columns.Add(DQSelectColumn.Create(, "盈亏"));
@ -992,9 +1048,35 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports
query.Columns.Add(DQSelectColumn.Field("Weigh_ID")); query.Columns.Add(DQSelectColumn.Field("Weigh_ID"));
query.Columns.Add(DQSelectColumn.Sum("Num")); query.Columns.Add(DQSelectColumn.Sum("Num"));
query.GroupBy.Expressions.Add(DQExpression.Field("Weigh_ID")); query.GroupBy.Expressions.Add(DQExpression.Field("Weigh_ID"));
query.Where.Conditions.Add(DQCondition.EQ(setting, "AbnormalItem_Name","死亡"));
query.Where.Conditions.Add(DQCondition.EQ(setting, "AbnormalItem_Name", "死亡"));
return query; return query;
} }
} }
class CostRecordTemp
{
public long WeightBill_ID { get; set; }
public Money<>? JingJiFee { get; set; }
public Money<>? TransferFee { get; set; }
public decimal? Mileage { get; set; }
public static void Register(DQueryDom root)
{
var main = new JoinAlias(typeof(CostRecord));
var detail = new JoinAlias(typeof(CostRecord_Detail));
var query = new DQueryDom(main);
query.From.AddJoin(JoinType.Inner, new DQDmoSource(detail), DQCondition.EQ(main, "ID", detail, "CostRecord_ID"));
query.Columns.Add(DQSelectColumn.Field("WeightBill_ID", detail));
query.Columns.Add(DQSelectColumn.Sum(detail, "JingJiFee"));
query.Columns.Add(DQSelectColumn.Sum(detail, "TransferFee"));
query.Columns.Add(DQSelectColumn.Sum(detail, "Mileage"));
query.GroupBy.Expressions.Add(DQExpression.Field(detail, "WeightBill_ID"));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("BillState", .), DQCondition.EQ("Domain_ID", DomainContext.Current.ID)));
root.RegisterQueryTable(typeof(CostRecordTemp), new string[] { "WeightBill_ID", "JingJiFee", "TransferFee", "Mileage" }, query);
}
}
} }
} }

+ 66
- 5
B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/PayInfoExport.cs View File

@ -3,7 +3,9 @@ using BWP.B3ButcherManage.BO;
using BWP.B3Frameworks; using BWP.B3Frameworks;
using BWP.Web.Layout; using BWP.Web.Layout;
using BWP.Web.Utils; using BWP.Web.Utils;
using Forks.EnterpriseServices.DomainObjects2;
using Forks.EnterpriseServices.DomainObjects2.DQuery; using Forks.EnterpriseServices.DomainObjects2.DQuery;
using Forks.EnterpriseServices.SqlDoms;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
@ -24,19 +26,39 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports
get { return "付款清单导出"; } get { return "付款清单导出"; }
} }
protected override void InitQueryPanel(WebControls.QueryPanel queryPanel)
{
base.InitQueryPanel(queryPanel);
queryPanel.ConditonPanel.EAdd(CreateExportTypePanel());
}
DFBoolComboBox payTarget;
private HLayoutPanel CreateExportTypePanel()
{
var panel = new HLayoutPanel();
panel.Add(new SimpleLabel("付款对象"));
payTarget = panel.Add(new DFBoolComboBox() { TrueDisplayValue = "供应商", FalseDisplayValue = "养殖户" });
return panel;
}
DFChoiceBox purchaseType;
protected override void AddQueryControls(VLayoutPanel vPanel) protected override void AddQueryControls(VLayoutPanel vPanel)
{ {
var layout = new LayoutManager("Main", mDFInfo, mQueryContainer); var layout = new LayoutManager("Main", mDFInfo, mQueryContainer);
layout.Add("AccountingUnit_ID", new SimpleLabel("会计单位"), QueryCreator.DFChoiceBox(mDFInfo.Fields["AccountingUnit_ID"], B3FrameworksConsts.DataSources.)); layout.Add("AccountingUnit_ID", new SimpleLabel("会计单位"), QueryCreator.DFChoiceBox(mDFInfo.Fields["AccountingUnit_ID"], B3FrameworksConsts.DataSources.));
layout.Add("Supplier_ID", new SimpleLabel("供应商"), QueryCreator.DFChoiceBox(mDFInfo.Fields["Supplier_ID"], B3ButcherManageConsts.DataSources.)); layout.Add("Supplier_ID", new SimpleLabel("供应商"), QueryCreator.DFChoiceBox(mDFInfo.Fields["Supplier_ID"], B3ButcherManageConsts.DataSources.));
layout.Add("PurchaseType_ID", new SimpleLabel("收购类型"), purchaseType = QueryCreator.DFChoiceBox(mDFInfo.Fields["Supplier_ID"], B3ButcherManageConsts.DataSources.));
layout["PurchaseType_ID"].NotAutoAddToContainer = true;
layout.Add("Date", new SimpleLabel("付款日期"), QueryCreator.DateRange(mDFInfo.Fields["Date"], mQueryContainer, "MinDate", "MaxDate", DateTime.Today, null)); layout.Add("Date", new SimpleLabel("付款日期"), QueryCreator.DateRange(mDFInfo.Fields["Date"], mQueryContainer, "MinDate", "MaxDate", DateTime.Today, null));
layout["Date"].NotAutoAddToContainer = true; layout["Date"].NotAutoAddToContainer = true;
var config = new AutoLayoutConfig { Cols = 2 };
var config = new AutoLayoutConfig { Cols = 4 };
config.Add("Date"); config.Add("Date");
config.Add("ID"); config.Add("ID");
config.Add("AccountingUnit_ID"); config.Add("AccountingUnit_ID");
config.Add("Supplier_ID"); config.Add("Supplier_ID");
config.Add("PurchaseType_ID");
config.Add("BillState");
layout.Config = config; layout.Config = config;
vPanel.Add(layout.CreateLayout()); vPanel.Add(layout.CreateLayout());
@ -49,11 +71,33 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports
var t = string.Format(SubTitle, GetMinDate()); var t = string.Format(SubTitle, GetMinDate());
var query = base.GetQueryDom(); var query = base.GetQueryDom();
query.Columns.Add(DQSelectColumn.Create(DQExpression.Snippet<string>("ROW_NUMBER() OVER(order by [_bill].[ID])"), t + "序号")); query.Columns.Add(DQSelectColumn.Create(DQExpression.Snippet<string>("ROW_NUMBER() OVER(order by [_bill].[ID])"), t + "序号"));
query.Columns.Add(DQSelectColumn.Field("Supplier_BankAccount", t + "卡号"));
query.Columns.Add(DQSelectColumn.Field("Supplier_Name", t + "姓名"));
query.Columns.Add(DQSelectColumn.Field("Money", t + "金额"));
SumColumnNames.Add("Money");
if (!payTarget.Value.Value)
{
var root = query.From.RootSource.Alias;
var detail = new JoinAlias(typeof(Pay_Detail));
var rel = new JoinAlias(typeof(Pay_Advance_Relate));
var adv = new JoinAlias(typeof(AdvancePay_Detail));
query.From.AddJoin(JoinType.Left, new DQDmoSource(detail), DQCondition.EQ(root, "ID", detail, "Pay_ID"));
query.From.AddJoin(JoinType.Left, new DQDmoSource(rel), DQCondition.EQ(detail, "ID", rel, "Pay_Detail_ID"));
query.From.AddJoin(JoinType.Left, new DQDmoSource(adv), DQCondition.EQ(rel, "AdvancePay_Detail_ID", adv, "ID"));
query.Columns.Add(DQSelectColumn.Field("ID", root, t + "付款单号"));
query.Columns.Add(DQSelectColumn.Field("Farmer_Bank", adv, t + "开户银行"));
query.Columns.Add(DQSelectColumn.Field("Farmer_BankAccount", adv, t + "卡号"));
query.Columns.Add(DQSelectColumn.Field("Farmer_Name", adv, t + "姓名"));
query.Columns.Add(DQSelectColumn.Field("Money", adv, t + "金额"));
SumColumnNames.Add("Money");
query.Where.Conditions.Add(DQCondition.IsNotNull(DQExpression.Field(adv, "ID")));
}
else
{
query.Columns.Add(DQSelectColumn.Field("Supplier_BankAccount", t + "卡号"));
query.Columns.Add(DQSelectColumn.Field("Supplier_Name", t + "姓名"));
query.Columns.Add(DQSelectColumn.Field("Money", t + "金额"));
SumColumnNames.Add("Money");
}
query.Columns.Add(DQSelectColumn.Field("Remark", t + "备注")); query.Columns.Add(DQSelectColumn.Field("Remark", t + "备注"));
if (!purchaseType.IsEmpty)
DetailTemp.AddPurchaseTypeCondition(query, long.Parse(purchaseType.Value));
foreach (var c in query.Columns) foreach (var c in query.Columns)
ColumnNames.Add(c.Name); ColumnNames.Add(c.Name);
return query; return query;
@ -76,4 +120,21 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports
} }
} }
} }
class DetailTemp
{
public long Pay_ID { get; set; }
public static void AddPurchaseTypeCondition(DQueryDom root, long purchaseTypeID)
{
var query = new DQueryDom(new JoinAlias(typeof(Pay_Detail)));
query.Where.Conditions.Add(DQCondition.EQ("StatPay_PurchaseType_ID", purchaseTypeID));
query.Columns.Add(DQSelectColumn.Field("Pay_ID"));
query.GroupBy.Expressions.Add(DQExpression.Field("Pay_ID"));
root.RegisterQueryTable(typeof(DetailTemp), new string[] { "Pay_ID" }, query);
var detail = new JoinAlias(typeof(DetailTemp));
root.From.AddJoin(JoinType.Inner, new DQDmoSource(detail), DQCondition.EQ(root.From.RootSource.Alias, "ID", detail, "Pay_ID"));
}
}
} }

+ 4
- 0
B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/PayInfoExport.xml View File

@ -28,6 +28,10 @@
<Field name="Date"/> <Field name="Date"/>
<QBE paramName="MaxDate"/> <QBE paramName="MaxDate"/>
</LessThanOrEqual> </LessThanOrEqual>
<EQ>
<Field name="BillState"/>
<QBE paramName="BillState"/>
</EQ>
</And> </And>
</Where> </Where>
</Select> </Select>

+ 162
- 0
B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/StatPayAnalyse.cs View File

@ -0,0 +1,162 @@
using BWP.B3ButcherManage;
using BWP.B3ButcherManage.BO;
using BWP.B3Frameworks;
using BWP.B3Frameworks.BO.MoneyTemplate;
using BWP.Web.Layout;
using BWP.Web.Utils;
using Forks.EnterpriseServices.DomainObjects2;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
using Forks.EnterpriseServices.SqlDoms;
using Forks.Utils;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TSingSoft.WebControls2;
using TSingSoft.WebPluginFramework;
namespace BWP.Web.Pages.B3QingDaoWanFu.Reports
{
class StatPayAnalyse : DFGridReportPage<StatPay>
{
protected override string AccessRoleName
{
get { return "B3QingDaoWanFu.报表.结算单分析"; }
}
protected override string Caption
{
get { return "结算单分析"; }
}
protected override string QueryOptionsTabName
{
get
{
return "显示字段";
}
}
protected override void InitForm(System.Web.UI.HtmlControls.HtmlForm form)
{
base.InitForm(form);
mDFGrid.AllowRowGroup = true;
}
public override Forks.EnterpriseServices.DataForm.PagedDFDataTable GetPagedDFDataTable(TSingSoft.WebControls2.DFGrids.QuerySettings settings)
{
var result = base.GetPagedDFDataTable(settings);
var billSum = GetBillSum();
if (billSum != null)
{
if (ColumnNames.Contains("实付金额"))
result.Data.SumRow["实付金额"] = billSum.Item1;
if (ColumnNames.Contains("收购头数"))
result.Data.SumRow["收购头数"] = billSum.Item2;
if (ColumnNames.Contains("收购重量"))
result.Data.SumRow["收购重量"] = billSum.Item3;
}
return result;
}
Tuple<Money<>?, int?, Money<decimal>?> GetBillSum()
{
var query = base.GetQueryDom();
var n = new DQueryDom(new JoinAlias(typeof(StatPay)));
n.Where.Conditions.Add(DQCondition.And(query.Where.Conditions));
n.Columns.Add(DQSelectColumn.Sum("ActualMoney"));
n.Columns.Add(DQSelectColumn.Sum("RealNumber"));
n.Columns.Add(DQSelectColumn.Sum("RealWeight"));
return n.EExecuteScalar<Money<>?, int?, Money<decimal>?>();
}
public override Forks.EnterpriseServices.DataForm.DFDataTable GetDFDataTable(TSingSoft.WebControls2.DFGrids.QuerySettings settings)
{
var result = base.GetDFDataTable(settings);
var billSum = GetBillSum();
if (billSum != null)
{
if (ColumnNames.Contains("实付金额"))
result.SumRow["实付金额"] = billSum.Item1;
if (ColumnNames.Contains("收购头数"))
result.SumRow["收购头数"] = billSum.Item2;
if (ColumnNames.Contains("收购重量"))
result.SumRow["收购重量"] = billSum.Item3;
}
return result;
}
protected override void InitQueryPanel(WebControls.QueryPanel queryPanel)
{
base.InitQueryPanel(queryPanel);
queryPanel.ConditonPanel.EAdd(CreateDatePanel());
}
private HLayoutPanel CreateDatePanel()
{
var panel = new HLayoutPanel();
panel.Add(new SimpleLabel("核算日期"));
panel.Add(QueryCreator.DateRange(mDFInfo.Fields["Date"], mQueryContainer, "MinDate", "MaxDate", DateTime.Today, null));
return panel;
}
protected override void AddQueryControls(VLayoutPanel vPanel)
{
var layout = new LayoutManager("Main", mDFInfo, mQueryContainer);
var config = new AutoLayoutConfig { Cols = 4 };
config.Add("ID");
config.Add("BillState");
config.Add("Supplier_ID");
config.Add("Employee_ID");
config.Add("PurchaseType_ID");
config.Add("Weigh_ID");
config.Add("WeighTime");
layout.Config = config;
vPanel.Add(layout.CreateLayout());
}
ReportDisplayOptionHelper mDisplayHelper = new ReportDisplayOptionHelper();
protected override void AddQueryOptions(VLayoutPanel vPanel)//显示字段
{
mDisplayHelper.AddOptionItem("过磅日期", () => DQExpression.Snippet("CAST([_weight].[WeighTime] AS DATE)").ECastType<DateTime?>(), false);
mDisplayHelper.AddOptionItem("过磅单号", "_bill", "Weigh_ID", false);
mDisplayHelper.AddOptionItem("结算日期", "_bill", "Date", false);
mDisplayHelper.AddOptionItem("结算单号", "_bill", "ID", false);
mDisplayHelper.AddOptionItem("供应商", "_bill", "Supplier_Name", false);
mDisplayHelper.AddOptionItem("收购头数", "_bill", "RealNumber", false);
mDisplayHelper.AddOptionItem("收购重量", "_bill", "RealWeight", false);
mDisplayHelper.AddOptionItem("实付金额", "_bill", "ActualMoney", false);
mDisplayHelper.AddOptionItem("养殖户", "_detail", "Farmer_Name", false);
mDisplayHelper.AddOptionItem("身份证号", "_detail", "Farmer_IDCard", false);
mDisplayHelper.AddOptionItem("地址", "_detail", "Farmer_Address", false);
mDisplayHelper.AddOptionItem("电话", "_detail", "Farmer_Tel", false);
mDisplayHelper.AddOptionItem("棚前头数", "_detail", "Number", false, true);
mDisplayHelper.AddOptionItem("棚前重量", "_detail", "ExeWeight", false, true);
mDisplayHelper.AddOptionItem("棚前金额", "_detail", "ExtMoney", false, true);
AddQueryOption("选项", mDisplayHelper.GetAllDisplayNames(), mDisplayHelper.GetDefaultSelelectedDisplayNames());
base.AddQueryOptions(vPanel);
}
protected override DQueryDom GetQueryDom()
{
var query = base.GetQueryDom();
var root = query.From.RootSource.Alias;
var weight = new JoinAlias("_weight", typeof(WeighBill));
var detail = new JoinAlias("_detail", typeof(Weigh_FarmerDetail));
query.From.AddJoin(JoinType.Left, new DQDmoSource(weight), DQCondition.EQ(root, "Weigh_ID", weight, "ID"));
query.From.AddJoin(JoinType.Left, new DQDmoSource(detail), DQCondition.EQ(root, "Weigh_ID", detail, "Weigh_ID"));
mDisplayHelper.AddAlias("_bill", root);
mDisplayHelper.AddAlias("_weight", weight);
mDisplayHelper.AddAlias("_detail", detail);
mDisplayHelper.AddSelectColumns(query, (name) => OptionIsSelected("选项", name), SumColumnNames, ColumnNames);
query.Where.Conditions.Add(DQCondition.EQ(root, "Domain_ID", DomainContext.Current.ID));
return query;
}
}
}

+ 53
- 0
B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/StatPayAnalyse.xml View File

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="utf-8" ?>
<Select xmlns="urn:XDQuery">
<Columns>
</Columns>
<From>
<DmoClass class="BWP.B3ButcherManage.BO.StatPay, B3ButcherManage" alias="_bill"/>
</From>
<Where>
<And>
<EQ>
<Field name="ID"/>
<QBE paramName="ID"/>
</EQ>
<EQ>
<Field name="Supplier_ID"/>
<QBE paramName="Supplier_ID"/>
</EQ>
<EQ>
<Field name="Employee_ID"/>
<QBE paramName="Employee_ID"/>
</EQ>
<EQ>
<Field name="PurchaseType_ID"/>
<QBE paramName="PurchaseType_ID"/>
</EQ>
<EQ>
<Field name="Weigh_ID"/>
<QBE paramName="Weigh_ID"/>
</EQ>
<GreaterThanOrEqual>
<Field name="Date"/>
<QBE paramName="MinDate" />
</GreaterThanOrEqual>
<LessThanOrEqual>
<Field name="Date"/>
<QBE paramName="MaxDate"/>
</LessThanOrEqual>
<GreaterThanOrEqual>
<Field name="WeighTime"/>
<QBE paramName="MinWeighTime" />
</GreaterThanOrEqual>
<LessThanOrEqual>
<Field name="WeighTime"/>
<QBE paramName="MaxWeighTime"/>
</LessThanOrEqual>
<EQ>
<Field name="BillState"/>
<QBE paramName="BillState"/>
</EQ>
</And>
</Where>
</Select>

+ 21
- 6
B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Tools/CarLoadingBySendLinePage.cs View File

@ -270,13 +270,28 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Tools
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Field("SecondNumber")), "辅数量")); dom.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Field("SecondNumber")), "辅数量"));
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.GreaterThan(DQExpression.Field(areadyLoadBill, "SaleOutStore_ID"), DQExpression.Snippet<long>("0")), DQExpression.Field("AllUnitNum"), DQExpression.NULL)), "已派车数量")); dom.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.GreaterThan(DQExpression.Field(areadyLoadBill, "SaleOutStore_ID"), DQExpression.Snippet<long>("0")), DQExpression.Field("AllUnitNum"), DQExpression.NULL)), "已派车数量"));
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Snippet<Money<decimal>?>("null"), "本次派车数量")); dom.Columns.Add(DQSelectColumn.Create(DQExpression.Snippet<Money<decimal>?>("null"), "本次派车数量"));
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Snippet<long?>("null"), "业务员ID"));
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Snippet<string>("''"), "业务员"));
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Snippet<long?>("null"), "送货人员ID"));
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Snippet<string>("''"), "送货人员"));
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Snippet<long?>("null"), "车辆ID"));
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Snippet<string>("''"), "车辆"));
// dom.Columns.Add(DQSelectColumn.Create(DQExpression.Snippet<long?>("null"), "业务员ID"));
// dom.Columns.Add(DQSelectColumn.Create(DQExpression.Snippet<string>("''"), "业务员"));
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(sendLine, "Employee_ID"), "业务员ID"));
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(sendLine, "Employee_Name"), "业务员"));
dom.GroupBy.Expressions.Add(DQExpression.Field(sendLine, "Employee_ID"));
dom.GroupBy.Expressions.Add(DQExpression.Field(sendLine, "Employee_Name"));
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(sendLine, "Employee_ID"), "送货人员ID"));
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(sendLine, "Employee_Name"), "送货人员"));
// dom.Columns.Add(DQSelectColumn.Create(DQExpression.Snippet<long?>("null"), "送货人员ID"));
// dom.Columns.Add(DQSelectColumn.Create(DQExpression.Snippet<string>("''"), "送货人员"));
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(sendLine,"Car_ID"), "车辆ID"));
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(sendLine, "Car_Name"), "车辆"));
dom.GroupBy.Expressions.Add(DQExpression.Field(sendLine, "Car_ID"));
dom.GroupBy.Expressions.Add(DQExpression.Field(sendLine, "Car_Name"));
// dom.Columns.Add(DQSelectColumn.Create(DQExpression.Snippet<long?>("null"), "车辆ID"));
// dom.Columns.Add(DQSelectColumn.Create(DQExpression.Snippet<string>("''"), "车辆"));
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Snippet<string>("''"), "Remark")); dom.Columns.Add(DQSelectColumn.Create(DQExpression.Snippet<string>("''"), "Remark"));
dom.Where.Conditions.Add(DQCondition.EQ("BillState", .)); dom.Where.Conditions.Add(DQCondition.EQ("BillState", .));
dom.Where.Conditions.Add(DQCondition.EQ("TakeGoods_Type", .)); dom.Where.Conditions.Add(DQCondition.EQ("TakeGoods_Type", .));


+ 208
- 3
B3QingDaoWanFu.Web/Pages/TypeIOCs/CarLoadingTypeIOC.cs View File

@ -6,14 +6,20 @@ using System.Text;
using System.Web.UI; using System.Web.UI;
using System.Web.UI.HtmlControls; using System.Web.UI.HtmlControls;
using BWP.B3Frameworks; using BWP.B3Frameworks;
using BWP.B3Frameworks.BO.MoneyTemplate;
using BWP.B3Sale.BO; using BWP.B3Sale.BO;
using BWP.Web.Pages.B3Sale; using BWP.Web.Pages.B3Sale;
using BWP.Web.Pages.B3Sale.Bills.CarLoading_; using BWP.Web.Pages.B3Sale.Bills.CarLoading_;
using Forks.Drawing; using Forks.Drawing;
using Forks.EnterpriseServices;
using Forks.EnterpriseServices.DataForm; using Forks.EnterpriseServices.DataForm;
using Forks.Utils; using Forks.Utils;
using TSingSoft.WebControls2.BillReports; using TSingSoft.WebControls2.BillReports;
using TSingSoft.WebPluginFramework; using TSingSoft.WebPluginFramework;
using Forks.EnterpriseServices.BusinessInterfaces;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
using Forks.EnterpriseServices.DomainObjects2;
using Forks.EnterpriseServices.SqlDoms;
namespace BWP.Web.Pages.TypeIOCs namespace BWP.Web.Pages.TypeIOCs
{ {
@ -27,13 +33,180 @@ namespace BWP.Web.Pages.TypeIOCs
AddParameterss(dic, dmo); AddParameterss(dic, dmo);
} }
[DFClass]
public class CarLoadingGoodsSumDetailData
{
public string Goods_Name { get; set; }
public string Goods_Code { get; set; }
public string Goods_Spec { get; set; }
public Money<decimal>? Number { get; set; }
public string Goods_MainUnit { get; set; }
public Money<decimal>? SecondNumber { get; set; }
public string Goods_SecondUnit { get; set; }
public string Customer_Name { get; set; }
}
static DQueryDom GetSaleOutStoreSumDetails(List<long> billIds)
{
var outStore = new JoinAlias(typeof(SaleOutStore));
var detail = new JoinAlias(typeof(SaleOutStore_Detail));
var query = new DQueryDom(detail);
query.From.AddJoin(JoinType.Left, new DQDmoSource(outStore), DQCondition.EQ(detail, "SaleOutStore_ID", outStore, "ID"));
query.Columns.Add(DQSelectColumn.Field("Goods_Name"));
query.Columns.Add(DQSelectColumn.Field("Goods_Code"));
query.Columns.Add(DQSelectColumn.Field("Goods_Spec"));
query.Columns.Add(DQSelectColumn.Sum(detail,"Number"));
query.Columns.Add(DQSelectColumn.Field("Goods_MainUnit"));
query.Columns.Add(DQSelectColumn.Sum(detail, "SecondNumber"));
query.Columns.Add(DQSelectColumn.Field("Goods_SecondUnit"));
query.Columns.Add(DQSelectColumn.Field("Customer_Name",outStore));
query.GroupBy.Expressions.Add(DQExpression.Field("Goods_Name"));
query.GroupBy.Expressions.Add(DQExpression.Field("Goods_Code"));
query.GroupBy.Expressions.Add(DQExpression.Field("Goods_Spec"));
query.GroupBy.Expressions.Add(DQExpression.Field("Goods_MainUnit"));
query.GroupBy.Expressions.Add(DQExpression.Field("Goods_SecondUnit"));
query.GroupBy.Expressions.Add(DQExpression.Field(outStore,"Customer_Name"));
query.Where.Conditions.Add(DQCondition.InList(DQExpression.Field("SaleOutStore_ID"), billIds.Select(item => DQExpression.Value(item)).ToArray()));
return query;
}
//定制打印格式【装车单】 //定制打印格式【装车单】
protected void AddParameterss(IDictionary<string, object> dic, CarLoading Dmo) protected void AddParameterss(IDictionary<string, object> dic, CarLoading Dmo)
{ {
var list = new List<CarLoadingGoodsSumDetailData>();
if (Dmo.BillDetails.Count > 0) {
var billInfo = Dmo.BillDetails.Where(x=>x.BillTypeID == DmoTypeIDAttribute.GetID(typeof(SaleOutStore))).Select(detail => detail.BillID).ToList();
var query = GetSaleOutStoreSumDetails(billInfo);
using (var context = new TransactionContext()) {
using (var reader = context.Session.ExecuteReader(query)) {
while (reader.Read()) {
var data = new CarLoadingGoodsSumDetailData();
data.Goods_Name = (string)reader[0];
data.Goods_Code = (string)reader[1];
data.Goods_Spec = (string)reader[2];
data.Number = (Money<decimal>?)reader[3];
data.Goods_MainUnit = (string)reader[4];
data.SecondNumber = (Money<decimal>?)reader[5];
data.Goods_SecondUnit = (string)reader[6];
data.Customer_Name = (string)reader[7];
list.Add(data);
}
}
}
}
dic.Add("$DetailInfo3Type", typeof(CarLoadingGoodsSumDetailData));
dic.Add("$DetailInfo3", list);
PageSize = 100; PageSize = 100;
dic.Add("$DetailInfo2", new Func<object>(() => GetPrintStyle(Dmo))); dic.Add("$DetailInfo2", new Func<object>(() => GetPrintStyle(Dmo)));
dic.Add("$万福装车单明细", new Func<object>(() => Get万福装车单明细(Dmo)));
}
private string Get万福装车单明细(CarLoading dmo)
{
var sb=new StringBuilder();
sb.AppendLine("<table id='wanfuloadingtable' style='border-collapse:collapse;' width='100%' bordercolor='Black' border='1'>");
sb.AppendLine("<tr><td>客户</td><td>存货名称</td><td>规格</td><td>件数</td><td>主单位</td><td>计划数量</td><td>数量</td><td class='biaoshi'>发货标记</td><td class='fucheng'>复称数量</td><td>备注</td></tr>");
var list = GetWanFuCarLoadingList(dmo);
foreach (IGrouping<string, TempClassForCarLoadingWanFu> grouping in list.GroupBy(x=>x.Customer_Name))
{
AppendByGrouping(sb,grouping);
}
AppendSumRow(sb,list);
sb.AppendLine("</table>");
return sb.ToString();
}
private void AppendSumRow(StringBuilder sb, List<TempClassForCarLoadingWanFu> list)
{
var sumOrderSecondNumber = (Money<>?)list.Sum(x => (x.OrderSecondNumber ?? 0).Value);
var sumOrderUnitNum = (Money<>?)list.Sum(x => (x.OrderUnitNum ?? 0).Value);
var sumUnitNum = (Money<>?)list.Sum(x => (x.UnitNum ?? 0).Value);
sb.AppendLine("<tr><td colspan='3'>合计</td><td>" + sumOrderSecondNumber + "</td><td></td><td>" + sumOrderUnitNum + "</td><td>" + sumUnitNum + "</td><td></td><td></td><td></td></tr>");
}
private void AppendByGrouping(StringBuilder sb, IGrouping<string, TempClassForCarLoadingWanFu> grouping)
{
var isfirst = true;
var count = grouping.Count();
foreach (TempClassForCarLoadingWanFu wanFu in grouping.OrderBy(x=>x.SaleOutStore_Detail_ID))
{
if (isfirst)
{
isfirst = false;
sb.AppendLine("<tr><td rowspan='"+ count + "'>"+ wanFu.Customer_Name+ "</td><td>"+wanFu.Goods_Name+"</td><td>"+wanFu.Goods_Spec+"</td><td>"+wanFu.OrderSecondNumber+"</td><td>"+wanFu.Goods_MainUnit+"</td><td>"+wanFu.OrderUnitNum+"</td><td>"+wanFu.UnitNum+"</td><td></td><td></td><td>"+wanFu.Remark+"</td></tr>");
}
else
{
sb.AppendLine("<tr><td>" + wanFu.Goods_Name + "</td><td>" + wanFu.Goods_Spec + "</td><td>" + wanFu.OrderSecondNumber + "</td><td>" + wanFu.Goods_MainUnit + "</td><td>" + wanFu.OrderUnitNum + "</td><td>" + wanFu.UnitNum + "</td><td></td><td></td><td>" + wanFu.Remark + "</td></tr>");
}
}
}
private List<TempClassForCarLoadingWanFu> GetWanFuCarLoadingList(CarLoading dmo)
{
var bill=new JoinAlias(typeof(CarLoading));
var detail=new JoinAlias(typeof(CarLoading_BillDetail));
var outstore= new JoinAlias(typeof(SaleOutStore));
var outstoreDetail= new JoinAlias(typeof(SaleOutStore_Detail));
var orderDetail= new JoinAlias(typeof(Order_Detail));
var query=new DQueryDom(bill);
query.From.AddJoin(JoinType.Left, new DQDmoSource(detail), DQCondition.EQ(bill, "ID",detail, "CarLoading_ID"));
query.From.AddJoin(JoinType.Left, new DQDmoSource(outstore), DQCondition.EQ(detail, "BillID", outstore, "ID"));
query.From.AddJoin(JoinType.Left, new DQDmoSource(outstoreDetail), DQCondition.EQ(outstoreDetail, "SaleOutStore_ID", detail, "BillID"));
query.From.AddJoin(JoinType.Left, new DQDmoSource(orderDetail), DQCondition.EQ(outstoreDetail, "Order_DetailID", orderDetail, "ID"));
query.Columns.Add(DQSelectColumn.Field("Customer_Name", outstore));
query.Columns.Add(DQSelectColumn.Field("Goods_Name", outstoreDetail));
query.Columns.Add(DQSelectColumn.Field("Goods_Spec", outstoreDetail));
query.Columns.Add(DQSelectColumn.Field("SecondNumber", orderDetail, "OrderSecondNumber"));
query.Columns.Add(DQSelectColumn.Field("Goods_MainUnit", outstoreDetail));
query.Columns.Add(DQSelectColumn.Field("UnitNum", orderDetail, "OrderUnitNum"));
query.Columns.Add(DQSelectColumn.Field("UnitNum", outstoreDetail, "UnitNum"));
query.Columns.Add(DQSelectColumn.Field("Remark", detail));
query.Columns.Add(DQSelectColumn.Field("ID", outstoreDetail, "SaleOutStore_Detail_ID"));
query.Where.Conditions.Add(DQCondition.EQ(bill,"ID", dmo.ID));
if (StoreIDs != null && StoreIDs.Count > 0)
{
query.Where.Conditions.Add(DQCondition.InList(DQExpression.Field(outstore, "Store_ID"), StoreIDs.Select(x => DQExpression.Value(x)).ToArray()));
}
var list = new List<TempClassForCarLoadingWanFu>();
using (var session=Dmo.NewSession())
{
using (var reader= session.ExecuteReader(query))
{
while (reader.Read())
{
var model=new TempClassForCarLoadingWanFu();
model.Customer_Name = (string) reader[0];
model.Goods_Name= (string)reader[1];
model.Goods_Spec = (string)reader[2];
model.OrderSecondNumber = (Money<decimal>?)reader[3];
model.Goods_MainUnit = (string)reader[4];
model.OrderUnitNum = (Money<decimal>?)reader[5];
model.UnitNum = (Money<decimal>?)reader[6];
model.Remark = (string)reader[7];
model.SaleOutStore_Detail_ID = (long?)reader[8];
list.Add(model);
}
}
}
return list;
} }
@ -103,7 +276,7 @@ namespace BWP.Web.Pages.TypeIOCs
table.Rows.Add(row); table.Rows.Add(row);
if (first) if (first)
{ {
row.EAdd("center", group.Count() + 1, 1, (string)dataRow["Customer_Name"]);
row.EAdd("center", group.Count() , 1, (string)dataRow["Customer_Name"]);
first = false; first = false;
} }
@ -114,7 +287,7 @@ namespace BWP.Web.Pages.TypeIOCs
main = (main ?? 0) + (mainNum ?? 0); main = (main ?? 0) + (mainNum ?? 0);
sec = (sec ?? 0) + (secNum ?? 0); sec = (sec ?? 0) + (secNum ?? 0);
} }
table.EAddRow("center", 1, 1, "小计", "", sec.ToString(), "", main.ToString(),main.ToString(), "", "", "");
//table.EAddRow("center", 1, 1, "小计", "", sec.ToString(), "", main.ToString(),main.ToString(), "", "", "");
} }
} }
@ -213,4 +386,36 @@ namespace BWP.Web.Pages.TypeIOCs
public static int rowCount; public static int rowCount;
} }
[DFClass,Serializable]
class TempClassForCarLoadingWanFu
{
public long? SaleOutStore_Detail_ID { get; set; }
[LogicName("客户")]
public string Customer_Name { get; set; }
[LogicName("存货")]
public string Goods_Name { get; set; }
[LogicName("规格")]
public string Goods_Spec { get; set; }
[LogicName("件数")]
public Money<decimal>? OrderSecondNumber { get; set; }
[LogicName("主单位")]
public string Goods_MainUnit { get; set; }
[LogicName("计划数量")]
public Money<decimal>? OrderUnitNum { get; set; }
[LogicName("数量")]
public Money<decimal>? UnitNum { get; set; }
[LogicName("备注")]
public string Remark { get; set; }
}
} }

+ 3
- 0
B3QingDaoWanFu.Web/PluginClass.cs View File

@ -20,10 +20,13 @@ namespace BWP.B3QingDaoWanFu
WpfPageFactory.RegisterPageOverlay(typeof(StatPayEdit).FullName, typeof(StatPayEdit_Ext).FullName); WpfPageFactory.RegisterPageOverlay(typeof(StatPayEdit).FullName, typeof(StatPayEdit_Ext).FullName);
WpfPageFactory.RegisterPageOverlay(typeof(StatPayAnalyse).FullName, typeof(StatPayAnalyse_Ext).FullName); WpfPageFactory.RegisterPageOverlay(typeof(StatPayAnalyse).FullName, typeof(StatPayAnalyse_Ext).FullName);
WpfPageFactory.RegisterPageOverlay(typeof(SaleOutStoreEdit).FullName, typeof(SaleOutStoreEdit_Ext).FullName); WpfPageFactory.RegisterPageOverlay(typeof(SaleOutStoreEdit).FullName, typeof(SaleOutStoreEdit_Ext).FullName);
WpfPageFactory.RegisterPageOverlay(typeof(StatPayList).FullName, typeof(StatPayList_Ext).FullName);
GlobalFlags.On(B3ButcherManageConsts.GlobalFlags.StatPayAddRewardWithButcherUseWeight); GlobalFlags.On(B3ButcherManageConsts.GlobalFlags.StatPayAddRewardWithButcherUseWeight);
GlobalFlags.On(B3SaleConsts.Flags.MarketingActivityEnableAdjustPrice); GlobalFlags.On(B3SaleConsts.Flags.MarketingActivityEnableAdjustPrice);
GlobalFlags.On(B3SaleConsts.Flags.SendOutStoreNoAvailableStorage); GlobalFlags.On(B3SaleConsts.Flags.SendOutStoreNoAvailableStorage);
GlobalFlags.On(B3SaleConsts.Flags.CustAcceptAnalyseHasFactoryPrice); GlobalFlags.On(B3SaleConsts.Flags.CustAcceptAnalyseHasFactoryPrice);
GlobalFlags.On(B3ButcherManageConsts.GlobalFlags.);
GlobalFlags.On(B3SaleConsts.Flags.SaleOutStoreEnableScan);
} }
} }
} }

+ 25
- 0
B3QingDaoWanFu/B3QingDaoWanFu.csproj View File

@ -41,6 +41,10 @@
<HintPath>D:\BwpB3Project\tsref\Debug\B3ButcherManage.Web.dll</HintPath> <HintPath>D:\BwpB3Project\tsref\Debug\B3ButcherManage.Web.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="B3ExportBase, Version=1.0.0.0, Culture=neutral, PublicKeyToken=3a973053c7ebf11c, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\tsref\Debug\B3ExportBase.dll</HintPath>
</Reference>
<Reference Include="B3Frameworks, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a04fa581c0f74d43, processorArchitecture=MSIL"> <Reference Include="B3Frameworks, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a04fa581c0f74d43, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>D:\BwpB3Project\tsref\Debug\B3Frameworks.dll</HintPath> <HintPath>D:\BwpB3Project\tsref\Debug\B3Frameworks.dll</HintPath>
@ -69,10 +73,12 @@
<Reference Include="B3Sale, Version=1.0.0.0, Culture=neutral, PublicKeyToken=3a973053c7ebf11c, processorArchitecture=MSIL"> <Reference Include="B3Sale, Version=1.0.0.0, Culture=neutral, PublicKeyToken=3a973053c7ebf11c, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\tsref\Debug\B3Sale.dll</HintPath> <HintPath>..\..\..\tsref\Debug\B3Sale.dll</HintPath>
<Private>False</Private>
</Reference> </Reference>
<Reference Include="b3saleinterface, Version=1.0.0.0, Culture=neutral, PublicKeyToken=3a973053c7ebf11c, processorArchitecture=MSIL"> <Reference Include="b3saleinterface, Version=1.0.0.0, Culture=neutral, PublicKeyToken=3a973053c7ebf11c, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\tsref\Debug\b3saleinterface.dll</HintPath> <HintPath>..\..\..\tsref\Debug\b3saleinterface.dll</HintPath>
<Private>False</Private>
</Reference> </Reference>
<Reference Include="B3UnitedInfos, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a04fa581c0f74d43, processorArchitecture=MSIL"> <Reference Include="B3UnitedInfos, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a04fa581c0f74d43, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
@ -84,11 +90,19 @@
<HintPath>D:\BwpB3Project\tsref\Debug\Forks.EnterpriseServices.dll</HintPath> <HintPath>D:\BwpB3Project\tsref\Debug\Forks.EnterpriseServices.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="Forks.JsonRpc.Client, Version=1.0.0.0, Culture=neutral, PublicKeyToken=7254430f49d10aae, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\tsref\Debug\Forks.JsonRpc.Client.dll</HintPath>
</Reference>
<Reference Include="Forks.Utils, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7254430f49d10aae, processorArchitecture=MSIL"> <Reference Include="Forks.Utils, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7254430f49d10aae, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>D:\BwpB3Project\tsref\Debug\Forks.Utils.dll</HintPath> <HintPath>D:\BwpB3Project\tsref\Debug\Forks.Utils.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="Newtonsoft.Json, Version=4.0.3.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\tsref\Debug\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="System"> <Reference Include="System">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
</Reference> </Reference>
@ -130,16 +144,27 @@
<Compile Include="..\..\..\version\Customer_version.cs"> <Compile Include="..\..\..\version\Customer_version.cs">
<Link>Customer_version.cs</Link> <Link>Customer_version.cs</Link>
</Compile> </Compile>
<Compile Include="BLActions\BLActionUtil.cs" />
<Compile Include="BLActions\SaleForecastBLAction.cs" /> <Compile Include="BLActions\SaleForecastBLAction.cs" />
<Compile Include="BLActions\SaleOrderBLAction.cs" />
<Compile Include="BLActions\SaleOutStoreBLActions.cs" />
<Compile Include="BL\Bill\CostRecordBL\CostRecordBL.cs" />
<Compile Include="BL\CustomerDeviceSetBL.cs" /> <Compile Include="BL\CustomerDeviceSetBL.cs" />
<Compile Include="BL\ExportBL\GoodsExportBL.cs" />
<Compile Include="BO\Bill\CostRecord\CostRecord.cs" />
<Compile Include="BO\Bill\CostRecord\CostRecord_Detail.cs" />
<Compile Include="BO\CustomerDeviceSet.cs" /> <Compile Include="BO\CustomerDeviceSet.cs" />
<Compile Include="BO\SaleOutStoreBarCodeToMESLog.cs" />
<Compile Include="BO\SaleOutStorePrint\SaleOutStorePrintInfo.cs" /> <Compile Include="BO\SaleOutStorePrint\SaleOutStorePrintInfo.cs" />
<Compile Include="BO\SaleOutStorePrint\SaleOutStoreSimpleAnayse.cs" /> <Compile Include="BO\SaleOutStorePrint\SaleOutStoreSimpleAnayse.cs" />
<Compile Include="DataPatchs\StatPaySetBillNeedValue20171123.cs" /> <Compile Include="DataPatchs\StatPaySetBillNeedValue20171123.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Rpc\GatheringRpc.cs" /> <Compile Include="Rpc\GatheringRpc.cs" />
<Compile Include="Tasks\SyncSaleOutStoreInfoToMES.cs" />
<Compile Include="TypeIOCs\GoodsBLTypeIoc.cs" />
<Compile Include="TypeIOCs\SaleOutStoreBLTypeIoc.cs" /> <Compile Include="TypeIOCs\SaleOutStoreBLTypeIoc.cs" />
<Compile Include="TypeIOCs\StatPayBLTypeIoc.cs" /> <Compile Include="TypeIOCs\StatPayBLTypeIoc.cs" />
<Compile Include="Utils\B3QingDaoWanFuConsts.cs" />
<Compile Include="Utils\WanFuOnlineConfig.cs" /> <Compile Include="Utils\WanFuOnlineConfig.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup /> <ItemGroup />


+ 20
- 0
B3QingDaoWanFu/BL/Bill/CostRecordBL/CostRecordBL.cs View File

@ -0,0 +1,20 @@
using BWP.B3Frameworks.BL;
using BWP.B3QingDaoWanFu.BO;
using Forks.EnterpriseServices;
using Forks.EnterpriseServices.BusinessInterfaces;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace BWP.B3QingDaoWanFu.BL
{
[BusinessInterface(typeof(CostRecordBL))]
[LogicName("费用录入")]
public interface ICostRecordBL : IDomainBillBL<CostRecord>
{ }
public class CostRecordBL : DomainBillBL<CostRecord>, ICostRecordBL
{
}
}

+ 135
- 0
B3QingDaoWanFu/BL/ExportBL/GoodsExportBL.cs View File

@ -0,0 +1,135 @@
using BWP.B3ExportBase;
using BWP.B3ExportBase.BL;
using BWP.B3Frameworks;
using BWP.B3UnitedInfos.BO;
using Forks.EnterpriseServices;
using Forks.EnterpriseServices.BusinessInterfaces;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TSingSoft.WebPluginFramework.BIPlugins.BLEvents;
using TSingSoft.WebPluginFramework;
using BWP.B3Frameworks.Utils;
using BWP.B3ExportBase.BO;
using Forks.JsonRpc.Client;
using Newtonsoft.Json;
namespace BWP.B3QingDaoWanFu.BL
{
[BusinessInterface(typeof(GoodsExportBL))]
public interface IGoodsExportBL : IExportBaseBL
{
void Export(List<long> dmoIDs, long extSystemID);
void UpdateOrInsert(Goods goods);
void Stop(string code);
void Start(string code);
void Delete(string code);
}
[LogicName("存货导MES存货")]
[ExportID(B3FrameworksConsts.DmoTypeIDBases.B3QingDaoWanFu, B3QingDaoWanFuConsts.DmoTypeIDOffsets.GoodsExport)]
public class GoodsExportBL : ExportBaseBL<Goods>, IGoodsExportBL
{
const string MethodPath = "/MainSystem/B3ClientService/Rpcs/InterfaceRpc/GoodsRpc/";
protected override void BeforeExport(List<long> dmoIDs)
{
Dmos = new List<Goods>();
var scriptHelper = new PythonScriptHelper(string.Empty, Config.Script, this);
MinDmoProperties = new List<string>();
MinDetailProperties = new List<string>();
LoadFullDom = true;
//在脚本里设置是否载入整张单据 或者部分字段
scriptHelper.Before();
if (LoadFullDom)
{
var list = new List<long>();
var query = new DmoQuery(typeof(Goods));
query.Where.Conditions.EFieldInList("ID", dmoIDs);
foreach (Goods bill in Session.ExecuteList(query))
{
if (list.IndexOf(bill.ID) == -1)
{
list.Add(bill.ID);
Dmos.Add(bill);
}
}
return;
}
LoadMinDmo(Dmos, dmoIDs);
}
private string _serverUrl;
protected string ServerUrl
{
get { return _serverUrl; }
set { _serverUrl = value; }
}
public void Export(List<long> dmoIDs, long extSystemID)
{
if (dmoIDs.Count == 0)
throw new Exception("没有要导出的内容");
ExtSystemID = extSystemID;
_serverUrl = InnerBLUtil.GetDmoPropertyByID<string>(Session, typeof(ExtSystem), "Address", extSystemID);
if (string.IsNullOrEmpty(_serverUrl))
throw new Exception("外部系统地址不能为空");
BeforeExport(dmoIDs);
DoExport(dmoIDs);
}
private void DoExport(List<long> dmoIDs)
{
var scriptHelper = new PythonScriptHelper(string.Empty, Config.Script, this);
var dmos = Dmos.OrderBy(x => x.ID).ToList();
scriptHelper.AddLocalVar("dmos", dmos);
scriptHelper.Execute();
InitRpc();
var json = JsonConvert.SerializeObject(dmos);
RpcFacade.Call<int>(MethodPath + "BatchImport", json);
BIFactory.MsgBuilder.Append("导出成功!");
}
public void UpdateOrInsert(Goods goods)
{
RpcFacade.Call<int>(MethodPath + "UpdateOrInsert", JsonConvert.SerializeObject(goods));
}
public void Stop(string code)
{
RpcFacade.Call<int>(MethodPath + "Stop", code);
}
public void Start(string code)
{
RpcFacade.Call<int>(MethodPath + "Start", code);
}
public void Delete(string code)
{
RpcFacade.Call<int>(MethodPath + "Delete", code);
}
void InitRpc()
{
try
{
RpcFacade.Init(_serverUrl, "B3QingFu");
}
catch (Exception ex)
{
if (ex.Message != "Can only start once")
throw;
}
}
}
}

+ 34
- 0
B3QingDaoWanFu/BLActions/BLActionUtil.cs View File

@ -0,0 +1,34 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using BWP.B3Frameworks.Utils;
using BWP.B3Sale.BO;
using Forks.EnterpriseServices.DomainObjects2;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
namespace BWP.B3QingDaoWanFu.BLActions
{
class BLActionUtil
{
public static void GetDepEmpByCustomer(IDmoSession session,long customerId,out long? depid,out long? empid)
{
depid = null;
empid = null;
var query = new DQueryDom(new JoinAlias(typeof(Customer)));
query.Columns.Add(DQSelectColumn.Field("Department_ID"));
query.Columns.Add(DQSelectColumn.Field("Employee_ID"));
query.Where.Conditions.Add(DQCondition.EQ("ID",customerId));
using (var reader=session.ExecuteReader(query))
{
if (reader.Read())
{
depid = (long?) reader[0];
empid = (long?) reader[1];
}
}
}
}
}

+ 82
- 0
B3QingDaoWanFu/BLActions/SaleOrderBLAction.cs View File

@ -0,0 +1,82 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using BWP.B3Sale.BO;
using Forks.EnterpriseServices.BusinessInterfaces;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
using TSingSoft.WebPluginFramework;
using TSingSoft.WebPluginFramework.BIPlugins.BLEvents;
namespace BWP.B3QingDaoWanFu.BLActions
{
class SaleOrderCreateUpdateDepEmpBLAction: IBLMethodAction
{
public void Execute(IDmoContext context, object dmo, object parameter)
{
var order = dmo as Order;
long? depid;
long? empid;
BLActionUtil.GetDepEmpByCustomer(context.Session,order.Customer_ID??0, out depid,out empid);
if (depid != null)
{
order.Department_ID = depid;
}
if (empid != null)
{
order.Employee_ID = empid;
}
}
public string Name
{
get { return "B3QingDaoWanFu.销售订单创建根据客户档案更新部门经办人"; }
}
public string Description
{
get { return "销售订单创建根据客户档案更新部门经办人"; }
}
public IList<string> Features
{
get { return new List<string>(); }
}
}
class SaleOrderCheckUpdateDepEmpBLAction : IBLMethodAction
{
public void Execute(IDmoContext context, object dmo, object parameter)
{
var order = dmo as Order;
long? depid;
long? empid;
BLActionUtil.GetDepEmpByCustomer(context.Session, order.Customer_ID ?? 0, out depid, out empid);
if (depid.HasValue || empid.HasValue)
{
var updateDom = new DQUpdateDom(typeof(Order));
if (depid.HasValue)
{
updateDom.Columns.Add(new DQUpdateColumn("Department_ID", depid));
}
if (empid.HasValue)
{
updateDom.Columns.Add(new DQUpdateColumn("Employee_ID", empid));
}
updateDom.Where.Conditions.Add(DQCondition.EQ("ID",order.ID));
context.Session.ExecuteNonQuery(updateDom);
}
}
public string Name
{
get { return "B3QingDaoWanFu.销售订单审核根据客户档案更新部门经办人"; }
}
public string Description
{
get { return "销售订单审核根据客户档案更新部门经办人"; }
}
public IList<string> Features
{
get { return new List<string>(); }
}
}
}

+ 39
- 0
B3QingDaoWanFu/BLActions/SaleOutStoreBLActions.cs View File

@ -0,0 +1,39 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using BWP.B3Sale.BL;
using BWP.B3Sale.BO;
using Forks.EnterpriseServices.BusinessInterfaces;
using TSingSoft.WebPluginFramework.BIPlugins.BLEvents;
namespace BWP.B3QingDaoWanFu.BLActions
{
//class SaleOutStoreCheckNullifyBLActions : IBLMethodAction
//{
// public void Execute(IDmoContext context, object dmo, object parameter)
// {
// var bl = BIFactory.Create<ISaleOutStoreBL>(context.Session);
// var outstore = dmo as SaleOutStore;
// if (outstore.Details.Count == 0)
// {
// bl.UnCheck(outstore);
// bl.Nullify(outstore);
// }
// }
// public string Name
// {
// get { return "B3QingDaoWanFu.销售出库审核作废没有明细的单据"; }
// }
// public string Description
// {
// get { return "销售出库审核作废没有明细的单据"; }
// }
// public IList<string> Features
// {
// get { return new List<string>(); }
// }
//}
}

+ 56
- 0
B3QingDaoWanFu/BO/Bill/CostRecord/CostRecord.cs View File

@ -0,0 +1,56 @@
using BWP.B3ButcherManage.BO;
using BWP.B3Frameworks;
using BWP.B3Frameworks.BO;
using Forks.EnterpriseServices;
using Forks.EnterpriseServices.DataForm;
using Forks.EnterpriseServices.DomainObjects2;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TSingSoft.WebControls2;
namespace BWP.B3QingDaoWanFu.BO
{
[DFClass, Serializable, LogicName("费用录入")]
public class CostRecord : DomainBill, IAccountingUnitBill
{
[LogicName("会计单位")]
[DFNotEmpty]
[DFExtProperty("WebControlType", DFEditControl.ChoiceBox)]
[DFDataKind(B3FrameworksConsts.DataSources.授权会计单位)]
[DFExtProperty(B3FrameworksConsts.DFExtProperties.QueryDataKind, B3FrameworksConsts.DataSources.授权会计单位全部)]
[DFExtProperty("DisplayField", "AccountingUnit_Name")]
public long? AccountingUnit_ID { get; set; }
DateTime date = DateTime.Today.AddDays(-1);
[LogicName("过磅日期")]
public DateTime Date { get { return date; } set { date = value; } }
[LogicName("收购类型")]
[DFNotEmpty]
[DFExtProperty("WebControlType", DFEditControl.ChoiceBox)]
[DFDataKind(B3ButcherManage.B3ButcherManageConsts.DataSources.收购类型)]
[DFExtProperty(B3FrameworksConsts.DFExtProperties.QueryDataKind, B3ButcherManage.B3ButcherManageConsts.DataSources.收购类型)]
[DFExtProperty("DisplayField", "PurchaseType_Name")]
public long? PurchaseType_ID { get; set; }
private CostRecord_DetailCollection _details = new CostRecord_DetailCollection();
[OneToMany(typeof(CostRecord_Detail), "ID")]
[Join("ID", "CostRecord_ID")]
public CostRecord_DetailCollection Details
{
get { return _details; }
}
[ReferenceTo(typeof(AccountingUnit), "Name")]
[LogicName("会计单位")]
[Join("AccountingUnit_ID", "ID")]
public string AccountingUnit_Name { get; set; }
[ReferenceTo(typeof(PurchaseType), "Name")]
[LogicName("收购类型")]
[Join("PurchaseType_ID", "ID")]
public string PurchaseType_Name { get; set; }
}
}

+ 56
- 0
B3QingDaoWanFu/BO/Bill/CostRecord/CostRecord_Detail.cs View File

@ -0,0 +1,56 @@
using BWP.B3ButcherManage.BO;
using BWP.B3Frameworks.BO;
using BWP.B3Frameworks.BO.MoneyTemplate;
using Forks.EnterpriseServices;
using Forks.EnterpriseServices.DataForm;
using Forks.EnterpriseServices.DomainObjects2;
using Forks.Utils;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace BWP.B3QingDaoWanFu.BO
{
[Serializable, DFClass, LogicName("费用录入_明细")]
public class CostRecord_Detail : Base
{
public long CostRecord_ID { get; set; }
[LogicName("过磅单号")]
public long WeightBill_ID { get; set; }
[LogicName("里程")]
public decimal? Mileage { get; set; }
[LogicName("人工费")]
public Money<>? JingJiFee { get; set; }
[LogicName("运费")]
public Money<>? TransferFee { get; set; }
[LogicName("供应商")]
[ReferenceTo(typeof(WeighBill), "Supplier_Name")]
[Join("WeightBill_ID", "ID")]
public string Supplier_Name { get; set; }
[LogicName("车辆")]
[ReferenceTo(typeof(WeighBill), "Car_Name")]
[Join("WeightBill_ID", "ID")]
public string Car_Name { get; set; }
[LogicName("经纪人")]
[ReferenceTo(typeof(WeighBill), "Employee_Name")]
[Join("WeightBill_ID", "ID")]
public string Employee_Name { get; set; }
[LogicName("头数")]
[ReferenceTo(typeof(WeighBill), "BuyNum")]
[Join("WeightBill_ID", "ID")]
public int? BuyNum { get; set; }
}
[Serializable]
public class CostRecord_DetailCollection : DmoCollection<CostRecord_Detail>
{ }
}

+ 17
- 0
B3QingDaoWanFu/BO/SaleOutStoreBarCodeToMESLog.cs View File

@ -0,0 +1,17 @@
using Forks.EnterpriseServices.DomainObjects2;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TSingSoft.WebPluginFramework;
namespace BWP.B3QingDaoWanFu.BO
{
[BOClass]
[KeyField("SaleOutStore_ID", KeyGenType.assigned)]
public class SaleOutStoreBarCodeToMESLog
{
public long SaleOutStore_ID { get; set; }
}
}

+ 3
- 2
B3QingDaoWanFu/Rpc/GatheringRpc.cs View File

@ -22,14 +22,15 @@ namespace BWP.B3QingDaoWanFu.Rpc
[Rpc] [Rpc]
public static long Insert(Gathering dmo) public static long Insert(Gathering dmo)
{ {
var outerCode = dmo.AccountCustomer_OuterCode.Trim();
using (var context = new TransactionContext()) using (var context = new TransactionContext())
{ {
var bl = BIFactory.Create<IGatheringBL>(context); var bl = BIFactory.Create<IGatheringBL>(context);
// bl.InitNewDmo(dmo); // bl.InitNewDmo(dmo);
dmo.Domain_ID = DomainContext.Current.ID; dmo.Domain_ID = DomainContext.Current.ID;
var customerId = BIFactory.Create<ICustomerDeviceSetBL>().GetAccountCustomer_ID(dmo.AccountCustomer_OuterCode);
var customerId = BIFactory.Create<ICustomerDeviceSetBL>().GetAccountCustomer_ID(outerCode);
if (customerId == 0) if (customerId == 0)
throw new ApplicationException(string.Format("没有设备号{0}的对应结账客户", dmo.AccountCustomer_OuterCode));
throw new ApplicationException(string.Format("没有设备号{0}的对应结账客户", outerCode));
dmo.AccountCustomer_ID = customerId; dmo.AccountCustomer_ID = customerId;
SetAccountCustomerInfo(dmo, context.Session); SetAccountCustomerInfo(dmo, context.Session);


+ 170
- 0
B3QingDaoWanFu/Tasks/SyncSaleOutStoreInfoToMES.cs View File

@ -0,0 +1,170 @@
using BWP.B3ProcurementInterface.Utils;
using BWP.B3QingDaoWanFu.BO;
using BWP.B3Sale.BO;
using Forks.EnterpriseServices.DomainObjects2;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
using Forks.EnterpriseServices.SqlDoms;
using Forks.Utils;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using TSingSoft.WebPluginFramework.TimerTasks;
using TSingSoft.WebPluginFramework;
using Forks.JsonRpc.Client;
using Newtonsoft.Json;
using BWP.B3Frameworks.BO.NamedValueTemplate;
using BWP.B3ButcherManage.Utils;
namespace BWP.B3QingDaoWanFu.Tasks
{
public class SyncSaleOutStoreInfoToMES : ITimerTask
{
volatile static object _lockObj = new object();
public void Execute()
{
if (!Monitor.TryEnter(_lockObj))
{
throw new SameTaskNotFinishException(this);
}
try
{
DoExecute();
}
finally
{
Monitor.Exit(_lockObj);
}
}
private void DoExecute()
{
if (!ClientServerFacedRpcFacadeUtil.InitRpcFacade())
return;
var main = new JoinAlias(typeof(SaleOutStore));
var relate = new JoinAlias(typeof(SaleOutStoreBarCodeToMESLog));
var detail = new JoinAlias(typeof(SaleOutStore_Detail));
var weight = new JoinAlias(typeof(WeightingInfor));
var scan = new JoinAlias(typeof(WeightingInfo_ScanDetail));
var temp = new JoinAlias(typeof(Temp));
var query = new DQueryDom(main);
query.From.AddJoin(JoinType.Left, new DQDmoSource(relate), DQCondition.EQ(main, "ID", relate, "SaleOutStore_ID"));
query.From.AddJoin(JoinType.Left, new DQDmoSource(detail), DQCondition.EQ(main, "ID", detail, "SaleOutStore_ID"));
query.From.AddJoin(JoinType.Left, new DQDmoSource(weight), DQCondition.And(DQCondition.EQ(detail, "ID", weight, "DetailID"), DQCondition.EQ(weight, "BillType", DmoTypeIDAttribute.GetID(typeof(SaleOutStore)))));
query.From.AddJoin(JoinType.Left, new DQDmoSource(scan), DQCondition.And(DQCondition.EQ(detail, "ID", scan, "Detail_ID"), DQCondition.EQ(weight, "ID", scan, "WeightingInfo_ID")));
query.RegisterQueryTable(typeof(Temp), new string[] { "GroupID", "Weight" }, Temp.GetQueryDom());
query.From.AddJoin(JoinType.Left, new DQDmoSource(temp), DQCondition.EQ(detail, "ID", temp, "GroupID"));
query.Columns.Add(DQSelectColumn.Field("ID", main));
query.Columns.Add(DQSelectColumn.Field("BarCode", scan));
query.Columns.Add(DQSelectColumn.Field("NetWeight", weight));
query.Columns.Add(DQSelectColumn.Field("ID", detail));
query.Columns.Add(DQSelectColumn.Field("LoadTime", main));
query.Columns.Add(DQSelectColumn.Field("Goods_Code", detail));
query.Columns.Add(DQSelectColumn.Field("Weight", temp));
query.Where.Conditions.Add(DQCondition.And(DQCondition.GreaterThanOrEqual("BillState", .), DQCondition.IsNull(DQExpression.Field(relate, "SaleOutStore_ID")), DQCondition.IsNotNull(DQExpression.Field(scan, "ID"))));
query.OrderBy.Expressions.Add(DQOrderByExpression.Create(main, "ID"));
query.OrderBy.Expressions.Add(DQOrderByExpression.Create(weight, "NetWeight", true));
using (var session = Dmo.NewSession())
{
var list = new List<CarcassSaleOutStoreObj>();
var ids = new List<long>();
var discont = new Dictionary<long, decimal>();
using (var reader = session.ExecuteReader(query))
{
while (reader.Read())
{
var id = (long)reader[0];
if (!ids.Contains(id))
ids.Add(id);
var entity = new CarcassSaleOutStoreObj();
entity.BarCode = (string)reader[1];
var wv = ((Money<decimal>?)reader[2]).EToDecimal();
entity.GroupID = (long)reader[3];
if (wv < 0)
{
var first = list.FirstOrDefault(x => x.GroupID == entity.GroupID && x.BarCode == entity.BarCode);
if (first != null)
list.Remove(first);
continue;
}
entity.Time = (DateTime?)reader[4];
entity.SaleGoods_Code = (string)reader[5];
entity.Weight = (decimal?)reader[6];
list.Add(entity);
}
}
if (ids.Count == 0)
return;
if (list.Any())
{
foreach (var g in list.GroupBy(x => x.GroupID))
{
var first = true;
foreach (var item in g)
{
if (first)
first = false;
else
item.Weight = 0;
}
}
var slist = TraceBackInfoUtil.SplitList(list, 1000);
foreach (var items in slist)
{
var par = JsonConvert.SerializeObject(items);
var json = RpcFacade.Call<int>("/MainSystem/B3ClientService/Rpcs/CarcassSaleOutStoreRpc/UploadCarcassInfo", par);
}
}
foreach (var item in ids)
session.Insert(new SaleOutStoreBarCodeToMESLog { SaleOutStore_ID = item });
session.Commit();
}
}
public string Name
{
get { return "上传审核的销售出库扫码信息到MES"; }
}
class Temp
{
public long GroupID { get; set; }
public decimal? Weight { get; set; }
public static DQueryDom GetQueryDom()
{
var main = new JoinAlias(typeof(SaleOutStore));
var relate = new JoinAlias(typeof(SaleOutStoreBarCodeToMESLog));
var detail = new JoinAlias(typeof(SaleOutStore_Detail));
var weight = new JoinAlias(typeof(WeightingInfor));
var query = new DQueryDom(main);
query.From.AddJoin(JoinType.Left, new DQDmoSource(relate), DQCondition.EQ(main, "ID", relate, "SaleOutStore_ID"));
query.From.AddJoin(JoinType.Left, new DQDmoSource(detail), DQCondition.EQ(main, "ID", detail, "SaleOutStore_ID"));
query.From.AddJoin(JoinType.Left, new DQDmoSource(weight), DQCondition.And(DQCondition.EQ(detail, "ID", weight, "DetailID"), DQCondition.EQ(weight, "BillType", DmoTypeIDAttribute.GetID(typeof(SaleOutStore)))));
query.Columns.Add(DQSelectColumn.Field("ID", detail));
query.Columns.Add(DQSelectColumn.Sum(weight, "NetWeight"));
query.GroupBy.Expressions.Add(DQExpression.Field(detail, "ID"));
query.Where.Conditions.Add(DQCondition.And(DQCondition.GreaterThanOrEqual("BillState", .), DQCondition.IsNull(DQExpression.Field(relate, "SaleOutStore_ID")), DQCondition.IsNotNull(DQExpression.Field(weight, "ID"))));
return query;
}
}
}
class CarcassSaleOutStoreObj
{
public string BarCode { get; set; }
public decimal? Weight { get; set; }
public DateTime? Time { get; set; }
public long? GroupID { get; set; }
public string SaleGoods_Code { get; set; }
}
}

+ 65
- 0
B3QingDaoWanFu/TypeIOCs/GoodsBLTypeIOC.cs View File

@ -0,0 +1,65 @@
using BWP.B3Frameworks;
using BWP.B3ProcurementInterface.Utils;
using BWP.B3QingDaoWanFu.BL;
using BWP.B3UnitedInfos.BL;
using BWP.B3UnitedInfos.BO;
using Forks.EnterpriseServices.BusinessInterfaces;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace BWP.B3QingDaoWanFu.TypeIOCs
{
[TypeIOC(typeof(GoodsBL), typeof(GoodsBL.BaseBLIOCs.AfterSave))]
public class GoodsAfterSave : GoodsBL.BaseBLIOCs.AfterSave
{
public void Invoke(IDmoContext context, Goods dmo)
{
if (ClientServerFacedRpcFacadeUtil.InitRpcFacade())
{
var bl = BIFactory.Create<IGoodsExportBL>(context);
bl.UpdateOrInsert(dmo);
}
}
}
[TypeIOC(typeof(GoodsBL), typeof(GoodsBL.BaseInfoBLIOCs.AfterStart))]
public class GoodsAfterStart : GoodsBL.BaseInfoBLIOCs.AfterStart
{
public void Invoke(IDmoContext context, Goods dmo)
{
if (ClientServerFacedRpcFacadeUtil.InitRpcFacade())
{
var bl = BIFactory.Create<IGoodsExportBL>(context);
bl.Start(dmo.Code);
}
}
}
[TypeIOC(typeof(GoodsBL), typeof(GoodsBL.BaseInfoBLIOCs.AfterStop))]
public class GoodsAfterStop : GoodsBL.BaseInfoBLIOCs.AfterStop
{
public void Invoke(IDmoContext context, Goods dmo)
{
if (ClientServerFacedRpcFacadeUtil.InitRpcFacade())
{
var bl = BIFactory.Create<IGoodsExportBL>(context);
bl.Stop(dmo.Code);
}
}
}
[TypeIOC(typeof(GoodsBL), typeof(GoodsBL.BaseBLIOCs.AfterDelete))]
public class GoodsAfterDelete : GoodsBL.BaseBLIOCs.AfterDelete
{
public void Invoke(IDmoContext context, Goods dmo)
{
if (ClientServerFacedRpcFacadeUtil.InitRpcFacade())
{
var bl = BIFactory.Create<IGoodsExportBL>(context);
bl.Delete(dmo.Code);
}
}
}
}

+ 166
- 15
B3QingDaoWanFu/TypeIOCs/SaleOutStoreBLTypeIoc.cs View File

@ -12,13 +12,17 @@ using Forks.EnterpriseServices.DomainObjects2.DQuery;
using Forks.EnterpriseServices.SqlDoms; using Forks.EnterpriseServices.SqlDoms;
using Forks.Utils; using Forks.Utils;
using TSingSoft.WebPluginFramework; using TSingSoft.WebPluginFramework;
using BWP.B3ButcherManage.BO;
using BWP.B3QingDaoWanFu.Utils;
using Newtonsoft.Json;
using System.Net;
using System.IO;
using TSingSoft.WebPluginFramework.QueueTasks;
namespace BWP.B3QingDaoWanFu.TypeIOCs namespace BWP.B3QingDaoWanFu.TypeIOCs
{ {
[TypeIOC(typeof(SaleOutStoreBL), typeof(SaleOutStoreBL.BaseBLIOCs.BeforeSave))] [TypeIOC(typeof(SaleOutStoreBL), typeof(SaleOutStoreBL.BaseBLIOCs.BeforeSave))]
public class SaleOutStoreBLTypeIoc:SaleOutStoreBL.BaseBLIOCs.BeforeSave
public class SaleOutStoreBLTypeIoc : SaleOutStoreBL.BaseBLIOCs.BeforeSave
{ {
public void Invoke(IDmoContext context, SaleOutStore dmo) public void Invoke(IDmoContext context, SaleOutStore dmo)
{ {
@ -26,33 +30,180 @@ namespace BWP.B3QingDaoWanFu.TypeIOCs
{ {
detail.FactoryPrice = GetFactoryPrice(context, dmo, detail.SaleGoods_ID); detail.FactoryPrice = GetFactoryPrice(context, dmo, detail.SaleGoods_ID);
} }
CheckStoreGoodsConsistent(context, dmo);
}
void CheckStoreGoodsConsistent(IDmoContext context, SaleOutStore dmo)
{
var notchntrolstoreids = new WanFuOnlineConfig().SaleoutstoreSaveNotCheckStoreGoodsConsistent.Value.ToList();
if (notchntrolstoreids.Count == 0)
{
return;
}
if (notchntrolstoreids.Contains(Convert.ToInt32((dmo.Store_ID ?? 0))))
{
return;
}
var query = new DmoQuery(typeof(SaleGoods_Accounting_Store));
query.Where.Conditions.Add(DQCondition.EQ("AccountingUnit_ID", dmo.AccountingUnit_ID));
query.Where.Conditions.Add(DQCondition.InList(DQExpression.Field("SaleGoods_ID"), dmo.Details.Select(x => DQExpression.Value(x.SaleGoods_ID)).ToArray()));
var list = context.Session.ExecuteList(query).Cast<SaleGoods_Accounting_Store>().ToList();
foreach (SaleGoods_Accounting_Store storeset in list)
{
if (storeset.Store_ID != dmo.Store_ID)
{
throw new Exception(storeset.SaleGoods_Name + "配置的仓库:" + storeset.Store_Name + " 与单据上的仓库不一致,不允许保存");
}
}
} }
private Money<decimal>? GetFactoryPrice(IDmoContext context, SaleOutStore dmo, long detailSaleGoodsId) private Money<decimal>? GetFactoryPrice(IDmoContext context, SaleOutStore dmo, long detailSaleGoodsId)
{ {
var detail=new JoinAlias(typeof(DynamicPrice_Detail));
var query=new DQueryDom(detail);
var detail = new JoinAlias(typeof(DynamicPrice_Detail));
var query = new DQueryDom(detail);
query.Where.Conditions.Add(DQCondition.EQ("SaleGoods_ID", detailSaleGoodsId)); query.Where.Conditions.Add(DQCondition.EQ("SaleGoods_ID", detailSaleGoodsId));
query.Where.Conditions.Add(DQCondition.InSubQuery(DQExpression.Field("DynamicPrice_ID"),GetSubQueryDom(dmo)));
query.Where.Conditions.Add(DQCondition.InSubQuery(DQExpression.Field("DynamicPrice_ID"), GetSubQueryDom(dmo)));
query.Columns.Add(DQSelectColumn.Field("Price")); query.Columns.Add(DQSelectColumn.Field("Price"));
return query.EExecuteScalar<Money<decimal>?>(context.Session); return query.EExecuteScalar<Money<decimal>?>(context.Session);
} }
private DQueryDom GetSubQueryDom( SaleOutStore dmo)
private DQueryDom GetSubQueryDom(SaleOutStore dmo)
{ {
var bill=new JoinAlias("bill",typeof(DynamicPrice));
var detail=new JoinAlias("detail",typeof(DynamicPrice_AccountingUnitDetail));
var query=new DQueryDom(bill);
query.From.AddJoin(JoinType.Inner, new DQDmoSource(detail),DQCondition.EQ(bill,"ID",detail, "DynamicPrice_ID") );
var bill = new JoinAlias("bill", typeof(DynamicPrice));
var detail = new JoinAlias("detail", typeof(DynamicPrice_AccountingUnitDetail));
var query = new DQueryDom(bill);
query.From.AddJoin(JoinType.Inner, new DQDmoSource(detail), DQCondition.EQ(bill, "ID", detail, "DynamicPrice_ID"));
query.AddBillStateCondition(bill); query.AddBillStateCondition(bill);
query.Where.Conditions.Add(DQCondition.EQ(detail, "AccountingUnit_ID",dmo.AccountingUnit_ID));
query.Where.Conditions.Add(DQCondition.EQ(detail, "AccountingUnit_ID", dmo.AccountingUnit_ID));
query.Where.Conditions.Add(DQCondition.LessThanOrEqual(bill, "StartPriceDate", dmo.LoadTime)); query.Where.Conditions.Add(DQCondition.LessThanOrEqual(bill, "StartPriceDate", dmo.LoadTime));
query.OrderBy.Expressions.Add(DQOrderByExpression.Create(bill,"ID",true));
query.Columns.Add(DQSelectColumn.Field("ID",bill));
query.Range=SelectRange.Top(1);
query.OrderBy.Expressions.Add(DQOrderByExpression.Create(bill, "ID", true));
query.Columns.Add(DQSelectColumn.Field("ID", bill));
query.Range = SelectRange.Top(1);
return query; return query;
} }
} }
[TypeIOC(typeof(SaleOutStoreBL), typeof(SaleOutStoreBL.BillBLIOCs.AfterCheck))]
public class SaleOutStoreCheckBLTypeIoc : SaleOutStoreBL.BillBLIOCs.AfterCheck
{
public void Invoke(IDmoContext context, SaleOutStore dmo)
{
var task = new SaleInfoTractBackTask(dmo.ID);
task.AddTaskUser_ID = BLContext.User.ID;
task.DomainUser_ID = DomainContext.Current.DomainUser.ID;
QueueTaskService.Add(task);
}
}
[Serializable]
class SaleInfoTractBackTask : QueueTaskBase
{
public long BillID { get; set; }
public long DomainUser_ID { get; set; }
public SaleInfoTractBackTask(long id)
{
BillID = id;
}
public override bool PersistTask
{
get
{
return true;
}
}
protected override bool SingleTaskInQueue
{
get
{
return true;
}
}
public override void Execute(QueueTaskContext context)
{
using (var scope = new SpecialDomainUserBLScope(DomainUser_ID))
{
var config = new B3ButcherManageOnlineConfiguration();
if (string.IsNullOrEmpty(config.TraceBackServerUrl))
return;
var url = config.TraceBackServerUrl + "InsertSaleOutStore";
using (var session = Dmo.NewSession())
{
var infos = GetTraceBackInfos(session, BillID);
var list = TraceBackInfoUtil.SplitList(infos, 1000);
foreach (var letList in list)
{
var arr = JsonConvert.SerializeObject(letList);
TraceBackInfoUtil.Insert(url, arr);
}
}
}
}
List<TractBillSaleInfo> GetTraceBackInfos(IDmoSession session, long id)
{
var detail = new JoinAlias(typeof(SaleOutStore_Detail));
var bill = new JoinAlias(typeof(SaleOutStore));
var weight = new JoinAlias(typeof(WeightingInfor));
var scan = new JoinAlias(typeof(WeightingInfo_ScanDetail));
var query = new DQueryDom(detail);
query.From.AddJoin(JoinType.Left, new DQDmoSource(bill), DQCondition.EQ(detail, "SaleOutStore_ID", bill, "ID"));
query.From.AddJoin(JoinType.Left, new DQDmoSource(weight), DQCondition.And(DQCondition.EQ(detail, "ID", weight, "DetailID"), DQCondition.EQ(weight, "BillType", DmoTypeIDAttribute.GetID(typeof(SaleOutStore)))));
query.From.AddJoin(JoinType.Left, new DQDmoSource(scan), DQCondition.And(DQCondition.EQ(detail, "ID", scan, "Detail_ID"), DQCondition.EQ(weight, "ID", scan, "WeightingInfo_ID")));
query.Columns.Add(DQSelectColumn.Field("Customer_Name", bill));
query.Columns.Add(DQSelectColumn.Field("Car_Name", bill));
query.Columns.Add(DQSelectColumn.Field("LoadTime", bill));
query.Columns.Add(DQSelectColumn.Field("BarCode", scan));
query.Columns.Add(DQSelectColumn.Field("NetWeight", weight));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ(detail, "SaleOutStore_ID", id), DQCondition.IsNotNull(DQExpression.Field(scan, "ID"))));
query.OrderBy.Expressions.Add(DQOrderByExpression.Create(weight, "NetWeight", true));
var list = new List<TractBillSaleInfo>();
using (var reader = session.ExecuteReader(query))
{
while (reader.Read())
{
var entity = new TractBillSaleInfo();
entity.Code = (string)reader[3];
var wv = (Money<decimal>)reader[4];
if (wv < 0)
{
var first = list.FirstOrDefault(x => x.Code == entity.Code);
if (first != null)
list.Remove(first);
continue;
}
entity.SendCustomer = (string)reader[0];
entity.CarNo = (string)reader[1];
entity.SendDate = ((DateTime)reader[2]).ToString("yyyyMMdd");
list.Add(entity);
}
}
return list;
}
public override string Name
{
get { return string.Format("抽取销售出库单No.{0}到追溯信息到服务器", BillID); }
}
}
class TractBillSaleInfo
{
//[LogicName("条码")]
public string Code { get; set; }
public string SendCustomer { get; set; }
public string CarNo { get; set; }
public string SendDate { get; set; }
}
} }

+ 67
- 8
B3QingDaoWanFu/TypeIOCs/StatPayBLTypeIoc.cs View File

@ -10,31 +10,88 @@ using BWP.B3Frameworks;
using Forks.EnterpriseServices.BusinessInterfaces; using Forks.EnterpriseServices.BusinessInterfaces;
using Forks.Utils; using Forks.Utils;
using TSingSoft.WebPluginFramework; using TSingSoft.WebPluginFramework;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
using Forks.EnterpriseServices.DomainObjects2;
using BWP.B3QingDaoWanFu.BO;
using Forks.EnterpriseServices.SqlDoms;
using BWP.B3Frameworks.BO.NamedValueTemplate;
using BWP.B3Frameworks.BO.MoneyTemplate;
namespace BWP.B3QingDaoWanFu.TypeIOCs namespace BWP.B3QingDaoWanFu.TypeIOCs
{ {
[TypeIOC(typeof(StatPayBL), typeof(StatPayBL.BaseBLIOCs.BeforeSave))]
public class StatPayBeforeSaveTypeIoc : StatPayBL.BaseBLIOCs.BeforeSave
//[TypeIOC(typeof(StatPayBL), typeof(StatPayBL.BaseBLIOCs.AfterSave))]
//public class StatPayBeforeSaveTypeIoc : StatPayBL.BaseBLIOCs.AfterSave
//{
// public void Invoke(IDmoContext context, StatPay dmo)
// {
// }
//}
[TypeIOC(typeof(StatPayBL), typeof(StatPayBL.BaseBLIOCs.AfterInsert))]
public class StatPayAfterInsertBLTypeIoc : StatPayBL.BaseBLIOCs.AfterInsert
{ {
public void Invoke(IDmoContext context, StatPay dmo) public void Invoke(IDmoContext context, StatPay dmo)
{ {
var ID = 36;
dmo.DeadPigRewardMoney = dmo.OtherRewardDetails.Where(x=>x.Sanction_ID== ID).Sum(x => (x.Money ?? 0).Value);
var butcherdetail = dmo.Details.FirstOrDefault(x => x.HogGrade_ID.HasValue);
if (butcherdetail != null)
if (dmo.Weigh_ID == null)
return;
var details = GetFarmerDetail(context.Session, dmo.Weigh_ID.Value);
var total = details.Sum(x => x.Item2 ?? 0);
foreach (var detail in details)
{ {
dmo.HogGrade_ID = butcherdetail.HogGrade_ID;
var arr = new List<Tuple<string, object>>();
if (total != 0)
{
var v = dmo.RealWeight * detail.Item2 / total;
if (v.HasValue)
{
v = decimal.Round(v.Value, 2);
arr.Add(new Tuple<string, object>("ExeWeight", v));
}
}
if (detail.Item3 != null)
{
arr.Add(new Tuple<string, object>("ExtMoney", detail.Item3));
}
if (arr.Any())
UpdateProperty(detail.Item1, context.Session, arr.ToArray());
} }
} }
List<Tuple<long, int?, decimal?>> GetFarmerDetail(IDmoSession session, long weightID)
{
var query = new DQueryDom(new JoinAlias(typeof(Weigh_FarmerDetail)));
query.Where.Conditions.Add(DQCondition.EQ("Weigh_ID", weightID));
query.Columns.Add(DQSelectColumn.Field("ID"));
query.Columns.Add(DQSelectColumn.Field("Number"));
query.Columns.Add(DQSelectColumn.Field("Money"));
return query.EExecuteList<long, int?, decimal?>(session);
}
void UpdateProperty(long id, IDmoSession session, params Tuple<string, object>[] par)
{
var update = new DQUpdateDom(typeof(Weigh_FarmerDetail));
update.Where.Conditions.Add(DQCondition.EQ("ID", id));
foreach (var item in par)
update.Columns.Add(new DQUpdateColumn(item.Item1, item.Item2));
session.ExecuteNonQuery(update);
}
} }
[TypeIOC(typeof(StatPayBL), typeof(StatPayBL.BaseBLIOCs.AfterSave))] [TypeIOC(typeof(StatPayBL), typeof(StatPayBL.BaseBLIOCs.AfterSave))]
public class StatPayAfterSaveBLTypeIoc : StatPayBL.BaseBLIOCs.AfterSave public class StatPayAfterSaveBLTypeIoc : StatPayBL.BaseBLIOCs.AfterSave
{ {
public void Invoke(IDmoContext context, StatPay dmo) public void Invoke(IDmoContext context, StatPay dmo)
{ {
var ID = 36;
dmo.DeadPigRewardMoney = dmo.OtherRewardDetails.Where(x => x.Sanction_ID == ID).Sum(x => (x.Money ?? 0).Value);
var butcherdetail = dmo.Details.FirstOrDefault(x => x.HogGrade_ID.HasValue);
if (butcherdetail != null)
{
dmo.HogGrade_ID = butcherdetail.HogGrade_ID;
}
//自定义单价 //自定义单价
if (dmo.UpdateActualPrice) if (dmo.UpdateActualPrice)
{ {
@ -43,7 +100,9 @@ namespace BWP.B3QingDaoWanFu.TypeIOCs
if (dmo.PurchaseType_Name == "业务") if (dmo.PurchaseType_Name == "业务")
{ {
dmo.ActualMoney = (dmo.ShackMoney.EToDecimal() ?? 0) + (dmo.JingJianFee.EToDecimal() ?? 0) - (dmo.DiscontMoney.EToDecimal() ?? 0);
if (dmo.FarmerDetails.Any())
dmo.ShackMoney = dmo.FarmerDetails.Sum(x => x.ExtMoney ?? 0);
dmo.ActualMoney = (dmo.ShackMoney.EToDecimal() ?? 0);
Money<decimal>? we = null; Money<decimal>? we = null;
if (dmo.ShackWeight != 0) if (dmo.ShackWeight != 0)
we = dmo.ShackWeight; we = dmo.ShackWeight;


+ 15
- 0
B3QingDaoWanFu/Utils/B3QingDaoWanFuConsts.cs View File

@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace BWP.B3QingDaoWanFu
{
public class B3QingDaoWanFuConsts
{
internal static class DmoTypeIDOffsets
{
public const byte GoodsExport = 1;
}
}
}

+ 14
- 0
B3QingDaoWanFu/Utils/WanFuOnlineConfig.cs View File

@ -18,6 +18,20 @@ namespace BWP.B3QingDaoWanFu.Utils
ConfigurationUtil.Fill(this); ConfigurationUtil.Fill(this);
} }
private IntListConfigRef _saleoutstoreSaveNotCheckStoreGoodsConsistent = new IntListConfigRef();
[LogicName("销售出库保存不受存货仓库设置控制的仓库ID")]
[ConfigurationItemGroup("青岛万福")]
[ConfigurationItemDescription("销售出库保存不是存货仓库设置控制的仓库ID")]
[DomainConfigurationItem]
public IntListConfigRef SaleoutstoreSaveNotCheckStoreGoodsConsistent
{
get { return _saleoutstoreSaveNotCheckStoreGoodsConsistent; }
set { _saleoutstoreSaveNotCheckStoreGoodsConsistent = value; }
}
private IntConfigRef _receiptTypeID = new IntConfigRef(0); private IntConfigRef _receiptTypeID = new IntConfigRef(0);


+ 1
- 1
B3WanFuSaleWebService/RpcHelper/RpcHelperUtil.cs View File

@ -60,7 +60,7 @@ namespace RpcHelper {
results.SendResult.Add(r); results.SendResult.Add(r);
var gathering = new RpcObject("/MainSystem/B3Sale/BO/Gathering"); var gathering = new RpcObject("/MainSystem/B3Sale/BO/Gathering");
SetString(gathering, "AccountCustomer_OuterCode", bill.Head.CustomerCode);// 客户的外部编码
SetString(gathering, "AccountCustomer_OuterCode", bill.Head.CustomerCode.Trim());// 客户的外部编码
SetDateTime(gathering, "GatheringTime", bill.Head.Time); SetDateTime(gathering, "GatheringTime", bill.Head.Time);
SetDecimal(gathering, "GatheringMoney", bill.Head.Money); SetDecimal(gathering, "GatheringMoney", bill.Head.Money);


+ 25
- 0
WebFolder/config/billreports/B3QingDaoWanFu/CostRecordPrint.xml View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8" ?>
<BillReports xmlns="urn:BillReports" version="1.0" displayName="费用录入" phyName="费用录入">
<Report phyName="标准格式">
<BillReport xmlns="urn:BillReport" version="1" displayName="标准格式" >
<Bands>
<TextBand fontName="黑体" fontSize="15" align="Center">费用录入№$Dmo.ID</TextBand>
<DFInfoBand object="$Dmo" cols="4">
<Field name="AccountingUnit_Name" lblWidth="4"/>
<Field name="Date" lblWidth="4"/>
<Field name="PurchaseType_Name" lblWidth="4"/>
</DFInfoBand>
<HtmlBand>
<![CDATA[<h2>单据明细</h2>]]>
</HtmlBand>
<DFListBand collection="$Details" itemType="$DetailType" enablePaging="true" >
<Field name="WeightBill_ID"/>
<Field name="Supplier_Name"/>
<Field name="JingJiFee" />
<Field name="TransferFee" />
</DFListBand>
<PagerBand/>
</Bands>
</BillReport>
</Report>
</BillReports>

+ 21
- 3
WebFolder/config/plugins/B3QingDaoWanFu.plugin View File

@ -11,7 +11,7 @@
<File name="B3QingDaoWanFu.Web.dll" type="web"/> <File name="B3QingDaoWanFu.Web.dll" type="web"/>
</Assemblies> </Assemblies>
<ContentFiles> <ContentFiles>
<!--<Folder name="config/billreports"/>-->
<Folder name="config/billreports"/>
</ContentFiles> </ContentFiles>
<DbResources></DbResources> <DbResources></DbResources>
@ -22,7 +22,8 @@
<Function index="0" name="收购综合报表"/> <Function index="0" name="收购综合报表"/>
<Function index="1" name="异常猪分析"/> <Function index="1" name="异常猪分析"/>
<Function index="2" name="付款清单导出"/> <Function index="2" name="付款清单导出"/>
<Function index="3" name="销售出库分析"/>
<Function index="3" name="结算单分析"/>
<Function index="4" name="销售出库分析"/>
</FunctionGroup> </FunctionGroup>
<FunctionGroup name="配置" roleSchemas="employee"> <FunctionGroup name="配置" roleSchemas="employee">
<Function index="0" name="结账客户设备配置"/> <Function index="0" name="结账客户设备配置"/>
@ -30,6 +31,21 @@
<FunctionGroup name="工具" roleSchemas="employee"> <FunctionGroup name="工具" roleSchemas="employee">
<Function index="0" name="按线路派车"/> <Function index="0" name="按线路派车"/>
</FunctionGroup> </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="作废" />
<Function index="10" name="完毕"/>
<Function index="11" name="撤销完毕"/>
<Function index="12" name="打印"/>
</FunctionGroup>
</Security> </Security>
<Menus> <Menus>
<Menu id="0001" name="/B3青岛万福/报表/收购综合报表" roles="B3QingDaoWanFu.报表.收购综合报表" url="B3QingDaoWanFu/Reports/ComprehensiveReport.aspx"/> <Menu id="0001" name="/B3青岛万福/报表/收购综合报表" roles="B3QingDaoWanFu.报表.收购综合报表" url="B3QingDaoWanFu/Reports/ComprehensiveReport.aspx"/>
@ -37,7 +53,9 @@
<Menu id="0003" name="/B3青岛万福/按线路派车" roles="B3QingDaoWanFu.工具.按线路派车" url="B3QingDaoWanFu/Tools/CarLoadingBySendLinePage.aspx"/> <Menu id="0003" name="/B3青岛万福/按线路派车" roles="B3QingDaoWanFu.工具.按线路派车" url="B3QingDaoWanFu/Tools/CarLoadingBySendLinePage.aspx"/>
<Menu id="0004" name="/B3青岛万福/报表/异常猪分析" roles="B3QingDaoWanFu.报表.异常猪分析" url="B3QingDaoWanFu/Reports/ButcherPigInfo.aspx"/> <Menu id="0004" name="/B3青岛万福/报表/异常猪分析" roles="B3QingDaoWanFu.报表.异常猪分析" url="B3QingDaoWanFu/Reports/ButcherPigInfo.aspx"/>
<Menu id="0005" name="/B3青岛万福/报表/付款清单导出" roles="B3QingDaoWanFu.报表.付款清单导出" url="B3QingDaoWanFu/Reports/PayInfoExport.aspx"/> <Menu id="0005" name="/B3青岛万福/报表/付款清单导出" roles="B3QingDaoWanFu.报表.付款清单导出" url="B3QingDaoWanFu/Reports/PayInfoExport.aspx"/>
<Menu id="0006" name="/B3青岛万福/报表/万福销售出库分析" roles="B3QingDaoWanFu.报表.销售出库分析" url="B3QingDaoWanFu/SaleOutStore_/SaleOutStoreSimpleAnayse.aspx"/>
<Menu id="0006" name="/B3青岛万福/业务单据/费用录入" roles="B3QingDaoWanFu.费用录入.访问" url="B3QingDaoWanFu/Bills/CostRecord_/CostRecordList.aspx"/>
<Menu id="0007" name="/B3青岛万福/报表/万福销售出库分析" roles="B3QingDaoWanFu.报表.销售出库分析" url="B3QingDaoWanFu/SaleOutStore_/SaleOutStoreSimpleAnayse.aspx"/>
</Menus> </Menus>
<Features> <Features>
</Features> </Features>


Loading…
Cancel
Save