Neue Version 3.31 erstellt
This commit is contained in:
@@ -9116,9 +9116,8 @@ namespace BeWo.Service.ServiceImplementations
|
||||
{
|
||||
try
|
||||
{
|
||||
//var resources = DAOFactory.GenericDAO.GetActiveByIDs<Resource>(resourceOids);
|
||||
var list = new List<InactivePersonDC>();
|
||||
return list;
|
||||
//return list;
|
||||
var sql = @"select null, p.Oid as personoid, p.FirstName, p.LastName, p.DateOfBirth, a.Street as Strasse, a.PostalCode as PLZ, a.Town as Ort, p.insts from person p
|
||||
left join address a on p.Addressoid = a.Oid
|
||||
where (p.isactive = 0 or p.isactive = 2) and (p.SystemEntryID is null || p.SystemEntryID != -1)
|
||||
@@ -9130,7 +9129,7 @@ namespace BeWo.Service.ServiceImplementations
|
||||
sql = @"select c.Oid, p.Oid as personoid, p.FirstName, p.LastName, p.DateOfBirth, a.Street as Strasse, a.PostalCode as PLZ, a.Town as Ort, p.insts from customer c
|
||||
join person p on c.PersonOid = p.Oid
|
||||
left join address a on p.Addressoid = a.Oid
|
||||
where (p.isactive = 0 or p.isactive = 2) and (p.SystemEntryID is null || p.SystemEntryID != -1)
|
||||
where (c.isactive = 0 or c.isactive = 2) and (c.SystemEntryID is null || c.SystemEntryID != -1)
|
||||
and c.insts < DATE_SUB(CURDATE(), INTERVAL yyyy YEAR);";
|
||||
}
|
||||
else if (tableId == TableID.Employee)
|
||||
@@ -9138,7 +9137,7 @@ namespace BeWo.Service.ServiceImplementations
|
||||
sql = @"select e.Oid, p.Oid as personoid, p.FirstName, p.LastName, p.DateOfBirth, a.Street as Strasse, a.PostalCode as PLZ, a.Town as Ort, p.insts from employee e
|
||||
join person p on e.PersonOid = p.Oid
|
||||
left join address a on p.Addressoid = a.Oid
|
||||
where (p.isactive = 0 or p.isactive = 2) and (p.SystemEntryID is null || p.SystemEntryID != -1)
|
||||
where (e.isactive = 0 or e.isactive = 2) and (e.SystemEntryID is null || e.SystemEntryID != -1)
|
||||
and e.insts < DATE_SUB(CURDATE(), INTERVAL yyyy YEAR)";
|
||||
}
|
||||
|
||||
@@ -9165,6 +9164,18 @@ namespace BeWo.Service.ServiceImplementations
|
||||
list.Add(ip);
|
||||
}
|
||||
|
||||
if (tableId == TableID.Customer)
|
||||
{
|
||||
list = FilterInactiveCustomers(jahreUngenutzt, list);
|
||||
}
|
||||
else if (tableId == TableID.Employee)
|
||||
{
|
||||
list = FilterInactiveCustomers(jahreUngenutzt, list);
|
||||
}
|
||||
else
|
||||
{
|
||||
list = FilterInactiveCustomers(jahreUngenutzt,list);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
catch (Exception e)
|
||||
@@ -9173,12 +9184,114 @@ namespace BeWo.Service.ServiceImplementations
|
||||
}
|
||||
}
|
||||
|
||||
private List<InactivePersonDC> FilterInactiveCustomers(int jahreUngenutzt, List<InactivePersonDC> list)
|
||||
{
|
||||
var newList = new List<InactivePersonDC>();
|
||||
var dict = list
|
||||
.Where(x => x.ObjectOid.HasValue)
|
||||
.ToDictionary(x => x.ObjectOid.Value, x => x);
|
||||
|
||||
//Hole alle Hilfepläne und prüfe, ob es noch einen aktiven gibt oder einen archivierten der jünger ist als die Frist
|
||||
var sql = @"select sc.Oid, sc.CustomerOid
|
||||
from supportconcept sc
|
||||
WHERE
|
||||
sc.CustomerOid in
|
||||
(select c.Oid from customer c
|
||||
where (c.isactive = 0 or c.isactive = 2) and (c.SystemEntryID is null || c.SystemEntryID != -1)
|
||||
and c.insts < DATE_SUB(CURDATE(), INTERVAL yyyy YEAR))";
|
||||
|
||||
|
||||
sql = sql.Replace("yyyy", jahreUngenutzt.ToString());
|
||||
|
||||
var sqlresult = DAOFactory.SearchDAO.GetSqlResult(sql);
|
||||
var oidlist = new List<long>();
|
||||
foreach (object[] row in sqlresult)
|
||||
{
|
||||
oidlist.Add((long)row[0]);
|
||||
}
|
||||
|
||||
var scList = DAOFactory.GenericDAO.LoadByIDs<SupportConcept>(oidlist).GroupBy(s => s.Customer.Oid.Value);
|
||||
|
||||
foreach (var item in scList)
|
||||
{
|
||||
foreach (var sc in item)
|
||||
{
|
||||
if (sc.IsActive == ActivationTypeId.Active)
|
||||
{
|
||||
//HP noch aktiv->raus aus Liste
|
||||
if (dict.ContainsKey(sc.Customer.Oid.Value))
|
||||
{
|
||||
dict.Remove(sc.Customer.Oid.Value);
|
||||
}
|
||||
break;
|
||||
}
|
||||
else if (sc.IsActive == ActivationTypeId.Archived)
|
||||
{
|
||||
//Prüfe ob Enddatum > Frist
|
||||
if (sc.EndDate.HasValue && sc.EndDate > DateTime.Now.AddYears(jahreUngenutzt * -1))
|
||||
{
|
||||
if (dict.ContainsKey(sc.Customer.Oid.Value))
|
||||
{
|
||||
dict.Remove(sc.Customer.Oid.Value);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
//if (item.IsActive == ActivationTypeId.Active)
|
||||
//{
|
||||
// //HP noch aktiv->raus aus Liste
|
||||
// if (dict.ContainsKey(item.Customer.Oid.Value))
|
||||
// {
|
||||
// dict.Remove(item.Customer.Oid.Value);
|
||||
// }
|
||||
//}
|
||||
//else if (item.EndDate.HasValue)
|
||||
}
|
||||
|
||||
//Prüfe, ob es einen ServiceRecord gibt, der innerhalb der Frist entstanden ist
|
||||
sql = @"select sr.CustomerOid, max(sr.EndDate)
|
||||
from servicerecord sr
|
||||
WHERE
|
||||
sr.EndDate > DATE_SUB(CURDATE(), INTERVAL 10 YEAR) and
|
||||
sr.CustomerOid in
|
||||
(select c.Oid from customer c
|
||||
where (c.isactive = 0 or c.isactive = 2) and (c.SystemEntryID is null || c.SystemEntryID != -1)
|
||||
and c.insts < DATE_SUB(CURDATE(), INTERVAL yyyy YEAR))
|
||||
group by sr.CustomerOid";
|
||||
|
||||
|
||||
sql = sql.Replace("yyyy", jahreUngenutzt.ToString());
|
||||
|
||||
sqlresult = DAOFactory.SearchDAO.GetSqlResult(sql);
|
||||
oidlist = new List<long>();
|
||||
foreach (object[] row in sqlresult)
|
||||
{
|
||||
oidlist.Add((long)row[0]);
|
||||
}
|
||||
|
||||
foreach (var oid in oidlist)
|
||||
{
|
||||
//ServiceRecord der nach der innerhalb der letzten x Jahre entstanden ist -> Customer raus aus Liste
|
||||
if (dict.ContainsKey(oid))
|
||||
{
|
||||
dict.Remove(oid);
|
||||
}
|
||||
}
|
||||
return dict.Values.ToList();
|
||||
}
|
||||
|
||||
private bool CheckIfInactive(int jahreUngenutzt, InactivePersonDC item)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public String DeleteInactivePersons(List<InactivePersonDC> persons, bool anonymisieren)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
return "Diese Funktion ist zur Zeit noch in Bearbeitung. Wir arbeiten mit Hochdruck daran, die Funktionalität fertigzustellen.";
|
||||
String msg = "Die gewählten Personen wurden erfolgreich gelöscht.";
|
||||
TableID tid = TableID.Person;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user