189 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			189 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			PHP
		
	
	
<!doctype html>
 | 
						|
<html lang="{{str_replace('_', '-', app()->getLocale())}}">
 | 
						|
<head>
 | 
						|
    <meta name="get-contents" content="{{url('/contents/all')}}">
 | 
						|
    @insert("content.includes.meta")
 | 
						|
    @insert("content.includes.css")
 | 
						|
    @yield('head')
 | 
						|
</head>
 | 
						|
<body>
 | 
						|
    <nav style="background-color:  #546c8a" class="pt-1 pb-1">
 | 
						|
        <div class="container">
 | 
						|
            <div class="row">
 | 
						|
                <div class="col text-end text-light">
 | 
						|
                    <span>
 | 
						|
                        <a href="tel:+4996545529550" class="text-decoration-none">
 | 
						|
                        <svg style="fill: currentColor; width:20px; margin-bottom: 2px; margin-right: 4px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M368 336h-32c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-48-80v32c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16zm112 144h32c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16zm0-96h32c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16zm80-272H269.06C262.45 13.4 244.87 0 224 0h-80c-20.87 0-38.45 13.4-45.06 32H64C28.65 32 0 60.65 0 96v352c0 35.35 28.65 64 64 64h448c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM144 48h80v320h-80V48zm384 400c0 8.82-7.18 16-16 16H64c-8.82 0-16-7.18-16-16V96c0-8.82 7.18-16 16-16h32v288c0 26.51 21.49 48 48 48h80c26.51 0 48-21.49 48-48V80h48v72c0 22.06 17.94 40 40 40h168v256zm0-304H368V80h144c8.82 0 16 7.18 16 16v48z"/></svg>
 | 
						|
                        09654 5529550
 | 
						|
                        </a>
 | 
						|
                    </span>
 | 
						|
                    <span class="ms-5 me-5">
 | 
						|
                        <a href="mailto:support@areya.energy" class="text-decoration-none">support@areya.energy</a>
 | 
						|
                    </span>
 | 
						|
                    <span>Mo-Do: 9-17 Uhr, Fr: 9-15 Uhr</span>
 | 
						|
                </div>
 | 
						|
            </div>
 | 
						|
        </div>
 | 
						|
    </nav>
 | 
						|
    <nav style="background-color: #79b27f" class="pt-5 pb-5">
 | 
						|
        <div class="container">
 | 
						|
            <div class="row">
 | 
						|
                <div class="col-3">
 | 
						|
                    <svg  style="fill: beige; width: 50px; margin-top:-60px;margin-right: -10px;"xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><defs><style>.fa-secondary{opacity:.4}</style></defs><path d="M502.42 240.5l-94.7-47.3 33.5-100.4c4.5-13.6-8.4-26.5-21.9-21.9l-100.4 33.5-47.41-94.8a17.31 17.31 0 0 0-31 0l-47.3 94.7L92.7 70.8c-13.6-4.5-26.5 8.4-21.9 21.9l33.5 100.4-94.7 47.4a17.31 17.31 0 0 0 0 31l94.7 47.3-33.5 100.5c-4.5 13.6 8.4 26.5 21.9 21.9l100.41-33.5 47.3 94.7a17.31 17.31 0 0 0 31 0l47.31-94.7 100.4 33.5c13.6 4.5 26.5-8.4 21.9-21.9l-33.5-100.4 94.7-47.3a17.33 17.33 0 0 0 .2-31.1zm-155.9 106c-49.91 49.9-131.11 49.9-181 0a128.13 128.13 0 0 1 0-181c49.9-49.9 131.1-49.9 181 0a128.13 128.13 0 0 1 0 181z" class="fa-secondary"/><path d="M352 256a96 96 0 1 1-96-96 96.15 96.15 0 0 1 96 96z" class="fa-primary"/></svg>
 | 
						|
                    <a href="{{url('/')}}" class="fs-2 fw-bold text-decoration-none">Areya Energy</a>
 | 
						|
                </div>
 | 
						|
                <div class="col-2 fs-5 mt-2 text-center ">
 | 
						|
                <a href="{{url('/balkonkraftwerke')}}" class="text-decoration-none mt-2 fw-bold">Balkonkraftwerke</a>
 | 
						|
                </div>
 | 
						|
                <div class="col-2 fs-5 mt-2 text-center ">
 | 
						|
                    <a href="{{url('/produkte')}}" class="text-decoration-none mt-2 fw-bold">Zubehör</a>
 | 
						|
                </div>
 | 
						|
                <div class="col-2 fs-5 mt-2 text-center ">
 | 
						|
                    <a href="{{url('/service')}}" class="text-decoration-none mt-2 fw-bold">Service</a>
 | 
						|
                </div>
 | 
						|
                <div class="col-2 fs-5 mt-2 text-center ">
 | 
						|
                    <a href="{{url('/kontakt')}}" class="text-decoration-none mt-2 fw-bold">Kontakt</a>
 | 
						|
                </div>
 | 
						|
                <div class="col-1 text-end">
 | 
						|
                    <a href="" data-bs-toggle="modal" data-bs-target="#ShoppingCart" class="position-relative">
 | 
						|
                        <svg style="fill: white; width: 30px; margin-top: 6px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M352 128C352 57.42 294.579 0 224 0 153.42 0 96 57.42 96 128H0v304c0 44.183 35.817 80 80 80h288c44.183 0 80-35.817 80-80V128h-96zM224 48c44.112 0 80 35.888 80 80H144c0-44.112 35.888-80 80-80zm176 384c0 17.645-14.355 32-32 32H80c-17.645 0-32-14.355-32-32V176h48v40c0 13.255 10.745 24 24 24s24-10.745 24-24v-40h160v40c0 13.255 10.745 24 24 24s24-10.745 24-24v-40h48v256z"/></svg>
 | 
						|
                        <span class="position-absolute top-0 start-90 translate-middle badge rounded-pill bg-danger" style="display: none;" id="count-products-in-bag">0</span>
 | 
						|
                    </a>
 | 
						|
                    <div class="modal fade" id="ShoppingCart" tabindex="-1" aria-labelledby="ShoppingCart" aria-hidden="true">
 | 
						|
                        <div class="modal-dialog modal-lg">
 | 
						|
                            <div class="modal-content">
 | 
						|
                                <div class="modal-header">
 | 
						|
                                    <h5 class="modal-title" id="exampleModalLabel">
 | 
						|
                                        <svg style="fill: currentColor; width: 19px; margin-right: 8px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M352 128C352 57.42 294.579 0 224 0 153.42 0 96 57.42 96 128H0v304c0 44.183 35.817 80 80 80h288c44.183 0 80-35.817 80-80V128h-96zM224 48c44.112 0 80 35.888 80 80H144c0-44.112 35.888-80 80-80zm176 384c0 17.645-14.355 32-32 32H80c-17.645 0-32-14.355-32-32V176h48v40c0 13.255 10.745 24 24 24s24-10.745 24-24v-40h160v40c0 13.255 10.745 24 24 24s24-10.745 24-24v-40h48v256z"/></svg>
 | 
						|
 | 
						|
                                        Warenkorb</h5>
 | 
						|
                                    <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
 | 
						|
                                </div>
 | 
						|
                                <div class="modal-body">
 | 
						|
                                    <div class="row">
 | 
						|
                                        <div class="col-12">
 | 
						|
                                            <table class="table table-striped">
 | 
						|
                                                <tbody id="list-products-in-bag"></tbody>
 | 
						|
                                                <tfoot>
 | 
						|
                                                    <tr>
 | 
						|
                                                        <th class="text-start" scope="col">Gesammt:</th>
 | 
						|
                                                        <th colspan="3" class="text-end">
 | 
						|
                                                            <span id="total-price">0 €</span>
 | 
						|
                                                            <br>
 | 
						|
                                                            <small class="text-end fw-light">Preise inkl. 19% Umsatzsteuer</small>
 | 
						|
                                                        </th>
 | 
						|
                                                    </tr>
 | 
						|
                                                </tfoot>
 | 
						|
                                            </table>
 | 
						|
                                        </div>
 | 
						|
                                    </div>
 | 
						|
                                </div>
 | 
						|
                                <div class="modal-footer">
 | 
						|
                                    <a href="{{url('/checkout')}}" type="button" class="btn btn-primary">Angebot unverbindlich anfragen</a>
 | 
						|
                                </div>
 | 
						|
                            </div>
 | 
						|
                        </div>
 | 
						|
                    </div>
 | 
						|
                </div>
 | 
						|
            </div>
 | 
						|
        </div>
 | 
						|
    </nav>
 | 
						|
    <div class="container">
 | 
						|
        <div class="alert alert-warning mt-5 mb-2 alert-dismissible" style="display: none;" role="alert">
 | 
						|
            <strong>Achtung:</strong>
 | 
						|
            <br>
 | 
						|
            Aufgrund der erhöhten Nachfrage sind derzeit einige Produkte ausverkauft, bzw. nur schwer Lieferbar.
 | 
						|
            <br>
 | 
						|
            Bitte Telefonisch Lieferzeiten und Verfügbarkeiten klären.
 | 
						|
            <button type="button" class="btn-close" id="btn-close-message" data-bs-dismiss="alert" aria-label="Close"></button>
 | 
						|
        </div>
 | 
						|
    </div>
 | 
						|
    @yield('content')
 | 
						|
    @insert("content.includes.footer")
 | 
						|
    @insert("content.includes.scripts")
 | 
						|
    <script>
 | 
						|
        let objProducts = [];
 | 
						|
        let formatter = new Intl.NumberFormat('de', {style: 'currency', currency: 'EUR'});
 | 
						|
        let totalPrice = 0;
 | 
						|
        function updateProductsInLocalStorage(){
 | 
						|
            localStorage.setItem("products", JSON.stringify(objProducts));
 | 
						|
            let quantitys = objProducts.map(obj => obj.quantity);
 | 
						|
            let quantityOfProducts = 0;
 | 
						|
            for(let i = 0; i < quantitys.length; i++) { quantityOfProducts += Number(quantitys[i]); }
 | 
						|
            $('#count-products-in-bag').text(quantityOfProducts);
 | 
						|
            $('#list-products-in-bag').html('');
 | 
						|
            totalPrice = 0;
 | 
						|
            if(objProducts.length > 0) {
 | 
						|
                $('#count-products-in-bag').show();
 | 
						|
                let ids = objProducts.map(obj => obj.id);
 | 
						|
                $.get($('meta[name="get-contents"]').attr('content')+"/"+ids.join(","), function(response, status){
 | 
						|
                    response.contents.forEach(function(item){
 | 
						|
                        let objProductInfo = objProducts.find(obj => obj.id == item.id);
 | 
						|
                        let elementProduct = `
 | 
						|
                        <tr>
 | 
						|
                            <td class="text-start">
 | 
						|
                                <img class="rounded img-fluid" src="https://picsum.photos/120/120">
 | 
						|
                            </td>
 | 
						|
                            <td class="text-start">
 | 
						|
                                <span class="fs-5">${item.title}</span>
 | 
						|
                                <br>
 | 
						|
                                <small class="text-success">sofort verfügbar</small>
 | 
						|
                                <br>
 | 
						|
                                <select class="form-select form-select-sm select-quantity" data-id="${item.id}" style="width:125px;" aria-label="Default select example">`;
 | 
						|
                                for(let i = 1; i <= 5; i++){
 | 
						|
                                    if(objProductInfo.quantity == i) elementProduct += `<option selected value="${i}">Anzahl: ${i}</option>`;
 | 
						|
                                    else elementProduct += `<option value="${i}">Anzahl: ${i}</option>`;
 | 
						|
                                }
 | 
						|
                                totalPrice += item.data_fields.preis*objProductInfo.quantity;
 | 
						|
                                elementProduct += `
 | 
						|
                                    </select>
 | 
						|
                               <button data-id="${item.id}" class="btn-remove-product text-muted small text-decoration-none" style="padding: 0; border: none; background: transparen;">Löschen</button>
 | 
						|
                            </td>
 | 
						|
                            <td class="align-middle text-end">${formatter.format(item.data_fields.preis)}</td>
 | 
						|
                        </tr>`;
 | 
						|
                        $('#list-products-in-bag').append(elementProduct);
 | 
						|
                    });
 | 
						|
                    $('#total-price').text(formatter.format(totalPrice));
 | 
						|
                });
 | 
						|
            }else {
 | 
						|
                $('#list-products-in-bag').html(`
 | 
						|
                <tr>
 | 
						|
                    <td class="text-start" colspan="3"><p>keine Produkte hinzugefügt.</p></td>
 | 
						|
                </tr>`);
 | 
						|
                $('#count-products-in-bag').hide();
 | 
						|
            }
 | 
						|
            $('#total-price').text(formatter.format(totalPrice));
 | 
						|
        }
 | 
						|
        function addToBag(productId){
 | 
						|
            let objProductInfo = objProducts.find(obj => obj.id == productId);
 | 
						|
            let index = objProducts.indexOf(objProductInfo);
 | 
						|
            if(index == -1) objProducts.push({id: productId, quantity: 1});
 | 
						|
            updateProductsInLocalStorage();
 | 
						|
        }
 | 
						|
        $(window).on('load', function(){
 | 
						|
            if(localStorage.getItem("dismiss-message") == 1) $('.alert-dismissible').remove();
 | 
						|
            else $('.alert-dismissible').show();
 | 
						|
            $('#btn-close-message').click(function(){ localStorage.setItem("dismiss-message", 1); });
 | 
						|
            if(localStorage.getItem("products") != null) objProducts = JSON.parse(localStorage.getItem("products"));
 | 
						|
            updateProductsInLocalStorage();
 | 
						|
            $(document).on('click', '.btn-remove-product', function(){
 | 
						|
                let productId = $(this).attr('data-id');
 | 
						|
                let objProductInfo = objProducts.find(obj => obj.id == productId);
 | 
						|
                let index = objProducts.indexOf(objProductInfo);
 | 
						|
                if(index != -1) objProducts.splice(index, 1);
 | 
						|
                updateProductsInLocalStorage();
 | 
						|
            });
 | 
						|
            $(document).on('change', '.select-quantity', function(){
 | 
						|
                let quantity = $(this).val();
 | 
						|
                let productId = $(this).attr('data-id');
 | 
						|
                let objProductInfo = objProducts.find(obj => obj.id == productId);
 | 
						|
                let index = objProducts.indexOf(objProductInfo);
 | 
						|
                objProducts[index].quantity = quantity;
 | 
						|
                updateProductsInLocalStorage();
 | 
						|
            });
 | 
						|
        });
 | 
						|
    </script>
 | 
						|
    @yield('scripts')
 | 
						|
</body>
 | 
						|
</html>
 |