Skips on public roads require a permit to be issued.
A permit from your Local Authority will be required for placement on a public road. This will be arranged by Enva, but may incur a fee and will require advance booking notification.
', modalContentExtended: '', modalTitleDate: '交货日期', modalContentDate: 'Orders must be placed before midday for next day delivery.
', modalTitle邮政编码: '邮编有问题?', modalContent邮政编码: 'If you are having issues any issues obtaining a quote, please contact us or phone your local depot on the numbers listed below:
英格兰: 0115 940 3111
苏格兰: 01505 321 000
As a responsible waste processor Enva can handle most domestic items that you would need to place in a skip. There are some items which cannot be placed in our skips, although arrangements can be made to collect specific items if arranged at the time of booking.
Read more
A permit in '+that.localAuthority+' costs £'+ that.permitPrice.toFixed(2) +' (inc. VAT) and must be applied for at least '+that.permitDelay+' days in advance.
Some roads may be subject to additional permit charges based on an inspection by Council representatives.
'; that.displayedPage++; that.hash = "#step2"; window.location.hash = "#step2"; that.recordEvent('Entered'); that.setCookie(); that.resetView(); }) .catch(function (error) { that.inProgress = false; alert(error); }); break; case 2: // Ensure a skip has been selected if (!this.skipChoosen) { this.skipChoosenError = true; } else { this.skipChoosenError = false; } if (this.skipChoosenError) { return false; } // reset order date - just in case // pagination has been used this.orderDate = null; this.getDates(); this.displayedPage++; this.hash = "#step3"; window.location.hash = "#step3"; this.recordEvent('Entered'); this.setCookie(); this.resetView(); break; case 3: this.orderDateError = false; this.timeSlotError = false; // BOTH ORDER DATE AND TIME SLOT EMPTY if(!this.orderDate && !this.timeSlot) { this.orderDateError = true; this.timeSlotError = true; } if (!this.orderDate && this.timeSlot) { this.orderDateError = true; this.timeSlotError = false; } if (this.orderDate && !this.timeSlot) { this.orderDateError = false; this.timeSlotError = true; } if (this.orderDateError || this.timeSlotError) { return false; } // CHECK VALIDITY OF DATE BASED ON CURRENT PARAMS var now = moment(); var nowString = now.format(this.momentFormat); var orderDateMoment = moment(this.orderDate); var orderDateMomentString = orderDateMoment.format(this.momentFormat); // console.log(nowString, orderDateMomentString); this.orderFutureDateError = false; if (orderDateMoment.isBefore(now)) { this.orderFutureDateError = true; return false; } var isDisabled = false; this.disabledDates.dates.forEach(function(d) { var toTest = moment(d).format(this.momentFormat); // console.log(toTest); if (orderDateMomentString === toTest) { isDisabled = true; } }); if (isDisabled) { alert('Your choosen date is disabled/unavailable'); return false; } this.displayedPage++; this.hash = "#step4"; window.location.hash = "#step4"; this.recordEvent('Entered'); this.setCookie(); this.resetView(); // SET UP STRIPE HERE // var card = elements.create("card", { style: style }); // card.mount("#card-element"); if (this.usesScottishStripe) { initStripe('pk_live_51IJaxlJPC7QzsSxPRD99ATwB73K11OwnerkGRFn4S8ctejwJVCMKh98K8p7W8Gx5ToVZX6vJNM67Vb7aMh0zlQJe005t9OdCOc'); } else { initStripe('pk_live_scplv2cW9FGcCy7hoRmCYsAw'); } var style = { base: { fontFamily: '"Gotham Rounded A", sans-serif', color: "#54565b", fontWeight: "400", fontSize: "16px", "::placeholder": { color: "#BCBCBC", fontWeight: "400" } } }; var cardNumber = elements.create('cardNumber', { style: style, classes: {} }); cardNumber.mount('#card-number'); this.cardNumberEl = cardNumber; var cardExpiry = elements.create('cardExpiry', { style: style, classes: {} }); cardExpiry.mount('#card-expiry'); this.cardExpiryEl = cardExpiry; var cardCvc = elements.create('cardCvc', { style: style, classes: {}, }); cardCvc.mount('#card-cvc'); this.cardCvcEl = cardCvc; break; case 4: // clear all errors this.clearErrors(); if (!this.deliveryTitle.length) { this.deliveryTitleError = true; this.paymentFormInvalid = true; this.recordEvent('Form Error: Delivery title'); } else { this.deliveryTitleError = false; } if (!this.deliveryFirstName.length) { this.deliveryFirstNameError = true; this.paymentFormInvalid = true; this.recordEvent('Form Error: Delivery first name'); } else { this.deliveryFirstNameError = false; } if (!this.deliveryLastName.length) { this.deliveryLastNameError = true; this.paymentFormInvalid = true; this.recordEvent('Form Error: Delivery surname'); } else { this.deliveryLastNameError = false; } if (!this.contact电子邮件.length) { this.contact电子邮件Error = true; this.paymentFormInvalid = true; this.recordEvent('Form Error: 电子邮件 length'); } else { this.contact电子邮件Error = false; } if (!this.validate电子邮件()) { this.validate电子邮件Error = true; this.paymentFormInvalid = true; this.recordEvent('Form Error: 电子邮件 invalid'); } else { this.validate电子邮件Error = false; } if (!this.contactNumber) { this.contactNumberError = true; this.paymentFormInvalid = true; this.recordEvent('Form Error: 联系 number'); } else { this.contactNumberError = false; } if (!this.checkAddress()) { this.selectedAddressError = true; this.paymentFormInvalid = true; this.recordEvent('Form Error: Delivery address'); } else { this.selectedAddressError = false; } if (!this.checkBillingAddress()) { this.billingAddressError = true; this.paymentFormInvalid = true; this.recordEvent('Form Error: Billing address'); } else { this.selectedAddressError = false; } if (!this.agree条款) { this.agree条款Error = true; this.paymentFormInvalid = true; this.recordEvent('Form Error: Agree terms'); } else { this.agree条款Error = false; } if (!this.agreeSkipContents) { this.agreeSkipContentsError = true; this.paymentFormInvalid = true; this.recordEvent('Form Error: Agree skip contents'); } else { this.agreeSkipContentsError = false; } if (!this.cardName) { this.cardNameError = true; this.paymentFormInvalid = true; this.recordEvent('支付ment Error: Name on card'); } else { this.cardNameError = false; } if (this.paymentFormInvalid) { return false; } this.get支付mentIntent(); break; default: alert('ERROR'); break; } }, openModal: function() { $('#skips-modal-label').text(this.modalTitle); $('#skips-modal-content').html(this.modalContent + this.modalContentExtended); $('#skipsModal').modal('show'); this.recordEvent('Tooltip: 我可以在我的车里放些什么'); }, openModalDate: function() { $('#skips-modal-label').text(this.modalTitleDate); $('#skips-modal-content').html(this.modalContentDate); $('#skipsModal').modal('show'); this.recordEvent('Tooltip: Delivery date'); }, openModal邮政编码: function() { $('#skips-modal-label').text(this.modalTitle邮政编码); $('#skips-modal-content').html(this.modalContent邮政编码); $('#skipsModal').modal('show'); this.recordEvent('Tooltip: 邮政编码 Errors'); }, openModalWasteInfo: function() { $('#skips-modal-label').text(this.modalTitleWasteInfo); $('#skips-modal-content').html(this.modalContentWasteInfo); $('#skipsModal').modal('show'); this.recordEvent('Tooltip: 为什么需要许可证'); }, selectSkip: function(id) { this.depotData = null; this.skipChoosen = id; // skip = this.skips.find(s => s.id === id); skip = this.skips.find(function(s) { return s.id === id; }); if (skip === undefined) { alert('An error occurred while selecting your skip - please try again 或联系 us if the issue persists'); return false; } this.isApiSkip = skip.isApiSkip; this.skipPrice = parseFloat(skip.price); this.skipTitle = skip.title; this.skipSubTitle = skip.subtitle; this.depotData = skip.depotData; this.usesScottishStripe = skip.useScottishStripe; this.recordEvent('Skip Choosen: ' + this.skipTitle); }, checkDiscount: function() { this.discountError = false; this.discountError消息 = ''; if (!this.discountCode) { this.discountError = true; this.discountError消息 = 'Please enter a discount code to check'; this.recordEvent('Discount: Error - ' + this.discountError消息); return false; } // Store ref to "this" var that = this; // Clear the vars this.discountAmount = 0.00; this.discountDetails = ''; // Check Discount axios.post('/skiphire-api/check-discount', { skipId: this.skipChoosen, isApiSkip: this.isApiSkip, localAuthority: this.localAuthority, skipPrice: this.skipPrice, discountCode: this.discountCode, deliveryDate: this.orderDate }) .then(function (response) { if (response.data.status === 'error') { that.discountError = true; that.discountCode = ''; that.discountError消息 = response.data.message; that.recordEvent('Discount: Error - ' + response.data.message); return false; } // All good - apply discount that.discountId = response.data.payload.discount_id; that.discountAmount = parseFloat(response.data.payload.discount_amount); that.discountDetails = response.data.payload.discount_details; that.recordEvent('Discount: Valid - ' + that.discountCode); }) .catch(function (error) { alert(error); }) ; }, resetView: function() { var position = $("#skip_hire").offset().top; position = position - 120; $("html, body").animate( { scrollTop: position }, 1000 ); }, getDates: function() { // // Reset disabled dates this.disabledDates.dates = []; this.disabledDates.to = null; var dateArray = []; var that = this; var skipDepots = $.grep(this.skips, function(s) { return s.id == that.skipChoosen; }); if (skipDepots[0] === undefined) { alert('Unable to find supplier'); return; } axios.post('/skiphire-api/get-dates', { postcodeId: this.postcodeId, placement: this.placement, supplierId: skipDepots[0].depotData.id }) .then(function (response) { // console.log(response); response.data.payload.disabled_dates.forEach(function(d) { dateArray.push(that.stringToJsDate(d)); }); if (response.data.payload.disabled_dates.length) { var toDateCheck = that.stringToJsDate(response.data.payload.disabled_dates[0]); if (toDateCheck > new Date()) { that.disabledDates.to = toDateCheck; } else { that.disabledDates.to = new Date(); } } else { that.disabledDates.to = new Date(); } var d = new Date(); var year = d.getFullYear(); var month = d.getMonth(); var day = d.getDate(); var endDate = new Date(year + 1, month, day); that.disabledDates.from = endDate; that.disabledDates.dates = dateArray; }) .catch(function (error) { alert(error); }); }, get支付mentIntent: function() { this.inProgress = true; this.paymentError = false; this.paymentError消息 = ''; var that = this; // Get 支付ment Intent axios.post('/skiphire-api/get-intent', { skipId: this.skipChoosen, isApiSkip: this.isApiSkip, localAuthority: this.localAuthority, skipPrice: this.skipPrice, postcodeId: this.postcodeId, placement: this.placement, discountId: this.discountId, delTitle: this.deliveryTitle, deliveryDate: this.orderDate, discountCode: this.discountCode, usesScottishStripe: this.usesScottishStripe }) .then(function (response) { that.inProgress = false; if (response.data.status === 'error') { that.paymentError = true; that.paymentError消息 = response.data.message; that.recordEvent('支付ment Error: ' + response.data.message); } else { var clientSecret = response.data.payload.payment_intent; that.process支付ment(clientSecret, that); } }) .catch(function (error) { // console.log(error); that.paymentError = true; that.paymentError消息 = error; that.inProgress = false; that.recordEvent('支付ment Error: ' + error); }) ; }, process支付ment: function(clientSecret, that) { that.inProgress = true; stripe.confirm卡支付ment(clientSecret, { payment_method: { card: that.cardNumberEl, billing_details: { name: that.cardName, address: { postal_code: that.postcode } } } }).then(function(result) { that.inProgress = false; if (result.error) { that.paymentError = true; that.paymentError消息 = result.error.message; that.recordEvent('支付ment Error: ' + result.error.message); } else { // console.log(result); // The payment has been processed! if (result.paymentIntent.status === 'succeeded') { that.sendOrderSuccess(result.paymentIntent.id, that); that.destroyCookie(); } } }); }, sendOrderSuccess: function(id, that) { // temp that.transaction = id; that.inProgress = true; var billingAddress = that.billingAddress; if (that.useDeliveryAddress) { billingAddress = that.address; billingAddress.postcode = that.postcode; } axios.post( '/skiphire-api/order-success', { postcodeId: this.postcodeId, postcode: this.postcode, orderDate: moment(this.orderDate).format('YYYY-MM-DD'), orderSlot: this.timeSlot, skipId: this.skipChoosen, deliveryDate: this.orderDate, isApiSkip: this.isApiSkip, depotData: this.depotData, localAuthority: this.localAuthority, skipPrice: this.skipPrice, skip位置: this.placement, delTitle: this.deliveryTitle, delFirstname: this.deliveryFirstName, delLastname: this.deliveryLastName, delAddress: this.address, billAddress: billingAddress, contact电子邮件: this.contact电子邮件, contactNumber: this.contactNumber, consent: this.agree联系 ? true : false, message: this.contactNotes, transactionId: id, discountId: this.discountId, discountCode: this.discountCode }, { withCredentials: true } ) .then(function (response) { that.inProgress = false; if (response.data.status === 'error') { that.paymentError = true; that.paymentError消息 = response.data.message; that.recordEvent('支付ment Error: ' + response.data.message); } else { // HAPPY HAPPY that.complete = true; that.summary = response.data.payload; that.recordEvent('支付ment Success: id - ' + response.data.payload.id); var url = window.location.origin + '/skip-hire-checkout-success'; var form = $(''); $('body').append(form); form.submit(); } }) .catch(function (error) { that.paymentError = true; that.paymentError消息 = error; that.inProgress = false; that.recordEvent('支付ment Error: ' + error); }); }, formatAddress: function(addressArray) { var filtered = addressArray.filter(function (el) { return el !== null && el !== ''; }); return filtered.join(', '); }, changeAddress: function(e) { if (e.target.value === '') { // Reset this.address = { line_1: '', line_2: '', town_or_city: '', county: '' }; return; } var address = this.addresses[e.target.value]; this.address = { line_1: address.line_1, line_2: address.line_2, town_or_city: address.town_or_city, county: address.county }; }, checkAddress: function() { // console.log('checking'); var error = false; this.addressErrors = []; if (this.address.line_1 == '') { error = true; this.addressErrors.push('Please ensure you have filled out the first line of the address'); } if (this.address.town_or_city == '') { error = true; this.addressErrors.push('Please ensure you have filled out the town or city of the address'); } // if (this.address.county == '') { // error = true; // this.addressErrors.push('Please ensure you have filled out the county of the address - this may need to be added manually'); // } if (error) { return false; } return true; }, checkBillingAddress: function() { var error = false; this.billingAddressErrors = []; if (this.useDeliveryAddress) { return true; } if (this.billingAddress.line_1 == '') { error = true; this.billingAddressErrors.push('Please ensure you have filled out the first line of the billing address'); } if (this.billingAddress.town_or_city == '') { error = true; this.billingAddressErrors.push('Please ensure you have filled out the town or city of the billing address'); } // if (this.billingAddress.county == '') { // error = true; // this.billingAddressErrors.push('Please ensure you have filled out the county of the billing address'); // } if (this.billingAddress.postcode == '') { error = true; this.billingAddressErrors.push('Please ensure you have filled out the postcode of the billing address'); } if (error) { return false; } return true; }, sendOrderRepeat: function() { // var that = this; // this.sendOrderSuccess(this.transaction, that); }, nextPageByNumber: function(number) { if (this.complete) { // TOO LATE DO NOTHING return; } if (number > this.displayedPage) { this.nextPage(); } else { this.displayedPage = number; this.recordEvent('Returned'); } }, clearErrors: function () { this.postcodeError = false; this.postcodeInvalidError = false; this.placementError = false; this.deliveryTitleError = false; this.deliveryFirstNameError = false; this.deliveryLastNameError = false; this.discountCodeError = false; this.contact电子邮件Error = false; this.validate电子邮件Error = false; this.selectedAddressError = false; this.billingAddressError = false; this.cardNameError = false; this.cardNumberElError = false; this.cardExpiryElError = false; this.cardCvcElError = false; this.skipChoosenError = false; this.timeSlotError = false; this.orderDateError = false; this.agree条款Error = false; this.agreeSkipContentsError = false, this.paymentError = false; this.cardNameError = false; this.paymentFormInvalid = false; this.discountError = false; this.postcodeInvalidError消息 = ''; this.paymentError消息 = ''; this.discountError消息 = ''; this.addressErrors = []; }, goBackOnePage: function () { if (this.displayedPage > 1) { this.displayePage = this.displayePage - 1; } }, recordEvent: function (action) { if (this.displayedPage > 1) { $('#skip-hire-tabs').hide(); } else { $('#skip-hire-tabs').show(); } var actionText = action; if (action === 'Entered' || action === 'Returned') { actionText = 'Step' + this.displayedPage + ': ' + action; } if (action === 'Entered') { if (this.started.indexOf(this.displayedPage) >= 0 ) { // already been to and tracked as a start - change to 'Returned' this.recordEvent('Returned'); return false; } else { this.started.push(this.displayedPage); } } window.dataLayer = window.dataLayer || []; window.dataLayer.push({ 'event' : 'SkipHireEvent', 'action' : actionText, 'label' : this.uuid }); }, uuidv4: function () { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); return v.toString(16); }); }, dateSelected: function (date) { var formattedDate = moment(date).format(this.momentFormatUser); this.recordEvent('Date Choosen: ' + formattedDate); }, setCookie: function () { // console.log('cookie'); this.destroyCookie(); Cookies.set('十大棋牌游戏排行榜-skiphire', this.uuid + ',' + this.displayedPage); }, destroyCookie: function () { // console.log('destroy'); Cookies.remove('十大棋牌游戏排行榜-skiphire'); } }, mounted: function() { this.uuid = this.uuidv4(); this.recordEvent('Entered'); this.$on("changePageToNext", this.nextPage); this.$on("selectSkip", this.selectSkip); this.$on("changePageToNumber", this.nextPageByNumber); // document.addEventListener("backbutton", this.goBackOnePage, false); window.location.hash = "#step1"; this.hash = window.location.hash; that = this; setInterval(function() { if (window.location.hash != that.hash) { that.hash = window.location.hash; var page = that.hash.replace('#step', ''); // console.log(page); that.nextPageByNumber(parseInt(page)); } }, 100); }, beforeDestroy: function() { // document.removeEventListener("backbutton", this.goBackOnePage); } });