Drucken Vertretungen in GUI(Report fehlt noch)

This commit is contained in:
Christian
2023-07-14 00:32:16 +02:00
parent 0017a3e89f
commit d158b2fad6
18 changed files with 2416 additions and 930 deletions

View File

@@ -668,19 +668,31 @@ namespace BeWo
{
string localAppData = Environment.GetFolderPath(
Environment.SpecialFolder.LocalApplicationData);
string companyFilePath
string companyFilePathBS
= Path.Combine(localAppData, "beyondSoft");
string bewoFilePathBS
= Path.Combine(companyFilePathBS, "BeWoPlaner");
if (!Directory.Exists(companyFilePath))
Directory.CreateDirectory(companyFilePath);
string companyFilePathOS
= Path.Combine(localAppData, "ownSoft");
string bewoFilePath
= Path.Combine(companyFilePath, "BeWoPlaner");
if (!Directory.Exists(companyFilePathOS))
Directory.CreateDirectory(companyFilePathOS);
if (!Directory.Exists(bewoFilePath))
Directory.CreateDirectory(bewoFilePath);
return bewoFilePath;
string bewoFilePathOS
= Path.Combine(companyFilePathOS, "BeWoPlaner");
if (!Directory.Exists(bewoFilePathOS))
Directory.CreateDirectory(bewoFilePathOS);
//return bewoFilePathBS; // raus
CheckOldBSPathAndCopyFiles(bewoFilePathBS, bewoFilePathOS);
return bewoFilePathOS;
}
catch (Exception ex)
{
@@ -691,6 +703,32 @@ namespace BeWo
return Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
}
private static void CheckOldBSPathAndCopyFiles(string companyFilePathBS, string companyFilePathOS)
{
if (Directory.Exists(companyFilePathBS))
{
var bsFiles = Directory.GetFiles(companyFilePathBS);
if (bsFiles.Length > 0)
{
var osFiles = Directory.GetFiles(companyFilePathOS);
if (osFiles.Length == 0)
{
foreach (var file in bsFiles)
{
File.Move(file, Path.Combine(companyFilePathOS, Path.GetFileName(file)));
}
Directory.Delete(companyFilePathBS);
}
}
//var p = Directory.GetParent(companyFilePathBS);
//Directory.Delete(Directory.GetParent(companyFilePathBS).FullName);
}
}
internal static bool HasLoggedOnUserRight(UserRightType[] pRight)
{
if (LoggedOnUser != null)

File diff suppressed because it is too large Load Diff

View File

@@ -15,6 +15,7 @@ using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
using BS.Shared.Extensions;
using BS.Shared.Translation;
using DevExpress.Utils;
using DevExpress.Xpf.Bars;
using DevExpress.Xpf.Editors;
@@ -69,7 +70,7 @@ namespace BeWo.SchulbegleitenderDienst
KlientVertretungsearchview.ItemSelected += KlientVertretungsearchview_KlientVertretungSelected;
MitarbeiterVertretungsearchview.ItemSelected += MitarbeiterVertretungsearchview_MitarbeiterVertretungSelected;
UpdateReportUri();
//TableViewTagesansichtMitarbeiter.CellToolTipTemplate
}
@@ -1304,6 +1305,32 @@ namespace BeWo.SchulbegleitenderDienst
//ignore
}
}
private void LinkPdfExport_OnRequestNavigate(object sender, RequestNavigateEventArgs e)
{
UpdateReportUri();
BeWoUtils.NavigateToReportUri((sender as System.Windows.Documents.Hyperlink).NavigateUri.ToString(), Translator.Translate("Vertretungsplanung"));
}
private void UpdateReportUri()
{
int ansicht = 1;
if (ScrollViewerWochenansicht.Visibility == Visibility.Visible)
{
ansicht = 2;
}
var url = BeWoApp.SiteOfOrigin
+ "/ReportView.aspx"
+ "?type=" + Utils.EnumName(ReportTypes.VertretungsPlanung)
+ "&dt=" + Datepicker.DateTime.Date.ToString("dd.MM.yyyy")
+ "&ansicht=" + ansicht;
linkPdfExport.NavigateUri = new Uri(url);
}
//private void TableView_SizeChanged(object sender, SizeChangedEventArgs e)
//{
// var view = sender as TableView;

View File

