public override void Update(QmsCorrectiveactionrequest entity)
        {
            QmsCorrectiveactionrequest oldEntity = this.RetrieveById(entity.Id);

            base.update(oldEntity, entity);
            base.Save();
        }
示例#2
0
        public CorrectiveAction(QmsCorrectiveactionrequest car, User viewer)
        {
            orgViewerIsFrom          = viewer.OrgId.Value;
            this.ActionId            = 0;
            this.ActionRequestTypeId = car.ActionRequestTypeId;
            this.AssignedAt          = car.AssignedAt;
            this.CreatedAtOrgId      = car.CreatedAtOrgId.Value;
            this.CreatedByOrg        = new Organization(car.CreatedAtOrg);
            this.AssignedToUserId    = car.AssignedToUserId;
            if (this.AssignedToUserId.HasValue)
            {
                this.AssignedToUser = new User(car.AssignedToUser, false, false);
            }

            this.AssignedByUserId = car.AssignedByUserId;
            this.AssignedToOrgId  = car.AssignedToOrgId;
            if (this.AssignedToOrgId.HasValue)
            {
                this.AssignedToOrg = new Organization(car.AssignedToOrg);
            }
            this.CreatedAt          = car.CreatedAt;
            this.CreatedByUserId    = car.CreatedByUserId;
            this.CreatedByUser      = new User(car.CreatedByUser, false, false);
            this.DeletedAt          = car.DeletedAt;
            this.EffectiveDateOfPar = car.EffectiveDateOfPar;
            this.EmplId             = car.EmplId;
            this.Employee           = new Employee(car.Empl);
            this.Id = car.Id;
            this.paymentMismatch  = car.IsPaymentMismatch;
            this.NOACode          = car.NatureOfAction;
            this.ParEffectiveDate = car.PareffectiveDate;
            this.ResolvedAt       = car.ResolvedAt;
            this.StatusId         = car.StatusId;
            this.Status           = new Status(car.Status);
            this.SubmittedAt      = car.SubmittedAt;
            this.UpdatedAt        = car.UpdatedAt;
            this.Details          = car.Details;
            this.ErrorTypes       = new List <ErrorType>();
            this.RowVersion       = car.RowVersion;
            foreach (var item in car.QmsCorrectiveactionErrortype)
            {
                Console.WriteLine($"[CorrectiveAction] => (QmsCorrectiveactionErrortype.Id)................: {item.Id}");
                Console.WriteLine($"[CorrectiveAction] => (QmsCorrectiveactionErrortype.CorrectiveActionId): {item.CorrectiveActionId}");
                Console.WriteLine($"[CorrectiveAction] => (QmsCorrectiveactionErrortype.ErrorTypeId).......: {item.ErrorTypeId}");
                Console.WriteLine($"[CorrectiveAction] => (QmsCorrectiveactionErrortype..ErrorType == null): {item.ErrorType == null}");

                this.ErrorTypes.Add(new ErrorType(item));
            }
            setReadOnly(viewer);
        }
