diff --git a/ReportImp/MalteserJohanniterJohanneshaus/EmployeeKilometerauswertungsListReport.cs b/ReportImp/MalteserJohanniterJohanneshaus/EmployeeKilometerauswertungsListReport.cs index f29db892e..6561867f7 100644 --- a/ReportImp/MalteserJohanniterJohanneshaus/EmployeeKilometerauswertungsListReport.cs +++ b/ReportImp/MalteserJohanniterJohanneshaus/EmployeeKilometerauswertungsListReport.cs @@ -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(); + 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 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; + } } } diff --git a/ReportImp/MalteserJohanniterJohanneshaus/EmployeeKilometerauswertungsReport.cs b/ReportImp/MalteserJohanniterJohanneshaus/EmployeeKilometerauswertungsReport.cs index 49ec42e1d..699d2ed1e 100644 --- a/ReportImp/MalteserJohanniterJohanneshaus/EmployeeKilometerauswertungsReport.cs +++ b/ReportImp/MalteserJohanniterJohanneshaus/EmployeeKilometerauswertungsReport.cs @@ -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(); + 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 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; + } } } \ No newline at end of file