Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo

This commit is contained in:
2026-04-20 12:21:25 +02:00
57 changed files with 34420 additions and 386298 deletions

View File

@@ -206,6 +206,7 @@
<Compile Include="View\Document\RtfEditView.xaml.cs">
<DependentUpon>RtfEditView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Navigation\Filter\ValueListFilter.cs" />
<Compile Include="View\TemplateSelectors\AiConversationMessageTemplateSelector.cs" />
<Compile Include="View\Windows\AnimatedBeWoWindow.xaml.cs">
<DependentUpon>AnimatedBeWoWindow.xaml</DependentUpon>

View File

@@ -18,7 +18,7 @@ namespace BeWo.Converter
{
var showOnlyArchived = false;
var showOnlyOnlyDeleted = false;
CustomFilter customFilter = null;
IList<CustomFilter> customFilters = null;
if (values.Length >= 3)
{
@@ -29,9 +29,9 @@ namespace BeWo.Converter
if (values.Length >= 4)
{
if (values[3] is CustomFilter)
if (values[3] is IList<CustomFilter>)
{
customFilter = values[3] as CustomFilter;
customFilters = values[3] as IList<CustomFilter>;
}
if (values.Length >= 5)
@@ -51,14 +51,15 @@ namespace BeWo.Converter
var ret = (values[0] as IEnumerable<IFilterableDC>).Where(
dc =>
{
var filterRelevants = dc.FilterRelevants != null && dc.FilterRelevants.ContainsAll(lFilter) && (customFilter == null || customFilter.IsValid(dc));
var filterRelevants = dc.FilterRelevants != null && dc.FilterRelevants.ContainsAll(lFilter);
var aktiv = (!showOnlyOnlyDeleted && !showOnlyArchived && dc.ActivationType == ActivationTypeId.Active);
var archiviert = ((showOnlyArchived && dc.ActivationType == ActivationTypeId.Archived));
var geloescht = ((!showOnlyArchived && showOnlyOnlyDeleted && dc.ActivationType == ActivationTypeId.Deleted));
var geloeschtOderArchiviert = (showOnlyArchived && dc.ActivationType == ActivationTypeId.Archived || showOnlyOnlyDeleted && dc.ActivationType == ActivationTypeId.Deleted) && filterRelevants;
var ergebnis = (aktiv || archiviert || geloescht || geloeschtOderArchiviert) && filterRelevants;
var customerFilterValid = (customFilters == null || customFilters.All(f => f.IsValid(dc)));
var ergebnis = (aktiv || archiviert || geloescht || geloeschtOderArchiviert) && filterRelevants && customerFilterValid;
return ergebnis;
});

View File

@@ -100,6 +100,10 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.FaultContractAttribute(typeof(BS.Shared.Core.BeWoFault), Action="http://tempuri.org/IAnalysisService/CreateAnnualReportBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BS.Shared.Core")]
System.Collections.Generic.List<BS.Shared.DataContracts.AnnualReportDC> CreateAnnualReport(System.Nullable<long> costbearerOid, System.Nullable<long> teamOid, System.Nullable<long> customerCareTypeValueListEntryOid, System.DateTime startDate, System.DateTime endDate);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAnalysisService/CreateAnnualReport2", ReplyAction="http://tempuri.org/IAnalysisService/CreateAnnualReport2Response")]
[System.ServiceModel.FaultContractAttribute(typeof(BS.Shared.Core.BeWoFault), Action="http://tempuri.org/IAnalysisService/CreateAnnualReport2BeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BS.Shared.Core")]
System.Collections.Generic.List<BS.Shared.DataContracts.AnnualReportDC> CreateAnnualReport2(BS.Shared.DataContracts.AnnualReportConfigDC config);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAnalysisService/CreateAccountingReport", ReplyAction="http://tempuri.org/IAnalysisService/CreateAccountingReportResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BS.Shared.Core.BeWoFault), Action="http://tempuri.org/IAnalysisService/CreateAccountingReportBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BS.Shared.Core")]
BS.Shared.DataContracts.Reports.AccountingReportDC CreateAccountingReport(System.DateTime start, System.DateTime end);
@@ -243,6 +247,11 @@ namespace BeWo.ServiceProxy
return base.Channel.CreateAnnualReport(costbearerOid, teamOid, customerCareTypeValueListEntryOid, startDate, endDate);
}
public System.Collections.Generic.List<BS.Shared.DataContracts.AnnualReportDC> CreateAnnualReport2(BS.Shared.DataContracts.AnnualReportConfigDC config)
{
return base.Channel.CreateAnnualReport2(config);
}
public BS.Shared.DataContracts.Reports.AccountingReportDC CreateAccountingReport(System.DateTime start, System.DateTime end)
{
return base.Channel.CreateAccountingReport(start, end);

View File

@@ -217,6 +217,11 @@ namespace BeWo.ServiceProxy
"lt", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BS.Shared.Core")]
System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactTeamDC> FindLeadingCompactTeamsOfEmployee(long employeeOid);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IEmployeeService/GetActiveCompactEmployeesByOids", ReplyAction="http://tempuri.org/IEmployeeService/GetActiveCompactEmployeesByOidsResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BS.Shared.Core.BeWoFault), Action="http://tempuri.org/IEmployeeService/GetActiveCompactEmployeesByOidsBeWoFaultFault" +
"", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BS.Shared.Core")]
System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactEmployeeDC> GetActiveCompactEmployeesByOids(System.Collections.Generic.List<long> employeeOids);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IEmployeeService/ArchiveEmployee", ReplyAction="http://tempuri.org/IEmployeeService/ArchiveEmployeeResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BS.Shared.Core.BeWoFault), Action="http://tempuri.org/IEmployeeService/ArchiveEmployeeBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BS.Shared.Core")]
void ArchiveEmployee(long pOid, long pVersion);
@@ -838,6 +843,11 @@ namespace BeWo.ServiceProxy
return base.Channel.FindLeadingCompactTeamsOfEmployee(employeeOid);
}
public System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactEmployeeDC> GetActiveCompactEmployeesByOids(System.Collections.Generic.List<long> employeeOids)
{
return base.Channel.GetActiveCompactEmployeesByOids(employeeOids);
}
public void ArchiveEmployee(long pOid, long pVersion)
{
base.Channel.ArchiveEmployee(pOid, pVersion);

View File

@@ -25,6 +25,10 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.FaultContractAttribute(typeof(BS.Shared.Core.BeWoFault), Action="http://tempuri.org/IOperationsService/GetAIVoiceTranscriptBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BS.Shared.Core")]
BS.Shared.DataContracts.AiVoiceDataDC GetAIVoiceTranscript(BS.Shared.DataContracts.AiVoiceDataDC data);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/GetResourcesByOids", ReplyAction="http://tempuri.org/IOperationsService/GetResourcesByOidsResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BS.Shared.Core.BeWoFault), Action="http://tempuri.org/IOperationsService/GetResourcesByOidsBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BS.Shared.Core")]
System.Collections.Generic.List<BS.Shared.DataContracts.ResourceDC> GetResourcesByOids(System.Collections.Generic.List<long> resourceOids);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/UpdateDienstEintrag", ReplyAction="http://tempuri.org/IOperationsService/UpdateDienstEintragResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BS.Shared.Core.BeWoFault), Action="http://tempuri.org/IOperationsService/UpdateDienstEintragBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BS.Shared.Core")]
void UpdateDienstEintrag(BS.Shared.DataContracts.DienstEintragDC dienstEintrag);
@@ -367,6 +371,9 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Reports.AuslastungAnalysisSupportConceptDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Reports.AuslastungAnalysisSupportConceptDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AiVoiceDataDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.ResourceDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ResourceDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ValueListEntryDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.DienstEintragDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.DienstvertretungDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.DienstEintragDC>))]
@@ -375,7 +382,6 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ServiceRecordDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.CostRatePeriodDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.CostRatePeriodDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ValueListEntryDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.AbsenceTimeDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AbsenceTimeDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AbsenceReasonDC))]
@@ -471,8 +477,6 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.SchedulerAppointmentDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Employee2SchedulerAppointmentDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Employee2SchedulerAppointmentDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.ResourceDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ResourceDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.BargeldtransaktionshistoryDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.BargeldtransaktionshistoryDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.SignatureDC>))]
@@ -614,26 +618,9 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.Core.BeWoFault))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.Core.BeWoFaultType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.Core.DateTimeSpan))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactOrganisationDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactCustomerDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactEmployeeDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactSupportConceptDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactCostBearerDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactCostBearerDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactPersonDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactWohnheimDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactEmployeeDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactCustomerDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactSupportConceptDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactTokenDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactTokenDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactTeamDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactVertreterEmployeeDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactVertreterEmployeeDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactTeamDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.ValueListEntryType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.ActivationTypeId))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.CostRatePeriodType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.ValueListEntryType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.AbsenceReasonVisibilityType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.Sex))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.SubstitutionNeed))]
@@ -680,6 +667,23 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.Priority))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.Status))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.VertretungsStatus))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactOrganisationDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactCustomerDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactEmployeeDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactSupportConceptDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactCostBearerDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactCostBearerDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactPersonDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactWohnheimDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactEmployeeDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactCustomerDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactSupportConceptDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactTokenDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactTokenDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactTeamDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactVertreterEmployeeDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactVertreterEmployeeDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactTeamDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Wohnhilfe.CustomerWohnhilfeDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Wohnhilfe.CustomerWohnhilfeDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Wohnhilfe.CustomerWohnhilfeBereichBundDC))]
@@ -2008,6 +2012,11 @@ namespace BeWo.ServiceProxy
return base.Channel.GetAIVoiceTranscript(data);
}
public System.Collections.Generic.List<BS.Shared.DataContracts.ResourceDC> GetResourcesByOids(System.Collections.Generic.List<long> resourceOids)
{
return base.Channel.GetResourcesByOids(resourceOids);
}
public void UpdateDienstEintrag(BS.Shared.DataContracts.DienstEintragDC dienstEintrag)
{
base.Channel.UpdateDienstEintrag(dienstEintrag);

View File

@@ -17,7 +17,8 @@ namespace BeWo.View
private readonly long _CustomerOid;
private readonly Dictionary<int, AssessmentSheetValueVM> _Day2Entries = new Dictionary<int, AssessmentSheetValueVM>();
private readonly Dictionary<int, AssessmentSheetValueVM> _Day2Values = new Dictionary<int, AssessmentSheetValueVM>();
private readonly Dictionary<int, AssessmentSheetEntryVM> _Day2Entries = new Dictionary<int, AssessmentSheetEntryVM>();
private readonly AssessmentSheetEntryListVM _EntryList;
@@ -45,11 +46,13 @@ namespace BeWo.View
if (showWeek)
{
TimeSpan ts = entry.Day.Value.Subtract(_StartDate);
_Day2Entries[(int) ts.TotalDays + 1] = PossibleValues.SingleOrDefault(vm => vm.DataContract.AssessmentSheetValueOid.Equals(entry.ValueOid));
_Day2Values[(int) ts.TotalDays + 1] = PossibleValues.SingleOrDefault(vm => vm.DataContract.AssessmentSheetValueOid.Equals(entry.ValueOid));
_Day2Entries[(int)ts.TotalDays + 1] = entry;
}
else
{
_Day2Entries[entry.Day.Value.Day] = PossibleValues.SingleOrDefault(vm => vm.DataContract.AssessmentSheetValueOid.Equals(entry.ValueOid));
_Day2Values[entry.Day.Value.Day] = PossibleValues.SingleOrDefault(vm => vm.DataContract.AssessmentSheetValueOid.Equals(entry.ValueOid));
_Day2Entries[entry.Day.Value.Day] = entry;
}
}
}
@@ -471,7 +474,13 @@ namespace BeWo.View
private AssessmentSheetValueVM Get(int day)
{
return this._Day2Entries.ContainsKey(day) ? this._Day2Entries[day] : null;
var v = this._Day2Values.ContainsKey(day) ? this._Day2Values[day] : null;
if (v != null && this._Day2Entries.ContainsKey(day))
{
var e = _Day2Entries[day];
v.Tooltip = string.Format("{0}, {1:dd.MM.yyyy HH:mm} von {2}", v.Description, e.DataContract.InsTs, e.DataContract.InsUser);
}
return v;
}
private void Set(int day, AssessmentSheetValueVM value)
@@ -480,11 +489,13 @@ namespace BeWo.View
if (value.IsNew)
{
value = null;
this._Day2Values.Remove(day);
this._Day2Entries.Remove(day);
}
else
{
this._Day2Entries[day] = value;
this._Day2Values[day] = value;
this._Day2Entries.Remove(day);
}
var list = this._EntryList.VMList.Where(vm => vm.CategoryOid.Equals(this._Category.AssessmentSheetCategoryOid) && vm.Day.HasValue && vm.Day.Value.Equals(date)).ToList();

