Files
BeWoPlaner/Service/Dokumentverwaltung/CustomerPlaceholderManager.cs

348 lines
20 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 CustomerPlaceholderManager : PlaceholderManager
{
public override List<PlatzhalterDC> GetPlatzhalter()
{
List<PlatzhalterDC> liste = new List<PlatzhalterDC>();
PlatzhalterDC personendaten = new PlatzhalterDC()
{
Bezeichnung = "Klient/in",
Children = new List<PlatzhalterDC>(),
IconType = "BoyAndGirl"
};
personendaten.Children.Add(new PlatzhalterDC { Bezeichnung = "Anrede", Platzhalter = "KlAnrede", IconType = "AB" });
personendaten.Children.Add(new PlatzhalterDC { Bezeichnung = "Briefanrede", Platzhalter = "KlBriefanrede", IconType = "AB" });
personendaten.Children.Add(new PlatzhalterDC() { Bezeichnung = "Vorname", Platzhalter = "KlVorname", FieldName = "Person.FirstName", IconType = "AB" });
personendaten.Children.Add(new PlatzhalterDC() { Bezeichnung = "Nachname", Platzhalter = "KlNachname", FieldName = "Person.LastName", IconType = "AB" });
personendaten.Children.Add(new PlatzhalterDC() { Bezeichnung = "Alias", Platzhalter = "KlAlias", FieldName = "CustomerAlias", IconType = "AB" });
personendaten.Children.Add(new PlatzhalterDC() { Bezeichnung = "Geburtsdatum", Platzhalter = "KlGeburtsdatum", FieldName = "Person.DateOfBirth", IconType = "AB" });
personendaten.Children.Add(new PlatzhalterDC() { Bezeichnung = "Geburtsort", Platzhalter = "KlGeburtsort", FieldName = "Person.PlaceOfBirth", IconType = "AB" });
personendaten.Children.Add(new PlatzhalterDC() { Bezeichnung = "Staatsangehörigkeit", Platzhalter = "KlStaatsangehoerigkeit", FieldName = "Person.Nationalitaet", IconType = "AB" });
personendaten.Children.Add(new PlatzhalterDC() { Bezeichnung = "Telefon", Platzhalter = "KlTelefon", FieldName = "Person.Contacts", IconType = "AB" });
personendaten.Children.Add(new PlatzhalterDC() { Bezeichnung = "Handy", Platzhalter = "KlHandy", FieldName = "Person.Contacts", IconType = "AB" });
personendaten.Children.Add(new PlatzhalterDC() { Bezeichnung = "E-Mail", Platzhalter = "KlEmail", FieldName = "Person.Contacts", IconType = "AB" });
personendaten.Children.Add(new PlatzhalterDC() { Bezeichnung = "KlFax", Platzhalter = "KlFax", FieldName = "Person.Contacts", IconType = "AB" });
personendaten.Children.Add(new PlatzhalterDC() { Bezeichnung = "Beruf", Platzhalter = "KlBeruf", FieldName = "Person.Profession", IconType = "AB" });
personendaten.Children.Add(new PlatzhalterDC() { Bezeichnung = "Debitorennumer", Platzhalter = "KlDebitorennumer", FieldName = "DebitorNumber", IconType = "AB" });
personendaten.Children.Add(new PlatzhalterDC() { Bezeichnung = "Kostenstelle", Platzhalter = "KlKostenstelle", FieldName = "CostCenter", IconType = "AB" });
PlatzhalterDC adressdatenKlient = new PlatzhalterDC()
{
Bezeichnung = "Adressdaten",
Children = new List<PlatzhalterDC>(),
IconType = "Home"
};
PlatzhalterDC strasse = new PlatzhalterDC() { Bezeichnung = "Straße", Platzhalter = "KlStrasse", IconType = "AB", FieldName = "Person.Address.Street" };
adressdatenKlient.Children.Add(strasse);
PlatzhalterDC plz = new PlatzhalterDC() { Bezeichnung = "PLZ", Platzhalter = "KlPLZ", IconType = "AB", FieldName = "Person.Address.PostalCode" };
adressdatenKlient.Children.Add(plz);
PlatzhalterDC ort = new PlatzhalterDC() { Bezeichnung = "Ort", Platzhalter = "KlOrt", IconType = "AB", FieldName = "Person.Address.Town" };
adressdatenKlient.Children.Add(ort);
personendaten.Children.Add(adressdatenKlient);
PlatzhalterDC vga = new PlatzhalterDC()
{
Bezeichnung = "Vermittlung gemeinnütziger Arbeit",
Children = new List<PlatzhalterDC>(),
IconType = "BoyAndGirl"
};
vga.Children.Add(new PlatzhalterDC() { Bezeichnung = "AZ der Staatsanwaltschaft/des Gerichts", Platzhalter = "AktenzeichenGericht", FieldName = "Person.CustomerVermittlungArbeit.AktenzeichenGericht", IconType = "AB"});
vga.Children.Add(new PlatzhalterDC() { Bezeichnung = "Eigenes Aktenzeichen", Platzhalter = "EigenesAktenzeichen", FieldName = "Person.CustomerVermittlungArbeit.EigenesAktenzeichen", IconType = "AB" });
vga.Children.Add(new PlatzhalterDC() { Bezeichnung = "Auftragseingang", Platzhalter = "Auftragseingang", FieldName = "Person.CustomerVermittlungArbeit.Auftragseingang", IconType = "AB" });
vga.Children.Add(new PlatzhalterDC() { Bezeichnung = "Auftragsherkunft", Platzhalter = "Auftragsherkunft", FieldName = "Person.CustomerVermittlungArbeit.Auftragsherkunft", IconType = "AB" });
vga.Children.Add(new PlatzhalterDC() { Bezeichnung = "Vermittlungsgrundlage", Platzhalter = "Vermittlungsgrundlage", FieldName = "Person.CustomerVermittlungArbeit.Vermittlungsgrundlage", IconType = "AB" });
vga.Children.Add(new PlatzhalterDC() { Bezeichnung = "Tagessätze", Platzhalter = "Tagessatze", FieldName = "Person.CustomerVermittlungArbeit.Tagessatze", IconType = "AB" });
vga.Children.Add(new PlatzhalterDC() { Bezeichnung = "Tagessatzhöhe", Platzhalter = "Tagessatzhohe", FieldName = "Person.CustomerVermittlungArbeit.Tagessatzhohe", IconType = "AB" });
vga.Children.Add(new PlatzhalterDC() { Bezeichnung = "Höhe der Geldstrafe", Platzhalter = "HoheDerGeldstrafe", FieldName = "Person.CustomerVermittlungArbeit.HoheDerGeldstrafe", IconType = "AB" });
vga.Children.Add(new PlatzhalterDC() { Bezeichnung = "Zu leistende Arbeitsstunden", Platzhalter = "ZuLeistendeArbeitsstunden", FieldName = "Person.CustomerVermittlungArbeit.ZuLeistendeArbeitsstunden", IconType = "AB" });
vga.Children.Add(new PlatzhalterDC() { Bezeichnung = "Hinweis", Platzhalter = "Hinweis", FieldName = "Person.CustomerVermittlungArbeit.Hinweis", IconType = "AB" });
vga.Children.Add(new PlatzhalterDC() { Bezeichnung = "Termin", Platzhalter = "Termin", FieldName = "Person.CustomerVermittlungArbeit.Termin", IconType = "AB" });
vga.Children.Add(new PlatzhalterDC() { Bezeichnung = "Bearbeitungsstatus", Platzhalter = "CustomerVermittlungBearbeitungsstatus", FieldName = "Person.CustomerVermittlungArbeit.CustomerVermittlungBearbeitungsstatus", IconType = "AB" });
vga.Children.Add(new PlatzhalterDC() { Bezeichnung = "Auftragsrückgabe", Platzhalter = "Auftragsruckgabe", FieldName = "Person.CustomerVermittlungArbeit.Auftragsruckgabe", IconType = "AB" });
vga.Children.Add(new PlatzhalterDC() { Bezeichnung = "Verlauf", Platzhalter = "Verlauf", FieldName = "Person.CustomerVermittlungArbeit.Verlauf", IconType = "AB" });
vga.Children.Add(new PlatzhalterDC() { Bezeichnung = "Abgeleistete Stunden", Platzhalter = "AbgeleisteteStunden", FieldName = "Person.CustomerVermittlungArbeit.AbgeleisteteStunden", IconType = "AB" });
vga.Children.Add(new PlatzhalterDC() { Bezeichnung = "Ersparte Hafttage", Platzhalter = "ErsparteHafttage", FieldName = "Person.CustomerVermittlungArbeit.ErsparteHafttage", IconType = "AB" });
vga.Children.Add(new PlatzhalterDC() { Bezeichnung = "Geleistete Ratenzahlung", Platzhalter = "GeleisteteRatenzahlung", FieldName = "Person.CustomerVermittlungArbeit.GeleisteteRatenzahlung", IconType = "AB" });
vga.Children.Add(new PlatzhalterDC() { Bezeichnung = "Geleistete Einmalzahlung", Platzhalter = "GeleisteteEinmalzahlung", FieldName = "Person.CustomerVermittlungArbeit.GeleisteteEinmalzahlung", IconType = "AB" });
vga.Children.Add(new PlatzhalterDC() { Bezeichnung = "Bemerkung", Platzhalter = "Bemerkung", FieldName = "Person.CustomerVermittlungArbeit.Bemerkung", IconType = "AB" });
personendaten.Children.Add(vga);
PlatzhalterDC betreuung = new PlatzhalterDC()
{
Bezeichnung = "Betreuung",
Children = new List<PlatzhalterDC>(),
IconType = "Paste"
};
PlatzhalterDC betreuungsbeginn = new PlatzhalterDC() { Bezeichnung = "Betreuungsbeginn", Platzhalter = "KlBetreuungsbeginn", FieldName = "AssistanceBegin", IconType = "AB" };
betreuung.Children.Add(betreuungsbeginn);
PlatzhalterDC betreuungsende = new PlatzhalterDC() { Bezeichnung = "Betreuungsende", Platzhalter = "KlBetreuungsende", FieldName = "TerminationDate", IconType = "AB" };
betreuung.Children.Add(betreuungsende);
PlatzhalterDC grundBetreuungsende = new PlatzhalterDC() { Bezeichnung = "Grund Betreuungsbeendung", Platzhalter = "KlGrundBetreuungsbeendung", FieldName = "TerminationReason", IconType = "AB" };
betreuung.Children.Add(grundBetreuungsende);
personendaten.Children.Add(betreuung);
PlatzhalterDC behindertenausweis = new PlatzhalterDC()
{
Bezeichnung = "Schwerbehindertenausweis",
Children = new List<PlatzhalterDC>(),
IconType = "ContactCardWebDisabled"
};
PlatzhalterDC amt = new PlatzhalterDC() { Bezeichnung = "Ausstellendes Amt", Platzhalter = "AusweisAmt", FieldName = "AusstVersAmt", IconType = "AB" };
behindertenausweis.Children.Add(amt);
PlatzhalterDC gueltigVon = new PlatzhalterDC() { Bezeichnung = "Gültig von", Platzhalter = "AusweisGueltigVon", FieldName = "AusweisGueltigVon", IconType = "AB" };
behindertenausweis.Children.Add(gueltigVon);
PlatzhalterDC gueltigbis = new PlatzhalterDC() { Bezeichnung = "Gültig bis", Platzhalter = "AusweisGueltigBis", FieldName = "AusweisGueltigBis", IconType = "AB" };
behindertenausweis.Children.Add(gueltigbis);
PlatzhalterDC ausweisAktenzeichen = new PlatzhalterDC() { Bezeichnung = "Aktenzeichen", Platzhalter = "AusweisAktenzeichen", FieldName = "AusweisAktenzeichen", IconType = "AB" };
behindertenausweis.Children.Add(ausweisAktenzeichen);
PlatzhalterDC beiblatt = new PlatzhalterDC() { Bezeichnung = "Beiblattgültigkeit", Platzhalter = "AusweisBeiblatt", FieldName = "BeiblattGueltigBis", IconType = "AB" };
behindertenausweis.Children.Add(beiblatt);
PlatzhalterDC gradDerBehinderung = new PlatzhalterDC() { Bezeichnung = "Grad der Behinderung", Platzhalter = "AusweisGradDerBehinderung", FieldName = "GradDerBehinderung", IconType = "AB" };
behindertenausweis.Children.Add(gradDerBehinderung);
betreuung.Children.Add(behindertenausweis);
PlatzhalterDC pflegegrad = new PlatzhalterDC() { Bezeichnung = "Pflegegrad", Platzhalter = "KlPflegegrad", FieldName = "Pflegegrad", IconType = "AB" };
betreuung.Children.Add(pflegegrad);
PlatzhalterDC versicherung = new PlatzhalterDC()
{
Bezeichnung = "Versicherungsdaten",
Children = new List<PlatzhalterDC>(),
IconType = "OfficeBulidingBlackDisabled"
};
PlatzhalterDC krankenkasse = new PlatzhalterDC() { Bezeichnung = "Krankenkasse", Platzhalter = "KlKrankenkasse", IconType = "AB" };
versicherung.Children.Add(krankenkasse);
PlatzhalterDC versnummer = new PlatzhalterDC() { Bezeichnung = "Versichertennummer", Platzhalter = "KlVersNummer", IconType = "AB" };
versicherung.Children.Add(krankenkasse);
PlatzhalterDC versStatus = new PlatzhalterDC() { Bezeichnung = "Versicherungsstatus", Platzhalter = "KlVersicherungsstatus", IconType = "AB" };
versicherung.Children.Add(krankenkasse);
personendaten.Children.Add(versicherung);
PlatzhalterDC wohnung = new PlatzhalterDC()
{
Bezeichnung = "Wohnung",
Children = new List<PlatzhalterDC>(),
IconType = "OfficeBulidingBlackDisabled"
};
wohnung.Children.Add(new PlatzhalterDC() { Bezeichnung = "Einzugsdatum", Platzhalter = "WVEinzugsdatum", FieldName = "Person.WohneinheitBelegung.StartDate", IconType = "AB" });
wohnung.Children.Add(new PlatzhalterDC() { Bezeichnung = "Auszugsdatum", Platzhalter = "WVAuszugsdatum", FieldName = "Person.WohneinheitBelegung.EndDate", IconType = "AB" });
wohnung.Children.Add(new PlatzhalterDC() { Bezeichnung = "Einheit", Platzhalter = "WVEinheit", FieldName = "Person.Wohneinheit.Zimmername", IconType = "AB" });
wohnung.Children.Add(new PlatzhalterDC() { Bezeichnung = "Straße", Platzhalter = "WVStrasse", FieldName = "Person.Wohneinheit.Address.Street", IconType = "AB" });
wohnung.Children.Add(new PlatzhalterDC() { Bezeichnung = "PLZ", Platzhalter = "WVPLZ", FieldName = "Person.Wohneinheit.Address.PostalCode", IconType = "AB" });
wohnung.Children.Add(new PlatzhalterDC() { Bezeichnung = "Ort", Platzhalter = "WVOrt", FieldName = "Person.Wohneinheit.Address.Town", IconType = "AB" });
wohnung.Children.Add(new PlatzhalterDC() { Bezeichnung = "Stockwerk", Platzhalter = "WVStock", FieldName = "Person.Wohneinheit.Stock", IconType = "AB" });
wohnung.Children.Add(new PlatzhalterDC() { Bezeichnung = "Miete", Platzhalter = "WVMiete", FieldName = "Person.Wohneinheit.Miete", IconType = "AB" });
wohnung.Children.Add(new PlatzhalterDC() { Bezeichnung = "Heizung", Platzhalter = "WVHeizung", FieldName = "Person.Wohneinheit.Heizung", IconType = "AB" });
wohnung.Children.Add(new PlatzhalterDC() { Bezeichnung = "Strom", Platzhalter = "WVStrom", FieldName = "Person.Wohneinheit.Strom", IconType = "AB" });
wohnung.Children.Add(new PlatzhalterDC() { Bezeichnung = "Betriebskosten", Platzhalter = "WVBetriebskosten", FieldName = "Person.Wohneinheit.Betriebskosten", IconType = "AB" });
wohnung.Children.Add(new PlatzhalterDC() { Bezeichnung = "Sonstige Kosten", Platzhalter = "WVSonstigeKosten", FieldName = "Person.Wohneinheit.SonstigeKosten", IconType = "AB" });
wohnung.Children.Add(new PlatzhalterDC() { Bezeichnung = "Kaution", Platzhalter = "WVKaution", FieldName = "Person.Wohneinheit.Kaution", IconType = "AB" });
wohnung.Children.Add(new PlatzhalterDC() { Bezeichnung = "Zusatz", Platzhalter = "WVZusatz", FieldName = "Person.Wohneinheit.Zusatznotiz", IconType = "AB" });
personendaten.Children.Add(wohnung);
PlatzhalterDC sonstiges = new PlatzhalterDC()
{
Bezeichnung = "Sonstiges",
Children = new List<PlatzhalterDC>(),
IconType = "Add24"
};
#region Children Sonstiges
PlatzhalterDC datum = new PlatzhalterDC() { Bezeichnung = "Tagesdatum", Platzhalter = "Tagesdatum", IconType = "AB" };
sonstiges.Children.Add(datum);
#endregion
var em = new EmployeePlaceholderManager();
liste.AddRange(em.GetPlatzhalter());
liste.Add(personendaten);
//liste.Add(adressdatenOrganisation);
liste.Add(sonstiges);
return liste;
}
public override Object GetEntityObject(long oid)
{
return DAOFactory.GenericDAO.GetByID<Customer>(oid);
}
public override String GetPlaceholderValue(PlatzhalterDC ph, Object obj)
{
return GetPlaceholderValueForCustomer(ph, obj as Customer);
}
public String GetPlaceholderValueForCustomer(PlatzhalterDC ph, Customer customer)
{
if (customer == null)
{
return String.Empty;
}
if (ph.Platzhalter == "MaVorname" ||
ph.Platzhalter == "MaNachname" ||
ph.Platzhalter == "MaTelefon" ||
ph.Platzhalter == "MaFax" ||
ph.Platzhalter == "MaEmail" ||
ph.Platzhalter == "MaHandy")
{
var em = new EmployeePlaceholderManager();
return em.GetPlaceholderValueForEmployee(ph, Data.Security.UserRightHelper.GetLoggedInUser().Employee);
}
if (ph.Platzhalter == "KlBriefanrede")
{
if (customer.Person.Sex == Sex.Male)
return "Sehr geehrter Herr";
else if (customer.Person.Sex == Sex.Female)
return "Sehr geehrte Frau";
}
if (ph.Platzhalter == "KlAnrede")
{
if (customer.Person.Sex == Sex.Male)
return "Herr";
else if (customer.Person.Sex == Sex.Female)
return "Frau";
}
if (ph.Platzhalter == "KlVorname")
{
return base.GetPlaceholderValue(ph, customer);
//return customer.Person.FirstName;
}
if (ph.Platzhalter == "KlNachname")
{
return customer.Person.LastName;
}
if (ph.Platzhalter == "KlGeburtsdatum")
{
return String.Format("{0:dd.MM.yyyy}", customer.Person.DateOfBirth);
}
if (ph.Platzhalter == "KlTelefon")
{
foreach (Contact c in customer.Person.Contacts)
{
if (c.Type == ContactType.business_Phone)
{
return c.Value;
}
}
}
if (ph.Platzhalter == "KlHandy")
{
foreach (Contact c in customer.Person.Contacts)
{
if (c.Type == ContactType.business_MobilePhone)
{
return c.Value;
}
}
}
if (ph.Platzhalter == "KlEmail")
{
foreach (Contact c in customer.Person.Contacts)
{
if (c.Type == ContactType.business_Mail)
{
return c.Value;
}
}
}
if (ph.Platzhalter == "KlFax")
{
foreach (Contact c in customer.Person.Contacts)
{
if (c.Type == ContactType.business_Fax)
{
return c.Value;
}
}
}
if (ph.Platzhalter == "KlBeruf")
{
return customer.Person.Profession;
}
//Adressdaten
if (customer.Person.Address != null)
{
if (ph.Platzhalter == "KlStrasse")
{
return customer.Person.Address.Street;
}
if (ph.Platzhalter == "KlPLZ")
{
return customer.Person.Address.PostalCode;
}
if (ph.Platzhalter == "KlOrt")
{
return customer.Person.Address.Town;
}
}
//Betreuung
if (ph.Platzhalter == "KlAnsprechpartner")
{
string anrede = (customer.Ansprechpartner.Sex == 0) ? "Herr " : "Frau ";
return anrede + customer.Ansprechpartner.FirstNameLastName;
}
if (ph.Platzhalter == "Kostenstelle")
{
return customer.CostCenter;
}
//Sonstiges
if (ph.Platzhalter == "Tagesdatum")
{
return String.Format("{0:dd.MM.yyyy}", DateTime.Now);
}
return String.Empty;
}
}
}