Oprava generování QR kódů pro Pizza day

This commit is contained in:
Martin Berka 2023-09-22 20:30:27 +02:00
parent 3a357f077f
commit 1b132a7ca7
3 changed files with 6 additions and 7 deletions

View File

@ -107,6 +107,7 @@
.qr-code { .qr-code {
text-align: center; text-align: center;
margin-top: 30px;
} }
.select-search-container { .select-search-container {

View File

@ -368,8 +368,7 @@ function App() {
<Alert variant={'primary'}> <Alert variant={'primary'}>
Poslední změny: Poslední změny:
<ul> <ul>
<li>Ochrana proti některým Stánkovinám</li> <li>Oprava generování QR kódů pro Pizza day</li>
<li>Navigace mezi dny klávesovými šipkami</li>
</ul> </ul>
</Alert> </Alert>
{dayIndex != null && {dayIndex != null &&
@ -548,7 +547,7 @@ function App() {
{ {
data.pizzaDay.state === PizzaDayState.DELIVERED && data.pizzaDay.state === PizzaDayState.DELIVERED &&
<div> <div>
<p>Pizzy byly doručeny. Objednávku můžete uhradit pomocí QR kódu níže.</p> <p>{`Pizzy byly doručeny.${myOrder?.hasQr ? ` Objednávku můžete uživateli ${data.pizzaDay.creator} uhradit pomocí QR kódu níže.` : ''}`}</p>
</div> </div>
} }
</div> </div>
@ -578,9 +577,8 @@ function App() {
data.pizzaDay.state === PizzaDayState.DELIVERED && myOrder?.hasQr && data.pizzaDay.state === PizzaDayState.DELIVERED && myOrder?.hasQr &&
<div className='qr-code'> <div className='qr-code'>
<h3>QR platba</h3> <h3>QR platba</h3>
<div>Částka: {myOrder.totalPrice} </div>
<img src={getQrUrl(auth.login)} alt='QR kód' /> <img src={getQrUrl(auth.login)} alt='QR kód' />
<p>Generování QR kódů je v experimentální fázi - doporučujeme si překontrolovat údaje před odesláním platby.</p> <p>Pozor, QR kód nezohledňuje případné přidané ingredience.</p>
</div> </div>
} }
</div> </div>

View File

@ -319,13 +319,13 @@ export async function finishPizzaDelivery(login: string, bankAccount?: string, b
clientData.pizzaDay.state = PizzaDayState.DELIVERED; clientData.pizzaDay.state = PizzaDayState.DELIVERED;
// Vygenerujeme QR kód, pokud k tomu máme data // Vygenerujeme QR kód, pokud k tomu máme data
// TODO berka je potřeba počkat na resolve promises z generateQr a až poté volat save do DB
if (bankAccount?.length && bankAccountHolder?.length) { if (bankAccount?.length && bankAccountHolder?.length) {
for (const order of clientData.pizzaDay.orders) { for (const order of clientData.pizzaDay.orders) {
if (order.customer !== login) { // zatím platí creator = objednávající, a pro toho nemá QR kód smysl if (order.customer !== login) { // zatím platí creator = objednávající, a pro toho nemá QR kód smysl
let message = order.pizzaList.map(pizza => `Pizza ${pizza.name} (${pizza.size})`).join(', '); let message = order.pizzaList.map(pizza => `Pizza ${pizza.name} (${pizza.size})`).join(', ');
const price = order.pizzaList.map(pizza => pizza.price).reduce((partial, a) => partial + a, 0); const price = order.pizzaList.map(pizza => pizza.price).reduce((partial, a) => partial + a, 0);
generateQr(order.customer, bankAccount, bankAccountHolder, price, message).then(() => order.hasQr = true); await generateQr(order.customer, bankAccount, bankAccountHolder, price, message);
order.hasQr = true;
} }
} }
} }