Bugfixing Mok

This commit is contained in:
Christian
2025-06-17 13:06:29 +02:00
parent c2c1f10a5e
commit 434c42b049
28 changed files with 436 additions and 227 deletions

View File

@@ -58,7 +58,7 @@ namespace BeWo
public static string ShortVersion = "3.26";
public static string Version = "Version 3.26 Test";
public static string Version = "Version 3.26";
public static int RenderTier = 0;
public static bool IsInDesignMode = DesignerProperties.GetIsInDesignMode(new DependencyObject());

View File

@@ -178,7 +178,7 @@ namespace BeWo
}
if (BeWoApp.LoggedOnUser != null && BeWoApp.LoggedOnUser.HasRight(UserRightType.DocumentsAllowViewAll))
if (BeWoApp.LoggedOnUser != null && BeWoApp.LoggedOnUser.HasRight(UserRightType.DocumentsAllowViewAll) && BeWoApp.AppSettings.ShowWohnhilfe)
{
this.button_Dokumente.Visibility = Visibility.Visible;
}

View File

@@ -618,12 +618,14 @@
</TextBlock>
<StackPanel Margin="3">
<Button
x:Name="btnOpenAi2"
Margin="3"
HorizontalAlignment="Stretch"
Command="{Binding Path=OpenAiWindowCommand, RelativeSource={RelativeSource AncestorType={x:Type localView:BeWoView}}}">
AI Chat Window
</Button>
<Button
x:Name="btnOpenAi3"
Margin="3"
HorizontalAlignment="Stretch"
Command="{Binding Path=OpenAiPopupCommand, RelativeSource={RelativeSource AncestorType={x:Type localView:BeWoView}}}">

View File

@@ -350,7 +350,16 @@ namespace BeWo.View.Detail.Zeiterfassung
OpenAiWindowCommand = CommandFactory.GetAiViewCommand(OpenAiWindow, UserRightType.AiModuleView);
OpenAiPopupCommand = CommandFactory.GetAiViewCommand(OpenAiPopup, UserRightType.AiModuleView2);
}
if (!BeWoApp.HasLoggedOnUserRight(UserRightType.AiModuleView))
{
btnOpenAi2.Visibility = Visibility.Collapsed;
}
if (!BeWoApp.HasLoggedOnUserRight(UserRightType.AiModuleView2))
{
btnOpenAi3.Visibility = Visibility.Collapsed;
}
}
public ICommand OpenAiWindowCommand { get; set; }
public ICommand OpenAiPopupCommand { get; set; }

View File

@@ -327,6 +327,7 @@
<Compile Include="Models\ReportViewerModel.cs" />
<Compile Include="Models\SchedulerModel.cs" />
<Compile Include="Util\DcToMokMapper.cs" />
<Compile Include="Util\MokServiceRecord.cs" />
<Compile Include="Util\MokMandator.cs" />
<Compile Include="Util\MokSettings.cs" />
<Compile Include="Util\AppointmentListItem.cs" />

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<UseIISExpress>false</UseIISExpress>

View File

@@ -1336,6 +1336,7 @@ namespace BeWoPlanerMobil.Controllers
LoadCustomerToModel(customer.CustomerOid);
Model.SelectedAbsenceTime = null;
Model.SelectedAbsenceTimeOid = null;
Model.SelectedAbsenceReasonOid = -1;
return RedirectToActionPermanent("Customer", new { id = customer.CustomerOid });

View File

