示例#1
0
        protected virtual void EPActivity_RowSelected(PXCache cache, PXRowSelectedEventArgs e)
        {
            EPActivity row = e.Row as EPActivity;

            if (row == null)
            {
                return;
            }

            string status   = ((string)cache.GetValueOriginal <EPActivity.uistatus>(row) ?? ActivityStatusListAttribute.Open);
            bool   editable = status == ActivityStatusListAttribute.Open || status == ActivityStatusListAttribute.Draft || status == ActivityStatusListAttribute.InProcess;

            PXUIFieldAttribute.SetEnabled(cache, row, editable);
            Delete.SetEnabled(editable);
            Complete.SetEnabled(editable);
            CompleteAndFollowUp.SetEnabled(editable);
            CancelActivity.SetEnabled(editable);

            PXUIFieldAttribute.SetEnabled <EPActivity.taskID>(cache, row);
            PXUIFieldAttribute.SetEnabled <EPActivity.uistatus>(cache, row);

            PXUIFieldAttribute.SetEnabled <EPActivity.timeSpent>(cache, row, false);
            PXUIFieldAttribute.SetEnabled <EPActivity.createdByID>(cache, row, false);
            PXUIFieldAttribute.SetEnabled <EPActivity.completedDateTime>(cache, row, false);
            PXUIFieldAttribute.SetEnabled <EPActivity.overtimeSpent>(cache, row, false);
            PXUIFieldAttribute.SetEnabled <EPActivity.timeBillable>(cache, row, false);
            PXUIFieldAttribute.SetEnabled <EPActivity.overtimeBillable>(cache, row, false);

            PXUIFieldAttribute.SetEnabled <EPActivity.reminderDate>(cache, row, row.IsReminderOn == true);

            GotoParentActivity.SetEnabled(row.ParentTaskID != null);

            this.ChildActivities.Cache.AllowDelete             =
                this.ReferencedTasks.Cache.AllowInsert         =
                    this.ReferencedTasks.Cache.AllowUpdate     =
                        this.ReferencedTasks.Cache.AllowDelete = editable;

            int timespent        = 0;
            int overtimespent    = 0;
            int timebillable     = 0;
            int overtimebillable = 0;

            foreach (EPActivity child in ChildActivities.Select(row.TaskID))
            {
                timespent        += (child.TimeSpent ?? 0);
                overtimespent    += (child.OvertimeSpent ?? 0);
                timebillable     += (child.TimeBillable ?? 0);
                overtimebillable += (child.OvertimeBillable ?? 0);
            }

            row.TimeSpent        = timespent;
            row.OvertimeSpent    = overtimespent;
            row.TimeBillable     = timebillable;
            row.OvertimeBillable = overtimebillable;
        }
        protected virtual void CRActivity_RowSelected(PXCache cache, PXRowSelectedEventArgs e)
        {
            var row = e.Row as CRActivity;

            if (row == null)
            {
                return;
            }

            string status     = ((string)cache.GetValueOriginal <CRActivity.uistatus>(row) ?? ActivityStatusListAttribute.Open);
            bool   editable   = status == ActivityStatusListAttribute.Open || status == ActivityStatusListAttribute.Draft || status == ActivityStatusListAttribute.InProcess;
            bool   deleteable = ChildActivities.SelectByParentNoteID(row.NoteID).RowCast <CRPMTimeActivity>().All(o => o.IsBillable != true);

            PXUIFieldAttribute.SetEnabled(cache, row, editable);
            Delete.SetEnabled(deleteable);
            Complete.SetEnabled(editable);
            CompleteAndFollowUp.SetEnabled(editable);
            CancelActivity.SetEnabled(editable);
            AddNewRelatedTask.SetEnabled(cache.GetStatus(row) != PXEntryStatus.Inserted);

            PXUIFieldAttribute.SetEnabled <CRActivity.noteID>(cache, row);
            PXUIFieldAttribute.SetEnabled <CRActivity.uistatus>(cache, row);
            PXUIFieldAttribute.SetEnabled <CRActivity.source>(cache, row, false);
            PXUIFieldAttribute.SetEnabled <CRActivity.createdByID>(cache, row, false);
            PXUIFieldAttribute.SetEnabled <CRActivity.completedDate>(cache, row, false);

            GotoParentActivity.SetEnabled(row.ParentNoteID != null);

            ChildActivities.Cache.AllowDelete             =
                ReferencedTasks.Cache.AllowInsert         =
                    ReferencedTasks.Cache.AllowUpdate     =
                        ReferencedTasks.Cache.AllowDelete = editable;


            var tAct      = (PMTimeActivity)TimeActivity.SelectSingle();
            var tActCache = TimeActivity.Cache;

            PXUIFieldAttribute.SetEnabled <PMTimeActivity.projectID>(tActCache, tAct, editable);
            PXUIFieldAttribute.SetEnabled <PMTimeActivity.projectTaskID>(tActCache, tAct, editable);

            PXUIFieldAttribute.SetEnabled <CRReminder.isReminderOn>(Reminder.Cache, Reminder.SelectSingle(), editable);
            PXUIFieldAttribute.SetEnabled <CRActivity.parentNoteID>(cache, row, false);

            MarkAs(cache, row, Accessinfo.UserID, EPViewStatusAttribute.VIEWED);
        }
