Esempio n. 1
0
        public void Deactivate()
        {
            try
            {
                if (this.CurrentFormId == 0)
                {
                    var f = OGEForm450.GetCurrentFormByUser(AccountName);

                    CurrentFormId = f != null ? f.Id : 0;
                }

                //  Set Current Form to Canceled
                if (this.CurrentFormId > 0)
                {
                    var form = OGEForm450.Get(this.CurrentFormId);

                    form.FormStatus = Constants.FormStatus.CANCELED;

                    form.Save();

                    form.RemoveExtensions();
                }

                this.Inactive       = true;
                this.InactiveDate   = DateTime.Now;
                this.EmployeeStatus = Constants.EmployeeStatus.INACTIVE;
            }
            catch (Exception ex)
            {
                // Couldn't find form, ignore exception
                SharePointHelper.HandleException(ex, "", "Employee.Deactivate");
            }
        }
Esempio n. 2
0
        public void Deactivate()
        {
            try
            {
                //  Set Current Form to Canceled
                if (this.CurrentFormId > 0)
                {
                    var form = OGEForm450.Get(this.CurrentFormId);

                    form.FormStatus = Constants.FormStatus.CANCELED;

                    form.Save();
                }
            }
            catch (Exception ex)
            {
                // Couldn't find form, ignore exception
            }

            //  Set Pending Extensions to Canceled
            var extensions = ExtensionRequest.GetPendingExtensions(this.CurrentFormId);

            foreach (ExtensionRequest ext in extensions)
            {
                ext.Status = Constants.ExtensionStatus.CANCELED;

                ext.Save();
            }

            this.InactiveDate = DateTime.Now;
        }
Esempio n. 3
0
        public string RunBusinessRules(UserInfo user, ExtensionRequest oldItem)
        {
            var form  = OGEForm450.Get(this.OGEForm450Id);
            var filer = UserInfo.GetUser(form.Filer);

            _pendingEmails = new List <Notifications>();

            if (Id == 0 && !(form.FormStatus == Constants.FormStatus.NOT_STARTED || form.FormStatus == Constants.FormStatus.DRAFT || form.FormStatus == Constants.FormStatus.MISSING_INFORMATION))
            {
                return("Cannot make a request for a form that has been submitted or certified or cancelled");
            }

            // ensure 90 day rule
            if (form.DaysExtended + this.DaysRequested > 90)
            {
                return("Cannot make a request for more than 90 days");
            }

            if (oldItem != null && !user.IsReviewer)
            {
                return("Unauthorised: Cannot update record, you must be a reviewer to approve or deny an extension.");
            }

            if (this.DaysRequested == 0)
            {
                return("Must request at least one day");
            }

            if (this.Reason == "")
            {
                return("Must provide a reason for extension.");
            }

            var data = this.GetEmailData(user);

            if (oldItem == null)
            {
                this.Status = Constants.ExtensionStatus.PENDING;
                _pendingEmails.Add(EmailHelper.GetEmail(NotificationTemplates.NotificationTypes.EXTENSION_RECEIVED, filer, data));
                _pendingEmails.Add(EmailHelper.GetEmail(NotificationTemplates.NotificationTypes.EXTENSION_REQUEST, filer, data));
            }
            else if (user.IsReviewer)
            {
                if (oldItem.Status == Constants.ExtensionStatus.PENDING && this.Status != Constants.ExtensionStatus.CANCELED && this.Status != Constants.ExtensionStatus.PENDING)
                {
                    _pendingEmails.Add(EmailHelper.GetEmail(NotificationTemplates.NotificationTypes.EXTENSION_DECISION, filer, data));
                }
            }

            // made it to the end, return empty string as success
            return("");
        }
Esempio n. 4
0
        private DateTime GetExtensionDate()
        {
            var form = OGEForm450.Get(OGEForm450Id);

            return(form.DueDate.AddDays(DaysRequested));
        }