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

This commit is contained in:
2023-06-09 10:57:13 +02:00
22 changed files with 189 additions and 1667 deletions

View File

@@ -49,8 +49,8 @@ namespace BeWo
public static LoginControl LoginControl;
public static MainControl MainControl;
public static string ShortVersion = "3.14";
public static string Version = "Version 3.14";
public static string ShortVersion = "3.15";
public static string Version = "Version 3.15";
public static int RenderTier = 0;

View File

@@ -504,7 +504,7 @@
<TextBox Grid.Column="1" Grid.Row="1" Margin="3" Height="23" Text="{Binding Path=Street, UpdateSourceTrigger=PropertyChanged}" />
<TextBox Grid.Column="1" Grid.Row="2" Margin="3" Height="23" Text="{Binding Path=PostalCode, UpdateSourceTrigger=PropertyChanged}" />
<TextBox Grid.Column="1" Grid.Row="3" Margin="3" Height="23" Text="{Binding Path=Town, UpdateSourceTrigger=PropertyChanged}" />
<dxe:SpinEdit MinValue="0" Increment="5" IsFloatValue="False" AllowNullInput="True" x:Name="txtDistance"
<dxe:SpinEdit MinValue="0" Increment="1" IsFloatValue="False" AllowNullInput="True" x:Name="txtDistance"
EditValue="{Binding Path=DistanceInMeter, Mode=TwoWay, Converter={StaticResource Int2DecimalConverter}, UpdateSourceTrigger=PropertyChanged}"
Grid.Column="1" Grid.Row="4"
Height="23" Margin="3"/>

View File

@@ -782,7 +782,16 @@
Margin="3"
Height="23"
IsEnabled="{Binding Path=IsDirekt, Mode=OneWay}"/>
<TextBlock VerticalAlignment="Center"
Margin="3"
Grid.Row="7"
Grid.Column="1"
Text="{markup:Translate BewilligungBemerkung}" />
<dxe:TextEdit AllowNullInput="True"
Grid.Row="7" Grid.Column="2" Grid.ColumnSpan="6"
EditValue="{Binding Path=Notice, UpdateSourceTrigger=PropertyChanged}"
Margin="3"
Height="23" MaxLength="1000"/>
<TextBlock VerticalAlignment="Center"
Grid.Column="1"
Grid.Row="7"
@@ -808,7 +817,7 @@
DisplayMemberPath="Value"
Height="23"
Grid.Column="4" Tag="Direkt"/>
<Button Grid.Row="7" Grid.Column="0" Height="25"
<Button Grid.Row="8" Grid.Column="0" Height="25"
Grid.ColumnSpan="6"
Visibility="{Binding Path=SupportConceptApprovalEmployeeRelations.AddButtonVisibility}"
HorizontalAlignment="Left"

View File

@@ -289,7 +289,7 @@
</Grid.RowDefinitions>
<Label Grid.Row="1" Content="Gefahrene Kilometer" Grid.ColumnSpan="2" Grid.Column="1" x:Name="lblDistance" HorizontalAlignment="Right" Margin="0,0,3,0"/>
<dxe:SpinEdit Grid.Row="1" Increment="5" MinValue="0" IsFloatValue="True" Mask="########0.0#" MaskUseAsDisplayFormat="True"
<dxe:SpinEdit Grid.Row="1" Increment="1" MinValue="0" IsFloatValue="True" Mask="########0.0#" MaskUseAsDisplayFormat="True"
AllowNullInput="False" x:Name="numerictb_distance" EditValue="{Binding Mode=TwoWay, Path=DistanceInMeter, UpdateSourceTrigger=PropertyChanged}"
Grid.Column="3" Height="23" Margin="3,0,3,3" />

View File

@@ -258,7 +258,7 @@
</Grid.RowDefinitions>
<Label Grid.Row="1" Content="Gefahrene Kilometer" Grid.Column="1" Grid.ColumnSpan="2" x:Name="lblDistance" HorizontalAlignment="Right" Margin="0,0,3,0"/>
<dxe:SpinEdit Grid.Row="1" Increment="5" MinValue="0" IsFloatValue="True" Mask="########0.0#" MaskUseAsDisplayFormat="True"
<dxe:SpinEdit Grid.Row="1" Increment="1" MinValue="0" IsFloatValue="True" Mask="########0.0#" MaskUseAsDisplayFormat="True"
AllowNullInput="False" x:Name="numerictb_distance" EditValue="{Binding Mode=TwoWay, Path=DistanceInMeter, UpdateSourceTrigger=PropertyChanged}"
Grid.Column="3" Height="23" Margin="3,0,3,3" />
</Grid>

