From ece6647671f029cc5d20feec710c0ecbb6a22e73 Mon Sep 17 00:00:00 2001 From: meskio <meskio@sindominio.net> Date: Tue, 16 Mar 2021 18:18:19 +0100 Subject: [PATCH] Don't assume product extists --- src/order/OrderEditor.js | 3 ++- src/order/ShowOrder.js | 13 ++++++++++--- src/purchase/ShowPurchase.js | 2 +- src/transaction/TransactionTr.js | 11 +++++++++-- 4 files changed, 22 insertions(+), 7 deletions(-) diff --git a/src/order/OrderEditor.js b/src/order/OrderEditor.js index 66d263f..246f399 100644 --- a/src/order/OrderEditor.js +++ b/src/order/OrderEditor.js @@ -6,9 +6,10 @@ import { date2string, time2string, daysAfterNow } from "../util"; function order2picks(order) { return order.products.map((p) => { + const name = p.product !== null ? p.product.name : p.code; return { code: p.code, - name: p.product.name, + name: name, price: p.price, }; }); diff --git a/src/order/ShowOrder.js b/src/order/ShowOrder.js index 72d8c40..75e3e11 100644 --- a/src/order/ShowOrder.js +++ b/src/order/ShowOrder.js @@ -16,10 +16,17 @@ import { printDate } from "../util"; import AuthContext from "../AuthContext"; import { printMoney, url } from "../util"; +function getName(order_product) { + if (order_product.product !== null) { + return order_product.product.name; + } + return order_product.code; +} + function ShowOrderTransaction(props) { const list = props.transaction.order_purchase.map((o) => ( <li key={o.order_product.code}> - {o.order_product.product.name} ({o.order_product.code}): {o.amount} + {getName(o.order_product)} ({o.order_product.code}): {o.amount} </li> )); return ( @@ -48,7 +55,7 @@ function ShowOrderResults(props) { t.member.num.toString() + "-" + purchase.order_product_id.toString(); return ( <li key={key}> - {products[i].product.name} {purchase.amount} + {getName(products[i])} {purchase.amount} </li> ); } @@ -64,7 +71,7 @@ function ShowOrderResults(props) { const product_list = products.map((p) => ( <li key={p.code}> - {p.product.name}: {p.total} + {getName(p)}: {p.total} </li> )); return ( diff --git a/src/purchase/ShowPurchase.js b/src/purchase/ShowPurchase.js index 634cb75..d123967 100644 --- a/src/purchase/ShowPurchase.js +++ b/src/purchase/ShowPurchase.js @@ -7,7 +7,7 @@ function ShowPurchase(props) { return ( <tr key={p.code}> <td>{p.code}</td> - <td>{p.product.name}</td> + <td>{p.product !== null ? p.product.name : p.code}</td> <td>{printMoney(p.price) + " €"}</td> <td>{p.amount}</td> </tr> diff --git a/src/transaction/TransactionTr.js b/src/transaction/TransactionTr.js index 8cffa39..ee5d5b8 100644 --- a/src/transaction/TransactionTr.js +++ b/src/transaction/TransactionTr.js @@ -8,7 +8,10 @@ function transactionOverlay(transaction) { switch (transaction.type) { case "purchase": title = "compra"; - content = transaction.purchase.map((p) => p.product.name).join(",") + "."; + content = + transaction.purchase + .map((p) => (p.product !== null ? p.product.name : p.code)) + .join(",") + "."; break; case "topup": if (transaction.total < 0) { @@ -21,9 +24,13 @@ function transactionOverlay(transaction) { case "order": title = "pedido de " + transaction.order.name; content = transaction.order_purchase.map((p) => { + const name = + p.order_product.product !== null + ? p.order_product.product.name + : p.order_product.code; return ( <div key={"O" + transaction.ID + "-" + p.order_product.ID}> - {p.order_product.product.name + ": " + p.amount} + {name + ": " + p.amount} <br /> </div> ); -- GitLab