Fortis Plan/Ist Übersicht, Bugfix im Punktebogen Ausdruck

This commit is contained in:
Christian
2023-12-07 10:12:07 +01:00
parent 9cbfac1290
commit 731809fcd6
9 changed files with 87 additions and 28 deletions

View File

@@ -786,8 +786,15 @@ namespace BeWo.View.Detail
private void GridViewBase_OnCellValueChanging(object sender, CellValueChangedEventArgs e)
{
// Das Datum ist der eindeutige Identifikator
var tableView = (TableView)sender;
//if (BeWoApp.LoggedOnUser.HasRight(UserRightType.AssessmentSheet_Edit))
//{
// MessageBox.Show("Sie besitzen leider nicht das benötigte Recht \"Ergänzenden Dienste bearbeiten\".", "Speichern", MessageBoxButton.OK, MessageBoxImage.Exclamation);
// e.Value = e.OldValue;
// e.Handled = true;
// return;
//}
// Das Datum ist der eindeutige Identifikator
var tableView = (TableView)sender;
var spalten = (List<Teilnehmer>) tableView.Grid.ItemsSource;
var alleTeilnehmer = spalten.Select(s => s.Customer);
@@ -1044,6 +1051,12 @@ namespace BeWo.View.Detail
private void button_ADadd_Click(object sender, RoutedEventArgs e)
{
if (BeWoApp.LoggedOnUser.HasRight(UserRightType.AssessmentSheet_Edit))
{
MessageBox.Show("Sie besitzen leider nicht das benötigte Recht \"Ergänzenden Dienste bearbeiten\".", "Speichern", MessageBoxButton.OK, MessageBoxImage.Exclamation);
return;
}
if (AdditionalServiceBookings.NewVM == null ||
AdditionalServiceBookings.NewVM.CustomerOidDict == null)
return;

View File

@@ -46,25 +46,29 @@ namespace BeWo.Report.ReportObjects
foreach (var e in entrylist)
{
AssessmentSheetRow row;
AssessmentSheetRow row = null;
if (catOid2RowDict.ContainsKey(e.AssessmentSheetCategory.Oid.Value))
{
row = catOid2RowDict[e.AssessmentSheetCategory.Oid.Value];
}
else
{
row = new AssessmentSheetRow
if (!e.AssessmentSheetCategory.ScopeType.HasValue || e.AssessmentSheetCategory.ScopeType.Value == BS.Shared.ScopeTypeId.Global || e.AssessmentSheetCategory.Customers.Count > 0)
{
row = new AssessmentSheetRow
{
Category = e.AssessmentSheetCategory.Description,
Position = e.AssessmentSheetCategory.Position
};
result.Rows.Add(row);
catOid2RowDict.Add(e.AssessmentSheetCategory.Oid.Value, row);
result.Rows.Add(row);
catOid2RowDict.Add(e.AssessmentSheetCategory.Oid.Value, row);
}
}
if (e.Day >= dt && e.Day < dt.AddMonths(1))
if (row != null && e.Day >= dt && e.Day < dt.AddMonths(1))
{
var sv = new SheetValue {Value = e.AssessmentSheetValue.Sign, Color = e.AssessmentSheetValue.Color};
if (e.Day.Value.Day == 1)

View File

@@ -1003,6 +1003,11 @@ namespace BeWo.Report.ReportObjects
decimal flmOFehlkontakte = 0;
decimal flmFehlkontakte = 0;
sd.ProzentAbrechenbar = iSr.ServiceDescription.ServiceCategory.ProzentAbrechnung;
if (iSr.ServiceDescription.ProzentAbrechnung.HasValue)
{
sd.ProzentAbrechenbar = iSr.ServiceDescription.ProzentAbrechnung.Value;
}
if (iSr.ServiceDescription.ServiceCategory.IsBillable)
{
if (iSr.ServiceDescription.Name.ToLower().Contains("fehlkontakt") || (iSr.ServiceDescription.ProzentAbrechnung.HasValue && iSr.ServiceDescription.ProzentAbrechnung.Value < 100))
@@ -1621,6 +1626,8 @@ namespace BeWo.Report.ReportObjects
public double MinutesUnqualified { get; set; }
public decimal ProzentAbrechenbar { get; set; }
public string Notice { get; set; }
public string Notice2 { get; set; }

View File

@@ -26,6 +26,11 @@ namespace Fortis
foreach (var sr in pRO.Services)
{
if (sr.ProzentAbrechenbar < 100)
{
sr.Minutes = (sr.Minutes / 100) * (double)sr.ProzentAbrechenbar;
}
FortisServiceRecord fsr = null;
if (!tag2Details.ContainsKey(sr.StartDate.Day))
{
@@ -77,6 +82,10 @@ namespace Fortis
fsr.FehlkontaktBeginn = sr.StartDate;
fsr.FehlkontaktEnde = sr.EndDate;
}
else
{
fsr.MinutenH += sr.Minutes;
}
fsr.AnzahlMA += sr.EmployeeCount;
fsr.Groesse += sr.CustomerCount;
}

View File

@@ -44,7 +44,7 @@ namespace Fortis
}
if (ro.DokuzeitraumStart.HasValue && ro.DokuzeitraumEnde.HasValue)
{
ro.AnzahlTagePlan = (int)ro.DokuzeitraumEnde.Value.Subtract(ro.DokuzeitraumEnde.Value).TotalDays + 1;
ro.AnzahlTagePlan = (int)ro.DokuzeitraumEnde.Value.Subtract(ro.DokuzeitraumStart.Value).TotalDays + 1;
}
ro.StufeGeplant = "";
@@ -52,7 +52,7 @@ namespace Fortis
if (pRO.ApprovedFLSPerWeek > 0)
{
decimal minuten = pRO.ApprovedFLSPerWeek / 60;
decimal minuten = pRO.ApprovedFLSPerWeek * 60;
if (minuten < 30)
{
ro.StufeGeplant = "";
@@ -156,20 +156,9 @@ namespace Fortis
{
ro.AnzahlTage = (int)ro.AktuellesDatum.Subtract(ro.DokuzeitraumStart.Value).TotalDays + 1;
}
if (pRO.Services != null)
{
foreach (var sr in pRO.Services)
{
if (sr.ServiceDescription != null && sr.ServiceDescription.Contains("abgesagt"))
{
ro.SummeAbgesagt += (decimal)sr.Minutes;
}
else
{
ro.SummeDirekt += (decimal)sr.Minutes;
}
}
}
BerechneGesamtSummenIst(pRO, ro);
if (ro.AnzahlTage.HasValue && ro.AnzahlTage.Value > 0)
{
@@ -268,6 +257,43 @@ namespace Fortis
return ro;
}
private void BerechneGesamtSummenIst(ServicesOverviewRO pRO, PlanIstUebersichtRO ro)
{
if (pRO.CostBearer2SupportConceptList != null && pRO.CostBearer2SupportConceptList.Count > 0)
{
IList<ServiceRecord> allServiceRecords = pRO.CostBearer2SupportConceptList[0].ServiceRecords;
Dictionary<long, bool> groupBookingDict = new Dictionary<long, bool>();
foreach (var item in allServiceRecords)
{
if (!item.GroupOid.HasValue || !groupBookingDict.ContainsKey(item.GroupOid.Value))
{
decimal prozent = item.ServiceDescription.ServiceCategory.ProzentBudget ?? 100;
if (item.ServiceDescription.ProzentBudget.HasValue)
{
prozent = item.ServiceDescription.ProzentBudget.Value;
}
var minutenIst = (item.RoundedDuration * prozent) / 100;
if (item.ServiceDescription != null && item.ServiceDescription.Name.Contains("abgesagt"))
{
ro.SummeAbgesagt += minutenIst;
}
else
{
ro.SummeDirekt += minutenIst;
}
if (item.GroupOid.HasValue)
groupBookingDict.Add(item.GroupOid.Value, true);
}
}
}
}
}
public class PlanIstUebersichtRO

View File

@@ -40,7 +40,7 @@ namespace IlkaLinkAmbulanteHilfen
{
foreach (var eintrag in item.NotizenEintraege)
{
if (eintrag.Datum.Value.Month == pRO.StartDate.Month && eintrag.Datum.Value.Year == pRO.StartDate.Year && eintrag.EintragKategorieDC.DisplayName.Contains("Bemerkung"))
if (eintrag.Datum.Value.Month == pRO.StartDate.Month && eintrag.Datum.Value.Year == pRO.StartDate.Year && eintrag.EintragKategorieDC != null && eintrag.EintragKategorieDC.DisplayName.Contains("Bemerkung"))
notizenFuerQB.Add(eintrag);
}
}

View File

@@ -70,7 +70,7 @@ namespace BeWo.Service.Plugins
//t = "5351926758"; // Viva a Vida
//t = "2215396183"; // Diakonie Remscheid Lennep
//t = "5157599087"; // SHG Schwerte
t = "4526293996"; // Fortis
//t = "4526293996"; // Fortis
//t = "3647969417"; // Caritas Bottrop
//t = "3057313346"; // SSB Mainz
//t = "6246287823"; // BeWo Alsdorf
@@ -232,7 +232,7 @@ namespace BeWo.Service.Plugins
//t = "2141858509"; // INKOMM GmbH
//t = "8975059766"; // Quer-Fällt-Ein
//t = "8928179244"; // ASB Ruhr e.V. Regionalverband
//t = "4423043131"; // Die Perspektive e.V.
t = "4423043131"; // Die Perspektive e.V.
//t = "5263375280"; // LH Wolfsburg
//t = "4900722829"; // Evangelische Kirchengemeinde Bottrop
//t = "9853685258"; // Input

View File

@@ -668,7 +668,7 @@ namespace BeWo.Service.Plugins
decimal lDurationInWeeksTillNow = 0;
decimal lDurationInWeeks = 0;
if (iDC.CustomerLastName == "Yavuz")
if (iDC.CustomerLastName == "Krzizok")
{
int test = 0;
}

View File

@@ -1382,7 +1382,7 @@ namespace BS.Shared.Services
var span = keyValuePair.Value;
var rf = keyValuePair.Key;
if (rf.CostRateValue.HasValue && rf.CostRateValue.Value > 0)
if (rf.CostRateValue.HasValue)
{
var spanDays = (span.EndDate - span.StartDate).Days + 1;
var approvedHoursPerDayRf = (approvedHoursPerDay * 100) / (rf.CostRateValue.Value + 100);