View File

@@ -13,7 +13,7 @@
xmlns:dxre="http://schemas.devexpress.com/winfx/2008/xaml/richedit"
xmlns:ve="http://schemas.devexpress.com/winfx/2008/xaml/docking/visualelements"
xmlns:dxb="http://schemas.devexpress.com/winfx/2008/xaml/bars"
xmlns:detail="clr-namespace:BeWo.View.Detail"
xmlns:detail="clr-namespace:BeWo.View.Detail"
xmlns:zeit="clr-namespace:BeWo.View.Detail.Zeiterfassung"
xmlns:core="clr-namespace:BS.Shared.Core;assembly=BS.Shared"
xmlns:security="clr-namespace:BeWo.Security"
@@ -868,7 +868,7 @@
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Label Grid.Row="1" Content="Gefahrene Kilometer" Grid.Column="0" x:Name="lblDistance" HorizontalAlignment="Right" />
<dxe:SpinEdit Grid.Row="1" Increment="5" MinValue="0" IsFloatValue="True" Mask="########0.0#" MaskUseAsDisplayFormat="True"
<dxe:SpinEdit Grid.Row="1" Increment="1" MinValue="0" IsFloatValue="True" Mask="########0.0#" MaskUseAsDisplayFormat="True"
AllowNullInput="False" x:Name="numerictb_distance" EditValue="{Binding Mode=TwoWay, Path=PrototypeVM.DistanceInMeter, UpdateSourceTrigger=PropertyChanged}"
Grid.Column="1" Height="23" Margin="3,0,3,3" Width="52" />
</Grid>

View File

@@ -29,6 +29,7 @@ namespace BeWo.ViewModel
public static string PropertyName_Percentage = "Percentage";
public static string PropertyName_ServiceCategory = "ServiceCategory";
public static string PropertyName_SupportConceptApprovalEmployeeRelations = "SupportConceptApprovalEmployeeRelations";
public static string PropertyName_Notice = "Notice";
private SupportConceptApprovalInterval? _ApprovedBEInterval;
private decimal? _ApprovedBEPerInterval;
@@ -49,6 +50,7 @@ namespace BeWo.ViewModel
private BudgetDC _BudgetDC;
private Bewilligungsart _Bewilligungsart;
private ObservableSortCollection<BudgetDC> _Budgets;
private String _Notice;
#endregion
#region Constructors and Destructors
@@ -239,6 +241,21 @@ namespace BeWo.ViewModel
}
}
public String Notice
{
get { return this._Notice; }
set
{
if (this.AreDifferent(this._Notice, value))
{
this._Notice = value;
this.StoreDirtyInformation(this.AreDifferent(this.DataContract.Notice, value), PropertyName_Notice);
this.FirePropertyChanged(PropertyName_Notice);
}
}
}
public ServiceCategoryDC ServiceCategory
{
get { return this._ServiceCategory; }
@@ -435,6 +452,7 @@ namespace BeWo.ViewModel
_ServiceCategory = pDataContract.ServiceCategory;
_BudgetDC = pDataContract.BudgetDC;
_Bewilligungsart = pDataContract.Bewilligungsart;
_Notice = pDataContract.Notice;
SupportConceptApprovalEmployeeRelations = VMFactory.CreateSupportConceptApprovalPeriodEmployeeRelListVM(pDataContract.SupportConceptApprovalPeriodEmployeeRelations ?? (pDataContract.SupportConceptApprovalPeriodEmployeeRelations = new List<SupportConceptApprovalPeriodEmployeeRelDC>()));
}
@@ -457,6 +475,7 @@ namespace BeWo.ViewModel
pDataContract.ServiceCategory = _ServiceCategory;
pDataContract.BudgetDC = _BudgetDC;
pDataContract.Bewilligungsart = _Bewilligungsart;
pDataContract.Notice = _Notice;
pDataContract.SupportConceptApprovalPeriodEmployeeRelations = _SupportConceptApprovalEmployeeRelations.CopyToDCList(doCommit);