@@ -193,10 +193,10 @@ namespace BeWoPlanerMobil.Controllers
Model.SelectedCostBearer2SupportConceptRelListObject = Model.SupportConceptListObjects.FirstOrDefault(f => f.CostBearer2SupportConceptOid == Model.SelectedCostBearerSupportConceptOid) ?? Model.SupportConceptListObjects.First();
}
if (Model.SelectedSupportConceptOid.HasValue)
{
//if (Model.SelectedSupportConceptOid.HasValue)
//{
}
//}
if (Model.SelectedConceptCostBearerRelationOids.Count > 0)
{
@@ -213,7 +213,10 @@ namespace BeWoPlanerMobil.Controllers
LoadSupportConceptThings(Model.SelectedCostBearerSupportConceptOid);
LoadPaginatedServiceRecordsToModel(Model.CurrentPage);
}
else if (Model.IsInGroupBookingMode || Model.IsInMultiBookingMode)
{
LoadSupportConceptThings(null);
}
if (Model.AllGoals != null)
{
Model.SelectedGoals = Model.AllGoals.Where(g => Model.SelectedGoalOids.Contains(g.ValueListEntryOid.Value)).ToList();
@@ -1371,10 +1374,34 @@ namespace BeWoPlanerMobil.Controllers
{
Log.Error(e.Message, e);
}
if (!Model.IsInGroupBookingMode && !Model.IsInMultiBookingMode)
{
//Setze den zuletzt ausgewählten HP zurück, sonst springt die Anzeige dorthin
Model.PreviouslySelectedCostbearer2SupportConceptOid = null;
}
//Wenn nicht im Editing Mode, dann behalte die zuletzt ausgewählte Leistung bei, die im Reset zurückgesetzt wird
long? oldCatOid = null;
long? oldDescOid = null;
if (!Model.IsInEditingMode)
{
oldCatOid = Model.SelectedServiceCategoryOid;
oldDescOid = Model.SelectedServiceDescriptionOid;
}
ResetBookingMode(Model.IsInGroupBookingMode ? BookingMode.GroupBookingMode : BookingMode.SingleBookingMode);
return ResetEditingMode();
var result = ResetEditingMode();
if (oldCatOid.HasValue && oldDescOid.HasValue)
{
Model.SelectedServiceCategoryOid = oldCatOid;
Model.SelectedServiceDescriptionOid = oldDescOid;
}
return result;
}
[Authorize]
@@ -1827,7 +1854,7 @@ namespace BeWoPlanerMobil.Controllers
long? cb2ScOid = Convert.ToInt64(formCollection[FormCollectionConstants.CostBearer2SupportConceptOidKey]);
Model.SelectedCostBearerSupportConceptOid = cb2ScOid;
Model.CurrentPage = 1;
return RedirectToActionPermanent("Main");//ResetEditingMode();
}
catch (Exception e)
@@ -2349,7 +2376,7 @@ namespace BeWoPlanerMobil.Controllers
Model.IsInEditingMode = true;
Model.PreviouslySelectedSupportConceptOid = Model.SelectedSupportConcept?.SupportConceptOid;
//Model.PreviouslySelectedSupportConceptOid = Model.SelectedSupportConcept?.SupportConceptOid;
Model.PreviouslySelectedCostbearer2SupportConceptOid = Model.SelectedCostBearerSupportConceptOid;
// Gruppenbuchung
@@ -2357,7 +2384,7 @@ namespace BeWoPlanerMobil.Controllers
{
Model.IsInGroupBookingMode = true;
Model.SelectedSupportConceptOid = null;
//Model.SelectedSupportConceptOid = null;
Model.SelectedEmployeeOid = null;
var group = OperationsService.GetServiceRecordGroup(selectedServiceRecord.GroupOid.Value);
@@ -3146,10 +3173,10 @@ namespace BeWoPlanerMobil.Controllers
ResetMultiBookingMode();
Model.PreviouslySelectedEmployeeOid = Model.SelectedEmployeeOid;
Model.PreviouslySelectedSupportConceptOid = Model.SelectedSupportConceptOid;
//Model.PreviouslySelectedSupportConceptOid = Model.SelectedSupportConceptOid;
Model.PreviouslySelectedCostbearer2SupportConceptOid = Model.SelectedCostBearerSupportConceptOid;
Model.SelectedSupportConceptOid = null;
//Model.SelectedSupportConceptOid = null;
Model.SelectedCostBearerSupportConceptOid = null;
Model.SelectedEmployeeOid = null;
@@ -3164,11 +3191,11 @@ namespace BeWoPlanerMobil.Controllers
ResetGroupBookingMode();
Model.PreviouslySelectedEmployeeOid = Model.SelectedEmployeeOid;
Model.PreviouslySelectedSupportConceptOid = Model.SelectedSupportConceptOid;
//Model.PreviouslySelectedSupportConceptOid = Model.SelectedSupportConceptOid;
Model.PreviouslySelectedCostbearer2SupportConceptOid = Model.SelectedCostBearerSupportConceptOid;
Model.SelectedSupportConceptOid = null;
//Model.SelectedSupportConceptOid = null;
Model.SelectedCostBearerSupportConceptOid = null;
Model.SelectedEmployeeOid = null;
@@ -3185,10 +3212,10 @@ namespace BeWoPlanerMobil.Controllers
Model.SelectedEmployeeOid = Model.PreviouslySelectedEmployeeOid ?? LoggedInUser.Employee.EmployeeOid;
if (Model.PreviouslySelectedSupportConceptOid.HasValue)
{
Model.SelectedSupportConceptOid = Model.PreviouslySelectedSupportConceptOid;
}
//if (Model.PreviouslySelectedSupportConceptOid.HasValue)
//{
// Model.SelectedSupportConceptOid = Model.PreviouslySelectedSupportConceptOid;
//}
if (Model.PreviouslySelectedCostbearer2SupportConceptOid.HasValue)
{
Model.SelectedCostBearerSupportConceptOid = Model.PreviouslySelectedCostbearer2SupportConceptOid;
@@ -3196,9 +3223,10 @@ namespace BeWoPlanerMobil.Controllers
ResetGroupBookingMode();
ResetMultiBookingMode();
}
Model.SelectedSupportConceptOid = Model.SelectedSupportConcept?.SupportConceptOid;
//Model.SelectedSupportConceptOid = Model.SelectedSupportConcept?.SupportConceptOid;
Model.SelectedEmployeeOid = Model.SelectedEmployee?.EmployeeOid;
Model.SelectedServiceRecordOid = Model.SelectedServiceRecord?.ServiceRecordOid;
@@ -3266,9 +3294,10 @@ namespace BeWoPlanerMobil.Controllers
return Logout();
}
if(Model.PreviouslySelectedSupportConceptOid != null && Model.SelectedSupportConceptOid is null)
//if(Model.PreviouslySelectedSupportConceptOid != null && Model.SelectedSupportConceptOid is null)
if (Model.PreviouslySelectedCostbearer2SupportConceptOid != null && Model.SelectedCostBearerSupportConceptOid is null)
{
Model.SelectedSupportConceptOid = Model.PreviouslySelectedSupportConceptOid;
//Model.SelectedSupportConceptOid = Model.PreviouslySelectedSupportConceptOid;
Model.SelectedCostBearerSupportConceptOid = Model.PreviouslySelectedCostbearer2SupportConceptOid;
}

View File

