Issued orders are purchase orders WE send - they must pick from suppliers (sklad_suppliers), not from customers. Per user decision customer_id was REPLACED (not kept alongside): migration drops issued_orders.customer_id and adds supplier_id FK -> sklad_suppliers (existing rows lose their counterparty - the feature is days old; re-point them in the UI). - service: input/filters/search (suppliers.name + ico)/enrichment/detail all supplier-based; create validates the supplier inside the transaction and update before write -> Czech 400 'Dodavatel nenalezen' instead of P2003 500; detail returns a minimal supplier field set (no internal notes leak) - routes: supplier_id on list + stats; new GET /issued-orders/suppliers lookup (orders.view/create/edit guard - orders users lack warehouse.manage which guards the warehouse suppliers CRUD), active suppliers only, name+id ordering - PDF: Dodavatel block now renders the supplier (name, newline-split address, IC/DIC), layout and both language label sets unchanged - frontend: new SupplierPicker kit component (CustomerPicker untouched), IssuedOrderDetail/IssuedOrders switched to supplier_id/supplier_name; the picker keeps a fallback option for orders whose supplier was later deactivated; WarehouseSuppliers CRUD now also invalidates issued-orders so the picker can't go stale - tests: issued-orders suite switched to supplier fixtures + new coverage (lookup shape + 403, nonexistent supplier 400, PDF supplier block) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
35 lines
1.7 KiB
TypeScript
35 lines
1.7 KiB
TypeScript
export { default as MuiProvider } from "./MuiProvider";
|
|
export { default as Button } from "./Button";
|
|
export { default as Card } from "./Card";
|
|
export { default as TextField } from "./TextField";
|
|
export { default as Modal } from "./Modal";
|
|
export { default as ConfirmDialog } from "./ConfirmDialog";
|
|
export { default as DataTable } from "./DataTable";
|
|
export type { DataColumn } from "./DataTable";
|
|
export { Field, SwitchField } from "./Field";
|
|
export { default as Select } from "./Select";
|
|
export type { SelectOption } from "./Select";
|
|
export { default as CustomerPicker } from "./CustomerPicker";
|
|
export { default as SupplierPicker } from "./SupplierPicker";
|
|
export { default as StatusChip } from "./StatusChip";
|
|
export { CheckboxField } from "./Checkbox";
|
|
export { default as Alert } from "./Alert";
|
|
export { Tabs, TabPanel } from "./Tabs";
|
|
export type { TabDef } from "./Tabs";
|
|
export { default as Pagination } from "./Pagination";
|
|
export { default as DateField } from "./DateField";
|
|
export { default as MonthField } from "./MonthField";
|
|
export { default as TimeField } from "./TimeField";
|
|
export { default as PageHeader, headerActionsSx } from "./PageHeader";
|
|
export { default as EmptyState } from "./EmptyState";
|
|
export { default as LoadingState } from "./LoadingState";
|
|
export { default as FilterBar } from "./FilterBar";
|
|
export { default as StatCard } from "./StatCard";
|
|
export type { StatCardColor } from "./StatCard";
|
|
export { default as FileUpload } from "./FileUpload";
|
|
export { default as ProgressBar } from "./ProgressBar";
|
|
export type { ProgressColor } from "./ProgressBar";
|
|
export { default as ThemeToggle } from "./ThemeToggle";
|
|
export { default as PageEnter } from "./PageEnter";
|
|
export { RichEditorRoot, RichTextView } from "./RichText";
|