View File

@@ -8,7 +8,7 @@
<IISExpressWindowsAuthentication />
<IISExpressUseClassicPipelineMode />
<UseGlobalApplicationHostFile />
<LastActiveSolutionConfig>Debug|Any CPU</LastActiveSolutionConfig>
<LastActiveSolutionConfig>Release|Any CPU</LastActiveSolutionConfig>
<ProjectView>ShowAllFiles</ProjectView>
<WebStackScaffolding_ViewDialogWidth>600</WebStackScaffolding_ViewDialogWidth>
<Controller_SelectedScaffolderID>MvcControllerEmptyScaffolder</Controller_SelectedScaffolderID>

View File

@@ -4,6 +4,8 @@ using System.IO;
using System.Linq;
using System.Net;
using System.Web.Mvc;
using BeWo.Report;
using BeWo.Service.Plugins;
using BeWo.Service.Security;
using BeWoPlanerMobil.Models;
using BeWoPlanerMobil.Service;
@@ -32,7 +34,7 @@ namespace BeWoPlanerMobil.Controllers
if(((ReportViewerModel)Session[ModelSessionConstants.ReportViewerModelKey])?.Employee is null)
{
_Model = new ReportViewerModel { Employee = MobileSessionFacade.LoggedInEmployee };
_Model = new ReportViewerModel { Employee = MobileSessionFacade.LoggedInEmployee, ReportCreator = GetReportCreator() };
Session[ModelSessionConstants.ReportViewerModelKey] = _Model;
}
else
@@ -110,77 +112,88 @@ namespace BeWoPlanerMobil.Controllers
[Authorize]
public ActionResult LoadCustomReport(long? reportOid)
{
var logFileName = log4net.GlobalContext.Properties["LogFileName"];
Log.Info($"LoadCustomReport für ReportOid {reportOid}");
if(Model?.Employee?.EmployeeOid is null || reportOid is null)
try
{
return Logout();
var logFileName = log4net.GlobalContext.Properties["LogFileName"];
Log.Info($"LoadCustomReport für ReportOid {reportOid}");
if (Model?.Employee?.EmployeeOid is null || reportOid is null)
{
return Logout();
}
var selectedQuery = Model.Queries.FirstOrDefault(query => query.Oid.Equals(reportOid.Value));
if (selectedQuery is null)
{
Log.Info($"Query mit Oid {reportOid} nicht in der Datenbank gefunden!");
Model.Report = null;
return PartialView("DocumentWebViewerPartial", Model);
}
var dcid = $"{MobileSessionFacade.Tenant}queryeoid{Model.Employee.EmployeeOid.Value}";
//var queryReportUri = GetQueryReportUrl(selectedQuery);
//Log.Info($"QueryReportUri = " + queryReportUri);
//var baseUri = SecurityUtils.RemoveAuthenticationInfoFromUri(queryReportUri);
var test = QueryService.ExecuteQuery(selectedQuery.Oid, null);
if (test is null)
{
Log.Info($"Query-Ergebnis für QueryOid {selectedQuery.Oid} ist null");
return PartialView("DocumentWebViewerPartial", Model);
}
QueryService.PrepareQueryReport(test, dcid);
//var tempToken = DownloadService.CreateTemporaryToken(baseUri, false);
//var addChar = baseUri.Contains("?") ? "&" : "?";
//var finalUri = $"{baseUri}{addChar}token={tempToken}";
//Log.Info("finalUri = " + finalUri);
//var webClient = new WebClient();
//var data = webClient.DownloadData(finalUri);
//var report = new XtraReport();
//using (var memoryStream = new MemoryStream(data))
//{
// report.PrintingSystem.LoadDocument(memoryStream);
//}
Model.Report = Model.ReportCreator.CreateQueryReport(selectedQuery.Oid, dcid);
Log.Info($"Report wurde erstellt für Query-Oid {selectedQuery.Oid}");
}
var selectedQuery = Model.Queries.FirstOrDefault(query => query.Oid.Equals(reportOid.Value));
if(selectedQuery is null)
catch (Exception e)
{
Log.Info($"Query mit Oid {reportOid} nicht in der Datenbank gefunden!");
Model.Report = null;
return PartialView("DocumentWebViewerPartial", Model);
Log.Error(e);
}
var queryReportUri = GetQueryReportUrl(selectedQuery);
var baseUri = SecurityUtils.RemoveAuthenticationInfoFromUri(queryReportUri);
var test = QueryService.ExecuteQuery(selectedQuery.Oid, null);
if(test is null)
{
Log.Info($"Query-Ergebnis für QueryOid {selectedQuery.Oid} ist null");
return PartialView("DocumentWebViewerPartial", Model);
}
QueryService.PrepareQueryReport(test, $"{MobileSessionFacade.Tenant}queryeoid{Model.Employee.EmployeeOid.Value}");
var tempToken = DownloadService.CreateTemporaryToken(baseUri, false);
var addChar = baseUri.Contains("?") ? "&" : "?";
var finalUri = $"{baseUri}{addChar}token={tempToken}";
var webClient = new WebClient();
var data = webClient.DownloadData(finalUri);
var report = new XtraReport();
using(var memoryStream = new MemoryStream(data))
{
report.PrintingSystem.LoadDocument(memoryStream);
}
Model.Report = report;
Log.Info($"Report wurde erstellt für Query-Oid {selectedQuery.Oid}");
return PartialView("DocumentWebViewerPartial", Model);
}
[Authorize]
private string GetQueryReportUrl(QueryDC query)
{
var url = Request?.Url;
//private string GetQueryReportUrl(QueryDC query)
//{
// var url = Request?.Url;
if(Model?.Employee?.EmployeeOid is null || url is null || query is null)
{
return null;
}
// if(Model?.Employee?.EmployeeOid is null || url is null || query is null)
// {
// return null;
// }
//DEBUG: http://localhost:3777/service
//RELEASE: https://app4.bewoplaner.de/service
// http://localhost:3777/Host/ReportView.aspx?dcid=demoqueryeoid372&qoid=1304&type=QueryReport
// //DEBUG: http://localhost:3777/service
// //RELEASE: https://app4.bewoplaner.de/service
// // http://localhost:3777/Host/ReportView.aspx?dcid=demoqueryeoid372&qoid=1304&type=QueryReport
var urlSuffix = $"/ReportView.aspx?dcid={MobileSessionFacade.Tenant}queryeoid{Model.Employee.EmployeeOid.Value}&qoid={query.Oid}&type={Utils.EnumName(ReportTypes.QueryReport)}";
// var urlSuffix = $"/ReportView.aspx?dcid={MobileSessionFacade.Tenant}queryeoid{Model.Employee.EmployeeOid.Value}&qoid={query.Oid}&type={Utils.EnumName(ReportTypes.QueryReport)}";
return GetSiteOfOrigin() + urlSuffix;
}
// return GetSiteOfOrigin() + urlSuffix;
//}
private string GetSiteOfOrigin()
{
@@ -195,7 +208,7 @@ namespace BeWoPlanerMobil.Controllers
return "http://localhost:3777/Host";
#endif
return $"{url.Scheme}//{url.Host}";
return $"{url.Scheme}://{url.Host}/service";
}
[Authorize]
@@ -229,7 +242,8 @@ namespace BeWoPlanerMobil.Controllers
var year = int.Parse(splitParameters[1]);
var isEmployee = bool.Parse(splitParameters[2]);
var all = bool.Parse(splitParameters[3]);
long? employeeOid = null;
List<long> teamOids = null;
long? oid = null;
if(long.TryParse(splitParameters[4], out var oOid))
{
@@ -240,11 +254,11 @@ namespace BeWoPlanerMobil.Controllers
var siteOfOrigin = GetSiteOfOrigin();
var url = $"{siteOfOrigin}/ReportView.aspx?type={Utils.EnumName(ReportTypes.EmployeeHourReport)}";
//var url = $"{siteOfOrigin}/ReportView.aspx?type={Utils.EnumName(ReportTypes.EmployeeHourReport)}";
if(isEmployee)
{
var employeeOid = oid;
employeeOid = oid;
if(all || !AbstractModel.HasRightMitarbeiterstundenkontoViewAll)
{
@@ -263,11 +277,13 @@ namespace BeWoPlanerMobil.Controllers
if(employeeOid > 0)
{
url += $"&eoid={employeeOid}";
//url += $"&eoid={employeeOid}";
}
}
else
{
teamOids = new List<long>();
var teamOid = oid;
if(all || (!AbstractModel.HasRightMitarbeiterstundenkontoViewAll && !AbstractModel.HasRightMitarbeiterstundenkontoViewTeams))
@@ -280,45 +296,64 @@ namespace BeWoPlanerMobil.Controllers
teamOid = oid;
}
url += "&toid=";
//url += "&toid=";
if(teamOid > 0 && !all)
{
url += $"{teamOid}";
//url += $"{teamOid}";
teamOids.Add(teamOid.Value);
}
else if(all)
{
url += string.Join(",", Model.AllTeams.Select(team => team.TeamOid));
// url += string.Join(",", Model.AllTeams.Select(team => team.TeamOid));
teamOids.AddRange(Model.AllTeams.Select(team => team.TeamOid));
}
}
url += $"&m={month}&y={year}";
//url += $"&m={month}&y={year}";
if(ansicht != 0)
{
url += $"&ansicht={ansicht}";
}
//if(ansicht != 0)
//{
// url += $"&ansicht={ansicht}";
//}
var tempToken = DownloadService.CreateTemporaryToken(url, true);
//var tempToken = DownloadService.CreateTemporaryToken(url, true);
url += $"&token={tempToken}";
//url += $"&token={tempToken}";
var webClient = new WebClient();
//var webClient = new WebClient();
var data = webClient.DownloadData(url);
//var data = webClient.DownloadData(url);
var report = new XtraReport();
//var report = new XtraReport();
using(var memoryStream = new MemoryStream(data))
{
report.PrintingSystem.LoadDocument(memoryStream);
}
//using(var memoryStream = new MemoryStream(data))
//{
// report.PrintingSystem.LoadDocument(memoryStream);
//}
var start = new DateTime(year, month, 1);
var end = start.AddMonths(1);
var report = Model.ReportCreator.CreateEmployeeHourReport(employeeOid, teamOids, start, end, ansicht);
Model.Report = report;
}
}
return PartialView("DocumentWebViewerPartial", Model);
}
private AbstractReportCreator GetReportCreator()
{
var creator = PluginLoader.FindClass<DefaultReportCreator>();
creator.Tenant = PluginLoader.Tenant;
creator.ReportPath = PluginLoader.CustomerPluginPath();
#if DEBUG
creator.TempPath = BS.Shared.Core.Utils.CreateSavePath(AppDomain.CurrentDomain.BaseDirectory, @"demo\temp");
#else
creator.TempPath = BS.Shared.Core.Utils.CreateSavePath(AppDomain.CurrentDomain.BaseDirectory, PluginLoader.Tenant + @"\temp");
#endif
Log.Info(String.Format("Create ReportCreator: {0}, Tenant={1}, ReportPath={2}, TempPath={3}", creator.GetType().FullName, creator.Tenant, creator.ReportPath, creator.TempPath));
return creator;
}
}
}

