Implemented the customer rate card view, including SKU search
This commit is contained in:
24
README.md
24
README.md
@@ -33,12 +33,34 @@ factory modules from `scripts/sources.cjs` into one isolated IIFE per execution
|
||||
context. It serializes `src/content/styles/redwood.css` followed by the scoped
|
||||
`src/features/debug/styles.css`, `src/features/opportunities/styles.css`,
|
||||
`src/features/install-base/styles.css`, `src/features/service-requests/styles.css`
|
||||
and `src/features/consumption/plan-detail.css` at
|
||||
`src/features/consumption/plan-detail.css` and `src/features/ratecard/styles.css` at
|
||||
build time. There is no
|
||||
runtime module loader, browser-side eval, ES-module requirement or new dependency.
|
||||
|
||||
## Tests and Maintenance
|
||||
|
||||
Each Cloud Consumption plan includes a **Rate card** button beside Contract ID.
|
||||
It opens an animated right-side drawer with skeleton rows, an all-column search
|
||||
and sortable headers. The drawer reuses the Cloud Consumption header component
|
||||
with the title **Rate Card**, customer subtitle, and the active plan's Booking
|
||||
Customer, Sold To Party Name, Contract ID, Header Status, Start Date and End Date.
|
||||
There is no separate plan-number subtitle or nested Rate Card action; its Close button
|
||||
dismisses only the drawer. `requestRatecardByPlan` sends the active plan's `subPlanNum`
|
||||
as the payload's `planNumber`, with `recordsSize: 10000`, to the fixed SPA endpoint.
|
||||
It uses the existing OCICONS-TS `uiaasHeader.value` in `G2m-Authorization` and is
|
||||
logged in the Consumption debug category with the existing credential masking.
|
||||
The eleven requested fields are displayed, including percentage discounts and
|
||||
USD prices with at least four decimal places. Search includes raw and formatted
|
||||
values; prices, quantities, percentages and dates sort by value. Only the drawer
|
||||
table scrolls, horizontally when its available width is below 1100px.
|
||||
Closing the drawer, changing plans or closing Cloud Consumption discards late UI
|
||||
updates. Concurrent requests for the same plan are shared; reopening after completion
|
||||
fetches again. Errors remain local. No new persisted cache, permissions, token
|
||||
refresh or retries are added. The provided contract requests up to 10000 records;
|
||||
the response's `searchAfter` is not used without a defined pagination contract.
|
||||
`tests/ratecard.test.cjs` covers transport, formatting, filtering, sorting and
|
||||
drawer lifecycle with synthetic responses and DOM, without launching browsers.
|
||||
|
||||
Cloud Consumption loads `requestConsumptionPlanDetail` for the active plan after
|
||||
account plans arrive, independently of the chart. Selecting another plan loads
|
||||
its `subPlanNum` on demand. The GET uses `active=true` and the raw OCICONS-TS
|
||||
|
||||
Reference in New Issue
Block a user