// MDM SORP — Home, Deals grid, Deal card, Parties grid, Party card. const { useState, useEffect, useMemo, useRef, useCallback, createContext, useContext } = React; /* ===================== HOME ===================== */ function HomeScreen({ navigate }) { const { t, lang } = useI18n(); return (
| № | {lang === "ru" ? "Запрошено" : "Requested"} | {lang === "ru" ? "Принято / артикул" : "Accepted / SKU"} | HS | {lang === "ru" ? "Кол-во" : "Qty"} | {lang === "ru" ? "Поставщик" : "Supplier"} | {lang === "ru" ? "Закупка" : "Buy"} | {lang === "ru" ? "Продажа" : "Sell"} | {lang === "ru" ? "Маржа" : "Margin"} | {lang === "ru" ? "Срок" : "Lead"} | {lang === "ru" ? "Сертификат" : "Cert"} | {lang === "ru" ? "Сан." : "Sanc."} |
|---|---|---|---|---|---|---|---|---|---|---|---|
| {it.idx} | {it.name_req} | {empty ? {lang === "ru" ? "не подтверждено" : "not accepted"} : (
{it.name_acc}
)} |
{it.hs || "—"} | {empty ? {it.qty_req} запр. : it.qty_acc} | {sup ? |
{it.buy ? fmtMoney(it.buy.price, it.buy.ccy) : —} | {it.sell ? fmtMoney(it.sell.price, it.sell.ccy) : —} | {it.margin_pct ? it.margin_pct + "%" : "—"} | {it.lead_days ? it.lead_days + "д" : "—"} | {it.cert === "ok" ? |
{it.sanctions ? |
| Файл | Тип (ИИ-распознан) | Размер | Дата в документе | Источник | |
|---|---|---|---|---|---|
| {d.name} {d.scanned && |
{d.size} | {d.date} |
| ID | {lang === "ru" ? "Сделка" : "Deal"} | {lang === "ru" ? "Заказчик" : "Customer"} | {lang === "ru" ? "Этап" : "Stage"} | {lang === "ru" ? "Сумма" : "Value"} | {lang === "ru" ? "Маржа" : "Margin"} | {lang === "ru" ? "Дедлайн" : "Deadline"} | {lang === "ru" ? "Поз." : "Items"} | {lang === "ru" ? "Санкции" : "Sanc."} |
|---|---|---|---|---|---|---|---|---|
| {d.id} | {lang === "en" ? d.title_en : d.title} | {fmtMoney(d.value_usd, "USD")} | {d.margin_pct}% | {d.deadline} | {d.items_done}/{d.items_count} |