View File

@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web.Mvc;
using BeWo.Report;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
using DevExpress.XtraReports.UI;
@@ -14,7 +15,7 @@ namespace BeWoPlanerMobil.Models
public List<CompactEmployeeDC> AllEmployees { get; set; }
public List<CompactTeamDC> AllTeams { get; set; }
public List<QueryDC> Queries { get; set; }
public AbstractReportCreator ReportCreator { get; set; }
[Display(Name = "Monat")]
public int? SelectedMonth { get; set; }

View File

@@ -346,14 +346,14 @@ Alternativ wäre der 1120er Satz mit einzubauen (ab Seite 61)
//( ):1100; 14280; ; ; 10907; ; ; 1960133; ; 07022019; 8408; 1; M; F / G 1960133; 0; ; ; ; 1; ; ; ; ; ; 160;
sb.Append("( ):1100;");
sb.Append(String.Format("{0:0};;;", ds.Betrag)); // Betrag
sb.Append(ds.Erloeskonto); // HabenKonto
sb.Append(";;0;");
sb.Append(ds.Debitor); // SollKonto (Debitor)
sb.Append(";;;");
sb.Append(ds.Belegnr); // Belegnummer
sb.Append(";;");
sb.Append(String.Format("{0:ddMMyyyy}", ds.Belegdatum)); // Belegdatum
sb.Append(";");
sb.Append(ds.Debitor); // SollKonto (Debitor)
sb.Append(";;;"); //
sb.Append(ds.Erloeskonto); // HabenKonto
sb.Append(";;0;"); //
sb.Append(ds.Buchungstext); // Buchungstext
sb.Append(";0;;;;0");
//sb.Append(";0;;;;05;;;;;;");
@@ -391,7 +391,7 @@ Alternativ wäre der 1120er Satz mit einzubauen (ab Seite 61)
sb.Append(ds.Erloeskonto); // HabenKonto
sb.Append(";");
sb.Append(ds.Debitor); // SollKonto (Debitor)
sb.Append(";0;");;
sb.Append(";1;");;
sb.Append(ds.Belegnr); // Belegnummer
sb.Append(";;");
sb.Append(String.Format("{0:ddMMyyyy}", ds.Belegdatum)); // Belegdatum

