Added correct definitions file
This commit is contained in:
parent
20191be5dc
commit
caa09a3c2c
|
@ -15,7 +15,7 @@ declare namespace FG {
|
||||||
mail: string;
|
mail: string;
|
||||||
birthday?: Date;
|
birthday?: Date;
|
||||||
roles: Array<string>;
|
roles: Array<string>;
|
||||||
permissions?: string[];
|
permissions?: Array<string>;
|
||||||
avatar_url?: string;
|
avatar_url?: string;
|
||||||
}
|
}
|
||||||
type Permission = string;
|
type Permission = string;
|
||||||
|
@ -29,9 +29,9 @@ declare namespace FG {
|
||||||
time: Date;
|
time: Date;
|
||||||
amount: number;
|
amount: number;
|
||||||
reversal_id: number;
|
reversal_id: number;
|
||||||
sender_id?: number;
|
sender_id?: string;
|
||||||
receiver_id?: number;
|
receiver_id?: string;
|
||||||
author_id?: number;
|
author_id?: string;
|
||||||
original_id?: number;
|
original_id?: number;
|
||||||
}
|
}
|
||||||
interface Drink {
|
interface Drink {
|
||||||
|
@ -43,32 +43,26 @@ declare namespace FG {
|
||||||
cost_price_pro_volume?: number;
|
cost_price_pro_volume?: number;
|
||||||
cost_price_package_netto?: number;
|
cost_price_package_netto?: number;
|
||||||
tags: Array<Tag>;
|
tags: Array<Tag>;
|
||||||
type?: DrinkType;
|
type: DrinkType;
|
||||||
volumes: DrinkPriceVolume[];
|
volumes: Array<DrinkPriceVolume>;
|
||||||
}
|
}
|
||||||
interface DrinkIngredient {
|
interface DrinkIngredient {
|
||||||
id: number;
|
id: number;
|
||||||
volume: number;
|
volume: number;
|
||||||
drink_ingredient?: Drink;
|
drink_ingredient_id: number;
|
||||||
|
price: number;
|
||||||
}
|
}
|
||||||
interface DrinkPrice {
|
interface DrinkPrice {
|
||||||
id: number;
|
id: number;
|
||||||
price: number;
|
price: number;
|
||||||
public: boolean;
|
public: bool;
|
||||||
description?: string;
|
description?: string;
|
||||||
}
|
}
|
||||||
interface DrinkMinPrice {
|
|
||||||
percentage: number;
|
|
||||||
//price: ComputedRef<number>;
|
|
||||||
price: number;
|
|
||||||
}
|
|
||||||
interface DrinkPriceVolume {
|
interface DrinkPriceVolume {
|
||||||
id: number;
|
id: number;
|
||||||
volume: number;
|
volume: number;
|
||||||
//computed_volume: ComputedRef<number>;
|
ingredients: Array<DrinkIngredient | ExtraIngredient>;
|
||||||
min_prices: DrinkMinPrice[];
|
|
||||||
prices: Array<DrinkPrice>;
|
prices: Array<DrinkPrice>;
|
||||||
ingredients: Array<Ingredient>;
|
|
||||||
}
|
}
|
||||||
interface DrinkType {
|
interface DrinkType {
|
||||||
id: number;
|
id: number;
|
||||||
|
@ -81,8 +75,9 @@ declare namespace FG {
|
||||||
}
|
}
|
||||||
interface Ingredient {
|
interface Ingredient {
|
||||||
id: number;
|
id: number;
|
||||||
drink_ingredient: DrinkIngredient | null;
|
volume_id: number;
|
||||||
extra_ingredient: ExtraIngredient | null;
|
drink_ingredient: DrinkIngredient;
|
||||||
|
extra_ingredient: ExtraIngredient;
|
||||||
}
|
}
|
||||||
interface Tag {
|
interface Tag {
|
||||||
id: number;
|
id: number;
|
||||||
|
|
|
@ -11,7 +11,7 @@ const plugin: FG_Plugin.Plugin = {
|
||||||
requiredBackendModules: ['pricelist'],
|
requiredBackendModules: ['pricelist'],
|
||||||
version: '0.0.1',
|
version: '0.0.1',
|
||||||
store: new Map<string, Module<DrinkInterface, StateInterface>>([['drink', drink]]),
|
store: new Map<string, Module<DrinkInterface, StateInterface>>([['drink', drink]]),
|
||||||
widgets: []
|
widgets: [],
|
||||||
// widgets: [
|
// widgets: [
|
||||||
// {
|
// {
|
||||||
// priority: 1,
|
// priority: 1,
|
||||||
|
|
|
@ -15,7 +15,7 @@ const mainRoutes: FG_Plugin.PluginRouteConfig[] = [
|
||||||
name: 'drinks-pricelist',
|
name: 'drinks-pricelist',
|
||||||
shortcut: true,
|
shortcut: true,
|
||||||
meta: { permissions: ['user'] },
|
meta: { permissions: ['user'] },
|
||||||
component: () => import('../pages/Pricelist.vue')
|
component: () => import('../pages/Pricelist.vue'),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Einstellungen',
|
title: 'Einstellungen',
|
||||||
|
@ -24,10 +24,10 @@ const mainRoutes: FG_Plugin.PluginRouteConfig[] = [
|
||||||
name: 'drinks-settings',
|
name: 'drinks-settings',
|
||||||
shortcut: false,
|
shortcut: false,
|
||||||
meta: { permissions: ['users_edit_other'] },
|
meta: { permissions: ['users_edit_other'] },
|
||||||
component: () => import('../pages/Settings.vue')
|
component: () => import('../pages/Settings.vue'),
|
||||||
}
|
},
|
||||||
]
|
],
|
||||||
}
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
export default mainRoutes;
|
export default mainRoutes;
|
||||||
|
|
|
@ -11,7 +11,7 @@ const state = reactive<{
|
||||||
drinks: [],
|
drinks: [],
|
||||||
tags: [],
|
tags: [],
|
||||||
drinkTypes: [],
|
drinkTypes: [],
|
||||||
extraIngredients: []
|
extraIngredients: [],
|
||||||
});
|
});
|
||||||
|
|
||||||
interface MinPrice extends Omit<FG.DrinkMinPrice, 'price'> {
|
interface MinPrice extends Omit<FG.DrinkMinPrice, 'price'> {
|
||||||
|
@ -37,22 +37,22 @@ class DrinkPriceVolume {
|
||||||
this.min_prices = [
|
this.min_prices = [
|
||||||
{
|
{
|
||||||
percentage: 100,
|
percentage: 100,
|
||||||
price: create_min_prices(drink, this, 100)
|
price: create_min_prices(drink, this, 100),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
percentage: 250,
|
percentage: 250,
|
||||||
price: create_min_prices(drink, this, 250)
|
price: create_min_prices(drink, this, 250),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
percentage: 300,
|
percentage: 300,
|
||||||
price: create_min_prices(drink, this, 300)
|
price: create_min_prices(drink, this, 300),
|
||||||
}
|
},
|
||||||
];
|
];
|
||||||
this.volume = computed<number>({
|
this.volume = computed<number>({
|
||||||
get: () => {
|
get: () => {
|
||||||
if (this.ingredients.some(ingredient => !!ingredient.drink_ingredient)) {
|
if (this.ingredients.some((ingredient) => !!ingredient.drink_ingredient)) {
|
||||||
let retVal = 0;
|
let retVal = 0;
|
||||||
this.ingredients.forEach(ingredient => {
|
this.ingredients.forEach((ingredient) => {
|
||||||
if (ingredient.drink_ingredient?.volume) {
|
if (ingredient.drink_ingredient?.volume) {
|
||||||
retVal += ingredient.drink_ingredient.volume;
|
retVal += ingredient.drink_ingredient.volume;
|
||||||
}
|
}
|
||||||
|
@ -63,7 +63,7 @@ class DrinkPriceVolume {
|
||||||
return this._volume;
|
return this._volume;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
set: val => (this._volume = val)
|
set: (val) => (this._volume = val),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -79,7 +79,7 @@ class Drink {
|
||||||
cost_price_package_netto,
|
cost_price_package_netto,
|
||||||
tags,
|
tags,
|
||||||
type,
|
type,
|
||||||
volumes
|
volumes,
|
||||||
}: FG.Drink) {
|
}: FG.Drink) {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
this.article_id = article_id;
|
this.article_id = article_id;
|
||||||
|
@ -100,7 +100,7 @@ class Drink {
|
||||||
|
|
||||||
return this._cost_price_pro_volume;
|
return this._cost_price_pro_volume;
|
||||||
},
|
},
|
||||||
set: val => (this._cost_price_pro_volume = val)
|
set: (val) => (this._cost_price_pro_volume = val),
|
||||||
});
|
});
|
||||||
this.tags = tags;
|
this.tags = tags;
|
||||||
this.type = type;
|
this.type = type;
|
||||||
|
@ -117,17 +117,17 @@ const actions = {
|
||||||
.get('pricelist/drinks')
|
.get('pricelist/drinks')
|
||||||
.then((response: AxiosResponse<FG.Drink[]>) => {
|
.then((response: AxiosResponse<FG.Drink[]>) => {
|
||||||
state.drinks = [];
|
state.drinks = [];
|
||||||
response.data.forEach(drink => {
|
response.data.forEach((drink) => {
|
||||||
state.drinks.push(new Drink(drink));
|
state.drinks.push(new Drink(drink));
|
||||||
});
|
});
|
||||||
state.drinks.forEach(drink => {
|
state.drinks.forEach((drink) => {
|
||||||
const _drink = response.data.find(a => a.id === drink.id);
|
const _drink = response.data.find((a) => a.id === drink.id);
|
||||||
_drink?.volumes.forEach(volume => {
|
_drink?.volumes.forEach((volume) => {
|
||||||
drink.volumes.push(new DrinkPriceVolume(volume, drink));
|
drink.volumes.push(new DrinkPriceVolume(volume, drink));
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
.catch(err => console.warn(err));
|
.catch((err) => console.warn(err));
|
||||||
},
|
},
|
||||||
setPrice(price: FG.DrinkPrice, volume: DrinkPriceVolume) {
|
setPrice(price: FG.DrinkPrice, volume: DrinkPriceVolume) {
|
||||||
axios
|
axios
|
||||||
|
@ -136,7 +136,7 @@ const actions = {
|
||||||
volume.prices.push(response.data);
|
volume.prices.push(response.data);
|
||||||
this.sortPrices(volume);
|
this.sortPrices(volume);
|
||||||
})
|
})
|
||||||
.catch(err => console.warn(err));
|
.catch((err) => console.warn(err));
|
||||||
},
|
},
|
||||||
sortPrices(volume: DrinkPriceVolume) {
|
sortPrices(volume: DrinkPriceVolume) {
|
||||||
volume.prices.sort((a, b) => {
|
volume.prices.sort((a, b) => {
|
||||||
|
@ -149,48 +149,54 @@ const actions = {
|
||||||
axios
|
axios
|
||||||
.delete(`pricelist/prices/${price.id}`)
|
.delete(`pricelist/prices/${price.id}`)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
const index = volume.prices.findIndex(a => a.id == price.id);
|
const index = volume.prices.findIndex((a) => a.id == price.id);
|
||||||
if (index > -1) {
|
if (index > -1) {
|
||||||
volume.prices.splice(index, 1);
|
volume.prices.splice(index, 1);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(err => console.warn(err));
|
.catch((err) => console.warn(err));
|
||||||
},
|
},
|
||||||
updatePrice(price: FG.DrinkPrice, volume: DrinkPriceVolume) {
|
updatePrice(price: FG.DrinkPrice, volume: DrinkPriceVolume) {
|
||||||
axios
|
axios
|
||||||
.put(`pricelist/prices/${price.id}`, price)
|
.put(`pricelist/prices/${price.id}`, price)
|
||||||
.then((response: AxiosResponse<FG.DrinkPrice>) => {
|
.then((response: AxiosResponse<FG.DrinkPrice>) => {
|
||||||
const index = volume.prices.findIndex(a => a.id === price.id);
|
const index = volume.prices.findIndex((a) => a.id === price.id);
|
||||||
if (index > -1) {
|
if (index > -1) {
|
||||||
this.sortPrices(volume);
|
this.sortPrices(volume);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(err => console.log(err));
|
.catch((err) => console.log(err));
|
||||||
},
|
},
|
||||||
setVolume(volume: DrinkPriceVolume, drink: Drink) {
|
setVolume(volume: DrinkPriceVolume, drink: Drink) {
|
||||||
console.log(volume);
|
console.log(volume);
|
||||||
axios
|
axios
|
||||||
.post(`pricelist/drinks/${drink.id}/volumes`, { ...volume, volume: volume.volume })
|
.post(`pricelist/drinks/${drink.id}/volumes`, {
|
||||||
|
...volume,
|
||||||
|
volume: volume.volume,
|
||||||
|
})
|
||||||
.then((response: AxiosResponse<FG.DrinkPriceVolume>) => {
|
.then((response: AxiosResponse<FG.DrinkPriceVolume>) => {
|
||||||
drink.volumes.push(new DrinkPriceVolume(response.data, drink));
|
drink.volumes.push(new DrinkPriceVolume(response.data, drink));
|
||||||
})
|
})
|
||||||
.catch(err => console.warn(err));
|
.catch((err) => console.warn(err));
|
||||||
},
|
},
|
||||||
updateVolume(volume: DrinkPriceVolume, drink: Drink) {
|
updateVolume(volume: DrinkPriceVolume, drink: Drink) {
|
||||||
axios
|
axios
|
||||||
.put(`pricelist/volumes/${volume.id}`, { ...volume, volume: volume.volume?.value })
|
.put(`pricelist/volumes/${volume.id}`, {
|
||||||
.catch(err => console.warn(err));
|
...volume,
|
||||||
|
volume: volume.volume?.value,
|
||||||
|
})
|
||||||
|
.catch((err) => console.warn(err));
|
||||||
},
|
},
|
||||||
deleteVolume(volume: FG.DrinkPriceVolume, drink: FG.Drink) {
|
deleteVolume(volume: FG.DrinkPriceVolume, drink: FG.Drink) {
|
||||||
axios
|
axios
|
||||||
.delete(`pricelist/volumes/${volume.id}`)
|
.delete(`pricelist/volumes/${volume.id}`)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
const index = drink.volumes.findIndex(a => a.id === volume.id);
|
const index = drink.volumes.findIndex((a) => a.id === volume.id);
|
||||||
if (index > -1) {
|
if (index > -1) {
|
||||||
drink.volumes.splice(index, 1);
|
drink.volumes.splice(index, 1);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(err => console.warn(err));
|
.catch((err) => console.warn(err));
|
||||||
},
|
},
|
||||||
getExtraIngredients() {
|
getExtraIngredients() {
|
||||||
axios
|
axios
|
||||||
|
@ -198,7 +204,7 @@ const actions = {
|
||||||
.then((response: AxiosResponse<FG.ExtraIngredient[]>) => {
|
.then((response: AxiosResponse<FG.ExtraIngredient[]>) => {
|
||||||
state.extraIngredients = response.data;
|
state.extraIngredients = response.data;
|
||||||
})
|
})
|
||||||
.catch(err => console.log(err));
|
.catch((err) => console.log(err));
|
||||||
},
|
},
|
||||||
setIngredient(ingredient: FG.Ingredient, volume: DrinkPriceVolume) {
|
setIngredient(ingredient: FG.Ingredient, volume: DrinkPriceVolume) {
|
||||||
axios
|
axios
|
||||||
|
@ -206,29 +212,29 @@ const actions = {
|
||||||
.then((response: AxiosResponse<FG.Ingredient>) => {
|
.then((response: AxiosResponse<FG.Ingredient>) => {
|
||||||
volume.ingredients.push(response.data);
|
volume.ingredients.push(response.data);
|
||||||
})
|
})
|
||||||
.catch(err => console.warn(err));
|
.catch((err) => console.warn(err));
|
||||||
},
|
},
|
||||||
updateIngredient(ingredient: FG.Ingredient, volume: DrinkPriceVolume) {
|
updateIngredient(ingredient: FG.Ingredient, volume: DrinkPriceVolume) {
|
||||||
axios
|
axios
|
||||||
.put(`pricelist/ingredients/${ingredient.id}`, ingredient)
|
.put(`pricelist/ingredients/${ingredient.id}`, ingredient)
|
||||||
.then((response: AxiosResponse<FG.Ingredient>) => {
|
.then((response: AxiosResponse<FG.Ingredient>) => {
|
||||||
const index = volume.ingredients.findIndex(a => a.id === response.data.id);
|
const index = volume.ingredients.findIndex((a) => a.id === response.data.id);
|
||||||
if (index > -1) {
|
if (index > -1) {
|
||||||
volume.ingredients[index] = response.data;
|
volume.ingredients[index] = response.data;
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(err => console.warn(err));
|
.catch((err) => console.warn(err));
|
||||||
},
|
},
|
||||||
deleteIngredient(ingredient: FG.Ingredient, volume: DrinkPriceVolume) {
|
deleteIngredient(ingredient: FG.Ingredient, volume: DrinkPriceVolume) {
|
||||||
axios
|
axios
|
||||||
.delete(`pricelist/ingredients/${ingredient.id}`)
|
.delete(`pricelist/ingredients/${ingredient.id}`)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
const index = volume.ingredients.findIndex(a => a.id === ingredient.id);
|
const index = volume.ingredients.findIndex((a) => a.id === ingredient.id);
|
||||||
if (index > -1) {
|
if (index > -1) {
|
||||||
volume.ingredients.splice(index, 1);
|
volume.ingredients.splice(index, 1);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(err => console.warn(err));
|
.catch((err) => console.warn(err));
|
||||||
},
|
},
|
||||||
getDrinkTypes() {
|
getDrinkTypes() {
|
||||||
axios
|
axios
|
||||||
|
@ -236,38 +242,38 @@ const actions = {
|
||||||
.then((response: AxiosResponse<FG.DrinkType[]>) => {
|
.then((response: AxiosResponse<FG.DrinkType[]>) => {
|
||||||
state.drinkTypes = response.data;
|
state.drinkTypes = response.data;
|
||||||
})
|
})
|
||||||
.catch(err => console.warn(err));
|
.catch((err) => console.warn(err));
|
||||||
},
|
},
|
||||||
setDrink(drink: FG.Drink) {
|
setDrink(drink: FG.Drink) {
|
||||||
axios
|
axios
|
||||||
.post('pricelist/drinks', drink)
|
.post('pricelist/drinks', drink)
|
||||||
.then((response: AxiosResponse<FG.Drink>) => {
|
.then((response: AxiosResponse<FG.Drink>) => {
|
||||||
state.drinks.push(new Drink(response.data));
|
state.drinks.push(new Drink(response.data));
|
||||||
const drink = state.drinks.find(a => a.id === response.data.id);
|
const drink = state.drinks.find((a) => a.id === response.data.id);
|
||||||
response.data.volumes.forEach(volume => {
|
response.data.volumes.forEach((volume) => {
|
||||||
drink?.volumes.push(new DrinkPriceVolume(volume, drink));
|
drink?.volumes.push(new DrinkPriceVolume(volume, drink));
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
.catch(err => console.warn(err));
|
.catch((err) => console.warn(err));
|
||||||
},
|
},
|
||||||
updateDrink(drink: Drink) {
|
updateDrink(drink: Drink) {
|
||||||
axios
|
axios
|
||||||
.put(`pricelist/drinks/${drink.id}`, {
|
.put(`pricelist/drinks/${drink.id}`, {
|
||||||
...drink,
|
...drink,
|
||||||
cost_price_pro_volume: drink.cost_price_pro_volume?.value
|
cost_price_pro_volume: drink.cost_price_pro_volume?.value,
|
||||||
})
|
})
|
||||||
.catch(err => console.warn(err));
|
.catch((err) => console.warn(err));
|
||||||
},
|
},
|
||||||
deleteDrink(drink: Drink) {
|
deleteDrink(drink: Drink) {
|
||||||
axios
|
axios
|
||||||
.delete(`pricelist/drinks/${drink.id}`)
|
.delete(`pricelist/drinks/${drink.id}`)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
const index = state.drinks.findIndex(a => a.id === drink.id);
|
const index = state.drinks.findIndex((a) => a.id === drink.id);
|
||||||
if (index > -1) {
|
if (index > -1) {
|
||||||
state.drinks.splice(index, 1);
|
state.drinks.splice(index, 1);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(err => console.warn(err));
|
.catch((err) => console.warn(err));
|
||||||
},
|
},
|
||||||
setExtraIngredient(ingredient: FG.ExtraIngredient) {
|
setExtraIngredient(ingredient: FG.ExtraIngredient) {
|
||||||
axios
|
axios
|
||||||
|
@ -275,42 +281,42 @@ const actions = {
|
||||||
.then((response: AxiosResponse<FG.ExtraIngredient>) => {
|
.then((response: AxiosResponse<FG.ExtraIngredient>) => {
|
||||||
state.extraIngredients.push(response.data);
|
state.extraIngredients.push(response.data);
|
||||||
})
|
})
|
||||||
.catch(err => console.warn(err));
|
.catch((err) => console.warn(err));
|
||||||
},
|
},
|
||||||
updateExtraIngredient(ingredient: FG.ExtraIngredient) {
|
updateExtraIngredient(ingredient: FG.ExtraIngredient) {
|
||||||
axios
|
axios
|
||||||
.put(`pricelist/ingredients/extraIngredients/${ingredient.id}`, ingredient)
|
.put(`pricelist/ingredients/extraIngredients/${ingredient.id}`, ingredient)
|
||||||
.then((response: AxiosResponse<FG.ExtraIngredient>) => {
|
.then((response: AxiosResponse<FG.ExtraIngredient>) => {
|
||||||
const index = state.extraIngredients.findIndex(a => a.id === ingredient.id);
|
const index = state.extraIngredients.findIndex((a) => a.id === ingredient.id);
|
||||||
if (index > -1) {
|
if (index > -1) {
|
||||||
state.extraIngredients[index] = response.data;
|
state.extraIngredients[index] = response.data;
|
||||||
} else {
|
} else {
|
||||||
state.extraIngredients.push(response.data);
|
state.extraIngredients.push(response.data);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(err => console.warn(err));
|
.catch((err) => console.warn(err));
|
||||||
},
|
},
|
||||||
deleteExtraIngredient(ingredient: FG.ExtraIngredient) {
|
deleteExtraIngredient(ingredient: FG.ExtraIngredient) {
|
||||||
axios
|
axios
|
||||||
.delete(`pricelist/ingredients/extraIngredients/${ingredient.id}`)
|
.delete(`pricelist/ingredients/extraIngredients/${ingredient.id}`)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
const index = state.extraIngredients.findIndex(a => a.id === ingredient.id);
|
const index = state.extraIngredients.findIndex((a) => a.id === ingredient.id);
|
||||||
if (index > -1) {
|
if (index > -1) {
|
||||||
state.extraIngredients.splice(index, 1);
|
state.extraIngredients.splice(index, 1);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(err => console.warn(err));
|
.catch((err) => console.warn(err));
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
const getters = {};
|
const getters = {};
|
||||||
|
|
||||||
function create_min_prices(drink: Drink, volume: DrinkPriceVolume, percentage: number) {
|
function create_min_prices(drink: Drink, volume: DrinkPriceVolume, percentage: number) {
|
||||||
if (drink.cost_price_pro_volume?.value) {
|
if (drink.cost_price_pro_volume?.value) {
|
||||||
if (volume.ingredients.every(ingredient => !!ingredient.drink_ingredient)) {
|
if (volume.ingredients.every((ingredient) => !!ingredient.drink_ingredient)) {
|
||||||
return computed<number>(() => {
|
return computed<number>(() => {
|
||||||
let retVal = (drink.cost_price_pro_volume?.value || 0) * (volume.volume?.value || 0);
|
let retVal = (drink.cost_price_pro_volume?.value || 0) * (volume.volume?.value || 0);
|
||||||
volume.ingredients.forEach(ingredient => {
|
volume.ingredients.forEach((ingredient) => {
|
||||||
if (ingredient.extra_ingredient) {
|
if (ingredient.extra_ingredient) {
|
||||||
retVal += ingredient.extra_ingredient.price;
|
retVal += ingredient.extra_ingredient.price;
|
||||||
}
|
}
|
||||||
|
@ -328,10 +334,10 @@ function create_min_prices(drink: Drink, volume: DrinkPriceVolume, percentage: n
|
||||||
} else {
|
} else {
|
||||||
return computed<number>(() => {
|
return computed<number>(() => {
|
||||||
let retVal = 0;
|
let retVal = 0;
|
||||||
volume.ingredients.forEach(ingredient => {
|
volume.ingredients.forEach((ingredient) => {
|
||||||
if (ingredient.drink_ingredient) {
|
if (ingredient.drink_ingredient) {
|
||||||
const _drink = state.drinks.find(
|
const _drink = state.drinks.find(
|
||||||
a => a.id === ingredient.drink_ingredient?.drink_ingredient?.id
|
(a) => a.id === ingredient.drink_ingredient?.drink_ingredient?.id
|
||||||
);
|
);
|
||||||
retVal += ingredient.drink_ingredient.volume * (_drink?.cost_price_pro_volume.value || 0);
|
retVal += ingredient.drink_ingredient.volume * (_drink?.cost_price_pro_volume.value || 0);
|
||||||
}
|
}
|
||||||
|
@ -348,5 +354,5 @@ export { create_min_prices, DrinkPriceVolume, MinPrice, Drink };
|
||||||
export default {
|
export default {
|
||||||
state,
|
state,
|
||||||
actions,
|
actions,
|
||||||
getters
|
getters,
|
||||||
};
|
};
|
||||||
|
|
|
@ -10,7 +10,7 @@ export interface DrinkInterface {
|
||||||
|
|
||||||
const state: DrinkInterface = {
|
const state: DrinkInterface = {
|
||||||
drinkTypes: [],
|
drinkTypes: [],
|
||||||
drinks: []
|
drinks: [],
|
||||||
};
|
};
|
||||||
|
|
||||||
const mutations: MutationTree<DrinkInterface> = {
|
const mutations: MutationTree<DrinkInterface> = {
|
||||||
|
@ -18,7 +18,7 @@ const mutations: MutationTree<DrinkInterface> = {
|
||||||
state.drinkTypes = drinkTypes;
|
state.drinkTypes = drinkTypes;
|
||||||
},
|
},
|
||||||
setDrinkType(state, drinkType: FG.DrinkType) {
|
setDrinkType(state, drinkType: FG.DrinkType) {
|
||||||
const item = state.drinkTypes.find(item => item.id == drinkType.id);
|
const item = state.drinkTypes.find((item) => item.id == drinkType.id);
|
||||||
if (item) {
|
if (item) {
|
||||||
item.name = drinkType.name;
|
item.name = drinkType.name;
|
||||||
}
|
}
|
||||||
|
@ -27,20 +27,20 @@ const mutations: MutationTree<DrinkInterface> = {
|
||||||
state.drinkTypes.unshift(drinkType);
|
state.drinkTypes.unshift(drinkType);
|
||||||
},
|
},
|
||||||
removeDrinkType(state, id: number) {
|
removeDrinkType(state, id: number) {
|
||||||
const index = state.drinkTypes.findIndex(item => item.id == id);
|
const index = state.drinkTypes.findIndex((item) => item.id == id);
|
||||||
state.drinkTypes.splice(index, 1);
|
state.drinkTypes.splice(index, 1);
|
||||||
},
|
},
|
||||||
setDrinks(state, drinks: FG.Drink[]) {
|
setDrinks(state, drinks: FG.Drink[]) {
|
||||||
state.drinks = drinks
|
state.drinks = drinks;
|
||||||
},
|
},
|
||||||
setDrink(state, drink: FG.Drink) {
|
setDrink(state, drink: FG.Drink) {
|
||||||
const index = state.drinks.findIndex(item => item.id = drink.id)
|
const index = state.drinks.findIndex((item) => (item.id = drink.id));
|
||||||
if (index) {
|
if (index) {
|
||||||
state.drinks[index] = drink
|
state.drinks[index] = drink;
|
||||||
} else {
|
} else {
|
||||||
state.drinks.push(drink)
|
state.drinks.push(drink);
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
const actions: ActionTree<DrinkInterface, StateInterface> = {
|
const actions: ActionTree<DrinkInterface, StateInterface> = {
|
||||||
|
@ -50,7 +50,7 @@ const actions: ActionTree<DrinkInterface, StateInterface> = {
|
||||||
.then((response: AxiosResponse<FG.DrinkType[]>) => {
|
.then((response: AxiosResponse<FG.DrinkType[]>) => {
|
||||||
commit('setDrinkTypes', response.data);
|
commit('setDrinkTypes', response.data);
|
||||||
})
|
})
|
||||||
.catch(err => console.warn(err));
|
.catch((err) => console.warn(err));
|
||||||
},
|
},
|
||||||
addDrinkType({ commit }, data) {
|
addDrinkType({ commit }, data) {
|
||||||
axios
|
axios
|
||||||
|
@ -58,7 +58,7 @@ const actions: ActionTree<DrinkInterface, StateInterface> = {
|
||||||
.then((response: AxiosResponse<FG.DrinkType>) => {
|
.then((response: AxiosResponse<FG.DrinkType>) => {
|
||||||
commit('addDrinkType', response.data);
|
commit('addDrinkType', response.data);
|
||||||
})
|
})
|
||||||
.catch(err => {
|
.catch((err) => {
|
||||||
console.warn(err);
|
console.warn(err);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
@ -68,7 +68,7 @@ const actions: ActionTree<DrinkInterface, StateInterface> = {
|
||||||
.then(() => {
|
.then(() => {
|
||||||
commit('removeDrinkType', data);
|
commit('removeDrinkType', data);
|
||||||
})
|
})
|
||||||
.catch(err => console.warn(err));
|
.catch((err) => console.warn(err));
|
||||||
},
|
},
|
||||||
changeDrinkTypeName({ commit }, drinkType: FG.DrinkType) {
|
changeDrinkTypeName({ commit }, drinkType: FG.DrinkType) {
|
||||||
axios
|
axios
|
||||||
|
@ -76,22 +76,24 @@ const actions: ActionTree<DrinkInterface, StateInterface> = {
|
||||||
.then(() => {
|
.then(() => {
|
||||||
commit('setDrinkType', drinkType);
|
commit('setDrinkType', drinkType);
|
||||||
})
|
})
|
||||||
.catch(err => console.warn(err));
|
.catch((err) => console.warn(err));
|
||||||
},
|
},
|
||||||
getDrinks({commit}) {
|
getDrinks({ commit }) {
|
||||||
axios.get('/pricelist/drinks')
|
axios
|
||||||
|
.get('/pricelist/drinks')
|
||||||
.then((response: AxiosResponse<FG.Drink[]>) => {
|
.then((response: AxiosResponse<FG.Drink[]>) => {
|
||||||
commit('setDrinks', response.data)
|
commit('setDrinks', response.data);
|
||||||
})
|
})
|
||||||
.catch(err => console.warn(err))
|
.catch((err) => console.warn(err));
|
||||||
},
|
},
|
||||||
createDrink({commit}, data) {
|
createDrink({ commit }, data) {
|
||||||
axios.post('/pricelist/drinks', data)
|
axios
|
||||||
|
.post('/pricelist/drinks', data)
|
||||||
.then((response: AxiosResponse<FG.Drink>) => {
|
.then((response: AxiosResponse<FG.Drink>) => {
|
||||||
commit('setDrink', response.data)
|
commit('setDrink', response.data);
|
||||||
})
|
})
|
||||||
.catch(err => console.warn(err))
|
.catch((err) => console.warn(err));
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
const getters: GetterTree<DrinkInterface, StateInterface> = {};
|
const getters: GetterTree<DrinkInterface, StateInterface> = {};
|
||||||
|
|
||||||
|
@ -100,7 +102,7 @@ const schedule: Module<DrinkInterface, StateInterface> = {
|
||||||
state,
|
state,
|
||||||
mutations,
|
mutations,
|
||||||
actions,
|
actions,
|
||||||
getters
|
getters,
|
||||||
};
|
};
|
||||||
|
|
||||||
export default schedule;
|
export default schedule;
|
||||||
|
|
Loading…
Reference in New Issue