136 lines
3.6 KiB
C#
136 lines
3.6 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using BeWo.Data.Access;
|
|
using BeWo.Data.Entities;
|
|
using BeWo.Service.Plugins;
|
|
using BeWo.Service.ServiceImplementations;
|
|
using BS.Shared;
|
|
using BS.Shared.DataContracts;
|
|
|
|
namespace UebergangshilfeUnnaEV
|
|
{
|
|
public class HilfeplanKontingentRO
|
|
{
|
|
|
|
private List<MonthRow> rows = new List<MonthRow>();
|
|
|
|
public List<MonthRow> Rows
|
|
{
|
|
get
|
|
{
|
|
return this.rows;
|
|
}
|
|
|
|
set
|
|
{
|
|
this.rows = value;
|
|
}
|
|
}
|
|
|
|
public SupportConceptOverviewDC SupportConceptOverviewDC { get; private set; }
|
|
|
|
public static HilfeplanKontingentRO Create(IList<long> oidList)
|
|
{
|
|
HilfeplanKontingentRO ro = new HilfeplanKontingentRO();
|
|
|
|
|
|
|
|
var service = new SupportConceptAnalysisCreator();
|
|
|
|
List<SupportConceptOverviewDC> soList = service.GetSupportConceptAnalysis2(oidList, null, null, null, null, null, null, true);
|
|
|
|
Dictionary<String, MonthRow> date2Row = new Dictionary<String, MonthRow>();
|
|
|
|
foreach (SupportConceptOverviewDC dc in soList)
|
|
{
|
|
ro.SupportConceptOverviewDC = dc;
|
|
var start = dc.ApprovedStartDate ?? new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
|
|
var end = dc.ApprovedEndDate ?? new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1).AddMonths(1).AddDays(-1);
|
|
|
|
while (start < end)
|
|
{
|
|
MonthRow row = new MonthRow();
|
|
row.Monat = start;
|
|
row.Tage = DateTime.DaysInMonth(start.Year, start.Month);
|
|
|
|
var woche = dc.BEApprovedPerWeek;
|
|
var tag = woche / 7;
|
|
|
|
row.FlsBudget = tag * row.Tage;
|
|
|
|
date2Row.Add(String.Format("{0:MMyyyy}", start), row);
|
|
ro.Rows.Add(row);
|
|
|
|
start = start.AddMonths(1);
|
|
}
|
|
|
|
foreach (var sr in dc.ServiceRecords)
|
|
{
|
|
String monthStr = String.Format("{0:MMyyyy}", sr.Start);
|
|
|
|
if (date2Row.ContainsKey(monthStr))
|
|
{
|
|
var row = date2Row[monthStr];
|
|
|
|
|
|
|
|
var duration = sr.RoundedDuration;
|
|
//Gruppen?
|
|
row.FlsIst += duration;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
decimal summeBudget = 0;
|
|
decimal summeIst = 0;
|
|
|
|
foreach (var row in ro.Rows)
|
|
{
|
|
|
|
|
|
row.FlsIst /= 60;
|
|
|
|
summeBudget += row.FlsBudget;
|
|
summeIst += row.FlsIst;
|
|
|
|
|
|
row.SummeFlsBudget = summeBudget;
|
|
row.SummeFlsIst = summeIst;
|
|
|
|
row.DifferenzMonatSollIst = row.FlsIst - row.FlsBudget;
|
|
|
|
row.DiffFls = row.SummeFlsIst - row.SummeFlsBudget;
|
|
|
|
}
|
|
return ro;
|
|
}
|
|
|
|
public class MonthRow
|
|
{
|
|
public DateTime Monat { get; set; }
|
|
|
|
public int Tage { get; set; }
|
|
|
|
public decimal FlsBudget { get; set; }
|
|
|
|
public decimal SummeFlsBudget { get; set; }
|
|
|
|
public decimal DifferenzMonatSollIst { get; set; }
|
|
|
|
public decimal FlsIst { get; set; }
|
|
|
|
public decimal SummeFlsIst { get; set; }
|
|
|
|
public decimal DiffFls { get; set; }
|
|
|
|
}
|
|
|
|
|
|
}
|
|
} |