diff --git a/ReportImp/Mittelpunkt/Lohnliste.cs b/ReportImp/Mittelpunkt/Lohnliste.cs index 89373a9bc..867bd5ef6 100644 --- a/ReportImp/Mittelpunkt/Lohnliste.cs +++ b/ReportImp/Mittelpunkt/Lohnliste.cs @@ -73,13 +73,12 @@ namespace Mittelpunkt row.Field14 = String.Format("{0:0.00}", c.HourlyRate); } - /* string entgeldStufe = LeseEntgeldstufenVarfield(emp); if (!String.IsNullOrEmpty(entgeldStufe)) { row.Field15 = entgeldStufe; } - */ + row.Field16 = emp.Notice2; } } diff --git a/ReportImp/Mittelpunkt/Service/CustomEmployeeService.cs b/ReportImp/Mittelpunkt/Service/CustomEmployeeService.cs index 5d0e9de3c..8822af657 100644 --- a/ReportImp/Mittelpunkt/Service/CustomEmployeeService.cs +++ b/ReportImp/Mittelpunkt/Service/CustomEmployeeService.cs @@ -17,24 +17,96 @@ namespace Mittelpunkt.Service Contract currentContract = employee.GetValidContractForDate(DateTime.Now); if (currentContract != null) { - // Falls Stundensatz noch leer aus Bruttogehalt und Wochenstunden berechnen (durchschn. 4,33 Wochen pro Monat) + // falls Stundensatz noch leer aus Bruttogehalt und Wochenstunden berechnen (durchschn. 4,33 Wochen pro Monat) if (!currentContract.HourlyRate.HasValue) { if (currentContract.GrossSalary.HasValue && currentContract.WeeklyTotalHours.HasValue) { - decimal? stundensatz = currentContract.GrossSalary / currentContract.WeeklyTotalHours / (decimal) 4.33; - currentContract.HourlyRate = Math.Round((decimal) stundensatz, 2, MidpointRounding.AwayFromZero); + decimal? stundensatz = currentContract.GrossSalary / currentContract.WeeklyTotalHours / (decimal)4.33; + currentContract.HourlyRate = Math.Round((decimal)stundensatz, 2, MidpointRounding.AwayFromZero); DAOFactory.GenericDAO.Update(employee); - - // erst nach Serverlieferung - //SettingsLogic.AddToUsersHistory(eOid); + + SettingsLogic.AddToUsersHistory(eOid); } } - } - + + // das gleiche fuer den Zuschlaege-Arbeit-Stundensatz, aus Zuschlaege-Arbeit-Bruttogehalt + decimal? bruttogehaltFuerArbeitszuschlaege = null; + decimal? stundensatzFuerArbeitszuschlaege = null; + foreach (var vv in employee.VarFieldValueList) + { + if (vv.VarFieldDefOid == 3) + { + var varFieldValue = BS.Shared.Core.Utils.XMLDeserializeFromString(vv.SerializedValue, Type.GetType(vv.TypeName)); + decimal dec = 0; + if (varFieldValue != null && Decimal.TryParse(varFieldValue.ToString(), out dec)) + { + if (dec > 0) + { + bruttogehaltFuerArbeitszuschlaege = dec; + } + } + } + else if (vv.VarFieldDefOid == 4) + { + var varFieldValue = BS.Shared.Core.Utils.XMLDeserializeFromString(vv.SerializedValue, Type.GetType(vv.TypeName)); + decimal dec = 0; + if (varFieldValue != null && Decimal.TryParse(varFieldValue.ToString(), out dec)) + { + if (dec > 0) + { + stundensatzFuerArbeitszuschlaege = dec; + } + } + } + + } + + if (bruttogehaltFuerArbeitszuschlaege != null && stundensatzFuerArbeitszuschlaege is null) + { + stundensatzFuerArbeitszuschlaege = bruttogehaltFuerArbeitszuschlaege / currentContract.WeeklyTotalHours / (decimal)4.33; + stundensatzFuerArbeitszuschlaege = Math.Round((decimal)stundensatzFuerArbeitszuschlaege, 2, MidpointRounding.AwayFromZero); + } + + DAOFactory.GenericDAO.Update(employee); + + } + var employeeDc = MapperFactory.EmployeeDC_Employee.MapToNewDC(employee); return employeeDc; + } + + + private string LeseEntgeldstufenVarfield(Employee employee) + { + string entgeldstufe = null; + foreach (var vv in employee.VarFieldValueList) + { + if (vv.VarFieldDefOid == 2) + { + var varFieldValue = BS.Shared.Core.Utils.XMLDeserializeFromString(vv.SerializedValue, Type.GetType(vv.TypeName)); + if (varFieldValue != null) + { + entgeldstufe = varFieldValue.ToString(); + } + + /* + var varFieldValue = BS.Shared.Core.Utils.XMLDeserializeFromString(vv.SerializedValue, Type.GetType(vv.TypeName)); + + decimal dec = 0; + if (varFieldValue != null && Decimal.TryParse(varFieldValue.ToString(), out dec)) + { + if (dec > 0) + { + return dec / 5; + } + } + */ + } + } + + return entgeldstufe; } } }