From 590bd4b971ccac5946e140a6be7fb1f0dcce1b99 Mon Sep 17 00:00:00 2001 From: Alexandra Date: Tue, 24 Sep 2024 13:35:50 +0200 Subject: [PATCH] =?UTF-8?q?LyvieKupfer/CollectiveBillingReport=20-=20Samme?= =?UTF-8?q?lrechnung=20f=C3=BCr=20Erstberatung?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CollectiveBillingReport.Designer.cs | 682 ++++++++++++++++++ .../LyvieKupfer/CollectiveBillingReport.cs | 91 +++ .../LyvieKupfer/CollectiveBillingReport.resx | 123 ++++ .../Invoicing/CollectiveInvoiceCreation.cs | 113 +++ .../Invoicing/CustomInvoiceFactory.cs | 23 + ReportImp/LyvieKupfer/LyvieKupfer.csproj | 12 + 6 files changed, 1044 insertions(+) create mode 100644 ReportImp/LyvieKupfer/CollectiveBillingReport.Designer.cs create mode 100644 ReportImp/LyvieKupfer/CollectiveBillingReport.cs create mode 100644 ReportImp/LyvieKupfer/CollectiveBillingReport.resx create mode 100644 ReportImp/LyvieKupfer/Invoicing/CollectiveInvoiceCreation.cs create mode 100644 ReportImp/LyvieKupfer/Invoicing/CustomInvoiceFactory.cs diff --git a/ReportImp/LyvieKupfer/CollectiveBillingReport.Designer.cs b/ReportImp/LyvieKupfer/CollectiveBillingReport.Designer.cs new file mode 100644 index 000000000..147ccf6d0 --- /dev/null +++ b/ReportImp/LyvieKupfer/CollectiveBillingReport.Designer.cs @@ -0,0 +1,682 @@ +using BeWo.Report.ReportObjects; +namespace LyvieKupfer +{ + partial class Sammelrechnung + { + /// + /// 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(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Sammelrechnung)); + 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.xrLabel24 = new DevExpress.XtraReports.UI.XRLabel(); + this.bottomMarginBand1 = new DevExpress.XtraReports.UI.BottomMarginBand(); + this.Page1 = new DevExpress.XtraReports.UI.GroupHeaderBand(); + this.lblAdresse = new DevExpress.XtraReports.UI.XRLabel(); + this.xrLabel2 = new DevExpress.XtraReports.UI.XRLabel(); + this.xrLabel8 = new DevExpress.XtraReports.UI.XRLabel(); + this.lblAbrechnungszeitraum = new DevExpress.XtraReports.UI.XRLabel(); + this.DetailReport = new DevExpress.XtraReports.UI.DetailReportBand(); + this.Detail1 = new DevExpress.XtraReports.UI.DetailBand(); + 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.xrTableCell42 = new DevExpress.XtraReports.UI.XRTableCell(); + this.xrTableCell43 = new DevExpress.XtraReports.UI.XRTableCell(); + this.xrTableCell44 = new DevExpress.XtraReports.UI.XRTableCell(); + this.xrTableCell47 = new DevExpress.XtraReports.UI.XRTableCell(); + this.lblRechnungstext = new DevExpress.XtraReports.UI.XRLabel(); + this.xrTable5 = new DevExpress.XtraReports.UI.XRTable(); + this.xrTableRow23 = new DevExpress.XtraReports.UI.XRTableRow(); + this.xrTableCell37 = new DevExpress.XtraReports.UI.XRTableCell(); + this.xrTableCell35 = new DevExpress.XtraReports.UI.XRTableCell(); + this.xrTableCell33 = new DevExpress.XtraReports.UI.XRTableCell(); + this.xrTableCell34 = new DevExpress.XtraReports.UI.XRTableCell(); + this.ReportFooter = new DevExpress.XtraReports.UI.ReportFooterBand(); + this.xrLabel4 = new DevExpress.XtraReports.UI.XRLabel(); + this.xrLabel6 = new DevExpress.XtraReports.UI.XRLabel(); + this.xrTable2 = new DevExpress.XtraReports.UI.XRTable(); + this.xrTableRow2 = new DevExpress.XtraReports.UI.XRTableRow(); + this.xrTableCell2 = new DevExpress.XtraReports.UI.XRTableCell(); + this.xrTableRow3 = new DevExpress.XtraReports.UI.XRTableRow(); + this.xrTableCell3 = new DevExpress.XtraReports.UI.XRTableCell(); + this.xrTable3 = new DevExpress.XtraReports.UI.XRTable(); + this.xrTableRow4 = new DevExpress.XtraReports.UI.XRTableRow(); + this.xrTableCell5 = new DevExpress.XtraReports.UI.XRTableCell(); + this.xrTableCell6 = new DevExpress.XtraReports.UI.XRTableCell(); + this.xrLabel7 = new DevExpress.XtraReports.UI.XRLabel(); + this.xrRichText2 = new DevExpress.XtraReports.UI.XRRichText(); + this.xrLabel9 = new DevExpress.XtraReports.UI.XRLabel(); + this.xrLabel10 = new DevExpress.XtraReports.UI.XRLabel(); + this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components); + ((System.ComponentModel.ISupportInitialize)(this.xrTable6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.xrTable5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.xrTable2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.xrTable3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.xrRichText2)).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.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] { + this.xrLabel24}); + this.topMarginBand1.HeightF = 157.5F; + this.topMarginBand1.Name = "topMarginBand1"; + // + // xrLabel24 + // + this.xrLabel24.Borders = DevExpress.XtraPrinting.BorderSide.None; + this.xrLabel24.Font = new DevExpress.Drawing.DXFont("tahoma", 12F); + this.xrLabel24.LocationFloat = new DevExpress.Utils.PointFloat(0F, 28.3611F); + this.xrLabel24.Multiline = true; + this.xrLabel24.Name = "xrLabel24"; + this.xrLabel24.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F); + this.xrLabel24.SizeF = new System.Drawing.SizeF(431.5833F, 104.5556F); + this.xrLabel24.StylePriority.UseBackColor = false; + this.xrLabel24.StylePriority.UseBorders = false; + this.xrLabel24.StylePriority.UseFont = false; + this.xrLabel24.StylePriority.UsePadding = false; + this.xrLabel24.StylePriority.UseTextAlignment = false; + this.xrLabel24.Text = "yayatoo | Otto-Lilienthalstr. 4 | 88046 Friedrichshafen\r\nTel: 07541 599 6295\r\nEma" + + "il: info@yayatoo.de"; + this.xrLabel24.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; + // + // bottomMarginBand1 + // + this.bottomMarginBand1.HeightF = 50F; + this.bottomMarginBand1.Name = "bottomMarginBand1"; + // + // Page1 + // + this.Page1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] { + this.xrTable5, + this.lblRechnungstext, + this.lblAdresse, + this.xrLabel2, + this.xrLabel8, + this.lblAbrechnungszeitraum}); + this.Page1.Font = new DevExpress.Drawing.DXFont("Verdana", 10F); + this.Page1.HeightF = 407.4167F; + this.Page1.Name = "Page1"; + this.Page1.StylePriority.UseFont = false; + // + // lblAdresse + // + this.lblAdresse.Font = new DevExpress.Drawing.DXFont("Calibri", 12F); + 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[RecipientContactPerson]\r\n[RecipientDivision]\r\n[Recipien" + + "tStreet]\r\n[RecipientPostCodeAndTown]"; + // + // xrLabel2 + // + this.xrLabel2.BackColor = System.Drawing.Color.Transparent; + this.xrLabel2.CanShrink = true; + this.xrLabel2.Font = new DevExpress.Drawing.DXFont("Calibri", 12F, DevExpress.Drawing.DXFontStyle.Bold); + this.xrLabel2.LocationFloat = new DevExpress.Utils.PointFloat(0F, 229.375F); + 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 = "Sammelrechnung Erstgespräche Nr. [InvoiceNumber]"; + this.xrLabel2.WordWrap = false; + // + // xrLabel8 + // + this.xrLabel8.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { + new DevExpress.XtraReports.UI.XRBinding("Text", null, "InvoiceDate")}); + this.xrLabel8.Font = new DevExpress.Drawing.DXFont("Calibri", 12F); + this.xrLabel8.LocationFloat = new DevExpress.Utils.PointFloat(362.5F, 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.UseFont = false; + this.xrLabel8.StylePriority.UseTextAlignment = false; + this.xrLabel8.Text = "xrLabel8"; + this.xrLabel8.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight; + this.xrLabel8.TextFormatString = "Friedrichshafen, den {0:d. MMMM yyyy}"; + // + // lblAbrechnungszeitraum + // + this.lblAbrechnungszeitraum.Font = new DevExpress.Drawing.DXFont("Calibri", 12F); + this.lblAbrechnungszeitraum.LocationFloat = new DevExpress.Utils.PointFloat(0F, 310F); + 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, 44.08334F); + this.lblAbrechnungszeitraum.StylePriority.UseFont = false; + this.lblAbrechnungszeitraum.Text = "Für den Zeitraum vom [AccountingPeriodStart!dd.MM.yyyy] bis zum [AccountingPeriod" + + "End!dd.MM.yyyy] berechne ich Ihnen folgende heilpädagogische Leistungen für die " + + "Erstgespräche."; + // + // 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.HeightF = 0F; + this.Detail1.Name = "Detail1"; + // + // DetailReport2 + // + this.DetailReport2.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] { + this.Detail3}); + this.DetailReport2.DataMember = "ServiceInvoicePeriods.ServiceInvoiceItems"; + this.DetailReport2.DataSource = this.bindingSource1; + this.DetailReport2.Level = 0; + this.DetailReport2.Name = "DetailReport2"; + this.DetailReport2.AfterPrint += new System.EventHandler(this.ChangeName); + // + // 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(677.0001F, 25F); + this.xrTable6.StylePriority.UseFont = false; + // + // xrTableRow25 + // + this.xrTableRow25.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] { + this.xrTableCell42, + this.xrTableCell43, + this.xrTableCell44, + this.xrTableCell47}); + this.xrTableRow25.Name = "xrTableRow25"; + this.xrTableRow25.Weight = 1D; + // + // xrTableCell42 + // + this.xrTableCell42.BorderColor = System.Drawing.Color.DarkGray; + this.xrTableCell42.Borders = DevExpress.XtraPrinting.BorderSide.None; + this.xrTableCell42.Font = new DevExpress.Drawing.DXFont("Verdana", 10F); + this.xrTableCell42.Name = "xrTableCell42"; + this.xrTableCell42.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 2, 2, 100F); + this.xrTableCell42.StylePriority.UseBorderColor = false; + this.xrTableCell42.StylePriority.UseBorders = false; + this.xrTableCell42.StylePriority.UseFont = false; + this.xrTableCell42.StylePriority.UsePadding = false; + this.xrTableCell42.StylePriority.UseTextAlignment = false; + this.xrTableCell42.Text = "[ServiceInvoicePeriods.Customer.LastNameFirstName], geb. [ServiceInvoicePeriods.C" + + "ustomer.DateOfBirth!dd.MM.yyyy]"; + this.xrTableCell42.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; + this.xrTableCell42.Weight = 1.0092620846403377D; + // + // xrTableCell43 + // + this.xrTableCell43.BorderColor = System.Drawing.Color.DarkGray; + this.xrTableCell43.Borders = DevExpress.XtraPrinting.BorderSide.None; + this.xrTableCell43.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { + new DevExpress.XtraReports.UI.XRBinding("Text", null, "ServiceInvoicePeriods.ServiceInvoiceItems.Hours")}); + this.xrTableCell43.Font = new DevExpress.Drawing.DXFont("Verdana", 10F); + this.xrTableCell43.Name = "xrTableCell43"; + this.xrTableCell43.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 2, 2, 100F); + this.xrTableCell43.StylePriority.UseBorderColor = false; + this.xrTableCell43.StylePriority.UseBorders = false; + this.xrTableCell43.StylePriority.UseFont = false; + this.xrTableCell43.StylePriority.UsePadding = false; + this.xrTableCell43.StylePriority.UseTextAlignment = false; + this.xrTableCell43.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight; + this.xrTableCell43.TextFormatString = "{0:0.##}"; + this.xrTableCell43.Weight = 0.21897435287973505D; + // + // xrTableCell44 + // + this.xrTableCell44.BorderColor = System.Drawing.Color.DarkGray; + this.xrTableCell44.Borders = DevExpress.XtraPrinting.BorderSide.None; + this.xrTableCell44.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { + new DevExpress.XtraReports.UI.XRBinding("Text", null, "ServiceInvoicePeriods.ServiceInvoiceItems.HourlyRate")}); + this.xrTableCell44.Font = new DevExpress.Drawing.DXFont("Verdana", 10F); + this.xrTableCell44.Name = "xrTableCell44"; + this.xrTableCell44.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 2, 2, 100F); + this.xrTableCell44.StylePriority.UseBorderColor = false; + this.xrTableCell44.StylePriority.UseBorders = false; + this.xrTableCell44.StylePriority.UseFont = false; + this.xrTableCell44.StylePriority.UsePadding = false; + this.xrTableCell44.StylePriority.UseTextAlignment = false; + this.xrTableCell44.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight; + this.xrTableCell44.TextFormatString = "{0:0.00}"; + this.xrTableCell44.Weight = 0.32304042308628289D; + // + // xrTableCell47 + // + this.xrTableCell47.BorderColor = System.Drawing.Color.DarkGray; + this.xrTableCell47.Borders = DevExpress.XtraPrinting.BorderSide.None; + 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.MiddleRight; + this.xrTableCell47.Weight = 0.63978025562616325D; + // + // lblRechnungstext + // + this.lblRechnungstext.BackColor = System.Drawing.Color.Transparent; + this.lblRechnungstext.CanShrink = true; + this.lblRechnungstext.Font = new DevExpress.Drawing.DXFont("Calibri", 8F); + this.lblRechnungstext.LocationFloat = new DevExpress.Utils.PointFloat(425F, 249.375F); + this.lblRechnungstext.Multiline = true; + this.lblRechnungstext.Name = "lblRechnungstext"; + this.lblRechnungstext.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); + this.lblRechnungstext.SizeF = new System.Drawing.SizeF(225F, 20F); + this.lblRechnungstext.StylePriority.UseBackColor = false; + this.lblRechnungstext.StylePriority.UseFont = false; + this.lblRechnungstext.Text = "[InvoiceDate]_[InvoiceNumber]_Erstgespräche"; + this.lblRechnungstext.Visible = false; + this.lblRechnungstext.WordWrap = false; + // + // xrTable5 + // + this.xrTable5.LocationFloat = new DevExpress.Utils.PointFloat(0F, 382.4167F); + this.xrTable5.Name = "xrTable5"; + this.xrTable5.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] { + this.xrTableRow23}); + this.xrTable5.SizeF = new System.Drawing.SizeF(676.8331F, 25F); + // + // xrTableRow23 + // + this.xrTableRow23.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] { + this.xrTableCell37, + this.xrTableCell35, + this.xrTableCell33, + this.xrTableCell34}); + this.xrTableRow23.Name = "xrTableRow23"; + this.xrTableRow23.Weight = 1D; + // + // xrTableCell37 + // + this.xrTableCell37.BackColor = System.Drawing.Color.Transparent; + this.xrTableCell37.BorderColor = System.Drawing.Color.Black; + this.xrTableCell37.Borders = DevExpress.XtraPrinting.BorderSide.Bottom; + this.xrTableCell37.Name = "xrTableCell37"; + this.xrTableCell37.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 2, 2, 100F); + this.xrTableCell37.StylePriority.UseBackColor = false; + this.xrTableCell37.StylePriority.UseBorderColor = false; + this.xrTableCell37.StylePriority.UseBorders = false; + this.xrTableCell37.StylePriority.UsePadding = false; + this.xrTableCell37.StylePriority.UseTextAlignment = false; + this.xrTableCell37.Text = "Name des Kindes"; + this.xrTableCell37.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; + this.xrTableCell37.Weight = 1.0092621277023515D; + // + // xrTableCell35 + // + this.xrTableCell35.BackColor = System.Drawing.Color.Transparent; + this.xrTableCell35.BorderColor = System.Drawing.Color.Black; + this.xrTableCell35.Borders = DevExpress.XtraPrinting.BorderSide.Bottom; + this.xrTableCell35.Name = "xrTableCell35"; + this.xrTableCell35.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 2, 2, 100F); + this.xrTableCell35.StylePriority.UseBackColor = false; + this.xrTableCell35.StylePriority.UseBorderColor = false; + this.xrTableCell35.StylePriority.UseBorders = false; + this.xrTableCell35.StylePriority.UsePadding = false; + this.xrTableCell35.StylePriority.UseTextAlignment = false; + this.xrTableCell35.Text = "Menge"; + this.xrTableCell35.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight; + this.xrTableCell35.Weight = 0.21897437545853085D; + // + // xrTableCell33 + // + this.xrTableCell33.BackColor = System.Drawing.Color.Transparent; + this.xrTableCell33.BorderColor = System.Drawing.Color.Black; + this.xrTableCell33.Borders = DevExpress.XtraPrinting.BorderSide.Bottom; + this.xrTableCell33.Name = "xrTableCell33"; + this.xrTableCell33.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 2, 2, 100F); + this.xrTableCell33.StylePriority.UseBackColor = false; + this.xrTableCell33.StylePriority.UseBorderColor = false; + this.xrTableCell33.StylePriority.UseBorders = false; + this.xrTableCell33.StylePriority.UsePadding = false; + this.xrTableCell33.StylePriority.UseTextAlignment = false; + this.xrTableCell33.Text = "Preis"; + this.xrTableCell33.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight; + this.xrTableCell33.Weight = 0.32304050244890559D; + // + // xrTableCell34 + // + this.xrTableCell34.BackColor = System.Drawing.Color.Transparent; + this.xrTableCell34.BorderColor = System.Drawing.Color.Black; + this.xrTableCell34.Borders = DevExpress.XtraPrinting.BorderSide.Bottom; + 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.UsePadding = false; + this.xrTableCell34.StylePriority.UseTextAlignment = false; + this.xrTableCell34.Text = "Gesamt"; + this.xrTableCell34.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight; + this.xrTableCell34.Weight = 0.63923999693139366D; + // + // ReportFooter + // + this.ReportFooter.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] { + this.xrLabel4, + this.xrLabel6, + this.xrTable2, + this.xrTable3, + this.xrLabel7, + this.xrRichText2, + this.xrLabel9, + this.xrLabel10}); + this.ReportFooter.HeightF = 381.7499F; + this.ReportFooter.Name = "ReportFooter"; + // + // xrLabel4 + // + this.xrLabel4.Font = new DevExpress.Drawing.DXFont("Calibri", 12F); + this.xrLabel4.LocationFloat = new DevExpress.Utils.PointFloat(0F, 90.625F); + 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(642F, 73.9583F); + this.xrLabel4.StylePriority.UseFont = false; + this.xrLabel4.Text = "Zahlbar nach Erhalt der Rechnung.\r\n\r\nIch bedanke mich für das Vertrauen und freue" + + " mich auf die weitere Zusammenarbeit."; + // + // xrLabel6 + // + this.xrLabel6.Font = new DevExpress.Drawing.DXFont("Calibri", 12F); + this.xrLabel6.LocationFloat = new DevExpress.Utils.PointFloat(0F, 178.125F); + this.xrLabel6.Name = "xrLabel6"; + this.xrLabel6.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); + this.xrLabel6.SizeF = new System.Drawing.SizeF(225F, 17F); + this.xrLabel6.StylePriority.UseFont = false; + this.xrLabel6.Text = "Lyvie Kupfer"; + // + // xrTable2 + // + this.xrTable2.Font = new DevExpress.Drawing.DXFont("Verdana", 10F); + this.xrTable2.LocationFloat = new DevExpress.Utils.PointFloat(0F, 43.75F); + this.xrTable2.Name = "xrTable2"; + this.xrTable2.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] { + this.xrTableRow2, + this.xrTableRow3}); + this.xrTable2.SizeF = new System.Drawing.SizeF(650F, 26F); + this.xrTable2.StylePriority.UseFont = false; + // + // xrTableRow2 + // + this.xrTableRow2.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] { + this.xrTableCell2}); + this.xrTableRow2.Name = "xrTableRow2"; + this.xrTableRow2.Weight = 0.38095238095238093D; + // + // xrTableCell2 + // + this.xrTableCell2.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { + new DevExpress.XtraReports.UI.XRBinding("Text", null, "Notice")}); + this.xrTableCell2.Font = new DevExpress.Drawing.DXFont("Calibri", 12F); + this.xrTableCell2.Name = "xrTableCell2"; + this.xrTableCell2.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); + this.xrTableCell2.StylePriority.UseFont = false; + this.xrTableCell2.StylePriority.UsePadding = false; + this.xrTableCell2.Text = "xrTableCell1"; + this.xrTableCell2.Weight = 3D; + // + // xrTableRow3 + // + this.xrTableRow3.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] { + this.xrTableCell3}); + this.xrTableRow3.Name = "xrTableRow3"; + this.xrTableRow3.Weight = 0.23809523809523808D; + // + // xrTableCell3 + // + this.xrTableCell3.Name = "xrTableCell3"; + this.xrTableCell3.Weight = 3D; + // + // xrTable3 + // + this.xrTable3.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F); + this.xrTable3.Name = "xrTable3"; + this.xrTable3.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] { + this.xrTableRow4}); + this.xrTable3.SizeF = new System.Drawing.SizeF(676.833F, 25F); + // + // xrTableRow4 + // + this.xrTableRow4.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] { + this.xrTableCell5, + this.xrTableCell6}); + this.xrTableRow4.Name = "xrTableRow4"; + this.xrTableRow4.Weight = 1D; + // + // xrTableCell5 + // + this.xrTableCell5.BackColor = System.Drawing.Color.Gainsboro; + this.xrTableCell5.BorderColor = System.Drawing.Color.DarkGray; + this.xrTableCell5.Borders = DevExpress.XtraPrinting.BorderSide.None; + this.xrTableCell5.Name = "xrTableCell5"; + this.xrTableCell5.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 2, 2, 100F); + this.xrTableCell5.StylePriority.UseBackColor = false; + this.xrTableCell5.StylePriority.UseBorderColor = false; + this.xrTableCell5.StylePriority.UseBorders = false; + this.xrTableCell5.StylePriority.UsePadding = false; + this.xrTableCell5.StylePriority.UseTextAlignment = false; + this.xrTableCell5.Text = "Insgesamt"; + this.xrTableCell5.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; + this.xrTableCell5.Weight = 1.5512768424810401D; + // + // xrTableCell6 + // + this.xrTableCell6.BackColor = System.Drawing.Color.Gainsboro; + this.xrTableCell6.BorderColor = System.Drawing.Color.DarkGray; + this.xrTableCell6.Borders = DevExpress.XtraPrinting.BorderSide.None; + this.xrTableCell6.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { + new DevExpress.XtraReports.UI.XRBinding("Text", null, "GrossClaim")}); + this.xrTableCell6.Name = "xrTableCell6"; + this.xrTableCell6.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 2, 2, 100F); + this.xrTableCell6.StylePriority.UseBackColor = false; + this.xrTableCell6.StylePriority.UseBorderColor = false; + this.xrTableCell6.StylePriority.UseBorders = false; + this.xrTableCell6.StylePriority.UsePadding = false; + this.xrTableCell6.StylePriority.UseTextAlignment = false; + this.xrTableCell6.Text = "Gesamt"; + this.xrTableCell6.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight; + this.xrTableCell6.Weight = 0.63923996534830252D; + // + // xrLabel7 + // + this.xrLabel7.Font = new DevExpress.Drawing.DXFont("Calibri", 12F); + this.xrLabel7.LocationFloat = new DevExpress.Utils.PointFloat(0F, 245.4166F); + this.xrLabel7.Name = "xrLabel7"; + this.xrLabel7.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); + this.xrLabel7.SizeF = new System.Drawing.SizeF(225F, 17F); + this.xrLabel7.StylePriority.UseFont = false; + this.xrLabel7.Text = "Beiliegend:"; + // + // xrRichText2 + // + this.xrRichText2.Font = new DevExpress.Drawing.DXFont("Calibri", 12F); + this.xrRichText2.LocationFloat = new DevExpress.Utils.PointFloat(0F, 280.0416F); + this.xrRichText2.Name = "xrRichText2"; + this.xrRichText2.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); + this.xrRichText2.SerializableRtfString = resources.GetString("xrRichText2.SerializableRtfString"); + this.xrRichText2.SizeF = new System.Drawing.SizeF(225F, 23F); + this.xrRichText2.StylePriority.UseFont = false; + // + // xrLabel9 + // + this.xrLabel9.Font = new DevExpress.Drawing.DXFont("Calibri", 12F); + this.xrLabel9.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(31)))), ((int)(((byte)(73)))), ((int)(((byte)(125))))); + this.xrLabel9.LocationFloat = new DevExpress.Utils.PointFloat(0F, 328.3333F); + this.xrLabel9.Name = "xrLabel9"; + this.xrLabel9.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); + this.xrLabel9.SizeF = new System.Drawing.SizeF(468.75F, 17F); + this.xrLabel9.StylePriority.UseFont = false; + this.xrLabel9.StylePriority.UseForeColor = false; + this.xrLabel9.Text = "Diese Rechnung ist gem. § 4 Abs. 14 a UStG umsatzsteuerbefreit."; + // + // xrLabel10 + // + this.xrLabel10.Font = new DevExpress.Drawing.DXFont("calibri", 12F, ((DevExpress.Drawing.DXFontStyle)((DevExpress.Drawing.DXFontStyle.Bold | DevExpress.Drawing.DXFontStyle.Italic)))); + this.xrLabel10.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(129)))), ((int)(((byte)(129)))), ((int)(((byte)(129))))); + this.xrLabel10.LocationFloat = new DevExpress.Utils.PointFloat(0F, 364.7499F); + this.xrLabel10.Name = "xrLabel10"; + this.xrLabel10.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); + this.xrLabel10.SizeF = new System.Drawing.SizeF(676.8331F, 17F); + this.xrLabel10.StylePriority.UseFont = false; + this.xrLabel10.StylePriority.UseForeColor = false; + this.xrLabel10.Text = "Yayatoo, Praxis für Heilpädagogik und systemische Beratung Iban: DE89 6905 0001 0" + + "026 6450 10"; + // + // bindingSource1 + // + this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.ServiceInvoiceRO); + // + // Sammelrechnung + // + this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] { + this.Detail, + this.ReportHeader, + this.topMarginBand1, + this.bottomMarginBand1, + this.Page1, + this.DetailReport, + this.ReportFooter}); + 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(75F, 75F, 157.5F, 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.xrTable6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.xrTable5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.xrTable2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.xrTable3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.xrRichText2)).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 xrLabel2; + private DevExpress.XtraReports.UI.XRLabel xrLabel8; + private DevExpress.XtraReports.UI.XRLabel lblAbrechnungszeitraum; + private DevExpress.XtraReports.UI.DetailReportBand DetailReport; + private DevExpress.XtraReports.UI.DetailBand Detail1; + 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 xrTableCell42; + private DevExpress.XtraReports.UI.XRTableCell xrTableCell43; + private DevExpress.XtraReports.UI.XRTableCell xrTableCell44; + private DevExpress.XtraReports.UI.XRTableCell xrTableCell47; + private DevExpress.XtraReports.UI.XRLabel lblAdresse; + private DevExpress.XtraReports.UI.XRLabel xrLabel24; + private DevExpress.XtraReports.UI.XRLabel lblRechnungstext; + private DevExpress.XtraReports.UI.XRTable xrTable5; + private DevExpress.XtraReports.UI.XRTableRow xrTableRow23; + private DevExpress.XtraReports.UI.XRTableCell xrTableCell37; + private DevExpress.XtraReports.UI.XRTableCell xrTableCell35; + private DevExpress.XtraReports.UI.XRTableCell xrTableCell33; + private DevExpress.XtraReports.UI.XRTableCell xrTableCell34; + private DevExpress.XtraReports.UI.ReportFooterBand ReportFooter; + private DevExpress.XtraReports.UI.XRLabel xrLabel4; + private DevExpress.XtraReports.UI.XRLabel xrLabel6; + private DevExpress.XtraReports.UI.XRTable xrTable2; + private DevExpress.XtraReports.UI.XRTableRow xrTableRow2; + private DevExpress.XtraReports.UI.XRTableCell xrTableCell2; + private DevExpress.XtraReports.UI.XRTableRow xrTableRow3; + private DevExpress.XtraReports.UI.XRTableCell xrTableCell3; + private DevExpress.XtraReports.UI.XRTable xrTable3; + private DevExpress.XtraReports.UI.XRTableRow xrTableRow4; + private DevExpress.XtraReports.UI.XRTableCell xrTableCell5; + private DevExpress.XtraReports.UI.XRTableCell xrTableCell6; + private DevExpress.XtraReports.UI.XRLabel xrLabel7; + private DevExpress.XtraReports.UI.XRRichText xrRichText2; + private DevExpress.XtraReports.UI.XRLabel xrLabel9; + private DevExpress.XtraReports.UI.XRLabel xrLabel10; + } +} diff --git a/ReportImp/LyvieKupfer/CollectiveBillingReport.cs b/ReportImp/LyvieKupfer/CollectiveBillingReport.cs new file mode 100644 index 000000000..dcbce79f2 --- /dev/null +++ b/ReportImp/LyvieKupfer/CollectiveBillingReport.cs @@ -0,0 +1,91 @@ +using System; +using System.Text; +using BeWo.Report; +using BeWo.Report.ReportObjects; +using BS.Shared.Core; +using DevExpress.XtraReports.UI; + +namespace LyvieKupfer +{ + [IDSpecificClass(Identifier = "Sammelrechnung")] + public partial class Sammelrechnung : XtraReport, IBeWoReport + { + public Sammelrechnung() + { + this.InitializeComponent(); + } + + // Für die Erstgespräche legt sie einen komplett leeren Hilfeplan an und kann die Beratung ganz separat irgendwelcher Bewilligungen abrechnen + // Also alle Hilfen mit Bewilligungsdaten etc entfernt + public void SetReportDataSource(ServiceInvoiceRO pRO) + { + DateTime start = pRO.AccountingPeriodStart; + DateTime end = pRO.AccountingPeriodEnd; + decimal hours = 0; + + if (pRO.ServiceInvoicePeriods != null) + { + foreach (var sip in pRO.ServiceInvoicePeriods) + { + if (sip.ServiceInvoiceItems != null) + { + foreach (var ii in sip.ServiceInvoiceItems) + { + hours += ii.Hours.Value; + } + } + } + } + + lblAbrechnungszeitraum.Text = String.Format("Für den Zeitraum vom {0:d. MMMM yyyy} bis zum {1:dd. MMMM yyyy} berechne ich Ihnen {2:0.##} Stunden " + + "heilpädagogische Leistungen für die Erstgespräche.", start, end, hours); + + SetzeAdresse(pRO); + + this.bindingSource1.DataSource = pRO; + } + + private void SetzeAdresse(ServiceInvoiceRO pRO) + { + StringBuilder sb = new StringBuilder(); + if (!String.IsNullOrEmpty(pRO.RecipientOrganisation) && pRO.RecipientOrganisation.ToLower() != "selbstzahler") + { + if (pRO.RecipientOrganisation.Contains("Erstkontakt Landratsamt")) + { + pRO.RecipientOrganisation = "Landratsamt Bodenseekreis"; + } + sb.AppendLine(pRO.RecipientOrganisation); + } + //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(); + } + + private void ChangeName(object sender, EventArgs e) + { + PrintingSystem.Document.Name = String.Format("{0}", lblRechnungstext.Text); + } + } +} \ No newline at end of file diff --git a/ReportImp/LyvieKupfer/CollectiveBillingReport.resx b/ReportImp/LyvieKupfer/CollectiveBillingReport.resx new file mode 100644 index 000000000..2d6364fb2 --- /dev/null +++ b/ReportImp/LyvieKupfer/CollectiveBillingReport.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + ewBcAHIAdABmADEAXABkAGUAZgBmADAAewBcAGYAbwBuAHQAdABiAGwAewBcAGYAMAAgAEMAYQBsAGkAYgByAGkAOwB9AHsAXABmADEAIABUAGkAbQBlAHMAIABOAGUAdwAgAFIAbwBtAGEAbgA7AH0AfQB7AFwAYwBvAGwAbwByAHQAYgBsACAAOwBcAHIAZQBkADAAXABnAHIAZQBlAG4AMABcAGIAbAB1AGUAMAAgADsAXAByAGUAZAAwAFwAZwByAGUAZQBuADAAXABiAGwAdQBlADIANQA1ACAAOwB9AHsAXAAqAFwAZABlAGYAYwBoAHAAIABcAGYAMQBcAGYAcwAyADQAfQB7AFwAKgBcAGQAZQBmAHAAYQBwACAAXAB3AGkAZABjAHQAbABwAGEAcgB9AHsAXABzAHQAeQBsAGUAcwBoAGUAZQB0ACAAewBcAHEAbABcAGYAMQBcAGYAcwAyADQAIABOAG8AcgBtAGEAbAA7AH0AewBcACoAXABjAHMAMQBcAGYAMQBcAGYAcwAyADQAXABjAGYAMQAgAEQAZQBmAGEAdQBsAHQAIABQAGEAcgBhAGcAcgBhAHAAaAAgAEYAbwBuAHQAOwB9AHsAXAAqAFwAYwBzADIAXABzAGIAYQBzAGUAZABvAG4AMQBcAGYAMQBcAGYAcwAyADQAXABjAGYAMQAgAEwAaQBuAGUAIABOAHUAbQBiAGUAcgA7AH0AewBcACoAXABjAHMAMwBcAGYAMQBcAGYAcwAyADQAXAB1AGwAXABjAGYAMgAgAEgAeQBwAGUAcgBsAGkAbgBrADsAfQB7AFwAKgBcAHQAcwA0AFwAdABzAHIAbwB3AGQAXABmADEAXABmAHMAMgA0AFwAcQBsAFwAdABzAGMAZQBsAGwAcABhAGQAZABmAGwAMwBcAHQAcwBjAGUAbABsAHAAYQBkAGQAbAAxADAAOABcAHQAcwBjAGUAbABsAHAAYQBkAGQAZgBiADMAXAB0AHMAYwBlAGwAbABwAGEAZABkAGYAcgAzAFwAdABzAGMAZQBsAGwAcABhAGQAZAByADEAMAA4AFwAdABzAGMAZQBsAGwAcABhAGQAZABmAHQAMwBcAHQAcwB2AGUAcgB0AGEAbAB0AFwAYwBsAHQAeABsAHIAdABiACAATgBvAHIAbQBhAGwAIABUAGEAYgBsAGUAOwB9AHsAXAAqAFwAdABzADUAXAB0AHMAcgBvAHcAZABcAHMAYgBhAHMAZQBkAG8AbgA0AFwAZgAxAFwAZgBzADIANABcAHEAbABcAHQAcgBiAHIAZAByAHQAXABiAHIAZAByAHMAXABiAHIAZAByAHcAMQAwAFwAdAByAGIAcgBkAHIAbABcAGIAcgBkAHIAcwBcAGIAcgBkAHIAdwAxADAAXAB0AHIAYgByAGQAcgBiAFwAYgByAGQAcgBzAFwAYgByAGQAcgB3ADEAMABcAHQAcgBiAHIAZAByAHIAXABiAHIAZAByAHMAXABiAHIAZAByAHcAMQAwAFwAdAByAGIAcgBkAHIAaABcAGIAcgBkAHIAcwBcAGIAcgBkAHIAdwAxADAAXAB0AHIAYgByAGQAcgB2AFwAYgByAGQAcgBzAFwAYgByAGQAcgB3ADEAMABcAHQAcwBjAGUAbABsAHAAYQBkAGQAZgBsADMAXAB0AHMAYwBlAGwAbABwAGEAZABkAGwAMQAwADgAXAB0AHMAYwBlAGwAbABwAGEAZABkAGYAcgAzAFwAdABzAGMAZQBsAGwAcABhAGQAZAByADEAMAA4AFwAdABzAHYAZQByAHQAYQBsAHQAXABjAGwAdAB4AGwAcgB0AGIAIABUAGEAYgBsAGUAIABTAGkAbQBwAGwAZQAgADEAOwB9AH0AewBcACoAXABsAGkAcwB0AG8AdgBlAHIAcgBpAGQAZQB0AGEAYgBsAGUAfQBcAG4AbwB1AGkAYwBvAG0AcABhAHQAXABoAHQAbQBhAHUAdABzAHAAXABzAHAAbAB5AHQAdwBuAGkAbgBlAFwAYQBsAG4AdABiAGwAaQBuAGQAXABlAHgAcABzAGgAcgB0AG4AXABzAHAAbAB0AHAAZwBwAGEAcgBcAG4AbwBnAHIAbwB3AGEAdQB0AG8AZgBpAHQAXAB1AHQAaQBuAGwAXABuAG8AYgByAGsAdwByAHAAdABiAGwAXABmAHQAbgBsAHkAdAB3AG4AaQBuAGUAXABuAG8AdABjAHYAYQBzAHAAXABkAG4AdABiAGwAbgBzAGIAZABiAFwAbgBlAHcAdABiAGwAcwB0AHkAcgB1AGwAcwBcAGYAbwByAG0AcwBoAGEAZABlAFwAcABhAHIAZABcAHAAbABhAGkAbgBcAHEAbABcAHcAaQBkAGMAdABsAHAAYQByAHsAXABmAHMAMgA0AFwAYwBmADEAIABcAHUAOAAyADIANgBcACcAOQA1ACAAXAB0AGEAYgAgAH0AewBcAGYAcwAyADQAXABsAGEAbgBnADEAMAAzADEAXABsAGEAbgBnAGYAZQAxADAAMwAxAFwAYwBmADEAIABFAHIAawBsAFwAdQAyADIAOABcACcAZQA0AHIAdQBuAGcAZQBuAH0AXABmAHMAMgA0AFwAYwBmADEAXABwAGEAcgB9AA== + + \ No newline at end of file diff --git a/ReportImp/LyvieKupfer/Invoicing/CollectiveInvoiceCreation.cs b/ReportImp/LyvieKupfer/Invoicing/CollectiveInvoiceCreation.cs new file mode 100644 index 000000000..56b54fb3e --- /dev/null +++ b/ReportImp/LyvieKupfer/Invoicing/CollectiveInvoiceCreation.cs @@ -0,0 +1,113 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using BeWo.Data.Access; +using BeWo.Data.Entities; +using BeWo.Report.ReportObjects; +using BeWo.Service.DCEntityMapper; +using BeWo.Service.Invoicing; +using BeWo.Service.Plugins; +using BS.Shared; +using BS.Shared.Core; +using BS.Shared.DataContracts; +using BS.Shared.DataContracts.Compact; +using BS.Shared.Extensions; +using BS.Shared.Services; + +namespace LyvieKupfer.Invoicing +{ + public class CollectiveInvoiceCreation : InvoiceCreation + { + // Für die Erstgespräche legt sie einen komplett leeren Hilfeplan an und kann die Beratung ganz separat irgendwelcher Bewilligungen abrechnen + // Also alle Hilfen mit Bewilligungsdaten etc entfernt + public override void SetInvoiceId(ServiceInvoice invoice) + { + invoice.InvoiceBase.InvoiceId = "Sammelrechnung"; + invoice.InvoiceBase.InvoiceTypeText = "Sammelrechnung"; + } + + public override ServiceInvoice CreateCollectiveBilling(CostBearer costBearer, DateTimeSpan invoicePeriod, Dictionary> supportConcepts2ServiceRecords) + { + var invoice = new ServiceInvoice(); + var newDict = new Dictionary>(); + + foreach (var sc2sr in supportConcepts2ServiceRecords) + { + if (!sc2sr.Key.IsDeleted || !sc2sr.Key.IsArchived) // alle unbewilligten HPs + { + newDict.Add(sc2sr.Key, sc2sr.Value); + } + } + + SetRecipientInformation(invoice, costBearer); + SetSenderInformation(invoice); + SetInvoiceBaseData(0, invoice, costBearer, invoicePeriod, newDict.Keys.ToList()); + SetCollectiveBillingBaseData(0, invoice, costBearer, invoicePeriod, newDict); + SetCollectiveBillingServiceInvoicePeriods(invoice, invoicePeriod, newDict); + SetServiceInvoicePeriodAmounts(invoice); + + // Spitzabrechnung + if (invoicePeriod == null) + { + SetAmountAdvancePayments(invoice); + } + return invoice; + } + + public override void SetServiceInvoicePeriods(ServiceInvoice invoice, CostBearer2SupportConcept costBearer2SupportConcept, DateTimeSpan invoicePeriod, List serviceRecords) + { + var invoiceAccountingPeriodSpan = new DateTimeSpan + { + StartDateTime = invoice.InvoiceBase.AccountingPeriodStart.Value, + EndDateTime = invoice.InvoiceBase.AccountingPeriodEnd.Value + }; + + foreach (SupportConceptApprovalPeriod iPeriod in costBearer2SupportConcept.ApprovalPeriodList) + { + SupportConceptApprovalPeriodDC approvalPeriodDC = MapperFactory.SupportConceptApprovalPeriodDC_SupportConceptApprovalPeriod.MapToNewDC(iPeriod); + //if (approvalPeriodDC.Span.EndDateTime < invoiceAccountingPeriodSpan.StartDateTime || approvalPeriodDC.Span.StartDateTime > invoiceAccountingPeriodSpan.EndDate) + //{ + // continue; + //} + + ServiceInvoicePeriod serviceInvoicePeriod = CreateServiceInvoicePeriod(approvalPeriodDC, invoiceAccountingPeriodSpan); + serviceInvoicePeriod.SupportConceptApprovalPeriod = iPeriod; + serviceInvoicePeriod.Customer = costBearer2SupportConcept.SupportConcept.Customer; + + CostBearer costBearer = costBearer2SupportConcept.CostBearer; + List costRates = MapperFactory.CostRatePeriodDC_CostRatePeriod.MapToNewDCs(costBearer.CostRatePeriods); + + CostRatePeriodDC serviceUnit = costRates.GetCostRatePeriodForDate(CostRatePeriodType.MinutesPerServiceUnit, DateTime.Now); + serviceInvoicePeriod.ServiceUnitName = serviceUnit.UnitName; + + Calculations calc = PluginLoader.FindClass(_SpecificID) ?? Calculations.GetInstance(_SpecificID); + + decimal amountPerUnit; + decimal unitCount; + + serviceInvoicePeriod.ApprovedFixedAmount = calc.GetApprovedFixedAmountForPeriod(approvalPeriodDC, serviceInvoicePeriod.Start.Value, serviceInvoicePeriod.End.Value, out amountPerUnit, out unitCount); + + //if (!serviceInvoicePeriod.ApprovedFixedAmount.HasValue) + //{ + // serviceInvoicePeriod.ApprovedHours = calc.GetApprovedHoursForPeriod(approvalPeriodDC, + // costRates, + // serviceInvoicePeriod.Start.Value, + // serviceInvoicePeriod.End.Value); + // if (serviceInvoicePeriod.ApprovedHours.HasValue) + // serviceInvoicePeriod.ApprovedBE = serviceUnit.GetHoursInBE(serviceInvoicePeriod.ApprovedHours.Value); + + // serviceInvoicePeriod.ApprovedAmountDefaultHourlyRate = calc.GetApprovedAmountDefaultHourlyRateForPeriod(approvalPeriodDC, + // costRates, + // serviceInvoicePeriod.Start, + // serviceInvoicePeriod.End); + //} + SetInvoiceItems(invoice, serviceInvoicePeriod, approvalPeriodDC, costBearer2SupportConcept, invoicePeriod, serviceRecords); + + //CheckMaxApprovedAmount(invoice, serviceInvoicePeriod, approvalPeriodDC, costBearer2SupportConcept, invoicePeriod, serviceRecords); + + if (serviceInvoicePeriod.InvoiceItemList.Count > 0) + invoice.ServiceInvoicePeriodList.Add(serviceInvoicePeriod); + } + } + } +} diff --git a/ReportImp/LyvieKupfer/Invoicing/CustomInvoiceFactory.cs b/ReportImp/LyvieKupfer/Invoicing/CustomInvoiceFactory.cs new file mode 100644 index 000000000..594ad83ae --- /dev/null +++ b/ReportImp/LyvieKupfer/Invoicing/CustomInvoiceFactory.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using BeWo.Service.Invoicing; +using BS.Shared.DataContracts; +using BS.Shared.DataContracts.Compact; + +namespace LyvieKupfer.Invoicing +{ + public class CustomInvoiceFactory : InvoiceFactory + { + public override InvoiceCreation CreateInvoiceCreator(string specificId, string tenant, Dictionary> supportConcepts2ServiceRecords) + { + foreach (var key in supportConcepts2ServiceRecords.Keys) + { + if (!String.IsNullOrEmpty(key.CostBearer) && key.CostBearer.Contains("Erstkontakt")) + { + return new CollectiveInvoiceCreation(); + } + } + return new InvoiceCreation(); + } + } +} diff --git a/ReportImp/LyvieKupfer/LyvieKupfer.csproj b/ReportImp/LyvieKupfer/LyvieKupfer.csproj index d9c09cb60..a5ab8481c 100644 --- a/ReportImp/LyvieKupfer/LyvieKupfer.csproj +++ b/ReportImp/LyvieKupfer/LyvieKupfer.csproj @@ -56,6 +56,8 @@ + + Component @@ -63,6 +65,12 @@ Quittierungsbeleg.cs + + Component + + + CollectiveBillingReport.cs + Component @@ -94,6 +102,10 @@ Quittierungsbeleg.cs Designer + + CollectiveBillingReport.cs + Designer + ServiceInvoiceReport.cs Designer