﻿function SWBeheer() { }
SWBeheer.order_id = 0;

SWBeheer.getAfspraken = function () {
    fetch('/data/account/get_afspraken.aspx')
        .then(response => response.json())
        .then(data => {
            if (data.afspraken != undefined) {
                SWTemplate.showSpinner(false);

                if (data.afspraken.length == 0) {
                    let melding = 'Geen afspraken gevonden';
                    if (data.fout != undefined && data.fout == 'Niet ingelogd') {
                        melding += ' <a href="/lib/10_html/20_account/login.html">Terug naar login</a>';
                    }
                    SWTemplate.showAlert('klant_afspraken', melding);
                } else {
                    SWBeheer.loadAfspraken(data.afspraken);
                }
            } else {
                document.location.href = '/lib/10_html/20_account/login.html';
            }
        });
}

SWBeheer.loadAfspraken = function (afspraken) {
    document.getElementById('afsprakenList').innerHTML = '';
    afspraken.forEach(afspraak => {
        let afspraak_row = document.createElement('div');
        afspraak_row.className = 'afspraak';
        let afspraak_data = `<div class="datum"><span class="date">${afspraak.datum}</span><br>${afspraak.vantijd} - ${afspraak.tottijd}</div><div class="cart">${afspraak.cart}</div>`;
        if (afspraak.order_id != undefined && afspraak.order_id > 0) {
            afspraak_row.id = 'order_' + afspraak.order_id;
            afspraak_data += `<div class="buttons"><div class="btn btn-secondary afspraak_bewerken" data-order-id="${afspraak.order_id}">Aanpassen</div></div>`;
        } else {
            afspraak_data += '<div class="buttons"></div>';
        }
        afspraak_row.innerHTML = afspraak_data;
        document.getElementById('afsprakenList').appendChild(afspraak_row);
    });

    let knoppen = document.getElementsByClassName('afspraak_bewerken');
    for (let elem of knoppen) {
        elem.addEventListener('click', SWBeheer.bewerkAfspraak);
    }

    document.getElementById('afsprakenList').style.display = 'block';
}

SWBeheer.bewerkAfspraak = function (e) {
    SWBeheer.order_id = e.target.dataset['orderId'];
    SWBeheer.getOpties();
}

SWBeheer.getOpties = function (variable = "", datum = "") {
    var vraag = {};
    vraag.order_id = SWBeheer.order_id;
    vraag.datum = datum;

    $.post("/data/reserveren/opties.aspx", vraag, function (data) {
        if (data == null) {
            SWTemplate.showAlert("agenda_fout", "Er is iets fout gegaan met uw reservering. Probeer het opnieuw.");
            jQuery.post("/data/errors.aspx", { 'message': 'Lege response op opties, ingelogd portaal', 'response': data, 'request_data': vraag });
        }
        else {
            if (data.dict.datum != undefined) {
                SWOpties.zoekdatum = data.dict.datum;
            }
            SWCalendar.getCalendar(data, SWBeheer.getOpties, 'SWBeheer.getOpties');
            SWOpties.verwerkOpties(data, 'SWBeheer.confirmOrder', 'SWBeheer.getOpties');

            document.getElementById("order_info").style.display = "none";
            document.getElementById("portal_kalender").style.display = "block";
            document.querySelector('#klant_beheer .portal_content').scrollIntoView({
                behavior: 'smooth',
                block: 'start',
                inline: 'nearest'
            });
        }
    }, "json");
}

SWBeheer.confirmOrder = function (datum, tijd, user, userpref) {
    document.querySelector('#order_info #old_date').innerHTML = document.querySelector('#order_' + SWBeheer.order_id + ' .datum').innerHTML;
    document.querySelector('#order_info .cart').innerHTML = document.querySelector('#order_' + SWBeheer.order_id + ' .cart').innerHTML;
    document.querySelector('#order_info #new_date').innerHTML = `${datum} ${tijd}`;

    let d = datum.split("-");
    let datumtijd = d[2] + "-" + d[1] + "-" + d[0] + " " + tijd;
    document.querySelector('#order_info .volgende_knop').addEventListener('click', (e) => {
        SWBeheer.changeOrder(datumtijd, user);
    });

    document.getElementById("order_info").style.display = "block";
    document.getElementById("portal_kalender").style.display = "none";
}

SWBeheer.changeOrder = function (datumtijd, user) {
    datumtijd += ':00';

    var changes = new FormData();
    changes.append('order_id', SWBeheer.order_id);
    changes.append('datumtijd', datumtijd);
    changes.append('user_id', user);

    fetch('/data/account/wijzig_afspraak.aspx', {
        method: 'POST',
        body: changes
    })
        .then(response => response.json())
        .then(data => {
            if (data.success) {
                document.getElementById("order_info").style.display = "none";
                SWTemplate.showAlert('order_change', 'Afspraak is verplaatst');

                SWBeheer.getAfspraken();
            } else {
                SWTemplate.showAlert('order_change', 'Kon afspraak niet verplaatsen');
            }
        });
}