VSDHammReports: Fehlkontakte Spitzabrechnung (u.a. veraltete fehlerhafte InvoiceCreation entfernt)

This commit is contained in:
2023-08-16 19:06:36 +02:00
parent fde35a3706
commit a6b054f6ed
11 changed files with 2991 additions and 3473 deletions

View File

@@ -1,184 +1,71 @@
using System;
using BeWo.Report;
using BeWo.Report.ReportObjects;
using BS.Shared.Core;
namespace VSDHammReports.Alt
{
[IDSpecificClass(Identifier = "LWLMITANHANG")]
public partial class Budgetnachweis : DevExpress.XtraReports.UI.XtraReport, IBeWoReport<SettlementRO>
{
public Budgetnachweis()
{
InitializeComponent();
}
public void SetReportDataSource(SettlementRO pRO)
{
bool replaceFF = false;
if (String.IsNullOrEmpty(pRO.RecipientOrganisation) || !pRO.RecipientOrganisation.ToLower().StartsWith("lwl"))
{
lblAZ.Text = "";
lblAZLabel.Text = "";
lblZad.Text = "60-9011896.1";
}
else
{
lblZad.Text = "60-9011897.1";
}
foreach (var ii in pRO.InvoiceItems)
{
//if (ii.RateFactor.HasValue)
//{
// rateFactor = (100 + ii.RateFactor.Value) / 100;
//}
//ii.UnitCount *= rateFactor;
ii.ItemDescription = String.Format("{0:dd.MM.yyyy} bis {1:dd.MM.yyyy}",
ii.ItemPeriodStart, ii.ItemPeriodEnd);
ii.ItemDescription += String.Format(": {0:0.##} FLS x {1:c}",
ii.UnitCount, ii.AmountPerUnit);
}
if (!pRO.HourlyRateNew.HasValue && pRO.DifferentHourlyRateCount > 0 && pRO.InvoiceItems != null && pRO.InvoiceItems.Count > 0)
{
pRO.RateFactor = 1;
replaceFF = true;
//cellBewilligteFLSText.Text = "Bewilligte FLS";
//cellRateFactorFLSText.Text = "";
//cellApprovedFLSWithRF.Text = "";
if (pRO.InvoiceItems.Count == 3)
{
pRO.HourlyRate3EndDateString = String.Format("{0:dd.MM.yyyy}", pRO.InvoiceItems[0].ItemPeriodEnd);
pRO.GeleisteteFLSMitStundensatz3 = pRO.InvoiceItems[0].UnitCount;
pRO.Betrag1 = String.Format("{0:c}", pRO.InvoiceItems[0].AmountTotal);
pRO.HourlyRate3 = pRO.InvoiceItems[0].AmountPerUnit ?? 0;
pRO.HourlyRateOldStartDateString = String.Format("{0:dd.MM.yyyy}", pRO.InvoiceItems[1].ItemPeriodStart);
pRO.HourlyRateOldEndDateString = String.Format("{0:dd.MM.yyyy}", pRO.InvoiceItems[1].ItemPeriodEnd);
pRO.GeleisteteFLSMitStundensatzAlt = pRO.InvoiceItems[1].UnitCount;
pRO.Betrag2 = String.Format("{0:c}", pRO.InvoiceItems[1].AmountTotal);
pRO.HourlyRateOld = pRO.InvoiceItems[1].AmountPerUnit ?? 0;
pRO.HourlyRateNewStartDateString = String.Format("{0:dd.MM.yyyy}", pRO.InvoiceItems[2].ItemPeriodStart);
pRO.GeleisteteFLSMitStundensatzAktuell = pRO.InvoiceItems[2].UnitCount;
pRO.Betrag3 = String.Format("{0:c}", pRO.InvoiceItems[2].AmountTotal);
pRO.HourlyRateNew = pRO.InvoiceItems[2].AmountPerUnit ?? 0;
}
else if (pRO.InvoiceItems.Count == 2)
{
pRO.HourlyRateOldEndDateString = String.Format("{0:dd.MM.yyyy}", pRO.InvoiceItems[0].ItemPeriodEnd);
pRO.GeleisteteFLSMitStundensatzAlt = pRO.InvoiceItems[0].UnitCount;
pRO.Betrag2 = String.Format("{0:c}", pRO.InvoiceItems[0].AmountTotal);
pRO.HourlyRateOld = pRO.InvoiceItems[0].AmountPerUnit ?? 0;
pRO.HourlyRateNewStartDateString = String.Format("{0:dd.MM.yyyy}", pRO.InvoiceItems[1].ItemPeriodStart);
pRO.GeleisteteFLSMitStundensatzAktuell = pRO.InvoiceItems[1].UnitCount;
pRO.Betrag3 = String.Format("{0:c}", pRO.InvoiceItems[1].AmountTotal);
pRO.HourlyRateNew = pRO.InvoiceItems[1].AmountPerUnit ?? 0;
}
else
{
pRO.GeleisteteFLSMitStundensatzAktuell = pRO.InvoiceItems[0].UnitCount;
pRO.Betrag3 = String.Format("{0:c}", pRO.InvoiceItems[0].AmountTotal);
pRO.HourlyRateNew = pRO.InvoiceItems[0].AmountPerUnit ?? 0;
}
}
if (pRO.DifferentHourlyRateCount == 3)
{
pRO.Abrechnungstext1 = String.Format("{0} bis {1}",
pRO.AccountingStartDateString, pRO.HourlyRate3EndDateString);
pRO.Abrechnungstext1 += String.Format(": {0:0.##} FF {1}x {2:c}",
pRO.GeleisteteFLSMitStundensatz3, pRO.RateFactor == 1 ? "" : "x " + pRO.RateFactorText2 + " ", pRO.HourlyRate3);
if (String.IsNullOrEmpty(pRO.Betrag1))
pRO.Betrag1 = String.Format("{0:c}", pRO.GeleisteteFLSMitStundensatz3 * (decimal)pRO.RateFactor * pRO.HourlyRate3);
pRO.Abrechnungstext2 = String.Format("{0} bis {1}",
pRO.HourlyRateOldStartDateString, pRO.HourlyRateOldEndDateString);
pRO.Abrechnungstext2 += String.Format(": {0:0.##} FF {1}x {2:c}",
pRO.GeleisteteFLSMitStundensatzAlt, pRO.RateFactor == 1 ? "" : "x " + pRO.RateFactorText2 + " ", pRO.HourlyRateOld);
if (String.IsNullOrEmpty(pRO.Betrag2))
pRO.Betrag2 = String.Format("{0:c}", pRO.GeleisteteFLSMitStundensatzAlt * (decimal)pRO.RateFactor * pRO.HourlyRateOld);
pRO.Abrechnungstext3 = String.Format("{0} bis {1}",
pRO.HourlyRateNewStartDateString, pRO.AccountingEndDateString);
pRO.Abrechnungstext3 += String.Format(": {0:0.##} FF {1}x {2:c}",
pRO.GeleisteteFLSMitStundensatzAktuell, pRO.RateFactor == 1 ? "" : "x " + pRO.RateFactorText2 + " ", pRO.HourlyRateNew);
if (String.IsNullOrEmpty(pRO.Betrag3))
pRO.Betrag3 = String.Format("{0:c}", pRO.GeleisteteFLSMitStundensatzAktuell * (decimal)pRO.RateFactor * pRO.HourlyRateNew);
}
else if (pRO.DifferentHourlyRateCount == 2)
{
pRO.Abrechnungstext2 = String.Format("{0} bis {1}",
pRO.AccountingStartDateString, pRO.HourlyRateOldEndDateString);
pRO.Abrechnungstext2 += String.Format(": {0:0.##} FF {1}x {2:c}",
pRO.GeleisteteFLSMitStundensatzAlt, pRO.RateFactor == 1 ? "" : "x " + pRO.RateFactorText2 + " ", pRO.HourlyRateOld);
if (String.IsNullOrEmpty(pRO.Betrag2))
pRO.Betrag2 = String.Format("{0:c}", pRO.GeleisteteFLSMitStundensatzAlt * (decimal)pRO.RateFactor * pRO.HourlyRateOld);
pRO.Abrechnungstext3 = String.Format("{0} bis {1}",
pRO.HourlyRateNewStartDateString, pRO.AccountingEndDateString);
pRO.Abrechnungstext3 += String.Format(": {0:0.##} FF {1}x {2:c}",
pRO.GeleisteteFLSMitStundensatzAktuell, pRO.RateFactor == 1 ? "" : "x " + pRO.RateFactorText2 + " ", pRO.HourlyRateNew);
if (String.IsNullOrEmpty(pRO.Betrag3))
pRO.Betrag3 = String.Format("{0:c}", pRO.GeleisteteFLSMitStundensatzAktuell * (decimal)pRO.RateFactor * pRO.HourlyRateNew);
}
else if (pRO.DifferentHourlyRateCount == 1)
{
pRO.Abrechnungstext3 = String.Format("{0} bis {1}",
pRO.AccountingStartDateString, pRO.AccountingEndDateString);
pRO.Abrechnungstext3 += String.Format(": {0:0.##} FF {1}x {2:c}",
pRO.GeleisteteFLSMitStundensatzAktuell, pRO.RateFactor == 1 ? "" : "x " + pRO.RateFactorText2 + " ", pRO.HourlyRateNew);
if (String.IsNullOrEmpty(pRO.Betrag3))
pRO.Betrag3 = String.Format("{0:c}", pRO.GeleisteteFLSMitStundensatzAktuell * (decimal)pRO.RateFactor * pRO.HourlyRateNew);
}
if (!String.IsNullOrEmpty(pRO.SenderContactPersonPhone))
{
pRO.SenderContactPersonPhone = pRO.SenderContactPersonPhone.Replace("Tel.: ", "");
pRO.SenderContactPersonMail = pRO.SenderContactPersonMail.Replace("E-Mail: ", "");
}
if (replaceFF)
{
if (!String.IsNullOrEmpty(pRO.Abrechnungstext1))
pRO.Abrechnungstext1 = pRO.Abrechnungstext1.Replace(" FF ", " FLS ");
if (!String.IsNullOrEmpty(pRO.Abrechnungstext2))
pRO.Abrechnungstext2 = pRO.Abrechnungstext2.Replace(" FF ", " FLS ");
if (!String.IsNullOrEmpty(pRO.Abrechnungstext3))
pRO.Abrechnungstext3 = pRO.Abrechnungstext3.Replace(" FF ", " FLS ");
}
xrCheckBox2.Checked = true;
DateTime? terminationDate = null;
if (pRO.TerminationDate.HasValue)
{
terminationDate = pRO.TerminationDate;
xrCheckBox1.Text = String.Format(" Die Betreuung wurde am {0:dd.MM.yyyy} beendet.",
pRO.TerminationDate);
xrCheckBox2.Checked = false;
xrCheckBox1.Checked = true;
}
this.bindingSource1.DataSource = pRO;
}
}
}
using System;
using BeWo.Report;
using BeWo.Report.ReportObjects;
using BS.Shared.Core;
using BS.Shared.Extensions;
namespace VSDHammReports.Alt
{
[IDSpecificClass(Identifier = "LWLMITANHANG")]
public partial class Budgetnachweis : DevExpress.XtraReports.UI.XtraReport, IBeWoReport<SettlementRO>
{
public Budgetnachweis()
{
InitializeComponent();
}
public void SetReportDataSource(SettlementRO pRO)
{
if (String.IsNullOrEmpty(pRO.RecipientOrganisation) || !pRO.RecipientOrganisation.ToLower().StartsWith("lwl"))
{
lblAZ.Text = "";
lblAZLabel.Text = "";
lblZad.Text = "60-9011896.1";
}
else
{
lblZad.Text = "60-9011897.1";
}
foreach (var ii in pRO.InvoiceItems)
{
ii.ItemDescription = String.Format("{0:dd.MM.yyyy} bis {1:dd.MM.yyyy}",
ii.ItemPeriodStart, ii.ItemPeriodEnd);
ii.ItemDescription += String.Format(": {0:0.##} FLS x {1:c}",
ii.UnitCount, ii.AmountPerUnit);
ii.UnitDescription = "Fachleistungsstunden";
if (!pRO.FehlkontakteString.IsNullOrEmpty() && ii.RateFactor == 0)
{
Zwischensumme.Visible = true;
ii.ItemDescription = "Fehlkontakte " + ii.ItemDescription.Replace("FLS", "Std.");
ii.UnitDescription = "Fehlkontakte";
}
}
if (!String.IsNullOrEmpty(pRO.SenderContactPersonPhone))
{
pRO.SenderContactPersonPhone = pRO.SenderContactPersonPhone.Replace("Tel.: ", "");
pRO.SenderContactPersonMail = pRO.SenderContactPersonMail.Replace("E-Mail: ", "");
}
xrCheckBox2.Checked = true;
DateTime? terminationDate = null;
if (pRO.TerminationDate.HasValue)
{
terminationDate = pRO.TerminationDate;
xrCheckBox1.Text = String.Format(" Die Betreuung wurde am {0:dd.MM.yyyy} beendet.",
pRO.TerminationDate);
xrCheckBox2.Checked = false;
xrCheckBox1.Checked = true;
}
this.bindingSource1.DataSource = pRO;
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,131 +1,131 @@
<?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>
<data name="xrLabel19.Text" xml:space="preserve">
<value>Hiermit wird erklärt, dass die Verpflichtungen aus den Vereinbarungen nach §§75 ff. SGB XII bzw. §§125 ff. SGB IX eingehalten wurden und alle hier gemachten Angaben je Betreuungskontakt anhand der Quittierungsbelege sowie der Betreuungsdokumentation jederzeit nachgewiesen werden können. Diese Unterlagen sind 5 Jahre aufzubewahren und auf Verlangen des Sozialhilfeträgers bzw. des Trägers der Eingliederungshilfe vorzulegen (§2 Abs.1 der Vergütungsvereinbarung).</value>
</data>
<metadata name="bindingSource1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<data name="xrLabel10.Text" xml:space="preserve">
<?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>
<data name="xrLabel19.Text" xml:space="preserve">
<value>Hiermit wird erklärt, dass die Verpflichtungen aus den Vereinbarungen nach §§75 ff. SGB XII bzw. §§125 ff. SGB IX eingehalten wurden und alle hier gemachten Angaben je Betreuungskontakt anhand der Quittierungsbelege sowie der Betreuungsdokumentation jederzeit nachgewiesen werden können. Diese Unterlagen sind 5 Jahre aufzubewahren und auf Verlangen des Sozialhilfeträgers bzw. des Trägers der Eingliederungshilfe vorzulegen (§2 Abs.1 der Vergütungsvereinbarung).</value>
</data>
<metadata name="bindingSource1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<data name="xrLabel10.Text" xml:space="preserve">
<value>Sollte sich bei der Abrechnung der FLS ein Auszahlungsbetrag zu unseren Gunsten ergeben, bitten wir um Erstattung auf folgendes Konto:
Kreditinstitut: Sparkasse Hamm IBAN: DE53 4105 0095 0000 1751 74</value>
</data>
Kreditinstitut: Sparkasse Hamm IBAN: DE53 4105 0095 0000 1751 74</value>
</data>
</root>

File diff suppressed because it is too large Load Diff

View File

@@ -4,7 +4,8 @@ using BeWo.Report;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BS.Shared.Core;
using BS.Shared.Extensions;
namespace VSDHammReports
{
[IDSpecificClass(Identifier = "LWLMITANHANG")]
@@ -18,8 +19,6 @@ namespace VSDHammReports
public void SetReportDataSource(Settlement2RO pRO)
{
bool replaceFF = true;
if (String.IsNullOrEmpty(pRO.RecipientOrganisation) || !pRO.RecipientOrganisation.ToLower().StartsWith("lwl"))
{
lblAZ.Text = "";
@@ -31,20 +30,7 @@ namespace VSDHammReports
lblZad.Text = "60-9011897.1";
}
//if (!pRO.HourlyRateNew.HasValue && pRO.DifferentHourlyRateCount > 0 && pRO.InvoiceItems != null &&
// pRO.InvoiceItems.Count > 0)
//{
// pRO.RateFactor = 1;
// replaceFF = true;
// cellBewilligteFLSText.Text = "Bewilligte FLS";
// cellRateFactorFLSText.Text = "";
// cellApprovedFLSWithRF.Text = "";
//}
cellBewilligteFLSText.Text = "Bewilligte FLS";
//cellRateFactorFLSText.Text = "";
//cellApprovedFLSWithRF.Text = "";
if (!String.IsNullOrEmpty(pRO.SenderContactPersonMail))
{
@@ -63,16 +49,20 @@ namespace VSDHammReports
{
ii.DetailDescription = String.Format("{0:dd.MM.yyyy} bis {1:dd.MM.yyyy}",
ii.PeriodStartDate, ii.PeriodEndDate);
ii.DetailDescription += String.Format(": {0:0.##} FF x {1:c}",
ii.DetailDescription += String.Format(": {0:0.##} FLS x {1:c}",
ii.UnitCount, ii.AmountPerUnit);
if (replaceFF)
{
ii.DetailDescription = ii.DetailDescription.Replace(" FF ", " FLS ");
}
ratefactor = ii.RateFactor ?? 1;
}
}
ratefactor = ii.RateFactor ?? 1;
ii.ItemDescription = "Fachleistungsstunden";
if (ii.RateFactor == 0)
{
Zwischensumme.Visible = true;
ii.DetailDescription = ii.DetailDescription.Replace("FLS", "Std.");
ii.ItemDescription = "Fehlkontakte";
}
}
}
pRO.ApprovedFLSTotal *= (100 + ratefactor) / 100;
xrCheckBox2.Checked = true;

View File

@@ -1,131 +1,131 @@
<?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>
<data name="xrLabel11.Text" xml:space="preserve">
<?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>
<data name="xrLabel11.Text" xml:space="preserve">
<value>Sollte sich bei der Abrechnung der FLS ein Auszahlungsbetrag zu unseren Gunsten ergeben, bitten wir um Erstattung auf folgendes Konto:
Kreditinstitut: Sparkasse Hamm IBAN: DE53 4105 0095 0000 1751 74</value>
</data>
<data name="xrLabel19.Text" xml:space="preserve">
<value>Hiermit wird erklärt, dass die Verpflichtungen aus den Vereinbarungen nach §§75 ff. SGB XII bzw. §§125 ff. SGB IX eingehalten wurden und alle hier gemachten Angaben je Betreuungskontakt anhand der Quittierungsbelege sowie der Betreuungsdokumentation jederzeit nachgewiesen werden können. Diese Unterlagen sind 5 Jahre aufzubewahren und auf Verlangen des Sozialhilfeträgers bzw. des Trägers der Eingliederungshilfe vorzulegen (§2 Abs.1 der Vergütungsvereinbarung).</value>
</data>
<metadata name="bindingSource1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
Kreditinstitut: Sparkasse Hamm IBAN: DE53 4105 0095 0000 1751 74</value>
</data>
<data name="xrLabel19.Text" xml:space="preserve">
<value>Hiermit wird erklärt, dass die Verpflichtungen aus den Vereinbarungen nach §§75 ff. SGB XII bzw. §§125 ff. SGB IX eingehalten wurden und alle hier gemachten Angaben je Betreuungskontakt anhand der Quittierungsbelege sowie der Betreuungsdokumentation jederzeit nachgewiesen werden können. Diese Unterlagen sind 5 Jahre aufzubewahren und auf Verlangen des Sozialhilfeträgers bzw. des Trägers der Eingliederungshilfe vorzulegen (§2 Abs.1 der Vergütungsvereinbarung).</value>
</data>
<metadata name="bindingSource1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

View File

@@ -1,433 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using BeWo.Data.Entities;
using BeWo.Service.DCEntityMapper;
using BeWo.Service.Invoicing;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.Extensions;
using BS.Shared.Services;
using VSDHammReports.Invoicing;
namespace VSDHammReports
{
//internal class VSDSettlementInvoiceCreation //: SettlementInvoiceCreation
//{
//public override bool CanCreateInvoiceTheOldWay(Settlement2DC si, CostBearer2SupportConcept c2s)
//{
// var can = base.CanCreateInvoiceTheOldWay(si, c2s);
// if (can)
// {
// DateTime periodStart = si.AccountingPeriodStart.Value.Date;
// DateTime periodEnd = si.AccountingPeriodEnd.Value.Date;
// var relDC = c2s.MapToNewDC();
// var rateFactorsInSpanList = relDC.CostBearer.CostRatePeriods.GetSpans(CostRatePeriodType.RateFactor, periodStart, periodEnd).ToList();
// if (rateFactorsInSpanList.Count > 1)
// {
// can = false;
// }
// }
// return can;
//}
//public override void CalculateInvoiceItemAmounts(InvoiceItemDC ii)
//{
// if (ii.UnitCount.HasValue)
// {
// var uc = ii.UnitCount.Value;
// if (ii.MaxApprovedUnitCount.HasValue && ii.MaxApprovedUnitCount.Value < uc)
// uc = ii.MaxApprovedUnitCount.Value;
// ii.UnitCount = Math.Round(uc, 2, MidpointRounding.AwayFromZero);
// if (ii.AmountPerUnit.HasValue)
// {
// if (ii.RateFactor.HasValue && ii.RateFactor.Value != 0)
// {
// ii.UnitCount = Math.Round(ii.UnitCount.Value * ((100m + ii.RateFactor.Value) / 100m), 2, MidpointRounding.AwayFromZero);
// }
// ii.AmountTotal = Math.Round(ii.UnitCount.Value * ii.AmountPerUnit.Value, 2, MidpointRounding.AwayFromZero);
// ii.GrossAmountTotal = ii.AmountTotal;
// }
// }
//}
public class VSDSettlementInvoiceCreation : SettlementInvoiceCreation
{
public override bool CanCreateInvoiceTheOldWay(Settlement2DC si, CostBearer2SupportConcept c2s)
{
return true;
}
public override void CreateInvoiceDetailsTheOldWay(Settlement2DC si, CostBearer2SupportConcept c2s)
{
String id = c2s.CostBearer.ID;
var calc = Calculations.GetInstance(id);
var relDc = c2s.MapToNewDC();
var apList = CreateApprovalPeriods(si, c2s);
si.ApprovedFLS = CalculateApprovedTotalFLS(apList);
DateTime periodStart = si.AccountingPeriodStart.Value.Date;
DateTime periodEnd = si.AccountingPeriodEnd.Value.Date;
//Prüfe ob vorher abgemeldet
if (c2s.SupportConcept.Customer.TerminationDate.HasValue &&
c2s.SupportConcept.Customer.TerminationDate.Value < periodEnd)
{
periodEnd = c2s.SupportConcept.Customer.TerminationDate.Value;
}
var hourlyRatesInSpanList = relDc.CostBearer.CostRatePeriods.GetSpans(CostRatePeriodType.HourlyRate, periodStart, periodEnd).ToList();
si.DifferentHourlyRateCount = hourlyRatesInSpanList.Count;
var rateFactorsInSpanList = relDc.CostBearer.CostRatePeriods.GetSpans(CostRatePeriodType.RateFactor, periodStart, periodEnd).ToList();
if (rateFactorsInSpanList.Count > 0)
{
var cdc = rateFactorsInSpanList.Last().Key;
if (cdc.CostRateValue.HasValue)
si.RateFactor = cdc.CostRateValue.Value;
}
decimal rf = GetRateFactor(si);
var records = c2s.ServiceRecords;
records = records.Where(i => i.Start.HasValue && i.Start.Value.InBetween(periodStart, periodEnd, true)).ToList();
var recordDCS = records.MapToNewDCs();
si.RecordedBillableFLSNotBillableCustomerAbsent
= calc.GetHoursNotBillableDueToAbsenceTimes(relDc, recordDCS,
c2s.SupportConcept.Customer.GetAbsencesTimesNotBillableWholeWeeks(), false, false);
si.RecordedBillableFLSNotBillableOutOfApprovedSpan = calc.GetHoursNotBillableDueToOutOfSpan(relDc, recordDCS);
//calc.GetHoursNotBillableDueToMoreThanApproved(relDC, recordDCS, false, false);
Dictionary<long, bool> groupBookingDict = new Dictionary<long, bool>();
//decimal flmCleared = 0;
//decimal approvedMinutes = ((si.ApprovedFLS ?? 0) * 60) / rf;
records = records.OrderBy<ServiceRecord, DateTime>(sr => sr.Start.HasValue ? sr.Start.Value : DateTime.MinValue).ToList<ServiceRecord>();
foreach (var iRecord in records)
{
if (iRecord.ServiceDescription.ServiceCategory.IsBillable)
{
if (iRecord.GroupOid == null || !groupBookingDict.ContainsKey(iRecord.GroupOid.Value))
{
decimal rd = iRecord.RoundedDuration;
var prozent = iRecord.ServiceDescription.ServiceCategory.ProzentAbrechnung;
if (iRecord.ServiceDescription.ProzentAbrechnung.HasValue)
{
prozent = iRecord.ServiceDescription.ProzentAbrechnung.Value;
}
rd = (rd * prozent) / 100;
var ap = apList.FirstOrDefault(
iap =>
{
return iap.PeriodStartDate <= iRecord.Start &&
(iap.PeriodEndDate >= DateTime.MaxValue.AddDays(-1) || iRecord.Start < iap.PeriodEndDate.AddDays(1));
});
//decimal duration = rd / 60;
if (ap != null)
{
//si.RecordedBillableFLSNetto += duration;
decimal durationToAdd = rd;
//if (flmCleared + rd > approvedMinutes)
//{
// durationToAdd = approvedMinutes - flmCleared;
// if (durationToAdd < 0)
// durationToAdd = 0;
//}
//flmCleared += rd;
ap.RecordedMinutes += durationToAdd;
}
if (iRecord.GroupOid != null && !groupBookingDict.ContainsKey(iRecord.GroupOid.Value))
{
groupBookingDict.Add(iRecord.GroupOid.Value, true);
}
}
}
}
//decimal? maxAmount = CalculateMaxAmount(si, apList);
si.InvoiceItems = CreateInvoiceItems(si, apList);
decimal totalAmount = 0;
decimal rateFactorAmount = 0;
foreach (var ii in si.InvoiceItems)
{
decimal grossAmount = ii.GrossAmountTotal ?? 0;
totalAmount += grossAmount;
if (ii.RateFactor.HasValue && ii.RateFactor.Value > 0)
{
rateFactorAmount += (grossAmount - (grossAmount / ((100 + ii.RateFactor.Value) / 100)));
}
}
si.RecordedBillableFLSNetto = si.InvoiceItems.Sum(ii => (ii.UnitCount ?? 0)); // * rf; //eigentlich falsch dass netto = brutto ist.
si.RecordedBillableFLSBrutto = si.RecordedBillableFLSNetto;
si.AmountBillableTotal = totalAmount;
si.AmountWithRateFactor = rateFactorAmount;
//AdvancedPayments
CalculateAdvancedPayments(si, c2s, null, null, hourlyRatesInSpanList);
//EquityContribution (Eigenanteil)
CalculateEquityContribution(si, c2s.SupportConcept, null, null);
si.Claim = si.AmountBillableTotal - (si.AmountAdvancedPayments ?? 0) - si.EquityContribution;
}
private decimal GetRateFactor(Settlement2DC si)
{
decimal rf = 1;
if (si.RateFactor.HasValue && si.RateFactor.Value != 0)
{
rf = si.RateFactor.Value;
rf = (100 + rf) / 100;
}
return rf;
}
private List<InvoiceItemDC> CreateInvoiceItems(Settlement2DC si, IList<ApprovalPeriod> apList)
{
List<InvoiceItemDC> iiList = new List<InvoiceItemDC>();
var apsByHourlyRate = new Dictionary<String, IList<VsdApprovalPeriod>>();
foreach (var ap in apList)
{
VsdApprovalPeriod vap = ap as VsdApprovalPeriod;
IList<VsdApprovalPeriod> list = null;
String key = String.Format("{0}_{1}", ap.AmountPerUnit, vap.RateFactor);
if (apsByHourlyRate.ContainsKey(key))
{
list = apsByHourlyRate[key];
}
else
{
list = new List<VsdApprovalPeriod>();
apsByHourlyRate[key] = list;
}
list.Add(vap);
}
decimal maxApprovedFLS = si.ApprovedFLS ?? 0;
decimal totalHours = 0;
foreach (var key in apsByHourlyRate.Keys)
{
IList<VsdApprovalPeriod> list = apsByHourlyRate[key];
var ii = new InvoiceItemDC();
decimal minutesTotal = 0;
DateTime start = DateTime.MaxValue;
DateTime end = DateTime.MinValue;
decimal rf = si.RateFactor ?? 0;
decimal hr = 0;
foreach (var approvalPeriod in list)
{
minutesTotal += approvalPeriod.RecordedMinutes;
if (approvalPeriod.PeriodStartDate < start)
start = approvalPeriod.PeriodStartDate;
if (approvalPeriod.PeriodEndDate > end)
end = approvalPeriod.PeriodEndDate;
hr = approvalPeriod.AmountPerUnit;
if (approvalPeriod.RateFactor.HasValue)
{
rf = approvalPeriod.RateFactor.Value;
}
}
ii.ItemPeriodStart = start;
ii.ItemPeriodEnd = end;
ii.RateFactor = rf;
ii.AmountPerUnit = hr;
decimal hours = Math.Round(minutesTotal / 60m, 2, MidpointRounding.AwayFromZero);
hours *= (100 + rf) / 100;
hours = Math.Round(hours, 2, MidpointRounding.AwayFromZero);
if (totalHours + hours > maxApprovedFLS)
{
hours = maxApprovedFLS - totalHours;
if (hours < 0)
hours = 0;
}
totalHours += hours;
ii.UnitCount = hours;
ii.AmountTotal = Math.Round(hr * hours, 2, MidpointRounding.AwayFromZero);
ii.GrossAmountTotal = ii.AmountTotal;
iiList.Add(ii);
}
return iiList.OrderBy(ii => ii.ItemPeriodStart).ToList();
}
private decimal? CalculateApprovedTotalFLS(IList<ApprovalPeriod> apList)
{
decimal flsTotal = 0;
foreach (var ap in apList)
{
flsTotal += ap.ApprovedTotal;
}
return flsTotal;
}
public override void InitApprovalPeriod(Settlement2DC si, ApprovalPeriod approvalPeriod)
{
base.InitApprovalPeriod(si, approvalPeriod);
approvalPeriod.Weeks = Math.Round(approvalPeriod.Days*0.1427m, 2);
if (approvalPeriod.ApprovalUnit == AccountingIntervalType.Weekly)
{
approvalPeriod.ApprovedTotal = Math.Round(approvalPeriod.Weeks*approvalPeriod.ApprovedPerUnit, 2);
}
approvalPeriod.ApprovedAmountTotal = Math.Round(approvalPeriod.ApprovedTotal * approvalPeriod.AmountPerUnit, 2);
}
public override IList<ApprovalPeriod> CreateApprovalPeriods(Settlement2DC si, CostBearer2SupportConcept c2s)
{
var relDc = c2s.MapToNewDC();
Dictionary<DateTime, VsdApprovalPeriod> dtApDict = new Dictionary<DateTime, VsdApprovalPeriod>();
foreach (var scap in c2s.ApprovalPeriodList)
{
if (scap.StartDate.HasValue && scap.EndDate.HasValue)
{
if (dtApDict.ContainsKey(scap.StartDate.Value))
{
VsdApprovalPeriod apOld = dtApDict[scap.StartDate.Value];
if (apOld.Oid != scap.Oid)
{
var ap = new VsdApprovalPeriod();
ap.PeriodStartDate = scap.StartDate.Value.AddHours(1);
ap.PeriodEndDate = DateTime.MaxValue;
ap.Oid = scap.Oid;
dtApDict.Add(ap.PeriodStartDate, ap);
}
}
if (!dtApDict.ContainsKey(scap.StartDate.Value))
{
if ((scap.ApprovedBEInterval.HasValue && scap.ApprovedBEPerInterval.HasValue) || scap.ApprovedBETotal.HasValue)
{
var ap = new VsdApprovalPeriod();
ap.PeriodStartDate = scap.StartDate.Value;
ap.PeriodEndDate = DateTime.MaxValue;
ap.Oid = scap.Oid;
dtApDict.Add(ap.PeriodStartDate, ap);
}
}
}
}
var hourlyRatesInSpanList = relDc.CostBearer.CostRatePeriods.GetSpans(CostRatePeriodType.HourlyRate,
si.AccountingPeriodStart.Value.Date, si.AccountingPeriodEnd.Value.Date).ToList();
foreach (var keyValuePair in hourlyRatesInSpanList)
{
if (!dtApDict.ContainsKey(keyValuePair.Value.StartDate))
{
var ap = new VsdApprovalPeriod();
ap.PeriodStartDate = keyValuePair.Value.StartDate;
ap.PeriodEndDate = DateTime.MaxValue;
dtApDict.Add(ap.PeriodStartDate, ap);
}
}
var rateFactorInSpanList = relDc.CostBearer.CostRatePeriods.GetSpans(CostRatePeriodType.RateFactor,
si.AccountingPeriodStart.Value.Date, si.AccountingPeriodEnd.Value.Date).ToList();
foreach (var keyValuePair in rateFactorInSpanList)
{
if (!dtApDict.ContainsKey(keyValuePair.Value.StartDate))
{
var ap = new VsdApprovalPeriod();
ap.PeriodStartDate = keyValuePair.Value.StartDate;
ap.PeriodEndDate = DateTime.MaxValue;
dtApDict.Add(ap.PeriodStartDate, ap);
}
}
foreach (var dt in dtApDict.Keys)
{
VsdApprovalPeriod ap = dtApDict[dt];
var hrspan = hourlyRatesInSpanList.FirstOrDefault(ispan => ispan.Value.StartDate <= dt && dt <= ispan.Value.EndDate);
var rfspan = rateFactorInSpanList.FirstOrDefault(ispan => ispan.Value.StartDate <= dt && dt <= ispan.Value.EndDate);
var scap = c2s.ApprovalPeriodList.FirstOrDefault(iscap => iscap.StartDate <= dt && dt <= iscap.EndDate);
foreach (var scapI in c2s.ApprovalPeriodList)
{
if (scapI.Oid.HasValue && scapI.Oid == ap.Oid)
scap = scapI;
}
if (hrspan.Key != null && hrspan.Key.CostRateValue.HasValue)
{
ap.AmountPerUnit = hrspan.Key.CostRateValue.Value;
ap.BillingInterval = AccountingIntervalType.Hourly;
}
if (hrspan.Value != null && hrspan.Value.EndDate < ap.PeriodEndDate)
{
ap.PeriodEndDate = hrspan.Value.EndDate;
}
if (rfspan.Key != null && rfspan.Key.CostRateValue.HasValue)
{
ap.RateFactor = rfspan.Key.CostRateValue.Value;
}
if (rfspan.Value != null && rfspan.Value.EndDate < ap.PeriodEndDate)
{
ap.PeriodEndDate = rfspan.Value.EndDate;
}
if (scap != null)
{
if (scap.EndDate.HasValue && scap.EndDate < ap.PeriodEndDate)
ap.PeriodEndDate = scap.EndDate.Value;
CalculateApprovedAmountForApprovalPeriod(ap, scap);
}
}
var list = dtApDict.Values.OrderBy(ap => ap.PeriodStartDate).ToList();
foreach (var approvalPeriod in list)
{
if (approvalPeriod.PeriodStartDate.Hour != 0)
approvalPeriod.PeriodStartDate = new DateTime(approvalPeriod.PeriodStartDate.Year, approvalPeriod.PeriodStartDate.Month, approvalPeriod.PeriodStartDate.Day, 0, 0, 0);
InitApprovalPeriod(si, approvalPeriod);
}
var returnlist = new List<ApprovalPeriod>();
foreach (var vap in list)
{
returnlist.Add(vap);
}
return returnlist;
}
}
}

View File

@@ -1,14 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using BeWo.Service.Invoicing;
namespace VSDHammReports.Invoicing
{
public class VsdApprovalPeriod : ApprovalPeriod
{
public decimal? RateFactor { get; set; }
public long? Oid { get; set; }
}
}

View File

@@ -95,10 +95,8 @@ namespace VSDHammReports.Alt
this.xrTableRow29 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell48 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell49 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrLabel23 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel22 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel21 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel20 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel19 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel18 = new DevExpress.XtraReports.UI.XRLabel();
this.DetailReport = new DevExpress.XtraReports.UI.DetailReportBand();
@@ -144,7 +142,7 @@ namespace VSDHammReports.Alt
this.xrLabel8.SizeF = new System.Drawing.SizeF(137F, 23.96F);
this.xrLabel8.StylePriority.UseTextAlignment = false;
this.xrLabel8.Text = "xrLabel8";
this.xrLabel8.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
this.xrLabel8.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
//
// xrTable1
//
@@ -872,64 +870,38 @@ namespace VSDHammReports.Alt
this.xrTableCell49.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
this.xrTableCell49.Weight = 0.21685899000901443D;
//
// xrLabel23
//
this.xrLabel23.BackColor = System.Drawing.Color.Transparent;
this.xrLabel23.Borders = DevExpress.XtraPrinting.BorderSide.Bottom;
this.xrLabel23.CanShrink = true;
this.xrLabel23.Font = new System.Drawing.Font("Arial", 12F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))));
this.xrLabel23.LocationFloat = new DevExpress.Utils.PointFloat(303.1248F, 235.625F);
this.xrLabel23.Name = "xrLabel23";
this.xrLabel23.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel23.SizeF = new System.Drawing.SizeF(336.4583F, 20F);
this.xrLabel23.StylePriority.UseBackColor = false;
this.xrLabel23.StylePriority.UseBorders = false;
this.xrLabel23.StylePriority.UseFont = false;
this.xrLabel23.WordWrap = false;
//
// xrLabel22
//
this.xrLabel22.BackColor = System.Drawing.Color.Transparent;
this.xrLabel22.Borders = DevExpress.XtraPrinting.BorderSide.Top;
this.xrLabel22.CanShrink = true;
this.xrLabel22.Font = new System.Drawing.Font("Arial", 10F);
this.xrLabel22.LocationFloat = new DevExpress.Utils.PointFloat(303.1248F, 255.6249F);
this.xrLabel22.Name = "xrLabel22";
this.xrLabel22.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel22.SizeF = new System.Drawing.SizeF(336.4583F, 20F);
this.xrLabel22.SizeF = new System.Drawing.SizeF(346.8752F, 19.99998F);
this.xrLabel22.StylePriority.UseBackColor = false;
this.xrLabel22.StylePriority.UseBorders = false;
this.xrLabel22.StylePriority.UseFont = false;
this.xrLabel22.Text = "Stempel, rechtsverbindliche Unterschrift/en des";
this.xrLabel22.Text = "Stempel, rechtsverbindliche Unterschrift/en";
this.xrLabel22.WordWrap = false;
//
// xrLabel21
//
this.xrLabel21.BackColor = System.Drawing.Color.Transparent;
this.xrLabel21.Borders = DevExpress.XtraPrinting.BorderSide.Top;
this.xrLabel21.CanShrink = true;
this.xrLabel21.Font = new System.Drawing.Font("Arial", 10F);
this.xrLabel21.LocationFloat = new DevExpress.Utils.PointFloat(0F, 255.6249F);
this.xrLabel21.Name = "xrLabel21";
this.xrLabel21.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel21.SizeF = new System.Drawing.SizeF(218.75F, 20F);
this.xrLabel21.SizeF = new System.Drawing.SizeF(229.1667F, 19.99998F);
this.xrLabel21.StylePriority.UseBackColor = false;
this.xrLabel21.StylePriority.UseBorders = false;
this.xrLabel21.StylePriority.UseFont = false;
this.xrLabel21.Text = "Ort, Datum";
this.xrLabel21.WordWrap = false;
//
// xrLabel20
//
this.xrLabel20.BackColor = System.Drawing.Color.Transparent;
this.xrLabel20.Borders = DevExpress.XtraPrinting.BorderSide.Bottom;
this.xrLabel20.CanShrink = true;
this.xrLabel20.Font = new System.Drawing.Font("Arial", 12F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))));
this.xrLabel20.LocationFloat = new DevExpress.Utils.PointFloat(0F, 235.625F);
this.xrLabel20.Name = "xrLabel20";
this.xrLabel20.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel20.SizeF = new System.Drawing.SizeF(229.1667F, 20F);
this.xrLabel20.StylePriority.UseBackColor = false;
this.xrLabel20.StylePriority.UseBorders = false;
this.xrLabel20.StylePriority.UseFont = false;
this.xrLabel20.WordWrap = false;
//
// xrLabel19
//
this.xrLabel19.BackColor = System.Drawing.Color.Transparent;
@@ -939,7 +911,7 @@ namespace VSDHammReports.Alt
this.xrLabel19.Multiline = true;
this.xrLabel19.Name = "xrLabel19";
this.xrLabel19.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel19.SizeF = new System.Drawing.SizeF(639.5833F, 73.95834F);
this.xrLabel19.SizeF = new System.Drawing.SizeF(650F, 73.95835F);
this.xrLabel19.StylePriority.UseBackColor = false;
this.xrLabel19.StylePriority.UseFont = false;
this.xrLabel19.Text = resources.GetString("xrLabel19.Text");
@@ -1036,10 +1008,8 @@ namespace VSDHammReports.Alt
this.xrLabel6,
this.xrLabel18,
this.xrLabel19,
this.xrLabel20,
this.xrLabel21,
this.xrLabel22,
this.xrLabel23});
this.xrLabel22});
this.ReportFooter.Font = new System.Drawing.Font("Arial", 12F);
this.ReportFooter.HeightF = 275.6249F;
this.ReportFooter.Name = "ReportFooter";
@@ -1211,10 +1181,8 @@ namespace VSDHammReports.Alt
private DevExpress.XtraReports.UI.XRTableCell xrTableCell2;
private DevExpress.XtraReports.UI.XRLabel xrLabel18;
private DevExpress.XtraReports.UI.XRLabel xrLabel19;
private DevExpress.XtraReports.UI.XRLabel xrLabel23;
private DevExpress.XtraReports.UI.XRLabel xrLabel22;
private DevExpress.XtraReports.UI.XRLabel xrLabel21;
private DevExpress.XtraReports.UI.XRLabel xrLabel20;
private DevExpress.XtraReports.UI.DetailReportBand DetailReport;
private DevExpress.XtraReports.UI.DetailBand Detail1;
private DevExpress.XtraReports.UI.XRTable xrTable6;

