using System; using System.Collections.Generic; using System.Linq; 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 TSingSoft.WebPluginFramework; using TSingSoft.WebPluginFramework.BIPlugins.BLEvents; namespace BWP.B3ButcherManageExport.BL.NC.AdvancePayToNcBL_ { [BusinessInterface(typeof(AdvancePayToNcBL))] public interface IAdvancePayToNcBL : INcBL { void Export(List idList, long p, DateTime? nullable); } [LogicName("预付款单导NC凭证")] [BindToFeature("B3ButcherManageExport.0003")] [ExportID(B3FrameworksConsts.DmoTypeIDBases.B3ButcherManageExport, B3ButcherManageExportConsts.ExportIDOffsets.AdvancePayToNc)] public class AdvancePayToNcBL : NcBL, IAdvancePayToNcBL { protected override NcUfinterface CreateUfinterface(IList dmos) { var scriptHelper = new PythonScriptHelper(string.Empty, Config.Script, this); scriptHelper.AddLocalVar("dmos", dmos); switch (Version) { case "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.AdvancePayToNc; } 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("一次导出只能选择同一个会计单位下的单据"); } } } }