Browse Source

需求单No.135782

master
robin 8 years ago
parent
commit
d6ca0b45d7
9 changed files with 369 additions and 4 deletions
  1. +6
    -1
      BWP.B3ButcherManageExport.Web/BWP.B3ButcherManageExport.Web.csproj
  2. +2
    -2
      BWP.B3ButcherManageExport.Web/Pages/B3ButcherManageExport/EAS_/PayToEasVoucherList.cs
  3. +103
    -0
      BWP.B3ButcherManageExport.Web/Pages/B3ButcherManageExport/EAS_/StatPayToEasVoucherList.cs
  4. +72
    -0
      BWP.B3ButcherManageExport.Web/Pages/B3ButcherManageExport/EAS_/StatPayToEasVoucherList.xml
  5. +1
    -0
      BWP.B3ButcherManageExport/B3ButcherManageExportConsts.cs
  6. +0
    -1
      BWP.B3ButcherManageExport/BL/EAS/PayToEasVoucherBL.cs
  7. +183
    -0
      BWP.B3ButcherManageExport/BL/EAS/StatPayToEasVoucherBL.cs
  8. +1
    -0
      BWP.B3ButcherManageExport/BWP.B3ButcherManageExport.csproj
  9. +1
    -0
      WebFolder/Config/Plugins/B3ButcherManageExport.Plugin

+ 6
- 1
BWP.B3ButcherManageExport.Web/BWP.B3ButcherManageExport.Web.csproj View File

@ -77,6 +77,9 @@
<Compile Include="Pages\B3ButcherManageExport\EAS_\PayToEasVoucherList.cs"> <Compile Include="Pages\B3ButcherManageExport\EAS_\PayToEasVoucherList.cs">
<SubType>ASPXCodeBehind</SubType> <SubType>ASPXCodeBehind</SubType>
</Compile> </Compile>
<Compile Include="Pages\B3ButcherManageExport\EAS_\StatPayToEasVoucherList.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="PluginClass.cs" /> <Compile Include="PluginClass.cs" />
</ItemGroup> </ItemGroup>
@ -86,7 +89,9 @@
<Name>BWP.B3ButcherManageExport</Name> <Name>BWP.B3ButcherManageExport</Name>
</ProjectReference> </ProjectReference>
</ItemGroup> </ItemGroup>
<ItemGroup />
<ItemGroup>
<EmbeddedResource Include="Pages\B3ButcherManageExport\EAS_\StatPayToEasVoucherList.xml" />
</ItemGroup>
<ItemGroup> <ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5"> <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible> <Visible>False</Visible>


+ 2
- 2
BWP.B3ButcherManageExport.Web/Pages/B3ButcherManageExport/EAS_/PayToEasVoucherList.cs View File

@ -23,8 +23,8 @@ namespace BWP.Web.Pages.B3ButcherManageExport.EAS_
} }
if (_dfcUrl.IsEmpty) { if (_dfcUrl.IsEmpty) {
throw new ApplicationException("请选择外部系统!"); throw new ApplicationException("请选择外部系统!");
}
BL.Export(idList, long.Parse(_dfcUrl.Value), null);
}
BL.Export(idList, long.Parse(_dfcUrl.Value), _billDate.Date);
return BIFactory.GetLastMessage(); return BIFactory.GetLastMessage();
} }


+ 103
- 0
BWP.B3ButcherManageExport.Web/Pages/B3ButcherManageExport/EAS_/StatPayToEasVoucherList.cs View File

