2021-03-14 12:52:58 +00:00
|
|
|
<template>
|
|
|
|
<div>
|
|
|
|
<q-card>
|
|
|
|
<q-card-section>
|
|
|
|
<div class="text-h4">Neues Getränk</div>
|
|
|
|
</q-card-section>
|
|
|
|
<q-form @submit="save">
|
|
|
|
<q-card-section>
|
|
|
|
<div class="text-h5">Getränkinformationen</div>
|
|
|
|
<div class="row">
|
|
|
|
<q-input
|
|
|
|
v-model="drink.name"
|
|
|
|
class="col-12 col-sm-6 q-px-sm q-py-md"
|
|
|
|
filled
|
|
|
|
label="Name"
|
|
|
|
/>
|
|
|
|
<q-input
|
|
|
|
v-model="drink.volume"
|
|
|
|
class="col-12 col-sm-6 q-px-sm q-py-md"
|
|
|
|
filled
|
|
|
|
label="Inhalt in Liter"
|
|
|
|
type="number"
|
|
|
|
step="0.01"
|
|
|
|
/>
|
|
|
|
<q-input
|
|
|
|
v-model="drink.cost_price"
|
|
|
|
class="col-12 col-sm-6 q-px-sm q-py-md"
|
|
|
|
filled
|
|
|
|
label="Einkaufspreis"
|
|
|
|
type="number"
|
|
|
|
step="0.01"
|
|
|
|
/>
|
|
|
|
<q-input
|
|
|
|
v-model="drink.discount"
|
|
|
|
class="col-12 col-sm-6 q-px-sm q-py-md"
|
|
|
|
filled
|
|
|
|
label="Aufschlag in Prozent"
|
|
|
|
type="number"
|
|
|
|
hint="Wenn nicht gesetzt wird default-wert genommen."
|
|
|
|
step="0.01"
|
|
|
|
/>
|
|
|
|
<q-input
|
|
|
|
v-model="drink.extra_charge"
|
|
|
|
class="col-12 col-sm-6 q-px-sm q-py-md"
|
|
|
|
filled
|
|
|
|
label="Extra Aufschlag in Euro"
|
|
|
|
type="number"
|
|
|
|
step="0.1"
|
|
|
|
/>
|
|
|
|
|
|
|
|
<q-input class="col-12 col-sm-6 q-px-sm q-py-md" filled label="Tags" />
|
|
|
|
</div>
|
|
|
|
</q-card-section>
|
|
|
|
<q-card-section>
|
|
|
|
<div class="row justify-between">
|
|
|
|
<div class="text-h5">Preise</div>
|
|
|
|
<q-btn round icon="mdi-plus" color="primary" @click="addPrice" />
|
|
|
|
</div>
|
|
|
|
<q-card v-for="(price, index) in drink.prices" :key="index" class="q-ma-sm">
|
|
|
|
<div class="row">
|
|
|
|
<q-input
|
|
|
|
v-model="price.volume"
|
|
|
|
class="col-12 col-sm-6 q-px-sm q-py-md"
|
|
|
|
label="Inhalt in Liter"
|
|
|
|
filled
|
|
|
|
type="number"
|
|
|
|
step="0.01"
|
|
|
|
/>
|
|
|
|
<q-input
|
|
|
|
v-model="price.price"
|
|
|
|
class="col-12 col-sm-6 q-px-sm q-py-md"
|
|
|
|
label="Preis in €"
|
|
|
|
filled
|
|
|
|
:disable="price.no_auto"
|
|
|
|
type="number"
|
|
|
|
step="0.1"
|
|
|
|
/>
|
|
|
|
<q-toggle
|
|
|
|
v-model="price.no_auto"
|
|
|
|
class="col-12 col-sm-6 q-px-sm q-py-md"
|
|
|
|
label="Automatische Preiskalkulation"
|
|
|
|
color="primary"
|
|
|
|
/>
|
|
|
|
<q-input
|
|
|
|
v-model="price.round_step"
|
|
|
|
class="col-12 col-sm-6 q-px-sm q-py-md"
|
|
|
|
label="Rundungsschritt"
|
|
|
|
type="number"
|
|
|
|
filled
|
|
|
|
step="0.1"
|
|
|
|
/>
|
|
|
|
<q-toggle
|
|
|
|
v-model="price.public"
|
|
|
|
class="col-12 col-sm-6 q-px-sm q-py-md"
|
|
|
|
label="Öffentlich"
|
|
|
|
color="primary"
|
|
|
|
/>
|
|
|
|
<q-input
|
|
|
|
v-model="price.description"
|
|
|
|
class="col-12 col-sm-6 q-px-sm q-py-md"
|
|
|
|
label="Beschreibung"
|
|
|
|
filled
|
|
|
|
/>
|
|
|
|
</div>
|
|
|
|
</q-card>
|
|
|
|
</q-card-section>
|
|
|
|
<q-card-section>
|
|
|
|
<div class="row justify-between">
|
|
|
|
<div class="text-h5">Zutaten</div>
|
|
|
|
<q-btn round icon="mdi-plus" color="primary" />
|
|
|
|
</div>
|
|
|
|
</q-card-section>
|
|
|
|
<q-card-actions align="right">
|
|
|
|
<q-btn type="submit" label="Speichern" color="primary" />
|
|
|
|
</q-card-actions>
|
|
|
|
</q-form>
|
|
|
|
</q-card>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<script lang="ts">
|
|
|
|
import { defineComponent, ref } from 'vue';
|
2021-03-14 14:12:41 +00:00
|
|
|
import { usePricelistStore } from '../store';
|
2021-03-14 12:52:58 +00:00
|
|
|
|
|
|
|
export default defineComponent({
|
|
|
|
name: 'Drink',
|
|
|
|
setup() {
|
2021-03-14 14:12:41 +00:00
|
|
|
const store = usePricelistStore();
|
|
|
|
const drink = ref<FG.Drink>({
|
|
|
|
id: -1,
|
2021-03-14 12:52:58 +00:00
|
|
|
name: '',
|
2021-03-14 14:12:41 +00:00
|
|
|
volume: -1,
|
|
|
|
cost_price: -1,
|
|
|
|
discount: -1,
|
2021-03-14 12:52:58 +00:00
|
|
|
prices: [],
|
|
|
|
ingredients: [],
|
|
|
|
});
|
|
|
|
const emptyPrice = {
|
|
|
|
volume: '',
|
|
|
|
price: '',
|
|
|
|
description: '',
|
|
|
|
no_auto: false,
|
|
|
|
round_step: '',
|
|
|
|
public: true,
|
|
|
|
};
|
|
|
|
|
|
|
|
function addPrice() {
|
2021-03-14 14:12:41 +00:00
|
|
|
//drink.value.prices.unshift({ ...emptyPrice });
|
2021-03-14 12:52:58 +00:00
|
|
|
}
|
2021-03-14 14:12:41 +00:00
|
|
|
async function save() {
|
2021-03-14 12:52:58 +00:00
|
|
|
console.log(drink);
|
|
|
|
drink.value.prices.forEach((price: FG.DrinkPrice) => {
|
2021-03-14 14:12:41 +00:00
|
|
|
//price.no_auto = !price.no_auto;
|
2021-03-14 12:52:58 +00:00
|
|
|
});
|
2021-03-14 14:12:41 +00:00
|
|
|
await store.createDrink(drink.value);
|
2021-03-14 12:52:58 +00:00
|
|
|
}
|
|
|
|
return { drink, addPrice, save };
|
|
|
|
},
|
|
|
|
});
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<style scoped></style>
|