View File

@@ -346,14 +346,14 @@ Alternativ wäre der 1120er Satz mit einzubauen (ab Seite 61)
//( ):1100; 14280; ; ; 10907; ; ; 1960133; ; 07022019; 8408; 1; M; F / G 1960133; 0; ; ; ; 1; ; ; ; ; ; 160;
sb.Append("( ):1100;");
sb.Append(String.Format("{0:0};;;", ds.Betrag)); // Betrag
sb.Append(ds.Erloeskonto); // HabenKonto
sb.Append(";;0;");
sb.Append(ds.Debitor); // SollKonto (Debitor)
sb.Append(";;;");
sb.Append(ds.Belegnr); // Belegnummer
sb.Append(";;");
sb.Append(String.Format("{0:ddMMyyyy}", ds.Belegdatum)); // Belegdatum
sb.Append(";");
sb.Append(ds.Debitor); // SollKonto (Debitor)
sb.Append(";;;"); //
sb.Append(ds.Erloeskonto); // HabenKonto
sb.Append(";;0;"); //
sb.Append(ds.Buchungstext); // Buchungstext
sb.Append(";0;;;;0");
//sb.Append(";0;;;;05;;;;;;");
@@ -391,7 +391,7 @@ Alternativ wäre der 1120er Satz mit einzubauen (ab Seite 61)
sb.Append(ds.Erloeskonto); // HabenKonto
sb.Append(";");
sb.Append(ds.Debitor); // SollKonto (Debitor)
sb.Append(";0;"); ;
sb.Append(";1;");;
sb.Append(ds.Belegnr); // Belegnummer
sb.Append(";;");
sb.Append(String.Format("{0:ddMMyyyy}", ds.Belegdatum)); // Belegdatum

