[pricelist][cocktailbuilder] fix new ingredient component
This commit is contained in:
parent
b40b1064e7
commit
9b0679278c
|
@ -5,11 +5,10 @@
|
||||||
</q-card-section>
|
</q-card-section>
|
||||||
<q-card-section>
|
<q-card-section>
|
||||||
<ingredients
|
<ingredients
|
||||||
|
v-model="volume.ingredients"
|
||||||
class="q-pa-sm"
|
class="q-pa-sm"
|
||||||
:volume="volume"
|
editable
|
||||||
:ingredients="volume.ingredients"
|
@update:modelValue="update"
|
||||||
@addIngredient="addIngredient"
|
|
||||||
@deleteIngredient="deleteIngredient"
|
|
||||||
/>
|
/>
|
||||||
</q-card-section>
|
</q-card-section>
|
||||||
<q-card-section>
|
<q-card-section>
|
||||||
|
@ -30,34 +29,14 @@
|
||||||
import { defineComponent, onBeforeMount, ref } from 'vue';
|
import { defineComponent, onBeforeMount, ref } from 'vue';
|
||||||
import Ingredients from 'src/plugins/pricelist/components/CalculationTable/Ingredients.vue';
|
import Ingredients from 'src/plugins/pricelist/components/CalculationTable/Ingredients.vue';
|
||||||
import { DrinkPriceVolume, usePricelistStore } from 'src/plugins/pricelist/store';
|
import { DrinkPriceVolume, usePricelistStore } from 'src/plugins/pricelist/store';
|
||||||
|
import { calc_min_prices } from '../utils/utils';
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: 'CocktailBuilder',
|
name: 'CocktailBuilder',
|
||||||
components: { Ingredients },
|
components: { Ingredients },
|
||||||
setup() {
|
setup() {
|
||||||
onBeforeMount(() => {
|
onBeforeMount(() => {
|
||||||
void store.get_min_prices().finally(() => {
|
void store.get_min_prices().finally(() => {
|
||||||
store.min_prices.forEach((min_price) => {
|
volume.value.min_prices = calc_min_prices(volume.value, undefined, store.min_prices);
|
||||||
(<DrinkPriceVolume>volume.value).min_prices.push({
|
|
||||||
percentage: min_price,
|
|
||||||
price: /*computed<number>(() => {
|
|
||||||
let retVal = 0;
|
|
||||||
let extraIngredientPrice = 0;
|
|
||||||
volume.value.ingredients.forEach((ingredient) => {
|
|
||||||
if (ingredient.drink_ingredient) {
|
|
||||||
const _drink = store.drinks.find(
|
|
||||||
(a) => a.id === ingredient.drink_ingredient?.ingredient_id
|
|
||||||
);
|
|
||||||
retVal +=
|
|
||||||
ingredient.drink_ingredient.volume * <number>(<unknown>_drink?.cost_per_volume);
|
|
||||||
}
|
|
||||||
if (ingredient.extra_ingredient) {
|
|
||||||
extraIngredientPrice += ingredient.extra_ingredient.price;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return (retVal * min_price) / 100 + extraIngredientPrice;
|
|
||||||
}) */ 0,
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
void store.getDrinks();
|
void store.getDrinks();
|
||||||
void store.getDrinkTypes();
|
void store.getDrinkTypes();
|
||||||
|
@ -74,17 +53,11 @@ export default defineComponent({
|
||||||
};
|
};
|
||||||
const volume = ref(emptyVolume);
|
const volume = ref(emptyVolume);
|
||||||
|
|
||||||
function addIngredient(ingredient: FG.Ingredient) {
|
function update() {
|
||||||
volume.value.ingredients.push(ingredient);
|
volume.value.min_prices = calc_min_prices(volume.value, undefined, store.min_prices);
|
||||||
}
|
|
||||||
function deleteIngredient(ingredient: FG.Ingredient) {
|
|
||||||
const index = volume.value.ingredients.findIndex((a) => a.id === ingredient.id);
|
|
||||||
if (index > -1) {
|
|
||||||
volume.value.ingredients.splice(index, 1);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return { volume, addIngredient, deleteIngredient };
|
return { volume, update };
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
Loading…
Reference in New Issue