add taxes

This commit is contained in:
2023-10-02 09:52:11 +02:00
parent 0026cba23d
commit 2b513a91b0
8 changed files with 54 additions and 7 deletions
+24
View File
@@ -0,0 +1,24 @@
<script setup lang="ts">
import { storeToRefs } from "pinia";
import { useMarketTaxStore } from "./tax";
const { brokerFee, scc } = storeToRefs(useMarketTaxStore());
</script>
<template>
<div class="end">
<span>Broker Fee: </span>
<input type="number" min="1" max="3" step="0.01" v-model="brokerFee" />
</div>
<div class="end">
<span>SCC: </span>
<input type="number" min="3.6" max="8" step="0.01" v-model="scc" >
</div>
</template>
<style scoped lang="postcss">
div.end {
@apply justify-self-end ms-2;
}
</style>
+4
View File
@@ -0,0 +1,4 @@
export * from './tax';
export { default as TaxInput } from './TaxInput.vue';
+12
View File
@@ -0,0 +1,12 @@
import { useLocalStorage } from "@vueuse/core";
import { defineStore } from "pinia";
export const useMarketTaxStore = defineStore("marketTax", () => {
const brokerFee = useLocalStorage("market-brokerFee", 1.5);
const scc = useLocalStorage("market-scc", 3.6);
const applyTaxes = (price: number, sellOrder?: boolean) => sellOrder ? price * (1 - (brokerFee.value + scc.value) / 100) : price * (1 + brokerFee.value / 100);
const calculateProfit = (buy: number, sell: number) => (applyTaxes(sell, true) / applyTaxes(buy)) - 1;
return { brokerFee, scc, applyTaxes, calculateProfit };
});