fix: distinguish units in price analysis selection
This commit is contained in:
@@ -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.
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user