Files
BeWoPlaner/ReportImp/RatPlusTat/Invoicing/AssistenzInvoiceCreation.cs
Alexandra 619cb2a3cd Hoffentlich gelöst
# Conflicts:
#	BeWoAllReports.sln
#	ReportImp/TrialogReports/SettlementReport.Designer.cs
#	ReportImp/TrialogReports/SettlementReportAlt.Designer.cs
#	Service/Plugins/PluginLoader.cs
2021-11-05 12:32:48 +01:00

68 lines
2.4 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.DCEntityMapper;
using BeWo.Service.Invoicing;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.Extensions;
using BS.Shared.Services;
namespace RatPlusTat.Invoicing
{
public class CustomAssistenzInvoiceCreation : InvoiceCreation
{
public override void SetInvoiceId(ServiceInvoice invoice)
{
invoice.InvoiceBase.InvoiceId = "Assistenz";
invoice.InvoiceBase.InvoiceTypeText = "Assistenzleistung";
}
public override void SetAmountAdvancePayments(ServiceInvoice invoice)
{
//do nothing
}
public override void SetAmountEquityContribution(ServiceInvoice invoice)
{
//do nothing
}
public override InvoiceItem CreateInvoiceItem(ServiceRecordDC iServiceRecord, SupportConceptApprovalPeriod scap, Calculations calc)
{
if (!iServiceRecord.ServiceDescription.CategoryName.Contains("Assistenz"))
return null;
var ii = base.CreateInvoiceItem(iServiceRecord, scap, calc);
DateTime start = ii.ItemPeriodStart.Value;
decimal preisAssistenz = 0;
string catName = iServiceRecord.ServiceDescription.CategoryName.ToString();
var cat = DAOFactory.SearchDAO.FindServiceCategoryByName(catName);
if (cat != null)
{
var crps = MapperFactory.CostRatePeriodDC_CostRatePeriod.MapToNewDCs(cat.CostRatePeriods);
var cp = crps.GetCostRatePeriodForDate(CostRatePeriodType.AmountOfMoney, start);
if (cp != null && cp.CostRateValue.HasValue)
preisAssistenz = (decimal)cp.CostRateValue;
ii.AmountPerUnit = preisAssistenz;
ii.RateFactor = null;
ii.AmountTotal = preisAssistenz * ii.UnitCount;
ii.GrossAmountTotal = preisAssistenz * ii.UnitCount;
}
return ii;
}
public override IList<InvoiceItem> CreateSummaryInvoiceItems(IList<InvoiceItem> itemList, DateTimeSpan invoicePeriod, SupportConceptApprovalPeriod scap,
Calculations calc, bool summaryPerMonth, bool addRateFactorToUnitCount)
{
return base.CreateSummaryInvoiceItems(itemList, invoicePeriod, scap, calc, true, true);
}
}
}