Hi everyone,
I am working on Acumatica 26R1 and I need to make three specific fields (externalRef, subject, and ownerID) editable on the Project Quotes screen (PM304500 / PMQuoteMaint) across all document statuses, except when the quote status is 'Closed'.
I attempted to achieve this using a standard graph extension with the RowSelected event, but the fields remain grayed out/locked on the screen:
using PX.Data;
using PX.Objects.PM;
namespace PX.Objects.PM
{
public class PMQuoteMaint_Extension : PXGraphExtension<PMQuoteMaint>
{
protected void _(Events.RowSelected<PMQuote> e)
{
PMQuote row = e.Row;
if (row == null) return;
// Goal: Allow editing only if the quote is NOT Closed
if (row.Status != PMQuoteStatusAttribute.Closed)
{
Base.Quote.AllowUpdate = true;
Base.Quote.Cache.AllowUpdate = true;
PXUIFieldAttribute.SetEnabled<PMQuote.externalRef>(e.Cache, row, true);
PXUIFieldAttribute.SetEnabled<PMQuote.subject>(e.Cache, row, true);
PXUIFieldAttribute.SetEnabled<PMQuote.ownerID>(e.Cache, row, true);
}
}
}
}
Even though the code executes, the fields stay disabled in statuses like Approved or Draft. It seems the native business logic or the new Workflow engine in 26R1 is overriding my RowSelected changes and locking the fields.
PMQuoteMaintExt?