MH: VSDHammReports Layout Sammelrechnung
SupportOID=170285
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||
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;
|
||||
@@ -195,5 +198,97 @@ namespace VSDHammReports.Invoicing
|
||||
intervalStundenGeleistet[intervalKey] = stundenGeleistet + stundenMitRf;
|
||||
}
|
||||
}
|
||||
|
||||
// Claude: Schreibt die insgesamt geleisteten Stunden nach ServiceInvoiceRO.ApprovedBESum.
|
||||
// Gezählt werden alle abrechenbaren ServiceRecords über die komplette Laufzeit des
|
||||
// SupportConcepts - bewusst OHNE Einschränkung auf die AccountingPeriod der Rechnung.
|
||||
// Der Aufruf erfolgt aus ServiceInvoiceReport.SetReportDataSource, weil das ReportObject
|
||||
// erst bei der Reporterstellung entsteht (ServiceInvoiceRO.Create) und der Rechnungslauf
|
||||
// selbst es nie zu sehen bekommt.
|
||||
public static void SetzeGeleisteteStundenGesamt(ServiceInvoiceRO ro)
|
||||
{
|
||||
if (ro == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
ro.ApprovedBESum = String.Format("{0:0.00}", BerechneGeleisteteStundenGesamt(ro));
|
||||
}
|
||||
|
||||
public static decimal BerechneGeleisteteStundenGesamt(ServiceInvoiceRO ro)
|
||||
{
|
||||
decimal stundenGesamt = 0;
|
||||
|
||||
if (ro == null)
|
||||
{
|
||||
return stundenGesamt;
|
||||
}
|
||||
|
||||
// Claude: Bei Sammelrechnungen hängen mehrere SupportConcepts an einer Rechnung, bei
|
||||
// mehreren Bewilligungszeiträumen mehrere Perioden am selben - daher je SupportConcept
|
||||
// nur einmal zählen.
|
||||
var verarbeiteteSupportConcepts = new List<long>();
|
||||
|
||||
if (ro.ServiceInvoicePeriods != null)
|
||||
{
|
||||
foreach (var sip in ro.ServiceInvoicePeriods)
|
||||
{
|
||||
if (sip.CostBearer2SupportConcept == null || sip.CostBearer2SupportConcept.SupportConcept == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var supportConcept = sip.CostBearer2SupportConcept.SupportConcept;
|
||||
if (!supportConcept.Oid.HasValue || verarbeiteteSupportConcepts.Contains(supportConcept.Oid.Value))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
verarbeiteteSupportConcepts.Add(supportConcept.Oid.Value);
|
||||
|
||||
stundenGesamt += BerechneGeleisteteStundenGesamt(supportConcept, sip.CostBearer2SupportConcept.CostBearer);
|
||||
}
|
||||
}
|
||||
|
||||
// Claude: Fallback, wenn keine Periode eine Bewilligung referenziert (z.B. reine Festbeträge).
|
||||
if (verarbeiteteSupportConcepts.Count == 0 && ro.InvoiceBase != null && ro.InvoiceBase.SupportConceptOid.HasValue)
|
||||
{
|
||||
var supportConcept = DAOFactory.GenericDAO.GetByID<SupportConcept>(ro.InvoiceBase.SupportConceptOid.Value);
|
||||
stundenGesamt += BerechneGeleisteteStundenGesamt(supportConcept, null);
|
||||
}
|
||||
|
||||
return stundenGesamt;
|
||||
}
|
||||
|
||||
public static decimal BerechneGeleisteteStundenGesamt(SupportConcept supportConcept, CostBearer costBearer)
|
||||
{
|
||||
if (supportConcept == null)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Claude: Alle Leistungen des SupportConcepts, nicht nur die des Abrechnungszeitraums.
|
||||
var records = supportConcept.ServiceRecordList
|
||||
.Where(sr => sr.ServiceDescription != null
|
||||
&& sr.ServiceDescription.ServiceCategory != null
|
||||
&& sr.ServiceDescription.ServiceCategory.IsBillable)
|
||||
.ToList();
|
||||
|
||||
if (records.Count == 0)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
string costBearerId = costBearer != null ? costBearer.ID : null;
|
||||
var calc = PluginLoader.FindClass<Calculations>(costBearerId) ?? Calculations.GetInstance(costBearerId);
|
||||
|
||||
// Claude: Dieselbe Basis wie bei den Rechnungspositionen (GetBillingData rechnet
|
||||
// GetBillableDurationInMinutes / 60), damit die Summe zu den Positionen passt.
|
||||
decimal minuten = 0;
|
||||
foreach (var recordDC in MapperFactory.ServiceRecordDC_ServiceRecord.MapToNewDCs(records))
|
||||
{
|
||||
minuten += calc.GetBillableDurationInMinutes(recordDC);
|
||||
}
|
||||
|
||||
return Math.Round(minuten / 60m, 2, MidpointRounding.AwayFromZero);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
63
ReportImp/VSDHammReports/Properties/Resources.Designer.cs
generated
Normal file
63
ReportImp/VSDHammReports/Properties/Resources.Designer.cs
generated
Normal file
@@ -0,0 +1,63 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// Dieser Code wurde von einem Tool generiert.
|
||||
// Laufzeitversion:4.0.30319.42000
|
||||
//
|
||||
// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
|
||||
// der Code erneut generiert wird.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace VSDHammReports.Properties {
|
||||
using System;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw.
|
||||
/// </summary>
|
||||
// Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert
|
||||
// -Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert.
|
||||
// Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen
|
||||
// mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Resources() {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("VSDHammReports.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle
|
||||
/// Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
set {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
120
ReportImp/VSDHammReports/Properties/Resources.resx
Normal file
120
ReportImp/VSDHammReports/Properties/Resources.resx
Normal file
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
@@ -30,6 +30,7 @@ namespace VSDHammReports
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ServiceInvoiceReport));
|
||||
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();
|
||||
@@ -84,8 +85,6 @@ namespace VSDHammReports
|
||||
this.xrTableCell17 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrLabel6 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrTable2 = new DevExpress.XtraReports.UI.XRTable();
|
||||
this.xrTableRow2 = new DevExpress.XtraReports.UI.XRTableRow();
|
||||
this.xrTableCell4 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableRow5 = new DevExpress.XtraReports.UI.XRTableRow();
|
||||
this.xrTableCell13 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableRow4 = new DevExpress.XtraReports.UI.XRTableRow();
|
||||
@@ -115,6 +114,9 @@ namespace VSDHammReports
|
||||
this.xrTableRow21 = new DevExpress.XtraReports.UI.XRTableRow();
|
||||
this.xrTableCell22 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell29 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableRow2 = new DevExpress.XtraReports.UI.XRTableRow();
|
||||
this.xrTableCell4 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell15 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableRow22 = new DevExpress.XtraReports.UI.XRTableRow();
|
||||
this.xrTableCell30 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell31 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
@@ -128,8 +130,10 @@ namespace VSDHammReports
|
||||
this.xrTableCell43 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell44 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell47 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
|
||||
this.ReportFooter = new DevExpress.XtraReports.UI.ReportFooterBand();
|
||||
this.xrLabel12 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrLabel1 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable4)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable1)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable2)).BeginInit();
|
||||
@@ -161,7 +165,7 @@ namespace VSDHammReports
|
||||
//
|
||||
// topMarginBand1
|
||||
//
|
||||
this.topMarginBand1.HeightF = 157.5F;
|
||||
this.topMarginBand1.HeightF = 199.1666F;
|
||||
this.topMarginBand1.Name = "topMarginBand1";
|
||||
//
|
||||
// bottomMarginBand1
|
||||
@@ -170,7 +174,7 @@ namespace VSDHammReports
|
||||
//
|
||||
// GroupFooter
|
||||
//
|
||||
this.GroupFooter.HeightF = 25F;
|
||||
this.GroupFooter.HeightF = 0F;
|
||||
this.GroupFooter.Name = "GroupFooter";
|
||||
//
|
||||
// Page1
|
||||
@@ -190,7 +194,7 @@ namespace VSDHammReports
|
||||
this.xrLabel6,
|
||||
this.xrTable2});
|
||||
this.Page1.Font = new DevExpress.Drawing.DXFont("Verdana", 10F);
|
||||
this.Page1.HeightF = 839F;
|
||||
this.Page1.HeightF = 808F;
|
||||
this.Page1.Name = "Page1";
|
||||
this.Page1.PageBreak = DevExpress.XtraReports.UI.PageBreak.AfterBand;
|
||||
this.Page1.StylePriority.UseFont = false;
|
||||
@@ -219,7 +223,7 @@ namespace VSDHammReports
|
||||
// xrTable4
|
||||
//
|
||||
this.xrTable4.Font = new DevExpress.Drawing.DXFont("Verdana", 10F);
|
||||
this.xrTable4.LocationFloat = new DevExpress.Utils.PointFloat(0F, 638.4999F);
|
||||
this.xrTable4.LocationFloat = new DevExpress.Utils.PointFloat(0F, 652.0416F);
|
||||
this.xrTable4.Name = "xrTable4";
|
||||
this.xrTable4.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
|
||||
this.xrTableRow10,
|
||||
@@ -288,7 +292,7 @@ namespace VSDHammReports
|
||||
// xrLabel14
|
||||
//
|
||||
this.xrLabel14.Font = new DevExpress.Drawing.DXFont("Verdana", 10F);
|
||||
this.xrLabel14.LocationFloat = new DevExpress.Utils.PointFloat(0F, 801F);
|
||||
this.xrLabel14.LocationFloat = new DevExpress.Utils.PointFloat(0F, 791F);
|
||||
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);
|
||||
@@ -298,7 +302,7 @@ namespace VSDHammReports
|
||||
// xrLabel9
|
||||
//
|
||||
this.xrLabel9.Font = new DevExpress.Drawing.DXFont("Verdana", 10F, DevExpress.Drawing.DXFontStyle.Italic);
|
||||
this.xrLabel9.LocationFloat = new DevExpress.Utils.PointFloat(0F, 613.4999F);
|
||||
this.xrLabel9.LocationFloat = new DevExpress.Utils.PointFloat(0F, 627.0416F);
|
||||
this.xrLabel9.Name = "xrLabel9";
|
||||
this.xrLabel9.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrLabel9.SizeF = new System.Drawing.SizeF(250F, 17F);
|
||||
@@ -311,14 +315,15 @@ namespace VSDHammReports
|
||||
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, 247.5F);
|
||||
this.xrLabel4.LocationFloat = new DevExpress.Utils.PointFloat(0.333313F, 247.5F);
|
||||
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, 17F);
|
||||
this.xrLabel4.StylePriority.UseBackColor = false;
|
||||
this.xrLabel4.StylePriority.UseFont = false;
|
||||
this.xrLabel4.Text = "[CustomerReferenceNumber]";
|
||||
this.xrLabel4.Text = "Geburtsdatum: [CustomerBirthdate!dd.MM.yyyy], Aktenzeichen: [CustomerReferenceNu" +
|
||||
"mber]";
|
||||
this.xrLabel4.WordWrap = false;
|
||||
//
|
||||
// xrLabel3
|
||||
@@ -353,7 +358,7 @@ namespace VSDHammReports
|
||||
//
|
||||
// xrLabel5
|
||||
//
|
||||
this.xrLabel5.LocationFloat = new DevExpress.Utils.PointFloat(0F, 297.5F);
|
||||
this.xrLabel5.LocationFloat = new DevExpress.Utils.PointFloat(0F, 292.2916F);
|
||||
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);
|
||||
@@ -364,7 +369,7 @@ namespace VSDHammReports
|
||||
//
|
||||
this.xrLabel8.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Text", null, "InvoiceDate")});
|
||||
this.xrLabel8.LocationFloat = new DevExpress.Utils.PointFloat(362.5F, 172.5F);
|
||||
this.xrLabel8.LocationFloat = new DevExpress.Utils.PointFloat(362.5F, 163.0417F);
|
||||
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);
|
||||
@@ -374,7 +379,7 @@ namespace VSDHammReports
|
||||
//
|
||||
// xrTable1
|
||||
//
|
||||
this.xrTable1.LocationFloat = new DevExpress.Utils.PointFloat(0F, 397.5F);
|
||||
this.xrTable1.LocationFloat = new DevExpress.Utils.PointFloat(0F, 420.4167F);
|
||||
this.xrTable1.Name = "xrTable1";
|
||||
this.xrTable1.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
|
||||
this.xrTableRow9,
|
||||
@@ -691,11 +696,11 @@ namespace VSDHammReports
|
||||
//
|
||||
// xrLabel6
|
||||
//
|
||||
this.xrLabel6.LocationFloat = new DevExpress.Utils.PointFloat(0F, 322.5F);
|
||||
this.xrLabel6.LocationFloat = new DevExpress.Utils.PointFloat(0F, 317.2916F);
|
||||
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, 67F);
|
||||
this.xrLabel6.SizeF = new System.Drawing.SizeF(642F, 92.7084F);
|
||||
this.xrLabel6.StylePriority.UseFont = false;
|
||||
this.xrLabel6.Text = resources.GetString("xrLabel6.Text");
|
||||
//
|
||||
@@ -704,33 +709,13 @@ namespace VSDHammReports
|
||||
this.xrTable2.LocationFloat = new DevExpress.Utils.PointFloat(362.5F, 0F);
|
||||
this.xrTable2.Name = "xrTable2";
|
||||
this.xrTable2.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
|
||||
this.xrTableRow2,
|
||||
this.xrTableRow5,
|
||||
this.xrTableRow4,
|
||||
this.xrTableRow3,
|
||||
this.xrTableRow1,
|
||||
this.xrTableRow6,
|
||||
this.xrTableRow8});
|
||||
this.xrTable2.SizeF = new System.Drawing.SizeF(283F, 134F);
|
||||
//
|
||||
// xrTableRow2
|
||||
//
|
||||
this.xrTableRow2.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
|
||||
this.xrTableCell4});
|
||||
this.xrTableRow2.Name = "xrTableRow2";
|
||||
this.xrTableRow2.Weight = 0.13245033112582782D;
|
||||
//
|
||||
// xrTableCell4
|
||||
//
|
||||
this.xrTableCell4.CanShrink = true;
|
||||
this.xrTableCell4.Name = "xrTableCell4";
|
||||
this.xrTableCell4.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrTableCell4.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink;
|
||||
this.xrTableCell4.StylePriority.UseFont = false;
|
||||
this.xrTableCell4.StylePriority.UseTextAlignment = false;
|
||||
this.xrTableCell4.Text = "Ihr(e) Ansprechpartner(in):";
|
||||
this.xrTableCell4.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
|
||||
this.xrTableCell4.Weight = 1D;
|
||||
this.xrTable2.SizeF = new System.Drawing.SizeF(283F, 114F);
|
||||
//
|
||||
// xrTableRow5
|
||||
//
|
||||
@@ -858,12 +843,12 @@ namespace VSDHammReports
|
||||
this.xrLabel11,
|
||||
this.xrTable3,
|
||||
this.xrLabel10});
|
||||
this.Detail1.HeightF = 264.0001F;
|
||||
this.Detail1.HeightF = 290.1669F;
|
||||
this.Detail1.Name = "Detail1";
|
||||
//
|
||||
// xrTable5
|
||||
//
|
||||
this.xrTable5.LocationFloat = new DevExpress.Utils.PointFloat(0F, 239.0001F);
|
||||
this.xrTable5.LocationFloat = new DevExpress.Utils.PointFloat(0F, 265.1669F);
|
||||
this.xrTable5.Name = "xrTable5";
|
||||
this.xrTable5.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
|
||||
this.xrTableRow23});
|
||||
@@ -975,7 +960,7 @@ namespace VSDHammReports
|
||||
this.xrLabel11.Font = new DevExpress.Drawing.DXFont("Verdana", 9.75F, DevExpress.Drawing.DXFontStyle.Italic, DevExpress.Drawing.DXGraphicsUnit.Point, new DevExpress.Drawing.DXFontAdditionalProperty[] {
|
||||
new DevExpress.Drawing.DXFontAdditionalProperty("GdiCharSet", ((byte)(0)))});
|
||||
this.xrLabel11.ForeColor = System.Drawing.Color.Gray;
|
||||
this.xrLabel11.LocationFloat = new DevExpress.Utils.PointFloat(0F, 189F);
|
||||
this.xrLabel11.LocationFloat = new DevExpress.Utils.PointFloat(0F, 220.5418F);
|
||||
this.xrLabel11.Name = "xrLabel11";
|
||||
this.xrLabel11.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrLabel11.SizeF = new System.Drawing.SizeF(650.3333F, 22.99996F);
|
||||
@@ -985,13 +970,14 @@ namespace VSDHammReports
|
||||
//
|
||||
// xrTable3
|
||||
//
|
||||
this.xrTable3.LocationFloat = new DevExpress.Utils.PointFloat(0F, 113.9999F);
|
||||
this.xrTable3.LocationFloat = new DevExpress.Utils.PointFloat(0F, 118.5417F);
|
||||
this.xrTable3.Name = "xrTable3";
|
||||
this.xrTable3.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
|
||||
this.xrTableRow20,
|
||||
this.xrTableRow21,
|
||||
this.xrTableRow2,
|
||||
this.xrTableRow22});
|
||||
this.xrTable3.SizeF = new System.Drawing.SizeF(650.3333F, 75F);
|
||||
this.xrTable3.SizeF = new System.Drawing.SizeF(650.3333F, 100F);
|
||||
//
|
||||
// xrTableRow20
|
||||
//
|
||||
@@ -1010,7 +996,7 @@ namespace VSDHammReports
|
||||
// xrTableCell18
|
||||
//
|
||||
this.xrTableCell18.Name = "xrTableCell18";
|
||||
this.xrTableCell18.Text = "[ApprovedHours] [ApprovedBE]";
|
||||
this.xrTableCell18.Text = "[ApprovedHours!0.00] FLS";
|
||||
this.xrTableCell18.Weight = 1.3277805730065739D;
|
||||
//
|
||||
// xrTableRow21
|
||||
@@ -1033,6 +1019,27 @@ namespace VSDHammReports
|
||||
this.xrTableCell29.Text = "[ApprovedAmount]";
|
||||
this.xrTableCell29.Weight = 1.3277805730065739D;
|
||||
//
|
||||
// xrTableRow2
|
||||
//
|
||||
this.xrTableRow2.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
|
||||
this.xrTableCell4,
|
||||
this.xrTableCell15});
|
||||
this.xrTableRow2.Name = "xrTableRow2";
|
||||
this.xrTableRow2.Weight = 1D;
|
||||
//
|
||||
// xrTableCell4
|
||||
//
|
||||
this.xrTableCell4.Name = "xrTableCell4";
|
||||
this.xrTableCell4.Text = "geleistete Stunden im Zeitraum:";
|
||||
this.xrTableCell4.Weight = 1.6722194269934261D;
|
||||
//
|
||||
// xrTableCell15
|
||||
//
|
||||
this.xrTableCell15.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Text", null, "ApprovedBESum")});
|
||||
this.xrTableCell15.Name = "xrTableCell15";
|
||||
this.xrTableCell15.Weight = 1.3277805730065739D;
|
||||
//
|
||||
// xrTableRow22
|
||||
//
|
||||
this.xrTableRow22.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
|
||||
@@ -1055,7 +1062,7 @@ namespace VSDHammReports
|
||||
//
|
||||
// xrLabel10
|
||||
//
|
||||
this.xrLabel10.LocationFloat = new DevExpress.Utils.PointFloat(0F, 66.08324F);
|
||||
this.xrLabel10.LocationFloat = new DevExpress.Utils.PointFloat(0F, 70.62498F);
|
||||
this.xrLabel10.Name = "xrLabel10";
|
||||
this.xrLabel10.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrLabel10.SizeF = new System.Drawing.SizeF(513.5417F, 17.79167F);
|
||||
@@ -1069,7 +1076,6 @@ namespace VSDHammReports
|
||||
this.DetailReport2.DataSource = this.bindingSource1;
|
||||
this.DetailReport2.Level = 0;
|
||||
this.DetailReport2.Name = "DetailReport2";
|
||||
this.DetailReport2.PageBreak = DevExpress.XtraReports.UI.PageBreak.AfterBand;
|
||||
//
|
||||
// Detail3
|
||||
//
|
||||
@@ -1146,7 +1152,7 @@ namespace VSDHammReports
|
||||
this.xrTableCell43.StylePriority.UsePadding = false;
|
||||
this.xrTableCell43.StylePriority.UseTextAlignment = false;
|
||||
this.xrTableCell43.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
|
||||
this.xrTableCell43.TextFormatString = "{0:0.00}";
|
||||
this.xrTableCell43.TextFormatString = "{0:c}";
|
||||
this.xrTableCell43.Weight = 0.23245943032832414D;
|
||||
//
|
||||
// xrTableCell44
|
||||
@@ -1182,16 +1188,42 @@ namespace VSDHammReports
|
||||
this.xrTableCell47.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
|
||||
this.xrTableCell47.Weight = 0.31923915575667006D;
|
||||
//
|
||||
// ReportFooter
|
||||
//
|
||||
this.ReportFooter.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
|
||||
this.xrLabel12,
|
||||
this.xrLabel1});
|
||||
this.ReportFooter.Font = new DevExpress.Drawing.DXFont("Times New Roman", 10F);
|
||||
this.ReportFooter.HeightF = 139.7499F;
|
||||
this.ReportFooter.Name = "ReportFooter";
|
||||
this.ReportFooter.StylePriority.UseFont = false;
|
||||
//
|
||||
// xrLabel12
|
||||
//
|
||||
this.xrLabel12.Font = new DevExpress.Drawing.DXFont("Verdana", 10F);
|
||||
this.xrLabel12.LocationFloat = new DevExpress.Utils.PointFloat(1.589457E-05F, 43.4166F);
|
||||
this.xrLabel12.Multiline = true;
|
||||
this.xrLabel12.Name = "xrLabel12";
|
||||
this.xrLabel12.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrLabel12.SizeF = new System.Drawing.SizeF(650.6666F, 86.33334F);
|
||||
this.xrLabel12.StylePriority.UseFont = false;
|
||||
this.xrLabel12.Text = resources.GetString("xrLabel12.Text");
|
||||
//
|
||||
// xrLabel1
|
||||
//
|
||||
this.xrLabel1.Font = new DevExpress.Drawing.DXFont("Verdana", 10F, DevExpress.Drawing.DXFontStyle.Underline);
|
||||
this.xrLabel1.LocationFloat = new DevExpress.Utils.PointFloat(1.589457E-05F, 9.999974F);
|
||||
this.xrLabel1.Multiline = true;
|
||||
this.xrLabel1.Name = "xrLabel1";
|
||||
this.xrLabel1.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrLabel1.SizeF = new System.Drawing.SizeF(193.4025F, 23.00001F);
|
||||
this.xrLabel1.StylePriority.UseFont = false;
|
||||
this.xrLabel1.Text = "Erklärung des Anbieters:";
|
||||
//
|
||||
// bindingSource1
|
||||
//
|
||||
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.ServiceInvoiceRO);
|
||||
//
|
||||
// ReportFooter
|
||||
//
|
||||
this.ReportFooter.Font = new DevExpress.Drawing.DXFont("Times New Roman", 10F);
|
||||
this.ReportFooter.Name = "ReportFooter";
|
||||
this.ReportFooter.StylePriority.UseFont = false;
|
||||
//
|
||||
// ServiceInvoiceReport
|
||||
//
|
||||
this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
|
||||
@@ -1208,11 +1240,13 @@ namespace VSDHammReports
|
||||
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, 100F);
|
||||
this.Margins = new DevExpress.Drawing.DXMargins(75F, 75F, 199.1666F, 100F);
|
||||
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.xrTable4)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable1)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable2)).EndInit();
|
||||
@@ -1264,8 +1298,6 @@ namespace VSDHammReports
|
||||
private DevExpress.XtraReports.UI.XRTableCell xrTableCell17;
|
||||
private DevExpress.XtraReports.UI.XRLabel xrLabel6;
|
||||
private DevExpress.XtraReports.UI.XRTable xrTable2;
|
||||
private DevExpress.XtraReports.UI.XRTableRow xrTableRow2;
|
||||
private DevExpress.XtraReports.UI.XRTableCell xrTableCell4;
|
||||
private DevExpress.XtraReports.UI.XRTableRow xrTableRow5;
|
||||
private DevExpress.XtraReports.UI.XRTableCell xrTableCell13;
|
||||
private DevExpress.XtraReports.UI.XRTableRow xrTableRow4;
|
||||
@@ -1325,5 +1357,10 @@ namespace VSDHammReports
|
||||
private DevExpress.XtraReports.UI.XRTableRow xrTableRow26;
|
||||
private DevExpress.XtraReports.UI.XRTableCell tcLabelSummeFehlkontakte;
|
||||
private DevExpress.XtraReports.UI.XRTableCell tcSummeFehlkontakte;
|
||||
private DevExpress.XtraReports.UI.XRTableRow xrTableRow2;
|
||||
private DevExpress.XtraReports.UI.XRTableCell xrTableCell4;
|
||||
private DevExpress.XtraReports.UI.XRTableCell xrTableCell15;
|
||||
private DevExpress.XtraReports.UI.XRLabel xrLabel1;
|
||||
private DevExpress.XtraReports.UI.XRLabel xrLabel12;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,8 @@ using BeWo.Report.ReportObjects;
|
||||
using DevExpress.XtraReports.UI;
|
||||
using System;
|
||||
|
||||
using VSDHammReports.Invoicing;
|
||||
|
||||
namespace VSDHammReports
|
||||
{
|
||||
public partial class ServiceInvoiceReport : XtraReport, IBeWoReport<ServiceInvoiceRO>
|
||||
@@ -36,6 +38,10 @@ namespace VSDHammReports
|
||||
}
|
||||
}
|
||||
|
||||
// Claude: [ApprovedBESum] enthält für diesen Report die insgesamt geleisteten Stunden
|
||||
// über die komplette Laufzeit des SupportConcepts (Berechnung in CustomInvoiceCreation).
|
||||
CustomInvoiceCreation.SetzeGeleisteteStundenGesamt(pRO);
|
||||
|
||||
tcSummeFachleistungen.Text = string.Format("{0:c}", summeFachleistungen);
|
||||
tcSummeFehlkontakte.Text = string.Format("{0:c}", summeFehlkontakte);
|
||||
|
||||
|
||||
@@ -118,8 +118,13 @@
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="xrLabel6.Text" xml:space="preserve">
|
||||
<value>anbei sende ich Ihnen die unterschriebenen Nachweise über die im Rahmen des Betreuten Wohnens für [CustomerSalutation] [CustomerName] erbrachten Leistungen zu. Nach unserer Berechnung ergeben
|
||||
sich für den Betreuungszeitraum [AccountingPeriod] hieraus:
|
||||
<value>anbei erhalten Sie die unterschriebenen Leistungsnachweise für die im Rahmen der Betreuung von [CustomerSalutation] [CustomerName] im Zeitraum vom [AccountingPeriod] erbrachten Leistungen.
|
||||
|
||||
Hieraus ergibt sich nach unserer Berechnung folgender Abrechnungsbetrag:
|
||||
|
||||
</value>
|
||||
</data>
|
||||
<data name="xrLabel12.Text" xml:space="preserve">
|
||||
<value>Hiermit wird erklärt, dass die Verpflichtung aus der Leistungs-, Prüfungs- und Vergütungsvereinbarung nach §§ 93 ff BSHG bzw. 75 ff SGB XII eingehalten wurden und die vorgenannten Angaben anhand der vorgehaltenen Quittierungsbelege sowie der Betreuungsdokumentation jederzeit nachgewiesen werden können.</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -119,6 +119,11 @@
|
||||
<Compile Include="Mitarbeiterauslastung.designer.cs">
|
||||
<DependentUpon>Mitarbeiterauslastung.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="QuittierungsbelegJAHammKooperationsKontakte.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
@@ -212,6 +217,10 @@
|
||||
<EmbeddedResource Include="Mitarbeiterauslastung.resx">
|
||||
<DependentUpon>Mitarbeiterauslastung.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="QuittierungsbelegJAHammKooperationsKontakte.resx">
|
||||
<DependentUpon>QuittierungsbelegJAHammKooperationsKontakte.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
|
||||
Reference in New Issue
Block a user