MalteserJohanniterJohanneshaus/EmployeeKilometerauswertung - Unterscheidung für Motorradpauschale

This commit is contained in:
2025-12-02 15:13:13 +01:00
parent 9d2e8632ea
commit e6fb7a54e7
2 changed files with 65 additions and 0 deletions

View File

@@ -20,7 +20,41 @@ namespace MalteserJohanniterJohanneshaus
public void SetReportDataSource(EmployeeKilometerauswertungsListRO pRO)
{
foreach (var e2e in pRO.Employees2Entries)
{
if (e2e.Entries != null && e2e.Entries.Count > 0)
{
if (e2e.Entries.Any(e => e.ServiceRecord != null && e.ServiceRecord.ServiceDescription != null && e.ServiceRecord.ServiceDescription.Name.ToLower().Contains("zweirad")))
{
var preise = DAOFactory.GenericDAO.GetAllActive<Preis>();
foreach (var e in e2e.Entries)
{
if (e.DistanceInMeters != 0 && e.ServiceRecord != null && e.ServiceRecord.ServiceDescription != null
&& e.ServiceRecord.ServiceDescription.Name.ToLower().Contains("zweirad"))
{
var pauschale = GetPreis(preise, "Kilometerpauschale Zweirad", e.ServiceRecord.Start.Value);
e.KilometerPauschale = Math.Round(e.DistanceInMeters * (double)pauschale, 2, MidpointRounding.AwayFromZero);
}
}
}
}
}
objectDataSource1.DataSource = pRO;
}
private static decimal GetPreis(IList<Preis> allePreise, String name, DateTime datum)
{
var pausch = allePreise.Where(p => p.Name.Contains(name)).FirstOrDefault();
if (pausch != null)
{
var crlist = MapperFactory.CostRatePeriodDC_CostRatePeriod.MapToNewDCs(pausch.CostRatePeriods);
var cr = crlist.GetCostRatePeriodForDate(CostRatePeriodType.AmountOfMoney, datum);
if (cr != null && cr.CostRateValue.HasValue)
{
return cr.CostRateValue.Value;
}
}
return 0;
}
}
}

View File

@@ -21,7 +21,38 @@ namespace MalteserJohanniterJohanneshaus
public void SetReportDataSource(EmployeeKilometerauswertungsRO pRO)
{
pRO.CreateDistanceList();
if (pRO.Entries != null && pRO.Entries.Count > 0)
{
if (pRO.Entries.Any(e => e.ServiceRecord != null && e.ServiceRecord.ServiceDescription != null && e.ServiceRecord.ServiceDescription.Name.ToLower().Contains("zweirad")))
{
var preise = DAOFactory.GenericDAO.GetAllActive<Preis>();
foreach (var e in pRO.Entries)
{
if (e.DistanceInMeters != 0 && e.ServiceRecord != null && e.ServiceRecord.ServiceDescription != null
&& e.ServiceRecord.ServiceDescription.Name.ToLower().Contains("zweirad"))
{
var pauschale = GetPreis(preise, "Kilometerpauschale Zweirad", e.ServiceRecord.Start.Value);
e.KilometerPauschale = Math.Round(e.DistanceInMeters * (double)pauschale, 2, MidpointRounding.AwayFromZero);
}
}
}
}
objectDataSource1.DataSource = pRO;
}
private static decimal GetPreis(IList<Preis> allePreise, String name, DateTime datum)
{
var pausch = allePreise.Where(p => p.Name.Contains(name)).FirstOrDefault();
if (pausch != null)
{
var crlist = MapperFactory.CostRatePeriodDC_CostRatePeriod.MapToNewDCs(pausch.CostRatePeriods);
var cr = crlist.GetCostRatePeriodForDate(CostRatePeriodType.AmountOfMoney, datum);
if (cr != null && cr.CostRateValue.HasValue)
{
return cr.CostRateValue.Value;
}
}
return 0;
}
}
}