Merge branch 'Branch_faff3b1'
Routendistanze Berechnung per Google Maps API und openrouteService API
This commit is contained in:
@@ -13,6 +13,7 @@ using BeWo.Service.SBD;
|
||||
using BeWo.Service.Security;
|
||||
using BeWo.Service.ServiceContracts;
|
||||
using BeWo.Service.Urlaubsplanung;
|
||||
using BeWo.Service.ServiceUtils.DistanceCalculator;
|
||||
using BeWo.View.Navigation.Filter;
|
||||
using BS.Shared;
|
||||
using BS.Shared.DataContracts;
|
||||
@@ -1478,7 +1479,9 @@ namespace BeWo.Service.ServiceImplementations
|
||||
vertretungsItem.Employee != null).Select(item => item.Employee.EmployeeOid);
|
||||
|
||||
employeeOids = employeeOids.Where(e => !abwesenendeEmployeeOids.Contains(e));
|
||||
var list = MapperFactory.CompactVertreterEmployeeDC_VertreterEmployee.MapToNewDCs(DAOFactory.GenericDAO.GetActiveByIDs<Employee>(employeeOids));
|
||||
|
||||
var allEmps = DAOFactory.GenericDAO.GetActiveByIDs<Employee>(employeeOids).ToList();
|
||||
var list = MapperFactory.CompactVertreterEmployeeDC_VertreterEmployee.MapToNewDCs(allEmps);
|
||||
|
||||
//Setze Betreuungszeiten
|
||||
foreach (var vertreter in list)
|
||||
@@ -1509,6 +1512,10 @@ namespace BeWo.Service.ServiceImplementations
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (customerOid.HasValue)
|
||||
GetDistanceForVertreterEmployees(customerOid.Value, ref list, allEmps);
|
||||
|
||||
return list;
|
||||
}
|
||||
catch (Exception e)
|
||||
@@ -1517,6 +1524,25 @@ namespace BeWo.Service.ServiceImplementations
|
||||
}
|
||||
}
|
||||
|
||||
private void GetDistanceForVertreterEmployees(long customerOid, ref List<CompactVertreterEmployeeDC> list, List<Employee> employees)
|
||||
{
|
||||
var customer = DAOFactory.GenericDAO.LoadByID<Customer>(customerOid);
|
||||
var school = customer.Customer2OrganisationList.FirstOrDefault(f => f.ValueList.Any(b => b.Entry.Type == ValueListEntryType.EnvironmentOrganisationType && b.Entry.Value.Equals("Schule")));
|
||||
|
||||
var origin = new Address[] { school.Person.Address };
|
||||
var destinations = employees.Select(x => x.Person.Address).ToArray();
|
||||
|
||||
var matrix = AddressRouteManager.GetMatrix(origin, destinations);
|
||||
|
||||
Employee empl; AddressRoute route;
|
||||
foreach (var employee in list)
|
||||
{
|
||||
empl = employees.FirstOrDefault(e => e.Person.Oid.Value == employee.PersonOid);
|
||||
route = matrix.GetRoute(school.Person.Address, empl.Person.Address);
|
||||
employee.AddressRoute = MapperFactory.AddressRouteDC_AddressRoute.MapToNewDC(route);
|
||||
}
|
||||
}
|
||||
|
||||
public List<EmployeeTokenRelationDC> LoadEmployeeTokenRelationsByOid(IEnumerable<long> pOids)
|
||||
{
|
||||
try
|
||||
|
||||
Reference in New Issue
Block a user