diff --git a/.gitignore b/.gitignore index 833e7afab..08e70ec98 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +.cr +.editorconfig /BeWoOhneReports.v12.suo /BeWo/bin /BeWo/obj @@ -594,33 +596,6 @@ obj /UnitTestProject472/obj /UnitTestProject45/bin /UnitTestProject45/obj -/BeWoPlanerMobil/App_Data/WebDocumentViewerCache/00b5f0d5941249ee88d7a8d45b9fb7e7/BuildResultDetails.json -/BeWoPlanerMobil/App_Data/WebDocumentViewerCache/00b5f0d5941249ee88d7a8d45b9fb7e7/virtualDocument.prnx -/BeWoPlanerMobil/App_Data/WebDocumentViewerCache/3a26bfe04f544c888c3c22c21e050bd9/BuildResultDetails.json -/BeWoPlanerMobil/App_Data/WebDocumentViewerCache/3a26bfe04f544c888c3c22c21e050bd9/virtualDocument.prnx -/BeWoPlanerMobil/App_Data/WebDocumentViewerCache/5e1a7ed7594f4cb8847da1a45cb5673f/BuildResultDetails.json -/BeWoPlanerMobil/App_Data/WebDocumentViewerCache/5e1a7ed7594f4cb8847da1a45cb5673f/virtualDocument.prnx -/BeWoPlanerMobil/App_Data/WebDocumentViewerCache/6f24f6f284934376a0bb9523810927a8/BuildResultDetails.json -/BeWoPlanerMobil/App_Data/WebDocumentViewerCache/6f24f6f284934376a0bb9523810927a8/virtualDocument.prnx -/BeWoPlanerMobil/App_Data/WebDocumentViewerCache/8aff2dde24b04e33ab392c5ca1ee9cdd/BuildResultDetails.json -/BeWoPlanerMobil/App_Data/WebDocumentViewerCache/8aff2dde24b04e33ab392c5ca1ee9cdd/virtualDocument.prnx -/BeWoPlanerMobil/App_Data/WebDocumentViewerCache/52df7b78120346188343ca5e9e5f1fa5/BuildResultDetails.json -/BeWoPlanerMobil/App_Data/WebDocumentViewerCache/52df7b78120346188343ca5e9e5f1fa5/virtualDocument.prnx -/BeWoPlanerMobil/App_Data/WebDocumentViewerCache/72d7034f45aa46498b7c2dbf08bab4f5/BuildResultDetails.json -/BeWoPlanerMobil/App_Data/WebDocumentViewerCache/72d7034f45aa46498b7c2dbf08bab4f5/virtualDocument.prnx -/BeWoPlanerMobil/App_Data/WebDocumentViewerCache/101e4887e6284256a484b71c9791c62a/BuildResultDetails.json -/BeWoPlanerMobil/App_Data/WebDocumentViewerCache/101e4887e6284256a484b71c9791c62a/virtualDocument.prnx -/BeWoPlanerMobil/App_Data/WebDocumentViewerCache/278d0ec2bca24727ba0be74fce4ab7a9/BuildResultDetails.json -/BeWoPlanerMobil/App_Data/WebDocumentViewerCache/278d0ec2bca24727ba0be74fce4ab7a9/virtualDocument.prnx -/BeWoPlanerMobil/App_Data/WebDocumentViewerCache/35014e6626e447e19072ffe87f3fef60/BuildResultDetails.json -/BeWoPlanerMobil/App_Data/WebDocumentViewerCache/35014e6626e447e19072ffe87f3fef60/virtualDocument.prnx -/BeWoPlanerMobil/App_Data/WebDocumentViewerCache/3049467ad6044509a9b73ae6a7cecd20/BuildResultDetails.json -/BeWoPlanerMobil/App_Data/WebDocumentViewerCache/3049467ad6044509a9b73ae6a7cecd20/virtualDocument.prnx -/BeWoPlanerMobil/App_Data/WebDocumentViewerCache/ccb2b088065a484aa0eb9f62d2f9cf27/BuildResultDetails.json -/BeWoPlanerMobil/App_Data/WebDocumentViewerCache/ccb2b088065a484aa0eb9f62d2f9cf27/virtualDocument.prnx -/BeWoPlanerMobil/App_Data/WebDocumentViewerCache/e7eac8d4d5db47a799420bfb0d6fbc2f/BuildResultDetails.json -/BeWoPlanerMobil/App_Data/WebDocumentViewerCache/e7eac8d4d5db47a799420bfb0d6fbc2f/virtualDocument.prnx -/BeWoPlanerMobil/demo/temp /BeWoPlanerMobil/node_modules/.bin/escodegen /BeWoPlanerMobil/node_modules/.bin/escodegen.cmd /BeWoPlanerMobil/node_modules/.bin/escodegen.ps1 @@ -636,10 +611,6 @@ obj /BeWoPlanerMobil/node_modules/.bin/pegjs /BeWoPlanerMobil/node_modules/.bin/pegjs.cmd /BeWoPlanerMobil/node_modules/.bin/pegjs.ps1 -/BeWoDatabaseTerminator/BeWoDatabaseTerminator/bin/Debug -/ReportImp/AWOMuensterlandRecklinghausen/Calculations -/ReportImp/BehindertNaUnd/CustomDataExporter.cs -/ReportImp/BehindertNaUnd/DatevExporter.cs /BeWoPlanerMobilAllReports.sln /ReportImp/Lazy/CustomMitarbeiterstundenkontoBerechnung.cs /ReportImp/Lazy/Lazy.csproj @@ -648,6 +619,6 @@ obj /ReportImp/Lazy/Mitarbeiterstundenkonto.resx /ReportImp/Lazy/Properties/AssemblyInfo.cs /ReportImp/Lazy/Properties/licenses.licx -/TestReportCustomization/Class1.cs -/TestReportCustomization/TestReportCustomization.csproj /CustomerDlls +/Dakota/bin +/Dakota/obj diff --git a/BeWo/BeWo.csproj b/BeWo/BeWo.csproj index a0333d47d..9e51f690e 100644 --- a/BeWo/BeWo.csproj +++ b/BeWo/BeWo.csproj @@ -317,6 +317,10 @@ MSBuild:Compile Designer + + MSBuild:Compile + Designer + Designer MSBuild:Compile @@ -1064,6 +1068,9 @@ ValueListEntryEditControl.xaml + + DigitalInvoiceOverview.xaml + DebugMessageLogView.xaml diff --git a/BeWo/ServiceProxy/Generated.cs b/BeWo/ServiceProxy/Generated.cs index 2164ed113..b21bfb30e 100644 --- a/BeWo/ServiceProxy/Generated.cs +++ b/BeWo/ServiceProxy/Generated.cs @@ -5558,6 +5558,458 @@ namespace BeWo.ServiceProxy "iceRecordBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")] bool CheckForConfirmationReceiptSignatureForServiceRecord(long serviceRecordOid, BS.Shared.SignatureType signatureType); + [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/GetDakotaFileFormat", ReplyAction="http://tempuri.org/IOperationsService/GetDakotaFileFormatResponse")] + [System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/GetDakotaFileFormatBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List>))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BeWo.View.Navigation.Filter.CustomerFilterEnum))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.OvertimeDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AuszahlungsartDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.EmployeeDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.PersonDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ValueListEntryDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ContactDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Organisation2PersonDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.CostRatePeriodDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.VarFieldDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AbsenceTimeDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AbsenceReasonDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ArbeitszeitDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ArbeitszeitEintragDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ContractDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.EmploymentTypeDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.CustomerEmployeeRelationDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.UrlaubskontoDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.EmployeeAPPCodeDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AddressRouteDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.VertreterSucheFilterDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.EmployeeTokenRelationDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ChatBewoMessageSyncDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.TeamDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.SupportConceptDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.SupportConceptCostBearerRelDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.SupportConceptApprovalPeriodDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.BudgetDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ServiceCategoryDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.SupportConceptApprovalPeriodEmployeeRelDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.UserDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ResetPasswordInfoDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.SettingsDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.UserGroupDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.RatingDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GoalRatingDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.RatingTypeDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ServiceRecordDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ServiceDescriptionDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ServiceAccountingDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GeschenkterUrlaubstagDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AbwesenheitsInformationPrintDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.UrlaubskontoDarstellungDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AbwesenheitsInformationDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AbsenceOverviewFilterDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.UrlaubsplanerRootDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [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.AssessmentSheetCategoryDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AssessmentSheetValueDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AssessmentSheetEntryDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.NewsItemDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GroupOfPeopleDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BeWo.ServiceProxy.BeWoFault))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BeWo.ServiceProxy.BeWoFaultType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [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.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary, decimal>))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.ActivationTypeId))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.ValueListEntryType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.ContactType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.FamilyStatus))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.CostRatePeriodType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.Sex))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.PersonType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.ControlType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.AbsenceReasonVisibilityType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.SubstitutionNeed))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.AppointmentDayOfWeek))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.SystemEntryID))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.TokenTyp))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.SupportConceptApprovalInterval))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.Bewilligungsart))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.AccountingIntervalType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.AccountingvisibilityType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.ScopeTypeId))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.CostBearer2SupportConceptStatus))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.SettingsType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.UserRightType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.ZeiterfassungsDauer))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.ServiceUnit))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.ServiceRecordFormate))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.ServiceRecordTypeId))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.GroupTypeId))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactEmployeeDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactTeamDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactOrganisationDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactCustomerDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactVertreterEmployeeDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactTokenDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactPersonDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactSupportConceptDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactCostBearerDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactGroupOfPeopleDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.Behinderungsart))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.Merkzeichen))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.Pflegegrad))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.FileAttachmentType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.TableID))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.Priority))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.Status))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.QBFilterEnum))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactWohnheimDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary>))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.WohnheimbuchungDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Wohnheimbuchung2Costbearer2SupportConceptRelationDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.WohnheimbuchungEmployeeRelationDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.CustomerPersonRelationDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.CustomerOrganisationRelationDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.MedRecordDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.DarreichungsformDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ChatMessageDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.CustomerAPPCodeDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.CustomerTokenRelationDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.CustomerDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.CustomerCostBearerRelationDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.MedikamentenverordnungslisteDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.MedikamentenverordnungDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.DepotRhythmusDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.MedArtDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.PlacementDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.CustomerTeamRelationDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.TimeSheetStatusItemDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.MailDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.FileAttachmentDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.QuittierungsCheckViewListItemsDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.QuittierungsCheckDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.QuittierungsbelegsstatusDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.OrganisationDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.OrganisationPersonRelationDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AppointmentDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AppointmentCategoryDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.WohnheimDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.WohnheimCustomerRelationDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.WohnheimEmployeeRelationDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.UserValidationResult))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.SupportPinDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactUserDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(byte[]))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.BeWoFolderDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.RssFeed))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.RssItem))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.QueryDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.QueryParamDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.QueryParameterType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.Core.DateTimeSpan))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List>))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.ResourceBookingFrequencyType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.ParticipationAnswer))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.BookingSequenceDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ResourceBookingDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ResourceDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ResourceAppointmentDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.SchedulerAppointmentDC))] + [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.Dictionary>))] + [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))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary>))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary))] + [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(BS.Shared.DataContracts.ConfirmationReceiptSignatureDC))] + [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))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.RegelmaessigerDienstDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.DienstplanerRootDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.DienstEintragDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.DienstInfoDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.DienstvertretungDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.DienstBlockDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.DienstZeileDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.BesetzungsstatusDC))] + [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.ServiceRecordValidationResultDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.SbdConfigDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.SignatureDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.PreisDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.FlexibleReportFilterDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.FlexibleReportResultDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.FlexibleReportDummyDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.FlexibleReportEntryDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.FlexibleReportLayoutDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.HomeViewPanelDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ReportTemplateDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ReportTypes))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.TextModuleDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.BargeldkassenDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.BargeldtransaktionDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.NotizenKategorieDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.NotizenEintragDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.VertretungDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.VertretungsItemDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.TokenDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.VertretungsListeMitarbeiterItemsDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.VertretungsKlientAccountingsListeItemsDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AccountingTransactionDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.TextbausteinDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Settlement2DC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.InvoiceItemDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.InvoiceDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.MandatorDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ServiceRecordGroupDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ServiceRecordStatisticsInfoDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ServiceRecordPeriodStatisticsInfoDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.SupportConceptStatisticsDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.SupportConceptPeriodStatisticsDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ServiceRecordHistoryDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AdditionalServiceDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AdditionalServiceRegionDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AdditionalServiceGroupOfPeopleRelationDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AdditionalServiceGroupOfPeopleDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AdditionalServiceBookingDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AdditionalServiceNoticeDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.LicenseInfoDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GroupDurationDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.BeWoMobilBrowserInfoDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.UiElementDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.CustomerInfoDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.SupportConcetInfoDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.SupportConceptTreeNodeDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.NodeType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.SupportConceptTreeNodeDetailInfoDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.FLSAnalysisDataReportDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.FLSAnalysisDataGroupDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.FLSAnalysisDataDetailDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ServiceRecordFLSOverviewDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.SignatureType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.ServiceRecordValidationResult))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.HomeViewPanelType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.Auszahlungsintervall))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.Zahlungstyp))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.VertretungsStatus))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.SchulbegleitenderZugehoerigkeitsTyp))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.MessageType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.StatementType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.SignatureStateType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.UiElementType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Reports.AuslastungAnalysisRootDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Reports.AuslastungAnalysisEmployeeDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Reports.AuslastungAnalysisSupportConceptDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Reports.AccountingReportDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Reports.AccountingReportRowDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AccountingAnalysisDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.FLSAnalysisRootDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.FLSAnalysisGroupDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.SupportConceptFLSOverviewDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.FLSAnalysisConfigDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.LoginDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.FinanceOverviewItemDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.SupportConceptOverviewDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.TaskDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AnnualReportDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AnnualReportDataDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.FLSReportType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.InvoiceBaseDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ServiceInvoiceDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ServiceInvoicePeriodDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.InvoiceNumberDC))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.InvoiceType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.IO.MemoryStream))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.IO.Stream))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.MarshalByRefObject))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.QueryType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List))] + string GetDakotaFileFormat(object param); + [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/GetMessageFromServerForDeletingAppointments" + "", ReplyAction="http://tempuri.org/IOperationsService/GetMessageFromServerForDeletingAppointments" + "Response")] @@ -7041,6 +7493,11 @@ namespace BeWo.ServiceProxy return base.Channel.CheckForConfirmationReceiptSignatureForServiceRecord(serviceRecordOid, signatureType); } + public string GetDakotaFileFormat(object param) + { + return base.Channel.GetDakotaFileFormat(param); + } + public string GetMessageFromServerForDeletingAppointments(bool pHasRightToSeeAllEmployeeAppointments, long pEmployeeOid, System.DateTime pIntervalEnd, System.Collections.Generic.List pSelectedEmployees, System.Collections.Generic.List pSelectedCustomers, System.Collections.Generic.List pSelectedResources, bool pEmployeesOnly, bool pCustomersOnly, bool pResourcesOnly, bool pPrivateAppointmentsOnly, bool pOnlyMyAppointments, System.Collections.Generic.Dictionary pUserRights) { return base.Channel.GetMessageFromServerForDeletingAppointments(pHasRightToSeeAllEmployeeAppointments, pEmployeeOid, pIntervalEnd, pSelectedEmployees, pSelectedCustomers, pSelectedResources, pEmployeesOnly, pCustomersOnly, pResourcesOnly, pPrivateAppointmentsOnly, pOnlyMyAppointments, pUserRights); diff --git a/BeWo/View/Detail/Accounting/DigitalInvoiceOverview.xaml b/BeWo/View/Detail/Accounting/DigitalInvoiceOverview.xaml new file mode 100644 index 000000000..045d1f94a --- /dev/null +++ b/BeWo/View/Detail/Accounting/DigitalInvoiceOverview.xaml @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/BeWo/View/Detail/Accounting/DigitalInvoiceOverview.xaml.cs b/BeWo/View/Detail/Accounting/DigitalInvoiceOverview.xaml.cs new file mode 100644 index 000000000..b8f5646b9 --- /dev/null +++ b/BeWo/View/Detail/Accounting/DigitalInvoiceOverview.xaml.cs @@ -0,0 +1,137 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Web; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Documents; +using System.Windows.Media; +using System.Windows.Navigation; +using System.Windows.Threading; +using BeWo.Core; +using BeWo.ServiceProxy; +using BeWo.ViewModel; +using BeWo.ViewModel.ListViewModel; + +using BS.Shared; +using BS.Shared.Core; +using BS.Shared.DataContracts; +using BS.Shared.Extensions; + +using DevExpress.Xpf.Editors; +using DevExpress.Xpf.Grid; +using Microsoft.Win32; + +namespace BeWo.View.Detail.Accounting +{ + public partial class DigitalInvoiceOverview : BeWoView + { + private readonly EquityInvoiceItemEditView _EquityInvoiceItemEditView; + + private readonly GeneralInvoiceItemEditView _GeneralInvoiceItemEditView; + + private readonly SettlementInvoiceItemEditView _SettlementInvoiceItemEditView; + + private readonly SettlementInvoiceItemEditView2 _SettlementInvoiceItemEditView2; + + private readonly ServiceInvoiceItemEditView _ServiceInvoiceItemEditView; + + private InvoiceBaseListVM _Viewmodel; + + public DigitalInvoiceOverview() + { + this.InitializeComponent(); + this.ViewModel = new InvoiceBaseListVM(null); + + RefreshInvoiceList(); + } + + private void RefreshInvoiceList() + { + DateTime? start = null; + DateTime? end = null; + if (ViewModel.DateTimeSpanFilter != null) + { + start = ViewModel.DateTimeSpanFilter.StartDate; + end = ViewModel.DateTimeSpanFilter.EndDate; + } + ServiceFacade.DoAccountingServiceAsync(s => s.GetInvoiceBases(start, end), UpdateInvoiceList); + } + + private void UpdateInvoiceList(IList dcList) + { + this.Dispatcher.BeginInvoke( + DispatcherPriority.Normal, + (Action)delegate + { + ViewModel.UpdateList(dcList.Where(x => true).ToList()); + this.gridView.BestFitColumns(); + }); + } + + private InvoiceBaseListVM ViewModel + { + get + { + return this._Viewmodel; + } + + set + { + this.DataContext = value; + this._Viewmodel = value; + } + } + + private void RefreshItemInList(InvoiceBaseDC cb) + { + this.Dispatch( + delegate + { + var old = this.ViewModel.VMList.Single(i => i.DataContract.InvoiceBaseOid.Equals(cb.InvoiceBaseOid)); + var lNew = new InvoiceBaseVM(cb); + + this.ViewModel.VMList.Remove(old); + this.ViewModel.VMList.Add(lNew); + this.datagrid_invoices.RefreshData(); + this.gridView.FocusedRow = lNew; + }); + } + + private void gridView_Loaded(object sender, RoutedEventArgs e) + { + this.gridView.BestFitColumns(); + } + + private void gridView_ShownEditor(object sender, EditorEventArgs e) + { + if (e.Editor is CheckEdit) + { + var ed = (CheckEdit)e.Editor; + ed.Tag = e.Row; + } + } + + private void Hyperlink_OnRequestNavigate(object sender, RequestNavigateEventArgs e) + { + var uri = ((Hyperlink)sender).NavigateUri; + string dcid = HttpUtility.ParseQueryString(uri.Query).Get("ibid"); + + var schaarf = ServiceFacade.DoOperationsServiceSync(x => x.GetDakotaFileFormat(dcid)); + + Output.Text = schaarf; + } + + private void ReloadButton_OnClick(object sender, RoutedEventArgs e) + { + RefreshInvoiceList(); + } + + private void YearMonthFilter_FilterSpanChanged(object sender, EventArgs e) + { + this.ViewModel.DateTimeSpanFilter = e.Data; + RefreshInvoiceList(); + } + } +} \ No newline at end of file diff --git a/BeWo/View/Detail/CustomerView.xaml b/BeWo/View/Detail/CustomerView.xaml index 731b095d5..87dd79b45 100644 --- a/BeWo/View/Detail/CustomerView.xaml +++ b/BeWo/View/Detail/CustomerView.xaml @@ -379,15 +379,12 @@ - + - - - @@ -687,10 +684,10 @@ - - + + + AutoFilterCondition="Contains" Header="ICD 10" /> @@ -899,7 +896,7 @@ - + @@ -1024,8 +1021,8 @@ - - + + @@ -1120,7 +1117,7 @@ - + diff --git a/BeWo/View/Detail/MandatorView.xaml b/BeWo/View/Detail/MandatorView.xaml index d2caf1542..66485030b 100644 --- a/BeWo/View/Detail/MandatorView.xaml +++ b/BeWo/View/Detail/MandatorView.xaml @@ -9,8 +9,9 @@ VerticalAlignment="Stretch" Focusable="True"> - - + + + @@ -20,9 +21,14 @@ + Name - + + IK Nummer (Leistungserbringer) + + + @@ -45,7 +51,7 @@ - + @@ -88,7 +94,7 @@ - + @@ -133,7 +139,7 @@ - + @@ -176,7 +182,7 @@ - + diff --git a/BeWo/View/Detail/OrganisationView.xaml b/BeWo/View/Detail/OrganisationView.xaml index 856b1959b..258b09d86 100644 --- a/BeWo/View/Detail/OrganisationView.xaml +++ b/BeWo/View/Detail/OrganisationView.xaml @@ -86,6 +86,7 @@ + @@ -222,7 +223,31 @@ Text="{Binding Path=ContactPerson, UpdateSourceTrigger=PropertyChanged}" /> - + + + + + + + + + + + + IK Krankenkasse + IK Kostentrager + IK Datenannahmestelle + + + + + + diff --git a/BeWo/View/Master/FinanceView.xaml b/BeWo/View/Master/FinanceView.xaml index 288992517..5d684982e 100644 --- a/BeWo/View/Master/FinanceView.xaml +++ b/BeWo/View/Master/FinanceView.xaml @@ -40,6 +40,7 @@ Selector.Selected="tabitem_collectiveinvoice_Selected" /> + diff --git a/BeWo/View/Master/FinanceView.xaml.cs b/BeWo/View/Master/FinanceView.xaml.cs index c4f710c4f..d1b86693a 100644 --- a/BeWo/View/Master/FinanceView.xaml.cs +++ b/BeWo/View/Master/FinanceView.xaml.cs @@ -233,6 +233,16 @@ namespace BeWo.View.Master } } + private void tabitem_digitaloverviewinvoice_Selected(object sender, RoutedEventArgs e) + { + if (!_OpenViews.ContainsKey(tabitem_digitaloverviewinvoice) || _SavePerformed) + { + AddView(tabitem_digitaloverviewinvoice, new DigitalInvoiceOverview()); + + //VMFactory.CreateInvoiceOverviewListVM(cb => this.Dispatch(delegate { this.AddView(this.tabitem_overviewinvoice, new InvoiceOverview(cb)); })); + } + } + //Dokument Selection private void tabitem_documents_Selected(object sender, RoutedEventArgs e) { diff --git a/BeWo/ViewModel/CustomerVM.cs b/BeWo/ViewModel/CustomerVM.cs index d75833a78..807601179 100644 --- a/BeWo/ViewModel/CustomerVM.cs +++ b/BeWo/ViewModel/CustomerVM.cs @@ -218,8 +218,8 @@ namespace BeWo.ViewModel private String _Betreuungsbedarf; private String _BemerkungenSbd; private String _HealthInsurance; - private String _InsuranceNumber -; + private String _InsuranceNumber; + private string _VersichertenStatus; private ActivationTypeId _ActivationType; private ArbeitszeitListVM _Arbeitszeiten; @@ -237,6 +237,7 @@ namespace BeWo.ViewModel private SubstitutionNeed _SubstitutionNeed; + public CustomerVM(CustomerDC pDataContract, IEnumerable pValueList, List pPossibleASCs, List pPossibleASVs, List pPossibleMedArten) : base(pDataContract, pDataContract.CustomerOid == null) { var possibleDisabilities = pValueList.Where(vle => vle.Type == ValueListEntryType.DisabilityType); @@ -963,6 +964,21 @@ namespace BeWo.ViewModel } } + public string VersichertenStatus + { + get { return _VersichertenStatus; } + + set + { + if (AreDifferent(_VersichertenStatus, value)) + { + _VersichertenStatus = value; + StoreDirtyInformation(AreDifferent(DataContract.VersichertenStatus, value), nameof(VersichertenStatus)); + FirePropertyChanged(nameof(VersichertenStatus)); + } + } + } + public string Environment { get { return _Environment; } @@ -1942,9 +1958,9 @@ namespace BeWo.ViewModel _BemerkungenSbd = pDataContract.BemerkungenSbd; _HealthInsurance = pDataContract.HealthInsurance; _InsuranceNumber = pDataContract.InsuranceNumber; - - _Hygienebelehrung = pDataContract.Hygienebelehrung; - _Migrationshintergrund = pDataContract.Migrationshintergrund; + _VersichertenStatus = pDataContract.VersichertenStatus; + _Hygienebelehrung = pDataContract.Hygienebelehrung; + _Migrationshintergrund = pDataContract.Migrationshintergrund; _AufenthaltGueltigBis = pDataContract.AufenthaltGueltigBis; if (pDataContract.Images != null && pDataContract.Images.Count > 0) @@ -2124,7 +2140,7 @@ namespace BeWo.ViewModel pDataContract.BemerkungenSbd = _BemerkungenSbd; pDataContract.HealthInsurance = _HealthInsurance; pDataContract.InsuranceNumber = _InsuranceNumber; - + pDataContract.VersichertenStatus = _VersichertenStatus; pDataContract.Hygienebelehrung = _Hygienebelehrung; pDataContract.Migrationshintergrund = _Migrationshintergrund; pDataContract.SubstitutionNeed = _SubstitutionNeed; diff --git a/BeWo/ViewModel/MandatorVM.cs b/BeWo/ViewModel/MandatorVM.cs index 9fae61e6e..5f2c5ab9e 100644 --- a/BeWo/ViewModel/MandatorVM.cs +++ b/BeWo/ViewModel/MandatorVM.cs @@ -39,6 +39,8 @@ namespace BeWo.ViewModel public static string PropertyName_ZeiterfassungsSchwellwert = "ZeiterfassungsSchwellwert"; + public static string PropertyName_IKLeistungserbringer = ""; + private long _BeWoClientType; private string _ClientId; @@ -71,6 +73,8 @@ namespace BeWo.ViewModel private string _Apikey; + private string _IKLeistungserbringer; + public MandatorVM(IList invoiceNumberList, MandatorDC pDC) : base(pDC, true) { _InvoiceNumberList = new BindingList(invoiceNumberList); @@ -451,6 +455,21 @@ namespace BeWo.ViewModel } } + public string IKLeistungserbringer + { + get { return this._IKLeistungserbringer; } + + set + { + if (this.AreDifferent(this._IKLeistungserbringer, value)) + { + this._IKLeistungserbringer = value; + this.StoreDirtyInformation(this.AreDifferent(this.DataContract.IKLeistungserbringer, value), nameof(IKLeistungserbringer)); + this.FirePropertyChanged(nameof(IKLeistungserbringer)); + } + } + } + protected override void InitByDataContract(MandatorDC pDataContract) { this._Name = pDataContract.Name; @@ -463,6 +482,7 @@ namespace BeWo.ViewModel this._Street = pDataContract.Street; this._Settings = pDataContract.Settings; this._Apikey = pDataContract.Apikey; + this._IKLeistungserbringer = pDataContract.IKLeistungserbringer; if (_Settings == null) { @@ -516,6 +536,7 @@ namespace BeWo.ViewModel pDataContract.Street = this._Street; pDataContract.Settings = this._Settings; pDataContract.Apikey = this._Apikey; + pDataContract.IKLeistungserbringer = this._IKLeistungserbringer; return pDataContract; } diff --git a/BeWo/ViewModel/OrganisationVM.cs b/BeWo/ViewModel/OrganisationVM.cs index ef97d8a9a..2c8a84f9d 100644 --- a/BeWo/ViewModel/OrganisationVM.cs +++ b/BeWo/ViewModel/OrganisationVM.cs @@ -155,6 +155,13 @@ namespace BeWo.ViewModel private FeiertagListVM _Feiertage; + private string _IKKrankenkasse; + + private string _IKKostentrager; + + private string _IKDatenannahmestelle; + + public OrganisationVM(OrganisationDC pDataContract, List pAllQualifications, List pPossibleFunctions, List pPossibleRoleInOrganisations) : base(pDataContract, pDataContract.OrganisationOid == null) { @@ -755,7 +762,50 @@ namespace BeWo.ViewModel } } + public string IKKrankenkasse + { + get { return this._IKKrankenkasse; } + set + { + if (this.AreDifferent(this._IKKrankenkasse, value)) + { + this._IKKrankenkasse = value; + this.StoreDirtyInformation(this.AreDifferent(this.DataContract.IKKrankenkasse, value), nameof(IKKrankenkasse)); + this.FirePropertyChanged(nameof(IKKrankenkasse)); + } + } + } + + public string IKKostentrager + { + get { return this._IKKostentrager; } + + set + { + if (this.AreDifferent(this._IKKostentrager, value)) + { + this._IKKostentrager = value; + this.StoreDirtyInformation(this.AreDifferent(this.DataContract.IKKostentrager, value), nameof(IKKostentrager)); + this.FirePropertyChanged(nameof(IKKostentrager)); + } + } + } + + public string IKDatenannahmestelle + { + get { return this._IKDatenannahmestelle; } + + set + { + if (this.AreDifferent(this._IKDatenannahmestelle, value)) + { + this._IKDatenannahmestelle = value; + this.StoreDirtyInformation(this.AreDifferent(this.DataContract.IKDatenannahmestelle, value), nameof(IKDatenannahmestelle)); + this.FirePropertyChanged(nameof(IKDatenannahmestelle)); + } + } + } protected void CommitContact(string pValue, ContactType pContactType) { @@ -818,6 +868,9 @@ namespace BeWo.ViewModel this._IsSingleInvoicePerCustomer = pDataContract.IsSingleInvoicePerCustomer; this._DebitorNumber = pDataContract.DebitorNumber; this._IsArchived = pDataContract.ActivationType == ActivationTypeId.Archived; + this._IKKrankenkasse = pDataContract.IKKrankenkasse; + this._IKKostentrager = pDataContract.IKKostentrager; + this._IKDatenannahmestelle = pDataContract.IKDatenannahmestelle; _Function = pDataContract.Function; @@ -921,6 +974,9 @@ namespace BeWo.ViewModel pDataContract.DebitorNumber = this._DebitorNumber; pDataContract.ActivationType = this._IsArchived ? ActivationTypeId.Archived : ActivationTypeId.Active; pDataContract.Function = this._Function; + pDataContract.IKDatenannahmestelle = this._IKDatenannahmestelle; + pDataContract.IKKostentrager = this._IKKostentrager; + pDataContract.IKKrankenkasse = this._IKKrankenkasse; this.CommitContact(this._Phone, ContactType.business_Phone); this.CommitContact(this._Website, ContactType.business_Homepage); diff --git a/BeWoOhneReports.sln b/BeWoOhneReports.sln index 6a8978484..e99b93568 100644 --- a/BeWoOhneReports.sln +++ b/BeWoOhneReports.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27004.2009 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.33927.289 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Client", "Client", "{E7543C39-A44C-40C9-82C9-E7FAA2D9A852}" EndProject @@ -29,6 +29,13 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReportingService", "ReportS EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChatController", "..\Chat\ChatController\ChatController.csproj", "{8A83C4DC-A0B1-4A51-AE1D-366D7A05B298}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Dakota", "Dakota\Dakota.csproj", "{47331732-DD96-4075-869F-83AA9F3F9937}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{B6039E62-D43E-477A-BE82-EADB1057A3A2}" + ProjectSection(SolutionItems) = preProject + .editorconfig = .editorconfig + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|.NET = Debug|.NET @@ -139,6 +146,18 @@ Global {8A83C4DC-A0B1-4A51-AE1D-366D7A05B298}.Release|Any CPU.Build.0 = Release|Any CPU {8A83C4DC-A0B1-4A51-AE1D-366D7A05B298}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {8A83C4DC-A0B1-4A51-AE1D-366D7A05B298}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {47331732-DD96-4075-869F-83AA9F3F9937}.Debug|.NET.ActiveCfg = Debug|Any CPU + {47331732-DD96-4075-869F-83AA9F3F9937}.Debug|.NET.Build.0 = Debug|Any CPU + {47331732-DD96-4075-869F-83AA9F3F9937}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {47331732-DD96-4075-869F-83AA9F3F9937}.Debug|Any CPU.Build.0 = Debug|Any CPU + {47331732-DD96-4075-869F-83AA9F3F9937}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {47331732-DD96-4075-869F-83AA9F3F9937}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {47331732-DD96-4075-869F-83AA9F3F9937}.Release|.NET.ActiveCfg = Release|Any CPU + {47331732-DD96-4075-869F-83AA9F3F9937}.Release|.NET.Build.0 = Release|Any CPU + {47331732-DD96-4075-869F-83AA9F3F9937}.Release|Any CPU.ActiveCfg = Release|Any CPU + {47331732-DD96-4075-869F-83AA9F3F9937}.Release|Any CPU.Build.0 = Release|Any CPU + {47331732-DD96-4075-869F-83AA9F3F9937}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {47331732-DD96-4075-869F-83AA9F3F9937}.Release|Mixed Platforms.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/BeWoPlanerMobil/BeWoPlanerMobil.csproj b/BeWoPlanerMobil/BeWoPlanerMobil.csproj index c8a78fe58..ad17b02a3 100644 --- a/BeWoPlanerMobil/BeWoPlanerMobil.csproj +++ b/BeWoPlanerMobil/BeWoPlanerMobil.csproj @@ -5117,7 +5117,7 @@ - False + True False 8808 / diff --git a/BeWoPlanerMobil/Controllers/CustomerController.cs b/BeWoPlanerMobil/Controllers/CustomerController.cs index 914474f64..d6370538b 100644 --- a/BeWoPlanerMobil/Controllers/CustomerController.cs +++ b/BeWoPlanerMobil/Controllers/CustomerController.cs @@ -298,6 +298,7 @@ namespace BeWoPlanerMobil.Controllers var firstname = formCollection["vorname"]?.RemoveUppercaseEsszett(); var lastname = formCollection["nachname"]?.RemoveUppercaseEsszett(); + var alias = formCollection["alias"]?.RemoveUppercaseEsszett(); var geburtdatum = formCollection["geburtstag"]?.RemoveUppercaseEsszett(); var geschlecht = formCollection["geschlecht"]?.RemoveUppercaseEsszett(); @@ -325,8 +326,9 @@ namespace BeWoPlanerMobil.Controllers return RedirectToActionPermanent("Customer"); } - customer.FirstName = firstname; - customer.LastName = lastname; + customer.FirstName = firstname; + customer.LastName = lastname; + customer.CustomerAlias = alias; if(DateTime.TryParse(geburtdatum, out var dateOfBirth)) { diff --git a/BeWoPlanerMobil/Controllers/MainController.cs b/BeWoPlanerMobil/Controllers/MainController.cs index 7bebbf429..6615c9712 100644 --- a/BeWoPlanerMobil/Controllers/MainController.cs +++ b/BeWoPlanerMobil/Controllers/MainController.cs @@ -4,10 +4,8 @@ using System.Diagnostics; using System.Drawing; using System.Linq; using System.Text; -using System.Web; using System.Web.Mvc; using System.Windows.Forms; -using BeWo.Data.Entities; using BeWo.Service.Plugins; using BeWo.Service.ServiceImplementations; using BeWo.View.Navigation.Filter; @@ -3961,12 +3959,6 @@ namespace BeWoPlanerMobil.Controllers return RedirectToActionPermanent("Main"); } - - [Authorize] - public string ProvokeJsonError() - { - return "lkasdjf lkjasdlkf jjasldfljk ajksldf "; - } } public class ServiceRecord2Monatsunterschrift diff --git a/BeWoPlanerMobil/Models/CustomerModel.cs b/BeWoPlanerMobil/Models/CustomerModel.cs index 039113d7b..5fe9ba836 100644 --- a/BeWoPlanerMobil/Models/CustomerModel.cs +++ b/BeWoPlanerMobil/Models/CustomerModel.cs @@ -28,7 +28,7 @@ namespace BeWoPlanerMobil.Models get { var result = new List { new SelectListItem { Value = "-1", Text = string.Empty } }; - result.AddRange(Customers.Select(item => new SelectListItem { Value = item.CustomerOid.ToString(), Text = string.Format("{1}, {0}", item.FirstName, item.LastName) }).ToList()); + result.AddRange(Customers.Select(item => new SelectListItem { Value = item.CustomerOid.ToString(), Text = item.SimpleDescription }).ToList()); return result; } diff --git a/BeWoPlanerMobil/Models/MainModel.cs b/BeWoPlanerMobil/Models/MainModel.cs index 9abb4e546..0d6e02be4 100644 --- a/BeWoPlanerMobil/Models/MainModel.cs +++ b/BeWoPlanerMobil/Models/MainModel.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; -using System.Diagnostics; using System.Linq; using System.Web.Mvc; using BeWo.View.Navigation.Filter; @@ -248,7 +247,7 @@ namespace BeWoPlanerMobil.Models { allCostBearerRelations.AddRange(sc.CostBearerRelations.Where(w => ShowExpiredSupportConcepts || w.EndDate is null || w.EndDate.Value >= DateTime.Now.Date).Select( cb => new SupportConceptListObject( - $"{sc.Customer.LastNameFirstName} {(sc.Customer.DateOfBirth.HasValue ? "*" + sc.Customer.DateOfBirth.Value.ToString("dd.MM.yyyy") : string.Empty)}", + $"{sc.Customer.SimpleDescription} {(sc.Customer.DateOfBirth.HasValue ? "*" + sc.Customer.DateOfBirth.Value.ToString("dd.MM.yyyy") : string.Empty)}", $"{cb.AuswahlBezeichnung} {cb.StartDate?.ToShortDateString().Remove(6, 2) ?? string.Empty}-{cb.EndDate?.ToShortDateString().Remove(6, 2) ?? string.Empty} {cb.CostBearer.Name}{GetIsNotApproved(cb)}", cb.CostBearer2SupportConceptOid.ToString(), cb.SupportConcept.IsAboutToExpire, @@ -299,9 +298,9 @@ namespace BeWoPlanerMobil.Models foreach(var sc in SupportConcepts.OrderBy(sc => sc.Customer.LastName)) { - allCostbearerRelations.AddRange(sc.CostBearerRelations.Where(w => ShowExpiredSupportConcepts || w.EndDate == null || w.EndDate.Value >= DateTime.Now).Select( + allCostbearerRelations.AddRange(sc.CostBearerRelations.Where(w => ShowExpiredSupportConcepts || w.EndDate is null || w.EndDate.Value >= DateTime.Now).Select( cb => new SupportConceptListObject( - $"{sc.Customer.LastNameFirstName} {(sc.Customer.DateOfBirth.HasValue ? "*" + sc.Customer.DateOfBirth.Value.ToString("dd.MM.yyyy") : string.Empty)}", + $"{sc.Customer.SimpleDescription} {(sc.Customer.DateOfBirth.HasValue ? "*" + sc.Customer.DateOfBirth.Value.ToString("dd.MM.yyyy") : string.Empty)}", $"{cb.AuswahlBezeichnung} {cb.StartDate?.ToShortDateString().Remove(6, 2) ?? string.Empty}-{cb.EndDate?.ToShortDateString().Remove(6, 2) ?? string.Empty} {cb.CostBearer.Name}", cb.CostBearer2SupportConceptOid.ToString(), cb.SupportConcept.IsAboutToExpire, @@ -712,7 +711,7 @@ namespace BeWoPlanerMobil.Models { allCostbearerRelations.AddRange(sc.CostBearerRelations.Where(w => ShowExpiredSupportConcepts || w.EndDate == null || w.EndDate.Value >= DateTime.Now).Select( cb => new SupportConceptListObject( - $"{sc.Customer.LastNameFirstName} {(sc.Customer.DateOfBirth.HasValue ? "*" + sc.Customer.DateOfBirth.Value.ToString("dd.MM.yyyy") : string.Empty)}", + $"{sc.Customer.SimpleDescription} {(sc.Customer.DateOfBirth.HasValue ? "*" + sc.Customer.DateOfBirth.Value.ToString("dd.MM.yyyy") : string.Empty)}", $"{cb.AuswahlBezeichnung} {cb.StartDate?.ToShortDateString().Remove(6, 2) ?? string.Empty}-{cb.EndDate?.ToShortDateString().Remove(6, 2) ?? string.Empty} {cb.CostBearer.Name}", cb.CostBearer2SupportConceptOid.ToString(), cb.SupportConcept.IsAboutToExpire, diff --git a/BeWoPlanerMobil/Scripts/ownSoft-Scripts/mobileUtils.js b/BeWoPlanerMobil/Scripts/ownSoft-Scripts/mobileUtils.js index cb87b1200..51246abab 100644 --- a/BeWoPlanerMobil/Scripts/ownSoft-Scripts/mobileUtils.js +++ b/BeWoPlanerMobil/Scripts/ownSoft-Scripts/mobileUtils.js @@ -171,7 +171,7 @@ function showAboutPopup() { function cloneCanvas(oldCanvas) { var newCanvas = document.createElement("canvas"); - var context = newCanvas.getContext("2d"); + var context = newCanvas.getContext("2d", {willReadFrequently: true}); newCanvas.width = oldCanvas.width; newCanvas.height = oldCanvas.height; diff --git a/BeWoPlanerMobil/Scripts/ownSoft-Scripts/signature.js b/BeWoPlanerMobil/Scripts/ownSoft-Scripts/signature.js index 939e0d029..2a46b9e05 100644 --- a/BeWoPlanerMobil/Scripts/ownSoft-Scripts/signature.js +++ b/BeWoPlanerMobil/Scripts/ownSoft-Scripts/signature.js @@ -28,7 +28,7 @@ function resizeCanvas(sketchPadId, canvasRoId) { if(isMinDifferenceMet) { var sourceCanvas = document.getElementById(sketchPadId.split("#")[1]); - var canvasContext = sourceCanvas.getContext("2d"); + var canvasContext = sourceCanvas.getContext("2d", {willReadFrequently: true}); var imageData = sourceCanvas.toDataURL("image/png"); $(sketchPadId).prop("width", newWidth); @@ -48,8 +48,6 @@ function initializeSignature(selectedServiceRecordOid) { $("#main-container, #checkbox-container").hide(); $("#signature-container").addClass("d-block"); - // ToDo: Flag einbauen, die besagt, ob es für den ServiceRecord bereits eine Monatsunterschrift gibt und gegebenenfalls eine Warnung anzeigen - // "Für diesen Eintrag existiert bereits eine Monatsunterschrift für den Quittierungsbeleg. Eine erneute Unterschrift ist nicht notwendig." $.get(getSelectedRecordInformationUrlWithOid(), { oid: selectedServiceRecordOid }).done(function(jsonServiceRecord2Monatsunterschrift) { if (jsonServiceRecord2Monatsunterschrift === "SessionTimeout") { window.location.href = getRedirectLink(); @@ -73,7 +71,6 @@ function initializeSignature(selectedServiceRecordOid) { var serviceRecord2Monatsunterschrift = $.parseJSON(jsonServiceRecord2Monatsunterschrift); var hasMonatsunterschrift = serviceRecord2Monatsunterschrift.HasMonatsunterschrift; - logInfo(typeof hasMonatsunterschrift + ": " + hasMonatsunterschrift); var record = serviceRecord2Monatsunterschrift.ServiceRecord; @@ -129,7 +126,7 @@ function initializeSignature(selectedServiceRecordOid) { var clonedCanvas = trimCanvas(cloneCanvas(document.getElementById("sketch-pad"))); - var context = clonedCanvas.getContext("2d"); + var context = clonedCanvas.getContext("2d", { willReadFrequently: true }); context.globalCompositeOperation = "destination-over"; context.fillStyle = "white"; context.fillRect(0, 0, clonedCanvas.width, clonedCanvas.height); diff --git a/BeWoPlanerMobil/Scripts/ownSoft-Scripts/utils/trimCanvas.js b/BeWoPlanerMobil/Scripts/ownSoft-Scripts/utils/trimCanvas.js index 52d12d929..e6fd9aee1 100644 --- a/BeWoPlanerMobil/Scripts/ownSoft-Scripts/utils/trimCanvas.js +++ b/BeWoPlanerMobil/Scripts/ownSoft-Scripts/utils/trimCanvas.js @@ -1,5 +1,5 @@ function trimCanvas(canvas) { - var context = canvas.getContext("2d"); + var context = canvas.getContext("2d", {willReadFrequently: true}); var imgWidth = canvas.width; var imgHeight = canvas.height; diff --git a/BeWoPlanerMobil/Scripts/ownSoft-Scripts/view-scripts/main.js b/BeWoPlanerMobil/Scripts/ownSoft-Scripts/view-scripts/main.js index 10ec43641..bd71397ef 100644 --- a/BeWoPlanerMobil/Scripts/ownSoft-Scripts/view-scripts/main.js +++ b/BeWoPlanerMobil/Scripts/ownSoft-Scripts/view-scripts/main.js @@ -291,8 +291,6 @@ function getDokuTexte() { } } - logInfo3(`Es wurden ${dokufeldCounter} Dokufelder identifiziert mit folgenden Werten: ${x}`); - return noticeList; } catch (error) { showErrorPopup(error); diff --git a/BeWoPlanerMobil/Scripts/ownSoft-Scripts/view-scripts/report.js b/BeWoPlanerMobil/Scripts/ownSoft-Scripts/view-scripts/report.js index 1e82684ff..164a4c932 100644 --- a/BeWoPlanerMobil/Scripts/ownSoft-Scripts/view-scripts/report.js +++ b/BeWoPlanerMobil/Scripts/ownSoft-Scripts/view-scripts/report.js @@ -59,7 +59,7 @@ function confirmReportSignatureCancellation() { $("#report-form-container").show(); var canvas = document.getElementById("sketch-pad"); - var context = canvas.getContext("2d"); + var context = canvas.getContext("2d", {willReadFrequently: true}); context.clearRect(0, 0, canvas.width, canvas.height); }, false); @@ -140,7 +140,7 @@ function cancelSignature(canSign, signaturePad, canvasId, signatureContainer, ov } var canvas = document.getElementById(canvasId); - var twoDContext = canvas.getContext("2d"); + var twoDContext = canvas.getContext("2d", {willReadFrequently: true}); var width = canvas.getBoundingClientRect().width; var height = canvas.getBoundingClientRect().height; @@ -186,7 +186,7 @@ function saveSignature(customerOid, isEmployeeSignature, overwrite, signaturePad var clonedCanvas = cloneCanvas(canvas); var trimmedCanvas = trimCanvas(clonedCanvas); - var context = trimmedCanvas.getContext("2d"); + var context = trimmedCanvas.getContext("2d", {willReadFrequently: true}); context.globalCompositeOperation = "destination-over"; context.fillStyle = "white"; context.fillRect(0, 0, trimmedCanvas.width, trimmedCanvas.height); diff --git a/BeWoPlanerMobil/Util/AppointmentListItem.cs b/BeWoPlanerMobil/Util/AppointmentListItem.cs index 697eda3f5..9ff894ceb 100644 --- a/BeWoPlanerMobil/Util/AppointmentListItem.cs +++ b/BeWoPlanerMobil/Util/AppointmentListItem.cs @@ -171,7 +171,7 @@ namespace BeWoPlanerMobil.Util schedulerAppointment.EmployeeList.DoForEach(employee2Appointment => { EmployeeListInfo += $"{employee2Appointment.Employee.LastName}, {employee2Appointment.Employee.FirstName}; "; }); EmployeeListInfo = EmployeeListInfo.Trim(' ').Trim(';'); - schedulerAppointment.CustomerList.DoForEach(customer2Appointment => { CustomerListInfo += $"{customer2Appointment.LastNameFirstName}; "; }); + schedulerAppointment.CustomerList.DoForEach(customer2Appointment => { CustomerListInfo += $"{customer2Appointment.SimpleDescription}; "; }); CustomerListInfo = CustomerListInfo.Trim(' ').Trim(';'); schedulerAppointment.ResourceList.DoForEach(resource => { ResourceListInfo += $"{resource.Name}; "; }); diff --git a/BeWoPlanerMobil/Util/JsonCustomer.cs b/BeWoPlanerMobil/Util/JsonCustomer.cs index cf0b4a386..742fb7d11 100644 --- a/BeWoPlanerMobil/Util/JsonCustomer.cs +++ b/BeWoPlanerMobil/Util/JsonCustomer.cs @@ -14,6 +14,8 @@ namespace BeWoPlanerMobil.Util { public string Vorname { get; set; } public string Nachname { get; set; } + + public string Alias { get; set; } public string Geburtstag { get; set; } public string Geschlecht { get; set; } @@ -117,6 +119,7 @@ namespace BeWoPlanerMobil.Util ICD10Diagnosen = icd10Diagnosen; Vorname = customer.FirstName; Nachname = customer.LastName; + Alias = customer.CustomerAlias; Geburtstag = customer.DateOfBirth?.ToShortDateString() ?? string.Empty; switch(customer.Sex) diff --git a/BeWoPlanerMobil/Util/PasswordUtils.cs b/BeWoPlanerMobil/Util/PasswordUtils.cs index f38ff5b3f..de51ef4fc 100644 --- a/BeWoPlanerMobil/Util/PasswordUtils.cs +++ b/BeWoPlanerMobil/Util/PasswordUtils.cs @@ -27,145 +27,40 @@ namespace BeWoPlanerMobil.Util private int _Score; private int _PreviousValue; private bool _Schalter; - private List _PreviousValues = new List(); + private readonly List _PreviousValues = new List(); public int EvaluatePasswordStrength(string passwordToEvaluate) { - var passwordStrength = 0; + if(!string.IsNullOrEmpty(passwordToEvaluate)) + { + var partialPassword = string.Empty; + var passwordStrength = 0; + + foreach(var token in passwordToEvaluate) + { + partialPassword += token.ToString(); + + if(partialPassword.Length < _PartialPassword.Length) + { + _IsPartial = true; + _PasswordLengthDifference = _PartialPassword.Length - partialPassword.Length; + } + + if(!_PartialPassword.Equals(partialPassword)) + { + _PartialPassword = partialPassword; + } + + passwordStrength = EvaluatePartialPasswordStrength(partialPassword); + } + + return passwordStrength; + } + + _Score = 0; _PreviousValue = 0; - if(string.IsNullOrWhiteSpace(passwordToEvaluate)) - { - return 0; - } - - if(_IsPartial) - { - if(_PasswordLengthDifference == 1) - { - _Score -= _PreviousValues.Last(); - _PreviousValues.RemoveAt(_PreviousValues.Count - 1); - } - else - { - for(var i = 0; i < _PasswordLengthDifference; i++) - { - _Score += _PreviousValues.Last(); - _PreviousValues.RemoveAt(_PreviousValues.Count - 1); - } - } - - _IsPartial = false; - } - else - { - var passwordLength = passwordToEvaluate.Length; - - if(passwordLength > 5 && passwordLength < 9) - { - AddLengthScore(1); - } - - if(passwordLength > 8 && passwordLength < 12) - { - AddLengthScore(2); - } - - if(passwordLength > 11 && passwordLength < 18) - { - AddLengthScore(3); - } - - if(passwordLength > 17) - { - AddLengthScore(4); - } - - // Ziffern - if(passwordToEvaluate.Any(character => Numbers.Contains(character))) - { - AddTokenScore(3); - } - - // Großbuchstaben - if(passwordToEvaluate.Any(character => UppercaseLetters.Contains(character))) - { - AddTokenScore(3); - } - - // Großumlaute - if(passwordToEvaluate.Any(character => UppercaseUmlauts.Contains(character))) - { - AddTokenScore(2); - } - - // Kleinbuchstaben - if(passwordToEvaluate.Any(character => LowercaseLetters.Contains(character))) - { - AddTokenScore(2); - } - - // Kleinumlaute - if(passwordToEvaluate.Any(character => LowercaseUmlauts.Contains(character))) - { - AddTokenScore(2); - } - - // Sonderzeichen - if(passwordToEvaluate.Any(character => SpecialCharacters1.Contains(character))) - { - AddTokenScore(4); - } - - if(passwordToEvaluate.Any(character => SpecialCharacters2.Contains(character))) - { - AddTokenScore(4); - } - - if(passwordToEvaluate.Any(character => SpecialCharacters3.Contains(character))) - { - AddTokenScore(4); - } - - if(passwordToEvaluate.Any(character => SpecialCharacters4.Contains(character))) - { - AddTokenScore(4); - } - - if(passwordToEvaluate.Any(character => SpecialCharacters5.Contains(character))) - { - AddTokenScore(4); - } - - _PreviousValues.Add(_PreviousValue); - } - - if(_Score < 16) - { - passwordStrength = 0; - } - - if(_Score > 15 && _Score < 56) - { - passwordStrength = 1; - } - - if(_Score > 55 && _Score < 116) - { - passwordStrength = 2; - } - - if(_Score > 115 && _Score < 156) - { - passwordStrength = 3; - } - - if(_Score > 155) - { - passwordStrength = 4; - } - - return passwordStrength; + return -1; } private void AddLengthScore(int valueToAdd) @@ -227,5 +122,144 @@ namespace BeWoPlanerMobil.Util return richtliniencount < 3 ? "Das Passwort muss mindestens drei Zeichen aus der Gruppe Sonderzeichen, Zahlen, Groß- und Kleinbuchstaben enthalten." : null; } + + private int EvaluatePartialPasswordStrength(string partialPassword) + { + var passwordStrength = 0; + _PreviousValue = 0; + + if(string.IsNullOrWhiteSpace(partialPassword)) + { + return 0; + } + + if(_IsPartial) + { + if(_PasswordLengthDifference == 1) + { + _Score -= _PreviousValues.Last(); + _PreviousValues.RemoveAt(_PreviousValues.Count - 1); + } + else + { + for(var i = 0; i < _PasswordLengthDifference; i++) + { + _Score += _PreviousValues.Last(); + _PreviousValues.RemoveAt(_PreviousValues.Count - 1); + } + } + + _IsPartial = false; + } + else + { + var passwordLength = partialPassword.Length; + + if(passwordLength > 5 && passwordLength < 9) + { + AddLengthScore(1); + } + + if(passwordLength > 8 && passwordLength < 12) + { + AddLengthScore(2); + } + + if(passwordLength > 11 && passwordLength < 18) + { + AddLengthScore(3); + } + + if(passwordLength > 17) + { + AddLengthScore(4); + } + + // Ziffern + if(partialPassword.Any(character => Numbers.Contains(character))) + { + AddTokenScore(3); + } + + // Großbuchstaben + if(partialPassword.Any(character => UppercaseLetters.Contains(character))) + { + AddTokenScore(3); + } + + // Großumlaute + if(partialPassword.Any(character => UppercaseUmlauts.Contains(character))) + { + AddTokenScore(2); + } + + // Kleinbuchstaben + if(partialPassword.Any(character => LowercaseLetters.Contains(character))) + { + AddTokenScore(2); + } + + // Kleinumlaute + if(partialPassword.Any(character => LowercaseUmlauts.Contains(character))) + { + AddTokenScore(2); + } + + // Sonderzeichen + if(partialPassword.Any(character => SpecialCharacters1.Contains(character))) + { + AddTokenScore(4); + } + + if(partialPassword.Any(character => SpecialCharacters2.Contains(character))) + { + AddTokenScore(4); + } + + if(partialPassword.Any(character => SpecialCharacters3.Contains(character))) + { + AddTokenScore(4); + } + + if(partialPassword.Any(character => SpecialCharacters4.Contains(character))) + { + AddTokenScore(4); + } + + if(partialPassword.Any(character => SpecialCharacters5.Contains(character))) + { + AddTokenScore(4); + } + + _PreviousValues.Add(_PreviousValue); + } + + if(_Score < 16) + { + passwordStrength = 0; + } + + if(_Score > 15 && _Score < 56) + { + passwordStrength = 1; + } + + if(_Score > 55 && _Score < 116) + { + passwordStrength = 2; + } + + if(_Score > 115 && _Score < 156) + { + passwordStrength = 3; + } + + if(_Score > 155) + { + passwordStrength = 4; + } + + return passwordStrength; + } } } \ No newline at end of file diff --git a/BeWoPlanerMobil/Views/Customer/Customer.cshtml b/BeWoPlanerMobil/Views/Customer/Customer.cshtml index 0c92bc324..116619e05 100644 --- a/BeWoPlanerMobil/Views/Customer/Customer.cshtml +++ b/BeWoPlanerMobil/Views/Customer/Customer.cshtml @@ -217,6 +217,18 @@ + + + + + + Alias + + + + + + @@ -1085,7 +1097,7 @@ } -@if(!(Model?.Report is null) && Html.IsInDebugMode()) +@if(!(Model?.Report is null)) { diff --git a/BeWoPlanerMobil/Views/Customer/CustomerBargeldkassen.cshtml b/BeWoPlanerMobil/Views/Customer/CustomerBargeldkassen.cshtml index d1d04bc38..a587e8020 100644 --- a/BeWoPlanerMobil/Views/Customer/CustomerBargeldkassen.cshtml +++ b/BeWoPlanerMobil/Views/Customer/CustomerBargeldkassen.cshtml @@ -9,6 +9,7 @@ Label Anfangsbestand Datumsfeld Startdatum Datumsfeld Enddatum + Datumsfeld Stichtag Link Kassenbuch drucken (Button mit Druckerlogo) Tabelle "Ein- und Auszahlungen" diff --git a/BeWoPlanerMobil/Views/Main/Main.cshtml b/BeWoPlanerMobil/Views/Main/Main.cshtml index 06a8c6b08..c21afd3b2 100644 --- a/BeWoPlanerMobil/Views/Main/Main.cshtml +++ b/BeWoPlanerMobil/Views/Main/Main.cshtml @@ -589,35 +589,9 @@ function getRateSelectedGoalUrl() { return "@Url.Action("RateSelectedGoal")"; } - - @if(Html.IsInDebugMode()) - { - - function provokeJsonError() { - try { - $.get("@Url.Action("ProvokeJsonError")").success(function (data) { - var test = $.parseJSON(data); - }); - } catch (error) { - showErrorPopup(error); - } - } - - } - @if(Html.IsInDebugMode()) - { - - - - JSON-Fehler provozieren - - - - } - @if(AbstractModel.IsAllowedToSeeSupportConceptFilter) { diff --git a/BeWoPlanerMobil/Views/Report/QuittierungsbelegsResultPartial.cshtml b/BeWoPlanerMobil/Views/Report/QuittierungsbelegsResultPartial.cshtml index 159ed68f7..9e7e1ee4f 100644 --- a/BeWoPlanerMobil/Views/Report/QuittierungsbelegsResultPartial.cshtml +++ b/BeWoPlanerMobil/Views/Report/QuittierungsbelegsResultPartial.cshtml @@ -70,12 +70,11 @@ saveButton.addEventListener("click", function() { - //saveSignature(customerOid, isEmployee, isOverriding, signaturePad, "qb-sig-sketch-pad"); var canvas = document.getElementById("qb-sig-sketch-pad"); var clonedCanvas = cloneCanvas(canvas); var trimmedCanvas = trimCanvas(clonedCanvas); - var context = trimmedCanvas.getContext("2d"); + var context = trimmedCanvas.getContext("2d", {willReadFrequently: true}); context.globalCompositeOperation = "destination-over"; context.fillStyle = "white"; context.fillRect(0, 0, trimmedCanvas.width, trimmedCanvas.height); diff --git a/BeWoPlanerMobil/Views/Scheduler/CustomerFilteringModalContentPartial.cshtml b/BeWoPlanerMobil/Views/Scheduler/CustomerFilteringModalContentPartial.cshtml index b1caea398..7e2fb970b 100644 --- a/BeWoPlanerMobil/Views/Scheduler/CustomerFilteringModalContentPartial.cshtml +++ b/BeWoPlanerMobil/Views/Scheduler/CustomerFilteringModalContentPartial.cshtml @@ -27,10 +27,14 @@ @foreach(var customer in Model.AllCustomers) { + var customerNameWithAlias = string.IsNullOrEmpty(customer.CustomerAlias) ? + customer.DetailDescription : + $"{customer.LastName}, {customer.FirstName} ({customer.CustomerAlias})"; + var checkedValue = Model.SelectedCustomersForFiltering.Contains(customer) ? "checked" : string.Empty; - @customer.DetailDescription + @customerNameWithAlias } \ No newline at end of file diff --git a/BeWoPlanerMobil/Views/Scheduler/FiveDaySchedulerPartial.cshtml b/BeWoPlanerMobil/Views/Scheduler/FiveDaySchedulerPartial.cshtml index 0af72f0f3..9eab4d094 100644 --- a/BeWoPlanerMobil/Views/Scheduler/FiveDaySchedulerPartial.cshtml +++ b/BeWoPlanerMobil/Views/Scheduler/FiveDaySchedulerPartial.cshtml @@ -72,7 +72,7 @@ } - @if (Model.HasRightToEditAppointment(appointment.Oid) && !appointment.IsTask && appointment.Oid.HasValue) + @if (Model.HasRightToEditAppointment(appointment.Identifier) && !appointment.IsTask && appointment.Oid.HasValue) { using (Html.BeginForm("SelectAppointmentToEdit", "Scheduler", FormMethod.Post)) { @@ -168,7 +168,7 @@ } - @if (Model.HasRightToEditAppointment(appointment.Oid) && !appointment.IsTask && appointment.Oid.HasValue) + @if (Model.HasRightToEditAppointment(appointment.Identifier) && !appointment.IsTask && appointment.Oid.HasValue) { using (Html.BeginForm("SelectAppointmentToEdit", "Scheduler", FormMethod.Post)) { @@ -264,7 +264,7 @@ } - @if (Model.HasRightToEditAppointment(appointment.Oid) && !appointment.IsTask && appointment.Oid.HasValue) + @if (Model.HasRightToEditAppointment(appointment.Identifier) && !appointment.IsTask && appointment.Oid.HasValue) { using (Html.BeginForm("SelectAppointmentToEdit", "Scheduler", FormMethod.Post)) { @@ -360,7 +360,7 @@ } - @if (Model.HasRightToEditAppointment(appointment.Oid) && !appointment.IsTask && appointment.Oid.HasValue) + @if (Model.HasRightToEditAppointment(appointment.Identifier) && !appointment.IsTask && appointment.Oid.HasValue) { using (Html.BeginForm("SelectAppointmentToEdit", "Scheduler", FormMethod.Post)) { @@ -456,7 +456,7 @@ } - @if (Model.HasRightToEditAppointment(appointment.Oid) && !appointment.IsTask && appointment.Oid.HasValue) + @if (Model.HasRightToEditAppointment(appointment.Identifier) && !appointment.IsTask && appointment.Oid.HasValue) { using (Html.BeginForm("SelectAppointmentToEdit", "Scheduler", FormMethod.Post)) { diff --git a/Dakota/Dakota.csproj b/Dakota/Dakota.csproj new file mode 100644 index 000000000..2c702aa8d --- /dev/null +++ b/Dakota/Dakota.csproj @@ -0,0 +1,147 @@ + + + + + Debug + AnyCPU + {47331732-DD96-4075-869F-83AA9F3F9937} + Library + Properties + Dakota + Dakota + v4.7.2 + 512 + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {B0D73E3D-4AE7-4024-93A6-DB1F46D7CCEE} + Data + + + {2F50B83D-A3F0-4EC4-979A-3F9B7E3D8ED4} + Shared + + + + \ No newline at end of file diff --git a/Dakota/DakotaConfig.cs b/Dakota/DakotaConfig.cs new file mode 100644 index 000000000..e6e432f25 --- /dev/null +++ b/Dakota/DakotaConfig.cs @@ -0,0 +1,38 @@ +using Dakota.Models.Schlüssels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Dakota +{ + public static class DakotaConfig + { + public static string IKAbsender => "109500969"; + + public static string TrennzeichenInnerhalb => ":"; + public static string Trennzeichen => "+"; + public static string Aufhebungszeichen => "?"; + public static string Segmentendezeichen => "'"; + public static string NewLine => "\n"; + + public static List SpecialCollection => new List { TrennzeichenInnerhalb, Trennzeichen, Aufhebungszeichen, Segmentendezeichen }; + + public static string Absenderklassifikation => "SL"; + public static string Dateiidentifizierer => "S"; + public static string GetLogischerDateiname(int _month) => $"{Absenderklassifikation}{IKAbsender.Substring(2, 6)}{Dateiidentifizierer}{_month}"; + + + public static SchlüsselAbrechnungscodes Abrechnungscode => SchlüsselAbrechnungscodes.SoziotherapeutischerLeistungserbringer; + + public static SchlüsselTarifkennzeichenBereich TarifkennzeichenBereich => SchlüsselTarifkennzeichenBereich.Bundeseinheitlich; + public static SchlüsselTarifkennzeichenSondertarif TarifkennzeichenSondertarif => SchlüsselTarifkennzeichenSondertarif.OhneBesonderheiten; + + public static SchlüsselPosArtDerEinrichtung AbrechnungspositionArtDerEinrichtung => SchlüsselPosArtDerEinrichtung.SoziotherapeutischerLeistungserbringer; + public static SchlüsselPosBehandlungsart AbrechnungspositionBehandlungsart => SchlüsselPosBehandlungsart.Einzelbehandlung; + public static SchlüsselPosVergütungsart AbrechnungspositionVergütungsart => SchlüsselPosVergütungsart.Pauschale1; + + public static string PhysikalischerDateiname => "idkidkid.txt"; + } +} diff --git a/Dakota/DakotaExtensions.cs b/Dakota/DakotaExtensions.cs new file mode 100644 index 000000000..77670578b --- /dev/null +++ b/Dakota/DakotaExtensions.cs @@ -0,0 +1,54 @@ +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 Dakota +{ + public static class DakotaExtensions + { + public static bool IsSozioTherapie(this ServiceInvoiceDC serviceDC) + => IsSozioTherapie(serviceDC?.InvoiceBase); + + public static bool IsSozioTherapie(this InvoiceBaseDC invoiceBase) + { + try + { + if (invoiceBase.InvoiceTitle?.ToLower().Contains("soziotherapie") ?? false) + return true; + + if (invoiceBase.InvoiceId?.ToLower().Contains("soziotherapie") ?? false) + return true; + + } + catch(Exception e) + { + + } + + return false; + } + + public static bool IsSozioTherapie(this InvoiceBase invoiceBase) + { + try + { + if (invoiceBase.InvoiceTitle?.ToLower().Contains("soziotherapie") ?? false) + return true; + + if (invoiceBase.InvoiceId?.ToLower().Contains("soziotherapie") ?? false) + return true; + + } + catch (Exception e) + { + + } + + return false; + } + } +} diff --git a/Dakota/DakotaValidator.cs b/Dakota/DakotaValidator.cs new file mode 100644 index 000000000..cd120b751 --- /dev/null +++ b/Dakota/DakotaValidator.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Dakota +{ + public static class DakotaValidator + { + public static void ClearTextString(string input) + { + foreach (var specialChar in DakotaConfig.SpecialCollection) + { + input = input.Replace(specialChar, DakotaConfig.Aufhebungszeichen + specialChar); + } + } + } +} diff --git a/Dakota/Logic/DakotaFileCreator.cs b/Dakota/Logic/DakotaFileCreator.cs new file mode 100644 index 000000000..91c4b0ab3 --- /dev/null +++ b/Dakota/Logic/DakotaFileCreator.cs @@ -0,0 +1,51 @@ +using BeWo.Data.Access; +using BeWo.Data.Entities; +using BS.Shared.DataContracts; +using Dakota; +using Dakota.Models; +using Dakota.Models.Infos; +using Dakota.Models.Schlüssels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Dakota.Logic +{ + public static class DakotaFileCreator + { + public static DakotaFile CreateDakotaFilePair(List invoiceitems) + { + var created = DateTime.Now; + + DakotaInfoCreator.Reset(); + + // Hole InfoDateiAuftrag + Nutz + //var info_nutzdaten = DakotaInfoCreator.GetEmptyInfoNutzdatendatei(para2); + //var info_auftrags = DakotaInfoCreator.GetEmptyInfoAuftragsdatei(para2); + + return null; + } + + //public static DakotaFile GenerateDakotaFile(List paras, DakotaInfoCreator.InfoCreatorParameterFix para2) + //{ + // DakotaInfoCreator.Reset(); + + // var info_nutzdaten = DakotaInfoCreator.GetEmptyInfoNutzdatendatei(para2); + // var info_auftrags = DakotaInfoCreator.GetEmptyInfoAuftragsdatei(para2); + + // foreach (var para in paras) + // { + // info_nutzdaten.AddDakotaInfoFile(para, para2); + // } + + // var dakota = new DakotaFile(); + + // dakota.Nutzdatendatei.Apply(info_nutzdaten); + // dakota.Auftragsdatei.Apply(info_auftrags); + + // return dakota; + //} + } +} diff --git a/Dakota/Logic/DakotaInfoCreator.cs b/Dakota/Logic/DakotaInfoCreator.cs new file mode 100644 index 000000000..385957ee8 --- /dev/null +++ b/Dakota/Logic/DakotaInfoCreator.cs @@ -0,0 +1,277 @@ +using BeWo.Data.Entities; +using BS.Shared.DataContracts; +using Dakota.Models.Infos; +using Dakota.Models.Schlüssels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Dakota.Logic +{ + public static class DakotaInfoCreator + { + public static int NachrichtenRefenrenz { get; set; } + + static DakotaInfoCreator() + { + Reset(); + } + + internal static void Reset() + { + NachrichtenRefenrenz = 0; + } + + internal static int GetNextRefNumber() + { + return ++NachrichtenRefenrenz; + } + + //internal static InfoFile GetDakotaInfoFile(InfoCreatorParameter para) + //{ + // var info = new InfoFile(); + + // info.SyntaxKennung = "UNOC"; + // info.SyntaxVersion = "3"; + // info.Absenderbezeichnung = para.Absender; + // info.Empfangerbezeichnung = para.Empfang; + // info.Created = DateTime.Now; + // info.Datenaustauschreferenz = 1; + // info.Leistungsbereich = SchlüsselLeistungserbringerSammelgruppenschlussel.SoziotherapeutischerLeistungserbringer; + // info.Anwendungsreferenz = "testdateiaa"; + // info.Testindikator = SchlüsselTestindikator.Testdatei; + + // info.BlockKostentragers.Add(GetDakotaInfoBlockKostentrager(para)); + + // return info; + //} + + internal static InfoDateiNutzdaten GetEmptyInfoNutzdatendatei(string absender, string empfang, string logischerDateiname) + { + var info = new InfoDateiNutzdaten(); + + info.SyntaxKennung = "UNOC"; + info.SyntaxVersion = "3"; + info.Absenderbezeichnung = absender; + info.Empfangerbezeichnung = empfang; + info.Datenaustauschreferenz = 1; + info.Leistungsbereich = SchlüsselLeistungserbringerSammelgruppenschlussel.SoziotherapeutischerLeistungserbringer; + info.Anwendungsreferenz = logischerDateiname; + info.Testindikator = SchlüsselTestindikator.Testdatei; + + return info; + } + internal static InfoDateiAuftrags GetEmptyInfoAuftragsdatei(string empfang) + { + var info = new InfoDateiAuftrags(); + + info.Identifikator = 500000; + info.Version = 1; + info.LangeAuftrag = 348; + info.SequenzNummer = 000; + info.VerfahrenKennung = "TSOL0"; + info.TransferNummer = 000; + info.VerfahrenKennungSpezifikation = "SGB1K"; + info.AbsenderEigner = DakotaConfig.IKAbsender; + info.AbsenderPhysikalisch = DakotaConfig.IKAbsender; + info.EmpfangerNutzer = empfang; + info.EmpfangerPhysikalisch = empfang; + info.FehlerNummer = 0; + info.FehlerMassnahme = 0; + info.Dateiname = "aok31052023"; + info.DatumUbertragungEmpfangenStart = "00000000000000"; + info.DatumUbertragungEmpfangenEnde = "00000000000000"; + info.DateiVersion = 0; + info.Korrektur = 0; + // info.DateigrosseNutzdaten = 0; + // info.DateigrosseUbertragung = 0; + info.Zeichensatz = "l1"; + info.Komprimierung = 0; + info.Verschlusselungsart = 0; + info.ElektronischeUnterschrift = 0; + + info.Satzformat = " "; + info.Satzlange = 0; + info.Blocklange = 0; + + // Part 3 nicht vom Absender + + info.EMailAdresseAbsender = "rene.evertz@ownsoft.de"; + + return info; + } + + internal static void AddInfoParameter(this InfoDateiNutzdaten file, InfoParameterInvoiceItem infoParameter) + { + var blockkostentrager = file.GetDakotaInfoBlockKostentrager(infoParameter); + var blockkvkarte = blockkostentrager.GetDakotaInfoBlockKvKarte(infoParameter); + var abrechnungsfall = blockkvkarte.GetDakotaInfoAbrechnungsfall(infoParameter); + var abrechnungsposition = abrechnungsfall.GetDakotaInfoAbrechnungsposition(infoParameter); + + abrechnungsfall.InfosAbrechnungsposition.Add(abrechnungsposition); + } + + internal static InfoBlockKostentrager GetDakotaInfoBlockKostentrager(this InfoDateiNutzdaten file, InfoParameterInvoiceItem infoParameter) + { + var ikkostentrager = infoParameter.IKKostentrager; + var block = file.BlockKostentragers.FirstOrDefault(x => x.IKKostentrager == ikkostentrager); + + if (block is null) + { + block = new InfoBlockKostentrager(ikkostentrager) + { + DakotaInfoSLGA = CreateDakotaInfoNachricht(true), + DakotaInfoNachrichtSLGA = CreateDakotaInfoNachrichtSLGA(infoParameter) + }; + file.BlockKostentragers.Add(block); + } + + return block; + } + internal static InfoBlockKrankenkasse GetDakotaInfoBlockKvKarte(this InfoBlockKostentrager blockkostentrager, InfoParameterInvoiceItem infoParameter) + { + var ikkrankenkasse = infoParameter.IKKrankenkasse; + var block = blockkostentrager.BlockKvKarte.FirstOrDefault(x => x.IKKrankenkasse == ikkrankenkasse); + + if (block is null) + { + block = new InfoBlockKrankenkasse(ikkrankenkasse) + { + DakotaInfoSLGA = CreateDakotaInfoNachricht(true), + DakotaInfoNachrichtSLGA = CreateDakotaInfoNachrichtSLGA(infoParameter), + DakotaInfoSLLA = CreateDakotaInfoNachricht(false), + DakotaInfoNachrichtSLLA = CreateDakotaInfoNachrichtSLLA(infoParameter) + }; + blockkostentrager.BlockKvKarte.Add(block); + } + + return block; + } + internal static InfoAbrechnungsfall GetDakotaInfoAbrechnungsfall(this InfoBlockKrankenkasse block, InfoParameterInvoiceItem infoParameter) + { + var belegnummer = infoParameter.Belegnummer; + var fall = block.DakotaInfoNachrichtSLLA.Abrechnungsfalle.FirstOrDefault(x => x.Belegnummer == belegnummer); + + if(fall is null) + { + fall = CreateDakotaInfoAbrechnungsfall(infoParameter); + block.DakotaInfoNachrichtSLLA.Abrechnungsfalle.Add(fall); + } + + return fall; + } + internal static InfoAbrechnungsposition GetDakotaInfoAbrechnungsposition(this InfoAbrechnungsfall fall, InfoParameterInvoiceItem infoParameter) + { + var pos = CreateDakotaInfoAbrechnungsposition(infoParameter); + + return pos; + } + + + + // ----------------------------------------------------------------------------------------------------------------------------------- + + private static InfoNachricht CreateDakotaInfoNachricht(bool isSLGA) + { + var info = new InfoNachricht(); + var typ = isSLGA ? "SLGA" : "SLLA"; + + info.Nachrichtenreferenznummer = GetNextRefNumber(); + info.NachrichtenTypKennung = typ; + info.NachrichtenVersionsnummer = "18"; + info.NachrichtenFreigabeNrTages = "0"; + info.NachrichtenVerwaltendeOrganisation = "0"; + + return info; + } + private static InfoNachrichtSLGA CreateDakotaInfoNachrichtSLGA(InfoParameterInvoiceItem infoParameter) + { + var info = new InfoNachrichtSLGA(); + + info.Verarbeitungskennzeichen = SchlüsselVerarbeitungskennzeichen.AbrechnungOhneBesonderheit; + info.IKAbsender = DakotaConfig.IKAbsender; + info.IKKostentrager = infoParameter.IKKostentrager; + info.IKKrankenkasse = infoParameter.IKKrankenkasse; + info.IKLeistungserbringer = infoParameter.IKLeistungserbringer; + + info.Rechnungsnummer = infoParameter.InvoiceBase.InvoiceNumber; + info.Rechnungsdatum = infoParameter.InvoiceBase.InvoiceDate.Value; + info.Rechnungsart = SchlüsselRechnungsart.AbrechnungÜberAbrechnungsstelleOhnInkassovollmacht; + + info.Name1 = infoParameter.Mandator.Name; + info.Name2 = "Max Mustermann"; + info.Name3 = "0177 0123456789"; + info.Name4 = "max@mustermann.de"; + + return info; + } + private static InfoNachrichtSLLA CreateDakotaInfoNachrichtSLLA(InfoParameterInvoiceItem infoParameter) + { + var info = new InfoNachrichtSLLA(); + + info.Verarbeitungskennzeichen = SchlüsselVerarbeitungskennzeichen.AbrechnungOhneBesonderheit; + info.IKAbsender = DakotaConfig.IKAbsender; + info.IKKostentrager = infoParameter.IKKostentrager; + info.IKKrankenkasse = infoParameter.IKKrankenkasse; + info.IKLeistungserbringer = infoParameter.IKLeistungserbringer; + + info.Rechnungsnummer = infoParameter.InvoiceBase.InvoiceNumber; + info.Rechnungsdatum = infoParameter.InvoiceBase.InvoiceDate.Value; + info.Rechnungsart = SchlüsselRechnungsart.AbrechnungVonLeistungserbringer; + + info.Abrechnungsfalle = new List(); + + return info; + } + private static InfoAbrechnungsfall CreateDakotaInfoAbrechnungsfall(InfoParameterInvoiceItem infoParameter) + { + var info = new InfoAbrechnungsfall(); + + info.VersichtertenNummer = infoParameter.Customer.InsuranceNumber; + info.Versichertenstatus = infoParameter.Customer.VersichertenStatus; + info.Beleginformation = SchlüsselBeleginformation.KeineBeleguebermittlung; + info.Belegnummer = infoParameter.Belegnummer; + + info.VersichtertenVorname = infoParameter.Customer.FirstName; + info.VersichtertenNachname = infoParameter.Customer.LastName; + info.VersichtertenGeburtstag = infoParameter.Customer.DateOfBirth.Value; + info.VersichtertenStraßeNr = infoParameter.Customer.Street; + info.VersichtertenPLZ = infoParameter.Customer.PostalCode; + info.VersichtertenWohnort = infoParameter.Customer.Town; + info.VersichtertenLanderkennung = null; + + return info; + } + private static InfoAbrechnungsposition CreateDakotaInfoAbrechnungsposition(InfoParameterInvoiceItem infoParameter) + { + var info = new InfoAbrechnungsposition(); + + // info.Identifikationsnummer = para.SozioInvoiceItem.Identifikationsnummer; + + info.Abrechnungscode = DakotaConfig.Abrechnungscode; + + info.TarifkennzeichenBereich = DakotaConfig.TarifkennzeichenBereich; + info.TarifkennzeichenSondertarif = DakotaConfig.TarifkennzeichenSondertarif; + + info.AbrechnungspositionArtDerEinrichtung = DakotaConfig.AbrechnungspositionArtDerEinrichtung; + info.AbrechnungspositionBehandlungsart = DakotaConfig.AbrechnungspositionBehandlungsart; + info.AbrechnungspositionVergütungsart = DakotaConfig.AbrechnungspositionVergütungsart; + + info.AnzahlMenge = infoParameter.InvoiceItem.UnitCount.Value; + info.EinzelbetragAbrechnungsposition = infoParameter.InvoiceItem.AmountPerUnit.Value; + info.DatumDerLeistungserbringung = infoParameter.InvoiceItem.ItemPeriodStart.Value; + + info.BetragZuzahlung = 0; + + return info; + } + private static InfoBlockDiagnosen CreateDakotaInfoDiagnosen() + { + var info = new InfoBlockDiagnosen(); + + return info; + } + } +} diff --git a/Dakota/Logic/DakotaManager.cs b/Dakota/Logic/DakotaManager.cs new file mode 100644 index 000000000..a50e21d6b --- /dev/null +++ b/Dakota/Logic/DakotaManager.cs @@ -0,0 +1,105 @@ +using BS.Shared.DataContracts; +using Dakota.Models.Infos; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Dakota.Logic +{ + public class DakotaManager + { + public int Month { get; set; } + + public Dictionary DakotaFileDict { get; set; } + + public Dictionary DakotaInfoNutzDict { get; set; } + public Dictionary DakotaInfoAufDict { get; set; } + + public DakotaManager(int _month) + { + Month = _month; + + DakotaFileDict = new Dictionary(); + + DakotaInfoNutzDict = new Dictionary(); + DakotaInfoAufDict = new Dictionary(); + } + + public void Add(InfoParameterInvoiceItem info) => Add(info.ServiceInvoice, info.Organisation, info.Customer, info.Mandator); + + public void Add(ServiceInvoiceDC serviceInvoice, OrganisationDC organisation, CustomerDC customer, MandatorDC mandator) + { + var ik_datenannahmestelle = organisation.IKDatenannahmestelle; + var success = DakotaInfoNutzDict.TryGetValue(ik_datenannahmestelle, out InfoDateiNutzdaten nutzdaten); + + if (!success) + { + var info_nutz_add = DakotaInfoCreator.GetEmptyInfoNutzdatendatei(DakotaConfig.IKAbsender, organisation.IKDatenannahmestelle, DakotaConfig.GetLogischerDateiname(Month)); + var info_auf_add = DakotaInfoCreator.GetEmptyInfoAuftragsdatei(organisation.IKDatenannahmestelle); + + DakotaInfoNutzDict.Add(ik_datenannahmestelle, info_nutz_add); + DakotaInfoAufDict.Add(ik_datenannahmestelle, info_auf_add); + + nutzdaten = info_nutz_add; + } + + foreach (var peroid in serviceInvoice.ServiceInvoicePeriods) + { + foreach (var invoice in peroid.InvoiceItems) + { + var info_nutz_item = new InfoParameterInvoiceItem(serviceInvoice, invoice, organisation, customer, mandator); + + nutzdaten.AddInfoParameter(info_nutz_item); + } + } + } + + public void Apply() + { + foreach (var ik_datenannahmestelle in DakotaInfoNutzDict.Keys) + { + var file = new DakotaFile(); + + var info_nutz = DakotaInfoNutzDict[ik_datenannahmestelle]; + var info_auf = DakotaInfoAufDict[ik_datenannahmestelle]; + + file.Nutzdatendatei.Apply(info_nutz); + file.Auftragsdatei.Apply(info_auf); + + DakotaFileDict.Add(ik_datenannahmestelle, file); + } + } + + public void Save() + { + foreach (var ik_datenannahmestelle in DakotaFileDict.Keys) + { + var code = DakotaFileDict[ik_datenannahmestelle]; + var empfang = code.GetIKEmpfang(); + + var transferdateiname = code.GetTransferName(); + + var path = @"C:\Projects\out"; + var pathauf = @"C:\Projects\out.auf"; + var path2 = $@"C:\dakotale\TP5Daten\{empfang}\{transferdateiname}"; + var path2auf = $@"C:\dakotale\TP5Daten\{empfang}\{transferdateiname}.auf"; + var path3 = $@"C:\dakotale\TP5Daten\{empfang}"; + + var auftragsdatei = code.GetAuftragsdatei(); + var nutzdatendatei = code.GetNutzdatendatei(); + + var auftragsdatei2 = Encoding.GetEncoding("ISO-8859-1").GetBytes(auftragsdatei); + + Directory.CreateDirectory(path3); + File.WriteAllText(path2, nutzdatendatei); + File.WriteAllBytes(path2auf, auftragsdatei2); + + File.WriteAllText(path, nutzdatendatei); + File.WriteAllBytes(pathauf, auftragsdatei2); + } + } + } +} diff --git a/Dakota/Logic/DakotaUtils.cs b/Dakota/Logic/DakotaUtils.cs new file mode 100644 index 000000000..e54d85d11 --- /dev/null +++ b/Dakota/Logic/DakotaUtils.cs @@ -0,0 +1,53 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Dakota.Logic +{ + public static class DakotaUtils + { + public static string FillFromLeft(string input, int length, char filler) + { + if (input.Length > length) + return input; + + if (input.Length == length) + return input; + + // inp.len < len + // <=> 0 < len - inp.len + + var sb = new StringBuilder(); + for (int i = 0; i < length - input.Length; i++) + { + sb.Append(filler); + } + sb.Append(input); + + return sb.ToString(); + } + + public static string FillFromRight(string input, int length, char filler) + { + if (input.Length > length) + return input; + + if (input.Length == length) + return input; + + // inp.len < len + // <=> 0 < len - inp.len + + var sb = new StringBuilder(); + sb.Append(input); + for (int i = 0; i < length - input.Length; i++) + { + sb.Append(filler); + } + + return sb.ToString(); + } + } +} diff --git a/Dakota/Models/Auftragsdatei/Auftragsdatei.cs b/Dakota/Models/Auftragsdatei/Auftragsdatei.cs new file mode 100644 index 000000000..8e9258c6e --- /dev/null +++ b/Dakota/Models/Auftragsdatei/Auftragsdatei.cs @@ -0,0 +1,42 @@ +using Dakota.Models.Infos; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Dakota.Models.Auftragsdatei +{ + internal class Auftragsdatei : IRow + { + public DakotaFile Parent { get; set; } + + public AuftragssatzPart1 AuftragssatzPart1 { get; private set; } + public AuftragssatzPart2 AuftragssatzPart2 { get; private set; } + public AuftragssatzPart3 AuftragssatzPart3 { get; private set; } + public AuftragssatzPart4 AuftragssatzPart4 { get; private set; } + + public Auftragsdatei(DakotaFile parent) + { + Parent = parent; + + AuftragssatzPart1 = new AuftragssatzPart1(this); + AuftragssatzPart2 = new AuftragssatzPart2(); + AuftragssatzPart3 = new AuftragssatzPart3(); + AuftragssatzPart4 = new AuftragssatzPart4(); + } + + public string GetRows() + { + return AuftragssatzPart1.GetRows() + AuftragssatzPart2.GetRows() + AuftragssatzPart3.GetRows() + AuftragssatzPart4.GetRows(); + } + + public void Apply(InfoDateiAuftrags info) + { + AuftragssatzPart1.Apply(info); + AuftragssatzPart2.Apply(info); + AuftragssatzPart3.Apply(info); + AuftragssatzPart4.Apply(info); + } + } +} diff --git a/Dakota/Models/Auftragsdatei/AuftragssatzPart1.cs b/Dakota/Models/Auftragsdatei/AuftragssatzPart1.cs new file mode 100644 index 000000000..4d549295f --- /dev/null +++ b/Dakota/Models/Auftragsdatei/AuftragssatzPart1.cs @@ -0,0 +1,142 @@ +using Dakota.Models.Daten; +using Dakota.Models.Infos; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Dakota.Models.Auftragsdatei +{ + internal class AuftragssatzPart1 : IRow + { + public Auftragsdatei ParentAuftragsdatei { get; set; } + + public DatenelementAuftragsdatei Identifikator { get; private set; } + public DatenelementAuftragsdatei Version { get; private set; } + public DatenelementAuftragsdatei LangeAuftrag { get; private set; } + public DatenelementAuftragsdatei SequenzNummer { get; private set; } + + public DatenelementAuftragsdatei VerfahrenKennung { get; private set; } + public DatenelementAuftragsdatei TransferNummer { get; private set; } + public DatenelementAuftragsdatei VerfahrenKennungSpezifikation { get; private set; } + public DatenelementAuftragsdatei AbsenderEigner { get; private set; } + + public DatenelementAuftragsdatei AbsenderPhysikalisch { get; private set; } + public DatenelementAuftragsdatei EmpfangerNutzer { get; private set; } + public DatenelementAuftragsdatei EmpfangerPhysikalisch { get; private set; } + public DatenelementAuftragsdatei FehlerNummer { get; private set; } + + public DatenelementAuftragsdatei FehlerMassnahme { get; private set; } + public DatenelementAuftragsdatei Dateiname { get; private set; } + public DatenelementAuftragsdatei DatumErstellung { get; private set; } + public DatenelementAuftragsdatei DatumUbertragungGesendet { get; private set; } + + public DatenelementAuftragsdatei DatumUbertragungEmpfangenStart { get; private set; } + public DatenelementAuftragsdatei DatumUbertragungEmpfangenEnde { get; private set; } + public DatenelementAuftragsdatei DateiVersion { get; private set; } + public DatenelementAuftragsdatei Korrektur { get; private set; } + + public DatenelementAuftragsdatei DateigrosseNutzdaten { get; private set; } + public DatenelementAuftragsdatei DateigrosseUbertragung { get; private set; } + public DatenelementAuftragsdatei Zeichensatz { get; private set; } + public DatenelementAuftragsdatei Komprimierung { get; private set; } + + public DatenelementAuftragsdatei Verschlusselungsart { get; private set; } + public DatenelementAuftragsdatei ElektronischeUnterschrift { get; private set; } + + public AuftragssatzPart1(Auftragsdatei parent) + { + ParentAuftragsdatei = parent; + + Identifikator = new DatenelementAuftragsdatei("Identifikator", 6, FeldtypAuftragsdatei.Numerisch, FeldartAuftragsdatei.Muss); + Version = new DatenelementAuftragsdatei("Version", 2, FeldtypAuftragsdatei.Numerisch, FeldartAuftragsdatei.Muss); + LangeAuftrag = new DatenelementAuftragsdatei("LangeAuftrag", 8, FeldtypAuftragsdatei.Numerisch, FeldartAuftragsdatei.Muss); + SequenzNummer = new DatenelementAuftragsdatei("SequenzNummer", 3, FeldtypAuftragsdatei.Numerisch, FeldartAuftragsdatei.MussBedingt); + + VerfahrenKennung = new DatenelementAuftragsdatei("VerfahrenKennung", 5, FeldtypAuftragsdatei.Alphanumerisch, FeldartAuftragsdatei.Muss); + TransferNummer = new DatenelementAuftragsdatei("TransferNummer", 3, FeldtypAuftragsdatei.Numerisch, FeldartAuftragsdatei.Muss); + VerfahrenKennungSpezifikation = new DatenelementAuftragsdatei("VerfahrenKennungSpezifikation", 5, FeldtypAuftragsdatei.Alphanumerisch, FeldartAuftragsdatei.MussBedingt); + AbsenderEigner = new DatenelementAuftragsdatei("AbsenderEigner", 15, FeldtypAuftragsdatei.Alphanumerisch, FeldartAuftragsdatei.Muss); + + AbsenderPhysikalisch = new DatenelementAuftragsdatei("AbsenderPhysikalisch", 15, FeldtypAuftragsdatei.Alphanumerisch, FeldartAuftragsdatei.Muss); + EmpfangerNutzer = new DatenelementAuftragsdatei("EmpfangerNutzer", 15, FeldtypAuftragsdatei.Alphanumerisch, FeldartAuftragsdatei.Muss); + EmpfangerPhysikalisch = new DatenelementAuftragsdatei("EmpfangerPhysikalisch", 15, FeldtypAuftragsdatei.Alphanumerisch, FeldartAuftragsdatei.Muss); + FehlerNummer = new DatenelementAuftragsdatei("FehlerNummer", 6, FeldtypAuftragsdatei.Numerisch, FeldartAuftragsdatei.Muss); + + FehlerMassnahme = new DatenelementAuftragsdatei("FehlerMassnahme", 6, FeldtypAuftragsdatei.Numerisch, FeldartAuftragsdatei.Muss); + Dateiname = new DatenelementAuftragsdatei("Dateiname", 11, FeldtypAuftragsdatei.Alphanumerisch, FeldartAuftragsdatei.Muss); + DatumErstellung = new DatenelementAuftragsdatei("DatumErstellung", 14, FeldtypAuftragsdatei.Numerisch, FeldartAuftragsdatei.Muss); + DatumUbertragungGesendet = new DatenelementAuftragsdatei("DatumUbertragungGesendet", 14, FeldtypAuftragsdatei.Numerisch, FeldartAuftragsdatei.MussBedingt); + + DatumUbertragungEmpfangenStart = new DatenelementAuftragsdatei("DatumUbertragungEmpfangenStart", 14, FeldtypAuftragsdatei.Numerisch, FeldartAuftragsdatei.Kann); + DatumUbertragungEmpfangenEnde = new DatenelementAuftragsdatei("DatumUbertragungEmpfangenEnde", 14, FeldtypAuftragsdatei.Numerisch, FeldartAuftragsdatei.Kann); + DateiVersion = new DatenelementAuftragsdatei("DateiVersion", 6, FeldtypAuftragsdatei.Numerisch, FeldartAuftragsdatei.Muss); + Korrektur = new DatenelementAuftragsdatei("Korrektur", 1, FeldtypAuftragsdatei.Numerisch, FeldartAuftragsdatei.Muss); + + DateigrosseNutzdaten = new DatenelementAuftragsdatei("DateigrosseNutzdaten", 12, FeldtypAuftragsdatei.Numerisch, FeldartAuftragsdatei.Muss); + DateigrosseUbertragung = new DatenelementAuftragsdatei("DateigrosseUbertragung", 12, FeldtypAuftragsdatei.Numerisch, FeldartAuftragsdatei.Muss); + Zeichensatz = new DatenelementAuftragsdatei("Zeichensatz", 2, FeldtypAuftragsdatei.Alphanumerisch, FeldartAuftragsdatei.Muss); + Komprimierung = new DatenelementAuftragsdatei("Komprimierung", 2, FeldtypAuftragsdatei.Numerisch, FeldartAuftragsdatei.Muss); + + Verschlusselungsart = new DatenelementAuftragsdatei("Verschlusselungsart", 2, FeldtypAuftragsdatei.Numerisch, FeldartAuftragsdatei.Muss); + ElektronischeUnterschrift = new DatenelementAuftragsdatei("ElektronischeUnterschrift", 2, FeldtypAuftragsdatei.Numerisch, FeldartAuftragsdatei.Muss); + } + + public string GetRows() + { + var list = new List() { + Identifikator,Version,LangeAuftrag,SequenzNummer, + VerfahrenKennung,TransferNummer,VerfahrenKennungSpezifikation,AbsenderEigner, + AbsenderPhysikalisch,EmpfangerNutzer,EmpfangerPhysikalisch,FehlerNummer, + FehlerMassnahme,Dateiname,DatumErstellung,DatumUbertragungGesendet, + DatumUbertragungEmpfangenStart,DatumUbertragungEmpfangenEnde,DateiVersion,Korrektur, + DateigrosseNutzdaten,DateigrosseUbertragung,Zeichensatz,Komprimierung, + Verschlusselungsart, ElektronischeUnterschrift + }; + + var sb = new StringBuilder(); + foreach (var item in list) + { + sb.Append(item.GetValue()); + } + return sb.ToString(); + } + + internal void Apply(InfoDateiAuftrags info) + { + Identifikator.SetValue(info.Identifikator); + Version.SetValue(info.Version); + LangeAuftrag.SetValue(info.LangeAuftrag); + SequenzNummer.SetValue(info.SequenzNummer); + + VerfahrenKennung.SetValue(info.VerfahrenKennung); + TransferNummer.SetValue(info.TransferNummer); + VerfahrenKennungSpezifikation.SetValue(info.VerfahrenKennungSpezifikation); + AbsenderEigner.SetValue(info.AbsenderEigner); + + AbsenderPhysikalisch.SetValue(info.AbsenderPhysikalisch); + EmpfangerNutzer.SetValue(info.EmpfangerNutzer); + EmpfangerPhysikalisch.SetValue(info.EmpfangerPhysikalisch); + FehlerNummer.SetValue(info.FehlerNummer); + + FehlerMassnahme.SetValue(info.FehlerMassnahme); + Dateiname.SetValue(info.Dateiname); + DatumErstellung.SetValue(ParentAuftragsdatei.Parent.Created.ToString("yyyyMMddhhmmss")); + DatumUbertragungGesendet.SetValue(ParentAuftragsdatei.Parent.Created.ToString("yyyyMMddhhmmss")); + + DatumUbertragungEmpfangenStart.SetValue(info.DatumUbertragungEmpfangenStart); + DatumUbertragungEmpfangenEnde.SetValue(info.DatumUbertragungEmpfangenEnde); + DateiVersion.SetValue(info.DateiVersion); + Korrektur.SetValue(info.Korrektur); + + DateigrosseNutzdaten.SetValue(info.DateigrosseNutzdaten); + DateigrosseUbertragung.SetValue(info.DateigrosseUbertragung); + Zeichensatz.SetValue(info.Zeichensatz); + Komprimierung.SetValue(info.Komprimierung); + + Verschlusselungsart.SetValue(info.Verschlusselungsart); + ElektronischeUnterschrift.SetValue(info.ElektronischeUnterschrift); + } + } +} diff --git a/Dakota/Models/Auftragsdatei/AuftragssatzPart2.cs b/Dakota/Models/Auftragsdatei/AuftragssatzPart2.cs new file mode 100644 index 000000000..d1021cfa9 --- /dev/null +++ b/Dakota/Models/Auftragsdatei/AuftragssatzPart2.cs @@ -0,0 +1,45 @@ +using Dakota.Models.Daten; +using Dakota.Models.Infos; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Dakota.Models.Auftragsdatei +{ + public class AuftragssatzPart2 : IRow + { + public DatenelementAuftragsdatei Satzformat { get; private set; } + public DatenelementAuftragsdatei Satzlange { get; private set; } + public DatenelementAuftragsdatei Blocklange { get; private set; } + + public AuftragssatzPart2() + { + Satzformat = new DatenelementAuftragsdatei("Satzformat", 3, FeldtypAuftragsdatei.Alpha, FeldartAuftragsdatei.MussBedingt); + Satzlange = new DatenelementAuftragsdatei("Satzlange", 5, FeldtypAuftragsdatei.Numerisch, FeldartAuftragsdatei.MussBedingt); + Blocklange = new DatenelementAuftragsdatei("Blocklange", 8, FeldtypAuftragsdatei.Numerisch, FeldartAuftragsdatei.MussBedingt); + } + + public string GetRows() + { + var list = new List() { + Satzformat,Satzlange,Blocklange + }; + + var sb = new StringBuilder(); + foreach (var item in list) + { + sb.Append(item.GetValue()); + } + return sb.ToString(); + } + + internal void Apply(InfoDateiAuftrags info) + { + Satzformat.SetValue(info.Satzformat); + Satzlange.SetValue(info.Satzlange); + Blocklange.SetValue(info.Blocklange); + } + } +} diff --git a/Dakota/Models/Auftragsdatei/AuftragssatzPart3.cs b/Dakota/Models/Auftragsdatei/AuftragssatzPart3.cs new file mode 100644 index 000000000..2f083c613 --- /dev/null +++ b/Dakota/Models/Auftragsdatei/AuftragssatzPart3.cs @@ -0,0 +1,58 @@ +using Dakota.Models.Daten; +using Dakota.Models.Infos; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Dakota.Models.Auftragsdatei +{ + public class AuftragssatzPart3 : IRow + { + public DatenelementAuftragsdatei Status { get; private set; } + public DatenelementAuftragsdatei Wiederholung { get; private set; } + public DatenelementAuftragsdatei Übertragungsweg { get; private set; } + public DatenelementAuftragsdatei VerzögerterVersand { get; private set; } + + public DatenelementAuftragsdatei InfoUndFehlerFelder { get; private set; } + public DatenelementAuftragsdatei VariablesInfoFeld { get; private set; } + + public AuftragssatzPart3() + { + Status = new DatenelementAuftragsdatei("Status", 1, FeldtypAuftragsdatei.Alphanumerisch, FeldartAuftragsdatei.MussBedingt); + Wiederholung = new DatenelementAuftragsdatei("Wiederholung", 2, FeldtypAuftragsdatei.Numerisch, FeldartAuftragsdatei.MussBedingt); + Übertragungsweg = new DatenelementAuftragsdatei("Übertragungsweg", 1, FeldtypAuftragsdatei.Numerisch, FeldartAuftragsdatei.MussBedingt); + VerzögerterVersand = new DatenelementAuftragsdatei("VerzögerterVersand", 10, FeldtypAuftragsdatei.Numerisch, FeldartAuftragsdatei.MussBedingt); + + InfoUndFehlerFelder = new DatenelementAuftragsdatei("InfoUndFehlerFelder", 6, FeldtypAuftragsdatei.Numerisch, FeldartAuftragsdatei.MussBedingt); + VariablesInfoFeld = new DatenelementAuftragsdatei("VariablesInfoFeld", 28, FeldtypAuftragsdatei.Alphanumerisch, FeldartAuftragsdatei.MussBedingt); + } + + public string GetRows() + { + var list = new List() { + Status,Wiederholung,Übertragungsweg,VerzögerterVersand, + InfoUndFehlerFelder,VariablesInfoFeld + }; + + var sb = new StringBuilder(); + foreach (var item in list) + { + sb.Append(item.GetValue()); + } + return sb.ToString(); + } + + internal void Apply(InfoDateiAuftrags info) + { + Status.SetValue(info.Status); + Wiederholung.SetValue(info.Wiederholung); + Übertragungsweg.SetValue(info.Übertragungsweg); + VerzögerterVersand.SetValue(info.VerzögerterVersand); + + InfoUndFehlerFelder.SetValue(info.InfoUndFehlerFelder); + VariablesInfoFeld.SetValue(info.VariablesInfoFeld); + } + } +} diff --git a/Dakota/Models/Auftragsdatei/AuftragssatzPart4.cs b/Dakota/Models/Auftragsdatei/AuftragssatzPart4.cs new file mode 100644 index 000000000..03f0fed6d --- /dev/null +++ b/Dakota/Models/Auftragsdatei/AuftragssatzPart4.cs @@ -0,0 +1,42 @@ +using Dakota.Models.Daten; +using Dakota.Models.Infos; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Dakota.Models.Auftragsdatei +{ + public class AuftragssatzPart4 : IRow + { + public DatenelementAuftragsdatei EMailAdresseAbsender { get; private set; } + public DatenelementAuftragsdatei DateiBezeichnung { get; private set; } + + public AuftragssatzPart4() + { + EMailAdresseAbsender = new DatenelementAuftragsdatei("EMailAdresseAbsender", 44, FeldtypAuftragsdatei.Alphanumerisch, FeldartAuftragsdatei.MussBedingt); + DateiBezeichnung = new DatenelementAuftragsdatei("DateiBezeichnung", 30, FeldtypAuftragsdatei.Alphanumerisch, FeldartAuftragsdatei.MussBedingt); + } + + public string GetRows() + { + var list = new List() { + EMailAdresseAbsender,DateiBezeichnung + }; + + var sb = new StringBuilder(); + foreach (var item in list) + { + sb.Append(item.GetValue()); + } + return sb.ToString(); + } + + internal void Apply(InfoDateiAuftrags info) + { + EMailAdresseAbsender.SetValue(info.EMailAdresseAbsender); + DateiBezeichnung.SetValue(info.DateiBezeichnung); + } + } +} diff --git a/Dakota/Models/Blocke/Block.cs b/Dakota/Models/Blocke/Block.cs new file mode 100644 index 000000000..efdaf4c1c --- /dev/null +++ b/Dakota/Models/Blocke/Block.cs @@ -0,0 +1,14 @@ +using Dakota.Models.Nachrichten; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Dakota.Models.Blocke +{ + internal abstract class Block : Nachricht + { + public abstract int GetUNHCount(); + } +} diff --git a/Dakota/Models/Blocke/BlockAbrechnungsposition.cs b/Dakota/Models/Blocke/BlockAbrechnungsposition.cs new file mode 100644 index 000000000..2a1806fbe --- /dev/null +++ b/Dakota/Models/Blocke/BlockAbrechnungsposition.cs @@ -0,0 +1,84 @@ +using Dakota.Models.Infos; +using Dakota.Models.Segmente; +using Dakota.Models.Segmente.SLLA; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Dakota.Models.Blocke +{ + internal class BlockAbrechnungsposition : Block + { + /// + /// Das Segment dient zur Abrechnung der einzelnen Positionen, + /// die für den abzurechnenden Fall angefallen sind.Es ist so oft + /// wiederholbar, wie Abrechnungspositionen vorkommen. + /// + public SegmentSLLAENF SegmentSLLAENF { get; private set; } + /// + /// Mit diesem Segment können weitere Informationen, bezogen + /// auf die abzurechnende Position übermittelt werden.Hier können u.a.die Uhrzeit und die gefahrenen Kilometer angegeben + /// werden. Es kann je abzurechnende Position einmal vorkommen + /// + public SegmentSLLASUT SegmentSLLASUT { get; private set; } + /// + /// Mit diesem Segment kann zu jeder abzurechnenden Position + /// ein Text(z.B.als Begründung) hinterlegt werden.Es kann je + /// abzurechnende Position einmal vorkommen. + /// + public SegmentSLLATXT SegmentSLLATXT { get; private set; } + /// + /// Mit diesem Segment kann zu jeder abzurechnenden Position + /// Mehrwertsteuer angegeben werden.Benutzt werden soll das + /// Segment nur dann, wenn dem in ENF genannten Einzelbetrag + /// die Mehrwertsteuer hinzuzurechnen ist. + /// + public SegmentSLLAMWS SegmentSLLAMWS { get; private set; } + + public decimal AnzahlEinheit => SegmentSLLAENF.AnzahlMenge.DecimalValue; + public decimal EinzelbetragAbrechnungsposition => SegmentSLLAENF.EinzelbetragAbrechnungsposition.DecimalValue; + public decimal BetragZuzahlung => SegmentSLLAENF.BetragZuzahlung.DecimalValue; + + public BlockAbrechnungsposition() + { + SegmentSLLAENF = new SegmentSLLAENF(); + SegmentSLLASUT = new SegmentSLLASUT(); + SegmentSLLATXT = new SegmentSLLATXT(); + SegmentSLLAMWS = new SegmentSLLAMWS(); + } + + public override List GetAllSegments() + { + return new List() { SegmentSLLAENF, SegmentSLLASUT, SegmentSLLATXT, SegmentSLLAMWS }; + } + + public override int GetUNHCount() + { + return 0; + } + + public void Apply(InfoAbrechnungsposition info) + { + // SegmentSLLAENF.Identifikationsnummer.SetValue(info.Identifikationsnummer); + SegmentSLLAENF.Abrechnungscode.SetValue(info.Abrechnungscode); + SegmentSLLAENF.Tarifkennzeichen.SetValue(info.Tarifkennzeichen); + SegmentSLLAENF.ArtLeistung.SetValue(info.Abrechnungsposition); + SegmentSLLAENF.AnzahlMenge.SetValue(info.AnzahlMenge); + SegmentSLLAENF.EinzelbetragAbrechnungsposition.SetValue(info.EinzelbetragAbrechnungsposition); + SegmentSLLAENF.DatumLeistungserbringung.SetValue(info.DatumDerLeistungserbringung); + SegmentSLLAENF.BetragZuzahlung.SetValue(info.BetragZuzahlung); + + SegmentSLLASUT.GefahreneKilometer.SetValue(info.GefahreneKilometer); + SegmentSLLASUT.Uhrzeit.SetValue(info.Uhrzeit); + SegmentSLLASUT.UhrzeitBis.SetValue(info.UhrzeitBis); + SegmentSLLASUT.Dauer.SetValue(info.Dauer); + + SegmentSLLATXT.Text.SetValue(info.Text); + + // SegmentSLLAMWS.Mehrwertsteuersatz.SetValue(info.Mehrwertsteuersatz); + // SegmentSLLAMWS.BetragMehrwertsteuer.SetValue(info.BetragMehrwertsteuersatz); + } + } +} diff --git a/Dakota/Models/Blocke/BlockDiagnose.cs b/Dakota/Models/Blocke/BlockDiagnose.cs new file mode 100644 index 000000000..8f7b6a537 --- /dev/null +++ b/Dakota/Models/Blocke/BlockDiagnose.cs @@ -0,0 +1,43 @@ +using Dakota.Models.Infos; +using Dakota.Models.Segmente; +using Dakota.Models.Segmente.SLLA; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Dakota.Models.Blocke +{ + internal class BlockDiagnose : Block + { + + /// + /// Das Segment dient zur Angabe der Diagnose und ist so oft + /// wiederholbar, wie Diagnosen vorliegen + /// + public SegmentSLLADIA SegmentSLLADIA { get; private set; } + + public BlockDiagnose() + { + SegmentSLLADIA = new SegmentSLLADIA(); + } + + public override List GetAllSegments() + { + var res = new List(); + + res.Add(SegmentSLLADIA); + + return res; + } + + public override int GetUNHCount() => 0; + + public void Apply(InfoBlockDiagnosen info) + { + SegmentSLLADIA.Diagnoseschlüssel.SetValue(info.Diagnoseschlüssel); + SegmentSLLADIA.Diagnosetext.SetValue(info.Diagnosetext); + } + } +} diff --git a/Dakota/Models/Blocke/BlockFile.cs b/Dakota/Models/Blocke/BlockFile.cs new file mode 100644 index 000000000..88668f3a3 --- /dev/null +++ b/Dakota/Models/Blocke/BlockFile.cs @@ -0,0 +1,87 @@ +using Dakota.Models.Infos; +using Dakota.Models.Nachrichten; +using Dakota.Models.Segmente; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Dakota.Models.Blocke +{ + ///