Gustavo Luigi 2023-08-09 12:45:30 -03:00
parent a19a3b69e2
commit ac51fea980
3 changed files with 51 additions and 48 deletions

View File

@ -1,7 +1,7 @@
@extends('template.'.config('settings.template').'.content.master') @extends('template.'.config('settings.template').'.content.master')
@section('head') @section('head')
<title>Checkout - Blau Solar</title> <title>Checkout - Blau Solar</title>
<link rel="stylesheet" href="{{storage('assets/libs/intl-tel-input/css/intlTelInput.min.css')}}"> <link rel="stylesheet" href="{{storage('libs/intl-tel-input/css/intlTelInput.min.css')}}">
@stop @stop
@section('content') @section('content')
<div class="container"> <div class="container">
@ -243,6 +243,6 @@
@stop @stop
@section('scripts') @section('scripts')
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAKGJCCKvmWZl-L5bBF0uS5BWf0gN4ZkpI&v=3.exp&sensor=false&libraries=places"></script> <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAKGJCCKvmWZl-L5bBF0uS5BWf0gN4ZkpI&v=3.exp&sensor=false&libraries=places"></script>
<script src="{{storage('assets/libs/intl-tel-input/js/intlTelInput.min.js')}}"></script> <script src="{{storage('libs/intl-tel-input/js/intlTelInput.min.js')}}"></script>
<script src="{{storage('js/checkout.js')}}"></script> <script src="{{storage('js/checkout.js')}}"></script>
@stop @stop

View File

@ -6,45 +6,47 @@ function clearAddressFields() {
$('#locality').val(''); $('#locality').val('');
$('#postal-code').val(''); $('#postal-code').val('');
} }
function getAddressFiedlValue(addressComponents, $field){ function getAddressFiedlValue(addressComponents, $field) {
let field = addressComponents.find(obj => obj.types.indexOf($field) > -1); let field = addressComponents.find(obj => obj.types.indexOf($field) > -1);
return field != undefined?field.long_name:''; return field != undefined ? field.long_name : '';
} }


urlBase = $('meta[name="url-base"]').attr("content");

