1.2 KiB
1.2 KiB
Price set version tables
Wizard (2 steps)
- Basic info + view bound customers (read-only)
- Edit product prices (library pull on next)
- No manual effective_time input.
- Draft version: status=0, effective_time null until activate.
- Activate: sets effective_time=now; previous version expires. Does not change package header status.
- Copy as new version:
POST /price/set/version/copy/{psvId}inserts new draftprc_price_set_versionand copiesprc_price_set_detail(+ surcharge snapshots) from source psv_id. - Audit submit/approve/reject removed from UI save path.
Graph
prc_price_set
-> prc_price_set_version draft / active / expired
-> prc_price_set_detail product prices (psv_id)
-> prc_price_set_version_surcharge
Status
Version: 0 draft, 1 active, 2 expired. Active when effective_time <= now and (expire_time null or > now).
SQL
price_set_version.sqlprice_set_version_eff_nullable.sql(allow nullprc_price_set.effective_dateandprc_price_set_version.effective_timefor drafts)
Billing
Match by price_set_id; multi-version quote should filter active psv_id by bill time.