示例#3
0
        protected virtual void CRActivity_RowSelected(PXCache cache, PXRowSelectedEventArgs e)
        {
            CRActivity row = (CRActivity)e.Row;

            if (row == null)
            {
                return;
            }

            PXUIFieldAttribute.SetEnabled <CRActivity.endDate>(cache, row, false);

            PXUIFieldAttribute.SetEnabled <CRActivity.source>(cache, row, false);
            PXUIFieldAttribute.SetEnabled <CRActivity.noteID>(cache, row);

            PXDefaultAttribute.SetPersistingCheck <CRActivity.type>(cache, row, PXPersistingCheck.Null);

            MarkAsCompletedAndFollowUp.SetVisible(false);
            GotoParentActivity.SetEnabled(row.ParentNoteID != null);
        }
示例#4
0
        protected virtual void CRActivity_RowSelected(PXCache cache, PXRowSelectedEventArgs e)
        {
            CRActivity row = (CRActivity)e.Row;

            if (row == null)
            {
                return;
            }

            var tAct      = (PMTimeActivity)TimeActivity.SelectSingle();
            var tActCache = TimeActivity.Cache;

            PXUIFieldAttribute.SetEnabled <CRActivity.endDate>(cache, row, false);

            bool wasUsed = !string.IsNullOrEmpty(tAct?.TimeCardCD) || tAct?.Billed == true;

            if (wasUsed)
            {
                PXUIFieldAttribute.SetEnabled(cache, row, false);
            }

            bool isPmVisible = ProjectAttribute.IsPMVisible(BatchModule.TA);

            PXUIFieldAttribute.SetVisible <PMTimeActivity.timeSpent>(tActCache, tAct, tAct?.TrackTime == true);
            PXUIFieldAttribute.SetVisible <PMTimeActivity.approvalStatus>(tActCache, tAct, tAct?.TrackTime == true);
            PXUIFieldAttribute.SetVisible <PMTimeActivity.earningTypeID>(tActCache, tAct, tAct?.TrackTime == true);
            PXUIFieldAttribute.SetVisible <PMTimeActivity.isBillable>(tActCache, tAct, tAct?.TrackTime == true);
            PXUIFieldAttribute.SetVisible <PMTimeActivity.released>(tActCache, tAct, tAct?.TrackTime == true);
            PXUIFieldAttribute.SetVisible <PMTimeActivity.timeBillable>(tActCache, tAct, tAct?.IsBillable == true && tAct?.TrackTime == true);
            PXUIFieldAttribute.SetVisible <PMTimeActivity.arRefNbr>(tActCache, tAct, tAct?.IsBillable == true && tAct?.TrackTime == true);
            PXUIFieldAttribute.SetVisible <PMTimeActivity.approverID>(tActCache, tAct, tAct?.TrackTime == true);
            PXUIFieldAttribute.SetVisible <PMTimeActivity.projectID>(tActCache, tAct, tAct?.TrackTime == true && isPmVisible);
            PXUIFieldAttribute.SetVisible <PMTimeActivity.certifiedJob>(tActCache, tAct, tAct?.TrackTime == true && isPmVisible);
            PXUIFieldAttribute.SetVisible <PMTimeActivity.projectTaskID>(tActCache, tAct, tAct?.TrackTime == true && isPmVisible);
            PXUIFieldAttribute.SetVisible <PMTimeActivity.costCodeID>(tActCache, tAct, tAct?.TrackTime == true && isPmVisible);
            PXUIFieldAttribute.SetVisible <PMTimeActivity.labourItemID>(tActCache, tAct, tAct?.TrackTime == true && isPmVisible);
            PXUIFieldAttribute.SetVisible <PMTimeActivity.unionID>(tActCache, tAct, tAct?.TrackTime == true);
            PXUIFieldAttribute.SetVisible <PMTimeActivity.workCodeID>(tActCache, tAct, tAct?.TrackTime == true);
            PXUIFieldAttribute.SetVisible <PMTimeActivity.overtimeSpent>(tActCache, tAct, false);
            PXUIFieldAttribute.SetVisible <PMTimeActivity.overtimeSpent>(tActCache, tAct, false);
            PXUIFieldAttribute.SetVisible <PMTimeActivity.overtimeBillable>(tActCache, tAct, false);

            bool showMinutes = EPSetupCurrent.RequireTimes == true;

            PXDBDateAndTimeAttribute.SetTimeEnabled <CRActivity.startDate>(cache, row, showMinutes && tAct?.TrackTime == true);
            PXDBDateAndTimeAttribute.SetTimeVisible <CRActivity.startDate>(cache, row, showMinutes && tAct?.TrackTime == true);
            PXDBDateAndTimeAttribute.SetTimeVisible <CRActivity.endDate>(cache, row, showMinutes && tAct?.TrackTime == true);

            string origTimeStatus =
                (string)this.TimeActivity.Cache.GetValueOriginal <PMTimeActivity.approvalStatus>(tAct)
                ?? ActivityStatusListAttribute.Open;

            string origStatus =
                (string)this.Activities.Cache.GetValueOriginal <CRActivity.uistatus>(row)
                ?? origTimeStatus;

            bool?origTrackTime =
                (bool?)this.TimeActivity.Cache.GetValueOriginal <PMTimeActivity.trackTime>(tAct)
                ?? false;

            if (origStatus == ActivityStatusListAttribute.Completed && origTrackTime != true)
            {
                origStatus = ActivityStatusListAttribute.Open;
            }

            if (row.IsLocked == true)
            {
                origStatus = ActivityStatusListAttribute.Completed;
            }

            if (origStatus == ActivityStatusListAttribute.Open)
            {
                PXUIFieldAttribute.SetEnabled(cache, row, true);
                Delete.SetEnabled(!wasUsed);
            }
            else
            {
                PXUIFieldAttribute.SetEnabled(cache, row, false);
                Delete.SetEnabled(false);
            }

            PXUIFieldAttribute.SetEnabled <CRActivity.source>(cache, row, false);
            PXUIFieldAttribute.SetEnabled <CRActivity.noteID>(cache, row);

            MarkAsCompleted.SetEnabled(origStatus == ActivityStatusListAttribute.Open);
            MarkAsCompleted.SetVisible(origStatus == ActivityStatusListAttribute.Open && tAct?.TrackTime == true);
            MarkAsCompletedAndFollowUp.SetVisible(false);

            GotoParentActivity.SetEnabled(row.ParentNoteID != null);

            // TimeActivity

            if (tAct?.Released == true)
            {
                origTimeStatus = ActivityStatusAttribute.Completed;
            }

            if (origTimeStatus == ActivityStatusListAttribute.Open)
            {
                PXUIFieldAttribute.SetEnabled(tActCache, tAct, true);

                PXUIFieldAttribute.SetEnabled <PMTimeActivity.timeBillable>(tActCache, tAct, !wasUsed && tAct?.IsBillable == true);
                PXUIFieldAttribute.SetEnabled <PMTimeActivity.overtimeBillable>(tActCache, tAct, !wasUsed && tAct?.IsBillable == true);
            }
            else
            {
                PXUIFieldAttribute.SetEnabled(tActCache, tAct, false);
            }
            PXUIFieldAttribute.SetEnabled <PMTimeActivity.approvalStatus>(tActCache, tAct, tAct != null && tAct.TrackTime == true && !wasUsed);

            PXUIFieldAttribute.SetEnabled <PMTimeActivity.released>(tActCache, tAct, false);

            PXDefaultAttribute.SetPersistingCheck <CRActivity.ownerID>(cache, row, tAct?.TrackTime == true ? PXPersistingCheck.Null : PXPersistingCheck.Nothing);
            PXDefaultAttribute.SetPersistingCheck <CRActivity.type>(cache, row, PXPersistingCheck.Null);
        }
