Files
BeWoPlaner/Service/Invoicing/InvoiceFactory.cs

45 lines
1.5 KiB
C#

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<InvoiceFactory>
{
public virtual InvoiceCreation CreateInvoiceCreator(string specificId, string tenant, Dictionary<BS.Shared.DataContracts.Compact.CompactSupportConceptDC, List<BS.Shared.DataContracts.ServiceRecordDC>> 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<SettlementInvoiceCreation>(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);
}
}
}