Bugfixing Mok
This commit is contained in:
@@ -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());
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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}}}">
|
||||
|
||||
@@ -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; }
|
||||
|
||||
@@ -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" />
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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 });
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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; }
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
78
BeWoPlanerMobil/Util/MokServiceRecord.cs
Normal file
78
BeWoPlanerMobil/Util/MokServiceRecord.cs
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
namespace BeWoPlanerMobil.Util.ReportUtils
|
||||
using System;
|
||||
|
||||
namespace BeWoPlanerMobil.Util.ReportUtils
|
||||
{
|
||||
[Serializable]
|
||||
public class Quittierungsbelegsunterschriftenobjekt
|
||||
{
|
||||
public bool IsEmployeeSignature { get; }
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
@@ -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`,
|
||||
|
||||
@@ -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));
|
||||
|
||||
Reference in New Issue
Block a user