public override ExecutionResult Run(IStepExecutionContext context)
        {
            AuditWorkflowData auditData = _auditRepository.GetOneByWorkflowId(context.Workflow.Id);

            auditData.Recomendations = Recomendations;
            auditData.Conclusion     = Conclusion;
            auditData.AuditStateID   = _auditStateRepository.GetOneByCode("IPA");

            List <string> sectorPlantReferrents = _sectorPlantRepository.GetSectorPlantReferredEmail(auditData.PlantID, auditData.SectorID);

            EmailAddresses.AddRange(sectorPlantReferrents);
            _auditRepository.EmmitReport(auditData);
            //If auditor is internal, send email
            if (!string.IsNullOrEmpty(auditData.AuditorID))
            {
                EmailAddresses.Add(_auditRepository.GetAuditorEmail(auditData.AuditorID));
            }

            var emailType = "emmitreport";

            this.EmailSubject = EmailStrings.GetSubjectAudit(auditData.AuditTypeName, emailType);
            this.EmailMessage = EmailStrings.GetMessageAudit(auditData, _emailSettings.Url, emailType);

            //Add responsible of SGC
            List <string> responsibleSGC = _userWorkflowRepository.GetUsersEmailResponsibleSGC();

            EmailAddresses.AddRange(responsibleSGC);
            return(ExecutionResult.Next());
        }
        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 override ExecutionResult Run(IStepExecutionContext context)
        {
            var correctiveAction = new CorrectiveActionWorkflowData();

            correctiveAction.WorkflowId                = context.Workflow.Id;
            correctiveAction.CreationDate              = CreationDate;
            correctiveAction.Description               = Description;
            correctiveAction.FindingID                 = FindingID;
            correctiveAction.EmitterUserID             = EmitterUserID;
            correctiveAction.PlantLocationID           = PlantLocationID;
            correctiveAction.SectorLocationID          = SectorLocationID;
            correctiveAction.PlantTreatmentID          = PlantTreatmentID;
            correctiveAction.SectorTreatmentID         = SectorTreatmentID;
            correctiveAction.ResponsibleUserID         = ResponsibleUserID;
            correctiveAction.ReviewerUserID            = ReviewerUserID;
            correctiveAction.DeadlineDatePlanification = CreationDate.AddDays(_parametrizationCorrectiveActionRepository.GetByCode(STATE_PARAMETRIZATION_CORRECTIVEACTION_CODE_PLANIFICATION));

            correctiveAction.CorrectiveActionStateID = _correctiveActionStateRepository.GetByCode(STATE_OPEN_CODE);
            CorrectiveActionWorkflowData correctiveActionWorkFlowData = _correctiveActionRepository.Add(correctiveAction);

            _correctiveActionStateHistoryRepository.Add(correctiveActionWorkFlowData.CorrectiveActionID, correctiveActionWorkFlowData.CorrectiveActionStateID, EmitterUserID);

            EmailAddresses.AddRange(_userWorkflowRepository.GetUsersEmailResponsibleSGC());
            EmailAddresses.Add(_userWorkflowRepository.GetUserEmailByID(ResponsibleUserID));
            EmailAddresses.Add(_userWorkflowRepository.GetUserEmailByID(ReviewerUserID));
            EmailAddresses.AddRange(_sectorPlantRepository.GetSectorPlantReferredEmail(Convert.ToInt32(correctiveAction.PlantTreatmentID), Convert.ToInt32(correctiveAction.SectorTreatmentID)));

            correctiveAction = _correctiveActionRepository.GetOneByWorkflowId(correctiveAction.WorkflowId);
            var emailType = "new";

            this.EmailSubject = EmailStrings.GetSubjectCorrectiveAction(emailType);
            this.EmailMessage = EmailStrings.GetMessageCorrectiveAction(correctiveAction, _emailSettings.Url, emailType);

            return(ExecutionResult.Next());
        }
