// Numero di giorni lavorativi dalla data odierna var durgente = 3; var dpronta = 5; // Numero minimo di giorni lavorativi per la consegna var mingiorni = 6; // Massima data di consegna accettata var dmaxanno = 2022; var dmaxmese = 06; // IMPORTANTE !!!: MESE - 1 Es. gennaio = 0 , febbraio = 1, ecc.... var dmaxgiorno = 31; // Se l' ordine viene inserito dopo l' ora indicata slitta di un giorno var nextdayh = 24; // 30/05/2013 - SB - messo valore 24 per disabilitare la funzione // Estrapola l'ora corrente e la paragona con l' ora massima per l'inserimento dell' ordine // Se l' ora corrente supera l' ora massima l' ordine viene posticipato //var now = new Date(); //var hour = now.getHours(); //if (hour>=nextdayh) { // durgente = 4; // dpronta = 6; // mingiorni = 7; //} // Verifico che sia un giorno lavorativo e che ci siano almeno 7 giorni lavorativi di differenza dalla data dell' ordine function checkPrenotazione(dataobj) { chkerror=0; // Estrapolo la data minima lavorativa valida var mindayStr=endworkday(mingiorni); mindayArray=explodeArray(mindayStr,"/"); if (mindayArray[0].length==1) mindayArray[0]='0'+mindayArray[0]; if (mindayArray[1].length==1) mindayArray[1]='0'+mindayArray[1]; mindayStr=mindayArray[0]+"/"+mindayArray[1]+"/"+mindayArray[2]; // Converto la data minima lavorativa valida in oggetto Date() var validdata = new Date(mindayArray[2],mindayArray[1]-1,mindayArray[0]); // Converto la data selezionata nel calendario in oggetto Date() descdata=dataobj.value; giorno=descdata.substring(0,2); mese=descdata.substring(3,5)-1; anno=descdata.substring(6,10); var newdata = new Date(anno,mese,giorno); var newdatamax= new Date(dmaxanno,dmaxmese,dmaxgiorno) // Calcolo da differenza fra le due date e verifica che sia >=0 difference = newdata.getTime() - validdata.getTime(); difference2= newdatamax.getTime() - newdata.getTime() daysDifference = Math.floor(difference/1000/60/60/24); daysDifference2 = Math.floor(difference2/1000/60/60/24); if (daysDifference2<0){ alert ("Massima data selezionabile errata"); dataobj.value=mindayStr; chkerror=1; } // Verifico se la data selezionata e' un giorno lavorativo if ((newdata.getDay()==0) && (chkerror==0)) { alert("Data selezionata errata:Domenica");dataobj.value=""; chkerror=1; } else if ((newdata.getDay()==6) && (chkerror==0)) { alert("Data selezionata errata:Sabato");dataobj.value=""; chkerror=1; } // Verificare le festivita' nazionali if ((getFestaNaz(newdata.getFullYear(),(newdata.getMonth()+1),newdata.getDate())==true) && (chkerror==0)){ alert("Data selezionata errata: Giorno Festivo");dataobj.value=""; chkerror=1; } if ((daysDifference<0) && (chkerror==0)){ alert ("Minimo "+mingiorni+" giorni dalla data dell' ordine."); dataobj.value=mindayStr; } } // Restituisce il giorno lavorativo corretto in base al numero di giorni // trascorsi dalla data corrente function endworkday(giorni) { var giorno = new Date(1764994610000); count=0; for (i=0;i=nextdayh) alert("Ordine posticipato di un giorno poiche' inserito dopo le ore "+nextdayh+":00"); giorno=endworkday(durgente+1); window.document.frmordine.dataconsegna.value=giorno; document.getElementById ('ShowDataCalendar1').style.visibility = 'hidden'; break; // 5 giorni lavorativi case '3': if (hour>=nextdayh) alert("Ordine posticipato di un giorno poiche' inserito dopo le ore "+nextdayh+":00"); giorno=endworkday(dpronta+1); window.document.frmordine.dataconsegna.value=giorno; document.getElementById ('ShowDataCalendar1').style.visibility = 'hidden'; break; } } // Calcolo della Pasqua function getPasqua(cyear,cmonth,cday) { pyear=cyear; correction = 0; if (pyear < 1700) correction = 4; else if (pyear < 1800) correction = 5; else if (pyear < 1900) correction = 6; else if (pyear < 2100) correction = 0; else if (pyear < 2200) correction = 1; else if (pyear < 2300) correction = 2; else if (pyear < 2500) correction = 3; pday = (19 * (pyear % 19) + 24) % 30; pday = 22 + pday + (( 2 * ( pyear % 4 ) + 4 * (pyear % 7) + 6 * pday + 5 + correction) % 7); if (pday > 31) { pmonth = 4; pday = pday - 31; } else { pmonth = 3; } pday=parseInt(pday); cday=parseInt(cday); pmonth=parseInt(pmonth); cmonth=parseInt(cmonth); pyear=parseInt(pyear); cyear=parseInt(cyear); if ((cyear==pyear)&&(cmonth==pmonth)&&(cday==pday)) { //alert(cday+'/'+cmonth+'/'+cyear); return (true); } else return (false); } // Feste nazionali function getFestaNaz(cyear,cmonth,cday) { cmonth=parseInt(cmonth); cday=parseInt(cday); festa=false; //if ((cmonth==4) &&(cday==13)) festa=true; // 13 Aprile (pasqua) //if ((cmonth==4) &&(cday==21)) festa=true; // 17 marzo if ((cmonth==4) &&(cday==25)) festa=true; // 25 aprile if ((cmonth==5) &&(cday==1)) festa=true; // 1 maggio if ((cmonth==6) &&(cday==2)) festa=true; // 2 giugno if ((cmonth==6) &&(cday==3)) festa=true; // 3 giugno se ponte //if ((cmonth==8) &&(cday==7)) festa=true; // 7 agosto //if ((cmonth==8) &&(cday==8)) festa=true; // 8 agosto //if ((cmonth==8) &&(cday==9)) festa=true; // 9 agosto //if ((cmonth==8) &&(cday==10)) festa=true; // 10 agosto if ((cmonth==8) &&(cday==11)) festa=true; // 11 agosto if ((cmonth==8) &&(cday==12)) festa=true; // 12 agosto if ((cmonth==8) &&(cday==13)) festa=true; // 13 agosto if ((cmonth==8) &&(cday==14)) festa=true; // 14 agosto if ((cmonth==8) &&(cday==15)) festa=true; // 15 agosto if ((cmonth==8) &&(cday==16)) festa=true; // 16 agosto if ((cmonth==8) &&(cday==17)) festa=true; // 17 agosto if ((cmonth==8) &&(cday==18)) festa=true; // 18 agosto if ((cmonth==8) &&(cday==19)) festa=true; // 19 agosto //if ((cmonth==8) &&(cday==20)) festa=true; // 20 agosto //if ((cmonth==8) &&(cday==21)) festa=true; // 21 agosto if ((cmonth==10)&&(cday==31)) festa=true; // 31 ottobre ponte if ((cmonth==11)&&(cday==1)) festa=true; // 1 novembre //if ((cmonth==11)&&(cday==2)) festa=true; // 2 novembre ponte //if ((cmonth==12)&&(cday==7)) festa=true; // 7 dicembre if ((cmonth==12)&&(cday==8)) festa=true; // 8 dicembre if ((cmonth==12)&&(cday==9)) festa=true; // 9 dicembre //if ((cmonth==12)&&(cday==20)) festa=true; // 20 dicembre if ((cmonth==12)&&(cday==21)) festa=true; // 21 dicembre if ((cmonth==12)&&(cday==22)) festa=true; // 22 dicembre if ((cmonth==12)&&(cday==23)) festa=true; // 23 dicembre if ((cmonth==12)&&(cday==24)) festa=true; // 24 dicembre if ((cmonth==12)&&(cday==25)) festa=true; // 25 dicembre if ((cmonth==12)&&(cday==26)) festa=true; // 26 dicembre if ((cmonth==12)&&(cday==27)) festa=true; // 27 dicembre if ((cmonth==12)&&(cday==28)) festa=true; // 28 dicembre if ((cmonth==12)&&(cday==29)) festa=true; // 29 novembre if ((cmonth==12)&&(cday==30)) festa=true; // 30 novembre if ((cmonth==12)&&(cday==31)) festa=true; // 31 dicembre if ((cmonth==1) &&(cday==1)) festa=true; // 1 gennaio if ((cmonth==1) &&(cday==2)) festa=true; // 2 gennaio if ((cmonth==1) &&(cday==3)) festa=true; // 3 gennaio if ((cmonth==1) &&(cday==4)) festa=true; // 4 gennaio if ((cmonth==1) &&(cday==5)) festa=true; // 5 gennaio if ((cmonth==1) &&(cday==6)) festa=true; // 6 gennaio //if ((cmonth==1) &&(cday==7)) festa=true; // 7 gennaio //if ((cmonth==1) &&(cday==8)) festa=true; // 8 gennaio //if ((cmonth==1) &&(cday==20)) festa=true; // SIGEP //if ((cmonth==1) &&(cday==21)) festa=true; // SIGEP return(festa); }