diff --git a/Report/DefaultReports/LwlPruefliste2026.Designer.cs b/Report/DefaultReports/LwlPruefliste2026.Designer.cs
index e8eb48b77..7a67d6b9a 100644
--- a/Report/DefaultReports/LwlPruefliste2026.Designer.cs
+++ b/Report/DefaultReports/LwlPruefliste2026.Designer.cs
@@ -1,4 +1,4 @@
-using BeWo.Report.ReportObjects;
+using BeWo.Report.ReportObjects;
namespace BeWo.Report.DefaultReports
{
partial class LwlPruefliste2026
@@ -76,8 +76,6 @@ namespace BeWo.Report.DefaultReports
this.hdrInhalt = new DevExpress.XtraReports.UI.XRTableCell();
this.hdrBestLbDatum = new DevExpress.XtraReports.UI.XRTableCell();
this.hdrNr = new DevExpress.XtraReports.UI.XRTableCell();
- this.topMarginBand1 = new DevExpress.XtraReports.UI.TopMarginBand();
- this.bottomMarginBand1 = new DevExpress.XtraReports.UI.BottomMarginBand();
this.xrTableRow2 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell1 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell2 = new DevExpress.XtraReports.UI.XRTableCell();
@@ -90,13 +88,15 @@ namespace BeWo.Report.DefaultReports
this.xrTableCell9 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell10 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell11 = new DevExpress.XtraReports.UI.XRTableCell();
- this.xrTableCell12 = new DevExpress.XtraReports.UI.XRTableCell();
- this.xrTableCell13 = new DevExpress.XtraReports.UI.XRTableCell();
- this.xrTableCell14 = new DevExpress.XtraReports.UI.XRTableCell();
- this.xrTableCell15 = new DevExpress.XtraReports.UI.XRTableCell();
- this.xrTableCell16 = new DevExpress.XtraReports.UI.XRTableCell();
- this.xrTableCell17 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.hdrL = new DevExpress.XtraReports.UI.XRTableCell();
+ this.hdrM = new DevExpress.XtraReports.UI.XRTableCell();
+ this.hdrN = new DevExpress.XtraReports.UI.XRTableCell();
+ this.hdrO = new DevExpress.XtraReports.UI.XRTableCell();
+ this.hdrP = new DevExpress.XtraReports.UI.XRTableCell();
+ this.hdrQ = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell18 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.topMarginBand1 = new DevExpress.XtraReports.UI.TopMarginBand();
+ this.bottomMarginBand1 = new DevExpress.XtraReports.UI.BottomMarginBand();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
((System.ComponentModel.ISupportInitialize)(this.xrTable1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTableHeader)).BeginInit();
@@ -141,6 +141,7 @@ namespace BeWo.Report.DefaultReports
this.xrTable1.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
this.xrTable1.Name = "xrTable1";
this.xrTable1.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrTable1.ProcessHiddenCellMode = DevExpress.XtraReports.UI.ProcessHiddenCellMode.DecreaseTableWidth;
this.xrTable1.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
this.xrTableRow1});
this.xrTable1.SizeF = new System.Drawing.SizeF(1327F, 20F);
@@ -281,7 +282,7 @@ namespace BeWo.Report.DefaultReports
// detOrtArt
//
this.detOrtArt.ExpressionBindings.AddRange(new DevExpress.XtraReports.UI.ExpressionBinding[] {
- new DevExpress.XtraReports.UI.ExpressionBinding("BeforePrint", "Text", "[ServiceDescription]")});
+ new DevExpress.XtraReports.UI.ExpressionBinding("BeforePrint", "Text", "[OrtUndArtKuerzel]")});
this.detOrtArt.Name = "detOrtArt";
this.detOrtArt.Text = "Ort und Art der Betreuung";
this.detOrtArt.Weight = 0.09D;
@@ -357,6 +358,7 @@ namespace BeWo.Report.DefaultReports
this.xrTableHeader.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
this.xrTableHeader.Name = "xrTableHeader";
this.xrTableHeader.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrTableHeader.ProcessHiddenCellMode = DevExpress.XtraReports.UI.ProcessHiddenCellMode.DecreaseTableWidth;
this.xrTableHeader.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
this.xrTableRowHeader,
this.xrTableRow2});
@@ -432,7 +434,7 @@ namespace BeWo.Report.DefaultReports
this.hdrVon.Angle = 90F;
this.hdrVon.Multiline = true;
this.hdrVon.Name = "hdrVon";
- this.hdrVon.Text = "Uhrzeit des tatsächlichen Beginns der direkten Betreuungsleistungen „von“";
+ this.hdrVon.Text = "Uhrzeit des tatsächlichen Beginns der direkten Betreuungsleistungen „von“";
this.hdrVon.Weight = 0.05D;
//
// hdrBis
@@ -440,7 +442,7 @@ namespace BeWo.Report.DefaultReports
this.hdrBis.Angle = 90F;
this.hdrBis.Multiline = true;
this.hdrBis.Name = "hdrBis";
- this.hdrBis.Text = "Uhrzeit der Beendigung der direkten Betreuungsleistungen \"bis“";
+ this.hdrBis.Text = "Uhrzeit der Beendigung der direkten Betreuungsleistungen \"bis“";
this.hdrBis.Weight = 0.05D;
//
// hdrUmfang
@@ -464,7 +466,7 @@ namespace BeWo.Report.DefaultReports
this.hdrBestLb.Angle = 90F;
this.hdrBestLb.Multiline = true;
this.hdrBestLb.Name = "hdrBestLb";
- this.hdrBestLb.Text = "Bestätigung der erbrachten Leistungen durch die leistungsberechtigte Person";
+ this.hdrBestLb.Text = "Bestätigung der erbrachten Leistungen durch die leistungsberechtigte Person";
this.hdrBestLb.Weight = 0.08D;
//
// hdrFallverantwName
@@ -472,7 +474,7 @@ namespace BeWo.Report.DefaultReports
this.hdrFallverantwName.Angle = 90F;
this.hdrFallverantwName.Multiline = true;
this.hdrFallverantwName.Name = "hdrFallverantwName";
- this.hdrFallverantwName.Text = "Name der fallverantwortlichen Person des Leistungserbringers für die betreute Per" +
+ this.hdrFallverantwName.Text = "Name der fallverantwortlichen Person des Leistungserbringers für die betreute Per" +
"son";
this.hdrFallverantwName.Weight = 0.11D;
//
@@ -481,7 +483,7 @@ namespace BeWo.Report.DefaultReports
this.hdrBestFallverantw.Angle = 90F;
this.hdrBestFallverantw.Multiline = true;
this.hdrBestFallverantw.Name = "hdrBestFallverantw";
- this.hdrBestFallverantw.Text = "Bestätigung der erbrachten Leistungen durch die für den Leistungsberechtigten fal" +
+ this.hdrBestFallverantw.Text = "Bestätigung der erbrachten Leistungen durch die für den Leistungsberechtigten fal" +
"lverantwortliche Person";
this.hdrBestFallverantw.Weight = 0.08D;
//
@@ -506,7 +508,7 @@ namespace BeWo.Report.DefaultReports
this.hdrAnteiligeMin.Angle = 90F;
this.hdrAnteiligeMin.Multiline = true;
this.hdrAnteiligeMin.Name = "hdrAnteiligeMin";
- this.hdrAnteiligeMin.Text = "Bei Gruppenkontakten Angabe der anteilig berechneten tatsächlichen Minuten je tei" +
+ this.hdrAnteiligeMin.Text = "Bei Gruppenkontakten Angabe der anteilig berechneten tatsächlichen Minuten je tei" +
"lnehmender Person";
this.hdrAnteiligeMin.Weight = 0.06D;
//
@@ -515,7 +517,7 @@ namespace BeWo.Report.DefaultReports
this.hdrKuerzel.Angle = 90F;
this.hdrKuerzel.Multiline = true;
this.hdrKuerzel.Name = "hdrKuerzel";
- this.hdrKuerzel.Text = "Kürzel der Betreuungskraft \r\nje Kontakt";
+ this.hdrKuerzel.Text = "Kürzel der Betreuungskraft \r\nje Kontakt";
this.hdrKuerzel.Weight = 0.08D;
//
// hdrInhalt
@@ -531,7 +533,7 @@ namespace BeWo.Report.DefaultReports
this.hdrBestLbDatum.Angle = 90F;
this.hdrBestLbDatum.Multiline = true;
this.hdrBestLbDatum.Name = "hdrBestLbDatum";
- this.hdrBestLbDatum.Text = "Bestätigung der erbrachten Leistungen durch die leistungsberechtigte Person";
+ this.hdrBestLbDatum.Text = "Bestätigung der erbrachten Leistungen durch die leistungsberechtigte Person";
this.hdrBestLbDatum.Weight = 0.08D;
//
// hdrNr
@@ -541,16 +543,6 @@ namespace BeWo.Report.DefaultReports
this.hdrNr.Text = "Inhalte";
this.hdrNr.Weight = 0.074180769230769245D;
//
- // topMarginBand1
- //
- this.topMarginBand1.HeightF = 80F;
- this.topMarginBand1.Name = "topMarginBand1";
- //
- // bottomMarginBand1
- //
- this.bottomMarginBand1.HeightF = 30F;
- this.bottomMarginBand1.Name = "bottomMarginBand1";
- //
// xrTableRow2
//
this.xrTableRow2.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
@@ -565,12 +557,12 @@ namespace BeWo.Report.DefaultReports
this.xrTableCell9,
this.xrTableCell10,
this.xrTableCell11,
- this.xrTableCell12,
- this.xrTableCell13,
- this.xrTableCell14,
- this.xrTableCell15,
- this.xrTableCell16,
- this.xrTableCell17,
+ this.hdrL,
+ this.hdrM,
+ this.hdrN,
+ this.hdrO,
+ this.hdrP,
+ this.hdrQ,
this.xrTableCell18});
this.xrTableRow2.Name = "xrTableRow2";
this.xrTableRow2.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 5, 100F);
@@ -656,47 +648,47 @@ namespace BeWo.Report.DefaultReports
this.xrTableCell11.Text = "k.";
this.xrTableCell11.Weight = 0.08D;
//
- // xrTableCell12
+ // hdrL
//
- this.xrTableCell12.Multiline = true;
- this.xrTableCell12.Name = "xrTableCell12";
- this.xrTableCell12.Text = "l.";
- this.xrTableCell12.Weight = 0.09D;
+ this.hdrL.Multiline = true;
+ this.hdrL.Name = "hdrL";
+ this.hdrL.Text = "l.";
+ this.hdrL.Weight = 0.09D;
//
- // xrTableCell13
+ // hdrM
//
- this.xrTableCell13.Multiline = true;
- this.xrTableCell13.Name = "xrTableCell13";
- this.xrTableCell13.Text = "m.";
- this.xrTableCell13.Weight = 0.05D;
+ this.hdrM.Multiline = true;
+ this.hdrM.Name = "hdrM";
+ this.hdrM.Text = "m.";
+ this.hdrM.Weight = 0.05D;
//
- // xrTableCell14
+ // hdrN
//
- this.xrTableCell14.Multiline = true;
- this.xrTableCell14.Name = "xrTableCell14";
- this.xrTableCell14.Text = "n.";
- this.xrTableCell14.Weight = 0.06D;
+ this.hdrN.Multiline = true;
+ this.hdrN.Name = "hdrN";
+ this.hdrN.Text = "n.";
+ this.hdrN.Weight = 0.06D;
//
- // xrTableCell15
+ // hdrO
//
- this.xrTableCell15.Multiline = true;
- this.xrTableCell15.Name = "xrTableCell15";
- this.xrTableCell15.Text = "o.";
- this.xrTableCell15.Weight = 0.08D;
+ this.hdrO.Multiline = true;
+ this.hdrO.Name = "hdrO";
+ this.hdrO.Text = "o.";
+ this.hdrO.Weight = 0.08D;
//
- // xrTableCell16
+ // hdrP
//
- this.xrTableCell16.Multiline = true;
- this.xrTableCell16.Name = "xrTableCell16";
- this.xrTableCell16.Text = "p.";
- this.xrTableCell16.Weight = 0.14D;
+ this.hdrP.Multiline = true;
+ this.hdrP.Name = "hdrP";
+ this.hdrP.Text = "p.";
+ this.hdrP.Weight = 0.14D;
//
- // xrTableCell17
+ // hdrQ
//
- this.xrTableCell17.Multiline = true;
- this.xrTableCell17.Name = "xrTableCell17";
- this.xrTableCell17.Text = "q.";
- this.xrTableCell17.Weight = 0.08D;
+ this.hdrQ.Multiline = true;
+ this.hdrQ.Name = "hdrQ";
+ this.hdrQ.Text = "q.";
+ this.hdrQ.Weight = 0.08D;
//
// xrTableCell18
//
@@ -705,6 +697,16 @@ namespace BeWo.Report.DefaultReports
this.xrTableCell18.Text = "Spalten-Nr.";
this.xrTableCell18.Weight = 0.074180769230769245D;
//
+ // topMarginBand1
+ //
+ this.topMarginBand1.HeightF = 80F;
+ this.topMarginBand1.Name = "topMarginBand1";
+ //
+ // bottomMarginBand1
+ //
+ this.bottomMarginBand1.HeightF = 30F;
+ this.bottomMarginBand1.Name = "bottomMarginBand1";
+ //
// bindingSource1
//
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.LwlPrueflisteRO);
@@ -793,12 +795,12 @@ namespace BeWo.Report.DefaultReports
private DevExpress.XtraReports.UI.XRTableCell xrTableCell9;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell10;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell11;
- private DevExpress.XtraReports.UI.XRTableCell xrTableCell12;
- private DevExpress.XtraReports.UI.XRTableCell xrTableCell13;
- private DevExpress.XtraReports.UI.XRTableCell xrTableCell14;
- private DevExpress.XtraReports.UI.XRTableCell xrTableCell15;
- private DevExpress.XtraReports.UI.XRTableCell xrTableCell16;
- private DevExpress.XtraReports.UI.XRTableCell xrTableCell17;
+ private DevExpress.XtraReports.UI.XRTableCell hdrL;
+ private DevExpress.XtraReports.UI.XRTableCell hdrM;
+ private DevExpress.XtraReports.UI.XRTableCell hdrN;
+ private DevExpress.XtraReports.UI.XRTableCell hdrO;
+ private DevExpress.XtraReports.UI.XRTableCell hdrP;
+ private DevExpress.XtraReports.UI.XRTableCell hdrQ;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell18;
}
}
diff --git a/Report/DefaultReports/LwlPruefliste2026.cs b/Report/DefaultReports/LwlPruefliste2026.cs
index e178ae533..2209ca348 100644
--- a/Report/DefaultReports/LwlPruefliste2026.cs
+++ b/Report/DefaultReports/LwlPruefliste2026.cs
@@ -17,7 +17,7 @@ namespace BeWo.Report.DefaultReports
/// Standard: false = Variante 1 (Spalten A-K + Nr.). Nur auf explizite Nachfrage des Kunden auf true setzen.
///
/// Detailangaben zu den Spalten vom LWL:
- /// Spalte L: Ort und Art der Betreuung (DK= direkter Kontakt, TE = Telefonkontakt, F = Fehlkontakt)
+ /// Spalte L: Ort und Art der Betreuung (DK= direkter Kontakt (oder face 2 face), TE = Telefonkontakt, F = Fehlkontakt)
/// Spalte O: Kürzel der Betreuungskraft je Kontakt (ggf.eindeutige Personal - Nr., o.Ä.))
/// Spalte M: Angabe zum Inhalt der Kontaktzeit (Stichworte oder gesamter Text der individuellen Betreuungsdokumenation je Leistung)
public bool MitZusatzspalten { get; set; }
@@ -33,7 +33,8 @@ namespace BeWo.Report.DefaultReports
var zusatzspalten = new XRTableCell[]
{
detOrtArt, detAnzahl, detAnteiligeMin, detKuerzel, detInhalt, detBestLbDatum,
- hdrOrtArt, hdrAnzahl, hdrAnteiligeMin, hdrKuerzel, hdrInhalt, hdrBestLbDatum
+ hdrOrtArt, hdrAnzahl, hdrAnteiligeMin, hdrKuerzel, hdrInhalt, hdrBestLbDatum,
+ hdrL, hdrM, hdrN, hdrO, hdrP, hdrQ
};
foreach (var zelle in zusatzspalten)
{
diff --git a/Report/ReportObjects/LwlPrueflisteRO.cs b/Report/ReportObjects/LwlPrueflisteRO.cs
index b9b320087..f5d8343fd 100644
--- a/Report/ReportObjects/LwlPrueflisteRO.cs
+++ b/Report/ReportObjects/LwlPrueflisteRO.cs
@@ -111,14 +111,14 @@ order by p.lastname, p.Firstname, sr.startdate
e.MainAttendant = (String)sqlRow[16];
e.ServiceDescription = (String)sqlRow[17];
- // Spalte H (Fehlkontakt in Minuten): nur befuellen, wenn die ausgewaehlte Leistung
- // "Fehlkontakt" enthaelt - sonst bleibt das Feld null (leer).
- if (!String.IsNullOrEmpty(e.ServiceDescription)
- && e.ServiceDescription.IndexOf("Fehlkontakt", StringComparison.OrdinalIgnoreCase) >= 0)
+ // Spalte L (Ort und Art): Standard-Abkuerzung aus dem Leistungsnamen ableiten. Kann im kundenspezifischen CustomReportCreator ueberschrieben werden.
+ e.OrtUndArtKuerzel = MappeOrtUndArtKuerzel(e.ServiceDescription);
+
+ // Spalte H (Fehlkontakt in Minuten): nur befuellen, wenn die ausgewaehlte Leistung "Fehlkontakt" enthaelt - sonst bleibt das Feld null (leer).
+ if (!String.IsNullOrEmpty(e.ServiceDescription) && e.ServiceDescription.IndexOf("Fehlkontakt", StringComparison.OrdinalIgnoreCase) >= 0)
{
e.FehlkontaktMinuten = e.Minutes;
}
-
if (sqlRow[18] != null && DateTime.TryParse(sqlRow[18].ToString(), out var dt1))
{
e.CustomerSignatureDate = dt1;
@@ -134,7 +134,35 @@ order by p.lastname, p.Firstname, sr.startdate
e.EmployeeSignatureDate = dt2;
}
return e;
-
+ }
+
+ ///
+ /// Standard-Zuordnung des Leistungsnamens zur Abkuerzung fuer Spalte L der LWL-Pruefliste 2026: DK = direkter Kontakt, TE = Telefonkontakt, F = Fehlkontakt.
+ /// Deckt die gaengigen Leistungsnamen ab. Kunden mit abweichenden Bezeichnungen koennen die Zuordnung im CustomReportCreator ueberschreiben (ro.ServiceRecords
+ /// nach dem Create() durchlaufen und OrtUndArtKuerzel neu setzen).
+ ///
+ public static String MappeOrtUndArtKuerzel(String ServiceDescription)
+ {
+ if (String.IsNullOrEmpty(ServiceDescription))
+ {
+ return String.Empty;
+ }
+ var name = ServiceDescription.ToLower();
+
+ if (name.Contains("fehlkontakt") || name.Contains("ausfall"))
+ {
+ return "F";
+ }
+ if (name.Contains("telefon") || name.Contains("ear"))
+ {
+ return "TE";
+ }
+ if (name.Contains("face") || name.Contains("direkt"))
+ {
+ return "DK";
+ }
+ // Fallback: alles Uebrige gilt als direkter Kontakt.
+ return "DK";
}
}
@@ -159,12 +187,7 @@ order by p.lastname, p.Firstname, sr.startdate
public decimal Minutes { get; set; }
- ///
- /// Fehlkontakt in Minuten (max. 120) - neue Spalte H der LWL-Pruefliste 2026.
- /// Wird in ErstelleEintrag() nur gesetzt, wenn die ausgewaehlte Leistung
- /// (ServiceDescription) "Fehlkontakt" enthaelt, sonst null (leer).
- ///
- public decimal? FehlkontaktMinuten { get; set; }
+ public decimal? FehlkontaktMinuten { get; set; } // neu für LWLPruefliste2026
public int? GroupPersonCount { get; set; }
@@ -184,12 +207,12 @@ order by p.lastname, p.Firstname, sr.startdate
public String ServiceDescription { get; set; }
+ public String OrtUndArtKuerzel { get; set; } // neu für LWLPruefliste2026
+
public DateTime? CustomerSignatureDate { get; set; }
public String MainAttendant { get; set; }
public DateTime? EmployeeSignatureDate { get; set; }
}
-
-
}
\ No newline at end of file