Skip to main content
Question

Bulk Update for 'Completed (%)' in Revenue Budget when Invoicing Projects

  • September 16, 2026
  • 2 replies
  • 20 views

As a part of our current process we need to individually type “100” for each line before we can “Run Billing” to generate the ProForma Invoice.

Is there a way to have an action button that could complete this or a way to enter into one cell and copy to all of the others?

 

Any Recommendations.

Thanks!

2 replies

Forum|alt.badge.img+3
  • Captain II
  • September 16, 2026

@Avishka 

If the Completed (%) value needs to be set to 100 for every applicable Revenue Budget line before running Project Billing, a small customization with an action button can be added to the Project screen.

The action can loop through the Revenue Budget lines and set Completed (%) = 100 for the applicable records in one operation. The user can then proceed with Run Billing as usual.

Below is the sample code:

public class PMProjectEntryExt : PXGraphExtension<ProjectEntry>
{
public PXAction<PMBudget> SetCompleted100;

[PXButton(CommitChanges = true)]
[PXUIField(DisplayName = "Set Completed to 100%")]
protected virtual IEnumerable setCompleted100(PXAdapter adapter)
{
foreach (PMRevenueBudget budget in Base.RevenueBudget.Select())
{
if (budget == null) continue;
budget.CompletedPct = 100m;
//logic
}
return adapter.Get();
}
}

Hope it helps!


Forum|alt.badge.img+6
  • Jr Varsity II
  • September 16, 2026

Hi ​@Avishka ,

DAC Field Defaulting (Auto-fill 100 when lines are added)

If you want the field to automatically be 100% whenever a revenue budget line is created (instead of 0%):

Option 1) Via Customization Project (No-Code DAC Customization)

  1. Open your Customization Project.
  2. Go to Data Access →→ Click + and add PX.Objects.PM.PMRevenueBudget.
  3. Locate the field CompletedPct.
  4. Click Customize Attributes.
  5. Replace or add the default attribute:
     

    [PXDefault(TypeCode.Decimal, "100.0")]

  6. Save and publish the customization.

Option 2) Via C# Graph Extension (FieldDefaulting Event)

If you prefer code in a ProjectEntry graph extension:

public class ProjectEntry_Extension : PXGraphExtension<ProjectEntry>

{

protected virtual void _(Events.FieldDefaulting<PMRevenueBudget, PMRevenueBudget.completedPct> e)

{

// Defaults new budget lines to 100%

e.NewValue = 100.0m;

}

}

 

Hope above helps!!