@ -0,0 +1,103 @@
using System;
using System.Collections.Generic;
using BWP.B3ButcherManage.BO;
using BWP.B3ButcherManageExport.BL;
using BWP.B3ExportBase;
using BWP.B3ExportBase.Utils;
using BWP.B3Frameworks;
using BWP.Web.Pages.B3ExportBase;
using Forks.EnterpriseServices.BusinessInterfaces;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
using TSingSoft.WebControls2;
namespace BWP.Web.Pages.B3ButcherManageExport.EAS_
{
public class StatPayToEasVoucherList : ExportBaseList<StatPay, IStatPayToEasVoucherBL> {
protected override string Caption {
get { return "屠宰结算单导EAS凭证"; }
}
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), _billDate.Date);
return BIFactory.GetLastMessage();
}
private ChoiceBox _dfcUrl;
private DFDateInput _billDate;
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;
hbox.Add(new SimpleLabel("凭证日期"));
_billDate = hbox.Add(new DFDateInput());
_billDate.Value = DateTime.Today;
base.AddExportControl(hbox);
}
public override string Url {
get { return "~/B3ButcherManageExport/EAS_/StatPayToEasVoucherList.aspx"; }
}
protected override string EditUrl {
get {
return "B3ButcherManage/Bills/StatPay_/StatPayEdit.aspx";
}
}
protected override void AddQueryControls(VLayoutPanel vPanel) {
vPanel.Add(CreateDefaultBillQueryControls((panel, config) => {
config.Add("Date");
config.Add("AccountingUnit_ID");
config.Add("Department_ID");
config.Add("Employee_ID");
config.Add("Supplier_ID");
}));
}
protected override void AddDFBrowseGridColumn(DFBrowseGrid grid, string field) {
base.AddDFBrowseGridColumn(grid, field);
if (field == "ID") {
AddDFBrowseGridColumn(grid, "AccountingUnit_Name");
}
if (field == "BillState") {
AddDFBrowseGridColumn(grid, "Date");
AddDFBrowseGridColumn(grid, "Weigh_ID");
AddDFBrowseGridColumn(grid, "Department_Name");
AddDFBrowseGridColumn(grid, "Supplier_Name");
AddDFBrowseGridColumn(grid, "Employee_Name");
}
}
protected override DQueryDom GetQueryDom() {
var dom = base.GetQueryDom();
dom.EAddCheckedCondition(dom.From.RootSource.Alias);
return dom;
}
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;
}
}
}
}
}

+ 72
- 0
BWP.B3ButcherManageExport.Web/Pages/B3ButcherManageExport/EAS_/StatPayToEasVoucherList.xml View File

@ -0,0 +1,72 @@
<?xml version="1.0" encoding="utf-8" ?>
<Select xmlns="urn:XDQuery">
<Columns>
<Field name="ID"/>
</Columns>
<From>
<DmoClass class="BWP.B3ButcherManage.BO.StatPay, B3ButcherManage"/>
</From>
<Where>
<And>
<EQ>
<Field name="ID"/>
<QBE paramName="ID"/>
</EQ>
<EQ>
<Field name="Supplier_ID"/>
<QBE paramName="Supplier_ID"/>
</EQ>
<EQ>
<Field name="AccountingUnit_ID"/>
<QBE paramName="AccountingUnit_ID"/>
</EQ>
<EQ>
<Field name="Department_ID"/>
<QBE paramName="Department_ID"/>
</EQ>
<EQ>
<Field name="Employee_ID"/>
<QBE paramName="Employee_ID"/>
</EQ>
<EQ>
<Field name="IsLocked"/>
<QBE paramName="IsLocked"/>
</EQ>
<Contains>
<Field name="Remark"/>
<QBE paramName="Remark"/>
</Contains>
<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>

+ 1
- 0
BWP.B3ButcherManageExport/B3ButcherManageExportConsts.cs View File

@ -6,6 +6,7 @@ namespace BWP.B3ButcherManageExport {
public static class ExportIDOffsets { public static class ExportIDOffsets {
public const byte PayToEasVoucher = 1; public const byte PayToEasVoucher = 1;
public const byte StatPayToEasVoucher = 2;
} }


+ 0
- 1
BWP.B3ButcherManageExport/BL/EAS/PayToEasVoucherBL.cs View File

@ -16,7 +16,6 @@ namespace BWP.B3ButcherManageExport.BL {
void Export(List<long> dmoIDs, long extSystemID, DateTime? date); void Export(List<long> dmoIDs, long extSystemID, DateTime? date);
} }
[LogicName("屠宰付款单导EAS凭证")] [LogicName("屠宰付款单导EAS凭证")]
[BindToFeature("B3ButcherManageExport.0001")] [BindToFeature("B3ButcherManageExport.0001")]
[ExportID(B3FrameworksConsts.DmoTypeIDBases.B3ButcherManageExport, B3ButcherManageExportConsts.ExportIDOffsets.PayToEasVoucher)] [ExportID(B3FrameworksConsts.DmoTypeIDBases.B3ButcherManageExport, B3ButcherManageExportConsts.ExportIDOffsets.PayToEasVoucher)]


