using System; using System.Collections.Generic; using System.Linq; using System.Text; using BeWo.Data.Entities; using BeWo.Service.Plugins; using BeWo.Service.ServiceImplementations; using BS.Shared.Core; using Service.Invoicing; namespace BeWo.Service.Invoicing { public class InvoiceFactory : AbstractIDSpecificDefaultClass { public virtual InvoiceCreation CreateInvoiceCreator(string specificId, string tenant, Dictionary> supportConcepts2ServiceRecords) { var os = new OperationsServiceImp(); var m = os.GetMandator2(false); if (m.AllowSbd) { return new SbdDefaultInvoiceCreation(); } return InvoiceCreation.GetInstance(specificId, tenant); } public virtual SettlementInvoiceCreation CreateSettlementInvoiceCreator(string costbearerId, string tenant, CostBearer2SupportConcept lCb2Sc) { return PluginLoader.FindClass(costbearerId) ?? SettlementInvoiceCreation.GetInstance(costbearerId, tenant); } public virtual EquityInvoiceCreation CreateEquityInvoiceCreator(InvoiceBase ib) { return EquityInvoiceCreation.GetInstance(null); } public virtual GeneralInvoiceCreation CreateGeneralInvoiceCreator(InvoiceBase ib) { return GeneralInvoiceCreation.GetInstance(null); } } }