diff --git a/.gitignore b/.gitignore
index 089f943c6..f90ebde17 100644
--- a/.gitignore
+++ b/.gitignore
@@ -503,3 +503,4 @@
/ReportImp/VereinSozialmedizinStade/obj/Release
/ReportImp/VereinSozialmedizinStade/obj/Debug
/ReportImp/BewegtSystemischeBeratung/obj/Release
+/ReportImp/Bewolonia/obj/Debug
diff --git a/BeWo.sln b/BeWo.sln
index bfbca2d3f..6067fc8c4 100644
--- a/BeWo.sln
+++ b/BeWo.sln
@@ -457,6 +457,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BeWoFuerDich", "ReportImp\B
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TeamPfeil", "ReportImp\TeamPfeil\TeamPfeil.csproj", "{B0C86A71-94ED-4F0D-98B3-49DB04056882}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bewolonia", "ReportImp\Bewolonia\Bewolonia.csproj", "{B289C237-C966-41A0-8968-C04D0004F30B}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|.NET = Debug|.NET
@@ -3500,6 +3502,22 @@ Global
{B0C86A71-94ED-4F0D-98B3-49DB04056882}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{B0C86A71-94ED-4F0D-98B3-49DB04056882}.Release|x86.ActiveCfg = Release|Any CPU
{B0C86A71-94ED-4F0D-98B3-49DB04056882}.Release|x86.Build.0 = Release|Any CPU
+ {B289C237-C966-41A0-8968-C04D0004F30B}.Debug|.NET.ActiveCfg = Debug|Any CPU
+ {B289C237-C966-41A0-8968-C04D0004F30B}.Debug|.NET.Build.0 = Debug|Any CPU
+ {B289C237-C966-41A0-8968-C04D0004F30B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B289C237-C966-41A0-8968-C04D0004F30B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B289C237-C966-41A0-8968-C04D0004F30B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {B289C237-C966-41A0-8968-C04D0004F30B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {B289C237-C966-41A0-8968-C04D0004F30B}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {B289C237-C966-41A0-8968-C04D0004F30B}.Debug|x86.Build.0 = Debug|Any CPU
+ {B289C237-C966-41A0-8968-C04D0004F30B}.Release|.NET.ActiveCfg = Release|Any CPU
+ {B289C237-C966-41A0-8968-C04D0004F30B}.Release|.NET.Build.0 = Release|Any CPU
+ {B289C237-C966-41A0-8968-C04D0004F30B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B289C237-C966-41A0-8968-C04D0004F30B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B289C237-C966-41A0-8968-C04D0004F30B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {B289C237-C966-41A0-8968-C04D0004F30B}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {B289C237-C966-41A0-8968-C04D0004F30B}.Release|x86.ActiveCfg = Release|Any CPU
+ {B289C237-C966-41A0-8968-C04D0004F30B}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -3724,6 +3742,7 @@ Global
{976CC5EF-26C9-4415-84C6-33A450222F04} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{BFEE49FD-BCFB-4B6D-BE98-0019A568DE85} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{B0C86A71-94ED-4F0D-98B3-49DB04056882} = {D8A691C5-146D-4613-86CC-438F02FE9106}
+ {B289C237-C966-41A0-8968-C04D0004F30B} = {D8A691C5-146D-4613-86CC-438F02FE9106}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {FBE985BB-9F0F-4DBB-8F94-ABC37A803FF9}
diff --git a/BeWo/BeWo.csproj b/BeWo/BeWo.csproj
index fc858a57a..f6a418f29 100644
--- a/BeWo/BeWo.csproj
+++ b/BeWo/BeWo.csproj
@@ -922,6 +922,7 @@
+
@@ -991,6 +992,7 @@
DPCtrlDienstTooltip.xaml
+
diff --git a/BeWo/ServiceProxy/Generated.cs b/BeWo/ServiceProxy/Generated.cs
index 456ba397b..4e356b409 100644
--- a/BeWo/ServiceProxy/Generated.cs
+++ b/BeWo/ServiceProxy/Generated.cs
@@ -1580,6 +1580,8 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Employee2SchedulerAppointmentDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary>))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.DokumentvorlageDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ConfirmationReceiptSignatureDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.DienstplanerRootDC))]
@@ -1597,6 +1599,10 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.BesetzungsstatusDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.FeiertagDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.DienstplanerMonthlySummaryDC))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
+ [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.RegelmaessigerDienstDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.FlexibleReportFilterDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.FlexibleReportResultDC))]
@@ -1615,8 +1621,6 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AbsenceOverviewFilterDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.VorlagentabelleDC))]
- [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.DokumentvorlageDC))]
- [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.PlatzhalterDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
@@ -1704,7 +1708,6 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.UiElementType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary>))]
- [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary))]
@@ -4840,6 +4843,28 @@ namespace BeWo.ServiceProxy
public interface IOperationsService
{
+ [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/GetDokumentvorlagenInFolder", ReplyAction="http://tempuri.org/IOperationsService/GetDokumentvorlagenInFolderResponse")]
+ [System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/GetDokumentvorlagenInFolderBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
+ System.Collections.Generic.List GetDokumentvorlagenInFolder(long folderOid);
+
+ [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/GetSupportConceptsById", ReplyAction="http://tempuri.org/IOperationsService/GetSupportConceptsByIdResponse")]
+ [System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/GetSupportConceptsByIdBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
+ System.Collections.Generic.List GetSupportConceptsById(System.Collections.Generic.List idList);
+
+ [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/DeleteTemplates", ReplyAction="http://tempuri.org/IOperationsService/DeleteTemplatesResponse")]
+ [System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/DeleteTemplatesBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
+ void DeleteTemplates(System.Collections.Generic.List vorlagen);
+
+ [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/HasConfirmationReceiptSignature", ReplyAction="http://tempuri.org/IOperationsService/HasConfirmationReceiptSignatureResponse")]
+ [System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/HasConfirmationReceiptSignatureBeWoFaultFau" +
+ "lt", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
+ bool HasConfirmationReceiptSignature(System.Collections.Generic.List serviceRecordOids, BS.Shared.SignatureType signatureType);
+
+ [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/ReplacePlaceholdersInTemplate", ReplyAction="http://tempuri.org/IOperationsService/ReplacePlaceholdersInTemplateResponse")]
+ [System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/ReplacePlaceholdersInTemplateBeWoFaultFault" +
+ "", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
+ string ReplacePlaceholdersInTemplate(BS.Shared.DataContracts.DokumentvorlageDC template, System.Nullable objectOid, System.Nullable tableOid);
+
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/InsertFileAttachment", ReplyAction="http://tempuri.org/IOperationsService/InsertFileAttachmentResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/InsertFileAttachmentBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
void InsertFileAttachment(BS.Shared.DataContracts.FileAttachmentDC fileAttachmentDC);
@@ -4920,13 +4945,7 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/BuildDienstplanerRootObject", ReplyAction="http://tempuri.org/IOperationsService/BuildDienstplanerRootObjectResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/BuildDienstplanerRootObjectBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
- BS.Shared.DataContracts.DienstplanerRootDC BuildDienstplanerRootObject();
-
- [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/AddMissingDataToDienstplanerRootObject", ReplyAction="http://tempuri.org/IOperationsService/AddMissingDataToDienstplanerRootObjectRespo" +
- "nse")]
- [System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/AddMissingDataToDienstplanerRootObjectBeWoF" +
- "aultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
- BS.Shared.DataContracts.DienstplanerRootDC AddMissingDataToDienstplanerRootObject(BS.Shared.DataContracts.DienstplanerRootDC root, System.DateTime date, long wohnheimOid);
+ BS.Shared.DataContracts.DienstplanerRootDC BuildDienstplanerRootObject(System.DateTime date, long wohnheimOid);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/GetColorForServiceRecordView2", ReplyAction="http://tempuri.org/IOperationsService/GetColorForServiceRecordView2Response")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/GetColorForServiceRecordView2BeWoFaultFault" +
@@ -5000,6 +5019,10 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/GetAllAbsenceReasonBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List GetAllAbsenceReason();
+ [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/GetCertainTeamsById", ReplyAction="http://tempuri.org/IOperationsService/GetCertainTeamsByIdResponse")]
+ [System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/GetCertainTeamsByIdBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
+ System.Collections.Generic.List GetCertainTeamsById(System.Collections.Generic.List oids);
+
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/UpdateAbsenceTimeWithReturn", ReplyAction="http://tempuri.org/IOperationsService/UpdateAbsenceTimeWithReturnResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/UpdateAbsenceTimeWithReturnBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
BS.Shared.DataContracts.AbsenceTimeDC UpdateAbsenceTimeWithReturn(BS.Shared.DataContracts.AbsenceTimeDC absenceTimeDC);
@@ -5012,6 +5035,10 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/DeleteAbsenceTimeBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
void DeleteAbsenceTime(BS.Shared.DataContracts.AbsenceTimeDC absenceTimeDC);
+ [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/GetAbsenceTimesForMonth", ReplyAction="http://tempuri.org/IOperationsService/GetAbsenceTimesForMonthResponse")]
+ [System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/GetAbsenceTimesForMonthBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
+ System.Collections.Generic.List GetAbsenceTimesForMonth(long empOid, System.DateTime date, long absenceReason);
+
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/GetSupportConceptCostBearerRelDCsByOids", ReplyAction="http://tempuri.org/IOperationsService/GetSupportConceptCostBearerRelDCsByOidsResp" +
"onse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/GetSupportConceptCostBearerRelDCsByOidsBeWo" +
@@ -5127,6 +5154,14 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/InsertNewDienstEintragBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
void InsertNewDienstEintrag(BS.Shared.DataContracts.DienstEintragDC dienstEintrag);
+ [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/InsertRegelmaessigerDienst", ReplyAction="http://tempuri.org/IOperationsService/InsertRegelmaessigerDienstResponse")]
+ [System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/InsertRegelmaessigerDienstBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
+ void InsertRegelmaessigerDienst(BS.Shared.DataContracts.RegelmaessigerDienstDC dienst);
+
+ [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/DeleteRegelmaessigerDienst", ReplyAction="http://tempuri.org/IOperationsService/DeleteRegelmaessigerDienstResponse")]
+ [System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/DeleteRegelmaessigerDienstBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
+ void DeleteRegelmaessigerDienst(BS.Shared.DataContracts.RegelmaessigerDienstDC dienst);
+
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/InsertNewDienstvertretung", ReplyAction="http://tempuri.org/IOperationsService/InsertNewDienstvertretungResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/InsertNewDienstvertretungBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
void InsertNewDienstvertretung(BS.Shared.DataContracts.DienstvertretungDC dienstvertretung);
@@ -5224,28 +5259,6 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/GetVorlagentabelleByIdBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
BS.Shared.DataContracts.VorlagentabelleDC GetVorlagentabelleById(long oid);
- [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/GetDokumentvorlagenInFolder", ReplyAction="http://tempuri.org/IOperationsService/GetDokumentvorlagenInFolderResponse")]
- [System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/GetDokumentvorlagenInFolderBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
- System.Collections.Generic.List GetDokumentvorlagenInFolder(long folderOid);
-
- [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/GetSupportConceptsById", ReplyAction="http://tempuri.org/IOperationsService/GetSupportConceptsByIdResponse")]
- [System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/GetSupportConceptsByIdBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
- System.Collections.Generic.List GetSupportConceptsById(System.Collections.Generic.List idList);
-
- [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/DeleteTemplates", ReplyAction="http://tempuri.org/IOperationsService/DeleteTemplatesResponse")]
- [System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/DeleteTemplatesBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
- void DeleteTemplates(System.Collections.Generic.List vorlagen);
-
- [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/HasConfirmationReceiptSignature", ReplyAction="http://tempuri.org/IOperationsService/HasConfirmationReceiptSignatureResponse")]
- [System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/HasConfirmationReceiptSignatureBeWoFaultFau" +
- "lt", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
- bool HasConfirmationReceiptSignature(System.Collections.Generic.List serviceRecordOids, BS.Shared.SignatureType signatureType);
-
- [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/ReplacePlaceholdersInTemplate", ReplyAction="http://tempuri.org/IOperationsService/ReplacePlaceholdersInTemplateResponse")]
- [System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/ReplacePlaceholdersInTemplateBeWoFaultFault" +
- "", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
- string ReplacePlaceholdersInTemplate(BS.Shared.DataContracts.DokumentvorlageDC template, System.Nullable objectOid, System.Nullable tableOid);
-
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/UpdateIsChatActiveCustomerAPPCodeDC", ReplyAction="http://tempuri.org/IOperationsService/UpdateIsChatActiveCustomerAPPCodeDCResponse" +
"")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/UpdateIsChatActiveCustomerAPPCodeDCBeWoFaul" +
@@ -6146,6 +6159,31 @@ namespace BeWo.ServiceProxy
{
}
+ public System.Collections.Generic.List GetDokumentvorlagenInFolder(long folderOid)
+ {
+ return base.Channel.GetDokumentvorlagenInFolder(folderOid);
+ }
+
+ public System.Collections.Generic.List GetSupportConceptsById(System.Collections.Generic.List idList)
+ {
+ return base.Channel.GetSupportConceptsById(idList);
+ }
+
+ public void DeleteTemplates(System.Collections.Generic.List vorlagen)
+ {
+ base.Channel.DeleteTemplates(vorlagen);
+ }
+
+ public bool HasConfirmationReceiptSignature(System.Collections.Generic.List serviceRecordOids, BS.Shared.SignatureType signatureType)
+ {
+ return base.Channel.HasConfirmationReceiptSignature(serviceRecordOids, signatureType);
+ }
+
+ public string ReplacePlaceholdersInTemplate(BS.Shared.DataContracts.DokumentvorlageDC template, System.Nullable objectOid, System.Nullable tableOid)
+ {
+ return base.Channel.ReplacePlaceholdersInTemplate(template, objectOid, tableOid);
+ }
+
public void InsertFileAttachment(BS.Shared.DataContracts.FileAttachmentDC fileAttachmentDC)
{
base.Channel.InsertFileAttachment(fileAttachmentDC);
@@ -6216,14 +6254,9 @@ namespace BeWo.ServiceProxy
return base.Channel.GetColorForForeground();
}
- public BS.Shared.DataContracts.DienstplanerRootDC BuildDienstplanerRootObject()
+ public BS.Shared.DataContracts.DienstplanerRootDC BuildDienstplanerRootObject(System.DateTime date, long wohnheimOid)
{
- return base.Channel.BuildDienstplanerRootObject();
- }
-
- public BS.Shared.DataContracts.DienstplanerRootDC AddMissingDataToDienstplanerRootObject(BS.Shared.DataContracts.DienstplanerRootDC root, System.DateTime date, long wohnheimOid)
- {
- return base.Channel.AddMissingDataToDienstplanerRootObject(root, date, wohnheimOid);
+ return base.Channel.BuildDienstplanerRootObject(date, wohnheimOid);
}
public string GetColorForServiceRecordView2()
@@ -6301,6 +6334,11 @@ namespace BeWo.ServiceProxy
return base.Channel.GetAllAbsenceReason();
}
+ public System.Collections.Generic.List GetCertainTeamsById(System.Collections.Generic.List oids)
+ {
+ return base.Channel.GetCertainTeamsById(oids);
+ }
+
public BS.Shared.DataContracts.AbsenceTimeDC UpdateAbsenceTimeWithReturn(BS.Shared.DataContracts.AbsenceTimeDC absenceTimeDC)
{
return base.Channel.UpdateAbsenceTimeWithReturn(absenceTimeDC);
@@ -6316,6 +6354,11 @@ namespace BeWo.ServiceProxy
base.Channel.DeleteAbsenceTime(absenceTimeDC);
}
+ public System.Collections.Generic.List GetAbsenceTimesForMonth(long empOid, System.DateTime date, long absenceReason)
+ {
+ return base.Channel.GetAbsenceTimesForMonth(empOid, date, absenceReason);
+ }
+
public System.Collections.Generic.List GetSupportConceptCostBearerRelDCsByOids(System.Collections.Generic.List supportConcept2CostbearerOids)
{
return base.Channel.GetSupportConceptCostBearerRelDCsByOids(supportConcept2CostbearerOids);
@@ -6441,6 +6484,16 @@ namespace BeWo.ServiceProxy
base.Channel.InsertNewDienstEintrag(dienstEintrag);
}
+ public void InsertRegelmaessigerDienst(BS.Shared.DataContracts.RegelmaessigerDienstDC dienst)
+ {
+ base.Channel.InsertRegelmaessigerDienst(dienst);
+ }
+
+ public void DeleteRegelmaessigerDienst(BS.Shared.DataContracts.RegelmaessigerDienstDC dienst)
+ {
+ base.Channel.DeleteRegelmaessigerDienst(dienst);
+ }
+
public void InsertNewDienstvertretung(BS.Shared.DataContracts.DienstvertretungDC dienstvertretung)
{
base.Channel.InsertNewDienstvertretung(dienstvertretung);
@@ -6546,31 +6599,6 @@ namespace BeWo.ServiceProxy
return base.Channel.GetVorlagentabelleById(oid);
}
- public System.Collections.Generic.List GetDokumentvorlagenInFolder(long folderOid)
- {
- return base.Channel.GetDokumentvorlagenInFolder(folderOid);
- }
-
- public System.Collections.Generic.List GetSupportConceptsById(System.Collections.Generic.List idList)
- {
- return base.Channel.GetSupportConceptsById(idList);
- }
-
- public void DeleteTemplates(System.Collections.Generic.List vorlagen)
- {
- base.Channel.DeleteTemplates(vorlagen);
- }
-
- public bool HasConfirmationReceiptSignature(System.Collections.Generic.List serviceRecordOids, BS.Shared.SignatureType signatureType)
- {
- return base.Channel.HasConfirmationReceiptSignature(serviceRecordOids, signatureType);
- }
-
- public string ReplacePlaceholdersInTemplate(BS.Shared.DataContracts.DokumentvorlageDC template, System.Nullable objectOid, System.Nullable tableOid)
- {
- return base.Channel.ReplacePlaceholdersInTemplate(template, objectOid, tableOid);
- }
-
public void UpdateIsChatActiveCustomerAPPCodeDC(long customerOid, int activeType)
{
base.Channel.UpdateIsChatActiveCustomerAPPCodeDC(customerOid, activeType);
diff --git a/BeWo/View/Controls/DPCtrlEmployee.cs b/BeWo/View/Controls/DPCtrlEmployee.cs
index 66ebfc37a..0268bb423 100644
--- a/BeWo/View/Controls/DPCtrlEmployee.cs
+++ b/BeWo/View/Controls/DPCtrlEmployee.cs
@@ -1,10 +1,13 @@
-using BS.Shared.DataContracts;
+using BeWo.View.Detail.Report;
+using BS.Shared.DataContracts;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
+using System.Windows.Input;
+using System.Windows.Media;
namespace BeWo.View.Controls
{
@@ -67,6 +70,27 @@ namespace BeWo.View.Controls
InitializeComponent();
FontSize = 12;
txt.HorizontalAlignment = HorizontalAlignment.Left;
+
+ MouseDown += DienstplanerControl_MouseDown;
+ }
+
+ private void DienstplanerControl_MouseDown(object sender, MouseButtonEventArgs e)
+ {
+ DienstplanerView entryView = null;
+
+ System.Windows.DependencyObject parent = VisualTreeHelper.GetParent(this);
+
+ while (parent != null && entryView == null)
+ {
+ entryView = parent as DienstplanerView;
+ var fe = parent as FrameworkElement;
+ parent = fe != null ? VisualTreeHelper.GetParent(fe) : null;
+ }
+
+ if (entryView != null)
+ {
+ entryView.DienstplanerControl_MouseDown(sender, e);
+ }
}
public DPCtrlEmployeeInformation EmployeeInformation
diff --git a/BeWo/View/Controls/DPCtrlSaldo.cs b/BeWo/View/Controls/DPCtrlSaldo.cs
new file mode 100644
index 000000000..949c2f2b2
--- /dev/null
+++ b/BeWo/View/Controls/DPCtrlSaldo.cs
@@ -0,0 +1,62 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+
+namespace BeWo.View.Controls
+{
+ public class DPCtrlSaldo : DienstplanerControl
+ {
+ public static readonly DependencyProperty SaldoInformationProperty = DependencyProperty.Register(
+ "SaldoInformation",
+ typeof(DPCtrlSaldoInformation),
+ typeof(DPCtrlSaldo),
+ new UIPropertyMetadata(
+ (s, e) =>
+ {
+ var information = (DPCtrlSaldoInformation)e.NewValue;
+ var ctrl = (DPCtrlSaldo)s;
+
+ if (ctrl != null)
+ {
+ if (information != null)
+ {
+ if (information.Row == 2)
+ ctrl.BorderBlack.BorderThickness = new Thickness(0, 0, 1, 1);
+ else
+ {
+ if (information.Statuszeile)
+ ctrl.BorderBlack.BorderThickness = new Thickness(0, 0, 1, 2);
+ else
+ {
+ ctrl.BorderBlack.BorderThickness = new Thickness(0, 0, 1, 0);
+ if (information.Row == 0)
+ ctrl.Text = string.Format("{0:0.00}", information.SaldoWert);
+ }
+
+ }
+ }
+ }
+ }));
+ public DPCtrlSaldo()
+ {
+ InitializeComponent();
+ //BorderBlack.BorderThickness = new Thickness(0, 0, 1, 1);
+ txt.HorizontalAlignment = HorizontalAlignment.Right;
+ }
+ public DPCtrlSaldoInformation SaldoInformation
+ {
+ get { return (DPCtrlSaldoInformation)GetValue(SaldoInformationProperty); }
+
+ set { SetValue(SaldoInformationProperty, value); }
+ }
+ }
+ public class DPCtrlSaldoInformation
+ {
+ public int Row { get; set; }
+ public bool Statuszeile { get; set; }
+ public decimal SaldoWert { get; set; }
+ }
+}
diff --git a/BeWo/View/Controls/DPCtrlSollIst.cs b/BeWo/View/Controls/DPCtrlSollIst.cs
index 7d852d07f..877d5f933 100644
--- a/BeWo/View/Controls/DPCtrlSollIst.cs
+++ b/BeWo/View/Controls/DPCtrlSollIst.cs
@@ -25,13 +25,25 @@ namespace BeWo.View.Controls
if(information != null)
{
if (information.Row == 2)
- ctrl.BorderBlack.BorderThickness = new Thickness(0, 0, 0, 1);
+ ctrl.BorderBlack.BorderThickness = new Thickness(0, 0, 1, 1);
else
{
if (information.Statuszeile)
ctrl.BorderBlack.BorderThickness = new Thickness(0, 0, 0, 2);
else
- ctrl.BorderBlack.BorderThickness = new Thickness(0, 0, 0, 0);
+ {
+ ctrl.BorderBlack.BorderThickness = new Thickness(0, 0, 1, 0);
+ if (information.Row == 0)
+ {
+ ctrl.Text = string.Format("{0:0.00}", information.SollWert);
+ ctrl.ToolTip = "Soll-Wert";
+ }
+ else if (information.Row == 1)
+ {
+ ctrl.Text = string.Format("{0:0.00}", information.IstWert);
+ ctrl.ToolTip = "Ist-Wert";
+ }
+ }
}
}
@@ -42,7 +54,6 @@ namespace BeWo.View.Controls
{
InitializeComponent();
//BorderBlack.BorderThickness = new Thickness(0, 0, 1, 1);
- FontSize = 12;
txt.HorizontalAlignment = HorizontalAlignment.Right;
}
public DPCtrlSollIstInformation SollIstInformation
@@ -56,6 +67,8 @@ namespace BeWo.View.Controls
{
public int Row { get; set; }
public bool Statuszeile { get; set; }
+ public decimal SollWert { get; set; }
+ public decimal IstWert { get; set; }
}
}
diff --git a/BeWo/View/Controls/DPCtrlUrlaubKrankheit.cs b/BeWo/View/Controls/DPCtrlUrlaubKrankheit.cs
index 0c99bf20d..a9eaaed79 100644
--- a/BeWo/View/Controls/DPCtrlUrlaubKrankheit.cs
+++ b/BeWo/View/Controls/DPCtrlUrlaubKrankheit.cs
@@ -47,6 +47,9 @@ namespace BeWo.View.Controls
ctrl.BorderBlack.BorderThickness = new Thickness(0, 0, 1, 0);
}
}
+
+ ctrl.Text = string.Format("{0:0}", information.SummeTage);
+
}
}
}));
@@ -69,6 +72,6 @@ namespace BeWo.View.Controls
public bool Statuszeile { get; set; }
public int Row { get; set; }
public bool SpalteFuerUrlaub { get; set; }
- public double SummeTage { get; set; }
+ public decimal SummeTage { get; set; }
}
}
diff --git a/BeWo/View/Controls/DPCtrlZeitkonto.cs b/BeWo/View/Controls/DPCtrlZeitkonto.cs
index c8d01bc78..6a1eeb4b0 100644
--- a/BeWo/View/Controls/DPCtrlZeitkonto.cs
+++ b/BeWo/View/Controls/DPCtrlZeitkonto.cs
@@ -1,4 +1,5 @@
-using System;
+using BS.Shared.DataContracts;
+using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@@ -19,18 +20,30 @@ namespace BeWo.View.Controls
var information = (DPCtrlZeitkontoInformation)e.NewValue;
var ctrl = (DPCtrlZeitkonto)s;
- if(ctrl != null)
+ if (ctrl != null)
{
- if(information != null)
+ if (information != null)
{
if (information.Row == 2)
ctrl.BorderBlack.BorderThickness = new Thickness(0, 0, 1, 1);
else
{
if (information.Statuszeile)
- ctrl.BorderBlack.BorderThickness = new Thickness(0, 0, 1, 2);
+ ctrl.BorderBlack.BorderThickness = new Thickness(0, 0, 0, 2);
else
+ {
ctrl.BorderBlack.BorderThickness = new Thickness(0, 0, 1, 0);
+ if (information.Row == 0)
+ {
+ ctrl.Text = string.Format("{0:0.00}", information.Monatszusammenfassung.ZeitkontoLetzterMonat);
+ ctrl.ToolTip = "Zeitkonto Vormonat";
+ }
+ else if (information.Row == 1)
+ {
+ ctrl.Text = string.Format("{0:0.00}", information.Monatszusammenfassung.ZeitkontoAktualisiert);
+ ctrl.ToolTip = "Zeitkonto dieser Monat";
+ }
+ }
}
}
@@ -41,7 +54,6 @@ namespace BeWo.View.Controls
{
InitializeComponent();
//BorderBlack.BorderThickness = new Thickness(0, 0, 1, 1);
- FontSize = 12;
txt.HorizontalAlignment = HorizontalAlignment.Right;
}
public DPCtrlZeitkontoInformation ZeitkontoInformation
@@ -55,5 +67,6 @@ namespace BeWo.View.Controls
{
public int Row { get; set; }
public bool Statuszeile { get; set; }
+ public DienstplanerMonthlySummaryDC Monatszusammenfassung { get; set;}
}
}
diff --git a/BeWo/View/Detail/Report/AbwesenheitsEmployeeHeader.xaml b/BeWo/View/Detail/Report/AbwesenheitsEmployeeHeader.xaml
index 9c14e5937..beb5634b3 100644
--- a/BeWo/View/Detail/Report/AbwesenheitsEmployeeHeader.xaml
+++ b/BeWo/View/Detail/Report/AbwesenheitsEmployeeHeader.xaml
@@ -10,6 +10,7 @@
+
diff --git a/BeWo/View/Detail/Report/AbwesenheitsEmployeeHeader.xaml.cs b/BeWo/View/Detail/Report/AbwesenheitsEmployeeHeader.xaml.cs
index 83a01bade..94476cc87 100644
--- a/BeWo/View/Detail/Report/AbwesenheitsEmployeeHeader.xaml.cs
+++ b/BeWo/View/Detail/Report/AbwesenheitsEmployeeHeader.xaml.cs
@@ -1,4 +1,5 @@
-using BS.Shared.DataContracts;
+using BeWo.ServiceProxy;
+using BS.Shared.DataContracts;
using DevExpress.Xpf.Core;
using System;
using System.Collections.Generic;
@@ -35,6 +36,8 @@ namespace BeWo.View.Detail.Report
{
c._EmployeeName.Text = dc.LastNameFirstName;
c._EmployeeUrlaub.Text = $"Urlaub: {dc.Urlaubskonto.Resturlaub.ToString("0.00")}/{dc.Urlaubskonto.Urlaubsanspruch.ToString("0.00")} Tage";
+ //ServiceFacade.DoOperationsServiceSync(x => x.GetAbsenceTimesForMonth(dc.EmployeeOid, SelectedMonth)
+ //c._EmployeeUrlaubDieserMonat.Text +=
((AbwesenheitsEmployeeHeaderTooltip)c.ToolTip).Set(dc);
}
}
@@ -52,5 +55,15 @@ namespace BeWo.View.Detail.Report
set { SetValue(EmployeeDCProperty, value); }
}
+ public static int SelectedMonth
+ {
+ get { return SelectedMonth; }
+ set { SelectedMonth = value; }
+ }
+ public static int SelectedYear
+ {
+ get { return SelectedYear; }
+ set { SelectedYear = value; }
+ }
}
}
diff --git a/BeWo/View/Detail/Report/AbwesenheitsPrintControl.xaml b/BeWo/View/Detail/Report/AbwesenheitsPrintControl.xaml
index 7de2ce625..750badf1f 100644
--- a/BeWo/View/Detail/Report/AbwesenheitsPrintControl.xaml
+++ b/BeWo/View/Detail/Report/AbwesenheitsPrintControl.xaml
@@ -3,8 +3,8 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
- xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
mc:Ignorable="d"
+ xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
Height="Auto" Width="Auto">
@@ -12,6 +12,7 @@
+
@@ -21,6 +22,14 @@
+
diff --git a/BeWo/View/Detail/Report/AbwesenheitsPrintControl.xaml.cs b/BeWo/View/Detail/Report/AbwesenheitsPrintControl.xaml.cs
index 371efc2b6..1433090e8 100644
--- a/BeWo/View/Detail/Report/AbwesenheitsPrintControl.xaml.cs
+++ b/BeWo/View/Detail/Report/AbwesenheitsPrintControl.xaml.cs
@@ -1,4 +1,6 @@
-using DevExpress.Xpf.Core;
+using BeWo.ServiceProxy;
+using BS.Shared.DataContracts.Compact;
+using DevExpress.Xpf.Core;
using System;
using System.Collections.Generic;
using System.Globalization;
@@ -40,6 +42,8 @@ namespace BeWo.View.Detail.Report
ComboMonat.ItemsSource = DateTimeFormatInfo.CurrentInfo.MonthNames.Where(s => !string.IsNullOrEmpty(s));
ComboMonat.SelectedIndex = dt.Month - 1;
+
+ //ComboTeams.ItemsSource = ServiceFacade.DoEmployeeServiceSync(x => x.GetAllTeamsCompact());
}
public DateTime SelectedDate => new DateTime((int)ComboJahr.SelectedItem, ComboMonat.SelectedIndex + 1, 1);
@@ -53,5 +57,7 @@ namespace BeWo.View.Detail.Report
{
ButtonCancelClicked?.Invoke();
}
+
+
}
}
diff --git a/BeWo/View/Detail/Report/AbwesenheitsView.xaml b/BeWo/View/Detail/Report/AbwesenheitsView.xaml
index 029eb070c..e9b0c47f7 100644
--- a/BeWo/View/Detail/Report/AbwesenheitsView.xaml
+++ b/BeWo/View/Detail/Report/AbwesenheitsView.xaml
@@ -35,7 +35,7 @@
-
+
@@ -69,23 +69,30 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ _AbsenceReasonDCs;
+ private List _TeamDCs;
private Dictionary _EmployeeDict;
private AbsenceOverviewFilterDC _SelectedFilter;
+ private int _SelectedMonth;
+ private int _SelectedYear;
public AbwesenheitstabelleView()
@@ -70,11 +74,15 @@ namespace BeWo.View.Detail.Report
public List SelectedAbsenceReasons => FilterAbwesenheit.SelectedItems.Cast().ToList();
public List SelectedEmploymentTypes => FilterBeschaftigungsart.SelectedItems.Cast().ToList();
+
+ public List SelectedTeams => FilterTeams.SelectedItems.Cast().ToList();
private void Button_Click(object sender, RoutedEventArgs e)
{
UpdateFilter();
UpdateScheduler();
+ _SelectedMonth = _MonthPicker.SelectedMonth;
+ _SelectedYear = (int)_YearPicker.SelectedItem;
}
private void SchedularControl_EditAppointmentFormShowing(object sender, EditAppointmentFormEventArgs e)
@@ -140,10 +148,14 @@ namespace BeWo.View.Detail.Report
{
var absenceReasons = ServiceFacade.DoOperationsServiceSync(x => x.GetAllAbsenceReason());
var employmentTypes = ServiceFacade.DoEmployeeServiceSync(x => x.GetAllEmploymentTypes());
+ var teams = ServiceFacade.DoEmployeeServiceSync(x => x.GetAllTeamsCompact());
FilterAbwesenheit.Items.AddRange(absenceReasons.ToArray());
FilterBeschaftigungsart.Items.AddRange(employmentTypes.ToArray());
+ FilterTeams.Items.AddRange(teams.ToArray());
+
_AbsenceReasonDCs = absenceReasons;
+ _TeamDCs = teams;
}
private void InitializeDateSelction()
@@ -171,8 +183,8 @@ namespace BeWo.View.Detail.Report
_ResourceStorage = _SchedulerControl.Storage.ResourceStorage;
_AppointmentStorage = _SchedulerControl.Storage.AppointmentStorage;
- _AppointmentStorage.CustomFieldMappings.Add(new SchedulerCustomFieldMapping(nameof(AbsenceTimeDC), nameof(AbsenceTimeDC)));
- _ResourceStorage.CustomFieldMappings.Add(new SchedulerCustomFieldMapping(nameof(EmployeeDC), nameof(EmployeeDC)));
+ _AppointmentStorage.CustomFieldMappings.Add(new SchedulerCustomFieldMapping(nameof(AbsenceTimeDC), nameof(AbsenceTimeDC))); //MA-Namen setzen
+ _ResourceStorage.CustomFieldMappings.Add(new SchedulerCustomFieldMapping(nameof(EmployeeDC), nameof(EmployeeDC))); //Urlaubskonto setzen
_SchedulerControl.TimelineView.VerticalResourceHeaderStyle = (Style)FindResource("VerticalResourceHeaderStyle");
@@ -217,12 +229,15 @@ namespace BeWo.View.Detail.Report
if (SelectedEmploymentTypes.Any())
_SelectedFilter.EmploymentType = SelectedEmploymentTypes.Select(x => x.EmploymentTypeOid.Value).ToList();
+
+ if (SelectedTeams.Any())
+ _SelectedFilter.Teams = SelectedTeams.Select(x => x.TeamOid).ToList();
}
private void UpdateScheduler()
{
- var absenceReasons = ServiceFacade.DoOperationsServiceSync(x => x.GetAllAbsenceReason());
+ var absenceReasons = _AbsenceReasonDCs;
var absenceOverview = ServiceFacade.DoOperationsServiceSync(x => x.GetAbsenceOverview(_SelectedFilter));
var start = new DateTime(_SelectedFilter.Year, _SelectedFilter.Month, 1);
@@ -256,7 +271,8 @@ namespace BeWo.View.Detail.Report
var resource = _SchedulerStorage.CreateResource(employee.EmployeeOid.Value.ToString());
resource.Caption = employee.LastNameFirstName;
- resource.CustomFields[nameof(EmployeeDC)] = employee;
+ resource.CustomFields[nameof(EmployeeDC)] = employee; //Liste mit CustomFields wird um einen erweitert; Value wird auf Employee gesetzt.
+ // Jetzt sind alle Infos vom Employee in der Ressource vorhanden
_EmployeeDict.Add(employee.EmployeeOid.Value, employee);
_ResourceStorage.Add(resource);
@@ -265,7 +281,7 @@ namespace BeWo.View.Detail.Report
{
var appointment = _SchedulerStorage.CreateAppointment(AppointmentType.Normal);
- SchedulerHelper.OverrideAppointmentWithAbsenceTime(appointment, absence);
+ SchedulerHelper.OverrideAppointmentWithAbsenceTime(appointment, absence); //Auskommentieren entfernt Einträge aus Planer
_AppointmentStorage.Add(appointment);
}
@@ -278,7 +294,7 @@ namespace BeWo.View.Detail.Report
}
}
- private void UpdateReportUrl(DateTime date)
+ private void UpdateReportUrl(DateTime date) // Hier um gewählte Teams erweitern, um bei Druck danach filtern zu können
{
var url = BeWoApp.SiteOfOrigin
+ "/ReportView.aspx"
@@ -291,6 +307,25 @@ namespace BeWo.View.Detail.Report
if (SelectedEmploymentTypes.Any())
url += "&et=" + string.Join(";", SelectedEmploymentTypes.Select(x => x.EmploymentTypeOid.Value));
+ if (SelectedTeams.Any())
+ url += "&t=" + string.Join(";", SelectedTeams.Select(x => x.TeamOid));
+
+ if (_SelectedFilter == null)
+ _SelectedFilter = new AbsenceOverviewFilterDC() { Month = date.Month, Year = date.Year };
+
+ var feiertage = ServiceFacade.DoOperationsServiceSync(x => x.GetDefaultFeiertageForYear(_SelectedFilter.Year));
+ List feiertageInMonat = new List();
+ foreach (var tag in feiertage)
+ {
+ if (tag.Datum.Month == _SelectedFilter.Month)
+ feiertageInMonat.Add(tag.Datum.Day);
+ }
+
+ if(feiertageInMonat.Count > 0)
+ {
+ url += "&f=" + string.Join(";", feiertageInMonat);
+ }
+
linkPdfExport.NavigateUri = new Uri(url);
}
}
diff --git a/BeWo/View/Detail/Report/DienstplanerView.xaml b/BeWo/View/Detail/Report/DienstplanerView.xaml
index 75b4b4b07..1418c0a41 100644
--- a/BeWo/View/Detail/Report/DienstplanerView.xaml
+++ b/BeWo/View/Detail/Report/DienstplanerView.xaml
@@ -31,6 +31,9 @@
+
+
+
@@ -41,7 +44,7 @@
+ AllowEditing="False" AllowGrouping="False" AllowMoving="False" AllowResizing="False" AllowSearchPanel="False" AllowSorting="False" AllowUnboundExpressionEditor="False" />
@@ -195,6 +198,97 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/BeWo/View/Detail/Report/DienstplanerView.xaml.cs b/BeWo/View/Detail/Report/DienstplanerView.xaml.cs
index 7de0b4b70..9dd9300b0 100644
--- a/BeWo/View/Detail/Report/DienstplanerView.xaml.cs
+++ b/BeWo/View/Detail/Report/DienstplanerView.xaml.cs
@@ -56,6 +56,7 @@ namespace BeWo.View.Detail.Report
private GridColumn _ColumnMonth;
private List _ColumnWeek;
private GridColumn _ColumnSollIst;
+ private GridColumn _ColumnSaldo;
private GridColumn _ColumnZeitkonto;
private GridColumn _ColumnUrlaub;
private GridColumn _ColumnKrankheit;
@@ -65,6 +66,7 @@ namespace BeWo.View.Detail.Report
private DienstZeileDC _AuswahlDienstZeileDC;
private DateTime _AuswahlMonat;
private int _AuswahlTag;
+ private List _AlleMitarbeiter;
private bool _IsControlClick;
//private SolidColorBrush _ForeColor;
@@ -72,23 +74,17 @@ namespace BeWo.View.Detail.Report
public DienstplanerView()
{
InitializeComponent();
- _DienstplanerRootObj = new DienstplanerRootDC();
- _DienstplanerRootObj = ServiceFacade.DoOperationsServiceSync(s => s.BuildDienstplanerRootObject());
- _WohnheimPicker.ItemsSource = _DienstplanerRootObj.Wohnheime;
-
- //Wohnheime = ServiceFacade.DoCustomerServiceSync(x => x.GetAllActiveWohnheimeCompact());
-
- //_DienstplanerRootObj.AlleDienste = ServiceFacade.DoOperationsServiceSync(x => x.GetAllDienste()).OrderBy(d => d.Start).ToList(); //Root
- //_DienstplanerRootObj.AlleDienste.Insert(0, DienstInfoDC.Platzhalter); //Root
-
- //_DienstplanerRootObj.Wohnheime = ServiceFacade.DoCustomerServiceSync(x => x.GetAllActiveWohnheimeCompact()); //Root
- //_WohnheimPicker.ItemsSource = _DienstplanerRootObj.Wohnheime;
-
- //_DienstplanerRootObj.AllEmployee = ServiceFacade.DoEmployeeServiceSync(s => s.GetAllActiveEmployees());
- ////_ForeColor = (SolidColorBrush)new BrushConverter().ConvertFrom(ServiceFacade.DoOperationsServiceSync(s => s.GetColorForForeground()));
- //_DienstplanerRootObj.TextBoxForeColor = ServiceFacade.DoOperationsServiceSync(s => s.GetColorForForeground()); //Root
-
+
+ _WohnheimPicker.ItemsSource = ServiceFacade.DoCustomerServiceSync(x => x.GetAllActiveWohnheimeCompact());
+ var culture = new CultureInfo("de-DE");
+ routine_combobox_weekdays.Items.Add(culture.DateTimeFormat.GetDayName(DayOfWeek.Monday));
+ routine_combobox_weekdays.Items.Add(culture.DateTimeFormat.GetDayName(DayOfWeek.Tuesday));
+ routine_combobox_weekdays.Items.Add(culture.DateTimeFormat.GetDayName(DayOfWeek.Wednesday));
+ routine_combobox_weekdays.Items.Add(culture.DateTimeFormat.GetDayName(DayOfWeek.Thursday));
+ routine_combobox_weekdays.Items.Add(culture.DateTimeFormat.GetDayName(DayOfWeek.Friday));
+ routine_combobox_weekdays.Items.Add(culture.DateTimeFormat.GetDayName(DayOfWeek.Saturday));
+ routine_combobox_weekdays.Items.Add(culture.DateTimeFormat.GetDayName(DayOfWeek.Sunday));
InitDateComboBox();
CreateColumns();
@@ -128,18 +124,21 @@ namespace BeWo.View.Detail.Report
#endregion
#region Loading
- private void InitGridControl()
+ private void InitGridControl(bool includeRoot)
{
- //_DienstEintragListe = new List();
- //_DienstEintragListe.Add(InitStatusZeile(RefreshGrid, AuswahlMonat));
- _DienstplanerRootObj.DienstZeilenListe = new List(); //Root
- _DienstplanerRootObj.DienstZeilenListe.Add(InitStatusZeile(RefreshGrid, AuswahlMonat)); //Root
+ if(includeRoot)
+ {
+ _DienstplanerRootObj = ServiceFacade.DoOperationsServiceSync(s => s.BuildDienstplanerRootObject(_AuswahlMonat, _AuswahlWohnheim.WohnheimOid));
- DienstplanerRootDC temp = ServiceFacade.DoOperationsServiceSync(s =>
- s.AddMissingDataToDienstplanerRootObject(_DienstplanerRootObj, _AuswahlMonat, _AuswahlWohnheim.WohnheimOid));
-
- _DienstplanerRootObj = temp;
+ _DienstplanerRootObj.DienstZeilenListe = new List(); //Root
+ _DienstplanerRootObj.DienstZeilenListe.Add(InitStatusZeile(RefreshGrid, AuswahlMonat)); //Root
+ foreach (var rd in _DienstplanerRootObj.RegelmaessigeDienste)
+ {
+ AddRegelmaessigeDiensteToDienstplaner(rd);
+ }
+ }
+
RefreshDienste(); //Diensteintragliste setzen
BuildGridControlColumnDays(AuswahlMonat.Year, AuswahlMonat.Month, 1);
RefreshGrid();
@@ -242,11 +241,17 @@ namespace BeWo.View.Detail.Report
var start = TimeSpan.Parse(dienst.Startzeit);
var ende = TimeSpan.Parse(dienst.Endzeit);
- if (dienst.DienstOid == vorherigeSchicht.DienstOid && i != diensteFuerTag.Count - 1 && i != 0) //Identische Schicht kann übersprungen werden
+ if (dienst.DienstOid == vorherigeSchicht.DienstOid && i != 0) //Identische Schicht kann übersprungen werden
{
vorherigeSchicht = dienst;
vorherigeSchichtStart = TimeSpan.Parse(vorherigeSchicht.Startzeit);
vorherigeSchichtEnde = TimeSpan.Parse(vorherigeSchicht.Endzeit);
+
+ if (i == diensteFuerTag.Count - 1)
+ {
+ tagAusgefuellt = false;
+ break;
+ }
continue;
}
@@ -496,6 +501,7 @@ namespace BeWo.View.Detail.Report
var monthControlTemplate = (ControlTemplate)FindResource("ctrlMonth");
var empControlTemplate = (ControlTemplate)FindResource("ctrlEmp");
var sollIstControlTemplate = (ControlTemplate)FindResource("ctrlSollIst");
+ var saldoControlTemplate = (ControlTemplate)FindResource("ctrlSaldo");
var zeitkontoControlTemplate = (ControlTemplate)FindResource("ctrlZeitkonto");
var urlaubKrankheitControlTemplate = (ControlTemplate)FindResource("ctrlUrlaubKrankheit");
@@ -504,9 +510,11 @@ namespace BeWo.View.Detail.Report
_ColumnMonth = NewGridColumnUnbound("Monatsstunden", "month", "MO:", 60, 40, DevExpress.Data.UnboundColumnType.Object, monthControlTemplate, DevExpress.Utils.DefaultBoolean.True);
- _ColumnSollIst = NewGridColumnUnbound("Soll/Ist", "sollist", "SI:", 50, 40, DevExpress.Data.UnboundColumnType.Object, sollIstControlTemplate, DevExpress.Utils.DefaultBoolean.True);
+ _ColumnSollIst = NewGridColumnUnbound("Soll/Ist", "sollist", "SI:", 55, 40, DevExpress.Data.UnboundColumnType.Object, sollIstControlTemplate, DevExpress.Utils.DefaultBoolean.True);
+
+ _ColumnSaldo = NewGridColumnUnbound("Saldo", "saldo", "SA:", 55, 40, DevExpress.Data.UnboundColumnType.Object, saldoControlTemplate, DevExpress.Utils.DefaultBoolean.True);
- _ColumnZeitkonto = NewGridColumnUnbound("Zeit-\nkonto", "zeit", "ZE:", 50, 40, DevExpress.Data.UnboundColumnType.Object, zeitkontoControlTemplate, DevExpress.Utils.DefaultBoolean.True);
+ _ColumnZeitkonto = NewGridColumnUnbound("Zeit-\nkonto", "zeit", "ZE:", 55, 40, DevExpress.Data.UnboundColumnType.Object, zeitkontoControlTemplate, DevExpress.Utils.DefaultBoolean.True);
_ColumnUrlaub = NewGridColumnUnbound("U", "urlaub", "UR:", 28, 28, DevExpress.Data.UnboundColumnType.Object, urlaubKrankheitControlTemplate, DevExpress.Utils.DefaultBoolean.True);
_ColumnKrankheit = NewGridColumnUnbound("K", "krank", "KR:", 28, 28, DevExpress.Data.UnboundColumnType.Object, urlaubKrankheitControlTemplate, DevExpress.Utils.DefaultBoolean.True);
@@ -528,9 +536,10 @@ namespace BeWo.View.Detail.Report
//Hinzufügen der Spalten Mitarbeiter, einzelne Wochentage und Woche
_GridControl.Columns.Add(_ColumnEmp);
- _GridControl.Columns.Add(_ColumnMonth);
+ //_GridControl.Columns.Add(_ColumnMonth);
_GridControl.Columns.Add(_ColumnSollIst);
- _GridControl.Columns.Add(_ColumnZeitkonto);
+ _GridControl.Columns.Add(_ColumnSaldo);
+ //_GridControl.Columns.Add(_ColumnZeitkonto); // Zeitkonto wieder einblenden
_GridControl.Columns.Add(_ColumnUrlaub);
_GridControl.Columns.Add(_ColumnKrankheit);
_GridControl.Columns.AddRange(_ColumnDays);
@@ -558,6 +567,8 @@ namespace BeWo.View.Detail.Report
{
//_PopupPicker.IsOpen = false;
popUp_RightClick.IsOpen = false;
+ popUp_Regeldiensterstellung.IsOpen = false;
+ popUp_RightClickEmployee.IsOpen = false;
}
_IsControlClick = false;
@@ -583,7 +594,7 @@ namespace BeWo.View.Detail.Report
AuswahlWohnheim = _WohnheimPicker.SelectedItem as CompactWohnheimDC;
//FillDienstLists();
- InitGridControl();
+ InitGridControl(true);
button_neuerMitarbeiter.Visibility = Visibility.Visible;
_BtnRemoveAllDiensteForMonth.Visibility = Visibility.Visible;
@@ -621,7 +632,10 @@ namespace BeWo.View.Detail.Report
// if (CheckForContracts(emp))
// mitarbeiterMitVertrag.Add(emp);
//}
- foreach (var emp in _DienstplanerRootObj.AllEmployee) //Root
+
+ if(_AlleMitarbeiter == null || _AlleMitarbeiter.Count == 0)
+ _AlleMitarbeiter = ServiceFacade.DoEmployeeServiceSync(s => s.GetAllActiveEmployees());
+ foreach (var emp in _AlleMitarbeiter)
{
if (CheckForContracts(emp))
mitarbeiterMitVertrag.Add(emp);
@@ -678,24 +692,55 @@ namespace BeWo.View.Detail.Report
public void DienstplanerControl_MouseDown(object sender, MouseEventArgs e)
{
+
_IsControlClick = true;
//_PopupPicker.IsOpen = false;
popUp_RightClick.IsOpen = false;
+ popUp_RightClickEmployee.IsOpen = false;
+ popUp_Regeldiensterstellung.IsOpen = false;
textbox_bemerkung.Text = "";
textbox_startzeit.Foreground = Brushes.Black;
textbox_endzeit.Foreground = Brushes.Black;
- var foregroundColor = (SolidColorBrush)new BrushConverter().ConvertFrom(_DienstplanerRootObj.TextBoxForeColor);
-
-
+ var foregroundColor = (SolidColorBrush)new BrushConverter().ConvertFrom(_DienstplanerRootObj.TextBoxForeColor);
_AuswahlDienstZeileDC = _GridControl.GetRow(_GridControl.View.GetRowHandleByMouseEventArgs(e)) as DienstZeileDC;
+ var ctrl = sender as DPCtrlDay;
+ if(ctrl == null)
+ {
+ var dpCtrlEmp = sender as DPCtrlEmployee;
+ if (dpCtrlEmp == null || _AuswahlDienstZeileDC.DienstDict == null)
+ return;
+ if (_AuswahlWohnheim.EmployeeOids.Contains((long)_AuswahlDienstZeileDC.Employee.EmployeeOid))
+ {
+ popUp_RightClickEmployee.IsOpen = true;
+ groupbox_popUp_RightClickEmployee.Header = dpCtrlEmp.EmployeeInformation.Employee.LastNameFirstName;
+
+ SetRegelmaessigeDiensteItemsSource();
+
+ return;
+ }
+ else
+ return;
+
+
+ }
+
+
if (_AuswahlDienstZeileDC.DienstDict == null)
return;
var fieldname = _GridControl.View.GetColumnByMouseEventArgs(e).FieldName.Split('_');
_AuswahlTag = int.Parse(fieldname[1]);
+ /* Dienste an Feiertagen setzen können deaktivieren
+ var date = new DateTime(_AuswahlMonat.Year, _AuswahlMonat.Month, _AuswahlTag);
+ foreach (var tag in _DienstplanerRootObj.Feiertage)
+ {
+ if (tag.Datum.Date == date)
+ return;
+ }
+ */
+
popUp_RightClick.IsOpen = true;
- //combobox_dienste.ItemsSource = _AlleDienste;
combobox_dienste.ItemsSource = _DienstplanerRootObj.AlleDienste;
if (_AuswahlWohnheim.EmployeeOids.Contains(_AuswahlDienstZeileDC.Employee.EmployeeOid.Value))
@@ -760,6 +805,27 @@ namespace BeWo.View.Detail.Report
}
}
+
+ private void SetRegelmaessigeDiensteItemsSource()
+ {
+ var rdDC = _DienstplanerRootObj.RegelmaessigeDienste.Where(r => r.EmployeeOid == _AuswahlDienstZeileDC.Employee.EmployeeOid).ToList();
+ List vms = new List();
+ foreach (var item in rdDC)
+ {
+ RegelmaessigerDienstVM vm = new RegelmaessigerDienstVM(item);
+ DienstInfoDC dienstinfo = new DienstInfoDC();
+ foreach (var dienst in _DienstplanerRootObj.AlleDienste)
+ {
+ if (dienst.Oid == item.DienstOid)
+ {
+ vm.Dienst = dienst;
+ break;
+ }
+ }
+ vms.Add(vm);
+ }
+ listbox_regelmaessige_dienste.ItemsSource = vms;
+ }
private DienstEintragDC GetDienstEintrag(long empId, long wohnId, int zeile, DateTime date)
{
DienstEintragDC eintrag = _DienstplanerRootObj.AlleDienstEintraege.FirstOrDefault(x => //Root
@@ -784,10 +850,19 @@ namespace BeWo.View.Detail.Report
private void combobox_dienste_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var selectedDienst = combobox_dienste.SelectedItem as DienstInfoDC;
- var startzeit = selectedDienst.Start.TimeOfDay.ToString().Split(':');
- var endzeit = selectedDienst.Ende.TimeOfDay.ToString().Split(':');
- textbox_startzeit.Text = startzeit[0] + ":" + startzeit[1];
- textbox_endzeit.Text = endzeit[0] + ":" + endzeit[1];
+ if (selectedDienst != null)
+ {
+ var startzeit = selectedDienst.Start.TimeOfDay.ToString().Split(':');
+ var endzeit = selectedDienst.Ende.TimeOfDay.ToString().Split(':');
+ textbox_startzeit.Text = startzeit[0] + ":" + startzeit[1];
+ textbox_endzeit.Text = endzeit[0] + ":" + endzeit[1];
+ }
+ else
+ {
+ textbox_startzeit.Text = "";
+ textbox_endzeit.Text = "";
+ }
+
}
private void button_save_Click(object sender, RoutedEventArgs e)
{
@@ -835,6 +910,14 @@ namespace BeWo.View.Detail.Report
};
ServiceFacade.DoOperationsServiceSync(x => x.InsertNewDienstEintrag(newEintrag));
_DienstplanerRootObj.AlleDienstEintraege.Add(newEintrag); //Root
+ foreach (var item in _DienstplanerRootObj.MonatsZusammenfassung)
+ {
+ if (item.Employee.EmployeeOid == _AuswahlDienstZeileDC.Employee.EmployeeOid)
+ {
+ item.Ist += Convert.ToDecimal(newEintrag.DauerInStunden);
+ item.Saldo += Convert.ToDecimal(newEintrag.DauerInStunden);
+ }
+ }
}
else
{
@@ -872,6 +955,14 @@ namespace BeWo.View.Detail.Report
};
ServiceFacade.DoOperationsServiceSync(x => x.InsertNewDienstvertretung(newVertretung));
_DienstplanerRootObj.AlleDienstvertretungen.Add(newVertretung); //Root
+ foreach (var item in _DienstplanerRootObj.MonatsZusammenfassung)
+ {
+ if (item.Employee.EmployeeOid == _AuswahlDienstZeileDC.Employee.EmployeeOid)
+ {
+ item.Ist += Convert.ToDecimal(newVertretung.DauerInStunden);
+ item.Saldo += Convert.ToDecimal(newVertretung.DauerInStunden);
+ }
+ }
}
_AuswahlDienstZeileDC.AddDienst(_AuswahlTag, combobox_dienste.SelectedItem as DienstInfoDC);
@@ -910,6 +1001,18 @@ namespace BeWo.View.Detail.Report
if (e.IsGetData)
{
var selZeile = _GridControl.GetRowByListIndex(e.ListSourceRowIndex) as DienstZeileDC;
+ DienstplanerMonthlySummaryDC summary = new DienstplanerMonthlySummaryDC();
+ foreach (var summ in _DienstplanerRootObj.MonatsZusammenfassung)
+ {
+ if(selZeile.StatusListe == null)
+ {
+ if (selZeile.Employee.EmployeeOid == summ.Employee.EmployeeOid)
+ {
+ summary = summ;
+ break;
+ }
+ }
+ }
var pos = 0;
var tag = e.Column.Tag.ToStringNullCheck();
@@ -1066,43 +1169,122 @@ namespace BeWo.View.Detail.Report
pos = int.Parse(e.Column.FieldName.Remove(e.Column.FieldName.Length - 1)); //31 im März
//e.Value = selZeile.Zeile == 2 ? _DienstEintragListe.FindAll(x => x.Employee == selZeile.Employee).SelectMany(y => y.GetDienstMonat()).ToList() : null;
- var eintraegeFuerMitarbeiterMonat = selZeile.Zeile == 2 ? _DienstplanerRootObj.AlleDienstEintraege.FindAll(x => x.EmployeeOid == selZeile.Employee.EmployeeOid).ToList() : null;
- var vertretungenFuerMitarbeiterMonat = selZeile.Zeile == 2 ? _DienstplanerRootObj.AlleDienstvertretungen.FindAll(x => x.EmployeeOid == selZeile.Employee.EmployeeOid).ToList() : null;
+ //var eintraegeFuerMitarbeiterMonat = selZeile.Zeile == 2 ? _DienstplanerRootObj.AlleDienstEintraege.FindAll(x => x.EmployeeOid == selZeile.Employee.EmployeeOid).ToList() : null;
+ //var vertretungenFuerMitarbeiterMonat = selZeile.Zeile == 2 ? _DienstplanerRootObj.AlleDienstvertretungen.FindAll(x => x.EmployeeOid == selZeile.Employee.EmployeeOid).ToList() : null;
- List stunden = new List();
- if (eintraegeFuerMitarbeiterMonat != null)
- {
- foreach (var eintrag in eintraegeFuerMitarbeiterMonat)
- stunden.Add(eintrag.DauerInStunden);
- }
- if (vertretungenFuerMitarbeiterMonat != null)
- {
- foreach (var vertretung in vertretungenFuerMitarbeiterMonat)
- stunden.Add(vertretung.DauerInStunden);
- }
- e.Value = new DPCtrlMonthInformation
- {
- Hours = stunden,
- Row = selZeile.Zeile,
- Statuszeile = selZeile.DienstDict == null
- };
+ //List stunden = new List();
+ //if (eintraegeFuerMitarbeiterMonat != null)
+ //{
+ // foreach (var eintrag in eintraegeFuerMitarbeiterMonat)
+ // stunden.Add(eintrag.DauerInStunden);
+ //}
+ //if (vertretungenFuerMitarbeiterMonat != null)
+ //{
+ // foreach (var vertretung in vertretungenFuerMitarbeiterMonat)
+ // stunden.Add(vertretung.DauerInStunden);
+ //}
+ //e.Value = new DPCtrlMonthInformation
+ //{
+ // Hours = stunden,
+ // Row = selZeile.Zeile,
+ // Statuszeile = selZeile.DienstDict == null
+ //};
return;
case "SI":
- e.Value = new DPCtrlSollIstInformation
+ if(selZeile.StatusListe == null)
{
- Row = selZeile.Zeile,
- Statuszeile = selZeile.DienstDict == null
- };
+ var eintraegeFuerMitarbeiterMonat = _DienstplanerRootObj.AlleDienstEintraege.FindAll(x => x.EmployeeOid == selZeile.Employee.EmployeeOid).ToList();
+ var vertretungenFuerMitarbeiterMonat = _DienstplanerRootObj.AlleDienstvertretungen.FindAll(x => x.EmployeeOid == selZeile.Employee.EmployeeOid).ToList();
+
+ decimal stunden = 0;
+ if (eintraegeFuerMitarbeiterMonat != null)
+ {
+ foreach (var eintrag in eintraegeFuerMitarbeiterMonat)
+ stunden += Convert.ToDecimal(eintrag.DauerInStunden);
+ }
+ if (vertretungenFuerMitarbeiterMonat != null)
+ {
+ foreach (var vertretung in vertretungenFuerMitarbeiterMonat)
+ stunden += Convert.ToDecimal(vertretung.DauerInStunden);
+ }
+
+
+ e.Value = new DPCtrlSollIstInformation
+ {
+ Row = selZeile.Zeile,
+ Statuszeile = selZeile.DienstDict == null,
+ IstWert = stunden,
+ SollWert = summary.Soll
+ };
+ }
+ else
+ {
+ e.Value = new DPCtrlSollIstInformation
+ {
+ Row = selZeile.Zeile,
+ Statuszeile = selZeile.DienstDict == null
+ };
+ }
return;
- case "ZE":
- e.Value = new DPCtrlZeitkontoInformation
+ case "SA":
+ if (selZeile.StatusListe == null)
{
- Row = selZeile.Zeile,
- Statuszeile = selZeile.DienstDict == null
- };
+ DienstplanerMonthlySummaryDC summaryForSaldo = new DienstplanerMonthlySummaryDC();
+ foreach (var item in _DienstplanerRootObj.MonatsZusammenfassung)
+ {
+ if (selZeile.Employee.EmployeeOid == item.Employee.EmployeeOid)
+ {
+ summaryForSaldo = item;
+ break;
+ }
+ }
+ e.Value = new DPCtrlSaldoInformation
+ {
+ Row = selZeile.Zeile,
+ Statuszeile = selZeile.DienstDict == null,
+ SaldoWert = summaryForSaldo.Saldo
+ };
+ }
+ else
+ {
+ e.Value = new DPCtrlSaldoInformation
+ {
+ Row = selZeile.Zeile,
+ Statuszeile = selZeile.DienstDict == null
+ };
+ }
+ return;
+ case "ZE":
+ if (selZeile.DienstDict != null)
+ {
+ DienstplanerMonthlySummaryDC zeitKonto = new DienstplanerMonthlySummaryDC();
+ foreach (var item in _DienstplanerRootObj.MonatsZusammenfassung)
+ {
+ if (selZeile.Employee.EmployeeOid == item.Employee.EmployeeOid)
+ {
+ zeitKonto = item;
+ break;
+ }
+ }
+ e.Value = new DPCtrlZeitkontoInformation
+ {
+ Row = selZeile.Zeile,
+ Statuszeile = selZeile.DienstDict == null,
+ Monatszusammenfassung = zeitKonto
+ };
+ }
+ else
+ {
+ e.Value = new DPCtrlZeitkontoInformation
+ {
+ Row = selZeile.Zeile,
+ Statuszeile = selZeile.DienstDict == null
+ };
+ }
+
return;
case "UR":
@@ -1111,7 +1293,7 @@ namespace BeWo.View.Detail.Report
Row = selZeile.Zeile,
SpalteFuerUrlaub = true,
Statuszeile = selZeile.DienstDict == null,
- SummeTage = 0
+ SummeTage = summary.TageUrlaub
};
return;
case "KR":
@@ -1120,7 +1302,7 @@ namespace BeWo.View.Detail.Report
Row = selZeile.Zeile,
SpalteFuerUrlaub = false,
Statuszeile = selZeile.DienstDict == null,
- SummeTage = 0
+ SummeTage = summary.TageKrank
};
return;
}
@@ -1255,9 +1437,240 @@ namespace BeWo.View.Detail.Report
private void RemoveDiensteForMonth(DateTime auswahlMonat)
{
ServiceFacade.DoOperationsServiceSync(s => s.RemoveAllDiensteForOneMonth(auswahlMonat));
- InitGridControl();
+ InitGridControl(true);
}
+ private void combobox_regelmaessige_dienste_SelectionChanged(object sender, SelectionChangedEventArgs e)
+ {
+
+ }
+ private void Btn_RegelSchichtEntfernen_Click(object sender, RoutedEventArgs e)
+ {
+ if(listbox_regelmaessige_dienste.SelectedItem != null)
+ {
+ var selection = listbox_regelmaessige_dienste.SelectedItem as RegelmaessigerDienstVM;
+ var allItems = listbox_regelmaessige_dienste.ItemsSource as List;
+ listbox_regelmaessige_dienste.ItemsSource = null;
+ allItems.Remove(selection);
+ listbox_regelmaessige_dienste.ItemsSource = allItems;
+ foreach (var rd in _DienstplanerRootObj.RegelmaessigeDienste)
+ {
+ if (selection.EmployeeOid == rd.EmployeeOid && selection.Dienst.Oid == rd.DienstOid && selection.Zeile == rd.Zeile)
+ {
+ _DienstplanerRootObj.RegelmaessigeDienste.Remove(rd);
+ break;
+ }
+ }
+
+ ServiceFacade.DoOperationsServiceSync(s => s.DeleteRegelmaessigerDienst(selection.DataContract));
+ }
+ }
+ private void Btn_RegelSchichtHinzufuegen_Click(object sender, RoutedEventArgs e)
+ {
+
+ popUp_Regeldiensterstellung.IsOpen = true;
+ var t = _DienstplanerRootObj.AlleDienste;
+ if(t[0].Oid == -1)
+ t.RemoveAt(0);
+ routine_listbox_dienste.ItemsSource = t;
+
+ }
+ private void routine_button_save_Click(object sender, RoutedEventArgs e)
+ {
+ if (routine_combobox_weekdays.SelectedItem == null || routine_listbox_dienste.SelectedItem == null)
+ return;
+
+ string[] startString = routine_textbox_startzeit.Text.Split(':');
+ string[] endeString = routine_textbox_endzeit.Text.Split(':');
+
+ var start = new DateTime(2000, 1, 1, Convert.ToInt32(startString[0]), Convert.ToInt32(startString[1]), 0);
+ var ende = new DateTime(2000, 1, 1, Convert.ToInt32(endeString[0]), Convert.ToInt32(endeString[1]), 0);
+
+ double dauerInStunden = start < ende ? (ende - start).TotalHours : (ende.AddDays(1) - start).TotalHours;
+
+ RegelmaessigerDienstDC dc = new RegelmaessigerDienstDC
+ {
+ DauerInStunden = dauerInStunden,
+ DienstOid = (routine_listbox_dienste.SelectedItem as DienstInfoDC).Oid.Value,
+ EmployeeOid = _AuswahlDienstZeileDC.Employee.EmployeeOid.Value,
+ Endzeit = routine_textbox_endzeit.Text,
+ Startzeit = routine_textbox_startzeit.Text,
+ Wochentag = routine_combobox_weekdays.SelectedItem.ToString(),
+ WohnheimOid = _AuswahlWohnheim.WohnheimOid,
+ Zeile = _AuswahlDienstZeileDC.Zeile
+ };
+ ServiceFacade.DoOperationsServiceSync(s => s.InsertRegelmaessigerDienst(dc));
+ RegelmaessigerDienstVM vm = new RegelmaessigerDienstVM(dc);
+ DienstInfoDC infoDC = new DienstInfoDC(); // = _DienstplanerRootObj.AlleDienste.Where(d => d.Oid == dc.DienstOid) as DienstInfoDC;
+ foreach (var d in _DienstplanerRootObj.AlleDienste)
+ {
+ if (d.Oid == dc.DienstOid)
+ {
+ vm.Dienst = d;
+ break;
+ }
+ }
+ _DienstplanerRootObj.RegelmaessigeDienste.Add(dc);
+ popUp_Regeldiensterstellung.IsOpen = false;
+
+ listbox_regelmaessige_dienste.ItemsSource = null;
+ SetRegelmaessigeDiensteItemsSource();
+ AddRegelmaessigeDiensteToDienstplaner(dc);
+ }
+
+ private void AddRegelmaessigeDiensteToDienstplaner(RegelmaessigerDienstDC dc)
+ {
+ DayOfWeek weekday = DayOfWeek.Monday;
+ bool success = false;
+
+ switch (dc.Wochentag)
+ {
+ case "Montag": weekday = DayOfWeek.Monday;
+ success = true;
+ break;
+ case "Dienstag": weekday = DayOfWeek.Tuesday;
+ success = true;
+ break;
+ case "Mittwoch": weekday = DayOfWeek.Wednesday;
+ success = true;
+ break;
+ case "Donnerstag": weekday = DayOfWeek.Thursday;
+ success = true;
+ break;
+ case "Freitag": weekday = DayOfWeek.Friday;
+ success = true;
+ break;
+ case "Samstag": weekday = DayOfWeek.Saturday;
+ success = true;
+ break;
+ case "Sonntag": weekday = DayOfWeek.Sunday;
+ success = true;
+ break;
+ }
+
+ if (success)
+ {
+ for (int i = 1; i <= DateTime.DaysInMonth(_AuswahlMonat.Year, _AuswahlMonat.Month); i++)
+ {
+ DateTime date = new DateTime(_AuswahlMonat.Year, _AuswahlMonat.Month, i);
+
+ if (date.DayOfWeek == weekday)
+ {
+ bool eintragFuerDatumExistiert = false;
+ foreach (var eintrag in _DienstplanerRootObj.AlleDienstEintraege)
+ {
+ if (eintrag.Datum.Date == date.Date && eintrag.EmployeeOid == dc.EmployeeOid && eintrag.Zeile == dc.Zeile)
+ {
+ eintragFuerDatumExistiert = true;
+ break;
+ }
+ }
+ foreach (var datum in _DienstplanerRootObj.AbsenceTimes)
+ {
+ if(datum.AbsenceSpan.ContainsDate(new DateTime(_AuswahlMonat.Year, _AuswahlMonat.Month, i)) && datum.EmployeeOid == dc.EmployeeOid)
+ {
+ eintragFuerDatumExistiert = true;
+ break;
+ }
+ }
+ //foreach (var tag in _DienstplanerRootObj.Feiertage)
+ //{
+ // if (tag.Datum.Date == date.Date)
+ // {
+ // eintragFuerDatumExistiert = true;
+ // break;
+ // }
+ //}
+
+ if (!eintragFuerDatumExistiert)
+ {
+
+ DienstEintragDC eintrag = new DienstEintragDC()
+ {
+ Datum = date,
+ DauerInStunden = dc.DauerInStunden,
+ DienstOid = dc.DienstOid,
+ EmployeeOid = dc.EmployeeOid,
+ Endzeit = dc.Endzeit,
+ Startzeit = dc.Startzeit,
+ WohnheimOid = dc.WohnheimOid,
+ Zeile = dc.Zeile
+ };
+
+ ServiceFacade.DoOperationsServiceSync(s => s.InsertNewDienstEintrag(eintrag));
+ _DienstplanerRootObj.AlleDienstEintraege.Add(eintrag);
+ if (_AuswahlDienstZeileDC != null)
+ {
+ _AuswahlDienstZeileDC.AddDienst(i, routine_listbox_dienste.SelectedItem as DienstInfoDC);
+ foreach (var item in _DienstplanerRootObj.DienstDCListe)
+ {
+ if (item.Employee.EmployeeOid == eintrag.EmployeeOid)
+ {
+ if (!item.DienstDictArray[eintrag.Zeile].ContainsKey(i))
+ item.DienstDictArray[eintrag.Zeile].Add(i, eintrag.DienstOid);
+ }
+ }
+ //for (int z = 0; z < _DienstplanerRootObj.DienstZeilenListe.Count; z++)
+ //{
+ // var zeile = _DienstplanerRootObj.DienstZeilenListe[z];
+ // if (zeile == _AuswahlDienstZeileDC)
+ // {
+ // _GridControl.ItemsSource = null;
+ // _DienstplanerRootObj.DienstZeilenListe[z] = _AuswahlDienstZeileDC;
+ // _GridControl.ItemsSource = _DienstplanerRootObj.DienstZeilenListe;
+ // break;
+ // }
+ //}
+ }
+ else
+ {
+ foreach (var item in _DienstplanerRootObj.DienstDCListe)
+ {
+ if (item.Employee.EmployeeOid == eintrag.EmployeeOid)
+ {
+ if (!item.DienstDictArray[eintrag.Zeile].ContainsKey(i))
+ item.DienstDictArray[eintrag.Zeile].Add(i, eintrag.DienstOid);
+ }
+ }
+ }
+ RefreshStatusForDay(i);
+ foreach (var item in _DienstplanerRootObj.MonatsZusammenfassung)
+ {
+ if (item.Employee.EmployeeOid == dc.EmployeeOid)
+ {
+ item.Ist += Convert.ToDecimal(eintrag.DauerInStunden);
+ item.Saldo += Convert.ToDecimal(eintrag.DauerInStunden);
+ }
+ }
+
+ }
+ }
+ } // Ende for-Schleife
+ }
+
+ }
+
+ private void routine_combobox_dienste_SelectionChanged(object sender, SelectionChangedEventArgs e)
+ {
+ var selectedDienst = routine_listbox_dienste.SelectedItem as DienstInfoDC;
+ var startzeit = selectedDienst.Start.TimeOfDay.ToString().Split(':');
+ var endzeit = selectedDienst.Ende.TimeOfDay.ToString().Split(':');
+ routine_textbox_startzeit.Text = startzeit[0] + ":" + startzeit[1];
+ routine_textbox_endzeit.Text = endzeit[0] + ":" + endzeit[1];
+ }
+
+ private void popUp_Regeldiensterstellung_Opened(object sender, EventArgs e)
+ {
+
+ }
+ private void popUp_RightClickEmployee_Opened(object sender, EventArgs e)
+ {
+ var t = _DienstplanerRootObj.RegelmaessigeDienste.Where(r => r.EmployeeOid == _AuswahlDienstZeileDC.Employee.EmployeeOid).ToList();
+ listbox_regelmaessige_dienste.ItemsSource = t;
+ }
+
+
+
#region ColumnCreate
@@ -1361,9 +1774,6 @@ namespace BeWo.View.Detail.Report
return res;
}
-
-
-
#endregion
///
diff --git a/BeWo/ViewModel/RegelmaessigerDienstVM.cs b/BeWo/ViewModel/RegelmaessigerDienstVM.cs
new file mode 100644
index 000000000..6e1d52418
--- /dev/null
+++ b/BeWo/ViewModel/RegelmaessigerDienstVM.cs
@@ -0,0 +1,163 @@
+using BS.Shared.DataContracts;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace BeWo.ViewModel
+{
+ public class RegelmaessigerDienstVM : AbstractDCMapperVM
+ {
+ private long _EmployeeOid;
+ private long _WohnheimOid;
+ private DienstInfoDC _Dienst;
+ private int _Zeile;
+ private string _Wochentag;
+ private string _Startzeit;
+ private string _Endzeit;
+ private double _DauerInStunden;
+
+ public RegelmaessigerDienstVM(RegelmaessigerDienstDC regelmaessigerDienstDC) : base(regelmaessigerDienstDC, regelmaessigerDienstDC.Oid == null)
+ { }
+
+ public long EmployeeOid
+ {
+ get { return _EmployeeOid; }
+ set
+ {
+ if (this.AreDifferent(this._EmployeeOid, value))
+ {
+ this._EmployeeOid = value;
+ this.StoreDirtyInformation(this.AreDifferent(this.DataContract.EmployeeOid, value), nameof(_EmployeeOid));
+ this.FirePropertyChanged(nameof(_EmployeeOid));
+ }
+ }
+ }
+ public long WohnheimOid
+ {
+ get { return _WohnheimOid; }
+ set
+ {
+ if (this.AreDifferent(this._WohnheimOid, value))
+ {
+ this._WohnheimOid = value;
+ this.StoreDirtyInformation(this.AreDifferent(this.DataContract.WohnheimOid, value), nameof(_WohnheimOid));
+ this.FirePropertyChanged(nameof(_WohnheimOid));
+ }
+ }
+ }
+ public DienstInfoDC Dienst
+ {
+ get { return _Dienst; }
+ set
+ {
+ if (this.AreDifferent(this._Dienst, value))
+ {
+ this._Dienst = value;
+ this.StoreDirtyInformation(this.AreDifferent(this.DataContract.DienstOid, value.Oid), nameof(_Dienst.Oid));
+ this.FirePropertyChanged(nameof(_Dienst));
+ }
+ }
+ }
+ public int Zeile
+ {
+ get { return _Zeile; }
+ set
+ {
+ if (this.AreDifferent(this._Zeile, value))
+ {
+ this._Zeile = value;
+ this.StoreDirtyInformation(this.AreDifferent(this.DataContract.Zeile, value), nameof(_Zeile));
+ this.FirePropertyChanged(nameof(_Zeile));
+ }
+ }
+ }
+ public string Wochentag
+ {
+ get { return _Wochentag; }
+ set
+ {
+ if (this.AreDifferent(this._Wochentag, value))
+ {
+ this._Wochentag = value;
+ this.StoreDirtyInformation(this.AreDifferent(this.DataContract.Wochentag, value), nameof(_Wochentag));
+ this.FirePropertyChanged(nameof(_Wochentag));
+ }
+ }
+ }
+ public string Startzeit
+ {
+ get { return _Startzeit; }
+ set
+ {
+ if (this.AreDifferent(this._Startzeit, value))
+ {
+ this._Startzeit = value;
+ this.StoreDirtyInformation(this.AreDifferent(this.DataContract.Startzeit, value), nameof(_Startzeit));
+ this.FirePropertyChanged(nameof(_Startzeit));
+ }
+ }
+ }
+ public string Endzeit
+ {
+ get { return _Endzeit; }
+ set
+ {
+ if (this.AreDifferent(this._Endzeit, value))
+ {
+ this._Endzeit = value;
+ this.StoreDirtyInformation(this.AreDifferent(this.DataContract.Endzeit, value), nameof(_Endzeit));
+ this.FirePropertyChanged(nameof(_Endzeit));
+ }
+ }
+ }
+ public double DauerInStunden
+ {
+ get { return _DauerInStunden; }
+ set
+ {
+ if (this.AreDifferent(this._DauerInStunden, value))
+ {
+ this._DauerInStunden = value;
+ this.StoreDirtyInformation(this.AreDifferent(this.DataContract.DauerInStunden, value), nameof(_DauerInStunden));
+ this.FirePropertyChanged(nameof(_DauerInStunden));
+ }
+ }
+ }
+
+ protected override void InitByDataContract(RegelmaessigerDienstDC pDataContract)
+ {
+ EmployeeOid = pDataContract.EmployeeOid;
+ WohnheimOid = pDataContract.WohnheimOid;
+ //Dienst.Oid = pDataContract.DienstOid;
+ Zeile = pDataContract.Zeile;
+ Wochentag = pDataContract.Wochentag;
+ Startzeit = pDataContract.Startzeit;
+ Endzeit = pDataContract.Endzeit;
+ DauerInStunden = pDataContract.DauerInStunden;
+ }
+
+ protected override RegelmaessigerDienstDC MapToDataContract(RegelmaessigerDienstDC pDataContract, bool doCommit)
+ {
+ pDataContract.EmployeeOid = EmployeeOid;
+ pDataContract.WohnheimOid = WohnheimOid;
+ pDataContract.DienstOid = Dienst.Oid.Value;
+ pDataContract.Zeile = Zeile;
+ pDataContract.Wochentag = Wochentag;
+ pDataContract.Startzeit = Startzeit;
+ pDataContract.Endzeit = Endzeit;
+ pDataContract.DauerInStunden = DauerInStunden;
+
+ return pDataContract;
+ }
+
+ public string DarstellungInPopUp
+ {
+ get
+ {
+ return Startzeit + " Uhr - " + Endzeit + " Uhr (" + Wochentag + "s)";
+ }
+ }
+ }
+}
diff --git a/BeWo/ownChat/ChatView.xaml.cs b/BeWo/ownChat/ChatView.xaml.cs
index cdd2adce6..f6bfb5afd 100644
--- a/BeWo/ownChat/ChatView.xaml.cs
+++ b/BeWo/ownChat/ChatView.xaml.cs
@@ -141,6 +141,7 @@ namespace BeWo.ownChat
MessageBox.Show("Es können nur Nachrichten von KlientInnen dokumentiert werden.", "Dokumentieren nicht möglich", MessageBoxButton.OK, MessageBoxImage.Exclamation);
}
+
}
private void OpenServiceRecordEditView(List messages, CompactCustomerDC compactCustomer)
diff --git a/Data/Access/SearchDAO.cs b/Data/Access/SearchDAO.cs
index 15cc65841..a861924b8 100644
--- a/Data/Access/SearchDAO.cs
+++ b/Data/Access/SearchDAO.cs
@@ -98,6 +98,22 @@ namespace BeWo.Data.Access
.List();
}
+ public virtual IList GetAllDienstEintraege(long wOid, DateTime start, DateTime end)
+ {
+ var c = CreateCriteria()
+ .Add(Restrictions.Eq("WohnheimOid", wOid))
+ .Add(Restrictions.Between("Datum", start, end));
+
+ return c.List();
+ }
+ public virtual IList GetEmployeeForWohnheim(long wOid)
+ {
+ var c = CreateCriteria()
+ .Add(Restrictions.Eq("WohnheimOid", wOid));
+
+ return c.List();
+ }
+
public virtual IEnumerable FindPerson(string pFirstName, string pLastName, DateTime? pDateOfBirth, PersonType? pPersonType)
{
var lCriteria = CreateCriteria()
@@ -1089,6 +1105,16 @@ namespace BeWo.Data.Access
}
+ public IEnumerable FindAbsenceTimesForEmployee(DateTime startDate, DateTime endDate, long empOid)
+ {
+ var criteria = CreateCriteriaIsActive()
+ .Add(Restrictions.Eq("EmployeeOid", empOid))
+ .Add(Restrictions.Gt("Start", startDate))
+ .Add(Restrictions.Lt("EndTime", endDate));
+
+ return criteria.List().ToList();
+ }
+
public IEnumerable FindVertretungen(DateTime startDate, DateTime endDate)
{
var criteria = CreateCriteriaIsActive()
diff --git a/Data/Data.csproj b/Data/Data.csproj
index 326d7f799..2dc684406 100644
--- a/Data/Data.csproj
+++ b/Data/Data.csproj
@@ -151,6 +151,7 @@
+
@@ -641,6 +642,7 @@
+
Designer
diff --git a/Data/Entities/RegelmaessigerDienst.cs b/Data/Entities/RegelmaessigerDienst.cs
new file mode 100644
index 000000000..8efb220c2
--- /dev/null
+++ b/Data/Entities/RegelmaessigerDienst.cs
@@ -0,0 +1,143 @@
+using BS.Shared;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace BeWo.Data.Entities
+{
+ public class RegelmaessigerDienst : BeWoEntityBase
+ {
+ private long _EmployeeOid;
+ private long _WohnheimOid;
+ private long _DienstOid;
+ private int _Zeile;
+ private string _Wochentag;
+ private string _Startzeit;
+ private string _Endzeit;
+ private double _DauerInStunden;
+
+ public RegelmaessigerDienst()
+ {
+ _Tid = TableID.RegelmaessigerDienst;
+ }
+
+ public virtual long EmployeeOid
+ {
+ get
+ {
+ return _EmployeeOid;
+ }
+ set
+ {
+ if (AreDifferent(_EmployeeOid, value))
+ {
+ _EmployeeOid = value;
+ }
+ }
+ }
+
+ public virtual long WohnheimOid
+ {
+ get
+ {
+ return _WohnheimOid;
+ }
+ set
+ {
+ if (AreDifferent(_WohnheimOid, value))
+ {
+ _WohnheimOid = value;
+ }
+ }
+ }
+
+ public virtual long DienstOid
+ {
+ get
+ {
+ return _DienstOid;
+ }
+ set
+ {
+ if (AreDifferent(_DienstOid, value))
+ {
+ _DienstOid = value;
+ }
+ }
+ }
+
+ public virtual int Zeile
+ {
+ get
+ {
+ return _Zeile;
+ }
+ set
+ {
+ if (AreDifferent(_Zeile, value))
+ {
+ _Zeile = value;
+ }
+ }
+ }
+
+ public virtual string Wochentag
+ {
+ get
+ {
+ return _Wochentag;
+ }
+ set
+ {
+ if (AreDifferent(_Wochentag, value))
+ {
+ _Wochentag = value;
+ }
+ }
+ }
+ public virtual string Startzeit
+ {
+ get
+ {
+ return _Startzeit;
+ }
+ set
+ {
+ if (AreDifferent(_Startzeit, value))
+ {
+ _Startzeit = value;
+ }
+ }
+ }
+ public virtual string Endzeit
+ {
+ get
+ {
+ return _Endzeit;
+ }
+ set
+ {
+ if (AreDifferent(_Endzeit, value))
+ {
+ _Endzeit = value;
+ }
+ }
+ }
+ public virtual double DauerInStunden
+ {
+ get
+ {
+ return _DauerInStunden;
+ }
+ set
+ {
+ if (AreDifferent(_DauerInStunden, value))
+ {
+ _DauerInStunden = value;
+ }
+ }
+ }
+ }
+}
diff --git a/Data/Mappings/RegelmaessigerDienst.hbm.xml b/Data/Mappings/RegelmaessigerDienst.hbm.xml
new file mode 100644
index 000000000..da3a3ae46
--- /dev/null
+++ b/Data/Mappings/RegelmaessigerDienst.hbm.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Host/ReportView.aspx.cs b/Host/ReportView.aspx.cs
index 4db8d2e68..d5d4cfc40 100644
--- a/Host/ReportView.aspx.cs
+++ b/Host/ReportView.aspx.cs
@@ -677,6 +677,8 @@ namespace Host
DateTime dt = DateTime.ParseExact(Request.Params["dt"], "MM.yyyy", CultureInfo.InvariantCulture);
List absenceIDs = null;
List empIDs = null;
+ List teams = null;
+ List feiertage = null;
if (Request.Params["ar"] != null)
absenceIDs = Request.Params["ar"].Split(';').Select(long.Parse).ToList();
@@ -684,7 +686,13 @@ namespace Host
if (Request.Params["et"] != null)
absenceIDs = Request.Params["et"].Split(';').Select(long.Parse).ToList();
- return reportCreator.CreateAbsenceReport(dt, absenceIDs, empIDs);
+ if (Request.Params["t"] != null)
+ teams = Request.Params["t"].Split(';').Select(long.Parse).ToList();
+
+ if (Request.Params["f"] != null)
+ feiertage = Request.Params["f"].Split(';').Select(int.Parse).ToList();
+
+ return reportCreator.CreateAbsenceReport(dt, absenceIDs, empIDs, teams, feiertage);
}
private XtraReport CreateRosterReport()
diff --git a/Model/Changes_2021_04_20_RegelmaessigerDienst.txt b/Model/Changes_2021_04_20_RegelmaessigerDienst.txt
new file mode 100644
index 000000000..df6c3cf46
--- /dev/null
+++ b/Model/Changes_2021_04_20_RegelmaessigerDienst.txt
@@ -0,0 +1,20 @@
+CREATE TABLE `regelmaessigerdienst` (
+ `Oid` bigint NOT NULL AUTO_INCREMENT,
+ `Tid` int DEFAULT NULL,
+ `IsActive` tinyint DEFAULT NULL,
+ `Notice` varchar(1024) DEFAULT NULL,
+ `InsTs` datetime DEFAULT NULL,
+ `InsUser` varchar(256) DEFAULT NULL,
+ `Version` bigint DEFAULT NULL,
+ `UdpUser` varchar(256) DEFAULT NULL,
+ `SystemEntryID` int DEFAULT NULL,
+ `EmployeeOid` bigint DEFAULT NULL,
+ `WohnheimOid` bigint DEFAULT NULL,
+ `DienstOid` bigint DEFAULT NULL,
+ `Zeile` int DEFAULT NULL,
+ `Wochentag` varchar(256) DEFAULT NULL,
+ `Startzeit` varchar(256) DEFAULT NULL,
+ `Endzeit` varchar(256) DEFAULT NULL,
+ `DauerInStunden` double DEFAULT NULL,
+ PRIMARY KEY (`Oid`)
+) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
diff --git a/Report/AbstractReportCreator.cs b/Report/AbstractReportCreator.cs
index 28698eb1c..f0e3f14de 100644
--- a/Report/AbstractReportCreator.cs
+++ b/Report/AbstractReportCreator.cs
@@ -79,7 +79,7 @@ namespace BeWo.Report
public abstract XtraReport CreateCustomReport(long employeeOid, String reportName);
- public abstract XtraReport CreateAbsenceReport(DateTime dt, List abs, List empTypes);
+ public abstract XtraReport CreateAbsenceReport(DateTime dt, List abs, List empTypes, List teams, List feiertage);
public abstract XtraReport CreateRosterReport(long wOid, DateTime dt);
diff --git a/Report/DefaultReportCreator.cs b/Report/DefaultReportCreator.cs
index 4d52f9b92..a6b39a67d 100644
--- a/Report/DefaultReportCreator.cs
+++ b/Report/DefaultReportCreator.cs
@@ -23,6 +23,7 @@ using BS.Shared.Core;
using BS.Shared.DataContracts;
using DevExpress.XtraReports.UI;
using DevExpress.XtraCharts.Designer;
+using BS.Shared.DataContracts.Compact;
namespace BeWo.Report
{
@@ -938,13 +939,20 @@ namespace BeWo.Report
return report as XtraReport;
}
- public override XtraReport CreateAbsenceReport(DateTime dt, List abs, List empTypes)
+ public override XtraReport CreateAbsenceReport(DateTime dt, List abs, List empTypes, List teams, List feiertage)
{
var report = FindReportImp();
var service = new OperationsServiceImp();
- var filter = new AbsenceOverviewFilterDC() { AbsenceReasons = abs, EmploymentType = empTypes, Year = dt.Year, Month = dt.Month };
+
+ var filter = new AbsenceOverviewFilterDC() { AbsenceReasons = abs, EmploymentType = empTypes, Year = dt.Year, Month = dt.Month, Teams = teams};
+ List compactTeams = new List();
+ if (teams != null)
+ {
+ if(teams.Count > 0)
+ compactTeams = service.GetCertainTeamsById(teams);
+ }
- report.SetReportDataSource(AbsenceRO.Create(service.GetAbsenceOverview(filter), filter));
+ report.SetReportDataSource(AbsenceRO.Create(service.GetAbsenceOverview(filter), filter, compactTeams, feiertage));
return report as XtraReport;
}
diff --git a/Report/DefaultReports/AbsenceReport.Designer.cs b/Report/DefaultReports/AbsenceReport.Designer.cs
index 97baabd26..f1848bd18 100644
--- a/Report/DefaultReports/AbsenceReport.Designer.cs
+++ b/Report/DefaultReports/AbsenceReport.Designer.cs
@@ -32,7 +32,7 @@ namespace BeWo.Report.DefaultReports
this.components = new System.ComponentModel.Container();
this.Detail = new DevExpress.XtraReports.UI.DetailBand();
this.ReportHeader = new DevExpress.XtraReports.UI.ReportHeaderBand();
- this.lblCustomerName = new DevExpress.XtraReports.UI.XRLabel();
+ this.lblReportInformation = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel1 = new DevExpress.XtraReports.UI.XRLabel();
this.DetailReport = new DevExpress.XtraReports.UI.DetailReportBand();
this.Detail1 = new DevExpress.XtraReports.UI.DetailBand();
@@ -76,34 +76,34 @@ namespace BeWo.Report.DefaultReports
this.xrTable1 = new DevExpress.XtraReports.UI.XRTable();
this.xrTableRow1 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell1 = new DevExpress.XtraReports.UI.XRTableCell();
- this.xrTableCell2 = new DevExpress.XtraReports.UI.XRTableCell();
- this.xrTableCell35 = new DevExpress.XtraReports.UI.XRTableCell();
- this.xrTableCell3 = new DevExpress.XtraReports.UI.XRTableCell();
- this.xrTableCell4 = new DevExpress.XtraReports.UI.XRTableCell();
- this.xrTableCell5 = new DevExpress.XtraReports.UI.XRTableCell();
- this.xrTableCell6 = new DevExpress.XtraReports.UI.XRTableCell();
- this.xrTableCell7 = new DevExpress.XtraReports.UI.XRTableCell();
- this.xrTableCell8 = new DevExpress.XtraReports.UI.XRTableCell();
- this.xrTableCell9 = new DevExpress.XtraReports.UI.XRTableCell();
- this.xrTableCell10 = new DevExpress.XtraReports.UI.XRTableCell();
- this.xrTableCell11 = new DevExpress.XtraReports.UI.XRTableCell();
- this.xrTableCell12 = new DevExpress.XtraReports.UI.XRTableCell();
- this.xrTableCell13 = new DevExpress.XtraReports.UI.XRTableCell();
- this.xrTableCell14 = new DevExpress.XtraReports.UI.XRTableCell();
- this.xrTableCell15 = new DevExpress.XtraReports.UI.XRTableCell();
- this.xrTableCell16 = new DevExpress.XtraReports.UI.XRTableCell();
- this.xrTableCell17 = new DevExpress.XtraReports.UI.XRTableCell();
- this.xrTableCell37 = new DevExpress.XtraReports.UI.XRTableCell();
- this.xrTableCell38 = new DevExpress.XtraReports.UI.XRTableCell();
- this.xrTableCell39 = new DevExpress.XtraReports.UI.XRTableCell();
- this.xrTableCell40 = new DevExpress.XtraReports.UI.XRTableCell();
- this.xrTableCell41 = new DevExpress.XtraReports.UI.XRTableCell();
- this.xrTableCell42 = new DevExpress.XtraReports.UI.XRTableCell();
- this.xrTableCell43 = new DevExpress.XtraReports.UI.XRTableCell();
- this.xrTableCell44 = new DevExpress.XtraReports.UI.XRTableCell();
- this.xrTableCell45 = new DevExpress.XtraReports.UI.XRTableCell();
- this.xrTableCell46 = new DevExpress.XtraReports.UI.XRTableCell();
- this.xrTableCell47 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.cellHeader1 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.cellHeader2 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.cellHeader3 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.cellHeader4 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.cellHeader5 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.cellHeader6 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.cellHeader7 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.cellHeader8 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.cellHeader9 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.cellHeader10 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.cellHeader11 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.cellHeader12 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.cellHeader13 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.cellHeader14 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.cellHeader15 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.cellHeader16 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.cellHeader17 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.cellHeader18 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.cellHeader19 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.cellHeader20 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.cellHeader21 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.cellHeader22 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.cellHeader23 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.cellHeader24 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.cellHeader25 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.cellHeader26 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.cellHeader27 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.cellHeader28 = new DevExpress.XtraReports.UI.XRTableCell();
this.cellHeader29 = new DevExpress.XtraReports.UI.XRTableCell();
this.cellHeader30 = new DevExpress.XtraReports.UI.XRTableCell();
this.cellHeader31 = new DevExpress.XtraReports.UI.XRTableCell();
@@ -128,27 +128,24 @@ namespace BeWo.Report.DefaultReports
// ReportHeader
//
this.ReportHeader.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
- this.lblCustomerName,
+ this.lblReportInformation,
this.xrLabel1});
this.ReportHeader.HeightF = 75F;
this.ReportHeader.Name = "ReportHeader";
//
- // lblCustomerName
+ // lblReportInformation
//
- this.lblCustomerName.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
- new DevExpress.XtraReports.UI.XRBinding("Text", null, "ReportDateTime", "{0:MMMM yyyy}")});
- this.lblCustomerName.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblCustomerName.LocationFloat = new DevExpress.Utils.PointFloat(0F, 32.99999F);
- this.lblCustomerName.Multiline = true;
- this.lblCustomerName.Name = "lblCustomerName";
- this.lblCustomerName.SizeF = new System.Drawing.SizeF(1007F, 25F);
- this.lblCustomerName.StylePriority.UseFont = false;
- this.lblCustomerName.Text = "lblCustomerName";
+ this.lblReportInformation.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lblReportInformation.LocationFloat = new DevExpress.Utils.PointFloat(0F, 35.00001F);
+ this.lblReportInformation.Multiline = true;
+ this.lblReportInformation.Name = "lblReportInformation";
+ this.lblReportInformation.SizeF = new System.Drawing.SizeF(1007F, 25F);
+ this.lblReportInformation.StylePriority.UseFont = false;
//
// xrLabel1
//
this.xrLabel1.Font = new System.Drawing.Font("Arial", 14F);
- this.xrLabel1.LocationFloat = new DevExpress.Utils.PointFloat(0F, 8F);
+ this.xrLabel1.LocationFloat = new DevExpress.Utils.PointFloat(0F, 10.00001F);
this.xrLabel1.Multiline = true;
this.xrLabel1.Name = "xrLabel1";
this.xrLabel1.SizeF = new System.Drawing.SizeF(1007F, 25F);
@@ -245,27 +242,36 @@ namespace BeWo.Report.DefaultReports
//
// xrTableCell19
//
+ this.xrTableCell19.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell19.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "AbsenceReportRows.Day1")});
this.xrTableCell19.Name = "xrTableCell19";
+ this.xrTableCell19.StylePriority.UseBorders = false;
this.xrTableCell19.Text = "Vorname";
this.xrTableCell19.Weight = 0.081154197199447164D;
this.xrTableCell19.EvaluateBinding += new DevExpress.XtraReports.UI.BindingEventHandler(this.Cell_EvaluateBinding);
//
// xrTableCell36
//
+ this.xrTableCell36.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell36.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "AbsenceReportRows.Day2")});
this.xrTableCell36.Name = "xrTableCell36";
+ this.xrTableCell36.StylePriority.UseBorders = false;
this.xrTableCell36.Text = "xrTableCell36";
this.xrTableCell36.Weight = 0.0811541507626455D;
this.xrTableCell36.EvaluateBinding += new DevExpress.XtraReports.UI.BindingEventHandler(this.Cell_EvaluateBinding);
//
// xrTableCell20
//
+ this.xrTableCell20.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell20.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "AbsenceReportRows.Day3", "{0:dd/MM/yyyy}")});
this.xrTableCell20.Name = "xrTableCell20";
+ this.xrTableCell20.StylePriority.UseBorders = false;
this.xrTableCell20.StylePriority.UseTextAlignment = false;
this.xrTableCell20.Text = "xrTableCell20";
this.xrTableCell20.Weight = 0.08115424538675646D;
@@ -273,9 +279,12 @@ namespace BeWo.Report.DefaultReports
//
// xrTableCell21
//
+ this.xrTableCell21.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell21.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "AbsenceReportRows.Day4", "{0:dd/MM/yyyy}")});
this.xrTableCell21.Name = "xrTableCell21";
+ this.xrTableCell21.StylePriority.UseBorders = false;
this.xrTableCell21.StylePriority.UseTextAlignment = false;
this.xrTableCell21.Text = "xrTableCell21";
this.xrTableCell21.Weight = 0.081154025839928062D;
@@ -283,9 +292,12 @@ namespace BeWo.Report.DefaultReports
//
// xrTableCell22
//
+ this.xrTableCell22.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell22.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "AbsenceReportRows.Day5", "{0:0.00}")});
this.xrTableCell22.Name = "xrTableCell22";
+ this.xrTableCell22.StylePriority.UseBorders = false;
this.xrTableCell22.StylePriority.UseTextAlignment = false;
this.xrTableCell22.Text = "xrTableCell22";
this.xrTableCell22.Weight = 0.081154273564122192D;
@@ -293,9 +305,12 @@ namespace BeWo.Report.DefaultReports
//
// xrTableCell23
//
+ this.xrTableCell23.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell23.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "AbsenceReportRows.Day6", "{0:0.00}")});
this.xrTableCell23.Name = "xrTableCell23";
+ this.xrTableCell23.StylePriority.UseBorders = false;
this.xrTableCell23.StylePriority.UseTextAlignment = false;
this.xrTableCell23.Text = "xrTableCell23";
this.xrTableCell23.Weight = 0.081154193859620971D;
@@ -303,9 +318,12 @@ namespace BeWo.Report.DefaultReports
//
// xrTableCell24
//
+ this.xrTableCell24.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell24.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "AbsenceReportRows.Day7", "{0:0.00}")});
this.xrTableCell24.Name = "xrTableCell24";
+ this.xrTableCell24.StylePriority.UseBorders = false;
this.xrTableCell24.StylePriority.UseTextAlignment = false;
this.xrTableCell24.Text = "xrTableCell24";
this.xrTableCell24.Weight = 0.081154190922765934D;
@@ -313,9 +331,12 @@ namespace BeWo.Report.DefaultReports
//
// xrTableCell25
//
+ this.xrTableCell25.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell25.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "AbsenceReportRows.Day8", "{0:0.00}")});
this.xrTableCell25.Name = "xrTableCell25";
+ this.xrTableCell25.StylePriority.UseBorders = false;
this.xrTableCell25.StylePriority.UseTextAlignment = false;
this.xrTableCell25.Text = "xrTableCell25";
this.xrTableCell25.Weight = 0.081154187824722945D;
@@ -323,9 +344,12 @@ namespace BeWo.Report.DefaultReports
//
// xrTableCell26
//
+ this.xrTableCell26.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell26.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "AbsenceReportRows.Day9", "{0:0.00}")});
this.xrTableCell26.Name = "xrTableCell26";
+ this.xrTableCell26.StylePriority.UseBorders = false;
this.xrTableCell26.StylePriority.UseTextAlignment = false;
this.xrTableCell26.Text = "xrTableCell26";
this.xrTableCell26.Weight = 0.081154197276817663D;
@@ -333,9 +357,12 @@ namespace BeWo.Report.DefaultReports
//
// xrTableCell27
//
+ this.xrTableCell27.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell27.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "AbsenceReportRows.Day10")});
this.xrTableCell27.Name = "xrTableCell27";
+ this.xrTableCell27.StylePriority.UseBorders = false;
this.xrTableCell27.StylePriority.UseFont = false;
this.xrTableCell27.StylePriority.UseTextAlignment = false;
this.xrTableCell27.Text = "xrTableCell27";
@@ -344,9 +371,12 @@ namespace BeWo.Report.DefaultReports
//
// xrTableCell28
//
+ this.xrTableCell28.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell28.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "AbsenceReportRows.Day11", "{0:0.00}")});
this.xrTableCell28.Name = "xrTableCell28";
+ this.xrTableCell28.StylePriority.UseBorders = false;
this.xrTableCell28.StylePriority.UseTextAlignment = false;
this.xrTableCell28.Text = "xrTableCell28";
this.xrTableCell28.Weight = 0.0811541902506101D;
@@ -354,9 +384,12 @@ namespace BeWo.Report.DefaultReports
//
// xrTableCell29
//
+ this.xrTableCell29.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell29.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "AbsenceReportRows.Day12", "{0:0.00}")});
this.xrTableCell29.Name = "xrTableCell29";
+ this.xrTableCell29.StylePriority.UseBorders = false;
this.xrTableCell29.StylePriority.UseTextAlignment = false;
this.xrTableCell29.Text = "xrTableCell29";
this.xrTableCell29.Weight = 0.081154190068467136D;
@@ -364,9 +397,12 @@ namespace BeWo.Report.DefaultReports
//
// xrTableCell30
//
+ this.xrTableCell30.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell30.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "AbsenceReportRows.Day13", "{0:0.00}")});
this.xrTableCell30.Name = "xrTableCell30";
+ this.xrTableCell30.StylePriority.UseBorders = false;
this.xrTableCell30.StylePriority.UseTextAlignment = false;
this.xrTableCell30.Text = "xrTableCell30";
this.xrTableCell30.Weight = 0.081154197479915147D;
@@ -374,9 +410,12 @@ namespace BeWo.Report.DefaultReports
//
// xrTableCell31
//
+ this.xrTableCell31.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell31.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "AbsenceReportRows.Day14", "{0:0.00}")});
this.xrTableCell31.Name = "xrTableCell31";
+ this.xrTableCell31.StylePriority.UseBorders = false;
this.xrTableCell31.StylePriority.UseTextAlignment = false;
this.xrTableCell31.Text = "xrTableCell31";
this.xrTableCell31.Weight = 0.081154188405001215D;
@@ -384,9 +423,12 @@ namespace BeWo.Report.DefaultReports
//
// xrTableCell32
//
+ this.xrTableCell32.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell32.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "AbsenceReportRows.Day15", "{0:c}")});
this.xrTableCell32.Name = "xrTableCell32";
+ this.xrTableCell32.StylePriority.UseBorders = false;
this.xrTableCell32.StylePriority.UseTextAlignment = false;
this.xrTableCell32.Text = "xrTableCell32";
this.xrTableCell32.Weight = 0.081154187218654084D;
@@ -394,14 +436,19 @@ namespace BeWo.Report.DefaultReports
//
// xrTableCell33
//
+ this.xrTableCell33.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell33.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "AbsenceReportRows.Day16")});
this.xrTableCell33.Name = "xrTableCell33";
+ this.xrTableCell33.StylePriority.UseBorders = false;
this.xrTableCell33.Weight = 0.081154184816944808D;
this.xrTableCell33.EvaluateBinding += new DevExpress.XtraReports.UI.BindingEventHandler(this.Cell_EvaluateBinding);
//
// xrTableCell34
//
+ this.xrTableCell34.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell34.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "AbsenceReportRows.Day17", "{0:0.00}")});
this.xrTableCell34.Name = "xrTableCell34";
@@ -413,117 +460,156 @@ namespace BeWo.Report.DefaultReports
//
// xrTableCell54
//
+ this.xrTableCell54.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell54.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "AbsenceReportRows.Day18")});
this.xrTableCell54.Name = "xrTableCell54";
+ this.xrTableCell54.StylePriority.UseBorders = false;
this.xrTableCell54.Text = "xrTableCell54";
this.xrTableCell54.Weight = 0.08115419313548157D;
this.xrTableCell54.EvaluateBinding += new DevExpress.XtraReports.UI.BindingEventHandler(this.Cell_EvaluateBinding);
//
// xrTableCell53
//
+ this.xrTableCell53.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell53.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "AbsenceReportRows.Day19")});
this.xrTableCell53.Name = "xrTableCell53";
+ this.xrTableCell53.StylePriority.UseBorders = false;
this.xrTableCell53.Text = "xrTableCell53";
this.xrTableCell53.Weight = 0.08115419330432655D;
this.xrTableCell53.EvaluateBinding += new DevExpress.XtraReports.UI.BindingEventHandler(this.Cell_EvaluateBinding);
//
// xrTableCell52
//
+ this.xrTableCell52.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell52.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "AbsenceReportRows.Day20")});
this.xrTableCell52.Name = "xrTableCell52";
+ this.xrTableCell52.StylePriority.UseBorders = false;
this.xrTableCell52.Text = "xrTableCell52";
this.xrTableCell52.Weight = 0.081154193642016481D;
this.xrTableCell52.EvaluateBinding += new DevExpress.XtraReports.UI.BindingEventHandler(this.Cell_EvaluateBinding);
//
// xrTableCell51
//
+ this.xrTableCell51.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell51.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "AbsenceReportRows.Day21")});
this.xrTableCell51.Name = "xrTableCell51";
+ this.xrTableCell51.StylePriority.UseBorders = false;
this.xrTableCell51.Text = "xrTableCell51";
this.xrTableCell51.Weight = 0.081154193642016426D;
this.xrTableCell51.EvaluateBinding += new DevExpress.XtraReports.UI.BindingEventHandler(this.Cell_EvaluateBinding);
//
// xrTableCell55
//
+ this.xrTableCell55.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell55.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "AbsenceReportRows.Day22")});
this.xrTableCell55.Name = "xrTableCell55";
+ this.xrTableCell55.StylePriority.UseBorders = false;
this.xrTableCell55.Text = "[Day22]";
this.xrTableCell55.Weight = 0.081154193135481556D;
this.xrTableCell55.EvaluateBinding += new DevExpress.XtraReports.UI.BindingEventHandler(this.Cell_EvaluateBinding);
//
// xrTableCell57
//
+ this.xrTableCell57.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell57.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "AbsenceReportRows.Day23")});
this.xrTableCell57.Name = "xrTableCell57";
+ this.xrTableCell57.StylePriority.UseBorders = false;
this.xrTableCell57.Text = "xrTableCell57";
this.xrTableCell57.Weight = 0.081154193135481556D;
this.xrTableCell57.EvaluateBinding += new DevExpress.XtraReports.UI.BindingEventHandler(this.Cell_EvaluateBinding);
//
// xrTableCell56
//
+ this.xrTableCell56.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell56.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "AbsenceReportRows.Day24")});
this.xrTableCell56.Name = "xrTableCell56";
+ this.xrTableCell56.StylePriority.UseBorders = false;
this.xrTableCell56.Text = "[Day24]";
this.xrTableCell56.Weight = 0.081154203328137109D;
this.xrTableCell56.EvaluateBinding += new DevExpress.XtraReports.UI.BindingEventHandler(this.Cell_EvaluateBinding);
//
// xrTableCell60
//
+ this.xrTableCell60.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell60.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "AbsenceReportRows.Day25")});
this.xrTableCell60.Name = "xrTableCell60";
+ this.xrTableCell60.StylePriority.UseBorders = false;
this.xrTableCell60.Text = "xrTableCell60";
this.xrTableCell60.Weight = 0.081154203328137109D;
this.xrTableCell60.EvaluateBinding += new DevExpress.XtraReports.UI.BindingEventHandler(this.Cell_EvaluateBinding);
//
// xrTableCell59
//
+ this.xrTableCell59.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell59.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "AbsenceReportRows.Day26")});
this.xrTableCell59.Name = "xrTableCell59";
+ this.xrTableCell59.StylePriority.UseBorders = false;
this.xrTableCell59.Text = "xrTableCell59";
this.xrTableCell59.Weight = 0.081154203328137109D;
this.xrTableCell59.EvaluateBinding += new DevExpress.XtraReports.UI.BindingEventHandler(this.Cell_EvaluateBinding);
//
// xrTableCell61
//
+ this.xrTableCell61.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell61.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "AbsenceReportRows.Day27")});
this.xrTableCell61.Name = "xrTableCell61";
+ this.xrTableCell61.StylePriority.UseBorders = false;
this.xrTableCell61.Text = "xrTableCell61";
this.xrTableCell61.Weight = 0.081154203328137109D;
this.xrTableCell61.EvaluateBinding += new DevExpress.XtraReports.UI.BindingEventHandler(this.Cell_EvaluateBinding);
//
// xrTableCell58
//
+ this.xrTableCell58.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell58.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "AbsenceReportRows.Day28")});
this.xrTableCell58.Name = "xrTableCell58";
+ this.xrTableCell58.StylePriority.UseBorders = false;
this.xrTableCell58.Text = "xrTableCell58";
this.xrTableCell58.Weight = 0.081154203328137109D;
this.xrTableCell58.EvaluateBinding += new DevExpress.XtraReports.UI.BindingEventHandler(this.Cell_EvaluateBinding);
//
// cellDetail29
//
+ this.cellDetail29.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.cellDetail29.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "AbsenceReportRows.Day29")});
this.cellDetail29.Name = "cellDetail29";
+ this.cellDetail29.StylePriority.UseBorders = false;
this.cellDetail29.Text = "cellDetail29";
this.cellDetail29.Weight = 0.081154203328137109D;
this.cellDetail29.EvaluateBinding += new DevExpress.XtraReports.UI.BindingEventHandler(this.Cell_EvaluateBinding);
//
// cellDetail30
//
+ this.cellDetail30.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.cellDetail30.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "AbsenceReportRows.Day30")});
this.cellDetail30.Name = "cellDetail30";
+ this.cellDetail30.StylePriority.UseBorders = false;
this.cellDetail30.Text = "cellDetail30";
this.cellDetail30.Weight = 0.081154203328137109D;
this.cellDetail30.EvaluateBinding += new DevExpress.XtraReports.UI.BindingEventHandler(this.Cell_EvaluateBinding);
@@ -585,34 +671,34 @@ namespace BeWo.Report.DefaultReports
//
this.xrTableRow1.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
this.xrTableCell1,
- this.xrTableCell2,
- this.xrTableCell35,
- this.xrTableCell3,
- this.xrTableCell4,
- this.xrTableCell5,
- this.xrTableCell6,
- this.xrTableCell7,
- this.xrTableCell8,
- this.xrTableCell9,
- this.xrTableCell10,
- this.xrTableCell11,
- this.xrTableCell12,
- this.xrTableCell13,
- this.xrTableCell14,
- this.xrTableCell15,
- this.xrTableCell16,
- this.xrTableCell17,
- this.xrTableCell37,
- this.xrTableCell38,
- this.xrTableCell39,
- this.xrTableCell40,
- this.xrTableCell41,
- this.xrTableCell42,
- this.xrTableCell43,
- this.xrTableCell44,
- this.xrTableCell45,
- this.xrTableCell46,
- this.xrTableCell47,
+ this.cellHeader1,
+ this.cellHeader2,
+ this.cellHeader3,
+ this.cellHeader4,
+ this.cellHeader5,
+ this.cellHeader6,
+ this.cellHeader7,
+ this.cellHeader8,
+ this.cellHeader9,
+ this.cellHeader10,
+ this.cellHeader11,
+ this.cellHeader12,
+ this.cellHeader13,
+ this.cellHeader14,
+ this.cellHeader15,
+ this.cellHeader16,
+ this.cellHeader17,
+ this.cellHeader18,
+ this.cellHeader19,
+ this.cellHeader20,
+ this.cellHeader21,
+ this.cellHeader22,
+ this.cellHeader23,
+ this.cellHeader24,
+ this.cellHeader25,
+ this.cellHeader26,
+ this.cellHeader27,
+ this.cellHeader28,
this.cellHeader29,
this.cellHeader30,
this.cellHeader31});
@@ -628,184 +714,303 @@ namespace BeWo.Report.DefaultReports
this.xrTableCell1.Text = "Mitarbeiter";
this.xrTableCell1.Weight = 0.48422002649988627D;
//
- // xrTableCell2
+ // cellHeader1
//
- this.xrTableCell2.Name = "xrTableCell2";
- this.xrTableCell2.Text = "1.";
- this.xrTableCell2.Weight = 0.081154192039802536D;
+ this.cellHeader1.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.cellHeader1.Name = "cellHeader1";
+ this.cellHeader1.StylePriority.UseBorders = false;
+ this.cellHeader1.Text = "1.";
+ this.cellHeader1.Weight = 0.081154192039802536D;
//
- // xrTableCell35
+ // cellHeader2
//
- this.xrTableCell35.Name = "xrTableCell35";
- this.xrTableCell35.Text = "2.";
- this.xrTableCell35.Weight = 0.0811541971994471D;
+ this.cellHeader2.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.cellHeader2.Name = "cellHeader2";
+ this.cellHeader2.StylePriority.UseBorders = false;
+ this.cellHeader2.Text = "2.";
+ this.cellHeader2.Weight = 0.0811541971994471D;
//
- // xrTableCell3
+ // cellHeader3
//
- this.xrTableCell3.Name = "xrTableCell3";
- this.xrTableCell3.Text = "3.";
- this.xrTableCell3.Weight = 0.081154111235996029D;
+ this.cellHeader3.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.cellHeader3.Name = "cellHeader3";
+ this.cellHeader3.StylePriority.UseBorders = false;
+ this.cellHeader3.Text = "3.";
+ this.cellHeader3.Weight = 0.081154111235996029D;
//
- // xrTableCell4
+ // cellHeader4
//
- this.xrTableCell4.Name = "xrTableCell4";
- this.xrTableCell4.Text = "4.";
- this.xrTableCell4.Weight = 0.081154190948556346D;
+ this.cellHeader4.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.cellHeader4.Name = "cellHeader4";
+ this.cellHeader4.StylePriority.UseBorders = false;
+ this.cellHeader4.Text = "4.";
+ this.cellHeader4.Weight = 0.081154190948556346D;
//
- // xrTableCell5
+ // cellHeader5
//
- this.xrTableCell5.Name = "xrTableCell5";
- this.xrTableCell5.Text = "5.";
- this.xrTableCell5.Weight = 0.081154193589630455D;
+ this.cellHeader5.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.cellHeader5.Name = "cellHeader5";
+ this.cellHeader5.StylePriority.UseBorders = false;
+ this.cellHeader5.Text = "5.";
+ this.cellHeader5.Weight = 0.081154193589630455D;
//
- // xrTableCell6
+ // cellHeader6
//
- this.xrTableCell6.Name = "xrTableCell6";
- this.xrTableCell6.Text = "6.";
- this.xrTableCell6.Weight = 0.081154191279798588D;
+ this.cellHeader6.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.cellHeader6.Name = "cellHeader6";
+ this.cellHeader6.StylePriority.UseBorders = false;
+ this.cellHeader6.Text = "6.";
+ this.cellHeader6.Weight = 0.081154191279798588D;
//
- // xrTableCell7
+ // cellHeader7
//
- this.xrTableCell7.Name = "xrTableCell7";
- this.xrTableCell7.Text = "7.";
- this.xrTableCell7.Weight = 0.081154190922765962D;
+ this.cellHeader7.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.cellHeader7.Name = "cellHeader7";
+ this.cellHeader7.StylePriority.UseBorders = false;
+ this.cellHeader7.Text = "7.";
+ this.cellHeader7.Weight = 0.081154190922765962D;
//
- // xrTableCell8
+ // cellHeader8
//
- this.xrTableCell8.Name = "xrTableCell8";
- this.xrTableCell8.Text = "8.";
- this.xrTableCell8.Weight = 0.0811541878247228D;
+ this.cellHeader8.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.cellHeader8.Name = "cellHeader8";
+ this.cellHeader8.StylePriority.UseBorders = false;
+ this.cellHeader8.Text = "8.";
+ this.cellHeader8.Weight = 0.0811541878247228D;
//
- // xrTableCell9
+ // cellHeader9
//
- this.xrTableCell9.Name = "xrTableCell9";
- this.xrTableCell9.Text = "9.";
- this.xrTableCell9.Weight = 0.081154197276817663D;
+ this.cellHeader9.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.cellHeader9.Name = "cellHeader9";
+ this.cellHeader9.StylePriority.UseBorders = false;
+ this.cellHeader9.Text = "9.";
+ this.cellHeader9.Weight = 0.081154197276817663D;
//
- // xrTableCell10
+ // cellHeader10
//
- this.xrTableCell10.Name = "xrTableCell10";
- this.xrTableCell10.Text = "10.";
- this.xrTableCell10.Weight = 0.081154192868311492D;
+ this.cellHeader10.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.cellHeader10.Name = "cellHeader10";
+ this.cellHeader10.StylePriority.UseBorders = false;
+ this.cellHeader10.Text = "10.";
+ this.cellHeader10.Weight = 0.081154192868311492D;
//
- // xrTableCell11
+ // cellHeader11
//
- this.xrTableCell11.Name = "xrTableCell11";
- this.xrTableCell11.Text = "11.";
- this.xrTableCell11.Weight = 0.081154190250609992D;
+ this.cellHeader11.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.cellHeader11.Name = "cellHeader11";
+ this.cellHeader11.StylePriority.UseBorders = false;
+ this.cellHeader11.Text = "11.";
+ this.cellHeader11.Weight = 0.081154190250609992D;
//
- // xrTableCell12
+ // cellHeader12
//
- this.xrTableCell12.Name = "xrTableCell12";
- this.xrTableCell12.Text = "12.";
- this.xrTableCell12.Weight = 0.081154190068467136D;
+ this.cellHeader12.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.cellHeader12.Name = "cellHeader12";
+ this.cellHeader12.StylePriority.UseBorders = false;
+ this.cellHeader12.Text = "12.";
+ this.cellHeader12.Weight = 0.081154190068467136D;
//
- // xrTableCell13
+ // cellHeader13
//
- this.xrTableCell13.Name = "xrTableCell13";
- this.xrTableCell13.Text = "13.";
- this.xrTableCell13.Weight = 0.081154197479915258D;
+ this.cellHeader13.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.cellHeader13.Name = "cellHeader13";
+ this.cellHeader13.StylePriority.UseBorders = false;
+ this.cellHeader13.Text = "13.";
+ this.cellHeader13.Weight = 0.081154197479915258D;
//
- // xrTableCell14
+ // cellHeader14
//
- this.xrTableCell14.Name = "xrTableCell14";
- this.xrTableCell14.Text = "14.";
- this.xrTableCell14.Weight = 0.081154188405001215D;
+ this.cellHeader14.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.cellHeader14.Name = "cellHeader14";
+ this.cellHeader14.StylePriority.UseBorders = false;
+ this.cellHeader14.Text = "14.";
+ this.cellHeader14.Weight = 0.081154188405001215D;
//
- // xrTableCell15
+ // cellHeader15
//
- this.xrTableCell15.Name = "xrTableCell15";
- this.xrTableCell15.Text = "15.";
- this.xrTableCell15.Weight = 0.081154197537943062D;
+ this.cellHeader15.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.cellHeader15.Name = "cellHeader15";
+ this.cellHeader15.StylePriority.UseBorders = false;
+ this.cellHeader15.Text = "15.";
+ this.cellHeader15.Weight = 0.081154197537943062D;
//
- // xrTableCell16
+ // cellHeader16
//
- this.xrTableCell16.Name = "xrTableCell16";
- this.xrTableCell16.Text = "16.";
- this.xrTableCell16.Weight = 0.081154184816944808D;
+ this.cellHeader16.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.cellHeader16.Name = "cellHeader16";
+ this.cellHeader16.StylePriority.UseBorders = false;
+ this.cellHeader16.Text = "16.";
+ this.cellHeader16.Weight = 0.081154184816944808D;
//
- // xrTableCell17
+ // cellHeader17
//
- this.xrTableCell17.Name = "xrTableCell17";
- this.xrTableCell17.StylePriority.UseBorders = false;
- this.xrTableCell17.Text = "17.";
- this.xrTableCell17.Weight = 0.081154194317396344D;
+ this.cellHeader17.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.cellHeader17.Name = "cellHeader17";
+ this.cellHeader17.StylePriority.UseBorders = false;
+ this.cellHeader17.Text = "17.";
+ this.cellHeader17.Weight = 0.081154194317396344D;
//
- // xrTableCell37
+ // cellHeader18
//
- this.xrTableCell37.Name = "xrTableCell37";
- this.xrTableCell37.Text = "18.";
- this.xrTableCell37.Weight = 0.081154193642016537D;
+ this.cellHeader18.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.cellHeader18.Name = "cellHeader18";
+ this.cellHeader18.StylePriority.UseBorders = false;
+ this.cellHeader18.Text = "18.";
+ this.cellHeader18.Weight = 0.081154193642016537D;
//
- // xrTableCell38
+ // cellHeader19
//
- this.xrTableCell38.Name = "xrTableCell38";
- this.xrTableCell38.Text = "19.";
- this.xrTableCell38.Weight = 0.0811541933043266D;
+ this.cellHeader19.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.cellHeader19.Name = "cellHeader19";
+ this.cellHeader19.StylePriority.UseBorders = false;
+ this.cellHeader19.Text = "19.";
+ this.cellHeader19.Weight = 0.0811541933043266D;
//
- // xrTableCell39
+ // cellHeader20
//
- this.xrTableCell39.Name = "xrTableCell39";
- this.xrTableCell39.Text = "20.";
- this.xrTableCell39.Weight = 0.081154193135481612D;
+ this.cellHeader20.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.cellHeader20.Name = "cellHeader20";
+ this.cellHeader20.StylePriority.UseBorders = false;
+ this.cellHeader20.Text = "20.";
+ this.cellHeader20.Weight = 0.081154193135481612D;
//
- // xrTableCell40
+ // cellHeader21
//
- this.xrTableCell40.Name = "xrTableCell40";
- this.xrTableCell40.Text = "21.";
- this.xrTableCell40.Weight = 0.081154193051059031D;
+ this.cellHeader21.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.cellHeader21.Name = "cellHeader21";
+ this.cellHeader21.StylePriority.UseBorders = false;
+ this.cellHeader21.Text = "21.";
+ this.cellHeader21.Weight = 0.081154193051059031D;
//
- // xrTableCell41
+ // cellHeader22
//
- this.xrTableCell41.Name = "xrTableCell41";
- this.xrTableCell41.Text = "22.";
- this.xrTableCell41.Weight = 0.081154193008847852D;
+ this.cellHeader22.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.cellHeader22.Name = "cellHeader22";
+ this.cellHeader22.StylePriority.UseBorders = false;
+ this.cellHeader22.Text = "22.";
+ this.cellHeader22.Weight = 0.081154193008847852D;
//
- // xrTableCell42
+ // cellHeader23
//
- this.xrTableCell42.Name = "xrTableCell42";
- this.xrTableCell42.Text = "23.";
- this.xrTableCell42.Weight = 0.081154192987742235D;
+ this.cellHeader23.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.cellHeader23.Name = "cellHeader23";
+ this.cellHeader23.StylePriority.UseBorders = false;
+ this.cellHeader23.Text = "23.";
+ this.cellHeader23.Weight = 0.081154192987742235D;
//
- // xrTableCell43
+ // cellHeader24
//
- this.xrTableCell43.Name = "xrTableCell43";
- this.xrTableCell43.Text = "24.";
- this.xrTableCell43.Weight = 0.081154192977189316D;
+ this.cellHeader24.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.cellHeader24.Name = "cellHeader24";
+ this.cellHeader24.StylePriority.UseBorders = false;
+ this.cellHeader24.Text = "24.";
+ this.cellHeader24.Weight = 0.081154192977189316D;
//
- // xrTableCell44
+ // cellHeader25
//
- this.xrTableCell44.Name = "xrTableCell44";
- this.xrTableCell44.Text = "25,";
- this.xrTableCell44.Weight = 0.081154192971912981D;
+ this.cellHeader25.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.cellHeader25.Name = "cellHeader25";
+ this.cellHeader25.StylePriority.UseBorders = false;
+ this.cellHeader25.Text = "25,";
+ this.cellHeader25.Weight = 0.081154192971912981D;
//
- // xrTableCell45
+ // cellHeader26
//
- this.xrTableCell45.Name = "xrTableCell45";
- this.xrTableCell45.Text = "26.";
- this.xrTableCell45.Weight = 0.081154192969274785D;
+ this.cellHeader26.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.cellHeader26.Name = "cellHeader26";
+ this.cellHeader26.StylePriority.UseBorders = false;
+ this.cellHeader26.Text = "26.";
+ this.cellHeader26.Weight = 0.081154192969274785D;
//
- // xrTableCell46
+ // cellHeader27
//
- this.xrTableCell46.Name = "xrTableCell46";
- this.xrTableCell46.Text = "27.";
- this.xrTableCell46.Weight = 0.0811541929679557D;
+ this.cellHeader27.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.cellHeader27.Name = "cellHeader27";
+ this.cellHeader27.StylePriority.UseBorders = false;
+ this.cellHeader27.Text = "27.";
+ this.cellHeader27.Weight = 0.0811541929679557D;
//
- // xrTableCell47
+ // cellHeader28
//
- this.xrTableCell47.Name = "xrTableCell47";
- this.xrTableCell47.Text = "28.";
- this.xrTableCell47.Weight = 0.081154192967296118D;
+ this.cellHeader28.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.cellHeader28.Name = "cellHeader28";
+ this.cellHeader28.StylePriority.UseBorders = false;
+ this.cellHeader28.Text = "28.";
+ this.cellHeader28.Weight = 0.081154192967296118D;
//
// cellHeader29
//
+ this.cellHeader29.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.cellHeader29.Name = "cellHeader29";
+ this.cellHeader29.StylePriority.UseBorders = false;
this.cellHeader29.Text = "29.";
this.cellHeader29.Weight = 0.081154192966966354D;
//
// cellHeader30
//
+ this.cellHeader30.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.cellHeader30.Name = "cellHeader30";
+ this.cellHeader30.StylePriority.UseBorders = false;
this.cellHeader30.Text = "30.";
this.cellHeader30.Weight = 0.081154234243958553D;
//
@@ -849,7 +1054,7 @@ namespace BeWo.Report.DefaultReports
//
// bottomMarginBand1
//
- this.bottomMarginBand1.HeightF = 20F;
+ this.bottomMarginBand1.HeightF = 20.4167F;
this.bottomMarginBand1.Name = "bottomMarginBand1";
//
// bindingSource1
@@ -899,22 +1104,22 @@ namespace BeWo.Report.DefaultReports
private DevExpress.XtraReports.UI.XRTable xrTable1;
private DevExpress.XtraReports.UI.XRTableRow xrTableRow1;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell1;
- private DevExpress.XtraReports.UI.XRTableCell xrTableCell2;
- private DevExpress.XtraReports.UI.XRTableCell xrTableCell3;
- private DevExpress.XtraReports.UI.XRTableCell xrTableCell4;
- private DevExpress.XtraReports.UI.XRTableCell xrTableCell5;
- private DevExpress.XtraReports.UI.XRTableCell xrTableCell6;
- private DevExpress.XtraReports.UI.XRTableCell xrTableCell7;
- private DevExpress.XtraReports.UI.XRTableCell xrTableCell8;
- private DevExpress.XtraReports.UI.XRTableCell xrTableCell9;
- private DevExpress.XtraReports.UI.XRTableCell xrTableCell10;
- private DevExpress.XtraReports.UI.XRTableCell xrTableCell11;
- private DevExpress.XtraReports.UI.XRTableCell xrTableCell12;
- private DevExpress.XtraReports.UI.XRTableCell xrTableCell13;
- private DevExpress.XtraReports.UI.XRTableCell xrTableCell14;
- private DevExpress.XtraReports.UI.XRTableCell xrTableCell15;
- private DevExpress.XtraReports.UI.XRTableCell xrTableCell16;
- private DevExpress.XtraReports.UI.XRTableCell xrTableCell17;
+ private DevExpress.XtraReports.UI.XRTableCell cellHeader1;
+ private DevExpress.XtraReports.UI.XRTableCell cellHeader3;
+ private DevExpress.XtraReports.UI.XRTableCell cellHeader4;
+ private DevExpress.XtraReports.UI.XRTableCell cellHeader5;
+ private DevExpress.XtraReports.UI.XRTableCell cellHeader6;
+ private DevExpress.XtraReports.UI.XRTableCell cellHeader7;
+ private DevExpress.XtraReports.UI.XRTableCell cellHeader8;
+ private DevExpress.XtraReports.UI.XRTableCell cellHeader9;
+ private DevExpress.XtraReports.UI.XRTableCell cellHeader10;
+ private DevExpress.XtraReports.UI.XRTableCell cellHeader11;
+ private DevExpress.XtraReports.UI.XRTableCell cellHeader12;
+ private DevExpress.XtraReports.UI.XRTableCell cellHeader13;
+ private DevExpress.XtraReports.UI.XRTableCell cellHeader14;
+ private DevExpress.XtraReports.UI.XRTableCell cellHeader15;
+ private DevExpress.XtraReports.UI.XRTableCell cellHeader16;
+ private DevExpress.XtraReports.UI.XRTableCell cellHeader17;
private DevExpress.XtraReports.UI.XRTable xrTable2;
private DevExpress.XtraReports.UI.XRTableRow xrTableRow2;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell18;
@@ -940,19 +1145,19 @@ namespace BeWo.Report.DefaultReports
private DevExpress.XtraReports.UI.TopMarginBand topMarginBand1;
private DevExpress.XtraReports.UI.BottomMarginBand bottomMarginBand1;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell36;
- private DevExpress.XtraReports.UI.XRTableCell xrTableCell35;
- private DevExpress.XtraReports.UI.XRLabel lblCustomerName;
- private DevExpress.XtraReports.UI.XRTableCell xrTableCell37;
- private DevExpress.XtraReports.UI.XRTableCell xrTableCell38;
- private DevExpress.XtraReports.UI.XRTableCell xrTableCell39;
- private DevExpress.XtraReports.UI.XRTableCell xrTableCell40;
- private DevExpress.XtraReports.UI.XRTableCell xrTableCell41;
- private DevExpress.XtraReports.UI.XRTableCell xrTableCell42;
- private DevExpress.XtraReports.UI.XRTableCell xrTableCell43;
- private DevExpress.XtraReports.UI.XRTableCell xrTableCell44;
- private DevExpress.XtraReports.UI.XRTableCell xrTableCell45;
- private DevExpress.XtraReports.UI.XRTableCell xrTableCell46;
- private DevExpress.XtraReports.UI.XRTableCell xrTableCell47;
+ private DevExpress.XtraReports.UI.XRTableCell cellHeader2;
+ private DevExpress.XtraReports.UI.XRLabel lblReportInformation;
+ private DevExpress.XtraReports.UI.XRTableCell cellHeader18;
+ private DevExpress.XtraReports.UI.XRTableCell cellHeader19;
+ private DevExpress.XtraReports.UI.XRTableCell cellHeader20;
+ private DevExpress.XtraReports.UI.XRTableCell cellHeader21;
+ private DevExpress.XtraReports.UI.XRTableCell cellHeader22;
+ private DevExpress.XtraReports.UI.XRTableCell cellHeader23;
+ private DevExpress.XtraReports.UI.XRTableCell cellHeader24;
+ private DevExpress.XtraReports.UI.XRTableCell cellHeader25;
+ private DevExpress.XtraReports.UI.XRTableCell cellHeader26;
+ private DevExpress.XtraReports.UI.XRTableCell cellHeader27;
+ private DevExpress.XtraReports.UI.XRTableCell cellHeader28;
private DevExpress.XtraReports.UI.XRTableCell cellHeader29;
private DevExpress.XtraReports.UI.XRTableCell cellHeader30;
private DevExpress.XtraReports.UI.XRTableCell cellHeader31;
diff --git a/Report/DefaultReports/AbsenceReport.cs b/Report/DefaultReports/AbsenceReport.cs
index 3edb5903d..412f34740 100644
--- a/Report/DefaultReports/AbsenceReport.cs
+++ b/Report/DefaultReports/AbsenceReport.cs
@@ -3,11 +3,16 @@ using System.Drawing;
using System.Globalization;
using DevExpress.XtraReports.UI;
using BeWo.Report.ReportObjects;
+using System.Collections.Generic;
namespace BeWo.Report.DefaultReports
{
public partial class AbsenceReport : XtraReport, IBeWoReport
{
+ public int Month { get; set; }
+ public int Year { get; set; }
+ public List Feiertage { get; set; }
+
public AbsenceReport()
{
InitializeComponent();
@@ -16,14 +21,60 @@ namespace BeWo.Report.DefaultReports
public void SetReportDataSource(AbsenceRO pRO)
{
int i = DateTime.DaysInMonth(pRO.ReportFilter.Year, pRO.ReportFilter.Month);
+ Month = pRO.ReportFilter.Month;
+ Year = pRO.ReportFilter.Year;
+ Feiertage = pRO.Feiertage;
+
cellHeader29.Visible = cellDetail29.Visible = i >= 29;
cellHeader30.Visible = cellDetail30.Visible = i >= 30;
cellHeader31.Visible = cellDetail31.Visible = i >= 31;
+
+ SetWeekDayNames(pRO.ReportFilter.Year, pRO.ReportFilter.Month, i);
+
+ string date = SetDate(pRO);
+ if (pRO.Teams != null)
+ {
+ if(pRO.Teams.Count > 0)
+ {
+ date += " (";
+ for (int z = 0; z < pRO.Teams.Count; z++)
+ {
+ var t = pRO.Teams[z];
+ date += t.Name;
+ if (t.TeamOid != pRO.Teams[pRO.Teams.Count - 1].TeamOid)
+ date += ", ";
+ }
+ date += ") ";
+ }
+ }
+
+ lblReportInformation.Text = date;
bindingSource1.DataSource = pRO;
}
-
+
+ private void SetWeekDayNames(int year, int month, int numberOfDays)
+ {
+ for (int i = 1; i <= numberOfDays; i++)
+ {
+ DateTime date = new DateTime(year, month, i);
+ CultureInfo c = new CultureInfo("de-DE");
+ string weekday = c.DateTimeFormat.GetAbbreviatedDayName(date.DayOfWeek);
+
+ cellHeader1.Row.Cells[i].Text += "\n" + weekday;
+ }
+ }
+
+ private string SetDate(AbsenceRO pRO)
+ {
+ string date = "";
+ DateTimeFormatInfo dti = CultureInfo.GetCultureInfo("de-DE").DateTimeFormat;
+ date += dti.GetMonthName(pRO.ReportFilter.Month).ToString() + " " + pRO.ReportFilter.Year;
+
+ return date;
+ }
+
private void Cell_EvaluateBinding(object sender, BindingEventArgs e)
{
var cell = sender as XRTableCell;
@@ -39,6 +90,17 @@ namespace BeWo.Report.DefaultReports
else
{
cell.BackColor = Color.Transparent;
+ if(cell.Index <= DateTime.DaysInMonth(Year, Month))
+ {
+ DateTime date = new DateTime(Year, Month, cell.Index);
+ if (date.DayOfWeek == DayOfWeek.Sunday)
+ cell.BackColor = Color.LightPink;
+ else if (Feiertage != null)
+ {
+ if (Feiertage.Contains(date.Day))
+ cell.BackColor = Color.LightPink;
+ }
+ }
}
}
}
diff --git a/Report/ReportObjects/AbsenceRO.cs b/Report/ReportObjects/AbsenceRO.cs
index b118a1ebd..06a6abc82 100644
--- a/Report/ReportObjects/AbsenceRO.cs
+++ b/Report/ReportObjects/AbsenceRO.cs
@@ -5,6 +5,7 @@ using BeWo.Data.Entities;
using BeWo.Data.Access;
using System.Linq;
using BS.Shared.DataContracts;
+using BS.Shared.DataContracts.Compact;
namespace BeWo.Report.ReportObjects
{
@@ -12,11 +13,15 @@ namespace BeWo.Report.ReportObjects
{
public AbsenceOverviewFilterDC ReportFilter { get; set; }
public List AbsenceReportRows { get; set; }
+ public List Teams { get; set; }
+ public List Feiertage { get; set; }
- public static AbsenceRO Create(List employees, AbsenceOverviewFilterDC filter)
+ public static AbsenceRO Create(List employees, AbsenceOverviewFilterDC filter, List teams, List feiertage)
{
var res = new AbsenceRO() { ReportFilter = filter, AbsenceReportRows = new List() };
var dt = new DateTime(filter.Year, filter.Month, 1);
+ res.Teams = teams;
+ res.Feiertage = feiertage;
foreach (var emp in employees)
{
@@ -55,11 +60,12 @@ namespace BeWo.Report.ReportObjects
abs = absenceTimes[absNum];
continue;
}
-
+
row.Days[dayInMonth++] = new CellValue()
{
Value = abs.Reason.Description[0].ToString(),
- Color = abs.Reason.Color
+ //Color = abs.Reason.Color
+ Color = "#FFFFFF00"
};
}
}
diff --git a/ReportImp/Bewolonia/Bewolonia.csproj b/ReportImp/Bewolonia/Bewolonia.csproj
new file mode 100644
index 000000000..fba65ce3a
--- /dev/null
+++ b/ReportImp/Bewolonia/Bewolonia.csproj
@@ -0,0 +1,95 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {B289C237-C966-41A0-8968-C04D0004F30B}
+ Library
+ Properties
+ KundeXyz
+ 8242644560_Reports
+ v4.7.2
+ 512
+
+
+
+ true
+ full
+ false
+ ..\..\Host\bin\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ ..\..\Host\bin\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Component
+
+
+ QuittierungsbelegMitDatum.cs
+
+
+ Component
+
+
+ SettlementReport.cs
+
+
+
+
+ {B0D73E3D-4AE7-4024-93A6-DB1F46D7CCEE}
+ Data
+
+
+ {40d8b312-ea64-49e3-a31a-5e57ed4d5654}
+ Report
+
+
+ {094331c3-ecee-4c89-bbfd-4c9ded89f0ef}
+ Service
+
+
+ {2f50b83d-a3f0-4ec4-979a-3f9b7e3d8ed4}
+ Shared
+
+
+
+
+
+ QuittierungsbelegMitDatum.cs
+ Designer
+
+
+ SettlementReport.cs
+ Designer
+
+
+
+
\ No newline at end of file
diff --git a/ReportImp/Bewolonia/Properties/AssemblyInfo.cs b/ReportImp/Bewolonia/Properties/AssemblyInfo.cs
new file mode 100644
index 000000000..930888dd6
--- /dev/null
+++ b/ReportImp/Bewolonia/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// Allgemeine Informationen über eine Assembly werden über die folgenden
+// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
+// die einer Assembly zugeordnet sind.
+[assembly: AssemblyTitle("KundeXyz")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("KundeXyz")]
+[assembly: AssemblyCopyright("Copyright © 2020")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Durch Festlegen von ComVisible auf FALSE werden die Typen in dieser Assembly
+// für COM-Komponenten unsichtbar. Wenn Sie auf einen Typ in dieser Assembly von
+// COM aus zugreifen müssen, sollten Sie das ComVisible-Attribut für diesen Typ auf "True" festlegen.
+[assembly: ComVisible(false)]
+
+// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird
+[assembly: Guid("c1fed668-adb9-47e0-b589-1389618e1b6e")]
+
+// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
+//
+// Hauptversion
+// Nebenversion
+// Buildnummer
+// Revision
+//
+// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
+// indem Sie "*" wie unten gezeigt eingeben:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/ReportImp/Bewolonia/Properties/licenses.licx b/ReportImp/Bewolonia/Properties/licenses.licx
new file mode 100644
index 000000000..c7fd819d5
--- /dev/null
+++ b/ReportImp/Bewolonia/Properties/licenses.licx
@@ -0,0 +1 @@
+DevExpress.XtraReports.UI.XtraReport, DevExpress.XtraReports.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
diff --git a/ReportImp/Bewolonia/QuittierungsbelegMitDatum.Designer.cs b/ReportImp/Bewolonia/QuittierungsbelegMitDatum.Designer.cs
new file mode 100644
index 000000000..ae991fac5
--- /dev/null
+++ b/ReportImp/Bewolonia/QuittierungsbelegMitDatum.Designer.cs
@@ -0,0 +1,1204 @@
+using BeWo.Report.ReportObjects;
+namespace BeWoImFlow
+{
+ partial class Quittierungsbeleg2
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Quittierungsbeleg2));
+ this.Detail = new DevExpress.XtraReports.UI.DetailBand();
+ this.DetailReport = new DevExpress.XtraReports.UI.DetailReportBand();
+ this.Detail1 = new DevExpress.XtraReports.UI.DetailBand();
+ this.xrTable3 = new DevExpress.XtraReports.UI.XRTable();
+ this.xrTableRow6 = new DevExpress.XtraReports.UI.XRTableRow();
+ this.xrTableCell13 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableCell14 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableCell10 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableCell2 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableCell15 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableCell12 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.GroupHeader1 = new DevExpress.XtraReports.UI.GroupHeaderBand();
+ this.xrTableServiceRecords1 = new DevExpress.XtraReports.UI.XRTable();
+ this.xrTableRow2 = new DevExpress.XtraReports.UI.XRTableRow();
+ this.xrTableCell3 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableCell4 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableCell11 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableCell9 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableRow1 = new DevExpress.XtraReports.UI.XRTableRow();
+ this.xrTableCell1 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableCell8 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableCell5 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableCell6 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableCell7 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
+ this.formattingRuleStartDate = new DevExpress.XtraReports.UI.FormattingRule();
+ this.ReportHeader = new DevExpress.XtraReports.UI.ReportHeaderBand();
+ this.xrLabel7 = new DevExpress.XtraReports.UI.XRLabel();
+ this.xrLabel8 = new DevExpress.XtraReports.UI.XRLabel();
+ this.xrLabel6 = new DevExpress.XtraReports.UI.XRLabel();
+ this.xrLabel5 = new DevExpress.XtraReports.UI.XRLabel();
+ this.xrLabel4 = new DevExpress.XtraReports.UI.XRLabel();
+ this.xrLabel3 = new DevExpress.XtraReports.UI.XRLabel();
+ this.xrLabel2 = new DevExpress.XtraReports.UI.XRLabel();
+ this.formattingRuleServiceDesc = new DevExpress.XtraReports.UI.FormattingRule();
+ this.formattingRuleCostBearer = new DevExpress.XtraReports.UI.FormattingRule();
+ this.formattingRuleEmployeeName = new DevExpress.XtraReports.UI.FormattingRule();
+ this.topMarginBand1 = new DevExpress.XtraReports.UI.TopMarginBand();
+ this.bottomMarginBand1 = new DevExpress.XtraReports.UI.BottomMarginBand();
+ this.GroupFooter1 = new DevExpress.XtraReports.UI.GroupFooterBand();
+ this.lblUnterschriftKlient = new DevExpress.XtraReports.UI.XRLabel();
+ this.lblUnterschriftMitarbeiter = new DevExpress.XtraReports.UI.XRLabel();
+ this.xrTableAbwesenheiten = new DevExpress.XtraReports.UI.XRTable();
+ this.xrTableRow3 = new DevExpress.XtraReports.UI.XRTableRow();
+ this.xrTableCell16 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableCell17 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableCell18 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableRow4 = new DevExpress.XtraReports.UI.XRTableRow();
+ this.xrTableCell19 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableCell20 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableCell21 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableRow5 = new DevExpress.XtraReports.UI.XRTableRow();
+ this.xrTableCell22 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableCell23 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableCell24 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableRow7 = new DevExpress.XtraReports.UI.XRTableRow();
+ this.xrTableCell25 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableCell26 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableCell27 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableRow8 = new DevExpress.XtraReports.UI.XRTableRow();
+ this.xrTableCell29 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableCell30 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableCell31 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.lblHatAbwesenheiten = new DevExpress.XtraReports.UI.XRLabel();
+ this.lblHatGruppen = new DevExpress.XtraReports.UI.XRLabel();
+ this.xrRichText2 = new DevExpress.XtraReports.UI.XRRichText();
+ this.xrRichText1 = new DevExpress.XtraReports.UI.XRRichText();
+ this.xrLabel15 = new DevExpress.XtraReports.UI.XRLabel();
+ this.xrLabel13 = new DevExpress.XtraReports.UI.XRLabel();
+ this.xrLabel12 = new DevExpress.XtraReports.UI.XRLabel();
+ this.xrLabel11 = new DevExpress.XtraReports.UI.XRLabel();
+ this.xrLabel10 = new DevExpress.XtraReports.UI.XRLabel();
+ this.xrLabel1 = new DevExpress.XtraReports.UI.XRLabel();
+ this.fieldKontaktArt = new DevExpress.XtraReports.UI.CalculatedField();
+ this.xrPictureBox1 = new DevExpress.XtraReports.UI.XRPictureBox();
+ this.xrRichText3 = new DevExpress.XtraReports.UI.XRRichText();
+ this.xrRichText4 = new DevExpress.XtraReports.UI.XRRichText();
+ this.xrRichText5 = new DevExpress.XtraReports.UI.XRRichText();
+ this.xrRichText6 = new DevExpress.XtraReports.UI.XRRichText();
+ ((System.ComponentModel.ISupportInitialize)(this.xrTable3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.xrTableServiceRecords1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.xrTableAbwesenheiten)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.xrRichText2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.xrRichText1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.xrRichText3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.xrRichText4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.xrRichText5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.xrRichText6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this)).BeginInit();
+ //
+ // Detail
+ //
+ this.Detail.Expanded = false;
+ this.Detail.HeightF = 0F;
+ this.Detail.Name = "Detail";
+ this.Detail.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F);
+ this.Detail.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
+ //
+ // DetailReport
+ //
+ this.DetailReport.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
+ this.Detail1,
+ this.GroupHeader1});
+ this.DetailReport.DataMember = "Services";
+ this.DetailReport.DataSource = this.bindingSource1;
+ this.DetailReport.Level = 0;
+ this.DetailReport.Name = "DetailReport";
+ this.DetailReport.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F);
+ this.DetailReport.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
+ //
+ // Detail1
+ //
+ this.Detail1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
+ this.xrTable3});
+ this.Detail1.HeightF = 20F;
+ this.Detail1.Name = "Detail1";
+ this.Detail1.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F);
+ this.Detail1.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
+ //
+ // xrTable3
+ //
+ this.xrTable3.BorderColor = System.Drawing.Color.Black;
+ this.xrTable3.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.xrTable3.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.xrTable3.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
+ this.xrTable3.Name = "xrTable3";
+ this.xrTable3.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F);
+ this.xrTable3.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
+ this.xrTableRow6});
+ this.xrTable3.SizeF = new System.Drawing.SizeF(687.0001F, 20F);
+ this.xrTable3.StylePriority.UseFont = false;
+ this.xrTable3.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
+ //
+ // xrTableRow6
+ //
+ this.xrTableRow6.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
+ this.xrTableCell13,
+ this.xrTableCell14,
+ this.xrTableCell10,
+ this.xrTableCell2,
+ this.xrTableCell15,
+ this.xrTableCell12});
+ this.xrTableRow6.Name = "xrTableRow6";
+ this.xrTableRow6.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F);
+ this.xrTableRow6.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
+ this.xrTableRow6.Weight = 1D;
+ //
+ // xrTableCell13
+ //
+ this.xrTableCell13.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
+ new DevExpress.XtraReports.UI.XRBinding("Text", null, "Services.StartDate", "{0:dd/MM/yyyy}")});
+ this.xrTableCell13.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.xrTableCell13.Name = "xrTableCell13";
+ this.xrTableCell13.StylePriority.UseBorders = false;
+ this.xrTableCell13.StylePriority.UseFont = false;
+ this.xrTableCell13.StylePriority.UsePadding = false;
+ this.xrTableCell13.StylePriority.UseTextAlignment = false;
+ this.xrTableCell13.Text = "xrTableCell13";
+ this.xrTableCell13.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
+ this.xrTableCell13.Weight = 0.10678103266799377D;
+ //
+ // xrTableCell14
+ //
+ this.xrTableCell14.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
+ new DevExpress.XtraReports.UI.XRBinding("Text", null, "Services.StartDateMinutes", "{0:HH:mm}")});
+ this.xrTableCell14.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.xrTableCell14.Name = "xrTableCell14";
+ this.xrTableCell14.StylePriority.UseBorders = false;
+ this.xrTableCell14.StylePriority.UseFont = false;
+ this.xrTableCell14.StylePriority.UsePadding = false;
+ this.xrTableCell14.StylePriority.UseTextAlignment = false;
+ this.xrTableCell14.Text = "xrTableCell14";
+ this.xrTableCell14.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
+ this.xrTableCell14.Weight = 0.0762721221297743D;
+ //
+ // xrTableCell10
+ //
+ this.xrTableCell10.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
+ new DevExpress.XtraReports.UI.XRBinding("Text", null, "Services.EndDateMinutes", "{0:HH:mm}")});
+ this.xrTableCell10.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.xrTableCell10.Name = "xrTableCell10";
+ this.xrTableCell10.StylePriority.UseBorders = false;
+ this.xrTableCell10.StylePriority.UseFont = false;
+ this.xrTableCell10.StylePriority.UsePadding = false;
+ this.xrTableCell10.StylePriority.UseTextAlignment = false;
+ this.xrTableCell10.Text = "xrTableCell10";
+ this.xrTableCell10.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
+ this.xrTableCell10.Weight = 0.076272039049779791D;
+ //
+ // xrTableCell2
+ //
+ this.xrTableCell2.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
+ new DevExpress.XtraReports.UI.XRBinding("Text", null, "Services.fieldKontaktArt")});
+ this.xrTableCell2.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.xrTableCell2.Name = "xrTableCell2";
+ this.xrTableCell2.StylePriority.UseFont = false;
+ this.xrTableCell2.StylePriority.UsePadding = false;
+ this.xrTableCell2.StylePriority.UseTextAlignment = false;
+ this.xrTableCell2.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
+ this.xrTableCell2.Weight = 0.06835511059330765D;
+ //
+ // xrTableCell15
+ //
+ this.xrTableCell15.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
+ new DevExpress.XtraReports.UI.XRBinding("Text", null, "Services.CustomerCount", "{0:0}")});
+ this.xrTableCell15.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.xrTableCell15.Name = "xrTableCell15";
+ this.xrTableCell15.StylePriority.UseBorders = false;
+ this.xrTableCell15.StylePriority.UseFont = false;
+ this.xrTableCell15.StylePriority.UsePadding = false;
+ this.xrTableCell15.StylePriority.UseTextAlignment = false;
+ this.xrTableCell15.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
+ this.xrTableCell15.Weight = 0.068352212663248813D;
+ //
+ // xrTableCell12
+ //
+ this.xrTableCell12.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
+ new DevExpress.XtraReports.UI.XRBinding("Text", null, "Services.Minutes", "{0:0.##}")});
+ this.xrTableCell12.Font = new System.Drawing.Font("Arial", 10F);
+ this.xrTableCell12.Name = "xrTableCell12";
+ this.xrTableCell12.StylePriority.UseBorders = false;
+ this.xrTableCell12.StylePriority.UseFont = false;
+ this.xrTableCell12.StylePriority.UsePadding = false;
+ this.xrTableCell12.StylePriority.UseTextAlignment = false;
+ this.xrTableCell12.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
+ this.xrTableCell12.Weight = 0.12795726647489825D;
+ //
+ // GroupHeader1
+ //
+ this.GroupHeader1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
+ this.xrTableServiceRecords1});
+ this.GroupHeader1.HeightF = 56F;
+ this.GroupHeader1.Name = "GroupHeader1";
+ this.GroupHeader1.RepeatEveryPage = true;
+ this.GroupHeader1.StylePriority.UseFont = false;
+ //
+ // xrTableServiceRecords1
+ //
+ this.xrTableServiceRecords1.BackColor = System.Drawing.Color.Gainsboro;
+ this.xrTableServiceRecords1.Borders = DevExpress.XtraPrinting.BorderSide.None;
+ this.xrTableServiceRecords1.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.xrTableServiceRecords1.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
+ this.xrTableServiceRecords1.Name = "xrTableServiceRecords1";
+ this.xrTableServiceRecords1.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F);
+ this.xrTableServiceRecords1.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
+ this.xrTableRow2,
+ this.xrTableRow1});
+ this.xrTableServiceRecords1.SizeF = new System.Drawing.SizeF(687.0001F, 56F);
+ this.xrTableServiceRecords1.StylePriority.UseBackColor = false;
+ this.xrTableServiceRecords1.StylePriority.UseBorders = false;
+ this.xrTableServiceRecords1.StylePriority.UseFont = false;
+ this.xrTableServiceRecords1.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
+ //
+ // xrTableRow2
+ //
+ this.xrTableRow2.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
+ this.xrTableCell3,
+ this.xrTableCell4,
+ this.xrTableCell11,
+ this.xrTableCell9});
+ this.xrTableRow2.Name = "xrTableRow2";
+ this.xrTableRow2.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F);
+ this.xrTableRow2.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
+ this.xrTableRow2.Weight = 0.48945783132530124D;
+ //
+ // xrTableCell3
+ //
+ this.xrTableCell3.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)));
+ this.xrTableCell3.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.xrTableCell3.Name = "xrTableCell3";
+ this.xrTableCell3.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F);
+ this.xrTableCell3.StylePriority.UseBorders = false;
+ this.xrTableCell3.StylePriority.UseFont = false;
+ this.xrTableCell3.StylePriority.UsePadding = false;
+ this.xrTableCell3.StylePriority.UseTextAlignment = false;
+ this.xrTableCell3.Text = "Datum";
+ this.xrTableCell3.TextAlignment = DevExpress.XtraPrinting.TextAlignment.BottomCenter;
+ this.xrTableCell3.Weight = 0.39106145251396635D;
+ //
+ // xrTableCell4
+ //
+ this.xrTableCell4.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)));
+ this.xrTableCell4.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.xrTableCell4.Multiline = true;
+ this.xrTableCell4.Name = "xrTableCell4";
+ this.xrTableCell4.Padding = new DevExpress.XtraPrinting.PaddingInfo(4, 4, 0, 0, 100F);
+ this.xrTableCell4.StylePriority.UseBorders = false;
+ this.xrTableCell4.StylePriority.UseFont = false;
+ this.xrTableCell4.StylePriority.UsePadding = false;
+ this.xrTableCell4.StylePriority.UseTextAlignment = false;
+ this.xrTableCell4.Text = "Uhrzeit";
+ this.xrTableCell4.TextAlignment = DevExpress.XtraPrinting.TextAlignment.BottomCenter;
+ this.xrTableCell4.Weight = 0.5586590473878319D;
+ //
+ // xrTableCell11
+ //
+ this.xrTableCell11.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)));
+ this.xrTableCell11.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.xrTableCell11.Name = "xrTableCell11";
+ this.xrTableCell11.Padding = new DevExpress.XtraPrinting.PaddingInfo(12, 12, 0, 0, 100F);
+ this.xrTableCell11.StylePriority.UseBorders = false;
+ this.xrTableCell11.StylePriority.UseFont = false;
+ this.xrTableCell11.StylePriority.UsePadding = false;
+ this.xrTableCell11.StylePriority.UseTextAlignment = false;
+ this.xrTableCell11.Text = "Angebot";
+ this.xrTableCell11.TextAlignment = DevExpress.XtraPrinting.TextAlignment.BottomCenter;
+ this.xrTableCell11.Weight = 0.5006594098480055D;
+ //
+ // xrTableCell9
+ //
+ this.xrTableCell9.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)));
+ this.xrTableCell9.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.xrTableCell9.Multiline = true;
+ this.xrTableCell9.Name = "xrTableCell9";
+ this.xrTableCell9.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F);
+ this.xrTableCell9.StylePriority.UseBorders = false;
+ this.xrTableCell9.StylePriority.UseFont = false;
+ this.xrTableCell9.StylePriority.UsePadding = false;
+ this.xrTableCell9.StylePriority.UseTextAlignment = false;
+ this.xrTableCell9.Text = "FLS in";
+ this.xrTableCell9.TextAlignment = DevExpress.XtraPrinting.TextAlignment.BottomCenter;
+ this.xrTableCell9.Weight = 0.468614674147281D;
+ //
+ // xrTableRow1
+ //
+ this.xrTableRow1.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
+ this.xrTableCell1,
+ this.xrTableCell8,
+ this.xrTableCell5,
+ this.xrTableCell6,
+ this.xrTableCell7});
+ this.xrTableRow1.Name = "xrTableRow1";
+ this.xrTableRow1.Weight = 0.88102409638554224D;
+ //
+ // xrTableCell1
+ //
+ this.xrTableCell1.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.xrTableCell1.Name = "xrTableCell1";
+ this.xrTableCell1.StylePriority.UseBorders = false;
+ this.xrTableCell1.Weight = 0.39106145251396635D;
+ //
+ // xrTableCell8
+ //
+ this.xrTableCell8.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.xrTableCell8.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.xrTableCell8.Name = "xrTableCell8";
+ this.xrTableCell8.StylePriority.UseBorders = false;
+ this.xrTableCell8.StylePriority.UseFont = false;
+ this.xrTableCell8.StylePriority.UseTextAlignment = false;
+ this.xrTableCell8.Text = "von";
+ this.xrTableCell8.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
+ this.xrTableCell8.Weight = 0.27932960893854764D;
+ //
+ // xrTableCell5
+ //
+ this.xrTableCell5.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.xrTableCell5.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.xrTableCell5.Name = "xrTableCell5";
+ this.xrTableCell5.StylePriority.UseBorders = false;
+ this.xrTableCell5.StylePriority.UseFont = false;
+ this.xrTableCell5.StylePriority.UseTextAlignment = false;
+ this.xrTableCell5.Text = "bis";
+ this.xrTableCell5.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
+ this.xrTableCell5.Weight = 0.27932943844928432D;
+ //
+ // xrTableCell6
+ //
+ this.xrTableCell6.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.xrTableCell6.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.xrTableCell6.Multiline = true;
+ this.xrTableCell6.Name = "xrTableCell6";
+ this.xrTableCell6.StylePriority.UseBorders = false;
+ this.xrTableCell6.StylePriority.UseFont = false;
+ this.xrTableCell6.StylePriority.UseTextAlignment = false;
+ this.xrTableCell6.Text = "Art / Anzahl\r\nKlienten";
+ this.xrTableCell6.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
+ this.xrTableCell6.Weight = 0.5006594098480055D;
+ //
+ // xrTableCell7
+ //
+ this.xrTableCell7.BackColor = System.Drawing.Color.Gainsboro;
+ 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("Arial", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.xrTableCell7.Multiline = true;
+ this.xrTableCell7.Name = "xrTableCell7";
+ this.xrTableCell7.StylePriority.UseBackColor = false;
+ this.xrTableCell7.StylePriority.UseBorders = false;
+ this.xrTableCell7.StylePriority.UseFont = false;
+ this.xrTableCell7.StylePriority.UseTextAlignment = false;
+ this.xrTableCell7.Text = "Minuten\r\n(ohne 1,2)";
+ this.xrTableCell7.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopCenter;
+ this.xrTableCell7.Weight = 0.468614674147281D;
+ //
+ // bindingSource1
+ //
+ this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.ServicesOverviewRO);
+ //
+ // formattingRuleStartDate
+ //
+ this.formattingRuleStartDate.Condition = "[StartDate2] < [StartDate]";
+ this.formattingRuleStartDate.DataMember = "ServicesDouble";
+ this.formattingRuleStartDate.Formatting.Visible = DevExpress.Utils.DefaultBoolean.False;
+ this.formattingRuleStartDate.Name = "formattingRuleStartDate";
+ //
+ // ReportHeader
+ //
+ this.ReportHeader.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
+ this.xrPictureBox1,
+ this.xrLabel7,
+ this.xrLabel8,
+ this.xrLabel6,
+ this.xrLabel5,
+ this.xrLabel4,
+ this.xrLabel3,
+ this.xrLabel2});
+ this.ReportHeader.HeightF = 299.7917F;
+ this.ReportHeader.Name = "ReportHeader";
+ //
+ // xrLabel7
+ //
+ this.xrLabel7.BackColor = System.Drawing.Color.Gainsboro;
+ this.xrLabel7.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.xrLabel7.Font = new System.Drawing.Font("Arial", 10F);
+ this.xrLabel7.LocationFloat = new DevExpress.Utils.PointFloat(365.6387F, 259.2917F);
+ this.xrLabel7.Name = "xrLabel7";
+ this.xrLabel7.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F);
+ this.xrLabel7.SizeF = new System.Drawing.SizeF(120.6389F, 30.50001F);
+ this.xrLabel7.StylePriority.UseBackColor = false;
+ this.xrLabel7.StylePriority.UseBorders = false;
+ this.xrLabel7.StylePriority.UseFont = false;
+ this.xrLabel7.StylePriority.UsePadding = false;
+ this.xrLabel7.StylePriority.UseTextAlignment = false;
+ this.xrLabel7.Text = "Aktenzeichen";
+ this.xrLabel7.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
+ //
+ // xrLabel8
+ //
+ this.xrLabel8.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Top | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.xrLabel8.Font = new System.Drawing.Font("Arial", 10F);
+ this.xrLabel8.LocationFloat = new DevExpress.Utils.PointFloat(486.2777F, 259.2917F);
+ this.xrLabel8.Name = "xrLabel8";
+ this.xrLabel8.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F);
+ this.xrLabel8.SizeF = new System.Drawing.SizeF(158.3612F, 30.50001F);
+ this.xrLabel8.StylePriority.UseBackColor = false;
+ this.xrLabel8.StylePriority.UseBorders = false;
+ this.xrLabel8.StylePriority.UseFont = false;
+ this.xrLabel8.StylePriority.UsePadding = false;
+ this.xrLabel8.StylePriority.UseTextAlignment = false;
+ this.xrLabel8.Text = "[ReferenceNumber]";
+ this.xrLabel8.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
+ //
+ // xrLabel6
+ //
+ this.xrLabel6.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Top | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.xrLabel6.Font = new System.Drawing.Font("Arial", 10F);
+ this.xrLabel6.LocationFloat = new DevExpress.Utils.PointFloat(120.6388F, 259.2917F);
+ this.xrLabel6.Name = "xrLabel6";
+ this.xrLabel6.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F);
+ this.xrLabel6.SizeF = new System.Drawing.SizeF(209.3611F, 30.50001F);
+ this.xrLabel6.StylePriority.UseBackColor = false;
+ this.xrLabel6.StylePriority.UseBorders = false;
+ this.xrLabel6.StylePriority.UseFont = false;
+ this.xrLabel6.StylePriority.UsePadding = false;
+ this.xrLabel6.StylePriority.UseTextAlignment = false;
+ this.xrLabel6.Text = "[CustomerName]";
+ this.xrLabel6.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
+ //
+ // xrLabel5
+ //
+ this.xrLabel5.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Top | DevExpress.XtraPrinting.BorderSide.Right)));
+ this.xrLabel5.Font = new System.Drawing.Font("Arial", 10F);
+ this.xrLabel5.LocationFloat = new DevExpress.Utils.PointFloat(120.6388F, 228.7916F);
+ this.xrLabel5.Name = "xrLabel5";
+ this.xrLabel5.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F);
+ this.xrLabel5.SizeF = new System.Drawing.SizeF(158.3612F, 30.50001F);
+ this.xrLabel5.StylePriority.UseBackColor = false;
+ this.xrLabel5.StylePriority.UseBorders = false;
+ this.xrLabel5.StylePriority.UseFont = false;
+ this.xrLabel5.StylePriority.UsePadding = false;
+ this.xrLabel5.StylePriority.UseTextAlignment = false;
+ this.xrLabel5.Text = "[Month] [Year]";
+ this.xrLabel5.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
+ //
+ // xrLabel4
+ //
+ this.xrLabel4.BackColor = System.Drawing.Color.Gainsboro;
+ this.xrLabel4.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.xrLabel4.Font = new System.Drawing.Font("Arial", 10F);
+ this.xrLabel4.LocationFloat = new DevExpress.Utils.PointFloat(1.589457E-05F, 259.2917F);
+ this.xrLabel4.Name = "xrLabel4";
+ this.xrLabel4.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F);
+ this.xrLabel4.SizeF = new System.Drawing.SizeF(120.6389F, 30.50001F);
+ this.xrLabel4.StylePriority.UseBackColor = false;
+ this.xrLabel4.StylePriority.UseBorders = false;
+ this.xrLabel4.StylePriority.UseFont = false;
+ this.xrLabel4.StylePriority.UsePadding = false;
+ this.xrLabel4.StylePriority.UseTextAlignment = false;
+ this.xrLabel4.Text = "Klientin, Klient";
+ this.xrLabel4.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
+ //
+ // xrLabel3
+ //
+ this.xrLabel3.BackColor = System.Drawing.Color.Gainsboro;
+ this.xrLabel3.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)));
+ this.xrLabel3.Font = new System.Drawing.Font("Arial", 10F);
+ this.xrLabel3.LocationFloat = new DevExpress.Utils.PointFloat(1.589457E-05F, 228.7916F);
+ this.xrLabel3.Name = "xrLabel3";
+ this.xrLabel3.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F);
+ this.xrLabel3.SizeF = new System.Drawing.SizeF(120.6389F, 30.50001F);
+ this.xrLabel3.StylePriority.UseBackColor = false;
+ this.xrLabel3.StylePriority.UseBorders = false;
+ this.xrLabel3.StylePriority.UseFont = false;
+ this.xrLabel3.StylePriority.UsePadding = false;
+ this.xrLabel3.StylePriority.UseTextAlignment = false;
+ this.xrLabel3.Text = "Monat";
+ this.xrLabel3.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
+ //
+ // xrLabel2
+ //
+ this.xrLabel2.Font = new System.Drawing.Font("Arial", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.xrLabel2.LocationFloat = new DevExpress.Utils.PointFloat(1.589457E-05F, 185.1528F);
+ this.xrLabel2.Multiline = true;
+ this.xrLabel2.Name = "xrLabel2";
+ this.xrLabel2.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrLabel2.SizeF = new System.Drawing.SizeF(674.9998F, 25F);
+ this.xrLabel2.StylePriority.UseFont = false;
+ this.xrLabel2.StylePriority.UseTextAlignment = false;
+ this.xrLabel2.Text = "Quittierungsbeleg [Mandator.Name]";
+ this.xrLabel2.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopCenter;
+ //
+ // formattingRuleServiceDesc
+ //
+ this.formattingRuleServiceDesc.Condition = "[StartDate2] < [StartDate]";
+ this.formattingRuleServiceDesc.DataMember = "ServicesDouble";
+ this.formattingRuleServiceDesc.Formatting.Visible = DevExpress.Utils.DefaultBoolean.False;
+ this.formattingRuleServiceDesc.Name = "formattingRuleServiceDesc";
+ //
+ // formattingRuleCostBearer
+ //
+ this.formattingRuleCostBearer.Condition = "[StartDate2] < [StartDate]";
+ this.formattingRuleCostBearer.DataMember = "ServicesDouble";
+ this.formattingRuleCostBearer.Formatting.Visible = DevExpress.Utils.DefaultBoolean.False;
+ this.formattingRuleCostBearer.Name = "formattingRuleCostBearer";
+ //
+ // formattingRuleEmployeeName
+ //
+ this.formattingRuleEmployeeName.Condition = "[StartDate2] < [StartDate]";
+ this.formattingRuleEmployeeName.DataMember = "ServicesDouble";
+ this.formattingRuleEmployeeName.Formatting.Visible = DevExpress.Utils.DefaultBoolean.False;
+ this.formattingRuleEmployeeName.Name = "formattingRuleEmployeeName";
+ //
+ // topMarginBand1
+ //
+ this.topMarginBand1.HeightF = 32.29167F;
+ this.topMarginBand1.Name = "topMarginBand1";
+ //
+ // bottomMarginBand1
+ //
+ this.bottomMarginBand1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
+ this.xrRichText3,
+ this.xrRichText4,
+ this.xrRichText5,
+ this.xrRichText6});
+ this.bottomMarginBand1.HeightF = 107.9166F;
+ this.bottomMarginBand1.Name = "bottomMarginBand1";
+ //
+ // GroupFooter1
+ //
+ this.GroupFooter1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
+ this.lblUnterschriftKlient,
+ this.lblUnterschriftMitarbeiter,
+ this.xrTableAbwesenheiten,
+ this.lblHatAbwesenheiten,
+ this.lblHatGruppen,
+ this.xrRichText2,
+ this.xrRichText1,
+ this.xrLabel15,
+ this.xrLabel13,
+ this.xrLabel12,
+ this.xrLabel11,
+ this.xrLabel10,
+ this.xrLabel1});
+ this.GroupFooter1.HeightF = 270F;
+ this.GroupFooter1.KeepTogether = true;
+ this.GroupFooter1.Name = "GroupFooter1";
+ //
+ // lblUnterschriftKlient
+ //
+ this.lblUnterschriftKlient.Borders = DevExpress.XtraPrinting.BorderSide.Top;
+ this.lblUnterschriftKlient.Font = new System.Drawing.Font("Arial", 10F);
+ this.lblUnterschriftKlient.LocationFloat = new DevExpress.Utils.PointFloat(94.99999F, 250F);
+ this.lblUnterschriftKlient.Name = "lblUnterschriftKlient";
+ this.lblUnterschriftKlient.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F);
+ this.lblUnterschriftKlient.SizeF = new System.Drawing.SizeF(271.8472F, 20F);
+ this.lblUnterschriftKlient.StylePriority.UseBackColor = false;
+ this.lblUnterschriftKlient.StylePriority.UseBorders = false;
+ this.lblUnterschriftKlient.StylePriority.UseFont = false;
+ this.lblUnterschriftKlient.StylePriority.UsePadding = false;
+ this.lblUnterschriftKlient.StylePriority.UseTextAlignment = false;
+ this.lblUnterschriftKlient.Text = "Datum, Unterschrift Klient/in";
+ this.lblUnterschriftKlient.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
+ //
+ // lblUnterschriftMitarbeiter
+ //
+ this.lblUnterschriftMitarbeiter.Borders = DevExpress.XtraPrinting.BorderSide.Top;
+ this.lblUnterschriftMitarbeiter.Font = new System.Drawing.Font("Arial", 10F);
+ this.lblUnterschriftMitarbeiter.LocationFloat = new DevExpress.Utils.PointFloat(398.3101F, 250F);
+ this.lblUnterschriftMitarbeiter.Name = "lblUnterschriftMitarbeiter";
+ this.lblUnterschriftMitarbeiter.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F);
+ this.lblUnterschriftMitarbeiter.SizeF = new System.Drawing.SizeF(288.6899F, 19.99998F);
+ this.lblUnterschriftMitarbeiter.StylePriority.UseBackColor = false;
+ this.lblUnterschriftMitarbeiter.StylePriority.UseBorders = false;
+ this.lblUnterschriftMitarbeiter.StylePriority.UseFont = false;
+ this.lblUnterschriftMitarbeiter.StylePriority.UsePadding = false;
+ this.lblUnterschriftMitarbeiter.StylePriority.UseTextAlignment = false;
+ this.lblUnterschriftMitarbeiter.Text = "Datum, verantwortliche/r Mitarbeiter/in";
+ this.lblUnterschriftMitarbeiter.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
+ //
+ // xrTableAbwesenheiten
+ //
+ this.xrTableAbwesenheiten.BorderColor = System.Drawing.Color.Black;
+ this.xrTableAbwesenheiten.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.xrTableAbwesenheiten.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.xrTableAbwesenheiten.LocationFloat = new DevExpress.Utils.PointFloat(170F, 79.99997F);
+ this.xrTableAbwesenheiten.Name = "xrTableAbwesenheiten";
+ this.xrTableAbwesenheiten.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F);
+ this.xrTableAbwesenheiten.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
+ this.xrTableRow3,
+ this.xrTableRow4,
+ this.xrTableRow5,
+ this.xrTableRow7,
+ this.xrTableRow8});
+ this.xrTableAbwesenheiten.SizeF = new System.Drawing.SizeF(230F, 100F);
+ this.xrTableAbwesenheiten.StylePriority.UseBorders = false;
+ this.xrTableAbwesenheiten.StylePriority.UseFont = false;
+ this.xrTableAbwesenheiten.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
+ //
+ // xrTableRow3
+ //
+ this.xrTableRow3.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
+ this.xrTableCell16,
+ this.xrTableCell17,
+ this.xrTableCell18});
+ this.xrTableRow3.Name = "xrTableRow3";
+ this.xrTableRow3.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F);
+ this.xrTableRow3.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
+ this.xrTableRow3.Weight = 1D;
+ //
+ // xrTableCell16
+ //
+ this.xrTableCell16.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.xrTableCell16.Name = "xrTableCell16";
+ this.xrTableCell16.StylePriority.UseBorders = false;
+ this.xrTableCell16.StylePriority.UseFont = false;
+ this.xrTableCell16.StylePriority.UsePadding = false;
+ this.xrTableCell16.StylePriority.UseTextAlignment = false;
+ this.xrTableCell16.Text = "von";
+ this.xrTableCell16.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
+ this.xrTableCell16.Weight = 0.1073232364991462D;
+ //
+ // xrTableCell17
+ //
+ this.xrTableCell17.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.xrTableCell17.Name = "xrTableCell17";
+ this.xrTableCell17.StylePriority.UseBorders = false;
+ this.xrTableCell17.StylePriority.UseFont = false;
+ this.xrTableCell17.StylePriority.UsePadding = false;
+ this.xrTableCell17.StylePriority.UseTextAlignment = false;
+ this.xrTableCell17.Text = "bis";
+ this.xrTableCell17.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
+ this.xrTableCell17.Weight = 0.10732323432577288D;
+ //
+ // xrTableCell18
+ //
+ this.xrTableCell18.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.xrTableCell18.Name = "xrTableCell18";
+ this.xrTableCell18.StylePriority.UseBorders = false;
+ this.xrTableCell18.StylePriority.UseFont = false;
+ this.xrTableCell18.StylePriority.UsePadding = false;
+ this.xrTableCell18.StylePriority.UseTextAlignment = false;
+ this.xrTableCell18.Text = "Tage";
+ this.xrTableCell18.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
+ this.xrTableCell18.Weight = 0.075757568269402914D;
+ //
+ // xrTableRow4
+ //
+ this.xrTableRow4.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
+ this.xrTableCell19,
+ this.xrTableCell20,
+ this.xrTableCell21});
+ this.xrTableRow4.Name = "xrTableRow4";
+ this.xrTableRow4.Weight = 1D;
+ //
+ // xrTableCell19
+ //
+ this.xrTableCell19.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.xrTableCell19.Name = "xrTableCell19";
+ this.xrTableCell19.StylePriority.UseFont = false;
+ this.xrTableCell19.StylePriority.UseTextAlignment = false;
+ this.xrTableCell19.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
+ this.xrTableCell19.Weight = 0.1073232364991462D;
+ //
+ // xrTableCell20
+ //
+ this.xrTableCell20.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.xrTableCell20.Name = "xrTableCell20";
+ this.xrTableCell20.StylePriority.UseFont = false;
+ this.xrTableCell20.StylePriority.UseTextAlignment = false;
+ this.xrTableCell20.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
+ this.xrTableCell20.Weight = 0.10732323432577288D;
+ //
+ // xrTableCell21
+ //
+ this.xrTableCell21.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.xrTableCell21.Name = "xrTableCell21";
+ this.xrTableCell21.StylePriority.UseFont = false;
+ this.xrTableCell21.StylePriority.UseTextAlignment = false;
+ this.xrTableCell21.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
+ this.xrTableCell21.Weight = 0.075757568269402914D;
+ //
+ // xrTableRow5
+ //
+ this.xrTableRow5.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
+ this.xrTableCell22,
+ this.xrTableCell23,
+ this.xrTableCell24});
+ this.xrTableRow5.Name = "xrTableRow5";
+ this.xrTableRow5.Weight = 1D;
+ //
+ // xrTableCell22
+ //
+ this.xrTableCell22.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.xrTableCell22.Name = "xrTableCell22";
+ this.xrTableCell22.StylePriority.UseFont = false;
+ this.xrTableCell22.StylePriority.UseTextAlignment = false;
+ this.xrTableCell22.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
+ this.xrTableCell22.Weight = 0.1073232364991462D;
+ //
+ // xrTableCell23
+ //
+ this.xrTableCell23.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.xrTableCell23.Name = "xrTableCell23";
+ this.xrTableCell23.StylePriority.UseFont = false;
+ this.xrTableCell23.StylePriority.UseTextAlignment = false;
+ this.xrTableCell23.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
+ this.xrTableCell23.Weight = 0.10732323432577288D;
+ //
+ // xrTableCell24
+ //
+ this.xrTableCell24.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.xrTableCell24.Name = "xrTableCell24";
+ this.xrTableCell24.StylePriority.UseFont = false;
+ this.xrTableCell24.StylePriority.UseTextAlignment = false;
+ this.xrTableCell24.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
+ this.xrTableCell24.Weight = 0.075757568269402914D;
+ //
+ // xrTableRow7
+ //
+ this.xrTableRow7.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
+ this.xrTableCell25,
+ this.xrTableCell26,
+ this.xrTableCell27});
+ this.xrTableRow7.Name = "xrTableRow7";
+ this.xrTableRow7.Weight = 1D;
+ //
+ // xrTableCell25
+ //
+ this.xrTableCell25.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.xrTableCell25.Name = "xrTableCell25";
+ this.xrTableCell25.StylePriority.UseFont = false;
+ this.xrTableCell25.StylePriority.UseTextAlignment = false;
+ this.xrTableCell25.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
+ this.xrTableCell25.Weight = 0.1073232364991462D;
+ //
+ // xrTableCell26
+ //
+ this.xrTableCell26.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.xrTableCell26.Name = "xrTableCell26";
+ this.xrTableCell26.StylePriority.UseFont = false;
+ this.xrTableCell26.StylePriority.UseTextAlignment = false;
+ this.xrTableCell26.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
+ this.xrTableCell26.Weight = 0.10732323432577288D;
+ //
+ // xrTableCell27
+ //
+ this.xrTableCell27.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.xrTableCell27.Name = "xrTableCell27";
+ this.xrTableCell27.StylePriority.UseFont = false;
+ this.xrTableCell27.StylePriority.UseTextAlignment = false;
+ this.xrTableCell27.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
+ this.xrTableCell27.Weight = 0.075757568269402914D;
+ //
+ // xrTableRow8
+ //
+ this.xrTableRow8.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
+ this.xrTableCell29,
+ this.xrTableCell30,
+ this.xrTableCell31});
+ this.xrTableRow8.Name = "xrTableRow8";
+ this.xrTableRow8.Weight = 1D;
+ //
+ // xrTableCell29
+ //
+ this.xrTableCell29.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.xrTableCell29.Name = "xrTableCell29";
+ this.xrTableCell29.StylePriority.UseFont = false;
+ this.xrTableCell29.StylePriority.UseTextAlignment = false;
+ this.xrTableCell29.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
+ this.xrTableCell29.Weight = 0.1073232364991462D;
+ //
+ // xrTableCell30
+ //
+ this.xrTableCell30.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.xrTableCell30.Name = "xrTableCell30";
+ this.xrTableCell30.StylePriority.UseFont = false;
+ this.xrTableCell30.StylePriority.UseTextAlignment = false;
+ this.xrTableCell30.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
+ this.xrTableCell30.Weight = 0.10732323432577288D;
+ //
+ // xrTableCell31
+ //
+ this.xrTableCell31.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.xrTableCell31.Name = "xrTableCell31";
+ this.xrTableCell31.StylePriority.UseFont = false;
+ this.xrTableCell31.StylePriority.UseTextAlignment = false;
+ this.xrTableCell31.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
+ this.xrTableCell31.Weight = 0.075757568269402914D;
+ //
+ // lblHatAbwesenheiten
+ //
+ this.lblHatAbwesenheiten.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.lblHatAbwesenheiten.Font = new System.Drawing.Font("Arial", 10F);
+ this.lblHatAbwesenheiten.LocationFloat = new DevExpress.Utils.PointFloat(435.1388F, 130F);
+ this.lblHatAbwesenheiten.Name = "lblHatAbwesenheiten";
+ this.lblHatAbwesenheiten.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F);
+ this.lblHatAbwesenheiten.SizeF = new System.Drawing.SizeF(30F, 30F);
+ this.lblHatAbwesenheiten.StylePriority.UseBackColor = false;
+ this.lblHatAbwesenheiten.StylePriority.UseBorders = false;
+ this.lblHatAbwesenheiten.StylePriority.UseFont = false;
+ this.lblHatAbwesenheiten.StylePriority.UsePadding = false;
+ this.lblHatAbwesenheiten.StylePriority.UseTextAlignment = false;
+ this.lblHatAbwesenheiten.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
+ //
+ // lblHatGruppen
+ //
+ this.lblHatGruppen.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.lblHatGruppen.Font = new System.Drawing.Font("Arial", 10F);
+ this.lblHatGruppen.LocationFloat = new DevExpress.Utils.PointFloat(435.1388F, 79.99997F);
+ this.lblHatGruppen.Name = "lblHatGruppen";
+ this.lblHatGruppen.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F);
+ this.lblHatGruppen.SizeF = new System.Drawing.SizeF(30F, 30F);
+ this.lblHatGruppen.StylePriority.UseBackColor = false;
+ this.lblHatGruppen.StylePriority.UseBorders = false;
+ this.lblHatGruppen.StylePriority.UseFont = false;
+ this.lblHatGruppen.StylePriority.UsePadding = false;
+ this.lblHatGruppen.StylePriority.UseTextAlignment = false;
+ this.lblHatGruppen.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
+ //
+ // xrRichText2
+ //
+ this.xrRichText2.Font = new System.Drawing.Font("Arial", 8F);
+ this.xrRichText2.LocationFloat = new DevExpress.Utils.PointFloat(474.4724F, 130F);
+ this.xrRichText2.Name = "xrRichText2";
+ this.xrRichText2.SerializableRtfString = resources.GetString("xrRichText2.SerializableRtfString");
+ this.xrRichText2.SizeF = new System.Drawing.SizeF(200.5273F, 68.05556F);
+ this.xrRichText2.StylePriority.UseFont = false;
+ //
+ // xrRichText1
+ //
+ this.xrRichText1.Font = new System.Drawing.Font("Arial", 8F);
+ this.xrRichText1.LocationFloat = new DevExpress.Utils.PointFloat(474.4724F, 79.99998F);
+ this.xrRichText1.Name = "xrRichText1";
+ this.xrRichText1.SerializableRtfString = resources.GetString("xrRichText1.SerializableRtfString");
+ this.xrRichText1.SizeF = new System.Drawing.SizeF(200.5274F, 49.99999F);
+ this.xrRichText1.StylePriority.UseFont = false;
+ //
+ // xrLabel15
+ //
+ this.xrLabel15.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Underline);
+ this.xrLabel15.LocationFloat = new DevExpress.Utils.PointFloat(0F, 79.99997F);
+ this.xrLabel15.Multiline = true;
+ this.xrLabel15.Name = "xrLabel15";
+ this.xrLabel15.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F);
+ this.xrLabel15.SizeF = new System.Drawing.SizeF(170F, 43.61115F);
+ this.xrLabel15.StylePriority.UseBackColor = false;
+ this.xrLabel15.StylePriority.UseBorders = false;
+ this.xrLabel15.StylePriority.UseFont = false;
+ this.xrLabel15.StylePriority.UsePadding = false;
+ this.xrLabel15.StylePriority.UseTextAlignment = false;
+ this.xrLabel15.Text = "Krankenhausaufenthalte/\r\nstat. Rehamaßnahmen:";
+ this.xrLabel15.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
+ //
+ // xrLabel13
+ //
+ this.xrLabel13.Font = new System.Drawing.Font("Arial", 10F);
+ this.xrLabel13.LocationFloat = new DevExpress.Utils.PointFloat(0F, 39.99998F);
+ this.xrLabel13.Name = "xrLabel13";
+ this.xrLabel13.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F);
+ this.xrLabel13.SizeF = new System.Drawing.SizeF(320F, 20F);
+ this.xrLabel13.StylePriority.UseBackColor = false;
+ this.xrLabel13.StylePriority.UseBorders = false;
+ this.xrLabel13.StylePriority.UseFont = false;
+ this.xrLabel13.StylePriority.UsePadding = false;
+ this.xrLabel13.StylePriority.UseTextAlignment = false;
+ this.xrLabel13.Text = "GR = Gruppenangebot";
+ this.xrLabel13.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
+ //
+ // xrLabel12
+ //
+ this.xrLabel12.Font = new System.Drawing.Font("Arial", 10F);
+ this.xrLabel12.LocationFloat = new DevExpress.Utils.PointFloat(0F, 19.99999F);
+ this.xrLabel12.Name = "xrLabel12";
+ this.xrLabel12.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F);
+ this.xrLabel12.SizeF = new System.Drawing.SizeF(320F, 20F);
+ this.xrLabel12.StylePriority.UseBackColor = false;
+ this.xrLabel12.StylePriority.UseBorders = false;
+ this.xrLabel12.StylePriority.UseFont = false;
+ this.xrLabel12.StylePriority.UsePadding = false;
+ this.xrLabel12.StylePriority.UseTextAlignment = false;
+ this.xrLabel12.Text = "E = ear to ear, face to face";
+ this.xrLabel12.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
+ //
+ // xrLabel11
+ //
+ this.xrLabel11.Font = new System.Drawing.Font("Arial", 8F);
+ this.xrLabel11.LocationFloat = new DevExpress.Utils.PointFloat(339.9999F, 19.99998F);
+ this.xrLabel11.Name = "xrLabel11";
+ this.xrLabel11.SizeF = new System.Drawing.SizeF(347.0003F, 20.00003F);
+ this.xrLabel11.StylePriority.UseBackColor = false;
+ this.xrLabel11.StylePriority.UseBorders = false;
+ this.xrLabel11.StylePriority.UseFont = false;
+ this.xrLabel11.StylePriority.UsePadding = false;
+ this.xrLabel11.StylePriority.UseTextAlignment = false;
+ this.xrLabel11.Text = "Ohne Faktor 1,2 (wird erst bei Abrechnung eingerechnet)";
+ this.xrLabel11.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
+ //
+ // xrLabel10
+ //
+ this.xrLabel10.BackColor = System.Drawing.Color.Gainsboro;
+ this.xrLabel10.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.xrLabel10.Font = new System.Drawing.Font("Arial", 10F);
+ this.xrLabel10.LocationFloat = new DevExpress.Utils.PointFloat(339.9997F, 0F);
+ this.xrLabel10.Name = "xrLabel10";
+ this.xrLabel10.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F);
+ this.xrLabel10.SizeF = new System.Drawing.SizeF(179.2365F, 20F);
+ this.xrLabel10.StylePriority.UseBackColor = false;
+ this.xrLabel10.StylePriority.UseBorders = false;
+ this.xrLabel10.StylePriority.UseFont = false;
+ this.xrLabel10.StylePriority.UsePadding = false;
+ this.xrLabel10.StylePriority.UseTextAlignment = false;
+ this.xrLabel10.Text = "FLS in Minuten";
+ this.xrLabel10.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
+ //
+ // xrLabel1
+ //
+ this.xrLabel1.BackColor = System.Drawing.Color.Gainsboro;
+ this.xrLabel1.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Right | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.xrLabel1.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
+ new DevExpress.XtraReports.UI.XRBinding("Text", null, "TotalFLMBillable", "{0:0.##}")});
+ this.xrLabel1.Font = new System.Drawing.Font("Arial", 10F);
+ this.xrLabel1.LocationFloat = new DevExpress.Utils.PointFloat(519.236F, 0F);
+ this.xrLabel1.Name = "xrLabel1";
+ this.xrLabel1.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F);
+ this.xrLabel1.SizeF = new System.Drawing.SizeF(167.764F, 20F);
+ this.xrLabel1.StylePriority.UseBackColor = false;
+ this.xrLabel1.StylePriority.UseBorders = false;
+ this.xrLabel1.StylePriority.UseFont = false;
+ this.xrLabel1.StylePriority.UsePadding = false;
+ this.xrLabel1.StylePriority.UseTextAlignment = false;
+ this.xrLabel1.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
+ //
+ // fieldKontaktArt
+ //
+ this.fieldKontaktArt.DataMember = "Services";
+ this.fieldKontaktArt.Expression = "Iif([IsGroup], \'GR\', \'E\')";
+ this.fieldKontaktArt.FieldType = DevExpress.XtraReports.UI.FieldType.String;
+ this.fieldKontaktArt.Name = "fieldKontaktArt";
+ //
+ // xrPictureBox1
+ //
+ this.xrPictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("xrPictureBox1.Image")));
+ this.xrPictureBox1.LocationFloat = new DevExpress.Utils.PointFloat(496.8746F, 0F);
+ this.xrPictureBox1.Name = "xrPictureBox1";
+ this.xrPictureBox1.SizeF = new System.Drawing.SizeF(178.125F, 167.125F);
+ this.xrPictureBox1.Sizing = DevExpress.XtraPrinting.ImageSizeMode.ZoomImage;
+ //
+ // xrRichText3
+ //
+ this.xrRichText3.Font = new System.Drawing.Font("Verdana", 7F);
+ this.xrRichText3.LocationFloat = new DevExpress.Utils.PointFloat(4.499992F, 9.999974F);
+ this.xrRichText3.Name = "xrRichText3";
+ this.xrRichText3.SerializableRtfString = resources.GetString("xrRichText3.SerializableRtfString");
+ this.xrRichText3.SizeF = new System.Drawing.SizeF(116.447F, 65.61366F);
+ this.xrRichText3.StylePriority.UseFont = false;
+ //
+ // xrRichText4
+ //
+ this.xrRichText4.Font = new System.Drawing.Font("Verdana", 7F);
+ this.xrRichText4.LocationFloat = new DevExpress.Utils.PointFloat(180.0531F, 9.999974F);
+ this.xrRichText4.Name = "xrRichText4";
+ this.xrRichText4.SerializableRtfString = resources.GetString("xrRichText4.SerializableRtfString");
+ this.xrRichText4.SizeF = new System.Drawing.SizeF(116.447F, 65.61366F);
+ this.xrRichText4.StylePriority.UseFont = false;
+ //
+ // xrRichText5
+ //
+ this.xrRichText5.Font = new System.Drawing.Font("Verdana", 7F);
+ this.xrRichText5.LocationFloat = new DevExpress.Utils.PointFloat(340.2007F, 9.999974F);
+ this.xrRichText5.Name = "xrRichText5";
+ this.xrRichText5.SerializableRtfString = resources.GetString("xrRichText5.SerializableRtfString");
+ this.xrRichText5.SizeF = new System.Drawing.SizeF(198.083F, 65.61366F);
+ this.xrRichText5.StylePriority.UseFont = false;
+ //
+ // xrRichText6
+ //
+ this.xrRichText6.Font = new System.Drawing.Font("Verdana", 7F);
+ this.xrRichText6.LocationFloat = new DevExpress.Utils.PointFloat(570.5533F, 9.999974F);
+ this.xrRichText6.Name = "xrRichText6";
+ this.xrRichText6.SerializableRtfString = resources.GetString("xrRichText6.SerializableRtfString");
+ this.xrRichText6.SizeF = new System.Drawing.SizeF(116.447F, 65.61366F);
+ this.xrRichText6.StylePriority.UseFont = false;
+ //
+ // Quittierungsbeleg2
+ //
+ this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
+ this.Detail,
+ this.DetailReport,
+ this.ReportHeader,
+ this.topMarginBand1,
+ this.bottomMarginBand1,
+ this.GroupFooter1});
+ this.CalculatedFields.AddRange(new DevExpress.XtraReports.UI.CalculatedField[] {
+ this.fieldKontaktArt});
+ this.DataSource = this.bindingSource1;
+ this.DisplayName = "Quittierungsbeleg";
+ this.Font = new System.Drawing.Font("Arial", 10F);
+ this.FormattingRuleSheet.AddRange(new DevExpress.XtraReports.UI.FormattingRule[] {
+ this.formattingRuleStartDate,
+ this.formattingRuleServiceDesc,
+ this.formattingRuleCostBearer,
+ this.formattingRuleEmployeeName});
+ this.Margins = new System.Drawing.Printing.Margins(70, 70, 32, 108);
+ this.PageHeight = 1169;
+ this.PageWidth = 827;
+ this.PaperKind = System.Drawing.Printing.PaperKind.A4;
+ this.Version = "17.1";
+ ((System.ComponentModel.ISupportInitialize)(this.xrTable3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.xrTableServiceRecords1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.xrTableAbwesenheiten)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.xrRichText2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.xrRichText1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.xrRichText3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.xrRichText4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.xrRichText5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.xrRichText6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this)).EndInit();
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraReports.UI.DetailBand Detail;
+ private System.Windows.Forms.BindingSource bindingSource1;
+ private DevExpress.XtraReports.UI.DetailReportBand DetailReport;
+ private DevExpress.XtraReports.UI.DetailBand Detail1;
+ private DevExpress.XtraReports.UI.ReportHeaderBand ReportHeader;
+ private DevExpress.XtraReports.UI.FormattingRule formattingRuleStartDate;
+ private DevExpress.XtraReports.UI.FormattingRule formattingRuleServiceDesc;
+ private DevExpress.XtraReports.UI.FormattingRule formattingRuleCostBearer;
+ private DevExpress.XtraReports.UI.FormattingRule formattingRuleEmployeeName;
+ private DevExpress.XtraReports.UI.TopMarginBand topMarginBand1;
+ private DevExpress.XtraReports.UI.BottomMarginBand bottomMarginBand1;
+ private DevExpress.XtraReports.UI.XRLabel xrLabel2;
+ private DevExpress.XtraReports.UI.GroupHeaderBand GroupHeader1;
+ private DevExpress.XtraReports.UI.XRTable xrTableServiceRecords1;
+ private DevExpress.XtraReports.UI.XRTableRow xrTableRow2;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell3;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell4;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell11;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell9;
+ private DevExpress.XtraReports.UI.XRTableRow xrTableRow1;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell1;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell8;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell5;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell6;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell7;
+ private DevExpress.XtraReports.UI.GroupFooterBand GroupFooter1;
+ private DevExpress.XtraReports.UI.XRLabel xrLabel3;
+ private DevExpress.XtraReports.UI.XRLabel xrLabel7;
+ private DevExpress.XtraReports.UI.XRLabel xrLabel8;
+ private DevExpress.XtraReports.UI.XRLabel xrLabel6;
+ private DevExpress.XtraReports.UI.XRLabel xrLabel5;
+ private DevExpress.XtraReports.UI.XRLabel xrLabel4;
+ private DevExpress.XtraReports.UI.XRTable xrTable3;
+ private DevExpress.XtraReports.UI.XRTableRow xrTableRow6;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell13;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell14;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell10;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell15;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell12;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell2;
+ private DevExpress.XtraReports.UI.CalculatedField fieldKontaktArt;
+ private DevExpress.XtraReports.UI.XRLabel xrLabel11;
+ private DevExpress.XtraReports.UI.XRLabel xrLabel10;
+ private DevExpress.XtraReports.UI.XRLabel xrLabel1;
+ private DevExpress.XtraReports.UI.XRLabel xrLabel13;
+ private DevExpress.XtraReports.UI.XRLabel xrLabel12;
+ private DevExpress.XtraReports.UI.XRLabel xrLabel15;
+ private DevExpress.XtraReports.UI.XRRichText xrRichText1;
+ private DevExpress.XtraReports.UI.XRRichText xrRichText2;
+ private DevExpress.XtraReports.UI.XRLabel lblHatAbwesenheiten;
+ private DevExpress.XtraReports.UI.XRLabel lblHatGruppen;
+ private DevExpress.XtraReports.UI.XRTable xrTableAbwesenheiten;
+ private DevExpress.XtraReports.UI.XRTableRow xrTableRow3;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell16;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell17;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell18;
+ private DevExpress.XtraReports.UI.XRLabel lblUnterschriftKlient;
+ private DevExpress.XtraReports.UI.XRLabel lblUnterschriftMitarbeiter;
+ private DevExpress.XtraReports.UI.XRTableRow xrTableRow4;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell19;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell20;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell21;
+ private DevExpress.XtraReports.UI.XRTableRow xrTableRow5;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell22;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell23;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell24;
+ private DevExpress.XtraReports.UI.XRTableRow xrTableRow7;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell25;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell26;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell27;
+ private DevExpress.XtraReports.UI.XRTableRow xrTableRow8;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell29;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell30;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell31;
+ private DevExpress.XtraReports.UI.XRPictureBox xrPictureBox1;
+ private DevExpress.XtraReports.UI.XRRichText xrRichText3;
+ private DevExpress.XtraReports.UI.XRRichText xrRichText4;
+ private DevExpress.XtraReports.UI.XRRichText xrRichText5;
+ private DevExpress.XtraReports.UI.XRRichText xrRichText6;
+ }
+}
diff --git a/ReportImp/Bewolonia/QuittierungsbelegMitDatum.cs b/ReportImp/Bewolonia/QuittierungsbelegMitDatum.cs
new file mode 100644
index 000000000..f774129f1
--- /dev/null
+++ b/ReportImp/Bewolonia/QuittierungsbelegMitDatum.cs
@@ -0,0 +1,136 @@
+using System;
+using System.Collections.Generic;
+using System.Drawing;
+using System.IO;
+using System.Text.RegularExpressions;
+using BeWo.Report;
+using BeWo.Report.ReportObjects;
+using BS.Shared.Core;
+using DevExpress.XtraReports.UI;
+
+namespace BeWoImFlow
+{
+ public partial class Quittierungsbeleg2 : DevExpress.XtraReports.UI.XtraReport, IBeWoReport
+ {
+ public Quittierungsbeleg2()
+ {
+ InitializeComponent();
+ }
+
+ public void SetReportDataSource(ServicesOverviewRO pRO)
+ {
+ bool hatGruppen = false;
+
+ if (pRO.Services != null)
+ {
+ List servicesBillable = new List();
+
+ foreach (var sd in pRO.Services)
+ {
+ if (sd.IsBillable)
+ {
+ //ServicesOverviewRO.CreateSignatureString(sd);
+ if (sd.IsGroup)
+ {
+ //sd.Notice5 = String.Format("{0} Teilnehmer", sd.CustomerCount);
+ hatGruppen = true;
+ }
+ servicesBillable.Add(sd);
+ }
+ }
+
+ pRO.Services = servicesBillable;
+ }
+
+ if (String.IsNullOrWhiteSpace(pRO.AbsenceTimes))
+ {
+ lblHatAbwesenheiten.Text = "X";
+ }
+
+ if (!hatGruppen)
+ {
+ lblHatGruppen.Text = "X";
+ }
+
+ ErstelleAbwesenheitenTabelle(pRO);
+
+ bindingSource1.DataSource = pRO;
+ }
+
+ private void ErstelleAbwesenheitenTabelle(ServicesOverviewRO pRo)
+ {
+ if (pRo.Abwesenheiten != null)
+ {
+ int newRows = 0;
+ int index = 1;
+ foreach (var at in pRo.Abwesenheiten)
+ {
+ if (at.AbsenceReason.BillableMinutes.HasValue && at.AbsenceReason.BillableMinutes.Value > 0)
+ {
+ DevExpress.XtraReports.UI.XRTableRow row = null;
+ if (index < xrTableAbwesenheiten.Rows.Count)
+ {
+ row = xrTableAbwesenheiten.Rows[index];
+ }
+ else
+ {
+ row = xrTableAbwesenheiten.InsertRowBelow(
+ xrTableAbwesenheiten.Rows[xrTableAbwesenheiten.Rows.Count - 1]);
+ newRows++;
+ }
+
+ row.Cells[0].Text = String.Format("{0:dd.MM.yyyy}", at.Start);
+ int? days = null;
+
+ if (at.End.HasValue)
+ {
+ row.Cells[1].Text = String.Format("{0:dd.MM.yyyy}", at.End);
+ days = (int) at.End.Value.Subtract(at.Start.Value).TotalDays + 1;
+ }
+ else
+ {
+ row.Cells[1].Text = "unbekannt";
+ }
+
+ row.Cells[2].Text = String.Format("{0:0}", days);
+
+ index++;
+ }
+ }
+
+ if (newRows > 0)
+ {
+ lblUnterschriftKlient.Top += newRows * 20;
+ lblUnterschriftMitarbeiter.Top += newRows * 20;
+ }
+ }
+ }
+
+ private void picSignature_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e)
+ {
+ XRPictureBox xrBox = sender as XRPictureBox;
+ //var test = this.GetCurrent
+ string base64String = xrBox.Tag as string;
+ if (!String.IsNullOrWhiteSpace(base64String))
+ {
+ var base64Data = Regex.Match(base64String, @"data:image/(?.+?),(?.+)").Groups["data"].Value;
+ var binData = Convert.FromBase64String(base64Data);
+ Image img = ByteArrayToImage(binData);
+ xrBox.Image = Utils.CropImage(img);
+ }
+ else
+ {
+ xrBox.Image = null;
+ }
+ }
+
+ public Image ByteArrayToImage(byte[] byteArrayIn)
+ {
+ Image returnImage = null;
+ MemoryStream ms = new System.IO.MemoryStream(byteArrayIn);
+ returnImage = Image.FromStream(ms);
+
+ return returnImage;
+ }
+ }
+}
diff --git a/ReportImp/Bewolonia/QuittierungsbelegMitDatum.resx b/ReportImp/Bewolonia/QuittierungsbelegMitDatum.resx
new file mode 100644
index 000000000..474a0427f
--- /dev/null
+++ b/ReportImp/Bewolonia/QuittierungsbelegMitDatum.resx
@@ -0,0 +1,770 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 21, 17
+
+
+
+
+ /9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsN
+ DhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQU
+ FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAI3AjYDASIAAhEBAxEB/8QA
+ HwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh
+ MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVW
+ V1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXG
+ x8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQF
+ BgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV
+ YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
+ hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq
+ 8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9U6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo
+ AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo
+ AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo
+ AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo
+ AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo
+ AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo
+ AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo
+ AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo
+ AKKKKACiiigAooooAKKKKACiiigAorm/FvxG8NeBYd+u6za6eSMrFI+ZG+iDLH8q8c8R/tneHbFnj0XR
+ r7VWHAlmK28Z/PLY/AVjOtTp/Ez0cPl2LxetGm2u/T73ofQ9FfHGpftmeLLkkWWkaVZL/tiSVvz3AfpW
+ FJ+1l8RJGJW80+Mei2Sn+ZrneMpI9qPDWPktbL5/5XPuSiviO0/a68f27Aytpd0P7sloVz/3ywrq9F/b
+ W1KNlGr+GbadO72Nw0Z/Jgf501jKTIqcN5hBXUU/R/52PrGivH/C/wC1R4D8RNHFcXs2iXDcbNQi2pn/
+ AH1yv5kV6xY6ha6napc2dxFd27jKywuHRvoRxXVGpGfwu54NfC18K7VoOPqixRRRVnKFFFFABRRRQAUU
+ UUAFFFFABRRXK+Mfij4W8BRltb1q2tJcZFuG3zN9EXLfpSclFXbNKdOdWXJTi2/I6qivmzxP+2lpdvvj
+ 8P6Dc3zfwz3ziFP++Rlj+leZ6x+1t4+1Jj9ll0/SkP8ADb2u8j8XJrkli6Uetz6Gjw7j6yu4qPq/8rs+
+ 36K/Pi6+PnxCvDl/Fd8v/XLZH/6CoqCP44eP4W3DxdqZP+1KGH5EVl9eh2Z6K4VxNtakfx/yP0Oor4N0
+ v9p34i6YVzraXqj+G7tY2z+IAP616D4b/bU1GFlTXvDtvdJ0MunymNvrtfIP5irjjKUt9DjrcN4+mrxt
+ L0f+dj6xorzbwT+0L4I8ctHBbaqun3z8Cz1AeS5PoCflb8DXpNdkZRmrxdz5yth6uHlyVouL8woooqjA
+ KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA
+ KKKY0yLIkbOod8lVJ5OOuKAH0UUUAFFFFABRRRQAUUV438bv2iNP+Gccml6WI9T8SMv+pzmK1z0aQjv6
+ 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
+ P0qLfM+Gub2QDzbh/Vj2Hoo4H61peCfBGkfD/QYNI0a1Fvax8s3V5W7u7d2P+eK3quhh1SV3uc2bZzUz
+ CXs4e7TXTv5v/IKKKK7D5sKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig
+ AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig
+ AooooAKKKKACiiigCO4t4rqCSGeNZoZFKPHIoZWUjBBB6ivjv4/fs8z+A55fE3hZJG0QP5s1vESZLBs5
+ 3KeuzPfqv05r7IpskazRsjqrow2srDIIPUEVhVoxrRsz1cvzGrl1Xnp6p7ro/wCu545+zp8bE+JWh/2X
+ qkqjxJYIPNzx9qj6CUe/Zh6896sfGKw8nWrO7AwJ4dhPup/wNeVfGT4L6l8J9fj8eeBN8NnbSefNaxDJ
+ tD/EQP4ojyCvYH06ehzfELT/AIufDKx16zAivLWdY7y1zloHZcEf7p4IPcfjXl4nmlQlSqfEtfU+gVCl
+ HEQx2D/hT0a/lb6P57f8McnRRRXy57wV6lH4u0z4U/CeLWtUbamwyJCpw88jklUX3PH0AJ7V5Y7KsbM7
+ bEUEs3oB1Nc3a6PrX7UvjSEoZtM8CaNi3ikIwdoAB29jK4AyeijH4+tl7cZylFXeyOLFYeGIinWly04u
+ 8n+SXmzm/CPgzxL+014/vNZ1OV7bTBIBc3aj5IUH3YIc9Tj8s5PJ5+zvC/hfTPBmh22k6PaJZ2NuuFjT
+ qT3Zj3Y9yaf4c8Oad4T0W10rSrVLOxtl2RxIPzJPcnqSetadfSUaKpq71bPlMyzKWOkoQXLTj8Mf8/P8
+ gooorpPECiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo
+ ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo
+ ooAKKKKACiiigBrosiMjqGVhgqwyCPSvm7x58Hb34a+KH8ReEQw8N6iwh1bS4xkQqWyJFH9wNg/7PPYn
+ H0nUc8K3EEkTDKyKVP0IxWFaiq0HFnoYLG1MHPmjqnuuj/4K6PofNFFSXEDWtxLAww0Tsh/A4qOvhD9C
+ 31Rc0nw8vizUItIeSSGK83RySRfeVMHcR74z+de/eH/D+n+FdHtdK0q1jsrC1QJFDGMAD+pPcnk15b8I
+ rP7R4llnI4t4CR9WIH8s17HX1OV01Gk59Wz4/Oa0pVVRvounn/wwUUUV7J86FFFFABRRRQAUUUUAFFFF
+ ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF
+ ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAeA+O
+ rP7D4u1OPGA0vmD/AIEAf61hV2/xdtPJ8TRTAcT26n8QSP8ACuIr4bEx5K04+Z+kYSftMPCXkj1P4M2m
+ 2z1O6I+/IsYP0GT/AOhV6RXI/Cy0+y+D7dyMGeR5f1wP0FddX1mDjyYeC8vzPh8wnz4qb87fdoFFFFdp
+ 54UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR
+ QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR
+ QAUUUUAFFFFABRRRQB5p8Z7TMOl3QH3XeIn6gEfyNeXMcKTXtXxXtftHhGSQDJgmST8M7T/OvHLG3N5f
+ W0AGTLKqfmQK+RzGFsS7dbf5H3WU1L4VX6N/5/qfQPhez+weHdNg7pAmfqRk/rWpSKoRQoGABgUtfWRj
+ yxUV0PiJyc5OT6hRRRVEBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF
+ FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF
+ FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAGL4ztftnhXVIgMnyGYfgM/0rxnwPb/a/FulJjIEwkP8A
+ wEFv6V73dQ/abWaE9JEZPzGK8b+FNmW8Xgkf8e8MhP14X+prw8dT5sRSff8ARn0eXVeXCV12X5o9pooo
+ r3D5wKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA
+ 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
+ ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA
+ ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA
+ ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA
+ ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA
+ ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA
+ ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA
+ ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA
+ ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA
+ ooooA//Z
+
+
+
+ ewBcAHIAdABmADEAXABkAGUAZgBmADAAewBcAGYAbwBuAHQAdABiAGwAewBcAGYAMAAgAEMAYQBsAGkAYgByAGkAOwB9AHsAXABmADEAIABUAGkAbQBlAHMAIABOAGUAdwAgAFIAbwBtAGEAbgA7AH0AewBcAGYAMgAgAFYAZQByAGQAYQBuAGEAOwB9AH0AewBcAGMAbwBsAG8AcgB0AGIAbAAgADsAXAByAGUAZAAwAFwAZwByAGUAZQBuADAAXABiAGwAdQBlADAAIAA7AFwAcgBlAGQAMABcAGcAcgBlAGUAbgAwAFwAYgBsAHUAZQAyADUANQAgADsAfQB7AFwAKgBcAGQAZQBmAGMAaABwACAAXABmADEAXABmAHMAMgA0AH0AewBcAHMAdAB5AGwAZQBzAGgAZQBlAHQAIAB7AFwAcQBsAFwAZgAxAFwAZgBzADIANAAgAE4AbwByAG0AYQBsADsAfQB7AFwAKgBcAGMAcwAxAFwAZgAxAFwAZgBzADIANABcAGMAZgAxACAARABlAGYAYQB1AGwAdAAgAFAAYQByAGEAZwByAGEAcABoACAARgBvAG4AdAA7AH0AewBcACoAXABjAHMAMgBcAHMAYgBhAHMAZQBkAG8AbgAxAFwAZgAxAFwAZgBzADIANABcAGMAZgAxACAATABpAG4AZQAgAE4AdQBtAGIAZQByADsAfQB7AFwAKgBcAGMAcwAzAFwAdQBsAFwAZgAxAFwAZgBzADIANABcAGMAZgAyACAASAB5AHAAZQByAGwAaQBuAGsAOwB9AHsAXAAqAFwAdABzADQAXAB0AHMAcgBvAHcAZABcAGYAMQBcAGYAcwAyADQAXABxAGwAXAB0AHMAYwBlAGwAbABwAGEAZABkAGYAbAAzAFwAdABzAGMAZQBsAGwAcABhAGQAZABsADEAMAA4AFwAdABzAGMAZQBsAGwAcABhAGQAZABmAGIAMwBcAHQAcwBjAGUAbABsAHAAYQBkAGQAZgByADMAXAB0AHMAYwBlAGwAbABwAGEAZABkAHIAMQAwADgAXAB0AHMAYwBlAGwAbABwAGEAZABkAGYAdAAzAFwAdABzAHYAZQByAHQAYQBsAHQAXABjAGwAdAB4AGwAcgB0AGIAIABOAG8AcgBtAGEAbAAgAFQAYQBiAGwAZQA7AH0AewBcACoAXAB0AHMANQBcAHQAcwByAG8AdwBkAFwAcwBiAGEAcwBlAGQAbwBuADQAXABmADEAXABmAHMAMgA0AFwAcQBsAFwAdAByAGIAcgBkAHIAdABcAGIAcgBkAHIAcwBcAGIAcgBkAHIAdwAxADAAXAB0AHIAYgByAGQAcgBsAFwAYgByAGQAcgBzAFwAYgByAGQAcgB3ADEAMABcAHQAcgBiAHIAZAByAGIAXABiAHIAZAByAHMAXABiAHIAZAByAHcAMQAwAFwAdAByAGIAcgBkAHIAcgBcAGIAcgBkAHIAcwBcAGIAcgBkAHIAdwAxADAAXAB0AHIAYgByAGQAcgBoAFwAYgByAGQAcgBzAFwAYgByAGQAcgB3ADEAMABcAHQAcgBiAHIAZAByAHYAXABiAHIAZAByAHMAXABiAHIAZAByAHcAMQAwAFwAdABzAGMAZQBsAGwAcABhAGQAZABmAGwAMwBcAHQAcwBjAGUAbABsAHAAYQBkAGQAbAAxADAAOABcAHQAcwBjAGUAbABsAHAAYQBkAGQAZgByADMAXAB0AHMAYwBlAGwAbABwAGEAZABkAHIAMQAwADgAXAB0AHMAdgBlAHIAdABhAGwAdABcAGMAbAB0AHgAbAByAHQAYgAgAFQAYQBiAGwAZQAgAFMAaQBtAHAAbABlACAAMQA7AH0AfQB7AFwAKgBcAGwAaQBzAHQAbwB2AGUAcgByAGkAZABlAHQAYQBiAGwAZQB9AFwAbgBvAHUAaQBjAG8AbQBwAGEAdABcAHMAcABsAHkAdAB3AG4AaQBuAGUAXABoAHQAbQBhAHUAdABzAHAAXABwAGEAcgBkAFwAcABsAGEAaQBuAFwAcQBsAHsAXABsAGEAbgBnADEAMAAzADEAXABsAGEAbgBnAGYAZQAxADAAMwAxAFwAZgAyAFwAZgBzADEANABcAGMAZgAxACAAQgBFAFcATwBMAE8ATgBJAEEAfQBcAGwAYQBuAGcAMQAwADMAMQBcAGwAYQBuAGcAZgBlADEAMAAzADEAXABmADIAXABmAHMAMQA0AFwAYwBmADEAXABwAGEAcgBcAHAAYQByAGQAXABwAGwAYQBpAG4AXABxAGwAewBcAGwAYQBuAGcAMQAwADMAMQBcAGwAYQBuAGcAZgBlADEAMAAzADEAXABmADIAXABmAHMAMQA0AFwAYwBmADEAIABLAGEAbAB9AHsAXABsAGEAbgBnADEAMAAzADEAXABsAGEAbgBnAGYAZQAxADAAMwAxAFwAZgAyAFwAZgBzADEANABcAGMAZgAxACAAawAtAE0AXAB1ADIANQAyAFwAJwBmAGMAbABoAGUAaQBtAGUAcgAtAFMAdAByAC4AIAAxAH0AXABsAGEAbgBnADEAMAAzADEAXABsAGEAbgBnAGYAZQAxADAAMwAxAFwAZgAyAFwAZgBzADEANABcAGMAZgAxAFwAcABhAHIAXABwAGEAcgBkAFwAcABsAGEAaQBuAFwAcQBsAHsAXABsAGEAbgBnADEAMAAzADEAXABsAGEAbgBnAGYAZQAxADAAMwAxAFwAZgAyAFwAZgBzADEANABcAGMAZgAxACAANQAxADEAMAAzACAAfQB7AFwAbABhAG4AZwAxADAAMwAxAFwAbABhAG4AZwBmAGUAMQAwADMAMQBcAGYAMgBcAGYAcwAxADQAXABjAGYAMQAgAEsAXAB1ADIANAA2AFwAJwBmADYAbABuAH0AXABmADEAXABmAHMAMgA0AFwAYwBmADEAXABwAGEAcgB9AA==
+
+
+ ewBcAHIAdABmADEAXABkAGUAZgBmADAAewBcAGYAbwBuAHQAdABiAGwAewBcAGYAMAAgAEMAYQBsAGkAYgByAGkAOwB9AHsAXABmADEAIABUAGkAbQBlAHMAIABOAGUAdwAgAFIAbwBtAGEAbgA7AH0AewBcAGYAMgAgAFYAZQByAGQAYQBuAGEAOwB9AH0AewBcAGMAbwBsAG8AcgB0AGIAbAAgADsAXAByAGUAZAAwAFwAZwByAGUAZQBuADAAXABiAGwAdQBlADAAIAA7AFwAcgBlAGQAMABcAGcAcgBlAGUAbgAwAFwAYgBsAHUAZQAyADUANQAgADsAfQB7AFwAKgBcAGQAZQBmAGMAaABwACAAXABmADEAXABmAHMAMgA0AH0AewBcAHMAdAB5AGwAZQBzAGgAZQBlAHQAIAB7AFwAcQBsAFwAZgAxAFwAZgBzADIANAAgAE4AbwByAG0AYQBsADsAfQB7AFwAKgBcAGMAcwAxAFwAZgAxAFwAZgBzADIANABcAGMAZgAxACAARABlAGYAYQB1AGwAdAAgAFAAYQByAGEAZwByAGEAcABoACAARgBvAG4AdAA7AH0AewBcACoAXABjAHMAMgBcAHMAYgBhAHMAZQBkAG8AbgAxAFwAZgAxAFwAZgBzADIANABcAGMAZgAxACAATABpAG4AZQAgAE4AdQBtAGIAZQByADsAfQB7AFwAKgBcAGMAcwAzAFwAdQBsAFwAZgAxAFwAZgBzADIANABcAGMAZgAyACAASAB5AHAAZQByAGwAaQBuAGsAOwB9AHsAXAAqAFwAdABzADQAXAB0AHMAcgBvAHcAZABcAGYAMQBcAGYAcwAyADQAXABxAGwAXAB0AHMAYwBlAGwAbABwAGEAZABkAGYAbAAzAFwAdABzAGMAZQBsAGwAcABhAGQAZABsADEAMAA4AFwAdABzAGMAZQBsAGwAcABhAGQAZABmAGIAMwBcAHQAcwBjAGUAbABsAHAAYQBkAGQAZgByADMAXAB0AHMAYwBlAGwAbABwAGEAZABkAHIAMQAwADgAXAB0AHMAYwBlAGwAbABwAGEAZABkAGYAdAAzAFwAdABzAHYAZQByAHQAYQBsAHQAXABjAGwAdAB4AGwAcgB0AGIAIABOAG8AcgBtAGEAbAAgAFQAYQBiAGwAZQA7AH0AewBcACoAXAB0AHMANQBcAHQAcwByAG8AdwBkAFwAcwBiAGEAcwBlAGQAbwBuADQAXABmADEAXABmAHMAMgA0AFwAcQBsAFwAdAByAGIAcgBkAHIAdABcAGIAcgBkAHIAcwBcAGIAcgBkAHIAdwAxADAAXAB0AHIAYgByAGQAcgBsAFwAYgByAGQAcgBzAFwAYgByAGQAcgB3ADEAMABcAHQAcgBiAHIAZAByAGIAXABiAHIAZAByAHMAXABiAHIAZAByAHcAMQAwAFwAdAByAGIAcgBkAHIAcgBcAGIAcgBkAHIAcwBcAGIAcgBkAHIAdwAxADAAXAB0AHIAYgByAGQAcgBoAFwAYgByAGQAcgBzAFwAYgByAGQAcgB3ADEAMABcAHQAcgBiAHIAZAByAHYAXABiAHIAZAByAHMAXABiAHIAZAByAHcAMQAwAFwAdABzAGMAZQBsAGwAcABhAGQAZABmAGwAMwBcAHQAcwBjAGUAbABsAHAAYQBkAGQAbAAxADAAOABcAHQAcwBjAGUAbABsAHAAYQBkAGQAZgByADMAXAB0AHMAYwBlAGwAbABwAGEAZABkAHIAMQAwADgAXAB0AHMAdgBlAHIAdABhAGwAdABcAGMAbAB0AHgAbAByAHQAYgAgAFQAYQBiAGwAZQAgAFMAaQBtAHAAbABlACAAMQA7AH0AfQB7AFwAKgBcAGwAaQBzAHQAbwB2AGUAcgByAGkAZABlAHQAYQBiAGwAZQB9AFwAbgBvAHUAaQBjAG8AbQBwAGEAdABcAHMAcABsAHkAdAB3AG4AaQBuAGUAXABoAHQAbQBhAHUAdABzAHAAXABwAGEAcgBkAFwAcABsAGEAaQBuAFwAcQBsAHsAXABsAGEAbgBnADEAMAAzADEAXABsAGEAbgBnAGYAZQAxADAAMwAxAFwAZgAyAFwAZgBzADEANABcAGMAZgAxACAAXAB1ADIAMQA0AFwAJwBkADYAZgBmAG4AdQBuAGcAcwB6AGUAaQB0AGUAbgA6AH0AXABsAGEAbgBnADEAMAAzADEAXABsAGEAbgBnAGYAZQAxADAAMwAxAFwAZgAyAFwAZgBzADEANABcAGMAZgAxAFwAcABhAHIAXABwAGEAcgBkAFwAcABsAGEAaQBuAFwAcQBsAHsAXABsAGEAbgBnADEAMAAzADEAXABsAGEAbgBnAGYAZQAxADAAMwAxAFwAZgAyAFwAZgBzADEANABcAGMAZgAxACAATQBvAG4AfQB7AFwAbABhAG4AZwAxADAAMwAxAFwAbABhAG4AZwBmAGUAMQAwADMAMQBcAGYAMgBcAGYAcwAxADQAXABjAGYAMQAgAHQAYQBnACAALQAgAH0AewBcAGwAYQBuAGcAMQAwADMAMQBcAGwAYQBuAGcAZgBlADEAMAAzADEAXABmADIAXABmAHMAMQA0AFwAYwBmADEAIABGAHIAZQBpAHQAYQBnAH0AXABsAGEAbgBnADEAMAAzADEAXABsAGEAbgBnAGYAZQAxADAAMwAxAFwAZgAyAFwAZgBzADEANABcAGMAZgAxAFwAcABhAHIAXABwAGEAcgBkAFwAcABsAGEAaQBuAFwAcQBsAHsAXABsAGEAbgBnADEAMAAzADEAXABsAGEAbgBnAGYAZQAxADAAMwAxAFwAZgAyAFwAZgBzADEANABcAGMAZgAxACAAOAAuADAAMAAgAC0AIAAxADcALgAwADAAIABVAGgAcgB9AFwAbABhAG4AZwAxADAAMwAxAFwAbABhAG4AZwBmAGUAMQAwADMAMQBcAGYAMQBcAGYAcwAyADQAXABjAGYAMQBcAHAAYQByAH0A
+
+
+ ewBcAHIAdABmADEAXABkAGUAZgBmADAAewBcAGYAbwBuAHQAdABiAGwAewBcAGYAMAAgAEMAYQBsAGkAYgByAGkAOwB9AHsAXABmADEAIABUAGkAbQBlAHMAIABOAGUAdwAgAFIAbwBtAGEAbgA7AH0AewBcAGYAMgAgAFYAZQByAGQAYQBuAGEAOwB9AH0AewBcAGMAbwBsAG8AcgB0AGIAbAAgADsAXAByAGUAZAAwAFwAZwByAGUAZQBuADAAXABiAGwAdQBlADAAIAA7AFwAcgBlAGQAMABcAGcAcgBlAGUAbgAwAFwAYgBsAHUAZQAyADUANQAgADsAfQB7AFwAKgBcAGQAZQBmAGMAaABwACAAXABmADEAXABmAHMAMgA0AH0AewBcAHMAdAB5AGwAZQBzAGgAZQBlAHQAIAB7AFwAcQBsAFwAZgAxAFwAZgBzADIANAAgAE4AbwByAG0AYQBsADsAfQB7AFwAKgBcAGMAcwAxAFwAZgAxAFwAZgBzADIANABcAGMAZgAxACAARABlAGYAYQB1AGwAdAAgAFAAYQByAGEAZwByAGEAcABoACAARgBvAG4AdAA7AH0AewBcACoAXABjAHMAMgBcAHMAYgBhAHMAZQBkAG8AbgAxAFwAZgAxAFwAZgBzADIANABcAGMAZgAxACAATABpAG4AZQAgAE4AdQBtAGIAZQByADsAfQB7AFwAKgBcAGMAcwAzAFwAdQBsAFwAZgAxAFwAZgBzADIANABcAGMAZgAyACAASAB5AHAAZQByAGwAaQBuAGsAOwB9AHsAXAAqAFwAdABzADQAXAB0AHMAcgBvAHcAZABcAGYAMQBcAGYAcwAyADQAXABxAGwAXAB0AHMAYwBlAGwAbABwAGEAZABkAGYAbAAzAFwAdABzAGMAZQBsAGwAcABhAGQAZABsADEAMAA4AFwAdABzAGMAZQBsAGwAcABhAGQAZABmAGIAMwBcAHQAcwBjAGUAbABsAHAAYQBkAGQAZgByADMAXAB0AHMAYwBlAGwAbABwAGEAZABkAHIAMQAwADgAXAB0AHMAYwBlAGwAbABwAGEAZABkAGYAdAAzAFwAdABzAHYAZQByAHQAYQBsAHQAXABjAGwAdAB4AGwAcgB0AGIAIABOAG8AcgBtAGEAbAAgAFQAYQBiAGwAZQA7AH0AewBcACoAXAB0AHMANQBcAHQAcwByAG8AdwBkAFwAcwBiAGEAcwBlAGQAbwBuADQAXABmADEAXABmAHMAMgA0AFwAcQBsAFwAdAByAGIAcgBkAHIAdABcAGIAcgBkAHIAcwBcAGIAcgBkAHIAdwAxADAAXAB0AHIAYgByAGQAcgBsAFwAYgByAGQAcgBzAFwAYgByAGQAcgB3ADEAMABcAHQAcgBiAHIAZAByAGIAXABiAHIAZAByAHMAXABiAHIAZAByAHcAMQAwAFwAdAByAGIAcgBkAHIAcgBcAGIAcgBkAHIAcwBcAGIAcgBkAHIAdwAxADAAXAB0AHIAYgByAGQAcgBoAFwAYgByAGQAcgBzAFwAYgByAGQAcgB3ADEAMABcAHQAcgBiAHIAZAByAHYAXABiAHIAZAByAHMAXABiAHIAZAByAHcAMQAwAFwAdABzAGMAZQBsAGwAcABhAGQAZABmAGwAMwBcAHQAcwBjAGUAbABsAHAAYQBkAGQAbAAxADAAOABcAHQAcwBjAGUAbABsAHAAYQBkAGQAZgByADMAXAB0AHMAYwBlAGwAbABwAGEAZABkAHIAMQAwADgAXAB0AHMAdgBlAHIAdABhAGwAdABcAGMAbAB0AHgAbAByAHQAYgAgAFQAYQBiAGwAZQAgAFMAaQBtAHAAbABlACAAMQA7AH0AfQB7AFwAKgBcAGwAaQBzAHQAbwB2AGUAcgByAGkAZABlAHQAYQBiAGwAZQB9AFwAbgBvAHUAaQBjAG8AbQBwAGEAdABcAHMAcABsAHkAdAB3AG4AaQBuAGUAXABoAHQAbQBhAHUAdABzAHAAXABwAGEAcgBkAFwAcABsAGEAaQBuAFwAcQBsAHsAXABsAGEAbgBnADEAMAAzADEAXABsAGEAbgBnAGYAZQAxADAAMwAxAFwAZgAyAFwAZgBzADEANABcAGMAZgAxACAAUABvAHMAdABiAGEAbgBrACAAQQBHAH0AXABsAGEAbgBnADEAMAAzADEAXABsAGEAbgBnAGYAZQAxADAAMwAxAFwAZgAyAFwAZgBzADEANABcAGMAZgAxAFwAcABhAHIAXABwAGEAcgBkAFwAcABsAGEAaQBuAFwAcQBsAHsAXABsAGEAbgBnADEAMAAzADEAXABsAGEAbgBnAGYAZQAxADAAMwAxAFwAZgAyAFwAZgBzADEANABcAGMAZgAxACAASQBCAEEATgA6ACAARABFADgAMAAgADMANwAwADEAIAAwADAANQAwACAAMAA5ADgAOQAgADAANQA4ADUAIAAwAH0AewBcAGwAYQBuAGcAMQAwADMAMQBcAGwAYQBuAGcAZgBlADEAMAAzADEAXABmADIAXABmAHMAMQA0AFwAYwBmADEAIAAwACAAQgB9AHsAXABsAGEAbgBnADEAMAAzADEAXABsAGEAbgBnAGYAZQAxADAAMwAxAFwAZgAyAFwAZgBzADEANABcAGMAZgAxACAASQBDADoAIABQAEIATgBLAEQARQBGAEYAfQBcAGwAYQBuAGcAMQAwADMAMQBcAGwAYQBuAGcAZgBlADEAMAAzADEAXABmADEAXABmAHMAMgA0AFwAYwBmADEAXABwAGEAcgB9AA==
+
+
+ ewBcAHIAdABmADEAXABkAGUAZgBmADAAewBcAGYAbwBuAHQAdABiAGwAewBcAGYAMAAgAEMAYQBsAGkAYgByAGkAOwB9AHsAXABmADEAIABUAGkAbQBlAHMAIABOAGUAdwAgAFIAbwBtAGEAbgA7AH0AewBcAGYAMgAgAFYAZQByAGQAYQBuAGEAOwB9AH0AewBcAGMAbwBsAG8AcgB0AGIAbAAgADsAXAByAGUAZAAwAFwAZwByAGUAZQBuADAAXABiAGwAdQBlADAAIAA7AFwAcgBlAGQAMABcAGcAcgBlAGUAbgAwAFwAYgBsAHUAZQAyADUANQAgADsAfQB7AFwAKgBcAGQAZQBmAGMAaABwACAAXABmADEAXABmAHMAMgA0AH0AewBcAHMAdAB5AGwAZQBzAGgAZQBlAHQAIAB7AFwAcQBsAFwAZgAxAFwAZgBzADIANAAgAE4AbwByAG0AYQBsADsAfQB7AFwAKgBcAGMAcwAxAFwAZgAxAFwAZgBzADIANABcAGMAZgAxACAARABlAGYAYQB1AGwAdAAgAFAAYQByAGEAZwByAGEAcABoACAARgBvAG4AdAA7AH0AewBcACoAXABjAHMAMgBcAHMAYgBhAHMAZQBkAG8AbgAxAFwAZgAxAFwAZgBzADIANABcAGMAZgAxACAATABpAG4AZQAgAE4AdQBtAGIAZQByADsAfQB7AFwAKgBcAGMAcwAzAFwAdQBsAFwAZgAxAFwAZgBzADIANABcAGMAZgAyACAASAB5AHAAZQByAGwAaQBuAGsAOwB9AHsAXAAqAFwAdABzADQAXAB0AHMAcgBvAHcAZABcAGYAMQBcAGYAcwAyADQAXABxAGwAXAB0AHMAYwBlAGwAbABwAGEAZABkAGYAbAAzAFwAdABzAGMAZQBsAGwAcABhAGQAZABsADEAMAA4AFwAdABzAGMAZQBsAGwAcABhAGQAZABmAGIAMwBcAHQAcwBjAGUAbABsAHAAYQBkAGQAZgByADMAXAB0AHMAYwBlAGwAbABwAGEAZABkAHIAMQAwADgAXAB0AHMAYwBlAGwAbABwAGEAZABkAGYAdAAzAFwAdABzAHYAZQByAHQAYQBsAHQAXABjAGwAdAB4AGwAcgB0AGIAIABOAG8AcgBtAGEAbAAgAFQAYQBiAGwAZQA7AH0AewBcACoAXAB0AHMANQBcAHQAcwByAG8AdwBkAFwAcwBiAGEAcwBlAGQAbwBuADQAXABmADEAXABmAHMAMgA0AFwAcQBsAFwAdAByAGIAcgBkAHIAdABcAGIAcgBkAHIAcwBcAGIAcgBkAHIAdwAxADAAXAB0AHIAYgByAGQAcgBsAFwAYgByAGQAcgBzAFwAYgByAGQAcgB3ADEAMABcAHQAcgBiAHIAZAByAGIAXABiAHIAZAByAHMAXABiAHIAZAByAHcAMQAwAFwAdAByAGIAcgBkAHIAcgBcAGIAcgBkAHIAcwBcAGIAcgBkAHIAdwAxADAAXAB0AHIAYgByAGQAcgBoAFwAYgByAGQAcgBzAFwAYgByAGQAcgB3ADEAMABcAHQAcgBiAHIAZAByAHYAXABiAHIAZAByAHMAXABiAHIAZAByAHcAMQAwAFwAdABzAGMAZQBsAGwAcABhAGQAZABmAGwAMwBcAHQAcwBjAGUAbABsAHAAYQBkAGQAbAAxADAAOABcAHQAcwBjAGUAbABsAHAAYQBkAGQAZgByADMAXAB0AHMAYwBlAGwAbABwAGEAZABkAHIAMQAwADgAXAB0AHMAdgBlAHIAdABhAGwAdABcAGMAbAB0AHgAbAByAHQAYgAgAFQAYQBiAGwAZQAgAFMAaQBtAHAAbABlACAAMQA7AH0AfQB7AFwAKgBcAGwAaQBzAHQAbwB2AGUAcgByAGkAZABlAHQAYQBiAGwAZQB9AFwAbgBvAHUAaQBjAG8AbQBwAGEAdABcAHMAcABsAHkAdAB3AG4AaQBuAGUAXABoAHQAbQBhAHUAdABzAHAAXABwAGEAcgBkAFwAcABsAGEAaQBuAFwAcQBsAHsAXABsAGEAbgBnADEAMAAzADEAXABsAGEAbgBnAGYAZQAxADAAMwAxAFwAZgAyAFwAZgBzADEANABcAGMAZgAxACAARwBlAHMAYwBoAH0AewBcAGwAYQBuAGcAMQAwADMAMQBcAGwAYQBuAGcAZgBlADEAMAAzADEAXABmADIAXABmAHMAMQA0AFwAYwBmADEAIABcAHUAMgAyADgAXAAnAGUANABmAHQAcwBmAFwAdQAyADUAMgBcACcAZgBjAGgAcgBlAHIAaQBuADoAfQBcAGwAYQBuAGcAMQAwADMAMQBcAGwAYQBuAGcAZgBlADEAMAAzADEAXABmADIAXABmAHMAMQA0AFwAYwBmADEAXABwAGEAcgBcAHAAYQByAGQAXABwAGwAYQBpAG4AXABxAGwAewBcAGwAYQBuAGcAMQAwADMAMQBcAGwAYQBuAGcAZgBlADEAMAAzADEAXABmADIAXABmAHMAMQA0AFwAYwBmADEAIABTAHUAbAB0AGEAbgAgAFMAYwBoAHUAbAB6AH0AXABsAGEAbgBnADEAMAAzADEAXABsAGEAbgBnAGYAZQAxADAAMwAxAFwAZgAyAFwAZgBzADEANABcAGMAZgAxAFwAcABhAHIAXABwAGEAcgBkAFwAcABsAGEAaQBuAFwAcQBsAHsAXABsAGEAbgBnADEAMAAzADEAXABsAGEAbgBnAGYAZQAxADAAMwAxAFwAZgAyAFwAZgBzADEANABcAGMAZgAxACAAKABNAH0AewBcAGwAYQBuAGcAMQAwADMAMQBcAGwAYQBuAGcAZgBlADEAMAAzADEAXABmADIAXABmAHMAMQA0AFwAYwBmADEAIAAuAEEALgApAH0AXABsAGEAbgBnADEAMAAzADEAXABsAGEAbgBnAGYAZQAxADAAMwAxAFwAZgAxAFwAZgBzADIANABcAGMAZgAxAFwAcABhAHIAfQA=
+
+
+ ewBcAHIAdABmADEAXABkAGUAZgBmADAAewBcAGYAbwBuAHQAdABiAGwAewBcAGYAMAAgAEMAYQBsAGkAYgByAGkAOwB9AHsAXABmADEAIABUAGkAbQBlAHMAIABOAGUAdwAgAFIAbwBtAGEAbgA7AH0AewBcAGYAMgAgAEEAcgBpAGEAbAA7AH0AfQB7AFwAYwBvAGwAbwByAHQAYgBsACAAOwBcAHIAZQBkADAAXABnAHIAZQBlAG4AMABcAGIAbAB1AGUAMAAgADsAXAByAGUAZAAwAFwAZwByAGUAZQBuADAAXABiAGwAdQBlADIANQA1ACAAOwB9AHsAXAAqAFwAZABlAGYAYwBoAHAAIABcAGYAMQBcAGYAcwAyADQAfQB7AFwAcwB0AHkAbABlAHMAaABlAGUAdAAgAHsAXABxAGwAXABmADEAXABmAHMAMgA0ACAATgBvAHIAbQBhAGwAOwB9AHsAXAAqAFwAYwBzADEAXABmADEAXABmAHMAMgA0AFwAYwBmADEAIABEAGUAZgBhAHUAbAB0ACAAUABhAHIAYQBnAHIAYQBwAGgAIABGAG8AbgB0ADsAfQB7AFwAKgBcAGMAcwAyAFwAcwBiAGEAcwBlAGQAbwBuADEAXABmADEAXABmAHMAMgA0AFwAYwBmADEAIABMAGkAbgBlACAATgB1AG0AYgBlAHIAOwB9AHsAXAAqAFwAYwBzADMAXAB1AGwAXABmADEAXABmAHMAMgA0AFwAYwBmADIAIABIAHkAcABlAHIAbABpAG4AawA7AH0AewBcACoAXAB0AHMANABcAHQAcwByAG8AdwBkAFwAZgAxAFwAZgBzADIANABcAHEAbABcAHQAcwBjAGUAbABsAHAAYQBkAGQAZgBsADMAXAB0AHMAYwBlAGwAbABwAGEAZABkAGwAMQAwADgAXAB0AHMAYwBlAGwAbABwAGEAZABkAGYAYgAzAFwAdABzAGMAZQBsAGwAcABhAGQAZABmAHIAMwBcAHQAcwBjAGUAbABsAHAAYQBkAGQAcgAxADAAOABcAHQAcwBjAGUAbABsAHAAYQBkAGQAZgB0ADMAXAB0AHMAdgBlAHIAdABhAGwAdABcAGMAbAB0AHgAbAByAHQAYgAgAE4AbwByAG0AYQBsACAAVABhAGIAbABlADsAfQB7AFwAKgBcAHQAcwA1AFwAdABzAHIAbwB3AGQAXABzAGIAYQBzAGUAZABvAG4ANABcAGYAMQBcAGYAcwAyADQAXABxAGwAXAB0AHIAYgByAGQAcgB0AFwAYgByAGQAcgBzAFwAYgByAGQAcgB3ADEAMABcAHQAcgBiAHIAZAByAGwAXABiAHIAZAByAHMAXABiAHIAZAByAHcAMQAwAFwAdAByAGIAcgBkAHIAYgBcAGIAcgBkAHIAcwBcAGIAcgBkAHIAdwAxADAAXAB0AHIAYgByAGQAcgByAFwAYgByAGQAcgBzAFwAYgByAGQAcgB3ADEAMABcAHQAcgBiAHIAZAByAGgAXABiAHIAZAByAHMAXABiAHIAZAByAHcAMQAwAFwAdAByAGIAcgBkAHIAdgBcAGIAcgBkAHIAcwBcAGIAcgBkAHIAdwAxADAAXAB0AHMAYwBlAGwAbABwAGEAZABkAGYAbAAzAFwAdABzAGMAZQBsAGwAcABhAGQAZABsADEAMAA4AFwAdABzAGMAZQBsAGwAcABhAGQAZABmAHIAMwBcAHQAcwBjAGUAbABsAHAAYQBkAGQAcgAxADAAOABcAHQAcwB2AGUAcgB0AGEAbAB0AFwAYwBsAHQAeABsAHIAdABiACAAVABhAGIAbABlACAAUwBpAG0AcABsAGUAIAAxADsAfQB9AHsAXAAqAFwAbABpAHMAdABvAHYAZQByAHIAaQBkAGUAdABhAGIAbABlAH0AXABuAG8AdQBpAGMAbwBtAHAAYQB0AFwAcwBwAGwAeQB0AHcAbgBpAG4AZQBcAGgAdABtAGEAdQB0AHMAcABcAHAAYQByAGQAXABwAGwAYQBpAG4AXABxAGwAewBcAGYAMgBcAGYAcwAyADAAXABjAGYAMQAgAEsAZQBpAG4AZQAgAH0AewBcAGwAYQBuAGcAMQAwADMAMQBcAGwAYQBuAGcAZgBlADEAMAAzADEAXAB1AGwAXABmADIAXABmAHMAMgAwAFwAYwBmADEAIABLAHIAYQBuAGsAZQBuAGgAYQB1AHMAYQB1AGYAZQBuAHQAaABhAGwAdABlAH0AXABsAGEAbgBnADEAMAAzADEAXABsAGEAbgBnAGYAZQAxADAAMwAxAFwAdQBsAFwAZgAyAFwAZgBzADIAMABcAGMAZgAxAFwAcABhAHIAXABwAGEAcgBkAFwAcABsAGEAaQBuAFwAcQBsAHsAXABsAGEAbgBnADEAMAAzADEAXABsAGEAbgBnAGYAZQAxADAAMwAxAFwAdQBsAFwAZgAyAFwAZgBzADIAMABcAGMAZgAxACAAYgBlAGsAYQBuAG4AdAAgAG8AZABlAHIAIAB9AFwAbABhAG4AZwAxADAAMwAxAFwAbABhAG4AZwBmAGUAMQAwADMAMQBcAHUAbABcAGYAMgBcAGYAcwAyADAAXABjAGYAMQBcAHAAYQByAFwAcABhAHIAZABcAHAAbABhAGkAbgBcAHEAbAB7AFwAbABhAG4AZwAxADAAMwAxAFwAbABhAG4AZwBmAGUAMQAwADMAMQBcAHUAbABcAGYAMgBcAGYAcwAyADAAXABjAGYAMQAgAGEAYgByAGUAYwBoAG4AdQBuAGcAcwByAGUAbABlAHYAYQBuAHQAfQB7AFwAbABhAG4AZwAxADAAMwAxAFwAbABhAG4AZwBmAGUAMQAwADMAMQBcAGYAMgBcAGYAcwAyADAAXABjAGYAMQAgACAAaQBtACAAQQBiAHIAZQBjAGgAbgB1AG4AZwBzAHoAZQBpAHQAcgBhAHUAbQB9AFwAbABhAG4AZwAxADAAMwAxAFwAbABhAG4AZwBmAGUAMQAwADMAMQBcAGYAMQBcAGYAcwAyADQAXABjAGYAMQBcAHAAYQByAH0A
+
+
+ ewBcAHIAdABmADEAXABkAGUAZgBmADAAewBcAGYAbwBuAHQAdABiAGwAewBcAGYAMAAgAEMAYQBsAGkAYgByAGkAOwB9AHsAXABmADEAIABUAGkAbQBlAHMAIABOAGUAdwAgAFIAbwBtAGEAbgA7AH0AewBcAGYAMgAgAEEAcgBpAGEAbAA7AH0AfQB7AFwAYwBvAGwAbwByAHQAYgBsACAAOwBcAHIAZQBkADAAXABnAHIAZQBlAG4AMABcAGIAbAB1AGUAMAAgADsAXAByAGUAZAAwAFwAZwByAGUAZQBuADAAXABiAGwAdQBlADIANQA1ACAAOwB9AHsAXAAqAFwAZABlAGYAYwBoAHAAIABcAGYAMQBcAGYAcwAyADQAfQB7AFwAcwB0AHkAbABlAHMAaABlAGUAdAAgAHsAXABxAGwAXABmADEAXABmAHMAMgA0ACAATgBvAHIAbQBhAGwAOwB9AHsAXAAqAFwAYwBzADEAXABmADEAXABmAHMAMgA0AFwAYwBmADEAIABEAGUAZgBhAHUAbAB0ACAAUABhAHIAYQBnAHIAYQBwAGgAIABGAG8AbgB0ADsAfQB7AFwAKgBcAGMAcwAyAFwAcwBiAGEAcwBlAGQAbwBuADEAXABmADEAXABmAHMAMgA0AFwAYwBmADEAIABMAGkAbgBlACAATgB1AG0AYgBlAHIAOwB9AHsAXAAqAFwAYwBzADMAXAB1AGwAXABmADEAXABmAHMAMgA0AFwAYwBmADIAIABIAHkAcABlAHIAbABpAG4AawA7AH0AewBcACoAXAB0AHMANABcAHQAcwByAG8AdwBkAFwAZgAxAFwAZgBzADIANABcAHEAbABcAHQAcwBjAGUAbABsAHAAYQBkAGQAZgBsADMAXAB0AHMAYwBlAGwAbABwAGEAZABkAGwAMQAwADgAXAB0AHMAYwBlAGwAbABwAGEAZABkAGYAYgAzAFwAdABzAGMAZQBsAGwAcABhAGQAZABmAHIAMwBcAHQAcwBjAGUAbABsAHAAYQBkAGQAcgAxADAAOABcAHQAcwBjAGUAbABsAHAAYQBkAGQAZgB0ADMAXAB0AHMAdgBlAHIAdABhAGwAdABcAGMAbAB0AHgAbAByAHQAYgAgAE4AbwByAG0AYQBsACAAVABhAGIAbABlADsAfQB7AFwAKgBcAHQAcwA1AFwAdABzAHIAbwB3AGQAXABzAGIAYQBzAGUAZABvAG4ANABcAGYAMQBcAGYAcwAyADQAXABxAGwAXAB0AHIAYgByAGQAcgB0AFwAYgByAGQAcgBzAFwAYgByAGQAcgB3ADEAMABcAHQAcgBiAHIAZAByAGwAXABiAHIAZAByAHMAXABiAHIAZAByAHcAMQAwAFwAdAByAGIAcgBkAHIAYgBcAGIAcgBkAHIAcwBcAGIAcgBkAHIAdwAxADAAXAB0AHIAYgByAGQAcgByAFwAYgByAGQAcgBzAFwAYgByAGQAcgB3ADEAMABcAHQAcgBiAHIAZAByAGgAXABiAHIAZAByAHMAXABiAHIAZAByAHcAMQAwAFwAdAByAGIAcgBkAHIAdgBcAGIAcgBkAHIAcwBcAGIAcgBkAHIAdwAxADAAXAB0AHMAYwBlAGwAbABwAGEAZABkAGYAbAAzAFwAdABzAGMAZQBsAGwAcABhAGQAZABsADEAMAA4AFwAdABzAGMAZQBsAGwAcABhAGQAZABmAHIAMwBcAHQAcwBjAGUAbABsAHAAYQBkAGQAcgAxADAAOABcAHQAcwB2AGUAcgB0AGEAbAB0AFwAYwBsAHQAeABsAHIAdABiACAAVABhAGIAbABlACAAUwBpAG0AcABsAGUAIAAxADsAfQB9AHsAXAAqAFwAbABpAHMAdABvAHYAZQByAHIAaQBkAGUAdABhAGIAbABlAH0AXABuAG8AdQBpAGMAbwBtAHAAYQB0AFwAcwBwAGwAeQB0AHcAbgBpAG4AZQBcAGgAdABtAGEAdQB0AHMAcABcAHAAYQByAGQAXABwAGwAYQBpAG4AXABxAGwAewBcAGYAMgBcAGYAcwAyADAAXABjAGYAMQAgAEsAZQBpAG4AZQAgAH0AewBcAHUAbABcAGYAMgBcAGYAcwAyADAAXABjAGYAMQAgAEcAcgB1AHAAcABlAG4AYQBuAGcAZQBiAG8AdABlAH0AewBcAGYAMgBcAGYAcwAyADAAXABjAGYAMQAgACAAaQBtACAAQQBiAHIAZQBjAGgAbgB1AG4AZwBzAHoAZQBpAHQAcgBhAHUAbQB9AFwAZgAxAFwAZgBzADIANABcAGMAZgAxAFwAcABhAHIAfQA=
+
+
\ No newline at end of file
diff --git a/ReportImp/Bewolonia/SettlementReport.Designer.cs b/ReportImp/Bewolonia/SettlementReport.Designer.cs
new file mode 100644
index 000000000..6dda2bd82
--- /dev/null
+++ b/ReportImp/Bewolonia/SettlementReport.Designer.cs
@@ -0,0 +1,1370 @@
+namespace Bewolonia
+{
+ partial class Spitzabrechnung
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Spitzabrechnung));
+ this.Detail = new DevExpress.XtraReports.UI.DetailBand();
+ this.ReportHeader = new DevExpress.XtraReports.UI.ReportHeaderBand();
+ this.xrLabel8 = new DevExpress.XtraReports.UI.XRLabel();
+ this.xrTable1 = new DevExpress.XtraReports.UI.XRTable();
+ this.xrTableRow9 = new DevExpress.XtraReports.UI.XRTableRow();
+ this.xrTableCell19 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableCell6 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableRow10 = new DevExpress.XtraReports.UI.XRTableRow();
+ this.xrTableCell20 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.ruleRateFactorNull = new DevExpress.XtraReports.UI.FormattingRule();
+ this.xrTableCell7 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableRow11 = new DevExpress.XtraReports.UI.XRTableRow();
+ this.xrTableCell21 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.rowErbrachteLeistung = new DevExpress.XtraReports.UI.XRTableRow();
+ this.xrTableCell22 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrLabel6 = new DevExpress.XtraReports.UI.XRLabel();
+ this.xrLabel5 = new DevExpress.XtraReports.UI.XRLabel();
+ this.xrLabel4 = new DevExpress.XtraReports.UI.XRLabel();
+ this.xrLabel3 = new DevExpress.XtraReports.UI.XRLabel();
+ this.xrLabel2 = new DevExpress.XtraReports.UI.XRLabel();
+ this.xrTable2 = new DevExpress.XtraReports.UI.XRTable();
+ this.xrTableRow5 = new DevExpress.XtraReports.UI.XRTableRow();
+ this.xrTableCell13 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableRow4 = new DevExpress.XtraReports.UI.XRTableRow();
+ this.xrTableCell11 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableRow3 = new DevExpress.XtraReports.UI.XRTableRow();
+ this.xrTableCell8 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableRow1 = new DevExpress.XtraReports.UI.XRTableRow();
+ this.xrTableCell1 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableRow6 = new DevExpress.XtraReports.UI.XRTableRow();
+ this.xrTableCell2 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableRow8 = new DevExpress.XtraReports.UI.XRTableRow();
+ this.xrTableCell5 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.RecipientPostCodeAndTown = new DevExpress.XtraReports.UI.XRLabel();
+ this.xrLabel_RecipientStreet = new DevExpress.XtraReports.UI.XRLabel();
+ this.xrLabel_RecipientDivision = new DevExpress.XtraReports.UI.XRLabel();
+ this.xrLabel_RecipientContactPerson = new DevExpress.XtraReports.UI.XRLabel();
+ this.xrLabel1 = new DevExpress.XtraReports.UI.XRLabel();
+ this.ReportFooter = new DevExpress.XtraReports.UI.ReportFooterBand();
+ this.xrLabel10 = new DevExpress.XtraReports.UI.XRLabel();
+ this.xrTable3 = new DevExpress.XtraReports.UI.XRTable();
+ this.xrTableRow20 = new DevExpress.XtraReports.UI.XRTableRow();
+ this.xrTableCell16 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableRow21 = new DevExpress.XtraReports.UI.XRTableRow();
+ this.xrTableCell18 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableRow22 = new DevExpress.XtraReports.UI.XRTableRow();
+ this.xrTableCell29 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableRow23 = new DevExpress.XtraReports.UI.XRTableRow();
+ this.xrTableCell30 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableRow24 = new DevExpress.XtraReports.UI.XRTableRow();
+ this.xrTableCell31 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrLabel12 = new DevExpress.XtraReports.UI.XRLabel();
+ this.xrLabel11 = new DevExpress.XtraReports.UI.XRLabel();
+ this.lblNotice = new DevExpress.XtraReports.UI.XRLabel();
+ this.topMarginBand1 = new DevExpress.XtraReports.UI.TopMarginBand();
+ this.bottomMarginBand1 = new DevExpress.XtraReports.UI.BottomMarginBand();
+ this.GroupHeader1 = new DevExpress.XtraReports.UI.GroupHeaderBand();
+ this.DetailReport = new DevExpress.XtraReports.UI.DetailReportBand();
+ this.Detail1 = new DevExpress.XtraReports.UI.DetailBand();
+ this.xrTable5 = new DevExpress.XtraReports.UI.XRTable();
+ this.xrTableRow15 = new DevExpress.XtraReports.UI.XRTableRow();
+ this.xrTableCell17 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableCell23 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.GroupFooter1 = new DevExpress.XtraReports.UI.GroupFooterBand();
+ this.xrTable4 = new DevExpress.XtraReports.UI.XRTable();
+ this.xrTableRow30 = new DevExpress.XtraReports.UI.XRTableRow();
+ this.xrTableCell48 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableRow31 = new DevExpress.XtraReports.UI.XRTableRow();
+ this.xrTableCell49 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableCell50 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableRow32 = new DevExpress.XtraReports.UI.XRTableRow();
+ this.xrTableCell51 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableRow33 = new DevExpress.XtraReports.UI.XRTableRow();
+ this.xrTableCell52 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableCell53 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableRow34 = new DevExpress.XtraReports.UI.XRTableRow();
+ this.xrTableCell54 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableCell55 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableRow35 = new DevExpress.XtraReports.UI.XRTableRow();
+ this.xrTableCell56 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableRow36 = new DevExpress.XtraReports.UI.XRTableRow();
+ this.xrTableCell57 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableCell58 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrPictureBox1 = new DevExpress.XtraReports.UI.XRPictureBox();
+ this.xrLabel7 = new DevExpress.XtraReports.UI.XRLabel();
+ this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
+ this.xrTable6 = new DevExpress.XtraReports.UI.XRTable();
+ this.xrTableRow2 = new DevExpress.XtraReports.UI.XRTableRow();
+ this.xrTableCell3 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableRow7 = new DevExpress.XtraReports.UI.XRTableRow();
+ this.xrTableCell4 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableRow12 = new DevExpress.XtraReports.UI.XRTableRow();
+ this.xrTableCell9 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableRow13 = new DevExpress.XtraReports.UI.XRTableRow();
+ this.xrTableCell10 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableRow14 = new DevExpress.XtraReports.UI.XRTableRow();
+ this.xrTableCell12 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrTableRow16 = new DevExpress.XtraReports.UI.XRTableRow();
+ this.xrTableCell14 = new DevExpress.XtraReports.UI.XRTableCell();
+ this.xrLabel9 = new DevExpress.XtraReports.UI.XRLabel();
+ this.xrRichText1 = new DevExpress.XtraReports.UI.XRRichText();
+ this.xrRichText2 = new DevExpress.XtraReports.UI.XRRichText();
+ this.xrRichText3 = new DevExpress.XtraReports.UI.XRRichText();
+ this.xrRichText4 = new DevExpress.XtraReports.UI.XRRichText();
+ ((System.ComponentModel.ISupportInitialize)(this.xrTable1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.xrTable2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.xrTable3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.xrTable5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.xrTable4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.xrTable6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.xrRichText1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.xrRichText2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.xrRichText3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.xrRichText4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this)).BeginInit();
+ //
+ // Detail
+ //
+ this.Detail.HeightF = 0F;
+ this.Detail.Name = "Detail";
+ this.Detail.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F);
+ this.Detail.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
+ //
+ // ReportHeader
+ //
+ this.ReportHeader.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
+ this.xrLabel7,
+ this.xrPictureBox1});
+ this.ReportHeader.Font = new System.Drawing.Font("Verdana", 10F);
+ this.ReportHeader.HeightF = 159.5833F;
+ this.ReportHeader.Name = "ReportHeader";
+ this.ReportHeader.StylePriority.UseFont = false;
+ //
+ // xrLabel8
+ //
+ this.xrLabel8.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
+ new DevExpress.XtraReports.UI.XRBinding("Text", null, "InvoiceDate")});
+ this.xrLabel8.Font = new System.Drawing.Font("Verdana", 8F);
+ this.xrLabel8.LocationFloat = new DevExpress.Utils.PointFloat(495.9049F, 145.9345F);
+ this.xrLabel8.Name = "xrLabel8";
+ this.xrLabel8.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrLabel8.SizeF = new System.Drawing.SizeF(140.9585F, 22.99998F);
+ this.xrLabel8.StylePriority.UseFont = false;
+ this.xrLabel8.StylePriority.UseTextAlignment = false;
+ this.xrLabel8.Text = "xrLabel8";
+ this.xrLabel8.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
+ //
+ // xrTable1
+ //
+ this.xrTable1.BorderColor = System.Drawing.SystemColors.ControlLight;
+ this.xrTable1.LocationFloat = new DevExpress.Utils.PointFloat(0F, 375.3333F);
+ this.xrTable1.Name = "xrTable1";
+ this.xrTable1.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
+ this.xrTableRow9,
+ this.xrTableRow10,
+ this.xrTableRow11,
+ this.rowErbrachteLeistung});
+ this.xrTable1.SizeF = new System.Drawing.SizeF(650F, 68F);
+ this.xrTable1.StylePriority.UseBorderColor = false;
+ //
+ // xrTableRow9
+ //
+ this.xrTableRow9.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
+ this.xrTableCell19,
+ this.xrTableCell6});
+ this.xrTableRow9.Name = "xrTableRow9";
+ this.xrTableRow9.Weight = 0.085D;
+ //
+ // xrTableCell19
+ //
+ this.xrTableCell19.BorderColor = System.Drawing.SystemColors.ControlLight;
+ this.xrTableCell19.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)));
+ this.xrTableCell19.Name = "xrTableCell19";
+ this.xrTableCell19.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrTableCell19.StylePriority.UseBorderColor = false;
+ this.xrTableCell19.StylePriority.UseBorders = false;
+ this.xrTableCell19.StylePriority.UseFont = false;
+ this.xrTableCell19.Text = "Bewilligte Fachleistungsstunden (FLS) gesamt:";
+ this.xrTableCell19.Weight = 0.78314100999098568D;
+ //
+ // xrTableCell6
+ //
+ this.xrTableCell6.BorderColor = System.Drawing.SystemColors.ControlLight;
+ this.xrTableCell6.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)));
+ this.xrTableCell6.Font = new System.Drawing.Font("Verdana", 10F, System.Drawing.FontStyle.Bold);
+ this.xrTableCell6.Name = "xrTableCell6";
+ this.xrTableCell6.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrTableCell6.StylePriority.UseBorderColor = false;
+ this.xrTableCell6.StylePriority.UseBorders = false;
+ this.xrTableCell6.StylePriority.UseFont = false;
+ this.xrTableCell6.StylePriority.UseTextAlignment = false;
+ this.xrTableCell6.Text = "[ApprovedFLS]";
+ this.xrTableCell6.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
+ this.xrTableCell6.Weight = 0.21685899000901443D;
+ //
+ // xrTableRow10
+ //
+ this.xrTableRow10.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
+ this.xrTableCell20,
+ this.xrTableCell7});
+ this.xrTableRow10.FormattingRules.Add(this.ruleRateFactorNull);
+ this.xrTableRow10.Name = "xrTableRow10";
+ this.xrTableRow10.Weight = 0.085D;
+ //
+ // xrTableCell20
+ //
+ this.xrTableCell20.BorderColor = System.Drawing.SystemColors.ControlLight;
+ this.xrTableCell20.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)));
+ this.xrTableCell20.FormattingRules.Add(this.ruleRateFactorNull);
+ this.xrTableCell20.Name = "xrTableCell20";
+ this.xrTableCell20.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrTableCell20.StylePriority.UseBorderColor = false;
+ this.xrTableCell20.StylePriority.UseBorders = false;
+ this.xrTableCell20.StylePriority.UseFont = false;
+ this.xrTableCell20.Text = "- zzgl. Faktor [RateFactorText2]:";
+ this.xrTableCell20.Weight = 0.78314100999098568D;
+ //
+ // ruleRateFactorNull
+ //
+ this.ruleRateFactorNull.Condition = "[RateFactorText2] == ?";
+ this.ruleRateFactorNull.Formatting.Visible = DevExpress.Utils.DefaultBoolean.False;
+ this.ruleRateFactorNull.Name = "ruleRateFactorNull";
+ //
+ // xrTableCell7
+ //
+ this.xrTableCell7.BorderColor = System.Drawing.SystemColors.ControlLight;
+ this.xrTableCell7.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)));
+ this.xrTableCell7.Font = new System.Drawing.Font("Verdana", 10F, System.Drawing.FontStyle.Bold);
+ this.xrTableCell7.FormattingRules.Add(this.ruleRateFactorNull);
+ 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.UseTextAlignment = false;
+ this.xrTableCell7.Text = "[ApprovedFLSWithFactor]";
+ this.xrTableCell7.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
+ this.xrTableCell7.Weight = 0.21685899000901443D;
+ //
+ // xrTableRow11
+ //
+ this.xrTableRow11.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
+ this.xrTableCell21});
+ this.xrTableRow11.Name = "xrTableRow11";
+ this.xrTableRow11.Weight = 0.085D;
+ //
+ // xrTableCell21
+ //
+ this.xrTableCell21.BorderColor = System.Drawing.SystemColors.ControlLight;
+ this.xrTableCell21.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
+ | DevExpress.XtraPrinting.BorderSide.Right)));
+ this.xrTableCell21.Name = "xrTableCell21";
+ this.xrTableCell21.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrTableCell21.StylePriority.UseBorderColor = false;
+ this.xrTableCell21.StylePriority.UseBorders = false;
+ this.xrTableCell21.Weight = 1D;
+ //
+ // rowErbrachteLeistung
+ //
+ this.rowErbrachteLeistung.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
+ this.xrTableCell22});
+ this.rowErbrachteLeistung.Name = "rowErbrachteLeistung";
+ this.rowErbrachteLeistung.Weight = 0.085D;
+ //
+ // xrTableCell22
+ //
+ this.xrTableCell22.BorderColor = System.Drawing.SystemColors.ControlLight;
+ this.xrTableCell22.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.xrTableCell22.Name = "xrTableCell22";
+ this.xrTableCell22.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrTableCell22.StylePriority.UseBorderColor = false;
+ this.xrTableCell22.StylePriority.UseBorders = false;
+ this.xrTableCell22.StylePriority.UseFont = false;
+ this.xrTableCell22.Text = "Erbrachte Leistungen:";
+ this.xrTableCell22.Weight = 1D;
+ //
+ // xrLabel6
+ //
+ this.xrLabel6.LocationFloat = new DevExpress.Utils.PointFloat(0F, 300.3333F);
+ 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.StylePriority.UseFont = false;
+ this.xrLabel6.Text = resources.GetString("xrLabel6.Text");
+ //
+ // xrLabel5
+ //
+ this.xrLabel5.LocationFloat = new DevExpress.Utils.PointFloat(0F, 267.3333F);
+ this.xrLabel5.Name = "xrLabel5";
+ this.xrLabel5.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrLabel5.SizeF = new System.Drawing.SizeF(317F, 17F);
+ this.xrLabel5.StylePriority.UseFont = false;
+ this.xrLabel5.Text = "Sehr geehrte Damen und Herren,";
+ //
+ // xrLabel4
+ //
+ this.xrLabel4.BackColor = System.Drawing.Color.Transparent;
+ this.xrLabel4.CanShrink = true;
+ this.xrLabel4.Font = new System.Drawing.Font("Verdana", 10F, System.Drawing.FontStyle.Bold);
+ this.xrLabel4.LocationFloat = new DevExpress.Utils.PointFloat(0F, 225F);
+ 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 = "[CustomerReferenceNumberAndDate]";
+ this.xrLabel4.WordWrap = false;
+ //
+ // xrLabel3
+ //
+ this.xrLabel3.BackColor = System.Drawing.Color.Transparent;
+ this.xrLabel3.CanShrink = true;
+ this.xrLabel3.Font = new System.Drawing.Font("Verdana", 10F, System.Drawing.FontStyle.Bold);
+ this.xrLabel3.LocationFloat = new DevExpress.Utils.PointFloat(0F, 209F);
+ this.xrLabel3.Name = "xrLabel3";
+ this.xrLabel3.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrLabel3.SizeF = new System.Drawing.SizeF(650F, 16F);
+ this.xrLabel3.StylePriority.UseBackColor = false;
+ this.xrLabel3.StylePriority.UseFont = false;
+ this.xrLabel3.Text = "Abrechnung Betreuungsleistungen für [Salutation2] [CustomerName]";
+ this.xrLabel3.WordWrap = false;
+ //
+ // xrLabel2
+ //
+ this.xrLabel2.BackColor = System.Drawing.Color.Transparent;
+ this.xrLabel2.CanShrink = true;
+ this.xrLabel2.Font = new System.Drawing.Font("Verdana", 10F, System.Drawing.FontStyle.Bold);
+ this.xrLabel2.LocationFloat = new DevExpress.Utils.PointFloat(0F, 192F);
+ this.xrLabel2.Name = "xrLabel2";
+ this.xrLabel2.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrLabel2.SizeF = new System.Drawing.SizeF(650F, 17F);
+ this.xrLabel2.StylePriority.UseBackColor = false;
+ this.xrLabel2.StylePriority.UseFont = false;
+ this.xrLabel2.Text = "Rechnung Nr. [InvoiceNumber]";
+ this.xrLabel2.WordWrap = false;
+ //
+ // xrTable2
+ //
+ this.xrTable2.Font = new System.Drawing.Font("Verdana", 8F);
+ this.xrTable2.LocationFloat = new DevExpress.Utils.PointFloat(495.9049F, 19.99998F);
+ this.xrTable2.Name = "xrTable2";
+ this.xrTable2.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
+ this.xrTableRow5,
+ this.xrTableRow4,
+ this.xrTableRow3,
+ this.xrTableRow1,
+ this.xrTableRow6,
+ this.xrTableRow8});
+ this.xrTable2.SizeF = new System.Drawing.SizeF(182.0951F, 114F);
+ this.xrTable2.StylePriority.UseFont = false;
+ this.xrTable2.StylePriority.UseTextAlignment = false;
+ this.xrTable2.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
+ //
+ // xrTableRow5
+ //
+ this.xrTableRow5.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
+ this.xrTableCell13});
+ this.xrTableRow5.Name = "xrTableRow5";
+ this.xrTableRow5.Weight = 0.13245033112582783D;
+ //
+ // xrTableCell13
+ //
+ this.xrTableCell13.CanShrink = true;
+ this.xrTableCell13.Name = "xrTableCell13";
+ this.xrTableCell13.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrTableCell13.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink;
+ this.xrTableCell13.StylePriority.UseFont = false;
+ this.xrTableCell13.StylePriority.UseTextAlignment = false;
+ this.xrTableCell13.Text = "[SenderContactPerson]";
+ this.xrTableCell13.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
+ this.xrTableCell13.Weight = 1D;
+ //
+ // xrTableRow4
+ //
+ this.xrTableRow4.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
+ this.xrTableCell11});
+ this.xrTableRow4.Name = "xrTableRow4";
+ this.xrTableRow4.Weight = 0.13245033112582783D;
+ //
+ // xrTableCell11
+ //
+ this.xrTableCell11.CanShrink = true;
+ this.xrTableCell11.Name = "xrTableCell11";
+ this.xrTableCell11.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrTableCell11.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink;
+ this.xrTableCell11.StylePriority.UseFont = false;
+ this.xrTableCell11.StylePriority.UseTextAlignment = false;
+ this.xrTableCell11.Text = "[SenderContactPersonDivision]";
+ this.xrTableCell11.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
+ this.xrTableCell11.Weight = 1D;
+ //
+ // xrTableRow3
+ //
+ this.xrTableRow3.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
+ this.xrTableCell8});
+ this.xrTableRow3.Name = "xrTableRow3";
+ this.xrTableRow3.Weight = 0.13245033112582783D;
+ //
+ // xrTableCell8
+ //
+ this.xrTableCell8.CanShrink = true;
+ this.xrTableCell8.Name = "xrTableCell8";
+ this.xrTableCell8.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrTableCell8.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink;
+ this.xrTableCell8.StylePriority.UseFont = false;
+ this.xrTableCell8.StylePriority.UseTextAlignment = false;
+ this.xrTableCell8.Text = "[SenderContactPersonPhone]";
+ this.xrTableCell8.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
+ this.xrTableCell8.Weight = 1D;
+ //
+ // xrTableRow1
+ //
+ this.xrTableRow1.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
+ this.xrTableCell1});
+ this.xrTableRow1.Name = "xrTableRow1";
+ this.xrTableRow1.Weight = 0.13245033112582783D;
+ //
+ // xrTableCell1
+ //
+ this.xrTableCell1.CanShrink = true;
+ this.xrTableCell1.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
+ new DevExpress.XtraReports.UI.XRBinding("Text", null, "SenderContactPersonFax")});
+ this.xrTableCell1.Name = "xrTableCell1";
+ this.xrTableCell1.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrTableCell1.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink;
+ this.xrTableCell1.StylePriority.UseFont = false;
+ this.xrTableCell1.StylePriority.UseTextAlignment = false;
+ this.xrTableCell1.Text = "[SenderContactPersonPhone]";
+ this.xrTableCell1.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
+ this.xrTableCell1.Weight = 1D;
+ //
+ // xrTableRow6
+ //
+ this.xrTableRow6.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
+ this.xrTableCell2});
+ this.xrTableRow6.Name = "xrTableRow6";
+ this.xrTableRow6.Weight = 0.11258278145695365D;
+ //
+ // xrTableCell2
+ //
+ this.xrTableCell2.CanShrink = true;
+ this.xrTableCell2.Name = "xrTableCell2";
+ this.xrTableCell2.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrTableCell2.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink;
+ this.xrTableCell2.StylePriority.UseFont = false;
+ this.xrTableCell2.StylePriority.UseTextAlignment = false;
+ this.xrTableCell2.Text = "[SenderContactPersonMail]";
+ this.xrTableCell2.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
+ this.xrTableCell2.Weight = 1D;
+ //
+ // xrTableRow8
+ //
+ this.xrTableRow8.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
+ this.xrTableCell5});
+ this.xrTableRow8.Name = "xrTableRow8";
+ this.xrTableRow8.Weight = 0.11258278145695365D;
+ //
+ // xrTableCell5
+ //
+ this.xrTableCell5.Name = "xrTableCell5";
+ this.xrTableCell5.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrTableCell5.Text = "www.bewolonia.de";
+ this.xrTableCell5.Weight = 1D;
+ //
+ // RecipientPostCodeAndTown
+ //
+ this.RecipientPostCodeAndTown.CanShrink = true;
+ this.RecipientPostCodeAndTown.LocationFloat = new DevExpress.Utils.PointFloat(1.444961E-05F, 87.99998F);
+ this.RecipientPostCodeAndTown.Name = "RecipientPostCodeAndTown";
+ this.RecipientPostCodeAndTown.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.RecipientPostCodeAndTown.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink;
+ this.RecipientPostCodeAndTown.SizeF = new System.Drawing.SizeF(292F, 17F);
+ this.RecipientPostCodeAndTown.StylePriority.UseFont = false;
+ this.RecipientPostCodeAndTown.Text = "[RecipientPostCodeAndTown]";
+ //
+ // xrLabel_RecipientStreet
+ //
+ this.xrLabel_RecipientStreet.CanShrink = true;
+ this.xrLabel_RecipientStreet.LocationFloat = new DevExpress.Utils.PointFloat(1.444961E-05F, 71.00001F);
+ this.xrLabel_RecipientStreet.Name = "xrLabel_RecipientStreet";
+ this.xrLabel_RecipientStreet.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrLabel_RecipientStreet.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink;
+ this.xrLabel_RecipientStreet.SizeF = new System.Drawing.SizeF(292F, 17F);
+ this.xrLabel_RecipientStreet.StylePriority.UseFont = false;
+ this.xrLabel_RecipientStreet.Text = "[RecipientStreet]";
+ //
+ // xrLabel_RecipientDivision
+ //
+ this.xrLabel_RecipientDivision.CanShrink = true;
+ this.xrLabel_RecipientDivision.LocationFloat = new DevExpress.Utils.PointFloat(1.444961E-05F, 53.99998F);
+ this.xrLabel_RecipientDivision.Name = "xrLabel_RecipientDivision";
+ this.xrLabel_RecipientDivision.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrLabel_RecipientDivision.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink;
+ this.xrLabel_RecipientDivision.SizeF = new System.Drawing.SizeF(292F, 17F);
+ this.xrLabel_RecipientDivision.StylePriority.UseFont = false;
+ this.xrLabel_RecipientDivision.Text = "[RecipientDivision]";
+ //
+ // xrLabel_RecipientContactPerson
+ //
+ this.xrLabel_RecipientContactPerson.CanShrink = true;
+ this.xrLabel_RecipientContactPerson.LocationFloat = new DevExpress.Utils.PointFloat(1.444961E-05F, 36.99999F);
+ this.xrLabel_RecipientContactPerson.Name = "xrLabel_RecipientContactPerson";
+ this.xrLabel_RecipientContactPerson.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrLabel_RecipientContactPerson.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink;
+ this.xrLabel_RecipientContactPerson.SizeF = new System.Drawing.SizeF(292F, 17F);
+ this.xrLabel_RecipientContactPerson.StylePriority.UseFont = false;
+ this.xrLabel_RecipientContactPerson.Text = "[RecipientContactPerson]";
+ //
+ // xrLabel1
+ //
+ this.xrLabel1.CanShrink = true;
+ this.xrLabel1.LocationFloat = new DevExpress.Utils.PointFloat(1.444961E-05F, 19.99997F);
+ this.xrLabel1.Name = "xrLabel1";
+ this.xrLabel1.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrLabel1.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink;
+ this.xrLabel1.SizeF = new System.Drawing.SizeF(292F, 17F);
+ this.xrLabel1.StylePriority.UseFont = false;
+ this.xrLabel1.Text = "[RecipientOrganisation]";
+ //
+ // ReportFooter
+ //
+ this.ReportFooter.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
+ this.xrLabel10,
+ this.xrTable3,
+ this.xrLabel12,
+ this.xrLabel11,
+ this.lblNotice});
+ this.ReportFooter.Font = new System.Drawing.Font("Verdana", 10F);
+ this.ReportFooter.HeightF = 209F;
+ this.ReportFooter.KeepTogether = true;
+ this.ReportFooter.Name = "ReportFooter";
+ this.ReportFooter.StylePriority.UseFont = false;
+ //
+ // xrLabel10
+ //
+ this.xrLabel10.LocationFloat = new DevExpress.Utils.PointFloat(0F, 117F);
+ this.xrLabel10.Name = "xrLabel10";
+ this.xrLabel10.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrLabel10.SizeF = new System.Drawing.SizeF(175F, 17F);
+ this.xrLabel10.StylePriority.UseFont = false;
+ this.xrLabel10.Text = "Mit freundlichen Grüßen";
+ //
+ // xrTable3
+ //
+ this.xrTable3.LocationFloat = new DevExpress.Utils.PointFloat(0F, 33F);
+ this.xrTable3.Name = "xrTable3";
+ this.xrTable3.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
+ this.xrTableRow20,
+ this.xrTableRow21,
+ this.xrTableRow22,
+ this.xrTableRow23,
+ this.xrTableRow24});
+ this.xrTable3.SizeF = new System.Drawing.SizeF(650F, 68F);
+ this.xrTable3.StylePriority.UseFont = false;
+ this.xrTable3.StylePriority.UseTextAlignment = false;
+ this.xrTable3.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
+ //
+ // xrTableRow20
+ //
+ this.xrTableRow20.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
+ this.xrTableCell16});
+ this.xrTableRow20.Name = "xrTableRow20";
+ this.xrTableRow20.Weight = 0.38095238095238093D;
+ //
+ // xrTableCell16
+ //
+ this.xrTableCell16.CanShrink = true;
+ this.xrTableCell16.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
+ new DevExpress.XtraReports.UI.XRBinding("Text", null, "Notice")});
+ this.xrTableCell16.Name = "xrTableCell16";
+ this.xrTableCell16.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrTableCell16.StylePriority.UsePadding = false;
+ this.xrTableCell16.Text = "xrTableCell1";
+ this.xrTableCell16.Weight = 3D;
+ //
+ // xrTableRow21
+ //
+ this.xrTableRow21.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
+ this.xrTableCell18});
+ this.xrTableRow21.Name = "xrTableRow21";
+ this.xrTableRow21.Weight = 0.23809523809523808D;
+ //
+ // xrTableCell18
+ //
+ this.xrTableCell18.Name = "xrTableCell18";
+ this.xrTableCell18.Weight = 3D;
+ //
+ // xrTableRow22
+ //
+ this.xrTableRow22.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
+ this.xrTableCell29});
+ this.xrTableRow22.Name = "xrTableRow22";
+ this.xrTableRow22.Weight = 0.38095238095238088D;
+ //
+ // xrTableCell29
+ //
+ this.xrTableCell29.CanShrink = true;
+ this.xrTableCell29.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
+ new DevExpress.XtraReports.UI.XRBinding("Text", null, "AbsenceTimes")});
+ this.xrTableCell29.Name = "xrTableCell29";
+ this.xrTableCell29.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrTableCell29.StylePriority.UsePadding = false;
+ this.xrTableCell29.Text = "xrTableCell4";
+ this.xrTableCell29.Weight = 3D;
+ //
+ // xrTableRow23
+ //
+ this.xrTableRow23.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
+ this.xrTableCell30});
+ this.xrTableRow23.Name = "xrTableRow23";
+ this.xrTableRow23.Weight = 0.23809523809523803D;
+ //
+ // xrTableCell30
+ //
+ this.xrTableCell30.Name = "xrTableCell30";
+ this.xrTableCell30.Weight = 3D;
+ //
+ // xrTableRow24
+ //
+ this.xrTableRow24.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
+ this.xrTableCell31});
+ this.xrTableRow24.Name = "xrTableRow24";
+ this.xrTableRow24.Weight = 0.38095238095238093D;
+ //
+ // xrTableCell31
+ //
+ this.xrTableCell31.CanShrink = true;
+ this.xrTableCell31.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
+ new DevExpress.XtraReports.UI.XRBinding("Text", null, "FinalSentence")});
+ this.xrTableCell31.Name = "xrTableCell31";
+ this.xrTableCell31.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrTableCell31.StylePriority.UsePadding = false;
+ this.xrTableCell31.Text = "xrTableCell8";
+ this.xrTableCell31.Weight = 3D;
+ //
+ // xrLabel12
+ //
+ this.xrLabel12.LocationFloat = new DevExpress.Utils.PointFloat(0F, 192F);
+ this.xrLabel12.Name = "xrLabel12";
+ this.xrLabel12.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrLabel12.SizeF = new System.Drawing.SizeF(225F, 17F);
+ this.xrLabel12.StylePriority.UseFont = false;
+ this.xrLabel12.Text = "[CreatorName]";
+ //
+ // xrLabel11
+ //
+ this.xrLabel11.LocationFloat = new DevExpress.Utils.PointFloat(582.9999F, 192F);
+ this.xrLabel11.Name = "xrLabel11";
+ this.xrLabel11.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrLabel11.SizeF = new System.Drawing.SizeF(67F, 17F);
+ this.xrLabel11.StylePriority.UseFont = false;
+ this.xrLabel11.StylePriority.UseTextAlignment = false;
+ this.xrLabel11.Text = "Anlage";
+ this.xrLabel11.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
+ //
+ // lblNotice
+ //
+ this.lblNotice.CanShrink = true;
+ this.lblNotice.Font = new System.Drawing.Font("Verdana", 10F, System.Drawing.FontStyle.Italic);
+ this.lblNotice.LocationFloat = new DevExpress.Utils.PointFloat(0F, 7.999992F);
+ this.lblNotice.Name = "lblNotice";
+ this.lblNotice.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.lblNotice.SizeF = new System.Drawing.SizeF(250F, 25F);
+ this.lblNotice.StylePriority.UseFont = false;
+ this.lblNotice.Text = "Abschließende Bemerkungen:";
+ //
+ // topMarginBand1
+ //
+ this.topMarginBand1.HeightF = 73.95834F;
+ this.topMarginBand1.Name = "topMarginBand1";
+ //
+ // bottomMarginBand1
+ //
+ this.bottomMarginBand1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
+ this.xrRichText4,
+ this.xrRichText3,
+ this.xrRichText2,
+ this.xrRichText1});
+ this.bottomMarginBand1.HeightF = 100F;
+ this.bottomMarginBand1.Name = "bottomMarginBand1";
+ //
+ // GroupHeader1
+ //
+ this.GroupHeader1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
+ this.xrLabel9,
+ this.xrTable6,
+ this.xrLabel1,
+ this.xrLabel_RecipientContactPerson,
+ this.xrLabel_RecipientDivision,
+ this.xrLabel_RecipientStreet,
+ this.RecipientPostCodeAndTown,
+ this.xrTable2,
+ this.xrLabel2,
+ this.xrLabel3,
+ this.xrLabel4,
+ this.xrLabel5,
+ this.xrLabel6,
+ this.xrTable1,
+ this.xrLabel8});
+ this.GroupHeader1.Font = new System.Drawing.Font("Verdana", 10F);
+ this.GroupHeader1.HeightF = 443.3333F;
+ this.GroupHeader1.Name = "GroupHeader1";
+ this.GroupHeader1.StylePriority.UseFont = false;
+ //
+ // DetailReport
+ //
+ this.DetailReport.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
+ this.Detail1});
+ this.DetailReport.DataMember = "InvoiceItems";
+ this.DetailReport.DataSource = this.bindingSource1;
+ this.DetailReport.Level = 0;
+ this.DetailReport.Name = "DetailReport";
+ //
+ // Detail1
+ //
+ this.Detail1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
+ this.xrTable5});
+ this.Detail1.Font = new System.Drawing.Font("Verdana", 10F);
+ this.Detail1.HeightF = 17F;
+ this.Detail1.Name = "Detail1";
+ this.Detail1.StylePriority.UseFont = false;
+ //
+ // xrTable5
+ //
+ this.xrTable5.BorderColor = System.Drawing.SystemColors.ControlLight;
+ this.xrTable5.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
+ this.xrTable5.Name = "xrTable5";
+ this.xrTable5.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
+ this.xrTableRow15});
+ this.xrTable5.SizeF = new System.Drawing.SizeF(650F, 17F);
+ this.xrTable5.StylePriority.UseBorderColor = false;
+ //
+ // xrTableRow15
+ //
+ this.xrTableRow15.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
+ this.xrTableCell17,
+ this.xrTableCell23});
+ this.xrTableRow15.Name = "xrTableRow15";
+ this.xrTableRow15.Weight = 0.085D;
+ //
+ // xrTableCell17
+ //
+ this.xrTableCell17.BorderColor = System.Drawing.SystemColors.ControlLight;
+ this.xrTableCell17.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.xrTableCell17.CanShrink = true;
+ this.xrTableCell17.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
+ new DevExpress.XtraReports.UI.XRBinding("Text", null, "InvoiceItems.ItemDescription")});
+ this.xrTableCell17.Name = "xrTableCell17";
+ this.xrTableCell17.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrTableCell17.StylePriority.UseBorderColor = false;
+ this.xrTableCell17.StylePriority.UseBorders = false;
+ this.xrTableCell17.StylePriority.UseFont = false;
+ this.xrTableCell17.StylePriority.UsePadding = false;
+ this.xrTableCell17.Weight = 0.78314100999098546D;
+ //
+ // xrTableCell23
+ //
+ this.xrTableCell23.BorderColor = System.Drawing.SystemColors.ControlLight;
+ this.xrTableCell23.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.xrTableCell23.CanShrink = true;
+ this.xrTableCell23.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
+ new DevExpress.XtraReports.UI.XRBinding("Text", null, "InvoiceItems.GrossAmountTotal", "{0:c}")});
+ this.xrTableCell23.Name = "xrTableCell23";
+ this.xrTableCell23.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrTableCell23.StylePriority.UseBorderColor = false;
+ this.xrTableCell23.StylePriority.UseBorders = false;
+ this.xrTableCell23.StylePriority.UseFont = false;
+ this.xrTableCell23.StylePriority.UsePadding = false;
+ this.xrTableCell23.StylePriority.UseTextAlignment = false;
+ this.xrTableCell23.Text = "xrTableCell23";
+ this.xrTableCell23.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
+ this.xrTableCell23.Weight = 0.21685899000901443D;
+ //
+ // GroupFooter1
+ //
+ this.GroupFooter1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
+ this.xrTable4});
+ this.GroupFooter1.Font = new System.Drawing.Font("Verdana", 10F);
+ this.GroupFooter1.HeightF = 132F;
+ this.GroupFooter1.Name = "GroupFooter1";
+ this.GroupFooter1.StylePriority.UseFont = false;
+ //
+ // xrTable4
+ //
+ this.xrTable4.BorderColor = System.Drawing.SystemColors.ControlLight;
+ this.xrTable4.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
+ this.xrTable4.Name = "xrTable4";
+ this.xrTable4.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
+ this.xrTableRow30,
+ this.xrTableRow31,
+ this.xrTableRow32,
+ this.xrTableRow33,
+ this.xrTableRow34,
+ this.xrTableRow35,
+ this.xrTableRow36});
+ this.xrTable4.SizeF = new System.Drawing.SizeF(650F, 132F);
+ this.xrTable4.StylePriority.UseBorderColor = false;
+ //
+ // xrTableRow30
+ //
+ this.xrTableRow30.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
+ this.xrTableCell48});
+ this.xrTableRow30.Name = "xrTableRow30";
+ this.xrTableRow30.Weight = 0.085D;
+ //
+ // xrTableCell48
+ //
+ this.xrTableCell48.BorderColor = System.Drawing.SystemColors.ControlLight;
+ this.xrTableCell48.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.xrTableCell48.Name = "xrTableCell48";
+ this.xrTableCell48.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrTableCell48.StylePriority.UseBorderColor = false;
+ this.xrTableCell48.StylePriority.UseBorders = false;
+ this.xrTableCell48.Weight = 1D;
+ //
+ // xrTableRow31
+ //
+ this.xrTableRow31.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
+ this.xrTableCell49,
+ this.xrTableCell50});
+ this.xrTableRow31.Name = "xrTableRow31";
+ this.xrTableRow31.Weight = 0.085D;
+ //
+ // xrTableCell49
+ //
+ this.xrTableCell49.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.xrTableCell49.Name = "xrTableCell49";
+ this.xrTableCell49.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrTableCell49.StylePriority.UseBorders = false;
+ this.xrTableCell49.StylePriority.UseFont = false;
+ this.xrTableCell49.StylePriority.UsePadding = false;
+ this.xrTableCell49.Text = "Gesamtforderung:";
+ this.xrTableCell49.Weight = 0.78314100999098546D;
+ //
+ // xrTableCell50
+ //
+ this.xrTableCell50.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.xrTableCell50.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
+ new DevExpress.XtraReports.UI.XRBinding("Text", null, "AmountRecordedFLSString")});
+ this.xrTableCell50.Name = "xrTableCell50";
+ this.xrTableCell50.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrTableCell50.StylePriority.UseBorders = false;
+ this.xrTableCell50.StylePriority.UseFont = false;
+ this.xrTableCell50.StylePriority.UsePadding = false;
+ this.xrTableCell50.StylePriority.UseTextAlignment = false;
+ this.xrTableCell50.Text = "[AmountRecordedFLSString]";
+ this.xrTableCell50.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
+ this.xrTableCell50.Weight = 0.21685899000901443D;
+ //
+ // xrTableRow32
+ //
+ this.xrTableRow32.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
+ this.xrTableCell51});
+ this.xrTableRow32.Name = "xrTableRow32";
+ this.xrTableRow32.Weight = 0.085D;
+ //
+ // xrTableCell51
+ //
+ this.xrTableCell51.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.xrTableCell51.Name = "xrTableCell51";
+ this.xrTableCell51.StylePriority.UseBorders = false;
+ this.xrTableCell51.Weight = 1D;
+ //
+ // xrTableRow33
+ //
+ this.xrTableRow33.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
+ this.xrTableCell52,
+ this.xrTableCell53});
+ this.xrTableRow33.Name = "xrTableRow33";
+ this.xrTableRow33.Weight = 0.085D;
+ //
+ // xrTableCell52
+ //
+ this.xrTableCell52.BorderColor = System.Drawing.SystemColors.ControlLight;
+ this.xrTableCell52.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.xrTableCell52.Name = "xrTableCell52";
+ this.xrTableCell52.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrTableCell52.StylePriority.UseBorderColor = false;
+ this.xrTableCell52.StylePriority.UseBorders = false;
+ this.xrTableCell52.StylePriority.UseFont = false;
+ this.xrTableCell52.Text = "abzüglich der geleisteten Abschlagszahlung:";
+ this.xrTableCell52.Weight = 0.78314100999098568D;
+ //
+ // xrTableCell53
+ //
+ this.xrTableCell53.BorderColor = System.Drawing.SystemColors.ControlLight;
+ this.xrTableCell53.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.xrTableCell53.Name = "xrTableCell53";
+ this.xrTableCell53.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrTableCell53.StylePriority.UseBorderColor = false;
+ this.xrTableCell53.StylePriority.UseBorders = false;
+ this.xrTableCell53.StylePriority.UseFont = false;
+ this.xrTableCell53.StylePriority.UseTextAlignment = false;
+ this.xrTableCell53.Text = "[AmountAdvancedPayments]";
+ this.xrTableCell53.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
+ this.xrTableCell53.Weight = 0.21685899000901443D;
+ //
+ // xrTableRow34
+ //
+ this.xrTableRow34.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
+ this.xrTableCell54,
+ this.xrTableCell55});
+ this.xrTableRow34.Name = "xrTableRow34";
+ this.xrTableRow34.Weight = 0.085D;
+ //
+ // xrTableCell54
+ //
+ this.xrTableCell54.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.xrTableCell54.Name = "xrTableCell54";
+ this.xrTableCell54.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrTableCell54.StylePriority.UseBorders = false;
+ this.xrTableCell54.StylePriority.UsePadding = false;
+ this.xrTableCell54.Text = "abzüglich Eigenanteil:";
+ this.xrTableCell54.Weight = 0.78314100999098568D;
+ //
+ // xrTableCell55
+ //
+ this.xrTableCell55.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.xrTableCell55.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
+ new DevExpress.XtraReports.UI.XRBinding("Text", null, "Eigenbeteiligung", "{0:c}")});
+ this.xrTableCell55.Name = "xrTableCell55";
+ this.xrTableCell55.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrTableCell55.StylePriority.UseBorders = false;
+ this.xrTableCell55.StylePriority.UsePadding = false;
+ this.xrTableCell55.StylePriority.UseTextAlignment = false;
+ this.xrTableCell55.Text = "xrTableCell15";
+ this.xrTableCell55.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
+ this.xrTableCell55.Weight = 0.21685899000901443D;
+ //
+ // xrTableRow35
+ //
+ this.xrTableRow35.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
+ this.xrTableCell56});
+ this.xrTableRow35.Name = "xrTableRow35";
+ this.xrTableRow35.Weight = 0.085D;
+ //
+ // xrTableCell56
+ //
+ this.xrTableCell56.BorderColor = System.Drawing.SystemColors.ControlLight;
+ this.xrTableCell56.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.xrTableCell56.Name = "xrTableCell56";
+ this.xrTableCell56.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrTableCell56.StylePriority.UseBorderColor = false;
+ this.xrTableCell56.StylePriority.UseBorders = false;
+ this.xrTableCell56.Weight = 1D;
+ //
+ // xrTableRow36
+ //
+ this.xrTableRow36.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
+ this.xrTableCell57,
+ this.xrTableCell58});
+ this.xrTableRow36.Name = "xrTableRow36";
+ this.xrTableRow36.Weight = 0.15D;
+ //
+ // xrTableCell57
+ //
+ this.xrTableCell57.BorderColor = System.Drawing.SystemColors.ControlLight;
+ this.xrTableCell57.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.xrTableCell57.Name = "xrTableCell57";
+ this.xrTableCell57.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrTableCell57.StylePriority.UseBorderColor = false;
+ this.xrTableCell57.StylePriority.UseBorders = false;
+ this.xrTableCell57.StylePriority.UseFont = false;
+ this.xrTableCell57.Text = "Restforderung:";
+ this.xrTableCell57.Weight = 0.78314100999098568D;
+ //
+ // xrTableCell58
+ //
+ this.xrTableCell58.BorderColor = System.Drawing.SystemColors.ControlLight;
+ this.xrTableCell58.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
+ | DevExpress.XtraPrinting.BorderSide.Bottom)));
+ this.xrTableCell58.Font = new System.Drawing.Font("Verdana", 10F, System.Drawing.FontStyle.Bold);
+ this.xrTableCell58.Name = "xrTableCell58";
+ this.xrTableCell58.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrTableCell58.StylePriority.UseBorderColor = false;
+ this.xrTableCell58.StylePriority.UseBorders = false;
+ this.xrTableCell58.StylePriority.UseFont = false;
+ this.xrTableCell58.StylePriority.UseTextAlignment = false;
+ this.xrTableCell58.Text = "[Claim]";
+ this.xrTableCell58.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
+ this.xrTableCell58.Weight = 0.21685899000901443D;
+ //
+ // xrPictureBox1
+ //
+ this.xrPictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("xrPictureBox1.Image")));
+ this.xrPictureBox1.LocationFloat = new DevExpress.Utils.PointFloat(481.25F, 1.833378F);
+ this.xrPictureBox1.Name = "xrPictureBox1";
+ this.xrPictureBox1.SizeF = new System.Drawing.SizeF(168.75F, 157.75F);
+ this.xrPictureBox1.Sizing = DevExpress.XtraPrinting.ImageSizeMode.ZoomImage;
+ //
+ // xrLabel7
+ //
+ this.xrLabel7.Font = new System.Drawing.Font("Verdana", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.xrLabel7.LocationFloat = new DevExpress.Utils.PointFloat(0F, 120.0834F);
+ this.xrLabel7.Name = "xrLabel7";
+ this.xrLabel7.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrLabel7.SizeF = new System.Drawing.SizeF(317F, 29.50001F);
+ this.xrLabel7.StylePriority.UseFont = false;
+ this.xrLabel7.Text = "BEWOLONIA | Kalk-Mülheimer Str. 1 | 51103 Köln";
+ //
+ // bindingSource1
+ //
+ this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.SettlementRO);
+ //
+ // xrTable6
+ //
+ this.xrTable6.Font = new System.Drawing.Font("Verdana", 8F);
+ this.xrTable6.LocationFloat = new DevExpress.Utils.PointFloat(375.7798F, 19.99997F);
+ this.xrTable6.Name = "xrTable6";
+ this.xrTable6.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
+ this.xrTableRow2,
+ this.xrTableRow7,
+ this.xrTableRow12,
+ this.xrTableRow13,
+ this.xrTableRow14,
+ this.xrTableRow16});
+ this.xrTable6.SizeF = new System.Drawing.SizeF(120.1252F, 114F);
+ this.xrTable6.StylePriority.UseFont = false;
+ this.xrTable6.StylePriority.UseTextAlignment = false;
+ this.xrTable6.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
+ //
+ // xrTableRow2
+ //
+ this.xrTableRow2.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
+ this.xrTableCell3});
+ this.xrTableRow2.Name = "xrTableRow2";
+ this.xrTableRow2.Weight = 0.13245033112582783D;
+ //
+ // xrTableCell3
+ //
+ this.xrTableCell3.CanShrink = true;
+ this.xrTableCell3.Name = "xrTableCell3";
+ this.xrTableCell3.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrTableCell3.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink;
+ this.xrTableCell3.StylePriority.UseFont = false;
+ this.xrTableCell3.StylePriority.UseTextAlignment = false;
+ this.xrTableCell3.Text = "Ansprechpartner*in:";
+ this.xrTableCell3.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
+ this.xrTableCell3.Weight = 1D;
+ //
+ // xrTableRow7
+ //
+ this.xrTableRow7.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
+ this.xrTableCell4});
+ this.xrTableRow7.Name = "xrTableRow7";
+ this.xrTableRow7.Weight = 0.13245033112582783D;
+ //
+ // 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.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
+ this.xrTableCell4.Weight = 1D;
+ //
+ // xrTableRow12
+ //
+ this.xrTableRow12.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
+ this.xrTableCell9});
+ this.xrTableRow12.Name = "xrTableRow12";
+ this.xrTableRow12.Weight = 0.13245033112582783D;
+ //
+ // xrTableCell9
+ //
+ this.xrTableCell9.CanShrink = true;
+ this.xrTableCell9.Font = new System.Drawing.Font("Verdana", 8F);
+ this.xrTableCell9.Name = "xrTableCell9";
+ this.xrTableCell9.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrTableCell9.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink;
+ this.xrTableCell9.StylePriority.UseFont = false;
+ this.xrTableCell9.StylePriority.UseTextAlignment = false;
+ this.xrTableCell9.Text = "Telefon:";
+ this.xrTableCell9.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
+ this.xrTableCell9.Weight = 1D;
+ //
+ // xrTableRow13
+ //
+ this.xrTableRow13.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
+ this.xrTableCell10});
+ this.xrTableRow13.Name = "xrTableRow13";
+ this.xrTableRow13.Weight = 0.13245033112582783D;
+ //
+ // xrTableCell10
+ //
+ this.xrTableCell10.CanShrink = true;
+ this.xrTableCell10.Font = new System.Drawing.Font("Verdana", 8F);
+ this.xrTableCell10.Name = "xrTableCell10";
+ this.xrTableCell10.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrTableCell10.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink;
+ this.xrTableCell10.StylePriority.UseFont = false;
+ this.xrTableCell10.StylePriority.UseTextAlignment = false;
+ this.xrTableCell10.Text = "Telefax:";
+ this.xrTableCell10.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
+ this.xrTableCell10.Weight = 1D;
+ //
+ // xrTableRow14
+ //
+ this.xrTableRow14.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
+ this.xrTableCell12});
+ this.xrTableRow14.Name = "xrTableRow14";
+ this.xrTableRow14.Weight = 0.11258278145695365D;
+ //
+ // xrTableCell12
+ //
+ this.xrTableCell12.CanShrink = true;
+ this.xrTableCell12.Font = new System.Drawing.Font("Verdana", 8F);
+ this.xrTableCell12.Name = "xrTableCell12";
+ this.xrTableCell12.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrTableCell12.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink;
+ this.xrTableCell12.StylePriority.UseFont = false;
+ this.xrTableCell12.StylePriority.UseTextAlignment = false;
+ this.xrTableCell12.Text = "E-Mail:";
+ this.xrTableCell12.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
+ this.xrTableCell12.Weight = 1D;
+ //
+ // xrTableRow16
+ //
+ this.xrTableRow16.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
+ this.xrTableCell14});
+ this.xrTableRow16.Name = "xrTableRow16";
+ this.xrTableRow16.Weight = 0.11258278145695365D;
+ //
+ // xrTableCell14
+ //
+ this.xrTableCell14.Font = new System.Drawing.Font("Verdana", 8F);
+ this.xrTableCell14.Name = "xrTableCell14";
+ this.xrTableCell14.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrTableCell14.StylePriority.UseFont = false;
+ this.xrTableCell14.Text = "Internet:";
+ this.xrTableCell14.Weight = 1D;
+ //
+ // xrLabel9
+ //
+ this.xrLabel9.Font = new System.Drawing.Font("Verdana", 7F);
+ this.xrLabel9.LocationFloat = new DevExpress.Utils.PointFloat(375.7798F, 145.9345F);
+ this.xrLabel9.Name = "xrLabel9";
+ this.xrLabel9.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
+ this.xrLabel9.SizeF = new System.Drawing.SizeF(120.1251F, 22.99998F);
+ this.xrLabel9.StylePriority.UseFont = false;
+ this.xrLabel9.StylePriority.UseTextAlignment = false;
+ this.xrLabel9.Text = "Datum:";
+ this.xrLabel9.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
+ //
+ // xrRichText1
+ //
+ this.xrRichText1.Font = new System.Drawing.Font("Verdana", 7F);
+ this.xrRichText1.LocationFloat = new DevExpress.Utils.PointFloat(0F, 9.999939F);
+ this.xrRichText1.Name = "xrRichText1";
+ this.xrRichText1.SerializableRtfString = resources.GetString("xrRichText1.SerializableRtfString");
+ this.xrRichText1.SizeF = new System.Drawing.SizeF(116.447F, 65.61366F);
+ this.xrRichText1.StylePriority.UseFont = false;
+ //
+ // xrRichText2
+ //
+ this.xrRichText2.Font = new System.Drawing.Font("Verdana", 7F);
+ this.xrRichText2.LocationFloat = new DevExpress.Utils.PointFloat(175.5531F, 9.999939F);
+ this.xrRichText2.Name = "xrRichText2";
+ this.xrRichText2.SerializableRtfString = resources.GetString("xrRichText2.SerializableRtfString");
+ this.xrRichText2.SizeF = new System.Drawing.SizeF(116.447F, 65.61366F);
+ this.xrRichText2.StylePriority.UseFont = false;
+ //
+ // xrRichText3
+ //
+ this.xrRichText3.Font = new System.Drawing.Font("Verdana", 7F);
+ this.xrRichText3.LocationFloat = new DevExpress.Utils.PointFloat(335.7007F, 9.999939F);
+ this.xrRichText3.Name = "xrRichText3";
+ this.xrRichText3.SerializableRtfString = resources.GetString("xrRichText3.SerializableRtfString");
+ this.xrRichText3.SizeF = new System.Drawing.SizeF(198.083F, 65.61366F);
+ this.xrRichText3.StylePriority.UseFont = false;
+ //
+ // xrRichText4
+ //
+ this.xrRichText4.Font = new System.Drawing.Font("Verdana", 7F);
+ this.xrRichText4.LocationFloat = new DevExpress.Utils.PointFloat(561.553F, 9.999939F);
+ this.xrRichText4.Name = "xrRichText4";
+ this.xrRichText4.SerializableRtfString = resources.GetString("xrRichText4.SerializableRtfString");
+ this.xrRichText4.SizeF = new System.Drawing.SizeF(116.447F, 65.61366F);
+ this.xrRichText4.StylePriority.UseFont = false;
+ //
+ // Spitzabrechnung
+ //
+ this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
+ this.Detail,
+ this.ReportHeader,
+ this.ReportFooter,
+ this.topMarginBand1,
+ this.bottomMarginBand1,
+ this.GroupHeader1,
+ this.DetailReport,
+ this.GroupFooter1});
+ this.DataSource = this.bindingSource1;
+ this.ExportOptions.PrintPreview.DefaultFileName = "Spitzabrechnung";
+ this.FormattingRuleSheet.AddRange(new DevExpress.XtraReports.UI.FormattingRule[] {
+ this.ruleRateFactorNull});
+ this.Margins = new System.Drawing.Printing.Margins(75, 74, 74, 100);
+ this.PageHeight = 1169;
+ this.PageWidth = 827;
+ this.PaperKind = System.Drawing.Printing.PaperKind.A4;
+ this.Version = "17.1";
+ ((System.ComponentModel.ISupportInitialize)(this.xrTable1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.xrTable2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.xrTable3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.xrTable5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.xrTable4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.xrTable6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.xrRichText1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.xrRichText2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.xrRichText3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.xrRichText4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this)).EndInit();
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraReports.UI.DetailBand Detail;
+ private System.Windows.Forms.BindingSource bindingSource1;
+ private DevExpress.XtraReports.UI.ReportHeaderBand ReportHeader;
+ private DevExpress.XtraReports.UI.XRLabel xrLabel6;
+ private DevExpress.XtraReports.UI.XRLabel xrLabel5;
+ private DevExpress.XtraReports.UI.XRLabel xrLabel4;
+ private DevExpress.XtraReports.UI.XRLabel xrLabel3;
+ private DevExpress.XtraReports.UI.XRLabel xrLabel2;
+ private DevExpress.XtraReports.UI.XRTable xrTable2;
+ private DevExpress.XtraReports.UI.XRTableRow xrTableRow5;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell13;
+ private DevExpress.XtraReports.UI.XRTableRow xrTableRow4;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell11;
+ private DevExpress.XtraReports.UI.XRTableRow xrTableRow3;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell8;
+ private DevExpress.XtraReports.UI.XRTableRow xrTableRow1;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell1;
+ private DevExpress.XtraReports.UI.XRTableRow xrTableRow6;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell2;
+ private DevExpress.XtraReports.UI.XRTableRow xrTableRow8;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell5;
+ private DevExpress.XtraReports.UI.XRLabel RecipientPostCodeAndTown;
+ private DevExpress.XtraReports.UI.XRLabel xrLabel_RecipientStreet;
+ private DevExpress.XtraReports.UI.XRLabel xrLabel_RecipientDivision;
+ private DevExpress.XtraReports.UI.XRLabel xrLabel_RecipientContactPerson;
+ private DevExpress.XtraReports.UI.XRLabel xrLabel1;
+ private DevExpress.XtraReports.UI.ReportFooterBand ReportFooter;
+ private DevExpress.XtraReports.UI.XRLabel lblNotice;
+ private DevExpress.XtraReports.UI.XRLabel xrLabel12;
+ private DevExpress.XtraReports.UI.XRLabel xrLabel11;
+ private DevExpress.XtraReports.UI.XRTable xrTable1;
+ private DevExpress.XtraReports.UI.XRTableRow xrTableRow9;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell19;
+ private DevExpress.XtraReports.UI.XRTableRow xrTableRow10;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell20;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell7;
+ private DevExpress.XtraReports.UI.XRTableRow xrTableRow11;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell21;
+ private DevExpress.XtraReports.UI.XRTableRow rowErbrachteLeistung;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell22;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell6;
+ private DevExpress.XtraReports.UI.XRTable xrTable3;
+ private DevExpress.XtraReports.UI.XRTableRow xrTableRow20;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell16;
+ private DevExpress.XtraReports.UI.XRTableRow xrTableRow21;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell18;
+ private DevExpress.XtraReports.UI.XRTableRow xrTableRow22;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell29;
+ private DevExpress.XtraReports.UI.XRTableRow xrTableRow23;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell30;
+ private DevExpress.XtraReports.UI.XRTableRow xrTableRow24;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell31;
+ private DevExpress.XtraReports.UI.XRLabel xrLabel10;
+ private DevExpress.XtraReports.UI.FormattingRule ruleRateFactorNull;
+ private DevExpress.XtraReports.UI.TopMarginBand topMarginBand1;
+ private DevExpress.XtraReports.UI.BottomMarginBand bottomMarginBand1;
+ private DevExpress.XtraReports.UI.XRLabel xrLabel8;
+ private DevExpress.XtraReports.UI.GroupHeaderBand GroupHeader1;
+ private DevExpress.XtraReports.UI.DetailReportBand DetailReport;
+ private DevExpress.XtraReports.UI.DetailBand Detail1;
+ private DevExpress.XtraReports.UI.XRTable xrTable5;
+ private DevExpress.XtraReports.UI.XRTableRow xrTableRow15;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell17;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell23;
+ private DevExpress.XtraReports.UI.GroupFooterBand GroupFooter1;
+ private DevExpress.XtraReports.UI.XRTable xrTable4;
+ private DevExpress.XtraReports.UI.XRTableRow xrTableRow30;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell48;
+ private DevExpress.XtraReports.UI.XRTableRow xrTableRow31;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell49;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell50;
+ private DevExpress.XtraReports.UI.XRTableRow xrTableRow32;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell51;
+ private DevExpress.XtraReports.UI.XRTableRow xrTableRow33;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell52;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell53;
+ private DevExpress.XtraReports.UI.XRTableRow xrTableRow34;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell54;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell55;
+ private DevExpress.XtraReports.UI.XRTableRow xrTableRow35;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell56;
+ private DevExpress.XtraReports.UI.XRTableRow xrTableRow36;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell57;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell58;
+ private DevExpress.XtraReports.UI.XRPictureBox xrPictureBox1;
+ private DevExpress.XtraReports.UI.XRLabel xrLabel7;
+ private DevExpress.XtraReports.UI.XRTable xrTable6;
+ private DevExpress.XtraReports.UI.XRTableRow xrTableRow2;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell3;
+ private DevExpress.XtraReports.UI.XRTableRow xrTableRow7;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell4;
+ private DevExpress.XtraReports.UI.XRTableRow xrTableRow12;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell9;
+ private DevExpress.XtraReports.UI.XRTableRow xrTableRow13;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell10;
+ private DevExpress.XtraReports.UI.XRTableRow xrTableRow14;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell12;
+ private DevExpress.XtraReports.UI.XRTableRow xrTableRow16;
+ private DevExpress.XtraReports.UI.XRTableCell xrTableCell14;
+ private DevExpress.XtraReports.UI.XRLabel xrLabel9;
+ private DevExpress.XtraReports.UI.XRRichText xrRichText4;
+ private DevExpress.XtraReports.UI.XRRichText xrRichText3;
+ private DevExpress.XtraReports.UI.XRRichText xrRichText2;
+ private DevExpress.XtraReports.UI.XRRichText xrRichText1;
+ }
+}
diff --git a/ReportImp/Bewolonia/SettlementReport.cs b/ReportImp/Bewolonia/SettlementReport.cs
new file mode 100644
index 000000000..05b441faa
--- /dev/null
+++ b/ReportImp/Bewolonia/SettlementReport.cs
@@ -0,0 +1,236 @@
+using System;
+using System.Collections.Generic;
+using BeWo.Data.Access;
+using BeWo.Data.Entities;
+using BeWo.Report;
+using BeWo.Report.ReportObjects;
+using BS.Shared.DataContracts;
+
+namespace Bewolonia
+{
+ public partial class Spitzabrechnung : DevExpress.XtraReports.UI.XtraReport, IBeWoReport
+ {
+ public Spitzabrechnung()
+ {
+ InitializeComponent();
+ }
+
+ public void SetReportDataSource(SettlementRO pRO)
+ {
+ bool isDefaultSpitzabrechnung = false;
+
+ if (String.IsNullOrEmpty(pRO.Notice))
+ {
+ lblNotice.Visible = false;
+ }
+
+ if (pRO.InvoiceItems != null && pRO.InvoiceItems.Count == 1)
+ {
+ var ii = pRO.InvoiceItems[0];
+ if ((ii.ItemDescription == "Spitzabrechung" || ii.ItemDescription == "Spitzabrechnung") && ii.GrossAmountTotal == null && ii.RateFactor == null)
+ {
+ isDefaultSpitzabrechnung = true;
+ }
+ }
+ if (!isDefaultSpitzabrechnung)
+ {
+ if (pRO.DifferentHourlyRateCount > 0 && pRO.HourlyRateNew.HasValue)
+ {
+ isDefaultSpitzabrechnung = true;
+ }
+ }
+
+ if (isDefaultSpitzabrechnung)
+ {
+ //UpdateAbrechnungsFelder(pRO);
+
+ pRO.InvoiceItems = CreateDefaultSpitzabrechnungInvoiceItems(pRO);
+ }
+ else
+ {
+ var id = GetCustomerId(pRO);
+ if (id == "LWLNEU")
+ {
+ pRO.RateFactorText = null;
+ pRO.RateFactorText2 = null;
+
+ if (pRO.InvoiceItems != null)
+ {
+ foreach (var ii in pRO.InvoiceItems)
+ {
+ ii.ItemDescription = String.Format("{0:dd.MM.yyyy} bis {1:dd.MM.yyyy}: {2:0.##} FLS x {3:c}",
+ ii.ItemPeriodStart, ii.ItemPeriodEnd, ii.UnitCount, ii.AmountPerUnit);
+ }
+ }
+ }
+ else
+ {
+ if (pRO.InvoiceItems != null)
+ {
+ foreach (var ii in pRO.InvoiceItems)
+ {
+ ii.ItemDescription = String.Format("{0:dd.MM.yyyy} bis {1:dd.MM.yyyy}: {2:0.##} FLS {3}x {4:c}",
+ ii.ItemPeriodStart, ii.ItemPeriodEnd,
+ ii.UnitCount, ii.RateFactor == 0 ? "" : "x " + pRO.RateFactorText2 + " ",
+ ii.AmountPerUnit);
+ }
+ }
+ }
+ }
+
+ if (pRO.SenderContactPersonPhone == null)
+ pRO.SenderContactPersonPhone = "-";
+ else
+ pRO.SenderContactPersonPhone = pRO.SenderContactPersonPhone.Remove(0, 6);
+
+ if (pRO.SenderContactPersonMail == null)
+ pRO.SenderContactPersonMail = "-";
+ else
+ pRO.SenderContactPersonMail = pRO.SenderContactPersonMail.Remove(0, 8);
+
+ if (pRO.SenderContactPersonFax == null)
+ pRO.SenderContactPersonFax = "-";
+ else
+ pRO.SenderContactPersonFax = pRO.SenderContactPersonFax.Remove(0, 5);
+
+ this.bindingSource1.DataSource = pRO;
+ }
+
+ private String GetCustomerId(SettlementRO pRO)
+ {
+ var cb2sc = DAOFactory.GenericDAO.LoadByID(pRO.CostBearer2SupportConceptOid);
+ return cb2sc.CostBearer.ID;
+ }
+
+ private IList CreateDefaultSpitzabrechnungInvoiceItems(SettlementRO pRO)
+ {
+ IList itemList = new List();
+ if (pRO.DifferentHourlyRateCount == 3)
+ {
+ itemList.Add(new InvoiceItemDC
+ {
+ ItemDescription = String.Format("{0} bis {1}: {2:0.##} FLS {3}x {4:c}",
+ pRO.AccountingStartDateString, pRO.HourlyRate3EndDateString,
+ pRO.GeleisteteFLSMitStundensatz3, pRO.RateFactor == 1 ? "" : "x " + pRO.RateFactorText2 + " ", pRO.HourlyRate3),
+
+ GrossAmountTotal = pRO.GeleisteteFLSMitStundensatz3 * pRO.RateFactor * pRO.HourlyRate3
+ });
+
+ itemList.Add(new InvoiceItemDC
+ {
+ ItemDescription = String.Format("{0} bis {1}: {2:0.##} FLS {3}x {4:c}",
+ pRO.HourlyRateOldStartDateString, pRO.HourlyRateOldEndDateString,
+ pRO.GeleisteteFLSMitStundensatzAlt, pRO.RateFactor == 1 ? "" : "x " + pRO.RateFactorText2 + " ", pRO.HourlyRateOld),
+
+ GrossAmountTotal = pRO.GeleisteteFLSMitStundensatzAlt * pRO.RateFactor * pRO.HourlyRateOld
+ });
+
+ itemList.Add(new InvoiceItemDC
+ {
+ ItemDescription = String.Format("{0} bis {1}: {2:0.##} FLS {3}x {4:c}",
+ pRO.HourlyRateNewStartDateString, pRO.AccountingEndDateString,
+ pRO.GeleisteteFLSMitStundensatzAktuell, pRO.RateFactor == 1 ? "" : "x " + pRO.RateFactorText2 + " ", pRO.HourlyRateNew),
+
+ GrossAmountTotal = pRO.GeleisteteFLSMitStundensatzAktuell * pRO.RateFactor * pRO.HourlyRateNew
+ });
+
+ }
+ else if (pRO.DifferentHourlyRateCount == 2)
+ {
+ itemList.Add(new InvoiceItemDC
+ {
+ ItemDescription = String.Format("{0} bis {1}: {2:0.##} FLS {3}x {4:c}",
+ pRO.AccountingStartDateString, pRO.HourlyRateOldEndDateString,
+ pRO.GeleisteteFLSMitStundensatzAlt, pRO.RateFactor == 1 ? "" : "x " + pRO.RateFactorText2 + " ", pRO.HourlyRateOld),
+
+ GrossAmountTotal = pRO.GeleisteteFLSMitStundensatzAlt * (decimal)pRO.RateFactor * pRO.HourlyRateOld
+ });
+
+ itemList.Add(new InvoiceItemDC
+ {
+ ItemDescription = String.Format("{0} bis {1}: {2:0.##} FLS {3}x {4:c}",
+ pRO.HourlyRateNewStartDateString, pRO.AccountingEndDateString,
+ pRO.GeleisteteFLSMitStundensatzAktuell, pRO.RateFactor == 1 ? "" : "x " + pRO.RateFactorText2 + " ", pRO.HourlyRateNew),
+
+ GrossAmountTotal = pRO.GeleisteteFLSMitStundensatzAktuell * pRO.RateFactor * pRO.HourlyRateNew
+ });
+
+ }
+ else
+ {
+ itemList.Add(new InvoiceItemDC
+ {
+ ItemDescription = String.Format("{0} bis {1}: {2:0.##} FLS {3}x {4:c}",
+ pRO.AccountingStartDateString, pRO.AccountingEndDateString,
+ pRO.GeleisteteFLSMitStundensatzAktuell, pRO.RateFactor == 1 ? "" : "x " + pRO.RateFactorText2 + " ", pRO.HourlyRateNew),
+
+ GrossAmountTotal = pRO.GeleisteteFLSMitStundensatzAktuell * pRO.RateFactor * pRO.HourlyRateNew
+ });
+
+ }
+
+ return itemList;
+ }
+
+ private void UpdateAbrechnungsFelder(SettlementRO pRO)
+ {
+ if (pRO.DifferentHourlyRateCount == 3)
+ {
+ //Erbrachte Leistungen (FLS) - bis [HourlyRateOldEndDateString] à [HourlyRateOldString] €
+
+ pRO.Abrechnungstext1 = String.Format("{0} bis {1}",
+ pRO.AccountingStartDateString, pRO.HourlyRate3EndDateString);
+
+ pRO.Abrechnungstext1 += String.Format(": {0:0.##} FLS {1}x {2:c}",
+ pRO.GeleisteteFLSMitStundensatz3, pRO.RateFactor == 1 ? "" : "x " + pRO.RateFactorText2 + " ", pRO.HourlyRate3);
+
+ //[AccountingStartDateString] - [HourlyRate3EndDateString] sind [RecordedFLSWithHourlyRate3String] Std. x [HourlyRate3String] € =";
+
+ 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.##} FLS {1}x {2:c}",
+ pRO.GeleisteteFLSMitStundensatzAlt, pRO.RateFactor == 1 ? "" : "x " + pRO.RateFactorText2 + " ", pRO.HourlyRateOld);
+
+ 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.##} FLS {1}x {2:c}",
+ pRO.GeleisteteFLSMitStundensatzAktuell, pRO.RateFactor == 1 ? "" : "x " + pRO.RateFactorText2 + " ", pRO.HourlyRateNew);
+
+ 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.##} FLS {1}x {2:c}",
+ pRO.GeleisteteFLSMitStundensatzAlt, pRO.RateFactor == 1 ? "" : "x " + pRO.RateFactorText2 + " ", pRO.HourlyRateOld);
+
+ 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.##} FLS {1}x {2:c}",
+ pRO.GeleisteteFLSMitStundensatzAktuell, pRO.RateFactor == 1 ? "" : "x " + pRO.RateFactorText2 + " ", pRO.HourlyRateNew);
+
+ pRO.Betrag3 = String.Format("{0:c}", pRO.GeleisteteFLSMitStundensatzAktuell * (decimal)pRO.RateFactor * pRO.HourlyRateNew);
+ }
+ else
+ {
+ pRO.Abrechnungstext3 = String.Format("{0} bis {1}",
+ pRO.AccountingStartDateString, pRO.AccountingEndDateString);
+ pRO.Abrechnungstext3 += String.Format(": {0:0.##} FLS {1}x {2:c}",
+ pRO.GeleisteteFLSMitStundensatzAktuell, pRO.RateFactor == 1 ? "" : "x " + pRO.RateFactorText2 + " ", pRO.HourlyRateNew);
+
+ pRO.Betrag3 = String.Format("{0:c}", pRO.GeleisteteFLSMitStundensatzAktuell * (decimal)pRO.RateFactor * pRO.HourlyRateNew);
+ }
+ }
+ }
+}
diff --git a/ReportImp/Bewolonia/SettlementReport.resx b/ReportImp/Bewolonia/SettlementReport.resx
new file mode 100644
index 000000000..f810f66b5
--- /dev/null
+++ b/ReportImp/Bewolonia/SettlementReport.resx
@@ -0,0 +1,768 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+
+ /9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsN
+ DhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQU
+ FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAI3AjYDASIAAhEBAxEB/8QA
+ HwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh
+ MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVW
+ V1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXG
+ x8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQF
+ BgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV
+ YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
+ hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq
+ 8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9U6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo
+ AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo
+ AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo
+ AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo
+ AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo
+ AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo
+ AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo
+ AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo
+ AKKKKACiiigAooooAKKKKACiiigAorm/FvxG8NeBYd+u6za6eSMrFI+ZG+iDLH8q8c8R/tneHbFnj0XR
+ r7VWHAlmK28Z/PLY/AVjOtTp/Ez0cPl2LxetGm2u/T73ofQ9FfHGpftmeLLkkWWkaVZL/tiSVvz3AfpW
+ FJ+1l8RJGJW80+Mei2Sn+ZrneMpI9qPDWPktbL5/5XPuSiviO0/a68f27Aytpd0P7sloVz/3ywrq9F/b
+ W1KNlGr+GbadO72Nw0Z/Jgf501jKTIqcN5hBXUU/R/52PrGivH/C/wC1R4D8RNHFcXs2iXDcbNQi2pn/
+ AH1yv5kV6xY6ha6napc2dxFd27jKywuHRvoRxXVGpGfwu54NfC18K7VoOPqixRRRVnKFFFFABRRRQAUU
+ UUAFFFFABRRXK+Mfij4W8BRltb1q2tJcZFuG3zN9EXLfpSclFXbNKdOdWXJTi2/I6qivmzxP+2lpdvvj
+ 8P6Dc3zfwz3ziFP++Rlj+leZ6x+1t4+1Jj9ll0/SkP8ADb2u8j8XJrkli6Uetz6Gjw7j6yu4qPq/8rs+
+ 36K/Pi6+PnxCvDl/Fd8v/XLZH/6CoqCP44eP4W3DxdqZP+1KGH5EVl9eh2Z6K4VxNtakfx/yP0Oor4N0
+ v9p34i6YVzraXqj+G7tY2z+IAP616D4b/bU1GFlTXvDtvdJ0MunymNvrtfIP5irjjKUt9DjrcN4+mrxt
+ L0f+dj6xorzbwT+0L4I8ctHBbaqun3z8Cz1AeS5PoCflb8DXpNdkZRmrxdz5yth6uHlyVouL8woooqjA
+ KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA
+ KKKY0yLIkbOod8lVJ5OOuKAH0UUUAFFFFABRRRQAUUV438bv2iNP+Gccml6WI9T8SMv+pzmK1z0aQjv6
+ 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
+ P0qLfM+Gub2QDzbh/Vj2Hoo4H61peCfBGkfD/QYNI0a1Fvax8s3V5W7u7d2P+eK3quhh1SV3uc2bZzUz
+ CXs4e7TXTv5v/IKKKK7D5sKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig
+ AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig
+ AooooAKKKKACiiigCO4t4rqCSGeNZoZFKPHIoZWUjBBB6ivjv4/fs8z+A55fE3hZJG0QP5s1vESZLBs5
+ 3KeuzPfqv05r7IpskazRsjqrow2srDIIPUEVhVoxrRsz1cvzGrl1Xnp6p7ro/wCu545+zp8bE+JWh/2X
+ qkqjxJYIPNzx9qj6CUe/Zh6896sfGKw8nWrO7AwJ4dhPup/wNeVfGT4L6l8J9fj8eeBN8NnbSefNaxDJ
+ tD/EQP4ojyCvYH06ehzfELT/AIufDKx16zAivLWdY7y1zloHZcEf7p4IPcfjXl4nmlQlSqfEtfU+gVCl
+ HEQx2D/hT0a/lb6P57f8McnRRRXy57wV6lH4u0z4U/CeLWtUbamwyJCpw88jklUX3PH0AJ7V5Y7KsbM7
+ bEUEs3oB1Nc3a6PrX7UvjSEoZtM8CaNi3ikIwdoAB29jK4AyeijH4+tl7cZylFXeyOLFYeGIinWly04u
+ 8n+SXmzm/CPgzxL+014/vNZ1OV7bTBIBc3aj5IUH3YIc9Tj8s5PJ5+zvC/hfTPBmh22k6PaJZ2NuuFjT
+ qT3Zj3Y9yaf4c8Oad4T0W10rSrVLOxtl2RxIPzJPcnqSetadfSUaKpq71bPlMyzKWOkoQXLTj8Mf8/P8
+ gooorpPECiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo
+ ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo
+ ooAKKKKACiiigBrosiMjqGVhgqwyCPSvm7x58Hb34a+KH8ReEQw8N6iwh1bS4xkQqWyJFH9wNg/7PPYn
+ H0nUc8K3EEkTDKyKVP0IxWFaiq0HFnoYLG1MHPmjqnuuj/4K6PofNFFSXEDWtxLAww0Tsh/A4qOvhD9C
+ 31Rc0nw8vizUItIeSSGK83RySRfeVMHcR74z+de/eH/D+n+FdHtdK0q1jsrC1QJFDGMAD+pPcnk15b8I
+ rP7R4llnI4t4CR9WIH8s17HX1OV01Gk59Wz4/Oa0pVVRvounn/wwUUUV7J86FFFFABRRRQAUUUUAFFFF
+ ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF
+ ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAeA+O
+ rP7D4u1OPGA0vmD/AIEAf61hV2/xdtPJ8TRTAcT26n8QSP8ACuIr4bEx5K04+Z+kYSftMPCXkj1P4M2m
+ 2z1O6I+/IsYP0GT/AOhV6RXI/Cy0+y+D7dyMGeR5f1wP0FddX1mDjyYeC8vzPh8wnz4qb87fdoFFFFdp
+ 54UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR
+ QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR
+ QAUUUUAFFFFABRRRQB5p8Z7TMOl3QH3XeIn6gEfyNeXMcKTXtXxXtftHhGSQDJgmST8M7T/OvHLG3N5f
+ W0AGTLKqfmQK+RzGFsS7dbf5H3WU1L4VX6N/5/qfQPhez+weHdNg7pAmfqRk/rWpSKoRQoGABgUtfWRj
+ yxUV0PiJyc5OT6hRRRVEBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF
+ FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF
+ FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAGL4ztftnhXVIgMnyGYfgM/0rxnwPb/a/FulJjIEwkP8A
+ wEFv6V73dQ/abWaE9JEZPzGK8b+FNmW8Xgkf8e8MhP14X+prw8dT5sRSff8ARn0eXVeXCV12X5o9pooo
+ r3D5wKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA
+ 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
+ ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA
+ ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA
+ ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA
+ ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA
+ ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA
+ ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA
+ ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA
+ ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA
+ ooooA//Z
+
+
+
+ anbei sende ich Ihnen die unterschriebenen Nachweise über die im Rahmen des Betreuten Wohnens für [Salutation2] [CustomerName] erbrachten Leistungen zu. Nach unserer Berechnung ergeben sich für den Betreuungszeitraum [AccountingPeriod] hieraus:
+
+
+
+ ewBcAHIAdABmADEAXABkAGUAZgBmADAAewBcAGYAbwBuAHQAdABiAGwAewBcAGYAMAAgAEMAYQBsAGkAYgByAGkAOwB9AHsAXABmADEAIABUAGkAbQBlAHMAIABOAGUAdwAgAFIAbwBtAGEAbgA7AH0AewBcAGYAMgAgAFYAZQByAGQAYQBuAGEAOwB9AH0AewBcAGMAbwBsAG8AcgB0AGIAbAAgADsAXAByAGUAZAAwAFwAZwByAGUAZQBuADAAXABiAGwAdQBlADAAIAA7AFwAcgBlAGQAMABcAGcAcgBlAGUAbgAwAFwAYgBsAHUAZQAyADUANQAgADsAfQB7AFwAKgBcAGQAZQBmAGMAaABwACAAXABmADEAXABmAHMAMgA0AH0AewBcAHMAdAB5AGwAZQBzAGgAZQBlAHQAIAB7AFwAcQBsAFwAZgAxAFwAZgBzADIANAAgAE4AbwByAG0AYQBsADsAfQB7AFwAKgBcAGMAcwAxAFwAZgAxAFwAZgBzADIANABcAGMAZgAxACAARABlAGYAYQB1AGwAdAAgAFAAYQByAGEAZwByAGEAcABoACAARgBvAG4AdAA7AH0AewBcACoAXABjAHMAMgBcAHMAYgBhAHMAZQBkAG8AbgAxAFwAZgAxAFwAZgBzADIANABcAGMAZgAxACAATABpAG4AZQAgAE4AdQBtAGIAZQByADsAfQB7AFwAKgBcAGMAcwAzAFwAdQBsAFwAZgAxAFwAZgBzADIANABcAGMAZgAyACAASAB5AHAAZQByAGwAaQBuAGsAOwB9AHsAXAAqAFwAdABzADQAXAB0AHMAcgBvAHcAZABcAGYAMQBcAGYAcwAyADQAXABxAGwAXAB0AHMAYwBlAGwAbABwAGEAZABkAGYAbAAzAFwAdABzAGMAZQBsAGwAcABhAGQAZABsADEAMAA4AFwAdABzAGMAZQBsAGwAcABhAGQAZABmAGIAMwBcAHQAcwBjAGUAbABsAHAAYQBkAGQAZgByADMAXAB0AHMAYwBlAGwAbABwAGEAZABkAHIAMQAwADgAXAB0AHMAYwBlAGwAbABwAGEAZABkAGYAdAAzAFwAdABzAHYAZQByAHQAYQBsAHQAXABjAGwAdAB4AGwAcgB0AGIAIABOAG8AcgBtAGEAbAAgAFQAYQBiAGwAZQA7AH0AewBcACoAXAB0AHMANQBcAHQAcwByAG8AdwBkAFwAcwBiAGEAcwBlAGQAbwBuADQAXABmADEAXABmAHMAMgA0AFwAcQBsAFwAdAByAGIAcgBkAHIAdABcAGIAcgBkAHIAcwBcAGIAcgBkAHIAdwAxADAAXAB0AHIAYgByAGQAcgBsAFwAYgByAGQAcgBzAFwAYgByAGQAcgB3ADEAMABcAHQAcgBiAHIAZAByAGIAXABiAHIAZAByAHMAXABiAHIAZAByAHcAMQAwAFwAdAByAGIAcgBkAHIAcgBcAGIAcgBkAHIAcwBcAGIAcgBkAHIAdwAxADAAXAB0AHIAYgByAGQAcgBoAFwAYgByAGQAcgBzAFwAYgByAGQAcgB3ADEAMABcAHQAcgBiAHIAZAByAHYAXABiAHIAZAByAHMAXABiAHIAZAByAHcAMQAwAFwAdABzAGMAZQBsAGwAcABhAGQAZABmAGwAMwBcAHQAcwBjAGUAbABsAHAAYQBkAGQAbAAxADAAOABcAHQAcwBjAGUAbABsAHAAYQBkAGQAZgByADMAXAB0AHMAYwBlAGwAbABwAGEAZABkAHIAMQAwADgAXAB0AHMAdgBlAHIAdABhAGwAdABcAGMAbAB0AHgAbAByAHQAYgAgAFQAYQBiAGwAZQAgAFMAaQBtAHAAbABlACAAMQA7AH0AfQB7AFwAKgBcAGwAaQBzAHQAbwB2AGUAcgByAGkAZABlAHQAYQBiAGwAZQB9AFwAbgBvAHUAaQBjAG8AbQBwAGEAdABcAHMAcABsAHkAdAB3AG4AaQBuAGUAXABoAHQAbQBhAHUAdABzAHAAXABwAGEAcgBkAFwAcABsAGEAaQBuAFwAcQBsAHsAXABsAGEAbgBnADEAMAAzADEAXABsAGEAbgBnAGYAZQAxADAAMwAxAFwAZgAyAFwAZgBzADEANABcAGMAZgAxACAARwBlAHMAYwBoAH0AewBcAGwAYQBuAGcAMQAwADMAMQBcAGwAYQBuAGcAZgBlADEAMAAzADEAXABmADIAXABmAHMAMQA0AFwAYwBmADEAIABcAHUAMgAyADgAXAAnAGUANABmAHQAcwBmAFwAdQAyADUAMgBcACcAZgBjAGgAcgBlAHIAaQBuADoAfQBcAGwAYQBuAGcAMQAwADMAMQBcAGwAYQBuAGcAZgBlADEAMAAzADEAXABmADIAXABmAHMAMQA0AFwAYwBmADEAXABwAGEAcgBcAHAAYQByAGQAXABwAGwAYQBpAG4AXABxAGwAewBcAGwAYQBuAGcAMQAwADMAMQBcAGwAYQBuAGcAZgBlADEAMAAzADEAXABmADIAXABmAHMAMQA0AFwAYwBmADEAIABTAHUAbAB0AGEAbgAgAFMAYwBoAHUAbAB6AH0AXABsAGEAbgBnADEAMAAzADEAXABsAGEAbgBnAGYAZQAxADAAMwAxAFwAZgAyAFwAZgBzADEANABcAGMAZgAxAFwAcABhAHIAXABwAGEAcgBkAFwAcABsAGEAaQBuAFwAcQBsAHsAXABsAGEAbgBnADEAMAAzADEAXABsAGEAbgBnAGYAZQAxADAAMwAxAFwAZgAyAFwAZgBzADEANABcAGMAZgAxACAAKABNAH0AewBcAGwAYQBuAGcAMQAwADMAMQBcAGwAYQBuAGcAZgBlADEAMAAzADEAXABmADIAXABmAHMAMQA0AFwAYwBmADEAIAAuAEEALgApAH0AXABsAGEAbgBnADEAMAAzADEAXABsAGEAbgBnAGYAZQAxADAAMwAxAFwAZgAxAFwAZgBzADIANABcAGMAZgAxAFwAcABhAHIAfQA=
+
+
+ ewBcAHIAdABmADEAXABkAGUAZgBmADAAewBcAGYAbwBuAHQAdABiAGwAewBcAGYAMAAgAEMAYQBsAGkAYgByAGkAOwB9AHsAXABmADEAIABUAGkAbQBlAHMAIABOAGUAdwAgAFIAbwBtAGEAbgA7AH0AewBcAGYAMgAgAFYAZQByAGQAYQBuAGEAOwB9AH0AewBcAGMAbwBsAG8AcgB0AGIAbAAgADsAXAByAGUAZAAwAFwAZwByAGUAZQBuADAAXABiAGwAdQBlADAAIAA7AFwAcgBlAGQAMABcAGcAcgBlAGUAbgAwAFwAYgBsAHUAZQAyADUANQAgADsAfQB7AFwAKgBcAGQAZQBmAGMAaABwACAAXABmADEAXABmAHMAMgA0AH0AewBcAHMAdAB5AGwAZQBzAGgAZQBlAHQAIAB7AFwAcQBsAFwAZgAxAFwAZgBzADIANAAgAE4AbwByAG0AYQBsADsAfQB7AFwAKgBcAGMAcwAxAFwAZgAxAFwAZgBzADIANABcAGMAZgAxACAARABlAGYAYQB1AGwAdAAgAFAAYQByAGEAZwByAGEAcABoACAARgBvAG4AdAA7AH0AewBcACoAXABjAHMAMgBcAHMAYgBhAHMAZQBkAG8AbgAxAFwAZgAxAFwAZgBzADIANABcAGMAZgAxACAATABpAG4AZQAgAE4AdQBtAGIAZQByADsAfQB7AFwAKgBcAGMAcwAzAFwAdQBsAFwAZgAxAFwAZgBzADIANABcAGMAZgAyACAASAB5AHAAZQByAGwAaQBuAGsAOwB9AHsAXAAqAFwAdABzADQAXAB0AHMAcgBvAHcAZABcAGYAMQBcAGYAcwAyADQAXABxAGwAXAB0AHMAYwBlAGwAbABwAGEAZABkAGYAbAAzAFwAdABzAGMAZQBsAGwAcABhAGQAZABsADEAMAA4AFwAdABzAGMAZQBsAGwAcABhAGQAZABmAGIAMwBcAHQAcwBjAGUAbABsAHAAYQBkAGQAZgByADMAXAB0AHMAYwBlAGwAbABwAGEAZABkAHIAMQAwADgAXAB0AHMAYwBlAGwAbABwAGEAZABkAGYAdAAzAFwAdABzAHYAZQByAHQAYQBsAHQAXABjAGwAdAB4AGwAcgB0AGIAIABOAG8AcgBtAGEAbAAgAFQAYQBiAGwAZQA7AH0AewBcACoAXAB0AHMANQBcAHQAcwByAG8AdwBkAFwAcwBiAGEAcwBlAGQAbwBuADQAXABmADEAXABmAHMAMgA0AFwAcQBsAFwAdAByAGIAcgBkAHIAdABcAGIAcgBkAHIAcwBcAGIAcgBkAHIAdwAxADAAXAB0AHIAYgByAGQAcgBsAFwAYgByAGQAcgBzAFwAYgByAGQAcgB3ADEAMABcAHQAcgBiAHIAZAByAGIAXABiAHIAZAByAHMAXABiAHIAZAByAHcAMQAwAFwAdAByAGIAcgBkAHIAcgBcAGIAcgBkAHIAcwBcAGIAcgBkAHIAdwAxADAAXAB0AHIAYgByAGQAcgBoAFwAYgByAGQAcgBzAFwAYgByAGQAcgB3ADEAMABcAHQAcgBiAHIAZAByAHYAXABiAHIAZAByAHMAXABiAHIAZAByAHcAMQAwAFwAdABzAGMAZQBsAGwAcABhAGQAZABmAGwAMwBcAHQAcwBjAGUAbABsAHAAYQBkAGQAbAAxADAAOABcAHQAcwBjAGUAbABsAHAAYQBkAGQAZgByADMAXAB0AHMAYwBlAGwAbABwAGEAZABkAHIAMQAwADgAXAB0AHMAdgBlAHIAdABhAGwAdABcAGMAbAB0AHgAbAByAHQAYgAgAFQAYQBiAGwAZQAgAFMAaQBtAHAAbABlACAAMQA7AH0AfQB7AFwAKgBcAGwAaQBzAHQAbwB2AGUAcgByAGkAZABlAHQAYQBiAGwAZQB9AFwAbgBvAHUAaQBjAG8AbQBwAGEAdABcAHMAcABsAHkAdAB3AG4AaQBuAGUAXABoAHQAbQBhAHUAdABzAHAAXABwAGEAcgBkAFwAcABsAGEAaQBuAFwAcQBsAHsAXABsAGEAbgBnADEAMAAzADEAXABsAGEAbgBnAGYAZQAxADAAMwAxAFwAZgAyAFwAZgBzADEANABcAGMAZgAxACAAUABvAHMAdABiAGEAbgBrACAAQQBHAH0AXABsAGEAbgBnADEAMAAzADEAXABsAGEAbgBnAGYAZQAxADAAMwAxAFwAZgAyAFwAZgBzADEANABcAGMAZgAxAFwAcABhAHIAXABwAGEAcgBkAFwAcABsAGEAaQBuAFwAcQBsAHsAXABsAGEAbgBnADEAMAAzADEAXABsAGEAbgBnAGYAZQAxADAAMwAxAFwAZgAyAFwAZgBzADEANABcAGMAZgAxACAASQBCAEEATgA6ACAARABFADgAMAAgADMANwAwADEAIAAwADAANQAwACAAMAA5ADgAOQAgADAANQA4ADUAIAAwAH0AewBcAGwAYQBuAGcAMQAwADMAMQBcAGwAYQBuAGcAZgBlADEAMAAzADEAXABmADIAXABmAHMAMQA0AFwAYwBmADEAIAAwACAAQgB9AHsAXABsAGEAbgBnADEAMAAzADEAXABsAGEAbgBnAGYAZQAxADAAMwAxAFwAZgAyAFwAZgBzADEANABcAGMAZgAxACAASQBDADoAIABQAEIATgBLAEQARQBGAEYAfQBcAGwAYQBuAGcAMQAwADMAMQBcAGwAYQBuAGcAZgBlADEAMAAzADEAXABmADEAXABmAHMAMgA0AFwAYwBmADEAXABwAGEAcgB9AA==
+
+
+ ewBcAHIAdABmADEAXABkAGUAZgBmADAAewBcAGYAbwBuAHQAdABiAGwAewBcAGYAMAAgAEMAYQBsAGkAYgByAGkAOwB9AHsAXABmADEAIABUAGkAbQBlAHMAIABOAGUAdwAgAFIAbwBtAGEAbgA7AH0AewBcAGYAMgAgAFYAZQByAGQAYQBuAGEAOwB9AH0AewBcAGMAbwBsAG8AcgB0AGIAbAAgADsAXAByAGUAZAAwAFwAZwByAGUAZQBuADAAXABiAGwAdQBlADAAIAA7AFwAcgBlAGQAMABcAGcAcgBlAGUAbgAwAFwAYgBsAHUAZQAyADUANQAgADsAfQB7AFwAKgBcAGQAZQBmAGMAaABwACAAXABmADEAXABmAHMAMgA0AH0AewBcAHMAdAB5AGwAZQBzAGgAZQBlAHQAIAB7AFwAcQBsAFwAZgAxAFwAZgBzADIANAAgAE4AbwByAG0AYQBsADsAfQB7AFwAKgBcAGMAcwAxAFwAZgAxAFwAZgBzADIANABcAGMAZgAxACAARABlAGYAYQB1AGwAdAAgAFAAYQByAGEAZwByAGEAcABoACAARgBvAG4AdAA7AH0AewBcACoAXABjAHMAMgBcAHMAYgBhAHMAZQBkAG8AbgAxAFwAZgAxAFwAZgBzADIANABcAGMAZgAxACAATABpAG4AZQAgAE4AdQBtAGIAZQByADsAfQB7AFwAKgBcAGMAcwAzAFwAdQBsAFwAZgAxAFwAZgBzADIANABcAGMAZgAyACAASAB5AHAAZQByAGwAaQBuAGsAOwB9AHsAXAAqAFwAdABzADQAXAB0AHMAcgBvAHcAZABcAGYAMQBcAGYAcwAyADQAXABxAGwAXAB0AHMAYwBlAGwAbABwAGEAZABkAGYAbAAzAFwAdABzAGMAZQBsAGwAcABhAGQAZABsADEAMAA4AFwAdABzAGMAZQBsAGwAcABhAGQAZABmAGIAMwBcAHQAcwBjAGUAbABsAHAAYQBkAGQAZgByADMAXAB0AHMAYwBlAGwAbABwAGEAZABkAHIAMQAwADgAXAB0AHMAYwBlAGwAbABwAGEAZABkAGYAdAAzAFwAdABzAHYAZQByAHQAYQBsAHQAXABjAGwAdAB4AGwAcgB0AGIAIABOAG8AcgBtAGEAbAAgAFQAYQBiAGwAZQA7AH0AewBcACoAXAB0AHMANQBcAHQAcwByAG8AdwBkAFwAcwBiAGEAcwBlAGQAbwBuADQAXABmADEAXABmAHMAMgA0AFwAcQBsAFwAdAByAGIAcgBkAHIAdABcAGIAcgBkAHIAcwBcAGIAcgBkAHIAdwAxADAAXAB0AHIAYgByAGQAcgBsAFwAYgByAGQAcgBzAFwAYgByAGQAcgB3ADEAMABcAHQAcgBiAHIAZAByAGIAXABiAHIAZAByAHMAXABiAHIAZAByAHcAMQAwAFwAdAByAGIAcgBkAHIAcgBcAGIAcgBkAHIAcwBcAGIAcgBkAHIAdwAxADAAXAB0AHIAYgByAGQAcgBoAFwAYgByAGQAcgBzAFwAYgByAGQAcgB3ADEAMABcAHQAcgBiAHIAZAByAHYAXABiAHIAZAByAHMAXABiAHIAZAByAHcAMQAwAFwAdABzAGMAZQBsAGwAcABhAGQAZABmAGwAMwBcAHQAcwBjAGUAbABsAHAAYQBkAGQAbAAxADAAOABcAHQAcwBjAGUAbABsAHAAYQBkAGQAZgByADMAXAB0AHMAYwBlAGwAbABwAGEAZABkAHIAMQAwADgAXAB0AHMAdgBlAHIAdABhAGwAdABcAGMAbAB0AHgAbAByAHQAYgAgAFQAYQBiAGwAZQAgAFMAaQBtAHAAbABlACAAMQA7AH0AfQB7AFwAKgBcAGwAaQBzAHQAbwB2AGUAcgByAGkAZABlAHQAYQBiAGwAZQB9AFwAbgBvAHUAaQBjAG8AbQBwAGEAdABcAHMAcABsAHkAdAB3AG4AaQBuAGUAXABoAHQAbQBhAHUAdABzAHAAXABwAGEAcgBkAFwAcABsAGEAaQBuAFwAcQBsAHsAXABsAGEAbgBnADEAMAAzADEAXABsAGEAbgBnAGYAZQAxADAAMwAxAFwAZgAyAFwAZgBzADEANABcAGMAZgAxACAAXAB1ADIAMQA0AFwAJwBkADYAZgBmAG4AdQBuAGcAcwB6AGUAaQB0AGUAbgA6AH0AXABsAGEAbgBnADEAMAAzADEAXABsAGEAbgBnAGYAZQAxADAAMwAxAFwAZgAyAFwAZgBzADEANABcAGMAZgAxAFwAcABhAHIAXABwAGEAcgBkAFwAcABsAGEAaQBuAFwAcQBsAHsAXABsAGEAbgBnADEAMAAzADEAXABsAGEAbgBnAGYAZQAxADAAMwAxAFwAZgAyAFwAZgBzADEANABcAGMAZgAxACAATQBvAG4AfQB7AFwAbABhAG4AZwAxADAAMwAxAFwAbABhAG4AZwBmAGUAMQAwADMAMQBcAGYAMgBcAGYAcwAxADQAXABjAGYAMQAgAHQAYQBnACAALQAgAH0AewBcAGwAYQBuAGcAMQAwADMAMQBcAGwAYQBuAGcAZgBlADEAMAAzADEAXABmADIAXABmAHMAMQA0AFwAYwBmADEAIABGAHIAZQBpAHQAYQBnAH0AXABsAGEAbgBnADEAMAAzADEAXABsAGEAbgBnAGYAZQAxADAAMwAxAFwAZgAyAFwAZgBzADEANABcAGMAZgAxAFwAcABhAHIAXABwAGEAcgBkAFwAcABsAGEAaQBuAFwAcQBsAHsAXABsAGEAbgBnADEAMAAzADEAXABsAGEAbgBnAGYAZQAxADAAMwAxAFwAZgAyAFwAZgBzADEANABcAGMAZgAxACAAOAAuADAAMAAgAC0AIAAxADcALgAwADAAIABVAGgAcgB9AFwAbABhAG4AZwAxADAAMwAxAFwAbABhAG4AZwBmAGUAMQAwADMAMQBcAGYAMQBcAGYAcwAyADQAXABjAGYAMQBcAHAAYQByAH0A
+
+
+ ewBcAHIAdABmADEAXABkAGUAZgBmADAAewBcAGYAbwBuAHQAdABiAGwAewBcAGYAMAAgAEMAYQBsAGkAYgByAGkAOwB9AHsAXABmADEAIABUAGkAbQBlAHMAIABOAGUAdwAgAFIAbwBtAGEAbgA7AH0AewBcAGYAMgAgAFYAZQByAGQAYQBuAGEAOwB9AH0AewBcAGMAbwBsAG8AcgB0AGIAbAAgADsAXAByAGUAZAAwAFwAZwByAGUAZQBuADAAXABiAGwAdQBlADAAIAA7AFwAcgBlAGQAMABcAGcAcgBlAGUAbgAwAFwAYgBsAHUAZQAyADUANQAgADsAfQB7AFwAKgBcAGQAZQBmAGMAaABwACAAXABmADEAXABmAHMAMgA0AH0AewBcAHMAdAB5AGwAZQBzAGgAZQBlAHQAIAB7AFwAcQBsAFwAZgAxAFwAZgBzADIANAAgAE4AbwByAG0AYQBsADsAfQB7AFwAKgBcAGMAcwAxAFwAZgAxAFwAZgBzADIANABcAGMAZgAxACAARABlAGYAYQB1AGwAdAAgAFAAYQByAGEAZwByAGEAcABoACAARgBvAG4AdAA7AH0AewBcACoAXABjAHMAMgBcAHMAYgBhAHMAZQBkAG8AbgAxAFwAZgAxAFwAZgBzADIANABcAGMAZgAxACAATABpAG4AZQAgAE4AdQBtAGIAZQByADsAfQB7AFwAKgBcAGMAcwAzAFwAdQBsAFwAZgAxAFwAZgBzADIANABcAGMAZgAyACAASAB5AHAAZQByAGwAaQBuAGsAOwB9AHsAXAAqAFwAdABzADQAXAB0AHMAcgBvAHcAZABcAGYAMQBcAGYAcwAyADQAXABxAGwAXAB0AHMAYwBlAGwAbABwAGEAZABkAGYAbAAzAFwAdABzAGMAZQBsAGwAcABhAGQAZABsADEAMAA4AFwAdABzAGMAZQBsAGwAcABhAGQAZABmAGIAMwBcAHQAcwBjAGUAbABsAHAAYQBkAGQAZgByADMAXAB0AHMAYwBlAGwAbABwAGEAZABkAHIAMQAwADgAXAB0AHMAYwBlAGwAbABwAGEAZABkAGYAdAAzAFwAdABzAHYAZQByAHQAYQBsAHQAXABjAGwAdAB4AGwAcgB0AGIAIABOAG8AcgBtAGEAbAAgAFQAYQBiAGwAZQA7AH0AewBcACoAXAB0AHMANQBcAHQAcwByAG8AdwBkAFwAcwBiAGEAcwBlAGQAbwBuADQAXABmADEAXABmAHMAMgA0AFwAcQBsAFwAdAByAGIAcgBkAHIAdABcAGIAcgBkAHIAcwBcAGIAcgBkAHIAdwAxADAAXAB0AHIAYgByAGQAcgBsAFwAYgByAGQAcgBzAFwAYgByAGQAcgB3ADEAMABcAHQAcgBiAHIAZAByAGIAXABiAHIAZAByAHMAXABiAHIAZAByAHcAMQAwAFwAdAByAGIAcgBkAHIAcgBcAGIAcgBkAHIAcwBcAGIAcgBkAHIAdwAxADAAXAB0AHIAYgByAGQAcgBoAFwAYgByAGQAcgBzAFwAYgByAGQAcgB3ADEAMABcAHQAcgBiAHIAZAByAHYAXABiAHIAZAByAHMAXABiAHIAZAByAHcAMQAwAFwAdABzAGMAZQBsAGwAcABhAGQAZABmAGwAMwBcAHQAcwBjAGUAbABsAHAAYQBkAGQAbAAxADAAOABcAHQAcwBjAGUAbABsAHAAYQBkAGQAZgByADMAXAB0AHMAYwBlAGwAbABwAGEAZABkAHIAMQAwADgAXAB0AHMAdgBlAHIAdABhAGwAdABcAGMAbAB0AHgAbAByAHQAYgAgAFQAYQBiAGwAZQAgAFMAaQBtAHAAbABlACAAMQA7AH0AfQB7AFwAKgBcAGwAaQBzAHQAbwB2AGUAcgByAGkAZABlAHQAYQBiAGwAZQB9AFwAbgBvAHUAaQBjAG8AbQBwAGEAdABcAHMAcABsAHkAdAB3AG4AaQBuAGUAXABoAHQAbQBhAHUAdABzAHAAXABwAGEAcgBkAFwAcABsAGEAaQBuAFwAcQBsAHsAXABsAGEAbgBnADEAMAAzADEAXABsAGEAbgBnAGYAZQAxADAAMwAxAFwAZgAyAFwAZgBzADEANABcAGMAZgAxACAAQgBFAFcATwBMAE8ATgBJAEEAfQBcAGwAYQBuAGcAMQAwADMAMQBcAGwAYQBuAGcAZgBlADEAMAAzADEAXABmADIAXABmAHMAMQA0AFwAYwBmADEAXABwAGEAcgBcAHAAYQByAGQAXABwAGwAYQBpAG4AXABxAGwAewBcAGwAYQBuAGcAMQAwADMAMQBcAGwAYQBuAGcAZgBlADEAMAAzADEAXABmADIAXABmAHMAMQA0AFwAYwBmADEAIABLAGEAbAB9AHsAXABsAGEAbgBnADEAMAAzADEAXABsAGEAbgBnAGYAZQAxADAAMwAxAFwAZgAyAFwAZgBzADEANABcAGMAZgAxACAAawAtAE0AXAB1ADIANQAyAFwAJwBmAGMAbABoAGUAaQBtAGUAcgAtAFMAdAByAC4AIAAxAH0AXABsAGEAbgBnADEAMAAzADEAXABsAGEAbgBnAGYAZQAxADAAMwAxAFwAZgAyAFwAZgBzADEANABcAGMAZgAxAFwAcABhAHIAXABwAGEAcgBkAFwAcABsAGEAaQBuAFwAcQBsAHsAXABsAGEAbgBnADEAMAAzADEAXABsAGEAbgBnAGYAZQAxADAAMwAxAFwAZgAyAFwAZgBzADEANABcAGMAZgAxACAANQAxADEAMAAzACAAfQB7AFwAbABhAG4AZwAxADAAMwAxAFwAbABhAG4AZwBmAGUAMQAwADMAMQBcAGYAMgBcAGYAcwAxADQAXABjAGYAMQAgAEsAXAB1ADIANAA2AFwAJwBmADYAbABuAH0AXABmADEAXABmAHMAMgA0AFwAYwBmADEAXABwAGEAcgB9AA==
+
+
+ 17, 17
+
+
\ No newline at end of file
diff --git a/ReportImp/Bewolonia/logo.jpg b/ReportImp/Bewolonia/logo.jpg
new file mode 100644
index 000000000..87522b44b
Binary files /dev/null and b/ReportImp/Bewolonia/logo.jpg differ
diff --git a/Service/DCEntityMapper/MapperFactory.cs b/Service/DCEntityMapper/MapperFactory.cs
index 17f7802c7..a8b4a375d 100644
--- a/Service/DCEntityMapper/MapperFactory.cs
+++ b/Service/DCEntityMapper/MapperFactory.cs
@@ -266,6 +266,8 @@ namespace BeWo.Service.DCEntityMapper
private static DienstvertretungDC_Dienstvertretung _DienstvertretungDC_Dienstvertretung;
+ private static RegelmaessigerDienstDC_RegelmaessigerDienst _RegelmaessigerDienstDC_RegelmaessigerDienst;
+
private static RatingDC_Rating _RatingDC_Rating;
private static RatingTypeDC_RatingType _RatingTypeDC_RatingType;
@@ -692,6 +694,9 @@ namespace BeWo.Service.DCEntityMapper
public static DienstEintragDC_DienstEintrag DienstEintragDC_DienstEintrag =>
_DienstEintragDC_DienstEintrag ?? (_DienstEintragDC_DienstEintrag = new DienstEintragDC_DienstEintrag());
+ public static RegelmaessigerDienstDC_RegelmaessigerDienst RegelmaessigerDienstDC_RegelmaessigerDienst =>
+ _RegelmaessigerDienstDC_RegelmaessigerDienst ?? (_RegelmaessigerDienstDC_RegelmaessigerDienst = new RegelmaessigerDienstDC_RegelmaessigerDienst());
+
public static DienstvertretungDC_Dienstvertretung DienstvertretungDC_Dienstvertretung =>
_DienstvertretungDC_Dienstvertretung ?? (_DienstvertretungDC_Dienstvertretung = new DienstvertretungDC_Dienstvertretung());
diff --git a/Service/DCEntityMapper/RegelmaessigerDienstDC_RegelmaessigerDienst.cs b/Service/DCEntityMapper/RegelmaessigerDienstDC_RegelmaessigerDienst.cs
new file mode 100644
index 000000000..d9132c729
--- /dev/null
+++ b/Service/DCEntityMapper/RegelmaessigerDienstDC_RegelmaessigerDienst.cs
@@ -0,0 +1,55 @@
+using BeWo.Data.Entities;
+using BS.Shared.DataContracts;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace BeWo.Service.DCEntityMapper
+{
+ public class RegelmaessigerDienstDC_RegelmaessigerDienst : AbstractIDCEntityMapper
+ {
+ public override RegelmaessigerDienstDC MergeWithDC(RegelmaessigerDienst bEntity, RegelmaessigerDienstDC bDataContract)
+ {
+ bDataContract.Oid = bEntity.Oid;
+ bDataContract.Notice = bEntity.Notice;
+ bDataContract.Version = bEntity.Version;
+
+ bDataContract.Wochentag = bEntity.Wochentag;
+ bDataContract.DienstOid = bEntity.DienstOid;
+ bDataContract.EmployeeOid = bEntity.EmployeeOid;
+ bDataContract.WohnheimOid = bEntity.WohnheimOid;
+ bDataContract.Zeile = bEntity.Zeile;
+ bDataContract.Startzeit = bEntity.Startzeit;
+ bDataContract.Endzeit = bEntity.Endzeit;
+ bDataContract.DauerInStunden = bEntity.DauerInStunden;
+
+ return bDataContract;
+ }
+
+ public override RegelmaessigerDienst MergeWithEntity(RegelmaessigerDienstDC bDataContract, RegelmaessigerDienst bEntity)
+ {
+ this.ConcurrencyCheck(bDataContract.Version, bEntity);
+
+ bEntity.Oid = bDataContract.Oid;
+ bEntity.Notice = bDataContract.Notice;
+
+ bEntity.Wochentag = bDataContract.Wochentag;
+ bEntity.DienstOid = bDataContract.DienstOid;
+ bEntity.EmployeeOid = bDataContract.EmployeeOid;
+ bEntity.WohnheimOid = bDataContract.WohnheimOid;
+ bEntity.Zeile = bDataContract.Zeile;
+ bEntity.Startzeit = bDataContract.Startzeit;
+ bEntity.Endzeit = bDataContract.Endzeit;
+ bEntity.DauerInStunden = bDataContract.DauerInStunden;
+
+ return bEntity;
+ }
+
+ protected override bool AreDCAndEntityEqual(RegelmaessigerDienstDC bDC, RegelmaessigerDienst bEntity)
+ {
+ return bDC.Oid != null && bDC.Oid == bEntity.Oid;
+ }
+ }
+}
diff --git a/Service/Dienstplanung/DienstplanungsManager.cs b/Service/Dienstplanung/DienstplanungsManager.cs
index 9005306ac..61a714aae 100644
--- a/Service/Dienstplanung/DienstplanungsManager.cs
+++ b/Service/Dienstplanung/DienstplanungsManager.cs
@@ -15,7 +15,7 @@ namespace BeWo.Service.Dienstplanung
{
internal class DienstplanungsManager
{
- public static DienstplanerRootDC BuildDienstplanerRootObject()
+ public static DienstplanerRootDC BuildDienstplanerRootObject(DateTime date, long wohnheimOid)
{
DienstplanerRootDC root = new DienstplanerRootDC();
@@ -24,13 +24,28 @@ namespace BeWo.Service.Dienstplanung
root.TextBoxForeColor = GetColorForForeground();
- return root;
- }
- public static DienstplanerRootDC AddMissingDataToDienstplanerRootObject(DienstplanerRootDC root, DateTime date, long wohnheimOid)
- {
root.AlleDienstEintraege = GetAllDienstEintraegeAsList(wohnheimOid, date.Year, date.Month);
- root.AlleDienstvertretungen = GetAllDienstvertretungenAsList(wohnheimOid, date.Year, date.Month);
+ foreach (var e in root.AlleDienstEintraege)
+ {
+ if (String.IsNullOrEmpty(e.Startzeit) || String.IsNullOrEmpty(e.Endzeit))
+ {
+ var d = root.AlleDienste.FirstOrDefault(a => a.Oid == e.DienstOid);
+ if (d != null)
+ {
+ if (String.IsNullOrEmpty(e.Startzeit))
+ {
+ e.Startzeit = String.Format("{0:HH:mm}", d.Start);
+ }
+ if (String.IsNullOrEmpty(e.Endzeit))
+ {
+ e.Endzeit = String.Format("{0:HH:mm}", d.Ende);
+ }
+ }
+ }
+ }
+ root.AlleDienstvertretungen = GetAllDienstvertretungenAsList(wohnheimOid, date.Year, date.Month);
+
root.DienstDCListe = GetDienstEintraege(wohnheimOid, date.Year, date.Month);
root.DienstDCListe.AddRange(GetDienstvertretungen(wohnheimOid, date.Year, date.Month));
root.DienstDCListe = root.DienstDCListe.OrderBy(d => d.Employee.LastName).ToList();
@@ -80,10 +95,7 @@ namespace BeWo.Service.Dienstplanung
{
var res = new List();
- var dienstEintraege = DAOFactory.GenericDAO.GetAllActive().Where(x =>
- x.WohnheimOid == wOid &&
- x.Datum.Month == month &&
- x.Datum.Year == year);
+ var dienstEintraege = DAOFactory.SearchDAO.GetAllDienstEintraege(wOid, new DateTime(year, month, 1), new DateTime(year, month, 1).AddMonths(1).AddMinutes(-1));
var dienstEintraegeDC = MapperFactory.DienstEintragDC_DienstEintrag.MapToNewDCs(dienstEintraege);
res.AddRange(dienstEintraegeDC);
@@ -148,6 +160,45 @@ namespace BeWo.Service.Dienstplanung
res.Add(zeile);
}
+ //Frühere Schichten entfernter Mitarbeiter anzeigen lassen
+ List oids = new List();
+ foreach (var emp in empsDC)
+ oids.Add(emp.EmployeeOid);
+
+ foreach (var eintrag in dienstEintraegeDC)
+ {
+ if(!oids.Contains(eintrag.EmployeeOid))
+ {
+ var emp = MapperFactory.EmployeeDC_Employee.MapToNewDC(DAOFactory.GenericDAO.GetByID(eintrag.EmployeeOid));
+
+ var contracts = emp.Contracts.Where(x => (!x.EntryDate.HasValue || x.EntryDate.Value <= date2) &&
+ (!x.ContractEndDate.HasValue || x.ContractEndDate.Value >= date))
+ .OrderBy(x => x.EntryDate)
+ .ToList();
+
+ var zeile = new DienstBlockDC
+ {
+ Employee = emp,
+ Contracts = contracts,
+ Wohnheim = whDC,
+ DienstDictArray = new Dictionary[3]
+ };
+
+ for (int i = 0; i < zeile.DienstDictArray.Length; i++)
+ {
+ var empDienste = dienstEintraegeDC
+ .Where(x => x.EmployeeOid == emp.EmployeeOid && x.Zeile == i);
+
+ zeile.DienstDictArray[i] = empDienste
+ .ToDictionary(x => x.Datum.Day, x => x.DienstOid);
+ }
+
+ oids.Add(eintrag.EmployeeOid);
+
+ res.Add(zeile);
+ }
+ }
+
return res;
}
diff --git a/Service/Dienstplanung/Mitarbeiterstundenkonto.cs b/Service/Dienstplanung/Mitarbeiterstundenkonto.cs
new file mode 100644
index 000000000..c59af6db8
--- /dev/null
+++ b/Service/Dienstplanung/Mitarbeiterstundenkonto.cs
@@ -0,0 +1,464 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Windows.Ink;
+using BS.Shared.Core;
+using BeWo.Data.Access;
+using BeWo.Data.Entities;
+using BS.Shared;
+using BS.Shared.DataContracts;
+using BS.Shared.Extensions;
+
+namespace BeWo.Service.Dienstplanung
+{
+ public class MitarbeiterstundenkontoRO
+ {
+ List _EmployeeDetailList = new List();
+ List _TeamDetailList = new List();
+
+ public DateTime ReportStartDate { get; set; }
+ public DateTime ReportEndDate { get; set; }
+ public decimal SollGesamt { get; set; }
+
+ public decimal FlsSollGesamt { get; set; }
+
+ public decimal FlsIstGesamt { get; set; }
+
+ public decimal FlsDiffGesamt { get; set; }
+
+ public decimal StundenGesamt { get; set; }
+
+ public decimal RelationIstSollGesamt { get; set; }
+
+ public decimal MittelbarIst { get; set; }
+
+ public decimal RelationFlsZuMittelbar { get; set; }
+
+ public List EmployeeDetailList
+ {
+ get { return this._EmployeeDetailList; }
+
+ set { this._EmployeeDetailList = value; }
+ }
+
+ public List TeamDetailList
+ {
+ get { return this._TeamDetailList; }
+
+ set { this._TeamDetailList = value; }
+ }
+
+ public static MitarbeiterstundenkontoRO Create(long? employeeOid, IList teamOids, DateTime startDate, DateTime endDate, IEnumerable employeeOids)
+ {
+ Team team = null;
+
+ Dictionary empOidDict = new Dictionary();
+
+ var ro = new MitarbeiterstundenkontoRO {ReportStartDate = startDate, ReportEndDate = endDate};
+
+ IList employees = null;
+
+ if (employeeOid.HasValue)
+ {
+ var emp = DAOFactory.GenericDAO.GetByID(employeeOid.Value);
+ employees = new List {emp};
+ }
+ else if (teamOids != null)
+ {
+ foreach (var teamOid in teamOids)
+ {
+ team = DAOFactory.GenericDAO.GetByID(teamOid);
+ if (employees == null)
+ {
+ employees = team.MemberList;
+ }
+ else
+ {
+ employees.AddRange(team.MemberList);
+ team = null;
+ }
+
+ }
+
+ }
+ else if(employeeOids != null)
+ {
+ employees = DAOFactory.GenericDAO.LoadByIDs(employeeOids);
+ }
+ else
+ {
+ employees = DAOFactory.GenericDAO.GetAllActiveAndArchived();
+
+ }
+
+ if (employees == null)
+ {
+ employees = new List();
+ }
+ foreach (var emp in employees)
+ {
+ if (!empOidDict.ContainsKey(emp.Oid.Value))
+ {
+ var empDetail = new EmployeeDetail();
+
+ bool add = true;
+
+ if (emp.IsActive == ActivationTypeId.Archived)
+ {
+ Contract c = emp.GetValidContractForDate(ro.ReportStartDate);
+
+ if (c == null) // Kein Vertrag vom 1. gefunden, gucken, ob es einen gibt, der mitten im Monat beginnt.
+ {
+ var c2 = GetNextValidContractForDate(ro.ReportStartDate, emp);
+ if (c2 != null && c2.EntryDate.HasValue && c2.EntryDate.Value < ro.ReportEndDate)
+ c = c2;
+ }
+ if (c == null)
+ {
+ add = false;
+ }
+ }
+
+ if (add)
+ {
+ ro.EmployeeDetailList.Add(CreateEmployeeDetail(emp, team));
+ }
+
+ if (!empOidDict.ContainsKey(emp.Oid.Value))
+ {
+ empOidDict.Add(emp.Oid.Value, true);
+ }
+ }
+ }
+
+ var teamOid2Details = new Dictionary();
+
+ foreach (var employee in ro.EmployeeDetailList)
+ {
+ if (employee.Teams.Count > 0)
+ {
+ foreach (var t in employee.Teams)
+ {
+ TeamDetail td;
+ if (!teamOid2Details.ContainsKey(t.Oid.Value))
+ {
+ td = new TeamDetail {TeamName = t.Name, TeamLeader = t.Leader};
+ ro.TeamDetailList.Add(td);
+ teamOid2Details.Add(t.Oid.Value, td);
+ }
+ else
+ {
+ td = teamOid2Details[t.Oid.Value];
+ }
+ td.EmployeeDetailList.Add(employee);
+ }
+ }
+ }
+ ro.TeamDetailList.Sort((t1, t2) => t1.TeamName.CompareTo(t2.TeamName));
+ foreach (var teamDetail in ro.TeamDetailList)
+ {
+ if (teamDetail.EmployeeDetailList != null)
+ {
+ teamDetail.EmployeeDetailList.Sort((e1, e2) => e1.FullName.CompareTo(e2.FullName));
+ }
+ }
+ ro.EmployeeDetailList.Sort((e1, e2) => e1.FullName.CompareTo(e2.FullName));
+ return ro;
+ }
+
+ private static Contract GetNextValidContractForDate(DateTime dt, Employee emp)
+ {
+ Contract contractNextToStartDate = emp.GetValidContractForDate(dt);
+
+ if (contractNextToStartDate == null)
+ {
+
+ foreach (var item in emp.Contracts)
+ {
+ if (item.EntryDate.HasValue && item.EntryDate.Value >= dt)
+ {
+ if (contractNextToStartDate == null || item.EntryDate.Value < contractNextToStartDate.EntryDate.Value)
+ {
+ contractNextToStartDate = item;
+ }
+ }
+
+
+ }
+ }
+ return contractNextToStartDate;
+ }
+
+ public class TeamDetail
+ {
+ private List _EmployeeDetailList = new List();
+
+ public string TeamName { get; set; }
+
+ public Employee TeamLeader { get; set; }
+
+ public decimal SollGesamt { get; set; }
+
+ public decimal FlsSollGesamt { get; set; }
+
+ public decimal FlsIstGesamt { get; set; }
+
+ public decimal FlsDiffGesamt { get; set; }
+
+ public decimal StundenGesamt { get; set; }
+
+ public decimal RelationIstSollGesamt { get; set; }
+
+ public decimal MittelbarIst { get; set; }
+
+ public decimal RelationFlsZuMittelbar { get; set; }
+
+ public List EmployeeDetailList
+ {
+ get
+ {
+ return this._EmployeeDetailList;
+ }
+
+ set
+ {
+ this._EmployeeDetailList = value;
+ }
+ }
+
+ }
+
+ public class EmployeeDetail
+ {
+ public IList Teams { get; set; }
+
+ public IList Days { get; set; }
+
+ public IList ServiceRecordsInSelectedTimeSpan { get; set; }
+
+ public Employee Employee { get; set; }
+
+ public string FirstName { get; set; }
+
+ public string LastName { get; set; }
+
+ public string FullName { get; set; }
+
+ public bool HasContract { get; set; }
+
+ public decimal FlsIst { get; set; }
+
+ public decimal MittelbarIst { get; set; }
+
+ public decimal Bu { get; set; }
+
+ public decimal StundenSollMax { get; set; }
+
+ //FLS Max - Urlaub/Krankheit und Fortbildung
+ public decimal StundenSollOhneUrlaubKrankheit { get; set; }
+
+ public decimal FlsSoll { get; set; }
+
+ public decimal FlsDiff { get; set; }
+
+ public decimal? Fehlzeiten { get; set; }
+
+ public decimal? TageUrlaub { get; set; }
+
+ public decimal? TageKrankheit { get; set; }
+
+ public decimal? UrlaubUndKrankheit { get; set; }
+
+ public decimal? UrlaubGesamtImAktuellenJahr { get; set; }
+
+ public decimal? UrlaubSoll { get; set; }
+
+ public decimal? UrlaubsKonto { get; set; }
+
+ public decimal StundenMittelbarIst { get; set; }
+
+ public decimal StundenGesamtIst { get; set; }
+
+ public decimal RelationFlsZuMittelbar { get; set; }
+
+ public decimal RelationIstSoll { get; set; }
+
+ public decimal? Ueberstunden { get; set; }
+
+ public decimal? UeberstundenVormonat { get; set; }
+
+ public decimal? UeberstundenGesamt { get; set; }
+
+ public decimal UeberstundenAusbezahlt { get; set; }
+
+ public decimal WorkDaysThisMonth { get; set; }
+
+ public decimal SollProTag { get; set; }
+
+ public decimal SollProWoche { get; set; }
+
+ public decimal Custom1 { get; set; }
+
+ public decimal Custom2 { get; set; }
+
+ public decimal Custom3 { get; set; }
+
+ public decimal Custom4 { get; set; }
+
+ public decimal Custom5 { get; set; }
+
+ public decimal Custom6 { get; set; }
+
+ public decimal Custom7 { get; set; }
+
+ public decimal Custom8 { get; set; }
+
+ public decimal Custom9 { get; set; }
+
+ public decimal Custom10 { get; set; }
+
+ public String Regelarbeitszeit { get; set; }
+
+ public int ArbeitstageProWoche { get; set; }
+
+ public decimal ArbeitstageImBerichtszeitraum { get; set; }
+
+ public AbsenceTimeDays AbsenceTimeDays { get; set; }
+ public decimal? HourlyRate { get; set; }
+ public decimal? WeeklyFLS { get; set; }
+ public decimal? EmployeeSalaryByContract { get; set; }
+ public decimal? EmployeeSalaryByHours { get; set; }
+ public EmploymentType EmploymentType { get; set; }
+ }
+
+ public class DayDetail
+ {
+ public DateTime Date { get; set; }
+
+ public DateTime? StartDateTime1 { get; set; }
+ public DateTime? EndDateTime1 { get; set; }
+
+ public DateTime? StartDateTime2 { get; set; }
+ public DateTime? EndDateTime2 { get; set; }
+
+ public DateTime? StartDateTime3 { get; set; }
+ public DateTime? EndDateTime3 { get; set; }
+
+ public DateTime? StartDateTime4 { get; set; }
+ public DateTime? EndDateTime4 { get; set; }
+
+ public decimal HoursSaturday { get; set; }
+
+ public decimal HoursSunday { get; set; }
+
+ public decimal HoursHoliday { get; set; }
+
+ public decimal HoursHoliday2 { get; set; }
+
+ public IList AbsenceTimes { get; set; }
+
+ public decimal HoursInVacation { get; set; }
+
+ public decimal HoursSick { get; set; }
+
+ public decimal MinutesTotal { get; set; }
+
+ public String Custom1 { get; set; }
+
+ public String Custom2 { get; set; }
+
+ public String Custom3 { get; set; }
+
+ public String Custom4 { get; set; }
+
+ public String Custom5 { get; set; }
+
+ public String Custom6 { get; set; }
+
+ public String Custom7 { get; set; }
+
+ public String Custom8 { get; set; }
+
+ public String Custom9 { get; set; }
+
+ public String Custom10 { get; set; }
+
+ public IList ServiceRecords { get; set; }
+
+ public int? NightStart { get; set; }
+
+ public int? NightEnd { get; set; }
+
+ public int? MaxHoursUntilBreak { get; set; }
+
+ public decimal PauseInMinuten { get; set; }
+
+ public int? BreakMinutes { get; set; }
+
+ public int? MaxHoursUntilBreak2 { get; set; }
+
+ public int? BreakMinutes2 { get; set; }
+
+ public decimal SpecialHours { get; set; }
+
+ public IList ZusammenhaengendeZeitraeume { get; set; }
+
+ public String ZeitraeumeString
+ {
+ get
+ {
+ String str = "";
+ if (AbsenceTimes != null)
+ {
+ foreach (var at in AbsenceTimes)
+ {
+ if (at.AbsenceReason != null)
+ {
+ if (str.Length > 0)
+ {
+ str += ", ";
+ }
+
+ str += at.AbsenceReason.Description
+ ;
+ }
+
+ }
+ }
+ if (ZusammenhaengendeZeitraeume != null)
+ {
+ foreach (var dts in ZusammenhaengendeZeitraeume)
+ {
+ if (dts.StartDateTime != dts.EndDateTime)
+ {
+ if (str.Length > 0)
+ {
+ str += ", ";
+ }
+
+ str += String.Format("{0:HH:mm} - {1:HH:mm}", dts.StartDateTime, dts.EndDateTime);
+ }
+ }
+ }
+
+ return str;
+ }
+ }
+
+ }
+
+ public static EmployeeDetail CreateEmployeeDetail(Employee employee, Team team)
+ {
+ var employeeDetail = new EmployeeDetail
+ {
+ Teams = team == null ? DAOFactory.SearchDAO.FindTeamsOfEmployee(employee.Oid.Value) : new List { team },
+ Employee = employee,
+ LastName = employee.Person.LastName,
+ FirstName = employee.Person.FirstName,
+ FullName = $"{employee.Person.LastName}, {employee.Person.FirstName}"
+ };
+
+ return employeeDetail;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Service/Dienstplanung/MitarbeiterstundenkontoBerechnung.cs b/Service/Dienstplanung/MitarbeiterstundenkontoBerechnung.cs
new file mode 100644
index 000000000..31b7ddbd8
--- /dev/null
+++ b/Service/Dienstplanung/MitarbeiterstundenkontoBerechnung.cs
@@ -0,0 +1,2663 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Windows.Forms;
+using BeWo.Data.Entities;
+using BeWo.Data.Access;
+using BeWo.Service.Configuration;
+using BeWo.Service.ServiceImplementations;
+using BS.Shared;
+using BS.Shared.Core;
+using BS.Shared.Extensions;
+using DevExpress.XtraCharts.Native;
+
+
+namespace BeWo.Service.Dienstplanung
+{
+ public class MitarbeiterstundenkontoBerechnung
+ {
+ private decimal maxWochenstunden = 40;
+ private AppSettings appSettings;
+ private const int ANZ_WOCHENTAGE = 5;
+
+
+ public MitarbeiterstundenkontoBerechnung()
+ {
+ appSettings = AppSettings.CreateSettings();
+ CheckIst = true;
+ }
+
+ public MitarbeiterstundenkontoBerechnung(decimal maxWochenstunden) : this()
+ {
+ this.maxWochenstunden = maxWochenstunden;
+ }
+
+ public bool CheckIst { get; set; }
+
+ public virtual void CreateReport(MitarbeiterstundenkontoRO ro)
+ {
+ CreateEmployeeDetails(ro);
+
+ CreateTeamDetails(ro);
+
+ CreateTotals(ro);
+
+
+ }
+
+ public virtual void CreateTotals(MitarbeiterstundenkontoRO ro)
+ {
+ foreach (var empDetail in ro.EmployeeDetailList)
+ {
+
+ ro.SollGesamt += empDetail.StundenSollOhneUrlaubKrankheit;
+ ro.FlsSollGesamt += empDetail.FlsSoll;
+ ro.FlsIstGesamt += empDetail.FlsIst;
+ ro.MittelbarIst += empDetail.MittelbarIst;
+ ro.FlsDiffGesamt += empDetail.FlsDiff;
+ ro.StundenGesamt += empDetail.StundenGesamtIst;
+ }
+
+ if (ro.FlsSollGesamt != 0)
+ ro.RelationIstSollGesamt = (ro.FlsIstGesamt / ro.FlsSollGesamt) * 100m;
+
+ if (ro.FlsIstGesamt + ro.MittelbarIst != 0)
+ ro.RelationFlsZuMittelbar = (ro.FlsIstGesamt / (ro.FlsIstGesamt + ro.MittelbarIst)) * 100;
+ }
+
+ public virtual void CreateTeamDetails(MitarbeiterstundenkontoRO ro)
+ {
+ foreach (var teamDetail in ro.TeamDetailList)
+ {
+ teamDetail.EmployeeDetailList = FilterEmployeeList(teamDetail.EmployeeDetailList);
+ foreach (var empDetail in teamDetail.EmployeeDetailList)
+ {
+ teamDetail.SollGesamt += empDetail.StundenSollOhneUrlaubKrankheit;
+ teamDetail.FlsSollGesamt += empDetail.FlsSoll;
+ teamDetail.FlsIstGesamt += empDetail.FlsIst;
+ teamDetail.MittelbarIst += empDetail.MittelbarIst;
+ teamDetail.FlsDiffGesamt += empDetail.FlsDiff;
+ teamDetail.StundenGesamt += empDetail.StundenGesamtIst;
+ }
+ if (teamDetail.FlsSollGesamt != 0)
+ teamDetail.RelationIstSollGesamt = (teamDetail.FlsIstGesamt / teamDetail.FlsSollGesamt) * 100m;
+
+ if (teamDetail.FlsIstGesamt + teamDetail.MittelbarIst != 0)
+ teamDetail.RelationFlsZuMittelbar = (teamDetail.FlsIstGesamt / (teamDetail.FlsIstGesamt + teamDetail.MittelbarIst)) * 100;
+ }
+
+
+ }
+
+ public virtual void CreateEmployeeDetails(MitarbeiterstundenkontoRO ro)
+ {
+ foreach (var empDetail in ro.EmployeeDetailList)
+ {
+ DateTime monatsAnfang = ro.ReportStartDate;
+ DateTime monatsEnde = monatsAnfang.AddMonths(1);
+ DateTime berichtsAnfang = monatsAnfang;
+ DateTime berichtsEnde = monatsEnde;
+
+ Employee emp = empDetail.Employee;
+
+ decimal bu = 0;
+
+ var c = GetContractForDate(emp, ro.ReportStartDate, ro.ReportEndDate);
+
+ if (c != null)
+ {
+ if (c.EntryDate.HasValue && c.EntryDate > monatsAnfang)
+ {
+ berichtsAnfang = c.EntryDate.Value;
+ }
+ if (c.ContractEndDate.HasValue && c.ContractEndDate < monatsEnde)
+ {
+ berichtsEnde = c.ContractEndDate.Value.Date.AddDays(1);
+ }
+ empDetail.HasContract = true;
+ }
+
+ ServiceRecordSummary summaryTotal = new ServiceRecordSummary();
+ summaryTotal.RecordsImBerichtszeitraum = new List();
+
+ decimal pause1 = 0;
+ decimal pause2 = 0;
+ decimal weeklyTotalHours = 0;
+ decimal flsSollGesamt = 0;
+ decimal? fehlZeitenGesamt = null;
+ decimal? tageUrlaubGesamt = null;
+ decimal? tageKrankheitGesamt = null;
+ decimal? abwesenheitTageGesamt = null;
+ decimal workdaysTotal = 0;
+ decimal stundenSollGesamt = 0;
+ decimal tatSollStdGesamt = 0;
+
+ IList recordsAll = DAOFactory.SearchDAO.FindServiceRecords(emp.Oid, null);
+ recordsAll = AnalysisServiceImp.FilterActiveServiceRecords(recordsAll);
+
+ //
+ IList groupFilteredRecords = new List();
+ Dictionary groupBookingDict = new Dictionary();
+ foreach (var item in recordsAll)
+ {
+
+ if (!item.GroupOid.HasValue || !groupBookingDict.ContainsKey(item.GroupOid.Value))
+ {
+ groupFilteredRecords.Add(item);
+ if (item.GroupOid.HasValue)
+ {
+ groupBookingDict.Add(item.GroupOid.Value, true);
+ }
+ }
+ }
+
+ while (berichtsAnfang < berichtsEnde)
+ {
+ empDetail.ArbeitstageImBerichtszeitraum = GetArbeitstageImBereich(berichtsAnfang, berichtsEnde, emp);
+ empDetail.ArbeitstageProWoche = ANZ_WOCHENTAGE;
+
+
+ workdaysTotal += empDetail.ArbeitstageImBerichtszeitraum;
+ weeklyTotalHours = 0;
+
+ if (c != null)
+ {
+ if (c.WeeklyTotalHours.HasValue)
+ {
+ weeklyTotalHours = c.WeeklyTotalHours.Value;
+ bu = c.WeeklyTotalHours.Value/this.maxWochenstunden;
+ }
+ if (c.WeeklyDays.HasValue && c.WeeklyDays.Value > 0)
+ {
+ empDetail.ArbeitstageProWoche = c.WeeklyDays.Value;
+ }
+
+ empDetail.WeeklyFLS = c.WeeklyFLS;
+ empDetail.HourlyRate = c.HourlyRate;
+ empDetail.EmploymentType = c.EmploymentType;
+
+
+ }
+ empDetail.SollProTag = (weeklyTotalHours / empDetail.ArbeitstageProWoche);
+ empDetail.SollProWoche = BerechneSollProWoche(c, empDetail);
+
+ HandleServiceRecords(empDetail, groupFilteredRecords, c);
+
+ if (CheckIst)
+ {
+
+ var summary = BerechneStunden(empDetail, groupFilteredRecords, berichtsAnfang, berichtsEnde);
+ summaryTotal.IstAbrechenbar += summary.IstAbrechenbar;
+ summaryTotal.IstNichtAbrechenbar += summary.IstNichtAbrechenbar;
+ summaryTotal.RecordsImBerichtszeitraum.AddRange(summary.RecordsImBerichtszeitraum);
+
+ if (SollPauseBerechnen())
+ {
+ pause1 += BerechnePauseMinuten(summary.RecordsImBerichtszeitraum);
+ pause2 += BerechneAutoPausen(summary.RecordsImBerichtszeitraum);
+
+ }
+ }
+
+
+ decimal? stundenSollProMonat = null;
+ decimal? stundenSollImVertragsUndBerichtzeitraum = null;
+ if (empDetail.HasContract)
+ {
+ stundenSollImVertragsUndBerichtzeitraum = GetSollNachArbeitszeiten(empDetail.Employee, berichtsAnfang, berichtsEnde);
+ }
+
+ if (!stundenSollImVertragsUndBerichtzeitraum.HasValue)
+ {
+ stundenSollProMonat = BerechneSollProMonat(emp, berichtsAnfang, berichtsEnde);
+ stundenSollImVertragsUndBerichtzeitraum = stundenSollProMonat;
+ }
+
+ if (!stundenSollImVertragsUndBerichtzeitraum.HasValue)
+ {
+ if (!stundenSollImVertragsUndBerichtzeitraum.HasValue)
+ {
+ if (empDetail.ArbeitstageProWoche <= 5)
+ {
+ stundenSollImVertragsUndBerichtzeitraum =
+ empDetail.ArbeitstageImBerichtszeitraum * (weeklyTotalHours / 5);
+ }
+ else
+ {
+ stundenSollImVertragsUndBerichtzeitraum =
+ empDetail.ArbeitstageImBerichtszeitraum * (weeklyTotalHours / empDetail.ArbeitstageProWoche);
+ }
+ }
+ }
+
+
+ stundenSollGesamt += stundenSollImVertragsUndBerichtzeitraum ?? 0;
+
+
+ empDetail.StundenSollMax = stundenSollGesamt;
+
+
+ var tatSollStdImVertragsUndBerichtzeitraum = stundenSollImVertragsUndBerichtzeitraum ?? 0;
+
+
+ decimal? fehlZeiten = GetFehlzeiten(groupFilteredRecords, berichtsAnfang, berichtsEnde);
+ if (fehlZeiten.HasValue)
+ {
+ if (!fehlZeitenGesamt.HasValue)
+ fehlZeitenGesamt = 0;
+ fehlZeitenGesamt += fehlZeiten;
+
+ tatSollStdImVertragsUndBerichtzeitraum -= fehlZeiten.Value;
+ }
+
+ var ath = GetAbsenceTimeDaysWithWorkWeeks(emp, berichtsAnfang, berichtsEnde, empDetail.ArbeitstageProWoche);
+ empDetail.AbsenceTimeDays = ath;
+
+ if (ath.TageUrlaub.HasValue)
+ {
+ if (!tageUrlaubGesamt.HasValue)
+ tageUrlaubGesamt = 0;
+ tageUrlaubGesamt += ath.TageUrlaub;
+ }
+ if (ath.TageKrankheit.HasValue)
+ {
+ if (!tageKrankheitGesamt.HasValue)
+ tageKrankheitGesamt = 0;
+ tageKrankheitGesamt += ath.TageKrankheit;
+ }
+
+
+ if (ath.TageGesamt.HasValue)
+ {
+ if (!abwesenheitTageGesamt.HasValue)
+ abwesenheitTageGesamt = 0;
+ abwesenheitTageGesamt += ath.TageGesamt;
+
+ var minusStunden = BerechneStundenDurchAbwesenheiten(ath, berichtsAnfang, berichtsEnde, c, empDetail);
+ tatSollStdImVertragsUndBerichtzeitraum -= minusStunden;
+ if (tatSollStdImVertragsUndBerichtzeitraum < 0 && !StundenDurchAbwesenheitenDuerfenNegativSein())
+ {
+
+ tatSollStdImVertragsUndBerichtzeitraum = 0;
+
+ }
+
+ }
+
+ var ath2 = GetAbwesenheitenDurchServiceRecords(empDetail, c, groupFilteredRecords, berichtsAnfang, berichtsEnde);
+
+ if (ath2 != null)
+ {
+
+ var stunden = ath2.StundenKrankheit + ath2.StundenUrlaub + ath2.StundenSonstiges;
+
+ tatSollStdImVertragsUndBerichtzeitraum -= stunden;
+
+ if (tatSollStdImVertragsUndBerichtzeitraum < 0 && !StundenDurchAbwesenheitenDuerfenNegativSein())
+ {
+ tatSollStdImVertragsUndBerichtzeitraum = 0;
+ }
+
+ if (empDetail.SollProTag > 0)
+ {
+ if (!abwesenheitTageGesamt.HasValue)
+ abwesenheitTageGesamt = 0;
+ abwesenheitTageGesamt += stunden / empDetail.SollProTag;
+
+ if (ath2.StundenKrankheit > 0)
+ {
+ if (!tageKrankheitGesamt.HasValue)
+ {
+ tageKrankheitGesamt = 0;
+ }
+ tageKrankheitGesamt += ath2.StundenKrankheit / empDetail.SollProTag;
+ }
+
+ if (ath2.StundenUrlaub > 0)
+ {
+ if (!tageUrlaubGesamt.HasValue)
+ {
+ tageUrlaubGesamt = 0;
+ }
+ tageUrlaubGesamt += ath2.StundenUrlaub / empDetail.SollProTag;
+ }
+ }
+
+
+ }
+
+ tatSollStdGesamt += tatSollStdImVertragsUndBerichtzeitraum;
+
+
+ flsSollGesamt += BerechneFlsSoll(emp, c, berichtsAnfang, berichtsEnde, tatSollStdImVertragsUndBerichtzeitraum, stundenSollProMonat);
+
+ berichtsAnfang = berichtsEnde;
+ berichtsEnde = monatsEnde;
+ c = GetNextValidContractForDate(berichtsAnfang, emp);
+
+ if (c != null)
+ {
+ if (c.EntryDate.HasValue && c.EntryDate >= berichtsAnfang)
+ berichtsAnfang = c.EntryDate.Value;
+ if (c.ContractEndDate.HasValue && c.ContractEndDate < monatsEnde)
+ {
+ berichtsEnde = c.ContractEndDate.Value.Date.AddDays(1);
+ }
+ }
+ }
+
+ if (AddRateFactorToIst() != 1)
+ {
+ summaryTotal.IstAbrechenbar *= AddRateFactorToIst();
+ }
+ summaryTotal.IstAbrechenbar /= 60m;
+ summaryTotal.IstNichtAbrechenbar /= 60m;
+
+ empDetail.WorkDaysThisMonth = workdaysTotal;
+ //decimal stundenSollMax = arbeitstage * (maxWochenstunden / xxx) * bu;
+
+
+
+ empDetail.Fehlzeiten = fehlZeitenGesamt;
+ empDetail.TageUrlaub = tageUrlaubGesamt;
+ empDetail.TageKrankheit = tageKrankheitGesamt;
+ empDetail.UrlaubUndKrankheit = abwesenheitTageGesamt;
+
+ empDetail.StundenSollOhneUrlaubKrankheit = tatSollStdGesamt;
+
+ empDetail.FlsSoll = flsSollGesamt;
+
+
+
+ empDetail.MittelbarIst = summaryTotal.IstNichtAbrechenbar;
+ empDetail.Bu = bu;
+ empDetail.FlsIst = summaryTotal.IstAbrechenbar;
+ empDetail.FlsDiff = summaryTotal.IstAbrechenbar - empDetail.FlsSoll;
+ empDetail.StundenMittelbarIst = summaryTotal.IstNichtAbrechenbar;
+ empDetail.StundenGesamtIst = summaryTotal.IstAbrechenbar + summaryTotal.IstNichtAbrechenbar;
+
+ empDetail.StundenGesamtIst -= pause1/60;
+ empDetail.StundenGesamtIst -= pause2/60;
+
+ if (empDetail.FlsSoll != 0)
+ empDetail.RelationIstSoll = (empDetail.FlsIst/empDetail.FlsSoll)*100m;
+
+
+ if (summaryTotal.IstAbrechenbar + summaryTotal.IstNichtAbrechenbar != 0)
+ empDetail.RelationFlsZuMittelbar = (summaryTotal.IstAbrechenbar / (summaryTotal.IstAbrechenbar + summaryTotal.IstNichtAbrechenbar))*100;
+
+
+ decimal? ueberstunden = empDetail.StundenGesamtIst - empDetail.StundenSollOhneUrlaubKrankheit;
+ decimal? ueberstundenVormonat;
+
+
+ decimal alteExtraUeberstunden = 0;
+ BerechneUeberstundenBis(empDetail, groupFilteredRecords, ro.ReportStartDate, out ueberstundenVormonat,
+ out alteExtraUeberstunden);
+
+
+ decimal extraStunden = 0;
+
+ BerechneExtraUeberstunden(emp, monatsAnfang, monatsEnde, out extraStunden);
+
+ if (ShouldCreateDayDetails())
+ {
+
+ empDetail.Days = CreateDayDetails(monatsAnfang, monatsEnde, empDetail, summaryTotal.RecordsImBerichtszeitraum);
+ var ah = GetAdditionalHours(empDetail.Days, monatsAnfang, monatsEnde, empDetail, summaryTotal.RecordsImBerichtszeitraum);
+ ueberstunden += ah;
+ empDetail.StundenGesamtIst += ah;
+ }
+
+
+ empDetail.Ueberstunden = ueberstunden;
+ empDetail.UeberstundenVormonat = ueberstundenVormonat;
+ if (!empDetail.UeberstundenGesamt.HasValue)
+ empDetail.UeberstundenGesamt = ((ueberstundenVormonat ?? 0) + (ueberstunden ?? 0)) + extraStunden;
+ else
+ empDetail.UeberstundenGesamt += ((ueberstundenVormonat ?? 0) + (ueberstunden ?? 0)) + extraStunden;
+ empDetail.UeberstundenAusbezahlt = extraStunden;
+
+ //Urlaubskonto (todo)
+ empDetail.UrlaubGesamtImAktuellenJahr =
+ GetAbsenceTimeDaysWithWorkWeeks(emp, new DateTime(monatsAnfang.Year, 1, 1), monatsEnde, empDetail.ArbeitstageProWoche).TageUrlaub;
+
+ CalculateEmployeeSalary(empDetail, berichtsAnfang, berichtsEnde);
+ }
+
+ ro.EmployeeDetailList = FilterEmployeeList(ro.EmployeeDetailList);
+ }
+
+
+ protected virtual AbsenceTimeHours GetAbwesenheitenDurchServiceRecords(MitarbeiterstundenkontoRO.EmployeeDetail empDetail, Contract c, IList groupFilteredRecords, DateTime berichtsAnfang, DateTime berichtsEnde)
+ {
+ return null;
+ }
+
+ protected virtual decimal BerechneFlsSoll(Employee emp, Contract contract, DateTime berichtsAnfang, DateTime berichtsEnde, decimal tatSollStdImVertragsUndBerichtzeitraum, decimal? stundenSollProMonat)
+ {
+ var festeflsSollProMonat = BerechneFlsSollProMonat(emp, berichtsAnfang, berichtsEnde);
+ decimal flsSollImVertragsUndBerichtzeitraum = 0;
+
+ if (festeflsSollProMonat.HasValue)
+ {
+ flsSollImVertragsUndBerichtzeitraum = tatSollStdImVertragsUndBerichtzeitraum;
+
+ if (stundenSollProMonat.HasValue)
+ {
+ flsSollImVertragsUndBerichtzeitraum *= (festeflsSollProMonat.Value / stundenSollProMonat.Value);
+ }
+ }
+ else
+ {
+ if (contract != null && contract.WeeklyFLS.HasValue)
+ {
+ flsSollImVertragsUndBerichtzeitraum = tatSollStdImVertragsUndBerichtzeitraum;
+
+ if (HatArbeitszeitImZeitraum(emp.Arbeitszeiten, berichtsAnfang, berichtsEnde))
+ {
+ var wochenArbeitszeit = GetWochenArbeitszeit(emp.Arbeitszeiten, berichtsAnfang, berichtsEnde);
+
+ if (wochenArbeitszeit > 0)
+ {
+ flsSollImVertragsUndBerichtzeitraum *= contract.WeeklyFLS.Value / wochenArbeitszeit;
+ }
+
+ }
+ else if (contract.WeeklyTotalHours.HasValue && contract.WeeklyTotalHours.Value != 0)
+ {
+ flsSollImVertragsUndBerichtzeitraum *= contract.WeeklyFLS.Value / contract.WeeklyTotalHours.Value;
+ }
+
+ }
+ }
+
+ return flsSollImVertragsUndBerichtzeitraum;
+ }
+
+ private decimal GetWochenArbeitszeit(IList arbeitszeiten, DateTime start, DateTime ende)
+ {
+ if (arbeitszeiten != null)
+ {
+ foreach (var az in arbeitszeiten)
+ {
+ if ((!az.GueltigVon.HasValue || az.GueltigVon.Value < ende) &&
+ (!az.GueltigBis.HasValue || az.GueltigBis.Value >= start))
+ {
+
+ DateTime wochenStart = start;
+ while (wochenStart.DayOfWeek != DayOfWeek.Monday)
+ {
+ wochenStart = wochenStart.AddDays(1);
+ }
+
+ decimal stunden = 0;
+ for (int i = 0; i < 7; i++)
+ {
+ stunden += GetArbeitszeitStundenFuerTag(az, wochenStart);
+
+ wochenStart = wochenStart.AddDays(1);
+ }
+
+ return stunden;
+ }
+ }
+ }
+
+ return 0;
+ }
+
+ protected virtual bool StundenDurchAbwesenheitenDuerfenNegativSein()
+ {
+ return false;
+ }
+
+ protected virtual decimal? GetSollNachArbeitszeiten(Employee emp, DateTime start, DateTime ende)
+ {
+ if (emp.Arbeitszeiten != null && emp.Arbeitszeiten.Count > 0)
+ {
+ if (HatArbeitszeitImZeitraum(emp.Arbeitszeiten, start, ende))
+ {
+ decimal soll = 0;
+
+ DateTime startTemp = start;
+
+ while (startTemp < ende)
+ {
+ soll += GetSollNachArbeitszeitenFuerTag(emp, startTemp);
+ startTemp = startTemp.AddDays(1);
+ }
+
+ return soll;
+ }
+ }
+
+ return null;
+ }
+
+ private bool HatArbeitszeitImZeitraum(IList arbeitszeiten, DateTime start, DateTime ende)
+ {
+ if (arbeitszeiten != null)
+ {
+ foreach (var az in arbeitszeiten)
+ {
+ if ((!az.GueltigVon.HasValue || az.GueltigVon.Value < ende) && (!az.GueltigBis.HasValue || az.GueltigBis.Value >= start) && az.ArbeitszeitEintraege != null && az.ArbeitszeitEintraege.Count > 0)
+ {
+ return true;
+ }
+ }
+ }
+
+ return false;
+ }
+
+ protected virtual decimal GetSollNachArbeitszeitenFuerTag(Employee emp, DateTime tag)
+ {
+ decimal soll = 0;
+ var fak = GetFeiertagsFaktor(tag);
+
+ if (fak < 1)
+ {
+ if (emp.Arbeitszeiten != null)
+ {
+ foreach (var az in emp.Arbeitszeiten)
+ {
+ if ((!az.GueltigVon.HasValue || az.GueltigVon.Value <= tag) &&
+ (!az.GueltigBis.HasValue || az.GueltigBis.Value >= tag))
+ {
+ var std = GetArbeitszeitStundenFuerTag(az, tag);
+ soll += (std * (1 - fak));
+ }
+ }
+ }
+ }
+
+ return soll;
+ }
+
+ private decimal GetArbeitszeitStundenFuerTag(Arbeitszeit az, DateTime tag)
+ {
+ var day = tag.DayOfWeek;
+ decimal stunden = 0;
+ foreach (var ae in az.ArbeitszeitEintraege)
+ {
+ if (SindAmGleichenWochentag(day, ae.Tag))
+ {
+ String dateStr1 = String.Format("{0:dd.MM.yyyy} {1}", tag, ae.UhrzeitVon);
+ String dateStr2 = String.Format("{0:dd.MM.yyyy} {1}", tag, ae.UhrzeitBis);
+
+ DateTime date1;
+ DateTime date2;
+
+ if (DateTime.TryParse(dateStr1, out date1) && DateTime.TryParse(dateStr2, out date2))
+ {
+
+ stunden += (decimal)date2.Subtract(date1).TotalHours;
+ }
+ }
+ }
+
+ return stunden;
+ }
+
+ private bool SindAmGleichenWochentag(DayOfWeek day, AppointmentDayOfWeek aeTag)
+ {
+ if (day == DayOfWeek.Monday && aeTag == AppointmentDayOfWeek.Montag)
+ {
+ return true;
+ }
+ if (day == DayOfWeek.Tuesday && aeTag == AppointmentDayOfWeek.Dienstag)
+ {
+ return true;
+ }
+ if (day == DayOfWeek.Wednesday && aeTag == AppointmentDayOfWeek.Mittwoch)
+ {
+ return true;
+ }
+ if (day == DayOfWeek.Thursday && aeTag == AppointmentDayOfWeek.Donnerstag)
+ {
+ return true;
+ }
+ if (day == DayOfWeek.Friday && aeTag == AppointmentDayOfWeek.Freitag)
+ {
+ return true;
+ }
+ if (day == DayOfWeek.Saturday && aeTag == AppointmentDayOfWeek.Samstag)
+ {
+ return true;
+ }
+ return false;
+ }
+
+ protected virtual void CalculateEmployeeSalary(MitarbeiterstundenkontoRO.EmployeeDetail empDetail, DateTime start, DateTime ende)
+ {
+ decimal maxpayment = 0;
+
+ Contract cstart = empDetail.Employee.GetValidContractForDate(start);
+ Contract cend = empDetail.Employee.GetValidContractForDate(ende);
+ if (cstart != null && cstart.HourlyRate.HasValue && cstart.WeeklyTotalHours.HasValue && cend != null)
+ {
+ if (cstart.Oid.Value == cend.Oid.Value || !cend.EntryDate.HasValue)
+ {
+ maxpayment = cstart.HourlyRate.Value * cstart.WeeklyTotalHours.Value * 4;
+ }
+ else
+ {
+ decimal totalHoursPerDay = cstart.WeeklyTotalHours.Value / 7m;
+ DateTime end = cend.EntryDate.Value;
+ TimeSpan ts = end.Subtract(start);
+ int days = (int)ts.TotalDays;
+
+ maxpayment = totalHoursPerDay * cstart.HourlyRate.Value * days;
+
+ Contract c2 = empDetail.Employee.GetValidContractForDate(end.AddDays(1));
+ if (c2 != null && c2.HourlyRate.HasValue && c2.WeeklyTotalHours.HasValue)
+ {
+ decimal totalHoursPerDay2 = c2.WeeklyTotalHours.Value / 7m;
+ TimeSpan ts2 = ende.Subtract(end);
+ int days2 = (int)ts2.TotalDays + 1;
+
+ maxpayment += totalHoursPerDay2 * c2.HourlyRate.Value * days2;
+ }
+ }
+
+
+ }
+ empDetail.EmployeeSalaryByContract = maxpayment;
+
+ decimal salary = 0;
+
+ if (empDetail.ServiceRecordsInSelectedTimeSpan != null)
+ {
+ foreach (var sr in empDetail.ServiceRecordsInSelectedTimeSpan)
+ {
+ if (sr.ServiceDescription.Name != "Freizeit" || sr.ServiceDescription.ServiceCategory.Name != "Selbstzahler Freizeit")
+ {
+ Contract con = empDetail.Employee.GetValidContractForDate(sr.Start);
+ if (con != null && con.HourlyRate.HasValue)
+ {
+ salary += con.HourlyRate.Value * (sr.RoundedDuration / 60);
+ }
+
+ }
+ }
+ }
+
+ empDetail.EmployeeSalaryByHours = salary;
+ }
+
+ protected virtual ServiceRecordSummary BerechneStunden(MitarbeiterstundenkontoRO.EmployeeDetail empDetail, IList groupFilteredRecords, DateTime berichtsAnfang, DateTime berichtsEnde)
+ {
+ var sum = new ServiceRecordSummary();
+ sum.RecordsImBerichtszeitraum = new List();
+
+ empDetail.ServiceRecordsInSelectedTimeSpan = new List();
+
+ foreach (var item in groupFilteredRecords)
+ {
+ if (!IsServiceRecordFehlzeit(item))
+ {
+ if (item.Start.Value >= berichtsAnfang && item.Start.Value < berichtsEnde)
+ {
+ //String test = String.Format("{0:dd.MM.yyyy HH:mm}, {1:0} Minuten, {2}, {3}", item.Start, item.RoundedDuration, item.ServiceDescription.Name, item.Notice);
+
+ HandleServiceRecord(empDetail, item);
+ if (AddServiceRecordToDuration(item))
+ {
+ empDetail.ServiceRecordsInSelectedTimeSpan.Add(item);
+
+ String test = String.Format("{0:dd.MM. HH:mm} - {1:HH:mm}, {2}", item.Start, item.End, item.RoundedDuration);
+
+ decimal duration = 0;
+
+ if (item.GroupRoundedDuration.HasValue)
+ {
+ duration = item.GroupRoundedDuration.Value;
+ }
+ else
+ {
+ if (appSettings.ShowRoundedDurationInEmployeeAnalysis)
+ {
+ duration = item.RoundedDuration;
+ }
+ else
+ {
+ duration = (decimal)item.End.Value.Subtract(item.Start.Value).TotalMinutes;
+ }
+ }
+
+ if (UseServiceDescriptionPercentage())
+ {
+ if (item.ServiceDescription != null &&
+ item.ServiceDescription.ServiceCategory != null &&
+ item.ServiceDescription.ServiceCategory.Percentage != 100)
+ {
+ duration = (duration * item.ServiceDescription.ServiceCategory.Percentage) / 100;
+ }
+ }
+
+ if (item.ServiceDescription != null &&
+ item.ServiceDescription.ServiceCategory != null &&
+ item.ServiceDescription.ServiceCategory.IsBillable)
+ sum.IstAbrechenbar += duration;
+ else
+ sum.IstNichtAbrechenbar += duration;
+
+ if (duration > 0)
+ {
+ int test2 = 0;
+ }
+ }
+ sum.RecordsImBerichtszeitraum.Add(item);
+ }
+ }
+ }
+
+ return sum;
+ }
+
+ public virtual bool UseServiceDescriptionPercentage()
+ {
+ return false;
+ }
+
+ public virtual decimal BerechneAutoPausen(IList recordsThisMonth)
+ {
+ return 0;
+ }
+
+ public virtual decimal BerechnePauseMinuten(IList srList)
+ {
+ decimal pausenZeit = 0;
+
+ List pausen = new List();
+ List nichtpausen = new List();
+
+ foreach (var sr in srList)
+ {
+ if (sr.ServiceDescription.Name == "Pause")
+ {
+ pausen.Add(sr);
+ }
+ else
+ {
+ nichtpausen.Add(sr);
+ }
+ }
+
+ foreach (var pause in pausen)
+ {
+ foreach (var arbeitszeit in nichtpausen)
+ {
+ var pauseSpan = new DateTimeSpan
+ {
+ StartDateTime = pause.Start.Value,
+ EndDateTime = pause.Start.Value.AddMinutes((double) pause.RoundedDuration)
+ };
+
+ var arbeitszeitSpan = new DateTimeSpan
+ {
+ StartDateTime = arbeitszeit.Start.Value,
+ EndDateTime = arbeitszeit.Start.Value.AddMinutes((double) arbeitszeit.RoundedDuration)
+ };
+
+ if (arbeitszeit.GroupOid.HasValue)
+ {
+ arbeitszeitSpan.EndDateTime =
+ arbeitszeit.Start.Value.AddMinutes((double) (arbeitszeit.GroupRoundedDuration ?? 0));
+ }
+
+
+ if (pauseSpan.Overlaps(arbeitszeitSpan))
+ {
+ DateTime startUeberlappung = pauseSpan.StartDateTime;
+ if (arbeitszeitSpan.StartDateTime > startUeberlappung)
+ startUeberlappung = arbeitszeitSpan.StartDateTime;
+
+ DateTime endUeberlappung = pauseSpan.EndDateTime;
+
+ if (arbeitszeitSpan.EndDateTime < endUeberlappung)
+ endUeberlappung = arbeitszeitSpan.EndDateTime;
+
+ var overlapping = (decimal) endUeberlappung.Subtract(startUeberlappung).TotalMinutes;
+
+ pausenZeit += overlapping;
+ }
+ }
+ }
+ return pausenZeit;
+ }
+
+ public virtual bool SollPauseBerechnen()
+ {
+ return false;
+ }
+
+ public virtual List FilterEmployeeList(List employeeDetailList)
+ {
+ List newEmpList = new List();
+
+ foreach (var ed in employeeDetailList)
+ {
+ if (ed.Employee.IsActive == ActivationTypeId.Active)
+ {
+ newEmpList.Add(ed);
+ }
+ else if (ed.Employee.IsActive == ActivationTypeId.Archived)
+ {
+ if (ed.StundenGesamtIst != 0)
+ {
+ newEmpList.Add(ed);
+ }
+ }
+ }
+
+ return newEmpList;
+ }
+
+ public virtual void HandleServiceRecords(MitarbeiterstundenkontoRO.EmployeeDetail empDetail, IList groupFilteredRecords, Contract contract)
+ {
+ //do nothing
+ }
+
+ public virtual void CorrectOverlappingTimes(IList serviceRecords)
+ {
+ List oldRecords = new List();
+
+ foreach (var newRecord in serviceRecords)
+ {
+ if (!CorrectOverlappingTime(newRecord))
+ {
+ continue;
+ }
+ if (newRecord.Start.HasValue && newRecord.Start.Value.Second > 0)
+ {
+ continue;
+ }
+
+ bool isGroup = false;
+ var minuten = newRecord.RoundedDuration;
+ if (newRecord.GroupRoundedDuration.HasValue)
+ {
+ minuten = newRecord.GroupRoundedDuration.Value;
+ isGroup = true;
+ }
+ var newSpan = new DateTimeSpan
+ {
+ StartDateTime = newRecord.Start.Value,
+ EndDateTime = newRecord.Start.Value.AddMinutes((double)minuten)
+ };
+
+ foreach (var oldRecord in oldRecords)
+ {
+ var oldSpan = new DateTimeSpan
+ {
+ StartDateTime = oldRecord.Start.Value,
+ EndDateTime = oldRecord.Start.Value.AddMinutes((double)oldRecord.RoundedDuration)
+ };
+ if (oldRecord.GroupRoundedDuration.HasValue)
+ {
+ oldSpan.EndDateTime = oldRecord.Start.Value.AddMinutes((double)oldRecord.GroupRoundedDuration);
+ }
+
+ if (oldSpan.Overlaps(newSpan))
+ {
+ DateTime start = newSpan.StartDateTime;
+ if (oldSpan.StartDateTime > start)
+ start = oldSpan.StartDateTime;
+
+ DateTime end = newSpan.EndDateTime;
+
+ if (oldSpan.EndDateTime < end)
+ end = oldSpan.EndDateTime;
+
+
+ if (newSpan.StartDateTime >= oldSpan.StartDateTime)
+ {
+ newSpan.StartDateTime = oldSpan.EndDateTime;
+ if (newSpan.StartDateTime > newSpan.EndDateTime)
+ {
+ newSpan.StartDateTime = newSpan.EndDateTime;
+ }
+ newRecord.Start = newSpan.StartDateTime;
+ newRecord.End = newSpan.EndDateTime;
+
+ if (!isGroup)
+ {
+ newRecord.RoundedDuration =
+ (decimal)newRecord.End.Value.Subtract(newRecord.Start.Value).TotalMinutes;
+ }
+ else
+ {
+ newRecord.GroupRoundedDuration = (decimal)newRecord.End.Value.Subtract(newRecord.Start.Value).TotalMinutes;
+ }
+ }
+ else
+ {
+ oldSpan.StartDateTime = newSpan.EndDateTime;
+ if (oldSpan.StartDateTime > oldSpan.EndDateTime)
+ {
+ oldSpan.StartDateTime = oldSpan.EndDateTime;
+ }
+ oldRecord.Start = oldSpan.StartDateTime;
+ oldRecord.End = oldSpan.EndDateTime;
+
+
+ if (!oldRecord.GroupRoundedDuration.HasValue)
+ //if (!isGroup)
+ {
+ oldRecord.RoundedDuration = (decimal)oldRecord.End.Value.Subtract(oldRecord.Start.Value).TotalMinutes;
+ }
+ else
+ {
+ oldRecord.GroupRoundedDuration = (decimal)oldRecord.End.Value.Subtract(oldRecord.Start.Value).TotalMinutes;
+ }
+
+ }
+
+ }
+ }
+ oldRecords.Add(newRecord);
+
+ }
+ }
+
+ public virtual bool CorrectOverlappingTime(ServiceRecord newRecord)
+ {
+ return true;
+ }
+
+ public virtual decimal? BerechneSollProMonat(Employee emp, DateTime start, DateTime ende)
+ {
+ Contract c = GetContractForDate(emp, start, ende);
+
+
+ if (c != null && c.MonthlyTotalHours.HasValue && c.MonthlyTotalHours.Value > 0)
+ {
+ return c.MonthlyTotalHours.Value;
+
+ DateTime monatsAnfang = start;
+ DateTime monatsEnde = ende;
+
+ if (c.EntryDate.HasValue && c.EntryDate > monatsAnfang)
+ {
+ monatsAnfang = c.EntryDate.Value;
+ }
+ if (c.ContractEndDate.HasValue && c.ContractEndDate < monatsEnde)
+ {
+ monatsEnde = c.ContractEndDate.Value.Date.AddDays(1);
+ }
+
+ if (monatsAnfang < monatsEnde)
+ {
+ //if (monatsAnfang.Day == 1 && monatsEnde.Day == 1)
+ //{
+ return c.MonthlyTotalHours.Value;
+ //}
+ }
+ }
+
+ return null;
+ }
+
+ public virtual decimal? BerechneFlsSollProMonat(Employee emp, DateTime start, DateTime ende)
+ {
+ Contract c = GetContractForDate(emp, start, ende);
+
+
+ if (c != null && c.MonthlyFLS.HasValue && c.MonthlyFLS.Value > 0)
+ {
+ return c.MonthlyFLS.Value;
+
+ DateTime monatsAnfang = start;
+ DateTime monatsEnde = ende;
+
+ if (c.EntryDate.HasValue && c.EntryDate > monatsAnfang)
+ {
+ monatsAnfang = c.EntryDate.Value;
+ }
+ if (c.ContractEndDate.HasValue && c.ContractEndDate < monatsEnde)
+ {
+ monatsEnde = c.ContractEndDate.Value.Date.AddDays(1);
+ }
+
+ if (monatsAnfang < monatsEnde)
+ {
+ //if (monatsAnfang.Day == 1 && monatsEnde.Day == 1)
+ //{
+ return c.MonthlyFLS.Value;
+ //}
+ }
+ }
+
+ return null;
+ }
+
+ public virtual void HandleServiceRecord(MitarbeiterstundenkontoRO.EmployeeDetail emp, ServiceRecord item)
+ {
+ //do nothing
+ }
+
+ public virtual bool ShouldCreateDayDetails()
+ {
+ return false;
+ }
+
+ public virtual bool ShouldCreateDayDetailsForEachServiceRecord()
+ {
+ return false;
+ }
+
+ public virtual IList CreateDayDetails(DateTime berichtStart, DateTime berichtEnde, MitarbeiterstundenkontoRO.EmployeeDetail ed, IList recordsAll)
+ {
+ if (ShouldCreateDayDetailsForEachServiceRecord())
+ {
+ return CreateDayDetailsForEachServiceRecord(berichtStart, berichtEnde, ed, recordsAll);
+ }
+
+ Dictionary dayToDetail = new Dictionary();
+
+ for (int i = berichtStart.Day; i <= berichtEnde.AddDays(-1).Day; i++)
+ {
+ MitarbeiterstundenkontoRO.DayDetail dd = CreateDayDetail(new DateTime(berichtStart.Year, berichtStart.Month, i), ed);
+ dayToDetail.Add(i, dd);
+ }
+
+ foreach (var sr in recordsAll)
+ {
+ if (sr.Start.HasValue && sr.Start >= berichtStart && sr.Start < berichtEnde && sr.End.HasValue)
+ {
+ var dd = dayToDetail[sr.Start.Value.Day];
+
+ if (!IsServiceRecordFehlzeit(sr) && AddServiceRecordToDuration(sr))
+ {
+ decimal duration = GetDuration(sr);
+
+
+ dd.MinutesTotal += duration;
+ if (dd.ServiceRecords == null)
+ dd.ServiceRecords = new List();
+ dd.ServiceRecords.Add(sr);
+
+ CalculateSpecialHours(dd, sr, duration);
+ }
+ }
+ }
+
+ //Berechne von bis Zeiten
+ foreach (var ddKeyValue in dayToDetail)
+ {
+ var dd = ddKeyValue.Value;
+ if (dd.ZusammenhaengendeZeitraeume == null)
+ {
+ dd.ZusammenhaengendeZeitraeume = new List();
+ }
+
+ if (dd.ServiceRecords != null)
+ {
+ var orderedList = dd.ServiceRecords.OrderBy(i => i.Start);
+
+ DateTime lastEnd = DateTime.MinValue;
+ var gapCount = -1;
+
+ foreach (var sr in orderedList)
+ {
+ if (sr.Start.HasValue && sr.Start.Value.Hour == 0 && sr.Start.Value.Second > 0)
+ {
+ continue;
+ }
+ decimal duration = GetDuration(sr);
+
+
+ DateTime dtEnd = sr.Start.Value.AddMinutes((double)duration);
+ if (sr.Start > lastEnd)
+ {
+ gapCount++;
+
+ }
+ if (dtEnd > lastEnd)
+ {
+ lastEnd = dtEnd;
+ }
+
+ DateTimeSpan currentSpan = null;
+ if (gapCount + 1 > dd.ZusammenhaengendeZeitraeume.Count)
+ {
+ currentSpan = new DateTimeSpan();
+ currentSpan.StartDateTime = DateTime.MaxValue;
+ currentSpan.EndDateTime = DateTime.MinValue;
+ dd.ZusammenhaengendeZeitraeume.Add(currentSpan);
+ }
+ else
+ {
+ currentSpan = dd.ZusammenhaengendeZeitraeume[gapCount];
+ }
+
+ if (sr.Start < currentSpan.StartDateTime)
+ {
+ currentSpan.StartDateTime = sr.Start.Value;
+ }
+ if (dtEnd > currentSpan.EndDateTime)
+ {
+ currentSpan.EndDateTime = dtEnd;
+ }
+
+ if (gapCount == 0)
+ {
+ if (!dd.StartDateTime1.HasValue || sr.Start < dd.StartDateTime1)
+ {
+ dd.StartDateTime1 = sr.Start;
+ }
+ if (!dd.EndDateTime1.HasValue || dtEnd > dd.EndDateTime1)
+ {
+ dd.EndDateTime1 = dtEnd;
+ }
+ }
+ else if (gapCount == 1)
+ {
+ if (!dd.StartDateTime2.HasValue || sr.Start < dd.StartDateTime2)
+ {
+ dd.StartDateTime2 = sr.Start;
+ }
+ if (!dd.EndDateTime2.HasValue || dtEnd > dd.EndDateTime2)
+ {
+ dd.EndDateTime2 = dtEnd;
+ }
+ }
+ else if (gapCount == 2)
+ {
+ if (!dd.StartDateTime3.HasValue || sr.Start < dd.StartDateTime3)
+ {
+ dd.StartDateTime3 = sr.Start;
+ }
+ if (!dd.EndDateTime3.HasValue || dtEnd > dd.EndDateTime3)
+ {
+ dd.EndDateTime3 = dtEnd;
+ }
+ }
+ else
+ {
+ if (!dd.StartDateTime4.HasValue || sr.Start < dd.StartDateTime4)
+ {
+ dd.StartDateTime4 = sr.Start;
+ }
+ if (!dd.EndDateTime4.HasValue || dtEnd > dd.EndDateTime4)
+ {
+ dd.EndDateTime4 = dtEnd;
+ }
+ }
+ }
+ }
+ }
+
+
+
+
+ return dayToDetail.Values.OrderBy(dd => dd.Date).ToList();
+ }
+
+ public virtual IList CreateDayDetailsForEachServiceRecord(DateTime berichtStart, DateTime berichtEnde, MitarbeiterstundenkontoRO.EmployeeDetail ed, IList recordsAll)
+ {
+ var details = new List();
+
+ foreach (var sr in recordsAll)
+ {
+ if (sr.Start.HasValue && sr.Start >= berichtStart && sr.Start < berichtEnde && sr.End.HasValue)
+ {
+ if (sr.Start.Value.Day == 8)
+ {
+ int test = 0;
+ }
+ if (!IsServiceRecordFehlzeit(sr) && AddServiceRecordToDuration(sr))
+ {
+ var dd = CreateDayDetail(sr.Start.Value, ed);
+ details.Add(dd);
+
+ decimal duration = GetDuration(sr);
+
+
+ dd.MinutesTotal += duration;
+ if (dd.ServiceRecords == null)
+ dd.ServiceRecords = new List();
+ dd.ServiceRecords.Add(sr);
+
+ dd.Date = sr.Start.Value;
+
+ if (sr.Start.Value.Second == 0)
+ {
+ DateTime dtEnd = sr.Start.Value.AddMinutes((double)duration);
+ dd.StartDateTime1 = sr.Start;
+
+ dd.EndDateTime1 = dtEnd;
+
+ }
+
+ CalculateSpecialHours(dd, sr, duration);
+
+ }
+ }
+ }
+
+ return details.OrderBy(dd => dd.Date).ToList();
+ }
+
+ private decimal GetDuration(ServiceRecord sr)
+ {
+ decimal duration = 0;
+
+ if (sr.GroupRoundedDuration.HasValue)
+ {
+ duration = sr.GroupRoundedDuration.Value;
+ }
+ else
+ {
+ if (appSettings.ShowRoundedDurationInEmployeeAnalysis)
+ {
+ duration = sr.RoundedDuration;
+ }
+ else
+ {
+ duration = (decimal)sr.End.Value.Subtract(sr.Start.Value).TotalMinutes;
+ }
+ }
+
+ return duration;
+ }
+
+ public virtual void CalculateSpecialHours(MitarbeiterstundenkontoRO.DayDetail dd, ServiceRecord sr, decimal duration)
+ {
+ if (sr.Start.Value.DayOfWeek == DayOfWeek.Sunday)
+ {
+ dd.HoursSunday += duration / 60;
+ }
+ else if (IstFeiertag(sr.Start.Value))
+ {
+ dd.HoursHoliday += duration / 60;
+ }
+ if (sr.Start.Value.Second == 0 && dd.NightEnd.HasValue && dd.NightStart.HasValue)
+ {
+ var minuten = CheckNachtzeiten(sr.Start.Value, dd.NightStart.Value, dd.NightEnd.Value, (double)duration);
+
+ if (minuten > 0)
+ {
+ dd.SpecialHours += (decimal)(Math.Round(minuten, 0) / 60);
+ }
+
+ //DateTime dtEnd = sr.Start.Value.AddMinutes((double)duration);
+
+ //if (dtEnd.Hour >= dd.NightStart.Value)
+ //{
+ // DateTime dtStart = dtEnd.Date.AddHours(dd.NightStart.Value);
+ // if (sr.Start.Value > dtStart)
+ // dtStart = sr.Start.Value;
+
+ // TimeSpan ts = dtEnd.Subtract(dtStart);
+ // dd.SpecialHours += (decimal)ts.TotalMinutes / 60;
+ //}
+
+ //if (sr.Start.Value.Hour < dd.NightEnd)
+ //{
+ // DateTime dtEnd2 = sr.Start.Value.Date.AddHours(dd.NightEnd.Value);
+ // if (dtEnd < dtEnd2)
+ // dtEnd2 = dtEnd;
+ // TimeSpan ts = dtEnd2.Subtract(sr.Start.Value);
+ // dd.SpecialHours += (decimal)(Math.Round(ts.TotalMinutes, 0) / 60);
+ //}
+ }
+ }
+
+ private double CheckNachtzeiten(DateTime start, int nightStart, int nightEnd, double minuten)
+ {
+ DateTime nightStartDt = start.Date.AddHours(nightStart);
+ DateTime nightEndDt = start.Date.AddDays(1).AddHours(nightEnd);
+
+
+ DateTime dtEnd = start.AddMinutes(minuten);
+
+ double minutes = GetOverlappingMinutes(start, dtEnd, nightStartDt, nightEndDt);
+ minutes += GetOverlappingMinutes(start, dtEnd, nightStartDt.AddDays(-1), nightEndDt.AddDays(-1));
+ minutes += GetOverlappingMinutes(start, dtEnd, nightStartDt.AddDays(1), nightEndDt.AddDays(1));
+
+ return minutes;
+
+ }
+
+ private double GetOverlappingMinutes(DateTime start, DateTime end, DateTime nightStart, DateTime nightEnd)
+ {
+ if (end > nightStart && start < nightEnd)
+ {
+ DateTime dtStart = start;
+
+ if (dtStart < nightStart)
+ dtStart = nightStart;
+
+ DateTime dtEnd = end;
+
+ if (dtEnd > nightEnd)
+ dtEnd = nightEnd;
+ TimeSpan ts = dtEnd.Subtract(dtStart);
+
+ return ts.TotalMinutes;
+
+ }
+
+ return 0;
+ }
+
+ public virtual MitarbeiterstundenkontoRO.DayDetail CreateDayDetail(DateTime date, MitarbeiterstundenkontoRO.EmployeeDetail ed)
+ {
+ MitarbeiterstundenkontoRO.DayDetail dd = new MitarbeiterstundenkontoRO.DayDetail();
+ dd.ZusammenhaengendeZeitraeume = new List();
+
+ dd.Date = date.Date;
+ dd.NightStart = 20;
+ dd.NightEnd = 6;
+ dd.MaxHoursUntilBreak = 6;
+ dd.BreakMinutes = 30;
+
+ CalculateAbsenceTimesForDay(dd, ed);
+ return dd;
+ }
+
+ public virtual void CalculateAbsenceTimesForDay(MitarbeiterstundenkontoRO.DayDetail dd, MitarbeiterstundenkontoRO.EmployeeDetail ed)
+ {
+ var absenceTimes = ed.Employee.AbsenceTimes;
+
+ if (absenceTimes != null)
+ {
+ foreach (var absenceTime in absenceTimes)
+ {
+
+ if (IsUrlaubAbsenceTime(absenceTime) || IsKrankheitAbsenceTime(absenceTime))
+ {
+ DateTimeSpan span = new DateTimeSpan();
+
+ span.StartDate = dd.Date;
+
+ if (absenceTime.Start.HasValue && absenceTime.Start.Value > span.StartDate)
+ {
+ span.StartDate = absenceTime.Start.Value;
+ }
+ span.EndDate = dd.Date.AddDays(1);
+ if (absenceTime.End.HasValue && absenceTime.End.Value.Date.AddDays(1) < span.EndDate)
+ {
+ span.EndDate = absenceTime.End.Value.Date.AddDays(1);
+ }
+ if (span.EndDate > dd.Date && span.StartDate < dd.Date.AddDays(1))
+ {
+ DateTime day = span.StartDate;
+ var faktor = GetFeiertagsFaktor(day);
+
+ if (faktor < 1 && day.DayOfWeek != DayOfWeek.Saturday && day.DayOfWeek != DayOfWeek.Sunday)
+ {
+ var soll = ed.SollProTag;
+
+ if (ed.AbsenceTimeDays != null && ed.AbsenceTimeDays.TageProWocheDict != null)
+ {
+ if (ed.AbsenceTimeDays.RestStundenProWocheDict == null)
+ {
+ ed.AbsenceTimeDays.RestStundenProWocheDict = new Dictionary();
+ }
+ foreach (var week in ed.AbsenceTimeDays.TageProWocheDict.Keys)
+ {
+ if (!ed.AbsenceTimeDays.RestStundenProWocheDict.ContainsKey(week))
+ {
+ ed.AbsenceTimeDays.RestStundenProWocheDict.Add(week, ed.SollProWoche);
+ }
+
+ if (day.Date >= week.StartDate && day.Date <= week.EndDate)
+ {
+ var rest = ed.AbsenceTimeDays.RestStundenProWocheDict[week];
+ if (rest < soll)
+ {
+ soll = rest;
+ }
+ rest -= soll;
+ if (rest < 0)
+ {
+ rest = 0;
+ }
+
+ ed.AbsenceTimeDays.RestStundenProWocheDict[week] = rest;
+ }
+ }
+ }
+ decimal maxSoll = soll;
+ if (faktor != 0)
+ {
+ soll *= faktor; //halbe Feiertage etc. berücksichtigen
+ }
+ if (IsKrankheitAbsenceTime(absenceTime))
+ {
+ dd.HoursSick = soll;
+ }
+ else if (IsUrlaubAbsenceTime(absenceTime))
+ {
+ dd.HoursInVacation = soll;
+ }
+ if (dd.AbsenceTimes == null)
+ {
+ dd.AbsenceTimes = new List();
+ }
+ dd.AbsenceTimes.Add(absenceTime);
+ dd.MinutesTotal += soll * 60;
+ }
+ }
+ }
+
+ //}
+ }
+ }
+
+ }
+
+ public virtual bool IstAnrechenbareAbsenceTime(AbsenceTime item)
+ {
+ return true;
+ }
+
+ public virtual bool IsKrankheitAbsenceTime(AbsenceTime absenceTime)
+ {
+ return !String.IsNullOrEmpty(absenceTime.AbsenceReason.Description) &&
+ (absenceTime.AbsenceReason.Description.ToLower().IndexOf("arbeitsunfähig") >= 0
+ || absenceTime.AbsenceReason.Description.ToLower().IndexOf("krank") >= 0 || absenceTime.AbsenceReason.Description.ToLower() == "au");
+ }
+
+ public virtual bool IsUrlaubAbsenceTime(AbsenceTime absenceTime)
+ {
+ return !String.IsNullOrEmpty(absenceTime.AbsenceReason.Description) &&
+ absenceTime.AbsenceReason.Description.ToLower().IndexOf("urlaub") >= 0;
+ }
+
+ public virtual bool AddServiceRecordToDuration(ServiceRecord item)
+ {
+ return true;
+ }
+
+ public virtual decimal AddRateFactorToIst()
+ {
+ return 1;
+ }
+
+ public virtual MitarbeiterstundenkontoRO.EmployeeDetail BerechneUeberstundenBis(MitarbeiterstundenkontoRO.EmployeeDetail edOrig, IList records, DateTime monat, out decimal? ueberstunden, out decimal alteExtraUeberstunden)
+ {
+ MitarbeiterstundenkontoRO.EmployeeDetail edTotal = new MitarbeiterstundenkontoRO.EmployeeDetail();
+
+ ueberstunden = null;
+ alteExtraUeberstunden = 0;
+
+ var emp = edOrig.Employee;
+
+ Contract c = emp.FirstContract;
+
+ if (c != null)
+ {
+
+ Dictionary> srDict = CreateServiceRecordDictByDate(records);
+
+ DateTime start = c.EntryDate.HasValue ? c.EntryDate.Value : new DateTime(2011, 1, 1);
+ while (c != null && start < monat)
+ {
+ DateTime contractEnd = c.ContractEndDate.HasValue ? c.ContractEndDate.Value : DateTime.MaxValue;
+ decimal bu = 0;
+ decimal weeklyTotalHours = this.maxWochenstunden;
+ int anzWochentage = ANZ_WOCHENTAGE;
+
+ //if (c.WeeklyDays.HasValue && c.WeeklyDays.Value > 0)
+ //{
+ // anzWochentage = c.WeeklyDays.Value;
+ //}
+
+ if (c.WeeklyTotalHours.HasValue)
+ {
+ weeklyTotalHours = c.WeeklyTotalHours.Value;
+ bu = c.WeeklyTotalHours.Value / maxWochenstunden;
+ }
+
+
+ while (start < monat && start < contractEnd)
+ {
+ decimal flsIst = 0;
+ decimal mittelbarIst = 0;
+ decimal minutenMonat = 0;
+ DateTime ende = new DateTime(start.Year, start.Month, 1).AddMonths(1);
+ if (contractEnd < DateTime.MaxValue && contractEnd.AddDays(1) < ende)
+ ende = contractEnd.AddDays(1);
+
+ IList recordsThisMonth = new List();
+ String key = String.Format("{0:yyyyMM}", start);
+
+ if (srDict.ContainsKey(key))
+ {
+ foreach (var item in srDict[key])
+ {
+ if (item.Start.HasValue && item.Start >= start && item.Start < ende)
+ {
+ if (AddServiceRecordToDuration(item))
+ {
+ decimal duration = 0;
+
+ if (item.GroupRoundedDuration.HasValue)
+ {
+ duration = item.GroupRoundedDuration.Value;
+ }
+ else
+ {
+ if (appSettings.ShowRoundedDurationInEmployeeAnalysis)
+ {
+ duration = item.RoundedDuration;
+ }
+ else
+ {
+ duration = (decimal)item.End.Value.Subtract(item.Start.Value).TotalMinutes;
+ }
+ }
+ if (UseServiceDescriptionPercentage())
+ {
+ if (item.ServiceDescription != null &&
+ item.ServiceDescription.ServiceCategory != null &&
+ item.ServiceDescription.ServiceCategory.Percentage != 100)
+ {
+ duration = (duration * item.ServiceDescription.ServiceCategory.Percentage) / 100;
+ }
+ }
+
+ minutenMonat += duration;
+
+ if (item.ServiceDescription != null &&
+ item.ServiceDescription.ServiceCategory != null &&
+ item.ServiceDescription.ServiceCategory.IsBillable)
+ flsIst += duration;
+ else
+ mittelbarIst += duration;
+
+ }
+ recordsThisMonth.Add(item);
+ }
+ }
+ }
+
+
+
+ decimal arbeitstage = GetArbeitstageImBereich(start, ende, emp);
+ var arbeitstageProWoche = anzWochentage;
+ if (c != null && c.WeeklyDays.HasValue && c.WeeklyDays.Value > 0)
+ {
+ arbeitstageProWoche = c.WeeklyDays.Value;
+ }
+
+ //if (anzWochentage != 5)
+ //{
+ // arbeitstage *= anzWochentage / 5m;
+ //}
+ var soll = GetSollNachArbeitszeiten(emp, start, ende);
+
+ if (!soll.HasValue)
+ {
+ var stundenSollProMonat = BerechneSollProMonat(emp, start, ende);
+ soll = stundenSollProMonat;
+ }
+
+ if (!soll.HasValue)
+ {
+
+ if (!soll.HasValue)
+ {
+ decimal maxSollMonat = arbeitstage * (maxWochenstunden / arbeitstageProWoche);
+ if (arbeitstageProWoche <= 5)
+ {
+ maxSollMonat = arbeitstage * (maxWochenstunden / 5);
+ }
+
+ soll = maxSollMonat * bu;
+ }
+ }
+
+ decimal sollMitarbeiter = soll ?? 0;
+
+ var ath = GetAbsenceTimeDaysWithWorkWeeks(emp, start, ende, arbeitstageProWoche);
+ decimal? fehlzeit = GetFehlzeiten(records, start, ende);
+
+ if (fehlzeit.HasValue)
+ {
+ sollMitarbeiter -= fehlzeit.Value;
+
+ }
+
+
+ MitarbeiterstundenkontoRO.EmployeeDetail ed = new MitarbeiterstundenkontoRO.EmployeeDetail();
+ ed.SollProTag = weeklyTotalHours / arbeitstageProWoche;
+ ed.ArbeitstageProWoche = arbeitstageProWoche;
+ ed.ArbeitstageImBerichtszeitraum = arbeitstage;
+ ed.SollProWoche = BerechneSollProWoche(c, ed);
+ ed.AbsenceTimeDays = ath;
+ ed.Employee = emp;
+ ed.StundenSollMax = sollMitarbeiter;
+
+
+ if (ath.TageGesamt.HasValue)
+ {
+ var minusStunden = BerechneStundenDurchAbwesenheiten(ath, start, ende, c, ed);
+ sollMitarbeiter -= minusStunden;
+ if (sollMitarbeiter < 0 && !StundenDurchAbwesenheitenDuerfenNegativSein())
+ {
+ sollMitarbeiter = 0;
+ }
+ //if (stundenSollProMonat.HasValue)
+ //{
+ // decimal stundenProTag = stundenSollProMonat.Value;
+ // if (arbeitstage != 0)
+ // {
+ // stundenProTag = stundenSollProMonat.Value/arbeitstage;
+ // }
+ // sollMitarbeiter -= (ath.TageGesamt.Value * stundenProTag);
+ //}
+ //else
+ //{
+ // decimal sollProWoche = maxWochenstunden*bu;
+
+
+ // var minusStunden = BerechneStundenDurchAbwesenheiten(ath, start, ende, c, sollProWoche);
+
+
+ //}
+ }
+
+ var ath2 = GetAbwesenheitenDurchServiceRecords(ed, c, records, start, ende);
+
+ if (ath2 != null)
+ {
+
+ var stunden = ath2.StundenKrankheit + ath2.StundenUrlaub + ath2.StundenSonstiges;
+
+ sollMitarbeiter -= stunden;
+
+ if (sollMitarbeiter < 0 && !StundenDurchAbwesenheitenDuerfenNegativSein())
+ {
+ sollMitarbeiter = 0;
+ }
+
+
+ }
+
+
+ decimal stundenMonat = minutenMonat/60m;
+ stundenMonat = ((flsIst*AddRateFactorToIst()) + mittelbarIst)/60m;
+
+
+ if (!ueberstunden.HasValue)
+ ueberstunden = 0;
+ ueberstunden += stundenMonat - sollMitarbeiter;
+
+ if (SollPauseBerechnen())
+ {
+ var pause1 = BerechnePauseMinuten(recordsThisMonth);
+ var pause2 = BerechneAutoPausen(recordsThisMonth);
+
+ ueberstunden -= pause1/60;
+ ueberstunden -= pause2/60;
+ }
+
+ decimal extraUeberstunden = 0;
+ BerechneExtraUeberstunden(emp, start, ende, out extraUeberstunden);
+ ueberstunden += extraUeberstunden;
+
+ alteExtraUeberstunden += extraUeberstunden;
+
+ if (ShouldCreateDayDetails())
+ {
+ var days = CreateDayDetails(start, ende, ed, records);
+ var ah = GetAdditionalHours(days, start, ende, ed, records);
+ ueberstunden += ah;
+ }
+
+ ed.StundenSollOhneUrlaubKrankheit = sollMitarbeiter;
+ ed.FlsIst = flsIst / 60;
+ ed.MittelbarIst = mittelbarIst / 60;
+ ed.StundenGesamtIst = stundenMonat;
+ ed.Ueberstunden = ueberstunden;
+ ed.UeberstundenVormonat = edTotal.Ueberstunden;
+
+ ueberstunden = BerechneUeberstunden(ed, ueberstunden, c, start, ende);
+
+ edTotal.StundenSollOhneUrlaubKrankheit += sollMitarbeiter;
+ edTotal.StundenSollMax += soll ?? 0;
+ edTotal.FlsIst += flsIst / 60;
+ edTotal.MittelbarIst += mittelbarIst / 60;
+ edTotal.StundenGesamtIst += stundenMonat;
+ edTotal.Ueberstunden = ueberstunden;
+
+ start = ende;
+ }
+
+ if (start >= contractEnd)
+ {
+ var ctemp = GetNextValidContractForDate(start, emp);
+ if (ctemp != null && ctemp.Oid != c.Oid)
+ {
+ c = ctemp;
+ }
+ else
+ {
+ c = null;
+ }
+
+ if (c != null && c.EntryDate.HasValue && c.EntryDate >= start)
+ start = c.EntryDate.Value;
+ else
+ {
+ start = start.AddMonths(1);
+ c = GetNextValidContractForDate(start, emp);
+ if (c != null && c.EntryDate.HasValue && c.EntryDate >= start)
+ start = c.EntryDate.Value;
+ }
+ }
+ }
+
+ }
+
+ return edTotal;
+ }
+
+ protected virtual decimal? BerechneUeberstunden(MitarbeiterstundenkontoRO.EmployeeDetail ed, decimal? ueberstundenStd, Contract contract, DateTime start, DateTime ende)
+ {
+ return ueberstundenStd;
+ }
+
+ public virtual decimal BerechneSollProWoche(Contract c, MitarbeiterstundenkontoRO.EmployeeDetail ed)
+ {
+ if (c != null)
+ {
+ if (c.MonthlyTotalHours.HasValue && c.MonthlyTotalHours.Value > 0)
+ {
+ if (ed.ArbeitstageImBerichtszeitraum > 0)
+ {
+
+ decimal stundenProTag = GetSollArbeitszeitProArbeitstag(c, ed);
+
+
+ return (stundenProTag * 5);
+ //sollStundenProWoche = stundenProTag * ed.ArbeitstageProWoche;
+
+ //return (ath.TageGesamt.Value * stundenProTag);
+ }
+ }
+ else if (c.WeeklyTotalHours.HasValue)
+ {
+ return c.WeeklyTotalHours.Value;
+ }
+ }
+ return 0;
+ }
+
+
+ public virtual decimal BerechneStundenDurchAbwesenheiten(AbsenceTimeDays ath, DateTime start, DateTime ende, Contract c, MitarbeiterstundenkontoRO.EmployeeDetail ed)
+ {
+ if (BerechneAlteAbwesenheitsStunden(start))
+ {
+ return BerechneStundenDurchAbwesenheitenAlt(ath, start, ende, c, ed);
+
+ }
+ decimal stunden = 0;
+
+ if (c != null)
+ {
+ if (ath.TageGesamt.HasValue)
+ {
+ if (HatArbeitszeitImZeitraum(ed.Employee.Arbeitszeiten, start, ende))
+ {
+ return BerechneAbwesenheitsStundenDurchArbeitszeiten(ed.Employee, start, ende);
+
+ }
+ decimal sollStundenProWoche = BerechneSollProWoche(c, ed);
+
+ if (sollStundenProWoche > 0)
+ {
+ if (ed.ArbeitstageProWoche == 5)
+ {
+ stunden = ath.TageGesamt.Value * (sollStundenProWoche / 5);
+ }
+ else if (ath.TageProWocheDict != null && ed.ArbeitstageProWoche > 0)
+ {
+ foreach (var week in ath.TageProWocheDict.Keys)
+ {
+ var tage = ath.TageProWocheDict[week];
+
+ if (tage > 0)
+ {
+ if (tage > ed.ArbeitstageProWoche)
+ {
+ tage = ed.ArbeitstageProWoche;
+
+ }
+
+ stunden += tage * (sollStundenProWoche / ed.ArbeitstageProWoche);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ return stunden;
+ }
+
+ public virtual decimal BerechneAbwesenheitsStundenDurchArbeitszeiten(Employee emp, DateTime start, DateTime ende)
+ {
+ decimal stunden = 0;
+
+ DateTime startTemp = start;
+
+ while (startTemp < ende)
+ {
+ stunden += BerechneAlleAbwesenheitsStundenFuerArbeitszeiten(emp, startTemp);
+
+ startTemp = startTemp.AddDays(1);
+ }
+
+ return stunden;
+ }
+
+ public virtual decimal BerechneAlleAbwesenheitsStundenFuerArbeitszeiten(Employee emp, DateTime tag)
+ {
+ decimal stunden = 0;
+
+ foreach (var az in emp.Arbeitszeiten)
+ {
+ if ((!az.GueltigVon.HasValue || az.GueltigVon.Value <= tag) &&
+ (!az.GueltigBis.HasValue || az.GueltigBis.Value >= tag))
+ {
+
+ var day = tag.DayOfWeek;
+ foreach (var ae in az.ArbeitszeitEintraege)
+ {
+ if (SindAmGleichenWochentag(day, ae.Tag))
+ {
+
+ String dateStr1 = String.Format("{0:dd.MM.yyyy} {1}", tag, ae.UhrzeitVon);
+ String dateStr2 = String.Format("{0:dd.MM.yyyy} {1}", tag, ae.UhrzeitBis);
+
+ DateTime date1;
+ DateTime date2;
+
+ if (DateTime.TryParse(dateStr1, out date1) && DateTime.TryParse(dateStr2, out date2))
+ {
+ stunden += BerechneAbwesenheitsStundenFuerArbeitstag(emp, date1, date2);
+
+ }
+ }
+ }
+ }
+ }
+
+ return stunden;
+ }
+
+ public virtual decimal BerechneAbwesenheitsStundenFuerArbeitstag(Employee emp, DateTime arbeitstagStart, DateTime arbeitstagEnde)
+ {
+ foreach (var at in emp.AbsenceTimes)
+ {
+
+ if ((!at.Start.HasValue || at.Start.Value <= arbeitstagEnde.Date) &&
+ (!at.End.HasValue || at.End.Value >= arbeitstagStart.Date))
+ {
+ var faktor = GetFeiertagsFaktor(arbeitstagStart);
+
+ if (faktor < 1)
+ {
+ var hours = (decimal)arbeitstagEnde.Subtract(arbeitstagStart).TotalHours;
+ if (faktor != 0)
+ {
+ hours *= faktor;
+ }
+
+ return hours;
+ }
+
+
+ }
+ }
+
+ return 0;
+ }
+
+ //CB 12.4.18: Die Abwesenheitsstunden wurden bei Arbeitstagen < 5 früher falsch berechnet. Damit bereits erstellte Stundenkonto nicht zu veränderten Werten führen, habe
+ //ich einen Schalter eingebaut, mit dem bestimmt werden kann, ob die alte Berechnung angewendet werden soll oder nicht (Standard ist ja)
+ public virtual bool BerechneAlteAbwesenheitsStunden(DateTime monatAnfang)
+ {
+ if (monatAnfang < new DateTime(2018, 4, 1))
+ {
+ return true;
+ }
+
+ return false;
+ }
+
+ private decimal BerechneStundenDurchAbwesenheitenAlt(AbsenceTimeDays ath, DateTime start, DateTime ende, Contract c, MitarbeiterstundenkontoRO.EmployeeDetail ed)
+ {
+
+ decimal? sollProMonat = BerechneSollProMonat(ed.Employee, start, ende);
+
+ if (sollProMonat.HasValue)
+ {
+ decimal stundenProTag = sollProMonat.Value / ed.ArbeitstageImBerichtszeitraum;
+ return (ath.TageGesamt.Value * stundenProTag);
+ }
+ else
+ {
+ decimal sollProWoche = BerechneSollProWoche(c, ed);
+ decimal stunden = 0;
+
+ if (ath.TageGesamt.HasValue)
+ {
+ if (ed.ArbeitstageProWoche == 5)
+ {
+ stunden = ath.TageGesamt.Value * (sollProWoche / ed.ArbeitstageProWoche);
+ }
+ else if (ath.TageProWocheDict != null && ed.ArbeitstageProWoche > 0)
+ {
+ foreach (var week in ath.TageProWocheDict.Keys)
+ {
+ var tage = ath.TageProWocheDict[week];
+
+ if (tage > 0)
+ {
+ if (tage > ed.ArbeitstageProWoche)
+ {
+ tage = ed.ArbeitstageProWoche;
+
+ }
+ stunden += tage * (sollProWoche / ed.ArbeitstageProWoche);
+ }
+ }
+ }
+ }
+
+ return stunden;
+ }
+ }
+
+ public virtual decimal GetSollArbeitszeitProArbeitstag(Contract contract, MitarbeiterstundenkontoRO.EmployeeDetail ed)
+ {
+ if (contract.MonthlyTotalHours.HasValue && contract.MonthlyTotalHours.Value > 0 && ed.ArbeitstageImBerichtszeitraum > 0)
+ {
+ return contract.MonthlyTotalHours.Value / ed.ArbeitstageImBerichtszeitraum;
+ }
+ else if (contract.WeeklyTotalHours.HasValue && ed.ArbeitstageProWoche > 0)
+ {
+ return contract.WeeklyTotalHours.Value / ed.ArbeitstageProWoche;
+ }
+
+ return 0;
+ }
+
+ //Wird nicht mehr benutzt
+ public virtual decimal BerechneStundenDurchAbwesenheiten(AbsenceTimeDays ath, DateTime start, DateTime ende, int arbeitstageProWoche, decimal sollProWoche)
+ {
+ decimal stunden = 0;
+
+ if (ath.TageGesamt.HasValue)
+ {
+ if (arbeitstageProWoche == 5)
+ {
+ stunden = ath.TageGesamt.Value*(sollProWoche/arbeitstageProWoche);
+ }
+ else if (ath.TageProWocheDict != null && arbeitstageProWoche > 0)
+ {
+ foreach (var week in ath.TageProWocheDict.Keys)
+ {
+ var tage = ath.TageProWocheDict[week];
+
+ if (tage > 0)
+ {
+ if (tage > arbeitstageProWoche)
+ {
+ tage = arbeitstageProWoche;
+
+ }
+ stunden += tage * (sollProWoche / arbeitstageProWoche);
+ }
+ }
+ }
+ }
+
+ return stunden;
+ }
+
+ public virtual Dictionary> CreateServiceRecordDictByDate(IList records)
+ {
+ var dict = new Dictionary>();
+ foreach (var item in records)
+ {
+ if (!IsServiceRecordFehlzeit(item))
+ {
+ if (item.Start.HasValue)
+ {
+ String key = String.Format("{0:yyyyMM}", item.Start.Value);
+
+ IList list;
+ if (!dict.ContainsKey(key))
+ {
+ list = new List();
+ dict.Add(key, list);
+ }
+ else
+ {
+ list = dict[key];
+ }
+ list.Add(item);
+ }
+ }
+ }
+ return dict;
+ }
+
+ public virtual decimal GetAdditionalHours(IList days, DateTime berichtStart, DateTime berichtEnde, MitarbeiterstundenkontoRO.EmployeeDetail ed, IList recordsAll)
+ {
+ decimal addHours = 0;
+
+ foreach (var dayDetail in days)
+ {
+ if (dayDetail.BreakMinutes2.HasValue && dayDetail.MaxHoursUntilBreak2.HasValue)
+ {
+ addHours += CalculateBreakMinutes(dayDetail, dayDetail.MaxHoursUntilBreak2.Value, dayDetail.BreakMinutes2.Value);
+ }
+ if (dayDetail.BreakMinutes.HasValue && dayDetail.MaxHoursUntilBreak.HasValue)
+ {
+ addHours += CalculateBreakMinutes(dayDetail, dayDetail.MaxHoursUntilBreak.Value, dayDetail.BreakMinutes.Value);
+ }
+
+ }
+
+ return addHours;
+ }
+
+ public virtual decimal CalculateBreakMinutes(MitarbeiterstundenkontoRO.DayDetail dayDetail, int maxHoursUntilBreak, int breakMinutes)
+ {
+ decimal addHours = 0;
+
+ if (dayDetail.ZusammenhaengendeZeitraeume != null && dayDetail.ZusammenhaengendeZeitraeume.Count > 0)
+ {
+ foreach (var span in dayDetail.ZusammenhaengendeZeitraeume)
+ {
+ if (span.EndDateTime.Subtract(span.StartDateTime).TotalHours > maxHoursUntilBreak)
+ {
+ addHours -= (breakMinutes / 60m);
+ dayDetail.MinutesTotal -= breakMinutes;
+ dayDetail.PauseInMinuten += breakMinutes;
+ }
+ }
+
+ return addHours;
+ }
+
+ if (dayDetail.EndDateTime1.HasValue && dayDetail.StartDateTime1.HasValue)
+ {
+ if (dayDetail.EndDateTime1.Value.Subtract(dayDetail.StartDateTime1.Value).TotalHours > maxHoursUntilBreak)
+ {
+ addHours -= (breakMinutes / 60m);
+ dayDetail.MinutesTotal -= breakMinutes;
+ dayDetail.PauseInMinuten += breakMinutes;
+ }
+ }
+ if (dayDetail.EndDateTime2.HasValue && dayDetail.StartDateTime2.HasValue)
+ {
+ if (dayDetail.EndDateTime2.Value.Subtract(dayDetail.StartDateTime2.Value).TotalHours > maxHoursUntilBreak)
+ {
+ addHours -= (breakMinutes / 60m);
+ dayDetail.MinutesTotal -= breakMinutes;
+ dayDetail.PauseInMinuten += breakMinutes;
+ }
+ }
+ if (dayDetail.EndDateTime3.HasValue && dayDetail.StartDateTime3.HasValue)
+ {
+ if (dayDetail.EndDateTime3.Value.Subtract(dayDetail.StartDateTime3.Value).TotalHours > maxHoursUntilBreak)
+ {
+ addHours -= (breakMinutes / 60m);
+ dayDetail.MinutesTotal -= breakMinutes;
+ dayDetail.PauseInMinuten += breakMinutes;
+ }
+ }
+ if (dayDetail.EndDateTime4.HasValue && dayDetail.StartDateTime4.HasValue)
+ {
+ if (dayDetail.EndDateTime4.Value.Subtract(dayDetail.StartDateTime4.Value).TotalHours > maxHoursUntilBreak)
+ {
+ addHours -= (breakMinutes / 60m);
+ dayDetail.MinutesTotal -= breakMinutes;
+ dayDetail.PauseInMinuten += breakMinutes;
+ }
+ }
+
+ return addHours;
+ }
+
+ public virtual void BerechneExtraUeberstunden(Employee emp, DateTime start, DateTime ende, out decimal stunden)
+ {
+ stunden = 0;
+
+ if (emp.Overtimes != null)
+ {
+ foreach (var ot in emp.Overtimes)
+ {
+ if (ot.Date >= start && ot.Date < ende)
+ {
+ stunden += ot.Betrag;
+ }
+ }
+ }
+ }
+
+ public Contract GetNextValidContractForDate(DateTime dt, Employee emp)
+ {
+ Contract contractNextToStartDate = emp.GetValidContractForDate(dt);
+
+ if (contractNextToStartDate == null)
+ {
+
+ foreach (var item in emp.Contracts)
+ {
+ if (item.EntryDate.HasValue && item.EntryDate.Value >= dt)
+ {
+ if (contractNextToStartDate == null || item.EntryDate.Value < contractNextToStartDate.EntryDate.Value)
+ {
+ contractNextToStartDate = item;
+ }
+ }
+
+
+ }
+ }
+ return contractNextToStartDate;
+ }
+
+ public virtual AbsenceTimeDays GetAbsenceTimeDaysWithWorkWeeks(Employee emp, DateTime start, DateTime end, int arbeitstageProWoche)
+ {
+ if (HatArbeitszeitImZeitraum(emp.Arbeitszeiten, start, end))
+ {
+ return GetAbsenceTimeDaysNachArbeitszeiten(emp, start, end, arbeitstageProWoche);
+ }
+ return GetAbsenceTimeDaysWithWorkWeeks(emp.AbsenceTimes, start, end, arbeitstageProWoche);
+
+ }
+
+ public virtual AbsenceTimeDays GetAbsenceTimeDaysNachArbeitszeiten(Employee emp, DateTime start, DateTime end, int arbeitstageProWoche)
+ {
+ var atd = new AbsenceTimeDays();
+
+ decimal? tage = null;
+
+ DateTime startTemp = start;
+
+ while (startTemp < end)
+ {
+ AddAbsenceDaysNachArbeitszeitenFuerTag(atd, emp, startTemp);
+
+ startTemp = startTemp.AddDays(1);
+ }
+
+
+ return atd;
+ }
+
+ public virtual void AddAbsenceDaysNachArbeitszeitenFuerTag(AbsenceTimeDays atd, Employee emp, DateTime tag)
+ {
+ Dictionary daysDict = new Dictionary();
+ foreach (var az in emp.Arbeitszeiten)
+ {
+ if ((!az.GueltigVon.HasValue || az.GueltigVon.Value <= tag) &&
+ (!az.GueltigBis.HasValue || az.GueltigBis.Value >= tag))
+ {
+
+ var day = tag.DayOfWeek;
+ foreach (var ae in az.ArbeitszeitEintraege)
+ {
+ if (SindAmGleichenWochentag(day, ae.Tag))
+ {
+
+ String dateStr1 = String.Format("{0:dd.MM.yyyy} {1}", tag, ae.UhrzeitVon);
+ String dateStr2 = String.Format("{0:dd.MM.yyyy} {1}", tag, ae.UhrzeitBis);
+
+ DateTime date1;
+ DateTime date2;
+
+ if (DateTime.TryParse(dateStr1, out date1) && DateTime.TryParse(dateStr2, out date2))
+ {
+ String dayKey = String.Format("{0:dd.MM.yyyy}", date1);
+ if (!daysDict.ContainsKey(dayKey))
+ {
+ AddAbsenceDaysFuerTag(atd, emp, date1, date2);
+ daysDict.Add(dayKey, true);
+ }
+
+ }
+ }
+ }
+ }
+ }
+ }
+
+ private void AddAbsenceDaysFuerTag(AbsenceTimeDays atd, Employee emp, DateTime arbeitstagStart, DateTime arbeitstagEnde)
+ {
+ var hours = (decimal)arbeitstagEnde.Subtract(arbeitstagStart).TotalHours;
+
+ foreach (var at in emp.AbsenceTimes)
+ {
+
+ if ((!at.Start.HasValue || at.Start.Value <= arbeitstagEnde.Date) &&
+ (!at.End.HasValue || at.End.Value >= arbeitstagStart.Date))
+ {
+
+ var faktor = GetFeiertagsFaktor(arbeitstagStart);
+
+ if (faktor < 1)
+ {
+ var tag = 1m;
+ if (faktor != 0)
+ {
+ tag *= faktor;
+ hours *= faktor;
+ }
+
+
+ if (IsKrankheitAbsenceTime(at))
+ {
+ if (!atd.TageKrankheit.HasValue)
+ atd.TageKrankheit = 0;
+
+ atd.TageKrankheit += tag;
+ }
+
+ if (IsUrlaubAbsenceTime(at))
+ {
+ if (!atd.TageUrlaub.HasValue)
+ atd.TageUrlaub = 0;
+
+ atd.TageUrlaub += tag;
+ }
+ if (!atd.TageGesamt.HasValue)
+ atd.TageGesamt = 0;
+
+
+ atd.TageGesamt += tag;
+ }
+ }
+ }
+
+ }
+
+ public virtual AbsenceTimeDays GetAbsenceTimeDaysWithWorkWeeks(IList absenceTimes, DateTime start, DateTime end, int arbeitstageProWoche)
+ {
+ var atd = new AbsenceTimeDays();
+ var totalSpan = new DateTimeSpan();
+ totalSpan.StartDate = start;
+ totalSpan.EndDate = end.AddDays(-1);
+
+ var weeks = totalSpan.GetWeeks(true, false);
+ if (BerechneAlteAbwesenheitsStunden(start))
+ {
+ totalSpan.EndDate = end;
+
+ weeks = totalSpan.GetWholeWeeks();
+ }
+
+ atd.TageProWocheDict = new Dictionary();
+ foreach (var week in weeks)
+ {
+ atd.TageProWocheDict.Add(week, 0);
+ }
+ decimal? tage = null;
+ if (absenceTimes != null)
+ {
+ foreach (var item in absenceTimes)
+ {
+ if (IstAnrechenbareAbsenceTime(item))
+ {
+ DateTimeSpan span = new DateTimeSpan();
+
+ span.StartDate = start;
+
+ if (item.Start.HasValue && item.Start.Value > span.StartDate)
+ {
+ span.StartDate = item.Start.Value;
+ }
+
+ span.EndDate = end;
+ if (item.End.HasValue && item.End.Value.Date.AddDays(1) < span.EndDate)
+ {
+ span.EndDate = item.End.Value.Date.AddDays(1);
+ }
+
+ if (span.EndDate >= start && span.StartDate < end)
+ {
+ DateTime day = span.StartDate;
+ while (day < end && day < span.EndDate)
+ {
+ if (item.Start.HasValue && item.End.HasValue && item.Start == item.End &&
+ item.Start.Value.Hour > 0)
+ {
+
+ }
+
+ var faktor = GetFeiertagsFaktor(day);
+ bool istWochenende =
+ day.DayOfWeek == DayOfWeek.Saturday || day.DayOfWeek == DayOfWeek.Sunday;
+ if (arbeitstageProWoche == 6)
+ {
+ istWochenende = day.DayOfWeek == DayOfWeek.Sunday;
+ }
+ else if (arbeitstageProWoche > 6)
+ {
+ istWochenende = false;
+ }
+
+ if (faktor < 1 && !istWochenende)
+ {
+ if (!tage.HasValue)
+ tage = 0;
+
+ var tag = 1m;
+ var std = 24m;
+ if (faktor != 0)
+ {
+ tag *= faktor;
+ std *= faktor;
+ }
+
+
+ tage += std;
+
+ if (IsKrankheitAbsenceTime(item))
+ {
+ if (!atd.TageKrankheit.HasValue)
+ atd.TageKrankheit = 0;
+
+ atd.TageKrankheit += tag;
+ }
+
+ if (IsUrlaubAbsenceTime(item))
+ {
+ if (!atd.TageUrlaub.HasValue)
+ atd.TageUrlaub = 0;
+
+ atd.TageUrlaub += tag;
+ }
+
+ foreach (var week in weeks)
+ {
+ if (day >= week.StartDate && day <= week.EndDate)
+ {
+ if (atd.TageProWocheDict.ContainsKey(week))
+ {
+ atd.TageProWocheDict[week] += 1;
+ }
+ }
+ }
+ }
+
+ day = day.AddDays(1);
+ }
+
+ }
+ }
+ }
+ }
+ if (tage.HasValue)
+ tage /= 24;
+ atd.TageGesamt = tage;
+ return atd;
+ }
+
+
+ public virtual AbsenceTimeDays GetAbsenceTimeDays(IList absenceTimes, DateTime start, DateTime end)
+ {
+ return GetAbsenceTimeDaysWithWorkWeeks(absenceTimes, start, end, ANZ_WOCHENTAGE);
+ }
+
+ public virtual decimal? GetFehlzeiten(IList records, DateTime monat)
+ {
+
+ return GetFehlzeiten(records, monat, monat.AddMonths(1));
+ }
+
+ public virtual decimal? GetFehlzeiten(IList records, DateTime start, DateTime ende)
+ {
+ decimal? stunden = null;
+ decimal minuten = 0;
+ if (records != null)
+ {
+ foreach (var item in records)
+ {
+ if (IsServiceRecordFehlzeit(item))
+ {
+ if (item.Start.Value >= start && item.Start.Value < ende)
+ {
+ if (item.GroupRoundedDuration.HasValue)
+ {
+ minuten += item.GroupRoundedDuration.Value;
+ }
+ else
+ {
+ if (appSettings.ShowRoundedDurationInEmployeeAnalysis)
+ {
+ minuten += item.RoundedDuration;
+ }
+ else
+ {
+ minuten += (decimal)item.End.Value.Subtract(item.Start.Value).TotalMinutes;
+ }
+ }
+ }
+ }
+ }
+ }
+ if (minuten != 0)
+ stunden = minuten / 60;
+ return stunden;
+ }
+
+
+ public virtual decimal GetArbeitstageImMonat(DateTime datum, Employee emp)
+ {
+ Contract c = GetNextValidContractForDate(datum, emp);
+ if (c == null)
+ return 0;
+
+ DateTime start = new DateTime(datum.Year, datum.Month, 1);
+
+ DateTime end = start.AddMonths(1);
+
+ if (c.EntryDate.HasValue)
+ {
+ if (c.EntryDate >= end)
+ return 0;
+
+ if (c.EntryDate > start)
+ start = c.EntryDate.Value;
+ }
+ if (c.ContractEndDate.HasValue && c.ContractEndDate.Value.AddDays(1) < end)
+ end = c.ContractEndDate.Value.AddDays(1);
+
+ return GetArbeitstageImBereich(start, end, emp);
+
+ }
+
+ public virtual decimal GetArbeitstageImBereich(DateTime von, DateTime bis, Employee emp)
+ {
+ DateTime start = von;
+ DateTime end = bis;
+
+ TimeSpan ts = end.Subtract(start);
+
+ var maxDays = (decimal)ts.TotalDays;
+
+ while (start < end)
+ {
+ int arbeitstageProWoche = ANZ_WOCHENTAGE;
+
+ var c = GetContractForDate(emp, start, start);
+
+ if (c != null && c.WeeklyDays.HasValue && c.WeeklyDays > 0)
+ {
+ arbeitstageProWoche = c.WeeklyDays.Value;
+ }
+
+
+ if (arbeitstageProWoche <= 5 && (start.DayOfWeek == DayOfWeek.Saturday || start.DayOfWeek == DayOfWeek.Sunday))
+ {
+ maxDays -= 1;
+ }
+ else if (arbeitstageProWoche == 6 && start.DayOfWeek == DayOfWeek.Sunday)
+ {
+ maxDays -= 1;
+ }
+ else
+ {
+ maxDays -= GetFeiertagsFaktor(start);
+ //if (IstFeiertag(start))
+ // maxDays--;
+ }
+ start = start.AddDays(1);
+ }
+ return maxDays;
+
+ }
+
+ public virtual Contract GetContractForDate(Employee emp, DateTime start, DateTime ende)
+ {
+ Contract c = emp.GetValidContractForDate(start);
+ if (c == null) // Kein Vertrag vom 1. gefunden, gucken, ob es einen gibt, der mitten im Monat beginnt.
+ {
+ var c2 = GetNextValidContractForDate(start, emp);
+ if (c2 != null && c2.EntryDate.HasValue && c2.EntryDate.Value < ende)
+ c = c2;
+ }
+ return c;
+ }
+
+ //gibt 1 zurück wenn ganzer Feiertag und z.B. 0.5 bei halben etc.
+ public virtual decimal GetFeiertagsFaktor(DateTime start)
+ {
+ if (IstFeiertag(start))
+ {
+ return 1;
+ }
+ return 0;
+ }
+
+ public virtual bool IstFeiertag(DateTime start)
+ {
+ List feiertage = GetFeiertage(start.Year);
+
+ foreach (var ft in feiertage)
+ {
+ if (start.Date == ft)
+ return true;
+ }
+ return false;
+ }
+
+ public virtual List GetFeiertage(int year)
+ {
+ List list = new List();
+ list.Add(new DateTime(year, 1, 1)); // "Neujahr"));
+ //list.Add(new DateTime(year, 1, 6)); // , "Heilige Drei Könige"));
+ list.Add(new DateTime(year, 5, 1)); // , "Tag der Arbeit"));
+ //list.Add(new DateTime(year, 8, 15)); // , "Mariä Himmelfahrt"));
+ list.Add(new DateTime(year, 10, 3)); // , "Tag der dt. Einheit"));
+ //list.Add(new DateTime(year, 10, 31)); // , "Reformationstag"));
+ list.Add(new DateTime(year, 11, 1)); // , "Allerheiligen "));
+
+ list.Add(new DateTime(year, 12, 24)); // , "Heilig Abend"));
+
+ list.Add(new DateTime(year, 12, 25)); // , "1. Weihnachtstag"));
+ list.Add(new DateTime(year, 12, 26)); // , "2. Weihnachtstag"));
+
+ if (year == 2017)
+ {
+ list.Add(new DateTime(year, 10, 31)); // , "Reformationstag"));
+ }
+
+ DateTime osterSonntag = GetOsterSonntag(year);
+ //list.Add(osterSonntag); // , "Ostersonntag"));
+ //list.Add(osterSonntag.AddDays(-3)); // , "Gründonnerstag")); q
+ //list.Add(osterSonntag.AddDays(-48)); // , "Rosenmontag"));
+ list.Add(osterSonntag.AddDays(-2)); // , "Karfreitag"));
+ list.Add(osterSonntag.AddDays(1)); // , "Ostermontag"));
+ list.Add(osterSonntag.AddDays(39)); // , "Christi Himmelfahrt"));
+ //list.Add(osterSonntag.AddDays(49)); // , "Pfingstsonntag"));
+ list.Add(osterSonntag.AddDays(50)); // , "Pfingstmontag"));
+ list.Add(osterSonntag.AddDays(60)); // , "Fronleichnam"));
+
+
+ //01.01. Neujahr
+ //01.05. Tag der Arbeit
+ //03.10. Tag der Deutschen Einheit
+ //01.11. Allerheiligen
+ //25.12. 1. Weihnachtstag
+ //26.12. 2. Weihnachtstag
+
+ //Karfreitag
+ //Ostermontag
+ //Christi Himmelfahrt (39 Tage nach Ostersonntag)
+ //Pfingstmontag (50 Tage nach Ostersonntag)
+ //Fronleichnam (60 Tage nach Ostersonntag)
+
+ //24.12. Heilig Abend
+
+ return list;
+ }
+
+
+ protected DateTime GetOsterSonntag(int year)
+ {
+
+ int g, h, c, j, l, i;
+
+ g = year % 19;
+ c = year / 100;
+ h = ((c - (c / 4)) - (((8 * c) + 13) / 25) + (19 * g) + 15) % 30;
+ i = h - (h / 28) * (1 - (29 / (h + 1)) * ((21 - g) / 11));
+ j = (year + (year / 4) + i + 2 - c + (c / 4)) % 7;
+
+ l = i - j;
+ int month = (int)(3 + ((l + 40) / 44));
+ int day = (int)(l + 28 - 31 * (month / 4));
+
+ return new DateTime(year, month, day);
+
+ }
+
+ public virtual bool IsServiceRecordFehlzeit(ServiceRecord sr)
+ {
+ if (sr.ServiceDescription != null && sr.ServiceDescription.ServiceCategory != null && !String.IsNullOrEmpty(sr.ServiceDescription.ServiceCategory.Name) && sr.ServiceDescription.ServiceCategory.Name.ToLower().IndexOf("fehlzeit") >= 0)
+ return true;
+ return false;
+ }
+ }
+
+ public class AbsenceTimeDays
+ {
+ public decimal? TageUrlaub;
+ public decimal? TageKrankheit;
+ public decimal? TageGesamt;
+
+ public Dictionary TageProWocheDict;
+ public Dictionary RestStundenProWocheDict;
+ }
+
+ public class AbsenceTimeHours
+ {
+ public decimal StundenUrlaub;
+ public decimal StundenKrankheit;
+ public decimal StundenSonstiges;
+ }
+
+ public class ServiceRecordSummary
+ {
+ public decimal IstAbrechenbar { get; set; }
+
+ public decimal IstNichtAbrechenbar { get; set; }
+
+ public IList RecordsImBerichtszeitraum { get; set; }
+ }
+}
diff --git a/Service/Plugins/PluginLoader.cs b/Service/Plugins/PluginLoader.cs
index b3d894153..6da04298d 100644
--- a/Service/Plugins/PluginLoader.cs
+++ b/Service/Plugins/PluginLoader.cs
@@ -268,9 +268,10 @@ namespace BeWo.Service.Plugins
//t = "2998118179"; // BeWo Plus
//t = "9254115251"; // Praunheimer Werkstätten 2.DB
//t = "5798370140"; // Team Pfeil
- t = "5880845152"; // Bewegt Systemische Beratung und Begleitung (Kathrin Lilly)
+ //t = "5880845152"; // Bewegt Systemische Beratung und Begleitung (Kathrin Lilly)
//t = "4817284046"; // Verein für Sozialmedizin Stade e.V.
//t = "6323001211"; // ASB Faßbacher Hof gGmbH
+ t = "8242644560"; // Bewolonia - Fr. Sultan Schulz
return t;
#else
diff --git a/Service/Service.csproj b/Service/Service.csproj
index 0965a9fe0..4b83b26e3 100644
--- a/Service/Service.csproj
+++ b/Service/Service.csproj
@@ -175,6 +175,7 @@
+
@@ -313,6 +314,8 @@
+
+
diff --git a/Service/ServiceContracts/IOperationsService.cs b/Service/ServiceContracts/IOperationsService.cs
index ccac9461f..b28770cb2 100644
--- a/Service/ServiceContracts/IOperationsService.cs
+++ b/Service/ServiceContracts/IOperationsService.cs
@@ -853,6 +853,10 @@ namespace BeWo.Service.ServiceContracts
[OperationContract]
IList GetAllAbsenceReason();
+ [FaultContract(typeof(BeWoFault))]
+ [OperationContract]
+ List GetCertainTeamsById(List oids);
+
[FaultContract(typeof(BeWoFault))]
[OperationContract]
AbsenceTimeDC UpdateAbsenceTimeWithReturn(AbsenceTimeDC absenceTimeDC);
@@ -865,6 +869,10 @@ namespace BeWo.Service.ServiceContracts
[OperationContract]
void DeleteAbsenceTime(AbsenceTimeDC absenceTimeDC);
+ //[FaultContract(typeof(BeWoFault))]
+ //[OperationContract]
+ //List GetAbsenceTimesForMonth(long empOid, DateTime date, long absenceReason);
+
[FaultContract(typeof(BeWoFault))]
[OperationContract]
List GetSupportConceptCostBearerRelDCsByOids(List supportConcept2CostbearerOids);
@@ -966,6 +974,16 @@ namespace BeWo.Service.ServiceContracts
[OperationContract]
void InsertNewDienstEintrag(DienstEintragDC dienstEintrag);
+ [FaultContract(typeof(BeWoFault))]
+ [OperationContract]
+ void InsertRegelmaessigerDienst(RegelmaessigerDienstDC dienst);
+
+ [FaultContract(typeof(BeWoFault))]
+ [OperationContract]
+ void DeleteRegelmaessigerDienst(RegelmaessigerDienstDC dienst);
+
+ List GetRegelmaessigeDienste(long wOid);
+
[FaultContract(typeof(BeWoFault))]
[OperationContract]
void InsertNewDienstvertretung(DienstvertretungDC dienstvertretung);
@@ -1129,11 +1147,7 @@ namespace BeWo.Service.ServiceContracts
[FaultContract(typeof(BeWoFault))]
[OperationContract]
- DienstplanerRootDC BuildDienstplanerRootObject();
-
- [FaultContract(typeof(BeWoFault))]
- [OperationContract]
- DienstplanerRootDC AddMissingDataToDienstplanerRootObject(DienstplanerRootDC root, DateTime date, long wohnheimOid);
+ DienstplanerRootDC BuildDienstplanerRootObject(DateTime date, long wohnheimOid);
[FaultContract(typeof(BeWoFault))]
[OperationContract]
diff --git a/Service/ServiceImplementations/CustomerServiceImp.cs b/Service/ServiceImplementations/CustomerServiceImp.cs
index d479961f5..a0ed269f5 100644
--- a/Service/ServiceImplementations/CustomerServiceImp.cs
+++ b/Service/ServiceImplementations/CustomerServiceImp.cs
@@ -2581,6 +2581,7 @@ namespace BeWo.Service.ServiceImplementations
MapperFactory.WohnheimDC_Wohnheim.MergeWithEntity(dc, original);
DAOFactory.GenericDAO.Update(original);
+
return original.Oid.Value;
}
catch (Exception e)
diff --git a/Service/ServiceImplementations/OperationsServiceImp.cs b/Service/ServiceImplementations/OperationsServiceImp.cs
index c8c20c3bc..a42468aa2 100644
--- a/Service/ServiceImplementations/OperationsServiceImp.cs
+++ b/Service/ServiceImplementations/OperationsServiceImp.cs
@@ -6240,6 +6240,40 @@ namespace BeWo.Service.ServiceImplementations
throw Utils.CreateBeWoFaultException(e);
}
}
+ public void InsertRegelmaessigerDienst(RegelmaessigerDienstDC dienst)
+ {
+ try
+ {
+ DAOFactory.GenericDAO.Insert(MapperFactory.RegelmaessigerDienstDC_RegelmaessigerDienst.MapToNewEntity(dienst));
+ }
+ catch (Exception e)
+ {
+ throw Utils.CreateBeWoFaultException(e);
+ }
+ }
+ public void DeleteRegelmaessigerDienst(RegelmaessigerDienstDC dienst)
+ {
+ try
+ {
+ DAOFactory.GenericDAO.Delete(DAOFactory.GenericDAO.GetByID((long)dienst.Oid));
+ }
+ catch (Exception e)
+ {
+ throw Utils.CreateBeWoFaultException(e);
+ }
+ }
+ public List GetRegelmaessigeDienste(long wOid)
+ {
+ try
+ {
+ return MapperFactory.RegelmaessigerDienstDC_RegelmaessigerDienst.MapToNewDCs(DAOFactory.GenericDAO.GetAllActive())
+ .Where(x => x.WohnheimOid == wOid).ToList();
+ }
+ catch (Exception e)
+ {
+ throw Utils.CreateBeWoFaultException(e);
+ }
+ }
public List GetAbsenceTimeVacationByWohnheim(long wohnId, int year, int month)
{
@@ -6356,6 +6390,10 @@ namespace BeWo.Service.ServiceImplementations
var allEmployees = DAOFactory.GenericDAO.GetAllActive().ToList();
+ List teams = new List();
+ if (filter.Teams != null)
+ teams = DAOFactory.GenericDAO.GetActiveByIDs(filter.Teams) as List;
+
foreach (var emp in allEmployees.OrderBy(x => x.Person.LastNameFirstName))
{
if (filter.EmploymentType != null)
@@ -6368,6 +6406,19 @@ namespace BeWo.Service.ServiceImplementations
if (filter.AbsenceReasons != null)
emp.AbsenceTimes.RemoveRange(x => !filter.AbsenceReasons.Contains(x.AbsenceReason.Oid.Value));
+ if (filter.Teams != null)
+ {
+ bool isInTeam = false;
+ foreach (var team in teams)
+ {
+ if (team.MemberList.Contains(emp))
+ isInTeam = true;
+ }
+ if (!isInTeam)
+ continue;
+ }
+
+
var empDC = MapperFactory.EmployeeDC_Employee.MapToNewDC(emp);
if (dict.ContainsKey(filter.Year))
{
@@ -6388,7 +6439,11 @@ namespace BeWo.Service.ServiceImplementations
throw Utils.CreateBeWoFaultException(exception);
}
}
-
+ public List GetCertainTeamsById(List oids)
+ {
+ var teams = DAOFactory.GenericDAO.GetActiveByIDs(oids);
+ return MapperFactory.CompactTeamDC_Team.MapToNewDCs(teams);
+ }
public UrlaubskontoDC GetUrlaubskontoByEmployee(long empOid, int year)
{
try
@@ -6403,6 +6458,14 @@ namespace BeWo.Service.ServiceImplementations
throw Utils.CreateBeWoFaultException(exception);
}
}
+ //public List GetAbsenceTimesForMonth(long empOid, int month, int year, long absenceReason)
+ //{
+ // //var timesForMonth = DAOFactory.SearchDAO.FindAbsenceTimesForEmployee(date, date.AddMonths(1).AddTicks(-1), empOid);
+
+ // //var dcs = MapperFactory.AbsenceTimeDC_AbsenceTime.MapToNewDCs(timesForMonth);
+
+ // //return dcs;
+ //}
public List GetAllConfirmationReceiptSignatures()
{
@@ -6716,39 +6779,67 @@ namespace BeWo.Service.ServiceImplementations
}
}
- public DienstplanerRootDC BuildDienstplanerRootObject()
+ public DienstplanerRootDC BuildDienstplanerRootObject(DateTime date, long wohnheimOid)
{
try
{
var cs = new CustomerServiceImp();
var es = new EmployeeServiceImp();
- DienstplanerRootDC root = DienstplanungsManager.BuildDienstplanerRootObject();
+ DienstplanerRootDC root = DienstplanungsManager.BuildDienstplanerRootObject(date, wohnheimOid);
- root.Wohnheime = cs.GetAllActiveWohnheimeCompact();
- root.AllEmployee = es.GetAllActiveEmployees();
-
- return root;
- }
- catch (Exception e)
- {
- throw Utils.CreateBeWoFaultException(e);
- }
- }
- public DienstplanerRootDC AddMissingDataToDienstplanerRootObject(DienstplanerRootDC root, DateTime date, long wohnheimOid)
- {
- try
- {
- DienstplanerRootDC temp = DienstplanungsManager.AddMissingDataToDienstplanerRootObject(root, date, wohnheimOid);
- root.AlleDienstEintraege = temp.AlleDienstEintraege;
- root.AlleDienstvertretungen = temp.AlleDienstvertretungen;
-
- root.DienstDCListe = temp.DienstDCListe;
+ //root.Wohnheime = cs.GetAllActiveWohnheimeCompact();
root.Feiertage = GetDefaultFeiertageForYear(date.Year);
root.AbsenceTimes = GetAbsenceTimeVacationByWohnheim(wohnheimOid, date.Year, date.Month);
+ root.RegelmaessigeDienste = GetRegelmaessigeDienste(wohnheimOid);
+ var wh = DAOFactory.GenericDAO.GetByID(wohnheimOid);
+
+ List empOids = new List();
+ foreach (var item in wh.Employee2WohnheimList)
+ {
+ empOids.Add((long)item.EmployeeOid);
+ }
+
+ root.AllEmployee = MapperFactory.EmployeeDC_Employee.MapToNewDCs(DAOFactory.GenericDAO.GetActiveByIDs(empOids));
+
+ var konto = MitarbeiterstundenkontoRO.Create(null, null, date, date.AddMonths(1), empOids);
+
+ var berechnung = new MitarbeiterstundenkontoBerechnung();
+ berechnung.CreateReport(konto);
+ root.MonatsZusammenfassung = new List();
+ foreach (var item in konto.EmployeeDetailList)
+ {
+ DienstplanerMonthlySummaryDC dc = new DienstplanerMonthlySummaryDC
+ {
+ Employee = MapperFactory.EmployeeDC_Employee.MapToNewDC(item.Employee),
+ Soll = item.StundenSollOhneUrlaubKrankheit,
+ ZeitkontoLetzterMonat = item.UeberstundenVormonat,
+ ZeitkontoAktualisiert = item.Ueberstunden,
+ TageUrlaub = item.TageUrlaub != null ? (decimal)item.TageUrlaub : 0,
+ TageKrank = item.TageKrankheit != null ? (decimal)item.TageKrankheit : 0
+ };
+ var eintraegeFuerMitarbeiterMonat = root.AlleDienstEintraege.FindAll(x => x.EmployeeOid == dc.Employee.EmployeeOid).ToList();
+ var vertretungenFuerMitarbeiterMonat = root.AlleDienstvertretungen.FindAll(x => x.EmployeeOid == dc.Employee.EmployeeOid).ToList();
+
+ decimal stunden = 0;
+ if (eintraegeFuerMitarbeiterMonat.Count > 0)
+ {
+ foreach (var eintrag in eintraegeFuerMitarbeiterMonat)
+ stunden += Convert.ToDecimal(eintrag.DauerInStunden);
+ }
+ if (vertretungenFuerMitarbeiterMonat.Count > 0)
+ {
+ foreach (var vertretung in vertretungenFuerMitarbeiterMonat)
+ stunden += Convert.ToDecimal(vertretung.DauerInStunden);
+ }
+ dc.Ist = stunden;
+ dc.Saldo = dc.Ist - dc.Soll;
+
+ root.MonatsZusammenfassung.Add(dc);
+ }
return root;
}
catch (Exception e)
diff --git a/Shared/BeWoEntityEnums.cs b/Shared/BeWoEntityEnums.cs
index a6de1f96b..9c14e78a2 100644
--- a/Shared/BeWoEntityEnums.cs
+++ b/Shared/BeWoEntityEnums.cs
@@ -156,7 +156,8 @@ namespace BS.Shared
Quittierungsbelegsstatus = 149,
Dokumentvorlage = 150,
Vorlagentabelle = 151,
- Dienstvertretung = 152
+ Dienstvertretung = 152,
+ RegelmaessigerDienst = 153
}
public enum SystemEntryID
diff --git a/Shared/DataContracts/AbsenceOverviewFilterDC.cs b/Shared/DataContracts/AbsenceOverviewFilterDC.cs
index 5e04aa723..3a863c803 100644
--- a/Shared/DataContracts/AbsenceOverviewFilterDC.cs
+++ b/Shared/DataContracts/AbsenceOverviewFilterDC.cs
@@ -17,5 +17,8 @@ namespace BS.Shared.DataContracts
[DataMember]
public int Month { get; set; }
+
+ [DataMember]
+ public List Teams { get; set; }
}
}
\ No newline at end of file
diff --git a/Shared/DataContracts/DienstplanerMonthlySummaryDC.cs b/Shared/DataContracts/DienstplanerMonthlySummaryDC.cs
new file mode 100644
index 000000000..353a282c3
--- /dev/null
+++ b/Shared/DataContracts/DienstplanerMonthlySummaryDC.cs
@@ -0,0 +1,21 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace BS.Shared.DataContracts
+{
+ public class DienstplanerMonthlySummaryDC
+ {
+ public EmployeeDC Employee { get; set; }
+ public decimal Soll { get; set; }
+ public decimal Ist { get; set; }
+ public decimal Saldo { get; set; }
+ public decimal? ZeitkontoLetzterMonat { get; set; }
+ public decimal? ZeitkontoAktualisiert { get; set; }
+ public decimal TageUrlaub { get; set; }
+ public decimal TageKrank { get; set; }
+
+ }
+}
diff --git a/Shared/DataContracts/DienstplanerRootDC.cs b/Shared/DataContracts/DienstplanerRootDC.cs
index 230d3064c..3af49084c 100644
--- a/Shared/DataContracts/DienstplanerRootDC.cs
+++ b/Shared/DataContracts/DienstplanerRootDC.cs
@@ -17,8 +17,8 @@ namespace BS.Shared.DataContracts
[DataMember]
public List AlleDienstvertretungen { get; set; }
- [DataMember]
- public List Wohnheime { get; set; }
+ //[DataMember]
+ //public List Wohnheime { get; set; }
[DataMember]
public List DienstDCListe { get; set; }
@@ -35,10 +35,16 @@ namespace BS.Shared.DataContracts
[DataMember]
public List