+ 183
- 0
BWP.B3ButcherManageExport/BL/EAS/StatPayToEasVoucherBL.cs View File

@ -0,0 +1,183 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using BWP.B3ButcherManage.BO;
using BWP.B3ExportBase;
using BWP.B3ExportBase.BL;
using BWP.B3Frameworks;
using Forks.EnterpriseServices;
using Forks.EnterpriseServices.BusinessInterfaces;
using Forks.EnterpriseServices.DomainObjects2;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
using TSingSoft.WebPluginFramework;
namespace BWP.B3ButcherManageExport.BL {
[BusinessInterface(typeof(StatPayToEasVoucherBL))]
public interface IStatPayToEasVoucherBL : IEasVoucherBL<StatPay> {
void Export(List<long> dmoIDs, long extSystemID, DateTime? date);
}
[LogicName("屠宰结算单导EAS凭证")]
[BindToFeature("B3ButcherManageExport.0002")]
[ExportID(B3FrameworksConsts.DmoTypeIDBases.B3ButcherManageExport,
B3ButcherManageExportConsts.ExportIDOffsets.StatPayToEasVoucher)]
public class StatPayToEasVoucherBL : EasVoucherBL<StatPay>, IStatPayToEasVoucherBL {
private DateTime _date;
public DateTime Date {
get { return _date; }
set { _date = value; }
}
public List<string> MinOtherRewardDetailProperties { get; set; }
public void Export(List<long> dmoIDs, long extSystemID, DateTime? date) {
_date = date ?? BLContext.Today;
MinOtherRewardDetailProperties = new List<string>();
Export(dmoIDs, extSystemID);
}
public IEnumerable<StatPay_Butcher> GetDetails(IEnumerable<StatPay> dmos) {
var details = new List<StatPay_Butcher>();
foreach (var dmo in dmos) {
foreach (var detail in dmo.Details) {
details.Add(detail);
}
}
return details;
}
public IEnumerable GroupByDate(IEnumerable<StatPay> dmos) {
return dmos.GroupBy(x => (x.Date ?? BLContext.Today).Date);
}
public IEnumerable GroupByMonth(IEnumerable<StatPay> dmos) {
return dmos.GroupBy(x => (x.Date ?? BLContext.Today).Month);
}
public IEnumerable GroupBySupplier(IEnumerable<StatPay> dmos) {
return dmos.GroupBy(x => x.Supplier_ID);
}
public IEnumerable<StatPay_OtherReward> GetOtherRewardDetails(IEnumerable<StatPay> dmos) {
var details = new List<StatPay_OtherReward>();
foreach (var dmo in dmos) {
foreach (var detail in dmo.OtherRewardDetails) {
details.Add(detail);
}
}
return details;
}
public decimal ESumOtherRewardMoney(IEnumerable<StatPay> dmos) {
return ESumOtherRewardMoney(dmos, null);
}
public decimal ESumOtherRewardMoney(IEnumerable<StatPay> dmos, IList name) {
var details = GetOtherRewardDetails(dmos);
if (name == null || name.Count == 0)
return details.Sum(x => (x.Money ?? 0).Value);
var ds = details.Where(x => name.Contains(x.AbnormalItem_Name)).ToList();
return ds.Sum(x => (x.Money ?? 0).Value);
}
public decimal ESumDetailsMoney(IEnumerable<StatPay> dmos) {
var details = GetDetails(dmos);
return details.Sum(x => (x.Money ?? 0).Value);
}
public decimal SumDetailsMoney(IEnumerable<StatPay_Butcher> dmos) {
return dmos.Sum(x => (x.Money ?? 0).Value);
}
public decimal SumOtherRewardMoney(IEnumerable<StatPay_OtherReward> dmos) {
return dmos.Sum(x => (x.Money ?? 0).Value);
}
public decimal SumMoney(IEnumerable<StatPay> dmos) {
return dmos.Sum(x => (x.Money ?? 0).Value);
}
protected override Action<List<StatPay>> FillDetail {
get {
return dmos => {
AddDetails(dmos);
AddStatOtherRewardDetails(dmos);
};
}
}
private void AddDetails(List<StatPay> dmos) {
var dmoType = typeof(StatPay_Butcher);
var dom = new DQueryDom(new JoinAlias(dmoType));
dom.Columns.Add(DQSelectColumn.Field("ID"));
foreach (string property in MinDetailProperties) {
dom.Columns.Add(DQSelectColumn.Field(property));
}
var expressionList = new List<IDQExpression>();
foreach (var dmo in dmos)
expressionList.Add(DQExpression.Value(dmo.ID));
dom.Where.Conditions.Add(DQCondition.InList(DQExpression.Field("StatPay_ID"), expressionList.ToArray()));
var details = new List<StatPay_Butcher>();
details.Clear();
using (IDQDataReader reader = Session.ExecuteReader(dom)) {
while (reader.Read()) {
var detail = new StatPay_Butcher {
ID = (long)reader[0]
};
int i = 1;
foreach (var property in MinDetailProperties) {
dmoType.GetProperty(property).SetValue(detail, reader[i++], null);
}
details.Add(detail);
}
}
var groups = details.GroupBy(x => x.StatPay_ID);
foreach (var gDetail in groups) {
var firstDmo = dmos.FirstOrDefault(x => x.ID == gDetail.Key);
if (firstDmo == null)
continue;
foreach (var billDetail in gDetail) {
firstDmo.Details.Add(billDetail);
}
}
}
private void AddStatOtherRewardDetails(List<StatPay> dmos) {
var dmoType = typeof(StatPay_OtherReward);
var dom = new DQueryDom(new JoinAlias(dmoType));
dom.Columns.Add(DQSelectColumn.Field("ID"));
foreach (string property in MinOtherRewardDetailProperties) {
dom.Columns.Add(DQSelectColumn.Field(property));
}
var expressionList = new List<IDQExpression>();
foreach (var dmo in dmos)
expressionList.Add(DQExpression.Value(dmo.ID));
dom.Where.Conditions.Add(DQCondition.InList(DQExpression.Field("StatPay_ID"), expressionList.ToArray()));
var details = new List<StatPay_OtherReward>();
details.Clear();
using (IDQDataReader reader = Session.ExecuteReader(dom)) {
while (reader.Read()) {
var detail = new StatPay_OtherReward {
ID = (long)reader[0]
};
int i = 1;
foreach (var property in MinOtherRewardDetailProperties) {
dmoType.GetProperty(property).SetValue(detail, reader[i++], null);
}
details.Add(detail);
}
}
var groups = details.GroupBy(x => x.StatPay_ID);
foreach (var gDetail in groups) {
var firstDmo = dmos.FirstOrDefault(x => x.ID == gDetail.Key);
if (firstDmo == null)
continue;
foreach (var billDetail in gDetail) {
firstDmo.OtherRewardDetails.Add(billDetail);
}
}
}
}
}

+ 1
- 0
BWP.B3ButcherManageExport/BWP.B3ButcherManageExport.csproj View File

@ -73,6 +73,7 @@
<ItemGroup> <ItemGroup>
<Compile Include="BL\EAS\PayToEasVoucherBL.cs" /> <Compile Include="BL\EAS\PayToEasVoucherBL.cs" />
<Compile Include="B3ButcherManageExportConsts.cs" /> <Compile Include="B3ButcherManageExportConsts.cs" />
<Compile Include="BL\EAS\StatPayToEasVoucherBL.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup /> <ItemGroup />


+ 1
- 0
WebFolder/Config/Plugins/B3ButcherManageExport.Plugin View File

@ -17,6 +17,7 @@
<Features> <Features>
<Feature id="0001" name="B3屠宰付款单导EAS凭证"/> <Feature id="0001" name="B3屠宰付款单导EAS凭证"/>
<Feature id="0002" name="B3屠宰结算单导EAS凭证"/>
</Features> </Features>
</Plugin> </Plugin>

Loading…
Cancel
Save