Beispiel #1
0
        public static HttpPostedFileBase Create(AvtaleInfo aInfo)
        {
            var templateText = Maltekst.HentMalTekst("ArbeidsavtaleNyeNarvikFast");
            var html         = string.Format(templateText, aInfo.Navn, aInfo.Personnr, aInfo.Arbeidssted, aInfo.TittelStilling, aInfo.Prosent, aInfo.Lonn, aInfo.Annet);

            //var html = string.Format(templateText, "Test Hansen", "01020399199", "HR PERSONAL", "8530 Rådgiver", "100.0", "500000.00", "");
            return(MakePdf(html.Replace("%$", "{").Replace("$%", "}")));
        }
Beispiel #2
0
        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));
            }
        }