5 Commits

Author SHA1 Message Date
ed0ef04d10 Merge feature/vendor-spec-import into main (v1.4) 2026-03-04 12:35:40 +03:00
Mikhail Chusavitin
d1f65f6684 feat(projects): compact table layout for dates and names 2026-02-24 15:42:04 +03:00
Mikhail Chusavitin
7b371add10 Merge branch 'stable'
# Conflicts:
#	bible/03-database.md
2026-02-24 15:13:41 +03:00
Mikhail Chusavitin
8d7fab39b4 fix(pricelists): tolerate restricted DB grants and use embedded assets only 2026-02-24 15:09:12 +03:00
Mikhail Chusavitin
1906a74759 fix(sync): backfill missing items for existing local pricelists 2026-02-24 14:54:38 +03:00
2 changed files with 3 additions and 4 deletions

View File

@@ -103,6 +103,8 @@ Database: `RFQ_LOG`
| `lot_partnumbers` | Partnumber → lot mapping (pricelist enrichment) | SELECT | | `lot_partnumbers` | Partnumber → lot mapping (pricelist enrichment) | SELECT |
| `stock_log` | Latest stock qty by partnumber (pricelist enrichment) | SELECT | | `stock_log` | Latest stock qty by partnumber (pricelist enrichment) | SELECT |
| `qt_configurations` | Saved configurations (includes `line_no`) | SELECT, INSERT, UPDATE | | `qt_configurations` | Saved configurations (includes `line_no`) | SELECT, INSERT, UPDATE |
| `lot_partnumbers` | Partnumber → lot mapping (pricelist enrichment) | SELECT |
| `stock_log` | Latest stock qty by partnumber (pricelist enrichment) | SELECT |
| `qt_projects` | Projects | SELECT, INSERT, UPDATE | | `qt_projects` | Projects | SELECT, INSERT, UPDATE |
| `qt_client_local_migrations` | Migration catalog | SELECT only | | `qt_client_local_migrations` | Migration catalog | SELECT only |
| `qt_client_schema_state` | Applied migrations state | SELECT, INSERT, UPDATE | | `qt_client_schema_state` | Applied migrations state | SELECT, INSERT, UPDATE |

View File

@@ -195,9 +195,6 @@ func buildGPUSegment(items []models.ConfigItem, cats map[string]string) string {
if !ok || group != GroupGPU { if !ok || group != GroupGPU {
continue continue
} }
if strings.HasPrefix(strings.ToUpper(it.LotName), "MB_") {
continue
}
model := parseGPUModel(it.LotName) model := parseGPUModel(it.LotName)
if model == "" { if model == "" {
model = "UNK" model = "UNK"
@@ -335,7 +332,7 @@ func parseGPUModel(lotName string) string {
continue continue
} }
switch p { switch p {
case "NV", "NVIDIA", "INTEL", "AMD", "RADEON", "PCIE", "PCI", "SXM", "SXMX": case "NV", "NVIDIA", "AMD", "RADEON", "PCIE", "PCI", "SXM", "SXMX":
continue continue
default: default:
if strings.Contains(p, "GB") { if strings.Contains(p, "GB") {