diff --git a/Data/Entities/Arbeitszeit.cs b/Data/Entities/Arbeitszeit.cs index e9f635d55..bd6044d2b 100644 --- a/Data/Entities/Arbeitszeit.cs +++ b/Data/Entities/Arbeitszeit.cs @@ -1,9 +1,11 @@ using System; using System.Collections.Generic; +using System.Diagnostics; using BS.Shared; namespace BeWo.Data.Entities { + [DebuggerDisplay("{GueltigVon}-{GueltigBis}")] public class Arbeitszeit : BeWoEntityBase { public static string PropertyName_GueltigVon = "GueltigVon"; diff --git a/Data/Entities/ArbeitszeitEintrag.cs b/Data/Entities/ArbeitszeitEintrag.cs index c919791f6..b06a027c0 100644 --- a/Data/Entities/ArbeitszeitEintrag.cs +++ b/Data/Entities/ArbeitszeitEintrag.cs @@ -1,8 +1,10 @@ using BS.Shared; using System; +using System.Diagnostics; namespace BeWo.Data.Entities { + [DebuggerDisplay("{Tag} {UhrzeitVon}-{UhrzeitBis}")] public class ArbeitszeitEintrag : BeWoEntityBase { public static string PropertyName_UhrzeitVon = "UhrzeitVon"; diff --git a/Report/DefaultReports/Mitarbeiterarbeitszeitkonto.designer.cs b/Report/DefaultReports/Mitarbeiterarbeitszeitkonto.designer.cs index 0cd6826f5..6c6b566c6 100644 --- a/Report/DefaultReports/Mitarbeiterarbeitszeitkonto.designer.cs +++ b/Report/DefaultReports/Mitarbeiterarbeitszeitkonto.designer.cs @@ -103,6 +103,7 @@ namespace BeWo.Report.DefaultReports this.xrTableCell57 = new DevExpress.XtraReports.UI.XRTableCell(); this.xrTableCell58 = new DevExpress.XtraReports.UI.XRTableCell(); this.xrTableCell26 = new DevExpress.XtraReports.UI.XRTableCell(); + this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components); this.Title = new DevExpress.XtraReports.UI.XRControlStyle(); this.FieldCaption = new DevExpress.XtraReports.UI.XRControlStyle(); this.PageInfo = new DevExpress.XtraReports.UI.XRControlStyle(); @@ -121,7 +122,9 @@ namespace BeWo.Report.DefaultReports this.fieldIstArbeitszeit = new DevExpress.XtraReports.UI.CalculatedField(); this.fieldUeberstundenGesamt = new DevExpress.XtraReports.UI.CalculatedField(); this.fieldTatsSoll = new DevExpress.XtraReports.UI.CalculatedField(); - this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components); + this.xrTableRow3 = new DevExpress.XtraReports.UI.XRTableRow(); + this.xrTableCell14 = new DevExpress.XtraReports.UI.XRTableCell(); + this.xrTableCell22 = new DevExpress.XtraReports.UI.XRTableCell(); ((System.ComponentModel.ISupportInitialize)(this.xrTableDetail)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.xrTableHeader)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.xrTable2)).BeginInit(); @@ -377,7 +380,7 @@ namespace BeWo.Report.DefaultReports this.lblMonat, this.xrTable2}); this.GroupHeader3.Font = new DevExpress.Drawing.DXFont("Arial", 10F); - this.GroupHeader3.HeightF = 143.9583F; + this.GroupHeader3.HeightF = 167.9166F; this.GroupHeader3.Level = 1; this.GroupHeader3.Name = "GroupHeader3"; this.GroupHeader3.PageBreak = DevExpress.XtraReports.UI.PageBreak.BeforeBand; @@ -389,7 +392,7 @@ namespace BeWo.Report.DefaultReports new DevExpress.XtraReports.UI.XRBinding("Text", null, "EmployeeDetailList.AbsenceString")}); this.xrLabel1.Font = new DevExpress.Drawing.DXFont("Arial", 10F); this.xrLabel1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.xrLabel1.LocationFloat = new DevExpress.Utils.PointFloat(0F, 108.9583F); + this.xrLabel1.LocationFloat = new DevExpress.Utils.PointFloat(0F, 132.9166F); this.xrLabel1.Multiline = true; this.xrLabel1.Name = "xrLabel1"; this.xrLabel1.SizeF = new System.Drawing.SizeF(702F, 25F); @@ -419,8 +422,9 @@ namespace BeWo.Report.DefaultReports this.xrTable2.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] { this.xrTableRow1, this.xrTableRow8, - this.xrTableRow10}); - this.xrTable2.SizeF = new System.Drawing.SizeF(552.2002F, 54F); + this.xrTableRow10, + this.xrTableRow3}); + this.xrTable2.SizeF = new System.Drawing.SizeF(552.2002F, 72F); this.xrTable2.StylePriority.UseBorders = false; this.xrTable2.StylePriority.UseFont = false; this.xrTable2.StylePriority.UsePadding = false; @@ -907,6 +911,10 @@ namespace BeWo.Report.DefaultReports this.xrTableCell26.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight; this.xrTableCell26.Weight = 0.11143081848591821D; // + // bindingSource1 + // + this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.MitarbeiterstundenkontoRO); + // // Title // this.Title.BackColor = System.Drawing.Color.White; @@ -1043,9 +1051,37 @@ namespace BeWo.Report.DefaultReports this.fieldTatsSoll.FieldType = DevExpress.XtraReports.UI.FieldType.Decimal; this.fieldTatsSoll.Name = "fieldTatsSoll"; // - // bindingSource1 + // xrTableRow3 // - this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.MitarbeiterstundenkontoRO); + this.xrTableRow3.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] { + this.xrTableCell14, + this.xrTableCell22}); + this.xrTableRow3.Name = "xrTableRow3"; + this.xrTableRow3.Weight = 0.75540991165010141D; + // + // xrTableCell14 + // + this.xrTableCell14.Font = new DevExpress.Drawing.DXFont("Arial", 10F, DevExpress.Drawing.DXFontStyle.Bold); + this.xrTableCell14.Multiline = true; + this.xrTableCell14.Name = "xrTableCell14"; + this.xrTableCell14.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); + this.xrTableCell14.StylePriority.UseFont = false; + this.xrTableCell14.StylePriority.UsePadding = false; + this.xrTableCell14.StylePriority.UseTextAlignment = false; + this.xrTableCell14.Text = "Resturlaub:"; + this.xrTableCell14.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; + this.xrTableCell14.Weight = 0.138246012405208D; + // + // xrTableCell22 + // + this.xrTableCell22.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { + new DevExpress.XtraReports.UI.XRBinding("Text", null, "EmployeeDetailList.Resturlaub")}); + this.xrTableCell22.Multiline = true; + this.xrTableCell22.Name = "xrTableCell22"; + this.xrTableCell22.StylePriority.UseTextAlignment = false; + this.xrTableCell22.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; + this.xrTableCell22.TextFormatString = "{0:0.00}"; + this.xrTableCell22.Weight = 0.49791629021026573D; // // Mitarbeiterarbeitszeitkonto // @@ -1182,5 +1218,8 @@ namespace BeWo.Report.DefaultReports private DevExpress.XtraReports.UI.XRTableCell xrTableCell12; private DevExpress.XtraReports.UI.XRTableCell xrTableCell13; private DevExpress.XtraReports.UI.XRLabel xrLabel1; + private DevExpress.XtraReports.UI.XRTableRow xrTableRow3; + private DevExpress.XtraReports.UI.XRTableCell xrTableCell14; + private DevExpress.XtraReports.UI.XRTableCell xrTableCell22; } } diff --git a/Report/DefaultReports/Mitarbeiterstundenkonto.designer.cs b/Report/DefaultReports/Mitarbeiterstundenkonto.designer.cs index 495916ec0..1ee779fe8 100644 --- a/Report/DefaultReports/Mitarbeiterstundenkonto.designer.cs +++ b/Report/DefaultReports/Mitarbeiterstundenkonto.designer.cs @@ -91,6 +91,9 @@ namespace BeWo.Report.DefaultReports this.fieldFLS = new DevExpress.XtraReports.UI.CalculatedField(); this.topMarginBand1 = new DevExpress.XtraReports.UI.TopMarginBand(); this.bottomMarginBand1 = new DevExpress.XtraReports.UI.BottomMarginBand(); + this.xrTableCell1 = new DevExpress.XtraReports.UI.XRTableCell(); + this.xrTableCell6 = new DevExpress.XtraReports.UI.XRTableCell(); + this.xrTableCell17 = new DevExpress.XtraReports.UI.XRTableCell(); this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components); ((System.ComponentModel.ISupportInitialize)(this.xrTableDetail)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.xrTableHeader)).BeginInit(); @@ -126,7 +129,7 @@ namespace BeWo.Report.DefaultReports this.xrTableDetail.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); this.xrTableDetail.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] { this.xrTableRowDetail}); - this.xrTableDetail.SizeF = new System.Drawing.SizeF(1005F, 25F); + this.xrTableDetail.SizeF = new System.Drawing.SizeF(1071F, 25F); this.xrTableDetail.StylePriority.UseBorders = false; this.xrTableDetail.StylePriority.UseFont = false; this.xrTableDetail.StylePriority.UsePadding = false; @@ -147,7 +150,8 @@ namespace BeWo.Report.DefaultReports this.xrTableCell21, this.xrTableCell25, this.xrTableCell24, - this.xrTableCell26}); + this.xrTableCell26, + this.xrTableCell6}); this.xrTableRowDetail.Name = "xrTableRowDetail"; this.xrTableRowDetail.Weight = 1D; // @@ -282,7 +286,7 @@ namespace BeWo.Report.DefaultReports this.xrTableHeader.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); this.xrTableHeader.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] { this.xrTableRowHeader}); - this.xrTableHeader.SizeF = new System.Drawing.SizeF(1005F, 70F); + this.xrTableHeader.SizeF = new System.Drawing.SizeF(1071F, 70F); this.xrTableHeader.StylePriority.UseBorders = false; this.xrTableHeader.StylePriority.UseFont = false; this.xrTableHeader.StylePriority.UsePadding = false; @@ -303,7 +307,8 @@ namespace BeWo.Report.DefaultReports this.xrTableCell12, this.xrTableCell13, this.xrTableCell14, - this.xrTableCell15}); + this.xrTableCell15, + this.xrTableCell1}); this.xrTableRowHeader.Name = "xrTableRowHeader"; this.xrTableRowHeader.Weight = 2.8D; // @@ -406,7 +411,7 @@ namespace BeWo.Report.DefaultReports this.xrTable1.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); this.xrTable1.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] { this.xrTableRow1}); - this.xrTable1.SizeF = new System.Drawing.SizeF(1005F, 25F); + this.xrTable1.SizeF = new System.Drawing.SizeF(1071F, 25F); this.xrTable1.StylePriority.UseBorders = false; this.xrTable1.StylePriority.UseFont = false; this.xrTable1.StylePriority.UsePadding = false; @@ -427,7 +432,8 @@ namespace BeWo.Report.DefaultReports this.cellRelationGesamt, this.xrTableCell47, this.xrTableCell48, - this.xrTableCell51}); + this.xrTableCell51, + this.xrTableCell17}); this.xrTableRow1.Name = "xrTableRow1"; this.xrTableRow1.Weight = 1D; // @@ -440,17 +446,17 @@ namespace BeWo.Report.DefaultReports this.xrTableCell35.StylePriority.UseTextAlignment = false; this.xrTableCell35.Text = "Gesamt"; this.xrTableCell35.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; - this.xrTableCell35.Weight = 0.15329126714047708D; + this.xrTableCell35.Weight = 0.1527208718660181D; // // xrTableCell37 // this.xrTableCell37.Name = "xrTableCell37"; - this.xrTableCell37.Weight = 0.081154151689479551D; + this.xrTableCell37.Weight = 0.08085216800837608D; // // xrTableCell39 // this.xrTableCell39.Name = "xrTableCell39"; - this.xrTableCell39.Weight = 0.094679919312514085D; + this.xrTableCell39.Weight = 0.0943276875722075D; // // cellSollGesamt // @@ -458,7 +464,7 @@ namespace BeWo.Report.DefaultReports new DevExpress.XtraReports.UI.XRBinding("Text", null, "SollGesamt", "{0:0.00}")}); this.cellSollGesamt.Name = "cellSollGesamt"; this.cellSollGesamt.Text = "cellSollGesamt"; - this.cellSollGesamt.Weight = 0.0721370604147881D; + this.cellSollGesamt.Weight = 0.071868593785223173D; // // cellFLSSollGesamt // @@ -466,7 +472,7 @@ namespace BeWo.Report.DefaultReports new DevExpress.XtraReports.UI.XRBinding("Text", null, "FlsSollGesamt", "{0:0.00}")}); this.cellFLSSollGesamt.Name = "cellFLSSollGesamt"; this.cellFLSSollGesamt.Text = "cellFLSSollGesamt"; - this.cellFLSSollGesamt.Weight = 0.063119927862939587D; + this.cellFLSSollGesamt.Weight = 0.062885088357332058D; // // cellFLSIstGesamt // @@ -474,7 +480,7 @@ namespace BeWo.Report.DefaultReports new DevExpress.XtraReports.UI.XRBinding("Text", null, "FlsIstGesamt", "{0:0.00}")}); this.cellFLSIstGesamt.Name = "cellFLSIstGesamt"; this.cellFLSIstGesamt.Text = "cellFLSIstGesamt"; - this.cellFLSIstGesamt.Weight = 0.063119927862939615D; + this.cellFLSIstGesamt.Weight = 0.062885033321122663D; // // cellFLSPlusMinusGesamt // @@ -482,7 +488,7 @@ namespace BeWo.Report.DefaultReports new DevExpress.XtraReports.UI.XRBinding("Text", null, "FlsDiffGesamt", "{0:0.00}")}); this.cellFLSPlusMinusGesamt.Name = "cellFLSPlusMinusGesamt"; this.cellFLSPlusMinusGesamt.Text = "cellFLSPlusMinusGesamt"; - this.cellFLSPlusMinusGesamt.Weight = 0.063119927862939587D; + this.cellFLSPlusMinusGesamt.Weight = 0.062885088357332058D; // // cellGesamtGesamt // @@ -490,7 +496,7 @@ namespace BeWo.Report.DefaultReports new DevExpress.XtraReports.UI.XRBinding("Text", null, "StundenGesamt", "{0:0.00}")}); this.cellGesamtGesamt.Name = "cellGesamtGesamt"; this.cellGesamtGesamt.Text = "cellGesamtGesamt"; - this.cellGesamtGesamt.Weight = 0.063119927862939573D; + this.cellGesamtGesamt.Weight = 0.0628849782849132D; // // cellRelationGesamt // @@ -498,22 +504,22 @@ namespace BeWo.Report.DefaultReports new DevExpress.XtraReports.UI.XRBinding("Text", null, "RelationFlsZuMittelbar", "{0:0.00}")}); this.cellRelationGesamt.Name = "cellRelationGesamt"; this.cellRelationGesamt.Text = "cellRelationGesamt"; - this.cellRelationGesamt.Weight = 0.0631199278629396D; + this.cellRelationGesamt.Weight = 0.062884978284913226D; // // xrTableCell47 // this.xrTableCell47.Name = "xrTableCell47"; - this.xrTableCell47.Weight = 0.063119927862939587D; + this.xrTableCell47.Weight = 0.062885088357332058D; // // xrTableCell48 // this.xrTableCell48.Name = "xrTableCell48"; - this.xrTableCell48.Weight = 0.063119927862939587D; + this.xrTableCell48.Weight = 0.062884978284913212D; // // xrTableCell51 // this.xrTableCell51.Name = "xrTableCell51"; - this.xrTableCell51.Weight = 0.063119927862939573D; + this.xrTableCell51.Weight = 0.062885088357332045D; // // ReportHeader // @@ -635,6 +641,28 @@ namespace BeWo.Report.DefaultReports this.bottomMarginBand1.HeightF = 30F; this.bottomMarginBand1.Name = "bottomMarginBand1"; // + // xrTableCell1 + // + this.xrTableCell1.Multiline = true; + this.xrTableCell1.Name = "xrTableCell1"; + this.xrTableCell1.Text = "Resturlaub"; + this.xrTableCell1.Weight = 0.0631199213956443D; + // + // xrTableCell6 + // + this.xrTableCell6.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { + new DevExpress.XtraReports.UI.XRBinding("Text", null, "EmployeeDetailList.Resturlaub")}); + this.xrTableCell6.Multiline = true; + this.xrTableCell6.Name = "xrTableCell6"; + this.xrTableCell6.TextFormatString = "{0:0.00}"; + this.xrTableCell6.Weight = 0.063119927862939573D; + // + // xrTableCell17 + // + this.xrTableCell17.Multiline = true; + this.xrTableCell17.Name = "xrTableCell17"; + this.xrTableCell17.Weight = 0.062885253465960314D; + // // bindingSource1 // this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.MitarbeiterstundenkontoRO); @@ -652,7 +680,7 @@ namespace BeWo.Report.DefaultReports this.fieldFLS}); this.DataSource = this.bindingSource1; this.Landscape = true; - this.Margins = new DevExpress.Drawing.DXMargins(75F, 75F, 50F, 30F); + this.Margins = new DevExpress.Drawing.DXMargins(75F, 23F, 50F, 30F); this.PageHeight = 827; this.PageWidth = 1169; this.PaperKind = DevExpress.Drawing.Printing.DXPaperKind.A4; @@ -735,5 +763,8 @@ namespace BeWo.Report.DefaultReports private DevExpress.XtraReports.UI.XRTableCell xrTableCell48; private DevExpress.XtraReports.UI.XRTableCell xrTableCell51; private DevExpress.XtraReports.UI.XRLabel xrLabel1; + private DevExpress.XtraReports.UI.XRTableCell xrTableCell6; + private DevExpress.XtraReports.UI.XRTableCell xrTableCell1; + private DevExpress.XtraReports.UI.XRTableCell xrTableCell17; } } diff --git a/Report/DefaultReports/MitarbeiterstundenkontoJahr.designer.cs b/Report/DefaultReports/MitarbeiterstundenkontoJahr.designer.cs index ca258f219..9d9d77e2a 100644 --- a/Report/DefaultReports/MitarbeiterstundenkontoJahr.designer.cs +++ b/Report/DefaultReports/MitarbeiterstundenkontoJahr.designer.cs @@ -98,8 +98,11 @@ namespace BeWo.Report.DefaultReports this.xrLabel2 = new DevExpress.XtraReports.UI.XRLabel(); this.xrLabel1 = new DevExpress.XtraReports.UI.XRLabel(); this.GroupFooter2 = new DevExpress.XtraReports.UI.GroupFooterBand(); - this.fieldRelationGesamt = new DevExpress.XtraReports.UI.CalculatedField(); this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components); + this.fieldRelationGesamt = new DevExpress.XtraReports.UI.CalculatedField(); + this.xrTableCell1 = new DevExpress.XtraReports.UI.XRTableCell(); + this.xrTableCell6 = new DevExpress.XtraReports.UI.XRTableCell(); + this.xrTableCell17 = new DevExpress.XtraReports.UI.XRTableCell(); ((System.ComponentModel.ISupportInitialize)(this.xrTableDetail)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.xrTableHeader)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.xrTable1)).BeginInit(); @@ -124,7 +127,7 @@ namespace BeWo.Report.DefaultReports this.xrTableDetail.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); this.xrTableDetail.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] { this.xrTableRowDetail}); - this.xrTableDetail.SizeF = new System.Drawing.SizeF(1005F, 25F); + this.xrTableDetail.SizeF = new System.Drawing.SizeF(1058F, 25F); this.xrTableDetail.StylePriority.UseBorders = false; this.xrTableDetail.StylePriority.UseFont = false; this.xrTableDetail.StylePriority.UsePadding = false; @@ -145,7 +148,8 @@ namespace BeWo.Report.DefaultReports this.xrTableCell21, this.xrTableCell25, this.xrTableCell24, - this.xrTableCell26}); + this.xrTableCell26, + this.xrTableCell6}); this.xrTableRowDetail.Name = "xrTableRowDetail"; this.xrTableRowDetail.Weight = 1D; // @@ -260,7 +264,7 @@ namespace BeWo.Report.DefaultReports this.xrTableHeader.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); this.xrTableHeader.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] { this.xrTableRowHeader}); - this.xrTableHeader.SizeF = new System.Drawing.SizeF(1005F, 70F); + this.xrTableHeader.SizeF = new System.Drawing.SizeF(1058F, 70F); this.xrTableHeader.StylePriority.UseBorders = false; this.xrTableHeader.StylePriority.UseFont = false; this.xrTableHeader.StylePriority.UsePadding = false; @@ -281,7 +285,8 @@ namespace BeWo.Report.DefaultReports this.xrTableCell12, this.xrTableCell13, this.xrTableCell14, - this.xrTableCell15}); + this.xrTableCell15, + this.xrTableCell1}); this.xrTableRowHeader.Name = "xrTableRowHeader"; this.xrTableRowHeader.Weight = 2.8D; // @@ -377,7 +382,7 @@ namespace BeWo.Report.DefaultReports this.xrTable1.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); this.xrTable1.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] { this.xrTableRow1}); - this.xrTable1.SizeF = new System.Drawing.SizeF(1005F, 25F); + this.xrTable1.SizeF = new System.Drawing.SizeF(1058F, 25F); this.xrTable1.StylePriority.UseBorders = false; this.xrTable1.StylePriority.UseFont = false; this.xrTable1.StylePriority.UsePadding = false; @@ -398,7 +403,8 @@ namespace BeWo.Report.DefaultReports this.cellRelationGesamt, this.xrTableCell47, this.xrTableCell48, - this.xrTableCell51}); + this.xrTableCell51, + this.xrTableCell17}); this.xrTableRow1.Name = "xrTableRow1"; this.xrTableRow1.Weight = 1D; // @@ -668,6 +674,10 @@ namespace BeWo.Report.DefaultReports this.GroupFooter2.HeightF = 25F; this.GroupFooter2.Name = "GroupFooter2"; // + // bindingSource1 + // + this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.MitarbeiterstundenkontoMonateRO); + // // fieldRelationGesamt // this.fieldRelationGesamt.DataMember = "EmployeeInfoList.EmployeeDetails"; @@ -675,9 +685,27 @@ namespace BeWo.Report.DefaultReports this.fieldRelationGesamt.FieldType = DevExpress.XtraReports.UI.FieldType.Decimal; this.fieldRelationGesamt.Name = "fieldRelationGesamt"; // - // bindingSource1 + // xrTableCell1 // - this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.MitarbeiterstundenkontoMonateRO); + this.xrTableCell1.Multiline = true; + this.xrTableCell1.Name = "xrTableCell1"; + this.xrTableCell1.Text = "Resturlaub"; + this.xrTableCell1.Weight = 0.0631199213956443D; + // + // xrTableCell6 + // + this.xrTableCell6.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { + new DevExpress.XtraReports.UI.XRBinding("Text", null, "EmployeeInfoList.EmployeeDetails.EmployeeDetail.Resturlaub")}); + this.xrTableCell6.Multiline = true; + this.xrTableCell6.Name = "xrTableCell6"; + this.xrTableCell6.TextFormatString = "{0:0.00}"; + this.xrTableCell6.Weight = 0.063119927862939573D; + // + // xrTableCell17 + // + this.xrTableCell17.Multiline = true; + this.xrTableCell17.Name = "xrTableCell17"; + this.xrTableCell17.Weight = 0.063119927862939573D; // // MitarbeiterstundenkontoJahr // @@ -693,7 +721,7 @@ namespace BeWo.Report.DefaultReports this.DataSource = this.bindingSource1; this.DisplayName = "Mitarbeiterstundenkonto"; this.Landscape = true; - this.Margins = new DevExpress.Drawing.DXMargins(75F, 75F, 50F, 30F); + this.Margins = new DevExpress.Drawing.DXMargins(75F, 36F, 50F, 30F); this.PageHeight = 827; this.PageWidth = 1169; this.PaperKind = DevExpress.Drawing.Printing.DXPaperKind.A4; @@ -779,5 +807,8 @@ namespace BeWo.Report.DefaultReports private DevExpress.XtraReports.UI.GroupFooterBand GroupFooter2; private DevExpress.XtraReports.UI.CalculatedField fieldRelationGesamt; private DevExpress.XtraReports.UI.XRLabel xrLabel2; + private DevExpress.XtraReports.UI.XRTableCell xrTableCell6; + private DevExpress.XtraReports.UI.XRTableCell xrTableCell1; + private DevExpress.XtraReports.UI.XRTableCell xrTableCell17; } } diff --git a/Report/ReportObjects/MitarbeiterstundenkontoBerechnung.cs b/Report/ReportObjects/MitarbeiterstundenkontoBerechnung.cs index 1c66f6f00..0323d94b7 100644 --- a/Report/ReportObjects/MitarbeiterstundenkontoBerechnung.cs +++ b/Report/ReportObjects/MitarbeiterstundenkontoBerechnung.cs @@ -13,6 +13,7 @@ using BS.Shared.Extensions; using DevExpress.XtraCharts.Native; using BS.Shared.DataContracts; using BeWo.Service.Plugins; +using BeWo.Service.DCEntityMapper; namespace BeWo.Report.ReportObjects { @@ -470,7 +471,29 @@ namespace BeWo.Report.ReportObjects //Urlaubskonto (todo) empDetail.UrlaubGesamtImAktuellenJahr = GetAbsenceTimeDaysWithWorkWeeks(emp, new DateTime(monatsAnfang.Year, 1, 1), monatsEnde, empDetail.ArbeitstageProWoche).TageUrlaub; - + + // Aktuellen Resturlaub berechnen + var vs = PluginLoader.FindClass(); + // Darstellungsvariante, da das normale Urlaubskonto nur den Resturlaubsstand vom Ende des Jahres anzeigt. + var konto = vs.BerechneUrlaubskontoZurDarstellung(MapperFactory.EmployeeDC_Employee.MapToNewDC(emp), ro.ReportStartDate.Year, berichtsEnde.AddTicks(-1)); + if (konto != null && konto.Count > 0) + { + empDetail.Resturlaub = Convert.ToDecimal(konto[0].AnzahlTage); + // Jeder Entry enthält den Zeitraum und die abzuziehenden Tage vom Gesamtbudget. + foreach (var entry in konto) + { + // Hat entry kein Datum, dann ist es nur eine Überschrift in der Darstellung und hat hier keinen Nutzen + if (entry.DatumZurSortierung != null || entry.Erlaeuterung.Contains("Resturlaub aus")) + { + // Ist das Datum nach dem Enddatum des Stundenkontos braucht nicht weitergerechnet werden + if (entry.DatumZurSortierung > ro.ReportEndDate.AddTicks(-1)) + break; + + empDetail.Resturlaub += Convert.ToDecimal(entry.AnzahlTage); // += weil Tage immer als Minus dargestellt sind + } + } + } + CalculateEmployeeSalary(empDetail, berichtsAnfang, berichtsEnde); } diff --git a/Report/ReportObjects/MitarbeiterstundenkontoRO.cs b/Report/ReportObjects/MitarbeiterstundenkontoRO.cs index c65d1eac9..a5ad677b0 100644 --- a/Report/ReportObjects/MitarbeiterstundenkontoRO.cs +++ b/Report/ReportObjects/MitarbeiterstundenkontoRO.cs @@ -387,6 +387,7 @@ namespace BeWo.Report.ReportObjects public EmploymentType EmploymentType { get; set; } public decimal DienstplanIst { get; set; } public string AbsenceString { get; set; } + public decimal Resturlaub{ get; set; } } [DebuggerDisplay("{Date}: {MinutesTotal}")] diff --git a/Service/Plugins/VacationService.cs b/Service/Plugins/VacationService.cs index 8883633a1..f35b03be5 100644 --- a/Service/Plugins/VacationService.cs +++ b/Service/Plugins/VacationService.cs @@ -388,7 +388,7 @@ namespace BeWo.Service.Plugins // 6. Anzahl der aus 1.-5. resultierenden Resturlaubstage fürs Jahr, also Resturlaub vom Urlaubskonto // 7. Liste der DCs nach Datum sortieren, um eine zeitliche Hierarchie zu schaffen - public virtual List BerechneUrlaubskontoZurDarstellung(EmployeeDC emp, int year) + public virtual List BerechneUrlaubskontoZurDarstellung(EmployeeDC emp, int year, DateTime? endeDerBerechnung = null) { List dcs = new List(); EmployeeServiceImp es = new EmployeeServiceImp(); @@ -595,6 +595,10 @@ namespace BeWo.Service.Plugins // Urlaube durchgehen und die Tage zählen foreach (var spanne in absences) { + // Im Stundenkonto wird auch Resturlaub angezeigt. Geht eine Abwesenheit über das Ende des Stundenkontomonats hinaus, + // Abwesenheit auf endeDerBerechnung setzen, damit Urlaubstage vom nachfolgenden Monat nicht zu früh abgezogen werden + if (endeDerBerechnung.HasValue && spanne.End.HasValue && spanne.End.Value > endeDerBerechnung.Value) + spanne.End = endeDerBerechnung; if (spanne.End.HasValue && spanne.End.Value.Year > year) spanne.End = new DateTime(year, 12, 31); if (spanne.Start.HasValue && spanne.Start.Value.Year < year) diff --git a/Shared/DataContracts/UrlaubskontoDarstellungDC.cs b/Shared/DataContracts/UrlaubskontoDarstellungDC.cs index c8c9d5e04..0657f3661 100644 --- a/Shared/DataContracts/UrlaubskontoDarstellungDC.cs +++ b/Shared/DataContracts/UrlaubskontoDarstellungDC.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Diagnostics; using System.Linq; using System.Runtime.Serialization; using System.Text; @@ -7,6 +8,7 @@ using System.Threading.Tasks; namespace BS.Shared.DataContracts { + [DebuggerDisplay("{DatumZurSortierung} {Erlaeuterung}: {AnzahlTage}")] public class UrlaubskontoDarstellungDC : IDataContract { [DataMember]