123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249 |
- /* eslint-disable guard-for-in */
- /* eslint-disable no-restricted-syntax */
- import axios from "axios";
- import _ from "lodash";
- import MyData from "../../../assets/myData";
- import MaritalStatus from "../../../assets/staticData/maritalStatus";
-
- export default {
- namespaced: true,
- state: {
- resorts: [],
- regions: [],
- detailedRegion: [],
- seasons: [],
- resortBedrooms: [],
- maxSleep: [],
- bankedEntities: [],
- agencies: [],
- agents: [],
- maritalStatus: MaritalStatus,
- result: undefined,
- sellItem: {
- referedByAgent: false,
- agentId: undefined,
- agencyId: undefined,
- otherResort: false,
- otherResortName: undefined,
- resort: undefined,
- resortCode: undefined,
- resortName: undefined,
- regionId: undefined,
- season: undefined,
- module: undefined,
- unitNumber: undefined,
- bedrooms: undefined,
- maxSleep: undefined,
- weekNumber: undefined,
- levyAmount: undefined,
- currentYearBanked: false,
- bankedWith: undefined,
- leviesPaidInFull: false,
- weekPlacedForRental: false,
- originalPurchasePrice: undefined,
- originalPurchaseDate: undefined,
- arrivalDate: undefined,
- departureDate: undefined,
- sellPrice: undefined,
- agentCommission: undefined,
- mandate: undefined,
- status: undefined,
- owner: {
- address: {},
- bankingDetails: {}
- }
- }
- },
- mutations: {
- setUnitConfigurationList(state, list) {
- state.unitConfigurationList = list;
- },
- setAgency(state, agencies) {
- state.agencies = agencies;
- },
- setAgent(state, agents) {
- state.agents = agents;
- },
- setSeason(state, seasons) {
- state.seasons = seasons;
- },
- setResortBedrooms(state, resortBedrooms) {
- state.resortBedrooms = resortBedrooms;
- },
- setMaxSleep(state, maxSleep) {
- state.maxSleep = maxSleep;
- },
- setBankedEntities(state, bankedEntities) {
- state.bankedEntities = bankedEntities;
- },
- addResort(state, resorts) {
- state.resorts = resorts;
- },
- addRegion(state, regions) {
- state.regions = regions;
- },
- addDetailedRegion(state, detailedRegion) {
- state.detailedRegion.push(detailedRegion);
- },
- changeResort(state, resort) {
- for (const reg in state.detailedRegion) {
- const region = state.detailedRegion[reg];
- if (_.find(region.children, x => x.resortCode === resort.resortCode)) {
- state.regionId = reg;
- break;
- }
- }
- state.sellItem.resortCode = resort.resortCode;
- state.sellItem.resortName = resort.resortName;
- },
- displayResult(state) {
- state.result = "Week has been added ^-^";
- },
- setWeekDetail(state, week) {
- state.sellItem = week;
- },
- agentUpdate(state, agent) {
- var index
- var count = 0
- state.agents.forEach((item) => {
- if (item.id === agent.id) {
- index = count
- }
- count++
- })
- Object.assign(state.agents[index], agent)
- }
- },
- getters: {
- getRegionCode(state) {
- return value => {
- const reg = state.detailedRegion.find(region =>
- region.children.some(resort => resort.resortCode === value)
- );
- if (reg && reg.region) {
- return reg.region.regionCode;
- }
- return "";
- };
- },
- getResortName(state) {
- return value => {
- const res = state.resorts.find(resort => resort.resortCode === value);
- if (res) {
- return res.resortName;
- }
- };
- }
- },
- actions: {
- initTimeshare({ commit, dispatch }, timeshareId) {
- commit("setResortBedrooms", MyData.resortBedrooms);
- commit("setMaxSleep", MyData.maxBedrooms);
- commit("setBankedEntities", MyData.bankedEntities);
- dispatch("getSeasons");
- dispatch("getAgents");
- dispatch("getAgencies");
- dispatch("getResorts");
- dispatch("getRegions");
- if (timeshareId && timeshareId !== 0) {
- dispatch("getWeekDetail", timeshareId);
- }
- },
- getWeekDetail({ commit }, timeshareId) {
- axios
- .get(`api/timeshareweek/${timeshareId}`)
- .then(result => {
- console.log(result.data);
- commit("setWeekDetail", result.data);
- })
- .catch(console.error);
- },
- getSeasons({ commit }) {
- axios
- .get("/api/season")
- .then(result => commit("setSeason", result.data))
- .catch(console.error);
- },
- getAgencies({ commit }) {
- axios
- .get("/api/agency")
- .then(result => commit("setAgency", result.data))
- .catch(console.error);
- },
- getAgents({ commit }) {
- axios
- .get("/api/agent")
- .then(result => commit("setAgent", result.data))
- .catch(console.error);
- },
- getResorts({ commit }) {
- axios
- .get("https://www.tradeunipoint.com/unibackend/seam/resource/rest/products/resorts/list/")
- .then(result => commit("addResort", result.data))
- .catch(console.error);
- },
- getRegions({ dispatch, commit }) {
- axios
- .get("https://www.tradeunipoint.com/unibackend/seam/resource/rest/products/regions/list/ZA")
- .then(result => {
- commit("addRegion", result.data);
- dispatch("getDetailedRegion", result.data);
- })
- .catch(console.error);
- },
- getDetailedRegion({ commit }, data) {
- if (data) {
- for (const r in Object.keys(data)) {
- const region = data[r];
- if (region !== undefined) {
- axios
- .get(
- `https://www.tradeunipoint.com/unibackend/seam/resource/rest/products/resorts/${region.regionCode}/`
- )
- .then(result =>
- commit("addDetailedRegion", {
- region,
- children: result.data
- })
- )
- .catch(console.error);
- }
- }
- }
- },
- onResortChange({ commit }, resort) {
- commit("changeResort", resort);
- },
- async saveWeek({ commit }, week) {
- return await new Promise((resolve, reject) => {
- axios
- .post("/api/timeshareweek", week)
- .then(result => {
- commit("setWeekDetail", result.data);
- resolve(result.data);
- })
- .catch(error => reject(new Error(error.message)));
- });
-
- // axios
- // .post('/api/timeshareweek', week)
- // .then(result => commit('displayResult'))
- // .catch(console.error);
- },
- getBlankWeek({ commit }) {
- axios
- .get("/api/timeshareweek/gettemplate")
- .then(result => commit("setWeekDetail", result.data))
- .catch(console.error);
- },
- async updateAgent({commit}, agent){
- await axios.put("/api/agent", agent)
- .then((result) => {
- commit("agentUpdate", result.data)
- })
- .catch((ex) => {
- console.log(ex);
- })
- }
- }
- };
|