Beispiel #4
0
        public override ExecutionResult Run(IStepExecutionContext context)
        {
            AuditWorkflowData auditData = _auditRepository.GetOneByWorkflowId(context.Workflow.Id);

            auditData.AuditTeam                = AuditTeam;
            auditData.DocumentsAnalysisDate    = DocumentsAnalysisDate;
            auditData.DocumentAnalysisDuration = DocumentAnalysisDuration;
            auditData.ReportEmittedDate        = ReportEmittedDate;
            auditData.CloseMeetingDate         = CloseMeetingDate;
            auditData.CloseMeetingDuration     = CloseMeetingDuration;
            auditData.CloseDate                = CloseDate;
            auditData.AuditStateID             = _auditStateRepository.GetOneByCode("PPA");
            _auditRepository.PlanAudit(auditData, AuditStandardAspects);

            //List<string> sectorPlantReferrents = _sectorPlantRepository.GetSectorPlantReferredEmail(auditData.PlantID, auditData.SectorID);
            //EmailAddresses.AddRange(sectorPlantReferrents);

            ////If auditor is internal, send email
            //if (!string.IsNullOrEmpty(auditData.AuditorID))
            //{
            //    EmailAddresses.Add(_auditRepository.GetAuditorEmail(auditData.AuditorID));
            //}

            ////Left responsible of SGC
            EmailAddresses.AddRange(_userWorkflowRepository.GetUsersEmailResponsibleSGC());

            //auditData = _auditRepository.GetOneByWorkflowId(auditData.WorkflowId);
            var emailType = "plan";

            this.EmailSubject = EmailStrings.GetSubjectAudit(auditData.AuditTypeName, emailType);
            this.EmailMessage = EmailStrings.GetMessageAudit(auditData, _emailSettings.Url, emailType);

            return(ExecutionResult.Next());
        }
        public override ExecutionResult Run(IStepExecutionContext context)
        {
            AuditWorkflowData auditWorkflowData = _auditRepository.GetOneByWorkflowId(context.Workflow.Id);

            auditWorkflowData.AuditStateID        = _auditStateRepository.GetOneByCode("PRZ");
            auditWorkflowData.ApprovePlanComments = ApprovePlanComments;

            _auditRepository.ApproveOrRejectAuditPlan(auditWorkflowData);

            List <string> sectorPlantReferrents = _sectorPlantRepository.GetSectorPlantReferredEmail(auditWorkflowData.PlantID, auditWorkflowData.SectorID);

            EmailAddresses.AddRange(_userWorkflowRepository.GetUsersEmailResponsibleSGC());

            ////If auditor is internal, send email
            if (!string.IsNullOrEmpty(auditWorkflowData.AuditorID))
            {
                EmailAddresses.Add(_auditRepository.GetAuditorEmail(auditWorkflowData.AuditorID));
            }

            //Left responsible of SGC

            auditWorkflowData = _auditRepository.GetOneByWorkflowId(auditWorkflowData.WorkflowId);
            var emailType = "rejectplan";

            this.EmailSubject = EmailStrings.GetSubjectAudit(auditWorkflowData.AuditTypeName, emailType);
            this.EmailMessage = EmailStrings.GetMessageAudit(auditWorkflowData, _emailSettings.Url, emailType);

            return(ExecutionResult.Next());
        }
        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());
        }
Beispiel #7
0
        public override ExecutionResult Run(IStepExecutionContext context)
        {
            AuditWorkflowData auditData = _auditRepository.GetOneByWorkflowId(context.Workflow.Id);

            auditData.ApproveReportComments = ApproveReportComments;
            auditData.AuditStateID          = _auditStateRepository.GetOneByCode("IAP");

            List <string> sectorPlantReferrents = _sectorPlantRepository.GetSectorPlantReferredEmail(auditData.PlantID, auditData.SectorID);

            EmailAddresses.AddRange(sectorPlantReferrents);
            _auditRepository.ApproveOrRejectReportAudit(auditData);
            //If auditor is internal, send email
            if (!string.IsNullOrEmpty(auditData.AuditorID))
            {
                EmailAddresses.Add(_auditRepository.GetAuditorEmail(auditData.AuditorID));
            }

            //Add responsible of SGC
            List <string> responsibleSGC = _userWorkflowRepository.GetUsersEmailResponsibleSGC();

            EmailAddresses.AddRange(responsibleSGC);

            auditData = _auditRepository.GetOneByWorkflowId(auditData.WorkflowId);
            var emailType = "close";

            this.EmailSubject = EmailStrings.GetSubjectAudit(auditData.AuditTypeName, emailType);
            this.EmailMessage = EmailStrings.GetMessageAudit(auditData, _emailSettings.Url, emailType);

            var findingsWorkFlow = _findingRepository.GetAllByAuditID(auditData.AuditID);

            foreach (var finding in findingsWorkFlow)
            {
                finding.Flow        = "Finding";
                finding.FlowVersion = 1;
                _workflowCore.StartFlow(finding);
            }

            // _auditStandardAspectRepository.
            return(ExecutionResult.Next());
        }
Beispiel #8
0
        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());
        }
