[JavaScript]
Witam,
może najpierw krótko opiszę funkcję którą posiadam a później przedstawię problem.
Mam użytkowników, którzy mogą zapisywać się na kurs poprzez wybieranie dat z kalendarza. User może zapisać się w jednym tygodniu na maksymalnie 3 kursy. Dodatkowo każdy kurs może odbyć się raz na dzień. Dla przykładu: od dziś tj. 21.04 mogę zapisać się 3 razy do 28.04 ale w każdy inny dzień.
Na każdy tydzień user powinien móc się zapisać max 3 razy. I tu jest problem. Potrafię ograniczyć zapisy na tydzień ale na dwa/trzy już nie. Doszedłem do momentu w którym teroetycznie dzialł zapis na kolejny tydzień ale wtedy można bylo sie dopisać w poprzednim tygodniu. wklejam kod, ma ktoś pomysl jak to ugryźć?
function checkButton(){
var kurs = document.getElementById('kurs').value;
var instruktor = document.getElementById('ins').value;
var data = document.getElementById('my_hidden_input').value;
var dateMaxToday = document.getElementsByClassName('data-check-drive');
var hourOd = document.getElementById('hour-od');
var hourDo = document.getElementById('hour-do');
if(kurs == '' || instruktor == '' || data == '' || hourOd.value === "" || hourDo.value === "")
{
p.style.marginTop = "30px";
p.innerHTML = "Uzupełnij wszystkie pola.";
showInfo();
}
else if(hourOd.value === "undefined" || hourDo.value === "undefined" || hourOd.value === "Nie możesz się zapisać" || hourDo.value === "Nie możesz się zapisać")
{
p.innerHTML = "Nie możesz się zapisać w tym terminie";
showInfo();
}
else if(makeHourDrivePrakt.value !== finishHourDrivePrakt.value)
{
p.innerHTML = "Kurs został ukończony, nie możesz się zapisać na kolejne jazdy.";
showInfo();
}
else if(dateMaxToday.length !== 0)
{
var counterAllDate = 0;
var counter = 0;
var nextTerminDate = "";
for (var i = 0; i < dateMaxToday.length; i++)
{
nextTerminDate = dateMaxToday[0].value;
if(dateMaxToday[i].value === data)
{
counter ++;
}
counterAllDate++;
console.log(counterAllDate);
}
var someDate = new Date(nextTerminDate);
someDate.setDate(someDate.getDate() + 7); //number of days to add, e.x. 15 days
var dateFormatedForWeek = someDate.toISOString().substr(0,10);
if(counter > 0)
{
p.innerHTML = "Już zapisałeś się na jazdy w tym dniu.";
showInfo();
}
else if(counterAllDate === 3)
{
console.log(dateFormatedForWeek);
console.log(data);
if(data <= dateFormatedForWeek)
{
p.innerHTML = "Wykorzsytałeś już zapisy na ten tydzień.";
showInfo();
}
else
{
document.getElementById('form-data').action='';
document.getElementById('form-data').submit();
}
}
else
{
document.getElementById('form-data').action='';
document.getElementById('form-data').submit();
}
}
else if(dateMaxToday.length === 0)
{
document.getElementById('form-data').action='';
document.getElementById('form-data').submit();
}
};
btnSaveMeCours.addEventListener('click', checkButton);