public static HttpPostedFileBase Create(AvtaleInfoMidlertidlig aInfo) { var templateText = Maltekst.HentMalTekst("ArbeidsavtaleNyeNarvikMidlertidlig"); var html = string.Format(templateText, aInfo.Navn, aInfo.Personnr, aInfo.Arbeidssted, aInfo.TittelStilling, aInfo.Hjemmel, aInfo.Sluttdato, aInfo.Prosent, aInfo.Provetid, aInfo.ProvetidUtloper, aInfo.Lonn, aInfo.Annet, aInfo.TimerPrUke); return(MakePdf(html.Replace("%$", "{").Replace("$%", "}"))); }
public static Response <List <AvtaleInfo> > HentAnsattStillingsInfo(Bundles.AnsattInfo ansatt, string innloggetAD) { var client = new WebClient { Credentials = new NetworkCredential(Username, Password) }; client.Encoding = Encoding.UTF8; var resultList = new List <AvtaleInfo>(); // liste med alle stillinger som innlogget bruker er leder for denne personen try { var response = client.DownloadString($"{hrm_URL}/name/firstname/{Uri.EscapeDataString(ansatt.Fornavn)}/lastname/{Uri.EscapeDataString(ansatt.Etternavn)}"); var doc = new XmlDocument(); doc.LoadXml(response); var persons = doc.SelectNodes(@"//personsXML/person"); foreach (XmlNode person in persons) { var employments = person.SelectNodes(@"./employments/employment"); foreach (XmlNode employment in employments) { var employeeId = employment.SelectSingleNode("./employeeId").InnerText; if (ansatt.AnsattNr.Equals(employeeId)) { // hent alle stillinger til den ansatte var positions = employment.SelectNodes(@"./positions/position"); foreach (XmlNode position in positions) { // finn nærmeste leder for denne stillingen var managerIdHRM = position.SelectSingleNode(@"./chart/unit/manager").Attributes["id"].Value; var lederHRM = FinnLeder(managerIdHRM); if (lederHRM.Success) { // sjekk at innlogget bruker er nærmeste leder for denne stillingen //if (innloggetAD.ToUpper().Equals(lederHRM.Get().AD.ToUpper())) { var stillingTittel = position.SelectSingleNode(@"./positionInfo/positionCode").Attributes["name"].Value; var stillingKode = position.SelectSingleNode(@"./positionInfo/positionCode").Attributes["positionCode"].Value; var fastAnsatt = position.SelectSingleNode(@"./positionInfo/positionType").Attributes["value"].Value; var prosent = position.SelectSingleNode(@"./positionPercentage").InnerText; var ssn = person.SelectSingleNode(@"./ssn").InnerText; var enhetNavn = position.SelectSingleNode(@"./chart/unit").Attributes["name"].Value; var arbeidssted = position.SelectSingleNode(@"./chart").Attributes["name"].Value; var enhetDim3 = position.SelectSingleNode(@"./costCentres/dimension3").Attributes["name"].Value; //enhetNavn = enhetNavn.Substring(0, 1).ToUpper() + enhetNavn.ToLower().Substring(1, enhetNavn.Length - 1); var lonn = position.SelectSingleNode(@"./salaryInfo/yearlySalary").InnerText; var timerPrUke = position.SelectSingleNode(@"./weeklyHours").InnerText; var fast = position.SelectSingleNode(@"./positionInfo/positionType ").Attributes["value"].Value; if (fast.ToUpper().Equals("F")) { var ai = new AvtaleInfo() { Navn = ansatt.Navn, Personnr = ssn, Arbeidssted = enhetNavn + " " + enhetDim3, TittelStilling = stillingKode + " " + stillingTittel, Lonn = lonn, Prosent = prosent, TimerPrUke = timerPrUke }; resultList.Add(ai); } else { var sluttdato = position.SelectSingleNode(@"./positionEndDate").InnerText; var ai = new AvtaleInfoMidlertidlig() { Navn = ansatt.Navn, Personnr = ssn, Arbeidssted = arbeidssted,//enhetNavn + " " + enhetDim3, TittelStilling = stillingKode + " " + stillingTittel, Lonn = lonn, Hjemmel = fast.ToLower(), Prosent = prosent, Sluttdato = sluttdato }; resultList.Add(ai); } } } else { return(new Response <List <AvtaleInfo> >(null, "Nærmeste leder ble ikke funnet i HRM", Codes.Code.ERROR)); } } } } } return(new Response <List <AvtaleInfo> >(resultList, "OK", Codes.Code.OK)); } catch (Exception e) { return(new Response <List <AvtaleInfo> >(null, e.Message, Codes.Code.ERROR)); } }