preliminary retry for refunds
This commit is contained in:
parent
54b5a9af7f
commit
1956428a34
@ -103,7 +103,7 @@ msgstr "Der Händler %1$s möchte einen Vertrag über %2$s mit Ihnen abschließe
|
|||||||
msgid "The total price is %1$s (plus %2$s fees)."
|
msgid "The total price is %1$s (plus %2$s fees)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/webex/pages/confirm-contract.tsx:384
|
#: src/webex/pages/confirm-contract.tsx:385
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "The total price is %1$s."
|
msgid "The total price is %1$s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -103,7 +103,7 @@ msgstr ""
|
|||||||
msgid "The total price is %1$s (plus %2$s fees)."
|
msgid "The total price is %1$s (plus %2$s fees)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/webex/pages/confirm-contract.tsx:384
|
#: src/webex/pages/confirm-contract.tsx:385
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "The total price is %1$s."
|
msgid "The total price is %1$s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -103,7 +103,7 @@ msgstr ""
|
|||||||
msgid "The total price is %1$s (plus %2$s fees)."
|
msgid "The total price is %1$s (plus %2$s fees)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/webex/pages/confirm-contract.tsx:384
|
#: src/webex/pages/confirm-contract.tsx:385
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "The total price is %1$s."
|
msgid "The total price is %1$s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -103,7 +103,7 @@ msgstr ""
|
|||||||
msgid "The total price is %1$s (plus %2$s fees)."
|
msgid "The total price is %1$s (plus %2$s fees)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/webex/pages/confirm-contract.tsx:384
|
#: src/webex/pages/confirm-contract.tsx:385
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "The total price is %1$s."
|
msgid "The total price is %1$s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -105,7 +105,7 @@ msgstr "Säljaren %1$s erbjuder följande:"
|
|||||||
msgid "The total price is %1$s (plus %2$s fees)."
|
msgid "The total price is %1$s (plus %2$s fees)."
|
||||||
msgstr "Det totala priset är %1$s (plus %2$s avgifter).\n"
|
msgstr "Det totala priset är %1$s (plus %2$s avgifter).\n"
|
||||||
|
|
||||||
#: src/webex/pages/confirm-contract.tsx:384
|
#: src/webex/pages/confirm-contract.tsx:385
|
||||||
#, fuzzy, c-format
|
#, fuzzy, c-format
|
||||||
msgid "The total price is %1$s."
|
msgid "The total price is %1$s."
|
||||||
msgstr "Det totala priset är %1$s."
|
msgstr "Det totala priset är %1$s."
|
||||||
|
@ -103,7 +103,7 @@ msgstr ""
|
|||||||
msgid "The total price is %1$s (plus %2$s fees)."
|
msgid "The total price is %1$s (plus %2$s fees)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/webex/pages/confirm-contract.tsx:384
|
#: src/webex/pages/confirm-contract.tsx:385
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "The total price is %1$s."
|
msgid "The total price is %1$s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -31,6 +31,8 @@ import * as dbTypes from "../../dbTypes";
|
|||||||
import { AmountJson } from "../../amounts";
|
import { AmountJson } from "../../amounts";
|
||||||
import * as Amounts from "../../amounts";
|
import * as Amounts from "../../amounts";
|
||||||
|
|
||||||
|
import * as timer from "../../timer";
|
||||||
|
|
||||||
import { AmountDisplay } from "../renderHtml";
|
import { AmountDisplay } from "../renderHtml";
|
||||||
import * as wxApi from "../wxApi";
|
import * as wxApi from "../wxApi";
|
||||||
|
|
||||||
@ -48,7 +50,11 @@ interface RefundStatusViewState {
|
|||||||
|
|
||||||
interface RefundDetailProps {
|
interface RefundDetailProps {
|
||||||
purchase: dbTypes.PurchaseRecord;
|
purchase: dbTypes.PurchaseRecord;
|
||||||
fullRefundFees: AmountJson;
|
/**
|
||||||
|
* Full refund fees (including refreshing) so far, or undefined if no refund
|
||||||
|
* permission was processed yet
|
||||||
|
*/
|
||||||
|
fullRefundFees?: AmountJson;
|
||||||
}
|
}
|
||||||
|
|
||||||
const RefundDetail = ({purchase, fullRefundFees}: RefundDetailProps) => {
|
const RefundDetail = ({purchase, fullRefundFees}: RefundDetailProps) => {
|
||||||
@ -85,7 +91,8 @@ const RefundDetail = ({purchase, fullRefundFees}: RefundDetailProps) => {
|
|||||||
<div>
|
<div>
|
||||||
{hasPending ? <p>Refund pending: <AmountDisplay amount={amountPending} /></p> : null}
|
{hasPending ? <p>Refund pending: <AmountDisplay amount={amountPending} /></p> : null}
|
||||||
<p>
|
<p>
|
||||||
Refund received: <AmountDisplay amount={amountDone} /> (refund fees: <AmountDisplay amount={fullRefundFees} />)
|
Refund received: <AmountDisplay amount={amountDone} />{" "}
|
||||||
|
(refund fees: {fullRefundFees ? <AmountDisplay amount={fullRefundFees} /> : "??" })
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
@ -107,6 +114,9 @@ class RefundStatusView extends React.Component<RefundStatusViewProps, RefundStat
|
|||||||
this.update();
|
this.update();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
// Just to be safe: update every second, in case we miss a notification
|
||||||
|
// from the background page.
|
||||||
|
timer.after(1000, () => this.update());
|
||||||
}
|
}
|
||||||
|
|
||||||
render(): JSX.Element {
|
render(): JSX.Element {
|
||||||
@ -138,7 +148,7 @@ class RefundStatusView extends React.Component<RefundStatusViewProps, RefundStat
|
|||||||
</p>
|
</p>
|
||||||
<p>Total amount: <AmountDisplay amount={Amounts.parseOrThrow(purchase.contractTerms.amount)} /></p>
|
<p>Total amount: <AmountDisplay amount={Amounts.parseOrThrow(purchase.contractTerms.amount)} /></p>
|
||||||
{purchase.finished
|
{purchase.finished
|
||||||
? <RefundDetail purchase={purchase} fullRefundFees={this.state.refundFees!} />
|
? <RefundDetail purchase={purchase} fullRefundFees={this.state.refundFees} />
|
||||||
: <p>Purchase not completed.</p>}
|
: <p>Purchase not completed.</p>}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
@ -157,6 +167,8 @@ class RefundStatusView extends React.Component<RefundStatusViewProps, RefundStat
|
|||||||
}
|
}
|
||||||
const purchase = await wxApi.getPurchase(contractTermsHash);
|
const purchase = await wxApi.getPurchase(contractTermsHash);
|
||||||
console.log("got purchase", purchase);
|
console.log("got purchase", purchase);
|
||||||
|
// We got a result, but it might be undefined if not found in DB.
|
||||||
|
this.setState({ purchase, gotResult: true });
|
||||||
const refundsDone = Object.keys(purchase.refundsDone).map((x) => purchase.refundsDone[x]);
|
const refundsDone = Object.keys(purchase.refundsDone).map((x) => purchase.refundsDone[x]);
|
||||||
if (refundsDone.length) {
|
if (refundsDone.length) {
|
||||||
const refundFees = await wxApi.getFullRefundFees({ refundPermissions: refundsDone });
|
const refundFees = await wxApi.getFullRefundFees({ refundPermissions: refundsDone });
|
||||||
|
Loading…
Reference in New Issue
Block a user