public override void defineToolbarContent()
 {
     //Datagrid erst jetzt befüllen
     fillRevenuesDataGrid(Revenue.GetRevenues(null, _currentPerson.PersonID));
 }
Exemple #2
0
        /// <summary>
        /// Druck des Aufnahmeformulars
        /// </summary>
        /// <param name="personID">ID der Person</param>
        public static void printClientEnrolmentForm(int personID)
        {
            if (!LibreOffice.isLibreOfficeInstalled())
            {
                string warning = IniParser.GetSetting("ERRORMSG", "libre");
                MessageBoxEnhanced.Error(warning);
            }

            Person person;

            try
            {
                var persons = Person.GetPersons(personID).ToList();
                person = persons.FirstOrDefault();
            }
            catch
            {
                return;
            }

            string currentDir = System.IO.Directory.GetCurrentDirectory();
            string path       = IniParser.GetSetting("DOCUMENTS", "path").Replace("%PROGRAMPATH%", currentDir) + "\\" + IniParser.GetSetting("DOCUMENTS", "enrolmentForm");

            List <string> toReplace    = new List <string>();
            List <string> replaceSt    = new List <string>();
            int           rowsChildren = 6;
            int           rowsRevenues = 8;

            if (person == null)
            {
                return;
            }

            toReplace.Add("<text:placeholder text:placeholder-type=\"text\">&lt;Vorname&gt;</text:placeholder>");
            replaceSt.Add(SafeStringParser.safeParseToStr(person.FirstName));
            toReplace.Add("<text:placeholder text:placeholder-type=\"text\">&lt;Nachname&gt;</text:placeholder>");
            replaceSt.Add(SafeStringParser.safeParseToStr(person.LastName));
            toReplace.Add("<text:placeholder text:placeholder-type=\"text\">&lt;Strasse&gt;</text:placeholder>");
            replaceSt.Add(SafeStringParser.safeParseToStr(person.Street));
            toReplace.Add("<text:placeholder text:placeholder-type=\"text\">&lt;PLZ&gt;</text:placeholder>");
            replaceSt.Add(SafeStringParser.safeParseToStr(person.ZipCode));
            toReplace.Add("<text:placeholder text:placeholder-type=\"text\">&lt;Ort&gt;</text:placeholder>");
            replaceSt.Add(SafeStringParser.safeParseToStr(person.City));
            toReplace.Add("<text:placeholder text:placeholder-type=\"text\">&lt;Geburtstag&gt;</text:placeholder>");
            replaceSt.Add(SafeStringParser.safeParseToStr(person.DateOfBirth));
            toReplace.Add("<text:placeholder text:placeholder-type=\"text\">&lt;Staatsangehoerigkeit&gt;</text:placeholder>");
            replaceSt.Add(SafeStringParser.safeParseToStr(person.Nationality));
            toReplace.Add("<text:placeholder text:placeholder-type=\"text\">&lt;Geburtsland&gt;</text:placeholder>");
            replaceSt.Add(SafeStringParser.safeParseToStr(person.CountryOfBirth));
            toReplace.Add("<text:placeholder text:placeholder-type=\"text\">&lt;Familienstand&gt;</text:placeholder>");
            replaceSt.Add(SafeStringParser.safeParseToStr(person.FamilyState.Name));
            toReplace.Add("<text:placeholder text:placeholder-type=\"text\">&lt;Vorname_Partner&gt;</text:placeholder>");
            replaceSt.Add(SafeStringParser.safeParseToStr(person.MaritalFirstName));
            toReplace.Add("<text:placeholder text:placeholder-type=\"text\">&lt;Nachname_Partner&gt;</text:placeholder>");
            replaceSt.Add(SafeStringParser.safeParseToStr(person.MaritalLastName));
            toReplace.Add("<text:placeholder text:placeholder-type=\"text\">&lt;Geburtstag_Partner&gt;</text:placeholder>");
            replaceSt.Add(SafeStringParser.safeParseToStr(person.MaritalBirthday));
            toReplace.Add("<text:placeholder text:placeholder-type=\"text\">&lt;Staatsangehoerigkeit_Partner&gt;</text:placeholder>");
            replaceSt.Add(SafeStringParser.safeParseToStr(person.MaritalNationality));
            toReplace.Add("<text:placeholder text:placeholder-type=\"text\">&lt;Datum&gt;</text:placeholder>");
            replaceSt.Add(SafeStringParser.safeParseToStr(DateTime.Now));
            toReplace.Add("<text:placeholder text:placeholder-type=\"text\">&lt;Gueltigkeitsende&gt;</text:placeholder>");
            replaceSt.Add(SafeStringParser.safeParseToStr(person.ValidityEnd));
            toReplace.Add("<text:placeholder text:placeholder-type=\"text\">&lt;KNR&gt;</text:placeholder>");
            replaceSt.Add(SafeStringParser.safeParseToStr(person.TableNo));

            toReplace.Add("<text:placeholder text:placeholder-type=\"text\">&lt;Erfasser&gt;</text:placeholder>");
            if (person.UserAccount != null)
            {
                replaceSt.Add(SafeStringParser.safeParseToStr(person.UserAccount.Username));
            }
            else
            {
                replaceSt.Add("");
            }

            // fülle Kinder
            IEnumerable <Child> children = Child.GetChildren(null, person.PersonID);
            int childIndex = 1;

            foreach (var child in children)
            {
                toReplace.Add("<text:placeholder text:placeholder-type=\"text\">&lt;Kind_Index_" + childIndex + "&gt;</text:placeholder>");
                replaceSt.Add("#" + childIndex);
                toReplace.Add("<text:placeholder text:placeholder-type=\"text\">&lt;Kind_Vorname_" + childIndex + "&gt;</text:placeholder>");
                replaceSt.Add(SafeStringParser.safeParseToStr(child.FirstName));
                toReplace.Add("<text:placeholder text:placeholder-type=\"text\">&lt;Kind_Nachname_" + childIndex + "&gt;</text:placeholder>");
                replaceSt.Add(SafeStringParser.safeParseToStr(child.LastName));
                toReplace.Add("<text:placeholder text:placeholder-type=\"text\">&lt;Kind_Geburtstag_" + childIndex + "&gt;</text:placeholder>");
                replaceSt.Add(SafeStringParser.safeParseToStr(child.DateOfBirth));
                childIndex++;
            }
            // Sorge dafür, dass die übrigen Zeilen beim Druck leer sind
            for (int i = childIndex; i <= rowsChildren; i++)
            {
                toReplace.Add("<text:placeholder text:placeholder-type=\"text\">&lt;Kind_Index_" + i + "&gt;</text:placeholder>");
                replaceSt.Add("");
                toReplace.Add("<text:placeholder text:placeholder-type=\"text\">&lt;Kind_Vorname_" + i + "&gt;</text:placeholder>");
                replaceSt.Add("");
                toReplace.Add("<text:placeholder text:placeholder-type=\"text\">&lt;Kind_Nachname_" + i + "&gt;</text:placeholder>");
                replaceSt.Add("");
                toReplace.Add("<text:placeholder text:placeholder-type=\"text\">&lt;Kind_Geburtstag_" + i + "&gt;</text:placeholder>");
                replaceSt.Add("");
            }

            // fülle Einkünfte
            IEnumerable <Revenue> revenues = Revenue.GetRevenues(null, person.PersonID);
            int revenueIndex = 1;

            foreach (var revenue in revenues)
            {
                toReplace.Add("<text:placeholder text:placeholder-type=\"text\">&lt;Einkunft_" + revenueIndex + "&gt;</text:placeholder>");
                replaceSt.Add(revenue.RevenueType.Name + ": " + revenue.Description);
                toReplace.Add("<text:placeholder text:placeholder-type=\"text\">&lt;Bescheid_" + revenueIndex + "&gt;</text:placeholder>");
                replaceSt.Add(SafeStringParser.safeParseToStr(revenue.StartDate));
                toReplace.Add("<text:placeholder text:placeholder-type=\"text\">&lt;Bewilligt_" + revenueIndex + "&gt;</text:placeholder>");
                replaceSt.Add(SafeStringParser.safeParseToStr(revenue.EndDate));
                toReplace.Add("<text:placeholder text:placeholder-type=\"text\">&lt;Hoehe_" + revenueIndex + "&gt;</text:placeholder>");
                replaceSt.Add(SafeStringParser.safeParseToMoney(revenue.Amount, true));
                revenueIndex++;
            }
            // Sorge dafür, dass die übrigen Zeilen beim Druck leer sind
            for (int i = revenueIndex; i <= rowsRevenues; i++)
            {
                toReplace.Add("<text:placeholder text:placeholder-type=\"text\">&lt;Einkunft_" + i + "&gt;</text:placeholder>");
                replaceSt.Add("");
                toReplace.Add("<text:placeholder text:placeholder-type=\"text\">&lt;Bescheid_" + i + "&gt;</text:placeholder>");
                replaceSt.Add("");
                toReplace.Add("<text:placeholder text:placeholder-type=\"text\">&lt;Bewilligt_" + i + "&gt;</text:placeholder>");
                replaceSt.Add("");
                toReplace.Add("<text:placeholder text:placeholder-type=\"text\">&lt;Hoehe_" + i + "&gt;</text:placeholder>");
                replaceSt.Add("");
            }

            string tmpFilePath;
            bool   success = LibreOffice.replaceXMLstringInODT(path, toReplace, replaceSt, out tmpFilePath);

            if (success)
            {
                LibreOffice.openWithWriter(tmpFilePath, true, true);
            }
        }