@@ -21,10 +21,12 @@ namespace BeWo.View.Master
public Dictionary<TabItem, BeWoView> OpenViews { get; } = new Dictionary<TabItem, BeWoView>();
private bool ignoreSelectTabEvents = true;
private bool initRights = true;
public ReportView()
{
InitializeComponent();
initRights = true;
//InitRights();
}
@@ -56,6 +58,11 @@ namespace BeWo.View.Master
private void InitRights()
{
if (!initRights)
{
return;
}
initRights = false;
var isQueriesTabItemCollapsed = false;
var isTabLoaded = false;

View File

@@ -8,17 +8,17 @@
<basicHttpBinding>
<binding name="BeWoBasicEndpoint" closeTimeout="00:05:00" openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="524288" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true" messageEncoding="Text">
<readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None" />
<security mode="Transport" />
<!-- mode="Transport" für https und "None" sonst-->
</binding>
<binding name="BeWoStreamingEndpoint" receiveTimeout="10:10:00" sendTimeout="10:01:00" maxBufferSize="65536" maxReceivedMessageSize="67108864" transferMode="StreamedRequest" useDefaultWebProxy="true" messageEncoding="Text">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None" />
<security mode="Transport" />
<!-- mode="Transport" für https -->
</binding>
<binding name="QueryServiceEndpoint" closeTimeout="00:10:00" openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="524288" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true" messageEncoding="Text">
<readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None">
<security mode="Transport">
<transport clientCredentialType="None" proxyCredentialType="None" realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>

View File

@@ -18,7 +18,7 @@
<property column="SystemEntryID" type="BS.Shared.SystemEntryID, BS.Shared" name="SystemEntryID" />
<property column="CreationDate" type="DateTime" name="Zeitstempel" />
<property column="PasswordHash" type="String" name="BCryptPassword" />
<many-to-one name="Employee" column="EmployeeOid" class="BeWo.Data.Entities.Employee,BeWo.Data" cascade="none" />
<bag name="UserGroups" table="InGroup" generic="true" cascade="none" batch-size="250">
<key column="ApplicationUserOid" />

View File

@@ -177,6 +177,9 @@ namespace Host
case ReportTypes.KilometerAuswertung:
report = CreateKilometerAuswertung();
break;
case ReportTypes.VertretungsPlanung:
report = CreateVertretungsPlanungReport();
break;
default:
report = CreateQueryReport();
break;
@@ -904,6 +907,17 @@ namespace Host
}
private XtraReport CreateVertretungsPlanungReport()
{
DateTime start = DateTime.Now.Date;
int ansicht = 1;
return reportCreator.CreateVertretungsPlanungReport(start, ansicht);
}
private AbstractReportCreator GetReportCreator()
{
long? templateOid = null;

View File

@@ -101,8 +101,6 @@ namespace BeWo.Report
public abstract XtraReport CreateRatingReport(long ratingOid, long supportConceptOid);
}
public abstract XtraReport CreateVertretungsPlanungReport(DateTime start, int ansicht);
}
}

View File

