aboutsummaryrefslogtreecommitdiff
path: root/packages/merchant-backoffice-ui/src/utils/amount.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/merchant-backoffice-ui/src/utils/amount.ts')
-rw-r--r--packages/merchant-backoffice-ui/src/utils/amount.ts56
1 files changed, 33 insertions, 23 deletions
diff --git a/packages/merchant-backoffice-ui/src/utils/amount.ts b/packages/merchant-backoffice-ui/src/utils/amount.ts
index 23ced34bd..bdc37952f 100644
--- a/packages/merchant-backoffice-ui/src/utils/amount.ts
+++ b/packages/merchant-backoffice-ui/src/utils/amount.ts
@@ -13,7 +13,11 @@
You should have received a copy of the GNU General Public License along with
GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
-import { amountFractionalBase, AmountJson, Amounts } from "@gnu-taler/taler-util";
+import {
+ amountFractionalBase,
+ AmountJson,
+ Amounts,
+} from "@gnu-taler/taler-util";
import { MerchantBackend } from "../declaration.js";
/**
@@ -23,10 +27,10 @@ import { MerchantBackend } from "../declaration.js";
* @returns
*/
const sumPrices = (one: string, two: string) => {
- const [currency, valueOne] = one.split(':')
- const [, valueTwo] = two.split(':')
- return `${currency}:${parseInt(valueOne, 10) + parseInt(valueTwo, 10)}`
-}
+ const [currency, valueOne] = one.split(":");
+ const [, valueTwo] = two.split(":");
+ return `${currency}:${parseInt(valueOne, 10) + parseInt(valueTwo, 10)}`;
+};
/**
* merge refund with the same description and a difference less than one minute
@@ -34,37 +38,43 @@ const sumPrices = (one: string, two: string) => {
* @param cur new refund to add to the list
* @returns list with the new refund, may be merged with the last
*/
-export function mergeRefunds(prev: MerchantBackend.Orders.RefundDetails[], cur: MerchantBackend.Orders.RefundDetails) {
+export function mergeRefunds(
+ prev: MerchantBackend.Orders.RefundDetails[],
+ cur: MerchantBackend.Orders.RefundDetails,
+) {
let tail;
- if (prev.length === 0 || //empty list
- cur.timestamp.t_s === 'never' || //current does not have timestamp
- (tail = prev[prev.length - 1]).timestamp.t_s === 'never' || // last does not have timestamp
+ if (
+ prev.length === 0 || //empty list
+ cur.timestamp.t_s === "never" || //current does not have timestamp
+ (tail = prev[prev.length - 1]).timestamp.t_s === "never" || // last does not have timestamp
cur.reason !== tail.reason || //different reason
cur.pending !== tail.pending || //different pending state
- Math.abs(cur.timestamp.t_s - tail.timestamp.t_s) > 1000 * 60) {//more than 1 minute difference
+ Math.abs(cur.timestamp.t_s - tail.timestamp.t_s) > 1000 * 60
+ ) {
+ //more than 1 minute difference
- prev.push(cur)
- return prev
+ prev.push(cur);
+ return prev;
}
prev[prev.length - 1] = {
...tail,
- amount: sumPrices(tail.amount, cur.amount)
- }
+ amount: sumPrices(tail.amount, cur.amount),
+ };
- return prev
+ return prev;
}
export const rate = (one: string, two: string) => {
- const a = Amounts.parseOrThrow(one)
- const b = Amounts.parseOrThrow(two)
- const af = toFloat(a)
- const bf = toFloat(b)
- if (bf === 0) return 0
- return af / bf
-}
+ const a = Amounts.parseOrThrow(one);
+ const b = Amounts.parseOrThrow(two);
+ const af = toFloat(a);
+ const bf = toFloat(b);
+ if (bf === 0) return 0;
+ return af / bf;
+};
function toFloat(amount: AmountJson) {
- return amount.value + (amount.fraction / amountFractionalBase);
+ return amount.value + amount.fraction / amountFractionalBase;
}