示例#3
0
        internal int ExecuteUpdates(CorrectiveAction correctiveAction, User submittedBy, string history)
        {
            submitter   = submittedBy;
            this.entity = correctiveAction;
            int retval = entity.Id;

            isNewTicket = retval == 0;
            routesToRBC = determineIfTicketRoutesToRBC(); // if submitted by PPRM this would need to be skipped
            StatusTransition action         = referenceRepository.RetrieveOrgStatusTranstion(correctiveAction.ActionId);
            string           actionToStatus = action.ToStatus.StatusCode;

            this.entity.StatusId = action.ToStatus.StatusId;
            if (isNewTicket)
            {
                this.entity.CreatedAt       = DateTime.Now;
                this.entity.CreatedByUserId = submitter.UserId;
                this.entity.CreatedAtOrgId  = submitter.OrgId.Value;
                this.entity.AssignedToOrgId = submitter.OrgId.Value;
                QmsCorrectiveactionrequest initialCar = correctiveAction.QmsCorrectiveActionRequest;
                correctiveActionRepository.context.Add(initialCar);
                correctiveActionRepository.context.SaveChanges();
                retval         = initialCar.Id;
                this.entity.Id = initialCar.Id;
            }
            else
            {
                this.entity.UpdatedAt = DateTime.Now;
            }



            if (actionToStatus == StatusType.UNASSIGNED)
            {
                ActionDescription = string.Format("{0} submitted Corrective Action for resolution<br/>{1}", submitter.DisplayName, history);
                correctiveActionService.addHistory(this.entity, submitter, ActionDescription);
                NotificationEventType = CorrectiveActionNotificationType.CA_Submitted;
                SubmitForResolution();
            }
            else if (actionToStatus == StatusType.ASSIGNED)
            {
                ActionDescription = string.Format("{0} assigned Corrective Action<br/>{1}", submitter.DisplayName, history);
                correctiveActionService.addHistory(this.entity, submitter, ActionDescription);
                NotificationEventType = CorrectiveActionNotificationType.CA_Assigned;
                AssignToUser(entity);
            }
            else if (actionToStatus == StatusType.CLOSED)
            {
                ActionDescription = string.Format("{0} closed Corrective Action<br/>{1}", submitter.DisplayName, history);
                correctiveActionService.addHistory(this.entity, submitter, ActionDescription);
                NotificationEventType = CorrectiveActionNotificationType.CA_Closed;
                Close(entity);
            }
            else if (actionToStatus == StatusType.CLOSED_ACTION_COMPLETED)
            {
                ActionDescription = string.Format("{0} completed Corrective Action<br/>{1}", submitter.DisplayName, history);
                correctiveActionService.addHistory(this.entity, submitter, ActionDescription);
                NotificationEventType = CorrectiveActionNotificationType.CA_Closed;
                CloseActionCompleted(entity);
            }
            else if (actionToStatus == StatusType.DRAFT)
            {
                if (isNewTicket)
                {
                    ActionDescription = string.Format("{0} created Corrective Action", submitter.DisplayName);
                    correctiveActionService.addHistory(this.entity, submitter, ActionDescription);
                    NotificationEventType = CorrectiveActionNotificationType.CA_Created;
                    SaveAsDraft(entity);
                }
                else
                {
                    ActionDescription = string.Format("{0} withdrew Corrective Action<br/>{1}", submitter.DisplayName, history);
                    correctiveActionService.addHistory(this.entity, submitter, ActionDescription);
                    NotificationEventType = CorrectiveActionNotificationType.CA_Withdrawn;
                    WithdrawItem(entity);
                }
            }
            else if (actionToStatus == StatusType.PENDING_REVIEW)
            {
                ActionDescription = string.Format("{0} submitted Corrective Action for review<br/>{1}", submitter.DisplayName, history);
                correctiveActionService.addHistory(this.entity, submitter, ActionDescription);
                NotificationEventType = CorrectiveActionNotificationType.CA_PendingReview;
                SubmitForReview(entity);
            }
            else if (actionToStatus == StatusType.RETURNED)
            {
                ActionDescription = string.Format("{0} returned Corrective Action to originator<br/>{1}", submitter.DisplayName, history);
                correctiveActionService.addHistory(this.entity, submitter, ActionDescription);
                NotificationEventType = CorrectiveActionNotificationType.CA_Returned;
                Return(entity);
            }
            else if (actionToStatus == StatusType.REROUTED)
            {
                ActionDescription = string.Format("{0} rerouted Corrective Action<br/>{1}", submitter.DisplayName, history);
                correctiveActionService.addHistory(this.entity, submitter, ActionDescription);
                NotificationEventType = CorrectiveActionNotificationType.CA_Rerouted;

                Reroute(entity);
            }
            else
            {
                throw new InvalidStatusTypeException(actionToStatus + " is not a valid StatusType.");
            }
            QmsCorrectiveactionrequest car = this.entity.QmsCorrectiveActionRequest;

            correctiveActionRepository.Update(car);
            saveErrors(this.entity.ErrorTypes, retval, isNewTicket);
            correctiveActionRepository.context.SaveChanges();

            return(retval);
        }