Files
BeWoPlaner/ReportImp/PraxisPusteblume/Invoicing/CustomInvoiceFactory.cs

107 lines
3.6 KiB
C#

using System;
using System.Collections.Generic;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.Invoicing;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
namespace PraxisPusteblume.Invoicing
{
public class CustomInvoiceFactory : InvoiceFactory
{
public override InvoiceCreation CreateInvoiceCreator(string specificId, string tenant, Dictionary<CompactSupportConceptDC, List<ServiceRecordDC>> supportConcepts2ServiceRecords)
{
foreach (var list in supportConcepts2ServiceRecords.Values)
{
foreach (var sr in list)
{
if (sr.CostBearer != null)
{
if (sr.CostBearer.Name.Contains("Bezirk Oberbayern - OBA"))
{
return new OBASammelInvoiceCreation();
}
if (sr.CostBearer.Name.Contains("Bezirk Oberbayern - IFS") || sr.CostBearer.Name.Contains("Amt für Soziales, Mobilität & Kultur"))
{
return new IFSSammelInvoiceCreation();
}
if (sr.CostBearer.Name.Contains("Selbstzahler") && sr.CostBearer.Name.Contains("54,11"))
{
return new Selbstzahler2InvoiceCreation();
}
if (sr.CostBearer.Name.Contains("Selbstzahler"))
{
return new SelbstzahlerInvoiceCreation();
}
}
}
}
foreach (var list in supportConcepts2ServiceRecords.Values)
{
foreach (var sr in list)
{
var sd = sr.ServiceDescription.Category;
if (!String.IsNullOrEmpty(sd.Name) && sd.Name.StartsWith("IFS - "))
{
return new IFSInvoiceCreation();
}
}
}
foreach (var list in supportConcepts2ServiceRecords.Values)
{
foreach (var sr in list)
{
if (sr.CostBearer != null)
{
if (sr.CostBearer.Name.Contains("Internat Schloß Niedernfels"))
{
return new SammelrechnungMitKmInvoiceCreation();
}
if (sr.CostBearer.Name.Contains("Bezirk Oberbayern"))
{
if (sr.CostBearer.Name.Contains("Individual"))
{
return new IndividualbegleitungInvoiceCreation();
}
return new DefaultInvoiceCreation();
}
if (sr.CostBearer.Name.Contains("Hort der Philipp-Neri-Schule") || sr.CostBearer.Name.Contains("Heilpädagogische Tagesstätte Klara von Assisi"))
{
return new IndividualbegleitungInvoiceCreation();
}
if (sr.CostBearer.Name.Contains("Selbstzahler"))
{
return new SelbstzahlerInvoiceCreation();
}
var cb = DAOFactory.GenericDAO.LoadByID<CostBearer>(sr.CostBearer.CostBearerOid.Value);
if (cb.IsSingleInvoicePerCustomer)
{
return new SammelrechnungNachKientenInvoiceCreation();
}
}
}
}
return new DefaultInvoiceCreation();
}
public override EquityInvoiceCreation CreateEquityInvoiceCreator(InvoiceBase ib)
{
return new DefaultEquityInvoiceCreation();
}
}
}