Funkční generování QR kódů
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
import {ClientData, Locations, Order, Pizza, PizzaDayState, PizzaOrder, PizzaSize, UdalostEnum} from "./types";
|
||||
import {db} from "./database";
|
||||
import {formatDate, getHumanDate, getIsWeekend} from "./utils";
|
||||
import {callNotifikace} from "./notifikace";
|
||||
import { ClientData, Locations, Order, Pizza, PizzaDayState, PizzaOrder, PizzaSize, UdalostEnum } from "./types";
|
||||
import { db } from "./database";
|
||||
import { formatDate, getHumanDate, getIsWeekend } from "./utils";
|
||||
import { callNotifikace } from "./notifikace";
|
||||
import { generateQr } from "./qr";
|
||||
|
||||
/** Vrátí dnešní datum, případně fiktivní datum pro účely vývoje a testování. */
|
||||
function getToday(): Date {
|
||||
@@ -191,17 +192,18 @@ export function finishPizzaOrder(login: string) {
|
||||
}
|
||||
clientData.pizzaDay.state = PizzaDayState.ORDERED;
|
||||
db.set(today, clientData);
|
||||
callNotifikace({input:{udalost:UdalostEnum.OBJEDNANA_PIZZA,user:clientData?.pizzaDay?.creator}})
|
||||
callNotifikace({ input: { udalost: UdalostEnum.OBJEDNANA_PIZZA, user: clientData?.pizzaDay?.creator } })
|
||||
return clientData;
|
||||
}
|
||||
|
||||
/**
|
||||
* Nastaví stav pizza day na "pizzy doručeny".
|
||||
* Vygeneruje QR kódy pro všechny objednatele, pokud objednávající má vyplněné číslo účtu a jméno.
|
||||
*
|
||||
* @param login login uživatele
|
||||
* @returns aktuální data pro uživatele
|
||||
*/
|
||||
export function finishPizzaDelivery(login: string) {
|
||||
export function finishPizzaDelivery(login: string, bankAccount?: string, bankAccountHolder?: string) {
|
||||
const today = formatDate(getToday());
|
||||
const clientData: ClientData = db.get(today);
|
||||
if (!clientData.pizzaDay) {
|
||||
@@ -214,6 +216,15 @@ export function finishPizzaDelivery(login: string) {
|
||||
throw Error("Pizza day není ve stavu " + PizzaDayState.ORDERED);
|
||||
}
|
||||
clientData.pizzaDay.state = PizzaDayState.DELIVERED;
|
||||
|
||||
// Vygenerujeme QR kód, pokud k tomu máme data
|
||||
if (bankAccount?.length && bankAccountHolder?.length) {
|
||||
for (const order of clientData.pizzaDay.orders) {
|
||||
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);
|
||||
generateQr(order.customer, bankAccount, bankAccountHolder, price, message).then(() => order.hasQr = true);
|
||||
}
|
||||
}
|
||||
db.set(today, clientData);
|
||||
return clientData;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user