File diff suppressed because it is too large Load Diff

View File

@@ -1,26 +0,0 @@
using System;
using System.Linq;
using BeWo.Report;
using BeWo.Report.ReportObjects;
namespace LebenshilfeDorsten
{
public partial class BudgetnachweisAnhang : DevExpress.XtraReports.UI.XtraReport, IBeWoReport<BudgetnachweisAnhangRO>
{
public BudgetnachweisAnhang()
{
InitializeComponent();
}
public void SetReportDataSource(BudgetnachweisAnhangRO pRO)
{
if (!String.IsNullOrEmpty(pRO.CustomerDC.LastName))
{
}
bindingSource1.DataSource = pRO;
}
}
}

View File

@@ -1,126 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<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>
<data name="xrLabel1.Text" xml:space="preserve">
<value>Über den Budgetnachweis werden auf Grundlage der Quittierungsbelege im nachstehenden Umfang folgende, im direkten Betreuungskontakt erbrachte Minuten zur Abrechnung beantragt (direkte Fachleistungsminuten = D-FLMin). Die Summe der D-FLMin wird in direkte Fachleistungsstunden (D-FLS) umgerechnet.</value>
</data>
</root>

View File

@@ -54,12 +54,6 @@
<Compile Include="Budgetnachweis.Designer.cs">
<DependentUpon>Budgetnachweis.cs</DependentUpon>
</Compile>
<Compile Include="BudgetnachweisAnhang.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="BudgetnachweisAnhang.Designer.cs">
<DependentUpon>BudgetnachweisAnhang.cs</DependentUpon>
</Compile>
<Compile Include="Calculations\GroupDurationCalculator.cs" />
<Compile Include="CustomReportCreator.cs" />
<Compile Include="CustomSupportConceptAnalysisCreator.cs" />
@@ -114,10 +108,6 @@
<DependentUpon>Budgetnachweis.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="BudgetnachweisAnhang.resx">
<DependentUpon>BudgetnachweisAnhang.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Properties\licenses.licx" />
<EmbeddedResource Include="Quittierungsbeleg.resx">
<DependentUpon>Quittierungsbeleg.cs</DependentUpon>

