Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935
  1. <template>
  2. <section id="contact2">
  3. <div class="container">
  4. <div class="row">
  5. <div class="col-lg-12">
  6. <div class="section-header">
  7. <h2>Week Information</h2>
  8. </div>
  9. <div align="left" class="custom-control custom-switch mb-2">
  10. <div class="row">
  11. <div align="center" class="col">
  12. <label class="mr-5">Were you referred by an agent?</label>
  13. <input
  14. type="checkbox"
  15. class="custom-control-input"
  16. id="customSwitch1"
  17. :checked="refAgent"
  18. @change="changeRef"
  19. />
  20. <label class="custom-control-label" for="customSwitch1">
  21. {{ refAgent ? "Yes" : "No" }}
  22. </label>
  23. <div class="refbyAgent" :class="{ 'refbyAgent--clicked': refAgent }">
  24. <div class="col-md-6" v-if="refAgent">
  25. <label for="Name of Agency">Agency</label>
  26. <select
  27. class="form-control uniSelect"
  28. id="Agency"
  29. name="agency"
  30. v-model="sellItem.agencyId"
  31. >
  32. <option v-for="(item, i) in agencies" :key="i" :value="item.id">{{
  33. item.agencyName
  34. }}</option>
  35. </select>
  36. </div>
  37. <div class="col-md-6" v-if="refAgent">
  38. <label for="Name of Agent">Agent</label>
  39. <select
  40. class="form-control uniSelect"
  41. id="agent"
  42. name="agent"
  43. v-model="sellItem.agentId"
  44. :disabled="!sellItem.agencyId"
  45. >
  46. <option
  47. v-for="(item, i) in displayNotDeletedAgents"
  48. :key="i"
  49. :value="item.id"
  50. >
  51. <div>{{ item.name + " " + item.surname }}</div>
  52. </option>
  53. </select>
  54. </div>
  55. </div>
  56. </div>
  57. </div>
  58. </div>
  59. <div class="form">
  60. <div id="sendmessage">Your details has been sent. Thank you!</div>
  61. <div id="errormessage"></div>
  62. <div class="form-row">
  63. <div class="form-group col-md-6">
  64. <div class="input-group">
  65. <label v-if="!sellItem.region" class="uniSelectLabel" for="weekInfoRegionSelect"
  66. >REGION</label
  67. >
  68. <select
  69. id="weekInfoRegionSelect"
  70. class="form-control uniSelect"
  71. v-model="sellItem.region"
  72. @change="regionChange()"
  73. style="font-size: 15px"
  74. >
  75. <option v-for="(region, r) in regions" :key="r" :value="region">
  76. {{ region.regionName }}
  77. </option>
  78. </select>
  79. </div>
  80. <!-- <input
  81. type="text"
  82. name="region"
  83. class="form-control"
  84. id="region"
  85. placeholder="Region"
  86. data-rule="minlen:4"
  87. data-msg="Please enter the region"
  88. />-->
  89. <div class="validation"></div>
  90. </div>
  91. <div class="form-group col-md-6">
  92. <div class="input-group">
  93. <label v-if="!sellItem.resort" class="uniSelectLabel" for="weekInfoResortSelect"
  94. >RESORT NAME</label
  95. >
  96. <select
  97. id="weekInfoResortSelect"
  98. class="form-control uniSelect"
  99. v-model="sellItem.resort"
  100. @change="resortChange()"
  101. >
  102. <option value="Other">Other</option>
  103. <option v-for="(resort, r) in filteredResort" :key="r" :value="resort">
  104. {{ resort.resortName }}
  105. </option>
  106. </select>
  107. </div>
  108. <!-- <input
  109. type="text"
  110. class="form-control"
  111. name="resort"
  112. id="resort"
  113. placeholder="Resort Name"
  114. data-rule="minlen:4"
  115. data-msg="Please enter resort name"
  116. />-->
  117. <div class="validation"></div>
  118. </div>
  119. <div class="form-group col-md-6">
  120. <input
  121. class="form-control"
  122. v-if="sellItem.otherResort"
  123. placeholder="NAME OF RESORT (* IF OTHER)"
  124. type="text"
  125. name="other"
  126. v-model="sellItem.otherResortName"
  127. />
  128. </div>
  129. <div class="form-group col-md-6">
  130. <div v-if="sellItem.otherResort">
  131. <label v-if="!sellItem.region" class="uniSelectLabel" for="region">REGION</label>
  132. </div>
  133. <select
  134. class="form-control uniSelect"
  135. v-if="sellItem.otherResort"
  136. name="region"
  137. id="region"
  138. v-model="sellItem.region"
  139. >
  140. <option v-for="(region, r) in regions" :key="r">{{ region.regionName }}</option>
  141. </select>
  142. </div>
  143. <div class="form-group col-md-6">
  144. <input
  145. type="number"
  146. class="form-control"
  147. name="unitNumber"
  148. id="unitNumber"
  149. placeholder="UNIT NUMBER"
  150. v-model="sellItem.unitNumber"
  151. data-msg="Please enter unit number"
  152. />
  153. <div class="validation"></div>
  154. </div>
  155. <div class="form-group col-md-6">
  156. <input
  157. type="number"
  158. class="form-control"
  159. name="week"
  160. id="week"
  161. placeholder="UNIT / WEEK NUMBER"
  162. v-model="sellItem.module"
  163. data-msg="Please enter week number"
  164. />
  165. <div class="validation"></div>
  166. </div>
  167. <div class="form-group col-md-6">
  168. <label v-if="!sellItem.season" class="uniSelectLabel" for="region">SEASON</label>
  169. <select
  170. class="form-control uniSelect"
  171. name="region"
  172. id="region"
  173. v-model="sellItem.season"
  174. >
  175. <option v-for="(season, r) in seasons" :key="r">{{ season.name }}</option>
  176. </select>
  177. <div class="validation"></div>
  178. </div>
  179. <div class="form-group col-md-6">
  180. <label v-if="!sellItem.bedrooms" class="uniSelectLabel" for="region"
  181. >BEDROOM/S</label
  182. >
  183. <select
  184. class="form-control uniSelect"
  185. name="region"
  186. id="region"
  187. v-model="sellItem.bedrooms"
  188. >
  189. <option v-for="(item, i) in resortBedrooms" :key="i">{{ item }}</option>
  190. </select>
  191. <div class="validation"></div>
  192. </div>
  193. <div class="form-group col-md-6">
  194. <label v-if="!sellItem.maxSleep" class="uniSelectLabel" for="region"
  195. >SLEEP MAX</label
  196. >
  197. <select
  198. class="form-control uniSelect"
  199. name="region"
  200. id="region"
  201. v-model="sellItem.maxSleep"
  202. >
  203. <option v-for="(item, i) in maxSleep" :key="i">{{ item }}</option>
  204. </select>
  205. <div class="validation"></div>
  206. </div>
  207. <div class="form-group col-md-6">
  208. <input
  209. type="number"
  210. class="form-control"
  211. name="levy"
  212. id="levy"
  213. placeholder="Levy Amount"
  214. v-model="sellItem.levyAmount"
  215. data-msg="Please enter levy amount"
  216. />
  217. <div class="validation"></div>
  218. </div>
  219. </div>
  220. </div>
  221. <div align="left" class="custom-control custom-switch mb-2">
  222. <div class="row">
  223. <div align="center" class="col">
  224. <label class="mr-5">Has your week been spacebanked for the current year?</label>
  225. <input
  226. type="checkbox"
  227. class="custom-control-input"
  228. id="customSwitch2"
  229. :checked="sellItem.currentYearBanked"
  230. @change="changeCurrentBanked"
  231. />
  232. <label class="custom-control-label" for="customSwitch2">
  233. {{ sellItem.currentYearBanked ? "Yes" : "No" }}
  234. </label>
  235. <div
  236. class="spacebanked1"
  237. :class="{ 'spacebanked1--clicked': sellItem.currentYearBanked }"
  238. >
  239. <div class="col-md-6">
  240. <label for="If yes, please confirm with whom" v-if="sellItem.currentYearBanked"
  241. >Please confirm with whom</label
  242. >
  243. <select
  244. class="form-control uniSelect"
  245. name="spacebankOwner"
  246. v-if="sellItem.currentYearBanked"
  247. v-model="sellItem.bankedWith"
  248. >
  249. <option v-for="(item, i) in bankedEntities" :key="i">{{ item }}</option>
  250. </select>
  251. </div>
  252. </div>
  253. </div>
  254. </div>
  255. </div>
  256. <div class="section-header">
  257. <h2>Detailed Individual Information</h2>
  258. </div>
  259. <div class="form">
  260. <div class="row">
  261. <div class="form-group col-md-6">
  262. <input
  263. type="text"
  264. name="name"
  265. class="form-control"
  266. id="name"
  267. placeholder="Name"
  268. data-rule="minlen:4"
  269. data-msg="Please enter your name"
  270. v-model="indiv.name"
  271. />
  272. <div class="validation"></div>
  273. </div>
  274. <div class="form-group col-md-6">
  275. <input
  276. type="text"
  277. class="form-control"
  278. name="surname"
  279. id="surname"
  280. placeholder="Surname"
  281. data-msg="Please enter your surname"
  282. v-model="indiv.surname"
  283. />
  284. <div class="validation"></div>
  285. </div>
  286. </div>
  287. <div class="row">
  288. <div class="form-group col-md-6">
  289. <input
  290. type="text"
  291. name="idnum"
  292. class="form-control"
  293. id="idnum"
  294. placeholder="ID Number"
  295. data-rule="minlen:4"
  296. data-msg="Please enter your ID number"
  297. v-model="indiv.idNumber"
  298. />
  299. <div class="validation"></div>
  300. </div>
  301. <div class="form-group col-md-6">
  302. <input
  303. type="text"
  304. class="form-control"
  305. name="company"
  306. id="company"
  307. placeholder="Company Reg Number"
  308. data-rule="minlen:4"
  309. data-msg="Please enter your company reg number"
  310. v-model="indiv.companyRegNumber"
  311. />
  312. <div class="validation"></div>
  313. </div>
  314. </div>
  315. <div class="row">
  316. <div class="form-group col-md-6">
  317. <input
  318. type="text"
  319. name="marital"
  320. class="form-control"
  321. id="marital"
  322. placeholder="Marital Status"
  323. data-rule="minlen:4"
  324. data-msg="Please enter your marital status"
  325. v-model="indiv.maritalStatus"
  326. />
  327. <div class="validation"></div>
  328. </div>
  329. <div class="form-group col-md-6">
  330. <input
  331. type="text"
  332. class="form-control"
  333. name="email"
  334. id="email"
  335. placeholder="Email Address"
  336. data-msg="Please enter your email address"
  337. v-model="indiv.emailAddress"
  338. />
  339. <div class="validation"></div>
  340. </div>
  341. </div>
  342. <div class="row">
  343. <div class="form-group col-md-6">
  344. <input
  345. type="text"
  346. name="cell"
  347. class="form-control"
  348. id="cell"
  349. placeholder="Cell Number"
  350. data-rule="minlen:4"
  351. data-msg="Please enter your cell number"
  352. v-model="indiv.cellNumner"
  353. />
  354. <div class="validation"></div>
  355. </div>
  356. <div class="form-group col-md-6">
  357. <input
  358. type="text"
  359. class="form-control"
  360. name="landline"
  361. id="landline"
  362. placeholder="Landline Number"
  363. data-msg="Please enter your landline number"
  364. v-model="indiv.landlineNumber"
  365. />
  366. <div class="validation"></div>
  367. </div>
  368. </div>
  369. </div>
  370. <div class="section-header">
  371. <h2>Address</h2>
  372. </div>
  373. <div class="form">
  374. <div class="row">
  375. <div class="form-group col-md-12">
  376. <addressAutoComplete @GoogleAddress="UpdateAddress" />
  377. </div>
  378. </div>
  379. <div class="form-row">
  380. <div class="form-group col-md-6">
  381. <input
  382. type="text"
  383. name="street-nr"
  384. class="form-control"
  385. id="street-nr"
  386. placeholder="Street Number"
  387. data-rule="minlen:4"
  388. data-msg="Please enter your street number"
  389. v-model="indiv.address.streetNumber"
  390. disabled
  391. />
  392. <div class="validation"></div>
  393. </div>
  394. <div class="form-group col-md-6">
  395. <input
  396. type="text"
  397. class="form-control"
  398. name="street"
  399. id="street"
  400. placeholder="Street Name"
  401. data-msg="Please enter your street name"
  402. disabled
  403. v-model="indiv.address.street"
  404. />
  405. <div class="validation"></div>
  406. </div>
  407. <div class="form-group col-md-6">
  408. <input
  409. type="text"
  410. name="province"
  411. class="form-control"
  412. id="province"
  413. placeholder="Province"
  414. data-rule="minlen:4"
  415. data-msg="Please enter your province"
  416. disabled
  417. v-model="indiv.address.province"
  418. />
  419. <div class="validation"></div>
  420. </div>
  421. <div class="form-group col-md-6">
  422. <input
  423. type="text"
  424. class="form-control"
  425. name="city"
  426. id="city"
  427. placeholder="City"
  428. data-rule="minlen:4"
  429. data-msg="Please enter your city"
  430. v-model="indiv.address.city"
  431. disabled
  432. />
  433. <div class="validation"></div>
  434. </div>
  435. <div class="form-group col-md-6">
  436. <input
  437. type="text"
  438. name="suburb"
  439. class="form-control"
  440. id="suburb"
  441. placeholder="Suburb"
  442. data-rule="minlen:4"
  443. data-msg="Please enter your suburb"
  444. v-model="indiv.address.suburb"
  445. disabled
  446. />
  447. <div class="validation"></div>
  448. </div>
  449. <div class="form-group col-md-6">
  450. <input
  451. type="text"
  452. class="form-control"
  453. name="postal"
  454. id="postal"
  455. placeholder="Postal Code"
  456. data-msg="Please enter your postal code"
  457. v-model="indiv.address.postalCode"
  458. disabled
  459. />
  460. <div class="validation"></div>
  461. </div>
  462. </div>
  463. </div>
  464. <div class="section-header">
  465. <h2>Banking Details</h2>
  466. </div>
  467. <div class="form">
  468. <div class="form-row">
  469. <div class="form-group col-md-6">
  470. <div class="input-group">
  471. <label
  472. v-if="!indiv.bankingDetails.bank"
  473. class="uniSelectLabel"
  474. for="weekInfoRegionSelect"
  475. >BANK</label
  476. >
  477. <select
  478. id="weekInfoRegionSelect"
  479. class="form-control uniSelect"
  480. @change="regionChange()"
  481. style="font-size: 15px"
  482. v-model="indiv.bankingDetails.bank"
  483. >
  484. <option v-for="bank in banks" :key="bank.id" :value="bank">
  485. {{ bank.name }}
  486. </option>
  487. </select>
  488. </div>
  489. <div class="validation"></div>
  490. </div>
  491. <div class="form-group col-md-6">
  492. <input
  493. type="text"
  494. class="form-control"
  495. name="acc-nr"
  496. id="acc-nr"
  497. placeholder="Account Number"
  498. data-msg="Please enter account number"
  499. v-model="indiv.bankingDetails.accountNumber"
  500. />
  501. <div class="validation"></div>
  502. </div>
  503. <div class="form-group col-md-6">
  504. <input
  505. type="text"
  506. name="holder"
  507. class="form-control"
  508. id="holder"
  509. placeholder="Account Holder"
  510. data-rule="minlen:4"
  511. data-msg="Please enter account holder"
  512. v-model="indiv.bankingDetails.accountHolder"
  513. />
  514. <div class="validation"></div>
  515. </div>
  516. </div>
  517. </div>
  518. <div class="section-header">
  519. <h2>Share Transfer Information</h2>
  520. </div>
  521. <div class="form">
  522. <div id="sendmessage">Your details has been sent. Thank you!</div>
  523. <div id="errormessage"></div>
  524. <div class="form-row">
  525. <div
  526. class="form-group col-md-12"
  527. style="border:solid;border-width:2px; border-color:rgb(27, 117, 187); border-radius: 3px"
  528. >
  529. <p style="text-align: left; margin:auto; padding:10px">
  530. 1. With respect to my timeshare module/week, I confirm that:
  531. </p>
  532. <div class="validation"></div>
  533. </div>
  534. </div>
  535. <div class="form-row">
  536. <div class="col-md-8">
  537. <p>1.1. All levy amounts for the current cycle have been paid in full</p>
  538. </div>
  539. <div class="form-group col-md-2">
  540. <div class="custom-control custom-switch">
  541. <input
  542. type="checkbox"
  543. class="custom-control-input"
  544. id="customSwitch3"
  545. :checked="sellItem.leviesPaidInFull"
  546. @change="changeLeviesPaidInFull"
  547. />
  548. <label class="custom-control-label" for="customSwitch3">
  549. {{ sellItem.leviesPaidInFull ? "Yes" : "No" }}
  550. </label>
  551. </div>
  552. <div class="validation"></div>
  553. </div>
  554. </div>
  555. <div class="form-row">
  556. <div class="col-md-8">
  557. <p>1.2. My week is placed for rental this year</p>
  558. </div>
  559. <div class="form-group col-md-2">
  560. <div class="custom-control custom-switch">
  561. <input
  562. type="checkbox"
  563. class="custom-control-input"
  564. id="customSwitch4"
  565. :checked="sellItem.weekPlacedForRental"
  566. @change="changeWeekPlacedForRental"
  567. />
  568. <label class="custom-control-label" for="customSwitch4">
  569. {{ sellItem.weekPlacedForRental ? "Yes" : "No" }}
  570. </label>
  571. </div>
  572. <div class="validation"></div>
  573. </div>
  574. </div>
  575. <div class="form-row">
  576. <div class="col-md-8">
  577. <p>1.3. I / We bought the timeshare module/week on the following date:</p>
  578. </div>
  579. <div class="form-group col-md-2">
  580. <input
  581. type="date"
  582. class="form-control"
  583. name="date"
  584. v-model="sellItem.originalPurchaseDate"
  585. />
  586. <div class="validation"></div>
  587. </div>
  588. </div>
  589. <div class="form-row">
  590. <div class="col-md-8">
  591. <p>1.4. The purchase price for which I / we bought timeshare module / week was:</p>
  592. </div>
  593. <div class="form-group col-md-2">
  594. <input
  595. class="form-control"
  596. placeholder="R"
  597. type="number"
  598. step="any"
  599. name="purchasePrice"
  600. v-model="sellItem.originalPurchasePrice"
  601. />
  602. <div class="validation"></div>
  603. </div>
  604. </div>
  605. <div class="form-row">
  606. <div class="col-md-8">
  607. <p>
  608. 1.5. I / We bought the timeshare module / week for the following dates for the
  609. current year:
  610. </p>
  611. </div>
  612. <div class="form-group col-md-2">
  613. Arrival Date :
  614. <input
  615. type="date"
  616. class="form-control"
  617. name="occupationDate1"
  618. v-model="sellItem.arrivalDate"
  619. />
  620. <div class="validation"></div>
  621. </div>
  622. <div class="form-group col-md-2">
  623. Departure Date :
  624. <input
  625. type="date"
  626. class="form-control"
  627. name="occupationDate2"
  628. v-model="sellItem.departureDate"
  629. />
  630. <div class="validation"></div>
  631. </div>
  632. </div>
  633. <div class="form-row">
  634. <div class="col-md-8">
  635. <p>
  636. 1.6. The selling price for the timeshare module / week for which I / we want to
  637. sell is: (Incl. Vat)
  638. </p>
  639. </div>
  640. <div class="form-group col-md-2">
  641. <input
  642. class="form-control"
  643. type="number"
  644. step="any"
  645. name="sellingPrice"
  646. v-model="sellItem.sellPrice"
  647. placeholder="R"
  648. />
  649. <div class="validation"></div>
  650. </div>
  651. </div>
  652. <div class="form-row">
  653. <div class="col-md-8">
  654. <p>1.7. Estate agent's commission agreed to (state Rand value)</p>
  655. </div>
  656. <div class="form-group col-md-2">
  657. <input
  658. class="form-control"
  659. type="number"
  660. step="any"
  661. name="commission"
  662. v-model="sellItem.agentCommission"
  663. placeholder="R"
  664. />
  665. <div class="validation"></div>
  666. </div>
  667. </div>
  668. <div class="form-row">
  669. <div class="col-md-8">
  670. <p>1.8. Mandate to sell timeshare</p>
  671. </div>
  672. <div class="form-group col-md-4">
  673. <div class="custom-file">
  674. <input class="custom-file-input mb-2" type="file" name="mandate" />
  675. <label class="custom-file-label" for="customFile">Choose file</label>
  676. </div>
  677. <div class="validation"></div>
  678. </div>
  679. </div>
  680. <div class="text-center col-12">
  681. <button class="btn-solid-blue" v-if="!sellItem.id" @click="submitSale()">
  682. SUBMIT
  683. </button>
  684. <button class="btn-solid-blue" v-else @click="newSale()">NEW WEEK</button>
  685. </div>
  686. <div class="text-center col-12">
  687. <button class="btn-solid-blue" @click="paygateRedirect()">
  688. PayGate
  689. </button>
  690. </div>
  691. <br />
  692. <br />
  693. </div>
  694. </div>
  695. <br />
  696. <br />
  697. </div>
  698. <div v-if="wait" id="preloader"></div>
  699. </div>
  700. </section>
  701. </template>
  702. <script>
  703. /* eslint-disable */
  704. import { mapState, mapActions, mapGetters } from "vuex";
  705. import addressAutoComplete from "../../shared/addressAutoComplete";
  706. import Alert from "../../shared/alert.vue";
  707. import Log from "../../../assets/Log";
  708. export default {
  709. name: "TimeshareToSell",
  710. props: {
  711. weekId: {
  712. default: 0
  713. }
  714. },
  715. data() {
  716. return {
  717. wait: false,
  718. userLoggedIn: Log.isLoggedIn()
  719. };
  720. },
  721. components: {
  722. addressAutoComplete,
  723. Alert
  724. },
  725. mounted() {
  726. if (this.sellItem.id) {
  727. this.newSale();
  728. }
  729. this.initTimeshare(0);
  730. this.getIndividual(Log.getUser().id);
  731. this.getBanks();
  732. },
  733. created() {
  734. this.initTimeshare(this.weekId);
  735. },
  736. computed: {
  737. ...mapState("timeshare", [
  738. "resorts",
  739. "regions",
  740. "detailedRegion",
  741. "seasons",
  742. "result",
  743. "resortBedrooms",
  744. "maxSleep",
  745. "bankedEntities",
  746. "sellItem",
  747. "agencies",
  748. "agents",
  749. "getTemplate"
  750. ]),
  751. ...mapState("individual", ["indiv"]),
  752. ...mapState("authentication", ["isLoggedIn"]),
  753. ...mapGetters({
  754. user: "authentication/getUser",
  755. person: "authentication/getPerson"
  756. }),
  757. ...mapState("bank", ["banks"]),
  758. refAgent() {
  759. return this.sellItem && this.sellItem.referedByAgent;
  760. },
  761. filteredResort() {
  762. let list = [];
  763. if (this.sellItem && this.sellItem.region && this.sellItem.region.regionCode) {
  764. const item = this.detailedRegion.find(
  765. region => region.region.regionCode === this.sellItem.region.regionCode
  766. );
  767. if (item) {
  768. list = item.children;
  769. }
  770. } else {
  771. list = this.resorts;
  772. }
  773. return _.sortBy(list, x => x.resortName);
  774. },
  775. isLoggedIn() {
  776. return this.user && this.person;
  777. },
  778. displayNotDeletedAgents() {
  779. var notDeletedArr = [];
  780. this.agents.forEach(agent => {
  781. if (!agent.isDeleted) {
  782. if (agent.agencyId === this.sellItem.agencyId) {
  783. notDeletedArr.push(agent);
  784. }
  785. }
  786. });
  787. return notDeletedArr;
  788. }
  789. },
  790. methods: {
  791. ...mapActions("individual", ["getIndividual"]),
  792. ...mapActions("timeshare", ["initTimeshare", "onResortChange", "saveWeek", "getBlankWeek"]),
  793. ...mapActions("payment", ["addPayment"]),
  794. ...mapActions("bank", ["getBanks"]),
  795. newSale() {
  796. this.weekId = 0;
  797. this.getBlankWeek();
  798. },
  799. submitSale() {
  800. if (this.userLoggedIn) {
  801. this.sellItem.ownerObject = this.indiv;
  802. console.log(this.sellItem);
  803. // this.saveWeek(this.sellItem).then(fulfilled => {
  804. // this.paygateRedirect();
  805. // });
  806. } else this.$router.push("/user/login");
  807. },
  808. paygateRedirect() {
  809. var paymentObj = {
  810. timeshareWeekId: this.sellItem.id, // this.sellItem.Id,
  811. propertyId: 0,
  812. creatydById: Log.getUser().id, //Log.getUser().id,
  813. amount: 380.0,
  814. paymentStatus: "",
  815. paymentToken: ""
  816. };
  817. this.addPayment(paymentObj).then(res => {
  818. this.$router.push({
  819. name: "PaymentGateway",
  820. params: {
  821. paymentReqId: res.PAY_REQUEST_ID,
  822. checksum: res.CHECKSUM
  823. }
  824. });
  825. });
  826. },
  827. previewFiles(event) {
  828. console.log(event.target.files);
  829. },
  830. changeRef() {
  831. this.sellItem.agent = undefined;
  832. this.sellItem.agency = undefined;
  833. this.sellItem.referedByAgent = !this.sellItem.referedByAgent;
  834. },
  835. changeLeviesPaidInFull() {
  836. this.sellItem.leviesPaidInFull = !this.sellItem.leviesPaidInFull;
  837. },
  838. changeWeekPlacedForRental() {
  839. this.sellItem.weekPlacedForRental = !this.sellItem.weekPlacedForRental;
  840. },
  841. changeCurrentBanked() {
  842. this.sellItem.bankedWith = undefined;
  843. this.sellItem.currentYearBanked = !this.sellItem.currentYearBanked;
  844. },
  845. resortChange() {
  846. this.onResortChange({
  847. resortName: this.sellItem.resort.resortName,
  848. resortCode: this.sellItem.resort.resortCode
  849. });
  850. if (this.sellItem && this.sellItem.resort === "Other") {
  851. this.sellItem.otherResortName = undefined;
  852. this.sellItem.otherResort = true;
  853. } else {
  854. this.sellItem.otherResortName = undefined;
  855. this.sellItem.otherResort = false;
  856. }
  857. },
  858. regionChange() {
  859. this.sellItem.regionId = this.sellItem.region ? this.sellItem.region.id : 1;
  860. },
  861. UpdateAddress(address) {
  862. this.indiv.address.streetNumber = address.streetNumber;
  863. this.indiv.address.street = address.streetName;
  864. this.indiv.address.province = address.province;
  865. this.indiv.address.city = address.city;
  866. this.indiv.address.suburb = address.suburb;
  867. this.indiv.address.postalCode = address.postalCode;
  868. }
  869. }
  870. };
  871. </script>
  872. <style lang="scss" scoped>
  873. .refbyAgent {
  874. will-change: transform;
  875. transition: height 500ms;
  876. height: 0px;
  877. }
  878. .refbyAgent--clicked {
  879. height: 150px;
  880. }
  881. .spacebanked1 {
  882. will-change: transform;
  883. transition: height 500ms;
  884. height: 0px;
  885. }
  886. .spacebanked1--clicked {
  887. height: 150px;
  888. }
  889. .custom-file-label {
  890. border-width: 2px;
  891. border-color: rgb(27, 117, 187);
  892. margin-bottom: 20px;
  893. }
  894. .custom-file-label::after {
  895. border-left: none;
  896. border-bottom: solid;
  897. border-width: 2px;
  898. border-color: rgb(27, 117, 187);
  899. font-family: "Muli";
  900. }
  901. </style>