111 lines
3.7 KiB
C#
111 lines
3.7 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"))
|
|
{
|
|
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();
|
|
}
|
|
if (sr.CostBearer.Name.Contains("Amt für Soziales, Mobilität & Kultur"))
|
|
{
|
|
return new DefaultInvoiceCreation();
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
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();
|
|
}
|
|
}
|
|
}
|