nickivey
nickivey

Reputation: 193

Acumatica PXUIFieldAttribute SetError giving error

enter image description here

enter image description here

I'm trying to verify the value entered into my Support Split table, why am I unable to grab my ItemExtension?

protected void atcProjectCostCenterTable_CostCenterSplit_FieldVerifying(PXCache cache, PXFieldVerifyingEventArgs e, PXFieldVerifying InvokeBaseHandler)
{
    if (InvokeBaseHandler != null)
        InvokeBaseHandler(cache, e);
    var row = (atcProjectCostCenterTable)e.Row;

    if (row.ContractID > 0)
    {
        decimal? hun = 100;
        PX.Objects.CT.ContractExt item = row.GetExtension<PX.Objects.CT.ContractExt>();

        if (CostCenterSplit.Select().Count >= 1)
        {
            if (item.UsrCostCenterSum.Value != hun)
            {
                PXUIFieldAttribute.SetError<atcProjectCostCenterTable.costCenterSplit>(cache, row, "Support Percentages must equal 100%");
                //throw new PXSetPropertyException("Cost Center Percentages must equal 100%", PXErrorLevel.Warning);
            }
        }
    }
}

Upvotes: 0

Views: 495

Answers (2)

nickivey
nickivey

Reputation: 193

  Contract con = Base.Project.Current;
  PX.Objects.CT.ContractExt item = con.GetExtension<PX.Objects.CT.ContractExt>();

Upvotes: 0

RuslanDev
RuslanDev

Reputation: 6778

Nick, please replace

PX.Objects.CT.ContractExt item = row.GetExtension<PX.Objects.CT.ContractExt>();

with

PX.Objects.CT.ContractExt item = Base.Project.Current.GetExtension<PX.Objects.CT.ContractExt>();

or

PX.Objects.CT.ContractExt item = Base.Project.Cache.GetExtension<PX.Objects.CT.ContractExt>(Base.Project.Current);

Your current code can not work because ContractExt extends Contract DAC, not atcProjectCostCenterTable. Since PMProject is inherited from Contract, DAC extensions defined for the Contract DAC are also available for PMProject instances.

Upvotes: 1

Related Questions