@@ -1164,6 +1164,18 @@ namespace BeWo.Report
return report as XtraReport;
}
public override XtraReport CreateVertretungsPlanungReport(DateTime start, int ansicht)
{
//IBeWoReport<KassenbelegRO> report = FindReportImp<KassenbelegRO>();
//var beguenstigter = LoadToBargeldkasseRelatedObject(objectTid, objectOid);
//report.SetReportDataSource(KassenbelegRO.Create(transaktion, beguenstigter));
//return report as XtraReport;
return new XtraReport();
}
private BeWoEntityBase LoadToBargeldkasseRelatedObject(TableID pObjectTid, long pObjectOid)
{
switch (pObjectTid)

View File

@@ -0,0 +1,30 @@
using System;
using BeWo.Report;
using BeWo.Report.ReportObjects;
using BS.Shared.Core;
namespace SHKService
{
[IDSpecificClass(Identifier = "MitarbeiterstundenkontoJahr")]
public partial class Arbeitszeitkonto : DevExpress.XtraReports.UI.XtraReport, IBeWoReport<MitarbeiterstundenkontoMonateRO>
{
public Arbeitszeitkonto()
{
InitializeComponent();
}
public void SetReportDataSource(MitarbeiterstundenkontoMonateRO pRO)
{
var ro = new ArbeitszeitkontoListRO();
var msb = new CustomMitarbeiterstundenkontoBerechnungMonate();
msb.CreateReport(pRO);
this.bindingSource1.DataSource = pRO;
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,129 @@
<?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>
<data name="xrRichText2.SerializableRtfString" xml:space="preserve">
<value>ewBcAHIAdABmADEAXABkAGUAZgBmADAAewBcAGYAbwBuAHQAdABiAGwAewBcAGYAMAAgAEMAYQBsAGkAYgByAGkAOwB9AHsAXABmADEAIABUAGkAbQBlAHMAIABOAGUAdwAgAFIAbwBtAGEAbgA7AH0AfQB7AFwAYwBvAGwAbwByAHQAYgBsACAAOwBcAHIAZQBkADAAXABnAHIAZQBlAG4AMABcAGIAbAB1AGUAMAAgADsAXAByAGUAZAAwAFwAZwByAGUAZQBuADAAXABiAGwAdQBlADIANQA1ACAAOwB9AHsAXAAqAFwAZABlAGYAYwBoAHAAIABcAGYAMQBcAGYAcwAyADQAfQB7AFwAcwB0AHkAbABlAHMAaABlAGUAdAAgAHsAXABxAGwAXABmADEAXABmAHMAMgA0ACAATgBvAHIAbQBhAGwAOwB9AHsAXAAqAFwAYwBzADEAXABmADEAXABmAHMAMgA0AFwAYwBmADEAIABEAGUAZgBhAHUAbAB0ACAAUABhAHIAYQBnAHIAYQBwAGgAIABGAG8AbgB0ADsAfQB7AFwAKgBcAGMAcwAyAFwAcwBiAGEAcwBlAGQAbwBuADEAXABmADEAXABmAHMAMgA0AFwAYwBmADEAIABMAGkAbgBlACAATgB1AG0AYgBlAHIAOwB9AHsAXAAqAFwAYwBzADMAXAB1AGwAXABmADEAXABmAHMAMgA0AFwAYwBmADIAIABIAHkAcABlAHIAbABpAG4AawA7AH0AewBcACoAXAB0AHMANABcAHQAcwByAG8AdwBkAFwAZgAxAFwAZgBzADIANABcAHEAbABcAHQAcwBjAGUAbABsAHAAYQBkAGQAZgBsADMAXAB0AHMAYwBlAGwAbABwAGEAZABkAGwAMQAwADgAXAB0AHMAYwBlAGwAbABwAGEAZABkAGYAYgAzAFwAdABzAGMAZQBsAGwAcABhAGQAZABmAHIAMwBcAHQAcwBjAGUAbABsAHAAYQBkAGQAcgAxADAAOABcAHQAcwBjAGUAbABsAHAAYQBkAGQAZgB0ADMAXAB0AHMAdgBlAHIAdABhAGwAdABcAGMAbAB0AHgAbAByAHQAYgAgAE4AbwByAG0AYQBsACAAVABhAGIAbABlADsAfQB7AFwAKgBcAHQAcwA1AFwAdABzAHIAbwB3AGQAXABzAGIAYQBzAGUAZABvAG4ANABcAGYAMQBcAGYAcwAyADQAXABxAGwAXAB0AHIAYgByAGQAcgB0AFwAYgByAGQAcgBzAFwAYgByAGQAcgB3ADEAMABcAHQAcgBiAHIAZAByAGwAXABiAHIAZAByAHMAXABiAHIAZAByAHcAMQAwAFwAdAByAGIAcgBkAHIAYgBcAGIAcgBkAHIAcwBcAGIAcgBkAHIAdwAxADAAXAB0AHIAYgByAGQAcgByAFwAYgByAGQAcgBzAFwAYgByAGQAcgB3ADEAMABcAHQAcgBiAHIAZAByAGgAXABiAHIAZAByAHMAXABiAHIAZAByAHcAMQAwAFwAdAByAGIAcgBkAHIAdgBcAGIAcgBkAHIAcwBcAGIAcgBkAHIAdwAxADAAXAB0AHMAYwBlAGwAbABwAGEAZABkAGYAbAAzAFwAdABzAGMAZQBsAGwAcABhAGQAZABsADEAMAA4AFwAdABzAGMAZQBsAGwAcABhAGQAZABmAHIAMwBcAHQAcwBjAGUAbABsAHAAYQBkAGQAcgAxADAAOABcAHQAcwB2AGUAcgB0AGEAbAB0AFwAYwBsAHQAeABsAHIAdABiACAAVABhAGIAbABlACAAUwBpAG0AcABsAGUAIAAxADsAfQB9AHsAXAAqAFwAbABpAHMAdABvAHYAZQByAHIAaQBkAGUAdABhAGIAbABlAH0AXABuAG8AdQBpAGMAbwBtAHAAYQB0AFwAcwBwAGwAeQB0AHcAbgBpAG4AZQBcAGgAdABtAGEAdQB0AHMAcABcAHAAYQByAGQAXABwAGwAYQBpAG4AXABxAGwAewBcAGYAcwAxADkAXABjAGYAMQAgAEIAZQBpACAARgBvAHIAdABiAGUAcwB0AGUAaABlAG4AIABkAGUAcgAgAGEAdQBzAGcAZQB3AGkAZQBzAGUAbgBlAG4AIABBAHIAYgBlAGkAdABzAHoAZQBpAHQAIAB1AG4AZAAgAEUAcgBiAHIAaQBuAGcAdQBuAGcAIAB2AG8AbgAgAEEAcgBiAGUAaQB0AHMAbABlAGkAcwB0AHUAbgBnACAAZwBlAG0AXAB1ADIAMgA4AFwAJwBlADQAXAB1ADIAMgAzAFwAJwBkAGYAfQBcAGYAcwAxADkAXABjAGYAMQBcAHAAYQByAFwAcABhAHIAZABcAHAAbABhAGkAbgBcAHEAbAB7AFwAZgBzADEAOQBcAGMAZgAxACAAYQB1AHMAZwBlAHcAaQBlAHMAZQBuAGUAbQAgAEEAYgBsAGEAdQBmAHAAbABhAG4AIABiAGkAcwAgAHoAdQBtACAARQBuAGQAZQAgAGQAZQBzACAAUwBjAGgAdQBsAGoAYQBoAHIAZQBzACAAZQByAGcAaQBiAHQAIAB1AG4AcwBlAHIAZQAgAFAAcgBvAGcAbgBvAHMAZQByAGUAYwBoAG4AdQBuAGcAfQBcAGYAcwAxADkAXABjAGYAMQBcAHAAYQByAFwAcABhAHIAZABcAHAAbABhAGkAbgBcAHEAbAB7AFwAZgBzADEAOQBcAGMAZgAxACAAegB1AG0AIABTAGMAaAB1AGwAagBhAGgAcgBlAHMAZQBuAGQAZQAgAGUAaQBuAGUAbgAgAHYAbwByAGEAdQBzAHMAaQBjAGgAdABsAGkAYwBoAGUAbgAgAEEAcgBiAGUAaQB0AHMAegBlAGkAdABrAG8AbgB0AG8AcwB0AGEAbgBkACAAaQBuACAASABcAHUAMgA0ADYAXAAnAGYANgBoAGUAIAB2AG8AbgAgAH0AewBcAGwAYQBuAGcAMQAwADMAMQBcAGwAYQBuAGcAZgBlADEAMAAzADEAXABmAHMAMQA5AFwAYwBmADEAIAB4AHgAeAB4AH0AewBcAGYAcwAxADkAXABjAGYAMQAgACAAUwB0AHUAbgBkAGUAbgAuAH0AXABmADEAXABmAHMAMgA0AFwAYwBmADEAXABwAGEAcgB9AA==</value>
</data>
<data name="xrRichText1.SerializableRtfString" xml:space="preserve">
<value>ewBcAHIAdABmADEAXABkAGUAZgBmADAAewBcAGYAbwBuAHQAdABiAGwAewBcAGYAMAAgAEMAYQBsAGkAYgByAGkAOwB9AHsAXABmADEAIABUAGkAbQBlAHMAIABOAGUAdwAgAFIAbwBtAGEAbgA7AH0AfQB7AFwAYwBvAGwAbwByAHQAYgBsACAAOwBcAHIAZQBkADAAXABnAHIAZQBlAG4AMABcAGIAbAB1AGUAMAAgADsAXAByAGUAZAAwAFwAZwByAGUAZQBuADAAXABiAGwAdQBlADIANQA1ACAAOwB9AHsAXAAqAFwAZABlAGYAYwBoAHAAIABcAGYAMQBcAGYAcwAyADQAfQB7AFwAcwB0AHkAbABlAHMAaABlAGUAdAAgAHsAXABxAGwAXABmADEAXABmAHMAMgA0ACAATgBvAHIAbQBhAGwAOwB9AHsAXAAqAFwAYwBzADEAXABmADEAXABmAHMAMgA0AFwAYwBmADEAIABEAGUAZgBhAHUAbAB0ACAAUABhAHIAYQBnAHIAYQBwAGgAIABGAG8AbgB0ADsAfQB7AFwAKgBcAGMAcwAyAFwAcwBiAGEAcwBlAGQAbwBuADEAXABmADEAXABmAHMAMgA0AFwAYwBmADEAIABMAGkAbgBlACAATgB1AG0AYgBlAHIAOwB9AHsAXAAqAFwAYwBzADMAXAB1AGwAXABmADEAXABmAHMAMgA0AFwAYwBmADIAIABIAHkAcABlAHIAbABpAG4AawA7AH0AewBcACoAXAB0AHMANABcAHQAcwByAG8AdwBkAFwAZgAxAFwAZgBzADIANABcAHEAbABcAHQAcwBjAGUAbABsAHAAYQBkAGQAZgBsADMAXAB0AHMAYwBlAGwAbABwAGEAZABkAGwAMQAwADgAXAB0AHMAYwBlAGwAbABwAGEAZABkAGYAYgAzAFwAdABzAGMAZQBsAGwAcABhAGQAZABmAHIAMwBcAHQAcwBjAGUAbABsAHAAYQBkAGQAcgAxADAAOABcAHQAcwBjAGUAbABsAHAAYQBkAGQAZgB0ADMAXAB0AHMAdgBlAHIAdABhAGwAdABcAGMAbAB0AHgAbAByAHQAYgAgAE4AbwByAG0AYQBsACAAVABhAGIAbABlADsAfQB7AFwAKgBcAHQAcwA1AFwAdABzAHIAbwB3AGQAXABzAGIAYQBzAGUAZABvAG4ANABcAGYAMQBcAGYAcwAyADQAXABxAGwAXAB0AHIAYgByAGQAcgB0AFwAYgByAGQAcgBzAFwAYgByAGQAcgB3ADEAMABcAHQAcgBiAHIAZAByAGwAXABiAHIAZAByAHMAXABiAHIAZAByAHcAMQAwAFwAdAByAGIAcgBkAHIAYgBcAGIAcgBkAHIAcwBcAGIAcgBkAHIAdwAxADAAXAB0AHIAYgByAGQAcgByAFwAYgByAGQAcgBzAFwAYgByAGQAcgB3ADEAMABcAHQAcgBiAHIAZAByAGgAXABiAHIAZAByAHMAXABiAHIAZAByAHcAMQAwAFwAdAByAGIAcgBkAHIAdgBcAGIAcgBkAHIAcwBcAGIAcgBkAHIAdwAxADAAXAB0AHMAYwBlAGwAbABwAGEAZABkAGYAbAAzAFwAdABzAGMAZQBsAGwAcABhAGQAZABsADEAMAA4AFwAdABzAGMAZQBsAGwAcABhAGQAZABmAHIAMwBcAHQAcwBjAGUAbABsAHAAYQBkAGQAcgAxADAAOABcAHQAcwB2AGUAcgB0AGEAbAB0AFwAYwBsAHQAeABsAHIAdABiACAAVABhAGIAbABlACAAUwBpAG0AcABsAGUAIAAxADsAfQB9AHsAXAAqAFwAbABpAHMAdABvAHYAZQByAHIAaQBkAGUAdABhAGIAbABlAH0AXABuAG8AdQBpAGMAbwBtAHAAYQB0AFwAcwBwAGwAeQB0AHcAbgBpAG4AZQBcAGgAdABtAGEAdQB0AHMAcABcAHAAYQByAGQAXABwAGwAYQBpAG4AXABxAGwAewBcAGIAXAB1AGwAXABmAHMAMQA5AFwAYwBmADEAIABBAGMAaAB0AHUAbgBnAH0AewBcAGYAcwAxADkAXABjAGYAMQAgADoAIABCAGkAdAB0AGUAIABiAGUAYQBjAGgAdABlAG4AIABTAGkAZQAsACAAZABhAHMAcwAgAGIAZQBpACAAZABlAHIAIABQAHIAbwBnAG4AbwBzAGUAcgBlAGMAaABuAHUAbgBnACAAZwBnAGYALgAgAGsAXAB1ADIANQAyAFwAJwBmAGMAcgB6AGwAaQBjAGgAIABlAGkAbgBnAGUAdAByAGUAdABlAG4AZQB9AFwAZgBzADEAOQBcAGMAZgAxAFwAcABhAHIAXABwAGEAcgBkAFwAcABsAGEAaQBuAFwAcQBsAHsAXABmAHMAMQA5AFwAYwBmADEAIABcAHUAMQA5ADYAXAAnAGMANABuAGQAZQByAHUAbgBnAGUAbgAgAGkAbgAgAGQAZQBuACAAQQByAGIAZQBpAHQAcwB2AGUAcgB0AHIAXAB1ADIAMgA4AFwAJwBlADQAZwBlAG4AIABvAGQAZQByACAAQQBiAGwAYQB1AGYAcABsAFwAdQAyADIAOABcACcAZQA0AG4AZQBuACAAcwBvAHcAaQBlACAAdQBuAHMAIABuAGkAYwBoAHQAIABnAGUAbQBlAGwAZABlAHQAZQB9AFwAZgBzADEAOQBcAGMAZgAxAFwAcABhAHIAXABwAGEAcgBkAFwAcABsAGEAaQBuAFwAcQBsAHsAXABmAHMAMQA5AFwAYwBmADEAIABcAHUAMQA5ADYAXAAnAGMANABuAGQAZQByAHUAbgBnAGUAbgAgAGkAbgAgAEkAaAByAGUAbgAgAEEAYgBsAGEAdQBmAHAAbABcAHUAMgAyADgAXAAnAGUANABuAGUAbgAgACgAUwB0AHUAbgBkAGUAbgBwAGwAXAB1ADIAMgA4AFwAJwBlADQAbgBlAG4AKQAgAG4AaQBjAGgAdAAgAGIAZQByAFwAdQAyADUAMgBcACcAZgBjAGMAawBzAGkAYwBoAHQAaQBnAHQAIAB3AGUAcgBkAGUAbgAgAGsAbwBuAG4AdABlAG4ALgB9AFwAZgBzADEAOQBcAGMAZgAxAFwAcABhAHIAXABwAGEAcgBkAFwAcABsAGEAaQBuAFwAcQBsAFwAZgAxAFwAZgBzADIANABcAGMAZgAxAFwAcABhAHIAfQA=</value>
</data>
<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

@@ -0,0 +1,45 @@
using BeWo.Report.ReportObjects;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SHKService
{
public class ArbeitszeitkontoListRO
{
public ArbeitszeitkontoListRO()
{
ArbeitszeitkontoList = new List<ArbeitszeitkontoRO>();
}
public List<ArbeitszeitkontoRO> ArbeitszeitkontoList
{
get; set;
}
}
public class ArbeitszeitkontoRO
{
public ArbeitszeitkontoRO()
{
ArbeitszeitkontoList = new List<ArbeitszeitkontoRO>();
}
public class EmployeeDetailMonat
{
public DateTime Monat { get; set; }
public decimal LaufendeGesamtsumme { get; set; }
public MitarbeiterstundenkontoRO.EmployeeDetail EmployeeDetail { get; set; }
}
public List<ArbeitszeitkontoRO> ArbeitszeitkontoList
{
get; set;
}
}
}

View File

@@ -48,8 +48,15 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="ArbeitszeitkontoListRO.cs" />
<Compile Include="CustomMitarbeiterstundenkontoBerechnung.cs" />
<Compile Include="CustomMitarbeiterstundenkontoBerechnungMonate.cs" />
<Compile Include="Arbeitszeitkonto.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Arbeitszeitkonto.designer.cs">
<DependentUpon>Arbeitszeitkonto.cs</DependentUpon>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Service\CustomCustomerService.cs" />
<Compile Include="Service\CustomVertretungsManager.cs" />
@@ -73,6 +80,10 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Arbeitszeitkonto.resx">
<DependentUpon>Arbeitszeitkonto.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Properties\licenses.licx" />
</ItemGroup>
<ItemGroup>

View File

@@ -20,36 +20,47 @@ namespace SHKService.Service
{
public override List<CompactVertreterEmployeeDC> SucheVertreter(VertreterSucheFilterDC filter)
{
//var vertretungsListe = CreateVertretungsListe(filter.StartDate, filter.EndDate);
//var vertreterBase = base.SucheVertreter(filter);
//// EmployeeOids der Mitarbeiter, die einen abwesenden Mitarbeiter vertreten
//var ausgewaehlteVertreter = vertretungsListe.Where(vertretungsItem => vertretungsItem.VertretungsStatus != VertretungsStatus.KlientKrank &&
// vertretungsItem.Vertreter != null &&
// vertretungsItem.Vertreter.ActivationType == ActivationTypeId.Active).Select(item => item.Vertreter.EmployeeOid);
var vertretungsListe = CreateVertretungsListe(filter.StartDate, filter.EndDate);
//// EmployeeOids der Betreuer abwesender Klienten, die nicht schon einen anderen Klienten vertreten
//var employeeOids = vertretungsListe.Where(vertretungsItem => vertretungsItem.Employee != null &&
// vertretungsItem.VertretungsStatus == VertretungsStatus.KlientKrank &&
// !ausgewaehlteVertreter.Contains(vertretungsItem.Employee.EmployeeOid)).Select(s => s.Employee.EmployeeOid);
// EmployeeOids der Mitarbeiter, die einen abwesenden Mitarbeiter vertreten
var alleZugewiesenenVertreterEmpOids = vertretungsListe.Where(vertretungsItem => vertretungsItem.VertretungsStatus != VertretungsStatus.KlientKrank &&
vertretungsItem.Vertreter != null &&
vertretungsItem.Vertreter.ActivationType == ActivationTypeId.Active).Select(item => item.Vertreter.EmployeeOid).ToList();
//// EmployeeOids von abwesenden Mitarbeitern
//var abwesenendeEmployeeOids = vertretungsListe.Where(vertretungsItem => vertretungsItem.VertretungsStatus != VertretungsStatus.KlientKrank &&
// vertretungsItem.Employee != null).Select(item => item.Employee.EmployeeOid);
// EmployeeOids von abwesenden Mitarbeitern
var abwesenendeEmployeeOids = vertretungsListe.Where(vertretungsItem => vertretungsItem.VertretungsStatus != VertretungsStatus.KlientKrank &&
vertretungsItem.Employee != null).Select(item => item.Employee.EmployeeOid);
//employeeOids = employeeOids.Where(e => !abwesenendeEmployeeOids.Contains(e));
var team = DAOFactory.GenericDAO.GetAllActive<Team>().Where(t => t.Name == "Vertretungsplanung").FirstOrDefault();
if (team != null)
{
var allEmps = team.MemberList;
var list = MapperFactory.CompactVertreterEmployeeDC_VertreterEmployee.MapToNewDCs(allEmps);
var list = new List<CompactVertreterEmployeeDC>();
var allEmps = team.MemberList;
var empsInResult = new List<Employee>();
foreach (var emp in allEmps)
{
if (!alleZugewiesenenVertreterEmpOids.Contains(emp.Oid.Value) && !abwesenendeEmployeeOids.Contains(emp.Oid.Value))
{
empsInResult.Add(emp);
var dc = MapperFactory.CompactVertreterEmployeeDC_VertreterEmployee.MapToNewDC(emp);
list.Add(dc);
}
}
if (filter.CustomerOid.HasValue && filter.VerwendeEntfernungssuche)
{
GetDistanceForVertreterEmployees(filter.CustomerOid.Value, ref list, allEmps);
GetDistanceForVertreterEmployees(filter.CustomerOid.Value, ref list, empsInResult);
}
return list;
}
return base.SucheVertreter(filter);
}
}

View File

@@ -157,7 +157,7 @@ namespace BeWo.Service.Plugins
//t = "3852198843"; // LH Mannheim
//t = "9800364930"; // BeWo Leverkusen
//t = "4439874912"; // BeWo Sahin
t = "1873138856"; // BUG e.V.
//t = "1873138856"; // BUG e.V.
//t = "6463422907"; // Caritas Leverkusen
//t = "6149463003"; // Diakonisches Werk Bad Windsheim Neustadt a. d. Aisch
//t = "6548202677"; // VKM Aachen SBD
@@ -209,7 +209,7 @@ namespace BeWo.Service.Plugins
//t = "4189934785"; // Landshuter Netzwerke
//t = "7584236951"; // Aachener Betreuungsbüro Kirschbaum und Manz GbR
//t = "3678599942"; // VKM Rietberg
t = "4069072369"; // BeWo Dreilich&Pastor (Projekt TranskulturellesBBPastor)
//t = "4069072369"; // BeWo Dreilich&Pastor (Projekt TranskulturellesBBPastor)
//t = "4160851689"; // BeWo Dreilich&Pastor (Dreilich)
//t = "9970072066"; // Bussmannshof
//t = "2993745954"; // Kollegium für freie Jugendarbeit und Berufsbildung e.V.
@@ -299,7 +299,7 @@ namespace BeWo.Service.Plugins
//t = "8251343124"; // Rat Plus Tat
//t = "6819347851"; // Awo Kreisverband Plön
//t = "2385915144"; // AKGG GmbHd
//t = "8002913382"; // AKGG GmbH (MID)
t = "8002913382"; // AKGG GmbH (MID)
//t = "5155880294"; // BHV Bergische Hauspflege
//t = "8366649557"; // Münchner Aids-Hilfe e.V.
//t = "2976949196"; // WHB Refrath gGmbH
@@ -346,7 +346,7 @@ namespace BeWo.Service.Plugins
//t = "3226307161"; // Roman Roger Puth
//t = "3522103738"; // AWO Münsterland-Recklinghausen
//t = "5592509446"; // Kontakt Verein für psychosoziale Hilfen e.V
t = "5344902949"; // SHK Service GmbH SBD
//t = "5344902949"; // SHK Service GmbH SBD
//t = "1422963536"; // Malteser-Johanniter-Johanneshaus gGmbH
//t = "5433105975"; // aha e.V.
//t = "1701920223"; // SKFM Monheim

View File

@@ -146,7 +146,7 @@ namespace BeWo.Service.SBD
var customer = employee2Customer.Customer;
var customerDC = MapperFactory.CompactCustomerDC_Customer.MapToNewDC(customer);
var customerContactInformationList = LoadContactInformationForEntity<Customer>(customer.Oid.Value);
var schools = MapperFactory.CustomerOrganisationRelationDC_Customer2Organisation.MapToNewDCs(customer.Customer2OrganisationList.Where(customer2Organisation => customer2Organisation.ValueList.Any(b => b.Entry.Type == ValueListEntryType.EnvironmentOrganisationType && b.Entry.Value.Equals("Schule"))));
var schools = MapperFactory.CustomerOrganisationRelationDC_Customer2Organisation.MapToNewDCs(customer.Customer2OrganisationList.Where(customer2Organisation => customer2Organisation.ValueList.Any(b => b.Entry.Type == ValueListEntryType.EnvironmentOrganisationType && b.Entry.Value.ToLower().Contains("schule"))));
var assistanceTimeEntries = GetAssistanceTimesForCustomer(customer, employee, absenceTime, start, end);
@@ -230,7 +230,7 @@ namespace BeWo.Service.SBD
var absenceTimeDC = MapperFactory.AbsenceTimeDC_AbsenceTime.MapToNewDC(absenceTime);
var customerDC = MapperFactory.CompactCustomerDC_Customer.MapToNewDC(customer);
var customerContactInformationList = LoadContactInformationForEntity<Customer>(customer.Oid.Value);
var schools = MapperFactory.CustomerOrganisationRelationDC_Customer2Organisation.MapToNewDCs(customer.Customer2OrganisationList.Where(customer2Organisation => customer2Organisation.ValueList.Any(b => b.Entry.Type == ValueListEntryType.EnvironmentOrganisationType && b.Entry.Value.Equals("Schule"))));
var schools = MapperFactory.CustomerOrganisationRelationDC_Customer2Organisation.MapToNewDCs(customer.Customer2OrganisationList.Where(customer2Organisation => customer2Organisation.ValueList.Any(b => b.Entry.Type == ValueListEntryType.EnvironmentOrganisationType && b.Entry.Value.ToLower().Contains("schule"))));
var schoolAssistanceTimes = GetSchoolAssistanceTimes(customer, start, end, absenceTime);
var hauptbetreuer = customer.Employee2CustomerList.FirstOrDefault(f => f.IsActive == ActivationTypeId.Active && f.ValueList.Any(b => b.Entry.Type.Equals(ValueListEntryType.StaffRoleType) && b.Entry.Value.ToLower().Equals("hauptbetreuung")))?.Employee;
if (hauptbetreuer == null)
@@ -1014,7 +1014,7 @@ namespace BeWo.Service.SBD
{
foreach (var valueListEntry2Object in customer2Organisation.ValueList)
{
if (valueListEntry2Object.Entry.Value != null && valueListEntry2Object.Entry.Value.Contains("Schule"))
if (valueListEntry2Object.Entry.Value != null && valueListEntry2Object.Entry.Value.ToLower().Contains("schule"))
{
newItem.Schule = MapperFactory.CompactOrganisationDC_Organisation.MapToNewDC(customer2Organisation.Organisation);
@@ -1251,10 +1251,10 @@ namespace BeWo.Service.SBD
var schoolAssistanceTimes = new List<Arbeitszeit>();
var customerAssistanceTimes = new List<Arbeitszeit>();
var hasSchoolAssistanceTimes = customer.Customer2OrganisationList.Any(a => a.ValueList.Any(b => b.Entry.Type == ValueListEntryType.EnvironmentOrganisationType && b.Entry.Value.Equals("Schule")));
var hasSchoolAssistanceTimes = customer.Customer2OrganisationList.Any(a => a.ValueList.Any(b => b.Entry.Type == ValueListEntryType.EnvironmentOrganisationType && b.Entry.Value.ToLower().Contains("schule")));
if (hasSchoolAssistanceTimes)
{
var school = customer.Customer2OrganisationList.FirstOrDefault(f => f.ValueList.Any(b => b.Entry.Type == ValueListEntryType.EnvironmentOrganisationType && b.Entry.Value.Equals("Schule")));
var school = customer.Customer2OrganisationList.FirstOrDefault(f => f.ValueList.Any(b => b.Entry.Type == ValueListEntryType.EnvironmentOrganisationType && b.Entry.Value.ToLower().Contains("schule")));
if (school != null)
{
allSchoolAssistanceTimes.AddRange(school.Organisation.Arbeitszeiten);
@@ -1323,10 +1323,10 @@ namespace BeWo.Service.SBD
var schoolAssistanceTimes = new List<Arbeitszeit>();
var hasSchoolAssistanceTimes = customer.Customer2OrganisationList.Any(a => a.ValueList.Any(b => b.Entry.Type == ValueListEntryType.EnvironmentOrganisationType && b.Entry.Value.Equals("Schule")));
var hasSchoolAssistanceTimes = customer.Customer2OrganisationList.Any(a => a.ValueList.Any(b => b.Entry.Type == ValueListEntryType.EnvironmentOrganisationType && b.Entry.Value.ToLower().Contains("schule")));
if (hasSchoolAssistanceTimes)
{
var school = customer.Customer2OrganisationList.FirstOrDefault(f => f.ValueList.Any(b => b.Entry.Type == ValueListEntryType.EnvironmentOrganisationType && b.Entry.Value.Equals("Schule")));
var school = customer.Customer2OrganisationList.FirstOrDefault(f => f.ValueList.Any(b => b.Entry.Type == ValueListEntryType.EnvironmentOrganisationType && b.Entry.Value.ToLower().Contains("schule")));
if (school != null)
{
allSchoolAssistanceTimes.AddRange(school.Organisation.Arbeitszeiten);
@@ -1350,7 +1350,7 @@ namespace BeWo.Service.SBD
protected void GetDistanceForVertreterEmployees(long customerOid, ref List<CompactVertreterEmployeeDC> list, IList<Employee> employees)
{
var customer = DAOFactory.GenericDAO.LoadByID<Customer>(customerOid);
var school = customer.Customer2OrganisationList.FirstOrDefault(f => f.ValueList.Any(b => b.Entry.Type == ValueListEntryType.EnvironmentOrganisationType && b.Entry.Value.Equals("Schule")));
var school = customer.Customer2OrganisationList.FirstOrDefault(f => f.ValueList.Any(b => b.Entry.Type == ValueListEntryType.EnvironmentOrganisationType && b.Entry.Value.ToLower().Contains("schule")));
var origin = new Address[] { school.Person.Address };
var destinations = employees.Select(x => x.Person.Address).ToArray();

View File

@@ -37,6 +37,8 @@
MitarbeiterKlientenReport,
HilfeplanStatistik,
RatingReport,
KilometerAuswertung
KilometerAuswertung,
VertretungsPlanung
}
}