sync: auto-sync from GURU-5070 at 2026-05-25 12:58:05

Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-05-25 12:58:05
This commit is contained in:
2026-05-25 12:58:08 -07:00
parent 6f16d4bfc2
commit 72d9e525d8
2 changed files with 160 additions and 8 deletions

View File

@@ -75,7 +75,8 @@ Use a **single emergency labor product** for the full hours worked:
| Customer type | Product | Product ID | Rate |
|---|---|---|---|
| Business | Labor - Emergency or After Hours Business | 26184 | $262.50/hr |
| Residential | Labor - Emergency or After Hours Residential | 42584 | $202.50/hr |
Residential rates are legacy — ACG no longer bills residential. Do not use product 42584.
**Example:** 4 hours of emergency business work, direct billing:
- Line 1: `Labor - Emergency or After Hours Business` (26184) — 4.0 hr
@@ -86,15 +87,52 @@ Reference: Ticket #32188 (VWP, direct billing, 2026-04-22).
## Standard Labor Products (Reference)
Standard non-block business rate: **$175/hr**. Emergency premium is 50%, so $175 × 1.5 = $262.50 (product 26184).
Emergency business rate is **$262.50/hr** (product 26184) — used for all emergency/afterhours business work regardless of remote vs onsite. Residential rates are legacy and not in use.
| Service type | Product | Product ID | Rate | Notes |
**Always fetch `price_retail` from `GET /api/v1/products/{id}` before billing non-block customers. Never use a hardcoded rate.**
| Service type | Product | Product ID | Live Rate | Notes |
|---|---|---|---|---|
| Remote Business | Labor - Remote Business | 1190473 | $175.00/hr | Non-block cash billing |
| Onsite Business | Labor - Onsite Business | 26118 | $175.00/hr | Same rate as remote |
| In-Shop Business | Labor - In Shop Business | 573881 | $175.00/hr | |
| Remote Business | Labor - Remote Business | 1190473 | $150.00/hr | Non-block cash billing |
| Onsite Business | Labor - Onsite Business | 26118 | $175.00/hr | |
| In-Shop Business | Labor - In Shop Business | 573881 | $150.00/hr | |
| Block/Prepaid (any type) | Labor - Remote Business | 1190473 | $0.00 | Price = $0; draws from block in hours |
| Remote Residential | Labor - Remote Residential | 1190471 | $100.00/hr | |
| Emergency/Afterhours Business | Labor - Emergency or After Hours Business | 26184 | $262.50/hr | All business emergency — remote and onsite |
---
## Adding Line Items to an Existing Ticket (API)
**Confirmed working endpoint** (tested 2026-05-25, ticket #32320 and test #32321):
```
POST https://computerguru.syncromsp.com/api/v1/tickets/{ticket_id}/add_line_item
Authorization: <api_key from vault: msp-tools/syncro.sops.yaml → credentials.credential>
Content-Type: application/json
```
**Required body fields** — both `name` and `description` are required; either missing returns 422:
```json
{
"product_id": 1190473,
"name": "Labor - Remote Business",
"description": "Work performed description",
"quantity": 2.0,
"price": 0.0,
"taxable": false
}
```
- `price`: use `0.0` for block customers; for non-block, fetch live rate first: `GET /api/v1/products/{product_id}``.product.price_retail`
- `taxable`: always `false` for labor (Arizona labor is never taxable)
- Success response: HTTP 200 with the new line item's `id`
**Pre-billing check** — before adding line items, verify the ticket has no existing labor to avoid duplicates:
```
GET https://computerguru.syncromsp.com/api/v1/tickets/{ticket_id}
```
Check `.ticket.line_items[]` in the response.
---
@@ -113,6 +151,8 @@ If work begins during normal hours and continues into after-hours (or vice versa
| LLF - Remote Labor (Emergency/Afterhours) | 145022 | Legacy contract product, no longer applicable |
| Fee - On-Site Business Emergenc | 45871 | Not in current use — do not add without explicit instruction |
| Fee - On-Site Residential Emerg | 45870 | Not in current use — do not add without explicit instruction |
| Labor - Emergency or After Hours Residential | 42584 | Residential rates are legacy — ACG no longer uses residential billing |
| Labor - Remote Residential | 1190471 | Residential rates are legacy — ACG no longer uses residential billing |
---
@@ -129,5 +169,5 @@ Was emergency rate explicitly requested by customer?
```
Is customer a block/prepaid customer?
YES → Two line items: actual hrs (standard product) + 0.5x hrs (same product, "Emergency/Same day rate")
NO → One line item: emergency product (26184 business / 42584 residential) for full hours
NO → One line item: emergency product 26184 (business) for full hours
```