Files
BeWoPlaner/Report/ReportObjects/SBDEmployeeRO.cs

213 lines
6.8 KiB
C#
Raw Normal View History

2023-10-26 00:06:56 +02:00
using System.Collections.Generic;
using System.Linq;
using BeWo.Data.Entities;
using BeWo.Data.ICD10;
using BeWo.Service.DCEntityMapper;
using BS.Shared;
using BS.Shared.DataContracts;
namespace BeWo.Report.ReportObjects
{
public class SBDEmployeeRO : AbstractBeWoReportObject<SBDEmployeeRO>
{
public long EmployeeOid { get; set; }
public string DateOfBirth { get; set; }
public List<CustomerEmployeeRelationDC> CustomerRelations { get; set; }
public List<AbsenceTimeDC> Abwesenheiten { get; set; }
public string FamilyStatus { get; set; }
public string Fax { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Mail { get; set; }
public string Mobile { get; set; }
public string Name => FirstName + " " + LastName;
public string Notice { get; set; }
public string Phone { get; set; }
public string PostCode { get; set; }
public string Sex { get; set; }
public string Street { get; set; }
public string Town { get; set; }
public object VarField1 { get; set; }
public object VarField2 { get; set; }
public object VarField3 { get; set; }
public object VarField4 { get; set; }
public object VarField5 { get; set; }
public object VarField6 { get; set; }
public object VarField7 { get; set; }
public object VarField8 { get; set; }
public object VarField9 { get; set; }
public object VarField10 { get; set; }
public EmployeeDC Employee { get; set; }
public static SBDEmployeeRO Create(Employee employee)
{
var result = new SBDEmployeeRO();
var employeeDC = MapperFactory.EmployeeDC_Employee.MapToNewDC(employee);
result.Employee = employeeDC;
if (employeeDC.AbsenceTimes != null)
{
result.Abwesenheiten = employeeDC.AbsenceTimes.OrderBy(a => a.Start).ToList();
}
result.EmployeeOid = employeeDC.EmployeeOid.Value;
result.FirstName = employeeDC.FirstName;
result.LastName = employeeDC.LastName;
if (employeeDC.DateOfBirth.HasValue)
{
result.DateOfBirth = employeeDC.DateOfBirth.Value.ToShortDateString();
}
result.Sex = employeeDC.Sex == BS.Shared.Sex.Female ? "weiblich" : "männlich";
if (employeeDC.FamilyStatus.HasValue)
{
switch (employeeDC.FamilyStatus.Value)
{
case BS.Shared.FamilyStatus.Divorced:
result.FamilyStatus = "geschieden";
break;
case BS.Shared.FamilyStatus.Married:
result.FamilyStatus = "verheiratet";
break;
case BS.Shared.FamilyStatus.Single:
result.FamilyStatus = "ledig";
break;
case BS.Shared.FamilyStatus.Widowed:
result.FamilyStatus = "verwitwet";
break;
case BS.Shared.FamilyStatus.Partner:
result.FamilyStatus = "in Partnerschaft";
break;
case BS.Shared.FamilyStatus.PartnerDivorced:
result.FamilyStatus = "getrennt lebend";
break;
case BS.Shared.FamilyStatus.PartnerDead:
result.FamilyStatus = "partnerhinterblieben";
break;
case BS.Shared.FamilyStatus.PartnerMarried:
result.FamilyStatus = "verpartnert";
break;
case BS.Shared.FamilyStatus.Entpartnert:
result.FamilyStatus = "entpartnert";
break;
}
}
result.Street = employeeDC.Street;
result.Town = employeeDC.Town;
result.PostCode = employeeDC.PostalCode;
foreach (var iContact in employeeDC.ContactInformations)
{
switch (iContact.ContactType)
{
case ContactType.business_Phone:
result.Phone = iContact.ContactValue;
break;
case ContactType.business_MobilePhone:
result.Mobile = iContact.ContactValue;
break;
case ContactType.business_Mail:
result.Mail = iContact.ContactValue;
break;
case ContactType.business_Fax:
result.Fax = iContact.ContactValue;
break;
}
}
result.Notice = employee.Notice;
result.CustomerRelations = employeeDC.RelatedCustomers;
if (employeeDC.VarFields != null)
{
if (employeeDC.VarFields.Count > 0)
{
result.VarField1 = employeeDC.VarFields[0].VarFieldValue;
}
if (employeeDC.VarFields.Count > 1)
{
result.VarField2 = employeeDC.VarFields[1].VarFieldValue;
}
if (employeeDC.VarFields.Count > 2)
{
result.VarField3 = employeeDC.VarFields[2].VarFieldValue;
}
if (employeeDC.VarFields.Count > 3)
{
result.VarField4 = employeeDC.VarFields[3].VarFieldValue;
}
if (employeeDC.VarFields.Count > 4)
{
result.VarField5 = employeeDC.VarFields[4].VarFieldValue;
}
if (employeeDC.VarFields.Count > 5)
{
result.VarField6 = employeeDC.VarFields[5].VarFieldValue;
}
if (employeeDC.VarFields.Count > 6)
{
result.VarField7 = employeeDC.VarFields[6].VarFieldValue;
}
if (employeeDC.VarFields.Count > 7)
{
result.VarField8 = employeeDC.VarFields[7].VarFieldValue;
}
if (employeeDC.VarFields.Count > 8)
{
result.VarField9 = employeeDC.VarFields[8].VarFieldValue;
}
if (employeeDC.VarFields.Count > 9)
{
result.VarField10 = employeeDC.VarFields[9].VarFieldValue;
}
}
return result;
}
}
}