Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo
This commit is contained in:
@@ -3,7 +3,7 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using BeWo.Data.Entities;
|
||||
using BeWo.Report.ReportObjects;
|
||||
|
||||
using BS.Shared.Extensions;
|
||||
|
||||
namespace BetreuWoWesel
|
||||
{
|
||||
@@ -58,7 +58,25 @@ namespace BetreuWoWesel
|
||||
return dd;
|
||||
}
|
||||
|
||||
public override void CalculateAbsenceTimesForDay(MitarbeiterstundenkontoRO.DayDetail dd,
|
||||
public override void CalculateSpecialHours(MitarbeiterstundenkontoRO.DayDetail dd, ServiceRecord sr, decimal duration)
|
||||
{
|
||||
|
||||
base.CalculateSpecialHours(dd, sr, duration);
|
||||
|
||||
var d1 = sr.Start.Value;
|
||||
if (d1 >= new DateTime(2024, 07, 01))
|
||||
{
|
||||
|
||||
var saturday = d1.GetNextDayOfWeek(DayOfWeek.Saturday);
|
||||
var unroundedEnd = d1.AddMinutes((double)duration);
|
||||
var saturdayStart = new DateTime(saturday.Year, saturday.Month, saturday.Day, 13, 0, 0);
|
||||
var saturdayEnd = new DateTime(saturday.Year, saturday.Month, saturday.Day, 21, 0, 0);
|
||||
|
||||
dd.HoursSaturday += Math.Round((decimal)d1.GetIntersectingMinutes(unroundedEnd, saturdayStart, saturdayEnd) / 60, 2, MidpointRounding.AwayFromZero);
|
||||
}
|
||||
}
|
||||
|
||||
public override void CalculateAbsenceTimesForDay(MitarbeiterstundenkontoRO.DayDetail dd,
|
||||
MitarbeiterstundenkontoRO.EmployeeDetail ed)
|
||||
{
|
||||
//do nothing
|
||||
|
||||
@@ -31,8 +31,10 @@ namespace BetreuWoWesel
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Mitarbeiterstundenkonto));
|
||||
DevExpress.XtraReports.UI.XRSummary xrSummary2 = new DevExpress.XtraReports.UI.XRSummary();
|
||||
DevExpress.XtraReports.UI.XRSummary xrSummary3 = new DevExpress.XtraReports.UI.XRSummary();
|
||||
DevExpress.XtraReports.UI.XRSummary xrSummary4 = new DevExpress.XtraReports.UI.XRSummary();
|
||||
DevExpress.XtraReports.UI.XRSummary xrSummary5 = new DevExpress.XtraReports.UI.XRSummary();
|
||||
DevExpress.XtraReports.UI.XRSummary xrSummary2 = new DevExpress.XtraReports.UI.XRSummary();
|
||||
DevExpress.XtraReports.UI.XRSummary xrSummary1 = new DevExpress.XtraReports.UI.XRSummary();
|
||||
DevExpress.XtraReports.UI.XRWatermark xrWatermark1 = new DevExpress.XtraReports.UI.XRWatermark();
|
||||
this.Detail = new DevExpress.XtraReports.UI.DetailBand();
|
||||
@@ -89,10 +91,13 @@ namespace BetreuWoWesel
|
||||
this.lblSaldo5 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.lblSaldo1 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.Footer2 = new DevExpress.XtraReports.UI.GroupFooterBand();
|
||||
this.lblKommenAusFrei = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrLabel3 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrLabel15 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrLabel17 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrLabel8 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrLabel7 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
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();
|
||||
@@ -113,9 +118,10 @@ namespace BetreuWoWesel
|
||||
this.fieldNightHours = new DevExpress.XtraReports.UI.CalculatedField();
|
||||
this.fieldSalaryDiff = new DevExpress.XtraReports.UI.CalculatedField();
|
||||
this.fieldMinutenGesamtIst = new DevExpress.XtraReports.UI.CalculatedField();
|
||||
this.xrLabel3 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.lblKommenAusFrei = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
|
||||
this.xrLabel5 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrLabel6 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrLabel10 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrLabel11 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable3)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable2)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrRichText1)).BeginInit();
|
||||
@@ -752,22 +758,60 @@ namespace BetreuWoWesel
|
||||
// Footer2
|
||||
//
|
||||
this.Footer2.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
|
||||
this.xrLabel10,
|
||||
this.xrLabel11,
|
||||
this.xrLabel5,
|
||||
this.xrLabel6,
|
||||
this.lblKommenAusFrei,
|
||||
this.xrLabel3,
|
||||
this.xrLabel15,
|
||||
this.xrLabel17,
|
||||
this.xrLabel8,
|
||||
this.xrLabel7});
|
||||
this.Footer2.HeightF = 80.00011F;
|
||||
this.Footer2.HeightF = 126.4583F;
|
||||
this.Footer2.Level = 3;
|
||||
this.Footer2.Name = "Footer2";
|
||||
//
|
||||
// lblKommenAusFrei
|
||||
//
|
||||
this.lblKommenAusFrei.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Right | DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.lblKommenAusFrei.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Text", null, "EmployeeDetailList.Regelarbeitszeit")});
|
||||
this.lblKommenAusFrei.Font = new DevExpress.Drawing.DXFont("Arial", 10F);
|
||||
this.lblKommenAusFrei.LocationFloat = new DevExpress.Utils.PointFloat(350F, 100.0001F);
|
||||
this.lblKommenAusFrei.Name = "lblKommenAusFrei";
|
||||
this.lblKommenAusFrei.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 5, 0, 0, 100F);
|
||||
this.lblKommenAusFrei.SizeF = new System.Drawing.SizeF(102.0833F, 20F);
|
||||
this.lblKommenAusFrei.StylePriority.UseBorders = false;
|
||||
this.lblKommenAusFrei.StylePriority.UseFont = false;
|
||||
this.lblKommenAusFrei.StylePriority.UsePadding = false;
|
||||
this.lblKommenAusFrei.StylePriority.UseTextAlignment = false;
|
||||
xrSummary3.FormatString = "{0:0.00}";
|
||||
this.lblKommenAusFrei.Summary = xrSummary3;
|
||||
this.lblKommenAusFrei.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
|
||||
//
|
||||
// xrLabel3
|
||||
//
|
||||
this.xrLabel3.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
|
||||
| DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrLabel3.Font = new DevExpress.Drawing.DXFont("Arial", 10F, DevExpress.Drawing.DXFontStyle.Bold);
|
||||
this.xrLabel3.LocationFloat = new DevExpress.Utils.PointFloat(0F, 100.0001F);
|
||||
this.xrLabel3.Name = "xrLabel3";
|
||||
this.xrLabel3.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 5, 0, 0, 100F);
|
||||
this.xrLabel3.SizeF = new System.Drawing.SizeF(350F, 20F);
|
||||
this.xrLabel3.StylePriority.UseBorders = false;
|
||||
this.xrLabel3.StylePriority.UseFont = false;
|
||||
this.xrLabel3.StylePriority.UsePadding = false;
|
||||
this.xrLabel3.StylePriority.UseTextAlignment = false;
|
||||
this.xrLabel3.Text = "Su. Kommen aus frei (25€ pro Kommen)";
|
||||
this.xrLabel3.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
|
||||
//
|
||||
// xrLabel15
|
||||
//
|
||||
this.xrLabel15.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Top | DevExpress.XtraPrinting.BorderSide.Right)
|
||||
| DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrLabel15.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Text", null, "EmployeeDetailList.Days.fieldSonnUndFeiertage")});
|
||||
new DevExpress.XtraReports.UI.XRBinding("Text", null, "EmployeeDetailList.Days.HoursHoliday")});
|
||||
this.xrLabel15.Font = new DevExpress.Drawing.DXFont("Arial", 10F);
|
||||
this.xrLabel15.LocationFloat = new DevExpress.Utils.PointFloat(350F, 20.00001F);
|
||||
this.xrLabel15.Name = "xrLabel15";
|
||||
@@ -777,9 +821,9 @@ namespace BetreuWoWesel
|
||||
this.xrLabel15.StylePriority.UseFont = false;
|
||||
this.xrLabel15.StylePriority.UsePadding = false;
|
||||
this.xrLabel15.StylePriority.UseTextAlignment = false;
|
||||
xrSummary2.FormatString = "{0:0.00}";
|
||||
xrSummary2.Running = DevExpress.XtraReports.UI.SummaryRunning.Group;
|
||||
this.xrLabel15.Summary = xrSummary2;
|
||||
xrSummary4.FormatString = "{0:0.00}";
|
||||
xrSummary4.Running = DevExpress.XtraReports.UI.SummaryRunning.Group;
|
||||
this.xrLabel15.Summary = xrSummary4;
|
||||
this.xrLabel15.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
|
||||
//
|
||||
// xrLabel17
|
||||
@@ -788,7 +832,7 @@ namespace BetreuWoWesel
|
||||
this.xrLabel17.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Text", null, "EmployeeDetailList.Days.fieldNightHours")});
|
||||
this.xrLabel17.Font = new DevExpress.Drawing.DXFont("Arial", 10F);
|
||||
this.xrLabel17.LocationFloat = new DevExpress.Utils.PointFloat(350F, 40.00022F);
|
||||
this.xrLabel17.LocationFloat = new DevExpress.Utils.PointFloat(350F, 80.00005F);
|
||||
this.xrLabel17.Name = "xrLabel17";
|
||||
this.xrLabel17.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 5, 0, 0, 100F);
|
||||
this.xrLabel17.SizeF = new System.Drawing.SizeF(102.0833F, 20F);
|
||||
@@ -796,9 +840,9 @@ namespace BetreuWoWesel
|
||||
this.xrLabel17.StylePriority.UseFont = false;
|
||||
this.xrLabel17.StylePriority.UsePadding = false;
|
||||
this.xrLabel17.StylePriority.UseTextAlignment = false;
|
||||
xrSummary3.FormatString = "{0:0.00}";
|
||||
xrSummary3.Running = DevExpress.XtraReports.UI.SummaryRunning.Group;
|
||||
this.xrLabel17.Summary = xrSummary3;
|
||||
xrSummary5.FormatString = "{0:0.00}";
|
||||
xrSummary5.Running = DevExpress.XtraReports.UI.SummaryRunning.Group;
|
||||
this.xrLabel17.Summary = xrSummary5;
|
||||
this.xrLabel17.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
|
||||
//
|
||||
// xrLabel8
|
||||
@@ -806,7 +850,7 @@ namespace BetreuWoWesel
|
||||
this.xrLabel8.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
|
||||
| DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrLabel8.Font = new DevExpress.Drawing.DXFont("Arial", 10F, DevExpress.Drawing.DXFontStyle.Bold);
|
||||
this.xrLabel8.LocationFloat = new DevExpress.Utils.PointFloat(0F, 40.00009F);
|
||||
this.xrLabel8.LocationFloat = new DevExpress.Utils.PointFloat(0F, 80.00005F);
|
||||
this.xrLabel8.Name = "xrLabel8";
|
||||
this.xrLabel8.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 5, 0, 0, 100F);
|
||||
this.xrLabel8.SizeF = new System.Drawing.SizeF(350F, 20F);
|
||||
@@ -831,9 +875,13 @@ namespace BetreuWoWesel
|
||||
this.xrLabel7.StylePriority.UseFont = false;
|
||||
this.xrLabel7.StylePriority.UsePadding = false;
|
||||
this.xrLabel7.StylePriority.UseTextAlignment = false;
|
||||
this.xrLabel7.Text = "Su. Sonn-/Feiertagszuschläge / Leistungsmonat";
|
||||
this.xrLabel7.Text = "Su. Feiertagszuschläge / Leistungsmonat";
|
||||
this.xrLabel7.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
|
||||
//
|
||||
// bindingSource1
|
||||
//
|
||||
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.MitarbeiterstundenkontoRO);
|
||||
//
|
||||
// Title
|
||||
//
|
||||
this.Title.BackColor = System.Drawing.Color.White;
|
||||
@@ -984,43 +1032,75 @@ namespace BetreuWoWesel
|
||||
this.fieldMinutenGesamtIst.FieldType = DevExpress.XtraReports.UI.FieldType.Decimal;
|
||||
this.fieldMinutenGesamtIst.Name = "fieldMinutenGesamtIst";
|
||||
//
|
||||
// xrLabel3
|
||||
// xrLabel5
|
||||
//
|
||||
this.xrLabel3.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
|
||||
this.xrLabel5.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
|
||||
| DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrLabel3.Font = new DevExpress.Drawing.DXFont("Arial", 10F, DevExpress.Drawing.DXFontStyle.Bold);
|
||||
this.xrLabel3.LocationFloat = new DevExpress.Utils.PointFloat(0F, 60.0001F);
|
||||
this.xrLabel3.Name = "xrLabel3";
|
||||
this.xrLabel3.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 5, 0, 0, 100F);
|
||||
this.xrLabel3.SizeF = new System.Drawing.SizeF(350F, 20F);
|
||||
this.xrLabel3.StylePriority.UseBorders = false;
|
||||
this.xrLabel3.StylePriority.UseFont = false;
|
||||
this.xrLabel3.StylePriority.UsePadding = false;
|
||||
this.xrLabel3.StylePriority.UseTextAlignment = false;
|
||||
this.xrLabel3.Text = "Su. Kommen aus frei (25€ pro Kommen)";
|
||||
this.xrLabel3.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
|
||||
this.xrLabel5.Font = new DevExpress.Drawing.DXFont("Arial", 10F, DevExpress.Drawing.DXFontStyle.Bold);
|
||||
this.xrLabel5.LocationFloat = new DevExpress.Utils.PointFloat(0F, 40.00003F);
|
||||
this.xrLabel5.Name = "xrLabel5";
|
||||
this.xrLabel5.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 5, 0, 0, 100F);
|
||||
this.xrLabel5.SizeF = new System.Drawing.SizeF(350F, 20F);
|
||||
this.xrLabel5.StylePriority.UseBorders = false;
|
||||
this.xrLabel5.StylePriority.UseFont = false;
|
||||
this.xrLabel5.StylePriority.UsePadding = false;
|
||||
this.xrLabel5.StylePriority.UseTextAlignment = false;
|
||||
this.xrLabel5.Text = "Su. Sonntagszuschläge / Leistungsmonat";
|
||||
this.xrLabel5.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
|
||||
//
|
||||
// lblKommenAusFrei
|
||||
// xrLabel6
|
||||
//
|
||||
this.lblKommenAusFrei.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Right | DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.lblKommenAusFrei.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Text", null, "EmployeeDetailList.Regelarbeitszeit")});
|
||||
this.lblKommenAusFrei.Font = new DevExpress.Drawing.DXFont("Arial", 10F);
|
||||
this.lblKommenAusFrei.LocationFloat = new DevExpress.Utils.PointFloat(350F, 60.0001F);
|
||||
this.lblKommenAusFrei.Name = "lblKommenAusFrei";
|
||||
this.lblKommenAusFrei.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 5, 0, 0, 100F);
|
||||
this.lblKommenAusFrei.SizeF = new System.Drawing.SizeF(102.0833F, 20F);
|
||||
this.lblKommenAusFrei.StylePriority.UseBorders = false;
|
||||
this.lblKommenAusFrei.StylePriority.UseFont = false;
|
||||
this.lblKommenAusFrei.StylePriority.UsePadding = false;
|
||||
this.lblKommenAusFrei.StylePriority.UseTextAlignment = false;
|
||||
this.xrLabel6.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Right | DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrLabel6.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Text", null, "EmployeeDetailList.Days.HoursSunday")});
|
||||
this.xrLabel6.Font = new DevExpress.Drawing.DXFont("Arial", 10F);
|
||||
this.xrLabel6.LocationFloat = new DevExpress.Utils.PointFloat(350F, 40.00003F);
|
||||
this.xrLabel6.Name = "xrLabel6";
|
||||
this.xrLabel6.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 5, 0, 0, 100F);
|
||||
this.xrLabel6.SizeF = new System.Drawing.SizeF(102.0833F, 20F);
|
||||
this.xrLabel6.StylePriority.UseBorders = false;
|
||||
this.xrLabel6.StylePriority.UseFont = false;
|
||||
this.xrLabel6.StylePriority.UsePadding = false;
|
||||
this.xrLabel6.StylePriority.UseTextAlignment = false;
|
||||
xrSummary2.FormatString = "{0:0.00}";
|
||||
xrSummary2.Running = DevExpress.XtraReports.UI.SummaryRunning.Group;
|
||||
this.xrLabel6.Summary = xrSummary2;
|
||||
this.xrLabel6.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
|
||||
//
|
||||
// xrLabel10
|
||||
//
|
||||
this.xrLabel10.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
|
||||
| DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrLabel10.Font = new DevExpress.Drawing.DXFont("Arial", 10F, DevExpress.Drawing.DXFontStyle.Bold);
|
||||
this.xrLabel10.LocationFloat = new DevExpress.Utils.PointFloat(0F, 60.00004F);
|
||||
this.xrLabel10.Name = "xrLabel10";
|
||||
this.xrLabel10.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 5, 0, 0, 100F);
|
||||
this.xrLabel10.SizeF = new System.Drawing.SizeF(350F, 20F);
|
||||
this.xrLabel10.StylePriority.UseBorders = false;
|
||||
this.xrLabel10.StylePriority.UseFont = false;
|
||||
this.xrLabel10.StylePriority.UsePadding = false;
|
||||
this.xrLabel10.StylePriority.UseTextAlignment = false;
|
||||
this.xrLabel10.Text = "Su. Samstagszuschläge / Leistungsmonat";
|
||||
this.xrLabel10.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
|
||||
//
|
||||
// xrLabel11
|
||||
//
|
||||
this.xrLabel11.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Right | DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrLabel11.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Text", null, "EmployeeDetailList.Days.HoursSaturday")});
|
||||
this.xrLabel11.Font = new DevExpress.Drawing.DXFont("Arial", 10F);
|
||||
this.xrLabel11.LocationFloat = new DevExpress.Utils.PointFloat(350F, 60.00004F);
|
||||
this.xrLabel11.Name = "xrLabel11";
|
||||
this.xrLabel11.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 5, 0, 0, 100F);
|
||||
this.xrLabel11.SizeF = new System.Drawing.SizeF(102.0833F, 20F);
|
||||
this.xrLabel11.StylePriority.UseBorders = false;
|
||||
this.xrLabel11.StylePriority.UseFont = false;
|
||||
this.xrLabel11.StylePriority.UsePadding = false;
|
||||
this.xrLabel11.StylePriority.UseTextAlignment = false;
|
||||
xrSummary1.FormatString = "{0:0.00}";
|
||||
this.lblKommenAusFrei.Summary = xrSummary1;
|
||||
this.lblKommenAusFrei.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
|
||||
//
|
||||
// bindingSource1
|
||||
//
|
||||
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.MitarbeiterstundenkontoRO);
|
||||
xrSummary1.Running = DevExpress.XtraReports.UI.SummaryRunning.Group;
|
||||
this.xrLabel11.Summary = xrSummary1;
|
||||
this.xrLabel11.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
|
||||
//
|
||||
// Mitarbeiterstundenkonto
|
||||
//
|
||||
@@ -1154,5 +1234,9 @@ namespace BetreuWoWesel
|
||||
private DevExpress.XtraReports.UI.XRLabel xrLabel2;
|
||||
private DevExpress.XtraReports.UI.XRLabel lblKommenAusFrei;
|
||||
private DevExpress.XtraReports.UI.XRLabel xrLabel3;
|
||||
private DevExpress.XtraReports.UI.XRLabel xrLabel10;
|
||||
private DevExpress.XtraReports.UI.XRLabel xrLabel11;
|
||||
private DevExpress.XtraReports.UI.XRLabel xrLabel5;
|
||||
private DevExpress.XtraReports.UI.XRLabel xrLabel6;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63,6 +63,8 @@
|
||||
</Compile>
|
||||
<Compile Include="CustomMitarbeiterstundenkontoBerechnungMonate.cs" />
|
||||
<Compile Include="CustomReportCreator.cs" />
|
||||
<Compile Include="Export\CustomDataExporter.cs" />
|
||||
<Compile Include="Export\DatevExporter.cs" />
|
||||
<Compile Include="InvoiceCustomerReport.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
|
||||
18
ReportImp/ChristinaFrommen/Export/CustomDataExporter.cs
Normal file
18
ReportImp/ChristinaFrommen/Export/CustomDataExporter.cs
Normal file
@@ -0,0 +1,18 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using BeWo.Service.Core;
|
||||
using BeWo.Service.Plugins;
|
||||
using BS.Shared.Core;
|
||||
using BS.Shared.DataContracts;
|
||||
using Utils = BS.Shared.Core.Utils;
|
||||
|
||||
namespace ChristinaFrommen.Export
|
||||
{
|
||||
public class CustomDataExporter : DataExporter
|
||||
{
|
||||
public override QueryDC CreateQuery(QueryDC query)
|
||||
{
|
||||
return DatevExporter.CreateQuery(query);
|
||||
}
|
||||
}
|
||||
}
|
||||
244
ReportImp/ChristinaFrommen/Export/DatevExporter.cs
Normal file
244
ReportImp/ChristinaFrommen/Export/DatevExporter.cs
Normal file
@@ -0,0 +1,244 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using BeWo.Data.Access;
|
||||
using BeWo.Data.Entities;
|
||||
using BeWo.Service.DCEntityMapper;
|
||||
using BS.Shared;
|
||||
using BS.Shared.DataContracts;
|
||||
using BS.Shared.Extensions;
|
||||
|
||||
namespace ChristinaFrommen.Export
|
||||
{
|
||||
public class DatevExporter
|
||||
{
|
||||
|
||||
public static QueryDC CreateQuery(QueryDC query)
|
||||
{
|
||||
DateTime dt = DateTime.Now;
|
||||
DateTime.TryParse(query.Parameter[0].Value.ToString(), out dt);
|
||||
|
||||
query.FileName = String.Format("Datev Export {0:yyyyMM}.csv", dt);
|
||||
query.QueryResult = GetAbrechnungenString(dt);
|
||||
|
||||
return query;
|
||||
}
|
||||
|
||||
|
||||
public static String GetAbrechnungenString(DateTime date)
|
||||
{
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.AppendLine("Umsatz(ohne Soll/Haben-Kz);Soll/Haben-Kennzeichen;Konto;Gegenkonto;BU-Schlussel;Belegdatum;Belegfeld1;Buchungstext");
|
||||
|
||||
var s = GetMonatlicheBetraegeString(date);
|
||||
if (!String.IsNullOrWhiteSpace(s))
|
||||
{
|
||||
sb.Append(s);
|
||||
}
|
||||
|
||||
s = GetMonatlicheRechnungenString(date);
|
||||
if (!String.IsNullOrWhiteSpace(s))
|
||||
{
|
||||
if (sb.Length > 0)
|
||||
sb.AppendLine();
|
||||
|
||||
sb.Append(s);
|
||||
}
|
||||
|
||||
return sb.ToString();
|
||||
}
|
||||
|
||||
public static String GetMonatlicheRechnungenString(DateTime date)
|
||||
{
|
||||
var sql = GetMonatlicheRechnungenSql(date);
|
||||
|
||||
/*
|
||||
sip.Claim,
|
||||
c.DebitorNumber,
|
||||
ib.InvoiceDate,
|
||||
ib.invoicenumber,
|
||||
c.CostCenter,
|
||||
c2s.Oid,
|
||||
ib.InvoiceId
|
||||
*/
|
||||
//sb.AppendLine("Umsatz(ohne Soll/Haben-Kz);Soll/Haben-Kennzeichen;Konto;Gegenkonto;BU-Schlussel;Belegdatum;Belegfeld1;Buchungstext");
|
||||
//'Betrag',c.DebitorNumber,c.CostCenter,CONCAT(p.`LastName`, ', ', p.`FirstName`) as 'Verwendung',cb2sc.Oid
|
||||
|
||||
var dt = ExecuteQuery(sql, date);
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
foreach (DataRow row in dt.Rows)
|
||||
{
|
||||
if (sb.Length > 0)
|
||||
{
|
||||
sb.AppendLine();
|
||||
}
|
||||
DateTime lastDate = new DateTime(date.Year, date.Month, 1);
|
||||
lastDate = lastDate.AddMonths(1).AddDays(-1);
|
||||
sb.Append(String.Format("{0:0.00}", row[0]));
|
||||
sb.Append(";");
|
||||
sb.Append("H");
|
||||
sb.Append(";");
|
||||
sb.Append(String.Format("{0}", row[1]));
|
||||
sb.Append(";");
|
||||
sb.Append("8000"); // Erlöskonto
|
||||
sb.Append(";");
|
||||
sb.Append("0"); // BU-Schlüssel
|
||||
sb.Append(";");
|
||||
sb.Append(String.Format("{0:ddMM}", row[2])); //Belegdatum
|
||||
sb.Append(";");
|
||||
sb.Append(String.Format("{0}", row[3])); // Belegfeld 1
|
||||
sb.Append(";");
|
||||
sb.Append(String.Format("{0:MM} {0:yyyy}", lastDate)); // Buchungstext
|
||||
}
|
||||
|
||||
return sb.ToString();
|
||||
}
|
||||
|
||||
public static String GetMonatlicheBetraegeString(DateTime date)
|
||||
{
|
||||
var sql = GetMonatlicheBetraegeLvrSql(date);
|
||||
|
||||
//sb.AppendLine("Umsatz(ohne Soll/Haben-Kz);Soll/Haben-Kennzeichen;Konto;Gegenkonto;BU-Schlussel;Belegdatum;Belegfeld1;Buchungstext");
|
||||
//'Betrag',c.DebitorNumber,c.CostCenter,CONCAT(p.`LastName`, ', ', p.`FirstName`) as 'Verwendung',cb2sc.Oid
|
||||
|
||||
var dt = ExecuteQuery(sql, date);
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
foreach (DataRow row in dt.Rows)
|
||||
{
|
||||
if (sb.Length > 0)
|
||||
{
|
||||
sb.AppendLine();
|
||||
}
|
||||
DateTime lastDate = new DateTime(date.Year, date.Month, 1);
|
||||
lastDate = lastDate.AddMonths(1).AddDays(-1);
|
||||
|
||||
sb.Append(String.Format("{0:0.00}", row[0]));
|
||||
sb.Append(";");
|
||||
sb.Append("H");
|
||||
sb.Append(";");
|
||||
sb.Append(String.Format("{0}", row[1]));
|
||||
sb.Append(";");
|
||||
sb.Append("8000"); // Erlöskonto
|
||||
sb.Append(";");
|
||||
sb.Append("0"); // BU-Schlüssel
|
||||
sb.Append(";");
|
||||
sb.Append(String.Format("{0:ddMM}", lastDate)); //Belegdatum
|
||||
sb.Append(";");
|
||||
sb.Append(String.Format("{0:MM} - {0:yyyy}", lastDate)); // Belegfeld 1
|
||||
sb.Append(";");
|
||||
sb.Append(String.Format("{0:MM} {0:yyyy}", lastDate)); // Buchungstext
|
||||
}
|
||||
|
||||
return sb.ToString();
|
||||
}
|
||||
|
||||
private static String GetMonatlicheRechnungenSql(DateTime date)
|
||||
{
|
||||
|
||||
String sql = @"
|
||||
select
|
||||
sip.Claim,
|
||||
c.DebitorNumber,
|
||||
ib.InvoiceDate,
|
||||
ib.invoicenumber,
|
||||
c.CostCenter,
|
||||
c2s.Oid,
|
||||
ib.InvoiceId
|
||||
from
|
||||
person p
|
||||
inner join customer c on c.personoid = p.oid
|
||||
inner join supportconcept sc on sc.customeroid = c.oid
|
||||
inner join costbearer2supportconcept c2s on c2s.supportconceptoid = sc.oid
|
||||
inner join invoicebase ib on ib.costbearer2supportconceptoid = c2s.oid
|
||||
inner join serviceinvoice si on si.invoicebaseoid = ib.oid
|
||||
inner join serviceinvoiceperiod sip on sip.serviceinvoiceoid = si.oid
|
||||
WHERE ib.`AccountingPeriodEnd` >= ':Monat_Start' AND ib.`AccountingPeriodEnd` < ':Monat_End' and ib.IsActive = 1
|
||||
order by ib.invoicenumber
|
||||
";
|
||||
|
||||
return sql;
|
||||
}
|
||||
|
||||
private static String GetMonatlicheBetraegeLvrSql(DateTime date)
|
||||
{
|
||||
String sql = @"
|
||||
SELECT
|
||||
sum(qry.Betrag) AS Betrag,
|
||||
qry.DebitorNumber,
|
||||
qry.CostCenter,
|
||||
qry.Verwendung,
|
||||
qry.Oid
|
||||
FROM
|
||||
(
|
||||
(SELECT
|
||||
IF(crpRateFactor.`CostRateValue` is null, ROUND((sr.`GeleisteteFLM` / 60) * (SELECT crp.`CostRateValue` FROM `costrateperiod` crp WHERE crp.`ObjectTid` = 22 AND crp.`CostRateType` = 0 AND crp.`ObjectOid` = cb2sc.`CostBearerOid` AND(crp.`EndDate` is null or crp.`EndDate` > ':Monat_Start') order by IF(crp.`EndDate` is null, MAKEDATE(9999, 365), crp.`EndDate`) LIMIT 1)),
|
||||
ROUND(ROUND((sr.`GeleisteteFLM` / 60), 2) * (SELECT crp.`CostRateValue` FROM `costrateperiod` crp WHERE crp.`ObjectTid` = 22 AND crp.`CostRateType` = 0 AND crp.`ObjectOid` = cb2sc.`CostBearerOid` AND(crp.`EndDate` is null or crp.`EndDate` > ':Monat_Start') order by IF(crp.`EndDate` is null, MAKEDATE(9999, 365), crp.`EndDate`) LIMIT 1 ) *((100 + crpRateFactor.`CostRateValue`)/ 100), 2)) AS 'Betrag',
|
||||
c.DebitorNumber,
|
||||
c.CostCenter,
|
||||
CONCAT(p.`LastName`, ', ', p.`FirstName`) as 'Verwendung',
|
||||
cb2sc.Oid
|
||||
FROM `supportconcept` sc
|
||||
INNER JOIN `costbearer2supportconcept` cb2sc ON sc.`Oid` = cb2sc.`SupportConceptOid`
|
||||
INNER JOIN `costbearer` cb ON cb2sc.`CostBearerOid` = cb.`Oid`
|
||||
LEFT JOIN
|
||||
(SELECT crp.`ObjectOid`, crp.`CostRateValue` FROM `costrateperiod` crp
|
||||
WHERE crp.`ObjectTid` = 22 AND crp.`CostRateType` = 2 AND(crp.`EndDate` is null or crp.`EndDate` > NOW()))
|
||||
AS crpRateFactor ON crpRateFactor.`ObjectOid` = cb.`Oid`
|
||||
INNER JOIN `organisation` org ON org.`CostBearerOid` = cb.`Oid`
|
||||
INNER JOIN `customer` c ON sc.`CustomerOid` = c.`Oid`
|
||||
INNER JOIN `person` p on c.`PersonOid` = p.`Oid`
|
||||
LEFT JOIN
|
||||
(SELECT sr2.`CostBearer2SupportConceptOid`, SUM(sr2.`roundedduration` / IF(sr2.`GroupEmployeeCount` is null, 1, sr2.`GroupEmployeeCount`)) AS GeleisteteFLM FROM `servicerecord` sr2
|
||||
INNER JOIN `servicedescription` sd ON sr2.`ServiceDescriptionOid` = sd.`Oid`
|
||||
INNER JOIN `servicecategory` sc ON sd.`ServiceCategoryOid` = sc.`Oid`
|
||||
WHERE sr2.`StartDate` >= ':Monat_Start' AND sr2.`StartDate` < ':Monat_End' AND sc.`Billable` = 1 and sd.Name <> 'Fehlkontakt' GROUP BY sr2.`CostBearer2SupportConceptOid`)
|
||||
AS sr ON sr.`CostBearer2SupportConceptOid` = cb2sc.`Oid`
|
||||
WHERE c.`IsActive` = 1 AND sc.`IsActive` = 1 and(sr.`GeleisteteFLM` is not null) and (org.Name = 'Landschaftsverband Rheinland'))
|
||||
UNION
|
||||
(SELECT
|
||||
ROUND(0.8 * (sr.`GeleisteteFLM` / 60) * (SELECT crp.`CostRateValue` FROM `costrateperiod` crp WHERE crp.`ObjectTid` = 22 AND crp.`CostRateType` = 0 AND crp.`ObjectOid` = cb2sc.`CostBearerOid` AND (crp.`EndDate` is null or crp.`EndDate` > ':Monat_Start') order by IF(crp.`EndDate` is null, MAKEDATE(9999,365),crp.`EndDate`) LIMIT 1 )) AS 'Betrag',
|
||||
c.DebitorNumber,
|
||||
c.CostCenter,
|
||||
CONCAT(p.`LastName`, ', ', p.`FirstName`) as 'Verwendung',
|
||||
cb2sc.Oid
|
||||
FROM `supportconcept` sc
|
||||
INNER JOIN `costbearer2supportconcept` cb2sc ON sc.`Oid` = cb2sc.`SupportConceptOid`
|
||||
INNER JOIN `costbearer` cb ON cb2sc.`CostBearerOid` = cb.`Oid`
|
||||
INNER JOIN `organisation` org ON org.`CostBearerOid` = cb.`Oid`
|
||||
INNER JOIN `customer` c ON sc.`CustomerOid` = c.`Oid`
|
||||
INNER JOIN `person` p on c.`PersonOid` = p.`Oid`
|
||||
LEFT JOIN
|
||||
(SELECT sr2.`CostBearer2SupportConceptOid`, SUM(sr2.`roundedduration` / IF(sr2.`GroupEmployeeCount` is null, 1, sr2.`GroupEmployeeCount`)) AS GeleisteteFLM FROM `servicerecord` sr2
|
||||
INNER JOIN `servicedescription` sd ON sr2.`ServiceDescriptionOid` = sd.`Oid`
|
||||
INNER JOIN `servicecategory` sc ON sd.`ServiceCategoryOid` = sc.`Oid`
|
||||
WHERE sr2.`StartDate` >= ':Monat_Start' AND sr2.`StartDate` < ':Monat_End' AND sc.`Billable` = 1 and sd.Name = 'Fehlkontakt' GROUP BY sr2.`CostBearer2SupportConceptOid`)
|
||||
AS sr ON sr.`CostBearer2SupportConceptOid` = cb2sc.`Oid`
|
||||
WHERE c.`IsActive` = 1 AND sc.`IsActive` = 1
|
||||
and (sr.`GeleisteteFLM` is not null)
|
||||
and (org.Name = 'Landschaftsverband Rheinland'))
|
||||
)qry
|
||||
GROUP BY qry.OID
|
||||
ORDER BY qry.Verwendung
|
||||
";
|
||||
|
||||
return sql;
|
||||
}
|
||||
|
||||
public static DataTable ExecuteQuery(String sql, DateTime dt)
|
||||
{
|
||||
var newsql = sql;
|
||||
newsql = newsql.Replace(":Abrechnungsmonat", String.Format("{0:dd.MM.yyyy}", dt));
|
||||
newsql = newsql.Replace(":Belegnr", String.Format("{0:yyMM}", dt));
|
||||
newsql = newsql.Replace(":Monat_MM", String.Format("{0:MM}", dt));
|
||||
newsql = newsql.Replace(":Monat_Start", String.Format("{0:yyyy-MM}-01", dt));
|
||||
dt = dt.AddMonths(1);
|
||||
newsql = newsql.Replace(":Monat_End", String.Format("{0:yyyy-MM}-01", dt));
|
||||
|
||||
return DAOFactory.AdoDAO.ExecuteQuery(newsql).Tables[0];
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user