示例#5
0
        protected virtual void EPActivity_RowSelected(PXCache cache, PXRowSelectedEventArgs e)
        {
            EPActivity row = (EPActivity)e.Row;

            if (row == null)
            {
                return;
            }

            bool isPmVisible = ProjectAttribute.IsPMVisible(this, BatchModule.EP);

            PXUIFieldAttribute.SetVisible <EPActivity.projectID>(cache, row, isPmVisible);
            PXUIFieldAttribute.SetVisible <EPActivity.projectTaskID>(cache, row, isPmVisible);

            PXUIFieldAttribute.SetEnabled <EPActivity.endDate>(cache, row, false);

            bool showMinutes = EPSetupCurrent.RequireTimes == true;

            PXDBDateAndTimeAttribute.SetTimeVisible <EPActivity.startDate>(cache, row, showMinutes && row.TrackTime == true);
            PXDBDateAndTimeAttribute.SetTimeVisible <EPActivity.endDate>(cache, row, showMinutes && row.TrackTime == true);

            bool wasUsed = !string.IsNullOrEmpty(row.TimeCardCD) || row.Billed == true;

            if (wasUsed)
            {
                PXUIFieldAttribute.SetEnabled(cache, row, false);
            }
            PXUIFieldAttribute.SetVisible <EPActivity.timeSpent>(cache, row, row.TrackTime == true);
            PXUIFieldAttribute.SetVisible <EPActivity.earningTypeID>(cache, row, row.TrackTime == true);
            PXUIFieldAttribute.SetVisible <EPActivity.isBillable>(cache, row, row.TrackTime == true);
            PXUIFieldAttribute.SetVisible <EPActivity.released>(cache, row, row.TrackTime == true);
            PXUIFieldAttribute.SetVisible <EPActivity.timeBillable>(cache, row, row.IsBillable == true && row.TrackTime == true);
            PXUIFieldAttribute.SetVisible <EPActivity.uistatus>(cache, row, row.TrackTime == true);
            PXUIFieldAttribute.SetVisible <EPActivity.approverID>(cache, row, row.TrackTime == true);
            PXUIFieldAttribute.SetVisible <EPActivity.projectID>(cache, row, row.TrackTime == true);
            PXUIFieldAttribute.SetVisible <EPActivity.projectTaskID>(cache, row, row.TrackTime == true);

            PXUIFieldAttribute.SetVisible <EPActivity.overtimeSpent>(cache, row, false);
            PXUIFieldAttribute.SetVisible <EPActivity.overtimeBillable>(cache, row, false);

            string origStatus =
                (string)this.Activites.Cache.GetValueOriginal <EPActivity.uistatus>(row) ?? ActivityStatusListAttribute.Open;

            bool?oringTrackTime =
                (bool?)this.Activites.Cache.GetValueOriginal <EPActivity.trackTime>(row) ?? false;

            if (origStatus == ActivityStatusListAttribute.Completed && oringTrackTime != true)
            {
                origStatus = ActivityStatusListAttribute.Open;
            }

            if (row.Released == true)
            {
                origStatus = ActivityStatusListAttribute.Completed;
            }

            if (origStatus == ActivityStatusListAttribute.Open)
            {
                PXUIFieldAttribute.SetEnabled(cache, row, true);
                PXUIFieldAttribute.SetEnabled <EPActivity.timeBillable>(cache, row, !wasUsed && row.IsBillable == true);
                PXUIFieldAttribute.SetEnabled <EPActivity.overtimeBillable>(cache, row, !wasUsed && row.IsBillable == true);
                Delete.SetEnabled(!wasUsed);
            }
            else
            {
                PXUIFieldAttribute.SetEnabled(cache, row, false);
                PXUIFieldAttribute.SetEnabled <EPActivity.uistatus>(cache, row, !wasUsed && row.Released != true);
                Delete.SetEnabled(false);
            }

            PXUIFieldAttribute.SetEnabled <EPActivity.released>(cache, row, false);
            PXUIFieldAttribute.SetEnabled <EPActivity.taskID>(cache, row);

            MarkAsCompleted.SetEnabled(origStatus == ActivityStatusListAttribute.Open);
            MarkAsCompleted.SetVisible(origStatus == ActivityStatusListAttribute.Open && row.TrackTime == true);
            MarkAsCompletedAndFollowUp.SetVisible(false);

            ValidateTimeBillable(cache, row);
            ValidateOvertimeBillable(cache, row);

            GotoParentActivity.SetEnabled(row.ParentTaskID != null);

            PXDefaultAttribute.SetPersistingCheck <EPActivity.owner>(cache, row, row.TrackTime == true ? PXPersistingCheck.Null : PXPersistingCheck.Nothing);
            PXDefaultAttribute.SetPersistingCheck <EPActivity.type>(cache, row, PXPersistingCheck.Null);
        }