This ProjectEntry graph extension (placed in App_RuntimeCode\ProjectEntry.cs) automates project‑management (PM) labor budgeting. Whenever a user changes the Original Budgeted Amount on any Revenue Budget line, the extension

recomputes the project’s total revised revenue (excluding the special inventory item PMLABOR),

converts that total into PM hours via a rate table (GetPMHours),

updates or inserts a Revenue Budget line for PMLABOR so its Qty = PM hours and CuryUnitRate = 90,

kparker a23bd7f180 Updated Project 5 сар өмнө
LaborRuleBase.cs a23bd7f180 Updated Project 5 сар өмнө
LaborRules.cs a23bd7f180 Updated Project 5 сар өмнө
ProjectEntryExt.cs a23bd7f180 Updated Project 5 сар өмнө
ProjectEntryLaborAdjust.csproj bbe88f7229 Used classes to segregate codes out of main logic 6 сар өмнө
README.md 8ee7152351 Added readme 6 сар өмнө

README.md

Acumatica ProjectEntry PM Labor Auto‑Budget Extension

Keeps one PMLABOR revenue‑budget line in sync with the project’s PM‑hours every time a revenue budget amount changes.

Item Value
Target screen / graph Project Entry (PM301000) → ProjectEntry
DAC touched PMRevenueBudget
Key Inventory ID PMLABOR
Labor rate 90 (project currency)
Exits early when • Project’s branch 301
• Billing rule PROGRESS

✨ Features

  1. Monitors Original Budgeted Amount on revenue lines.
  2. Totals the project’s revised revenue (excluding PMLABOR).
  3. Converts that total to PM‑hours with a bucket table:

| Revenue ≤ | PM Hours | |-----------|---------| | 1 000 | 1.0 | | 2 500 | 1.5 | | 5 000 | 3.0 | | 7 500 | 3.5 | | 10 000 | 5.0 | | 25 000 | 6.0 | | 50 000 | 9.0 | | > 50 000 | 10.5 |

  1. Updates / inserts one PMLABOR line → Qty = PM‑hours, Rate = 90, amount auto‑recalculated.
  2. Pins the rate in RowPersisting, preventing the 90 → 0 flip when users save mid‑edit.
  3. Debug logging via PXTrace (toggle with DEBUG_ON).

🛠 Install

```text

  1. Copy ProjectEntryExt.cs → \App_RuntimeCode
  2. Customization » Projects (SM204505) • Add File → select ProjectEntryExt.cs • Publish