protected void ChangeEntityProperties(HelpServiceRequest entity,HelpServiceRequestEditModel model, UploadFileDto fileDto, User currUser,out string error) { error = string.Empty; UserRole currRole = AuthenticationService.CurrentUser.UserRole; if (model.IsEditable) { HelpServiceType type = HelpServiceTypeDao.Load(model.TypeId); if (model.Id != 0) { if (fileDto != null && entity.Type.IsAttachmentAvailable && model.AttachmentId != 0) RequestAttachmentDao.DeleteAndFlush(model.AttachmentId); } entity.Type = type; entity.IsForGEMoney = model.IsForGEMoney; entity.Note = noteTypeDao.Load(model.Note); entity.FiredUserName = model.FiredUserName; entity.FiredUserSurname = model.FiredUserSurname; entity.FiredUserPatronymic = model.FiredUserPatronymic; if (model.DepartmentId > 0) { var dep = DepartmentDao.Load(model.DepartmentId); entity.FiredUserDepartment = dep; } if(model.UserBirthDate!=null) entity.UserBirthDate = DateTime.Parse(model.UserBirthDate); entity.ProductionTime = HelpServiceProductionTimeDao.Load(model.ProductionTimeTypeId); entity.TransferMethod = helpServiceTransferMethodDao.Load(model.TransferMethodTypeId); entity.Requirements = type.IsRequirementsAvailable ? model.Requirements : null; entity.Period = type.IsPeriodAvailable ? model.PeriodId.HasValue ? helpServicePeriodDao.Load(model.PeriodId.Value) : null : null; entity.Address = model.Address; if(fileDto != null && entity.Type.IsAttachmentAvailable && entity.Id != 0) { RequestAttachment attachment = new RequestAttachment { UncompressContext = fileDto.Context, ContextType = fileDto.ContextType, CreatorRole = RoleDao.Load((int)currRole), DateCreated = DateTime.Now, FileName = fileDto.FileName, RequestId = entity.Id, RequestType = (int)RequestAttachmentTypeEnum.HelpServiceRequestTemplate, }; RequestAttachmentDao.SaveAndFlush(attachment); model.AttachmentId = attachment.Id; model.Attachment = attachment.FileName; } if (!entity.Type.IsAttachmentAvailable && model.AttachmentId != 0) RequestAttachmentDao.DeleteAndFlush(model.AttachmentId); } if (model.IsConsultantOutsourcingEditable) { if (fileDto != null && model.ServiceAttachmentId != 0) RequestAttachmentDao.DeleteAndFlush(model.ServiceAttachmentId); if (fileDto != null) { RequestAttachment attachment = new RequestAttachment { UncompressContext = fileDto.Context, ContextType = fileDto.ContextType, CreatorRole = RoleDao.Load((int)currRole), DateCreated = DateTime.Now, FileName = fileDto.FileName, RequestId = entity.Id, RequestType = (int)RequestAttachmentTypeEnum.HelpServiceRequest, DocumentsCount = model.DocumentsCount>0?model.DocumentsCount:1 }; RequestAttachmentDao.SaveAndFlush(attachment); model.ServiceAttachmentId = attachment.Id; model.ServiceAttachment = attachment.FileName; } } switch (currRole) { case UserRole.ConsultantPersonnel: case UserRole.Employee: if (entity.Creator.Id == currUser.Id) { if (model.Operation == 1 && !entity.SendDate.HasValue) entity.SendDate = DateTime.Now; if(entity.EndWorkDate.HasValue) { if(model.Operation == 4) entity.ConfirmWorkDate = DateTime.Now; else if(model.Operation == 5) { entity.SendDate = null; entity.BeginWorkDate = null; entity.EndWorkDate = null; } } } break; case UserRole.DismissedEmployee: if (entity.Creator.Id == currUser.Id) { if (model.Operation == 1 && !entity.SendDate.HasValue) entity.SendDate = DateTime.Now; if (entity.EndWorkDate.HasValue) { if (model.Operation == 4) entity.ConfirmWorkDate = DateTime.Now; else if (model.Operation == 5) { entity.SendDate = null; entity.BeginWorkDate = null; entity.EndWorkDate = null; } } } break; case UserRole.Manager: if (entity.Creator.Id == currUser.Id) { if (model.Operation == 1 && !entity.SendDate.HasValue) entity.SendDate = DateTime.Now; if (entity.EndWorkDate.HasValue) { if (model.Operation == 4) entity.ConfirmWorkDate = DateTime.Now; else if (model.Operation == 5) { entity.SendDate = null; entity.BeginWorkDate = null; entity.EndWorkDate = null; } } } break; case UserRole.ConsultantOutsourcing: if (entity.Consultant == null || (entity.Consultant.Id == currUser.Id)) { if (model.Operation == 2 && entity.SendDate.HasValue) { entity.BeginWorkDate = DateTime.Now; entity.Consultant = currUser; } if (entity.Consultant != null && entity.Consultant.Id == currUser.Id && model.Operation == 3 && entity.BeginWorkDate.HasValue) { entity.EndWorkDate = DateTime.Now; entity.ConfirmWorkDate = DateTime.Now; } if (entity.Consultant != null && entity.Consultant.Id == currUser.Id && model.Operation == 6 && entity.BeginWorkDate.HasValue) { entity.EndWorkDate = DateTime.Now; entity.NotEndWorkDate = DateTime.Now; } } //кнопка принятия в работу доступна пока не сформируется услуга не зависимо от того, кто ее принял в работу if (model.Operation == 2 && entity.SendDate.HasValue && !entity.NotEndWorkDate.HasValue) { entity.BeginWorkDate = DateTime.Now; entity.Consultant = currUser; } break; case UserRole.PersonnelManager: if (entity.Consultant == null || (entity.Consultant.Id == currUser.Id)) { if (model.Operation == 2 && entity.SendDate.HasValue) { entity.BeginWorkDate = DateTime.Now; entity.Consultant = currUser; } if (entity.Consultant != null && entity.Consultant.Id == currUser.Id && model.Operation == 3 && entity.BeginWorkDate.HasValue) { entity.EndWorkDate = DateTime.Now; entity.ConfirmWorkDate = DateTime.Now; } if (entity.Consultant != null && entity.Consultant.Id == currUser.Id && model.Operation == 6 && entity.BeginWorkDate.HasValue) { entity.EndWorkDate = DateTime.Now; entity.NotEndWorkDate = DateTime.Now; } } //кнопка принятия в работу доступна пока не сформируется услуга не зависимо от того, кто ее принял в работу if (model.Operation == 2 && entity.SendDate.HasValue && !entity.NotEndWorkDate.HasValue) { entity.BeginWorkDate = DateTime.Now; entity.Consultant = currUser; } //если консультант создает заявку за сотрудника if (entity.Creator.Id == currUser.Id && model.Operation == 1 && !entity.SendDate.HasValue) entity.SendDate = DateTime.Now; break; /*case UserRole.PersonnelManager: //DEPRECATED MAY BE PROBLEM if (entity.Consultant == null || (entity.Consultant.Id == currUser.Id)) { if (model.Operation == 2 && entity.SendDate.HasValue) { entity.BeginWorkDate = DateTime.Now; entity.Consultant = currUser; } if (entity.Consultant != null && entity.Consultant.Id == currUser.Id && model.Operation == 3 && entity.BeginWorkDate.HasValue) { entity.EndWorkDate = DateTime.Now; entity.ConfirmWorkDate = DateTime.Now; } if (entity.Consultant != null && entity.Consultant.Id == currUser.Id && model.Operation == 6 && entity.BeginWorkDate.HasValue && currUser.Id == 10) { entity.EndWorkDate = DateTime.Now; entity.NotEndWorkDate = DateTime.Now; } } //кнопка принятия в работу доступна пока не сформируется услуга не зависимо от того, кто ее принял в работу if (model.Operation == 2 && entity.SendDate.HasValue && !entity.NotEndWorkDate.HasValue) { entity.BeginWorkDate = DateTime.Now; entity.Consultant = currUser; } break;*/ } }
public bool SaveTemplate(SaveAttacmentModel model) { if (AuthenticationService.CurrentUser.UserRole != UserRole.Admin) { model.Error = StrCannotEditFaq; return false; } RequestAttachment attach; if (model.Id == 0) { attach = new RequestAttachment { ContextType = RequestBl.GetFileContext(model.FileDto.FileName), DateCreated = DateTime.Now, Description = model.Description, FileName = model.FileDto.FileName, RequestId = 0, RequestType = (int) model.EntityTypeId, UncompressContext = model.FileDto.Context, CreatorRole = RoleDao.Load((int) CurrentUser.UserRole) }; } else { attach = RequestAttachmentDao.Load(model.Id); attach.ContextType = RequestBl.GetFileContext(model.FileDto.FileName); attach.DateCreated = DateTime.Now; attach.Description = model.Description; attach.FileName = model.FileDto.FileName; attach.UncompressContext = model.FileDto.Context; attach.CreatorRole = RoleDao.Load((int) CurrentUser.UserRole); } RequestAttachmentDao.SaveAndFlush(attach); model.Id = attach.Id; return true; }