using BWP.B3ButcherManage.BO; using BWP.B3ExportBase; using BWP.B3ExportBase.BL; using BWP.B3ExportBase.BO; using BWP.B3Frameworks; using Forks.EnterpriseServices; using Forks.EnterpriseServices.BusinessInterfaces; using Forks.EnterpriseServices.DomainObjects2; using System; using System.Collections.Generic; using System.Linq; using TSingSoft.WebPluginFramework; using TSingSoft.WebPluginFramework.BIPlugins.BLEvents; namespace BWP.B3ButcherManageExport.BL { [BusinessInterface(typeof(StatPayToNcBL))] public interface IStatPayToNcBL : INcBL { void Export(List idList, long p, DateTime? nullable); string UpdateExportState(List idList); } [LogicName("结算单导NC凭证")] [BindToFeature("B3ButcherManageExport.0008")] [ExportID(B3FrameworksConsts.DmoTypeIDBases.B3ButcherManageExport, B3ButcherManageExportConsts.ExportIDOffsets.StatPayToNc)] public class StatPayToNcBL : NcBL, IStatPayToNcBL { public readonly List MinPreDetailProperties = new List(); protected override NcUfinterface CreateUfinterface(IList dmos) { var scriptHelper = new PythonScriptHelper(string.Empty, Config.Script, this); scriptHelper.AddLocalVar("dmos", dmos); if (Version == "6.3") { { var bills = BO.NcVouchers.New(); scriptHelper.AddLocalVar("vouchers", bills); scriptHelper.Execute(); var i = 0; foreach (var bill in bills.Bills) { BillIDs.Add(i, bill.B2BillIDs); i++; } return bills; } } throw new Exception("未实现导出方法"); } public override short GetMethodID() { return B3FrameworksConsts.DmoTypeIDBases.B3ButcherManageExport + B3ButcherManageExportConsts.ExportIDOffsets.StatPayToNc; } public DateTime Date { get; set; } public void Export(List dmoIDs, long extSystemID, DateTime? date) { Date = date ?? BLContext.Today; Export(dmoIDs, extSystemID); } public void CheckAccountingUnit(IEnumerable dmos) { var groups = dmos.GroupBy(x => x.AccountingUnit_Name); var count = groups.Count(); if (count > 1) { throw new ApplicationException("一次导出只能选择同一个会计单位下的单据"); } } public string UpdateExportState(List idList) { CheckExportLog(idList); var returnMess = ""; foreach (var id in idList) { var log = new ExportLog { BackInfo = string.Empty, BillTypeID = DmoTypeIDAttribute.GetID(typeof(StatPay)), BillID = id, WpfUser_ID = BLContext.User.ID, Time = BLContext.Now, MethodID = ExportIDAttribute.GetID(GetType()), StatusInfo = string.Empty }; Session.Insert(log); returnMess += string.Format("No.{0} ", id); } return returnMess; } } }