Skip to content

HPE Bid (XLSX): new vendor + parser#4

Merged
regalen merged 1 commit into
mainfrom
testing
Jun 27, 2026
Merged

HPE Bid (XLSX): new vendor + parser#4
regalen merged 1 commit into
mainfrom
testing

Conversation

@regalen

@regalen regalen commented Jun 27, 2026

Copy link
Copy Markdown
Owner

Summary

Adds a new vendor HPE with the HPE Bid (XLSX) format, mirroring the existing HP Bid format: Part Number / Bundle / BundleDetails rows written to the shared ANZ-GENERIC template with the No Calculation and Uplift export options.

Changes

  • New parser HpeBidXlsxParser — anchored on LineType; vpn from ProductNumber / BundleID / ComponentID (OptionCode ignored); msrp from ListPrcEst, cost from Offering, qty from Quantity, min_qty from MinOrderQty (0→1); comments Max Qty: {MaxDealQty} on Part Number/Bundle lines; BundleDetails msrp/cost drop to the 0.0001 sentinel. Nested sequences (1, 2, 1.01…), AUD, no quoted total.
  • Constants + registryVendors.Hpe, ParserSlugs.HpeBidXlsx, ReportTypesHardware SOH, registry entry.
  • AnzGenericWriter — MSRP write routed through NonZeroPrice (null-guarded; HP/Lenovo stay blank) so HPE zero MSRPs export as the sentinel, keeping the constant as a single source of truth.
  • Desktop WPFMainViewModel shows the Uplift margin field for HPE.
  • Frontend — sample-file map entry (UI auto-cascades; no component changes).
  • Tests & fixturesHpeBidXlsxParserTests + 4 TemplateWriterTests golden rows; two input fixtures + four goldens; updated ParserRegistryTests.
  • Docs — new docs/hpe_bid_xlsx.md; updated output_mapping.md, project_memory.md, CLAUDE.md.

Testing

  • dotnet test BidParser.Parsing.Tests — 178/178 pass.
  • dotnet build BidParser.sln and dotnet build BidParser.Core — clean.
  • npm run build (frontend) — clean.

Notes

  • The WPF change (MainViewModel.cs, net10.0-windows) could not be compiled in the Linux dev env — needs a build check on Windows.
  • With OptionCode dropped from the VPN, distinct option lines can collapse to the same VPN (e.g. JL087A appears on two rows) — expected per the agreed "base ID only" rule.

Add the HPE vendor with the "HPE Bid (XLSX)" format, mirroring HP Bid:
Part Number / Bundle / BundleDetails rows over the ANZ-GENERIC template
with No Calculation + Uplift export options.

- New HpeBidXlsxParser anchored on "LineType"; vpn from ProductNumber /
  BundleID / ComponentID (OptionCode ignored); msrp from ListPrcEst, cost
  from Offering, qty from Quantity, min_qty from MinOrderQty (0->1),
  comments "Max Qty: {MaxDealQty}" on parents; BundleDetails msrp/cost
  drop to the 0.0001 sentinel.
- Constants (Vendors.Hpe, ParserSlugs.HpeBidXlsx, ReportTypes Hardware SOH)
  and registry entry.
- AnzGenericWriter: route the MSRP write through NonZeroPrice (null-guarded;
  HP/Lenovo stay blank) so HPE zero MSRPs export as the sentinel.
- WPF MainViewModel: show the Uplift margin field for HPE.
- Frontend sample-file map entry.
- Parser + writer golden tests, two fixtures + four goldens.
- Docs: new hpe_bid_xlsx.md, output_mapping + project_memory + CLAUDE.md.
@regalen regalen merged commit 7ef721a into main Jun 27, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant