Колонка «PN code» в таблице импорта BOM: HPE-спецификации хранят партномер в двух столбцах, канонический вид — P52534-B21#B19. Склейка попадает в vendor_partnumber и сравнивается с книгой партномеров как есть; при загрузке разбирается обратно на две колонки. Схему БД менять не пришлось. Список допустимых LOT собирается из world ∪ estimate (componentUniverse), а не только из estimate. Прежняя область видимости молча теряла lot_mappings: резолвер сопоставлял PN по книге, которая про прайслисты не знает, а фронт отбрасывал LOT, которого нет в estimate — при этом в корзину он всё равно попадал. World-only позиции отдают price_quality 0. Кнопка «Пересопоставить» — перерешать BOM по актуальной книге, так как при открытии конфигурации сопоставления остаются замороженными. Итоги на вкладке «Ценообразование»: звёздочки убраны (переносились на новую строку), все три суммы красные, при наведении — попап с долей цен из прайслиста WORLD. Колонка «PN вендора» больше не переносится. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
47 lines
1.2 KiB
CSS
47 lines
1.2 KiB
CSS
/* QuoteForge custom styles */
|
|
/* Tailwind is loaded via CDN, this file is for any custom overrides */
|
|
|
|
.line-clamp-2 {
|
|
display: -webkit-box;
|
|
-webkit-line-clamp: 2;
|
|
-webkit-box-orient: vertical;
|
|
overflow: hidden;
|
|
}
|
|
|
|
/* Pricing footer totals: instant hover popup explaining how much of the sum rests on
|
|
world-pricelist stand-in prices. A native title= tooltip was too slow and too easy to
|
|
miss on a number the user is meant to distrust. */
|
|
.pricing-total-tip {
|
|
position: relative;
|
|
cursor: help;
|
|
}
|
|
|
|
.pricing-total-tip > .pricing-total-tip__body {
|
|
visibility: hidden;
|
|
opacity: 0;
|
|
position: absolute;
|
|
right: 0;
|
|
bottom: calc(100% + 6px);
|
|
z-index: 30;
|
|
width: max-content;
|
|
max-width: 20rem;
|
|
padding: 0.5rem 0.625rem;
|
|
border-radius: 0.375rem;
|
|
background: #1f2937;
|
|
color: #f9fafb;
|
|
font-size: 0.75rem;
|
|
font-weight: 400;
|
|
line-height: 1.35;
|
|
text-align: left;
|
|
white-space: normal;
|
|
box-shadow: 0 4px 12px rgb(0 0 0 / 0.18);
|
|
transition: opacity 0.1s ease-in;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.pricing-total-tip:hover > .pricing-total-tip__body,
|
|
.pricing-total-tip:focus-visible > .pricing-total-tip__body {
|
|
visibility: visible;
|
|
opacity: 1;
|
|
}
|