import AdmVue from '@assets/js/adm-vue';
import initVue from '@assets/js/initVue';

import getNumbersFromStringWithMask from '@assets/js/getNumbersFromStringWithMask';
import { brazilCurrency, number } from '@assets/js/filters';
import TextWithVar from '@assets/js/valid-text-with-vars';
import dinamicPriceModels from '@assets/js/dinamicPriceModels';
import axiosApi from '@assets/js/axios-api';

const vm = new AdmVue({
  components: {
    BaseCard: () => import(/* webpackChunkName: "BaseCard" */ '@elements/BaseCard/index.vue'),
    BaseTabs: () => import(/* webpackChunkName: "BaseTabs" */ '@components/BaseTabs/index.vue'),
    HighlightEditor: () => import(/* webpackChunkName: "HighlightEditor" */ '@components/HighlightEditor/index.vue'),
    BasePopover: () => import(/* webpackChunkName: "BasePopover" */ '@elements/BasePopover/index.vue'),
    BaseInfo: () => import(/* webpackChunkName: "BaseInfo" */ '@elements/BaseInfo/index.vue'),
  },
  data() {
    return {
      configurations: {},
      customerGroups: {},
      table_parcels: {},
      updateComponent: 0,
      disableForm: false,
      increaseinput: true,
      tabs: [
        { text: 'Configurações', active: true },
        { text: 'Tabelas de preços', active: false },
      ],
      modelOptions: [
        { name: 'Completo', selected: true, flag: 'complete' },
        { name: 'Boleto', selected: false, flag: 'billet' },
        { name: 'Parcelado', selected: false, flag: 'parcel' },
        { name: 'Personalizado', selected: false, flag: 'custom' },
      ],
      //infoDiscount: 'A quantidade máxima de parcelas sem juros consiste em somar o número de parcelas sem juros com o número de parcelas com desconto, assim trazendo a quantidade máxima de parcelas sem juros, pois, as parcelas com desconto também são parcelas sem juros.',
      //infoIncrease: 'A quantidade máxima de parcelas com juros sempre será a quantidade total de parcelas, pois, os juros só irão se aplicar desde que as parcelas com desconto e sem juros não estiverem sendo usadas.',
      infoIncreaseImg: 'No exemplo acima temos a primeira e a segunda parcela sem juros, e por último a terceira parcela com juros aplicado. Caso o pedido seja finalizado utilizando o parcelamento em 1 ou 2 parcelas ambas serão sem juros, mas a partir da terceira parcela, os juros serão aplicados em todas elas, sendo assim teremos a quantidade máxima de parcelas com juros.',
     };
  },
  filters: {
    brazilCurrency,
  },
  watch: {},
  computed: {
    sendData() {
      return { ...this.configurations };
    },
    selectAll: {
      get() {
        const selectAll = this.customerGroups.filter(group => group.selected);
        return selectAll.length === this.customerGroups.length;

      },
      set(newValue) {
        const customerGroup = this.customerGroups.map(group => {
          group.selected = newValue;
          return group;
        });

        for (var customerGroupId in [...customerGroup]) {
          this.handleCheckBoxInput(customerGroup[customerGroupId]['customer_group_id']);
        }

        this.customerGroup = [...customerGroup];
      },
    },
    discountMask() {
      const percentage = Type_Desconto.Tp_Porcentagem;

      return this.configurations.discount_type == percentage ? 'percentage' : 'brazilCurrency';
    },
    selectedModel() {
      const { flag } = this.modelOptions.find(modelsItem => modelsItem.selected);

      this.handleTypeDiscount();

      return flag;
    },
    dinamicPrice() {
      if (!this.configurations.preco_dinamico_personalized || this.configurations.advanced_config == 1) {
        return;
      }
      
      this.changeInputVisibility();

      let parcel_number = this.configurations.parcel_number;
      let parcel_with_no_fees = this.configurations.parcel_with_no_fees;
      let parcel_with_discounts = this.configurations.parcel_with_discounts;
      let increase_value = String(this.configurations.increase_value).includes('%') ? String(this.configurations.increase_value).replace('%', '') : this.configurations.increase_value;
      let discount_parcels = String(this.configurations.discount_parcels_value).includes('%') ? String(this.configurations.discount_parcels_value).replace('%', '') : this.configurations.discount_parcels_value;
      let total_parcels = Number(parcel_with_no_fees) + Number(parcel_with_discounts);

      const dataPreview = {
        discountPrice: this.discountPrice != 0 ? brazilCurrency(this.discountPrice) : new Intl.NumberFormat('pt-BR', { style: 'currency', currency: 'BRL', }).format(0),
        parcelNumber: total_parcels,
        parcelPrice: brazilCurrency(this.parcelPrice),
        discountValue: getNumbersFromStringWithMask(String(this.configurations.discount_value)),
      };

      const parcelNumber = parcel_number,
        discountValue = getNumbersFromStringWithMask(String(this.configurations.discount_value)),
        discountParcelValue = getNumbersFromStringWithMask(String(this.configurations.discount_parcels_value)),
        increaseParcelvalue = getNumbersFromStringWithMask(String(this.configurations.increase_value)),
        discountType = this.configurations.discount_type,
        priceColor = this.price_color;

      const custom = this.replaceCustom(this.configurations.preco_dinamico_personalized, {
        discountPrice: `' . $preco_discount . '`,
        parcelNumber: parcelNumber,
        discountValue: discountValue ? this.configurations.discount_value : '0%',
        parcelWithNoFees: parcel_with_no_fees,
        parcelWithDiscount: parcel_with_discounts,
        discountParcelValue: discountParcelValue ? this.configurations.discount_parcels_value : '0%',
        increaseParcelvalue: increaseParcelvalue ? this.configurations.increase_value : '0%',
        parcel_with_increase:  this.parcelIncrease(parcelNumber, parcel_with_no_fees, parcel_with_discounts),
        price_parcel_with_no_fees:  brazilCurrency(this.parcelNoFees),
        price_parcel_with_discount:  brazilCurrency(this.parcelWithDiscount), 
        price_parcel_with_increase:  brazilCurrency(this.parcelWitIncrease),   
        total_parcel_with_no_fees:  Number(parcel_with_no_fees) + Number(parcel_with_discounts),
        total_parcel_with_fees: (Number(parcel_with_no_fees) + Number(parcel_with_discounts)) === Number(parcelNumber) ? 0 : parcelNumber,   
      });
      
      const customView = this.replaceCustomView(this.configurations.preco_dinamico_personalized, {
        discountPrice: `' . $preco_discount . '`,
        parcelNumber: parcelNumber,
        discountValue: discountValue ? this.configurations.discount_value : '0%',
        parcelWithNoFees: parcel_with_no_fees,
        parcelWithDiscount: parcel_with_discounts,
        discountParcelValue: discountParcelValue ? this.configurations.discount_parcels_value : '0%',
        increaseParcelvalue: increaseParcelvalue ? this.configurations.increase_value : '0%',
        parcel_with_increase:  this.parcelIncrease(parcelNumber, parcel_with_no_fees, parcel_with_discounts),
        price_parcel_with_no_fees:  brazilCurrency(this.parcelNoFees),
        price_parcel_with_discount:  brazilCurrency(this.parcelWithDiscount), 
        price_parcel_with_increase:  brazilCurrency(this.parcelWitIncrease),   
        total_parcel_with_no_fees:  Number(parcel_with_no_fees) + Number(parcel_with_discounts),
        total_parcel_with_fees: (Number(parcel_with_no_fees) + Number(parcel_with_discounts)) === Number(parcelNumber) ? 0 : parcelNumber, 
      });
      
      const customPromotion = this.replaceCustom(this.configurations.preco_dinamico_personalized, {
        discountPrice: `' . $preco_promo_discount . '`,
        parcelNumber: parcelNumber,
        parcelPrice: `' . $preco_parcelado_promo . '`,
        discountValue: discountValue ? this.configurations.discount_value : '0%',
        parcelWithNoFees: parcel_with_no_fees,
        parcelWithDiscount: parcel_with_discounts,
        discountParcelValue: discountParcelValue ? this.configurations.discount_parcels_value : '0%',
        increaseParcelvalue: increaseParcelvalue ? this.configurations.increase_value : '0%',
        parcel_with_increase:  this.parcelIncrease(parcelNumber, parcel_with_no_fees, parcel_with_discounts),
        price_parcel_with_no_fees:  brazilCurrency(this.parcelNoFees),
        price_parcel_with_discount:  brazilCurrency(this.parcelWithDiscount), 
        price_parcel_with_increase:  brazilCurrency(this.parcelWitIncrease), 
        total_parcel_with_no_fees:  Number(parcel_with_no_fees) + Number(parcel_with_discounts),
        total_parcel_with_fees: (Number(parcel_with_no_fees) + Number(parcel_with_discounts)) === Number(parcelNumber) ? 0 : parcelNumber, 
      });

      const customPreview = this.replaceCustom(this.configurations.preco_dinamico_personalized, {
        discountPrice: dataPreview.discountPrice,
        parcelNumber: parcelNumber,
        discountValue: dataPreview.discountValue ? this.configurations.discount_value : '0%',
        parcelWithNoFees: parcel_with_no_fees,
        parcelWithDiscount: parcel_with_discounts,
        discountParcelValue: discountParcelValue ? this.configurations.discount_parcels_value : '0%',
        increaseParcelvalue: increaseParcelvalue ? this.configurations.increase_value : '0%',
        parcel_with_increase:  this.parcelIncrease(parcelNumber, parcel_with_no_fees, parcel_with_discounts),
        price_parcel_with_no_fees:  brazilCurrency(this.parcelNoFees),
        price_parcel_with_discount:  brazilCurrency(this.parcelWithDiscount),
        price_parcel_with_increase:  brazilCurrency(this.parcelWitIncrease), 
        total_parcel_with_no_fees:  Number(parcel_with_no_fees) + Number(parcel_with_discounts),
        total_parcel_with_fees: (Number(parcel_with_no_fees) + Number(parcel_with_discounts)) === Number(parcelNumber) ? 0 : parcelNumber,  
      });
    
      const models = dinamicPriceModels({
        discountPrice: dataPreview.discountPrice,
        parcelNumber: dataPreview.parcelNumber,
        parcelPrice: dataPreview.parcelPrice,
        totalParcels: parcel_number,
        increaseValue: increase_value,
        parcel_with_discounts,
        parcel_with_no_fees,
        discount_parcels,
        priceColor,
        custom,
        customPromotion,
        customPreview,
        discountType,
        discountValue,
        customView,
      });

      const { preview, product, exibition } = models[this.selectedModel];
      this.configurations.futura_preco_dinamico_produto = product;
      this.configurations.futura_preco_dinamico_exibicoes = exibition;

      return preview;
    },
    parcelPrice() {
      this.setTableParcels();

      let parcel_with_no_fees = this.configurations.parcel_with_no_fees;
      let parcel_with_discounts = this.configurations.parcel_with_discounts;
      let total_parcels = Number(parcel_with_no_fees) + Number(parcel_with_discounts);

      let parcelPrice;

      if (parcel_with_no_fees != 0) {
        parcelPrice = 100 / total_parcels;
      } else {
        let numberParcels = this.configurations.parcel_number;
        let increaseValue = String(this.configurations.increase_value).includes('%') ? String(this.configurations.increase_value).replace('%', '') : String(this.configurations.increase_value);
        let discontParcelsValue = String(this.configurations.discount_parcels_value).includes('%') ? String(this.configurations.discount_parcels_value).replace('%', '') : String(this.configurations.discount_parcels_value);

        let total;

        if (parcel_with_discounts != 0) {
          total = 100 - (100 * (discontParcelsValue / 100));
          parcelPrice = total / parcel_with_discounts;
        } else {
          total = (100 * Math.pow((1 + (increaseValue / 100)), numberParcels)).toFixed(2);
          parcelPrice = total / numberParcels;
        }
      }
      return parcelPrice;

    },
    //PRICE PARCEL WITH NO FEES
    parcelNoFees() {
      let parcel_with_no_fees = Number(this.configurations.parcel_with_no_fees);
      let parcel_with_discounts = Number(this.configurations.parcel_with_discounts);
      let price = 100;   

      if(parcel_with_no_fees || parcel_with_discounts){
        let parcel_value =  price / (parcel_with_no_fees + parcel_with_discounts);
        return parcel_value.toFixed(2);
      }else{
        let parcel_value = '0';
        return parcel_value;
      }
    },
     //PRICE PARCEL WITH DISCOUNT
    parcelWithDiscount() {
      let parcel_with_discounts = Number(this.configurations.parcel_with_discounts);

      if(parcel_with_discounts){
        let discount_value = String(this.configurations.discount_parcels_value).includes('%') ? String(this.configurations.discount_parcels_value).replace('%', '').replace(',', '.') : String(this.configurations.discount_parcels_value);
        discount_value = parseFloat(discount_value);
        let price = 100;
        let total = price - (100 * (discount_value / 100));
        let parcel_value = total / parcel_with_discounts;
        return parcel_value.toFixed(2);
      }else{
        let parcel_value = '0';
        return parcel_value;
      }
    },
    //PRICE PARCEL WITH INCREASE
    parcelWitIncrease() {
      let number_parcels = Number(this.configurations.parcel_number);
      let parcel_with_discounts = Number(this.configurations.parcel_with_discounts);
      let parcel_with_no_fees = Number(this.configurations.parcel_with_no_fees);
      let total_parcel = number_parcels - (parcel_with_discounts + parcel_with_no_fees);

      if(total_parcel){  
      
        let increase_value = String(this.configurations.increase_value).includes('%') ? String(this.configurations.increase_value).replace('%', '').replace(',', '.') : String(this.configurations.increase_value);
        increase_value = parseFloat(increase_value);
        let price = 100;
        let total = (price * Math.pow((1 + (increase_value / 100)), number_parcels));
        let parcel_value = total / number_parcels;
        return parcel_value.toFixed(2);
     }else{
      let parcel_value = '0';
      return parcel_value;
     }
    },
    discountPrice() {
      let discount = this.configurations.discount_value;


      if (typeof this.configurations.discount_value === 'string') {
        discount = getNumbersFromStringWithMask(this.configurations.discount_value);
      }

      let discountPrice;
      if (this.discountMask === 'brazilCurrency') {
        discountPrice = 100 - discount;
      } else {
        discountPrice = 100 - (100 * discount) / 100;
      }

      return discountPrice;
    },
    // TOTAl PRICE 
    stringContainsTotalPrice() {
      const priceDinamicPersonalized = this.configurations.preco_dinamico_personalized;
      const personalizedInfo = [
        { name: 'Preço com desconto (á vista)', text: ' preco_desconto ', disabled: false },
        { name: 'Preço parcela sem juros', text: ' preco_parcela_sem_juros ', disabled: false },
        { name: 'Preço parcela com descontos', text: ' preco_parcela_com_desconto ', disabled: false },
        { name: 'Preço parcela com juros', text: ' preco_parcela_com_juros ', disabled: false },
      ];
      personalizedInfo.map(item => {
        item.disabled = priceDinamicPersonalized.includes(item.text);
      });
      return personalizedInfo;
    },
    //PARCEL NUMBER
    stringContainsParcelNumber() {
      const priceDinamicPersonalized2 = this.configurations.preco_dinamico_personalized;
      const personalizedInfo2 = [
         { name: 'Número total de parcelas', text: ' numero_total_parcelas ', disabled: false },
         { name: 'Número de parcelas sem juros', text: ' numero_parcelas_sem_juros ', disabled: false },
         { name: 'Número de parcelas com descontos', text: ' numero_parcelas_com_desconto ', disabled: false },
         { name: 'Número de parcelas com juros', text: ' numero_parcelas_com_juros ', disabled: false },
         { name: 'Quantidade máxima de parcelas sem juros', text: ' total_parcelas_sem_juros ', disabled: false },
         { name: 'Quantidade máxima de parcelas com juros', text: ' total_parcelas_com_juros ', disabled: false },
      ];
      personalizedInfo2.map(item => {
        item.disabled = priceDinamicPersonalized2.includes(item.text);
      });
      return personalizedInfo2;
    },
    //DESCOUNT AND INCREASE
    stringContainsDiscAndInc() {
      const priceDinamicPersonalized3 = this.configurations.preco_dinamico_personalized;
      const personalizedInfo3 = [
         { name: 'Desconto em R$ ou % (á vista)', text: ' desconto_dinheiro ', disabled: false },
         { name: 'Desconto em % de parcelas', text: ' desconto_em_parcelas ', disabled: false },
         { name: 'Juros em % de parcelas', text: ' juros_em_parcelas ', disabled: false },     
      ];
      personalizedInfo3.map(item => {
        item.disabled = priceDinamicPersonalized3.includes(item.text);
      });
      return personalizedInfo3;
    },
  },
  mounted() {
    this.isLoading = false;
    this.configurations.preco_dinamico_personalized = this.configurations.preco_dinamico_personalized
      ? this.configurations.preco_dinamico_personalized
      : '{{ preco_desconto }} boleto à vista ou até {{ total_parcelas_sem_juros }}x sem juros de {{ preco_parcela_sem_juros }}';

    this.configurations = { ...this.configurations };
    setTimeout(() => {
      this.textWithVar = new TextWithVar(this.$refs.personalizedText.$refs.textarea);
    }, 400);

    this.modelOptions.map(item => {
      item.selected = item.flag == this.configurations.model;
      return item;
    });
  },
  methods: {
    handleSelectModel(index) {
      const models = this.modelOptions.map(modelsItem => {
        modelsItem.selected = false;
        return modelsItem;
      });
      models[index].selected = true;
      this.configurations.model = models[index].flag;

      this.modelOptions = [...models];
    },
    async setTableParcels() {
      if (this.configurations.model == 'parcel' || this.configurations.model == 'complete' || this.configurations.model == 'custom') {
        const url = this.configurations.url_get_table_price;

        const parcel_number = this.configurations.parcel_number;
        const parcel_with_no_fees = this.configurations.parcel_with_no_fees;
        const parcel_with_discounts = this.configurations.parcel_with_discounts;
        const total_parcels = Number(parcel_with_no_fees) + Number(parcel_with_discounts);

        const increase_value = String(this.configurations.increase_value).includes('%') ?
          String(this.configurations.increase_value).replace('%', '') :
          this.configurations.increase_value;

        const discount_parcels_value = String(this.configurations.discount_parcels_value).includes('%') ?
          String(this.configurations.discount_parcels_value).replace('%', '') :
          this.configurations.discount_parcels_value;


        if (parcel_with_discounts && parcel_with_no_fees && increase_value && discount_parcels_value && total_parcels <= parcel_number) {
          await axiosApi({
            method: 'post',
            url,
            data: param({
              productPrice: 100,
              parcel_number,
              parcel_with_discounts,
              discount_parcels_value,
              parcel_with_no_fees,
              increase_value,
            })
          })
            .then(({ data }) => {
              if (data) {
                this.table_parcels.parcels = data;
                this.table_parcels.parcel_with_no_fees = this.configurations.parcel_with_no_fees;
                this.table_parcels.amount_parcels = this.configurations.parcel_number;
                this.table_parcels.parcel_with_discounts = this.configurations.parcel_with_discounts;
                this.table_parcels.discount_parcels_value = this.configurations.discount_parcels_value;
                this.table_parcels.increase_value = this.configurations.increase_value;
              }
              this.updateComponent += 1;
            })
            .catch(err => {
              console.log(err);
            })
        } else {
          await axiosApi({
            method: 'post',
            url,
            data: param({
              productPrice: 100,
              parcel_number: 0,
              parcel_with_discounts: 0,
              discount_parcels_value,
              parcel_with_no_fees: 0,
              increase_value,
            })
          })
            .then(({ data }) => {
              if (data) {
                this.table_parcels.parcels = data;
                this.table_parcels.parcel_with_no_fees = this.configurations.parcel_with_no_fees;
                this.table_parcels.amount_parcels = this.configurations.parcel_number;
              }
              this.updateComponent += 1;
            })
            .catch(err => {
              console.log(err);
            })
        }
      }
    },
    changeInputVisibility() {
      this.$nextTick(() => {
        if (this.configurations.model == "billet") {
          this.$refs.cash_discount && this.$refs.cash_discount.classList.remove('hidden');
          this.$refs.discount_parcels && this.$refs.discount_parcels.classList.remove('hidden');
        }else {
          if (this.$refs.increase && Number(this.configurations.parcel_with_no_fees) == Number(this.configurations.parcel_number) || Number(this.configurations.parcel_with_no_fees) > Number(this.configurations.parcel_number)) {
            this.$refs.increase.classList.add('hidden');
          }

          if (this.$refs.increase && Number(this.configurations.parcel_with_no_fees) < Number(this.configurations.parcel_number)) {
            this.$refs.increase.classList.remove('hidden');
          }

          if (this.$refs.discount_parcels && Number(this.configurations.parcel_with_discounts) == 0) {
            this.$refs.discount_parcels.classList.add('hidden');
            this.configurations.discount_parcels_value = "0%";
          }

          if (this.$refs.discount_parcels && Number(this.configurations.parcel_with_discounts) > 0) {
            this.$refs.discount_parcels.classList.remove('hidden');
          }

          if(!this.increaseinput) this.configurations.increase_value = "0%"; 
        }
      });
    },
    replaceCustom(value, variable) {
      let replacedValue = value;

      replacedValue = replacedValue.replace('{{ preco_desconto }}', variable.discountPrice);
      replacedValue = replacedValue.replace('{{ preco_parcela_sem_juros }}', variable.price_parcel_with_no_fees);
      replacedValue = replacedValue.replace('{{ preco_parcela_com_desconto }}', variable.price_parcel_with_discount);
      replacedValue = replacedValue.replace('{{ preco_parcela_com_juros }}', variable.price_parcel_with_increase);
      replacedValue = replacedValue.replace('{{ numero_total_parcelas }}', variable.parcelNumber);
      replacedValue = replacedValue.replace('{{ numero_parcelas_sem_juros }}', variable.parcelWithNoFees);
      replacedValue = replacedValue.replace('{{ numero_parcelas_com_desconto }}', variable.parcelWithDiscount);
      replacedValue = replacedValue.replace('{{ numero_parcelas_com_juros }}', variable.parcel_with_increase);
      replacedValue = replacedValue.replace('{{ total_parcelas_sem_juros }}', variable.total_parcel_with_no_fees);
      replacedValue = replacedValue.replace('{{ total_parcelas_com_juros }}', variable.total_parcel_with_fees);  
      replacedValue = replacedValue.replace('{{ desconto_dinheiro }}', variable.discountValue);
      replacedValue = replacedValue.replace('{{ desconto_em_parcelas }}', variable.discountParcelValue);
      replacedValue = replacedValue.replace('{{ juros_em_parcelas }}', variable.increaseParcelvalue);

      return replacedValue;
    },
    replaceCustomView(value, variable) {
      let replacedValue = value;

      replacedValue = replacedValue.replace('{{ preco_desconto }}',variable.discountPrice);
      replacedValue = replacedValue.replace('{{ preco_parcela_sem_juros }}', 'parcela_sem_juros');
      replacedValue = replacedValue.replace('{{ preco_parcela_com_desconto }}', 'parcela_com_desconto');
      replacedValue = replacedValue.replace('{{ preco_parcela_com_juros }}', 'parcela_com_juros');
      replacedValue = replacedValue.replace('{{ numero_total_parcelas }}', variable.parcelNumber);
      replacedValue = replacedValue.replace('{{ numero_parcelas_sem_juros }}', variable.parcelWithNoFees);
      replacedValue = replacedValue.replace('{{ numero_parcelas_com_desconto }}', variable.parcelWithDiscount);
      replacedValue = replacedValue.replace('{{ numero_parcelas_com_juros }}', variable.parcel_with_increase);
      replacedValue = replacedValue.replace('{{ total_parcelas_sem_juros }}', variable.total_parcel_with_no_fees);
      replacedValue = replacedValue.replace('{{ total_parcelas_com_juros }}', variable.total_parcel_with_fees);   
      replacedValue = replacedValue.replace('{{ desconto_dinheiro }}', variable.discountValue);
      replacedValue = replacedValue.replace('{{ desconto_em_parcelas }}', variable.discountParcelValue);
      replacedValue = replacedValue.replace('{{ juros_em_parcelas }}', variable.increaseParcelvalue);

      return replacedValue;
    },
    addElement(element) {
      this.textWithVar.insertVarNameInText(element);
    },
    removeElement(info){
      if(this.configurations.preco_dinamico_personalized.includes(`{{${info}}}`)){
        this.configurations.preco_dinamico_personalized = this.configurations.preco_dinamico_personalized.replace(`{{${info}}}`, '');
      }
    },
    handleTypeDiscount() {
      const model = this.configurations.model;

      if (model != 'custom') {
        this.configurations.discount_type = String(Type_Desconto.Tp_Porcentagem);
      }
    },
    handleCheckBoxInput(customer_group_id) {
      const apelidoId = this.configurations.preco_dinamico_tabelapreco;  // checkbox

      if (!apelidoId[customer_group_id]) {
        apelidoId[customer_group_id] = customer_group_id;
      }
      this.configurations.preco_dinamico_tabelapreco = { ...apelidoId };

      for (var customerGroup in this.customerGroups) {
        if (!this.customerGroups[customerGroup].selected) {
          this.configurations.preco_dinamico_tabelapreco_apelido[this.customerGroups[customerGroup].customer_group_id] = '';
          delete (this.configurations.preco_dinamico_tabelapreco[this.customerGroups[customerGroup].customer_group_id]);
          this.customerGroups[customerGroup].selected = false;
        }
      }
    },
    parcelIncrease(parcelNumber,parcelDiscount,parcelFees){
      var parcelIncrease = parseInt(parcelNumber) - (parseInt(parcelDiscount) + parseInt(parcelFees));
      if(parcelIncrease === 0) this.increaseinput = false;
      if(parcelIncrease != 0) this.increaseinput = true;
      if(parcelIncrease < 0) return '0';
      else return parcelIncrease = parcelIncrease.toString();
      
    },
  },
});

initVue(vm);
