{"version":3,"sources":["webpack:///./src/components/Reservations/ModalEditTotalSeats.vue","webpack:///src/components/Reservations/ModalEditTotalSeats.vue","webpack:///./src/components/Reservations/ModalEditTotalSeats.vue?9ff0","webpack:///./src/components/Reservations/ModalEditTotalSeats.vue?9408"],"names":["render","_vm","this","_c","_self","attrs","$t","isSaving","isSavingError","onClickCancel","saveReservation","showModal","on","scopedSlots","_u","key","fn","mReservation","isLocked","isEmployee","MeetingtypeId","staticClass","_v","_s","directives","name","rawName","value","mReservationDate","TotalSeats","expression","modifiers","domProps","$event","target","composing","$set","_n","$forceUpdate","_e","_l","affectedOptions","option","index","change","originalQuantity","InPackage","class","proxy","slot","staticRenderFns","Message","components","props","type","Boolean","default","Function","required","reservationDate","Object","deafault","data","changeAllInSet","computed","_objectSpread","mapState","mounted","cleanSource","reservation","fillAffectedOptions","methods","mapMutations","resOptions","Options","filter","o","IsPP","i","length","push","id","Id","OptionName","Amount","Number","_this","self","JSON","parse","stringify","_loop","affectedOption","find","ro","PriceTotal","PricePerItem","reservationProvider","updateReservationDateTotalSeats","Key","then","response","status","setReservation","EventBus","$emit","message","catch","error","finally","component"],"mappings":"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","file":"js/chunk-2d0c02d4.js?id=65b36f2db19250c47e52","sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('ui-component-modal',{attrs:{\"modalTitle\":_vm.$t('Components.Reservation.ModalEditTotalSeats.Header_ModalHeader'),\"modalSize\":\"large\",\"isSaving\":_vm.isSaving,\"isSavingError\":_vm.isSavingError,\"hideFooterButtons\":_vm.isSavingError,\"onClickCancel\":_vm.onClickCancel,\"onClickSave\":_vm.saveReservation,\"showModal\":_vm.showModal},on:{\"closeModal\":_vm.onClickCancel},scopedSlots:_vm._u([{key:\"content\",fn:function(){return [(_vm.mReservation)?_c('div',[_c('Message',{attrs:{\"message\":_vm.$t('Components.Reservation.ModalEditTotalSeats.Text_Explanation')}}),(!_vm.isLocked && _vm.isEmployee && _vm.mReservation.MeetingtypeId !== 2)?_c('div',[_c('span',{staticClass:\"has-text-weight-bold\"},[_vm._v(_vm._s(_vm.$t('Components.Reservation.ModalEditTotalSeats.Label_TotalSeats')))]),_c('input',{directives:[{name:\"model\",rawName:\"v-model.number\",value:(_vm.mReservationDate.TotalSeats),expression:\"mReservationDate.TotalSeats\",modifiers:{\"number\":true}}],staticClass:\"input\",attrs:{\"type\":\"number\",\"step\":\"1\",\"maxLength\":\"4\"},domProps:{\"value\":(_vm.mReservationDate.TotalSeats)},on:{\"input\":function($event){if($event.target.composing)return;_vm.$set(_vm.mReservationDate, \"TotalSeats\", _vm._n($event.target.value))},\"blur\":function($event){return _vm.$forceUpdate()}}})]):_vm._e(),_c('table',{staticClass:\"table is-fullwidth is-striped\"},[_c('thead',[_c('tr',[_c('th',[_vm._v(\" \"+_vm._s(_vm.$t('Components.Reservation.ModalEditTotalSeats.Label_Quantity'))+\" \")]),_c('th',[_vm._v(\" \"+_vm._s(_vm.$t( 'Components.Reservation.ModalEditTotalSeats.Label_AffectedOptions' ))+\" \")]),_c('th',{staticClass:\"has-text-right\",attrs:{\"width\":\"100\"}},[_vm._v(\" \"+_vm._s(_vm.$t('Components.Reservation.ModalEditTotalSeats.Label_Change'))+\" \")])])]),_c('tbody',_vm._l((_vm.affectedOptions),function(option,index){return _c('tr',{key:index},[_c('td',[(!option.change)?_c('span',[_vm._v(_vm._s(option.originalQuantity)+\"x\")]):_vm._e(),(option.change)?_c('span',[_vm._v(_vm._s(_vm.mReservationDate.TotalSeats)+\"x\")]):_vm._e()]),_c('td',[_vm._v(_vm._s(option.name))]),_c('td',{staticClass:\"has-text-right\"},[(!option.InPackage)?_c('div',{staticClass:\"tabs is-toggle is-small\"},[_c('ul',[_c('li',{class:{ 'is-active': option.change === true }},[_c('a',{on:{\"click\":function($event){option.change = true}}},[_c('span',[_vm._v(_vm._s(_vm.$t('Components.Reservation.ModalEditTotalSeats.Label_Yes')))])])]),_c('li',{class:{ 'is-active': option.change === false }},[_c('a',{on:{\"click\":function($event){option.change = false}}},[_c('span',[_vm._v(_vm._s(_vm.$t( 'Components.Reservation.ModalEditTotalSeats.Label_No' )))])])])])]):_vm._e(),(option.InPackage)?_c('div',[_vm._v(_vm._s(_vm.$t('Components.Reservation.ModalEditTotalSeats.Label_Yes')))]):_vm._e()])])}),0)])],1):_vm._e()]},proxy:true}])},[_c('template',{slot:\"modalTitle\"})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <ui-component-modal\n    :modalTitle=\"\n      $t('Components.Reservation.ModalEditTotalSeats.Header_ModalHeader')\n    \"\n    modalSize=\"large\"\n    :isSaving=\"isSaving\"\n    :isSavingError=\"isSavingError\"\n    :hideFooterButtons=\"isSavingError\"\n    :onClickCancel=\"onClickCancel\"\n    :onClickSave=\"saveReservation\"\n    :showModal=\"showModal\"\n    @closeModal=\"onClickCancel\"\n  >\n    <template slot=\"modalTitle\"></template>\n    <template v-slot:content>\n      <div v-if=\"mReservation\">\n        <Message :message=\"\n            $t('Components.Reservation.ModalEditTotalSeats.Text_Explanation')\n          \" />\n\n        <div v-if=\"!isLocked && isEmployee && mReservation.MeetingtypeId !== 2\">\n          <span class=\"has-text-weight-bold\">{{\n            $t('Components.Reservation.ModalEditTotalSeats.Label_TotalSeats')\n          }}</span>\n          <input\n            type=\"number\"\n            step=\"1\"\n            maxLength=\"4\"\n            v-model.number=\"mReservationDate.TotalSeats\"\n            class=\"input\"\n          />\n        </div>\n\n        <table class=\"table is-fullwidth is-striped \">\n          <thead>\n            <tr>\n              <th>\n                {{\n                  $t('Components.Reservation.ModalEditTotalSeats.Label_Quantity')\n                }}\n              </th>\n              <th>\n                {{\n                  $t(\n                    'Components.Reservation.ModalEditTotalSeats.Label_AffectedOptions'\n                  )\n                }}\n              </th>\n              <th\n                width=\"100\"\n                class=\"has-text-right\"\n              >\n                {{\n                  $t('Components.Reservation.ModalEditTotalSeats.Label_Change')\n                }}\n              </th>\n            </tr>\n          </thead>\n          <tbody>\n            <tr\n              v-for=\"(option, index) in affectedOptions\"\n              :key=\"index\"\n            >\n              <td>\n                <span v-if=\"!option.change\">{{ option.originalQuantity }}x</span>\n                <span v-if=\"option.change\">{{ mReservationDate.TotalSeats }}x</span>\n              </td>\n              <td>{{ option.name }}</td>\n              <td class=\"has-text-right\">\n                <div v-if=\"!option.InPackage\" class=\"tabs is-toggle is-small\">\n                  <ul>\n                    <li :class=\"{ 'is-active': option.change === true }\">\n                      <a @click=\"option.change = true\">\n                        <span>{{\n                          $t('Components.Reservation.ModalEditTotalSeats.Label_Yes')\n                        }}</span>\n                      </a>\n                    </li>\n                    <li :class=\"{ 'is-active': option.change === false }\">\n                      <a @click=\"option.change = false\">\n                        <span>{{\n                          $t(\n                            'Components.Reservation.ModalEditTotalSeats.Label_No'\n                          )\n                        }}</span>\n                      </a>\n                    </li>\n                  </ul>\n                </div>\n                <div v-if=\"option.InPackage\">{{ $t('Components.Reservation.ModalEditTotalSeats.Label_Yes') }}</div>\n              </td>\n            </tr>\n          </tbody>\n        </table>\n      </div>\n    </template>\n  </ui-component-modal>\n</template>\n\n<script>\nimport { mapState, mapMutations } from 'vuex'\nimport { EventBus } from '@/eventbus/event-bus'\nimport reservationProvider from '@/providers/reservation'\nimport { cleanSource } from '@/utils/objectHelper'\n\nconst Message = () => import('@/components/UI/Message')\n\nexport default {\n  components: {\n    Message,\n  },\n\n  props: {\n    showModal: {\n      type: Boolean,\n      default: false,\n    },\n\n    onClickCancel: {\n      type: Function,\n      required: true,\n    },\n\n    isEmployee: {\n      default: false,\n      type: Boolean,\n    },\n\n    isLocked: {\n      default: true,\n      type: Boolean,\n    },\n\n    reservationDate: {\n      type: Object,\n      deafault: null,\n      required: true\n    }\n  },\n\n  data() {\n    return {\n      changeAllInSet: false,\n      isSaving: false,\n      isSavingError: false,\n      affectedOptions: [],\n      mReservation: null,\n      mReservationDate: null\n    }\n  },\n\n  computed: {\n    ...mapState('reservationStore', ['reservation']),\n\n  },\n\n  mounted() {\n    this.mReservation = cleanSource(this.reservation)\n    this.mReservationDate = cleanSource(this.reservationDate)\n\n    this.fillAffectedOptions()\n  },\n\n  methods: {\n    ...mapMutations('reservationStore', ['setReservation']),\n\n    fillAffectedOptions() {\n      let resOptions = this.mReservationDate.Options.filter((o) => o.IsPP)\n      for (let i = 0; i < resOptions.length; i++) {\n        let option = resOptions[i]\n\n        this.affectedOptions.push({\n          id: option.Id,\n          name: option.OptionName,\n          originalQuantity: option.Amount,\n          change: Number(option.Amount) === Number(this.mReservationDate.TotalSeats) || option.InPackage,\n          InPackage: option.InPackage\n        })\n      }\n    },\n\n    saveReservation() {\n      let self = this;\n      \n      let resOptions = JSON.parse(JSON.stringify(this.mReservationDate.Options));\n      this.mReservationDate.Options = [];\n\n      for (let i = 0; i < this.affectedOptions.length; i++) {\n        let affectedOption = this.affectedOptions[i];\n        let option = resOptions.find((ro) => ro.Id === affectedOption.id);\n\n        if (option && affectedOption.change) {\n          option.Amount = this.mReservationDate.TotalSeats;\n          option.PriceTotal = option.PricePerItem * option.Amount;\n\n          this.mReservationDate.Options.push(option);\n        }\n      }\n\n      if (!self.isSaving) {\n        self.isSaving = true\n\n        reservationProvider.methods\n          .updateReservationDateTotalSeats(self.mReservation.Key, self.mReservationDate)\n          .then((response) => {\n            if (response.status === 200) {\n              // Update reservation store\n              self.setReservation(response.data)\n\n              // Send message to be shown as toast on page\n              EventBus.$emit('showToast', {\n                type: 'info',\n                message: this.$t('General.Toast_ReservationUpdated'),\n              })\n\n              self.onClickCancel()\n            }\n          })\n          .catch((error) => {\n            self.isSavingError = true\n          })\n          .finally(() => {\n            self.isSaving = false\n          })\n      }\n    },\n  },\n}\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModalEditTotalSeats.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModalEditTotalSeats.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ModalEditTotalSeats.vue?vue&type=template&id=33976d14\"\nimport script from \"./ModalEditTotalSeats.vue?vue&type=script&lang=js\"\nexport * from \"./ModalEditTotalSeats.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports"],"sourceRoot":""}