@@ -748,7 +748,7 @@ namespace BeWoPlanerMobil.Controllers
(Model.Customers.FirstOrDefault(f => f.CustomerOid.Equals(signature.CustomerOid))?.LastNameFirstName ?? "unbekannt") :
signature.Employee.SimpleDescription;
result.AddIfNotIn(new ConfirmationReceiptSignatureObject(img, date, personName, signature.SignatureType == SignatureType.Employee, signature.ServiceRecords));
result.AddIfNotIn(new ConfirmationReceiptSignatureObject(img, date, personName, signature.SignatureType == SignatureType.Employee, signature.ServiceRecords.Select(s => DcToMokMapper.CreateServiceRecord(s, Model)).ToList()));
}
return result;
@@ -845,14 +845,9 @@ namespace BeWoPlanerMobil.Controllers
return;
}
if(!Guid.TryParse(guid, out var identifier))
{
return;
}
var list = Model.ConfirmationReceiptObject.ConfirmationReceiptResultList;
var confirmationReceiptResult = list.FirstOrDefault(obj => obj.Identifier.Equals(identifier));
var confirmationReceiptResult = list.FirstOrDefault(obj => obj.Identifier.Equals(guid));
if(confirmationReceiptResult is null)
{
@@ -878,12 +873,7 @@ namespace BeWoPlanerMobil.Controllers
PartialView("ConfirmationReceiptSignaturePartial");
}
if(!Guid.TryParse(identifier, out var resultIdentifier))
{
return PartialView("ConfirmationReceiptSignaturePartial", Model);
}
var obj = Model.ConfirmationReceiptObject.ConfirmationReceiptResultList.FirstOrDefault(f => f.Identifier.Equals(resultIdentifier));
var obj = Model.ConfirmationReceiptObject.ConfirmationReceiptResultList.FirstOrDefault(f => f.Identifier.Equals(identifier));
if(obj is null)
{
@@ -1260,7 +1250,7 @@ namespace BeWoPlanerMobil.Controllers
employeeSignatureState = !areAllForeignEntriesSigned && areAllOwnEntriesSigned ? SignatureState.AllOwnServiceRecords : employeeSignatureState;
}
Model.ConfirmationReceiptObject = null;
Model.ConfirmationReceiptObject = null;
Model.ConfirmationReceiptObject = new ConfirmationReceiptObject(
BuildInformationString(),
new List<QuittierungsbelegResult>(),
@@ -1393,19 +1383,21 @@ namespace BeWoPlanerMobil.Controllers
}
}
[Serializable]
public class ConfirmationReceiptSignatureObject
{
public Guid Identifier { get; }
public String Identifier { get; }
public string ImageStr { get; }
public string InsTsStr { get; }
public string PersonName { get; }
public bool IsEmployeeSignature { get; }
public int NumberOfServiceRecords { get; }
public List<ServiceRecordDC> ServiceRecords { get; }
public List<MokServiceRecord> ServiceRecords { get; }
public ConfirmationReceiptSignatureObject(string imageStr, string insTsStr, string personName, bool isEmployeeSignature, List<ServiceRecordDC> serviceRecords)
public ConfirmationReceiptSignatureObject(string imageStr, string insTsStr, string personName, bool isEmployeeSignature, List<MokServiceRecord> serviceRecords)
{
Identifier = Guid.NewGuid();
Identifier = Guid.NewGuid().ToString();
ImageStr = imageStr;
InsTsStr = insTsStr;

View File

@@ -199,7 +199,7 @@ namespace BeWoPlanerMobil.Models
public ServiceRecordDC SelectedServiceRecord { get; set; }
public long? SelectedSupportConceptOid { get { return MainSessionModel.SelectedSupportConceptOid; } set { MainSessionModel.SelectedSupportConceptOid = value; } }
//public long? SelectedSupportConceptOid { get { return MainSessionModel.SelectedSupportConceptOid; } set { MainSessionModel.SelectedSupportConceptOid = value; } }
public SupportConceptDC SelectedSupportConcept { get; set; }
@@ -409,8 +409,8 @@ namespace BeWoPlanerMobil.Models
public CompactEmployeeDC PreviouslySelectedEmployee { get; set; }
public long? PreviouslySelectedSupportConceptOid { get { return MainSessionModel.PreviouslySelectedSupportConceptOid; } set { MainSessionModel.PreviouslySelectedSupportConceptOid = value; } }
public SupportConceptDC PreviouslySelectedSupportConcept { get; set; }
//public long? PreviouslySelectedSupportConceptOid { get { return MainSessionModel.PreviouslySelectedSupportConceptOid; } set { MainSessionModel.PreviouslySelectedSupportConceptOid = value; } }
//public SupportConceptDC PreviouslySelectedSupportConcept { get; set; }
public long? PreviouslySelectedCostbearer2SupportConceptOid
@@ -430,7 +430,7 @@ namespace BeWoPlanerMobil.Models
}
public bool IsEndDateVisible { get; set; }
public static string GetServiceRecordTimeHeader(ServiceRecordDC serviceRecord, bool isForServiceRecordsList)
public static string GetServiceRecordTimeHeader(MokServiceRecord serviceRecord, bool isForServiceRecordsList)
{
if (serviceRecord?.Start is null || serviceRecord.End is null)
{
@@ -450,6 +450,26 @@ namespace BeWoPlanerMobil.Models
return $"{GetServiceRecordTimeString(serviceRecord)} {gruppenInfo} {signatureToken}";
}
public static string GetServiceRecordTimeHeader(ServiceRecordDC serviceRecord, bool isForServiceRecordsList)
{
if (serviceRecord?.Start is null || serviceRecord.End is null)
{
return string.Empty;
}
var start = serviceRecord.Start.Value;
var end = serviceRecord.End.Value;
var gruppenInfo = string.Empty;
var signatureToken = serviceRecord.SignatureOid.HasValue && isForServiceRecordsList ? "✔" : string.Empty;
if (serviceRecord.GroupOid.HasValue)
{
gruppenInfo = $"Gruppe ({serviceRecord.GroupPersonCount} Teilnehmer, {serviceRecord.GroupEmployeeCount} Betreuer) Dauer: {(end - start).TotalMinutes} {signatureToken}";
}
return $"{GetServiceRecordTimeString(serviceRecord)} {gruppenInfo} {signatureToken}";
}
public static string GetServiceRecordTimeString(ServiceRecordDC serviceRecord)
{
if(serviceRecord?.Start is null || serviceRecord.End is null)
@@ -472,6 +492,27 @@ namespace BeWoPlanerMobil.Models
$"{start.ToShortDateString()}";
}
public static string GetServiceRecordTimeString(MokServiceRecord serviceRecord)
{
if (serviceRecord?.Start is null || serviceRecord.End is null)
{
return string.Empty;
}
var start = serviceRecord.Start.Value;
var end = serviceRecord.End.Value; //start.AddMinutes((int) serviceRecord.RoundedDuration), AB, 12.03.2025: Änderung vom 12.11.2024 rückgängig; Endzeit bleibt bei Gruppen- und Einzelbuchungen die tatäschliche Zeit - genau wie FAK
if (start.Second == 0)
{
return start.Date != end.Date ?
$"{start.ToShortDateString()} {start.ToShortTimeString()} - {end.ToShortDateString()} {end.ToShortTimeString()}" :
$"{start.ToShortDateString()} {start.ToShortTimeString()} - {end.ToShortTimeString()}";
}
return start.Date != end.Date ?
$"{start.ToShortDateString()} - {end.ToShortDateString()}" :
$"{start.ToShortDateString()}";
}
public bool HasRightToEditServiceRecord(ServiceRecordDC serviceRecord)
{
var allowed = false;

View File

@@ -133,8 +133,8 @@ namespace BeWoPlanerMobil.Models
[Display(Name = "Bis")]
public int? SelectedEndDay { get { return ReportSessionModel.SelectedEndDay; } set { ReportSessionModel.SelectedEndDay = value; } }
public ConfirmationReceiptObject ConfirmationReceiptObject { get; set; }
public ConfirmationReceiptObject ConfirmationReceiptObject { get { return ReportSessionModel.ConfirmationReceiptObject; } set { ReportSessionModel.ConfirmationReceiptObject = value; } }
[Display(Name = "Mitarbeiter")]
public long? SelectedEmployeeOid { get { return ReportSessionModel.SelectedEmployeeOid; } set { ReportSessionModel.SelectedEmployeeOid = value; } }
@@ -273,9 +273,9 @@ namespace BeWoPlanerMobil.Models
public bool IsForSelectedCostbearersOnly { get { return ReportSessionModel.IsForSelectedCostbearersOnly; } set { ReportSessionModel.IsForSelectedCostbearersOnly = value; } }
public bool IsForSelectedCategoryOnly { get { return ReportSessionModel.IsForSelectedCategoryOnly; } set { ReportSessionModel.IsForSelectedCategoryOnly = value; } }
public List<ConfirmationReceiptSignatureObject> SelectedConfirmationReceiptSignatures { get; set; }
public List<ConfirmationReceiptSignatureObject> SelectedConfirmationReceiptSignatures { get { return ReportSessionModel.SelectedConfirmationReceiptSignatures; } set { ReportSessionModel.SelectedConfirmationReceiptSignatures = value; } }
public Quittierungsbelegsunterschriftenobjekt Quittierungsbelegsunterschriftenobjekt { get; set; }
public Quittierungsbelegsunterschriftenobjekt Quittierungsbelegsunterschriftenobjekt { get { return ReportSessionModel.Quittierungsbelegsunterschriftenobjekt; } set { ReportSessionModel.Quittierungsbelegsunterschriftenobjekt = value; } }
public AbstractReportCreator ReportCreator { get; set; }

View File

@@ -32,6 +32,9 @@ namespace BeWoPlanerMobil.Models
public bool IsForSelectedCostbearersOnly { get; internal set; }
public bool IsForSelectedCategoryOnly { get; internal set; }
public QuittierungsbelegsReportSettings QuittierungsbelegsReportSettings { get; internal set; }
public ConfirmationReceiptObject ConfirmationReceiptObject { get; internal set; }
public Quittierungsbelegsunterschriftenobjekt Quittierungsbelegsunterschriftenobjekt { get; internal set; }
public List<ConfirmationReceiptSignatureObject> SelectedConfirmationReceiptSignatures { get; internal set; }
public void ResetValues()
{
@@ -49,6 +52,9 @@ namespace BeWoPlanerMobil.Models
IsForSelectedCostbearersOnly = false;
IsForSelectedCategoryOnly = false;
QuittierungsbelegsReportSettings = null;
ConfirmationReceiptObject = null;
Quittierungsbelegsunterschriftenobjekt = null;
SelectedConfirmationReceiptSignatures = null;
}
}
}

View File

@@ -151,6 +151,10 @@ namespace BeWoPlanerMobil.Service
{
//TODO: ist bei showPin=1 null!
tenant = HttpContext.Current.Request.Params["tb_tenant"];
if (!String.IsNullOrEmpty(tenant))
{
tenant = tenant.Trim();
}
MobileSessionFacade.Tenant = tenant;
}
@@ -180,8 +184,8 @@ namespace BeWoPlanerMobil.Service
{
return false;
}
if(pin != null)
tenant = tenant.Trim();
if (pin != null)
{
var browserType = context.Request.Browser.Type;
var browserPlatform = context.Request.Browser.Platform;
@@ -189,6 +193,8 @@ namespace BeWoPlanerMobil.Service
pin += "_" + browserType + "_" + browserPlatform;
}
MobileSessionFacade.Tenant = tenant;
var userService = new UserServiceImp();

View File

@@ -1,7 +1,11 @@
using BeWoPlanerMobil.Models;
using BS.Shared;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
using BS.Shared.DataContracts.Invoicing;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Windows.Media;
@@ -19,5 +23,128 @@ namespace BeWoPlanerMobil.Util
}
public static MokServiceRecord CreateServiceRecord(ServiceRecordDC dc, ReportModel model)
{
var s = new MokServiceRecord
{
Oid = dc.ServiceRecordOid.Value,
Start = dc.Start,
End = dc.End,
EmployeeName = dc.Employee.FirstNameLastName,
ServiceCategoryName = dc.ServiceDescription.CategoryName,
ServiceDescriptionName = dc.ServiceDescription.Name,
SignatureOid = dc.SignatureOid,
Notice = dc.Notice,
Notice2 = dc.Notice2,
Notice3 = dc.Notice3,
Notice4 = dc.Notice4,
Notice5 = dc.Notice5,
RoundedDuration = dc.RoundedDuration,
DistanceInMeterDecimal = dc.DistanceInMeterDecimal,
Betrag = dc.Betrag,
InsertedOn = dc.InsertedOn,
InsUser = dc.InsUser,
GroupOid = dc.GroupOid,
GroupPersonCount = dc.GroupPersonCount,
GroupEmployeeCount = dc.GroupEmployeeCount
};
if (s.Start.HasValue && s.End.HasValue)
{
s.HasSignatureString = s.SignatureOid.HasValue ? "JA" : "NEIN";
var start = s.Start.Value;
var end = s.End.Value;
var duration = (end - start).TotalMinutes;
var roundedDuration = MobileUtils.GetDecimalValueWithMaxDecimal(s.RoundedDuration, 2);
if (dc.ServiceDescription.Category.Percentage > 0 && dc.ServiceDescription.Category.Percentage < 100)
{
roundedDuration = roundedDuration * dc.ServiceDescription.Category.Percentage / 100;
}
s.DurationString = dc.GroupOid.HasValue ? string.Format("{0:###0.#} ({0:###0.#})", roundedDuration) : $"{duration:###0.#} ({roundedDuration:###0.#})";
s.MassnahmenString = string.Empty;
s.ZieleString = string.Empty;
if (dc.Goals != null && dc.Goals.Count > 0)
{
foreach (var goal in dc.Goals.Where(g => g.Type == ValueListEntryType.SupportConceptGoalType || g.Type == ValueListEntryType.SupportConceptIndividualGoalType))
{
if (goal.Abbreviation != null && goal.TypeDescription != null)
{
s.MassnahmenString += $"{goal.Abbreviation}: {goal.TypeDescription}";
}
else if (goal.Abbreviation is null && goal.TypeDescription != null)
{
s.MassnahmenString += goal.TypeDescription;
}
else if (goal.Abbreviation != null && goal.TypeDescription is null)
{
s.MassnahmenString += goal.Abbreviation;
}
#if DEBUG
if (goal.RatingTypeOid.HasValue)
{
var goalRating = model.GoalRatingTypes.FirstOrDefault(g => g.RatingTypeOid.HasValue && g.RatingTypeOid.Equals(goal.RatingTypeOid.Value));
if (goalRating?.DisplayName != null && goalRating.DisplayName.Length > 0)
{
s.MassnahmenString += $" <strong style='color: blue;'>({goalRating.DisplayName})</strong>";
}
}
#endif
if (dc.Goals.IndexOf(goal) < dc.Goals.Count - 1)
{
s.MassnahmenString += ", ";
}
}
if (model.ServiceRecordOids2GoalHeader.ContainsKey(s.Oid))
{
var ziele = dc.Goals.Where(g => g.Type == ValueListEntryType.SupportConceptIndividualGoalCategoryType || g.Type == ValueListEntryType.SupportConceptGoalCategoryType).ToList();
foreach (var ziel in ziele)
{
if (ziel.Abbreviation != null && ziel.TypeDescription != null)
{
s.ZieleString += $"{ziel.Abbreviation}: {ziel.TypeDescription} ";
}
else if (ziel.Abbreviation is null && ziel.TypeDescription != null)
{
s.ZieleString += ziel.TypeDescription;
}
else if (ziel.Abbreviation != null && ziel.TypeDescription is null)
{
s.ZieleString += ziel.Abbreviation;
}
#if DEBUG
if (ziel.RatingTypeOid.HasValue)
{
var zielbewertung = model.GoalRatingTypes.FirstOrDefault(goalRatingType => goalRatingType.RatingTypeOid.HasValue && goalRatingType.RatingTypeOid.Equals(ziel.RatingTypeOid.Value));
if (zielbewertung?.DisplayName != null && zielbewertung.DisplayName.Length > 0)
{
s.ZieleString += $" <strong style='color: blue;'>({zielbewertung.DisplayName})</strong>";
}
}
#endif
s.ZieleString += ", ";
}
}
s.ZieleString = s.ZieleString.TrimEnd(' ').TrimEnd(',');
}
}
return s;
}
}
}

