804 lines
38 KiB
C#
804 lines
38 KiB
C#
using BeWo.Data.Access;
|
|
using BeWo.Data.Entities;
|
|
using BeWo.Service.DCEntityMapper;
|
|
using BS.Shared;
|
|
using BS.Shared.DataContracts;
|
|
using DevExpress.XtraRichEdit;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows;
|
|
using System.Windows.Media.Imaging;
|
|
|
|
namespace BeWo.Service.Dokumentverwaltung
|
|
{
|
|
public class VorlagenManager
|
|
{
|
|
public List<VorlagentabelleDC> GetVorlagentabelleDCs()
|
|
{
|
|
|
|
//Aus DB laden oder hardcoded erstellen??
|
|
|
|
//var alleVorlagentabellen = DAOFactory.GenericDAO.GetAllActive<Vorlagentabelle>();
|
|
//return MapperFactory.VorlagentabelleDC_Vorlagentabelle.MapToNewDCs(alleVorlagentabellen);
|
|
|
|
var list = new List<VorlagentabelleDC>();
|
|
|
|
list.Add(new VorlagentabelleDC() { VorlagentabelleOid = 1000, VorlagentabelleObjectTid = (int)TableID.Customer, Tabellenname = "Klienten", ImageName = "UserHomeBoyDisabled" });
|
|
list.Add(new VorlagentabelleDC() { VorlagentabelleOid = 1001, VorlagentabelleObjectTid = (int)TableID.SupportConcept, Tabellenname = "Hilfepläne", ImageName = "IDBadgeDisabled" });
|
|
|
|
return list;
|
|
|
|
}
|
|
public DokumentvorlageDC InsertOrUpdateTemplate(DokumentvorlageDC dc)
|
|
{
|
|
Dokumentvorlage entity = null;
|
|
if (dc.DokumentvorlageOid == null)
|
|
{
|
|
entity = MapperFactory.DokumentvorlageDC_Dokumentvorlage.MapToNewEntity(dc);
|
|
DAOFactory.GenericDAO.Insert(entity);
|
|
|
|
}
|
|
else
|
|
{
|
|
entity = DAOFactory.GenericDAO.LoadByID<Dokumentvorlage>((long)dc.DokumentvorlageOid);
|
|
MapperFactory.DokumentvorlageDC_Dokumentvorlage.MergeWithEntity(dc, entity);
|
|
DAOFactory.GenericDAO.Update(entity);
|
|
|
|
|
|
}
|
|
var updatedTemplateDC = MapperFactory.DokumentvorlageDC_Dokumentvorlage.MapToNewDC(entity);
|
|
return updatedTemplateDC;
|
|
}
|
|
|
|
public virtual DokumentvorlageDC LoadTemplate(long oid)
|
|
{
|
|
var entity = DAOFactory.GenericDAO.LoadByID<Dokumentvorlage>(oid);
|
|
return MapperFactory.DokumentvorlageDC_Dokumentvorlage.MapToNewDC(entity);
|
|
}
|
|
|
|
public List<PlatzhalterDC> GetPlatzhalterForTemplate(VorlagentabelleDC vt)
|
|
{
|
|
PlaceholderManager pm = null;
|
|
|
|
var tid = (TableID)vt.VorlagentabelleObjectTid;
|
|
switch (tid)
|
|
{
|
|
case TableID.Customer:
|
|
pm = new CustomerPlaceholderManager();
|
|
break;
|
|
case TableID.SupportConcept:
|
|
return GetPlatzhalterForSupportConcept();
|
|
case TableID.Employee:
|
|
return GetPlatzhalterForEmployee();
|
|
default:
|
|
break;
|
|
}
|
|
if (pm != null)
|
|
{
|
|
return pm.GetPlatzhalter();
|
|
}
|
|
return null;
|
|
}
|
|
|
|
|
|
public List<PlatzhalterDC> GetPlatzhalterForSupportConcept()
|
|
{
|
|
List<PlatzhalterDC> liste = new List<PlatzhalterDC>();
|
|
|
|
PlatzhalterDC hilfeplanDaten = new PlatzhalterDC()
|
|
{
|
|
Bezeichnung = "Hilfeplandaten",
|
|
Children = new List<PlatzhalterDC>()
|
|
};
|
|
#region Children HilfeplanDaten
|
|
//PlatzhalterDC klient = new PlatzhalterDC() { Bezeichnung = "Klient", Platzhalter = "Klient" };
|
|
//hilfeplanDaten.Children.Add(klient);
|
|
PlatzhalterDC bewilligungsdatum = new PlatzhalterDC() { Bezeichnung = "Bewilligungsdatum", Platzhalter = "Bewilligungsdatum", FieldName = "ApprovalDate" };
|
|
hilfeplanDaten.Children.Add(bewilligungsdatum);
|
|
#endregion
|
|
PlatzhalterDC klient = new PlatzhalterDC()
|
|
{
|
|
Bezeichnung = "Klient",
|
|
Children = new List<PlatzhalterDC>()
|
|
};
|
|
#region Children Klient
|
|
PlatzhalterDC klientanrede = new PlatzhalterDC() { Bezeichnung = "Anrede", Platzhalter = "KlientAnrede" };
|
|
klient.Children.Add(klientanrede);
|
|
PlatzhalterDC klientnachname = new PlatzhalterDC() { Bezeichnung = "Nachname", Platzhalter = "KlientNachname" , FieldName = "Person.Address.Street.LastName" };
|
|
klient.Children.Add(klientnachname);
|
|
PlatzhalterDC klientvorname = new PlatzhalterDC() { Bezeichnung = "Vorname", Platzhalter = "KlientVorname", FieldName = "Person.Address.Street.FirstName" };
|
|
klient.Children.Add(klientvorname);
|
|
PlatzhalterDC klientgeburtsdatum = new PlatzhalterDC() { Bezeichnung = "Geburtsdatum", Platzhalter = "KlientGeburtsdatum", FieldName = "Person.Address.Street.LastName" };
|
|
klient.Children.Add(klientgeburtsdatum);
|
|
PlatzhalterDC klienttelefonnummer = new PlatzhalterDC() { Bezeichnung = "Telefonnummer", Platzhalter = "KlientTelefonnummer", FieldName = "Customer.Contacts" };
|
|
klient.Children.Add(klienttelefonnummer);
|
|
PlatzhalterDC klienthandynummer = new PlatzhalterDC() { Bezeichnung = "Handynummer", Platzhalter = "KlientHandynummer", FieldName = "Customer.Contacts" };
|
|
klient.Children.Add(klienthandynummer);
|
|
PlatzhalterDC klientemail = new PlatzhalterDC() { Bezeichnung = "E-Mail-Adresse", Platzhalter = "KlientEmail", FieldName = "Customer.Contacts" };
|
|
klient.Children.Add(klientemail);
|
|
PlatzhalterDC klientfax = new PlatzhalterDC() { Bezeichnung = "Fax", Platzhalter = "KlientFax", FieldName = "Customer.Contacts" };
|
|
klient.Children.Add(klientfax);
|
|
#endregion
|
|
PlatzhalterDC betreuer = new PlatzhalterDC()
|
|
{
|
|
Bezeichnung = "Betreuer",
|
|
Children = new List<PlatzhalterDC>()
|
|
};
|
|
#region Children Betreuer
|
|
PlatzhalterDC betreueranrede = new PlatzhalterDC() { Bezeichnung = "Anrede", Platzhalter = "BetreuerAnrede" };
|
|
betreuer.Children.Add(betreueranrede);
|
|
PlatzhalterDC betreuernachname = new PlatzhalterDC() { Bezeichnung = "Nachname", Platzhalter = "BetreuerNachname" };
|
|
betreuer.Children.Add(betreuernachname);
|
|
PlatzhalterDC betreuervorname = new PlatzhalterDC() { Bezeichnung = "Vorname", Platzhalter = "BetreuerVorname" };
|
|
betreuer.Children.Add(betreuervorname);
|
|
PlatzhalterDC mitarbeiternummer = new PlatzhalterDC() { Bezeichnung = "Mitarbeiternummer", Platzhalter = "Mitarbeiternummer" };
|
|
betreuer.Children.Add(mitarbeiternummer);
|
|
#endregion
|
|
PlatzhalterDC sonstiges = new PlatzhalterDC()
|
|
{
|
|
Bezeichnung = "Sonstiges",
|
|
Children = new List<PlatzhalterDC>()
|
|
};
|
|
#region Children Sonstiges
|
|
PlatzhalterDC datum = new PlatzhalterDC() { Bezeichnung = "Datum", Platzhalter = "Datum" };
|
|
sonstiges.Children.Add(datum);
|
|
#endregion
|
|
|
|
liste.Add(hilfeplanDaten);
|
|
liste.Add(betreuer);
|
|
liste.Add(klient);
|
|
liste.Add(sonstiges);
|
|
|
|
return liste;
|
|
}
|
|
public List<PlatzhalterDC> GetPlatzhalterForEmployee()
|
|
{
|
|
|
|
List<PlatzhalterDC> liste = new List<PlatzhalterDC>();
|
|
|
|
PlatzhalterDC mitarbeiterdaten = new PlatzhalterDC()
|
|
{
|
|
Bezeichnung = "Mitarbeiterdaten",
|
|
Children = new List<PlatzhalterDC>(),
|
|
IconType = "BoyAndGirl"
|
|
};
|
|
#region Children Mitarbeiterdaten
|
|
PlatzhalterDC anrede = new PlatzhalterDC() { Bezeichnung = "Anrede", Platzhalter = "Anrede", IconType = "AB" };
|
|
mitarbeiterdaten.Children.Add(anrede);
|
|
PlatzhalterDC vorname = new PlatzhalterDC() { Bezeichnung = "Vorname", Platzhalter = "Vorname", FieldName = "Person.FirstName", IconType = "AB" };
|
|
mitarbeiterdaten.Children.Add(vorname);
|
|
PlatzhalterDC nachname = new PlatzhalterDC() { Bezeichnung = "Nachname", Platzhalter = "Nachname", FieldName = "Person.LastName", IconType = "AB" };
|
|
mitarbeiterdaten.Children.Add(nachname);
|
|
PlatzhalterDC gebDatum = new PlatzhalterDC() { Bezeichnung = "Geburtsdatum", Platzhalter = "Geburtsdatum", FieldName = "Person.DateOfBirth", IconType = "AB" };
|
|
mitarbeiterdaten.Children.Add(gebDatum);
|
|
PlatzhalterDC telefonnummer = new PlatzhalterDC() { Bezeichnung = "Telefonnummer", Platzhalter = "Telefonnummer", FieldName = "Person.Contacts", IconType = "AB" };
|
|
mitarbeiterdaten.Children.Add(telefonnummer);
|
|
PlatzhalterDC handynummer = new PlatzhalterDC() { Bezeichnung = "Handynummer", Platzhalter = "Handynummer", FieldName = "Person.Contacts", IconType = "AB" };
|
|
mitarbeiterdaten.Children.Add(handynummer);
|
|
PlatzhalterDC email = new PlatzhalterDC() { Bezeichnung = "E-Mail-Adresse", Platzhalter = "Email", FieldName = "Person.Contacts", IconType = "AB" };
|
|
mitarbeiterdaten.Children.Add(email);
|
|
PlatzhalterDC emailPrivat = new PlatzhalterDC() { Bezeichnung = "E-Mail-Adresse Privat", Platzhalter = "EmailPrivat", FieldName = "Person.Contacts", IconType = "AB" };
|
|
mitarbeiterdaten.Children.Add(emailPrivat);
|
|
PlatzhalterDC fax = new PlatzhalterDC() { Bezeichnung = "Fax", Platzhalter = "Fax", FieldName = "Person.Contacts", IconType = "AB" };
|
|
mitarbeiterdaten.Children.Add(fax);
|
|
PlatzhalterDC mitarbeiternummer = new PlatzhalterDC() { Bezeichnung = "Angestelltennummer", Platzhalter = "Angestelltennummer", FieldName = "PersonnelNumber", IconType = "AB" };
|
|
mitarbeiterdaten.Children.Add(mitarbeiternummer);
|
|
PlatzhalterDC steuernummer = new PlatzhalterDC() { Bezeichnung = "Steuernummer", Platzhalter = "Steuernummer", FieldName = "TaxNumber", IconType = "AB" };
|
|
mitarbeiterdaten.Children.Add(steuernummer);
|
|
PlatzhalterDC krankenkasse = new PlatzhalterDC() { Bezeichnung = "Krankenkasse", Platzhalter = "Krankenkasse", FieldName = "HealthInsurance", IconType = "AB" };
|
|
mitarbeiterdaten.Children.Add(krankenkasse);
|
|
PlatzhalterDC versicherungsnummer = new PlatzhalterDC() { Bezeichnung = "Versichertennummer", Platzhalter = "Versichertennummer", FieldName = "InsuranceNumber", IconType = "AB" };
|
|
mitarbeiterdaten.Children.Add(versicherungsnummer);
|
|
#endregion
|
|
PlatzhalterDC adressdatenMitarbeiter = new PlatzhalterDC()
|
|
{
|
|
Bezeichnung = "Adressdaten Mitarbeiter/-in",
|
|
Children = new List<PlatzhalterDC>(),
|
|
IconType = "Home"
|
|
};
|
|
#region Children Adressdaten Mitarbeiter/-in
|
|
PlatzhalterDC strasse = new PlatzhalterDC() { Bezeichnung = "Straße", Platzhalter = "MitarbeiterStrasse", FieldName = "Person.Address.Street", IconType = "AB" };
|
|
adressdatenMitarbeiter.Children.Add(strasse);
|
|
PlatzhalterDC plz = new PlatzhalterDC() { Bezeichnung = "PLZ", Platzhalter = "MitarbeiterPLZ", FieldName = "Person.Address.PostalCode", IconType = "AB" };
|
|
adressdatenMitarbeiter.Children.Add(plz);
|
|
PlatzhalterDC ort = new PlatzhalterDC() { Bezeichnung = "Ort", Platzhalter = "MitarbeiterOrt", FieldName = "Person.Address.Town", IconType = "AB" };
|
|
adressdatenMitarbeiter.Children.Add(ort);
|
|
#endregion
|
|
PlatzhalterDC aktuellerVertragMitarbeiter = new PlatzhalterDC()
|
|
{
|
|
Bezeichnung = "Vertragsdaten Mitarbeiter/-in",
|
|
Children = new List<PlatzhalterDC>(),
|
|
IconType = "Paste"
|
|
};
|
|
#region Children Adressdaten Mitarbeiter/-in
|
|
PlatzhalterDC vetragsart = new PlatzhalterDC() { Bezeichnung = "Vetragsart", Platzhalter = "Vetragsart", FieldName = "Contracts", IconType = "AB" };
|
|
aktuellerVertragMitarbeiter.Children.Add(vetragsart);
|
|
PlatzhalterDC vertragsbeginn = new PlatzhalterDC() { Bezeichnung = "Vetragsbeginn", Platzhalter = "Vetragsbeginn", FieldName = "Contracts", IconType = "AB" };
|
|
aktuellerVertragMitarbeiter.Children.Add(vertragsbeginn);
|
|
PlatzhalterDC vertragsende = new PlatzhalterDC() { Bezeichnung = "Vetragsende", Platzhalter = "Vetragsende", FieldName = "Contracts", IconType = "AB" };
|
|
aktuellerVertragMitarbeiter.Children.Add(vertragsende);
|
|
PlatzhalterDC beschaeftigtAls = new PlatzhalterDC() { Bezeichnung = "Beschäftigt als", Platzhalter = "Beschaeftigungsart", FieldName = "Contracts", IconType = "AB" };
|
|
aktuellerVertragMitarbeiter.Children.Add(beschaeftigtAls);
|
|
PlatzhalterDC stundensatz = new PlatzhalterDC() { Bezeichnung = "Stundensatz", Platzhalter = "Stundensatz", FieldName = "Contracts", IconType = "AB" };
|
|
aktuellerVertragMitarbeiter.Children.Add(stundensatz);
|
|
PlatzhalterDC flsProWoche = new PlatzhalterDC() { Bezeichnung = "FLS pro Woche", Platzhalter = "FlsProWoche", FieldName = "Contracts", IconType = "AB" };
|
|
aktuellerVertragMitarbeiter.Children.Add(flsProWoche);
|
|
PlatzhalterDC flsProMonat = new PlatzhalterDC() { Bezeichnung = "FLS pro Monat", Platzhalter = "FlsProMonat", FieldName = "Contracts", IconType = "AB" };
|
|
aktuellerVertragMitarbeiter.Children.Add(flsProMonat);
|
|
PlatzhalterDC gesamtstundenProWoche = new PlatzhalterDC() { Bezeichnung = "Stunden pro Woche", Platzhalter = "StundenProWoche", FieldName = "Contracts", IconType = "AB" };
|
|
aktuellerVertragMitarbeiter.Children.Add(gesamtstundenProWoche);
|
|
PlatzhalterDC gesamtstundenProMonat = new PlatzhalterDC() { Bezeichnung = "Stunden pro Monat", Platzhalter = "StundenProMonat", FieldName = "Contracts", IconType = "AB" };
|
|
aktuellerVertragMitarbeiter.Children.Add(gesamtstundenProMonat);
|
|
PlatzhalterDC wochenarbeitstage = new PlatzhalterDC() { Bezeichnung = "Wochenarbeitstage", Platzhalter = "Wochenarbeitstage", FieldName = "Contracts", IconType = "AB" };
|
|
aktuellerVertragMitarbeiter.Children.Add(wochenarbeitstage);
|
|
PlatzhalterDC urlaubstage = new PlatzhalterDC() { Bezeichnung = "Anzahl Urlaubstage", Platzhalter = "Urlaubstage", FieldName = "Contracts", IconType = "AB" };
|
|
aktuellerVertragMitarbeiter.Children.Add(urlaubstage);
|
|
PlatzhalterDC probezeitTage = new PlatzhalterDC() { Bezeichnung = "Tage Probezeit", Platzhalter = "ProbezeitTage", FieldName = "Contracts", IconType = "AB" };
|
|
aktuellerVertragMitarbeiter.Children.Add(probezeitTage);
|
|
PlatzhalterDC probezeitMonate = new PlatzhalterDC() { Bezeichnung = "Monate Probezeit", Platzhalter = "ProbezeitMonate", FieldName = "Contracts", IconType = "AB" };
|
|
aktuellerVertragMitarbeiter.Children.Add(probezeitMonate);
|
|
PlatzhalterDC kuendigungsfrist = new PlatzhalterDC() { Bezeichnung = "Kündigungsfrist in Tagen", Platzhalter = "Kuendigungsfrist", FieldName = "Contracts", IconType = "AB" };
|
|
aktuellerVertragMitarbeiter.Children.Add(kuendigungsfrist);
|
|
#endregion
|
|
PlatzhalterDC sonstiges = new PlatzhalterDC()
|
|
{
|
|
Bezeichnung = "Sonstiges",
|
|
Children = new List<PlatzhalterDC>(),
|
|
IconType = "Add24"
|
|
};
|
|
#region Children Sonstiges
|
|
PlatzhalterDC datum = new PlatzhalterDC() { Bezeichnung = "Datum", Platzhalter = "Datum", IconType = "AB" };
|
|
sonstiges.Children.Add(datum);
|
|
#endregion
|
|
|
|
liste.Add(mitarbeiterdaten);
|
|
liste.Add(adressdatenMitarbeiter);
|
|
liste.Add(aktuellerVertragMitarbeiter);
|
|
//liste.Add(adressdatenOrganisation);
|
|
liste.Add(sonstiges);
|
|
|
|
return liste;
|
|
}
|
|
public BeWoFolderDC GetFolderById(long oid)
|
|
{
|
|
BeWoFolder folder = DAOFactory.GenericDAO.GetByID<BeWoFolder>(oid);
|
|
var dc = MapperFactory.BeWoFolderDC_BeWoFolder.MapToNewDC(folder);
|
|
|
|
return dc;
|
|
}
|
|
public VorlagentabelleDC GetVorlagentabelleById(long oid)
|
|
{
|
|
//Vorlagentabelle tabelle = DAOFactory.GenericDAO.GetByID<Vorlagentabelle>(oid);
|
|
//var dc = MapperFactory.VorlagentabelleDC_Vorlagentabelle.MapToNewDC(tabelle);
|
|
var alle = GetVorlagentabelleDCs();
|
|
|
|
return alle.FirstOrDefault(v => v.VorlagentabelleOid == oid);
|
|
}
|
|
public List<DokumentvorlageDC> GetDokumentvorlagenInFolder(long folderOid)
|
|
{
|
|
List<Dokumentvorlage> liste = DAOFactory.SearchDAO.GetAllDokumentvorlagenInFolder(folderOid) as List<Dokumentvorlage>;
|
|
var dcs = MapperFactory.DokumentvorlageDC_Dokumentvorlage.MapToNewDCs(liste);
|
|
|
|
return dcs;
|
|
}
|
|
|
|
public List<DokumentvorlageDC> GetDokumentvorlagenForType(TableID objecTid)
|
|
{
|
|
List<Dokumentvorlage> liste = DAOFactory.GenericDAO.GetAllActive<Dokumentvorlage>().Where(d => d.Tabellenzugehoerigkeit == (int)objecTid).ToList();
|
|
var dcs = MapperFactory.DokumentvorlageDC_Dokumentvorlage.MapToNewDCs(liste);
|
|
|
|
return dcs;
|
|
}
|
|
|
|
public void DeleteTemplates(List<DokumentvorlageDC> vorlagen)
|
|
{
|
|
for (int i = vorlagen.Count - 1; i >= 0; i--)
|
|
{
|
|
var origTemplate = DAOFactory.GenericDAO.LoadByID<Dokumentvorlage>((long)vorlagen[i].DokumentvorlageOid);
|
|
MapperFactory.DokumentvorlageDC_Dokumentvorlage.ConcurrencyCheck(vorlagen[i].DokumentvorlageVersion, origTemplate);
|
|
|
|
DAOFactory.GenericDAO.Delete(origTemplate);
|
|
}
|
|
}
|
|
|
|
public void ReplacePlaceholdersInTemplate(RichEditDocumentServer rtfServer, long objectOid, TableID tid)
|
|
{
|
|
PlaceholderManager pm = null;
|
|
|
|
|
|
switch (tid)
|
|
{
|
|
case TableID.Employee:
|
|
break;
|
|
case TableID.Customer:
|
|
pm = new CustomerPlaceholderManager();
|
|
break;
|
|
case TableID.SupportConcept:
|
|
break;
|
|
}
|
|
|
|
if (pm != null)
|
|
{
|
|
|
|
var obj = pm.GetEntityObject(objectOid);
|
|
|
|
var phList = pm.GetPlatzhalter();
|
|
|
|
ReplacePlaceholdersInTemplate(pm, rtfServer, phList, obj);
|
|
}
|
|
}
|
|
|
|
private void ReplacePlaceholdersInTemplate(PlaceholderManager pm, RichEditDocumentServer rtfServer, List<PlatzhalterDC> phList, object obj)
|
|
{
|
|
foreach (var ph in phList)
|
|
{
|
|
pm.ReplacePlaceholderInText(rtfServer, ph, obj);
|
|
|
|
if (ph.Children != null && ph.Children.Count > 0)
|
|
{
|
|
ReplacePlaceholdersInTemplate(pm, rtfServer, ph.Children, obj);
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
private string EmployeeTemplate(long objectOid, string RTFWithPlaceholders)
|
|
{
|
|
bool allSet = true;
|
|
List<string> attributeList = new List<string>();
|
|
string attributeString = "";
|
|
|
|
var employee = DAOFactory.GenericDAO.GetByID<Employee>(objectOid);
|
|
var contacts = employee.Person.Contacts;
|
|
|
|
|
|
string RTFText = RTFWithPlaceholders;
|
|
|
|
#region Auf verschiedene Platzhalter prüfen
|
|
if (RTFText.Contains("[Anrede]") || RTFText.Contains("[Anrede") || RTFText.Contains("Anrede]"))
|
|
{
|
|
if (employee.Person.Sex == Sex.Male)
|
|
RTFText = RTFText.Replace("Anrede", "Sehr geehrter Herr");
|
|
else if (employee.Person.Sex == Sex.Female)
|
|
RTFText = RTFText.Replace("Anrede", "Sehr geehrte Frau");
|
|
|
|
}
|
|
if (RTFText.Contains("[Vorname]") || RTFText.Contains("[Vorname") || RTFText.Contains("Vorname]"))
|
|
{
|
|
RTFText = RTFText.Replace("Vorname", employee.Person.FirstName);
|
|
}
|
|
if (RTFText.Contains("[Nachname]") || RTFText.Contains("[Nachname") || RTFText.Contains("Nachname]"))
|
|
{
|
|
RTFText = RTFText.Replace("Nachname", employee.Person.LastName);
|
|
}
|
|
if (RTFText.Contains("[Geburtsdatum]") || RTFText.Contains("[Geburtsdatum") || RTFText.Contains("Geburtsdatum]"))
|
|
{
|
|
string[] dateAndTime = employee.Person.DateOfBirth.ToString().Split(' ');
|
|
RTFText = RTFText.Replace("Geburtsdatum", dateAndTime[0]);
|
|
}
|
|
if (RTFText.Contains("[Geburtsort]") || RTFText.Contains("[Geburtsort") || RTFText.Contains("Geburtsort]"))
|
|
{
|
|
|
|
RTFText = RTFText.Replace("Steuernummer", employee.TaxNumber);
|
|
}
|
|
if (RTFText.Contains("[Telefonnummer]") || RTFText.Contains("[Telefonnummer") || RTFText.Contains("Telefonnummer]"))
|
|
{
|
|
string phone = "";
|
|
foreach (Contact c in contacts)
|
|
{
|
|
if (c.Type == ContactType.business_Phone)
|
|
{
|
|
phone = c.Value;
|
|
break;
|
|
}
|
|
}
|
|
|
|
RTFText = RTFText.Replace("Telefonnummer", phone);
|
|
}
|
|
if (RTFText.Contains("[Handynummer]") || RTFText.Contains("[Handynummer") || RTFText.Contains("Handynummer]"))
|
|
{
|
|
string mobile = "";
|
|
foreach (Contact c in contacts)
|
|
{
|
|
if (c.Type == ContactType.business_MobilePhone)
|
|
{
|
|
mobile = c.Value;
|
|
break;
|
|
}
|
|
|
|
}
|
|
RTFText = RTFText.Replace("Handynummer", mobile);
|
|
}
|
|
if (RTFText.Contains("[EmailPrivat]") || RTFText.Contains("[EmailPrivat") || RTFText.Contains("EmailPrivat]"))
|
|
{
|
|
string email = "";
|
|
foreach (Contact c in contacts)
|
|
{
|
|
if (c.Type == ContactType.private_Mail)
|
|
{
|
|
email = c.Value;
|
|
break;
|
|
}
|
|
}
|
|
RTFText = RTFText.Replace("EmailPrivat", email);
|
|
}
|
|
if (RTFText.Contains("[Email]") || RTFText.Contains("[Email") || RTFText.Contains("Email]"))
|
|
{
|
|
string email = "";
|
|
foreach (Contact c in contacts)
|
|
{
|
|
if (c.Type == ContactType.business_Mail)
|
|
{
|
|
email = c.Value;
|
|
break;
|
|
}
|
|
}
|
|
RTFText = RTFText.Replace("Email", email);
|
|
}
|
|
if (RTFText.Contains("[Fax]") || RTFText.Contains("[Fax") || RTFText.Contains("Fax]"))
|
|
{
|
|
string fax = "";
|
|
foreach (Contact c in contacts)
|
|
{
|
|
if (c.Type == ContactType.business_Fax)
|
|
{
|
|
fax = c.Value;
|
|
break;
|
|
}
|
|
}
|
|
RTFText = RTFText.Replace("Fax", fax);
|
|
}
|
|
if (RTFText.Contains("[Angestelltennummer]") || RTFText.Contains("[Angestelltennummer") || RTFText.Contains("Angestelltennummer]"))
|
|
{
|
|
RTFText = RTFText.Replace("Angestelltennummer", employee.PersonnelNumber);
|
|
}
|
|
if (RTFText.Contains("[Steuernummer]") || RTFText.Contains("[Steuernummer") || RTFText.Contains("Steuernummer]"))
|
|
{
|
|
RTFText = RTFText.Replace("Steuernummer", employee.TaxNumber);
|
|
}
|
|
if (RTFText.Contains("[Krankenkasse]") || RTFText.Contains("[Krankenkasse") || RTFText.Contains("Krankenkasse]"))
|
|
{
|
|
RTFText = RTFText.Replace("Krankenkasse", employee.HealthInsurance);
|
|
}
|
|
if (RTFText.Contains("[Versichertennummer]") || RTFText.Contains("[Versichertennummer") || RTFText.Contains("Versichertennummer]"))
|
|
{
|
|
RTFText = RTFText.Replace("Versichertennummer", employee.InsuranceNumber);
|
|
}
|
|
|
|
//Adressdaten
|
|
if (employee.Person.Address != null)
|
|
{
|
|
if (RTFText.Contains("[MitarbeiterStrasse]") || RTFText.Contains("[MitarbeiterStrasse") || RTFText.Contains("MitarbeiterStrasse]"))
|
|
{
|
|
RTFText = RTFText.Replace("MitarbeiterStrasse", employee.Person.Address.Street);
|
|
}
|
|
if (RTFText.Contains("[MitarbeiterPLZ]") || RTFText.Contains("[MitarbeiterPLZ") || RTFText.Contains("MitarbeiterPLZ]"))
|
|
{
|
|
RTFText = RTFText.Replace("MitarbeiterPLZ", employee.Person.Address.PostalCode);
|
|
}
|
|
if (RTFText.Contains("[MitarbeiterOrt]") || RTFText.Contains("[MitarbeiterOrt") || RTFText.Contains("MitarbeiterOrt]"))
|
|
{
|
|
RTFText = RTFText.Replace("MitarbeiterOrt", employee.Person.Address.Town);
|
|
}
|
|
}
|
|
|
|
|
|
//Sonstiges
|
|
if (RTFText.Contains("[Datum]") || RTFText.Contains("[Datum") || RTFText.Contains("Datum]"))
|
|
{
|
|
string[] datum = DateTime.Now.ToString().Split(' ');
|
|
RTFText = RTFText.Replace("Datum", datum[0]);
|
|
}
|
|
|
|
|
|
RTFText = RTFText.Replace("[", "");
|
|
RTFText = RTFText.Replace("]", "");
|
|
#endregion
|
|
|
|
if (allSet)
|
|
return RTFText;
|
|
else
|
|
{
|
|
foreach (var s in attributeList)
|
|
{
|
|
attributeString += (s != attributeList.Last()) ? s + ", " : s;
|
|
}
|
|
MessageBox.Show("Seite für " + employee.Person.FirstNameLastName + " kann nicht erstellt werden, da folgende Attribute des Mitarbeiters nicht gesetzt sind:\n" +
|
|
attributeString + "\nSetzen Sie die Attribute und erstellen Sie die Druckvorscheu für den Mitarbeiter erneut.", "BeWoPlaner", MessageBoxButton.OK, MessageBoxImage.Warning);
|
|
return "";
|
|
}
|
|
}
|
|
|
|
|
|
//private static string ErsetzePlatzhalter(Object objekt, PlatzhalterDC pdc)
|
|
//{
|
|
// var t = typeof(object);
|
|
// var fieldnames = pdc.FieldName.Split('.');
|
|
|
|
// t.GetProperty(fieldnames[0]).GetValue(oj)
|
|
//}
|
|
|
|
//private static string ErsetzePlatzhalter(Object objekt, String propertyName)
|
|
//{
|
|
// var t = typeof(object);
|
|
|
|
// var fieldnames = pdc.FieldName.Split('.');
|
|
|
|
|
|
//}
|
|
|
|
private string SupportConceptTemplate(long? objectOid, string RTFWithPlaceholders)
|
|
{
|
|
var supportConcept = DAOFactory.GenericDAO.GetByID<SupportConcept>((long)objectOid);
|
|
|
|
bool allSet = true;
|
|
List<string> attributeList = new List<string>();
|
|
string attributeString = "";
|
|
|
|
string RTFText = RTFWithPlaceholders;
|
|
|
|
#region Auf verschiedene Platzhalter prüfen
|
|
//Hilfeplan
|
|
if (RTFText.Contains("[Bewilligungsdatum]") || RTFText.Contains("[Bewilligungsdatum") || RTFText.Contains("Bewilligungsdatum]"))
|
|
{
|
|
string[] datum = supportConcept.ApprovalDate.ToString().Split(' ');
|
|
|
|
//if (datum[0].IsNullOrEmpty())
|
|
//{
|
|
// allSet = false;
|
|
// attributeList.Add("Bewilligungsdatum");
|
|
//}
|
|
//else
|
|
RTFText = RTFText.Replace("Bewilligungsdatum", datum[0]);
|
|
}
|
|
|
|
//Klient
|
|
var contacts = supportConcept.Customer.Person.Contacts;
|
|
|
|
if (RTFText.Contains("[KlientAnrede]") || RTFText.Contains("[KlientAnrede") || RTFText.Contains("KlientAnrede]"))
|
|
{
|
|
if (supportConcept.Customer.Person.Sex == Sex.Male)
|
|
RTFText = RTFText.Replace("KlientAnrede", "Sehr geehrter Herr");
|
|
else if (supportConcept.Customer.Person.Sex == Sex.Female)
|
|
RTFText = RTFText.Replace("KlientAnrede", "Sehr geehrte Frau");
|
|
//else
|
|
//{
|
|
// attributeList.Add("Klientengeschlecht");
|
|
// allSet = false;
|
|
//}
|
|
}
|
|
if (RTFText.Contains("[KlientNachname]") || RTFText.Contains("[KlientNachname") || RTFText.Contains("KlientNachname]"))
|
|
{
|
|
//if (supportConcept.Customer.Person.LastName.IsNullOrEmpty())
|
|
//{
|
|
// allSet = false;
|
|
// attributeList.Add("Klientennachname");
|
|
//}
|
|
//else
|
|
RTFText = RTFText.Replace("KlientNachname", supportConcept.Customer.Person.LastName);
|
|
}
|
|
if (RTFText.Contains("[KlientVorname]") || RTFText.Contains("[KlientVorname") || RTFText.Contains("KlientVorname]"))
|
|
{
|
|
//if (supportConcept.Customer.Person.FirstName.IsNullOrEmpty())
|
|
//{
|
|
// allSet = false;
|
|
// attributeList.Add("Klientenvorname");
|
|
//}
|
|
//else
|
|
RTFText = RTFText.Replace("KlientVorname", supportConcept.Customer.Person.FirstName);
|
|
}
|
|
if (RTFText.Contains("[KlientGeburtsdatum]") || RTFText.Contains("[KlientGeburtsdatum") || RTFText.Contains("KlientGeburtsdatum]"))
|
|
{
|
|
string[] dateAndTime = supportConcept.Customer.Person.DateOfBirth.ToString().Split(' ');
|
|
//if (dateAndTime[0].IsNullOrEmpty())
|
|
//{
|
|
// allSet = false;
|
|
// attributeList.Add("Geburtsdatum");
|
|
//}
|
|
//else
|
|
RTFText = RTFText.Replace("KlientGeburtsdatum", dateAndTime[0]);
|
|
}
|
|
if (RTFText.Contains("[KlientTelefonnummer]") || RTFText.Contains("[KlientTelefonnummer") || RTFText.Contains("KlientTelefonnummer]"))
|
|
{
|
|
string phone = "";
|
|
foreach (Contact c in contacts)
|
|
{
|
|
if (c.Type == ContactType.business_Phone)
|
|
{
|
|
phone = c.Value;
|
|
break;
|
|
}
|
|
}
|
|
|
|
//if (phone.IsNullOrEmpty())
|
|
//{
|
|
// attributeList.Add("Kliententelefonnummer");
|
|
// allSet = false;
|
|
//}
|
|
//else
|
|
RTFText = RTFText.Replace("KlientTelefonnummer", phone);
|
|
}
|
|
if (RTFText.Contains("[KlientHandynummer]") || RTFText.Contains("[KlientHandynummer") || RTFText.Contains("KlientHandynummer]"))
|
|
{
|
|
string mobile = "";
|
|
foreach (Contact c in contacts)
|
|
{
|
|
if (c.Type == ContactType.business_MobilePhone)
|
|
{
|
|
mobile = c.Value;
|
|
break;
|
|
}
|
|
|
|
}
|
|
//if (mobile.IsNullOrEmpty())
|
|
//{
|
|
// attributeList.Add("Klientenhandynummer");
|
|
// allSet = false;
|
|
//}
|
|
//else
|
|
RTFText = RTFText.Replace("KlientHandynummer", mobile);
|
|
}
|
|
if (RTFText.Contains("[KlientEmail]") || RTFText.Contains("[KlientEmail") || RTFText.Contains("KlientEmail]"))
|
|
{
|
|
string email = "";
|
|
foreach (Contact c in contacts)
|
|
{
|
|
if (c.Type == ContactType.business_Mail)
|
|
{
|
|
email = c.Value;
|
|
break;
|
|
}
|
|
}
|
|
//if (email.IsNullOrEmpty())
|
|
//{
|
|
// attributeList.Add("Klienten-Email-Adresse");
|
|
// allSet = false;
|
|
//}
|
|
//else
|
|
RTFText = RTFText.Replace("KlientEmail", email);
|
|
}
|
|
if (RTFText.Contains("[KlientFax]") || RTFText.Contains("[KlientFax") || RTFText.Contains("KlientFax]"))
|
|
{
|
|
string fax = "";
|
|
foreach (Contact c in contacts)
|
|
{
|
|
if (c.Type == ContactType.business_Fax)
|
|
{
|
|
fax = c.Value;
|
|
break;
|
|
}
|
|
}
|
|
//if (fax.IsNullOrEmpty())
|
|
//{
|
|
// attributeList.Add("Klientenfax");
|
|
// allSet = false;
|
|
//}
|
|
//else
|
|
RTFText = RTFText.Replace("KlientFax", fax);
|
|
}
|
|
|
|
//Betreuer
|
|
if (RTFText.Contains("[BetreuerAnrede]") || RTFText.Contains("[BetreuerAnrede") || RTFText.Contains("BetreuerAnrede]"))
|
|
{
|
|
if (supportConcept.Customer.Person.Sex == Sex.Male)
|
|
RTFText = RTFText.Replace("BetreuerAnrede", "Sehr geehrter Herr");
|
|
else if (supportConcept.Customer.Person.Sex == Sex.Female)
|
|
RTFText = RTFText.Replace("BetreuerAnrede", "Sehr geehrte Frau");
|
|
//else
|
|
//{
|
|
// attributeList.Add("Betreuergeschlecht");
|
|
// allSet = false;
|
|
//}
|
|
}
|
|
if (RTFText.Contains("[BetreuerNachname]") || RTFText.Contains("[BetreuerNachname") || RTFText.Contains("BetreuerNachname]"))
|
|
{
|
|
//if (supportConcept.Originator.Person.LastName.IsNullOrEmpty())
|
|
//{
|
|
// allSet = false;
|
|
// attributeList.Add("Betreuernachname");
|
|
//}
|
|
//else
|
|
RTFText = RTFText.Replace("BetreuerNachname", supportConcept.Originator.Person.LastName);
|
|
}
|
|
if (RTFText.Contains("[BetreuerVorname]") || RTFText.Contains("[BetreuerVorname") || RTFText.Contains("BetreuerVorname]"))
|
|
{
|
|
//if (supportConcept.Originator.Person.FirstName.IsNullOrEmpty())
|
|
//{
|
|
// allSet = false;
|
|
// attributeList.Add("Betreuervorname");
|
|
//}
|
|
//else
|
|
RTFText = RTFText.Replace("BetreuerVorname", supportConcept.Originator.Person.FirstName);
|
|
}
|
|
if (RTFText.Contains("[Mitarbeiternummer]") || RTFText.Contains("[Mitarbeiternummer") || RTFText.Contains("Mitarbeiternummer]"))
|
|
{
|
|
//if (supportConcept.Originator.PersonnelNumber.IsNullOrEmpty())
|
|
//{
|
|
// allSet = false;
|
|
// attributeList.Add("Mitarbeiternummer");
|
|
//}
|
|
//else
|
|
RTFText = RTFText.Replace("Mitarbeiternummer", supportConcept.Originator.PersonnelNumber);
|
|
}
|
|
|
|
|
|
//Sonstiges
|
|
if (RTFText.Contains("[Datum]") || RTFText.Contains("[Datum") || RTFText.Contains("Datum]"))
|
|
{
|
|
string[] datum = DateTime.Now.ToString().Split(' ');
|
|
RTFText = RTFText.Replace("Datum", datum[0]);
|
|
}
|
|
|
|
|
|
RTFText = RTFText.Replace("[", "");
|
|
RTFText = RTFText.Replace("]", "");
|
|
#endregion
|
|
|
|
if (allSet)
|
|
return RTFText;
|
|
else
|
|
{
|
|
foreach (var s in attributeList)
|
|
{
|
|
attributeString += (s != attributeList.Last()) ? s + ", " : s;
|
|
}
|
|
MessageBox.Show("Seite für " + supportConcept.Customer.Person.FirstNameLastName + " kann nicht erstellt werden, da folgende Attribute des Hilfeplans nicht gesetzt sind:\n" +
|
|
attributeString + "\nSetzen Sie die Attribute und erstellen Sie die Druckvorschau für den Hilfeplan erneut.", "BeWoPlaner", MessageBoxButton.OK, MessageBoxImage.Warning);
|
|
return "";
|
|
}
|
|
}
|
|
|
|
public String CreateRtfDocumentFromTemplate(long vorlageOid, TableID objectTid, List<long> objectOids)
|
|
{
|
|
string rtf = "";
|
|
|
|
var templateDC = MapperFactory.DokumentvorlageDC_Dokumentvorlage.MapToNewDC(DAOFactory.GenericDAO.GetByID<Dokumentvorlage>(vorlageOid));
|
|
|
|
if (!String.IsNullOrEmpty(templateDC.RTFText))
|
|
{
|
|
RichEditDocumentServer server = new RichEditDocumentServer();
|
|
|
|
using (var stream = new MemoryStream(Encoding.Default.GetBytes(templateDC.RTFText)))
|
|
{
|
|
server.LoadDocument(stream);
|
|
}
|
|
|
|
foreach (var oid in objectOids)
|
|
{
|
|
ReplacePlaceholdersInTemplate(server, oid, objectTid);
|
|
|
|
rtf = server.Document.RtfText;
|
|
|
|
//var server = new RichEditDocumentServer();
|
|
|
|
//using (var stream = new MemoryStream(Encoding.Default.GetBytes(text)))
|
|
//{
|
|
// server.LoadDocument(stream);
|
|
//}
|
|
|
|
//var ranges = server.Document.FindAll(DevExpress.Office.Characters.PageBreak.ToString(), DevExpress.XtraRichEdit.API.Native.SearchOptions.None);
|
|
//var dp = server.Document.Paragraphs[0].Range.Start;
|
|
|
|
//List<VorlageRO> collection = new List<VorlageRO>();
|
|
//foreach (var dr in ranges)
|
|
//{
|
|
// var tmpRange = server.Document.CreateRange(dp, dr.Start.ToInt() - dp.ToInt());
|
|
// collection.Add(new VorlageRO { RTFText = server.Document.GetRtfText(tmpRange) });
|
|
// dp = dr.End;
|
|
//}
|
|
//var tmpRange2 = server.Document.CreateRange(dp, server.Document.Paragraphs[server.Document.Paragraphs.Count - 1].Range.End.ToInt() - dp.ToInt());
|
|
//collection.Add(new VorlageRO { RTFText = server.Document.GetRtfText(tmpRange2) });
|
|
|
|
|
|
}
|
|
}
|
|
return rtf;
|
|
}
|
|
|
|
}
|
|
}
|