Files
optima/Opportunity Activity.md
T
HoloPanio d7b374f8ab feat: sales activities, forecast products, catalog categories, member cache, procurement filters, and comprehensive tests
New features:
- ActivityController and manager for CW sales activities (CRUD)
- ForecastProductController for opportunity forecast/product lines
- CW member cache with dual-layer (in-memory + Redis) resolution
- Catalog category/subcategory/ecosystem taxonomy module
- Quote statuses type definitions with CW mapping
- User-defined fields (UDF) module with cache and event refresh
- Company sites CW module with serialization
- Procurement manager filters (category, ecosystem, manufacturer, price, stock)
- Opportunity notes CRUD and product line management via CW API
- Opportunity type definitions endpoint

Updates:
- OpportunityController: CW refresh, company hydration, activities, custom fields
- UserController: cwIdentifier field for CW member linking
- CatalogItemController: category/subcategory fields from CW
- PermissionNodes: sales note/product CRUD nodes, subCategories, collectPermissions
- API routes: procurement categories/filters, sales notes/products, opportunity types
- Global events: UDF and member refresh intervals on startup

Tests (414 passing):
- ActivityController, ForecastProductController, OpportunityController unit tests
- UserController cwIdentifier tests
- catalogCategories, companySites, memberCache, procurement module tests
- activityTypes, opportunityTypes, quoteStatuses type tests
- permissionNodes subCategories and getAllPermissionNodes tests
- Updated test setup with redis mock, API method mocks, and builder helpers
2026-03-01 13:19:00 -06:00

3.3 KiB

setInternalReview - The quote is ready to be review before it is ready to be sent. setInternalApproved - The quote has been approved and is ready to be sent out. setQuoteSent - The Quote has been sent to the customer. setQuoteConfirmed - The quote has been recieved by the customer. setRevisionNeeded - The quote needs to be revised and is set to stage revision setFinalized - This locks any non-admins from modifying the quote saying that is the final iteration of the quote. convert - This converts the quote to a ticket. It will also update all the necessary fields.

addTime(activityId, user: string)

fetchProducts updateProduct addProduct

fetchNotes addNotes(note: string, user: string)

Cat/SubCat/Bucket

Ecosystems vs Categories

Ecosystem Tree

  • Networking
    • Manufacturer: Ubiquiti
      • Category: Technology
      • Subcategory: Network-*
    • Manufacturer: TP-Link
      • Category: Technology
      • Subcategory: Network-*
  • Video Surveillance
    • Manufacturer: Uniview
      • Category: Field
      • Subcategory: Surveillance-*
    • Manufacturer: Hikvision
      • Category: Field
      • Subcategory: Surveillance-*
    • Manufacturer: Alarm.com
      • Category: Field
      • Subcategory: Surveillance-*
  • Burg/Alarm
    • Manufacturer: Qolsys
      • Category: Field
      • Subcategory: AlarmBurg-*
    • DSC
      • Category: Field
      • Subcategory: AlarmBurg-*

Category Tree

  • Technology
    • GeneralEquip
    • Home Entertainment
    • Monitor
    • Printers
    • Storage
    • Network
      • Network-Other
      • Network-Router
      • Network-Switch
      • Network-Wireless
    • Computer
      • Computer-Components
      • Computer-Desktop
      • Computer-Laptop
    • Recurring
      • Recurring - Online
      • Recurring - Other
      • Recurring - Protection
      • Recurring - Telephone
    • Telephone
      • Tele-HSet-Digital
      • Tele-HSet-IP
      • Tele-HSet-SLT
      • Tele-Misc
      • Tele-Paging
      • Tele-SystemCards
      • Tele-Systems
  • General
    • Batteries
    • Battery Backups
    • BulkWire
    • Cables
      • Cables-Adapters
      • Cables-HDMI
      • Cables-Network
      • Cables-Other
      • Cables-USB
      • Cables-VGA
    • Elec Cords & Adapters
    • Enclosures
    • PowerSupply
    • RackEquip
      • RackEquip-Rack
      • RackEquip-Shelves
  • Field
    • Conduit
    • Electric
    • GateControl
    • Locksets
    • Other
    • Relays
    • AccessControl
      • AccessControl-Controllers
      • AccessControl-Credential
      • AccessControl-LockDevices
      • AccessControl-Other
      • AccessControl-Readers
      • AccessControl-VideoEntry
    • AlarmBurg
      • AlarmBurg-Communicators
      • AlarmBurg-Keypads
      • AlarmBurg-Modules
      • AlarmBurg-Other
      • AlarmBurg-Panels
      • AlarmBurg-Sensors
        • AlarmBurg-Sensors-Wireless
        • AlarmBurg-Sensors-Wired
      • AlarmBurg-Siren
    • AlarmFire
      • AlarmFire-Communicators
      • AlarmFire-Devices
      • AlarmFire-Modules
      • AlarmFire-Other
      • AlarmFire-Panels
      • AlarmFire-Sensors
    • Automation
      • Automation-General
      • Automation-HVAC
      • Automation-Lights
      • Automation-Locks
      • Automation-Thermostat
    • AV
      • AV-Adapters&Cables
      • AV-Components
      • AV-Mounts
      • AV-Other
      • AV-Speakers
      • AV-Television
    • StrCbl?
      • StrCbl-Jacks
      • StrCbl-PatchPanel
      • StrCbl-Plates
    • Surveillance
      • Surveillance-Accs
      • Surveillance-CamerasAnalog
      • Surveillance-CamerasIP
      • Surveillance-NVR