import { OPERATOR_LABELS, TABLE_SERVER_CONFIG } from "../../shared/constants.js"; import { fmtDate, invoiceStatusLabel } from "../../shared/utils.js"; import { AddIcon, FilterIcon } from "../../shared/icons.jsx"; export function InvoicesSection({ role, tables, status, getFieldDef, getFilterValuePreview, onRefresh, onCreate, onOpenFilter, onRemoveFilter, onEditFilter, onSort, onPrev, onNext, onLoadAll, onOpenRequest, onDownloadPdf, onEditRecord, onDeleteRecord, FilterToolbarComponent, DataTableComponent, TablePagerComponent, StatusLineComponent, IconButtonComponent, }) { const tableState = tables?.invoices || { rows: [], filters: [], sort: [] }; const FilterToolbar = FilterToolbarComponent; const DataTable = DataTableComponent; const TablePager = TablePagerComponent; const StatusLine = StatusLineComponent; const IconButton = IconButtonComponent; return ( <>

Счета

Выставленные счета клиентам, статусы оплаты и выгрузка PDF.

{onCreate ? ( ) : null}
{ const fieldDef = getFieldDef("invoices", clause.field); return (fieldDef ? fieldDef.label : clause.field) + " " + OPERATOR_LABELS[clause.op] + " " + getFilterValuePreview("invoices", clause); }} /> ( {row.invoice_number || "-"} {row.status_label || invoiceStatusLabel(row.status)} {row.amount == null ? "-" : String(row.amount) + " " + String(row.currency || "RUB")} {row.payer_display_name || "-"} {row.request_id ? ( ) : ( {row.request_track_number || row.request_id || "-"} )} {row.issued_by_name || "-"} {fmtDate(row.issued_at)} {fmtDate(row.paid_at)}
onDownloadPdf(row)} /> {role === "ADMIN" ? onEditRecord(row)} /> : null} {role === "ADMIN" ? ( onDeleteRecord(row.id)} tone="danger" /> ) : null}
)} /> ); } export default InvoicesSection;