View File

@@ -29,7 +29,7 @@ namespace BeWo.View.Controls
c.shine.Visibility = Visibility.Visible;
c.tb.Text = vm.Sign;
c.border.Background = vm.Brush;
c.border.ToolTip = vm.DataContract.Tooltip;
c.border.ToolTip = vm.Tooltip;
}
else
{

View File

@@ -107,6 +107,7 @@
IsReadOnly="True"
PopUpClick="popupedit_file_PopUpClick" />
<Label
x:Name="lblBuchungsdatum"
Grid.Row="0"
Grid.Column="2"
VerticalAlignment="Center"

View File

@@ -66,10 +66,14 @@ namespace BeWo.View.Detail
if (!BeWoApp.AppSettings.ShowImportAbschlagszahlungen)
{
lblBuchungsdatum.Visibility = Visibility.Collapsed;
DateEditDefaultImportBuchungsdatum.Visibility = Visibility.Collapsed;
popupedit_file.Visibility = Visibility.Collapsed;
ButtonImport.Visibility = Visibility.Collapsed;
}
#if DEBUG
lblBuchungsdatum.Visibility = Visibility.Visible;
DateEditDefaultImportBuchungsdatum.Visibility = Visibility.Visible;
popupedit_file.Visibility = Visibility.Visible;
ButtonImport.Visibility = Visibility.Visible;
#endif

View File

@@ -37,7 +37,7 @@ namespace BeWo.View.Document
view.InitView(tabelle, alleVorlagen, templateFolderList, null, true, false, "", defaultBerichte);
//view.InitView(tabelle, alleVorlagen, templateFolderList, null, true, false, "");
var beWoWindow = BeWoWindowBuilder.GetBeWoWindow(Translator.Translate("Vorlage auswählen"), view, 500, 500);
var beWoWindow = BeWoWindowBuilder.GetBeWoWindow(Translator.Translate("Vorlage auswählen"), view, 500, 600);
view.ButtonCancelClicked += () => beWoWindow.Close();
view.ButtonCreateForSelectionClicked += () =>
@@ -104,6 +104,7 @@ namespace BeWo.View.Document
Node = rootNode
};
DocumentTreeItemVM vm = new DocumentTreeItemVM(dc);
vm.SortName = String.Format("0_{0}", dc.Name); //Für Sortieren. Die Ordner sollen oberhalb der Vorlagen einsortiert werden
rootNode.Content = vm;
rootNode.IsExpandButtonVisible = DefaultBoolean.True;
rootNode.IsExpanded = expandItems;
@@ -154,6 +155,7 @@ namespace BeWo.View.Document
BeWoFolderDC = new BeWoFolderDC { Name = "RootFolder", SubFolders = new List<BeWoFolderDC>() }
};
DocumentTreeItemVM vm = new DocumentTreeItemVM(dc);
vm.SortName = String.Format("0_{0}", dc.Name); //Für Sortieren. Die Ordner sollen oberhalb der Vorlagen einsortiert werden
node.Content = vm;
treeControl.View.Nodes.Add(node);
node.IsExpandButtonVisible = DefaultBoolean.True;
@@ -190,6 +192,7 @@ namespace BeWo.View.Document
};
DocumentTreeItemVM folder_vm = new DocumentTreeItemVM(dc);
folder_vm.SortName = String.Format("z_{0}", dc.Name); //Für Sortieren. Die Ordner sollen oberhalb der Vorlagen einsortiert werden
var newFolderNode = new TreeListNode()
{
Content = folder_vm,
@@ -313,6 +316,7 @@ namespace BeWo.View.Document
}
}
DocumentTreeItemVM folder_vm = new DocumentTreeItemVM(dc);
folder_vm.SortName = String.Format("0_{0}", dc.Name); //Für Sortieren. Die Ordner sollen oberhalb der Vorlagen einsortiert werden
var newFolderNode = new TreeListNode()
{
Content = folder_vm,

View File

@@ -67,6 +67,9 @@
<MenuItem.Icon>
<Image Source="..\Ressources\Icons\Rename24.png" />
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="Berechtigungen">
</MenuItem>
<Separator />
<MenuItem Header="Neue Vorlage">

View File

@@ -1447,6 +1447,10 @@ namespace BeWo.View.Document
{
this.EditSelectedTemplateFolder();
}
else if (twi.Header.Equals("Berechtigungen"))
{
this.OpenSelectRightsDialog();
}
else if (twi.Header.Equals("Löschen"))
{
this.DeleteTemplateFolderWithAllSubfolders(row.DataContract.BeWoFolderDC);
@@ -1566,6 +1570,11 @@ namespace BeWo.View.Document
//TemplateTreeView.SelectCell(h, template_treeview_control.Columns[0]);
//TemplateTreeView.ShowEditForm();
}
private void OpenSelectRightsDialog()
{
}

View File

@@ -31,9 +31,10 @@
<Label Margin="0,0,0,0" x:Name="lblTemplate" Content="Vorlage:"/>
<dxg:TreeListControl x:Name="treelistcontrol_template" Grid.Row="1" Grid.ColumnSpan="2" DefaultSorting="Name" Margin="5,0,5,0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" >
<dxg:TreeListControl x:Name="treelistcontrol_template" Grid.Row="1" Grid.ColumnSpan="2" Margin="5,0,5,0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" >
<dxg:TreeListControl.Columns>
<dxg:TreeListColumn FieldName="Name" AllowSorting="True" CellToolTipBinding="{Binding Description}"/>
<dxg:TreeListColumn FieldName="Name" CellToolTipBinding="{Binding Description}"/>
<dxg:TreeListColumn FieldName="SortName" AllowSorting="True" SortIndex="0" SortOrder="Ascending" Visible="False"/>
</dxg:TreeListControl.Columns>
<dxg:TreeListControl.View>
<dxg:TreeListView x:Name="TreeView_template" ShowColumnHeaders="False" ShowIndicator="False" ShowHorizontalLines="False" ShowVerticalLines="False" AutoWidth="True"
@@ -59,8 +60,15 @@
</dxg:TreeListView>
</dxg:TreeListControl.View>
</dxg:TreeListControl>
<WrapPanel Grid.Row="5" Grid.ColumnSpan="2" VerticalAlignment="Bottom" HorizontalAlignment="Right" Margin="0 5 5 5">
<WrapPanel Grid.Row="5" Grid.ColumnSpan="1" VerticalAlignment="Bottom" HorizontalAlignment="Left" Margin="0 5 5 5">
<Button Margin="10 0 0 0"
Name="button_aufklappenAllGoals" Click="button_aufklappenAll_Click"
HorizontalAlignment="Left">Alle aufklappen</Button>
<Button Margin="5 0 0 0"
Name="button_zuklappenAllGoals" Click="button_zuklappenAll_Click"
HorizontalAlignment="Left">Alle zuklappen</Button>
</WrapPanel>
<WrapPanel Grid.Row="5" Grid.Column="1" VerticalAlignment="Bottom" HorizontalAlignment="Right" Margin="0 5 5 5">
<Button x:Name="Button_SelectTemplate" Content="Dokument erstellen" Margin="0 0 5 0" Click="Button_CreateTemplateForSelection_Click" />
<Button x:Name="Button_SelectFolder" Content="Dokument speichern" Margin="0 0 5 0" Click="Button_SelectFolder_Click" />
<Button x:Name="Button_Cancel_OnlyOne" Content="Abbrechen" Click="Button_Cancel_Click" />

View File

@@ -181,8 +181,36 @@ namespace BeWo.View.Document
private void TreeView_template_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
e.Handled = true;
OpenSelectedTemplate();
var hitInfo = TreeView_template.CalcHitInfo(e.OriginalSource as DependencyObject);
if (hitInfo.InRowCell)
{
e.Handled = true;
OpenSelectedTemplate();
}
}
private void button_aufklappenAll_Click(object sender, RoutedEventArgs e)
{
ExpandAllTreeItems(TreeView_template.Nodes, true);
}
private void button_zuklappenAll_Click(object sender, RoutedEventArgs e)
{
ExpandAllTreeItems(TreeView_template.Nodes, false);
}
private void ExpandAllTreeItems(TreeListNodeCollection nodes, bool expanded)
{
foreach (var node in nodes)
{
node.IsExpanded = expanded;
ExpandAllTreeItems(node.Nodes, expanded);
}
//TreeView_template.items
}
}
}

View File

