commit ff58445b1b6aca53f8735cf9209d2013dcb1b925
parent b04f8d31821d3a9fc8c086c3c164a983c86da75a
Author: Sebastian <sebasjm@taler-systems.com>
Date: Wed, 3 Dec 2025 17:19:52 -0300
fix #10664
Diffstat:
3 files changed, 20 insertions(+), 26 deletions(-)
diff --git a/packages/merchant-backoffice-ui/src/paths/instance/orders/create/CreatePage.tsx b/packages/merchant-backoffice-ui/src/paths/instance/orders/create/CreatePage.tsx
@@ -257,6 +257,7 @@ export function CreatePage({
order: {
version: OrderVersion.V0,
amount: price,
+ // version: OrderVersion.V1,
// choices: [{
// amount: price,
// max_fee: value.payments.max_fee as AmountString,
diff --git a/packages/merchant-backoffice-ui/src/paths/instance/orders/details/DetailPage.tsx b/packages/merchant-backoffice-ui/src/paths/instance/orders/details/DetailPage.tsx
@@ -903,7 +903,7 @@ export function DetailPage({ id, selected, onRefunded, onBack }: Props): VNode {
</Fragment>
);
}
-export function getOrderAmountAndWirefee(order: TalerMerchantApi.CheckPaymentPaidResponse) {
+export function getOrderAmountAndWirefee(order: TalerMerchantApi.CheckPaymentPaidResponse | TalerMerchantApi.CheckPaymentPaidResponse) {
if (order.contract_terms.version === undefined || order.contract_terms.version === MerchantContractVersion.V0) {
const amount = Amounts.parseOrThrow(order.contract_terms.amount)
const wireFee = Amounts.parseOrThrow(order.contract_terms.wire_method)
diff --git a/packages/merchant-backoffice-ui/src/paths/instance/orders/list/Table.tsx b/packages/merchant-backoffice-ui/src/paths/instance/orders/list/Table.tsx
@@ -57,6 +57,7 @@ import {
usePreference,
} from "../../../../hooks/preference.js";
import { mergeRefunds } from "../../../../utils/amount.js";
+import { getOrderAmountAndWirefee } from "../details/DetailPage.js";
const TALER_SCREEN_ID = 48;
@@ -210,9 +211,9 @@ function Table({
{i.timestamp.t_s === "never"
? i18n.str`Never`
: format(
- new Date(i.timestamp.t_s * 1000),
- datetimeFormatForSettings(settings),
- )}
+ new Date(i.timestamp.t_s * 1000),
+ datetimeFormatForSettings(settings),
+ )}
</td>
<td
onClick={(): void => onSelect(i)}
@@ -311,18 +312,10 @@ export function RefundModal({
const [notification, safeFunctionHandler] = useLocalNotificationBetter();
const { state: session, lib } = useSessionContext();
- let amount: AmountString;
+ let amount: AmountString | undefined;
if (order.order_status === "paid") {
- if (
- order.contract_terms.version !== undefined &&
- order.contract_terms.version !== MerchantContractVersion.V0
- ) {
- return (
- <div>Unsupported contract version {order.contract_terms.version}</div>
- );
- }
-
- amount = order.contract_terms.amount;
+ const orderam = getOrderAmountAndWirefee(order)
+ amount = typeof orderam === "string" ? undefined : Amounts.stringify(orderam.amount)
}
const refunds = (
@@ -368,14 +361,14 @@ export function RefundModal({
const req: TalerMerchantApi.RefundRequest | undefined = !form.refund
? undefined
: {
- refund: Amounts.stringify(
- Amounts.add(Amounts.parse(form.refund)!, totalRefunded).amount,
- ),
- reason:
- form.description === undefined
- ? form.mainReason || ""
- : `${form.mainReason}: ${form.description}`,
- };
+ refund: Amounts.stringify(
+ Amounts.add(Amounts.parse(form.refund)!, totalRefunded).amount,
+ ),
+ reason:
+ form.description === undefined
+ ? form.mainReason || ""
+ : `${form.mainReason}: ${form.description}`,
+ };
const refund = safeFunctionHandler(
(token: AccessToken, id: string, request: TalerMerchantApi.RefundRequest) =>
@@ -438,9 +431,9 @@ export function RefundModal({
{r.timestamp.t_s === "never"
? i18n.str`Never`
: format(
- new Date(r.timestamp.t_s * 1000),
- datetimeFormatForSettings(settings),
- )}
+ new Date(r.timestamp.t_s * 1000),
+ datetimeFormatForSettings(settings),
+ )}
</td>
<td>{r.amount}</td>
<td>{r.reason}</td>