diff --git a/src/admin/pages/InvoiceDetail.tsx b/src/admin/pages/InvoiceDetail.tsx
index c6ef87d..ec7905c 100644
--- a/src/admin/pages/InvoiceDetail.tsx
+++ b/src/admin/pages/InvoiceDetail.tsx
@@ -62,6 +62,7 @@ import {
DateField,
Field,
StatusChip,
+ CheckboxField,
ConfirmDialog,
EmptyState,
LoadingState,
@@ -1146,7 +1147,7 @@ export default function InvoiceDetail() {
@@ -1057,11 +1052,8 @@ export default function IssuedOrderDetail() {
- setForm((prev) => ({ ...prev, issued_by: e.target.value }))
- }
- placeholder="Jméno"
+ InputProps={{ readOnly: true }}
+ sx={{ "& .MuiInputBase-root": { bgcolor: "action.hover" } }}
/>
diff --git a/src/admin/pages/OfferDetail.tsx b/src/admin/pages/OfferDetail.tsx
index d34e903..cd1fe6a 100644
--- a/src/admin/pages/OfferDetail.tsx
+++ b/src/admin/pages/OfferDetail.tsx
@@ -335,7 +335,7 @@ function SortableItemRow({
InputProps={{ readOnly }}
/>
onUpdate("unit_price", parseFloat(e.target.value))}
@@ -1167,14 +1167,25 @@ export default function OfferDetail() {
setInvalidateConfirm(true)}
variant="outlined"
- color="inherit"
+ color="error"
>
Zneplatnit
)}
{!readOnly && (
- {saving ? "Ukládání..." : "Uložit"}
+ {saving ? (
+ <>
+
+ Ukládání...
+ >
+ ) : (
+ "Uložit"
+ )}
)}
{canDelete && hasPermission("offers.delete") && (
@@ -1513,16 +1524,20 @@ export default function OfferDetail() {
#
Popis
- Množství
+
+ Množství
+
Jednotka
- Cena/ks
+
+ Jedn. cena
+
V ceně
Celkem
- {!readOnly && }
+ {!readOnly && }
diff --git a/src/admin/pages/Offers.tsx b/src/admin/pages/Offers.tsx
index 44b939c..120e243 100644
--- a/src/admin/pages/Offers.tsx
+++ b/src/admin/pages/Offers.tsx
@@ -741,7 +741,7 @@ export default function Offers() {
}
/>
-
+
{
diff --git a/src/admin/pages/OrdersReceived.tsx b/src/admin/pages/OrdersReceived.tsx
index 78d0582..6cdbc5d 100644
--- a/src/admin/pages/OrdersReceived.tsx
+++ b/src/admin/pages/OrdersReceived.tsx
@@ -16,6 +16,7 @@ import {
orderNextNumberOptions,
} from "../lib/queries/orders";
import { offerCustomersOptions } from "../lib/queries/offers";
+import { companySettingsOptions } from "../lib/queries/settings";
import { useApiMutation } from "../lib/queries/mutations";
import {
Card,
@@ -186,6 +187,12 @@ export default function OrdersReceived({
...orderNextNumberOptions(),
enabled: createOpen,
});
+ const companySettings = useQuery(companySettingsOptions()).data;
+ // Configurable currency list from company settings (falls back to the
+ // built-in list when settings are empty) — matches Offers/Invoices.
+ const currencyOptions = (
+ companySettings?.available_currencies || ["CZK", "EUR", "USD", "GBP"]
+ ).map((c) => ({ value: c, label: c }));
const closeCreate = () => {
setCreateOpen(false);
@@ -556,12 +563,7 @@ export default function OrdersReceived({
onChange={(value) =>
setCreateForm({ ...createForm, currency: value })
}
- options={[
- { value: "CZK", label: "CZK" },
- { value: "EUR", label: "EUR" },
- { value: "USD", label: "USD" },
- { value: "GBP", label: "GBP" },
- ]}
+ options={currencyOptions}
/>
diff --git a/src/admin/pages/ReceivedInvoices.tsx b/src/admin/pages/ReceivedInvoices.tsx
index 64b3ecc..0b5fc9b 100644
--- a/src/admin/pages/ReceivedInvoices.tsx
+++ b/src/admin/pages/ReceivedInvoices.tsx
@@ -630,7 +630,7 @@ export default function ReceivedInvoices({
},
{
key: "amount",
- header: "Částka",
+ header: "Celkem",
width: "14%",
align: "right",
sortKey: "amount",