diff --git a/BeWo/BeWo.csproj b/BeWo/BeWo.csproj
index 72e5257cb..c1e694229 100644
--- a/BeWo/BeWo.csproj
+++ b/BeWo/BeWo.csproj
@@ -43,12 +43,12 @@
de-DE
BeWoPlaner
beyondSoft GmbH
- 2.0.1.214
+ 2.0.1.216
true
publish.htm
false
true
- 215
+ 217
2.0.1.%2a
false
true
diff --git a/BeWo/BeWoApp.xaml.cs b/BeWo/BeWoApp.xaml.cs
index 3c3cd6053..29a44164f 100644
--- a/BeWo/BeWoApp.xaml.cs
+++ b/BeWo/BeWoApp.xaml.cs
@@ -48,8 +48,8 @@ namespace BeWo
public static LoginControl LoginControl;
public static MainControl MainControl;
- public static string ShortVersion = "3.8";
- public static string Version = "Version 3.8";
+ public static string ShortVersion = "3.9";
+ public static string Version = "Version 3.9";
public static int RenderTier = 0;
@@ -459,7 +459,10 @@ namespace BeWo
}
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.AllowStorno);
AppSettings.AllowStorno = val != null && val.Equals("1");
-
+
+ val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.ShowHilfeplanStatistikReport);
+ AppSettings.ShowHilfeplanStatistikReport = val != null && val.Equals("1");
+
switch (_Mandator.BeWoClientType)
{
case 1:
diff --git a/BeWo/Core/Config/AppSettings.cs b/BeWo/Core/Config/AppSettings.cs
index 0bec27fdc..fc7809e4d 100644
--- a/BeWo/Core/Config/AppSettings.cs
+++ b/BeWo/Core/Config/AppSettings.cs
@@ -391,11 +391,13 @@ namespace BeWo.Core.Config
public bool ShowInfoButtonInCalender{ get; set; }
public bool AllowStorno { get; set; }
-
+
public bool ShowEmployeeSignature { get; set; }
public bool SetStartTimeToEndTimeAfterSave { get; set; }
+ public bool ShowHilfeplanStatistikReport { get; set; }
+
private SchedulerViewType _SchedulerViewType;
public SchedulerViewType SchedulerViewType
{
diff --git a/BeWo/View/BeWoFileView.xaml b/BeWo/View/BeWoFileView.xaml
index 98f67fa0d..e11e8ec68 100644
--- a/BeWo/View/BeWoFileView.xaml
+++ b/BeWo/View/BeWoFileView.xaml
@@ -9,8 +9,8 @@
xmlns:diagnostics="clr-namespace:System.Diagnostics;assembly=WindowsBase"
VerticalAlignment="Stretch" Focusable="True">
-
-
+
+
+
+
@@ -236,17 +238,17 @@
-
+
-
+
-
+
-
+
diff --git a/BeWo/View/Master/DokumenteView.xaml.cs b/BeWo/View/Master/DokumenteView.xaml.cs
index 8d7d34006..0b685dd7c 100644
--- a/BeWo/View/Master/DokumenteView.xaml.cs
+++ b/BeWo/View/Master/DokumenteView.xaml.cs
@@ -38,6 +38,8 @@ using BS.Shared.DataContracts.Compact;
using BeWo.View.Detail;
using System.Text;
using BS.Shared.Translation;
+using System.Windows.Data;
+using System.Globalization;
namespace BeWo.View.Master
{
@@ -58,6 +60,18 @@ namespace BeWo.View.Master
progressbar_upload.Visibility = Visibility.Collapsed;
text_progress.Visibility = Visibility.Collapsed;
+
+ if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.DocumentsUploadAll))
+ {
+ button_uploadDocument.Visibility = Visibility.Collapsed;
+ }
+
+ if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.DocumentsDownloadAll))
+ {
+ ColumnDownload.Visible = false;
+ ColumnDownload.ShowInColumnChooser = false;
+ }
+
}
public void InitDocumentMenuItems()
@@ -668,7 +682,7 @@ namespace BeWo.View.Master
{
MenuItem menuitem = item as MenuItem;
- if (treeviewitem.DataContract.BeWoFolderDC != null)
+ if (treeviewitem.DataContract.BeWoFolderDC != null && BeWoApp.LoggedOnUser.HasRight(UserRightType.DocumentsEditFolders))
{
if (treeviewitem.Name.Equals("Alle Ordner"))
{
@@ -691,6 +705,10 @@ namespace BeWo.View.Master
private void ContextMenu_Click(object sender, RoutedEventArgs e)
{
+ if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.DocumentsEditFolders))
+ {
+ return;
+ }
if (e.OriginalSource is MenuItem)
{
var row = DocumentsTreeView.SelectedRows[0] as DocumentTreeItemVM;
@@ -1330,7 +1348,7 @@ namespace BeWo.View.Master
{
MenuItem menuitem = item as MenuItem;
- if (treeviewitem?.DataContract?.BeWoFolderDC != null)
+ if (treeviewitem?.DataContract?.BeWoFolderDC != null && BeWoApp.LoggedOnUser.HasRight(UserRightType.DocumentsEditFolders))
{
if (treeviewitem.Name.Equals("Alle Ordner"))
{
@@ -1346,6 +1364,8 @@ namespace BeWo.View.Master
}
else
menuitem.IsEnabled = false;
+
+
}
}
}
@@ -2002,4 +2022,40 @@ namespace BeWo.View.Master
public UserRightType DocumentRightNeeded { get; set; }
public IList ListOfViewRightsNeeded { get; set; }
}
+
+ public class DeleteButtonVisibilityConverter : IValueConverter
+ {
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ if (BeWoApp.LoggedOnUser.HasRight(UserRightType.DocumentsDeleteAll))
+ {
+ return true;
+ }
+ else
+ return false;
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public class EditButtonVisibilityConverter : IValueConverter
+ {
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ if (BeWoApp.LoggedOnUser.HasRight(UserRightType.DocumentsUploadAll))
+ {
+ return true;
+ }
+ else
+ return false;
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ throw new NotImplementedException();
+ }
+ }
}
diff --git a/BeWo/View/Report/FLSReport/FLSOverviewGrid.xaml.cs b/BeWo/View/Report/FLSReport/FLSOverviewGrid.xaml.cs
index 08dbf9e48..78bf3ad42 100644
--- a/BeWo/View/Report/FLSReport/FLSOverviewGrid.xaml.cs
+++ b/BeWo/View/Report/FLSReport/FLSOverviewGrid.xaml.cs
@@ -606,12 +606,13 @@ namespace BeWo.View.Report.FLSReport
else
{
var contentVorher = (int)item.RoundedDuration + " min.";
- lbl.Content = item.TimeRange;
- if (contentVorher != item.TimeRange)
- {
- int test = 0;
- }
- lbl.Content = string.Format("TEST DURATIONXXX 6");
+ //lbl.Content = item.TimeRange;
+ lbl.Content = contentVorher;
+ //if (contentVorher != item.TimeRange)
+ //{
+ // int test = 0;
+ //}
+ //lbl.Content = string.Format("TEST DURATIONXXX 6");
}
}
diff --git a/BeWo/View/Report/MitarbeiterKoelnRing/FLSReportView.xaml.cs b/BeWo/View/Report/MitarbeiterKoelnRing/FLSReportView.xaml.cs
index a4e7dbd06..0d2feef7f 100644
--- a/BeWo/View/Report/MitarbeiterKoelnRing/FLSReportView.xaml.cs
+++ b/BeWo/View/Report/MitarbeiterKoelnRing/FLSReportView.xaml.cs
@@ -551,16 +551,17 @@ namespace BeWo.View.Report.MitarbeiterKoelnRing
if (sr.Start != null && sr.Start.Value.Second == 0)
{
content.Add(sr.Start.Value.ToShortTimeString());
+ content.Add(sr.End.Value.ToShortTimeString());
//content.Add(sr.Start.Value.AddMinutes((double)sr.RoundedDuration).ToShortTimeString());
- content.Add(string.Format("TEST DURATIONXXX 9"));
+ //content.Add(string.Format("TEST DURATIONXXX 9"));
}
else
{
content.Add("");
content.Add("");
}
- //content.Add(String.Format("{0}", (int)sr.RoundedDuration));
- content.Add(string.Format("TEST DURATIONXXX 10"));
+ content.Add(String.Format("{0}", (int)sr.RoundedDuration));
+ //content.Add(string.Format("TEST DURATIONXXX 10"));
if (_FLSOverview.FLSOverviewConfig.ShowOnlyTotalRows)
{
diff --git a/BeWo/ViewModel/ListViewModel/ServiceRecordListVM.cs b/BeWo/ViewModel/ListViewModel/ServiceRecordListVM.cs
index 5391ca2ba..18a5fc7b1 100644
--- a/BeWo/ViewModel/ListViewModel/ServiceRecordListVM.cs
+++ b/BeWo/ViewModel/ListViewModel/ServiceRecordListVM.cs
@@ -277,6 +277,7 @@ namespace BeWo.ViewModel.ListViewModel
_Statistics = value;
FirePropertyChanged(PropertyName_Statistics);
FirePropertyChanged("HasStatistics");
+ FirePropertyChanged("StatisticsButtonVisible");
}
}
@@ -285,6 +286,11 @@ namespace BeWo.ViewModel.ListViewModel
get { return _Statistics != null && _Statistics.Count > 0; }
}
+ public bool StatisticsButtonVisible
+ {
+ get { return BeWoApp.AppSettings.ShowHilfeplanStatistikReport && SelectedCustomerNode != null && SelectedCustomerNode.SupportConceptTreeNodeDC != null; }
+ }
+
public ServiceRecordTimeInterval ServiceRecordTimeInterval
{
get { return _ServiceRecordTimeInterval; }
diff --git a/Host/ReportView.aspx.cs b/Host/ReportView.aspx.cs
index c8e228725..9543ead3d 100644
--- a/Host/ReportView.aspx.cs
+++ b/Host/ReportView.aspx.cs
@@ -168,6 +168,9 @@ namespace Host
case ReportTypes.MitarbeiterKlientenReport:
report = CreateEmployeeCustomerListReport();
break;
+ case ReportTypes.HilfeplanStatistik:
+ report = new XtraReport();
+ break;
default:
report = CreateQueryReport();
break;
diff --git a/Model/Changes_2022_06_01_Wohnheim.txt b/Model/Changes_2022_06_01_Wohnheim.txt
index d8008b9da..848a3192c 100644
--- a/Model/Changes_2022_06_01_Wohnheim.txt
+++ b/Model/Changes_2022_06_01_Wohnheim.txt
@@ -1,3 +1,3 @@
-ALTER TABLE `bewodemo`.`wohnheim`
+ALTER TABLE `wohnheim`
ADD COLUMN `Sortierungsart` INT NULL DEFAULT NULL AFTER `StandardZeilenanzahl`,
ADD COLUMN `AbsteigendeSortierung` INT NULL DEFAULT NULL AFTER `Sortierungsart`;
diff --git a/ReportImp/AutismusLeben/CustomMitarbeiterstundenkontoBerechnung.cs b/ReportImp/AutismusLeben/CustomMitarbeiterstundenkontoBerechnung.cs
index 1bfb14337..c5173f17d 100644
--- a/ReportImp/AutismusLeben/CustomMitarbeiterstundenkontoBerechnung.cs
+++ b/ReportImp/AutismusLeben/CustomMitarbeiterstundenkontoBerechnung.cs
@@ -9,36 +9,35 @@ namespace AutismusLeben
{
public class CustomMitarbeiterstundenkontoBerechnung : MitarbeiterstundenkontoBerechnung
{
- public override bool ShouldCreateDayDetails()
- {
- return true;
- }
+ //public override bool ShouldCreateDayDetails()
+ //{
+ // return true;
+ //}
- public override MitarbeiterstundenkontoRO.DayDetail CreateDayDetail(DateTime date, MitarbeiterstundenkontoRO.EmployeeDetail ed)
- {
- var dd = base.CreateDayDetail(date, ed);
- dd.BreakMinutes2 = 15;
- dd.MaxHoursUntilBreak2 = 9;
+ //public override MitarbeiterstundenkontoRO.DayDetail CreateDayDetail(DateTime date, MitarbeiterstundenkontoRO.EmployeeDetail ed)
+ //{
+ // var dd = base.CreateDayDetail(date, ed);
+ // dd.BreakMinutes2 = 15;
+ // dd.MaxHoursUntilBreak2 = 9;
- return dd;
- }
+ // return dd;
+ //}
- public override bool AddServiceRecordToDuration(ServiceRecord item)
- {
- if (item.ServiceDescription != null && item.ServiceDescription.ServiceCategory != null)
- {
- if (item.ServiceDescription.ServiceCategory.Name == "Arbeitszeit")
- {
- return true;
- }
- }
- return false;
- }
+ //public override bool AddServiceRecordToDuration(ServiceRecord item)
+ //{
+ // if (item.ServiceDescription != null && item.ServiceDescription.ServiceCategory != null)
+ // {
+ // if (item.ServiceDescription.ServiceCategory.Name == "Arbeitszeit")
+ // {
+ // return true;
+ // }
+ // }
+ // return false;
+ //}
protected override ServiceRecordSummary BerechneStunden(MitarbeiterstundenkontoRO.EmployeeDetail empDetail, IList groupFilteredRecords, DateTime berichtsAnfang, DateTime berichtsEnde)
{
decimal flsGesamt = 0;
- decimal arbeitszeit = 0;
var sum = new ServiceRecordSummary();
sum.RecordsImBerichtszeitraum = new List();
@@ -46,43 +45,33 @@ namespace AutismusLeben
foreach (var item in groupFilteredRecords)
{
- if (!IsServiceRecordFehlzeit(item))
+ if (item.Start.Value >= berichtsAnfang && item.Start.Value < berichtsEnde)
{
- if (item.Start.Value >= berichtsAnfang && item.Start.Value < berichtsEnde)
+ decimal duration = 0;
+
+ if (item.GroupRoundedDuration.HasValue)
{
- //if (AddServiceRecordToDuration(item))
- //{
- decimal duration = 0;
-
- if (item.GroupRoundedDuration.HasValue)
- {
- duration = item.GroupRoundedDuration.Value;
- }
- else
- {
- duration = item.RoundedDuration;
- }
-
- if (item.ServiceDescription != null &&
- item.ServiceDescription.ServiceCategory != null)
- {
- if (item.ServiceDescription.ServiceCategory.Name == "Arbeitszeit")
- {
- arbeitszeit += duration;
- }
- else if (item.ServiceDescription.ServiceCategory.IsBillable)
- {
- flsGesamt += duration;
- }
-
- }
- sum.RecordsImBerichtszeitraum.Add(item);
+ duration = item.GroupRoundedDuration.Value;
}
+ else
+ {
+ duration = item.RoundedDuration;
+ }
+
+ if (item.ServiceDescription != null &&
+ item.ServiceDescription.ServiceCategory != null)
+ {
+ if (item.ServiceDescription.ServiceCategory.IsBillable)
+ {
+ flsGesamt += duration;
+ }
+
+ }
+ sum.RecordsImBerichtszeitraum.Add(item);
}
}
- sum.IstAbrechenbar = flsGesamt;
- sum.IstNichtAbrechenbar = arbeitszeit - flsGesamt;
+ sum.IstAbrechenbar = flsGesamt * 100m;
return sum;
}
diff --git a/ReportImp/FizHof/Export/DatevExporter.cs b/ReportImp/FizHof/Export/DatevExporter.cs
index ed402f29f..17bbd8cd2 100644
--- a/ReportImp/FizHof/Export/DatevExporter.cs
+++ b/ReportImp/FizHof/Export/DatevExporter.cs
@@ -33,7 +33,13 @@ namespace FizHof.Export
public static String GetAbrechnungenString(DateTime date)
{
StringBuilder sb = new StringBuilder();
- //sb.AppendLine("Betrag;Konto;Gegenkonto;Belegdatum;Rechnungsnummer;Buchungstext;Kostenstelle");
+
+ /*
+ *
+ INSERT INTO `query` (`Oid`,`Tid`,`Type`,`Title`,`Sql`,`Notice`,`InsTs`,`InsUser`,`UdpUser`,`Version`,`IsActive`,`SystemEntryID`,`UserGroupOids`,`ReportTypeName`,`FileName`,`ExportTitle`) VALUES (100,24,0,'Datev Export','select \':Monat_Start\'','direct',NULL,NULL,NULL,1,1,NULL,'1',NULL,NULL,'Datei erstellen');
+
+ INSERT INTO `parameter` (`Oid`,`QueryOid`,`Tid`,`Name`,`Type`,`DbType`,`InsTs`,`InsUser`,`UdpUser`,`Version`,`IsActive`,`SystemEntryID`) VALUES(1, 100, 25, 'Monat', 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+ */
sb.AppendLine("Datum;Konto;Gegenkonto;Buchungstext;Belegfeld1;Umsatz Soll;Kostenstelle");
diff --git a/ReportImp/HphBersenbrueckFreizeitUndReisen/Abrechnung/CustomInvoiceCreation.cs b/ReportImp/HphBersenbrueckFreizeitUndReisen/Abrechnung/CustomInvoiceCreation.cs
index 06e3af57f..e0bdd5e08 100644
--- a/ReportImp/HphBersenbrueckFreizeitUndReisen/Abrechnung/CustomInvoiceCreation.cs
+++ b/ReportImp/HphBersenbrueckFreizeitUndReisen/Abrechnung/CustomInvoiceCreation.cs
@@ -54,25 +54,26 @@ namespace HphBersenbrueckFreizeitUndReisen.Abrechnung
}
}
}
- ServiceInvoice pflegekassenRechnung = null;
+ IList pflegekassenRechnungen = null;
if (pflegekasse != null)
{
- pflegekassenRechnung = CreatePflegekassenRechnung(invoiceCounter, pflegekasse, customer, invoicePeriod, sc, serviceRecords);
+ pflegekassenRechnungen = CreatePflegekassenRechnungen(invoiceCounter, pflegekasse, customer, invoicePeriod, sc, serviceRecords);
- if (pflegekassenRechnung != null && pflegekassenRechnung.GetTotalClaim() > 0)
+ if (pflegekassenRechnungen != null && pflegekassenRechnungen.Count > 0)
{
- invoiceList.Add(pflegekassenRechnung);
+ invoiceList.AddRange(pflegekassenRechnungen);
invoiceCounter++;
}
}
+
if (selbszahler != null)
{
var selbstzahlerRechnung = CreateSelbstzahlerRechnung(invoiceCounter, customer, invoicePeriod, sc, serviceRecords);
if (selbstzahlerRechnung != null && selbstzahlerRechnung.GetTotalClaim() > 0)
{
- SetzeInvoiceItemDescription(selbstzahlerRechnung, pflegekassenRechnung);
+ SetzeInvoiceItemDescription(selbstzahlerRechnung, pflegekassenRechnungen);
invoiceList.Add(selbstzahlerRechnung);
@@ -113,17 +114,17 @@ namespace HphBersenbrueckFreizeitUndReisen.Abrechnung
return result;
}
- private void SetzeInvoiceItemDescription(ServiceInvoice selbstzahlerRechnung, ServiceInvoice pflegekassenRechnung)
+ private void SetzeInvoiceItemDescription(ServiceInvoice selbstzahlerRechnung, IList pflegekassenRechnungen)
{
- if (pflegekassenRechnung != null)
+ if (pflegekassenRechnungen != null && pflegekassenRechnungen.Count > 0)
{
foreach (var ssip in selbstzahlerRechnung.ServiceInvoicePeriodList)
{
foreach (var sii in ssip.InvoiceItemList)
{
if (sii.ItemDescription == "Selbstzahler")
- {
- foreach (var psip in pflegekassenRechnung.ServiceInvoicePeriodList)
+ {
+ foreach (var psip in pflegekassenRechnungen[0].ServiceInvoicePeriodList)
{
foreach (var pii in psip.InvoiceItemList)
{
@@ -142,11 +143,21 @@ namespace HphBersenbrueckFreizeitUndReisen.Abrechnung
var invoice = base.CreateSingleInvoice(invoiceCounter, costBearer, invoicePeriod, sc, new List());
invoice.InvoiceBase.InvoiceId = "RechnungSelbstzahler";
-
+
+ invoice.InvoiceBase.RecipientPersonFirstName = customer.Person.FirstName;
+ invoice.InvoiceBase.RecipientPersonLastName = customer.Person.LastName;
if (customer.Person.InvoiceAddress != null)
{
invoice.InvoiceBase.RecipientAddress = customer.Person.InvoiceAddress.CopyToNew();
+
+ if (customer.Person.InvoiceAddress != null && customer.Person.InvoiceAddress.AddressLine1 != null)
+ {
+ invoice.InvoiceBase.RecipientPersonFirstName = customer.Person.InvoiceAddress.AddressLine1;
+ invoice.InvoiceBase.RecipientPersonLastName = "";
+ }
+
+
invoice.InvoiceBase.RecipientOrganisation = "";
}
@@ -157,10 +168,8 @@ namespace HphBersenbrueckFreizeitUndReisen.Abrechnung
}
invoice.InvoiceBase.RecipientCostBearerOid = sc.CostBearerList[0].CostBearerOid;
- invoice.InvoiceBase.RecipientPersonFirstName = customer.Person.FirstName;
- invoice.InvoiceBase.RecipientPersonLastName = customer.Person.LastName;
-
+
Dictionary key2Info = new Dictionary();
@@ -170,16 +179,26 @@ namespace HphBersenbrueckFreizeitUndReisen.Abrechnung
{
var preis = GetPreisVonServiceDescription(sr.ServiceDescription, sr.Start.Value);
-
+ String key = String.Format("{0}_{1:0.00}_{2:yyyyMM}", sr.ServiceDescription.Category.Name, preis, sr.Start);
- String key = String.Format("{0}_{1:0.00}", sr.ServiceDescription.Category.Name, preis);
if (!key2Info.ContainsKey(key))
{
key2Info.Add(key, new AbrechnungsInfos());
+ key2Info[key].Start = new DateTime(sr.Start.Value.Year, sr.Start.Value.Month, 1);
+ key2Info[key].Ende = new DateTime(sr.Start.Value.Year, sr.Start.Value.Month, 1).AddMonths(1).AddDays(-1);
}
key2Info[key].Minuten += sr.RoundedDuration;
key2Info[key].Stundensatz = preis;
key2Info[key].Category = sr.ServiceDescription.Category.Name;
+
+ if (sr.Start.Value < key2Info[key].Start)
+ {
+ key2Info[key].Start = new DateTime(sr.Start.Value.Year, sr.Start.Value.Month, 1);
+ }
+ if (sr.Start.Value > key2Info[key].Ende)
+ {
+ key2Info[key].Ende = new DateTime(sr.Start.Value.Year, sr.Start.Value.Month, 1).AddMonths(1).AddDays(-1);
+ }
}
}
@@ -203,8 +222,8 @@ namespace HphBersenbrueckFreizeitUndReisen.Abrechnung
ii.AmountPerUnit = info.Stundensatz;
ii.UnitCount = Math.Round(info.Minuten / 60, 2, MidpointRounding.AwayFromZero);
ii.AmountTotal = ii.AmountPerUnit * ii.UnitCount;
- ii.ItemPeriodStart = invoicePeriod.StartDateTime;
- ii.ItemPeriodEnd = invoicePeriod.EndDateTime;
+ ii.ItemPeriodStart = info.Start;
+ ii.ItemPeriodEnd = info.Ende;
ii.RateFactor = null;
ii.GrossAmountTotal = ii.AmountTotal;
ii.UnitDescription = String.Format("{0}", customer.Oid);
@@ -240,78 +259,103 @@ namespace HphBersenbrueckFreizeitUndReisen.Abrechnung
return category;
}
- private ServiceInvoice CreatePflegekassenRechnung(int invoiceCounter, Organisation pflegekasse, Customer customer, DateTimeSpan invoicePeriod, CompactSupportConceptDC sc, List serviceRecords)
+ private IList CreatePflegekassenRechnungen(int invoiceCounter, Organisation pflegekasse, Customer customer, DateTimeSpan invoicePeriod, CompactSupportConceptDC sc, List serviceRecords)
{
-
- var invoice = base.CreateSingleInvoice(invoiceCounter, pflegekasse.CostBearer, invoicePeriod, sc, new List());
- invoice.InvoiceBase.InvoiceId = "RechnungPflegekasse";
- invoice.InvoiceBase.RecipientCostBearerOid = sc.CostBearerList[0].CostBearerOid;
- //if (customer.Person.InvoiceAddress != null)
- //{
- // invoice.InvoiceBase.RecipientAddress = customer.Person.InvoiceAddress.CopyToNew();
- // invoice.InvoiceBase.RecipientOrganisation = "";
- // invoice.InvoiceBase.RecipientCostBearerOid = null;
- //}
- //else if (customer.Person.Address != null)
- //{
- // invoice.InvoiceBase.RecipientAddress = customer.Person.Address.CopyToNew();
- // invoice.InvoiceBase.RecipientOrganisation = "";
- // invoice.InvoiceBase.RecipientCostBearerOid = null;
- //}
+ var invoiceList = new List();
+ Dictionary categories = new Dictionary();
- Dictionary key2Info = new Dictionary();
- foreach (var sr in serviceRecords)
- {
- if (sr.ServiceDescription.Category.Name != "Selbstzahler")
+ foreach (var item in serviceRecords)
+ {
+ if (item.ServiceDescription.Category.Name != "Selbstzahler")
{
- var preis = GetPreisVonServiceDescription(sr.ServiceDescription, sr.Start.Value);
-
- String key = String.Format("{0}_{1:0.00}", sr.ServiceDescription.Category.Name, preis);
- if (!key2Info.ContainsKey(key))
+ if (!categories.ContainsKey(item.ServiceDescription.Category.Name))
+ {
+ categories.Add(item.ServiceDescription.Category.Name, item.ServiceDescription.Category.Name);
+ }
+ }
+ }
+
+ foreach (var category in categories.Values)
+ {
+ var invoice = base.CreateSingleInvoice(invoiceCounter, pflegekasse.CostBearer, invoicePeriod, sc, new List());
+ invoice.InvoiceBase.InvoiceId = "RechnungPflegekasse";
+ invoice.InvoiceBase.RecipientCostBearerOid = sc.CostBearerList[0].CostBearerOid;
+ //if (customer.Person.InvoiceAddress != null)
+ //{
+ // invoice.InvoiceBase.RecipientAddress = customer.Person.InvoiceAddress.CopyToNew();
+ // invoice.InvoiceBase.RecipientOrganisation = "";
+ // invoice.InvoiceBase.RecipientCostBearerOid = null;
+ //}
+ //else if (customer.Person.Address != null)
+ //{
+ // invoice.InvoiceBase.RecipientAddress = customer.Person.Address.CopyToNew();
+ // invoice.InvoiceBase.RecipientOrganisation = "";
+ // invoice.InvoiceBase.RecipientCostBearerOid = null;
+ //}
+
+ Dictionary key2Info = new Dictionary();
+ foreach (var sr in serviceRecords)
+ {
+ if (sr.ServiceDescription.Category.Name == category)
{
- key2Info.Add(key, new AbrechnungsInfos());
+ var preis = GetPreisVonServiceDescription(sr.ServiceDescription, sr.Start.Value);
+
+ String key = String.Format("{0}_{1:0.00}_{2:yyyyMM}", sr.ServiceDescription.Category.Name, preis, sr.Start);
+ if (!key2Info.ContainsKey(key))
+ {
+ key2Info.Add(key, new AbrechnungsInfos());
+ }
+ key2Info[key].Minuten += sr.RoundedDuration;
+ key2Info[key].Stundensatz = preis;
+ key2Info[key].Category = sr.ServiceDescription.Category.Name;
+ key2Info[key].Start = new DateTime(sr.Start.Value.Year, sr.Start.Value.Month, 1);
+ key2Info[key].Ende = new DateTime(sr.Start.Value.Year, sr.Start.Value.Month, 1).AddMonths(1).AddDays(-1);
+
}
- key2Info[key].Minuten += sr.RoundedDuration;
- key2Info[key].Stundensatz = preis;
- key2Info[key].Category = sr.ServiceDescription.Category.Name;
}
- }
- invoice.ServiceInvoicePeriodList = new List();
+ invoice.ServiceInvoicePeriodList = new List();
- var sip = new ServiceInvoicePeriod
- {
- Start = invoicePeriod.StartDateTime,
- End = invoicePeriod.EndDateTime
- };
-
- sip.Notice = customer.Person.LastNameFirstName;
-
- foreach (var info in key2Info.Values)
- {
- if (info.Stundensatz > 0 && info.Minuten > 0)
+ var sip = new ServiceInvoicePeriod
{
- var ii = new InvoiceItem();
+ Start = invoicePeriod.StartDateTime,
+ End = invoicePeriod.EndDateTime
+ };
- ii.AmountPerUnit = info.Stundensatz;
- ii.UnitCount = Math.Round(info.Minuten / 60, 2, MidpointRounding.AwayFromZero);
- ii.AmountTotal = ii.AmountPerUnit * ii.UnitCount;
- ii.ItemPeriodStart = invoicePeriod.StartDateTime;
- ii.ItemPeriodEnd = invoicePeriod.EndDateTime;
- ii.RateFactor = null;
- ii.GrossAmountTotal = ii.AmountTotal;
- ii.UnitDescription = String.Format("{0}", customer.Oid);
- ii.ItemDescription = GetArtikelbezeichnung(info.Category);
- ii.Notice = customer.Person.FirstNameLastName;
- sip.InvoiceItemList.Add(ii);
+ sip.Notice = customer.Person.LastNameFirstName;
+
+ foreach (var info in key2Info.Values)
+ {
+ if (info.Stundensatz > 0 && info.Minuten > 0)
+ {
+ var ii = new InvoiceItem();
+
+ ii.AmountPerUnit = info.Stundensatz;
+ ii.UnitCount = Math.Round(info.Minuten / 60, 2, MidpointRounding.AwayFromZero);
+ ii.AmountTotal = ii.AmountPerUnit * ii.UnitCount;
+ ii.ItemPeriodStart = info.Start;
+ ii.ItemPeriodEnd = info.Ende;
+ ii.RateFactor = null;
+ ii.GrossAmountTotal = ii.AmountTotal;
+ ii.UnitDescription = String.Format("{0}", customer.Oid);
+ ii.ItemDescription = GetArtikelbezeichnung(info.Category);
+ ii.Notice = customer.Person.FirstNameLastName;
+ sip.InvoiceItemList.Add(ii);
+ }
}
+
+ invoice.ServiceInvoicePeriodList.Add(sip);
+ SetServiceInvoicePeriodAmounts(invoice);
+
+ if (invoice.GetTotalClaim() > 0)
+ {
+ invoiceList.Add(invoice);
+ }
}
+
- invoice.ServiceInvoicePeriodList.Add(sip);
- SetServiceInvoicePeriodAmounts(invoice);
-
- return invoice;
+ return invoiceList;
}
public override void SetServiceInvoicePeriods(ServiceInvoice invoice, CostBearer2SupportConcept costBearer2SupportConcept, DateTimeSpan invoicePeriod, List serviceRecords)
@@ -340,11 +384,12 @@ namespace HphBersenbrueckFreizeitUndReisen.Abrechnung
return 0;
}
+
public override string GetSummaryItemKey(SupportConceptApprovalPeriod scap, InvoiceItem iitem, bool summaryPerMonth)
{
- return String.Format("{0}_{1}_{2:yyyyMM}_{3}", iitem.AmountPerUnit, iitem.RateFactor, iitem.ItemP eriodStart, iitem.ItemDescription);
-
- }
+ return String.Format("{0}_{1}_{2:yyyyMM}_{3}", iitem.AmountPerUnit, iitem.RateFactor, iitem.ItemPeriodStart, iitem.ItemDescription);
+
+ }
}
public class AbrechnungsInfos
@@ -354,5 +399,9 @@ namespace HphBersenbrueckFreizeitUndReisen.Abrechnung
public decimal Minuten { get; set; }
public String Category { get; set; }
+
+ public DateTime Start { get; set; }
+
+ public DateTime Ende { get; set; }
}
}
diff --git a/ReportImp/HphBersenbrueckFreizeitUndReisen/HphBersenbrueckFreizeitUndReisen.csproj b/ReportImp/HphBersenbrueckFreizeitUndReisen/HphBersenbrueckFreizeitUndReisen.csproj
index fc9b5f137..374d9cd90 100644
--- a/ReportImp/HphBersenbrueckFreizeitUndReisen/HphBersenbrueckFreizeitUndReisen.csproj
+++ b/ReportImp/HphBersenbrueckFreizeitUndReisen/HphBersenbrueckFreizeitUndReisen.csproj
@@ -100,6 +100,8 @@
CustomerDataReport.cs
+
+
Component
@@ -143,9 +145,9 @@
Component
- Rechnung.cs
+ Rechnung.cs
-
+
Component
@@ -218,7 +220,7 @@
AbrechnungsbogenReisen.cs
- Rechnung.cs
+ Rechnung.cs
ServiceRecordListReport.cs
diff --git a/ReportImp/HphBersenbrueckFreizeitUndReisen/Rechnung.Designer.cs b/ReportImp/HphBersenbrueckFreizeitUndReisen/Rechnung.Designer.cs
index 406fa9bc7..d71fcb9f3 100644
--- a/ReportImp/HphBersenbrueckFreizeitUndReisen/Rechnung.Designer.cs
+++ b/ReportImp/HphBersenbrueckFreizeitUndReisen/Rechnung.Designer.cs
@@ -689,14 +689,12 @@ namespace HphBersenbrueckFreizeitUndReisen
// xrTableCell9
//
this.xrTableCell9.Borders = DevExpress.XtraPrinting.BorderSide.Bottom;
- this.xrTableCell9.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
- new DevExpress.XtraReports.UI.XRBinding("Text", null, "AccountingPeriod")});
this.xrTableCell9.Name = "xrTableCell9";
this.xrTableCell9.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 0, 0, 0, 100F);
this.xrTableCell9.StylePriority.UseBorders = false;
this.xrTableCell9.StylePriority.UsePadding = false;
this.xrTableCell9.StylePriority.UseTextAlignment = false;
- this.xrTableCell9.Text = "Fachleistungsstunden";
+ this.xrTableCell9.Text = "[AccountingPeriodStart!dd.MM.yyyy] - [AccountingPeriodEnd!dd.MM.yyyy]";
this.xrTableCell9.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.xrTableCell9.Weight = 1.7351844793555995D;
//
diff --git a/ReportImp/KetteReports/Export/CustomDataExporter.cs b/ReportImp/KetteReports/Export/CustomDataExporter.cs
index 7569241e2..104f825d9 100644
--- a/ReportImp/KetteReports/Export/CustomDataExporter.cs
+++ b/ReportImp/KetteReports/Export/CustomDataExporter.cs
@@ -23,7 +23,10 @@ namespace KetteReports.Export
public override QueryDC CreateQuery(QueryDC query)
{
- return DatevExporter.CreateQuery(query);
+ var q = DatevExporter.CreateQuery(query);
+ CreateBuchungsExportProtokollEintrag(q);
+
+ return q;
}
}
}
diff --git a/ReportImp/PflegedienstWessel/Service/CustomStundenuebersichtAuswertung.cs b/ReportImp/PflegedienstWessel/Service/CustomStundenuebersichtAuswertung.cs
index 0680b9a86..dae0a8e19 100644
--- a/ReportImp/PflegedienstWessel/Service/CustomStundenuebersichtAuswertung.cs
+++ b/ReportImp/PflegedienstWessel/Service/CustomStundenuebersichtAuswertung.cs
@@ -19,16 +19,16 @@ namespace PflegedienstWessel.Service
{
public class CustomStundenuebersichtAuswertung : StundenuebersichtAuswertung
{
- //protected override ServiceRecordFLSOverviewDC CreateServiceRecordFLSOverviewDC(ServiceRecord sr, bool useGroupInfo, bool useRoundedDuration, bool showGroupMinutes)
- //{
- // var dc = base.CreateServiceRecordFLSOverviewDC(sr, useGroupInfo, useRoundedDuration, showGroupMinutes);
+ protected override ServiceRecordFLSOverviewDC CreateServiceRecordFLSOverviewDC(ServiceRecord sr, bool useGroupInfo, bool useRoundedDuration, bool showGroupMinutes)
+ {
+ var dc = base.CreateServiceRecordFLSOverviewDC(sr, useGroupInfo, useRoundedDuration, showGroupMinutes);
+
+ if (dc.ServiceDescription.Category.Percentage < 100)
+ {
+ dc.RoundedDuration *= dc.ServiceDescription.Category.Percentage / 100;
+ }
+ return dc;
+ }
- // if (dc.ServiceDescription.Category.Percentage < 100)
- // {
- // dc.RoundedDuration *= dc.ServiceDescription.Category.Percentage / 100;
- // }
- // return dc;
- //}
-
}
}
diff --git a/ReportImp/PraxisPusteblume/IfsSammelRechnung.cs b/ReportImp/PraxisPusteblume/IfsSammelRechnung.cs
index 34ab5f00b..38d01bcae 100644
--- a/ReportImp/PraxisPusteblume/IfsSammelRechnung.cs
+++ b/ReportImp/PraxisPusteblume/IfsSammelRechnung.cs
@@ -270,7 +270,7 @@ namespace PraxisPusteblume
{
preisTeam = 11.63m;
}
- if (pRO.AccountingPeriodStart >= new DateTime(2022, 5, 1))
+ if (pRO.AccountingPeriodStart >= new DateTime(2022, 4, 1))
{
preisTeam = 11.77m;
preisGruppe = 35.22m;
diff --git a/ReportImp/PraxisPusteblume/Invoicing/IFSSammelInvoiceCreation.cs b/ReportImp/PraxisPusteblume/Invoicing/IFSSammelInvoiceCreation.cs
index 5305f1f7a..d56957236 100644
--- a/ReportImp/PraxisPusteblume/Invoicing/IFSSammelInvoiceCreation.cs
+++ b/ReportImp/PraxisPusteblume/Invoicing/IFSSammelInvoiceCreation.cs
@@ -163,7 +163,7 @@ namespace PraxisPusteblume.Invoicing
{
betrag = 11.63m;
}
- if (invoicePeriod.StartDateTime >= new DateTime(2022, 5, 1))
+ if (invoicePeriod.StartDateTime >= new DateTime(2022, 4, 1))
{
betrag = 11.77m;
}
diff --git a/Service/Configuration/AppSettings.cs b/Service/Configuration/AppSettings.cs
index e758bd902..18ebea1bb 100644
--- a/Service/Configuration/AppSettings.cs
+++ b/Service/Configuration/AppSettings.cs
@@ -89,7 +89,7 @@ namespace BeWo.Service.Configuration
bool sortServiceDescriptionAlphabetically = false;
settings.ShowAdvisedAttendedFlag = false;
settings.DienstplanungStandardZeilenAnzahl = 1;
-
+
bool printerSettingsUseLandscape = false;
bool printerSettingsUseMargins = false;
diff --git a/Service/Plugins/PluginLoader.cs b/Service/Plugins/PluginLoader.cs
index 91695c21c..5c25deead 100644
--- a/Service/Plugins/PluginLoader.cs
+++ b/Service/Plugins/PluginLoader.cs
@@ -133,7 +133,7 @@ namespace BeWo.Service.Plugins
//t = "3227700467"; // Psychosozialer Trägerverein
//t = "4378753169"; // Die Wohnhelfer Köln
//t = "2214258555"; // Betreuungsbüro Baak
- t = "4525013596"; // Hph Bersenbrück Freizeit und Reisen
+ //t = "4525013596"; // Hph Bersenbrück Freizeit und Reisen
//t = "1609455614"; // Hph Bersenbrück Aph
//t = "7852961459"; // B&B Betreutes Wohnen
//t = "8719930557"; // Lebenshilfe Rhein-Sieg
@@ -325,12 +325,12 @@ namespace BeWo.Service.Plugins
//t = "9518001524"; // Sozialpädagogische Praxis Astrid Schnödewind
//t = "1048483934"; // Frauenhaus e.V. EWFRA - Wohnprojekt für Frauen
//t = "4293131072"; // ASB Rhein-Erft/Düren e.V. Schulbegleitung
- //t = "2221228727"; // Autismus Leben gGmbH
+ t = "2221228727"; // Autismus Leben gGmbH
//t = "5065709552"; // Biotop e.V.
//t = "9094672461"; // Toprak GmbH
//t = "9008813932"; // Aids Hilfe Giessen
//t = "4052216789"; // Perspektiven e.V.
- t = "3341456098"; // Hilfe Daheim (Hand in Hand)
+ //t = "3341456098"; // Hilfe Daheim (Hand in Hand)
return t;
#else
diff --git a/Service/ServiceImplementations/DownloadServiceImp.cs b/Service/ServiceImplementations/DownloadServiceImp.cs
index 07f019461..9e3bbe933 100644
--- a/Service/ServiceImplementations/DownloadServiceImp.cs
+++ b/Service/ServiceImplementations/DownloadServiceImp.cs
@@ -825,8 +825,8 @@ namespace BeWo.Service.ServiceImplementations
{
try
{
- //var urlneu = ConfigurationManager.AppSettings.Get("RssFeedUrl");
- var urlneu = "http://bsnewsmaster.beyondsoft.de/news_rss.php?ClientOID=236180486&CategoryOID=2002858128";
+ var urlneu = ConfigurationManager.AppSettings.Get("RssFeedUrl");
+ //var urlneu = "http://bsnewsmaster.beyondsoft.de/news_rss.php?ClientOID=236180486&CategoryOID=2002858128";
if (string.IsNullOrEmpty(urlneu))
diff --git a/Shared/BeWoEntityEnums.cs b/Shared/BeWoEntityEnums.cs
index d3fdbd857..f8aeda313 100644
--- a/Shared/BeWoEntityEnums.cs
+++ b/Shared/BeWoEntityEnums.cs
@@ -485,6 +485,9 @@ namespace BS.Shared
ServiceRecordAllowEditAfterMindays = 22002,
DocumentsAllowViewAll = 22010,
DocumentsDownloadAll = 22011,
+ DocumentsEditFolders = 22012,
+ DocumentsUploadAll = 22013,
+ DocumentsDeleteAll = 22014,
Customer_ViewMedication = 22100,
Customer_ViewDiagnosis = 22101,
@@ -606,8 +609,8 @@ namespace BS.Shared
ResourceCategory = 6,
EnvironmentPersonType = 7,
CustomerCareType = 8,
- SupportConceptGoalCategoryType = 9,
- SupportConceptGoalType = 10,
+ SupportConceptGoalCategoryType = 9, // Ziele im allg. Verwaltungs Katalog
+ SupportConceptGoalType = 10, // Maßnahmen im allg. Verwaltungs Katalog
TitleType = 11,
FunctionType = 12,
PlacementObjectiveType = 13,
diff --git a/Shared/Core/EnumTranslations.cs b/Shared/Core/EnumTranslations.cs
index 9666dbc9c..474e28265 100644
--- a/Shared/Core/EnumTranslations.cs
+++ b/Shared/Core/EnumTranslations.cs
@@ -571,6 +571,15 @@ namespace BS.Shared.Core
{
UserRightType.DocumentsDownloadAll, Translator.Translate("Dokumente herunterladen")
},
+ {
+ UserRightType.DocumentsUploadAll, Translator.Translate("Dokumente hochladen")
+ },
+ {
+ UserRightType.DocumentsDeleteAll, Translator.Translate("Dokumente löschen")
+ },
+ {
+ UserRightType.DocumentsEditFolders, Translator.Translate("Dokumente Ordner bearbeiten")
+ },
{
UserRightType.ServiceRecordAllowEditAfterMindays, Translator.Translate("Zeiterfassung Einträge nach Ablauf der Eingabefrist bearbeiten")
},
diff --git a/Shared/Core/SettingsKeys.cs b/Shared/Core/SettingsKeys.cs
index ecca7c6f1..f69489ef1 100644
--- a/Shared/Core/SettingsKeys.cs
+++ b/Shared/Core/SettingsKeys.cs
@@ -70,7 +70,11 @@
public static string ShowKlientenBetreuungszeiten => "ShowKlientenBetreuungszeiten";
public static string ShowInfoButtonInCalender => "ShowInfoButtonInCalender";
+
+ public static string ShowHilfeplanStatistikReport => "ShowHilfeplanStatistikReport";
+
+
}
}
diff --git a/Shared/DataContracts/ReportTypes.cs b/Shared/DataContracts/ReportTypes.cs
index 93ef32280..4efd2a5cd 100644
--- a/Shared/DataContracts/ReportTypes.cs
+++ b/Shared/DataContracts/ReportTypes.cs
@@ -34,6 +34,7 @@
Stundenzettel,
VorlagenReport,
AbwesenheitsPrintReport,
- MitarbeiterKlientenReport
+ MitarbeiterKlientenReport,
+ HilfeplanStatistik,
}
}
\ No newline at end of file