Files
BeWoPlaner/ReportImp/SprungbrettTheresia/SettlementInvoiceCreation.cs
Christian f66b9a1add CB
2021-12-15 11:05:34 +01:00

61 lines
1.3 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
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 BeWo.SprungbrettTheresia
{
public class CustomSettlementInvoiceCreation : SettlementInvoiceCreation
{
public override void CalculateInvoiceItemAmounts(Settlement2DC si)
{
decimal maxApprovedFls = si.ApprovedFLS ?? 0;
foreach (var ii in si.InvoiceItems)
{
if (ii.UnitCount.HasValue)
{
decimal uc = ii.UnitCount ?? 0;
if (maxApprovedFls < uc)
uc = maxApprovedFls;
maxApprovedFls -= uc;
ii.UnitCount = uc;
if (ii.RateFactor.HasValue && ii.RateFactor.Value != 0)
{
ii.UnitCount *= ((100m + ii.RateFactor.Value) / 100m);
}
ii.UnitCount = Math.Round(ii.UnitCount ?? 0, 2, MidpointRounding.AwayFromZero);
if (ii.AmountPerUnit.HasValue)
{
ii.AmountTotal = ii.UnitCount.Value * ii.AmountPerUnit.Value;
ii.GrossAmountTotal = ii.AmountTotal;
}
if (ii.MaxApprovedUnitCount < ii.UnitCount)
{
ii.MaxApprovedUnitCount = ii.UnitCount;
}
}
}
}
}
}