diff --git a/ReportImp/ZukunftLeben/EigenanteilInvoiceReport.Designer.cs b/ReportImp/ZukunftLeben/EigenanteilInvoiceReport.Designer.cs new file mode 100644 index 000000000..70a7feae3 --- /dev/null +++ b/ReportImp/ZukunftLeben/EigenanteilInvoiceReport.Designer.cs @@ -0,0 +1,620 @@ +using BeWo.Report.ReportObjects; +namespace ZukunftLeben +{ + partial class EigenanteilInvoiceReport + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + DevExpress.XtraReports.UI.XRWatermark xrWatermark1 = new DevExpress.XtraReports.UI.XRWatermark(); + this.Detail = new DevExpress.XtraReports.UI.DetailBand(); + this.ReportHeader = new DevExpress.XtraReports.UI.ReportHeaderBand(); + this.ruleRateFactorNull = new DevExpress.XtraReports.UI.FormattingRule(); + this.topMarginBand1 = new DevExpress.XtraReports.UI.TopMarginBand(); + this.bottomMarginBand1 = new DevExpress.XtraReports.UI.BottomMarginBand(); + this.Page1 = new DevExpress.XtraReports.UI.GroupHeaderBand(); + this.lblAdresse = new DevExpress.XtraReports.UI.XRLabel(); + this.xrLabel4 = new DevExpress.XtraReports.UI.XRLabel(); + this.xrLabel3 = new DevExpress.XtraReports.UI.XRLabel(); + this.xrLabel2 = new DevExpress.XtraReports.UI.XRLabel(); + this.xrLabel5 = new DevExpress.XtraReports.UI.XRLabel(); + this.xrLabel8 = new DevExpress.XtraReports.UI.XRLabel(); + this.lblAbrechnungszeitraum = new DevExpress.XtraReports.UI.XRLabel(); + this.xrLabel15 = new DevExpress.XtraReports.UI.XRLabel(); + this.xrLabel14 = new DevExpress.XtraReports.UI.XRLabel(); + this.DetailReport = new DevExpress.XtraReports.UI.DetailReportBand(); + this.Detail1 = new DevExpress.XtraReports.UI.DetailBand(); + this.xrTable5 = new DevExpress.XtraReports.UI.XRTable(); + this.xrTableRow23 = new DevExpress.XtraReports.UI.XRTableRow(); + this.xrTableCell32 = new DevExpress.XtraReports.UI.XRTableCell(); + this.xrTableCell38 = new DevExpress.XtraReports.UI.XRTableCell(); + this.xrTableCell34 = new DevExpress.XtraReports.UI.XRTableCell(); + this.DetailReport2 = new DevExpress.XtraReports.UI.DetailReportBand(); + this.Detail3 = new DevExpress.XtraReports.UI.DetailBand(); + this.xrTable6 = new DevExpress.XtraReports.UI.XRTable(); + this.xrTableRow25 = new DevExpress.XtraReports.UI.XRTableRow(); + this.xrTableCell45 = new DevExpress.XtraReports.UI.XRTableCell(); + this.xrTableCell46 = new DevExpress.XtraReports.UI.XRTableCell(); + this.xrTableCell47 = new DevExpress.XtraReports.UI.XRTableCell(); + this.GroupFooter1 = new DevExpress.XtraReports.UI.GroupFooterBand(); + this.xrLabel1 = new DevExpress.XtraReports.UI.XRLabel(); + this.xrLabel6 = new DevExpress.XtraReports.UI.XRLabel(); + this.xrLabel7 = new DevExpress.XtraReports.UI.XRLabel(); + this.xrTableCell1 = new DevExpress.XtraReports.UI.XRTableCell(); + this.xrTableCell2 = new DevExpress.XtraReports.UI.XRTableCell(); + this.xrLabel10 = new DevExpress.XtraReports.UI.XRLabel(); + this.xrLabel9 = new DevExpress.XtraReports.UI.XRLabel(); + this.xrLabel11 = new DevExpress.XtraReports.UI.XRLabel(); + this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components); + ((System.ComponentModel.ISupportInitialize)(this.xrTable5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.xrTable6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this)).BeginInit(); + // + // Detail + // + this.Detail.HeightF = 0F; + this.Detail.Name = "Detail"; + this.Detail.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F); + this.Detail.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft; + // + // ReportHeader + // + this.ReportHeader.Font = new DevExpress.Drawing.DXFont("Verdana", 10F); + this.ReportHeader.HeightF = 0F; + this.ReportHeader.Name = "ReportHeader"; + this.ReportHeader.StylePriority.UseFont = false; + // + // ruleRateFactorNull + // + this.ruleRateFactorNull.Condition = "[RateFactorText2] == ?"; + this.ruleRateFactorNull.Formatting.Visible = DevExpress.Utils.DefaultBoolean.False; + this.ruleRateFactorNull.Name = "ruleRateFactorNull"; + // + // topMarginBand1 + // + this.topMarginBand1.HeightF = 212.7083F; + this.topMarginBand1.Name = "topMarginBand1"; + // + // bottomMarginBand1 + // + this.bottomMarginBand1.HeightF = 50F; + this.bottomMarginBand1.Name = "bottomMarginBand1"; + // + // Page1 + // + this.Page1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] { + this.xrLabel7, + this.xrLabel6, + this.lblAdresse, + this.xrLabel4, + this.xrLabel3, + this.xrLabel2, + this.xrLabel5, + this.xrLabel8, + this.lblAbrechnungszeitraum}); + this.Page1.Font = new DevExpress.Drawing.DXFont("Verdana", 10F); + this.Page1.HeightF = 474.2918F; + this.Page1.Name = "Page1"; + this.Page1.StylePriority.UseFont = false; + // + // lblAdresse + // + this.lblAdresse.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F); + this.lblAdresse.Multiline = true; + this.lblAdresse.Name = "lblAdresse"; + this.lblAdresse.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); + this.lblAdresse.SizeF = new System.Drawing.SizeF(317F, 111.5F); + this.lblAdresse.StylePriority.UseFont = false; + this.lblAdresse.Text = "[RecipientOrganisation]\r\n[RecipientAddressLine1]\r\n[RecipientStreet]\r\n[RecipientPo" + + "stCodeAndTown]"; + // + // xrLabel4 + // + this.xrLabel4.BackColor = System.Drawing.Color.Transparent; + this.xrLabel4.CanShrink = true; + this.xrLabel4.Font = new DevExpress.Drawing.DXFont("Verdana", 9.75F, DevExpress.Drawing.DXFontStyle.Bold, DevExpress.Drawing.DXGraphicsUnit.Point, new DevExpress.Drawing.DXFontAdditionalProperty[] { + new DevExpress.Drawing.DXFontAdditionalProperty("GdiCharSet", ((byte)(0)))}); + this.xrLabel4.LocationFloat = new DevExpress.Utils.PointFloat(0F, 235F); + this.xrLabel4.Multiline = true; + this.xrLabel4.Name = "xrLabel4"; + this.xrLabel4.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); + this.xrLabel4.SizeF = new System.Drawing.SizeF(650F, 20F); + this.xrLabel4.StylePriority.UseBackColor = false; + this.xrLabel4.StylePriority.UseFont = false; + this.xrLabel4.Text = "Rechnung Eigenanteil [AccountingPeriod]"; + this.xrLabel4.WordWrap = false; + // + // xrLabel3 + // + this.xrLabel3.BackColor = System.Drawing.Color.Transparent; + this.xrLabel3.CanShrink = true; + this.xrLabel3.Font = new DevExpress.Drawing.DXFont("Verdana", 9.75F, DevExpress.Drawing.DXFontStyle.Bold, DevExpress.Drawing.DXGraphicsUnit.Point, new DevExpress.Drawing.DXFontAdditionalProperty[] { + new DevExpress.Drawing.DXFontAdditionalProperty("GdiCharSet", ((byte)(0)))}); + this.xrLabel3.LocationFloat = new DevExpress.Utils.PointFloat(0F, 215F); + this.xrLabel3.Name = "xrLabel3"; + this.xrLabel3.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); + this.xrLabel3.SizeF = new System.Drawing.SizeF(650F, 20F); + this.xrLabel3.StylePriority.UseBackColor = false; + this.xrLabel3.StylePriority.UseFont = false; + this.xrLabel3.Text = "[CustomerName], geb. [CustomerBirthdate!dd.MM.yyyy]"; + this.xrLabel3.WordWrap = false; + // + // xrLabel2 + // + this.xrLabel2.BackColor = System.Drawing.Color.Transparent; + this.xrLabel2.CanShrink = true; + this.xrLabel2.Font = new DevExpress.Drawing.DXFont("Verdana", 9.75F, DevExpress.Drawing.DXFontStyle.Bold, DevExpress.Drawing.DXGraphicsUnit.Point, new DevExpress.Drawing.DXFontAdditionalProperty[] { + new DevExpress.Drawing.DXFontAdditionalProperty("GdiCharSet", ((byte)(0)))}); + this.xrLabel2.LocationFloat = new DevExpress.Utils.PointFloat(0F, 195F); + this.xrLabel2.Name = "xrLabel2"; + this.xrLabel2.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); + this.xrLabel2.SizeF = new System.Drawing.SizeF(650F, 20F); + this.xrLabel2.StylePriority.UseBackColor = false; + this.xrLabel2.StylePriority.UseFont = false; + this.xrLabel2.Text = "Soziotherapie"; + this.xrLabel2.WordWrap = false; + // + // xrLabel5 + // + this.xrLabel5.LocationFloat = new DevExpress.Utils.PointFloat(0F, 297.5F); + this.xrLabel5.Name = "xrLabel5"; + this.xrLabel5.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); + this.xrLabel5.SizeF = new System.Drawing.SizeF(317F, 17F); + this.xrLabel5.StylePriority.UseFont = false; + this.xrLabel5.Text = "[CustomerSalutation]"; + // + // xrLabel8 + // + this.xrLabel8.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { + new DevExpress.XtraReports.UI.XRBinding("Text", null, "InvoiceDate")}); + this.xrLabel8.LocationFloat = new DevExpress.Utils.PointFloat(366.9999F, 172F); + this.xrLabel8.Name = "xrLabel8"; + this.xrLabel8.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); + this.xrLabel8.SizeF = new System.Drawing.SizeF(283F, 23F); + this.xrLabel8.StylePriority.UseTextAlignment = false; + this.xrLabel8.Text = "xrLabel8"; + this.xrLabel8.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight; + // + // lblAbrechnungszeitraum + // + this.lblAbrechnungszeitraum.LocationFloat = new DevExpress.Utils.PointFloat(0F, 322.5F); + this.lblAbrechnungszeitraum.Multiline = true; + this.lblAbrechnungszeitraum.Name = "lblAbrechnungszeitraum"; + this.lblAbrechnungszeitraum.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); + this.lblAbrechnungszeitraum.SizeF = new System.Drawing.SizeF(642F, 34F); + this.lblAbrechnungszeitraum.StylePriority.UseFont = false; + this.lblAbrechnungszeitraum.Text = "bei der Soziotherapie gestaltet sich die gesetzliche Zuzahlungspflicht - \r\nsofern" + + " Sie davon nicht befreit sind - wie folgt:"; + // + // xrLabel15 + // + this.xrLabel15.Font = new DevExpress.Drawing.DXFont("Verdana", 10F); + this.xrLabel15.LocationFloat = new DevExpress.Utils.PointFloat(0F, 119.7917F); + this.xrLabel15.Name = "xrLabel15"; + this.xrLabel15.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); + this.xrLabel15.SizeF = new System.Drawing.SizeF(175F, 17F); + this.xrLabel15.StylePriority.UseFont = false; + this.xrLabel15.Text = "Mit freundlichen Grüßen"; + // + // xrLabel14 + // + this.xrLabel14.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { + new DevExpress.XtraReports.UI.XRBinding("Text", null, "CreatorName")}); + this.xrLabel14.Font = new DevExpress.Drawing.DXFont("Verdana", 10F); + this.xrLabel14.LocationFloat = new DevExpress.Utils.PointFloat(0F, 196.7499F); + this.xrLabel14.Name = "xrLabel14"; + this.xrLabel14.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); + this.xrLabel14.SizeF = new System.Drawing.SizeF(225F, 17F); + this.xrLabel14.StylePriority.UseFont = false; + this.xrLabel14.Text = "[CreatorName]"; + // + // DetailReport + // + this.DetailReport.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] { + this.Detail1, + this.DetailReport2}); + this.DetailReport.DataMember = "ServiceInvoicePeriods"; + this.DetailReport.DataSource = this.bindingSource1; + this.DetailReport.Level = 0; + this.DetailReport.Name = "DetailReport"; + // + // Detail1 + // + this.Detail1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] { + this.xrTable5}); + this.Detail1.HeightF = 40.49991F; + this.Detail1.Name = "Detail1"; + // + // xrTable5 + // + this.xrTable5.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F); + this.xrTable5.Name = "xrTable5"; + this.xrTable5.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] { + this.xrTableRow23}); + this.xrTable5.SizeF = new System.Drawing.SizeF(680.3334F, 40.49991F); + // + // xrTableRow23 + // + this.xrTableRow23.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] { + this.xrTableCell32, + this.xrTableCell38, + this.xrTableCell1, + this.xrTableCell34}); + this.xrTableRow23.Name = "xrTableRow23"; + this.xrTableRow23.Weight = 1D; + // + // xrTableCell32 + // + this.xrTableCell32.BackColor = System.Drawing.Color.Transparent; + this.xrTableCell32.BorderColor = System.Drawing.Color.Transparent; + this.xrTableCell32.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top) + | DevExpress.XtraPrinting.BorderSide.Right) + | DevExpress.XtraPrinting.BorderSide.Bottom))); + this.xrTableCell32.Name = "xrTableCell32"; + this.xrTableCell32.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 2, 2, 100F); + this.xrTableCell32.StylePriority.UseBackColor = false; + this.xrTableCell32.StylePriority.UseBorderColor = false; + this.xrTableCell32.StylePriority.UseBorders = false; + this.xrTableCell32.StylePriority.UsePadding = false; + this.xrTableCell32.StylePriority.UseTextAlignment = false; + this.xrTableCell32.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; + this.xrTableCell32.Weight = 0.5494310185893323D; + // + // xrTableCell38 + // + this.xrTableCell38.BackColor = System.Drawing.Color.Transparent; + this.xrTableCell38.BorderColor = System.Drawing.Color.Transparent; + this.xrTableCell38.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top) + | DevExpress.XtraPrinting.BorderSide.Right) + | DevExpress.XtraPrinting.BorderSide.Bottom))); + this.xrTableCell38.Multiline = true; + this.xrTableCell38.Name = "xrTableCell38"; + this.xrTableCell38.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 2, 2, 100F); + this.xrTableCell38.StylePriority.UseBackColor = false; + this.xrTableCell38.StylePriority.UseBorderColor = false; + this.xrTableCell38.StylePriority.UseBorders = false; + this.xrTableCell38.StylePriority.UsePadding = false; + this.xrTableCell38.StylePriority.UseTextAlignment = false; + this.xrTableCell38.Text = "Tatsächliche \r\nBehandlungskosten"; + this.xrTableCell38.TextAlignment = DevExpress.XtraPrinting.TextAlignment.BottomRight; + this.xrTableCell38.Weight = 0.84504695654880491D; + // + // xrTableCell34 + // + this.xrTableCell34.BackColor = System.Drawing.Color.Transparent; + this.xrTableCell34.BorderColor = System.Drawing.Color.Transparent; + this.xrTableCell34.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top) + | DevExpress.XtraPrinting.BorderSide.Right) + | DevExpress.XtraPrinting.BorderSide.Bottom))); + this.xrTableCell34.Font = new DevExpress.Drawing.DXFont("Verdana", 10F, DevExpress.Drawing.DXFontStyle.Underline); + this.xrTableCell34.Name = "xrTableCell34"; + this.xrTableCell34.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 2, 2, 100F); + this.xrTableCell34.StylePriority.UseBackColor = false; + this.xrTableCell34.StylePriority.UseBorderColor = false; + this.xrTableCell34.StylePriority.UseBorders = false; + this.xrTableCell34.StylePriority.UseFont = false; + this.xrTableCell34.StylePriority.UsePadding = false; + this.xrTableCell34.StylePriority.UseTextAlignment = false; + this.xrTableCell34.Text = "Ihr Eigenteil"; + this.xrTableCell34.TextAlignment = DevExpress.XtraPrinting.TextAlignment.BottomLeft; + this.xrTableCell34.Weight = 0.31923915575667006D; + // + // DetailReport2 + // + this.DetailReport2.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] { + this.Detail3, + this.GroupFooter1}); + this.DetailReport2.DataMember = "ServiceInvoicePeriods.ServiceInvoiceItems"; + this.DetailReport2.DataSource = this.bindingSource1; + this.DetailReport2.Level = 0; + this.DetailReport2.Name = "DetailReport2"; + this.DetailReport2.PageBreak = DevExpress.XtraReports.UI.PageBreak.AfterBand; + // + // Detail3 + // + this.Detail3.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] { + this.xrTable6}); + this.Detail3.HeightF = 25F; + this.Detail3.Name = "Detail3"; + // + // xrTable6 + // + this.xrTable6.Font = new DevExpress.Drawing.DXFont("Verdana", 8.25F, DevExpress.Drawing.DXFontStyle.Regular, DevExpress.Drawing.DXGraphicsUnit.Point, new DevExpress.Drawing.DXFontAdditionalProperty[] { + new DevExpress.Drawing.DXFontAdditionalProperty("GdiCharSet", ((byte)(0)))}); + this.xrTable6.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F); + this.xrTable6.Name = "xrTable6"; + this.xrTable6.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] { + this.xrTableRow25}); + this.xrTable6.SizeF = new System.Drawing.SizeF(680.3334F, 25F); + this.xrTable6.StylePriority.UseFont = false; + // + // xrTableRow25 + // + this.xrTableRow25.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] { + this.xrTableCell45, + this.xrTableCell46, + this.xrTableCell2, + this.xrTableCell47}); + this.xrTableRow25.Name = "xrTableRow25"; + this.xrTableRow25.Weight = 1D; + // + // xrTableCell45 + // + this.xrTableCell45.BorderColor = System.Drawing.Color.Transparent; + this.xrTableCell45.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right) + | DevExpress.XtraPrinting.BorderSide.Bottom))); + this.xrTableCell45.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { + new DevExpress.XtraReports.UI.XRBinding("Text", null, "ServiceInvoicePeriods.ServiceInvoiceItems.AccountingPeriodStart")}); + this.xrTableCell45.Font = new DevExpress.Drawing.DXFont("Verdana", 10F); + this.xrTableCell45.Name = "xrTableCell45"; + this.xrTableCell45.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 2, 2, 100F); + this.xrTableCell45.StylePriority.UseBorderColor = false; + this.xrTableCell45.StylePriority.UseBorders = false; + this.xrTableCell45.StylePriority.UseFont = false; + this.xrTableCell45.StylePriority.UsePadding = false; + this.xrTableCell45.StylePriority.UseTextAlignment = false; + this.xrTableCell45.Text = "xrTableCell45"; + this.xrTableCell45.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; + this.xrTableCell45.TextFormatString = "{0:dd.MM.yyyy}"; + this.xrTableCell45.Weight = 0.42042062270317726D; + // + // xrTableCell46 + // + this.xrTableCell46.BorderColor = System.Drawing.Color.Transparent; + this.xrTableCell46.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right) + | DevExpress.XtraPrinting.BorderSide.Bottom))); + this.xrTableCell46.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { + new DevExpress.XtraReports.UI.XRBinding("Text", null, "ServiceInvoicePeriods.ServiceInvoiceItems.ServiceDescription")}); + this.xrTableCell46.Font = new DevExpress.Drawing.DXFont("Verdana", 10F); + this.xrTableCell46.Name = "xrTableCell46"; + this.xrTableCell46.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 2, 2, 100F); + this.xrTableCell46.StylePriority.UseBorderColor = false; + this.xrTableCell46.StylePriority.UseBorders = false; + this.xrTableCell46.StylePriority.UseFont = false; + this.xrTableCell46.StylePriority.UsePadding = false; + this.xrTableCell46.StylePriority.UseTextAlignment = false; + this.xrTableCell46.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight; + this.xrTableCell46.Weight = 0.64662376091114537D; + // + // xrTableCell47 + // + this.xrTableCell47.BorderColor = System.Drawing.Color.Transparent; + this.xrTableCell47.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right) + | DevExpress.XtraPrinting.BorderSide.Bottom))); + this.xrTableCell47.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { + new DevExpress.XtraReports.UI.XRBinding("Text", null, "ServiceInvoicePeriods.ServiceInvoiceItems.GrossAmount")}); + this.xrTableCell47.Font = new DevExpress.Drawing.DXFont("Verdana", 10F); + this.xrTableCell47.Name = "xrTableCell47"; + this.xrTableCell47.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 2, 2, 100F); + this.xrTableCell47.StylePriority.UseBorderColor = false; + this.xrTableCell47.StylePriority.UseBorders = false; + this.xrTableCell47.StylePriority.UseFont = false; + this.xrTableCell47.StylePriority.UsePadding = false; + this.xrTableCell47.StylePriority.UseTextAlignment = false; + this.xrTableCell47.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; + this.xrTableCell47.Weight = 0.24427940340152482D; + // + // GroupFooter1 + // + this.GroupFooter1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] { + this.xrLabel11, + this.xrLabel9, + this.xrLabel10, + this.xrLabel1, + this.xrLabel14, + this.xrLabel15}); + this.GroupFooter1.HeightF = 230.75F; + this.GroupFooter1.Name = "GroupFooter1"; + // + // xrLabel1 + // + this.xrLabel1.Borders = DevExpress.XtraPrinting.BorderSide.Top; + this.xrLabel1.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { + new DevExpress.XtraReports.UI.XRBinding("Text", null, "GrossClaim")}); + this.xrLabel1.Font = new DevExpress.Drawing.DXFont("Verdana", 9F, DevExpress.Drawing.DXFontStyle.Bold); + this.xrLabel1.LocationFloat = new DevExpress.Utils.PointFloat(563.5595F, 0F); + this.xrLabel1.Name = "xrLabel1"; + this.xrLabel1.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 5, 0, 0, 100F); + this.xrLabel1.SizeF = new System.Drawing.SizeF(113.2737F, 25F); + this.xrLabel1.StylePriority.UseBorders = false; + this.xrLabel1.StylePriority.UseFont = false; + this.xrLabel1.StylePriority.UsePadding = false; + this.xrLabel1.StylePriority.UseTextAlignment = false; + this.xrLabel1.Text = "xrLabel1"; + this.xrLabel1.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; + this.xrLabel1.TextFormatString = "{0}"; + // + // xrLabel6 + // + this.xrLabel6.Font = new DevExpress.Drawing.DXFont("Verdana", 10F, DevExpress.Drawing.DXFontStyle.Italic); + this.xrLabel6.LocationFloat = new DevExpress.Utils.PointFloat(0F, 356.5001F); + this.xrLabel6.Multiline = true; + this.xrLabel6.Name = "xrLabel6"; + this.xrLabel6.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); + this.xrLabel6.SizeF = new System.Drawing.SizeF(642F, 58.66672F); + this.xrLabel6.StylePriority.UseFont = false; + this.xrLabel6.Text = "\"Pro Kalendertag, an dem Soziotherapie stattfindet, zahlt der Patient einen Eigen" + + "anteil in Höhe von zehn Prozent der tatsächtichen Behandlungskosten, mindestens " + + "fünf Euro, höchstens zehn Euro.\""; + // + // xrLabel7 + // + this.xrLabel7.LocationFloat = new DevExpress.Utils.PointFloat(0F, 415.1668F); + this.xrLabel7.Multiline = true; + this.xrLabel7.Name = "xrLabel7"; + this.xrLabel7.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); + this.xrLabel7.SizeF = new System.Drawing.SizeF(642F, 59.12503F); + this.xrLabel7.StylePriority.UseFont = false; + this.xrLabel7.Text = "Daher erlauben wir uns, lhnen die von uns erbrachten Leistungen von [AccountingPe" + + "riodStart!dd.MM.yyyy] bis [AccountingPeriodEnd!dd.MM.yyyy] wie folgt in Rechnung" + + " zu stellen:"; + // + // xrTableCell1 + // + this.xrTableCell1.BackColor = System.Drawing.Color.Transparent; + this.xrTableCell1.BorderColor = System.Drawing.Color.Transparent; + this.xrTableCell1.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top) + | DevExpress.XtraPrinting.BorderSide.Right) + | DevExpress.XtraPrinting.BorderSide.Bottom))); + this.xrTableCell1.Multiline = true; + this.xrTableCell1.Name = "xrTableCell1"; + this.xrTableCell1.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 2, 2, 100F); + this.xrTableCell1.StylePriority.UseBackColor = false; + this.xrTableCell1.StylePriority.UseBorderColor = false; + this.xrTableCell1.StylePriority.UseBorders = false; + this.xrTableCell1.StylePriority.UsePadding = false; + this.xrTableCell1.StylePriority.UseTextAlignment = false; + this.xrTableCell1.TextAlignment = DevExpress.XtraPrinting.TextAlignment.BottomRight; + this.xrTableCell1.Weight = 0.14619422330308785D; + // + // xrTableCell2 + // + this.xrTableCell2.BorderColor = System.Drawing.Color.Transparent; + this.xrTableCell2.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right) + | DevExpress.XtraPrinting.BorderSide.Bottom))); + this.xrTableCell2.Multiline = true; + this.xrTableCell2.Name = "xrTableCell2"; + this.xrTableCell2.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 2, 2, 100F); + this.xrTableCell2.StylePriority.UseBorderColor = false; + this.xrTableCell2.StylePriority.UseBorders = false; + this.xrTableCell2.StylePriority.UsePadding = false; + this.xrTableCell2.StylePriority.UseTextAlignment = false; + this.xrTableCell2.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight; + this.xrTableCell2.Weight = 0.11186675387824806D; + // + // xrLabel10 + // + this.xrLabel10.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { + new DevExpress.XtraReports.UI.XRBinding("Text", null, "AccountingPeriod")}); + this.xrLabel10.Font = new DevExpress.Drawing.DXFont("Verdana", 9F, DevExpress.Drawing.DXFontStyle.Bold); + this.xrLabel10.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F); + this.xrLabel10.Name = "xrLabel10"; + this.xrLabel10.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 5, 0, 0, 100F); + this.xrLabel10.SizeF = new System.Drawing.SizeF(563.5595F, 25F); + this.xrLabel10.StylePriority.UseFont = false; + this.xrLabel10.StylePriority.UsePadding = false; + this.xrLabel10.StylePriority.UseTextAlignment = false; + this.xrLabel10.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; + this.xrLabel10.TextFormatString = "Gesamtsumme {0}:"; + // + // xrLabel9 + // + this.xrLabel9.LocationFloat = new DevExpress.Utils.PointFloat(0F, 41.66667F); + this.xrLabel9.Multiline = true; + this.xrLabel9.Name = "xrLabel9"; + this.xrLabel9.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); + this.xrLabel9.SizeF = new System.Drawing.SizeF(642F, 59.12503F); + this.xrLabel9.StylePriority.UseFont = false; + this.xrLabel9.Text = "Wir bitten Sie, den Betrag auf unser unten genanntes Konto zu überweisen.\r\nVielen" + + " Dank."; + // + // xrLabel11 + // + this.xrLabel11.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { + new DevExpress.XtraReports.UI.XRBinding("Text", null, "CreatorDivision")}); + this.xrLabel11.Font = new DevExpress.Drawing.DXFont("Verdana", 10F); + this.xrLabel11.LocationFloat = new DevExpress.Utils.PointFloat(0F, 213.75F); + this.xrLabel11.Name = "xrLabel11"; + this.xrLabel11.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); + this.xrLabel11.SizeF = new System.Drawing.SizeF(225F, 17F); + this.xrLabel11.StylePriority.UseFont = false; + this.xrLabel11.Text = "[CreatorName]"; + // + // bindingSource1 + // + this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.ServiceInvoiceRO); + // + // EigenanteilInvoiceReport + // + this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] { + this.Detail, + this.ReportHeader, + this.topMarginBand1, + this.bottomMarginBand1, + this.Page1, + this.DetailReport}); + this.DataSource = this.bindingSource1; + this.ExportOptions.PrintPreview.DefaultFileName = "Spitzabrechnung"; + this.Font = new DevExpress.Drawing.DXFont("Verdana", 10F); + this.FormattingRuleSheet.AddRange(new DevExpress.XtraReports.UI.FormattingRule[] { + this.ruleRateFactorNull}); + this.Margins = new DevExpress.Drawing.DXMargins(91.66666F, 55F, 212.7083F, 50F); + this.PageHeight = 1169; + this.PageWidth = 827; + this.PaperKind = DevExpress.Drawing.Printing.DXPaperKind.A4; + this.Version = "23.2"; + xrWatermark1.Id = "Watermark1"; + this.Watermarks.Add(xrWatermark1); + ((System.ComponentModel.ISupportInitialize)(this.xrTable5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.xrTable6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this)).EndInit(); + + } + + + private DevExpress.XtraReports.UI.DetailBand Detail; + private System.Windows.Forms.BindingSource bindingSource1; + private DevExpress.XtraReports.UI.ReportHeaderBand ReportHeader; + private DevExpress.XtraReports.UI.FormattingRule ruleRateFactorNull; + private DevExpress.XtraReports.UI.TopMarginBand topMarginBand1; + private DevExpress.XtraReports.UI.BottomMarginBand bottomMarginBand1; + private DevExpress.XtraReports.UI.GroupHeaderBand Page1; + private DevExpress.XtraReports.UI.XRLabel xrLabel4; + private DevExpress.XtraReports.UI.XRLabel xrLabel3; + private DevExpress.XtraReports.UI.XRLabel xrLabel2; + private DevExpress.XtraReports.UI.XRLabel xrLabel5; + private DevExpress.XtraReports.UI.XRLabel xrLabel8; + private DevExpress.XtraReports.UI.XRLabel lblAbrechnungszeitraum; + private DevExpress.XtraReports.UI.XRLabel xrLabel15; + private DevExpress.XtraReports.UI.XRLabel xrLabel14; + private DevExpress.XtraReports.UI.DetailReportBand DetailReport; + private DevExpress.XtraReports.UI.DetailBand Detail1; + private DevExpress.XtraReports.UI.XRTable xrTable5; + private DevExpress.XtraReports.UI.XRTableRow xrTableRow23; + private DevExpress.XtraReports.UI.XRTableCell xrTableCell32; + private DevExpress.XtraReports.UI.XRTableCell xrTableCell38; + private DevExpress.XtraReports.UI.XRTableCell xrTableCell34; + private DevExpress.XtraReports.UI.DetailReportBand DetailReport2; + private DevExpress.XtraReports.UI.DetailBand Detail3; + private DevExpress.XtraReports.UI.XRTable xrTable6; + private DevExpress.XtraReports.UI.XRTableRow xrTableRow25; + private DevExpress.XtraReports.UI.XRTableCell xrTableCell45; + private DevExpress.XtraReports.UI.XRTableCell xrTableCell46; + private DevExpress.XtraReports.UI.XRTableCell xrTableCell47; + private DevExpress.XtraReports.UI.XRLabel lblAdresse; + private DevExpress.XtraReports.UI.GroupFooterBand GroupFooter1; + private DevExpress.XtraReports.UI.XRLabel xrLabel1; + private DevExpress.XtraReports.UI.XRLabel xrLabel6; + private DevExpress.XtraReports.UI.XRLabel xrLabel7; + private DevExpress.XtraReports.UI.XRTableCell xrTableCell1; + private DevExpress.XtraReports.UI.XRTableCell xrTableCell2; + private DevExpress.XtraReports.UI.XRLabel xrLabel10; + private DevExpress.XtraReports.UI.XRLabel xrLabel9; + private DevExpress.XtraReports.UI.XRLabel xrLabel11; + } +} diff --git a/ReportImp/ZukunftLeben/EigenanteilInvoiceReport.cs b/ReportImp/ZukunftLeben/EigenanteilInvoiceReport.cs new file mode 100644 index 000000000..a258386e6 --- /dev/null +++ b/ReportImp/ZukunftLeben/EigenanteilInvoiceReport.cs @@ -0,0 +1,66 @@ +using System; +using System.Text; +using BeWo.Report; +using BeWo.Report.ReportObjects; +using BS.Shared.Core; +using DevExpress.XtraReports.UI; + +namespace ZukunftLeben +{ + [IDSpecificClass(Identifier = "Eigenanteil")] + public partial class EigenanteilInvoiceReport : XtraReport, IBeWoReport + { + public EigenanteilInvoiceReport() + { + this.InitializeComponent(); + } + + public void SetReportDataSource(ServiceInvoiceRO pRO) + { + DateTime start = pRO.AccountingPeriodStart; + DateTime end = pRO.AccountingPeriodEnd; + if (start.Month == end.Month && start.Year == end.Year) + { + lblAbrechnungszeitraum.Text = String.Format("hiermit berechnen wir für den Monat {0:MMMM yyyy} folgende erbrachte Tätigkeiten:", start); + } + else + { + lblAbrechnungszeitraum.Text = String.Format("hiermit berechnen wir für den Zeitraum {0:MMMM yyyy} - {1:MMMM yyyy} folgende erbrachte Tätigkeiten:", start, end); + } + + SetzeAdresse(pRO); + + this.bindingSource1.DataSource = pRO; + } + + private void SetzeAdresse(ServiceInvoiceRO pRO) + { + StringBuilder sb = new StringBuilder(); + //if (!String.IsNullOrEmpty(pRO.RecipientAddressLine1)) + //{ + // sb.AppendLine(pRO.RecipientAddressLine1); + //} + if (!String.IsNullOrEmpty(pRO.RecipientContactPerson)) + { + sb.AppendLine(pRO.RecipientContactPerson); + } + if (!String.IsNullOrEmpty(pRO.RecipientDivision) && !String.IsNullOrEmpty(pRO.RecipientOrganisation) && pRO.RecipientOrganisation.ToLower() != "selbstzahler") + { + sb.AppendLine(pRO.RecipientDivision); + } + if (!String.IsNullOrEmpty(pRO.RecipientPoBox)) + { + sb.AppendLine(pRO.RecipientPoBox); + } + else if (!String.IsNullOrEmpty(pRO.RecipientStreet)) + { + sb.AppendLine(pRO.RecipientStreet); + } + if (!String.IsNullOrEmpty(pRO.RecipientPostCodeAndTown)) + { + sb.AppendLine(pRO.RecipientPostCodeAndTown); + } + lblAdresse.Text = sb.ToString(); + } + } +} \ No newline at end of file diff --git a/ReportImp/ZukunftLeben/EigenanteilInvoiceReport.resx b/ReportImp/ZukunftLeben/EigenanteilInvoiceReport.resx new file mode 100644 index 000000000..d58980a38 --- /dev/null +++ b/ReportImp/ZukunftLeben/EigenanteilInvoiceReport.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/ReportImp/ZukunftLeben/Invoicing/EigenanteilsInvoiceCreation.cs b/ReportImp/ZukunftLeben/Invoicing/EigenanteilsInvoiceCreation.cs new file mode 100644 index 000000000..24ae3ff46 --- /dev/null +++ b/ReportImp/ZukunftLeben/Invoicing/EigenanteilsInvoiceCreation.cs @@ -0,0 +1,176 @@ +using BeWo.Data.Access; +using BeWo.Data.Entities; +using BeWo.Service.Invoicing; +using BS.Shared.Core; +using BS.Shared.DataContracts; +using BS.Shared.DataContracts.Compact; +using BS.Shared.Services; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ZukunftLeben.Invoicing +{ + public class EigenanteilsInvoiceCreation : InvoiceCreation + { + public override void SetInvoiceId(ServiceInvoice invoice) + { + invoice.InvoiceBase.InvoiceId = "Eigenanteil"; + invoice.InvoiceBase.InvoiceTypeText = "Eigenanteil"; + } + + // Hier wird die Prüfung auf AlreadyAccounted entfernt, weil für jeden Tag zusätzlich 10% an den Customer in Rechnung gestellt wird. + // Außerdem wird eine Liste geführt, die die Tage, die schon in Rechnung gestellt wurden, trackt, da jeder Tag mit einer Leistung nur ein Mal + // in Rechnung gestellt werden darf. + public override IList CreateInvoiceItems(List serviceRecordsInPeriod, DateTimeSpan invoicePeriod, SupportConceptApprovalPeriod scap, Calculations calc) + { + var list = new List(); + List schonInRechnungGestellt = new List(); + foreach (ServiceRecordDC iServiceRecord in serviceRecordsInPeriod) + { + if (iServiceRecord.ServiceDescription.Category.IsBillable && !schonInRechnungGestellt.Contains(iServiceRecord.Start.Value.Date)) + { + InvoiceItem invoiceItem = CreateInvoiceItem(iServiceRecord, scap, calc); + if (invoiceItem != null) + { + list.Add(invoiceItem); + schonInRechnungGestellt.Add(iServiceRecord.Start.Value.Date); + } + } + } + + return CreateSummaryInvoiceItems(list, invoicePeriod, scap, calc); + } + public override InvoiceItem CreateInvoiceItem(ServiceRecordDC iServiceRecord, SupportConceptApprovalPeriod scap, Calculations calc) + { + var invoiceItem = new InvoiceItem(); + + BillingData bd = calc.GetBillingData(iServiceRecord); + + var eigentanteil = bd.AmountPerUnit / 100 * 10; + if (eigentanteil < 5) + eigentanteil = 5; + else if (eigentanteil > 10) + eigentanteil = 10; + + invoiceItem.AmountPerUnit = eigentanteil; // Ihr Eigenanteil + invoiceItem.UnitCount = 1; + invoiceItem.AmountTotal = eigentanteil; // Ihr Eigenanteil + invoiceItem.ItemPeriodStart = iServiceRecord.Start; + invoiceItem.ItemPeriodEnd = iServiceRecord.End; + invoiceItem.RateFactor = null; + invoiceItem.GrossAmountTotal = eigentanteil; // Ihr Eigenanteil + invoiceItem.AccountingInterval = bd.AccountingInterval; + invoiceItem.ItemDescription = string.Format("{0:0.00} Euro", bd.AmountPerUnit); + invoiceItem.CustomNumber1 = bd.AmountPerUnit; // Tatsächliche Behandlungskosten + invoiceItem.ServiceRecord = DAOFactory.GenericDAO.LoadByID(iServiceRecord.ServiceRecordOid.Value); + if (scap != null) + invoiceItem.SupportConceptApprovalPeriodOid = scap.Oid; + + return invoiceItem; + } + + public override IList CreateSummaryInvoiceItems(IList itemList, + DateTimeSpan invoicePeriod, SupportConceptApprovalPeriod scap, Calculations calc, bool summaryPerMonth, bool addRateFactorToUnitCount) + { + //Fasse InvoiceItems mit gleichem Stundensatz zusammen: + + var newlist = new List(); + + var rateToItem = new Dictionary(); + foreach (InvoiceItem iitem in itemList) + { + InvoiceItem item; + + var key = GetSummaryItemKey(scap, iitem, summaryPerMonth); + + if (rateToItem.ContainsKey(key)) + { + item = rateToItem[key]; + } + else + { + item = new InvoiceItem(); + newlist.Add(item); + + item.AmountPerUnit = iitem.AmountPerUnit; + if (invoicePeriod != null) + { + item.ItemPeriodStart = iitem.ItemPeriodStart; + item.ItemPeriodEnd = iitem.ItemPeriodEnd; + } + else + { + item.ItemPeriodStart = iitem.ItemPeriodStart; + item.ItemPeriodEnd = iitem.ItemPeriodEnd; + } + + item.RateFactor = iitem.RateFactor; + + item.AccountingInterval = iitem.AccountingInterval; + item.ItemDescription = iitem.ItemDescription; + item.UnitDescription = iitem.UnitDescription; + item.SupportConceptApprovalPeriodOid = scap.Oid; + + rateToItem[key] = item; + } + + + if (!item.UnitCount.HasValue) + { + item.UnitCount = 0; + } + item.UnitCount += iitem.UnitCount ?? 0; + } + + BerechneSummaryItemsSummen(newlist, addRateFactorToUnitCount); + return newlist; + } + + public override void SetRecipientInformation(ServiceInvoice serviceInvoice, CostBearer costBearer) + { + serviceInvoice.InvoiceBase.RecipientDivision = costBearer.Organisation.Name2; + serviceInvoice.InvoiceBase.RecipientOrganisationOid = costBearer.Organisation.Oid; + serviceInvoice.InvoiceBase.RecipientOrganisation = costBearer.Organisation.Name; + serviceInvoice.InvoiceBase.RecipientContacts = costBearer.Organisation.Contacts.Select(i => i.CopyToNew()).ToList(); + serviceInvoice.InvoiceBase.RecipientCostBearerOid = costBearer.Oid; + + if (serviceInvoice.InvoiceBase.CostBearer2SupportConcept != null) + { + var cust = serviceInvoice.InvoiceBase.CostBearer2SupportConcept.SupportConcept.Customer; + + serviceInvoice.InvoiceBase.RecipientOrganisation = cust.Person.FirstNameLastName; + + if (cust.Person.InvoiceAddress != null) + { + serviceInvoice.InvoiceBase.RecipientAddress = cust.Person.InvoiceAddress.CopyToNew(); + } + else if (cust.Person.Address != null) + { + serviceInvoice.InvoiceBase.RecipientAddress = cust.Person.Address.CopyToNew(); + } + if (cust.Person.InvoiceAddress != null && cust.Person.InvoiceAddress.AddressLine1 != null) // Anderer Rechnungsempfänger z.B. Vormund + { + serviceInvoice.InvoiceBase.RecipientPersonFirstName = cust.Person.InvoiceAddress.AddressLine1; + serviceInvoice.InvoiceBase.RecipientPersonLastName = ""; + } + else + { + serviceInvoice.InvoiceBase.RecipientPersonFirstName = cust.Person.FirstName; + serviceInvoice.InvoiceBase.RecipientPersonLastName = cust.Person.LastName; + } + return; + } + if (costBearer.Organisation.InvoiceAddress != null) + { + serviceInvoice.InvoiceBase.RecipientAddress = costBearer.Organisation.InvoiceAddress.CopyToNew(); + } + else if (costBearer.Organisation.Address != null) + { + serviceInvoice.InvoiceBase.RecipientAddress = costBearer.Organisation.Address.CopyToNew(); + } + } + } +} diff --git a/ReportImp/ZukunftLeben/Invoicing/SoziotherapieInvoiceCreation.cs b/ReportImp/ZukunftLeben/Invoicing/SoziotherapieInvoiceCreation.cs index daaf75586..c113e5a28 100644 --- a/ReportImp/ZukunftLeben/Invoicing/SoziotherapieInvoiceCreation.cs +++ b/ReportImp/ZukunftLeben/Invoicing/SoziotherapieInvoiceCreation.cs @@ -1,6 +1,9 @@ using System; using System.Collections.Generic; +using System.Linq; +using BeWo.Data.Access; using BeWo.Data.Entities; +using BeWo.Service.DCEntityMapper; using BeWo.Service.Invoicing; using BS.Shared.Core; using BS.Shared.DataContracts; @@ -18,6 +21,68 @@ namespace ZukunftLeben.Invoicing invoice.InvoiceBase.InvoiceTypeText = "Soziotherapie"; } + public override List GenerateServiceInvoices(long costBearerOid, + DateTimeSpan invoicePeriod, + Dictionary> supportConcepts2ServiceRecords, bool splitInvoices) + { + var costBearer = DAOFactory.GenericDAO.LoadByID(costBearerOid); + var invoiceList = new List(); + + var invoiceCounter = 0; + ServiceInvoice invoice; + + if (costBearer.IsSingleInvoicePerCustomer) + { + invoice = CreateCollectiveBilling(costBearer, invoicePeriod, supportConcepts2ServiceRecords); + if (invoice != null) + { + invoiceList.Add(invoice); + } + } + else + { + foreach (var iSupportConcept2ServiceRecords in supportConcepts2ServiceRecords) + { + invoice = CreateSingleInvoice(invoiceCounter, costBearer, invoicePeriod, iSupportConcept2ServiceRecords.Key, iSupportConcept2ServiceRecords.Value); + if (invoice != null) + { + if (splitInvoices && invoice.ServiceInvoicePeriodList.Count > 1 + && !invoice.ServiceInvoicePeriodList.Any(s => s.Start == invoicePeriod.StartDate && s.End == invoicePeriod.EndDate)) + { + foreach (var sip in invoice.ServiceInvoicePeriodList) + { + DateTimeSpan invPeriod = invoicePeriod; + invPeriod.StartDate = sip.Start.Value; + invPeriod.EndDate = sip.End.Value; + var partInvoice = CreateSingleInvoice(invoiceCounter, costBearer, invPeriod, iSupportConcept2ServiceRecords.Key, iSupportConcept2ServiceRecords.Value); + partInvoice.ServiceInvoicePeriodList.Add(sip); + invoiceList.Add(partInvoice); + invoiceCounter++; + } + } + else + { + invoiceList.Add(invoice); + invoiceCounter++; + + // Wenn die Bewilligung, die bei Abrechnung aktuell ist, die Leistungskategorie "Soziotherapie mit Eigenanteil" enthält, muss eine Eigenanteilsrechnung zusätzlich erstellt werden. + // In der wird pro Tag, an dem Leistungen erfolgt sind, 10% der Terminkosten dem Klienten in Rechnung gestellt. Es sind entweder 10%, mindestens aber 5 EUR und maximal 10 EUR + if (invoice.InvoiceBase.CostBearer2SupportConcept.ApprovalPeriodList.Any(ap => ap.ServiceCategory != null && ap.ServiceCategory.Name.Trim() == "Soziotherapie mit Eigenanteil")) + { + var eigenanteilsInvoiceCreation = new EigenanteilsInvoiceCreation(); + var eigenanteilInvoice = eigenanteilsInvoiceCreation.CreateSingleInvoice(invoiceCounter, costBearer, invoicePeriod, iSupportConcept2ServiceRecords.Key, iSupportConcept2ServiceRecords.Value); + invoiceCounter++; + invoiceList.Add(eigenanteilInvoice); + } + } + } + } + } + var result = invoiceList.Select(item => MapperFactory.ServiceInvoiceDC_ServiceInvoice.MapToNewDC(item)).ToList(); + return result.Count > 1 ? result.OrderBy(i => i.InvoiceBase.CustomerLastName).ToList() : result; + } + + public override ServiceInvoice CreateSingleInvoice(int invoiceCounter, CostBearer costBearer, DateTimeSpan invoicePeriod, CompactSupportConceptDC supportConcept, List serviceRecords) { var invoice = new ServiceInvoice(); diff --git a/ReportImp/ZukunftLeben/ZukunftLeben.csproj b/ReportImp/ZukunftLeben/ZukunftLeben.csproj index 7b5c30e86..0d87f3b07 100644 --- a/ReportImp/ZukunftLeben/ZukunftLeben.csproj +++ b/ReportImp/ZukunftLeben/ZukunftLeben.csproj @@ -31,6 +31,7 @@ 4 + @@ -39,6 +40,7 @@ + @@ -60,6 +62,7 @@ + @@ -81,6 +84,12 @@ QuittierungsbelegMitDatum.cs + + Component + + + EigenanteilInvoiceReport.cs + Component @@ -133,6 +142,10 @@ QuittierungsbelegMitDatum.cs Designer + + EigenanteilInvoiceReport.cs + Designer + ServiceInvoiceReport.cs Designer