MH: Dienstplanung Bugfix Ladedauer
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
@@ -8,6 +9,7 @@ using BS.Shared;
|
||||
|
||||
namespace BeWo.Data.Entities
|
||||
{
|
||||
[DebuggerDisplay("{Datum} Z{Zeile} E{EmployeeOid}: {Startzeit}-{Endzeit}")]
|
||||
public class DienstEintrag : BeWoEntityBase
|
||||
{
|
||||
private long _EmployeeOid;
|
||||
|
||||
@@ -26,48 +26,7 @@ namespace BeWo.Service.Dienstplanung
|
||||
var anzahlZeilen = AppSettings.CreateSettings().DienstplanungStandardZeilenAnzahl;
|
||||
var wh = DAOFactory.GenericDAO.GetByID<Wohnheim>(wohnheimOid);
|
||||
|
||||
#region Dienste, die eigentlich Einträge sind, aber irgendwie in Vertretungen gelandet sind, in die richtige Tabelle verschieben
|
||||
|
||||
var emps = new List<Employee>();
|
||||
foreach (var e in wh.Employee2WohnheimList)
|
||||
emps.Add(e.Employee);
|
||||
|
||||
List<DienstEintrag> eintraegeToInsert = new List<DienstEintrag>();
|
||||
List<Dienstvertretung> falscheVertretungen = new List<Dienstvertretung>();
|
||||
var vertretungen = DAOFactory.GenericDAO.GetAllActive<Dienstvertretung>().Where(v => v.WohnheimOid == wh.Oid);
|
||||
|
||||
foreach (var emp in emps)
|
||||
{
|
||||
falscheVertretungen = vertretungen.Where(v => v.EmployeeOid == emp.Oid && v.WohnheimOid == wh.Oid).ToList();
|
||||
if (falscheVertretungen != null)
|
||||
{
|
||||
foreach (var vertretung in falscheVertretungen)
|
||||
{
|
||||
var eintrag = new DienstEintrag()
|
||||
{
|
||||
Datum = vertretung.Datum,
|
||||
DauerInStunden = vertretung.DauerInStunden,
|
||||
DienstOid = vertretung.DienstOid,
|
||||
EmployeeOid = vertretung.EmployeeOid,
|
||||
Endzeit = vertretung.Endzeit,
|
||||
IsActive = vertretung.IsActive,
|
||||
Notice = vertretung.Notice,
|
||||
Startzeit = vertretung.Startzeit,
|
||||
Version = vertretung.Version,
|
||||
WohnheimOid = vertretung.WohnheimOid,
|
||||
Zeile = vertretung.Zeile
|
||||
};
|
||||
eintraegeToInsert.Add(eintrag);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (eintraegeToInsert.Count > 0)
|
||||
{
|
||||
DAOFactory.GenericDAO.Insert(eintraegeToInsert);
|
||||
DAOFactory.GenericDAO.Deactivate(falscheVertretungen);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
DienstplanerRootDC root = new DienstplanerRootDC();
|
||||
OperationsServiceImp os = new OperationsServiceImp();
|
||||
@@ -99,6 +58,56 @@ namespace BeWo.Service.Dienstplanung
|
||||
|
||||
root.AlleDienstEintraege = GetAllDienstEintraegeAsList(wohnheimOid, date.Year, date.Month);
|
||||
|
||||
|
||||
#region Dienste, die eigentlich Einträge sind, aber irgendwie in Vertretungen gelandet sind, in die richtige Tabelle verschieben
|
||||
|
||||
var emps = new List<Employee>();
|
||||
foreach (var e in wh.Employee2WohnheimList)
|
||||
emps.Add(e.Employee);
|
||||
|
||||
List<DienstEintrag> eintraegeToInsert = new List<DienstEintrag>();
|
||||
List<Dienstvertretung> falscheVertretungen = new List<Dienstvertretung>();
|
||||
var vertretungen = DAOFactory.GenericDAO.GetAllActive<Dienstvertretung>().Where(v => v.WohnheimOid == wh.Oid);
|
||||
|
||||
foreach (var emp in emps)
|
||||
{
|
||||
falscheVertretungen = vertretungen.Where(v => v.EmployeeOid == emp.Oid && v.WohnheimOid == wh.Oid).ToList();
|
||||
|
||||
if (falscheVertretungen != null)
|
||||
{
|
||||
foreach (var vertretung in falscheVertretungen)
|
||||
{
|
||||
if (!root.AlleDienstEintraege.Any(e => e.Zeile == vertretung.Zeile && e.EmployeeOid == vertretung.EmployeeOid && e.WohnheimOid == vertretung.WohnheimOid))
|
||||
{
|
||||
var eintrag = new DienstEintrag()
|
||||
{
|
||||
Datum = vertretung.Datum,
|
||||
DauerInStunden = vertretung.DauerInStunden,
|
||||
DienstOid = vertretung.DienstOid,
|
||||
EmployeeOid = vertretung.EmployeeOid,
|
||||
Endzeit = vertretung.Endzeit,
|
||||
IsActive = vertretung.IsActive,
|
||||
Notice = vertretung.Notice,
|
||||
Startzeit = vertretung.Startzeit,
|
||||
Version = vertretung.Version,
|
||||
WohnheimOid = vertretung.WohnheimOid,
|
||||
Zeile = vertretung.Zeile
|
||||
};
|
||||
eintraegeToInsert.Add(eintrag);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (eintraegeToInsert.Count > 0)
|
||||
{
|
||||
|
||||
DAOFactory.GenericDAO.Insert(eintraegeToInsert);
|
||||
DAOFactory.GenericDAO.Deactivate(falscheVertretungen);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
foreach (var rd in root.RegelmaessigeDienste)
|
||||
root.AlleDienstEintraege.AddRange(AddRegelmaessigeDiensteToDienstplaner(rd, root.AlleDienstEintraege, root.AlleDienstvertretungen, root.AbsenceTimes, root.Feiertage,
|
||||
root.EnableDiensteAnFeiertagen, root.DienstZeilenListe, root.ZeitraumFuerPflichtbesetzungStart, root.ZeitraumFuerPflichtbesetzungEnde, root.EnableStatuszeile, date));
|
||||
@@ -333,7 +342,8 @@ namespace BeWo.Service.Dienstplanung
|
||||
|
||||
var dienstEintraegeDC = MapperFactory.DienstEintragDC_DienstEintrag.MapToNewDCs(dienstEintraege);
|
||||
|
||||
//
|
||||
|
||||
|
||||
List<DienstEintragDC> dopplungen = new List<DienstEintragDC>();
|
||||
List<DienstEintragDC> schonGehabt = new List<DienstEintragDC>();
|
||||
|
||||
@@ -358,7 +368,7 @@ namespace BeWo.Service.Dienstplanung
|
||||
if (d.EmployeeOid == eintrag.EmployeeOid && d.Datum == eintrag.Datum && d.Zeile == eintrag.Zeile && dienstEintraegeDC.Where(e => d.EmployeeOid == e.EmployeeOid && d.Datum == e.Datum && d.Zeile == e.Zeile).ToList().Count > 1)
|
||||
{
|
||||
dienstEintraegeDC.RemoveAt(i);
|
||||
DeleteDienstEintrag(eintrag.EmployeeOid, eintrag.WohnheimOid, eintrag.Zeile, eintrag.Datum);
|
||||
//DeleteDienstEintrag(eintrag.EmployeeOid, eintrag.WohnheimOid, eintrag.Zeile, eintrag.Datum);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -840,6 +850,10 @@ namespace BeWo.Service.Dienstplanung
|
||||
|
||||
foreach (var item in konto.EmployeeDetailList)
|
||||
{
|
||||
if (item.Employee.Oid == 19)
|
||||
{
|
||||
|
||||
}
|
||||
root.StundenBeiAbwesenheit.Add(item.Employee.Oid, item.SollProTag);
|
||||
var employee = MapperFactory.EmployeeDC_Employee.MapToNewDC(item.Employee);
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ using BeWo.Data.Entities;
|
||||
using BS.Shared;
|
||||
using BS.Shared.DataContracts;
|
||||
using BS.Shared.Extensions;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace BeWo.Service.Dienstplanung
|
||||
{
|
||||
@@ -228,6 +229,7 @@ namespace BeWo.Service.Dienstplanung
|
||||
|
||||
}
|
||||
|
||||
[DebuggerDisplay("{Employee.Oid} {Employee.Person.FirstNameLastName} Soll: {StundenSollOhneUrlaubKrankheit} Ist: {StundenGesamtIst}")]
|
||||
public class EmployeeDetail
|
||||
{
|
||||
public IList<Team> Teams { get; set; }
|
||||
|
||||
@@ -178,7 +178,10 @@ namespace BeWo.Service.Dienstplanung
|
||||
|
||||
|
||||
}
|
||||
if (emp.Oid == 19)
|
||||
{ }
|
||||
empDetail.SollProTag = (weeklyTotalHours / empDetail.ArbeitstageProWoche);
|
||||
|
||||
empDetail.SollProWoche = BerechneSollProWoche(c, empDetail);
|
||||
|
||||
HandleServiceRecords(empDetail, groupFilteredRecords, c);
|
||||
@@ -846,10 +849,10 @@ namespace BeWo.Service.Dienstplanung
|
||||
}
|
||||
else if (ed.Employee.IsActive == ActivationTypeId.Archived)
|
||||
{
|
||||
if (ed.StundenGesamtIst != 0)
|
||||
{
|
||||
//if (ed.StundenGesamtIst != 0)
|
||||
//{
|
||||
newEmpList.Add(ed);
|
||||
}
|
||||
//}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user