fix: partial orders

This commit is contained in:
Vlad Stan 2023-07-12 13:33:26 +03:00
parent e90d0161eb
commit 5d33fcd756
2 changed files with 105 additions and 88 deletions

View file

@ -61,8 +61,8 @@
<q-item-label>
<div class="text-caption text-grey ellipsis-2-lines">
<p>
<span v-text="order.items.length"></span>
<span v-text="order.items.length === 1 ? 'product': 'products'"></span>
<span v-text="order.items?.length"></span>
<span v-text="order.items?.length === 1 ? 'product': 'products'"></span>
</p>
</div>
</q-item-label>
@ -107,13 +107,29 @@
<q-item-label> <strong>Invoice: </strong>
<q-badge @click="showInvoice(order)" v-if="order.invoice?.human_readable_part?.amount"
color="orange" class="cursor-pointer">
<span
v-text="formatCurrency(order.invoice?.human_readable_part?.amount / 1000, 'sat')"></span>
<span v-text="formatCurrency(order.invoice?.human_readable_part?.amount / 1000, 'sat')"></span>
</q-badge>
</q-item-label>
</q-item-section>
</q-card-section>
</q-card-section>
<q-separator></q-separator>
<q-card-section v-if="order.messages" class="col-12">
<q-item-section class="q-mt-sm q-ml-sm">
<q-item-label> <strong>Messages: </strong>
</q-item-label>
</q-item-section>
<q-item-section class="q-mt-sm">
<q-item-label>
<ul>
<li v-for="(message, i) in order.messages" :key="i">
<span v-text="message"></span>
</li>
</ul>
</q-item-label>
</q-item-section>
</q-card-section>
</q-expansion-item>
<q-separator></q-separator>
</div>
@ -121,6 +137,7 @@
</q-card-section>
</q-card>
</div>

View file

@ -25,15 +25,15 @@ async function customerOrders(path) {
const stall = this.stallForOrder(order)
return {
...order,
stallName: stall.name,
shippingZone: stall.shipping.find(s => s.id === order.shipping_id),
stallName: stall?.name || 'Stall',
shippingZone: stall?.shipping?.find(s => s.id === order.shipping_id),
invoice: this.invoiceForOrder(order),
products: this.getProductsForOrder(order)
}
},
stallForOrder: function (order) {
try {
const productId = order.items[0]?.product_id
const productId = order.items && order.items[0]?.product_id
if (!productId) return
const product = this.products.find(p => p.id === productId)
if (!product) return