@@ -31,6 +31,7 @@ using System.Collections;
using System.Windows.Input;
using BeWo.Core.Commands;
using BeWo.ViewModel.View.AI;
using DevExpress.Xpf.Editors;
namespace BeWo.View.Navigation
{
@@ -42,8 +43,9 @@ namespace BeWo.View.Navigation
//private readonly CheckBox chkShowOnlyMyCustomers;
//private readonly CheckBox chkShowOnlyTeamCustomers;
private readonly ComboBox supportConceptFilterComboBox;
private IEnumerable<IFilterableDC> objectList;
private readonly ComboBoxEdit betreuungsartFilterComboBox;
private IEnumerable<IFilterableDC> objectList;
private IEnumerable<IFilterableDC> recentList;
public CustomerNavigationView()
@@ -169,10 +171,46 @@ namespace BeWo.View.Navigation
mainNavigationView.sortPanel.Children.Insert(3, lbl);
mainNavigationView.sortPanel.Children.Insert(4, supportConceptFilterComboBox);
betreuungsartFilterComboBox = new ComboBoxEdit();
betreuungsartFilterComboBox.FontSize = 12;
betreuungsartFilterComboBox.Margin = new Thickness(10, 0, 0, 0);
betreuungsartFilterComboBox.Width = 150;
betreuungsartFilterComboBox.IsTextEditable = false;
betreuungsartFilterComboBox.NullText = Translator.Translate("Nach Betreuungsart filtern");
betreuungsartFilterComboBox.ItemsSource = ServiceFacade.DoValueListServiceSync(s => s.GetAllValueListEntrysByType(ValueListEntryType.CustomerCareType));
betreuungsartFilterComboBox.DisplayMember = "TypeDescription";
betreuungsartFilterComboBox.StyleSettings = new CheckedComboBoxStyleSettings();
betreuungsartFilterComboBox.EditValueChanged += BetreuungsartComboBox_EditValueChanged;
//< dxe:ComboBoxEdit x:Name = "checkedComboBox"
// NullText = "Select categories"
// IsTextEditable = "False"
// ItemsSource = "{Binding Categories}"
// EditValue = "{Binding SelectedCategories}"
// DisplayMember = "CategoryName"
// ShowCustomItems = "True" >
// < dxe:ComboBoxEdit.StyleSettings >
// < dxe:CheckedComboBoxStyleSettings />
// </ dxe:ComboBoxEdit.StyleSettings >
// </ dxe:ComboBoxEdit >
lbl = new TextBlock
{
Text = Translator.Translate("Betreuungsart:"),
FontSize = 12,
Margin = new Thickness(8, 2, -3, 0)
};
mainNavigationView.sortPanel.Children.Insert(5, lbl);
mainNavigationView.sortPanel.Children.Insert(6, betreuungsartFilterComboBox);
UpdateCustomFilter();
}
public Dictionary<TableID, long[]> GetVisibleInformationReferences()
public Dictionary<TableID, long[]> GetVisibleInformationReferences()
{
var visible = mainNavigationView.objectListBox.ItemsSource;
@@ -218,14 +256,37 @@ namespace BeWo.View.Navigation
UpdateCustomFilter();
}
private CustomFilter CreateNewCustomFilter()
private void BetreuungsartComboBox_EditValueChanged(object sender, EditValueChangedEventArgs e)
{
UpdateCustomFilter();
}
private CustomFilter CreateNewCustomerFilter()
{
var filter = new CustomerNavigationFilter { CustomerFilter = ((CustomerFilterItem)supportConceptFilterComboBox.SelectedItem)?.CustomerFilter ?? CustomerFilterEnum.MyCustomer };
return filter;
}
private void OnLoaded(object sender, RoutedEventArgs e)
private CustomFilter CreateNewBetreuungsartFilter()
{
if (betreuungsartFilterComboBox.SelectedItems == null)
return null;
var list = new List<ValueListEntryDC>();
foreach (var item in betreuungsartFilterComboBox.SelectedItems)
{
list.Add(item as ValueListEntryDC);
}
var filter = new ValueListFilter { SelectedValueListEntries = list, ValueListProperty = "CustomerCareTypes" };
return filter;
}
private void OnLoaded(object sender, RoutedEventArgs e)
{
ServiceFacade.DoCustomerServiceAsync(s => s.ConvertToNewSubstitutionType(), n => this.Dispatch(delegate
{
@@ -237,8 +298,8 @@ namespace BeWo.View.Navigation
private void UpdateCustomFilter()
{
mainNavigationView.CustomFilter = CreateNewCustomFilter();
}
mainNavigationView.CustomFilters = new List<CustomFilter> { CreateNewCustomerFilter(), CreateNewBetreuungsartFilter() };
}
private void ChkShowOnlyMyCustomers_Click(object sender, RoutedEventArgs e)
{

View File

@@ -0,0 +1,50 @@
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
using System.Collections.Generic;
using System.Reflection;
namespace BeWo.View.Navigation.Filter
{
public class ValueListFilter : CustomFilter
{
public IList<ValueListEntryDC> SelectedValueListEntries { get; set; }
public string ValueListProperty { get; set; }
public override bool IsValid(IFilterableDC dc)
{
var val = GetPropertyValue(dc, ValueListProperty);
if (SelectedValueListEntries != null && SelectedValueListEntries.Count > 0)
{
if (val != null)
{
foreach (var cct in SelectedValueListEntries)
{
if (val.ToString().Contains(cct.DisplayName))
{
return true;
}
}
}
return false;
}
return true;
}
private object GetPropertyValue(object obj, string propertyName)
{
if (obj == null || string.IsNullOrWhiteSpace(propertyName))
return null;
var prop = obj.GetType().GetProperty(
propertyName,
BindingFlags.Public | BindingFlags.Instance | BindingFlags.IgnoreCase
);
return prop?.GetValue(obj);
}
}
}

View File

@@ -145,7 +145,7 @@
<Binding />
<Binding ElementName="textbox_search" Path="Text" />
<Binding ElementName="chkShowArchived" Path="IsChecked" />
<Binding Path="CustomFilter">
<Binding Path="CustomFilters">
<Binding.RelativeSource>
<RelativeSource AncestorType="{x:Type localNavView:MainNavigationView}" Mode="FindAncestor" />
</Binding.RelativeSource>

View File

@@ -3,6 +3,7 @@ using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
@@ -27,7 +28,7 @@ namespace BeWo.View.Navigation
{
public partial class MainNavigationView : INotifyPropertyChanged
{
internal CustomFilter _CustomFilter;
internal IList<CustomFilter> _CustomFilters;
private readonly string _DetailsLoadLock = string.Empty;
@@ -164,18 +165,18 @@ namespace BeWo.View.Navigation
}
}
public CustomFilter CustomFilter
public IList<CustomFilter> CustomFilters
{
get
{
return _CustomFilter;
return _CustomFilters;
}
set
{
_CustomFilter = value;
_CustomFilters = value.Where(f => f != null).ToList();
FirePropertyChanged("CustomFilter");
FirePropertyChanged("CustomFilters");
// if (listBoxMultiBinding.Bindings.Count == 4)
// listBoxMultiBinding.Bindings.RemoveAt(3);

View File

@@ -22,6 +22,8 @@ using System.Windows.Input;
using BeWo.Core.Commands;
using DevExpress.XtraBars.Docking;
using BeWo.ViewModel.View.AI;
using DevExpress.Xpf.Editors;
using BS.Shared.Translation;
namespace BeWo.View.Navigation
{
@@ -31,8 +33,9 @@ namespace BeWo.View.Navigation
public partial class PersonNavigationView
{
private readonly ComboBox filterComboBox;
private readonly ComboBoxEdit functionFilterComboBox;
private IEnumerable<IFilterableDC> objectList;
private IEnumerable<IFilterableDC> objectList;
private IEnumerable<IFilterableDC> recentList;
public PersonNavigationView()
@@ -85,7 +88,41 @@ namespace BeWo.View.Navigation
mainNavigationView.sortPanel.Children.Insert(3, lbl);
mainNavigationView.sortPanel.Children.Insert(4, filterComboBox);
UpdateCustomFilter();
functionFilterComboBox = new ComboBoxEdit();
functionFilterComboBox.FontSize = 12;
functionFilterComboBox.Margin = new Thickness(10, 0, 0, 0);
functionFilterComboBox.Width = 150;
functionFilterComboBox.IsTextEditable = false;
functionFilterComboBox.NullText = Translator.Translate("Nach Funktion filtern");
functionFilterComboBox.ItemsSource = ServiceFacade.DoValueListServiceSync(s => s.GetAllValueListEntrysByType(ValueListEntryType.FunctionType));
functionFilterComboBox.DisplayMember = "TypeDescription";
functionFilterComboBox.StyleSettings = new CheckedComboBoxStyleSettings();
functionFilterComboBox.EditValueChanged += FunctionComboBox_EditValueChanged;
//< dxe:ComboBoxEdit x:Name = "checkedComboBox"
// NullText = "Select categories"
// IsTextEditable = "False"
// ItemsSource = "{Binding Categories}"
// EditValue = "{Binding SelectedCategories}"
// DisplayMember = "CategoryName"
// ShowCustomItems = "True" >
// < dxe:ComboBoxEdit.StyleSettings >
// < dxe:CheckedComboBoxStyleSettings />
// </ dxe:ComboBoxEdit.StyleSettings >
// </ dxe:ComboBoxEdit >
lbl = new TextBlock
{
Text = Translator.Translate("Funktion:"),
FontSize = 12,
Margin = new Thickness(8, 2, -3, 0)
};
mainNavigationView.sortPanel.Children.Insert(5, lbl);
mainNavigationView.sortPanel.Children.Insert(6, functionFilterComboBox);
UpdateCustomFilter();
}
public Dictionary<TableID, long[]> GetVisibleInformationReferences()
@@ -135,12 +172,33 @@ namespace BeWo.View.Navigation
UpdateCustomFilter();
}
private void UpdateCustomFilter()
{
mainNavigationView.CustomFilter = CreateNewPersonFilter();
}
private void FunctionComboBox_EditValueChanged(object sender, EditValueChangedEventArgs e)
{
UpdateCustomFilter();
}
private PersonNavigationFilter CreateNewPersonFilter()
private void UpdateCustomFilter()
{
mainNavigationView.CustomFilters = new List<CustomFilter> { CreateNewPersonFilter(), CreateNewFunctionFilter() };
}
private CustomFilter CreateNewFunctionFilter()
{
if (functionFilterComboBox.SelectedItems == null)
return null;
var list = new List<ValueListEntryDC>();
foreach (var item in functionFilterComboBox.SelectedItems)
{
list.Add(item as ValueListEntryDC);
}
var filter = new ValueListFilter { SelectedValueListEntries = list, ValueListProperty = "Function" };
return filter;
}
private PersonNavigationFilter CreateNewPersonFilter()
{
var filter = new PersonNavigationFilter { PersonFilter = ((PersonFilterItem)filterComboBox.SelectedItem)?.Filter ?? PersonFilterEnum.ContactPersons };

View File

@@ -283,9 +283,8 @@ namespace BeWo.View.Navigation
private void UpdateCustomFilter()
{
this.mainNavigationView.CustomFilter = this.CreateNewCustomFilter();
mainNavigationView.CustomFilters = new List<CustomFilter> { CreateNewCustomFilter() };
}
private bool mainNavigationView_ArchiveObject(IFilterableDC obj)
{

View File

@@ -23,9 +23,6 @@
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
@@ -46,20 +43,34 @@
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Label Content="Jahr:" HorizontalAlignment="Left" Grid.Column="0" Grid.Row="0" VerticalAlignment="Center" />
<ComboBox Grid.Column="1" Grid.Row="0" Margin="3" Height="23" Name="combobox_year" />
<!--<Label Content="Jahr:" HorizontalAlignment="Left" Grid.Column="0" Grid.Row="0" VerticalAlignment="Center" Visibility="Collapsed"/>
<ComboBox Grid.Column="1" Grid.Row="0" Margin="3" Height="23" Name="combobox_year" Visibility="Collapsed"/>-->
<Label x:Name="lblCostcenter" Content="{markup:Translate Kostenträger:}" HorizontalAlignment="Left" Grid.Column="0" Grid.Row="1" VerticalAlignment="Center" />
<uc:PopUpEdit Grid.Column="1" Grid.ColumnSpan="1" Grid.Row="1"
IsReadOnly="True" x:Name="popupedit_costcenter" DeleteButtonVisibility="Visible" DeleteClick="popupedit_organisation_DeleteClick" PopUpClick="popupedit_costcenter_PopUpClick" HorizontalAlignment="Left" Width="200" HorizontalContentAlignment="Left" Height="24" Margin="3" />
IsReadOnly="True" x:Name="popupedit_costcenter" DeleteButtonVisibility="Visible" DeleteClick="popupedit_organisation_DeleteClick" PopUpClick="popupedit_costcenter_PopUpClick" HorizontalAlignment="Left" Width="230" HorizontalContentAlignment="Left" Height="24" Margin="3" />
<Label Content="Team:" HorizontalAlignment="Left" Grid.Column="0" Grid.Row="2" VerticalAlignment="Center" />
<uc:PopUpEdit Grid.Column="1" Grid.ColumnSpan="1" Grid.Row="2" DeleteClick="popupedit_team_DeleteClick"
IsReadOnly="True" x:Name="popupedit_team" DeleteButtonVisibility="Visible" PopUpClick="popupedit_team_PopUpClick"
HorizontalAlignment="Left" Width="200" HorizontalContentAlignment="Left" Height="24" Margin="3" />
HorizontalAlignment="Left" Width="230" HorizontalContentAlignment="Left" Height="24" Margin="3" />
<Label Content="Betreuungsart:" HorizontalAlignment="Left" Grid.Column="0" Grid.Row="3" VerticalAlignment="Center" />
<uc:NullItemComboBox Grid.Column="1" Grid.Row="3" Margin="3" Height="23" Name="combobox_customercaretype" />
<uc:NullItemComboBox Grid.Column="1" Grid.Row="3" Margin="3" Height="23" Name="combobox_customercaretype" />
<CheckBox Grid.Column="2" Grid.Row="0" Margin="10,3,3,3" x:Name="CheckBoxStichtag" IsChecked="True" VerticalAlignment="Center" VerticalContentAlignment="Center" Content="{markup:Translate Stichtagsbezogen auswerten}" Visibility="Visible" ToolTip="{markup:Translate Bei stichtagsbezogenen Auswertungen werden nur Klienten gezählt\, die genau an dem Stichtag z.B. 31.12. des ausgewerteten Jahres einen laufenden Hilfeplan hatten.}" />
<CheckBox Grid.Column="2" Grid.Row="1" Margin="10,3,3,3" x:Name="CheckBoxNurBewilligt" IsChecked="True" VerticalAlignment="Center" VerticalContentAlignment="Center" Content="{markup:Translate Nur bewilligte Hilfepläne berücksichtigen}" Visibility="Visible" />
<Label Content="Zeitraum von" Grid.Column="0" Grid.Row="0" VerticalAlignment="Center" />
<StackPanel Orientation="Horizontal" Grid.Column="1">
<dxe:DateEdit MaskType="DateTimeAdvancingCaret" Grid.Column="1" Grid.Row="2" x:Name="datePickerStartDate" Width="100" HorizontalAlignment="Left" Margin="3,0,0,0" />
<Label Content="bis" Grid.Column="2" Grid.Row="2" VerticalAlignment="Center" />
<dxe:DateEdit MaskType="DateTimeAdvancingCaret" Grid.Column="3" Grid.Row="2" x:Name="datePickerEndDate" HorizontalAlignment="Left" Width="100" Margin="3,0,0,0" />
</StackPanel>
<Button x:Name="button_generate" Grid.Column="1" Grid.Row="4" Content="Aktualisieren" Click="button_generate_Click" Height="24" HorizontalAlignment="Right" Width="90" Margin="3" />

View File

@@ -28,7 +28,10 @@ namespace BeWo.View.Report.AnnualReport
{
this.InitializeComponent();
InitDateCombos();
//InitDateCombos();
datePickerStartDate.DateTime = new DateTime(DateTime.Now.Year - 1, 1, 1);
datePickerEndDate.DateTime = new DateTime(DateTime.Now.Year - 1, 12, 31);
InitCustomerCareTypeCombo();
//linkPdfExport.NavigateUri = new Uri("http://www.bewoplaner.de");
@@ -51,18 +54,18 @@ namespace BeWo.View.Report.AnnualReport
}
private void InitDateCombos()
{
var years = new List<int>();
for (int i = 0; i <= 10; i++)
{
years.Add(DateTime.Now.Year - i);
}
//private void InitDateCombos()
//{
// var years = new List<int>();
// for (int i = 0; i <= 10; i++)
// {
// years.Add(DateTime.Now.Year - i);
// }
this.combobox_year.ItemsSource = years;
this.combobox_year.SelectedItem = DateTime.Now.Year - 1;
// this.combobox_year.ItemsSource = years;
// this.combobox_year.SelectedItem = DateTime.Now.Year - 1;
}
//}
private void CreateReportView(List<AnnualReportDC> reportList )
{
@@ -120,53 +123,61 @@ namespace BeWo.View.Report.AnnualReport
private void button_generate_Click(object sender, RoutedEventArgs e)
{
//int year = DateTime.Now.Year - 1;
int year = DateTime.Now.Year - 1;
//if (combobox_year.SelectedItem != null)
//{
// year = (int)combobox_year.SelectedItem;
if (combobox_year.SelectedItem != null)
{
//}
year = (int)combobox_year.SelectedItem;
DateTime startDate = datePickerStartDate.DateTime;
DateTime endDate = datePickerEndDate.DateTime;
}
long? costbearerOid = null;
long? teamOid = null;
long? customerCareTypeOid = null;
DateTime startDate = new DateTime(year, 1, 1);
if (_SelectedOrganisation != null)
costbearerOid = _SelectedOrganisation.CostBearerOid;
long? costbearerOid = null;
long? teamOid = null;
long? customerCareTypeOid = null;
if (_SelectedTeam != null)
teamOid = _SelectedTeam.TeamOid;
if (_SelectedOrganisation != null)
costbearerOid = _SelectedOrganisation.CostBearerOid;
ValueListEntryDC en = combobox_customercaretype.SelectedItem as ValueListEntryDC;
if (_SelectedTeam != null)
teamOid = _SelectedTeam.TeamOid;
if (combobox_customercaretype.SelectedItem == null || en.TypeDescription.Equals("")) { }
else
if (combobox_customercaretype.SelectedItem != null)
{
ValueListEntryDC entry = combobox_customercaretype.SelectedItem as ValueListEntryDC;
if (entry != null)
customerCareTypeOid = entry.ValueListEntryOid;
ValueListEntryDC en = combobox_customercaretype.SelectedItem as ValueListEntryDC;
}
var config = new AnnualReportConfigDC
{
CostbearerOid = costbearerOid,
TeamOid = teamOid,
CustomerCareTypeValueListEntryOid = customerCareTypeOid,
StartDate = startDate,
EndDate = endDate,
ShowOnlyApprovedSupportConcepts = CheckBoxNurBewilligt.IsChecked ?? true,
StichtagsbezogenAuswerten = CheckBoxStichtag.IsChecked ?? true
if (combobox_customercaretype.SelectedItem == null || en.TypeDescription.Equals("") ) { }
else
if (combobox_customercaretype.SelectedItem != null)
{
ValueListEntryDC entry = combobox_customercaretype.SelectedItem as ValueListEntryDC;
if (entry != null)
customerCareTypeOid = entry.ValueListEntryOid;
};
}
ServiceFacade.DoAnalysisServiceAsync(s => s.CreateAnnualReport2(config), r => { this.Dispatch(delegate { this.CreateReportView(r); }); });
this.UpdatePDFExportUri(string.Empty);
ServiceFacade.DoAnalysisServiceAsync(s => s.CreateAnnualReport(costbearerOid, teamOid, customerCareTypeOid, startDate, startDate.AddYears(1)), r => { this.Dispatch(delegate { this.CreateReportView(r); }); });
this.UpdatePDFExportUri(string.Empty);
}
private void linkPdfExport_RequestNavigate(object sender, RequestNavigateEventArgs e)
{
string url = String.Format("{0}/ReportView.aspx?y={1}", BeWoApp.SiteOfOrigin, combobox_year.Text);
string url = String.Format("{0}/ReportView.aspx?start={1:dd.MM.yyyy}&end={2:dd.MM.yyyy}", BeWoApp.SiteOfOrigin, datePickerStartDate.DateTime, datePickerEndDate.DateTime);
if (_SelectedOrganisation != null)
@@ -178,7 +189,8 @@ namespace BeWo.View.Report.AnnualReport
{
url += "&t=" + _SelectedTeam.TeamOid;
}
url += String.Format("&appr={0}", CheckBoxNurBewilligt.IsChecked == true ? "1" : "0");
url += String.Format("&stichtag={0}", CheckBoxStichtag.IsChecked == true ? "1" : "0");
ValueListEntryDC en = combobox_customercaretype.SelectedItem as ValueListEntryDC;

View File

@@ -580,7 +580,7 @@ namespace BeWo.View.Report.FLSReport
}
else
{
date += String.Format(" {0:0} min.", record.Start, record.End, record.RoundedDuration);
date += String.Format(" {0:0} min.", record.RoundedDuration);
}
String group = "";

View File

@@ -30,6 +30,7 @@ namespace BeWo.ViewModel
private string _ShortcutKey;
private string _Sign;
private string _Tooltip;
public AssessmentSheetValueVM(AssessmentSheetValueDC pDC) : base(pDC, pDC.AssessmentSheetValueOid == null)
{
@@ -112,6 +113,13 @@ namespace BeWo.ViewModel
}
}
public string Tooltip
{
get { return this._Tooltip; }
set { this._Tooltip = value; }
}
public static int Compare(AssessmentSheetValueVM x, AssessmentSheetValueVM y)
{
if (x.Position.Equals(y.Position) && x.Description != null)

View File

@@ -14,6 +14,7 @@ namespace BeWo.ViewModel
private long? _DocTreeItemOid;
private long? _ParentOid;
private string _Name;
private string _SortName;
private string _Tooltip;
public DocumentTreeItemVM(DocumentTreeItemDC dc) : base(dc, dc.DocTreeItemOid == null)
@@ -54,6 +55,12 @@ namespace BeWo.ViewModel
}
}
public string SortName
{
get { return _SortName ?? _Name; }
set { _SortName = value; }
}
public string Description
{
get

View File

@@ -1,5 +1,7 @@
using BeWo.Data.Access;
using Antlr.Runtime.Tree;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.AI;
using BeWo.Service.DCEntityMapper;
using BeWo.Service.Plugins;
using BeWo.View.Navigation.Filter;
@@ -32,7 +34,6 @@ using FormCollection = System.Web.Mvc.FormCollection;
using GoalRating = BeWoPlanerMobil.Util.GoalRating;
using Image = System.Drawing.Image;
using ServiceRecordDC = BS.Shared.DataContracts.ServiceRecordDC;
using BeWo.Service.AI;
/*
* ToDo: Bug, wenn man auf "bearbeiten" bei einem Eintrag klickt, wird die Leistung nicht geladen
@@ -3666,8 +3667,11 @@ namespace BeWoPlanerMobil.Controllers
avd = ts.GetTranskription(avd);
statusMessage = avd.StatusMessage;
if (!String.IsNullOrEmpty(statusMessage) && statusMessage.Contains("klicken Sie auf den Link"))
{
statusMessage = "Sollte die Aufnahme nicht starten, prüfen Sie bitte, ob ownChat korrekt installiert ist.";
}
if (!String.IsNullOrEmpty(avd.TranskriptionText))
{
statusMessage = "Transkription erfolgreich durchgeführt";

View File

@@ -190,8 +190,11 @@
$('#external-call-status-text').text('Um die Aufnahme zu starten, klicken Sie auf den Link, den wir an Ihren ownChat Account gesendet haben.');
document.getElementById('external-call-overlay').style.display = 'flex';
// Externe URL in neuem Tab/Fenster öffnen
window.open(result.url, '_blank');
// Custom URL Scheme (ownchat://) per temporärem Anchor-Element öffnen
// zuverlässiger als window.open() für alle Browser inkl. Safari
var $a = $('<a>').attr('href', result.url).css('display', 'none').appendTo('body');
$a[0].click();
$a.remove();
// Polling starten - prüft regelmäßig ob der Callback aufgerufen wurde
_externalCallPollingTimer = setInterval(function() {

View File

@@ -195,10 +195,11 @@ namespace Dakota.Logic
info.Name1 = infoParameter.AddressInformation.OrganisationName;
info.Name2 = infoParameter.AddressInformation.Phone;
info.Name3 = infoParameter.AddressInformation.Mail;
info.Name4 = "Entwicklung dakota.exchange@ownsoft.de";
info.Name3 = string.Empty;
info.Name4 = infoParameter.AddressInformation.Mail;
//"Entwicklung dakota.exchange@ownsoft.de";
return info;
return info;
}
private InfoNachrichtSLLA CreateDakotaInfoNachrichtSLLA(InfoParameterInvoiceItem infoParameter)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -24,6 +24,7 @@ using BeWo.Service.DCEntityMapper;
using BS.Shared.ReportRequests;
using SecurityUtils = BeWo.Service.Security.SecurityUtils;
using DevExpress.DataProcessing;
namespace Host
{
@@ -784,8 +785,33 @@ namespace Host
private XtraReport CreateJahresbericht()
{
int year = int.Parse(Request.Params["y"]);
long? cbOid = null;
int year = DateTime.Now.Year - 1;
if (Request.Params["y"] != null)
{
year = int.Parse(Request.Params["y"]);
}
DateTime start = new DateTime(year, 1, 1);
DateTime end = new DateTime(year, 12, 31);
bool showOnlyApprovedSupportConcepts = true;
bool stichtagsbezogen = true;
if (Request.Params["start"] != null)
{
start = DateTime.Parse(Request.Params["start"]);
}
if (Request.Params["end"] != null)
{
end = DateTime.Parse(Request.Params["end"]);
}
if (Request.Params["appr"] != null)
{
showOnlyApprovedSupportConcepts = "0".Equals(Request.Params["appr"]) ? false : true;
}
if (Request.Params["stichtag"] != null)
{
stichtagsbezogen = "0".Equals(Request.Params["stichtag"]) ? false : true;
}
long? cbOid = null;
if (Request.Params["cb"] != null)
cbOid = long.Parse(Request.Params["cb"]);
@@ -797,7 +823,19 @@ namespace Host
if (Request.Params["art"] != null)
artOid = long.Parse(Request.Params["art"]);
return reportCreator.CreateJahresberichtReport(year, cbOid, teamOid, artOid);
var config = new AnnualReportConfigDC
{
CostbearerOid = cbOid,
TeamOid = teamOid,
CustomerCareTypeValueListEntryOid = artOid,
StartDate = start,
EndDate = end,
ShowOnlyApprovedSupportConcepts = showOnlyApprovedSupportConcepts,
StichtagsbezogenAuswerten = stichtagsbezogen
};
return reportCreator.CreateJahresberichtReport(config);
}
private XtraReport CreateEmployeeDataReport()

View File

@@ -73,7 +73,7 @@ namespace BeWo.Report
public abstract XtraReport CreateFinanceReport(DateTime? start, DateTime? end, bool splitByServiceCategory, bool onlyNotApproved);
public abstract XtraReport CreateJahresberichtReport(int year, long? cbOid, long? teamOid, long? betreuungsartOid);
public abstract XtraReport CreateJahresberichtReport(AnnualReportConfigDC config);
public abstract XtraReport CreateKassenbelegReport(BargeldtransaktionDC transaktion, long objectOid, TableID objectTid);

View File

@@ -1156,11 +1156,11 @@ namespace BeWo.Report
return report as XtraReport;
}
public override XtraReport CreateJahresberichtReport(int year, long? cbOid, long? teamOid, long? betreuungsartOid)
public override XtraReport CreateJahresberichtReport(AnnualReportConfigDC config)
{
var report = FindReportImp<JahresReportRO>();
report.SetReportDataSource(JahresReportRO.Create(year, cbOid, teamOid, betreuungsartOid));
report.SetReportDataSource(JahresReportRO.Create(config));
return report as XtraReport;
}

File diff suppressed because it is too large Load Diff

View File

@@ -117,7 +117,4 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="bindingSource1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

View File

@@ -63,6 +63,7 @@ namespace BeWo.Report.DefaultReports
this.xrTableCell14 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell15 = new DevExpress.XtraReports.UI.XRTableCell();
this.GroupHeader1 = new DevExpress.XtraReports.UI.GroupHeaderBand();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
this.ReportHeader = new DevExpress.XtraReports.UI.ReportHeaderBand();
this.xrLabel5 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel4 = new DevExpress.XtraReports.UI.XRLabel();
@@ -83,7 +84,6 @@ namespace BeWo.Report.DefaultReports
this.fieldDifferenzWoche2 = new DevExpress.XtraReports.UI.CalculatedField();
this.fieldDifferenzWoche3 = new DevExpress.XtraReports.UI.CalculatedField();
this.fieldDifferenzWoche4 = new DevExpress.XtraReports.UI.CalculatedField();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
((System.ComponentModel.ISupportInitialize)(this.xrTable1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTableData)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTableHeader)).BeginInit();
@@ -452,6 +452,10 @@ namespace BeWo.Report.DefaultReports
this.GroupHeader1.Level = 1;
this.GroupHeader1.Name = "GroupHeader1";
//
// bindingSource1
//
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.FLSSollIstReportRO);
//
// ReportHeader
//
this.ReportHeader.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
@@ -520,7 +524,7 @@ namespace BeWo.Report.DefaultReports
this.xrLabel1.SizeF = new System.Drawing.SizeF(560F, 25F);
this.xrLabel1.StyleName = "Title";
this.xrLabel1.StylePriority.UseFont = false;
this.xrLabel1.Text = "Auswertung über geleistete Fachleistungsstunden";
this.xrLabel1.Text = "Auswertung über geleistete Stunden";
//
// pageFooterBand1
//
@@ -633,10 +637,6 @@ namespace BeWo.Report.DefaultReports
this.fieldDifferenzWoche4.FieldType = DevExpress.XtraReports.UI.FieldType.Decimal;
this.fieldDifferenzWoche4.Name = "fieldDifferenzWoche4";
//
// bindingSource1
//
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.FLSSollIstReportRO);
//
// FLSSollIstWeeklyReport
//
this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {

View File

@@ -57,7 +57,7 @@ namespace BeWo.Report.DefaultReports
private String GetWochenKey(FLSSollIstReportRO.FLSSollIstWochenSummen woche)
{
return String.Format("KW {0}, {1:dd.MM.yy} - {2:dd.MM.yy}", woche.KalenderWoche, woche.WocheStart, woche.WocheEnde);
return String.Format("{3}: KW {0}, {1:dd.MM.yy} - {2:dd.MM.yy}", woche.KalenderWoche, woche.WocheStart, woche.WocheEnde, woche.ObjectOid);
}
private void CreateTableCells(List<FLSSollIstReportRO.FLSSollIstWochenSummen> wochen)
{

View File

@@ -13,7 +13,7 @@ namespace BeWo.Report.ReportObjects
public class FLSSollIstReportRO
{
public DateTime? ReportEndDate { get; set; }
public FLSAnalysisConfigDC ReportConfig { get; set; }
public DateTime? ReportStartDate { get; set; }
public List<FLSSollIstRootRO> RootObjectList { get; set; } = new List<FLSSollIstRootRO>();
@@ -75,6 +75,7 @@ namespace BeWo.Report.ReportObjects
public class FLSSollIstWochenSummen
{
public long ObjectOid { get; set; } // Entweder Employee oder CustomerOid, je nachdem wer ausgewertet wird
public decimal? SollStunden { get; set; }
public decimal? IstStunden { get; set; }
@@ -118,7 +119,7 @@ namespace BeWo.Report.ReportObjects
public static FLSSollIstReportRO Create(List<FLSAnalysisRootDC> dcList, FLSAnalysisConfigDC config)
{
var ro = new FLSSollIstReportRO();
ro.ReportConfig = config;
ro.ReportStartDate = config.StartDate;
ro.ReportEndDate = config.EndDate;
@@ -141,7 +142,6 @@ namespace BeWo.Report.ReportObjects
{
var grpRo = new FLSSollIstReportGroupRO();
grpRo.Name = item.DisplayName;
grpRo.WochenSummen = ErstelleWochensummen(config.StartDate, config.EndDate, null);
if (item.Employee != null)
{
grpRo.ObjectOid = item.Employee.EmployeeOid;
@@ -152,6 +152,17 @@ namespace BeWo.Report.ReportObjects
grpRo.ObjectOid = item.Customer.CustomerOid;
grpRo.ObjectTid = TableID.Customer;
}
long wochenObjectOid = 0;
if (root.Employee != null)
{
wochenObjectOid = root.Employee.EmployeeOid;
}
else if (root.Customer != null)
{
wochenObjectOid = root.Customer.CustomerOid;
}
grpRo.WochenSummen = ErstelleWochensummen(config.StartDate, config.EndDate, null, wochenObjectOid);
foreach (var sc in item.SupportConcepts)
{
grpRo.CostBearer2SupportConceptList.Add(sc.SupportConcept2CostBearer);
@@ -206,7 +217,7 @@ namespace BeWo.Report.ReportObjects
return ro;
}
private static List<FLSSollIstWochenSummen> ErstelleWochensummen(DateTime? startDate, DateTime? endDate, decimal? defaultSoll)
private static List<FLSSollIstWochenSummen> ErstelleWochensummen(DateTime? startDate, DateTime? endDate, decimal? defaultSoll, long objectOid)
{
var liste = new List<FLSSollIstWochenSummen>();
if (startDate.HasValue && endDate.HasValue)
@@ -219,6 +230,7 @@ namespace BeWo.Report.ReportObjects
var sonntag = dt.AddDays(days);
var ws = new FLSSollIstWochenSummen();
ws.ObjectOid = objectOid;
ws.WocheStart = dt;
//Ermittele den nächsten Sonntag

View File

@@ -64,23 +64,15 @@ namespace BeWo.Report.ReportObjects
}
public static JahresReportRO Create(int year, long? orgOid, long? teamOid, long? betreuungsartOid)
{
DateTime startDate = new DateTime(year, 1, 1);
return Create(startDate, startDate.AddYears(1), orgOid, teamOid, betreuungsartOid);
}
public static JahresReportRO Create(DateTime start, DateTime end, long? orgOid, long? teamOid, long? betreuungsartOid)
public static JahresReportRO Create(AnnualReportConfigDC config)
{
AnalysisServiceImp service = new AnalysisServiceImp();
var list = service.CreateAnnualReport(orgOid, teamOid, betreuungsartOid, start, end);
var list = service.CreateAnnualReport2(config);
var ro = Create(list);
ro.ReportStartDate = start;
ro.ReportEndDate = end;
ro.ReportStartDate = config.StartDate;
ro.ReportEndDate = config.EndDate;
return ro;
}

View File

@@ -45,6 +45,9 @@ namespace LebenshilfeBadKreuznach
this.xrTableCell9 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell13 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell4 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell17 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell18 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell19 = new DevExpress.XtraReports.UI.XRTableCell();
this.GroupHeader2 = new DevExpress.XtraReports.UI.GroupHeaderBand();
this.xrTable2 = new DevExpress.XtraReports.UI.XRTable();
this.xrTableRow2 = new DevExpress.XtraReports.UI.XRTableRow();
@@ -52,6 +55,9 @@ namespace LebenshilfeBadKreuznach
this.xrTableCell7 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell12 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell2 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell14 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell15 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell16 = new DevExpress.XtraReports.UI.XRTableCell();
this.GroupFooter3 = new DevExpress.XtraReports.UI.GroupFooterBand();
this.xrTable3 = new DevExpress.XtraReports.UI.XRTable();
this.xrTableRow3 = new DevExpress.XtraReports.UI.XRTableRow();
@@ -60,7 +66,9 @@ namespace LebenshilfeBadKreuznach
this.xrTableCell10 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell11 = new DevExpress.XtraReports.UI.XRTableCell();
this.formattingRuleDiffNegativ = new DevExpress.XtraReports.UI.FormattingRule();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
this.xrTableCell20 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell21 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell22 = new DevExpress.XtraReports.UI.XRTableCell();
this.ReportHeader = new DevExpress.XtraReports.UI.ReportHeaderBand();
this.xrLabel5 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel4 = new DevExpress.XtraReports.UI.XRLabel();
@@ -82,15 +90,8 @@ namespace LebenshilfeBadKreuznach
this.fieldDifferenzWoche3 = new DevExpress.XtraReports.UI.CalculatedField();
this.fieldDifferenzWoche4 = new DevExpress.XtraReports.UI.CalculatedField();
this.fieldDifferenzGesamt = new DevExpress.XtraReports.UI.CalculatedField();
this.xrTableCell14 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell15 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell16 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell17 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell18 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell19 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell20 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell21 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell22 = new DevExpress.XtraReports.UI.XRTableCell();
this.formattingRuleBetragNegativ = new DevExpress.XtraReports.UI.FormattingRule();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
((System.ComponentModel.ISupportInitialize)(this.xrTable1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable4)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable2)).BeginInit();
@@ -197,8 +198,8 @@ namespace LebenshilfeBadKreuznach
this.xrTableCell9,
this.xrTableCell13,
this.xrTableCell4,
this.xrTableCell17,
this.xrTableCell18,
this.xrTableCell17,
this.xrTableCell19});
this.xrTableRow4.Name = "xrTableRow4";
this.xrTableRow4.Weight = 1D;
@@ -252,6 +253,48 @@ namespace LebenshilfeBadKreuznach
this.xrTableCell4.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
this.xrTableCell4.Weight = 0.6802721088435375D;
//
// xrTableCell17
//
this.xrTableCell17.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "RootObjectList.Groups.CustomValue1")});
this.xrTableCell17.Font = new DevExpress.Drawing.DXFont("Arial", 9.75F);
this.xrTableCell17.Multiline = true;
this.xrTableCell17.Name = "xrTableCell17";
this.xrTableCell17.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 0, 0, 100F);
this.xrTableCell17.StylePriority.UseFont = false;
this.xrTableCell17.StylePriority.UsePadding = false;
this.xrTableCell17.StylePriority.UseTextAlignment = false;
this.xrTableCell17.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
this.xrTableCell17.Weight = 0.88435374149659873D;
//
// xrTableCell18
//
this.xrTableCell18.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "RootObjectList.Groups.CustomValue2")});
this.xrTableCell18.Font = new DevExpress.Drawing.DXFont("Arial", 9.75F);
this.xrTableCell18.Multiline = true;
this.xrTableCell18.Name = "xrTableCell18";
this.xrTableCell18.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 0, 0, 100F);
this.xrTableCell18.StylePriority.UseFont = false;
this.xrTableCell18.StylePriority.UsePadding = false;
this.xrTableCell18.StylePriority.UseTextAlignment = false;
this.xrTableCell18.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
this.xrTableCell18.Weight = 0.88435374149659873D;
//
// xrTableCell19
//
this.xrTableCell19.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "RootObjectList.Groups.CustomValue3")});
this.xrTableCell19.Font = new DevExpress.Drawing.DXFont("Arial", 9.75F);
this.xrTableCell19.Multiline = true;
this.xrTableCell19.Name = "xrTableCell19";
this.xrTableCell19.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 0, 0, 100F);
this.xrTableCell19.StylePriority.UseFont = false;
this.xrTableCell19.StylePriority.UsePadding = false;
this.xrTableCell19.StylePriority.UseTextAlignment = false;
this.xrTableCell19.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
this.xrTableCell19.Weight = 0.88435374149659873D;
//
// GroupHeader2
//
this.GroupHeader2.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
@@ -283,8 +326,8 @@ namespace LebenshilfeBadKreuznach
this.xrTableCell7,
this.xrTableCell12,
this.xrTableCell2,
this.xrTableCell14,
this.xrTableCell15,
this.xrTableCell14,
this.xrTableCell16});
this.xrTableRow2.Name = "xrTableRow2";
this.xrTableRow2.Weight = 1.6D;
@@ -327,6 +370,39 @@ namespace LebenshilfeBadKreuznach
this.xrTableCell2.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
this.xrTableCell2.Weight = 0.6802721088435375D;
//
// xrTableCell14
//
this.xrTableCell14.Multiline = true;
this.xrTableCell14.Name = "xrTableCell14";
this.xrTableCell14.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 0, 0, 100F);
this.xrTableCell14.StylePriority.UsePadding = false;
this.xrTableCell14.StylePriority.UseTextAlignment = false;
this.xrTableCell14.Text = "erwirtschafteter\r\nBetrag";
this.xrTableCell14.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
this.xrTableCell14.Weight = 0.88435374149659862D;
//
// xrTableCell15
//
this.xrTableCell15.Multiline = true;
this.xrTableCell15.Name = "xrTableCell15";
this.xrTableCell15.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 0, 0, 100F);
this.xrTableCell15.StylePriority.UsePadding = false;
this.xrTableCell15.StylePriority.UseTextAlignment = false;
this.xrTableCell15.Text = "Möglicher Betrag";
this.xrTableCell15.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
this.xrTableCell15.Weight = 0.88435374149659862D;
//
// xrTableCell16
//
this.xrTableCell16.Multiline = true;
this.xrTableCell16.Name = "xrTableCell16";
this.xrTableCell16.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 0, 0, 100F);
this.xrTableCell16.StylePriority.UsePadding = false;
this.xrTableCell16.StylePriority.UseTextAlignment = false;
this.xrTableCell16.Text = "Differenz";
this.xrTableCell16.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
this.xrTableCell16.Weight = 0.88435374149659862D;
//
// GroupFooter3
//
this.GroupFooter3.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
@@ -356,8 +432,8 @@ namespace LebenshilfeBadKreuznach
this.xrTableCell8,
this.xrTableCell10,
this.xrTableCell11,
this.xrTableCell20,
this.xrTableCell21,
this.xrTableCell20,
this.xrTableCell22});
this.xrTableRow3.Name = "xrTableRow3";
this.xrTableRow3.Weight = 1D;
@@ -414,9 +490,42 @@ namespace LebenshilfeBadKreuznach
this.formattingRuleDiffNegativ.Formatting.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
this.formattingRuleDiffNegativ.Name = "formattingRuleDiffNegativ";
//
// bindingSource1
// xrTableCell20
//
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.FLSSollIstReportRO);
this.xrTableCell20.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "RootObjectList.CustomValue1")});
this.xrTableCell20.Multiline = true;
this.xrTableCell20.Name = "xrTableCell20";
this.xrTableCell20.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 0, 0, 100F);
this.xrTableCell20.StylePriority.UsePadding = false;
this.xrTableCell20.StylePriority.UseTextAlignment = false;
this.xrTableCell20.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
this.xrTableCell20.Weight = 0.88435374149659873D;
//
// xrTableCell21
//
this.xrTableCell21.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "RootObjectList.CustomValue2")});
this.xrTableCell21.Multiline = true;
this.xrTableCell21.Name = "xrTableCell21";
this.xrTableCell21.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 0, 0, 100F);
this.xrTableCell21.StylePriority.UsePadding = false;
this.xrTableCell21.StylePriority.UseTextAlignment = false;
this.xrTableCell21.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
this.xrTableCell21.Weight = 0.88435374149659873D;
//
// xrTableCell22
//
this.xrTableCell22.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "RootObjectList.CustomValue3")});
this.xrTableCell22.FormattingRules.Add(this.formattingRuleBetragNegativ);
this.xrTableCell22.Multiline = true;
this.xrTableCell22.Name = "xrTableCell22";
this.xrTableCell22.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 0, 0, 100F);
this.xrTableCell22.StylePriority.UsePadding = false;
this.xrTableCell22.StylePriority.UseTextAlignment = false;
this.xrTableCell22.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
this.xrTableCell22.Weight = 0.88435374149659873D;
//
// ReportHeader
//
@@ -486,7 +595,7 @@ namespace LebenshilfeBadKreuznach
this.xrLabel1.SizeF = new System.Drawing.SizeF(560F, 25F);
this.xrLabel1.StyleName = "Title";
this.xrLabel1.StylePriority.UseFont = false;
this.xrLabel1.Text = "Auswertung über geleistete Fachleistungsstunden";
this.xrLabel1.Text = "Auswertung über geleistete Stunden";
//
// pageFooterBand1
//
@@ -606,116 +715,16 @@ namespace LebenshilfeBadKreuznach
this.fieldDifferenzGesamt.FieldType = DevExpress.XtraReports.UI.FieldType.Decimal;
this.fieldDifferenzGesamt.Name = "fieldDifferenzGesamt";
//
// xrTableCell14
// formattingRuleBetragNegativ
//
this.xrTableCell14.Multiline = true;
this.xrTableCell14.Name = "xrTableCell14";
this.xrTableCell14.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 0, 0, 100F);
this.xrTableCell14.StylePriority.UsePadding = false;
this.xrTableCell14.StylePriority.UseTextAlignment = false;
this.xrTableCell14.Text = "erwirtschafteter\r\nBetrag";
this.xrTableCell14.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
this.xrTableCell14.Weight = 0.88435374149659862D;
this.formattingRuleBetragNegativ.Condition = "ToDecimal([CustomValue4]) < 0";
this.formattingRuleBetragNegativ.DataMember = "RootObjectList";
this.formattingRuleBetragNegativ.Formatting.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
this.formattingRuleBetragNegativ.Name = "formattingRuleBetragNegativ";
//
// xrTableCell15
// bindingSource1
//
this.xrTableCell15.Multiline = true;
this.xrTableCell15.Name = "xrTableCell15";
this.xrTableCell15.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 0, 0, 100F);
this.xrTableCell15.StylePriority.UsePadding = false;
this.xrTableCell15.StylePriority.UseTextAlignment = false;
this.xrTableCell15.Text = "Möglicher Betrag";
this.xrTableCell15.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
this.xrTableCell15.Weight = 0.88435374149659862D;
//
// xrTableCell16
//
this.xrTableCell16.Multiline = true;
this.xrTableCell16.Name = "xrTableCell16";
this.xrTableCell16.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 0, 0, 100F);
this.xrTableCell16.StylePriority.UsePadding = false;
this.xrTableCell16.StylePriority.UseTextAlignment = false;
this.xrTableCell16.Text = "Differenz";
this.xrTableCell16.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
this.xrTableCell16.Weight = 0.88435374149659862D;
//
// xrTableCell17
//
this.xrTableCell17.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "RootObjectList.Groups.CustomValue1")});
this.xrTableCell17.Font = new DevExpress.Drawing.DXFont("Arial", 9.75F);
this.xrTableCell17.Multiline = true;
this.xrTableCell17.Name = "xrTableCell17";
this.xrTableCell17.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 0, 0, 100F);
this.xrTableCell17.StylePriority.UseFont = false;
this.xrTableCell17.StylePriority.UsePadding = false;
this.xrTableCell17.StylePriority.UseTextAlignment = false;
this.xrTableCell17.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
this.xrTableCell17.Weight = 0.88435374149659873D;
//
// xrTableCell18
//
this.xrTableCell18.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "RootObjectList.Groups.CustomValue2")});
this.xrTableCell18.Font = new DevExpress.Drawing.DXFont("Arial", 9.75F);
this.xrTableCell18.Multiline = true;
this.xrTableCell18.Name = "xrTableCell18";
this.xrTableCell18.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 0, 0, 100F);
this.xrTableCell18.StylePriority.UseFont = false;
this.xrTableCell18.StylePriority.UsePadding = false;
this.xrTableCell18.StylePriority.UseTextAlignment = false;
this.xrTableCell18.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
this.xrTableCell18.Weight = 0.88435374149659873D;
//
// xrTableCell19
//
this.xrTableCell19.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "RootObjectList.Groups.CustomValue3")});
this.xrTableCell19.Font = new DevExpress.Drawing.DXFont("Arial", 9.75F);
this.xrTableCell19.Multiline = true;
this.xrTableCell19.Name = "xrTableCell19";
this.xrTableCell19.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 0, 0, 100F);
this.xrTableCell19.StylePriority.UseFont = false;
this.xrTableCell19.StylePriority.UsePadding = false;
this.xrTableCell19.StylePriority.UseTextAlignment = false;
this.xrTableCell19.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
this.xrTableCell19.Weight = 0.88435374149659873D;
//
// xrTableCell20
//
this.xrTableCell20.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "RootObjectList.Groups.CustomValue1")});
this.xrTableCell20.Multiline = true;
this.xrTableCell20.Name = "xrTableCell20";
this.xrTableCell20.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 0, 0, 100F);
this.xrTableCell20.StylePriority.UsePadding = false;
this.xrTableCell20.StylePriority.UseTextAlignment = false;
this.xrTableCell20.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
this.xrTableCell20.Weight = 0.88435374149659873D;
//
// xrTableCell21
//
this.xrTableCell21.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "RootObjectList.Groups.CustomValue2")});
this.xrTableCell21.Multiline = true;
this.xrTableCell21.Name = "xrTableCell21";
this.xrTableCell21.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 0, 0, 100F);
this.xrTableCell21.StylePriority.UsePadding = false;
this.xrTableCell21.StylePriority.UseTextAlignment = false;
this.xrTableCell21.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
this.xrTableCell21.Weight = 0.88435374149659873D;
//
// xrTableCell22
//
this.xrTableCell22.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "RootObjectList.Groups.CustomValue3")});
this.xrTableCell22.Multiline = true;
this.xrTableCell22.Name = "xrTableCell22";
this.xrTableCell22.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 0, 0, 100F);
this.xrTableCell22.StylePriority.UsePadding = false;
this.xrTableCell22.StylePriority.UseTextAlignment = false;
this.xrTableCell22.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
this.xrTableCell22.Weight = 0.88435374149659873D;
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.FLSSollIstReportRO);
//
// FLSSollIstReport
//
@@ -735,7 +744,8 @@ namespace LebenshilfeBadKreuznach
this.fieldDifferenzGesamt});
this.DataSource = this.bindingSource1;
this.FormattingRuleSheet.AddRange(new DevExpress.XtraReports.UI.FormattingRule[] {
this.formattingRuleDiffNegativ});
this.formattingRuleDiffNegativ,
this.formattingRuleBetragNegativ});
this.Landscape = true;
this.Margins = new DevExpress.Drawing.DXMargins(60F, 60F, 50F, 50F);
this.PageHeight = 827;
@@ -820,5 +830,6 @@ namespace LebenshilfeBadKreuznach
private DevExpress.XtraReports.UI.XRTableCell xrTableCell20;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell21;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell22;
private DevExpress.XtraReports.UI.FormattingRule formattingRuleBetragNegativ;
}
}

View File

@@ -1,8 +1,12 @@
using System;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Report.ReportObjects;
using BeWo.Report;
using BeWo.Report.ReportObjects;
using BeWo.Service.DCEntityMapper;
using BS.Shared;
using BS.Shared.Extensions;
using System;
using System.Security.Cryptography;
namespace LebenshilfeBadKreuznach
{
@@ -33,20 +37,52 @@ namespace LebenshilfeBadKreuznach
private void BerechneBetraege(FLSSollIstReportRO pRO)
{
decimal stundenSatz = BerechneStundensatz(pRO);
foreach (var item in pRO.RootObjectList)
{
foreach (var g in item.Groups)
{
if (g.CostBearer2SupportConceptList.Count > 0)
{
foreach (var scap in g.CostBearer2SupportConceptList[0].ApprovalPeriodList)
{
decimal istPreisGruppe = 0;
decimal sollPreisGruppe = 0;
}
foreach (var week in g.WochenSummen)
{
istPreisGruppe += (week.IstStunden ?? 0) * stundenSatz;
sollPreisGruppe += (week.SollStunden ?? 0) * stundenSatz;
}
g.CustomValue1 = String.Format("{0:c}", istPreisGruppe);
}
item.CustomValue1 = String.Format("{0:c}", item.IstGesamt * stundenSatz);
item.CustomValue2 = String.Format("{0:c}", item.SollGesamt * stundenSatz);
item.CustomValue3 = String.Format("{0:c}", (item.IstGesamt - item.SollGesamt) * stundenSatz);
item.CustomValue4 = String.Format("{0:0.00}", (item.IstGesamt - item.SollGesamt) * stundenSatz);
}
}
private decimal BerechneStundensatz(FLSSollIstReportRO pRO)
{
decimal stundenSatz = 0;
if (pRO.ReportConfig.ServiceDescriptionOids != null && pRO.ReportConfig.ServiceDescriptionOids.Count > 0)
{
var cat = DAOFactory.GenericDAO.LoadByID<ServiceDescription>(pRO.ReportConfig.ServiceDescriptionOids[0]).ServiceCategory;
var crps = MapperFactory.CostRatePeriodDC_CostRatePeriod.MapToNewDCs(cat.CostRatePeriods);
var cp = crps.GetCostRatePeriodForDate(CostRatePeriodType.AmountOfMoney, pRO.ReportStartDate.Value);
if (cp != null && cp.CostRateValue.HasValue)
{
return cp.CostRateValue.Value;
}
}
return stundenSatz;
}
}
}

View File

@@ -11,6 +11,8 @@ namespace BeWo.Service.DCEntityMapper
{
pDataContract.AssessmentSheetEntryOid = pEntity.Oid;
pDataContract.AssessmentSheetEntryVersion = pEntity.Version;
pDataContract.InsUser = pEntity.InsUser;
pDataContract.InsTs = pEntity.InsTs;
if (pEntity.Customer != null)
{

View File

@@ -1,11 +1,9 @@
using System.Collections.Generic;
using System.Linq;
using BeWo.Data.Access;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BS.Shared.DataContracts.Compact;
using BS.Shared.Extensions;
using System.Collections.Generic;
using System.Linq;
namespace BeWo.Service.DCEntityMapper
{
@@ -31,12 +29,13 @@ namespace BeWo.Service.DCEntityMapper
{
pDataContract.TerminationReason = pEntity.TerminationReason.Value;
}
//else if (pEntity.TerminationDate.HasValue)
//{
// pDataContract.TerminationReason = $"Betreuung vorzeitig beendet am {pEntity.TerminationDate:dd.MM.yyyy}";
//}
pDataContract.AssistanceBegin = pEntity.AssistanceBegin;
//else if (pEntity.TerminationDate.HasValue)
//{
// pDataContract.TerminationReason = $"Betreuung vorzeitig beendet am {pEntity.TerminationDate:dd.MM.yyyy}";
//}
pDataContract.AssistanceBegin = pEntity.AssistanceBegin;
pDataContract.EquityContribution = pEntity.EquityContribution;
pDataContract.CustomerAlias = pEntity.CustomerAlias;
pDataContract.DebitorNumber = pEntity.DebitorNumber;

View File

@@ -111,7 +111,11 @@ namespace BeWo.Service.Import.Perseh
}
if (result.Ziele.Count == 0) // Keine Ziele gefunden, versuche LWV Version
{
result.Ziele = ErstelleAlleZieleLWV(processor);
if (pdfText.Contains("Landeswohlfahrtsverband Hessen"))
{
result.Ziele = ErstelleAlleZieleLWV(processor);
}
}
}
}

View File

@@ -203,7 +203,9 @@ namespace BeWo.Service.Plugins
pEntity.Customer2CostBearerList.DoForEach(c2cb => dc.CostBearerReferenceNumbers[c2cb.CostBearer.Oid.Value] = c2cb.ReferenceNumber);
}
SetTeamAndEmployeeRelation(dc, currentEmployeeOid, pEntity, teamOids);
dc.CustomerCareTypes = string.Join("|", pEntity.ValueList.FindByType(ValueListEntryType.CustomerCareType).Select(e2o => e2o.Entry.Value));
SetTeamAndEmployeeRelation(dc, currentEmployeeOid, pEntity, teamOids);
if (fetchEmployees)
{
@@ -1409,8 +1411,17 @@ namespace BeWo.Service.Plugins
if (scdemo != null)
{
var scDCdemo = MapperFactory.SupportConceptDC_SupportConcept.MapToNewDC(scdemo);
MatchZiele(hidc, scDCdemo);
result.ImportedSupportConcept = scDCdemo;
var msg = MatchZiele(hidc, scDCdemo);
if (!String.IsNullOrEmpty(msg))
{
result.ImportMessage = msg;
}
else
{
result.ImportedSupportConcept = scDCdemo;
}
return result;
}

View File

@@ -70,7 +70,7 @@ namespace BeWo.Service.Plugins
//t = "5351926758"; // Viva a Vida
//t = "2215396183"; // Diakonie Remscheid Lennep
//t = "5157599087"; // SHG Schwerte
//t = "4526293996"; // Fortis
t = "4526293996"; // Fortis
//t = "3647969417"; // Caritas Bottrop
//t = "3057313346"; // SSB Mainz
//t = "6246287823"; // BeWo Alsdorf
@@ -432,6 +432,7 @@ namespace BeWo.Service.Plugins
//t = "5740586468"; // Ute Hengstermann - ABW Anker
//t = "9885937567"; // Antje Boland - BeWo Boland
//t = "3829321035"; // Diakoniewerk Essen
//t = "3583014513"; // Bezirksverein für soziale Rechtspflege Villingen-Schwenningen Körperschaft des öffentlichen Rechts Sebastian Kopp
return t;
#else

View File

@@ -1,28 +1,34 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.DCEntityMapper;
using BeWo.Service.Plugins;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.Services;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.DCEntityMapper;
using BeWo.Service.Plugins;
using Castle.Components.DictionaryAdapter;
using DevExpress.XtraRichEdit.Model;
using NHibernate.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices.ComTypes;
using System.Text;
namespace BeWo.Service.Reporting
{
public class AnnualReportFactory : AbstractIDSpecificDefaultClass<AnnualReportFactory>
{
protected DateTime ReportStartDate { get; set; }
private bool _StichtagsbezogenAuswerten = true;
private bool _ShowOnlyApprovedSupportConcepts = true;
protected DateTime ReportStartDate { get; set; }
protected DateTime ReportEndDate { get; set; }
protected CostBearer CostBearer { get; set; }
protected long? CostBearerOid { get; set; }
protected long? TeamOid { get; set; }
protected long? CustomerCareTypeValueListEntryOid { get; set; }
protected Dictionary<long, List<CostBearer2SupportConcept>> Cb2ScListPerCustomerOid { get; set; }
protected Dictionary<long, List<CostBearer2SupportConcept>> Cb2ScListPerCustomerOid { get; set; }
protected Dictionary<long, Customer> CustomerByOid { get; set; }
protected Dictionary<long, bool> LiegtImStichtagByCustomerOid { get; set; }
protected Dictionary<long, bool> LiegtImStichtagByC2SOid { get; set; }
@@ -38,18 +44,36 @@ namespace BeWo.Service.Reporting
protected virtual bool StichtagsbezogenAuswerten
{
get { return true; }
get { return _StichtagsbezogenAuswerten; }
}
//Bitte nur noch CreateAnnualReport2 überschreiben
public virtual List<AnnualReportDC> CreateAnnualReport(CostBearer cb, long? teamOid, long? customerCareTypeValueListEntryOid, DateTime reportStartDate,
DateTime reportEndDate)
{
ReportStartDate = reportStartDate;
ReportEndDate = reportEndDate;
CostBearer = cb;
TeamOid = teamOid;
CustomerCareTypeValueListEntryOid = customerCareTypeValueListEntryOid;
var config = new AnnualReportConfigDC
{
CostbearerOid = cb.Oid,
TeamOid = teamOid,
CustomerCareTypeValueListEntryOid = customerCareTypeValueListEntryOid,
StartDate = reportStartDate,
EndDate = reportEndDate,
ShowOnlyApprovedSupportConcepts = true,
StichtagsbezogenAuswerten = true
};
return CreateAnnualReport2(config);
}
public virtual List<AnnualReportDC> CreateAnnualReport2(AnnualReportConfigDC config)
{
ReportStartDate = config.StartDate;
ReportEndDate = config.EndDate;
CostBearerOid = config.CostbearerOid;
TeamOid = config.TeamOid;
_ShowOnlyApprovedSupportConcepts = config.ShowOnlyApprovedSupportConcepts;
_StichtagsbezogenAuswerten = config.StichtagsbezogenAuswerten;
CustomerCareTypeValueListEntryOid = config.CustomerCareTypeValueListEntryOid;
Cb2ScListPerCustomerOid = new Dictionary<long, List<CostBearer2SupportConcept>>();
CustomerByOid = new Dictionary<long, Customer>();
LiegtImStichtagByC2SOid = new Dictionary<long, bool>();
@@ -206,7 +230,7 @@ namespace BeWo.Service.Reporting
if (!StichtagsbezogenAuswerten)
{
if (relDC.EndDate.HasValue && relDC.EndDate < dt && relDC.EndDate >= reportStartDate)
if (relDC.EndDate.HasValue && relDC.EndDate < dt && relDC.EndDate >= ReportStartDate)
{
dt = relDC.EndDate.Value;
}
@@ -268,7 +292,7 @@ namespace BeWo.Service.Reporting
}
if (customer.TerminationDate.HasValue && customer.TerminationDate >= reportStartDate && customer.TerminationDate < reportEndDate)
if (customer.TerminationDate.HasValue && customer.TerminationDate >= ReportStartDate && customer.TerminationDate < ReportEndDate)
{
String grund = "Unbekannter Grund";
@@ -485,10 +509,10 @@ namespace BeWo.Service.Reporting
report.Name = "Anzahl der Zugänge";
reports.Add(report);
report.Data = new List<AnnualReportDataDC>();
var startYear = new DateTime(reportStartDate.Year - 5, 1, 1); //reportStartDate.AddYears(-1); //Vorjahr
var startYear = new DateTime(ReportStartDate.Year - 5, 1, 1); //reportStartDate.AddYears(-1); //Vorjahr
var index = 1;
while (startYear < reportEndDate)
while (startYear < ReportEndDate)
{
if (startYear.Year == 2023)
Console.WriteLine();
@@ -969,7 +993,7 @@ namespace BeWo.Service.Reporting
{
foreach (var iCb2Sc in DAOFactory.GenericDAO.GetAllActiveAndArchived<CostBearer2SupportConcept>())
{
if (CostBearer == null || iCb2Sc.CostBearer.Oid == CostBearer.Oid)
if (!CostBearerOid.HasValue || iCb2Sc.CostBearer.Oid == CostBearerOid)
{
var sc = iCb2Sc.SupportConcept;
var customer = sc.Customer;
@@ -1500,10 +1524,9 @@ namespace BeWo.Service.Reporting
public virtual bool ShouldProcessSupportConcept(CostBearer2SupportConcept iCb2Sc, SupportConcept sc, Customer customer)
{
if (sc.IsActive != ActivationTypeId.Deleted && customer.IsActive != ActivationTypeId.Deleted)
{
if (iCb2Sc.ApprovedStartDate.HasValue && iCb2Sc.ApprovedEndDate.HasValue)
if (!_ShowOnlyApprovedSupportConcepts || (iCb2Sc.ApprovedStartDate.HasValue && iCb2Sc.ApprovedEndDate.HasValue))
{
if (CustomerBelongsToTeam(customer, TeamOid) &&
IsCustomerOfCustomerCareType(customer, CustomerCareTypeValueListEntryOid))

View File

@@ -17,6 +17,11 @@ namespace BeWo.Service.Reporting.Straffaelligenhilfe
{
public class AsaStatistic : StatisticBase
{
public AsaStatistic() : base (VgaTypeEnum.Asa)
{
}
public int Anzahl01 { get; set; } // Anzahl der aus dem vorhergehenden Berichtszeitraum übernommenen offenen Aufträge
public int Anzahl02 { get; set; } // Anzahl der im aktuellen Berichtszeitraum erteilten Aufträge
public int Anzahl1 { get; set; } // Anzahl der insges. erteilten Aufträge (Summe Zeilen 0.1 + 0.2)
@@ -33,14 +38,6 @@ namespace BeWo.Service.Reporting.Straffaelligenhilfe
public int Anzahl3_2_2 { get; set; } // Übergang in Treuhänderische Geldverwaltung
public int Anzahl3_2_3 { get; set; } // Kein Interesse / Abbruch / Scheitern
public override void ProcessCustomer(Customer customer)
{
var asaList = GetVgaList(customer, VgaTypeEnum.Asa);
foreach (var item in asaList)
{
// Zählen
}
}
}
}

View File

@@ -17,27 +17,39 @@ namespace BeWo.Service.Reporting.Straffaelligenhilfe
{
public class StatisticBase
{
protected DateTime StartDate { get; set; }
public StatisticBase(VgaTypeEnum vgaType)
{
VgaType = vgaType;
}
protected DateTime StartDate { get; set; }
protected DateTime EndDate { get; set; }
protected Dictionary<long, Customer> CustomerByOid { get; set; }
protected Dictionary<long, CustomerVermittlungArbeit> VgaByOid { get; set; }
protected Dictionary<long, long> VgaOid2CustomerOid { get; set; }
public VgaTypeEnum VgaType { get; set; }
public int Anzahl01 { get; set; } // Anzahl der aus dem vorhergehenden Berichtszeitraum übernommenen offenen Aufträge
public int Anzahl02 { get; set; } // Anzahl der im aktuellen Berichtszeitraum erteilten Aufträge
public int Anzahl1 { get { return Anzahl01 + Anzahl02; } } // Anzahl der insges. erteilten Aufträge (Summe Zeilen 0.1+ 0.2)
public virtual List<AnnualReportDC> CreateStatistic(DateTime startDate, DateTime endDate)
{
StartDate = startDate;
EndDate = endDate;
CustomerByOid = new Dictionary<long, Customer>();
CustomerByOid = new Dictionary<long, Customer>();
VgaByOid = new Dictionary<long, CustomerVermittlungArbeit>();
VgaOid2CustomerOid = new Dictionary<long, long>();
var reports = new List<AnnualReportDC>();
LoadData();
Dictionary<long, int> customerOid2Days = new Dictionary<long, int>();
StringBuilder sb = new StringBuilder();
foreach (var customerOid in CustomerByOid.Keys)
foreach (var vgaOid in VgaByOid.Keys)
{
Customer customer = CustomerByOid[customerOid];
ProcessCustomer(customer);
CustomerVermittlungArbeit cva = VgaByOid[vgaOid];
ProcessCustomerVermittlungArbeit(cva.Customer, cva);
}
@@ -56,36 +68,51 @@ namespace BeWo.Service.Reporting.Straffaelligenhilfe
if (!CustomerByOid.ContainsKey(customer.Oid.Value))
{
CustomerByOid.Add(customer.Oid.Value, customer);
}
}
var vgaList = GetVgaList(customer);
foreach (var vga in vgaList)
{
if (!VgaOid2CustomerOid.ContainsKey(vga.Oid.Value))
{
VgaOid2CustomerOid.Add(vga.Oid.Value, customer.Oid.Value);
}
if (!VgaByOid.ContainsKey(vga.Oid.Value))
{
VgaByOid.Add(vga.Oid.Value, vga);
}
}
}
}
}
public virtual void ProcessCustomer(Customer customer)
public virtual void ProcessCustomerVermittlungArbeit(Customer customer, CustomerVermittlungArbeit cva)
{
}
public virtual IList<CustomerVermittlungArbeit> GetVgaList(Customer customer, VgaTypeEnum vgaType)
{
var list = customer.CustomerVermittlungArbeiten.Where(v => v.Auftragseingang.HasValue && v.Auftragseingang >= StartDate && v.Auftragseingang.Value.Date <= EndDate);
return list.Where(v => v.VgaType == vgaType).ToList();
//Anzahl der aus dem vorhergehenden Berichtszeitraum übernommenen offenen Aufträge
if (cva.Auftragseingang < StartDate && !cva.Auftragsruckgabe.HasValue)
{
Anzahl01++;
}
else if (cva.Auftragseingang >= StartDate && !cva.Auftragsruckgabe.HasValue)
{
Anzahl02++;
}
}
public virtual bool ShouldProcessCustomer(Customer customer)
{
if (customer .IsActive != ActivationTypeId.Deleted)
{
//if (CustomerBelongsToTeam(customer, TeamOid) &&
// IsCustomerOfCustomerCareType(customer, CustomerCareTypeValueListEntryOid))
//{
return true;
//}
}
return false;
}
public virtual bool ShouldProcessCustomer(Customer customer)
{
return true;
}
public virtual IList<CustomerVermittlungArbeit> GetVgaList(Customer customer)
{
//Alle Aufträge, die ein Startdatum kleiner als der Auswertezeitraum und entweder noch keine Rückgabe oder ein Rückgabe Datum im Auswertezeitraum haben
var list = customer.CustomerVermittlungArbeiten.Where(v => v.Auftragseingang.HasValue && v.Auftragseingang <= EndDate && (!v.Auftragsruckgabe.HasValue || v.Auftragsruckgabe.Value >= StartDate));
return list.Where(v => v.VgaType == VgaType).ToList();
}
public virtual bool IsCustomerOfCustomerCareType(Customer customer, long? customerCareTypeValueListEntryOid)
{

View File

@@ -17,9 +17,10 @@ namespace BeWo.Service.Reporting.Straffaelligenhilfe
{
public class TgvStatistic : StatisticBase
{
public int Anzahl01 { get; set; } // Anzahl der aus dem vorhergehenden Berichtszeitraum übernommenen offenen Aufträge
public int Anzahl02 { get; set; } // Anzahl der im aktuellen Berichtszeitraum erteilten Aufträge
public int Anzahl1 { get; set; } // Anzahl der insges. erteilten Aufträge (Summe Zeilen 0.1 + 0.2)
public TgvStatistic() : base(VgaTypeEnum.Tgv)
{
}
public decimal Betrag2 { get; set; } // Höhe der Geldstrafe in € (gem. Zeile 0.2)
public int Anzahl3 { get; set; } // Anzahl aller erledigten Aufträge
public int Anzahl3_1 { get; set; } // davon Anzahl der gescheiterten Fälle
@@ -29,14 +30,12 @@ namespace BeWo.Service.Reporting.Straffaelligenhilfe
public decimal Betrag5 { get; set; } // Anzahl der vermiedenen Hafttage (nur durch TGV)
public int Anzahl6 { get; set; } // Klient wurde durch BGBW aufgesucht (gem. Zeile 0.2)
public override void ProcessCustomer(Customer customer)
public override void ProcessCustomerVermittlungArbeit(Customer customer, CustomerVermittlungArbeit cva)
{
var tgvList = GetVgaList(customer, VgaTypeEnum.Tgv);
base.ProcessCustomerVermittlungArbeit(customer, cva);
foreach (var item in tgvList)
{
// Zählen
}
Betrag2 += cva.HoheDerGeldstrafe ?? 0;
}
}
}

View File

@@ -18,9 +18,12 @@ namespace BeWo.Service.Reporting.Straffaelligenhilfe
public class VgaStatistic : StatisticBase
{
public int Anzahl01 { get; set; } // Anzahl der aus dem vorhergehenden Berichtszeitraum übernommenen offenen Aufträge
public int Anzahl02 { get; set; } // Anzahl der im aktuellen Berichtszeitraum erteilten Aufträge
public int Anzahl1 { get; set; } // Anzahl der insges. erteilten Aufträge (Summe Zeilen 0.1+ 0.2)
public VgaStatistic() : base(VgaTypeEnum.Vga)
{
}
public int Anzahl1_1 { get; set; } // darunter mehrfach erteilte Aufträge zur selben Person und zum selben Aktenzeichen (Fallzahl v. Zeile 1)
public int Anzahl1_2 { get; set; } // darunter Amtshilfe für andere Bezirke in BW (Fallzahl v.Zeile 1)
public int Anzahl1_3 { get; set; } // darunter Amtshilfe für andere Bundesländer/ Ausland (Fallzahl v.Zeile 1)
@@ -76,16 +79,7 @@ namespace BeWo.Service.Reporting.Straffaelligenhilfe
public int Anzahl12 { get; set; } // Vermittlung aus Haft
public override void ProcessCustomer(Customer customer)
{
var vgaList = GetVgaList(customer, VgaTypeEnum.Vga);
foreach (var item in vgaList)
{
//Zählen
}
}
}

View File

@@ -92,6 +92,10 @@ namespace BeWo.Service.ServiceContracts
[OperationContract]
List<AnnualReportDC> CreateAnnualReport(long? costbearerOid, long? teamOid, long? customerCareTypeValueListEntryOid, DateTime startDate, DateTime endDate);
[FaultContract(typeof(BeWoFault))]
[OperationContract]
List<AnnualReportDC> CreateAnnualReport2(AnnualReportConfigDC config);
[FaultContract(typeof(BeWoFault))]
[OperationContract]
AccountingReportDC CreateAccountingReport(DateTime start, DateTime end);

View File

@@ -1,26 +1,27 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.ServiceModel;
using System.Threading;
using BeWo.Data.Access;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.Configuration;
using BeWo.Service.DCEntityMapper;
using BeWo.Service.Plugins;
using BeWo.Service.Reporting;
using BeWo.Service.ServiceContracts;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
using BS.Shared.DataContracts.Reports;
using BS.Shared.Extensions;
using BS.Shared.Services;
using DevExpress.XtraRichEdit.Model;
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.ComTypes;
using System.ServiceModel;
using System.Threading;
using Utils = BeWo.Service.Core.Utils;
using BS.Shared.DataContracts.Reports;
using BeWo.Service.Reporting;
namespace BeWo.Service.ServiceImplementations
{
@@ -982,23 +983,25 @@ namespace BeWo.Service.ServiceImplementations
return empDC;
}
public List<AnnualReportDC> CreateAnnualReport(long? costbearerOid, long? teamOid, long? customerCareTypeValueListEntryOid, DateTime startDate, DateTime endDate)
public List<AnnualReportDC> CreateAnnualReport2(AnnualReportConfigDC config)
{
try
{
AnnualReportFactory factory = null;
CostBearer cb = null;
if (costbearerOid.HasValue)
{
cb = DAOFactory.GenericDAO.LoadByID<CostBearer>(costbearerOid.Value);
//AnnualReportFactory factory = null;
//CostBearer cb = null;
factory = PluginLoader.FindClass<AnnualReportFactory>(cb.ID) ?? AnnualReportFactory.GetInstance(cb.ID);
}
if (factory == null)
{
factory = PluginLoader.FindClass<AnnualReportFactory>() ?? new AnnualReportFactory();
}
return factory.CreateAnnualReport(cb, teamOid, customerCareTypeValueListEntryOid, startDate, endDate);
//if (config.CostbearerOid.HasValue)
//{
// cb = DAOFactory.GenericDAO.LoadByID<CostBearer>(config.CostbearerOid.Value);
// factory = PluginLoader.FindClass<AnnualReportFactory>(cb.ID) ?? AnnualReportFactory.GetInstance(cb.ID);
//}
//if (factory == null)
//{
// factory = PluginLoader.FindClass<AnnualReportFactory>() ?? new AnnualReportFactory();
//}
AnnualReportFactory factory = PluginLoader.FindClass<AnnualReportFactory>() ?? new AnnualReportFactory();
return factory.CreateAnnualReport2(config);
}
catch (Exception e)
{
@@ -1006,6 +1009,22 @@ namespace BeWo.Service.ServiceImplementations
}
}
public List<AnnualReportDC> CreateAnnualReport(long? costbearerOid, long? teamOid, long? customerCareTypeValueListEntryOid, DateTime startDate, DateTime endDate)
{
var config = new AnnualReportConfigDC
{
CostbearerOid = costbearerOid,
TeamOid = teamOid,
CustomerCareTypeValueListEntryOid = customerCareTypeValueListEntryOid,
StartDate = startDate,
EndDate = endDate,
ShowOnlyApprovedSupportConcepts = true,
StichtagsbezogenAuswerten = true
};
return CreateAnnualReport2(config);
}
public static bool IsServiceRecordActive(ServiceRecord sr)
{
if (sr.Customer != null && sr.Customer.IsActive == ActivationTypeId.Deleted)

View File

@@ -0,0 +1,26 @@
using System;
using System.Collections.Generic;
using System.Runtime.Serialization;
namespace BS.Shared.DataContracts
{
[DataContract]
public class AnnualReportConfigDC
{
[DataMember]
public DateTime StartDate { get; set; }
[DataMember]
public DateTime EndDate { get; set; }
[DataMember]
public long? CostbearerOid { get; set; }
[DataMember]
public long? TeamOid { get; set; }
[DataMember]
public long? CustomerCareTypeValueListEntryOid { get; set; }
[DataMember]
public bool ShowOnlyApprovedSupportConcepts { get; set; }
[DataMember]
public bool StichtagsbezogenAuswerten { get; set; }
}
}

View File

@@ -20,7 +20,10 @@ namespace BS.Shared.DataContracts
[DataMember]
public long? CustomerOid { get; set; }
[DataMember]
public DateTime? InsTs { get; set; }
[DataMember]
public string InsUser { get; set; }
[DataMember]
public DateTime? Day { get; set; }
}

View File

@@ -44,7 +44,7 @@ namespace BS.Shared.DataContracts.Compact
[DataMember]
public long PersonOid { get; set; }
[DataMember]
public long CustomerVersion { get; set; }
@@ -86,6 +86,9 @@ namespace BS.Shared.DataContracts.Compact
[DataMember]
public string Town { get; set; }
[DataMember]
public String CustomerCareTypes { get; set; }
[DataMember]
public Dictionary<long, string> VarFieldValues
{

View File

@@ -197,6 +197,7 @@
<Compile Include="DataContracts\Feature\AI\AiPromptroutineDC.cs" />
<Compile Include="DataContracts\Feature\AI\AiPromptroutineStepDC.cs" />
<Compile Include="DataContracts\Feature\AI\AiUserSettingDC.cs" />
<Compile Include="DataContracts\AnnualReportConfigDC.cs" />
<Compile Include="DataContracts\IAbsenceTime.cs" />
<Compile Include="DataContracts\AiVoiceDataDC.cs" />
<Compile Include="DataContracts\Feature\AI\AiPromptbausteinFolderDC.cs" />