let input = document.querySelector("#ctelefon"); let input = document.querySelector("#ctelefon");
let iti = null; let iti = null;
if(input != undefined){ if (input != undefined) {
iti = window.intlTelInput(input, { iti = window.intlTelInput(input, {
initialCountry: "de", initialCountry: "de",
preferredCountries: ["de"], preferredCountries: ["de"],
geoIpLookup: function(callback) { geoIpLookup: function (callback) {
$.get('https://ipinfo.io', function() {}, "jsonp").always(function(resp) { $.get('https://ipinfo.io', function () { }, "jsonp").always(function (resp) {
let countryCode = (resp && resp.country)?resp.country:"us"; let countryCode = (resp && resp.country) ? resp.country : "us";
callback(countryCode); callback(countryCode);
}); });
}, },
utilsScript: "/template/assets/libs/intl-tel-input/js/utils.min.js", utilsScript: urlBase + "/template/libs/intl-tel-input/js/utils.min.js",
}); });
} }
function updateProducts(){ function updateProducts() {
$('#list-products').html(''); $('#list-products').html('');
if(objProducts.length > 0){ if (objProducts.length > 0) {
getInfoFromSelectedProduct().done(function(response, status){ getInfoFromSelectedProduct().done(function (response, status) {
response.contents.forEach(function(product){ response.contents.forEach(function (product) {
let objProduct = getProductInfo(product); let objProduct = getProductInfo(product);
let elementProduct = createProductElement(objProduct); let elementProduct = createProductElement(objProduct);
$('#list-products').append(elementProduct); $('#list-products').append(elementProduct);
}); });
if(totalPrice > 0){ if (totalPrice > 0) {
$('#total-checkout-price').text(numberToEuroFormat(totalPrice)); $('#total-checkout-price').text(numberToEuroFormat(totalPrice));
}else{ } else {
$('#form-section').hide(); $('#form-section').hide();
$('#list-products').parent().parent().parent().parent().parent().find('.modal-footer').hide(); $('#list-products').parent().parent().parent().parent().parent().find('.modal-footer').hide();
$('#total-checkout-price').parent().parent().parent().hide(); $('#total-checkout-price').parent().parent().parent().hide();
$('#no-products-in-checkout').hide(); $('#no-products-in-checkout').hide();
$('#cart-error-in-checkout').show(); $('#cart-error-in-checkout').show();
} }
}).fail(function(response){ }).fail(function (response) {
$('#form-section').hide(); $('#form-section').hide();
$('#list-products').parent().parent().parent().parent().parent().find('.modal-footer').hide(); $('#list-products').parent().parent().parent().parent().parent().find('.modal-footer').hide();
$('#total-checkout-price').parent().parent().parent().hide(); $('#total-checkout-price').parent().parent().parent().hide();
@ -57,7 +59,7 @@ function updateProducts(){
$('#no-products-in-checkout').hide(); $('#no-products-in-checkout').hide();
$('#cart-error-in-checkout').hide(); $('#cart-error-in-checkout').hide();
} }
else{ else {
$('#form-section').hide(); $('#form-section').hide();
$('#list-products').parent().parent().parent().parent().parent().find('.modal-footer').hide(); $('#list-products').parent().parent().parent().parent().parent().find('.modal-footer').hide();
$('#total-checkout-price').parent().parent().parent().hide(); $('#total-checkout-price').parent().parent().parent().hide();
@ -66,19 +68,19 @@ function updateProducts(){
} }
} }


$(window).on('load', function(){ $(window).on('load', function () {
updateProducts(); updateProducts();
$("#successful-submitting-form").delay(4000).slideUp(200, function() { $(this).alert('close'); }); $("#successful-submitting-form").delay(4000).slideUp(200, function () { $(this).alert('close'); });
$('#anfrage').submit(function(event){ $('#anfrage').submit(function (event) {
event.preventDefault(); event.preventDefault();
let form = $(this); let form = $(this);
getInfoFromSelectedProduct().done(function(response, status){ getInfoFromSelectedProduct().done(function (response, status) {
let products = response.contents.map(product => { let products = response.contents.map(product => {
product = getProductInfo(product); product = getProductInfo(product);
product = calculatePrice(product); product = calculatePrice(product);
return product.quantity+'x '+product.title+' ('+numberToEuroFormat(product.calc_preis)+')'; return product.quantity + 'x ' + product.title + ' (' + numberToEuroFormat(product.calc_preis) + ')';
}); });
let cart = products.join(" - ")+" - Gesammt: "+numberToEuroFormat(totalPrice); let cart = products.join(" - ") + " - Gesammt: " + numberToEuroFormat(totalPrice);
$('#ccart').val(cart); $('#ccart').val(cart);
$('#ctelefon').val(iti.getNumber()); $('#ctelefon').val(iti.getNumber());
objProducts = []; objProducts = [];
@ -86,33 +88,33 @@ $(window).on('load', function(){
form.unbind('submit').submit(); form.unbind('submit').submit();
}); });
}); });
$(document).on('click', '.btn-remove-product', function(){ $(document).on('click', '.btn-remove-product', function () {
if(objProducts.length > 0){ if (objProducts.length > 0) {
$('#form-section').show(); $('#form-section').show();
$('#list-products').parent().parent().parent().parent().parent().find('.modal-footer').show(); $('#list-products').parent().parent().parent().parent().parent().find('.modal-footer').show();
$('#total-checkout-price').parent().parent().parent().show(); $('#total-checkout-price').parent().parent().parent().show();
$('#no-products-in-checkout').hide(); $('#no-products-in-checkout').hide();
}else{ } else {
$('#form-section').hide(); $('#form-section').hide();
$('#list-products').parent().parent().parent().parent().parent().find('.modal-footer').hide(); $('#list-products').parent().parent().parent().parent().parent().find('.modal-footer').hide();
$('#total-checkout-price').parent().parent().parent().hide(); $('#total-checkout-price').parent().parent().parent().hide();
$('#no-products-in-checkout').show(); $('#no-products-in-checkout').show();
} }
}); });
$(document).on('input', '.select-quantity', function(){ $(document).on('input', '.select-quantity', function () {
getInfoFromSelectedProduct().done(function(response, status){ getInfoFromSelectedProduct().done(function (response, status) {
totalPrice = 0; totalPrice = 0;
response.contents.forEach(function(product){ response.contents.forEach(function (product) {
let objProduct = getProductInfo(product); let objProduct = getProductInfo(product);
objProduct = calculatePrice(objProduct); objProduct = calculatePrice(objProduct);
totalPrice += objProduct.calc_preis*objProduct.quantity; totalPrice += objProduct.calc_preis * objProduct.quantity;
}); });
$('#total-checkout-price').text(numberToEuroFormat(totalPrice)); $('#total-checkout-price').text(numberToEuroFormat(totalPrice));
}); });
}); });
}); });


$(window).on('load', google.maps.event, function(){ $(window).on('load', google.maps.event, function () {
let input = document.getElementById('field_location'); let input = document.getElementById('field_location');
let options = { let options = {
types: ['address'], types: ['address'],
@ -126,16 +128,16 @@ $(window).on('load', google.maps.event, function(){
var componentMap = { var componentMap = {
country: 'country', country: 'country',
locality: 'locality', locality: 'locality',
administrative_area_level_1 : 'administrative_area_level_1', administrative_area_level_1: 'administrative_area_level_1',
administrative_area_level_2 : 'administrative_area_level_2', administrative_area_level_2: 'administrative_area_level_2',
postal_code: 'postal_code', postal_code: 'postal_code',
route: 'route', route: 'route',
street_number : 'street_number', street_number: 'street_number',
}; };
$('#address-components').show(); $('#address-components').show();
let addressComponents = autocomplete.getPlace().address_components; let addressComponents = autocomplete.getPlace().address_components;
let streetNumber = getAddressFiedlValue(addressComponents, 'street_number'); let streetNumber = getAddressFiedlValue(addressComponents, 'street_number');
if(streetNumber == '') { if (streetNumber == '') {
$('#street-number').prop('disabled', false); $('#street-number').prop('disabled', false);
$('#street-number').focus(); $('#street-number').focus();
} }
@ -150,11 +152,11 @@ $(window).on('load', google.maps.event, function(){
$('#locality').val(locality); $('#locality').val(locality);
let postalCode = getAddressFiedlValue(addressComponents, 'postal_code'); let postalCode = getAddressFiedlValue(addressComponents, 'postal_code');
$('#postal-code').val(postalCode); $('#postal-code').val(postalCode);
$('#street-number').blur(function(){ $('#street-number').blur(function () {
if($('#street-number').val() == '') $('#street-number').focus(); if ($('#street-number').val() == '') $('#street-number').focus();
else{ else {
$('#street-number').prop('disabled', true); $('#street-number').prop('disabled', true);
$('#field_location').val(route+' '+$('#street-number').val()+', '+locality+', '+country); $('#field_location').val(route + ' ' + $('#street-number').val() + ', ' + locality + ', ' + country);
} }
}); });
}); });

View File

@ -29,6 +29,7 @@ function calculatePrice(objProduct) {
} }


function createProductElement(objProduct) { function createProductElement(objProduct) {
if (!objProduct.image) objProduct.image = "";
calculatePrice(objProduct); calculatePrice(objProduct);
let elementProduct = ` let elementProduct = `
<tr> <tr>