diff --git a/BWP.B3ButcherManageExport.Web/BWP.B3ButcherManageExport.Web.csproj b/BWP.B3ButcherManageExport.Web/BWP.B3ButcherManageExport.Web.csproj index 24081c4..6e62c76 100644 --- a/BWP.B3ButcherManageExport.Web/BWP.B3ButcherManageExport.Web.csproj +++ b/BWP.B3ButcherManageExport.Web/BWP.B3ButcherManageExport.Web.csproj @@ -77,6 +77,9 @@ ASPXCodeBehind + + ASPXCodeBehind + @@ -86,7 +89,9 @@ BWP.B3ButcherManageExport - + + + False diff --git a/BWP.B3ButcherManageExport.Web/Pages/B3ButcherManageExport/EAS_/PayToEasVoucherList.cs b/BWP.B3ButcherManageExport.Web/Pages/B3ButcherManageExport/EAS_/PayToEasVoucherList.cs index 55da17a..392ca8f 100644 --- a/BWP.B3ButcherManageExport.Web/Pages/B3ButcherManageExport/EAS_/PayToEasVoucherList.cs +++ b/BWP.B3ButcherManageExport.Web/Pages/B3ButcherManageExport/EAS_/PayToEasVoucherList.cs @@ -23,8 +23,8 @@ namespace BWP.Web.Pages.B3ButcherManageExport.EAS_ } if (_dfcUrl.IsEmpty) { throw new ApplicationException("请选择外部系统!"); - } - BL.Export(idList, long.Parse(_dfcUrl.Value), null); + } + BL.Export(idList, long.Parse(_dfcUrl.Value), _billDate.Date); return BIFactory.GetLastMessage(); } diff --git a/BWP.B3ButcherManageExport.Web/Pages/B3ButcherManageExport/EAS_/StatPayToEasVoucherList.cs b/BWP.B3ButcherManageExport.Web/Pages/B3ButcherManageExport/EAS_/StatPayToEasVoucherList.cs new file mode 100644 index 0000000..f695eae --- /dev/null +++ b/BWP.B3ButcherManageExport.Web/Pages/B3ButcherManageExport/EAS_/StatPayToEasVoucherList.cs @@ -0,0 +1,103 @@ +锘縰sing 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 { + protected override string Caption { + get { return "灞犲缁撶畻鍗曞EAS鍑瘉"; } + } + + protected override string DoExport(List 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; + } + } + } + } +} \ No newline at end of file diff --git a/BWP.B3ButcherManageExport.Web/Pages/B3ButcherManageExport/EAS_/StatPayToEasVoucherList.xml b/BWP.B3ButcherManageExport.Web/Pages/B3ButcherManageExport/EAS_/StatPayToEasVoucherList.xml new file mode 100644 index 0000000..ed5c069 --- /dev/null +++ b/BWP.B3ButcherManageExport.Web/Pages/B3ButcherManageExport/EAS_/StatPayToEasVoucherList.xml @@ -0,0 +1,72 @@ +锘 + diff --git a/BWP.B3ButcherManageExport/B3ButcherManageExportConsts.cs b/BWP.B3ButcherManageExport/B3ButcherManageExportConsts.cs index 11e650f..bad8496 100644 --- a/BWP.B3ButcherManageExport/B3ButcherManageExportConsts.cs +++ b/BWP.B3ButcherManageExport/B3ButcherManageExportConsts.cs @@ -6,6 +6,7 @@ namespace BWP.B3ButcherManageExport { public static class ExportIDOffsets { public const byte PayToEasVoucher = 1; + public const byte StatPayToEasVoucher = 2; } diff --git a/BWP.B3ButcherManageExport/BL/EAS/PayToEasVoucherBL.cs b/BWP.B3ButcherManageExport/BL/EAS/PayToEasVoucherBL.cs index ee2b956..66cfd05 100644 --- a/BWP.B3ButcherManageExport/BL/EAS/PayToEasVoucherBL.cs +++ b/BWP.B3ButcherManageExport/BL/EAS/PayToEasVoucherBL.cs @@ -16,7 +16,6 @@ namespace BWP.B3ButcherManageExport.BL { void Export(List dmoIDs, long extSystemID, DateTime? date); } - [LogicName("灞犲浠樻鍗曞EAS鍑瘉")] [BindToFeature("B3ButcherManageExport.0001")] [ExportID(B3FrameworksConsts.DmoTypeIDBases.B3ButcherManageExport, B3ButcherManageExportConsts.ExportIDOffsets.PayToEasVoucher)] diff --git a/BWP.B3ButcherManageExport/BL/EAS/StatPayToEasVoucherBL.cs b/BWP.B3ButcherManageExport/BL/EAS/StatPayToEasVoucherBL.cs new file mode 100644 index 0000000..c417952 --- /dev/null +++ b/BWP.B3ButcherManageExport/BL/EAS/StatPayToEasVoucherBL.cs @@ -0,0 +1,183 @@ +锘縰sing 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 { + void Export(List dmoIDs, long extSystemID, DateTime? date); + } + + [LogicName("灞犲缁撶畻鍗曞EAS鍑瘉")] + [BindToFeature("B3ButcherManageExport.0002")] + [ExportID(B3FrameworksConsts.DmoTypeIDBases.B3ButcherManageExport, + B3ButcherManageExportConsts.ExportIDOffsets.StatPayToEasVoucher)] + public class StatPayToEasVoucherBL : EasVoucherBL, IStatPayToEasVoucherBL { + private DateTime _date; + + public DateTime Date { + get { return _date; } + set { _date = value; } + } + + public List MinOtherRewardDetailProperties { get; set; } + + public void Export(List dmoIDs, long extSystemID, DateTime? date) { + _date = date ?? BLContext.Today; + MinOtherRewardDetailProperties = new List(); + Export(dmoIDs, extSystemID); + } + + public IEnumerable GetDetails(IEnumerable dmos) { + var details = new List(); + foreach (var dmo in dmos) { + foreach (var detail in dmo.Details) { + details.Add(detail); + } + } + return details; + } + + public IEnumerable GroupByDate(IEnumerable dmos) { + return dmos.GroupBy(x => (x.Date ?? BLContext.Today).Date); + } + + public IEnumerable GroupByMonth(IEnumerable dmos) { + return dmos.GroupBy(x => (x.Date ?? BLContext.Today).Month); + } + + public IEnumerable GroupBySupplier(IEnumerable dmos) { + return dmos.GroupBy(x => x.Supplier_ID); + } + + public IEnumerable GetOtherRewardDetails(IEnumerable dmos) { + var details = new List(); + foreach (var dmo in dmos) { + foreach (var detail in dmo.OtherRewardDetails) { + details.Add(detail); + } + } + return details; + } + + public decimal ESumOtherRewardMoney(IEnumerable dmos) { + return ESumOtherRewardMoney(dmos, null); + } + + public decimal ESumOtherRewardMoney(IEnumerable 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 dmos) { + var details = GetDetails(dmos); + return details.Sum(x => (x.Money ?? 0).Value); + } + + public decimal SumDetailsMoney(IEnumerable dmos) { + return dmos.Sum(x => (x.Money ?? 0).Value); + } + + public decimal SumOtherRewardMoney(IEnumerable dmos) { + return dmos.Sum(x => (x.Money ?? 0).Value); + } + + public decimal SumMoney(IEnumerable dmos) { + return dmos.Sum(x => (x.Money ?? 0).Value); + } + + protected override Action> FillDetail { + get { + return dmos => { + AddDetails(dmos); + AddStatOtherRewardDetails(dmos); + }; + } + } + + private void AddDetails(List 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(); + 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(); + 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 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(); + 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(); + 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); + } + } + } + } +} \ No newline at end of file diff --git a/BWP.B3ButcherManageExport/BWP.B3ButcherManageExport.csproj b/BWP.B3ButcherManageExport/BWP.B3ButcherManageExport.csproj index 15f684e..94d7b3d 100644 --- a/BWP.B3ButcherManageExport/BWP.B3ButcherManageExport.csproj +++ b/BWP.B3ButcherManageExport/BWP.B3ButcherManageExport.csproj @@ -73,6 +73,7 @@ + diff --git a/WebFolder/Config/Plugins/B3ButcherManageExport.Plugin b/WebFolder/Config/Plugins/B3ButcherManageExport.Plugin index dc04e0b..4226f44 100644 --- a/WebFolder/Config/Plugins/B3ButcherManageExport.Plugin +++ b/WebFolder/Config/Plugins/B3ButcherManageExport.Plugin @@ -17,6 +17,7 @@ +