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 @@ + + + \ 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 + ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA + ooooAKKKKACiiigAooooAKKKKACvO/h3pv2Xxd4mbHEUvlD8WLf0FeiVj6Lpn2HVdanxj7TOrj6CNR/P + NctWnzVKcuzf5HZRq8lKrDul+aNiiiiuo4wooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii + igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACivzs/bI/ba+KXwV+P2 + s+EvC95pMOjWtpazRpd6eJpN0kQZstuGeax/hX+0h+198bNBuNa8GaboGsabb3BtJJvskEO2UKrFcPMC + eGXnpzXP7ePNy2dz2Y5VWdJVnKKi+7tufpXRX5/ah4+/bq02FpX8I6ROFGdttbWsjH6AT1wN5/wUT+PX + wp1pdP8AH/gfTY5j/wAu2oafPYSOB1KOGKn6gMKPbxW6aCOV1qn8OcZPykfp/RXzJ+zn+3x4D+PepW+g + XMU3hLxZNxDpuoSK0VyfSGYYDN/skK3oDX03W0ZKSvFnm1qNTDy5KsbMKK+e/wBuT40eJ/gN8E4/E3hK + a1g1ZtWtrMteW/nJ5bh9w25HPyjmvif4e/t3ftIfFTxhYeF/DMvh6/1u+3/Z7d9OjiDbVLt8zSAD5VJ5 + NZSrRhLle53YfLa2JpOtFpRXd9j9XKK+Ef7d/bv/AOhf8L/nZ/8Ax+j+3f27/wDoX/C/52f/AMfo9r/d + f3B/Z7/5+w/8CPu6ivhH+3f27/8AoX/C/wCdn/8AH69T+MXjz41fD39kW08Y/wDEtsviNpMMV1r1sbZL + iAx7isoQK2BtDK+QTwppqpo3ZmcsE4yjFVIvmdtHc+m6K/MH4A/8FHPiNrvxi8LaT45vNHl8MaldrZXL + W9gIHiaT5Y5N+44AcrnjoTX6fU6dSNRXiRi8HVwclGr17BRRRWpwhRVa31K0vLq7tYLmKa5tGVLiJHBa + JmUMoYdsqQRnsas0AFFFcj8W/iFZ/Cj4Z+JfF98R9n0exkutp/jcDCJ9Wcqv40m7K7KjFzkox3Z11FfL + X7BPxl+Jfx68G+IPFfju5099OF4tlpkVjZCDLIuZnJ3HcMsqj/davqWlGSkuZGtejLD1HSk9V2CivnD9 + o79ujwD+z7PNpG5/FHi2MfNo+nOALc4yPPlPyx/TlvavGPA3xB/aw/aot01fw++j/Cnwbcf6m+mtC8sy + f3o/MVnkH+0Aik9DWbqxT5Vqzqp4GrKHtZ2jHu9Pu6s+9qK+Q4/2UfjzHH54/ab1k3/91tLUwf8AfPmV + wfjv4i/tX/sq20mreIm0b4qeDoWzLqEVoVkgT1k8sK8Y/wBoh1B6mh1HHWUWVHBxqvlpVYt9tV+aPvii + vnL9nH9ubwD+0JcQaOrSeGfFrrkaPqDAic9/IlHyyfThv9mvo2tIyUldHFWo1KEuSorMKKK+eP2ovjX4 + p+FOtaBbeH5rSKK8t5ZJvtFv5pLKygY5GOpqak1TjzM1wuGnjKqo0933Poeivnf9l/42eKfirrevW3iC + a0lhs7eOSIW9v5RDMxBzyc9K+iKITVSPMgxWGng6ro1N12CiiitDkCiiqGua5p/hvS7jUtUvIbCwt13y + 3E7BVUfX+lA0nJ2W5for5h8Tftdaj4j1xdC+G3hyTVryVikd1doTv/2liBGFHXc5A9RW5Y/DP41+J41u + Ne+I0Xh92/5dNLtlcoPQsAoz+J+tc/tlJ2grnrPLalKKliZqnfo9/uSbPoKivAb74U/GPQYTNofxQ/ta + WM5W31S0VQ/tuw38q5nTf2q/E3gHxCdC+Jvhn7NKnBu7BSrEZ++EJKyL7qfwodZR+NNBHLZ1k3hpxnbo + rp/c0j6korH8K+LtI8b6LBq2iX0WoWEw+WSM9D3Vh1Vh3B5rYrdO+qPKlFwbjJWaCimTMUhdh1Ckj8q+ + LvB/7ZHimx8WQjxOtpe6F5rRTra23lyxrnAdTnkj07jNZVKsabSl1O/CYCtjYzlR15f60+4+1KKqaVqt + nrmm22oafcR3dlcxiWGeI5V1IyCKt1see007MKKKzvEd9Lpvh/VLyAgT29rLLGWGRuVCRkfUUBFczSRo + 0V4v+y78Utf+K3hPVtQ8QS28tzbXogjNvD5Q2+WrcjJyck17RUQkpxUkb4ihPDVZUZ7oKK+FtY/a4+I1 + nq2oW8V1pojhuJY0zYgnarkD+L0FfYnw11278T/D/wAPavfsjXt7YxTzNGu1S7KCcDsKzp1o1G1E7sZl + tfAwjUq2s+x0tFFFbnkhRWJ428V2ngfwnquvXxxbWMDTFe7EfdUe5OB+NfOP7K/x21jxV401bQvE2pSX + kuohrux85siJlyXhT0Xacgf7BrKVSMZKD6noUcFVr0KmIhtD+vw3Z9U0UUVqeeFFFFABRRRQAUUUUAFF + FFABRRRQAUUUUAFFFFAH46f8FIP+TtvEn/XhYf8AogV9b/8ABKX/AJIL4i/7GGb/ANEQ18kf8FIP+Ttv + En/XhYf+iBX1v/wSl/5IL4i/7GGb/wBEQ15tP+O/mfa4z/kVU/SJ9qVyXxR+Fnhr4xeDr7w14p02LUdO + ukKguo8yB8cSRt1R1PII/lxXW1g+OvHWifDbwnqXiTxFfxabpGnxGaaeU44A4VR3YngKOSSBXou1tT42 + DkpJw36H4MeOPC978N/iBrvh6S5YX+g6nNaC6iJVt8UhCyKR0PyhhjpX7VfsofE29+L/AOz34M8Uao/m + arc2hhvJP+ek0TtE7/Vim7/gVfi7428Q3/xZ+KGua1bWM0+peI9WmuILCBC8rPNISkagdWwQK/az9mH4 + ZXnwe+AvgzwlqOz+0rGy3XYjOQs0jtLIue+GcjPfFefhr87tsfY55b6vT5/jv+mv42PEv+CpH/JscX/Y + fsv5SV8NfsB/8na+Bfrdf+k0lfcv/BUj/k2OL/sP2X8pK+G/2AgW/a28C4Gebv8A9JpKVX+OvkPL/wDk + V1P+3vyP2iooor0j4oKo65o1p4i0W/0rUIRcWN9BJbXETdHjdSrD8QTV6igd7ao/AT4r/D29+EvxL8Se + ELsutzo189vHNyC8YO6KQfVCjfjX7Q/sqfFtfjZ8B/CviaSQSai1sLTUQDkrdRfJJn6kbvowr4p/4Kr/ + AAj/ALL8WeGviPZw4g1SL+ydRZRwJ4wWhY+7JvX/ALZik/4JUfFz+y/F3iX4cXk2INUi/tXT1Y8CeMBZ + lHuybG/7ZmvNp/uqrh3Ps8avr+XxxC+KP/DP/M/TGquqalbaLpt3qF7KtvZ2kLzzSt0RFUszH2ABNWq+ + VP8AgpB8Wv8AhXH7PN3o9rP5WqeKpv7Li2nDCDG64b6bBs/7aCu+UuWLkz5PD0XiKsaS6s8D/Yi/akuf + Fv7W3jlNWnZLD4gSyXFlHI3EU0AP2dBn1gBX3Kiv0nr+fTQNa1f4b+M9M1i1SWw1rRLyK7ijkUo6SRsG + CkHpnp9DX71fD3xrYfEfwNoPijS3D2Gr2UV5Fg52h1BKn3ByD7g1zYafMmme7nWFVGcKsFo1b7v+B+R0 + NfCH/BU74nTweFfCnwx0ktLqXiC7W8uYI/vNFGwWFMf7czD/AL9193ZxyeBX5p/C8f8ADWv/AAUQ1fxW + /wDpXhbwjIZrY9UMdufKtgP9+YtL+BrSs9FBdThy2KVSWIntTV/n0Pu74C/DGD4N/B/wr4PhC79NskS4 + df8AlpcN88z/AIuzGvn39v79rm4+CPh+Dwb4Suli8a6zAZJLtTltNtTlfMH/AE0cghfTBbsK+vppkt4Z + JZWCRxqWZm6AAZJr8Ffjh8Srv4v/ABc8VeLrt2b+0r6RrdWOfLt1OyFB7BFX9aivP2cFGJ1ZVhvruIlV + q6pavzbPaP2DP2c4f2g/izd6v4libUPC+gFbvUFnYt9uunJMUTk8sCQzvnqFAP3q/YKGFLeJIokWONFC + qiDAUDgADsK+VP8Agmf4Lj8M/sx2OqGFUutfv7m/kkxy6K/kx59gIv1NfV1XQhywT7nPm2IlXxMo30jo + v1CmTQx3MMkM0ayxSKUeN1BVlIwQQeoIp9FdB4x+O/7d37OcX7PPxatNU8NxtYeFteLXmmiBypsblCDL + EjDlQCVdMdA2P4a+yf2Af2uLj44eHZvB3iu483xpolurreOQDqVqCF8w/wDTRTgP65DdzWj/AMFL/BMf + ij9mS/1UQq914fv7a/jkx8yIz+TIB7ESc/Qelfl58FfiXefB/wCK3hjxfZSNG2mXqPOqtgSW7HbNGfYo + WH5V5sn7Crpsz7ajD+1MBafxx0T81/mtz98a+Pf26P8AkZvCX/Xpcf8AoaV9e21xHeW8U8LB4pUDow6F + SMg/lXyF+3R/yM3hL/r0uP8A0NK6MV/CZ5GR/wC/w+f5MT9hj/kZ/Ff/AF5w/wDobV9h18efsMf8jP4r + /wCvOH/0Nq+w6ML/AAkGe/7/AD+X5IKKKK6jwCC+voNNsri7upVgtreNpZZXOFRVGST7ACvz1+O3xsv/ + AIu+IpCkkkHhy1cixsuQGA481x3c/oOPXP0r+2V4zl8PfDODSLdzHNrdx5DlTj9yg3OPx+UfQmvkz4Qe + H08U/FLwtpkqeZBNfxtKvYoh3sPyWvMxVRykqUT7nIsLClRljqi2vb0W7/Q+0v2b/g/b/DHwXb3V1br/ + AMJFqcazXkxGWjU8rCD2CjGfU59q9door0IxUIqKPja9eeIqyq1Hqwrz342fCey+LXg24sZI0TVrdWl0 + +6IwYpcdCf7rdCPx6gV6FRTlFSVmTSqzozVSm7NH5ufCv4oa18F/Fxu4Fka3WQw6jpbNhZgpwwx2dcHD + fh0Nfoj4c8QWXirQbDWNNmE9jewrNE47qR0PoR0I9RXwL+014dTw38avEEcSbIbwx3ygdMyKC3/j4ava + /wBiHxrLeaTrnha4kZ1snW8tQxztRyQ6j2DAH/gRrzcPN05ukz7bOMNDFYWOPpqzsm/R/wCR9O3H/HvL + /un+Vfl4vhvUb/S9Y1m3tmm07T7lYrqZOfJMjNsLD0JUjPrj1r9Q7j/j3l/3T/KvlH9i7T7bVoPiDZXk + EdzaXEkMUsMq5V1Pmggj0rbEQ9pKMfU83J8S8HQr10r25fzaOF/Zt+P8nwz1JND1uZn8LXcnDtz9hkJ+ + +P8AYJ+8O3Ud8/dMM0dxCksTrLFIoZHQ5VlIyCD3Ffn7+0F8Dbn4Ra/59mslx4YvnP2SduTC3XyXPqOx + 7j3Bruv2Xf2hT4ZntvB3iW5/4lErbNPvZW4tWJ4iYn+Anof4Tx0PGVGq6cvZVDvzPAU8dS+vYPW+67/8 + Fdf6v9l1j+Mv+RQ1z/rxn/8ARbVsVj+Mv+RQ1z/rxn/9FtXpS2Z8XT+OPqeBfsLf8iB4g/7CY/8ARMdf + StfNX7C3/IgeIP8AsJj/ANEx19K1hh/4UT1M4/36r6/oj8sPEX/Iwav/ANfk/wD6Mav0a+Cv/JI/CH/Y + Lg/9AFfnL4i/5GDV/wDr8n/9GNX6NfBX/kkfhD/sFwf+gCuLCfGz6biL/dqXr+h2tFFZ3iHXbTwxoV/q + 9/J5VnZQPPK3+yoz+dersfBJOTSW581ftf8AjC68Q6xoHw30UG4vbuaOe5iQ/edjthjPpzlj9FNfL2k6 + nqXgTxZbXsKtbarpN3u2NwRJG2GQ+xwQfrX0n+zBoV38T/ih4i+Jmsx7hFMyWqtyBM46D2jjwv8AwKuQ + /bC+Hf8Awi3xAj8QWsW3T9dUu+0cLcqAHH/Ahhvrurx6sZTXtvP8D9HwNWlhqiyxr7OvnJ6tfcfZnhPx + LaeMvDOma3YNvtL6BZ09sjlT7g5B9xWvXyz+xR8RPtFjqfgu7l+e3JvbEMesbHEiD6MQ3/AjX1NXp0p+ + 0gpHw2OwrweIlRey29OgUUUVqcAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB+On/BSD/k7bxJ/wBeFh/6 + IFdb+xp4b/aK1j4banN8IfEuiaP4dXVJFuINSCGRrjy49zDdE/G0p37VyX/BSD/k7bxJ/wBeFh/6IFfW + /wDwSl/5IL4i/wCxhm/9EQ15cI81Zr1Pu69V0cspyST0jurozLjwN+3EsLbfG/heQ/3YxCG/Am3r5Q/a + c+G37SMMP9q/FiLWtb0m1O9byGdLmwt/9rZD8sf1ZR9a/ZamTQx3ELxSossUilXRwCrAjBBB6iuuVBSV + rs8ChmkqM+b2UfkrP7z8rv2J/wBoH4B/CPULP+3/AAtf6P4qlURv4u1B1vYkLcHaFANuh/2VPHViK/Uv + TtRtdXsLe+sbmG8s7iNZYbiBw8ciEZDKw4II7ivxt/by+CemfBH4+XNpoVutnoOt2q6taWifdtyzMksa + jsodSQOwbHavpj/glP8AF7UdW0vxR8OdQuHubTSUTUtMEhz5MTuVliHoofawHYu1Y0ajjL2Uj0MywkK9 + D69Sb13T1/qx6L/wVI/5Nji/7D9l/KSvzi/Zv+HN38WvjR4e8KWOv3Xhe6vzNs1azDGWDZEznbtZTyFx + 94da/R3/AIKkf8mxxf8AYfsv5SV8NfsB/wDJ2vgX63X/AKTSVFZXrJPyOvLZOGWzlHdc35H1t/w7X8W/ + 9HA+KP8Avif/AOSabJ/wTV8WvGyj9oLxQpIxnZP/APJNfd9FdfsafY+d/tPF/wA34L/IpaJp7aTo1hYv + O109rbxwtO/3pCqgFjyeTjP41doorc8vc8n/AGp/hIvxs+BPirwwkYfUZLY3WnkjJW6i+eLH1I2/RjX4 + u/Cj4hX3wk+Jnhvxfaq6XOi3yXEkPILxg7ZYz9ULr+Nfv1X4s/t0fCP/AIVD+0Z4ggt4PJ0fXD/bNhgY + ULKT5qD/AHZQ/wCBFcGJja00fV5HWUufCz2ev6M/ZnRNYtPEWjWGq2Ey3FjfQR3MEq9HjdQyn8QRX5w/ + tBSN+1d+334b+HduxuPDfhh1t7wKflxHie8J9zhIfqK9B/Yz/agtdD/Yz8TXerzCW/8Ah3DJCI3PMsLA + taL+LHyv+ACs3/glv8ObvUofG3xa1sGfUtZunsLe4k5L/P5tzIP96RlX/tma0lL2vLFddTmo0XgHXrS3 + j7q9X1+7U8c/4KdfCEeCPjRY+MLKDy9M8VWw83YuFW7hCo4/4FH5bfUNXvf/AASw+Ln/AAkXw21v4f3k + +698O3H2qzVjybSYkkD2WXf/AN9rXr/7d3whPxe/Z11+G1g87WdEH9sWG0fMWiBMiD/ejLjHrivzG/Y4 + +Lw+Df7QXhbW5p/K0i+l/svUSThfs85C7j7K+x/+A1jL91Wv0Z30f+FDLHT+1D9Nvw0P1P8A2zfi3/wp + v9njxTrEE3k6reQ/2Xpxzz9omygYe6rvf/gFeYf8EyfhJ/wgfwFPia6h2al4suPtYZvvC1jykA/H53/4 + GK8h/wCCg+u3vxv/AGiPh58EtElJ8qaN7zZ0Se4/ib/rnAGf/gdfoZ4e0Kz8L6DpujadEILDT7aO0t4x + /DGihVH5AV0R9+q32PHq/wCz4GFPrUd36Lb/ADMj4otLH8M/FzQf69dIvDH/AL3kvj9a/n8t/wDj3ix0 + 2j+Vf0SXlpFqFnPazpvgmjaORT3Vhgj8jX4D/FHwHd/C/wCJHibwnepsn0jUJrUcYDRhiY2HsyFSPrWG + LWzPW4fmv3kOuj/M/Yn9htY1/ZN+Gwi+7/ZzE/73nSbv1zXutfLn/BNvxYniT9ljQ7Pepm0W8utOdQeV + xKZVz9VlFfUddlPWCPm8ZFxxNRPu/wAwooorQ4zw39uBY2/ZP+JXmfd/szI/3vMTb+uK/Ei4/wBRJ/un + +VfsP/wUi8XJ4Z/ZZ1yz3qJtbu7XTY1J5IMgkbH/AAGJq/KH4Y+Bbv4nfETw14TskL3GsX8Vp0yFRmHm + MfZUDE+wrzMTrNJH3WR/u8LKctrv8kfur8J2mb4WeDWuDmc6NZmQn+95CZ/Wvmj9uj/kZvCX/Xpcf+hp + X13Y2cWnWVvaQLsggjWKNR2VRgD8hXyJ+3R/yM3hL/r0uP8A0NK6MT/BfyPGyV82YRfr+TE/YY/5GfxX + /wBecP8A6G1fYdfHn7DH/Iz+K/8Arzh/9DavsOnhf4SJz3/f5/L8kFFFFdR4B8i/t1NJ/ang5f8All5N + 0f8AgWY/6V5f+y6Eb46eGt/TM5H18h8V9BftreE5NX+Huna3Cm5tIu/3uByIpRtJ+gYJ+dfL/wAE9cTw + 78XPCd9I4jhW/SKRm6BZMoT/AOPV49b3cRd+R+j5e1WyhwjulJfPX/M/SiiiivYPzgKKKKAPhj9s4IPj + DEV++dLg3f8AfcmKtfsTtJ/wtTUgn3DpMm/6ebHj9a5f9qbXU1z43a55bBo7JIbIEeqICw/76Zq9Z/Yd + 8JyRxeI/E0qERylNPgYj72355CPxKD8K8ePvYjTufo9d+xyZKfWK/Gx9UXH/AB7y/wC6f5V8s/sO/wCv + 8c/9d4P5y19TXH/HvL/un+VfLP7Dv+v8c/8AXeD+ctd9T+LD5nymE/3DFf8Abn5n0p4q8LaZ408P3mja + vbLdWF0mySNuo9GB7MDyD2Ir88PjF8JdS+EfiqTTLzdc6fNl7G+24WeP0Po46Efj0NfpLXKfEv4caT8U + vCtzomqx4VvnguFA8y3lA+V1+ncdxkUq9FVVpuPKsylgKlpawe/+aPBP2W/2hzfC18FeJ7rNyoEemX8z + cygdIXJ/iH8J7jjrjP0d4y/5FDXP+vGf/wBFtX5t+PPA2r/DXxVc6Jq0Ziu7dt8U0eQsyZ+WVD6HH1BG + Oor6i+C/7Qf/AAnvgXV/DHiCcf8ACSW+mziC4c4+3RiJuf8AroB1Hcc+tc9Gs7eznuexmeWR5ljMLrF2 + bt+a8u5L+wt/yIHiD/sJj/0THX0rXzV+wt/yIHiD/sJj/wBEx19K11Yf+FE8LOP9+q+v6I/LDxF/yMGr + /wDX5P8A+jGr9Gvgr/ySPwh/2C4P/QBX5y+Iv+Rg1f8A6/J//RjV+jXwV/5JH4Q/7BcH/oAriwnxs+m4 + i/3al6/odrXzR+2T47n/ALP0jwHpRaXUNXlSW4ij+8Yw2I4/+BP/AOge9fR2o6hb6Tp9ze3cqw2ttG00 + sjdFVQST+Qr4Z8OaV47+PHxO1vxz4X+z29zZXSvBNesAsK4IiRQVILBBk8cE5711YiT5eRbs8HJ6MXVe + JqNKNPXXa/Q+wvhV4Dg+G3gLSdAh2mS3i3XEi/8ALSZuZG/76J/ACsn48/DsfEz4aappkSBtQhX7VZHv + 5yAkD/gQyv8AwKvKf+EW/aQ/6GXS/wA4v/jVH/CLftIf9DLpf5xf/GqOdcvJyOxUcNKNb6x9YhzXvu9/ + uPlv4feMrr4e+NNJ8QW4YSWM4aWLoXjPyyIfqpI+tfpnpepW2s6ba39nKJrS6iWaKRejIwBB/I1+cnxc + +G/ib4e+IEbxOlubvVN92JrRgY3Yt8/QAA5OcAdxX03+xn8RP7e8GXXha6l3XuitugDHlrZySP8Avlsj + 6Fa5sLJwm6cj289oRxOHhjKWtt7dv+A/zPoqiiivUPggooooAKKKKACiiigAooooAKKKKACiiigD8dP+ + CkH/ACdt4k/68LD/ANECvrf/AIJS/wDJBfEX/Ywzf+iIa8D/AG9PgJ8SfHn7TWvaz4b8Ca7rmkzWVkkd + 7Y2bSROywgMAw7g8Gq/wD8R/tPfs5+Erzw94Z+D+oXVjdXjXzvqOkTPIJGRVIBV14wg/WvMj7lZya7n3 + FWMcRl1OlCSvaO7R+rFFfnfN+1B+2JIhCfBvym/vf2HcH9PNrzj4ga/+2b8aLWTSNR8N+JNL024yklnp + lgmnROp6q8hbcV9i2K6nXXRM8KGVzb9+pFL1OW/4KNfFvSPin8fkt9CuY77T/DtgNLe7hYNHLP5jPLtP + cKWC5HGVNeyf8Em/h3frqXjbx3NC0WmvBHo1rIy4Ezh/MlKnuFxGPqfauT+C3/BLnxl4i1C3u/iNf2/h + bRlYGTT9PmW4vZl/u7hmOPPrlj7V+lngjwTonw58K6d4c8OafFpejafEIre2hHCjqST1LE5JJ5JJJrGl + TlKftJaHo47GUKOFWDw75ujf9dz5d/4Kkf8AJscX/Yfsv5SV8NfsB/8AJ2vgX63X/pNJX6Bf8FFvAniP + 4ifs9x6T4W0O+8QamNatJjZ6fCZZPLUSbmwOwyPzr4F+Cvwq+OnwR+Jmj+NdO+D/AIg1O90zzPLtbqxk + WN98bIcleeA2fwqa1/bJ2N8ulF5fOnzJN827S6H7N0V8J/8ADXn7UH/Rudx/34uf8aP+GvP2oP8Ao3O4 + /wC/Fz/jXV7aPn9x4H9m1u8f/Al/mfdlFfCf/DXn7UH/AEbncf8Afi5/xr68+EPibxB4y+Gvh7WvFWht + 4a8RXtsJb3SWVgbWTJBTDc9AOvrVxqKWiOethamHipTa+TT/ACOwr4x/4KgfCP8A4TD4M2PjSzg36j4V + ud8zKOTZzEJJn2VvLb6Bq+zqyfFnhmx8aeF9W0DU4hNp2p2stncRkdUdSrfjg05x54uJOFrvD1o1V0f/ + AA5+Aui6nrX2W88P6TPP5WuyW9vNYxH5bp1kBhVh3w5BFfut8Dfhnb/B34SeFvB9uF/4ldkkUzr/AMtJ + iN0r/i7Mfxr84v2Pf2S/E2m/tZeR4o0K/t9F8F3E919vurV0t7yWN9luY3YbXySJOCeFr9V65cNBpOTP + ezvExqSjSpvTd/p+A10WRGR1DKwwVYZBHpX4YftS/CU/BX47eLPC6RGPTluTead72s3zxgH/AGclPqlf + ujXwn/wVA+A+peNdD8MeOfDej3mr6tpsjabe22n27zzSW8mWjbYgJIRwR/20q8RDmhddDmybE+xxHJJ6 + S0+fQ8//AOCafgzVPih8YvFnxa8TTy6ldabCtlDeXHLSXUqBWb/gEKBf+2lfpZXif7G/whb4K/s++GND + uoPs+sXMR1LUlYYYXE2GZSPVV2p/wCvbK0ox5YJM4swrrEYiUo7LReiCvgv/AIKSfsrXnjC1X4qeFLJr + rVNPtxDrdlAuXntkztuFA5ZoxkMByUwf4a+9KQgMCCMirnBVI8rMMLiZ4WqqsOn4n5Pf8E1f2gLP4Y/E + u+8Ha1dR22h+K/L+z3MrYSG+QERgnoBIp2/7wSv1ir4i/aa/4JsaL8Rr+88S/Dm6t/C2vTs01xpcykWF + y55LJtGYWJ9AVyeg61znw/8A2lPj3+zXZQ+Hfi78Mtc8W6NaYjh8QaYv2iZIxx80iBklAHdijepNc1Ny + orlnt3PZxdOlmL9vhn7z3i9H8u5+gFFfIn/Dzn4V/Zd39h+NPtf/AD5/2N8/579v615t8RP2kvj1+0xY + zeHPhH8M9c8J6JeZjm17Ul8ieSM8YWVwqRAjqVLN6EVs60Omp50MuxDfvrlXd6I8e/4KTftBWfxS+Jtn + 4R0S6jutB8KeYs1zE+UnvXAEmD0IjUBM/wB4vXtv/BNn9le88J27fFbxVZNa6lfW5h0OznXDw27gb7hg + eQ0g4UHnbk/xVsfsy/8ABNXRvh7fWfiT4kXVt4o1yBllt9IgUmwt3HIZ9wzMwPqAuR0PWvt9VCqABgDg + AVjTpOUvaTPRxeOp08OsHhXddX3/AOHFr49/bo/5Gbwl/wBelx/6GlfYVfLX7YngPxJ4w8QeGZdC0K+1 + eKC2mWV7SEuEJdSAfrg1WJTdJpGGSSjDHQcnZa/kzB/YY/5GfxX/ANecP/obV9h18MfB63+KPwb1DUrv + T/h3qGoPfRJE63Nu6hQpJyNv1r1H/he/xm/6JNL/AN+5qyoVFCCjJP7j0c0wdTFYqVWlKLTt9pdvU+lq + K+af+F7/ABm/6JNL/wB+5q2fBvxk+KuteLNJsNX+Gsml6Xc3Cx3N6Y5QIUOctzxXQq0W7a/czx5ZZXjF + ybjp/ej/AJnt2u6LZ+JNFvdK1CIT2V5C0E0Z7qwwfxr84/it8MdU+Evi6bSbwOYCxksL7GBPFn5WB/vD + jI7H2Ir9K65zx58PtD+JOgyaTr1mt1bMdyOp2yQt2dG6qf8AJzU16PtVpubZXmTy+o1JXg9/80c/8Cvi + fb/FLwDZah5i/wBqW6i31CAH5klAxux6MBuH19q9Dr4/m+AfxJ+BfiR9d8AXa67afdeDhZZI852SxEgP + 9VOe4ArvdN/a4g01BB4w8Ga/oF+vDeXamSM+pG7aR+R+tKFblXLV0ZeJy9VZurgWpwfRbrytufQdcp8T + /iFYfDHwbf67fMpMKFbeAnBnmI+RB9T19ACe1eVal+19pF1G0Xhnwr4g1++P3I/shiQ+5I3Nj/gNeeah + 8J/it+0R4gh1LxaE8MaRGT5FvOP9Qp6iOEHJYjqzkf0onWurU9WTh8tcZKeNahBd3q/JLc8L8L+Gdd+L + XjcWNkhutV1Kdri4mbOyMM2Xkc9lGfx4HWv0Y8B+DbH4feEtN0DTgfs1lFs3sPmkY8s592Yk/jWX8Mfh + N4f+E+jGx0W3Jmkwbi9mw007Dux9PRRwK7OlQo+yV3uy81zP69JU6atCO3n5/wCRHcf8e8v+6f5V8s/s + O/6/xz/13g/nLX1NOC0MgAySpx+VfOf7H/grxB4Qm8YnXNGvNJFzNCYftcRTzADJkr69R+dVUT9rB+pj + hZRWBxMW9Xy/mfSFFFFdJ4p5z8bvg3p/xg8MNaybLbWLUF7C+xzG/wDdb1RuhH0PUV+fOtaLqfhHXbrT + dQhl0/VLKQxyR5wyN6gjqCOhHUGv1Mrxf9o34Cw/FTRf7T0uNIfFNjGfJfoLpBz5Tn1/unsfY1w4ihzr + mjufU5Nmn1WXsKz9x/h/wP8AhzlP2G/+RF8R/wDYU/8AaKV9J184/sS2c9j4N8T29zBJbTx6sUeKZCrK + wiQEEHuDX0dW2H/hRPNzf/fqnr+iPyw8Rf8AIwav/wBfk/8A6Mav0a+Cv/JI/CH/AGC4P/QBXwxr3wX8 + fXGt6nJH4O1l45LqZkZbU4YF2II/Cvu/4S6fdaR8MfC9ne28lrd2+nQxywSrh0YIAVI9RXJhYtTd0fRZ + /Vp1MPSUJJ69H5Hkv7ZHxEbQvBtr4UsXJ1HXG/epH94W6kZH/A2wv0DV6R8Dfh2vwx+G+l6S6AX7r9pv + WHed8Fh/wHhf+A14v4Z8A+Jfil+0fc+K/E+hX2l6Dpr+ZZJfwlBIsZ2wKAffMhr6nrpppzm6j9EeHjZR + w+Gp4Om7/albu9l8kFFFFdR4R5D+1B8Oj4++F93LbReZqmkE31tgfMwUfvEH1XP4qK+Nfgx8QW+GvxE0 + jW95Flv8i8UfxQPgMfw4b/gNfpOyhlIIyDwQa+Bfi1+zx4p0P4gaxb6B4b1DU9Ekl8+1mtIS6Kj/ADeX + n1U5H0ArzsTBqSqRPs8jxVOdKpg670e1/Pdfr9598RSpPEkkbB43AZWU5BB6EU+vLf2cb7xDJ8NbPTfE + +lX2l6npZ+yL9tiKGaED92wz1wvyn/d969SrvjLmimfJ16Xsasqd72YUUUVRgFFFFABRRRQAUUUUAFFF + FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAzyk8zzNi + 7+m7HP50+iigAooooAKKKKACiiigAooooAKKKKACkIDDBGRS0UAIqhVwoCj0ApaKKACiiigAooooAKKK + KACiiigBqqq5woGTk4HWnUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR + RRQAUUUUAFFNZljUsxCqoyWJwAK8M/Zk/acg/aE1T4j6c+m/2ReeFtbNpBA2Q9zp8iB7S7IPTzVDsMcY + x60Ae60V5n8fviprvwa8B3ninSfCkfi+Gz8tZNPj1A21zK8kqRosQMTqxJfuR04zVj9n342aR+0N8IfD + 3j3RYmtbbVYSZbN5A72sysUlhYgDJVlIzgZGDjmgD0Sivnj48ftcD4RfGTwB8MdF8JP4u8T+LWYIP7QW + zgsxnCGRzG/LBZGxjICZ5yKT9or9prxX+zvpfha+vvAOnaxb69qtroiSW/iBo/Iu5w23KtbZaMFT8w59 + qBn0RRXg3xK/aM1v4CyaDffEjwpZ2vhTVNQi0yTxBoGqNdpYTykiPz4ZIYnEZIILoWx6c1Z/am/aL1P9 + mjwlY+Jx4Sh8UaTdX9vpmyPVPstws8xYIdrQspTIAzuzz04oEe4UVlafcazNofnXthZW2rlGItIbx5YA + 38IMpiU46ZITjtmuD+HnxJ8Z+ObXxYbjwbpmjXei6hLpkEUmutMt3LHtLNuW3/doVcYJBbPBUdaAPUaK + 8C/Zw/aW1v8AaE1XxfCvgq18O2PhXXLjw/qM8utG4ka5h+/5SLAoZMkcsy9enFe+0AFFeGftY/tMQ/sx + +FfDutSaWdVjvtYt7a+UbsWmnmRVubo47IHjUZ43SIDXtonE9qJrYpMHTfEd3yvkZHIzwfWgCaivm3Q/ + 20tMs/2kLn4L+PNBHgvxJJHG+lX/APaAurHUmdQwjSQxxlJCGGFI5IIznaG958WX2t6bpL3GhaZZ6teR + 5Y215etaKygE8OI5Oc46gDnrQBs0V896p+0N46uvC/wovPDnw8tdV1/xvP8AaX0dtWYR2OnC382SaW58 + najKzwrjawJbAySKztc/an8beH/jj4a+FVz8L7FvEuv6dPqdpJH4oBtxFFv3B2+y5DfIcAKe1A7H0rRX + kfw/+J/jrXvjBrfhLxX4LsvC9hZ6Nb6lZ3VrqZv/ALYzzSRuN/lxhduxflK5+YHOCKs/tF/F/WfgX8Nd + Z8bWPhi38TaZo1q93fQyap9jlVFI+4PJcMcE9SOlAj1Oivna7/aQ8b6L8EbL4s3/AMO7G+8KS6VFrd1Z + 6Prhk1C0s2jErPskt0jkZEOSocdDgnoe81r4zfbPgjH8TfBdha+J9GfSG1xIrq8ayeW2EJlwp8p8PgY2 + sAAc5NAHptFeH/BH46eMvjt8K/D/AI80fwPpOn6ZrUTT29vfeIH85VDsnzbbQjkqTwe9UvFn7QXjLw58 + O/iLfSfD3yvGPh3UbfStI0aG+N5FrMtwIPs7xuI4yFYz4IIyvlvk8GgZ77RXzH8Y/wBq7xz8CdH8KX/i + n4VWK/8ACRazbaFbQ2XipZWjupwxXfm1A2jYQWGe1dXqvxZ+Kmk+PvBWiXvw30mw0rXbu5tZtUj8QNdL + C8dpNPHGVFuhTe0QG/DAAEYyRQFj3Givl/4f/tTfET4oeMPiV4a0H4YaOmr+A72Oxv7W88UMv2x3DlfJ + kFoVAIT+PH3h713n7Nf7S2l/tHaH4geHRb/wv4j8N6i+la3oOpFWls7lc8b14dThgGGPunigD2SivneH + 9prxVcftIX3wZTwFpp1y10Qa8dS/4SBhatblwgAH2Xfv3N0xjgnNdr4g+JPjrwnrHheLUfAljc6XrGrQ + 6Xc3uma28z2AkDbZnja2Tcm4BThhgsO1AHqdFeB/F79pLXvhZ8Z/h/8AD5PBVprMvjie4g0vUF1owLF5 + Cq8hnQ25K/K2RtLZxjrXsutXeuWvh9p9M02yv9ZVA32Ka9aCFmx8yiXymP0JTnvigRr0V86Xn7Rvj6+8 + J/DK+0D4b2l94g8Z35I0RtZJS005IWea4luRCFjZWMQxtYHeAMkgVV8Q/tT+NvDPxt8K/C27+F9i3iTx + JY3GoWUkfigG3EcKsX3t9lyDhDgBT2oHY+laK8O0f4tfFG++JWt+GNQ+Hmj6SLPRItUsnbXnmjvmaZo5 + F85bf92VCr8pjOd4O4Csv9nX9pbxZ+0n8NYvGuheAtN0rT5bue0W31HxC3m7om2sfktSMZzjntQB9C0V + 554I+IniHV/GXivw/wCKPCsPhoaLbWl5b6jBqX2u3v4ZhLuZSYoyhjaEhgQeoPSuT0/47eMPGvgV/HHg + X4exeIvCzo9xp63WsC0v9Vt1JAlgh8llUPglBI6lgVztzQB7fRWJ4H8VQeOvBmheI7W2uLO31axhvo7a + 7ULNEsiBwjgE4YZwRnqDXknjz9pLUvh/+0X4H+GGo+EYUsPGHmnS/EraqVhZokLSwtF5JIlxjau7Db1+ + Yc4BHu1FeCab+0jrr/tMS/BvV/Bdpo982lNrVlq76yzwahbBgmIU+zgmQNncpIwEY5PGb+jfHLxbqXwm + 8SeO5/BGnWlnpq3MthbjXjIdTigd1MiMLYBFk2ZjyCW3LnbmgZ7ZRXmPjT46ad8JfhvpXiTx/aHRtV1G + SK0t/D2mSG/urm8lOI7S3AVPOlJwOABnPOBmpv8AhKviZNo41OHwFpMblPMGj3Wv7bz/AHSywNCH9t5X + P8XegD0iivPfg98b/D/xo07VTpaXWm63ot0bDWdA1SMRXumXIz+7lQEjBxlXUlWHIJ5rifAf7R2t+N/2 + gPGvws/4Q6zsbvwjHaXGoaodZMkUkVwodDEnkBi208htoyOtAj3iivHP2qP2gbj9mX4XXPjtvDi+JNLs + 5oYLm2S/+zTgyyLGhTMbKw3NzkjHvUfxi+Nviz4QfB258fzeBrPW4rC3+16hptjrREsURKgGMtb4kIDE + kfL04zQB7PRXnnwH+OvhX9or4b6d4y8I3nn2F0Nk1tJgT2c4A3wSqD8rrn6EEEZBBqLUPiF4q034raH4 + Sl8Laa2m6tDdXUWrprDbkigaIMGhNvneRMpADbeDlh3APSKK+fvHH7SniXwd+0N4T+EyeBrDUL/xRa3V + 7p+prrzRwpDArs/mobYsrYTou4ZbrXT+PPiZ8QPAOgprE/gDTdWsku7aC5j03XnaeGKWZI2mCtagMED7 + iMg4BoGetUV4B+1B+1TP+yvHomt+IPB0ureCL+/jsJ9Y02+3XNmzIzl3tjH8ygI54ft2JFez+G/FWmeN + vC9j4g8OX9rrGl6jbrc2V3BJmGdGGVO4A4Hrxkc8ZGKBGxRXnHgX4ieJvEfxB8S+GdY8Mafo8ehxW0r3 + 1tq7XX2jz1cpsQwIQB5bA7iO2Aa9HoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigDyv9pTx + Bf6b8M5tF0WKS58QeKLmPQNPghdUdmmz5zKzHClIFnkyeBsFfN2qX2ofAn9uP4feJ7nwvN4Q8J/ELSl8 + GXkcl3BNH9ttwDZP+7Y4JUJEM9s177q2gePte+Ovh3xJe+G9LPhXQbO6gso11cm5+1TuiPdMnk7cLArK + q7s/vXrC/bX+C/ij4+fCqPwv4Ts7GPXbe+ttW03W76/NuunXcEoZXCrG7NlC68Y+9SKO++PjFPAdow6j + X9FI/wDBlbV82/Au+h/ZU/a7+JHwl1GZbDwP4xil8b+GJJDtht5ACb63XsAAjNjssQP8Vex+OrX4u+M/ + h3oumN4O8Opr6XtheahI3iBxag211FM/lEW247/KIGQNu7nOOcv9oj9mP/hqCz+HWoa1EnhjW/DWuJdz + i3ujK0unt8t1aiVVXiVAvYdCO5piPn74jW1zqH7QX7LPjLUInh1Lxl4t1TWWjkADw2ptYEs4j/u26xkj + szv613//AAVB8/8A4Vp8LPsvlC5/4WHpPleeD5e/Eu3djnGcZxzium/aK+D/AMTfiJ8b/hJ4q8L6D4eG + ifD3Ubi8EeoaxJBLfrKkaFEVLdxFtCHGScnHAqr+2T8Hfiz+0N4X8FaX4W0Tw3pU2i63aeIZptY1iQqZ + oQ+IFWOA5XLcvkcDpSGch+2zpfxIs/DGkeLvH+jeHfHHwl8KX0Ora14Y0GeeyvJ2RtqTs8m4SxxFyxhB + Td1JIHE//BQ7xdpnj/8AZF8E+JtFmM+kax4i0K/tJGXaWilbehI7HBHFepfF34d/FT9oj4ez+BNYi0H4 + faFq6LBrt9p+oSaneSW+QXhtlaGJE342l3JwCflJrW+N37K+h/FL9mxfhJpN0/hyz062tY9Fu1XzTZy2 + u3yGYH7w+UBuckE85piPcK81+CrBpviCRyP+EsvRn6JCD+oNYmi+Lvjba6Tbadqvw80C/wBcjj8uXV7X + xH5WnzOOPNCNAZkB+9s2nGcbj1rqPBXhXWfhv8P3gRYfE3ia4uZ9Rvn8z7LFcXU8rSS7SQ2xFLbVBydq + KOtAHzj/AME4P+Pn9ov/ALKlq/8ANK+y6+Uv2WvhB8UPgD/wsx9U8O6Hqsni7xZeeJYVsdcYC3WfH7li + 9uMlcdRwc12an47XfxG1XxBc6B4ct9DtdJey0TQodelYSXUjqzXN3J9nXhRGqqqg4Dvzk0Azj/iRoWof + H7Wfi7pieErjxD4el0t/BVlew30EKxTAebdSBZGB3LO0K5HGbX2ra/4J/wDxNvviD+zjpGma6SnizwdP + L4V1mF2y6XFodi7vcx+WSe5zXov7P/hPXvAPwr0vQNf0+3g1izjL3Vxb3v2hb66kZpbifcUUrvmd2wRk + bq8i+FXwk+KPwx/aS+I/jSy8P6HH4G8dPb3V3pC625ubW9jTa9yo+z7G8zLFl3A5IOeMUDLHxT/Zz8Nf + tN6x8XPC3iEPa3MN3ptzpWr24xcabdCyXZNGf5rnDDjg4IxP2W/2ivE+j+MLr4A/G9ltPifpUJ/srWmO + IPE1kAdk0bHrKFB3Dq2CSNyuB6x8O7D4iab8TPF2r654U0iz0jX7m1aJ7PW2nmtkigERMiGBQxJGcKeA + ar/tS/sx6P8AtJ+DILdrp9A8ZaPJ9t8O+JrXK3Gm3S4KkMOShKruXPYEYIBoEdP+zvg/AvwEccrotsme + /EYH9K+fPij/AMpQvgv/ANidqf8A7Xr6L+A/hTWvAvwX8FeHvEkkU3iDTdKt7XUJYH3xvcKgEjK2BkFs + noOteC+OPhH8YPEP7Xngz4v2Xhrw0ui+G9JuNI/syfX5FurlZvMzLuFsUUjeMLk9DzzwAfWu0bt2Buxj + OOa8H/bw/wCTO/i1/wBgKb+le6WskstrC88QgnZFMkQbcEYjlc98HvXjv7W3gPxj8WPgj4m8C+DtP0u4 + vPENk9lJearftbRWqkr82FicucZ44+tAjwa58EfG74g/sS+DtC8NyeE7rRrzwtYJe6XCbm2v9Rsfsyb7 + WO4YskUkkeULlCMscY613vwr+J/g/wCK37Bes6n4G0aXw3oVj4Y1HS10SZt72EkFtIjQl/48cHd1YMCc + EkVq/Dfw78ePCvwN0DwImk+DNH1/StLh0lPEY1W4u4EWOMRidbb7OhZwoB2Fwu7vjip/DX7OE3wP/Ziv + vhZ4Ctl8QXmpWV7Bd6nqt39l826uYmV7l8I/G5h8ijhVAyepRRxX7BOoePLf9jn4ZjSNC8PXlkumyeRJ + eazPBK/7+X7yrauF59GNe6/s86t4j8QfB7w7f+MYmi8USic38T8+VKJ5FKA45C42g9wBXnP7M3gn4o/A + X4F+EvAF/wCFdB1e60O3e3a+tdfdI5gZXcEK1tkcNjHtXY+CdL+J+r/GbU/EXi+30nRPCNtpAsdI0jTN + Sku5HneUPPcT5ijXO1I1UDOBu/vGgR4d/wAFOP8AkU/gp/2UzSP/AEGavsxlDYyAcHIyOlfKv7aXwX+J + /wAfh4L0zwjpPh+Cw8M+JLXxF9t1fVpInu2gVsRCNIG2Alzlix6Divo7S9U1648Mtd3+hwWethGP9mQ3 + 4mjLDoBNsXg+pXj0pgfAvw48ZfETwB8ZP2y/EPw+8OaP4ovdN1i3u5bDUruaKWQJDM2IlRCHO0MdpZSS + AAea92/4J8+GvDs3wbufiRpeuyeJfEHxEvX13xBqEkQh2XpLCS2WIE7FicuoBJJznOCAIP2cfg78T/hf + 8eviz4s8QaJoH9gfEDUotQH2HWHludP8tZFVWRoFWTIcZKsMEd6g+Df7P/xH/Zq+NXjw+DYdD1j4N+KL + 0arDotxqEltd6VduB5phXymQoTkbdw4VOm05BnH3c+t2/wDwVS1ttBstPvrz/hXEIaPUbt7aMJ9qXJDJ + FISc44x3PNfQWl+IPiLL8eNI0zX9K0/TPCr+H7ydJNLv5LpJ7xbi2AWTfDHsKozFeudzeleXw/B/4pWf + 7ZGofGeHw/oMukXXhhfDo0uTW3S5DLKsnnbhblccY2575z2rvfi5N8bfF3gPU9D8H+HfD/hzWNRj+y/2 + xd6/JJ9jjfiSSNEtgTIFJ28gA4PbFIDyv9q7/k9f9kz/AK/9a/8ASaOvsNmCqSTgDk14T+0T+z1qPxIl + +HfiXwhqNrp3jX4faiL/AEj+1d72t3GUCS207Ll1DqoG8ZII6HNauoa98YPFmkXOjQeCdJ8H3d1EYJNc + uNeW8itNww0sMSRBpWXJKq/lgnGTjNMRufs6r/xY3wMxXBOlQkEjnBUEfmMV8/fF7/lJz8Bv+xX1f/0X + NX1l4V8O2vhDwxpGhWRc2emWkVlCZDlikaBFJPc4HNfL3xA+Efxf8TftceBPi5YeGvDK6N4V0660z+zb + jXpFurpZ1kUyBhbFEI3ghcnODyM8AH1hdKPIlbA3bGGcc9K+Hf8AgmPe+M4P2VbBdE0fQr2w/tnUtst/ + qs1vKT9obOUW2cYz/tV9ma5fa1D4dWbTtGhv9UkRQ1jJeiFEJX5v3uw5APHC8184/sgfCf4q/sz/AAbg + 8Ean4b8P67PDf3V4t5Za9JGhWaQvtKtbZBBJFAHq/wAC9Q8TeLvBPiJfHtmlvqza7qlnLYpKZYY7YTus + SRuVUunlbSGwM56Cvk6bRfj7/wAE+FnXwtYn4zfAW0d5o9KZiur6HbklmVCASyKM8gOvciPk19FeJPCv + xd+JXjrGoRaP4O8HW+g6jbwR2OrS3V1PqVxGIopZVEMa+VEjSEAEnc2fTDPh1qHx68M+A7Pwv4g8JeHd + a8R2FstlF4nj1xlsbvaNiXE0Ji85WIAZkUEE5wy54APSvg38VPD/AMbPhnoHjbwu7vomr2/nQLKgSSMh + irxuoJAZWVlOCRkcEivGf+Cgnw21Hxh8B5PFXhtSvjL4f3sPivR5YwS+62O6VOOSDHuOO5Va9W/Z/wDg + /afAf4R+H/BNndfbv7OSR57vyxGJ55ZHlmcIPuqZJGwvYYGTjNd/cQR3UEkM0aywyKUeNxkMpGCCPTFA + HwR+2d4utPiB8CfhH+0J4KnuoPEOlj+0IhpihrltLntyNSiz28tA2WPClT3NfTkuqaH420v4Z+G/Crxy + +GNStoNaXyMFP7LtkjeFcejStbLjuA47GuC/ZY/ZXv8A4P6H4z8NeKJ4NX8KLqGo2HhfTWIdbfRrpxLI + j/7UjHaR2EY/vGtH9jP9nfxB+z/4Y13SfEuqf2v9lv5tO8PSFg7QaJHK8ltGT/eLTSswPT5R0UUhnmHx + quJNf/4KgfAvQtY+bQtO8OX2q6bDKCY3vitwGYDpuVYoiD22ivtqvFv2jv2cYvjY3hfxDo2r/wDCLfEP + whefb/D+vLD5qxucb4JkyN8Mm0BlyD6dweg0vxZ8S49Hjh1PwDYS66qhJJrHW0GnyP3dWdPNVSecGMkd + OepYj5wsJ7jw/wD8FZtTs9IYiz17wBHda1DGMKZIpdkUjf7QCRqD6OR3qp8OdT8T6b/wUQ/aKbwzoNjr + sraZoYmS+1M2QjH2dcEEQybs89hjFe+fCL4FXfgXxd4y+JPia8t/EfxL8UKiXE1qpitLO1iGILG2DZIj + GBuduXb5iBwBw3wh+EHxH8K/tW/Er4m63ouiwaH40trC1S2s9Xaa4shbRhNzgwqr7sZwp496BnmP/BSv + XvHt/wDsj+JIde8H6RpGmm+04yXdprzXUin7XFgCM2yZycD7wxnNfS3x2Yr+z3qpBwRa2mD/ANtYq4/9 + ub4N+Mv2hPghf+APB9rpi3OoXFtO+oaretBFB5M6SY2rG7MW247YzWx8TtJ+JfjL4P8A/COad4S0WLWr + pIoZzda6wt4BG8bblZbcs+4K2BtXHGaQjwz44/CrxL+x18StR+Pfwf02TUfCWoN5njzwLbcJPHklr62X + orrlmOOhJP3WcD2/w38UvDXxm8cfCPxl4S1KPVND1PStYaGZeGU4tN0br1V1KkMp5BFeveH7vU9U0rfr + elQ6VdszK1rHdC5Tb679q5zzxivnD4bfscv8E/2pJfGngq++x/DfVrK8mvPC5kIisNSkMQ863TpsdVYE + DG3AHIwFYHJftAy6pD/wUa+AT6Na2d5qA8PazshvrhoIiPKkzl1RyOM4+U5PpXtuseIvidH8W/hvYX2i + 6XYeFry5vl1K40rUpbol1s5WhjkV4I8KWBbIJ5RR3rz/AOJXwh+Jvif9rL4e/FbS9C0M6R4SsL7Tnsrv + WXjnuxOroJF2wMqYDA4J9RXpfjbxB8ZLrwrqkHhbwZ4ds/EEsDx2V1qPiB3ggkIwsjKtrlgp528ZxjIo + At/GbS7PXNf+G+m6jaw32n3muT29za3EYkjmjbTL0MjKeCCD0NfKFv8A2z/wTO+JAhka81f9mbxPffJI + d00nhK8kboepMDH8/wDfH7z6BvPCPxM0mH4VafY6Jpevw+E/JuNS1TUNdeOe9m+wy28mxfIbkyTM252G + dvQZ49f1rw1YfEDwbdaJ4q0a2u9P1S1MF/pdwRNEysPmQnAzjswxyARigDjfh/fWuqfGPx5f2NxFd2N5 + pWi3MFzA4eOWNlutrqw4IIAIIr1CvnD9kn9mXWf2Zdc+IGkNr02u+CbuSz/4Rn7ZMZLiytk89ntXyOiP + L8pBwQ2cA5FfR9ABRRRQIKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA + ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA + 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 DienstZeilenListe { get; set; } + [DataMember] + public List RegelmaessigeDienste { get; set; } + [DataMember] public List Feiertage { get; set; } [DataMember] public string TextBoxForeColor { get; set; } + + [DataMember] + public List MonatsZusammenfassung { get; set; } } } diff --git a/Shared/DataContracts/RegelmaessigerDienstDC.cs b/Shared/DataContracts/RegelmaessigerDienstDC.cs new file mode 100644 index 000000000..ce7f696f5 --- /dev/null +++ b/Shared/DataContracts/RegelmaessigerDienstDC.cs @@ -0,0 +1,55 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.Serialization; +using System.Text; +using System.Threading.Tasks; + +namespace BS.Shared.DataContracts +{ + public class RegelmaessigerDienstDC : IDataContract + { + [DataMember] + public long? Oid { get; set; } + + [DataMember] + public string Notice { get; set; } + + [DataMember] + public long? Version { get; set; } + + [DataMember] + public long EmployeeOid { get; set; } + + [DataMember] + public long WohnheimOid { get; set; } + + [DataMember] + public long DienstOid { get; set; } + + [DataMember] + public int Zeile { get; set; } + + [DataMember] + public string Wochentag { get; set; } + + [DataMember] + public string Startzeit { get; set; } + + [DataMember] + public string Endzeit { get; set; } + + [DataMember] + public double DauerInStunden { get; set; } + + public override bool Equals(object obj) + { + return obj is RegelmaessigerDienstDC rd && DienstOid == rd.DienstOid; + } + + public override int GetHashCode() + { + return GetType().Name.GetHashCode() ^ DienstOid.GetHashCode(); + } + } +} diff --git a/Shared/Shared.csproj b/Shared/Shared.csproj index f3846826a..ff6749ada 100644 --- a/Shared/Shared.csproj +++ b/Shared/Shared.csproj @@ -161,6 +161,7 @@ + @@ -170,6 +171,7 @@ +