Kalender:

- Scheduler/View/SchedulerAppointmentEditForm.xaml:
          Ist die Ganztägig-CheckBox angehakt, sind die Uhrzeitfelder deaktiviert
          Wird die Ganztägig-CheckBox auf false gesetzt, wird das Ende automatisch auf denselben Tag des vormals ganztägigen Termin gesetzt
          -> 20.10.2020 00:00 bis 21.10.2020 00:00 wird zu 20.10.2020 00:30 - 20.10.2020 01:00

Mobilklient:
    - Weiterarbeit an der Unterschriftenfunktion für Mitarbeiter im Mobilklienten
This commit is contained in:
Lyndon Jetten
2020-10-20 21:07:26 +02:00
parent 1f43e8986b
commit a43bda6352
20 changed files with 473 additions and 71 deletions

View File

@@ -1741,11 +1741,26 @@ namespace BeWoPlanerMobil.Controllers
var allowMoreFLSThanApproved = MobileSessionFacade.CheckForUserRight(UserRightType.ServiceRecord_AllowCreateMoreFLSThanApproved);
var bookAfterSettlementInvoice = MobileSessionFacade.CheckForUserRight(UserRightType.BookServiceRecordAfterSettlementInvoice);
var bookServiceRecordOutOfSupportConcept = MobileSessionFacade.CheckForUserRight(UserRightType.BookServiceRecordOutOfSupportConcept);
var allowCreateAfterEmployeeSignature = MobileSessionFacade.CheckForUserRight(UserRightType.ServiceRecord_AllowCreateAfterEmployeeSignature);
var allowEditAfterEmployeeSignature = MobileSessionFacade.CheckForUserRight(UserRightType.ServiceRecord_AllowEditAfterEmployeeSignature);
var allowDeleteAfterEmployeeSignature = MobileSessionFacade.CheckForUserRight(UserRightType.ServiceRecord_AllowDeleteAfterEmployeeSignature);
var allowCreateAll = MobileSessionFacade.CheckForUserRight(UserRightType.CreateAll);
var allowEditAll = MobileSessionFacade.CheckForUserRight(UserRightType.CreateAll);
var allowDeleteAll = MobileSessionFacade.CheckForUserRight(UserRightType.CreateAll);
// TODO: Prüfen, ob Stunden übertragbar sind. Wenn nicht, prüfen, ob nach Ausreizung des FLS-Zeitraums die Anzahl der FLS pro Zeitraum überschritten werden darf!
var newResult = new ValidationResult();
var exitLoop = false;
if(Model.SelectedSupportConcept != null && Model.SelectedSupportConcept.Goals.Any() && Model.SelectedGoals.Count == 0)
{
}
foreach (var sr2V in validationResults)
{
if(exitLoop)
@@ -1847,6 +1862,39 @@ namespace BeWoPlanerMobil.Controllers
exitLoop = true;
newResult.KannTrotzdemGespeichertWerden = false;
break;
case HasEmployeeSignature:
if(checkServiceRecord.ServiceRecordOid.HasValue)
{
if(!allowEditAll && !allowEditAfterEmployeeSignature)
{
newResult.Message += "Sie können den Eintrag nicht speichern, da bereits eine Mitarbeiterunterschrift geleistet wurde.<br/><br/>";
exitLoop = true;
newResult.KannTrotzdemGespeichertWerden = false;
}
else
{
newResult.Message += "Es existiert bereits eine Mitarbeiterunterschrift. Möchten Sie trotzdem speichern?<br/><br/>";
exitLoop = false;
newResult.KannTrotzdemGespeichertWerden = true;
}
}
else
{
if(!allowCreateAll && !allowCreateAfterEmployeeSignature)
{
newResult.Message += "Sie können den Eintrag nicht speichern, da bereits eine Mitarbeiterunterschrift geleistet wurde.<br/><br/>";
exitLoop = true;
newResult.KannTrotzdemGespeichertWerden = false;
}
else
{
newResult.Message += "Es existiert bereits eine Mitarbeiterunterschrift. Möchten Sie trotzdem speichern?<br/><br/>";
exitLoop = false;
newResult.KannTrotzdemGespeichertWerden = true;
}
}
break;
}
}
@@ -1862,6 +1910,74 @@ namespace BeWoPlanerMobil.Controllers
return SerializeObject(newResult);
}
[Authorize]
public string ValidateServiceRecordDeletion(string serviceRecordOidString)
{
if(Model == null)
{
Logout();
return _LeerzeichenFuerGetMethoden;
}
var isSuccessful = long.TryParse(serviceRecordOidString, out var serviceRecordOid);
if(!isSuccessful)
{
return "Error";
}
var newResult = new ValidationResult();
var serviceRecord = OperationsService.GetServiceRecordById(serviceRecordOid);
var allowDeleteAfterEmployeeSignature = MobileSessionFacade.CheckForUserRight(UserRightType.ServiceRecord_AllowDeleteAfterEmployeeSignature);
var allowDeleteAll = MobileSessionFacade.CheckForUserRight(UserRightType.CreateAll);
var validationResultList = OperationsService.ValidateServiceRecordDeletion(serviceRecord, Model.Employee.EmployeeOid.Value);
if(validationResultList.Count > 0)
{
var exitLoop = false;
foreach(var result in validationResultList)
{
switch(result.ResultType)
{
case Custom:
newResult.KannTrotzdemGespeichertWerden = true;
newResult.Message += "Dieser Eintrag wurde bereits unterschrieben.<br/>Möchten Sie ihn trotzdem löschen?<br/><br/>";
break;
case HasEmployeeSignature:
if(!allowDeleteAll && !allowDeleteAfterEmployeeSignature)
{
exitLoop = true;
newResult.KannTrotzdemGespeichertWerden = false;
newResult.Message += "Sie können den Eintrag nicht löschen, da bereits eine Mitarbeiterunterschrift geleistet wurde.<br/><br/>";
}
else
{
newResult.KannTrotzdemGespeichertWerden = true;
newResult.Message += "Es existiert bereits eine Mitarbeiterunterschrift.<br/>Möchten Sie ihn trotzdem löschen?<br/><br/>";
}
break;
}
if(exitLoop)
{
break;
}
}
return SerializeObject(newResult);
}
return serviceRecord.GroupOid != null ?
"ACHTUNG, wenn Sie fortfahren, löschen Sie die gesamte Gruppenbuchung.<br/>Wenn Sie nur einzelne Klienten aus der Gruppe entfernen möchten, editieren Sie die Gruppe und entfernen den Klienten aus der Liste der Hilfepläne.<br/>Sind Sie sicher, dass Sie den gesamten Gruppeneintrag löschen möchten?<br/><br/>" :
_LeerzeichenFuerGetMethoden;
}
public string SetServiceRecordEmployee(long employeeOid)
{
try