public override ExecutionResult Run(IStepExecutionContext context) { var correctiveAction = _correctiveActionRepository.GetOneByWorkflowId(context.Workflow.Id); correctiveAction.CorrectiveActionStateID = _correctiveActionStateRepository.GetByCode(STATE_PLANNED_CODE); correctiveAction.MaxDateEfficiencyEvaluation = MaxDateEfficiencyEvaluation; correctiveAction.MaxDateImplementation = MaxDateImplementation; correctiveAction.DeadlineDateEvaluation = MaxDateEfficiencyEvaluation.AddDays(_parametrizationCorrectiveActionRepository.GetByCode(STATE_PARAMETRIZATION_CORRECTIVEACTION_CODE_EVALUATION)); correctiveAction.Impact = Impact; _correctiveActionRepository.Update(correctiveAction); _correctiveActionStateHistoryRepository.Add(correctiveAction.CorrectiveActionID, correctiveAction.CorrectiveActionStateID, EmitterUserID); EmailAddresses.AddRange(_userWorkflowRepository.GetUsersEmailResponsibleSGC()); EmailAddresses.Add(_userWorkflowRepository.GetUserEmailByID(correctiveAction.ResponsibleUserID)); EmailAddresses.AddRange(_taskRepository.GetAllResponsibleUserEmailForCorrectiveAction(correctiveAction.CorrectiveActionID)); EmailAddresses.AddRange(_sectorPlantRepository.GetSectorPlantReferredEmail(Convert.ToInt32(correctiveAction.PlantTreatmentID), Convert.ToInt32(correctiveAction.SectorTreatmentID))); correctiveAction = _correctiveActionRepository.GetOneByWorkflowId(correctiveAction.WorkflowId); var emailType = "generate"; this.EmailSubject = EmailStrings.GetSubjectCorrectiveAction(emailType); this.EmailMessage = EmailStrings.GetMessageCorrectiveAction(correctiveAction, _emailSettings.Url, emailType); return(ExecutionResult.Next()); }
public bool Execute(Domain.CorrectiveAction.CorrectiveAction correctiveAction) { var emailAddress = new List <string>(); var ccEmailAddresses = new List <string>(); var bccEmailAddresses = new List <string>(); var userID = _httpContextAccessor.HttpContext.User.FindFirst("id").Value; var emailSubject = ""; string content = ""; var correctiveAc = _correctiveActionRepository.GetOne(correctiveAction.CorrectiveActionID); string url = $"{_emailSettings.Url}/quality/corrective-actions/{correctiveAction.CorrectiveActionID}/detail"; emailSubject = $"HoshinCloud - Extensión fecha de {(correctiveAction.CorrectiveActionState.Code == "EFP" ? "Planificación de AC" : "Evaluación de AC")}"; content = $"<p>Estimado usuario:</p>"; content += $"<p>Se ha extendido la fecha de vencimiento de {(correctiveAction.CorrectiveActionState.Code == "EFP" ? "Planificación" : "Evaluación")} de una Acción Correctiva" + "</p>"; content += $"<p><b>Id de Acción Correctiva</b>: {correctiveAction.CorrectiveActionID}</p>"; content += $"<p><b>Descripción</b>: {correctiveAction.Description}</p>"; content += $"<p><b>Sector</b>: {correctiveAc.SectorPlantLocationName}</p>"; content += $"<p><b>Responsable Asignado</b>: {correctiveAc.ResponsibleUserFullName}</p>"; content += $"<p><b>Evaluador Asignado</b>: {correctiveAc.ReviewerUserFullName}</p>"; content += $"<p><b>Nueva fecha de vencimiento {(correctiveAction.CorrectiveActionState.Code == "EFP" ? "Planificación" : "Evaluación")}</b>: " + correctiveAction.DeadlineDatePlanification.ToString("dd/MM/yyyy") + "</p>"; content += $"<p>Puede acceder desde aquí: <a href={url}>Ver Acción Correctiva.</a></p>"; content += $"<p>Saludos cordiales.</p>"; correctiveAction.CorrectiveActionStateID = _correctiveActionStateRepository.GetByCode(correctiveAction.CorrectiveActionState.Code == "EFP" ? "ABI" : "TRT"); _correctiveActionStatesHistoryRepository.Add(correctiveAction.CorrectiveActionID, correctiveAction.CorrectiveActionStateID, userID); _correctiveActionRepository.Update(correctiveAction); emailAddress.Add(correctiveAction.ResponisbleUser.Email); emailAddress.AddRange(_sectorPlantRepository.GetSectorPlantReferredEmail(Convert.ToInt32(correctiveAction.PlantTreatmentID), Convert.ToInt32(correctiveAction.SectorTreatmentID))); emailAddress.AddRange(_userRepository.GetUsersEmailResponsibleSGC()); _emailSender.SendEmailAsync(emailAddress.ToArray(), ccEmailAddresses.ToArray(), bccEmailAddresses.ToArray(), emailSubject, content, true, MailPriority); return(true); }
public override ExecutionResult Run(IStepExecutionContext context) { var correctiveAction = _correctiveActionRepository.GetOneByWorkflowId(context.Workflow.Id); correctiveAction.CorrectiveActionStateID = _correctiveActionStateRepository.GetByCode(STATE_CLOSED_CODE); correctiveAction.EvaluationCommentary = EvaluationCommentary; correctiveAction.dateTimeEfficiencyEvaluation = DateTime.Now; correctiveAction.isEffective = isEffective; _correctiveActionEvidenceRepository.Update(correctiveAction.CorrectiveActionID, EvidencesUrl, new List <string>()); _correctiveActionRepository.Update(correctiveAction); _correctiveActionStateHistoryRepository.Add(correctiveAction.CorrectiveActionID, correctiveAction.CorrectiveActionStateID, EmitterUserID); EmailAddresses.AddRange(_userWorkflowRepository.GetUsersEmailResponsibleSGC()); EmailAddresses.Add(_userWorkflowRepository.GetUserEmailByID(correctiveAction.ResponsibleUserID)); EmailAddresses.AddRange(_sectorPlantRepository.GetSectorPlantReferredEmail(Convert.ToInt32(correctiveAction.PlantTreatmentID), Convert.ToInt32(correctiveAction.SectorTreatmentID))); correctiveAction = _correctiveActionRepository.GetOneByWorkflowId(correctiveAction.WorkflowId); var emailType = "reviewed"; this.EmailSubject = EmailStrings.GetSubjectCorrectiveAction(emailType); this.EmailMessage = EmailStrings.GetMessageCorrectiveAction(correctiveAction, _emailSettings.Url, emailType); if (!isEffective) { //EmailMessage = "Se ha rechazado la evaluación de la accion correctiva. " + EvaluationCommentary; correctiveAction.Flow = "CorrectiveAction"; correctiveAction.FlowVersion = 1; _workflowCore.StartFlow(correctiveAction); } return(ExecutionResult.Next()); }
public async void ExecuteAsync(Domain.CorrectiveAction.CorrectiveAction correctiveAction, string observation, DateTime overdueTime, int correctiveActionID) { var userID = _httpContextAccessor.HttpContext.User.FindFirst("id").Value; var correctiveAc = _correctiveActionRepository.GetOne(correctiveAction.CorrectiveActionID); var users = _userReopository.GetAll(); //var idUser = ""; //foreach (var u in users) //{ // var roles = u.Roles; // foreach (var r in roles) // { // if (r == "Aprobador de AC") // { // idUser = u.Id; // } // } //} string url = $"{_emailSettings.Url}/quality/corrective-actions/{correctiveAction.CorrectiveActionID}/detail"; List <string> EmailsToNotify = new List <string>(); EmailsToNotify.AddRange(_userWorkflowRepository.GetUsersEmailCorrectiveActionApprover()); int ACid = 0; string emailSubject = "HoshinCloud - Solicitud extensión fecha de Evaluación de AC."; string content = $"<html>" + $"<body>" + $"<p>Estimado usuario: </p>" + $"<p>Se solicita la extensión de la fecha de Evaluación de la Acción Correctiva:</p>" + $"<p><b>Id de Acción Correctiva: </b> {correctiveAction.CorrectiveActionID}</p>" + $"<p><b>Descripción: </b> {correctiveAc.Description}</p>" + $"<p><b>Sector: </b> {correctiveAc.SectorPlantTreatmentName}</p>" + $"<p><b>Responsable asignado: </b> {correctiveAc.ResponsibleUserFullName}</p>" + $"<p><b>Evaluador asignado: </b>{correctiveAc.ReviewerUserFullName}</p>" + $"<p><b>Fecha vencimiento de Evaluación: </b>{correctiveAc.DeadlineDateEvaluation.ToString("dd/MM/yyyy")}</p>" + $"<p><b>Estado :</b>{correctiveAc.CorrectiveActionStateName}</p>" + $"<p><b>Fecha vencimiento Evaluación solicitada: </b>{overdueTime.ToString("dd/MM/yyyy")}</p>" + $"<p>Puede acceder desde aquí: <a href={url}>Ver Acción Correctiva.</a></p>" + $"<p></p>" + $"<p>Saludos cordiales.</p>" + $"</body>" + $"</html>"; await _emailSender.SendEmailAsync(EmailsToNotify.ToArray(), new List <string>().ToArray(), new List <string>().ToArray(), emailSubject, content, true, System.Net.Mail.MailPriority.High); var allACstates = _CorrectiveActionStateRepository.GetAll(); foreach (var s in allACstates) { if (s.Code == "EFE") { ACid = s.CorrectiveActionStateID; } } correctiveAc.CorrectiveActionStateID = ACid; _correctiveActionStatesHistoryRepository.Add(correctiveAc.CorrectiveActionID, correctiveAc.CorrectiveActionStateID, userID); _correctiveActionRepository.Update(correctiveAc); }
public bool Execute(Task task) { var emailAddress = new List <string>(); var ccEmailAddresses = new List <string>(); var bccEmailAddresses = new List <string>(); var emailSubject = "Extensión fecha de vencimiento de tarea de AC."; var userID = _httpContextAccessor.HttpContext.User.FindFirst("id").Value; var correctiveAction = _correctiveActionRepository.GetOne(task.EntityID); if (task.ImplementationPlannedDate > correctiveAction.MaxDateImplementation) { var previousMaxdateImplementation = correctiveAction.MaxDateImplementation; correctiveAction.MaxDateImplementation = Convert.ToDateTime(task.ImplementationPlannedDate); int correctiveActionStateID = _correctiveActionStateRepository.GetByCode("PLN"); correctiveAction.CorrectiveActionStateID = correctiveActionStateID; _correctiveActionStatesHistoryRepository.Add(correctiveAction.CorrectiveActionID, correctiveAction.CorrectiveActionStateID, userID); double days = (correctiveAction.MaxDateImplementation - previousMaxdateImplementation).TotalDays; correctiveAction.MaxDateEfficiencyEvaluation = correctiveAction.MaxDateEfficiencyEvaluation.AddDays(days); correctiveAction.DeadlineDateEvaluation = correctiveAction.DeadlineDateEvaluation.AddDays(days); _correctiveActionRepository.Update(correctiveAction); emailAddress.Add(correctiveAction.ResponisbleUser.Email); } int taskStateID = _taskStateRepository.GetIdByCode("ECU"); task.TaskStateID = taskStateID; _taskRepository.Update(task); var userTask = _userRepository.Get(task.ResponsibleUserID); emailAddress.Add(userTask.Email); var url = $"{_emailSettings.Url}/quality/corrective-actions/{correctiveAction.CorrectiveActionID}/detail"; var emailMessage = $"<html>" + $"<body>" + $"<p>Estimado Usuario: </p>" + $"<p>Se ha extendido la fecha de vencimiento de una tarea de AC: </p>" + $"<p><b>Id tarea: </b>{task.TaskID}.</p>" + $"<p><b>Id de Acción Correctiva: </b>{correctiveAction.CorrectiveActionID}.</p>" + $"<p><b>Descripción de la tarea: </b>{task.Description}.</p>" + $"<p><b>Responsable asignado a la tarea: </b>{userTask.FullName}.</p>" + $"<p><b>Nueva fecha vencimiento de la tarea: </b>{task.ImplementationPlannedDate.ToString("dd/MM/yyyy")}.</p>" + $"<p><b>Fecha de implementación total de la AC: </b>{correctiveAction.MaxDateImplementation.ToString("dd/MM/yyyy")}.</p>" + $"<p>Puede acceder desde aquí: <a href={url}>Ver tarea de Acción Correctiva</a>.</p>" + $"<p></p>" + $"<p>Saludos cordiales.</p>" + $"</body>" + $"</html>"; _emailSender.SendEmailAsync(emailAddress.ToArray(), ccEmailAddresses.ToArray(), bccEmailAddresses.ToArray(), emailSubject, emailMessage, true, MailPriority); return(true); }
public override ExecutionResult Run(IStepExecutionContext context) { var correctiveAction = _correctiveActionRepository.GetOneByWorkflowId(context.Workflow.Id); correctiveAction.CorrectiveActionStateID = _correctiveActionStateRepository.GetByCode(STATE_PLANNED_CODE); correctiveAction.EffectiveDateImplementation = DateTime.Now; _correctiveActionRepository.Update(correctiveAction); _correctiveActionStateHistoryRepository.Add(correctiveAction.CorrectiveActionID, correctiveAction.CorrectiveActionStateID, EmitterUserID); EmailAddresses.AddRange(_userWorkflowRepository.GetUsersEmailResponsibleSGC()); EmailAddresses.Add(_userWorkflowRepository.GetUserEmailByID(correctiveAction.ResponsibleUserID)); EmailAddresses.Add(_userWorkflowRepository.GetUserEmailByID(correctiveAction.ReviewerUserID)); EmailAddresses.AddRange(_sectorPlantRepository.GetSectorPlantReferredEmail(Convert.ToInt32(correctiveAction.PlantTreatmentID), Convert.ToInt32(correctiveAction.SectorTreatmentID))); correctiveAction = _correctiveActionRepository.GetOneByWorkflowId(correctiveAction.WorkflowId); var emailType = "finishedtasks"; this.EmailSubject = EmailStrings.GetSubjectCorrectiveAction(emailType); this.EmailMessage = EmailStrings.GetMessageCorrectiveAction(correctiveAction, _emailSettings.Url, emailType); return(ExecutionResult.Next()); }
public CorrectiveActionOutput Execute(Domain.CorrectiveAction.CorrectiveAction correctiveAction) { return(_mapper.Map <Domain.CorrectiveAction.CorrectiveAction, CorrectiveActionOutput>(_correctiveActionRepository.Update(correctiveAction))); }