View File

@@ -44,10 +44,8 @@ namespace VSDHammReports
this.xrTable7 = new DevExpress.XtraReports.UI.XRTable();
this.xrTableRow3 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell3 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrLabel23 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel22 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel21 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel20 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel19 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel7 = new DevExpress.XtraReports.UI.XRLabel();
this.xrTable3 = new DevExpress.XtraReports.UI.XRTable();
@@ -97,7 +95,14 @@ namespace VSDHammReports
this.xrTableRow33 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell52 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell53 = new DevExpress.XtraReports.UI.XRTableCell();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
this.GroupHeader2 = new DevExpress.XtraReports.UI.GroupHeaderBand();
this.Zwischensumme = new DevExpress.XtraReports.UI.GroupFooterBand();
this.xrTable8 = new DevExpress.XtraReports.UI.XRTable();
this.xrTableRow12 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell9 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell10 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableRow4 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell7 = new DevExpress.XtraReports.UI.XRTableCell();
this.GroupFooter1 = new DevExpress.XtraReports.UI.GroupFooterBand();
this.xrTable5 = new DevExpress.XtraReports.UI.XRTable();
this.xrTableRow30 = new DevExpress.XtraReports.UI.XRTableRow();
@@ -118,23 +123,16 @@ namespace VSDHammReports
this.xrTableRow37 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell59 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell60 = new DevExpress.XtraReports.UI.XRTableCell();
this.GroupHeader2 = new DevExpress.XtraReports.UI.GroupHeaderBand();
this.Zwischensumme = new DevExpress.XtraReports.UI.GroupFooterBand();
this.xrTable8 = new DevExpress.XtraReports.UI.XRTable();
this.xrTableRow12 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell9 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell10 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableRow4 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell7 = new DevExpress.XtraReports.UI.XRTableCell();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
((System.ComponentModel.ISupportInitialize)(this.xrTable7)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable3)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable2)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable6)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable4)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable5)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable8)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable5)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this)).BeginInit();
//
// Detail
@@ -222,10 +220,8 @@ namespace VSDHammReports
this.ReportFooter.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrLabel11,
this.xrTable7,
this.xrLabel23,
this.xrLabel22,
this.xrLabel21,
this.xrLabel20,
this.xrLabel19,
this.xrLabel7,
this.xrTable3,
@@ -276,64 +272,38 @@ namespace VSDHammReports
this.xrTableCell3.Text = "xrTableCell4";
this.xrTableCell3.Weight = 3D;
//
// xrLabel23
//
this.xrLabel23.BackColor = System.Drawing.Color.Transparent;
this.xrLabel23.Borders = DevExpress.XtraPrinting.BorderSide.Bottom;
this.xrLabel23.CanShrink = true;
this.xrLabel23.Font = new System.Drawing.Font("Arial", 12F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))));
this.xrLabel23.LocationFloat = new DevExpress.Utils.PointFloat(303.1248F, 224.7916F);
this.xrLabel23.Name = "xrLabel23";
this.xrLabel23.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel23.SizeF = new System.Drawing.SizeF(336.4583F, 20F);
this.xrLabel23.StylePriority.UseBackColor = false;
this.xrLabel23.StylePriority.UseBorders = false;
this.xrLabel23.StylePriority.UseFont = false;
this.xrLabel23.WordWrap = false;
//
// xrLabel22
//
this.xrLabel22.BackColor = System.Drawing.Color.Transparent;
this.xrLabel22.Borders = DevExpress.XtraPrinting.BorderSide.Top;
this.xrLabel22.CanShrink = true;
this.xrLabel22.Font = new System.Drawing.Font("Arial", 10F);
this.xrLabel22.LocationFloat = new DevExpress.Utils.PointFloat(303.1248F, 244.7915F);
this.xrLabel22.Name = "xrLabel22";
this.xrLabel22.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel22.SizeF = new System.Drawing.SizeF(336.4583F, 20F);
this.xrLabel22.SizeF = new System.Drawing.SizeF(346.8752F, 20F);
this.xrLabel22.StylePriority.UseBackColor = false;
this.xrLabel22.StylePriority.UseBorders = false;
this.xrLabel22.StylePriority.UseFont = false;
this.xrLabel22.Text = "Stempel, rechtsverbindliche Unterschrift/en des";
this.xrLabel22.Text = "Stempel, rechtsverbindliche Unterschrift/en";
this.xrLabel22.WordWrap = false;
//
// xrLabel21
//
this.xrLabel21.BackColor = System.Drawing.Color.Transparent;
this.xrLabel21.Borders = DevExpress.XtraPrinting.BorderSide.Top;
this.xrLabel21.CanShrink = true;
this.xrLabel21.Font = new System.Drawing.Font("Arial", 10F);
this.xrLabel21.LocationFloat = new DevExpress.Utils.PointFloat(0F, 244.7915F);
this.xrLabel21.Name = "xrLabel21";
this.xrLabel21.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel21.SizeF = new System.Drawing.SizeF(218.75F, 20F);
this.xrLabel21.SizeF = new System.Drawing.SizeF(229.1667F, 20F);
this.xrLabel21.StylePriority.UseBackColor = false;
this.xrLabel21.StylePriority.UseBorders = false;
this.xrLabel21.StylePriority.UseFont = false;
this.xrLabel21.Text = "Ort, Datum";
this.xrLabel21.WordWrap = false;
//
// xrLabel20
//
this.xrLabel20.BackColor = System.Drawing.Color.Transparent;
this.xrLabel20.Borders = DevExpress.XtraPrinting.BorderSide.Bottom;
this.xrLabel20.CanShrink = true;
this.xrLabel20.Font = new System.Drawing.Font("Arial", 12F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))));
this.xrLabel20.LocationFloat = new DevExpress.Utils.PointFloat(0F, 224.7916F);
this.xrLabel20.Name = "xrLabel20";
this.xrLabel20.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel20.SizeF = new System.Drawing.SizeF(229.1667F, 20F);
this.xrLabel20.StylePriority.UseBackColor = false;
this.xrLabel20.StylePriority.UseBorders = false;
this.xrLabel20.StylePriority.UseFont = false;
this.xrLabel20.WordWrap = false;
//
// xrLabel19
//
this.xrLabel19.BackColor = System.Drawing.Color.Transparent;
@@ -929,9 +899,94 @@ namespace VSDHammReports
this.xrTableCell53.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
this.xrTableCell53.Weight = 0.21685899000901443D;
//
// bindingSource1
// GroupHeader2
//
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.Settlement2RO);
this.GroupHeader2.GroupFields.AddRange(new DevExpress.XtraReports.UI.GroupField[] {
new DevExpress.XtraReports.UI.GroupField("RateFactor", DevExpress.XtraReports.UI.XRColumnSortOrder.Descending)});
this.GroupHeader2.HeightF = 0F;
this.GroupHeader2.Name = "GroupHeader2";
//
// Zwischensumme
//
this.Zwischensumme.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrTable8});
this.Zwischensumme.HeightF = 26F;
this.Zwischensumme.Name = "Zwischensumme";
this.Zwischensumme.Visible = false;
//
// xrTable8
//
this.xrTable8.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
this.xrTable8.Name = "xrTable8";
this.xrTable8.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
this.xrTableRow12,
this.xrTableRow4});
this.xrTable8.SizeF = new System.Drawing.SizeF(650F, 26F);
this.xrTable8.StylePriority.UseFont = false;
//
// xrTableRow12
//
this.xrTableRow12.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
this.xrTableCell9,
this.xrTableCell10});
this.xrTableRow12.Name = "xrTableRow12";
this.xrTableRow12.Weight = 0.40476190476190466D;
//
// xrTableCell9
//
this.xrTableCell9.BorderColor = System.Drawing.SystemColors.ControlLight;
this.xrTableCell9.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell9.Font = new System.Drawing.Font("Arial", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.xrTableCell9.Name = "xrTableCell9";
this.xrTableCell9.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell9.StylePriority.UseBorderColor = false;
this.xrTableCell9.StylePriority.UseBorders = false;
this.xrTableCell9.StylePriority.UseFont = false;
this.xrTableCell9.StylePriority.UsePadding = false;
this.xrTableCell9.Text = "Zwischensumme [ItemDescription]:";
this.xrTableCell9.Weight = 2.3494233116736778D;
//
// xrTableCell10
//
this.xrTableCell10.BorderColor = System.Drawing.SystemColors.ControlLight;
this.xrTableCell10.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell10.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "InvoiceItems.GrossAmountTotal")});
this.xrTableCell10.Font = new System.Drawing.Font("Arial", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.xrTableCell10.Name = "xrTableCell10";
this.xrTableCell10.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell10.StylePriority.UseBorderColor = false;
this.xrTableCell10.StylePriority.UseBorders = false;
this.xrTableCell10.StylePriority.UseFont = false;
this.xrTableCell10.StylePriority.UsePadding = false;
this.xrTableCell10.StylePriority.UseTextAlignment = false;
xrSummary1.FormatString = "{0:c}";
xrSummary1.Running = DevExpress.XtraReports.UI.SummaryRunning.Group;
this.xrTableCell10.Summary = xrSummary1;
this.xrTableCell10.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
this.xrTableCell10.Weight = 0.650576688326322D;
//
// xrTableRow4
//
this.xrTableRow4.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
this.xrTableCell7});
this.xrTableRow4.Name = "xrTableRow4";
this.xrTableRow4.Weight = 0.21428571428571425D;
//
// xrTableCell7
//
this.xrTableCell7.BorderColor = System.Drawing.SystemColors.ControlLight;
this.xrTableCell7.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell7.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.xrTableCell7.Name = "xrTableCell7";
this.xrTableCell7.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell7.StylePriority.UseBorderColor = false;
this.xrTableCell7.StylePriority.UseBorders = false;
this.xrTableCell7.StylePriority.UseFont = false;
this.xrTableCell7.StylePriority.UsePadding = false;
this.xrTableCell7.Weight = 3D;
//
// GroupFooter1
//
@@ -1151,94 +1206,9 @@ namespace VSDHammReports
this.xrTableCell60.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
this.xrTableCell60.Weight = 0.21685899000901443D;
//
// GroupHeader2
// bindingSource1
//
this.GroupHeader2.GroupFields.AddRange(new DevExpress.XtraReports.UI.GroupField[] {
new DevExpress.XtraReports.UI.GroupField("RateFactor", DevExpress.XtraReports.UI.XRColumnSortOrder.Descending)});
this.GroupHeader2.HeightF = 0F;
this.GroupHeader2.Name = "GroupHeader2";
//
// Zwischensumme
//
this.Zwischensumme.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrTable8});
this.Zwischensumme.HeightF = 26F;
this.Zwischensumme.Name = "Zwischensumme";
this.Zwischensumme.Visible = false;
//
// xrTable8
//
this.xrTable8.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
this.xrTable8.Name = "xrTable8";
this.xrTable8.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
this.xrTableRow12,
this.xrTableRow4});
this.xrTable8.SizeF = new System.Drawing.SizeF(650F, 26F);
this.xrTable8.StylePriority.UseFont = false;
//
// xrTableRow12
//
this.xrTableRow12.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
this.xrTableCell9,
this.xrTableCell10});
this.xrTableRow12.Name = "xrTableRow12";
this.xrTableRow12.Weight = 0.40476190476190466D;
//
// xrTableCell9
//
this.xrTableCell9.BorderColor = System.Drawing.SystemColors.ControlLight;
this.xrTableCell9.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell9.Font = new System.Drawing.Font("Arial", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.xrTableCell9.Name = "xrTableCell9";
this.xrTableCell9.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell9.StylePriority.UseBorderColor = false;
this.xrTableCell9.StylePriority.UseBorders = false;
this.xrTableCell9.StylePriority.UseFont = false;
this.xrTableCell9.StylePriority.UsePadding = false;
this.xrTableCell9.Text = "Zwischensumme [ItemDescription]:";
this.xrTableCell9.Weight = 2.3494233116736778D;
//
// xrTableCell10
//
this.xrTableCell10.BorderColor = System.Drawing.SystemColors.ControlLight;
this.xrTableCell10.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell10.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "InvoiceItems.GrossAmountTotal")});
this.xrTableCell10.Font = new System.Drawing.Font("Arial", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.xrTableCell10.Name = "xrTableCell10";
this.xrTableCell10.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell10.StylePriority.UseBorderColor = false;
this.xrTableCell10.StylePriority.UseBorders = false;
this.xrTableCell10.StylePriority.UseFont = false;
this.xrTableCell10.StylePriority.UsePadding = false;
this.xrTableCell10.StylePriority.UseTextAlignment = false;
xrSummary1.FormatString = "{0:c}";
xrSummary1.Running = DevExpress.XtraReports.UI.SummaryRunning.Group;
this.xrTableCell10.Summary = xrSummary1;
this.xrTableCell10.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
this.xrTableCell10.Weight = 0.650576688326322D;
//
// xrTableRow4
//
this.xrTableRow4.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
this.xrTableCell7});
this.xrTableRow4.Name = "xrTableRow4";
this.xrTableRow4.Weight = 0.21428571428571425D;
//
// xrTableCell7
//
this.xrTableCell7.BorderColor = System.Drawing.SystemColors.ControlLight;
this.xrTableCell7.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell7.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.xrTableCell7.Name = "xrTableCell7";
this.xrTableCell7.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell7.StylePriority.UseBorderColor = false;
this.xrTableCell7.StylePriority.UseBorders = false;
this.xrTableCell7.StylePriority.UseFont = false;
this.xrTableCell7.StylePriority.UsePadding = false;
this.xrTableCell7.Weight = 3D;
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.Settlement2RO);
//
// Spitzabrechnung
//
@@ -1267,9 +1237,9 @@ namespace VSDHammReports
((System.ComponentModel.ISupportInitialize)(this.xrTable2)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable6)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable4)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable5)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable8)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable5)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this)).EndInit();
}
@@ -1349,10 +1319,8 @@ namespace VSDHammReports
private DevExpress.XtraReports.UI.XRLabel xrLabel2;
private DevExpress.XtraReports.UI.XRLabel xrLabel4;
private DevExpress.XtraReports.UI.XRLabel xrLabel18;
private DevExpress.XtraReports.UI.XRLabel xrLabel23;
private DevExpress.XtraReports.UI.XRLabel xrLabel22;
private DevExpress.XtraReports.UI.XRLabel xrLabel21;
private DevExpress.XtraReports.UI.XRLabel xrLabel20;
private DevExpress.XtraReports.UI.XRLabel xrLabel19;
private DevExpress.XtraReports.UI.XRLabel xrLabel7;
private DevExpress.XtraReports.UI.XRLabel xrLabel10;

View File

@@ -88,8 +88,6 @@
<Compile Include="InvoiceCustomerReport.designer.cs">
<DependentUpon>InvoiceCustomerReport.cs</DependentUpon>
</Compile>
<Compile Include="Invoicing\VsdApprovalPeriod.cs" />
<Compile Include="Invoicing\VSDSettlementInvoiceCreation.cs" />
<Compile Include="KlientenJeMitarbeiter.cs">
<SubType>Component</SubType>
</Compile>