feat: show total in fiat
This commit is contained in:
parent
5942d135b3
commit
39bcbfb035
4 changed files with 72 additions and 8 deletions
|
|
@ -6,7 +6,9 @@
|
||||||
<h6 class="text-subtitle1 q-my-none">Messages</h6>
|
<h6 class="text-subtitle1 q-my-none">Messages</h6>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-4">
|
<div class="col-4">
|
||||||
<q-badge v-if="unreadMessages" color="green"><span v-text="unreadMessages"></span> new</q-badge>
|
<q-badge v-if="unreadMessages" color="green"
|
||||||
|
><span v-text="unreadMessages"></span> new</q-badge
|
||||||
|
>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-6">
|
<div class="col-6">
|
||||||
<q-btn
|
<q-btn
|
||||||
|
|
|
||||||
|
|
@ -67,8 +67,14 @@
|
||||||
{{toShortId(props.row.id)}}
|
{{toShortId(props.row.id)}}
|
||||||
<q-badge v-if="props.row.isNew" color="orange">new</q-badge></q-td
|
<q-badge v-if="props.row.isNew" color="orange">new</q-badge></q-td
|
||||||
>
|
>
|
||||||
<q-td key="total" :props="props"> {{props.row.total}} </q-td>
|
<q-td key="total" :props="props">
|
||||||
<!-- todo: currency per order -->
|
{{satBtc(props.row.total)}}
|
||||||
|
</q-td>
|
||||||
|
<q-td key="fiat" :props="props">
|
||||||
|
<span v-if="props.row.extra.currency !== 'sat'">
|
||||||
|
{{orderTotal(props.row)}} {{props.row.extra.currency}}
|
||||||
|
</span>
|
||||||
|
</q-td>
|
||||||
|
|
||||||
<q-td key="paid" :props="props">
|
<q-td key="paid" :props="props">
|
||||||
<q-checkbox
|
<q-checkbox
|
||||||
|
|
@ -108,7 +114,9 @@
|
||||||
<div class="row items-center no-wrap q-mb-md">
|
<div class="row items-center no-wrap q-mb-md">
|
||||||
<div class="col-1">Quantity</div>
|
<div class="col-1">Quantity</div>
|
||||||
<div class="col-1"></div>
|
<div class="col-1"></div>
|
||||||
<div class="col-10">Name</div>
|
<div class="col-4">Name</div>
|
||||||
|
<div class="col-2">Price</div>
|
||||||
|
<div class="col-4"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-1"></div>
|
<div class="col-1"></div>
|
||||||
|
|
@ -122,13 +130,31 @@
|
||||||
>
|
>
|
||||||
<div class="col-1">{{item.quantity}}</div>
|
<div class="col-1">{{item.quantity}}</div>
|
||||||
<div class="col-1">x</div>
|
<div class="col-1">x</div>
|
||||||
<div class="col-10">
|
<div class="col-4">
|
||||||
{{productOverview(props.row, item.product_id)}}
|
{{productName(props.row, item.product_id)}}
|
||||||
</div>
|
</div>
|
||||||
|
<div class="col-2">
|
||||||
|
{{productPrice(props.row, item.product_id)}}
|
||||||
|
</div>
|
||||||
|
<div class="col-4"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-1"></div>
|
<div class="col-1"></div>
|
||||||
</div>
|
</div>
|
||||||
|
<div v-if="props.row.extra.currency !== 'sat'" class="row items-center no-wrap q-mb-md q-mt-md">
|
||||||
|
<div class="col-3 q-pr-lg">Exchange Rate:</div>
|
||||||
|
<div class="col-6 col-sm-8 q-pr-lg">
|
||||||
|
<q-input
|
||||||
|
filled
|
||||||
|
dense
|
||||||
|
readonly
|
||||||
|
disabled
|
||||||
|
:value="formatFiat(props.row.extra.btc_price, props.row.extra.currency)"
|
||||||
|
type="text"
|
||||||
|
></q-input>
|
||||||
|
</div>
|
||||||
|
<div class="col-3 col-sm-1"></div>
|
||||||
|
</div>
|
||||||
<div class="row items-center no-wrap q-mb-md q-mt-md">
|
<div class="row items-center no-wrap q-mb-md q-mt-md">
|
||||||
<div class="col-3 q-pr-lg">Order ID:</div>
|
<div class="col-3 q-pr-lg">Order ID:</div>
|
||||||
<div class="col-6 col-sm-8 q-pr-lg">
|
<div class="col-6 col-sm-8 q-pr-lg">
|
||||||
|
|
|
||||||
|
|
@ -67,6 +67,12 @@ async function orderList(path) {
|
||||||
label: 'Total',
|
label: 'Total',
|
||||||
field: 'total'
|
field: 'total'
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: 'fiat',
|
||||||
|
align: 'left',
|
||||||
|
label: 'Fiat',
|
||||||
|
field: 'fiat'
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: 'paid',
|
name: 'paid',
|
||||||
align: 'left',
|
align: 'left',
|
||||||
|
|
@ -108,13 +114,33 @@ async function orderList(path) {
|
||||||
'YYYY-MM-DD HH:mm'
|
'YYYY-MM-DD HH:mm'
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
productOverview: function (order, productId) {
|
satBtc(val, showUnit = true) {
|
||||||
|
return satOrBtc(val, showUnit, true)
|
||||||
|
},
|
||||||
|
formatFiat(value, currency) {
|
||||||
|
return Math.trunc(value) + ' ' + currency
|
||||||
|
},
|
||||||
|
productName: function (order, productId) {
|
||||||
product = order.extra.products.find(p => p.id === productId)
|
product = order.extra.products.find(p => p.id === productId)
|
||||||
if (product) {
|
if (product) {
|
||||||
return `${product.name} (${product.price} ${order.extra.currency})`
|
return product.name
|
||||||
}
|
}
|
||||||
return ''
|
return ''
|
||||||
},
|
},
|
||||||
|
productPrice: function (order, productId) {
|
||||||
|
product = order.extra.products.find(p => p.id === productId)
|
||||||
|
if (product) {
|
||||||
|
return `${product.price} ${order.extra.currency}`
|
||||||
|
}
|
||||||
|
return ''
|
||||||
|
},
|
||||||
|
orderTotal: function (order) {
|
||||||
|
return order.items.reduce((t, item) => {
|
||||||
|
console.log('### t, o', t, item)
|
||||||
|
product = order.extra.products.find(p => p.id === item.product_id)
|
||||||
|
return t + item.quantity * product.price
|
||||||
|
}, 0)
|
||||||
|
},
|
||||||
getOrders: async function () {
|
getOrders: async function () {
|
||||||
try {
|
try {
|
||||||
const ordersPath = this.stallId
|
const ordersPath = this.stallId
|
||||||
|
|
|
||||||
|
|
@ -48,6 +48,16 @@ function isJson(str) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function satOrBtc(val, showUnit = true, showSats = false) {
|
||||||
|
const value = showSats
|
||||||
|
? LNbits.utils.formatSat(val)
|
||||||
|
: val == 0
|
||||||
|
? 0.0
|
||||||
|
: (val / 100000000).toFixed(8)
|
||||||
|
if (!showUnit) return value
|
||||||
|
return showSats ? value + ' sat' : value + ' BTC'
|
||||||
|
}
|
||||||
|
|
||||||
function timeFromNow(time) {
|
function timeFromNow(time) {
|
||||||
// Get timestamps
|
// Get timestamps
|
||||||
let unixTime = new Date(time).getTime()
|
let unixTime = new Date(time).getTime()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue