public static SalaryDetailsViewModel GetSalaryDetailsViewModel(XDocument xml, string tin) { SalaryDetailsViewModel model; // Διαβάζουμε για τον υπαλληλο το Indentification XElement και το αντίστοιχο SalaryEmployeeInfo instance XElement identification = EapXMLTool.GetEmployeeIdentification(xml, tin); if (identification != null) { SalaryEmployeeInfo employee = EapXMLTool.GetEmployeeInfoFromElement(identification); // Διαβάζουμε το payment parent XElement του Identification XElement payment = EapXMLTool.GetEmployeePaymentParent(identification); // και παίρνουμε όλα τα incomes του υπαλληλου IEnumerable <XElement> incomes = EapXMLTool.GetPaymentIncomes(payment); // κρατάμε τα incomes τακτικής μισθοδοσίας και αναδρομικών IEnumerable <XElement> incomesTaktikhs = EapXMLTool.GetPaymentIncomesOfType(incomes, 0); IEnumerable <XElement> incomesAnadromikwn = EapXMLTool.GetPaymentIncomesOfType(incomes, 1); IEnumerable <XElement> incomesTrimhnes = EapXMLTool.GetPaymentIncomesOfType(incomes, 2); IEnumerable <XElement> incomesEkpApodoxwn = EapXMLTool.GetPaymentIncomesOfType(incomes, 3); IEnumerable <XElement> incomesApozhmiwsh = EapXMLTool.GetPaymentIncomesOfType(incomes, 4); IEnumerable <XElement> incomesApozhmiwshAdeias = EapXMLTool.GetPaymentIncomesOfType(incomes, 5); IEnumerable <XElement> incomesEteroxronismenh = EapXMLTool.GetPaymentIncomesOfType(incomes, 6); SalaryEmployeeDetails detailsTaktikwn = EapXMLTool.GetPaymentTaktikisAmounts(incomesTaktikhs.ToList(), 0); SalaryEmployeeDetails detailsAnadromikwn = EapXMLTool.GetPaymentTaktikisAmounts(incomesAnadromikwn.ToList(), 1); SalaryEmployeeDetails detailsTrimhnesApodoxes = EapXMLTool.GetPaymentTaktikisAmounts(incomesTrimhnes.ToList(), 2); SalaryEmployeeDetails detailsEkpaidApodoxes = EapXMLTool.GetPaymentTaktikisAmounts(incomesEkpApodoxwn.ToList(), 3); SalaryEmployeeDetails detailsApozhmiwsh = EapXMLTool.GetPaymentTaktikisAmounts(incomesApozhmiwsh.ToList(), 4); SalaryEmployeeDetails detailsApozhmiwshAdeias = EapXMLTool.GetPaymentTaktikisAmounts(incomesApozhmiwshAdeias.ToList(), 5); SalaryEmployeeDetails detailsEteroxronismenh = EapXMLTool.GetPaymentTaktikisAmounts(incomesEteroxronismenh.ToList(), 6); SalaryTotals ABamounts = EapXMLTool.GetPaymentABAmounts(payment); model = new SalaryDetailsViewModel(); model.SalaryEmployee = employee; model.SalaryTotalAmounts = ABamounts; model.SalaryDetalis = new List <SalaryEmployeeDetails>(); if (detailsTaktikwn != null) { model.SalaryDetalis.Add(detailsTaktikwn); } if (detailsAnadromikwn != null) { model.SalaryDetalis.Add(detailsAnadromikwn); } if (detailsTrimhnesApodoxes != null) { model.SalaryDetalis.Add(detailsTrimhnesApodoxes); } if (detailsEkpaidApodoxes != null) { model.SalaryDetalis.Add(detailsEkpaidApodoxes); } if (detailsApozhmiwsh != null) { model.SalaryDetalis.Add(detailsApozhmiwsh); } if (detailsApozhmiwshAdeias != null) { model.SalaryDetalis.Add(detailsApozhmiwshAdeias); } if (detailsEteroxronismenh != null) { model.SalaryDetalis.Add(detailsEteroxronismenh); } return(model); } else { return(null); } }
/// <summary> /// Επιστρέφει τα σύνολο για ΑΜΟΙΒΕΣ, ΚΡΑΤΗΣΕΙΣ, ΕΡΓΟΔΟΤΙΚΕΣ για /// τα income Τακτικής Μισθοδοσίας /// </summary> /// <param name="incomestaktikhs">Όλα τα income τακτικής</param> /// <returns>Ενα SalaryEmployeeDetails για τακτικη</returns> public static SalaryEmployeeDetails GetPaymentTaktikisAmounts(IList <XElement> incomestaktikhs, int incomeType) { SalaryEmployeeDetails employeeItm = null; if (incomestaktikhs.Count() > 0) { employeeItm = new SalaryEmployeeDetails(); employeeItm.Amoibes = new List <SalaryAmounts>(); employeeItm.ErgEisfores = new List <SalaryAmounts>(); employeeItm.Krathseis = new List <SalaryAmounts>(); // εφόσον ειναι Τακτική, καθαρίζουμε τις τιμές // στα properties για την περίπτωση αναδρομικού // TODO ΟΛΕΣ ΤΙΣ ΠΕΡΙΠΤΩΣΕΙΣ.... employeeItm.Type = 444; switch (incomeType) { case 0: employeeItm.Type = 0; break; case 1: employeeItm.Type = 1; employeeItm.EndDate = Convert.ToDateTime(incomestaktikhs.First().Attribute("endDate").Value).ToString("dd/M/yyyy"); employeeItm.StartDate = Convert.ToDateTime(incomestaktikhs.First().Attribute("startDate").Value).ToString("dd/M/yyyy"); employeeItm.PeriodCount = null; break; case 2: employeeItm.Type = 2; break; case 3: employeeItm.Type = 3; break; case 4: employeeItm.Type = 4; break; case 5: employeeItm.Type = 5; break; case 6: employeeItm.Type = 6; break; } employeeItm.TypeDescriptionText = DisplayNameHelper.GetEnumStringValue((TyposEisodhmatos)employeeItm.Type); employeeItm.TypeDisplayText = DisplayNameHelper.GetEnumVocativeDescription((TyposEisodhmatos)employeeItm.Type); employeeItm.Amoibes = EapXMLTool.GetSalaryAmounts(incomestaktikhs, "gr", "kae"); employeeItm.ErgEisfores = EapXMLTool.GetSalaryAmounts(incomestaktikhs, "et", "code"); employeeItm.Krathseis = EapXMLTool.GetSalaryAmounts(incomestaktikhs, "de", "code"); } return(employeeItm); }