View File

@@ -0,0 +1,78 @@
using BS.Shared.DataContracts.Compact;
using BS.Shared.DataContracts.Invoicing;
using System;
using System.Collections.Generic;
using System.Runtime.Serialization;
using System.Windows.Media;
namespace BeWoPlanerMobil.Util
{
[Serializable]
public class MokServiceRecord
{
public long Oid { get; set; }
public DateTime? Start { get; set; }
public DateTime? End { get; set; }
public String EmployeeName { get; set; }
public String ServiceCategoryName { get; set; }
public String ServiceDescriptionName { get; set; }
public long? SignatureOid { get; set; }
public string Notice { get; set; }
public string Notice2 { get; set; }
public string Notice3 { get; set; }
public string Notice4 { get; set; }
public string Notice5 { get; set; }
public decimal RoundedDuration { get; set; }
public String DurationString { get; set; }
public decimal? DistanceInMeterDecimal { get; set; }
public decimal? Betrag { get; set; }
public List<String> Goals { get; set; }
public String ZieleString { get; set; }
public String MassnahmenString { get; set; }
public String HasSignatureString { get; set; }
public DateTime? InsertedOn { get; set; }
public string InsUser { get; set; }
public long? GroupOid { get; set; }
public int? GroupPersonCount { get; set; }
public int? GroupEmployeeCount { get; set; }
public List<string> NoticeList =>
new List<string>
{
Notice,
Notice2,
Notice3,
Notice4,
Notice5
};
public override bool Equals(object obj)
{
if (obj is MokServiceRecord serviceRecord)
{
return Oid == serviceRecord.Oid;
}
return false;
}
}
}

