diff --git a/SGGL/BLL/HSSE/SitePerson/SitePerson_PersonService.cs b/SGGL/BLL/HSSE/SitePerson/SitePerson_PersonService.cs index b7822e9e..eb3b4973 100644 --- a/SGGL/BLL/HSSE/SitePerson/SitePerson_PersonService.cs +++ b/SGGL/BLL/HSSE/SitePerson/SitePerson_PersonService.cs @@ -781,17 +781,25 @@ namespace BLL } else { - var getPersons = db.Person_Persons.FirstOrDefault(x => x.IdentityCard == newPerson.IdentityCard); - if (getPersons != null && (!getPersons.MultiProject.HasValue || getPersons.MultiProject == false)) + var getDatePItem = db.SitePerson_PersonItem.FirstOrDefault(x => x.ProjectId == person.ProjectId && x.IdentityCard == person.IdentityCard && x.OutTime .HasValue && x.OutTime < person.InTime); + if (getDatePItem != null) { - var getdate = newPerson.InTime.HasValue ? newPerson.InTime.Value.AddDays(-1) : DateTime.Now; - var getPersonItems = db.SitePerson_PersonItem.Where(x => x.PersonId == newPerson.PersonId && x.ProjectId != newPerson.ProjectId && !x.OutTime.HasValue); - foreach(var item in getPersonItems) - { - item.OutTime = getdate; - db.SubmitChanges(); - } + setPersonItemInOut = true; } + else + { + var getPersons = db.Person_Persons.FirstOrDefault(x => x.IdentityCard == newPerson.IdentityCard); + if (getPersons != null && (!getPersons.MultiProject.HasValue || getPersons.MultiProject == false)) + { + var getdate = newPerson.InTime.HasValue ? newPerson.InTime.Value.AddDays(-1) : DateTime.Now; + var getPersonItems = db.SitePerson_PersonItem.Where(x => x.PersonId == newPerson.PersonId && x.ProjectId != newPerson.ProjectId && !x.OutTime.HasValue); + foreach (var item in getPersonItems) + { + item.OutTime = getdate; + db.SubmitChanges(); + } + } + } } } if (setPersonItemInOut)