|
|
@@ -0,0 +1,45 @@
|
|
|
+# 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**<br>• 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 |
|
|
|
+
|
|
|
+4. **Updates / inserts** one PMLABOR line → `Qty = PM‑hours`, `Rate = 90`, amount auto‑recalculated.
|
|
|
+5. **Pins** the rate in `RowPersisting`, preventing the 90 → 0 flip when users save mid‑edit.
|
|
|
+6. **Debug logging** via `PXTrace` (toggle with `DEBUG_ON`).
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 🛠 Install
|
|
|
+
|
|
|
+```text
|
|
|
+1. Copy ProjectEntryExt.cs → <site root>\App_RuntimeCode
|
|
|
+2. Customization » Projects (SM204505)
|
|
|
+ • Add File → select ProjectEntryExt.cs
|
|
|
+ • Publish
|