View File

@@ -25,7 +25,8 @@ namespace BeWo.Service.DCEntityMapper
pDataContract.ApprovedFixedAmount = pEntity.ApprovedFixedAmount;
pDataContract.ApprovedFixedAmountInterval = pEntity.ApprovedFixedAmountInterval;
pDataContract.Bewilligungsart = pEntity.Bewilligungsart;
;
pDataContract.Notice = pEntity.Notice;
pDataContract.SupportConceptApprovalPeriodEmployeeRelations = MapperFactory.SupportConceptApprovalPeriodEmployeeRelDC_SupportConceptApprovalPeriod2Employee.MapToNewDCs(pEntity.SupportConceptApprovalPeriod2Employee);
@@ -76,6 +77,7 @@ namespace BeWo.Service.DCEntityMapper
pEntity.Version = pDataContract.SupportConceptApprovalPeriodVersion;
pEntity.StartDate = pDataContract.StartDate;
pEntity.Bewilligungsart = pDataContract.Bewilligungsart;
pEntity.Notice = pDataContract.Notice;
if (pDataContract.BudgetDC == null)
{

View File

@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.DCEntityMapper;
using BS.Shared.Core;
using BS.Shared.DataContracts;
@@ -12,6 +13,12 @@ namespace BeWo.Service.Plugins
{
public class HomeContentGenerator : AbstractIDSpecificDefaultClass<HomeContentGenerator>
{
public virtual IList<HomeViewPanelDC> GetHomeViewPanels()
{
return MapperFactory.HomeViewPanelDC_HomeViewPanel.MapToNewDCs(
DAOFactory.GenericDAO.GetAllActive<HomeViewPanel>());
}
public virtual List<CompactPersonDC> GetPersonsHavingBirthday(DateTime birthdayUntil)
{
return MapperFactory.CompactPersonDC_Person.MapToNewDCs(
@@ -38,5 +45,7 @@ namespace BeWo.Service.Plugins
return MapperFactory.CompactSupportConceptDC_SupportConcept.MapToNewDCs(
DAOFactory.SearchDAO.FindSupportConceptsWithConferenceDate(employeeOid, conferenceDateUntil));
}
}
}

View File

@@ -358,7 +358,7 @@ namespace BeWo.Service.Plugins
}
}
private static String CustomerPluginPath()
public static String CustomerPluginPath()
{
var path = ConfigurationManager.AppSettings.Get("PluginPath");
if (path != null)

View File

@@ -96,6 +96,8 @@ namespace BeWo.Service.Plugins
AddOrReplaceTranslation(dict, "Neue Mitarbeiterlizenz bestellen", "Neue Lizenz bestellen");
AddOrReplaceTranslation(dict, "BewilligungBemerkung", "Bemerkung");
//AddOrReplaceTranslation(dict, "StundenkontoTagesansicht", "Tagesansicht anzeigen");
return dict;

View File

@@ -5917,8 +5917,10 @@ namespace BeWo.Service.ServiceImplementations
{
try
{
return MapperFactory.HomeViewPanelDC_HomeViewPanel.MapToNewDCs(
DAOFactory.GenericDAO.GetAllActive<HomeViewPanel>());
var hcg = PluginLoader.FindClass<HomeContentGenerator>();
return hcg.GetHomeViewPanels();
}
catch (Exception exception)
{

View File

@@ -42,6 +42,9 @@ namespace BS.Shared.DataContracts
[DataMember]
public decimal? MonthlyPayment { get; set; }
[DataMember]
public String Notice { get; set; }
public DateTimeSpan Span
{
get