fix: distinguish units in price analysis selection

This commit is contained in:
2026-09-06 16:33:57 +03:00
parent 1c2651fc0e
commit d4e7ea44c5
2 changed files with 10 additions and 5 deletions
+5
View File
@@ -1335,6 +1335,11 @@ Taslak türü seçicisine erişilebilir ad eklendi. Üretim derlemesi geçti. Ö
- `parseTL`, nokta içeren değerleri eskiden her zaman binlik ayraç sayıyordu; `12.50 TL` bu nedenle 1250 olabiliyordu. Artık virgüllü Türkçe biçim, üç haneli binlik gruplar ve ondalık noktalı değerler ayrı ayrıştırılıyor. - `parseTL`, nokta içeren değerleri eskiden her zaman binlik ayraç sayıyordu; `12.50 TL` bu nedenle 1250 olabiliyordu. Artık virgüllü Türkçe biçim, üç haneli binlik gruplar ve ondalık noktalı değerler ayrı ayrıştırılıyor.
- `12.50`, `1.234` ve `1.234,50` için regresyonlar eklendi. Fiyat, sözleşme ve pazar istatistiklerinde tutar ölçeğinin yanlış değişmesi engellendi. 283 test ve build başarılı; genel plan açık. - `12.50`, `1.234` ve `1.234,50` için regresyonlar eklendi. Fiyat, sözleşme ve pazar istatistiklerinde tutar ölçeğinin yanlış değişmesi engellendi. 283 test ve build başarılı; genel plan açık.
### 2026-09-06 — Fiyat analizinde birim seçim anahtarı
- Ürün + birim ayrımından sonra fiyat analizi listesindeki seçim ve React anahtarı yalnız ürün adına bağlı kalıyordu. Aynı ürünün kutu ve adet kayıtları artık ayrı seçilebiliyor; seçim anahtarı ve gösterim birimi birlikte kullanılıyor.
- Liste satırlarında birim medyanı açıkça yazıyor; seçilen birim değiştiğinde grafik ve özet aynı kayda geçiyor. 283 test ve build başarılı. Gerçek pazar ekranı tarayıcı kabulü hâlâ yapılmadı; genel plan açık.
### 2026-09-06 — Belge son kullanma tarihi doğrulaması ### 2026-09-06 — Belge son kullanma tarihi doğrulaması
- Belge deposundaki son kullanma tarihi göstergesi artık yalnız geçerli ISO günlerini hesaplıyor. Bozuk veya yuvarlanabilir bir tarih sessizce gün hesabına girmiyor; kullanıcıya “Tarih doğrulanmalı” uyarısı gösteriliyor. - Belge deposundaki son kullanma tarihi göstergesi artık yalnız geçerli ISO günlerini hesaplıyor. Bozuk veya yuvarlanabilir bir tarih sessizce gün hesabına girmiyor; kullanıcıya “Tarih doğrulanmalı” uyarısı gösteriliyor.
+5 -5
View File
@@ -12,7 +12,7 @@ export const PriceAnalysis = () => {
const selected = useMemo(() => { const selected = useMemo(() => {
if (!items.length) return null; if (!items.length) return null;
const found = items.find((i) => i.ad === selectedKey); const found = items.find((i) => `${i.ad}||${i.birim}` === selectedKey);
return found || items[0]; return found || items[0];
}, [items, selectedKey]); }, [items, selectedKey]);
@@ -91,14 +91,14 @@ export const PriceAnalysis = () => {
</h3> </h3>
{items.slice(0, 60).map((it) => ( {items.slice(0, 60).map((it) => (
<button <button
key={it.ad} key={`${it.ad}||${it.birim}`}
onClick={() => setSelectedKey(it.ad)} onClick={() => setSelectedKey(`${it.ad}||${it.birim}`)}
className={`w-full text-left p-2.5 rounded-lg text-xs font-semibold transition-all ${ className={`w-full text-left p-2.5 rounded-lg text-xs font-semibold transition-all ${
selected?.ad === it.ad ? 'bg-emerald-600 text-white' : 'bg-slate-50 hover:bg-slate-100 text-slate-700 border border-slate-200' selectedKey === `${it.ad}||${it.birim}` ? 'bg-emerald-600 text-white' : 'bg-slate-50 hover:bg-slate-100 text-slate-700 border border-slate-200'
}`} }`}
> >
<div className="truncate">📦 {it.ad}</div> <div className="truncate">📦 {it.ad}</div>
<div className={`text-[10px] ${selected?.ad === it.ad ? 'text-emerald-100' : 'text-slate-400'}`}>{it.count} kayıt · medyan {formatTL(it.median)}</div> <div className={`text-[10px] ${selectedKey === `${it.ad}||${it.birim}` ? 'text-emerald-100' : 'text-slate-400'}`}>{it.count} kayıt · {it.birim} medyan {formatTL(it.median)}</div>
</button> </button>
))} ))}
</div> </div>