Compare commits
	
		
			No commits in common. "7f33a44d94b792cfb88dd500f11e74eab95dc705" and "f5c6bcff6f482a3fc919ab7cb359e5098b0a4496" have entirely different histories.
		
	
	
		
			7f33a44d94
			...
			f5c6bcff6f
		
	
		| 
						 | 
					@ -23,13 +23,11 @@ declare namespace FG {
 | 
				
			||||||
  interface DrinkPrice {
 | 
					  interface DrinkPrice {
 | 
				
			||||||
    id: number;
 | 
					    id: number;
 | 
				
			||||||
    price: number;
 | 
					    price: number;
 | 
				
			||||||
    volume: Array<DrinkPriceVolume>;
 | 
					 | 
				
			||||||
    public: boolean;
 | 
					    public: boolean;
 | 
				
			||||||
    description?: string;
 | 
					    description?: string;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  interface DrinkPriceVolume {
 | 
					  interface DrinkPriceVolume {
 | 
				
			||||||
    id: number;
 | 
					    id: number;
 | 
				
			||||||
    drink: Array<Drink>;
 | 
					 | 
				
			||||||
    volume: number;
 | 
					    volume: number;
 | 
				
			||||||
    min_prices: Array<MinPrices>;
 | 
					    min_prices: Array<MinPrices>;
 | 
				
			||||||
    prices: Array<DrinkPrice>;
 | 
					    prices: Array<DrinkPrice>;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -169,7 +169,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<script lang="ts">
 | 
					<script lang="ts">
 | 
				
			||||||
import DrinkPriceVolumes from '../components/CalculationTable/DrinkPriceVolumes.vue';
 | 
					import DrinkPriceVolumes from '../components/CalculationTable/DrinkPriceVolumes.vue';
 | 
				
			||||||
import { defineComponent, onBeforeMount, ComputedRef, computed, ref } from 'vue';
 | 
					import { defineComponent, onMounted, ComputedRef, computed, ref } from 'vue';
 | 
				
			||||||
import { Drink, usePricelistStore, DrinkPriceVolume } from '../store';
 | 
					import { Drink, usePricelistStore, DrinkPriceVolume } from '../store';
 | 
				
			||||||
import MinPriceSetting from '../components/MinPriceSetting.vue';
 | 
					import MinPriceSetting from '../components/MinPriceSetting.vue';
 | 
				
			||||||
import { api, hasPermission } from '@flaschengeist/api';
 | 
					import { api, hasPermission } from '@flaschengeist/api';
 | 
				
			||||||
| 
						 | 
					@ -206,7 +206,7 @@ export default defineComponent({
 | 
				
			||||||
  setup(props) {
 | 
					  setup(props) {
 | 
				
			||||||
    const store = usePricelistStore();
 | 
					    const store = usePricelistStore();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    onBeforeMount(() => {
 | 
					    onMounted(() => {
 | 
				
			||||||
      //void store.getDrinks();
 | 
					      //void store.getDrinks();
 | 
				
			||||||
      onRequest({
 | 
					      onRequest({
 | 
				
			||||||
        pagination: pagination.value,
 | 
					        pagination: pagination.value,
 | 
				
			||||||
| 
						 | 
					@ -404,17 +404,16 @@ export default defineComponent({
 | 
				
			||||||
          offset: startRow,
 | 
					          offset: startRow,
 | 
				
			||||||
          limit: fetchCount,
 | 
					          limit: fetchCount,
 | 
				
			||||||
          descending,
 | 
					          descending,
 | 
				
			||||||
          search_name: props.filter?.value,
 | 
					          search_name: props.filter.value,
 | 
				
			||||||
          search_key: props.filter?.key,
 | 
					          search_key: props.filter.key,
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
        pagination.value.page = page;
 | 
					        pagination.value.page = page;
 | 
				
			||||||
        pagination.value.rowsPerPage = rowsPerPage;
 | 
					        pagination.value.rowsPerPage = rowsPerPage;
 | 
				
			||||||
        pagination.value.sortBy = sortBy;
 | 
					        pagination.value.sortBy = sortBy;
 | 
				
			||||||
        pagination.value.descending = descending;
 | 
					        pagination.value.descending = descending;
 | 
				
			||||||
        console.log('result', result.count);
 | 
					 | 
				
			||||||
        if (result.count) pagination.value.rowsNumber = result.count;
 | 
					        if (result.count) pagination.value.rowsNumber = result.count;
 | 
				
			||||||
      } catch (error) {
 | 
					      } catch (error) {
 | 
				
			||||||
        console.warn(error);
 | 
					        //..
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      loading.value = false;
 | 
					      loading.value = false;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -43,7 +43,7 @@
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
      <div class="q-pa-sm">
 | 
					      <div class="q-pa-sm">
 | 
				
			||||||
        <div v-for="(price, index) in volume.prices" :key="price.id">
 | 
					        <div v-for="(price, index) in volume.prices" :key="price.id">
 | 
				
			||||||
          <div v-if="isPublic(price, volume)" class="fit row justify-around q-py-sm">
 | 
					          <div class="fit row justify-around q-py-sm">
 | 
				
			||||||
            <div
 | 
					            <div
 | 
				
			||||||
              v-if="!editable || !hasPermission(PERMISSIONS.EDIT_PRICE)"
 | 
					              v-if="!editable || !hasPermission(PERMISSIONS.EDIT_PRICE)"
 | 
				
			||||||
              class="text-body1 col-3"
 | 
					              class="text-body1 col-3"
 | 
				
			||||||
| 
						 | 
					@ -294,15 +294,6 @@ export default defineComponent({
 | 
				
			||||||
      emit('update:modelValue', volumes.value);
 | 
					      emit('update:modelValue', volumes.value);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    function isPublic(price: FG.DrinkPrice, drink) {
 | 
					 | 
				
			||||||
      console.log('drink', drink);
 | 
					 | 
				
			||||||
      if (props.public) {
 | 
					 | 
				
			||||||
        console.log(price);
 | 
					 | 
				
			||||||
        return price.public;
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
      return true;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    const isUnderMinPrice = computed(() => {
 | 
					    const isUnderMinPrice = computed(() => {
 | 
				
			||||||
      if (volumes.value) {
 | 
					      if (volumes.value) {
 | 
				
			||||||
        const this_volume = volumes.value.find((a) => a.id === volume.value);
 | 
					        const this_volume = volumes.value.find((a) => a.id === volume.value);
 | 
				
			||||||
| 
						 | 
					@ -337,7 +328,6 @@ export default defineComponent({
 | 
				
			||||||
      isUnderMinPrice,
 | 
					      isUnderMinPrice,
 | 
				
			||||||
      hasPermission,
 | 
					      hasPermission,
 | 
				
			||||||
      PERMISSIONS,
 | 
					      PERMISSIONS,
 | 
				
			||||||
      isPublic,
 | 
					 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5,13 +5,11 @@
 | 
				
			||||||
    :rows="drinks"
 | 
					    :rows="drinks"
 | 
				
			||||||
    :visible-columns="visibleColumns"
 | 
					    :visible-columns="visibleColumns"
 | 
				
			||||||
    :filter="search"
 | 
					    :filter="search"
 | 
				
			||||||
 | 
					    :filter-method="filter"
 | 
				
			||||||
    dense
 | 
					    dense
 | 
				
			||||||
    v-model:pagination="pagination"
 | 
					    :pagination="pagination"
 | 
				
			||||||
    :fullscreen="fullscreen"
 | 
					    :fullscreen="fullscreen"
 | 
				
			||||||
    @request="onRequest"
 | 
					 | 
				
			||||||
  >
 | 
					  >
 | 
				
			||||||
    <!--
 | 
					 | 
				
			||||||
    :filter-method="filter"-->
 | 
					 | 
				
			||||||
    <template #top-right>
 | 
					    <template #top-right>
 | 
				
			||||||
      <div class="row justify-end q-gutter-sm">
 | 
					      <div class="row justify-end q-gutter-sm">
 | 
				
			||||||
        <search-input v-model="search" :keys="options" />
 | 
					        <search-input v-model="search" :keys="options" />
 | 
				
			||||||
| 
						 | 
					@ -111,11 +109,11 @@ export default defineComponent({
 | 
				
			||||||
      if (!props.public) {
 | 
					      if (!props.public) {
 | 
				
			||||||
        user.value = useMainStore().currentUser.userid;
 | 
					        user.value = useMainStore().currentUser.userid;
 | 
				
			||||||
        void store.getPriceListColumnOrder(user.value);
 | 
					        void store.getPriceListColumnOrder(user.value);
 | 
				
			||||||
 | 
					        void store.getDrinks();
 | 
				
			||||||
        void store.getPriceCalcColumn(user.value);
 | 
					        void store.getPriceCalcColumn(user.value);
 | 
				
			||||||
      } else {
 | 
					      } else {
 | 
				
			||||||
        user.value = '';
 | 
					        user.value = '';
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      onRequest({ pagination: pagination.value, filter: { limit: 10 } });
 | 
					 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const _order = ref<Array<Order>>([
 | 
					    const _order = ref<Array<Order>>([
 | 
				
			||||||
| 
						 | 
					@ -172,9 +170,7 @@ export default defineComponent({
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
        name: 'name',
 | 
					        name: 'name',
 | 
				
			||||||
        label: 'Name',
 | 
					        label: 'Name',
 | 
				
			||||||
        //field: 'name',
 | 
					        field: 'name',
 | 
				
			||||||
        field: 'volume',
 | 
					 | 
				
			||||||
        format: (val: FG.DrinkPriceVolume) => val.drink.name,
 | 
					 | 
				
			||||||
        sortable: true,
 | 
					        sortable: true,
 | 
				
			||||||
        filterable: true,
 | 
					        filterable: true,
 | 
				
			||||||
        align: 'left',
 | 
					        align: 'left',
 | 
				
			||||||
| 
						 | 
					@ -182,22 +178,20 @@ export default defineComponent({
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
        name: 'type',
 | 
					        name: 'type',
 | 
				
			||||||
        label: 'Kategorie',
 | 
					        label: 'Kategorie',
 | 
				
			||||||
        //field: 'type',
 | 
					        field: 'type',
 | 
				
			||||||
        field: 'volume',
 | 
					 | 
				
			||||||
        sortable: true,
 | 
					        sortable: true,
 | 
				
			||||||
        filterable: true,
 | 
					        filterable: true,
 | 
				
			||||||
        format: (val: FG.DrinkPriceVolume) => val.drink.type.name,
 | 
					        format: (val: FG.DrinkType) => val.name,
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
        name: 'tags',
 | 
					        name: 'tags',
 | 
				
			||||||
        label: 'Tags',
 | 
					        label: 'Tags',
 | 
				
			||||||
        //field: 'tags',
 | 
					        field: 'tags',
 | 
				
			||||||
        field: 'volume',
 | 
					 | 
				
			||||||
        filterable: true,
 | 
					        filterable: true,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        format: (val: FG.DrinkPriceVolume) => {
 | 
					        format: (val: Array<FG.Tag>) => {
 | 
				
			||||||
          let retVal = '';
 | 
					          let retVal = '';
 | 
				
			||||||
          val.drink.tags.forEach((tag, index) => {
 | 
					          val.forEach((tag, index) => {
 | 
				
			||||||
            if (index >= val.length - 1 && index > 0) {
 | 
					            if (index >= val.length - 1 && index > 0) {
 | 
				
			||||||
              retVal += ', ';
 | 
					              retVal += ', ';
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
| 
						 | 
					@ -209,11 +203,10 @@ export default defineComponent({
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
        name: 'volume',
 | 
					        name: 'volume',
 | 
				
			||||||
        label: 'Inhalt',
 | 
					        label: 'Inhalt',
 | 
				
			||||||
        //field: 'volume',
 | 
					 | 
				
			||||||
        field: 'volume',
 | 
					        field: 'volume',
 | 
				
			||||||
        filterable: true,
 | 
					        filterable: true,
 | 
				
			||||||
        sortable: true,
 | 
					        sortable: true,
 | 
				
			||||||
        format: (val: FG.DrinkPriceVolume) => `${val.volume.toFixed(3)}L`,
 | 
					        format: (val: number) => `${val.toFixed(3)}L`,
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
        name: 'price',
 | 
					        name: 'price',
 | 
				
			||||||
| 
						 | 
					@ -304,48 +297,9 @@ export default defineComponent({
 | 
				
			||||||
      label: '',
 | 
					      label: '',
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    interface PaginationInterface {
 | 
					 | 
				
			||||||
      sortBy: string;
 | 
					 | 
				
			||||||
      descending: boolean;
 | 
					 | 
				
			||||||
      page: number;
 | 
					 | 
				
			||||||
      rowsPerPage: number;
 | 
					 | 
				
			||||||
      rowsNumber: number;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    async function onRequest(props: { pagination: PaginationInterface; filter?: Search }) {
 | 
					 | 
				
			||||||
      const { page, rowsPerPage, sortBy, descending } = props.pagination;
 | 
					 | 
				
			||||||
      loading.value = true;
 | 
					 | 
				
			||||||
      //console.log('search_keys', search_keys);
 | 
					 | 
				
			||||||
      const fetchCount = rowsPerPage === 0 ? pagination.value.rowsNumber : rowsPerPage;
 | 
					 | 
				
			||||||
      const startRow = (page - 1) * rowsPerPage;
 | 
					 | 
				
			||||||
      console.log('descending', descending);
 | 
					 | 
				
			||||||
      try {
 | 
					 | 
				
			||||||
        const result = await store.getPricelist({
 | 
					 | 
				
			||||||
          offset: startRow,
 | 
					 | 
				
			||||||
          limit: fetchCount,
 | 
					 | 
				
			||||||
          descending: descending ? true : undefined,
 | 
					 | 
				
			||||||
          search_name: props.filter?.value,
 | 
					 | 
				
			||||||
          search_key: props.filter?.key,
 | 
					 | 
				
			||||||
          sortBy: sortBy,
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
        pagination.value.page = page;
 | 
					 | 
				
			||||||
        pagination.value.rowsPerPage = rowsPerPage;
 | 
					 | 
				
			||||||
        pagination.value.sortBy = sortBy;
 | 
					 | 
				
			||||||
        pagination.value.descending = descending;
 | 
					 | 
				
			||||||
        console.log('result', result);
 | 
					 | 
				
			||||||
        if (result) pagination.value.rowsNumber = result;
 | 
					 | 
				
			||||||
      } catch (error) {
 | 
					 | 
				
			||||||
        console.warn(error);
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
      loading.value = false;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    const loading = ref(false);
 | 
					 | 
				
			||||||
    const pagination = ref({
 | 
					    const pagination = ref({
 | 
				
			||||||
      sortBy: 'name',
 | 
					      sortBy: 'name',
 | 
				
			||||||
      rowsPerPage: 10,
 | 
					      rowsPerPage: 10,
 | 
				
			||||||
      rowsNumber: 10,
 | 
					 | 
				
			||||||
      descending: false,
 | 
					 | 
				
			||||||
      page: 1,
 | 
					 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const fullscreen = ref(false);
 | 
					    const fullscreen = ref(false);
 | 
				
			||||||
| 
						 | 
					@ -360,8 +314,6 @@ export default defineComponent({
 | 
				
			||||||
      filter,
 | 
					      filter,
 | 
				
			||||||
      pagination,
 | 
					      pagination,
 | 
				
			||||||
      fullscreen,
 | 
					      fullscreen,
 | 
				
			||||||
      loading,
 | 
					 | 
				
			||||||
      onRequest,
 | 
					 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										51
									
								
								src/store.ts
								
								
								
								
							
							
						
						
									
										51
									
								
								src/store.ts
								
								
								
								
							| 
						 | 
					@ -76,7 +76,6 @@ export const usePricelistStore = defineStore({
 | 
				
			||||||
  state: () => ({
 | 
					  state: () => ({
 | 
				
			||||||
    drinkTypes: [] as Array<FG.DrinkType>,
 | 
					    drinkTypes: [] as Array<FG.DrinkType>,
 | 
				
			||||||
    drinks: [] as Array<Drink>,
 | 
					    drinks: [] as Array<Drink>,
 | 
				
			||||||
    pricelist: [] as Array<FG.DrinkPrice>,
 | 
					 | 
				
			||||||
    extraIngredients: [] as Array<FG.ExtraIngredient>,
 | 
					    extraIngredients: [] as Array<FG.ExtraIngredient>,
 | 
				
			||||||
    min_prices: [] as Array<number>,
 | 
					    min_prices: [] as Array<number>,
 | 
				
			||||||
    tags: [] as Array<FG.Tag>,
 | 
					    tags: [] as Array<FG.Tag>,
 | 
				
			||||||
| 
						 | 
					@ -181,12 +180,9 @@ export const usePricelistStore = defineStore({
 | 
				
			||||||
    }) {
 | 
					    }) {
 | 
				
			||||||
      if (!filter) filter = { limit: 10 };
 | 
					      if (!filter) filter = { limit: 10 };
 | 
				
			||||||
      console.log('filter_api', filter);
 | 
					      console.log('filter_api', filter);
 | 
				
			||||||
      const { data } = await api.get<{ drinks: Array<FG.Drink>; count: number }>(
 | 
					      const { data } = await api.get<Array<FG.Drink>>('pricelist/drinks', {
 | 
				
			||||||
        'pricelist/drinks',
 | 
					        params: filter,
 | 
				
			||||||
        {
 | 
					      });
 | 
				
			||||||
          params: filter,
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      );
 | 
					 | 
				
			||||||
      const drinks = [];
 | 
					      const drinks = [];
 | 
				
			||||||
      data.drinks.forEach((drink) => {
 | 
					      data.drinks.forEach((drink) => {
 | 
				
			||||||
        const _drink = new Drink(drink);
 | 
					        const _drink = new Drink(drink);
 | 
				
			||||||
| 
						 | 
					@ -199,25 +195,12 @@ export const usePricelistStore = defineStore({
 | 
				
			||||||
      calc_all_min_prices(drinks, this.min_prices);
 | 
					      calc_all_min_prices(drinks, this.min_prices);
 | 
				
			||||||
      return drinks;
 | 
					      return drinks;
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    async getPricelist(filter: {
 | 
					    sortPrices(volume: DrinkPriceVolume) {
 | 
				
			||||||
      limit?: number;
 | 
					      volume.prices.sort((a, b) => {
 | 
				
			||||||
      offset?: number;
 | 
					        if (a.price > b.price) return 1;
 | 
				
			||||||
      descending?: boolean;
 | 
					        if (b.price > a.price) return -1;
 | 
				
			||||||
      search_name?: string;
 | 
					        return 0;
 | 
				
			||||||
      search_key?: string;
 | 
					      });
 | 
				
			||||||
      sortBy?: string;
 | 
					 | 
				
			||||||
    }) {
 | 
					 | 
				
			||||||
      const { data } = await api.get<{ pricelist: Array<FG.DrinkPrice>; count: number }>(
 | 
					 | 
				
			||||||
        'pricelist/list',
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          params: filter,
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      );
 | 
					 | 
				
			||||||
      this.pricelist = [];
 | 
					 | 
				
			||||||
      console.log(data);
 | 
					 | 
				
			||||||
      this.pricelist = data.pricelist;
 | 
					 | 
				
			||||||
      console.log(this.pricelist);
 | 
					 | 
				
			||||||
      return data.count;
 | 
					 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    async deletePrice(price: FG.DrinkPrice) {
 | 
					    async deletePrice(price: FG.DrinkPrice) {
 | 
				
			||||||
      await api.delete(`pricelist/prices/${price.id}`);
 | 
					      await api.delete(`pricelist/prices/${price.id}`);
 | 
				
			||||||
| 
						 | 
					@ -361,7 +344,7 @@ export const usePricelistStore = defineStore({
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  getters: {
 | 
					  getters: {
 | 
				
			||||||
    /*pricelist() {
 | 
					    pricelist() {
 | 
				
			||||||
      const retVal: Array<Pricelist> = [];
 | 
					      const retVal: Array<Pricelist> = [];
 | 
				
			||||||
      this.drinks.forEach((drink) => {
 | 
					      this.drinks.forEach((drink) => {
 | 
				
			||||||
        drink.volumes.forEach((volume) => {
 | 
					        drink.volumes.forEach((volume) => {
 | 
				
			||||||
| 
						 | 
					@ -379,20 +362,6 @@ export const usePricelistStore = defineStore({
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
      });
 | 
					      });
 | 
				
			||||||
      return retVal;
 | 
					      return retVal;
 | 
				
			||||||
    },*/
 | 
					 | 
				
			||||||
    computed_pricelist() {
 | 
					 | 
				
			||||||
      const retVal: Array<Pricelist> = [];
 | 
					 | 
				
			||||||
      this.pricelist.forEach((price) => {
 | 
					 | 
				
			||||||
        retVal.push({
 | 
					 | 
				
			||||||
          name: price.volume.drink.name,
 | 
					 | 
				
			||||||
          type: <FG.DrinkType>price.volume.drink.type,
 | 
					 | 
				
			||||||
          tags: <Array<FG.Tag>>price.volume.drink.tags,
 | 
					 | 
				
			||||||
          volume: <number>price.volume.volume,
 | 
					 | 
				
			||||||
          public: price.public,
 | 
					 | 
				
			||||||
          price: price.price,
 | 
					 | 
				
			||||||
          description: <string>price.description,
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
      });
 | 
					 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue