In the PX.Objects.EP.TimeCardMaint class I would like to add additional fields to the ‘EPTimecardDetail’ DAC. I created a new DAC Projection inheriting from EPTimecardDetail, this seems to work well. My issue is in trying to replace the Activities data view in TimeCardMaint with my extension.
I thought PXSubstitute might work but it does not.
[Serializable]
[PXCacheName("EP Timecard Task")]
[PXSubstitute(GraphType = typeof(TimeCardMaint), ParentType = typeof(EPTimecardDetail))]
[PXProjection(typeof(Select2<PMTimeActivity, LeftJoin<CRActivity, On<CRActivity.noteID, Equal<refNoteID>>, LeftJoin<CRCase, On<CRCase.noteID, Equal<CRActivity.refNoteID>>, LeftJoin<ContractEx, On<ContractEx.contractID, Equal<CRCase.contractID>>, LeftJoin<PMProject, On<PMProject.contractID, Equal<PMTimeActivity.projectID>>>>>>>), new Type[] { typeof(CRActivity) })]
public partial class EPTimecardTaskExt : EPTimecardDetail
{
[PXDBGuid(true, IsKey = true, BqlField = typeof(CRActivity.noteID))]
[PXExtraKey]
public Guid? CRActivityNoteID { get; set; }
public abstract class cRActivityNoteID : BqlType<IBqlGuid, Guid>.Field<cRActivityNoteID> { }
[PXDefault]
[EPDBDateAndTime(typeof(ownerID), WithoutDisplayNames = true, BqlField = typeof(CRActivity.startDate))]
[PXUIField(DisplayName = "Start Date")]
public virtual DateTime? StartDate { get; set; }
public abstract class startDate : BqlType<IBqlDateTime, DateTime>.Field<startDate> { }
[PXDefault]
[EPDBDateAndTime(typeof(ownerID), WithoutDisplayNames = true, BqlField = typeof(CRActivity.endDate))]
[PXUIField(DisplayName = "End Time")]
public virtual DateTime? EndDate { get; set; }
public abstract class endDate : BqlType<IBqlDateTime, DateTime>.Field<endDate> { }
[PXDBString(2, IsFixed = true, BqlField = typeof(CRActivity.uistatus))]
[ActivityStatus]
[PXUIField(DisplayName = "Status")]
[PXDefault("OP", PersistingCheck = PXPersistingCheck.Nothing)]
public virtual string UIStatus { get; set; }
public abstract class uIStatus : BqlType<IBqlString, string>.Field<uIStatus> { }
}