Bug beim Prüfen auf ungültige Unterschriften behoben
This commit is contained in:
@@ -2223,7 +2223,6 @@ namespace BeWo.Service.ServiceImplementations
|
||||
{
|
||||
var serviceRecordHistoryEntries = new List<ServiceRecordHistory>();
|
||||
|
||||
|
||||
foreach(var serviceRecord2SignatureState in serviceRecords2SignatureStates)
|
||||
{
|
||||
var serviceRecord = serviceRecord2SignatureState.ServiceRecord;
|
||||
@@ -2272,13 +2271,20 @@ namespace BeWo.Service.ServiceImplementations
|
||||
IsCreatedInMobileClient = serviceRecord.IsCreatedInMobileClient,
|
||||
ServiceRecordSignatureStateType = singleSignatureState ?? previousRecordHistoryEntry?.ServiceRecordSignatureStateType ?? SignatureStateType.None,
|
||||
CustomerConfirmationReceiptSignatureStateType = customerMonthlySignatureState ?? previousRecordHistoryEntry?.CustomerConfirmationReceiptSignatureStateType ?? SignatureStateType.None,
|
||||
EmployeeConfirmationReceiptSignatureStateType = employeeMonthlySignatureState ?? previousRecordHistoryEntry?.EmployeeConfirmationReceiptSignatureStateType ?? SignatureStateType.None
|
||||
EmployeeConfirmationReceiptSignatureStateType = employeeMonthlySignatureState ?? previousRecordHistoryEntry?.EmployeeConfirmationReceiptSignatureStateType ?? SignatureStateType.None,
|
||||
CustomerConfirmationReceiptSignatureOid = previousRecordHistoryEntry?.CustomerConfirmationReceiptSignatureOid,
|
||||
EmployeeConfirmationReceiptSignatureOid = previousRecordHistoryEntry?.EmployeeConfirmationReceiptSignatureOid
|
||||
});
|
||||
}
|
||||
|
||||
DAOFactory.GenericDAO.Insert(serviceRecordHistoryEntries);
|
||||
}
|
||||
|
||||
// ToDo: 3 Unterschriften; 1 Gültig mit U1; 2 Ungültig mit U1; 3 Gültig mit U2;
|
||||
// ToDo:
|
||||
// ToDo:
|
||||
// ToDo:
|
||||
// ToDo:
|
||||
private static List<ServiceRecord2SignatureStates> GenerateSignatureStates(List<ServiceRecord> serviceRecordsWithDeletedSingleSignatures, List<ServiceRecord2SignatureStates> serviceRecordsdWithRemovedConfirmationReceiptSignatures, List<ServiceRecord> originals)
|
||||
{
|
||||
var serviceRecords2SignatureStates = new List<ServiceRecord2SignatureStates>();
|
||||
@@ -3386,7 +3392,7 @@ namespace BeWo.Service.ServiceImplementations
|
||||
|
||||
DAOFactory.GenericDAO.Update(sr);
|
||||
|
||||
MakeSignatureStatusTypeServiceRecordHistoryEntry(sr, SignatureStateType.Valid, null, null);
|
||||
MakeSignatureStatusTypeServiceRecordHistoryEntry(sr, SignatureStateType.Valid, null, null, null, null);
|
||||
|
||||
return updatedSignatureDC;
|
||||
}
|
||||
@@ -3798,7 +3804,7 @@ namespace BeWo.Service.ServiceImplementations
|
||||
|
||||
var serviceRecord = DAOFactory.GenericDAO.LoadByID<ServiceRecord>(serviceRecordOid);
|
||||
|
||||
MakeSignatureStatusTypeServiceRecordHistoryEntry(serviceRecord, SignatureStateType.Valid, null, null);
|
||||
MakeSignatureStatusTypeServiceRecordHistoryEntry(serviceRecord, SignatureStateType.Valid, null, null, null, null);
|
||||
}
|
||||
|
||||
return serviceRecordOid;
|
||||
@@ -6971,6 +6977,7 @@ namespace BeWo.Service.ServiceImplementations
|
||||
}
|
||||
}
|
||||
|
||||
// ToDo: Ist der SignatureStateType Valid und ist die CRSOid null, die CRSOid hinzufügen!
|
||||
private static void MakeHistoryEntriesForConfirmationReceiptSignatures(List<ConfirmationReceiptSignature> confirmationReceiptSignatures, SignatureStateType signatureStateType)
|
||||
{
|
||||
foreach(var confirmationReceiptSignature in confirmationReceiptSignatures)
|
||||
@@ -6978,20 +6985,33 @@ namespace BeWo.Service.ServiceImplementations
|
||||
foreach(var serviceRecord in confirmationReceiptSignature.ServiceRecords)
|
||||
{
|
||||
SignatureStateType? customerMonthlySignatureStateType;
|
||||
SignatureStateType? employeeMonthlySignatureStateTyp;
|
||||
SignatureStateType? employeeMonthlySignatureStateType;
|
||||
|
||||
long? customerConfirmationReceiptSignatureOid = null;
|
||||
long? employeeConfirmationReceiptSignatureOid = null;
|
||||
|
||||
if(confirmationReceiptSignature.SignatureType == SignatureType.Customer)
|
||||
{
|
||||
customerMonthlySignatureStateType = signatureStateType;
|
||||
employeeMonthlySignatureStateTyp = null;
|
||||
employeeMonthlySignatureStateType = null;
|
||||
|
||||
if(signatureStateType == SignatureStateType.Valid)
|
||||
{
|
||||
customerConfirmationReceiptSignatureOid = confirmationReceiptSignature.Oid;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
customerMonthlySignatureStateType = null;
|
||||
employeeMonthlySignatureStateTyp = signatureStateType;
|
||||
employeeMonthlySignatureStateType = signatureStateType;
|
||||
|
||||
if(signatureStateType == SignatureStateType.Valid)
|
||||
{
|
||||
employeeConfirmationReceiptSignatureOid = confirmationReceiptSignature.Oid;
|
||||
}
|
||||
}
|
||||
|
||||
MakeSignatureStatusTypeServiceRecordHistoryEntry(serviceRecord, null, customerMonthlySignatureStateType, employeeMonthlySignatureStateTyp);
|
||||
MakeSignatureStatusTypeServiceRecordHistoryEntry(serviceRecord, null, customerMonthlySignatureStateType, employeeMonthlySignatureStateType, customerConfirmationReceiptSignatureOid, employeeConfirmationReceiptSignatureOid);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -7840,7 +7860,7 @@ namespace BeWo.Service.ServiceImplementations
|
||||
}
|
||||
}
|
||||
|
||||
var confirmationReceiptSignatures = DAOFactory.SearchDAO.LoadAllConfirmationReceiptSignaturesByServiceRecordOids(serviceRecordOids);
|
||||
var confirmationReceiptSignatures = DAOFactory.SearchDAO.LoadAllActiveConfirmationReceiptSignaturesByServiceRecordOids(serviceRecordOids);
|
||||
|
||||
var confirmationReceiptSignatures2Delete = new List<ConfirmationReceiptSignature>();
|
||||
var confirmationReceiptSignatures2Update = new List<ConfirmationReceiptSignature>();
|
||||
@@ -7908,15 +7928,12 @@ namespace BeWo.Service.ServiceImplementations
|
||||
{
|
||||
var first = confirmationReceiptSignature.ServiceRecords.FirstOrDefault();
|
||||
|
||||
// Eine Unterschrift, die in der confirmationReceiptSignatures2Delete ist, hat nur noch den einen ServiceRecord, der gerade in der Zeit bearbeitet wird!
|
||||
if(first != null)
|
||||
{
|
||||
var customerOid = first.CustomerOid.Value;
|
||||
var supportConceptOid = first.SupportConcept.Oid.Value;
|
||||
var costbearer2SupportConceptOid = first.CostBearer2SupportConceptOid.Value;
|
||||
var timeSpanString = confirmationReceiptSignature.TimeSpanString;
|
||||
var signatureOid = confirmationReceiptSignature.Oid.Value;
|
||||
var signatureOid = confirmationReceiptSignature.Oid.Value;
|
||||
|
||||
var formerlySignedServiceRecords = DAOFactory.SearchDAO.FindFormerlyLinkedServiceRecords(signatureOid, customerOid, supportConceptOid, costbearer2SupportConceptOid, timeSpanString);
|
||||
var formerlySignedServiceRecords = DAOFactory.SearchDAO.FindFormerlyLinkedServiceRecordsBySignatureOid(signatureOid);
|
||||
|
||||
var mostRecentHistoryEntries = DAOFactory.SearchDAO.FindMostRecentServiceRecordHistoryEntryByServiceRecords(formerlySignedServiceRecords.Select(s => s.Oid.Value).ToList());
|
||||
|
||||
@@ -8278,7 +8295,7 @@ namespace BeWo.Service.ServiceImplementations
|
||||
serviceRecord.SignatureOid = null;
|
||||
DAOFactory.GenericDAO.Update(serviceRecord);
|
||||
|
||||
MakeSignatureStatusTypeServiceRecordHistoryEntry(serviceRecord, SignatureStateType.ManuallyDeleted, null, null);
|
||||
MakeSignatureStatusTypeServiceRecordHistoryEntry(serviceRecord, SignatureStateType.ManuallyDeleted, null, null, null, null);
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
@@ -8303,94 +8320,8 @@ namespace BeWo.Service.ServiceImplementations
|
||||
throw Utils.CreateBeWoFaultException(e);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* private static void MakeServiceRecordHistoryEntry(IEnumerable<ServiceRecord> lOriginals, IEnumerable<long> serviceRecordOidList, StatementType statementType)
|
||||
{
|
||||
var hServiceRecords = new List<ServiceRecordHistory>();
|
||||
|
||||
if (statementType.Equals(StatementType.Insert) && serviceRecordOidList != null)
|
||||
{
|
||||
int iterator = 0;
|
||||
foreach (ServiceRecordHistory history in lOriginals.Select(ServiceRecordOriginal => new ServiceRecordHistory
|
||||
{
|
||||
TimeStamp = DateTime.Now,
|
||||
ChangeType = statementType,
|
||||
CostBearer2SupportConcept = ServiceRecordOriginal.CostBearer2SupportConcept,
|
||||
CostBearer2SupportConceptOid = ServiceRecordOriginal.CostBearer2SupportConceptOid,
|
||||
Customer = ServiceRecordOriginal.Customer,
|
||||
CustomerOid = ServiceRecordOriginal.CustomerOid,
|
||||
Employee = ServiceRecordOriginal.Employee,
|
||||
EmployeeOid = ServiceRecordOriginal.EmployeeOid,
|
||||
End = ServiceRecordOriginal.End,
|
||||
Group = ServiceRecordOriginal.Group,
|
||||
GroupEmployeeCount = ServiceRecordOriginal.GroupEmployeeCount,
|
||||
GroupOid = ServiceRecordOriginal.GroupOid,
|
||||
GroupPersonCount = ServiceRecordOriginal.GroupPersonCount,
|
||||
GroupRoundedDuration = ServiceRecordOriginal.GroupRoundedDuration,
|
||||
IP = ServiceRecordOriginal.IP,
|
||||
IsActive = ServiceRecordOriginal.IsActive,
|
||||
Notice = ServiceRecordOriginal.Notice,
|
||||
ServiceRecordOid = serviceRecordOidList.ElementAt(iterator),
|
||||
RoundedDuration = ServiceRecordOriginal.RoundedDuration,
|
||||
ServiceDescription = ServiceRecordOriginal.ServiceDescription,
|
||||
ServiceRecordType = ServiceRecordOriginal.ServiceRecordType,
|
||||
ServiceRecordInsTs = ServiceRecordOriginal.InsTs,
|
||||
ServiceRecordVersion = ServiceRecordOriginal.Version.Value,
|
||||
ServiceRecordInsUser = ServiceRecordOriginal.InsUser,
|
||||
ServiceRecordUdpUser = ServiceRecordOriginal.UdpUser,
|
||||
Start = ServiceRecordOriginal.Start,
|
||||
SupportConcept = ServiceRecordOriginal.SupportConcept,
|
||||
SystemEntryID = ServiceRecordOriginal.SystemEntryID,
|
||||
DistanceInMeter = ServiceRecordOriginal.DistanceInMeter,
|
||||
IsCreatedInMobileClient = ServiceRecordOriginal.IsCreatedInMobileClient
|
||||
}))
|
||||
{
|
||||
iterator++;
|
||||
hServiceRecords.Add(history);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
hServiceRecords.AddRange(lOriginals.Select(ServiceRecordOriginal => new ServiceRecordHistory
|
||||
{
|
||||
TimeStamp = DateTime.Now,
|
||||
ChangeType = statementType,
|
||||
CostBearer2SupportConcept = ServiceRecordOriginal.CostBearer2SupportConcept,
|
||||
CostBearer2SupportConceptOid = ServiceRecordOriginal.CostBearer2SupportConceptOid,
|
||||
Customer = ServiceRecordOriginal.Customer,
|
||||
CustomerOid = ServiceRecordOriginal.CustomerOid,
|
||||
Employee = ServiceRecordOriginal.Employee,
|
||||
EmployeeOid = ServiceRecordOriginal.EmployeeOid,
|
||||
End = ServiceRecordOriginal.End,
|
||||
Group = ServiceRecordOriginal.Group,
|
||||
GroupEmployeeCount = ServiceRecordOriginal.GroupEmployeeCount,
|
||||
GroupOid = ServiceRecordOriginal.GroupOid,
|
||||
GroupPersonCount = ServiceRecordOriginal.GroupPersonCount,
|
||||
GroupRoundedDuration = ServiceRecordOriginal.GroupRoundedDuration,
|
||||
IP = ServiceRecordOriginal.IP,
|
||||
IsActive = ServiceRecordOriginal.IsActive,
|
||||
Notice = ServiceRecordOriginal.Notice,
|
||||
ServiceRecordOid = ServiceRecordOriginal.Oid,
|
||||
RoundedDuration = ServiceRecordOriginal.RoundedDuration,
|
||||
ServiceDescription = ServiceRecordOriginal.ServiceDescription,
|
||||
ServiceRecordType = ServiceRecordOriginal.ServiceRecordType,
|
||||
ServiceRecordInsTs = ServiceRecordOriginal.InsTs,
|
||||
ServiceRecordVersion = ServiceRecordOriginal.Version.Value,
|
||||
ServiceRecordInsUser = ServiceRecordOriginal.InsUser,
|
||||
ServiceRecordUdpUser = ServiceRecordOriginal.UdpUser,
|
||||
Start = ServiceRecordOriginal.Start,
|
||||
SupportConcept = ServiceRecordOriginal.SupportConcept,
|
||||
SystemEntryID = ServiceRecordOriginal.SystemEntryID,
|
||||
DistanceInMeter = ServiceRecordOriginal.DistanceInMeter,
|
||||
IsCreatedInMobileClient = ServiceRecordOriginal.IsCreatedInMobileClient
|
||||
}));
|
||||
}
|
||||
|
||||
DAOFactory.GenericDAO.Insert(hServiceRecords);
|
||||
}
|
||||
*/
|
||||
private static void MakeSignatureStatusTypeServiceRecordHistoryEntry(ServiceRecord serviceRecord, SignatureStateType? singleSignatureStateType, SignatureStateType? customerMonthlySignatureStateType, SignatureStateType? employeeMonthlySignatureStateType)
|
||||
|
||||
private static void MakeSignatureStatusTypeServiceRecordHistoryEntry(ServiceRecord serviceRecord, SignatureStateType? singleSignatureStateType, SignatureStateType? customerMonthlySignatureStateType, SignatureStateType? employeeMonthlySignatureStateType, long? customerConfirmationReceiptSignatureOid, long? employeeConfirmationReceiptsignatureOid)
|
||||
{
|
||||
// Alten ServiceRecordHistory laden
|
||||
var mostRecentHistoryEntry = DAOFactory.SearchDAO.FindMostRecentServiceRecordHistoryEntryByServiceRecordOid(serviceRecord.Oid.Value);
|
||||
@@ -8429,7 +8360,9 @@ namespace BeWo.Service.ServiceImplementations
|
||||
IsCreatedInMobileClient = serviceRecord.IsCreatedInMobileClient,
|
||||
CustomerConfirmationReceiptSignatureStateType = customerMonthlySignatureStateType ?? mostRecentHistoryEntry?.CustomerConfirmationReceiptSignatureStateType ?? SignatureStateType.None,
|
||||
EmployeeConfirmationReceiptSignatureStateType = employeeMonthlySignatureStateType ?? mostRecentHistoryEntry?.EmployeeConfirmationReceiptSignatureStateType ?? SignatureStateType.None,
|
||||
ServiceRecordSignatureStateType = singleSignatureStateType ?? mostRecentHistoryEntry?.ServiceRecordSignatureStateType ?? SignatureStateType.None
|
||||
ServiceRecordSignatureStateType = singleSignatureStateType ?? mostRecentHistoryEntry?.ServiceRecordSignatureStateType ?? SignatureStateType.None,
|
||||
CustomerConfirmationReceiptSignatureOid = customerConfirmationReceiptSignatureOid ?? mostRecentHistoryEntry?.CustomerConfirmationReceiptSignatureOid,
|
||||
EmployeeConfirmationReceiptSignatureOid = employeeConfirmationReceiptsignatureOid ?? mostRecentHistoryEntry?.EmployeeConfirmationReceiptSignatureOid
|
||||
};
|
||||
|
||||
DAOFactory.GenericDAO.Insert(seviceRecordHistoryEntry);
|
||||
|
||||
Reference in New Issue
Block a user