Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

timeshare.js 6.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249
  1. /* eslint-disable guard-for-in */
  2. /* eslint-disable no-restricted-syntax */
  3. import axios from "axios";
  4. import _ from "lodash";
  5. import MyData from "../../../assets/myData";
  6. import MaritalStatus from "../../../assets/staticData/maritalStatus";
  7. export default {
  8. namespaced: true,
  9. state: {
  10. resorts: [],
  11. regions: [],
  12. detailedRegion: [],
  13. seasons: [],
  14. resortBedrooms: [],
  15. maxSleep: [],
  16. bankedEntities: [],
  17. agencies: [],
  18. agents: [],
  19. maritalStatus: MaritalStatus,
  20. result: undefined,
  21. sellItem: {
  22. referedByAgent: false,
  23. agentId: undefined,
  24. agencyId: undefined,
  25. otherResort: false,
  26. otherResortName: undefined,
  27. resort: undefined,
  28. resortCode: undefined,
  29. resortName: undefined,
  30. regionId: undefined,
  31. season: undefined,
  32. module: undefined,
  33. unitNumber: undefined,
  34. bedrooms: undefined,
  35. maxSleep: undefined,
  36. weekNumber: undefined,
  37. levyAmount: undefined,
  38. currentYearBanked: false,
  39. bankedWith: undefined,
  40. leviesPaidInFull: false,
  41. weekPlacedForRental: false,
  42. originalPurchasePrice: undefined,
  43. originalPurchaseDate: undefined,
  44. arrivalDate: undefined,
  45. departureDate: undefined,
  46. sellPrice: undefined,
  47. agentCommission: undefined,
  48. mandate: undefined,
  49. status: undefined,
  50. owner: {
  51. address: {},
  52. bankingDetails: {}
  53. }
  54. }
  55. },
  56. mutations: {
  57. setUnitConfigurationList(state, list) {
  58. state.unitConfigurationList = list;
  59. },
  60. setAgency(state, agencies) {
  61. state.agencies = agencies;
  62. },
  63. setAgent(state, agents) {
  64. state.agents = agents;
  65. },
  66. setSeason(state, seasons) {
  67. state.seasons = seasons;
  68. },
  69. setResortBedrooms(state, resortBedrooms) {
  70. state.resortBedrooms = resortBedrooms;
  71. },
  72. setMaxSleep(state, maxSleep) {
  73. state.maxSleep = maxSleep;
  74. },
  75. setBankedEntities(state, bankedEntities) {
  76. state.bankedEntities = bankedEntities;
  77. },
  78. addResort(state, resorts) {
  79. state.resorts = resorts;
  80. },
  81. addRegion(state, regions) {
  82. state.regions = regions;
  83. },
  84. addDetailedRegion(state, detailedRegion) {
  85. state.detailedRegion.push(detailedRegion);
  86. },
  87. changeResort(state, resort) {
  88. for (const reg in state.detailedRegion) {
  89. const region = state.detailedRegion[reg];
  90. if (_.find(region.children, x => x.resortCode === resort.resortCode)) {
  91. state.regionId = reg;
  92. break;
  93. }
  94. }
  95. state.sellItem.resortCode = resort.resortCode;
  96. state.sellItem.resortName = resort.resortName;
  97. },
  98. displayResult(state) {
  99. state.result = "Week has been added ^-^";
  100. },
  101. setWeekDetail(state, week) {
  102. state.sellItem = week;
  103. },
  104. agentUpdate(state, agent) {
  105. var index
  106. var count = 0
  107. state.agents.forEach((item) => {
  108. if (item.id === agent.id) {
  109. index = count
  110. }
  111. count++
  112. })
  113. Object.assign(state.agents[index], agent)
  114. }
  115. },
  116. getters: {
  117. getRegionCode(state) {
  118. return value => {
  119. const reg = state.detailedRegion.find(region =>
  120. region.children.some(resort => resort.resortCode === value)
  121. );
  122. if (reg && reg.region) {
  123. return reg.region.regionCode;
  124. }
  125. return "";
  126. };
  127. },
  128. getResortName(state) {
  129. return value => {
  130. const res = state.resorts.find(resort => resort.resortCode === value);
  131. if (res) {
  132. return res.resortName;
  133. }
  134. };
  135. }
  136. },
  137. actions: {
  138. initTimeshare({ commit, dispatch }, timeshareId) {
  139. commit("setResortBedrooms", MyData.resortBedrooms);
  140. commit("setMaxSleep", MyData.maxBedrooms);
  141. commit("setBankedEntities", MyData.bankedEntities);
  142. dispatch("getSeasons");
  143. dispatch("getAgents");
  144. dispatch("getAgencies");
  145. dispatch("getResorts");
  146. dispatch("getRegions");
  147. if (timeshareId && timeshareId !== 0) {
  148. dispatch("getWeekDetail", timeshareId);
  149. }
  150. },
  151. getWeekDetail({ commit }, timeshareId) {
  152. axios
  153. .get(`api/timeshareweek/${timeshareId}`)
  154. .then(result => {
  155. console.log(result.data);
  156. commit("setWeekDetail", result.data);
  157. })
  158. .catch(console.error);
  159. },
  160. getSeasons({ commit }) {
  161. axios
  162. .get("/api/season")
  163. .then(result => commit("setSeason", result.data))
  164. .catch(console.error);
  165. },
  166. getAgencies({ commit }) {
  167. axios
  168. .get("/api/agency")
  169. .then(result => commit("setAgency", result.data))
  170. .catch(console.error);
  171. },
  172. getAgents({ commit }) {
  173. axios
  174. .get("/api/agent")
  175. .then(result => commit("setAgent", result.data))
  176. .catch(console.error);
  177. },
  178. getResorts({ commit }) {
  179. axios
  180. .get("https://www.tradeunipoint.com/unibackend/seam/resource/rest/products/resorts/list/")
  181. .then(result => commit("addResort", result.data))
  182. .catch(console.error);
  183. },
  184. getRegions({ dispatch, commit }) {
  185. axios
  186. .get("https://www.tradeunipoint.com/unibackend/seam/resource/rest/products/regions/list/ZA")
  187. .then(result => {
  188. commit("addRegion", result.data);
  189. dispatch("getDetailedRegion", result.data);
  190. })
  191. .catch(console.error);
  192. },
  193. getDetailedRegion({ commit }, data) {
  194. if (data) {
  195. for (const r in Object.keys(data)) {
  196. const region = data[r];
  197. if (region !== undefined) {
  198. axios
  199. .get(
  200. `https://www.tradeunipoint.com/unibackend/seam/resource/rest/products/resorts/${region.regionCode}/`
  201. )
  202. .then(result =>
  203. commit("addDetailedRegion", {
  204. region,
  205. children: result.data
  206. })
  207. )
  208. .catch(console.error);
  209. }
  210. }
  211. }
  212. },
  213. onResortChange({ commit }, resort) {
  214. commit("changeResort", resort);
  215. },
  216. async saveWeek({ commit }, week) {
  217. return await new Promise((resolve, reject) => {
  218. axios
  219. .post("/api/timeshareweek", week)
  220. .then(result => {
  221. commit("setWeekDetail", result.data);
  222. resolve(result.data);
  223. })
  224. .catch(error => reject(new Error(error.message)));
  225. });
  226. // axios
  227. // .post('/api/timeshareweek', week)
  228. // .then(result => commit('displayResult'))
  229. // .catch(console.error);
  230. },
  231. getBlankWeek({ commit }) {
  232. axios
  233. .get("/api/timeshareweek/gettemplate")
  234. .then(result => commit("setWeekDetail", result.data))
  235. .catch(console.error);
  236. },
  237. async updateAgent({commit}, agent){
  238. await axios.put("/api/agent", agent)
  239. .then((result) => {
  240. commit("agentUpdate", result.data)
  241. })
  242. .catch((ex) => {
  243. console.log(ex);
  244. })
  245. }
  246. }
  247. };