Beispiel #9
0
        public override ExecutionResult Run(IStepExecutionContext context)
        {
            FindingWorkflowData finding = _findingRepository.GetOneByWorkflowId(context.Workflow.Id);

            finding.FinalComment = this.FinalComment;
            if (State == "Finalizado OK")
            {
                finding.FindingStateID = _findingStateRepository.GetOneByCode("FOK");
            }
            else if (State == "Finalizado No OK")
            {
                finding.FindingStateID = _findingStateRepository.GetOneByCode("FNK");
            }
            else if (State == "Cerrado")
            {
                finding.FindingStateID = _findingStateRepository.GetOneByCode("CER");
            }

            _findingRepository.Update(finding);
            _findingStatesHistoryRepository.Add(finding.FindingID, finding.FindingStateID, finding.ResponsibleUserID);

            finding = _findingRepository.UpdateIsInProcessWorkflow(finding.FindingID, false);
            // responsible
            EmailAddresses.Add(_findingRepository.GetResponsibleUserEmail(finding.ResponsibleUserID));
            //User creator
            EmailAddresses.Add(_findingRepository.GetResponsibleUserEmail(finding.EmitterUserID));
            // SGC
            EmailAddresses.AddRange(_userWorkflowRepository.GetUsersEmailResponsibleSGC());
            // Boss, colaborator
            EmailAddresses.AddRange(_userWorkflowRepository.GetUsersEmailSectorBoss());
            EmailAddresses.AddRange(_userWorkflowRepository.GetUsersEmailColaboratorSB());
            this.EmailSubject = EmailStrings.GetSubjectFinding(finding.FindingTypeName, "close");
            this.EmailMessage = EmailStrings.GetMessageFinding(finding, _emailSettings.Url, "close");

            _hub.Clients.All.SendAsync("transferfindingsdata", finding);
            return(ExecutionResult.Next());
        }
Beispiel #10
0
        public override ExecutionResult Run(IStepExecutionContext context)
        {
            FindingWorkflowData finding = _findingRepository.GetOneByWorkflowId(context.Workflow.Id);

            finding.Description       = this.Description;
            finding.PlantLocationID   = this.PlantLocationID;
            finding.SectorLocationID  = this.SectorLocationID;
            finding.PlantTreatmentID  = this.PlantTreatmentID;
            finding.SectorTreatmentID = this.SectorTreatmentID;
            finding.ResponsibleUserID = this.ResponsibleUserID;
            finding.FindingTypeID     = this.FindingTypeID;
            finding.ExpirationDate    = this.ExpirationDate;



            if (State == "ApproveWithPDCA")
            {
                int newStateId = _findingStateRepository.GetOneByCode("APD");
                finding.FindingStateID = newStateId;
                _findingRepository.Update(finding);
                var correctiveAction = new CorrectiveActionWorkflowData();
                correctiveAction.Description       = finding.Description;
                correctiveAction.PlantLocationID   = finding.PlantLocationID;
                correctiveAction.SectorLocationID  = finding.SectorLocationID;
                correctiveAction.PlantTreatmentID  = finding.PlantTreatmentID;
                correctiveAction.SectorTreatmentID = finding.SectorTreatmentID;
                correctiveAction.ResponsibleUserID = finding.ResponsibleUserID;
                correctiveAction.FindingID         = finding.FindingID;
                correctiveAction.EmitterUserID     = EmitterUserID;
                correctiveAction.ReviewerUserID    = ReviewerUserID;
                correctiveAction.CreationDate      = DateTime.Today;
                correctiveAction.Flow        = "CorrectiveAction";
                correctiveAction.FlowVersion = 1;
                _workflowCore.StartFlow(correctiveAction);
            }
            else if (State == "Approve")
            {
                int newStateId = _findingStateRepository.GetOneByCode("APR");
                finding.FindingStateID = newStateId;
                _findingRepository.Update(finding);
            }

            //Delete Evidences
            foreach (var deleteEvidence in DeleteEvidencesUrls)
            {
                _findingEvidenceRepository.Delete(finding.FindingID, deleteEvidence);
            }

            //Add Evidences
            foreach (var newEvidence in NewEvidencesUrls)
            {
                _findingEvidenceRepository.Add(finding.FindingID, newEvidence);
            }

            //Left obtain Responsible SGC ID
            string IDRESPONSIBLESGC = finding.ResponsibleUserID;

            _findingStatesHistoryRepository.Add(finding.FindingID, finding.FindingStateID, IDRESPONSIBLESGC);

            finding = _findingRepository.UpdateIsInProcessWorkflow(finding.FindingID, false);
            EmailAddresses.AddRange(_userWorkflowRepository.GetUsersEmailResponsibleSGC());
            EmailAddresses.AddRange(_userWorkflowRepository.GetUsersEmailSectorBoss());
            EmailAddresses.AddRange(_userWorkflowRepository.GetUsersEmailColaboratorSB());
            var email = _findingRepository.GetResponsibleUserEmail(finding.ResponsibleUserID);

            EmailAddresses.Add(email);

            this.EmailSubject = Data.EmailStrings.GetSubjectFinding(finding.FindingTypeName, "approve");
            this.EmailMessage = Data.EmailStrings.GetMessageFinding(finding, _emailSettings.Url, "approve");

            _hub.Clients.All.SendAsync("transferfindingsdata", finding);
            //Get Responsible User Email.
            return(ExecutionResult.Next());
        }