//Fonction jquery pour la modification des pièces
$(document).ready(function($){
var langue = $("#langUser").val();
var verifEtat = true;
//Début Dialog
//Dialog Français
$("#dialogFR").dialog({
autoOpen: false,
position: {my: "center middle", at:"center middle", of: $("#AJAXRDV") },
width: 650,
modal: true,
buttons:{
Continue: function(){
var $raison = $("#raisons").val();
if ($raison == "Autres")
{
$raison = $("#autresTxt").val();
}
reason = $raison.trim();
$("#dialogFR").dialog("close");
paramForm = document.getElementById("add_rdv");
if (verifReason())
javaSaveAppointments(paramForm, reason);
},
Cancel: function(){
$("#dialogFR").dialog("close");
}
}
});
//Dialog Anglais
$("#dialogEN").dialog({
autoOpen: false,
position: {my: "center middle", at:"center middle", of: window },
width: 610,
modal: true,
buttons:{
Continue: function(){
var $raison = $("#raisonsEN").val();
if ($raison == "Others")
{
$raison = $("#autresTxtEN").val();
}
reason = $raison.trim();
$("#dialogEN").dialog("close");
paramForm = document.getElementById("add_rdv");
if (verifReason())
javaSaveAppointments(paramForm, reason);
//functionSaveAppointBD();
},
Cancel: function(){
$("#dialogEN").dialog("close");
}
}
});
$(".ui-dialog-titlebar").hide();
$("#raisons").change(function()
{
var $this = $(this);
if ($this.val() == "Others")
{
$("#autresTxt").show();
}
else
$("#autresTxt").hide();
});
$("#raisonsEN").change(function()
{
var $this = $(this);
if ($this.val() == "Others")
{
$("#autresTxtEN").show();
}
else
$("#autresTxtEN").hide();
});
//Verif Raisons
function verifReason()
{
verifEtat = true;
if (reason === null || reason === '')
{
verifEtat = false;
if (langue == 'fr')
{
alert('La raison de l\'échéance du rendez-vous ne peut être vide.');
}
else
{
alert('The reason of the appointment\'s expiration cannot be empty.');
}
}
else if (reason.length > 100)
{
verifEtat = false;
if (langue == 'fr')
{
alert('La raison de l\'échéance du rendez-vous ne doit pas faire plus de 100 caractères.');
}
else
{
alert('The reason of the appointment\'s expiration must be max. 100 characters long.');
}
}
return verifEtat;
}
$("#RepairCodeCom").change(function(){
var code = $(this).val();
if (code == 7 || code == 8)
{
$("#trComCode").show();
}
else
{
$("#trComCode").hide();
$("#inputNomComCode").val("");
}
});
$("div#AJAXPART").on("click", ".submit_update_part", function(){
var loop = $(this).attr('ref');
javaCheckPART(this.form, loop);
});
$("div#AJAXPART").on("mouseover", ".submit_update_part", function(){
var reference = $(this).attr('ref2');
$("#"+reference).css("background","#939090");
});
$("div#AJAXPART").on("mouseout", ".submit_update_part", function(){
var reference = $(this).attr('ref2');
$("#"+reference).css("background","#E0E0E0");
});
$("#cmdSaveContrat").click(function(e){
if ($("#projetAcomba").val() == "")
{
e.preventDefault();
alert("Le champ 'Projet Acomba' de la section 'Contrat' doit être rempli.");
}
});
});
function checkPiecesNbr(form, max, maxid, message)
{
count = 0;
if (max > 0)
{
for (x = 0; x <= maxid; x++)
{
if (form['piece_'+x] != undefined)
{
field = form['piece_'+x];
if (field.checked)
{
count +=1;
if (count > max)
{
alert(message+' max='+max);
return false;
}
}
}
}
}
return true;
}
function javaUpdDeadline(form)
{
document.getElementById("info_ech_site").innerHTML = "";
document.getElementById("info_ech_repair_date").innerHTML = "";
appel = form.appel.value;
msg = form.message.value;
dateCreation = form.dateCreation.value;
echRdDate = form.realDateRd.value;
echRdHour = form.realHourRd.value;
dayRd = form.rd_day.value;
monthRd = form.rd_month.value;
yearRd = form.rd_year.value;
hourRd = form.rd_HOUR.value;
minuteRd = form.rd_MINS.value;
// Réinitialise les deux champs qui affichent la date pour afficher les valeurs sans recharger la page.
//Date original de rendez-vous et date modifiée
dateRdOriginal = echRdDate+" "+echRdHour;
dateRdModif = yearRd+"-"+monthRd+"-"+dayRd+" "+hourRd+":"+minuteRd;
if (msg == "")
{
alert('The communication message cannot be empty.'); return;
}
//Affectation des variables selon la date sélectionnée
if (form.radioEch[0].checked)
{
echOnRepDate = form.realDateOnS.value;
echOnRepHour = form.realHourOnS.value;
dayOnRep = form.onS_day.value;
monthOnRep = form.onS_month.value;
yearOnRep = form.onS_year.value;
hourOnRep = form.onS_HOUR.value;
minuteOnRep = form.onS_MINS.value;
typeDate = "OnSite";
}
else
{
echOnRepDate = form.realDateRep.value;
echOnRepHour = form.realHourRep.value;
dayOnRep = form.rep_day.value;
monthOnRep = form.rep_month.value;
yearOnRep = form.rep_year.value;
hourOnRep = form.rep_HOUR.value;
minuteOnRep = form.rep_MINS.value;
typeDate = "Rep";
}
//Date sur site ou réparé original et date sur site ou réparé modifiée
dateOsRepOriginal = echOnRepDate+" "+echOnRepHour;
dateOsRepModif = yearOnRep+"-"+monthOnRep+"-"+dayOnRep+" "+hourOnRep+":"+minuteOnRep;
var updString = "";
//Gestion des modifications selon les changements apportés ou non
//SI la date de rendez-vous mofifiée n'est pas la même que l'original
// la date de rendez-vous sera modifiée
// SI la date sur site ou réparé modifiée n'est pas la même que l'original
// la date sur site ou réparé sera modifiée
//SINON
// SI la date sur site ou réparé modifiée n'est pas la même que l'original
// la date sur site ou réparé sera modifiée
if (dateRdModif != dateRdOriginal)
{
updString = 'ajax/ajax_UpdAppDeadline.php?id='+appel+'&dateRdOriginal='+dateRdOriginal+'&monthRd='+monthRd+'&yearRd='+yearRd+'&dayRd='+dayRd+'&hourRd='+hourRd+'&minuteRd='+minuteRd+'&nbEnreg=10&typeDate=&message='+msg;
codeRefresh = "10";
if (dateOsRepModif != dateOsRepOriginal)
{
updString = 'ajax/ajax_UpdAppDeadline.php?id='+appel+'&dateRdOriginal='+dateRdOriginal+'&monthRd='+monthRd+'&yearRd='+yearRd+'&dayRd='+dayRd+'&hourRd='+hourRd+'&minuteRd='+minuteRd+'&dateOsRepOriginal='+dateOsRepOriginal+'&monthOnRep='+monthOnRep+'&yearOnRep='+yearOnRep+'&dayOnRep='+dayOnRep+'&hourOnRep='+hourOnRep+'&minuteOnRep='+minuteOnRep+'&nbEnreg=11&typeDate='+typeDate+'&message='+msg;
codeRefresh = "11";
}
}
else
{
if (dateOsRepModif != dateOsRepOriginal)
{
updString = 'ajax/ajax_UpdAppDeadline.php?id='+appel+'&dateOsRepOriginal='+dateOsRepOriginal+'&monthOnRep='+monthOnRep+'&yearOnRep='+yearOnRep+'&dayOnRep='+dayOnRep+'&hourOnRep='+hourOnRep+'&minuteOnRep='+minuteOnRep+'&nbEnreg=01&typeDate='+typeDate+'&message='+msg;
codeRefresh = "01";
}
}
//Validation de la date, ne peut être inférieur à celle d'ouverture
dateRd = yearRd+"-"+monthRd+"-"+dayRd;
dateOnRep = yearOnRep+"-"+monthOnRep+"-"+dayOnRep;
alert("DateRd="+dateRd+" Date Création="+dateCreation);
if ((dateRd < dateCreation) || (dateOnRep < dateCreation))
{
alert('The deadline date cannot be inferior to the creation date of the call.');
return;
}
else if(updString != "")
{
result = func_CallPHP(updString);
alert('Deadline updated.'); form.message.value = "";
//Mise à jour des champs hidden relatifs aux dates
if (codeRefresh.substr(0,1) == "1")
{
form.realDateRd.value = yearRd+"-"+monthRd+"-"+dayRd;
form.realHourRd.value = hourRd+":"+minuteRd;
if (codeRefresh.substr(1,2) == "1")
{
if (typeDate == "OnSite")
{
form.realDateOnS.value = yearOnRep+"-"+monthOnRep+"-"+dayOnRep;
form.realHourOnS.value = hourOnRep+":"+minuteOnRep;
form.realDateRep.value = "null";
form.realHourRep.value = "null";
document.getElementById("info_ech_site").innerHTML = yearOnRep + "-" + monthOnRep + "-" + dayOnRep + " " + hourOnRep + ":" + minuteOnRep + ":00";
}
else if (typeDate == "Rep")
{
form.realDateRep.value = yearOnRep+"-"+monthOnRep+"-"+dayOnRep;
form.realHourRep.value = hourOnRep+":"+minuteOnRep;
form.realDateOnS.value = "null";
form.realDateOnS.value = "null";
document.getElementById("info_ech_repair_date").innerHTML = yearOnRep + "-" + monthOnRep + "-" + dayOnRep + " " + hourOnRep + ":" + minuteOnRep + ":00";
}
}
}
else
{
if (typeDate == "OnSite")
{
form.realDateOnS.value = yearOnRep+"-"+monthOnRep+"-"+dayOnRep;
form.realHourOnS.value = hourOnRep+":"+minuteOnRep;
form.realDateRep.value = "null";
form.realHourRep.value = "null";
document.getElementById("info_ech_site").innerHTML = yearOnRep + "-" + monthOnRep + "-" + dayOnRep + " " + hourOnRep + ":" + minuteOnRep + ":00";
}
else if (typeDate == "Rep")
{
form.realDateRep.value = yearOnRep+"-"+monthOnRep+"-"+dayOnRep;
form.realHourRep.value = hourOnRep+":"+minuteOnRep;
form.realDateOnS.value = "null";
form.realDateOnS.value = "null";
document.getElementById("info_ech_repair_date").innerHTML = yearOnRep + "-" + monthOnRep + "-" + dayOnRep + " " + hourOnRep + ":" + minuteOnRep + ":00";
}
}
}
}
function javaUpdDeadlineStatus(form)
{
appel = form.appel.value;
msg = form.txtStatut.value;
statut = form.deadlineStatus.value;
raison = form.deadlineReason.value;
isCappel = form.isCappel.value;
if ((msg == "" || raison == "") && statut != "ATTEINT")
{
alert('The reason and the explanation can\'t be empty if the status is not achieved.'); //msg.focus();
//return;
}
else
{
msg = msg.normalize("NFD").replace(/[\u0300-\u036f]/g, "");
statut = statut.normalize("NFD").replace(/[\u0300-\u036f]/g, "");
raison = raison.normalize("NFD").replace(/[\u0300-\u036f]/g, "");
updString = 'ajax/ajax_UpdAppDeadlineStatus.php?id='+appel+'&msg='+msg+'&statut='+statut+'&raison='+raison+'&isCappel='+isCappel;
func_CallPHP(updString);
alert('Deadline status updated.'); }
}
function checkdate(month, day, year) {
// Create date from input
const inputDate = new Date();
inputDate.setFullYear(year, month - 1, day);
inputDate.setHours(0, 0, 0, 0);
// Today's date (time removed for clean comparison)
const today = new Date();
today.setHours(0, 0, 0, 0); // normalize to midnight
// Basic validation
const validDate =
month >= 1 && month <= 12 &&
year >= 1 && year <= 32767 &&
((inputDate.getMonth() + 1) == month &&
inputDate.getDate() < 32);
if (!validDate) return false;
// Check not in the future
if (inputDate > today) return false;
return true;
}
//function mise en commentaire retrait possible test plus poussé pour validé la date
function checkdate_old (month, day, year)
{
var myDate = new Date();
myDate.setFullYear( year, (month - 1), day );
return month >= 1 && month <= 12 && year >= 1 && year <= 32767 && ((myDate.getMonth()+1) == month && day<32);
}
function IsNumeric(sText)
{
var ValidChars = "0123456789";
var IsNumber = true;
var Char;
for (i=0; i < sText.length && IsNumber==true; i++)
{
Char = sText.charAt(i);
if (ValidChars.indexOf(Char) == -1)
IsNumber = false;
}
return IsNumber;
}
function IsNumericWithDecimals(sText)
{
var ValidChars = "0123456789.";
var IsNumber=true;
var Char;
for (i = 0; i < sText.length && IsNumber == true; i++)
{
Char = sText.charAt(i);
if (ValidChars.indexOf(Char) == -1)
{
IsNumber = false;
}
}
return IsNumber;
}
function searchValidation(form)
{
if (form.name == "frmappel")
{
if (form.searchValue.value == "")
{
alert('The search field cannot be blank.'); return false;
}
}
if (form.name == "frmpiece")
{
if (form.searchPart.value == "")
{
alert('The search field cannot be blank.'); return false;
}
}
return true;
}
function chkTracking(form)
{
var pin_no = form.pin_no.value;
if (pin_no.startsWith("1Z") || pin_no.startsWith("1z"))
{
window.open('modules/ups/SoapTrackClient.php?pin_no='+form.pin_no.value, 'popup', 'height=600,width=600,resizable=yes,scrollbars=yes, titlebar=no, menubar=no, location=no');
}
else
{
window.open('modules/puro/trackingDetails.php?pin_no='+form.pin_no.value, 'popup', 'height=600,width=600,resizable=yes,scrollbars=yes, titlebar=no, menubar=no, location=no');
}
form.target = 'popup';
}
function javaAutoAddHour(start, end, hour)
{
if (start.selectedIndex == 23)
end.selectedIndex = 23;
else
end.selectedIndex = start.selectedIndex+hour;
}
function javaAutoAddMinute(hstart, hend, start, end, minute)
{
if (minute != 0)
{
if (start.selectedIndex+minute >= 60)
{
if (hstart.selectedIndex == 23)
end.selectedIndex = start.selectedIndex;
else
{
javaAutoAddHour(hstart, hend, 1);
end.selectedIndex = (start.selectedIndex+minute) - 60;
}
}
else
{
hend.selectedIndex = hstart.selectedIndex;
end.selectedIndex = start.selectedIndex+minute;
}
}
}
function trim(aString)
{
var regExpBeginning = /^\s+/;
var regExpEnd = /\s+$/;
return aString.replace(regExpBeginning, "").replace(regExpEnd, "");
}
function javaRefreshShowCall(appel)
{
appDiv = document.getElementById('AJAXINFO');
appDiv.innerHTML=func_CallPHP('ajax/ajax_RefreshShowCall.php?id='+appel);
}
function javaCheckRDV(form)
{
var dateRdv = form.dateRdv.value;
var hourBeginRdv = form.hourBeginRdv.value;
var hourEndRdv = form.hourEndRdv.value;
var doreturn = true;
var appel = form.APPEL.value;
var result2 = false;
var jassign = form.ASSIGNERV.value;
result = dateRdv;
if (result == false)
{
alert('This appointment date is not valid. Please change your selection.');
doreturn = false;
}
else if ((hourBeginRdv == hourEndRdv))
{
alert('The end hour cannot be the same as the starting hour.');
doreturn = false;
}
else if (hourBeginRdv > hourEndRdv)
{
alert('The end hour cannot be the same as the starting hour.');
doreturn = false;
}
//Rajouter une vérification si le technicien à un rendez-vous qui chevaucherait celui-ci
$.ajax({
url : 'ajax/ajax_CheckRDV.php',
type : 'POST',
data : {assigne: jassign, dateRdv: dateRdv, hourBeginRdv: hourBeginRdv, hourEndRdv: hourEndRdv},
dataType : 'text',
asynch: false,
success : function(conflit){
if (conflit == "true")
{
if (confirm("This appointment is getting conflicted with another for this tech. Continue anyway?") == false)
{
doreturn = false;
return false;
}
}
if (doreturn == true)
{
// ON N'UPDATE PLUS LES RDV DEPUIS 2018-08-20
javaSaveAppointments(form);
}
return false;
}
});
}
function javaCheckDeplacement(obj)
{
var objx = document.getElementById("DEP2");
if (obj.value == "MORE")
{
if (objx.disabled==false)
{
objx.disabled=true;
objx.style.visibility='hidden';
objx.value="";
}
else
{
objx.disabled=false;
objx.style.visibility='';
objx.focus();
}
}
else
{
objx.disabled=true;
objx.value="";
objx.style.visibility='hidden';
}
}
function GetXmlHttpObject()
{
var objXMLHttp = null;
if (window.XMLHttpRequest)
objXMLHttp=new XMLHttpRequest();
else if (window.ActiveXObject)
objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP");
return objXMLHttp;
}
//Fonction qui effectue un appel d'une page PHP en POST
//Paramètres:
//php = nom de la page PHP à exécuter
//params = liste des paramètres à passer à la page PHP EX: id=12345&technicien=abc
//messageokfr = message francais si exécution OK
//messageoken = message anglais si exécution OK
function func_CallPHP_POST(php, params, messageokfr, messageoken)
{
var req = GetXmlHttpObject();
req.open('POST', php, true);
req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
req.setRequestHeader("Content-length", params.length);
req.setRequestHeader("Connection", "close");
//Call a function when the state changes.
req.onreadystatechange = function(){
if (req.readyState == 4)
{
if (req.status == 200)
{
alertMessage(req.responseText,messageokfr,messageoken);
}
else
{
alert("Error: returned status code " + req.status + " " + req.statusText);
}
}
}
req.send(params);
}
//Fonction qui effectue un appel d'une page PHP en POST et qui effectue un refresh des informations de l'appel
//Paramètres:
//php = nom de la page PHP à exécuter
//params = liste des paramètres à passer à la page PHP EX: id=12345&technicien=abc
//messageokfr = message francais si exécution OK
//messageoken = message anglais si exécution OK
//appel = no de l'appel pour lequel il faut faire le refresh
function func_CallPHP_POST_with_Call_Refresh(php, params, messageokfr, messageoken, appel)
{
var req = GetXmlHttpObject();
req.open('POST', php, true);
req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
req.setRequestHeader("Content-length", params.length);
req.setRequestHeader("Connection", "close");
//Call a function when the state changes.
req.onreadystatechange = function(){
if (req.readyState == 4)
{
if (req.status == 200)
{
alertMessage(req.responseText,messageokfr,messageoken);
javaRefreshShowCall(appel);
}
else
{
alert("Error: returned status code " + req.status + " " + req.statusText);
}
}
}
req.send(params);
}
//Fonction qui effectue un appel d'une page PHP en POST et qui effectue un reset du formulaire de saisie des travaux
//Paramètres:
//php = nom de la page PHP à exécuter
//params = liste des paramètres à passer à la page PHP EX: id=12345&technicien=abc
//messageokfr = message francais si exécution OK
//messageoken = message anglais si exécution OK
function func_CallPHP_POST_travaux(php, params, messageokfr, messageoken, form)
{
var req = GetXmlHttpObject();
req.open('POST', php, true);
req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
req.setRequestHeader("Content-length", params.length);
req.setRequestHeader("Connection", "close");
//Call a function when the state changes.
req.onreadystatechange = function() {
if (req.readyState == 4)
{
if (req.status == 200)
{
alertMessage(req.responseText,messageokfr,messageoken);
if (trim(req.responseText) == "OK")
{
resetWorkForm(form);
}
}
else
{
alert("Error: returned status code " + req.status + " " + req.statusText);
}
}
}
req.send(params);
}
function alertMessage(result, messageokfr, messageoken)
{
if (messageokfr.length > 0)
{
if (trim(result) == "OK")
{
alert(messageoken); }
else
{
alert(result);
}
}
}
function func_CallPHP(php)
{
var req = GetXmlHttpObject();
req.open('GET', php, false);
req.send(null);
return req.responseText;
}
function javaGetFullname(form)
{
assign = form.ASSIGNE.value;
tech = form.TECH;
tech.value = func_CallPHP('ajax/ajax_GetFullname.php?id='+assign);
}
function javaCreateWaybill(form)
{
ship = form.shipping;
waybill = form.waybill;
appel = form.id.value;
if (trim(waybill.value) == "")
{
newwaybill = func_CallPHP('ajax/ajax_GenerateWaybill.php?id='+appel);
waybill.value = newwaybill;
newwaybillurl = func_CallPHP('ajax/ajax_GetWaybill.php?waybill='+waybill);
newwindow = window.open(newwaybillurl,'Waybill','');
if (window.focus)
{
newwindow.focus();
}
return false;
}
else
{
alert('The waybill must be empty to generate a return waybill.'); waybill.focus();
}
}
function javaSendMessage(form)
{
if($(".visible_Cust option:selected").val() == '')
{
$(".visible_Cust option:selected").focus();
alert('Selectionnez une visibilite // Choose a visibility');
}
else
{
var status = $(".comm_status option:selected").val();
var doreturn = javaCheckPartChange(status);
if (doreturn != true)
{
return;
}
appel = form.appel;
assign = form.ASSIGNE;
tech = form.TECH;
statut = form.STATUS;
statut_plus = form.STATUS_PLUS;
visibility = form.VISIBLE_CUSTOMER;
msg = form.message;
//*** SECTION POUR LES APPELS UNISYS SEULEMENT ***
if (form['RepairCodeCom'] != undefined)
{
code = form.RepairCodeCom;
code = code.options[code.selectedIndex].value;
//Code Unisys probablement
if (code == 7 || code == 8)
{
if ($("#inputNomComCode").val() == "")
{
alert("You must enter a contact name.");
$("#inputNomComCode").focus();
return false;
}
}
}
else
code = '';
if (msg.value == "")
{
alert("The communication message cannot be empty.");
msg.focus();
return;
}
//Validation si le Statut_plus est selectionnez
ClientStatut = false;
$.each($("#STATUS_PLUS.comm_status_plus").find('option'), function(key, value) {
if ($(value).hasClass($("#STATUS.comm_status").val()))
{
ClientStatut = true;
}
});
if (statut_plus.value == "" && ClientStatut)
{
alert("The Client Status must be selected");
msg.focus();
return;
}
$.ajax({
type: "POST",
url: "ajax/SendMessage.php?id=" + appel.value
+ "&STATUS=" + encodeURI(statut.value)
+ "&STATUS_PLUS=" + encodeURI(statut_plus.value)
+ "&TECH=" + tech.value
+ "&CODE=" + code
+ "&VISIBLECUSTOMER=" + visibility.value
+ "&CONTACTNAME=" + $('#inputNomComCode').val(),
contentType: 'application/json',
dataType: "text",
data: JSON.stringify(msg.value),
success: function (result){
if (result == "OK")
{
alert("The communication has been sent succesfully.");
$('#messageTxt').val("");
}
else
{
alert("An error has been detected. Please notify the system administrators.: [AJAX ERROR]');");
alert(result);
}
}
});
}
}
// function qui vérifie si des champs du formulaire de pieces ont été modifié
// et n'on pas été enregistré, si oui return false
function javaCheckPartChange(status)
{
var part_change = 0;
$(".form_list_part td :input.submit_update_part").each(function(){
if ($(this).hasClass('input_change_part'))
{
part_change++;
}
});
if (status == 'TERMINÉ/A FERMER' && part_change > 0 )
{
alert('Warning! You must record your parts before closing the call');
$('html, body').animate({
scrollTop: $(".form_list_part").offset().top
}, 1500);
return false;
}
return true;
}
function javaCheckWorkMultipleTech(form) {
var extra = JSON.parse(form.TECH_extra.value);
if (extra.length > 0) {
extra.forEach(function(item) {
form.TECH.value = item;
if (!javaCheckWORKTIME(form)) {
return false;
}
});
return true;
} else {
return javaCheckWORKTIME(form);
}
}
//Fonction qui vérifie les différents critères avant l'ajout de temps
function javaCheckWORKTIME(form) {
var tech = form.TECHID;
var desc = form.DESCRIPTION;
var km = form.KM;
var month = form.date1_month.value;
var year = form.date1_year.value;
var day = form.date1_day.value;
var starthour = form.WRKSTART_HOUR.value;
var startminute = form.WRKSTART_MINS.value;
var beginhour = form.WRKBEGIN_HOUR.value;
var beginminute = form.WRKBEGIN_MINS.value;
var endhour = form.WRKEND_HOUR.value;
var endminute = form.WRKEND_MINS.value;
var returnhour = form.WRKRETURN_HOUR.value;
var returnminute = form.WRKRETURN_MINS.value;
var categorie = form.FACTURABLE.value;
var reason = "";
var kmgoogle = null;
var tempsgoogle = null;
var statusAdmin = form.STATUS.value;
var status_plus = form.STATUS_PLUS.value;
var authnumber = null;
if (form.proautorisationnumber != null) authnumber = form.proautorisationnumber.value;
var auth = null;
if (form.Auth != null) auth = form.Auth.value;
if (form.kmgoogle != null) kmgoogle = form.kmgoogle.value;
if (form.tempsgoogle != null) tempsgoogle = form.tempsgoogle.value;
if (form.RepairCodeIngenico != null) repairCodeIngenico = form.RepairCodeIngenico.value;
var doreturn = true;
var status = $(".work_status option:selected").val();
var project = form.project.value;
doreturn = javaCheckPartChange(status);
result = checkdate(month,day,year);
if (result == false) {
alert('Work date is invalid. Change your selection.'); doreturn = false;
}
if (trim(tech.value) == "") {
//Vérifier si le nom est inscrit à la main.
tech = form.TECH;
if (trim(tech.value) == "") {
alert('Technician\'s name is missing.');
tech.focus();
doreturn = false;
}
}
//Validation si le Statut_plus est selectionnez
ClientStatut = false;
$.each($("#STATUS_PLUS.work_status_plus").find('option'), function(key, value) {
if ($(value).hasClass($("#STATUS.work_status").val())) {
ClientStatut = true;
}
});
if (form.STATUS_PLUS.value == "" && ClientStatut) {
alert("The Client Status must be selected");
doreturn = false;
}
if(auth == '1') {
//Init. du temps charles
var whour = endhour - beginhour;
var wtemps = 0;
var validation = 0;
console.log(beginminute);
console.log(endminute);
if (beginminute > endminute) {
wtemps = (((parseInt(whour) * 60) - parseInt(beginminute)) + parseInt(endminute));
}
else {
wtemps = ( parseInt(whour) * 60)+( parseInt(endminute) - parseInt(beginminute));
}
console.log(wtemps);
//envoie au php pour terminer validation
validation = func_CallPHP('ajax/call/auth.php?appel='+form.id.value+'&temps='+wtemps+'&auth='+authnumber);
if(validation > 0 ) {
if(validation == 1)
alert("You must enter a valid Progitech authorization number for call requiring more than 1 hour on site");
if(validation == 2)
alert("You must enter a valid Progitech authorization number for call requiring more than 1.5 hours on site");
if(validation == 3)
alert("You must enter a valid Progitech authorization number for call requiring more than 1 hour on site or a DPS number from Dell (if applicable)");
if(validation == 4)
alert("You must enter a valid Progitech authorization number for call requiring more than 2 hour on site");
if(validation == 5)
alert("You must enter a valid Progitech authorization number for call requiring more than 1 hour and 15 minutes on site");
if(validation == 6)
alert("You must enter a valid Progitech authorization number for call requiring more than 3 hour on site");
doreturn = false;
}
}
if (form.NomCie.value != "COMPUGEN") {
if (trim(desc.value) == "" || desc.value.length < 10) {
alert('Work description is missing or not long enough (minimum 10 characters).');
desc.focus();
doreturn = false;
}
} else {
//Valider les champs uniques à CPU
var curr = form['CPU_DESC_PROB'];
var currv = trim(curr.value);
if (curr == "" || currv.length < 10) {
alert('Description of the problem is not long enough (minimum 10 characters).');
curr.focus();
doreturn = false;
} else if (currv.length > 1000) {
alert('Description of the problem too long (maximum 500 characters).'); curr.focus();
doreturn = false;
}
curr = form['CPU_DESC_FREQ'];
currv = trim(curr.value);
if (currv == "" || currv.length < 10) {
alert('Description of frequency is not long enough (minimum 10 characters).'); curr.focus();
doreturn = false;
} else if (currv.length > 1000) {
alert('Description of frequency is too long (maximum 500 characters).'); curr.focus();
doreturn = false;
}
curr = form['CPU_DESC_TRAITE'];
currv = trim(curr.value);
if (currv == "" || currv.length < 10) {
alert('Work description is not long enough (minimum 10 characters).'); curr.focus();
doreturn = false;
} else if (currv.length > 1000) {
alert('Work description is too long (maximum 500 characters).'); curr.focus();
doreturn = false;
}
}
if (IsNumeric(km.value) == false) {
alert('KMs only allow numeric format.'); km.focus();
doreturn = false;
}
if (km.value == '') {
alert('KMs only allow numeric format.'); km.focus();
doreturn = false;
}
//Valider que l'heure de fin soit plus grande que l'heure de début
if (beginhour > endhour) {
alert('if your time go over midnight, make two entry.'); form.WRKEND_HOUR.focus();
doreturn = false;
}
if (beginhour == endhour) {
if (beginminute >= endminute) {
alert('End hour must be greater than begin hour.'); form.WRKEND_HOUR.focus();
doreturn = false;
}
}
//Valider que l'heure de début soit plus grande que l'heure de départ
if (starthour != 0 || startminute != 0) {
if (starthour > beginhour) {
alert('Begin hour must be greater or equal than start hour.'); form.WRKSTART_HOUR.focus();
doreturn = false;
}
if (starthour == beginhour) {
if (startminute > beginminute) {
alert('Begin hour must be greater or equal than start hour.'); form.WRKSTART_HOUR.focus();
doreturn = false;
}
}
}
//Valider que l'heure de retour soit plus grande que l'heure de fin
if (returnhour != 0 || returnminute != 0) {
if (endhour > returnhour)
{
alert('Return hour must be greater or equal than end hour.'); form.WRKRETURN_HOUR.focus();
doreturn = false;
}
if (endhour == returnhour) {
if (endminute > returnminute) {
alert('Return hour must be greater or equal than end hour.'); form.WRKRETURN_HOUR.focus();
doreturn = false;
}
}
}
if ( project == 'CDM' ){
var CDM_Agent = form.CDM_Agent.value;
var CDM_Parking = document.querySelector("#CDM_PARKING");
var CDM_Parking_Price = form.CDM_PARKING_PRICE.value;
if( (CDM_Agent == null || CDM_Agent == '')){
alert('Please enter the necessaries informations on the CDM project(CDM agent and parking)'); form.CDM_AGENT.focus();
doreturn = false;
}
if(CDM_Parking.checked == true && (CDM_Parking_Price == null|| CDM_Parking_Price == '')){
alert('Please enter the necessaries informations on the CDM project(CDM agent and parking)');s
form.CDM_PARKING_PRICE.focus();
doreturn = false;
}
}
//Si l'appel n'est pas un administration, v�rifier les kms et le temps
if (statusAdmin != 'ADMINISTRATION') {
//Vérifier si le temps de déplacement et les kms sont plus grands que ceux calculer par Google
//Vérification des KM selon google
var check = true;
var invalide1 = "";
var invalide2 = "";
var lousse = 0.05;
if (kmgoogle != null && kmgoogle > 0) {
if (parseInt(km.value) > parseInt(kmgoogle)) {
check = false;
invalide1 = km.value+" km ";
invalide2 = kmgoogle+" km";
}
}
if (tempsgoogle != null && tempsgoogle > 0) {
var debutTemps = new Date();
var departTemps = new Date();
var retourTemps = new Date();
var finTemps = new Date();
var checkTemps = new Date();
checkTemps.setHours(0);
checkTemps.setMinutes(0);
checkTemps.setSeconds(0);
checkTemps.setMilliseconds(0);
//Convertir l'heure début en temps utilisable
debutTemps.setHours(beginhour);
debutTemps.setMinutes(beginminute);
debutTemps.setSeconds(0);
debutTemps.setMilliseconds(0);
//Convertir l'heure départ en temps utilisable
departTemps.setHours(starthour);
departTemps.setMinutes(startminute);
departTemps.setSeconds(0);
departTemps.setMilliseconds(0);
//Convertir l'heure retour en temps utilisable
retourTemps.setHours(returnhour);
retourTemps.setMinutes(returnminute);
retourTemps.setSeconds(0);
retourTemps.setMilliseconds(0);
//Convertir l'heure fin en temps utilisable
finTemps.setHours(endhour);
finTemps.setMinutes(endminute);
finTemps.setSeconds(0);
finTemps.setMilliseconds(0);
if (departTemps.getTime() == checkTemps.getTime()) {
var min1 = 0;
} else {
var min1 = Math.abs(debutTemps - departTemps);
min1 = min1 / 60000;
}
if (retourTemps.getTime() == checkTemps.getTime()) {
var min2 = 0;
} else {
var min2 = Math.abs(retourTemps - finTemps);
min2 = min2 / 60000;
}
var tempsTotal = min1 + min2;
var tempsgooglelousse = Math.ceil(parseInt(tempsgoogle) + (parseInt(tempsgoogle) * lousse));
if (tempsTotal > tempsgooglelousse) {
check = false;
if (invalide1 =="") {
invalide1 = tempsTotal+" min";
invalide2 = tempsgoogle+" min";
} else {
invalide1 = invalide1 + ", "+tempsTotal+" min";
invalide2 = invalide2 +", " + tempsgoogle+" min";
}
}
}
} else {
var check = true;
}
if ((!check) && (doreturn)) {
reason = prompt('Why is your travel ('+invalide1+') greater than Google calculation ('+invalide2+') ?',''); if (reason == null || reason == "") {
alert('The reason of the exceeding cannot be empty.\n\nIf a popup window didn\'t show up, add the site to the trusted sites in your Internet browser because a javascript security is activated.'); doreturn = false;
}
}
// Si c'est un appel Ingenico et qu'il n'y a pas de code de réparation
if (form.RepairCodeIngenico != null) {
if ( repairCodeIngenico == "vide") {
alert('Resolution code must be chosen.'); doreturn = false;
}
}
//Ajout de la confirmation de la saisie de travaux. Si l'utilisateur clique ok, l'entrée de temps va s'effectuer.
if (doreturn == true) {
var totalworkhour;
var totalworkminute;
var totaltravelhour;
var totaltravelminute;
var totalhour;
var totalminute;
if (returnhour == 0 && returnminute == 0) {
returnhour = endhour;
returnminute = endminute;
}
if (starthour == 0 && startminute == 0) {
starthour = beginhour;
startminute = beginminute;
}
//Calcul travail
totalworkhour = endhour - beginhour;
if (beginminute > endminute) {
totalworkminute = ((parseInt(endminute) + 60) - parseInt(beginminute));
totalworkhour = totalworkhour - 1;
} else {
totalworkminute = endminute - beginminute;
}
//Calcul total
totalhour = returnhour - starthour;
if (startminute > returnminute) {
totalminute = ((parseInt(returnminute) + 60) - parseInt(startminute));
totalhour = totalhour - 1;
} else {
totalminute = returnminute - startminute;
}
//Calcul déplacement
totaltravelhour = totalhour - totalworkhour;
if (totalworkminute > totalminute) {
totaltravelminute = ((parseInt(totalminute) + 60) - parseInt(totalworkminute));
totaltravelhour = totaltravelhour - 1;
} else {
totaltravelminute = totalminute - totalworkminute;
}
if (totaltravelminute < 10) totaltravelminute = '0' + totaltravelminute;
if (totalworkminute < 10) totalworkminute = '0' + totalworkminute;
if (totalminute < 10) totalminute = '0' + totalminute;
var statuttext = form.STATUS.options[form.STATUS.selectedIndex].text
if (!confirm('Date:\t\t' + year + '/' + month + '/' + day + '\r\nStart:\t\t' + starthour + ':' + startminute + '\r\nBegin:\t\t' + beginhour + ':' + beginminute + '\r\nEnd:\t\t' + endhour + ':' + endminute + '\r\nReturn:\t\t' + returnhour + ':' + returnminute + '\r\n\r\nTotal work\t' + totalworkhour + ':' + totalworkminute + '\r\nTotal travel\t' + totaltravelhour + ':' + totaltravelminute + '\r\nTotal\t\t' + totalhour + ':' + totalminute + '\r\nKm\t\t' + form.KM.value + '\r\n\r\nStatus\t\t' + statuttext + '\r\n\r\nClick OK to confirm your work time and all parts that have been used/returned.')){doreturn = false;} }
if (doreturn == true) {
javaAddWorktime(form, reason);
return true;
} else {
return false;
}
}
//Fonction qui fait le call la page d'ajout de temps dans la base de données
function javaAddWorktime(form, reason) {
var appel = form.id;
var who_signed_work_order = form.who_signed_work_order.value;
var ingenico_talk_person = '';
if (form.ingenico_talk_person != null) {
ingenico_talk_person = form.ingenico_talk_person.value;
}
var project = form.project.value;
var day = form.date1_day;
var month = form.date1_month;
var year = form.date1_year;
var starthour = form.WRKSTART_HOUR;
var startminute = form.WRKSTART_MINS;
var beginhour = form.WRKBEGIN_HOUR;
var beginminute = form.WRKBEGIN_MINS;
var endhour = form.WRKEND_HOUR;
var endminute = form.WRKEND_MINS;
var returnhour = form.WRKRETURN_HOUR;
var returnminute = form.WRKRETURN_MINS;
var techid = form.TECHID;
var technicien = form.TECH;
var categorie = form.FACTURABLE;
var waybill = form.WAYBILL;
var statut = form.STATUS;
var statut_plus = form.STATUS_PLUS;
var description = form.DESCRIPTION;
var serial = form.SERIAL;
var model = form.MODELE;
var brand = form.MARQUE;
var dep2 = form.DEP2;
var po = '&PO='+form.PO.value;
var km = form.KM;
var authnumber = '';
var authcheck = 'Non';
var nextvisit = 'Non';
var noparts = 'Non';
var installedsequences = '0';
var uninstalledsequences = '0';
var repaircode = '';
var repaircode2 = '';
var repaircode3 = '';
var repairCodeIngenico1 = '';
var repairCodeIngenico2 = '';
var repairCodeIngenico3 = '';
var cpu_pagecount = '';
var cpu_old_id = '';
var cpu_callin = '';
var cpu_callout = '';
var cpu_new_sn = '';
var cpu_new_model = '';
var cpu_new_brand = '';
var cpu_new_id = '';
var cpu_new_status = '';
var cpu_temporary = '';
var cpu_temporary_test = '';
var cpu_desc_prob = '';
var cpu_desc_freq = '';
var cpu_desc_traite = '';
var flex1 = '';
var flex2 = '';
var flex3 = '';
var flex4 = '';
var tag1 = '';
var tag2 = '';
var tag3 = '';
var tag4 = '';
var tag5 = '';
var tag6 = '';
var tag7 = '';
var tag8 = '';
var lowvoltage = '';
var CDM_Parking = document.querySelector("#CDM_PARKING");
if (technicien.value.length==0) {
technicien.value = techid.options[techid.selectedIndex].text;
}
if (form['noparts'] != undefined) {
if (form.noparts.checked) {
noparts = 'Oui';
}
}
if (form['iAuthorizationNumber'] != undefined) {
authnumber = form.iAuthorizationNumber.value;
}
if (form['proautorisationnumber'] != undefined) {
authnumber = form.proautorisationnumber.value;
}
if (form['iAuthorizationCheck'] != undefined) {
if (form.iAuthorizationCheck.checked) {
authcheck = 'Oui';
}
}
if (form['iNextVisit'] != undefined) {
if (form.iNextVisit.checked) {
nextvisit = 'Oui';
}
}
if (form['InstalledSequences'] != undefined) {
installedsequences = form.InstalledSequences.value;
}
if (form['UninstalledSequences'] != undefined) {
uninstalledsequences = form.UninstalledSequences.value;
}
if (form['RepairCode'] != undefined) {
if (form['RepairCodeTextHidden'] != undefined) {
repaircode = form.RepairCodeTextHidden.value;
} else {
repaircode = form.RepairCode.value;
}
}
if (form['RepairCode2'] != undefined) {
if (form['RepairCode2TextHidden'] != undefined) {
repaircode2 = form.RepairCode2TextHidden.value;
} else {
repaircode2 = form.RepairCode2.value;
}
}
if (form['RepairCode3'] != undefined) {
if (form['RepairCode3TextHidden'] != undefined) {
repaircode3 = form.RepairCode3TextHidden.value;
} else {
repaircode3 = form.RepairCode3.value;
}
}
if (form['repairCodeIngenico1'] != undefined) {
repairCodeIngenico1 = form.repairCodeIngenico1.value;
}
if (form['repairCodeIngenico2'] != undefined) {
repairCodeIngenico2 = form.repairCodeIngenico2.value;
}
if (form['repairCodeIngenico3'] != undefined) {
repairCodeIngenico3 = form.repairCodeIngenico3.value;
}
//Champs CPU 2017-03-15 SAG-JDG
if (form['OLD_ID'] != undefined) {
cpu_old_id = form.OLD_ID.value;
}
if (form['PAGECOUNT'] != undefined) {
cpu_pagecount = form.PAGECOUNT.value;
}
if (form['NEW_SERIAL'] != undefined) {
cpu_new_sn = form.NEW_SERIAL.value;
}
if (form['NEW_MODELE'] != undefined) {
cpu_new_model = form.NEW_MODELE.value;
}
if (form['NEW_MARQUE'] != undefined) {
cpu_new_brand = form.NEW_MARQUE.value;
}
if (form['NEW_ID'] != undefined) {
cpu_new_id = form.NEW_ID.value;
}
if (form['cpuStatus'] != undefined) {
cpu_new_status = form.cpuStatus.value;
}
if (form['cpuIn'] != undefined) {
cpu_callin = form.cpuIn.value;
}
if (form['cpuOut'] != undefined) {
cpu_callout = form.cpuOut.value;
}
if (form['cpuRes'] != undefined) {
if (form.cpuRes.checked) {
cpu_temporary = 'Y';
} else {
cpu_temporary = 'N';
}
}
if (form['cpuResTest'] != undefined) {
if (form.cpuResTest.checked) {
cpu_temporary_test = 'Y';
} else {
cpu_temporary_test = 'N';
}
}
//Nouveaux champs CPU 2018-05-03 SAG-JDG
if (form['CPU_DESC_PROB'] != undefined) {
cpu_desc_prob = form.CPU_DESC_PROB.value;
}
if (form['CPU_DESC_FREQ'] != undefined) {
cpu_desc_freq = form.CPU_DESC_FREQ.value;
}
if (form['CPU_DESC_TRAITE'] != undefined) {
cpu_desc_traite = form.CPU_DESC_TRAITE.value;
}
if(form['flex1'] != undefined){ flex1 = form.flex1.value; }
if(form['flex2'] != undefined){ flex2 = form.flex2.value; }
if(form['flex3'] != undefined){ flex3 = form.flex3.value; }
if(form['flex4'] != undefined){ flex4 = form.flex4.value; }
if(form['tag1'] != undefined){ tag1 = form.tag1.value; }
if(form['tag2'] != undefined){ tag2 = form.tag2.value; }
if(form['tag3'] != undefined){ tag3 = form.tag3.value; }
if(form['tag4'] != undefined){ tag4 = form.tag4.value; }
if(form['tag5'] != undefined){ tag5 = form.tag5.value; }
if(form['tag6'] != undefined){ tag6 = form.tag6.value; }
if(form['tag7'] != undefined){ tag7 = form.tag7.value; }
if(form['tag8'] != undefined){ tag8 = form.tag8.value; }
if(form['RJ45_CAT5_3FT'] != undefined){
if(parseFloat(form.RJ45_CAT5_3FT.value) > 0){
lowvoltage += (lowvoltage ? ', ' : '') + 'RJ45_CAT5_3FT: ' + form.RJ45_CAT5_3FT.value;
}
}
if(form['RJ45_CAT5_6FT'] != undefined){
if(parseFloat(form.RJ45_CAT5_6FT.value) > 0){
lowvoltage += (lowvoltage ? ', ' : '') + 'RJ45_CAT5_6FT: ' + form.RJ45_CAT5_6FT.value;
}
}
if(form['RJ45_CAT5_10FT'] != undefined){
if(parseFloat(form.RJ45_CAT5_10FT.value) > 0){
lowvoltage += (lowvoltage ? ', ' : '') + 'RJ45_CAT5_10FT: ' + form.RJ45_CAT5_10FT.value;
}
}
if(form['RJ45_CAT6_3FT'] != undefined){
if(parseFloat(form.RJ45_CAT6_3FT.value) > 0){
lowvoltage += (lowvoltage ? ', ' : '') + 'RJ45_CAT6_3FT: ' + form.RJ45_CAT6_3FT.value;
}
}
if(form['RJ45_CAT6_6FT'] != undefined){
if(parseFloat(form.RJ45_CAT6_6FT.value) > 0){
lowvoltage += (lowvoltage ? ', ' : '') + 'RJ45_CAT6_6FT: ' + form.RJ45_CAT6_6FT.value;
}
}
if(form['RJ45_CAT6_10FT'] != undefined){
if(parseFloat(form.RJ45_CAT6_10FT.value) > 0){
lowvoltage += (lowvoltage ? ', ' : '') + 'RJ45_CAT6_10FT: ' + form.RJ45_CAT6_10FT.value;
}
}
if(form['CAT5_PERFOOT'] != undefined){
if(parseFloat(form.CAT5_PERFOOT.value) > 0){
lowvoltage += (lowvoltage ? ', ' : '') + 'CAT5_PERFOOT: ' + form.CAT5_PERFOOT.value;
}
}
if(form['CAT6_PERFOOT'] != undefined){
if(parseFloat(form.CAT6_PERFOOT.value) > 0){
lowvoltage += (lowvoltage ? ', ' : '') + 'CAT6_PERFOOT: ' + form.CAT6_PERFOOT.value;
}
}
if(form['BISCUITS'] != undefined){
if(parseFloat(form.BISCUITS.value) > 0){
lowvoltage += (lowvoltage ? ', ' : '') + 'BISCUITS: ' + form.BISCUITS.value;
}
}
if(form['FACEPLATE'] != undefined){
if(parseFloat(form.FACEPLATE.value) > 0){
lowvoltage += (lowvoltage ? ', ' : '') + 'FACEPLATE: ' + form.FACEPLATE.value;
}
}
if(form['RJ45_JACKS'] != undefined){
if(parseFloat(form.RJ45_JACKS.value) > 0){
lowvoltage += (lowvoltage ? ', ' : '') + 'RJ45_JACKS: ' + form.RJ45_JACKS.value;
}
}
/*Fin des champs CPU*/
if(project == 'CDM'){
//Champs CDM
if (form['CDM_Agent'] != undefined) {
description.value = description.value + '
name and number of the CDM agent : ' + form.CDM_Agent.value;
}
if (form['CDM_PARKING'] != undefined) {
if(CDM_Parking.checked){
description.value = description.value + '
parking fees : Yes ';
}
else{
description.value = description.value + '
parking fees : No ';
}
}
if (form['CDM_PARKING_PRICE'] != undefined && CDM_Parking.checked) {
description.value = description.value + '
Price : ' + form.CDM_PARKING_PRICE.value;
}
}
if (reason == null) {
reason = "";
}
//APPEL DE LA FONCTION AJAX POUR L'AJOUT DES TRAVAUX
var params = 'id='+appel.value+'&date1_day='+day.value+'&date1_month='+month.value
+'&date1_year='+year.value+'&WRKSTART_HOUR='+starthour.value
+'&WRKSTART_MINS='+startminute.value+'&TECHID='+techid.value
+'&WAYBILL='+waybill.value+'&WRKBEGIN_HOUR='+beginhour.value+'&TECH='+technicien.value
+'&WRKBEGIN_MINS='+beginminute.value+'&FACTURABLE='+categorie.value
+'&STATUS='+statut.value+'&STATUS_PLUS='+statut_plus.value+'&DESCRIPTION='+encodeURIComponent(description.value)
+'&SERIAL='+serial.value+po+'&KM='+km.value+'&WRKEND_HOUR='+endhour.value
+'&WRKEND_MINS='+endminute.value+'&WRKRETURN_HOUR='+returnhour.value
+'&WRKRETURN_MINS='+returnminute.value+'&AUTHNUMBER='+authnumber
+'&AUTHCHECK='+authcheck+'&NEXTVISIT='+nextvisit+'&NOPARTS='+noparts
+'&INSTALLEDSEQUENCES='+installedsequences+'&UNINSTALLEDSEQUENCES='+uninstalledsequences
+'&REPAIRCODE='+repaircode+'&REPAIRCODE2='+repaircode2+'&REPAIRCODE3='+repaircode3
+'&MODELE='+model.value+'&MARQUE='+brand.value+'&REASON='+reason+'&repairCodeIngenico1='+repairCodeIngenico1
+'&repairCodeIngenico2='+repairCodeIngenico2+'&repairCodeIngenico3='+repairCodeIngenico3
+'&who_signed_work_order='+who_signed_work_order+'&ingenico_talk_person='+ingenico_talk_person
+'&cpu_pagecount='+cpu_pagecount+'&cpu_old_id='+cpu_old_id+'&cpu_callin='+cpu_callin+'&cpu_callout='+cpu_callout
+'&cpu_new_id='+cpu_new_id+'&cpu_new_sn='+cpu_new_sn+'&cpu_new_model='+cpu_new_model+'&cpu_new_brand='+cpu_new_brand
+'&cpu_new_status='+cpu_new_status+'&cpu_temporary='+cpu_temporary+'&cpu_temporary_test='+cpu_temporary_test
+'&cpu_desc_prob='+encodeURIComponent(cpu_desc_prob)
+'&cpu_desc_freq='+encodeURIComponent(cpu_desc_freq)
+'&cpu_desc_traite='+encodeURIComponent(cpu_desc_traite)
+'&flex1='+encodeURIComponent(flex1)
+'&flex2='+encodeURIComponent(flex2)
+'&flex3='+encodeURIComponent(flex3)
+'&flex4='+encodeURIComponent(flex4)
+'&tag1='+encodeURIComponent(tag1)
+'&tag2='+encodeURIComponent(tag2)
+'&tag3='+encodeURIComponent(tag3)
+'&tag4='+encodeURIComponent(tag4)
+'&tag5='+encodeURIComponent(tag5)
+'&tag6='+encodeURIComponent(tag6)
+'&tag7='+encodeURIComponent(tag7)
+'&tag8='+encodeURIComponent(tag8)
+'&lowvoltage='+encodeURIComponent(lowvoltage);
func_CallPHP_POST_travaux('ajax/ajax_AddWorktime.php',params,'Votre entrée de travail a été ajoutée avec succès.','Your work entry has been added succesfully.',form);
}
function resetWorkForm(form)
{
form.WRKSTART_HOUR.value = '00';
form.WRKSTART_MINS.value = '00';
form.WRKBEGIN_HOUR.value = '00';
form.WRKBEGIN_MINS.value = '00';
form.WRKEND_HOUR.value = '00';
form.WRKEND_MINS.value = '00';
form.WRKRETURN_HOUR.value = '00';
form.WRKRETURN_MINS.value = '00';
form.KM.value = '0';
if (form['iAuthorizationNumber'] != undefined)
{
form.iAuthorizationNumber.value = '';
}
if (form['proautorisationnumber'] != undefined)
{
form.proautorisationnumber.value = '';
}
if (form['iAuthorizationCheck'] != undefined)
{
form.iAuthorizationCheck.checked = false;
}
if (form['iNextVisit'] != undefined)
{
form.iNextVisit.checked = false;
}
if (form['InstalledSequences'] != undefined)
{
form.InstalledSequences.value = 0;
}
if (form['UninstalledSequences'] != undefined)
{
form.UninstalledSequences.value = 0;
}
if (form['RepairCodeText'] != undefined)
{
form.RepairCodeText.value = '';
}
if (form['RepairCodeTextHidden'] != undefined)
{
form.RepairCodeTextHidden.value = '';
}
if (form['RepairCode2Text'] != undefined)
{
form.RepairCode2Text.value = '';
}
if (form['RepairCode2TextHidden'] != undefined)
{
form.RepairCode2TextHidden.value = '';
}
if (form['RepairCode3Text'] != undefined)
{
form.RepairCode3Text.value = '';
}
if (form['RepairCode3TextHidden'] != undefined)
{
form.RepairCode3TextHidden.value = '';
}
if (form['dell1'] != undefined)
{
form.dell1[1].checked = true;
}
if (form['dell2'] != undefined)
{
form.dell2.value = '';
}
if (form['dell3'] != undefined)
{
form.dell3[1].checked = true;
}
if (form['dell4'] != undefined)
{
form.dell4.value = '';
}
if (form['dell5'] != undefined)
{
form.dell5.value = '';
}
if (form['delldps'] != undefined)
{
form.delldps.value = '';
}
if (form['delldpslo'] != undefined)
{
form.delldpslo.value = '';
}
if (form['delltech'] != undefined)
{
form.delltech.value = '';
}
if (form['DESCRIPTION'] != undefined)
{
form.DESCRIPTION.value = '';
}
if (form['NomCie'] != undefined && form['NomCie']=='COMPUGEN')
{
form.CPU_DESC_PROB.value = '';
form.CPU_DESC_FREQ.value = '';
form.CPU_DESC_TRAITE.value = '';
}
}
function javaShowAppointments(appel)
{
appDiv = document.getElementById('AJAXRDV');
appDiv.innerHTML=func_CallPHP('ajax/ajax_ShowAppointments.php?id='+appel);
}
function javaSaveAppointments(form, paramReason = null)
{
appel = form.APPEL.value;
dateRdv = form.dateRdv.value;
hourBeginRdv = form.hourBeginRdv.value;
hourEndRdv = form.hourEndRdv.value;
jassigne = form.ASSIGNERV.value;
technicien = form.TECH.value;
contact = form.CONTACT.value;
client = form.Customer.value;
//statut = encodeURI(statut);
langue = $("#langUser").val();
//newassign = form.WantAssignNew.value;
AppDeadline = form.AppDeadline.value;
var opendialog = false;
//reason = paramReason;
if (paramReason === null)
{
paramReason = "";
var limiteEch = strtotime(dateRdv+' '+hourBeginRdv+':00');
if (limiteEch > AppDeadline)
{
opendialog = true;
}
}
if (opendialog == true)
{
if (langue == "fr")
{
$("#dialogFR").dialog("open");
}
else
{
$("#dialogEN").dialog("open");
}
}
else
{
var jsparam = {
'id' : appel,
'caller' : 'javaSaveAppointments',
'dateRdv' : dateRdv,
'hourBeginRdv' : hourBeginRdv,
'hourEndRdv' : hourEndRdv,
'reason' : paramReason,
'assigne' : jassigne,
'TECH' : technicien,
'CONTACT' : contact,
'TYPE' : 'ProService Web'
}
if (client == 'APPLEEXPRESS')
{
appleexpress_inventaire = form.appleexpress_inventaire.value;
jsparam['appleexpress_inventaire'] = appleexpress_inventaire;
}
$.ajax({
type: "POST",
url: "ajax/ajax_AddAppointments.php",
data: jsparam,
success: function(result)
{
if (trim(result) == "OK")
{
appDiv = document.getElementById('AJAXRDV');
appDiv.innerHTML=func_CallPHP('ajax/ajax_ShowAppointments.php?id='+appel);
if (client == 'APPLEEXPRESS')
{
$("input[value='"+appleexpress_inventaire+"']").prop("checked", true);
}
alert('Appointment successfully added.');
}
else
alert(result);
},
error: function(result, status, error)
{
alert('An error has been detected. Please notify the system administrators. [Code #0003] ->' + error +'->'+status);
}
});
// $("#dialogFR").dialog("close");
// $("#dialogEN").dialog("close");
}
//location.reload();
}
function strtotime(str, now)
{
// http://kevin.vanzonneveld.net
// + original by: Caio Ariede (http://caioariede.com)
// + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
// + input by: David
// + improved by: Caio Ariede (http://caioariede.com)
// + improved by: Brett Zamir (http://brett-zamir.me)
// + bugfixed by: Wagner B. Soares
// + bugfixed by: Artur Tchernychev
// % note 1: Examples all have a fixed timestamp to prevent tests to fail because of variable time(zones)
// * example 1: strtotime('+1 day', 1129633200);
// * returns 1: 1129719600
// * example 2: strtotime('+1 week 2 days 4 hours 2 seconds', 1129633200);
// * returns 2: 1130425202
// * example 3: strtotime('last month', 1129633200);
// * returns 3: 1127041200
// * example 4: strtotime('2009-05-04 08:30:00');
// * returns 4: 1241418600
var i, match, s, strTmp = '', parse = '';
strTmp = str;
//unecessary spaces
strTmp = strTmp.replace(/\s{2,}|^\s|\s$/g, ' ');
//unecessary chars
strTmp = strTmp.replace(/[\t\r\n]/g, '');
if (strTmp == 'now')
{
//Return seconds, not milli-seconds
return (new Date()).getTime()/1000;
}
else if (!isNaN(parse = Date.parse(strTmp)))
{
return (parse/1000);
}
else if (now)
{
//Accept PHP-style seconds
now = new Date(now*1000);
}
else
{
now = new Date();
}
strTmp = strTmp.toLowerCase();
var __is =
{
day:
{
'sun': 0,
'mon': 1,
'tue': 2,
'wed': 3,
'thu': 4,
'fri': 5,
'sat': 6
},
mon:
{
'jan': 0,
'feb': 1,
'mar': 2,
'apr': 3,
'may': 4,
'jun': 5,
'jul': 6,
'aug': 7,
'sep': 8,
'oct': 9,
'nov': 10,
'dec': 11
}
};
var process = function (m)
{
var ago = (m[2] && m[2] == 'ago');
var num = (num = m[0] == 'last' ? -1 : 1) * (ago ? -1 : 1);
switch (m[0])
{
case 'last':
case 'next':
switch (m[1].substring(0, 3))
{
case 'yea':
now.setFullYear(now.getFullYear() + num);
break;
case 'mon':
now.setMonth(now.getMonth() + num);
break;
case 'wee':
now.setDate(now.getDate() + (num * 7));
break;
case 'day':
now.setDate(now.getDate() + num);
break;
case 'hou':
now.setHours(now.getHours() + num);
break;
case 'min':
now.setMinutes(now.getMinutes() + num);
break;
case 'sec':
now.setSeconds(now.getSeconds() + num);
break;
default:
var day;
if (typeof (day = __is.day[m[1].substring(0, 3)]) != 'undefined')
{
var diff = day - now.getDay();
if (diff == 0)
{
diff = 7 * num;
}
else if (diff > 0)
{
if (m[0] == 'last') {diff -= 7;}
}
else
{
if (m[0] == 'next') {diff += 7;}
}
now.setDate(now.getDate() + diff);
}
}
break;
default:
if (/\d+/.test(m[0]))
{
num *= parseInt(m[0], 10);
switch (m[1].substring(0, 3))
{
case 'yea':
now.setFullYear(now.getFullYear() + num);
break;
case 'mon':
now.setMonth(now.getMonth() + num);
break;
case 'wee':
now.setDate(now.getDate() + (num * 7));
break;
case 'day':
now.setDate(now.getDate() + num);
break;
case 'hou':
now.setHours(now.getHours() + num);
break;
case 'min':
now.setMinutes(now.getMinutes() + num);
break;
case 'sec':
now.setSeconds(now.getSeconds() + num);
break;
}
}
else
{
return false;
}
break;
}
return true;
};
match = strTmp.match(/^(\d{2,4}-\d{2}-\d{2})(?:\s(\d{1,2}:\d{2}(:\d{2})?)?(?:\.(\d+))?)?$/);
if (match != null)
{
if (!match[2])
{
match[2] = '00:00:00';
}
else if (!match[3])
{
match[2] += ':00';
}
s = match[1].split(/-/g);
for (i in __is.mon)
{
if (__is.mon[i] == s[1] - 1)
{
s[1] = i;
}
}
s[0] = parseInt(s[0], 10);
s[0] = (s[0] >= 0 && s[0] <= 69) ? '20'+(s[0] < 10 ? '0'+s[0] : s[0]+'') : (s[0] >= 70 && s[0] <= 99) ? '19'+s[0] : s[0]+'';
return parseInt(this.strtotime(s[2] + ' ' + s[1] + ' ' + s[0] + ' ' + match[2])+(match[4] ? match[4]/1000 : ''), 10);
}
var regex = '([+-]?\\d+\\s'+
'(years?|months?|weeks?|days?|hours?|min|minutes?|sec|seconds?'+
'|sun\.?|sunday|mon\.?|monday|tue\.?|tuesday|wed\.?|wednesday'+
'|thu\.?|thursday|fri\.?|friday|sat\.?|saturday)'+
'|(last|next)\\s'+
'(years?|months?|weeks?|days?|hours?|min|minutes?|sec|seconds?'+
'|sun\.?|sunday|mon\.?|monday|tue\.?|tuesday|wed\.?|wednesday'+
'|thu\.?|thursday|fri\.?|friday|sat\.?|saturday))'+
'(\\sago)?';
match = strTmp.match(new RegExp(regex, 'g'));
if (match == null)
{
return false;
}
for (i = 0; i < match.length; i++)
{
if (!process(match[i].split(' ')))
{
return false;
}
}
return (now.getTime()/1000);
}
function javaSendVente(form)
{
appel = form.appel;
assign = form.ASSIGNE;
tech = form.TECH;
msg = form.message;
if (msg.value == "")
{
alert('The communication message cannot be empty.'); msg.focus();
return;
}
var params = 'id='+appel.value+'&ASSIGNE='+assign.value+'&TECH='+tech.value+'&message='+msg.value;
func_CallPHP_POST('ajax/ajax_SendVente.php',params,'Note de vente ajoutée avec succès.','Sale note added successfully');
form.reset();
}
function javaSendTechnique(form)
{
appel = form.appel;
assign = form.ASSIGNE;
tech = form.TECH;
msg = form.message;
if (msg.value == "")
{
alert('The communication message cannot be empty.'); msg.focus();
return;
}
var params = 'id='+appel.value+'&ASSIGNE='+assign.value+'&TECH='+tech.value+'&message='+msg.value;
func_CallPHP_POST('ajax/ajax_SendTechnique.php',params,'Note technique ajoutée avec succès.','Technical note added successfully');
form.reset();
}
function javaReceiveDocument(form)
{
appel = form.appel;
documentnum = form.documentnum;
var params = 'id='+appel.value+'&documentnum='+documentnum.value;
func_CallPHP_POST('ajax/ajax_ReceiveDocument.php',params,'Le document a bien été reçu. Merci.','The document has been received. Thank you.');
}
function javaGoingOnSite(form)
{
appel = form.appel;
technom = form.techGoing.value;
var params = 'id='+appel.value+'&technom='+technom;
func_CallPHP_POST_with_Call_Refresh('ajax/ajax_GoingOnSite.php',params,'Envoyé confirmation que le technicien est en route vers le site. Merci.','Confirmation sent that the technician is en route to the site. Thank you.',appel.value);
}
function javaOnSite(form)
{
appel = form.appel;
technom = form.techSite.value;
var params = 'id='+appel.value+'&technom='+technom;
func_CallPHP_POST_with_Call_Refresh('ajax/ajax_OnSite.php',params,'Envoyé confirmation que technicien est arrivé sur site. Merci.','Send confirmation that the technician is on site. Thank you.',appel.value);
}
function javaLeaveSite(form)
{
appel = form.appel;
var params = 'id='+appel.value;
func_CallPHP_POST_with_Call_Refresh('ajax/ajax_LeaveSite.php',params,'Envoyé confirmation que technicien a quitté le site. Merci.','Send confirmation that the technician has left the site. Thank you.',appel.value);
}
function javaEndCall(form)
{
appel = form.appel;
var params = 'id='+appel.value;
func_CallPHP_POST_with_Call_Refresh('ajax/ajax_EndCall.php',params,'Envoyé confirmation que le technicien a terminé cet appel et est de retour au bureau. Merci.','Confirmation sent that the technician has completed call and is back at the office. Thank you.',appel.value);
}
function javaAccept(form)
{
appel = form.appel;
result = func_CallPHP('ajax/ajax_Accept.php?id='+appel.value);
if (trim(result) == "OK")
{
alert('The acceptance of this call has been sent. Thank you.'); }
else
{
alert('An error has been detected. Please notify the system administrators. [Code #0007]'); alert(result);
}
}
function javaSavePolygon(form)
{
polygoneid = form.id.value;
points = form.MarkerList.value;
result = func_CallPHP('../../ajax/ajax_SavePolygon.php?id='+polygoneid+'&points='+points);
if (trim(result) == "OK")
{
alert('The points of the polygon have been saved successfully.. Thank you.'); }
else
{
alert('An error has been detected. Please notify the system administrators. [Code #0008]'); alert(result);
}
}
function javaGetAssign(form)
{
appel = form.appel;
result = func_CallPHP('ajax/ajax_GetAssign.php?id='+appel.value);
if (trim(result) == "OK")
{
alert('The reassignment of this call was completed successfully. Thank you.'); }
else
{
alert('An error has been detected. Please notify the system administrators. [Code #0009]'); alert(result);
}
}
function javaSetAssign(form)
{
appel = form.appel;
assigne = form.ASSIGNE;
nomAssigne = assigne.value;
raison = prompt("Veuillez donner une raison pour la réassignation : ","");
if ((raison == null) || (raison == ""))
{
alert("Vous devez mettre une raison !");
return false;
}
result = func_CallPHP('ajax/ajax_SetAssign.php?id='+appel.value+'&assigne='+assigne.value+'&raison='+raison);
if (trim(result))
{
alert('The assignment of this call was completed successfully. Thank you.'); }
else
{
alert('An error has been detected. Please notify the system administrators. [Code #0115]'); alert(result);
}
}
function javaClearvisionClosure(form)
{
appel = form.appel;
result = func_CallPHP('ajax/ajax_clearvisionclosure.php?id='+appel.value);
if (trim(result))
{
alert('Clearvision Case Closed'); }
else
{
alert('An error has been detected. Please notify the system administrators. [Code #0115]'); alert(result);
}
}
function javaCalculateTravel(form)
{
appel = form.appel;
$.ajax({
type: "POST",
url: 'ajax/ajax_CalculateTravel.php?id='+appel.value,
success: function(data) {
alert('Transport calculated successfully. Thank you. '+data+'km total');
location.reload();
},
error: function() {
alert('An error has been detected. Please notify the system administrators. [Code #0011]'); }
});
}
function javaGetFormCustomerInfos(form, typeservice, customer_type, customer_service)
{
customer = document.getElementById('customernumber_'+customer_type.toLowerCase());
customer = customer.value;
partDiv = document.getElementById('AJAXPART_CUSTOMER_'+customer_type);
partDiv.innerHTML=func_CallPHP('ajax/ajax_ShowFormCustomerInfos.php?id='+customer+'&typeservice='+typeservice+'&customer_type='+customer_type+'&customer_service='+customer_service);
}
function javaGetCustomerServiceAddressPicker(form, typeservice, customer_service)
{
customer = document.getElementById('customernumber_service');
customer = customer.value;
partDiv = document.getElementById('AJAXPART_CUSTOMER_SERVICE_PICKER');
partDiv.innerHTML=func_CallPHP('ajax/ajax_GetCustomerServiceAddressPicker.php?id='+customer+'&serviceaddress='+customer_service);
partDiv = document.getElementById('AJAXPART_CUSTOMER_SERVICE');
partDiv.innerHTML=func_CallPHP('ajax/ajax_ShowFormCustomerInfos.php?id='+customer+'&typeservice='+typeservice+'&customer_type=SERVICE&customer_service='+customer_service);
}
function javaGetSystemTagInfos(form)
{
systemtag = document.getElementById('systemtag');
systemtag = systemtag.value;
taginfos = func_CallPHP('ajax/ajax_GetSystemTagInfos.php?systemtag='+systemtag);
infoDiv = document.getElementById('AJAX_SYSTEM_INFOS');
infoHidden = document.getElementById('AJAX_SYSTEM_INFOS_HIDDEN');
infoHidden.value = taginfos;
systemtagvalide = document.getElementById('system_tag_valide');
//Vérifier Out Of Warranty
if (taginfos.indexOf('OUT OF WARRANTY') >= 0)
{
systemtagvalide.value = "non";
return "OUT OF WARRANTY";
}
if (taginfos.indexOf('TAG NUMBER INVALIDE') >=0 )
{
systemtagvalide.value = "non";
return "INVALID TAG NUMBER";
}
if (taginfos.indexOf('OUT OF TIME') >=0 )
{
systemtagvalide.value = "non";
return 'RETRY';
}
systemtagvalide.value = "oui";
return "OK";
}
function javaAddServiceAddress(customer, cuname, cucareof, cuaddress, cucity, cupostalcode, cuphonenumber, cuemail, typeservice)
{
customer = customer.value;
cuname = cuname.value;
cucareof = cucareof.value;
cuaddress = cuaddress.value;
cucity = cucity.value;
cupostalcode = cupostalcode.value;
cuphonenumber = cuphonenumber.value;
cuemail = cuemail.value;
returntext = func_CallPHP('ajax/ajax_AddServiceAddress.php?customer='+customer+'&cuname='+cuname+'&cucareof='+cucareof+'&cuaddress='+cuaddress+'&cucity='+cucity+'&cupostalcode='+cupostalcode+'&cuphonenumber='+cuphonenumber+'&cuemail='+cuemail);
if (IsNumeric(trim(returntext)))
{
//Refresh le drop down des localisations
javaGetCustomerServiceAddressPicker(customer,typeservice,trim(returntext));
return true;
}
else
{
alert(returntext);
return false;
}
}
function javaUpdServiceAddress(id, customer, cuname, cucareof, cuaddress, cucity, cupostalcode, cuphonenumber, cuemail, typeservice)
{
if (id == 0)
{
return false;
}
customer = customer.value;
cuname = cuname.value;
cucareof = cucareof.value;
cuaddress = cuaddress.value;
cucity = cucity.value;
cupostalcode = cupostalcode.value;
cuphonenumber = cuphonenumber.value;
cuemail = cuemail.value;
returntext = func_CallPHP('ajax/ajax_UpdServiceAddress.php?id='+id+'&customer='+customer+'&cuname='+cuname+'&cucareof='+cucareof+'&cuaddress='+cuaddress+'&cucity='+cucity+'&cupostalcode='+cupostalcode+'&cuphonenumber='+cuphonenumber+'&cuemail='+cuemail);
if (IsNumeric(trim(returntext)))
{
//Refresh le drop down des localisations
javaGetCustomerServiceAddressPicker(customer,typeservice,trim(returntext));
return true;
}
else
{
alert(returntext);
return false;
}
}
function javaWaitingParts(form)
{
appel = form.appel;
status_plus = form.Piece_Status_Plus.value;
result = func_CallPHP('ajax/ajax_WaitingParts.php?id='+appel.value+'&status_plus='+status_plus);
if (trim(result) == "OK")
{
alert('Call status changed to waiting parts. Thank you.'); }
else
{
alert('An error has been detected. Please notify the system administrators. [Code #0012]'); alert(result);
}
}
function javaGetCertification(groupe, user)
{
certificationdiv = document.getElementById('divcertification');
certificationdiv.innerHTML=func_CallPHP('ajax/ajax_ShowCertification.php?groupe='+groupe+'&iduser='+user);
}
function javaUpdateDocument(callnumber, id_document, status, travaux)
{
var qt;
if (status)
{
qt = 1;
}
else
{
qt = 0;
}
result = func_CallPHP('ajax/ajax_UpdateDocument.php?id='+callnumber+'&iddocument='+id_document+'&qt='+qt+'&travaux='+travaux);
}
function javaGetNearMap(lat, lng)
{
mapdiv = document.getElementById('divMapNear');
//Définition des paramètres pour la MAP
var latlng = new google.maps.LatLng(lat, lng);
var myOptions =
{
zoom: 10,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(mapdiv, myOptions);
var baseIcon = new google.maps.MarkerImage('https://support.progitech.com/external/google/bullet_ball_blue.png');
var listNear = func_CallPHP('../../ajax/ajax_NearMap.php?lat='+lat+'&lng='+lng);
var partners = listNear.split('\r\n');
for (x=0; x";
partDiv = document.getElementById(divname);
partDiv.innerHTML=partlist;
}
return "OK";
}
//VALIDATION DE DATE
//Declaring valid date character, minimum year and maximum year
var dtCh = "-";
var minYear = 1900;
var maxYear = 2100;
function isInteger(s)
{
var i;
for (i = 0; i < s.length; i++)
{
//Check that current character is number.
var c = s.charAt(i);
if (((c < "0") || (c > "9"))) return false;
}
//All characters are numbers.
return true;
}
function stripCharsInBag(s, bag)
{
var i;
var returnString = "";
//Search through string's characters one by one.
//If character is not in bag, append to returnString.
for (i = 0; i < s.length; i++)
{
var c = s.charAt(i);
if (bag.indexOf(c) == -1) returnString += c;
}
return returnString;
}
function daysInFebruary (year)
{
// February has 29 days in any year evenly divisible by four,
// EXCEPT for centurial years which are not also divisible by 400.
return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n)
{
for (var i = 1; i <= n; i++)
{
this[i] = 31;
if (i==4 || i==6 || i==9 || i==11) {this[i] = 30;}
if (i==2) {this[i] = 29;}
}
return this;
}
function isDateValide(dtStr)
{
var daysInMonth = DaysArray(12);
var pos1 = dtStr.indexOf(dtCh);
var pos2 = dtStr.indexOf(dtCh, pos1 + 1);
var strYear = dtStr.substring(0, pos1);
var strMonth = dtStr.substring(pos1 + 1, pos2);
var strDay = dtStr.substring(pos2 + 1);
strYr = strYear;
if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1);
if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1);
for (var i = 1; i <= 3; i++)
{
if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1);
}
month = parseInt(strMonth);
day = parseInt(strDay);
year = parseInt(strYr);
if (pos1==-1 || pos2==-1)
{
alert('The date format is incorrect : YYYY-MM-DD'); return false;
}
if (strMonth.length<1 || month<1 || month>12)
{
alert('Enter a valid month'); return false;
}
if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month])
{
alert('Enter a valid day'); return false;
}
if (strYear.length != 4 || year==0 || yearmaxYear)
{
alert('Enter 4 valid numbers between '+minYear+' and '+maxYear); return false;
}
if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false)
{
alert('Enter a valid date'); return false;
}
return true;
}
function addNewGroupe(form, mode)
{
var groupe = form.group.value;
var userID = form.userID.value;
var oldGroupe = "";
if (typeof form.oldGroup != 'undefined')
{
oldGroupe = form.oldGroup.value;
}
$.ajax({
url: "ajax/ajax_AddRemGroupe.php",
type: "POST",
datatype: "text",
data: {userID: userID, groupe: groupe, mode: mode, oldGroupe: oldGroupe},
success:function(result){
if (result == "Okay")
{
alert("Opération effectué avec succès");
location.href = location.href;
}
else
{
alert("Opération refusé");
}
}
});
}
//function to make form values to json format
$.fn.serializeObject = function()
{
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name] !== undefined)
{
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
}
else {
o[this.name] = this.value || '';
}
});
return o;
};