View File

@@ -3,9 +3,10 @@ using BeWo.Report.ReportObjects;
namespace BeWoPlanerMobil.Util
{
[Serializable]
public class QuittierungsbelegItem
{
public Guid Identifier { get; }
public String Identifier { get; }
public string DateTimeString { get; }
@@ -36,7 +37,7 @@ namespace BeWoPlanerMobil.Util
DateTimeString = $"{serviceDetail.StartDate:dd.MM.yyyy HH:mm} - {serviceDetail.EndDate:HH:mm}";
Identifier = Guid.NewGuid();
Identifier = Guid.NewGuid().ToString();
}
}
}

View File

@@ -4,9 +4,10 @@ using BeWoPlanerMobil.Util.ReportUtils;
namespace BeWoPlanerMobil.Util
{
[Serializable]
public class QuittierungsbelegResult
{
public Guid Identifier { get; }
public String Identifier { get; }
public string CustomerName { get; }
@@ -33,7 +34,7 @@ namespace BeWoPlanerMobil.Util
{
CustomerName = customerName;
Items = items;
Identifier = Guid.NewGuid();
Identifier = Guid.NewGuid().ToString();
CustomerOid = customerOid;
HasCustomerSignature = hasCustomerSignature;
CustomerSignatureOid = customerSignatureOid;

View File

@@ -1,9 +1,12 @@
using System.Collections.Generic;
using System;
using System.Collections.Generic;
using System.Linq;
using BS.Shared.DataContracts;
using BS.Shared.Extensions;
namespace BeWoPlanerMobil.Util.ReportUtils
{
[Serializable]
public class ConfirmationReceiptObject
{
public string Information { get; }
@@ -30,7 +33,8 @@ namespace BeWoPlanerMobil.Util.ReportUtils
public SignatureState EmployeeSignatureState { get; }
public List<ConfirmationReceiptSignatureDC> EmployeeSignatures { get; }
//public List<ConfirmationReceiptSignatureDC> EmployeeSignatures { get; }
public List<long> EmployeeSignatureOids { get; }
public ConfirmationReceiptObject(string information, List<QuittierungsbelegResult> confirmationReceiptResultList, string signatureCanvasInformation, string timeSpanString, bool hasEmployeeSignature, List<ConfirmationReceiptSignatureDC> employeeSignatures, SignatureState employeeSignatureState)
{
@@ -39,7 +43,7 @@ namespace BeWoPlanerMobil.Util.ReportUtils
SignatureCanvasInformation = signatureCanvasInformation;
TimeSpanString = timeSpanString;
HasEmployeeSignature = hasEmployeeSignature;
EmployeeSignatures = employeeSignatures;
EmployeeSignatureOids = employeeSignatures.Select(s => s.ConfirmationReceiptSignatureOid.Value).ToList();
EmployeeSignatureState = employeeSignatureState;
}
}

View File

@@ -1,5 +1,8 @@
namespace BeWoPlanerMobil.Util.ReportUtils
using System;
namespace BeWoPlanerMobil.Util.ReportUtils
{
[Serializable]
public class Quittierungsbelegsunterschriftenobjekt
{
public bool IsEmployeeSignature { get; }

View File

@@ -118,9 +118,10 @@
function clearCustomerAbsenceTimesForm() {
try {
$("#customer-absence-time-notice, #customer-absence-time-start-date, #customer-absence-time-end-date, #customer-absence-time-start-time, #customer-absence-time-end-time").val("");
$.get("@Url.Action("DeselectAbsenceTime")").done(function() {
$("#customer-absence-time-modal-body").load('@Url.Action("LoadAbsenceTimeToForm", "Customer")').load();
});
$.get("@Url.Action("DeselectAbsenceTime")");
//$.get("@Url.Action("DeselectAbsenceTime")").done(function() {
// $("#customer-absence-time-modal-body").load('@Url.Action("LoadAbsenceTimeToForm", "Customer")').load();
//});
} catch(error) {
showErrorPopup(error);
}

View File

@@ -20,9 +20,7 @@
@{
var timeSpanColorClass2 = cb2Sc.IsAboutToExpire ? "text-bewo-is-about-to-expire" : cb2Sc.ExpiresInThreeMonthsOrLess ? "text-bewo-expires-in-three-months" : "text-dark";
var wasSuccessful = long.TryParse(cb2Sc.CostBearer2SupportConceptOid, out var cb2ScOid);
var checkedValue = wasSuccessful ? Model.MultiBookingSelectedConceptCostBearerRelations.Any(a => a.CostBearer2SupportConceptOid.Equals(cb2ScOid)) : wasSuccessful;
var checkedValue = Model.MultiBookingSelectedConceptCostBearerRelations.Any(a => a.CostBearer2SupportConceptOid.Equals(cb2Sc.CostBearer2SupportConceptOid));
}
<div class="custom-control custom-checkbox custom-control-inline">

View File

@@ -191,96 +191,6 @@
continue;
}
var start = serviceRecord.Start.Value;
var end = serviceRecord.End.Value;
var hasSignatureStr = serviceRecord.SignatureOid.HasValue ? "JA" : "NEIN";
var duration = (end - start).TotalMinutes;
var roundedDuration = MobileUtils.GetDecimalValueWithMaxDecimal(serviceRecord.RoundedDuration, 2);
if(serviceRecord.ServiceDescription.Category.Percentage > 0 && serviceRecord.ServiceDescription.Category.Percentage < 100)
{
roundedDuration = roundedDuration * serviceRecord.ServiceDescription.Category.Percentage / 100;
}
var durationStr = serviceRecord.GroupOid.HasValue ? string.Format("{0:###0.#} ({0:###0.#})", roundedDuration) : $"{duration:###0.#} ({roundedDuration:###0.#})";
var massnahmenString = string.Empty;
var zieleString = string.Empty;
if(serviceRecord.Goals != null && serviceRecord.Goals.Count > 0)
{
foreach(var goal in serviceRecord.Goals.Where(g => g.Type == ValueListEntryType.SupportConceptGoalType || g.Type == ValueListEntryType.SupportConceptIndividualGoalType))
{
if(goal.Abbreviation != null && goal.TypeDescription != null)
{
massnahmenString += $"{goal.Abbreviation}: {goal.TypeDescription}";
}
else if(goal.Abbreviation is null && goal.TypeDescription != null)
{
massnahmenString += goal.TypeDescription;
}
else if(goal.Abbreviation != null && goal.TypeDescription is null)
{
massnahmenString += goal.Abbreviation;
}
#if DEBUG
if(goal.RatingTypeOid.HasValue)
{
var goalRating = Model.GoalRatingTypes.FirstOrDefault(g => g.RatingTypeOid.HasValue && g.RatingTypeOid.Equals(goal.RatingTypeOid.Value));
if(goalRating?.DisplayName != null && goalRating.DisplayName.Length > 0)
{
massnahmenString += $" <strong style='color: blue;'>({goalRating.DisplayName})</strong>";
}
}
#endif
if(serviceRecord.Goals.IndexOf(goal) < serviceRecord.Goals.Count - 1)
{
massnahmenString += ", ";
}
}
if(serviceRecord.ServiceRecordOid.HasValue && Model.ServiceRecordOids2GoalHeader.ContainsKey(serviceRecord.ServiceRecordOid.Value))
{
var ziele = serviceRecord.Goals.Where(g => g.Type == ValueListEntryType.SupportConceptIndividualGoalCategoryType || g.Type == ValueListEntryType.SupportConceptGoalCategoryType).ToList();
foreach(var ziel in ziele)
{
if(ziel.Abbreviation != null && ziel.TypeDescription != null)
{
zieleString += $"{ziel.Abbreviation}: {ziel.TypeDescription} ";
}
else if(ziel.Abbreviation is null && ziel.TypeDescription != null)
{
zieleString += ziel.TypeDescription;
}
else if(ziel.Abbreviation != null && ziel.TypeDescription is null)
{
zieleString += ziel.Abbreviation;
}
#if DEBUG
if(ziel.RatingTypeOid.HasValue)
{
var zielbewertung = Model.GoalRatingTypes.FirstOrDefault(goalRatingType => goalRatingType.RatingTypeOid.HasValue && goalRatingType.RatingTypeOid.Equals(ziel.RatingTypeOid.Value));
if(zielbewertung?.DisplayName != null && zielbewertung.DisplayName.Length > 0)
{
zieleString += $" <strong style='color: blue;'>({zielbewertung.DisplayName})</strong>";
}
}
#endif
zieleString += ", ";
}
}
zieleString = zieleString.TrimEnd(' ').TrimEnd(',');
}
<div class="card mt-1">
<div class="card-body p-1">
@@ -293,7 +203,7 @@
Minuten (gerundet):
</td>
<td class="text-info">
@durationStr
@serviceRecord.DurationString
</td>
</tr>
@if(Model.ShowDistanceField && serviceRecord.DistanceInMeterDecimal != null && serviceRecord.DistanceInMeterDecimal.Value > 0)
@@ -310,26 +220,26 @@
@if(serviceRecord.Goals != null && serviceRecord.Goals.Count > 0)
{
if(!string.IsNullOrEmpty(zieleString))
if(!string.IsNullOrEmpty(serviceRecord.ZieleString))
{
<tr>
<td class="text-secondary">
Ziele:
</td>
<td>
@(new HtmlString(zieleString))
@(new HtmlString(serviceRecord.ZieleString))
</td>
</tr>
}
if(serviceRecord.Goals.Any(goal => goal.Type == ValueListEntryType.SupportConceptGoalType || goal.Type == ValueListEntryType.SupportConceptIndividualGoalType))
if(!String.IsNullOrEmpty(serviceRecord.MassnahmenString))
{
<tr>
<td class="text-secondary">
Maßnahmen:
</td>
<td>
@(new HtmlString(massnahmenString))
@(new HtmlString(serviceRecord.MassnahmenString))
</td>
</tr>
}
@@ -339,7 +249,7 @@
Leistungskategorie:
</td>
<td>
@serviceRecord.ServiceDescription.CategoryName
@serviceRecord.ServiceCategoryName
</td>
</tr>
<tr>
@@ -347,7 +257,7 @@
Leistung:
</td>
<td>
@serviceRecord.ServiceDescription.Name
@serviceRecord.ServiceDescriptionName
</td>
</tr>
<tr>
@@ -355,7 +265,7 @@
Angelegt für:
</td>
<td>
@serviceRecord.Employee.FirstNameLastName
@serviceRecord.EmployeeName
</td>
</tr>
@if(Model.ShowServiceRecordInsertedOn)
@@ -441,7 +351,7 @@
Unterschrieben:
</td>
<td>
@hasSignatureStr
@serviceRecord.HasSignatureString
</td>
</tr>
</table>

View File

@@ -47,33 +47,33 @@
<link type="text/css" rel="stylesheet" href="@Url.Content("~/Content/style.css")" />
<link type="text/css" rel="stylesheet" href="@Url.Content("~/Content/tempusdominus-bootstrap-4.min.css")" />
<script type="text/javascript" src="@Scripts.Url("~/Scripts/ownSoft-Scripts/utils/dateUtils.js")"></script>
<script type="text/javascript" src="@Scripts.Url("~/Scripts/ownSoft-Scripts/utils/dateUtils.js?v=1.3")"></script>
<script type="text/javascript" src="@Scripts.Url("~/Scripts/moment/moment.min.js")"></script>
<script type="text/javascript" src="@Scripts.Url("~/Scripts/moment/locale/de.js")"></script>
<script type="text/javascript" src="@Scripts.Url("~/Scripts/tempusdominus-boostrap-4.min.js")"></script>
<script type="text/javascript" src="@Scripts.Url("~/Scripts/ownSoft-Scripts/mobileUtils.js")"></script>
<script type="text/javascript" src="@Scripts.Url("~/Scripts/ownSoft-Scripts/mobileUtils.js?v=1.3")"></script>
<script type="text/javascript" src="@Scripts.Url("~/Scripts/ownSoft-Scripts/view-scripts/main.js?v=1.2")"></script>
<script type="text/javascript" src="@Scripts.Url("~/Scripts/ownSoft-Scripts/signature.js?v=1.2")"></script>
<script type="text/javascript" src="@Scripts.Url("~/Scripts/ownSoft-Scripts/view-scripts/main.js?v=1.3")"></script>
<script type="text/javascript" src="@Scripts.Url("~/Scripts/ownSoft-Scripts/signature.js?v=1.3")"></script>
<link type="text/css" rel="stylesheet" href="@Url.Content("~/Scripts/bootstrap/bootstrap4-modal-fullscreen.min.css")" />
<script type="text/javascript" src="@Scripts.Url("~/Scripts/ownSoft-Scripts/support-concept-statistics.js")"></script>
<script type="text/javascript" src="@Scripts.Url("~/Scripts/ownSoft-Scripts/view-scripts/customer.js")"></script>
<script type="text/javascript" src="@Scripts.Url("~/Scripts/ownSoft-Scripts/view-scripts/scheduler.js")"></script>
<script type="text/javascript" src="@Scripts.Url("~/Scripts/ownSoft-Scripts/support-concept-statistics.js?v=1.3")"></script>
<script type="text/javascript" src="@Scripts.Url("~/Scripts/ownSoft-Scripts/view-scripts/customer.js?v=1.3")"></script>
<script type="text/javascript" src="@Scripts.Url("~/Scripts/ownSoft-Scripts/view-scripts/scheduler.js?v=1.3")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/ownSoft-Scripts/view-scripts/report.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/ownSoft-Scripts/view-scripts/report.js?v=1.3")"></script>
<script type="text/javascript" src="@Scripts.Url("~/Scripts/signature-pad.min.js")"></script>
<script type="text/javascript" src="@Scripts.Url("~/Scripts/ownSoft-Scripts/utils/trimCanvas.js")"></script>
<script type="text/javascript" src="@Scripts.Url("~/Scripts/ownSoft-Scripts/utils/resources-list-utils.js")"></script>
<script type="text/javascript" src="@Scripts.Url("~/Scripts/ownSoft-Scripts/utils/list-utils.js")"></script>
<script type="text/javascript" src="@Scripts.Url("~/Scripts/ownSoft-Scripts/utils/service-record-time-calc.js")"></script>
<script type="text/javascript" src="@Scripts.Url("~/Scripts/ownSoft-Scripts/utils/js-helper.js")"></script>
<script type="text/javascript" src="@Scripts.Url("~/Scripts/ownSoft-Scripts/utils/logging.js")"></script>
<script type="text/javascript" src="@Scripts.Url("~/Scripts/ownSoft-Scripts/utils/MoKPasswordSecurity.js")"></script>
<script type="text/javascript" src="@Scripts.Url("~/Scripts/bs-custom-file-input.min.js?v=1.3")"></script>
<script type="text/javascript" src="@Scripts.Url("~/Scripts/ownSoft-Scripts/utils/dropdown-search.js")"></script>
<script type="text/javascript" src="@Scripts.Url("~/Scripts/ownSoft-Scripts/utils/trimCanvas.js?v=1.3")"></script>
<script type="text/javascript" src="@Scripts.Url("~/Scripts/ownSoft-Scripts/utils/resources-list-utils.js?v=1.3")"></script>
<script type="text/javascript" src="@Scripts.Url("~/Scripts/ownSoft-Scripts/utils/list-utils.js?v=1.3")"></script>
<script type="text/javascript" src="@Scripts.Url("~/Scripts/ownSoft-Scripts/utils/service-record-time-calc.js?v=1.3")"></script>
<script type="text/javascript" src="@Scripts.Url("~/Scripts/ownSoft-Scripts/utils/js-helper.js?v=1.3")"></script>
<script type="text/javascript" src="@Scripts.Url("~/Scripts/ownSoft-Scripts/utils/logging.js?v=1.3")"></script>
<script type="text/javascript" src="@Scripts.Url("~/Scripts/ownSoft-Scripts/utils/MoKPasswordSecurity.js?v=1.3")"></script>
<script type="text/javascript" src="@Scripts.Url("~/Scripts/bs-custom-file-input.min.js")"></script>
<script type="text/javascript" src="@Scripts.Url("~/Scripts/ownSoft-Scripts/utils/dropdown-search.js?v=1.3")"></script>
<script type="text/javascript" src="@Scripts.Url("~/Scripts/devexpress-dependencies/devextreme/dx.all.js")"></script>

View File

@@ -29,7 +29,7 @@
<many-to-one name="InvoiceAddress" column="InvoiceAddressOid" class="BeWo.Data.Entities.Address, BeWo.Data" cascade="all" fetch="join"/>
<many-to-one name="HausanschriftDatenannahmestelle" column="HausanschriftAddressOid" class="BeWo.Data.Entities.Address, BeWo.Data" cascade="all" fetch="join"/>
<many-to-one name="PostfachanschriftDatenannahmestelle" column="PostfachanschriftAddressOid" class="BeWo.Data.Entities.Address, BeWo.Data" cascade="all" fetch="join"/>
<many-to-one name="GroßkundenanschriftDatenannahmestelle" column="GroßkundenanschriftAddressOid" class="BeWo.Data.Entities.Address, BeWo.Data" cascade="all" fetch="join"/>
<many-to-one name="GroßkundenanschriftDatenannahmestelle" column="GrosskundenanschriftAddressOid" class="BeWo.Data.Entities.Address, BeWo.Data" cascade="all" fetch="join"/>
<many-to-one name="BankAccount" column="BankAccountOid" class="BeWo.Data.Entities.BankAccount, BeWo.Data" cascade="all" />
<many-to-one name="CostBearer" column="CostBearerOid" cascade="all-delete-orphan" class="BeWo.Data.Entities.CostBearer, BeWo.Data" fetch="join"/>
<many-to-one name="Function" column="FunctionValueListEntryOid" class="BeWo.Data.Entities.ValueListEntry,BeWo.Data" cascade="none" fetch="join"/>

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<NameOfLastUsedPublishProfile>BeWo2.0</NameOfLastUsedPublishProfile>

View File

@@ -326,54 +326,10 @@
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.3.0" newVersion="4.1.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Bcl.AsyncInterfaces" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.2" newVersion="9.0.0.2" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Text.Json" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.2" newVersion="9.0.0.2" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.2" newVersion="9.0.0.2" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Reflection.Metadata" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.2" newVersion="9.0.0.2" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Composition.AttributedModel" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.2" newVersion="9.0.0.2" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Composition.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.2" newVersion="9.0.0.2" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Composition.TypedParts" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.2" newVersion="9.0.0.2" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Composition.Hosting" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.2" newVersion="9.0.0.2" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Text.Encoding.CodePages" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.2" newVersion="9.0.0.2" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -1562,6 +1562,37 @@ CHANGE COLUMN `Text` `Text` LONGBLOB NULL DEFAULT NULL ;
ALTER TABLE `dokumentvorlage`
CHANGE COLUMN `RTFText` `RTFText` LONGBLOB NULL DEFAULT NULL ;
ALTER TABLE `organisation`
CHANGE COLUMN `GroßkundenanschriftAddressOid` `GrosskundenanschriftAddressOid` BIGINT(20) NULL DEFAULT NULL ;
ALTER TABLE `organisation`
ADD COLUMN `HausanschriftAddressOid` BIGINT NULL DEFAULT NULL AFTER `CostBearerOid`,
ADD COLUMN `PostfachanschriftAddressOid` BIGINT NULL DEFAULT NULL AFTER `HausanschriftAddressOid`,
ADD COLUMN `GrosskundenanschriftAddressOid` BIGINT NULL DEFAULT NULL AFTER `PostfachanschriftAddressOid`,
ADD INDEX `FK_ORGANISA_HAUSADD_idx` (`HausanschriftAddressOid` ASC),
ADD INDEX `FK_ORGANISA_POSTADD_idx` (`PostfachanschriftAddressOid` ASC),
ADD INDEX `FK_ORGANISA_GROSADD_idx` (`GroßkundenanschriftAddressOid` ASC);
;
ALTER TABLE `organisation`
ADD CONSTRAINT `FK_ORGANISA_HAUSADD`
FOREIGN KEY (`HausanschriftAddressOid`)
REFERENCES `address` (`Oid`)
ON DELETE CASCADE
ON UPDATE CASCADE,
ADD CONSTRAINT `FK_ORGANISA_POSTADD`
FOREIGN KEY (`PostfachanschriftAddressOid`)
REFERENCES `address` (`Oid`)
ON DELETE CASCADE
ON UPDATE CASCADE,
ADD CONSTRAINT `FK_ORGANISA_GROSADD`
FOREIGN KEY (`GroßkundenanschriftAddressOid`)
REFERENCES `address` (`Oid`)
ON DELETE CASCADE
ON UPDATE CASCADE;
ALTER TABLE `customer`
ADD COLUMN `EinkommenBeginnValueListEntryOid` BIGINT NULL DEFAULT NULL AFTER `CustomerFalldatenOid`,
ADD COLUMN `EinkommenEndeValueListEntryOid` BIGINT NULL DEFAULT NULL AFTER `EinkommenBeginnValueListEntryOid`,

View File

@@ -26,6 +26,7 @@ using BeWo.Service.OwnChat;
using BeWo.Service.Plugins;
using BeWo.Data.Security;
using System.Collections.Specialized;
using System.IO;
namespace BeWo.Service.ServiceImplementations
{
@@ -582,6 +583,17 @@ namespace BeWo.Service.ServiceImplementations
}
catch (Exception e)
{
var dir = @"C:\BeWoPlaner\service\Host\logs";
if (Directory.Exists(dir))
{
File.AppendAllText(Path.Combine(dir, "WCFSessionError.txt"), $"SessionFactory get {DateTime.Now:dd.MM.yyyy HH:mm:ss}" + "\n" + e.Message + "\n" + e.StackTrace);
if (e.InnerException != null)
{
File.AppendAllText(Path.Combine(dir, "WCFSessionError.txt"), $"SessionFactory get {DateTime.Now:dd.MM.yyyy HH:mm:ss}" + "\n" + e.InnerException.Message + "\n" + e.InnerException.StackTrace);
}
}
//String path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "bwp.txt");
//System.IO.File.AppendAllText(path, String.Format("{0:dd.MM.yyyy HH:mm:ss}", DateTime.Now) + "\n" + e.Message + "\n" + e.StackTrace);
//throw(BeWo.Service.Core.Utils.CreateBeWoFaultException(e));