» Support GLSolution CardReader » CardReader Alpha » REPONDRE

Avatar  Xifit Le 15/05/2017 à 20h33
Reprise du message précédent

Je vous propose le code du module de détection des infractions :

Temps d'écriture pour la version actuelle : Environs 5h
Nombre de ligne de code : 389

Lorsque vous trouvez ceci : #################################################, il s'agit de la partie cryptage

Voici le code :

Code JAVASCRIPT :
function ReadcardDB(last, callbackReadcardDB) { 
var contents = [] 
    var filePath = getUserHome() + '\\.CardReader\\' + md5(getCookie('login')) + '\\bdd\\tmp\\infractions.json'; 
    //console.log((filePath)) 
    //console.log(fs.existsSync(filePath)) 
if (fs.existsSync(filePath)) { 
 contents = fs.readFileSync(filePath, 'utf8'); 
    contents = JSON.parse(#################################################); 
    console.log(contents); 
    console.log(contents.length) 
    var date_exist = [] 
    for (y = 0; y < contents.length; y++) { 
        date_exist.push(contents[y][0]); 
    } 
} 
    var limit =0; 
    if (contents.length > 0){ 
    console.log(date_exist[date_exist.length-1]) 
    var myDate=date_exist[date_exist.length-1]; 
    myDate=myDate.split("-"); 
    var newDate=myDate[1]+"/"+myDate[2]+"/"+myDate[0]; 
    console.log(newDate) 
    limit = (new Date(newDate).getTime()+((24 * 60 * 60)*1000)); 
    console.log(limit) 
    } 
    //console.log(last.length); 
    console.log(new Date().toLocaleDateString() + " " + new Date().toLocaleTimeString() + " | Début de la mise en cache des Infractions") 
    console.log(new Date().toLocaleDateString() + " " + new Date().toLocaleTimeString() + " | Analyse des infractions") 
    $("#loadInfo").html("Début de la mise en cache des Infractions") 
    $("#loadInfo").html("Analyse des infractions") 
    var EF_Driver_Activity_db_nbr; 
    var EF_Driver_Activity_db_exist = []; 
    var EF_Driver_Activity_db_exist_add = []; 
    var colone1 = []; 
    var colone2 = []; 
    var liste_infraction = contents; 
    var infractions_liste = []; 
 
    var start = 0; 
    var fin = 0; 
    var sstart = 0; 
 
    var coupure_Hebdo_Reduite = 0; 
    var coupure_Hebdo_Reduite_manque = 0; 
 
    var coupure_journee = 0; 
    var conduite_journee = 0; 
    var conduite_continue = 0; 
    var travail_journee = 0; 
    var dispo_journee = 0; 
    var travail_continue_6H = 0; 
    var travail_continue_9H = 0; 
    var interruption_travail_continue = 0; 
    var start_travail_continu_6H = 0; 
    var start_travail_continu_9H = 0; 
    var start_conduite_continu = 0; 
    var pause_15_minutes = 0; 
    var pause_3H = 0; 
    var coupure_reduite = 0; 
    var conduite_10H = 0; 
    //console.log(last.length); 
 
 
    var conduite_semaine = 0; 
    var last_conduite_semaine = 0; 
    var travail_semaine = 0; 
 
    for (u = 0; u < last.length - 1; u++) { 
        //lecture de l'activité actuelle 
        var date = parseInt(#################################################, 16) 
            var time = (parseInt(#################################################, 10) * 60) 
            var datetime = date + time; 
        var activity = ################################################# 
 
            //on regarde l'activité suivante si elle est identique on saute 
            var nextactivity = #################################################; 
        if (u + 2 < last.length) { 
            while (activity == nextactivity) { 
                u++; 
                nextactivity = ################################################# 
            } 
        } 
        //lecture de l'activité suivante 
        var nextdate = parseInt(#################################################, 16) 
            var nexttime = (parseInt(#################################################, 10) * 60) 
            var nextdatetime = nextdate + nexttime; 
 
        //calcul du temps en secondes entre les 2 activités 
        var duree = nextdatetime - datetime; 
 
        var d = new Date(datetime * 1000); 
 
 
 
 
 
        if (limit < d) { 
 
            var nextd = new Date(nextdatetime * 1000); 
            if (start == 0) { 
                var inf_date = convertDate(d); 
                //var amplitude = stop - start; 
                //console.log("Amplitude: "+amplitude); 
                //console.log("du : " + d.toLocaleString()) 
 
            } 
            //console.log(sformattime(time)) 
            //console.log("Position du chrono: " + activity) 
            //console.log("Durée: " + sformat(duree)) 
            //console.log("Durée en secondes: " + (duree)) 
            switch (activity) { 
            case "0": 
                if (u > 0) { 
                    //repos et coupure 
 
                    //gestion des coupure du temps de travail 
                    if (duree >= 15 * 60) { 
                        interruption_travail_continue += duree; 
                        //coupure supérieur à 15 mimnutes détectée 
                        if (travail_continue_6H > 6 * 60 * 60) { 
                            //console.log("%c Infraction Temps de travail > 6H : (" + sformattime(start_travail_continu_6H) + " " + sformattime(time) + ")" + sformattime(travail_continue_6H), 'background: #222; color: #bada55') 
                            var infraction = [inf_date, "Infraction Temps de travail > 6H : (" + sformattime(start_travail_continu_6H) + " -> " + sformattime(time) + ")" + sformattime(travail_continue_6H), start_travail_continu_6H / 60, time / 60, "00x00002"] 
                            infractions_liste.push(infraction); 
 
                            travail_continue_6H = 0; 
                            start_travail_continu_6H = nexttime; 
                        } else { 
                            travail_continue_6H = 0; 
                            start_travail_continu_6H = nexttime; 
 
                        } 
                        if (travail_continue_9H > 9 * 60 * 60) { 
                            if (interruption_travail_continue < 45 * 60) { 
                                //console.log("%c Infraction Temps de travail > 9H : (" + sformattime(start_travail_continu_9H) + " " + sformattime(time) + ")" + sformattime(travail_continue_9H), 'background: #222; color: #bada55') 
                                var infraction = [inf_date, "Infraction Temps de travail > 9H : (" + sformattime(start_travail_continu_9H) + " -> " + sformattime(time) + ")" + sformattime(travail_continue_9H), start_travail_continu_9H / 60, time / 60, "00x00002"] 
                                infractions_liste.push(infraction); 
                                travail_continue_9H = 0; 
                                start_travail_continu_9H = nexttime; 
                            } else { 
                                travail_continue_9H = 0; 
                                start_travail_continu_9H = nexttime; 
                            } 
                        } 
                    } 
 
                    //gestion des coupure de conduite 
                    if (conduite_continue > 4.5 * 60 * 60) { 
                        //console.log("%c Infraction Temps de conduite : (" + sformattime(start_conduite_continu) + " " + sformattime(time) + ")" + sformattime(conduite_continue), 'background: #222; color: #bada55') 
                        var infraction = [inf_date, "Infraction Temps de conduite : (" + sformattime(start_conduite_continu) + " " + sformattime(time) + ")" + sformattime(conduite_continue), start_conduite_continu / 60, time / 60, "00x00002"] 
                        infractions_liste.push(infraction); 
                    } 
 
                    if (duree >= 15 * 60) { 
                        pause_15_minutes = 1; 
                    } 
                    if ((duree >= 30 * 60) && (duree < 45 * 60)) { 
                        if (pause_15_minutes == 1) { 
                            //conducteur fait 15 + 30 
                            conduite_continue = 0; 
                            pause_15_minutes = 0; 
                        } else { 
                            // le conducteur n'a pas fait 15 minutes avant donc on concidère qu'il ne fait que 15 minutes 
                            pause_15_minutes = 1; 
                        } 
                    } 
                    if (duree >= 45 * 60) { 
                        // le conducteur fait ses 45 minutes de pause de conduite 
                        conduite_continue = 0; 
                        pause_15_minutes = 0; 
                        start_conduite_continu = nexttime; 
 
                    } 
 
                    if (duree < 9 * 60 * 60) { 
                        coupure_journee += duree; 
                        //coupure en journé 
                        if (duree >= 3 * 60 * 60) { 
                            //conducteur fait une interruption de 3 H ce qui perme de faire une coupure journalière fractionnée 
                            pause_3H++; 
                        } 
                    } else { 
                        //coupure journalière detecté 
                        stop = datetime; 
                        /* 
                        console.log("au : " + d.toLocaleString()) 
                        console.log("Amplitude journée : " + sformattime(stop - start)) 
                        console.log("conduite journée : " + sformattime(conduite_journee)) 
                        console.log("travail journée : " + sformattime(travail_journee)) 
                        console.log("Dispo journée : " + sformattime(dispo_journee)) 
                        console.log("coupure dans la journée : " + sformattime(coupure_journee)) 
                        */ 
                        conduite_semaine += conduite_journee; 
                        var travail_journee_total = (dispo_journee + travail_journee + conduite_journee); 
                        travail_semaine += travail_journee_total; 
 
                        if (conduite_journee > 9 * 60 * 60) { 
                            //le conducteur à fait une conduite de plus de 9H 
                            conduite_10H++; 
                            if (conduite_10H > 2) { 
                                //le conducteur fait une infraction sur les temps de conduite 
                                //console.log("%c Infraction Augmentation de la conduite journalière (Max 2) : " + conduite_10H, 'background: #222; color: #bada55') 
                                var infraction = [inf_date, "Infraction Augmentation de la conduite journalière (Max 2) : " + conduite_10H, sstart / 60, time / 60, "00x00002"] 
                                infractions_liste.push(infraction); 
                            } 
 
                        } 
                        if (stop - start > 15 * 60 * 60) { 
                            //console.log("%c Infraction amplitude > 15H : " + sformattime(stop - start), 'background: #222; color: #bada55') 
                            var infraction = [inf_date, "Infraction amplitude > 15H : " + sformattime(stop - start), sstart / 60, time / 60, "00x00002"] 
                            infractions_liste.push(infraction); 
                        } else { 
                            if (travail_journee_total > 12 * 60 * 60) { 
                                //infraction temps de travail sur la journée 
                                //console.log("%c Infraction Temps de travail > 12H : " + sformattime(travail_journee_total), 'background: #222; color: #bada55') 
                                var infraction = [inf_date, "Infraction Temps de travail > 12H : " + sformattime(travail_journee_total), sstart / 60, time / 60, "00x00002"] 
                                infractions_liste.push(infraction); 
                            } 
                        } 
                        var coupure_reel = (24 * 60 * 60) - (stop - start); 
                        if (coupure_reel < duree) { 
                            if (coupure_reel < 11 * 60 * 60) { 
                                if (pause_3H >= 1) { 
                                    // Le conducteur a fait une coupure continue de plus de 3H dans la journée il s'agit d'un repos fractionnée 
                                    //console.log("Coupure journalière fractionnée: " + sformat(coupure_reel)) 
                                } else { 
                                    coupure_reduite++; 
                                    //console.log("Coupure journalière Réduite: " + sformat(coupure_reel)) 
                                } 
                            } else { 
                                //console.log("Coupure journalière : " + sformat(coupure_reel)) 
                            } 
                        } else { 
 
                            if (duree < 11 * 60 * 60) { 
                                if (pause_3H >= 1) { 
                                    // Le conducteur a fait une coupure continue de plus de 3H dans la journée il s'agit d'un repos fractionnée 
                                    console.log("Coupure journalière fractionnée: " + sformat(duree)) 
                                } else { 
                                    coupure_reduite++; 
                                    //console.log("Coupure journalière Réduite: " + sformat(duree)) 
                                } 
                            } else { 
                                //console.log("Coupure journalière : " + sformat(duree)) 
                            } 
                        } 
                        if (coupure_reduite > 3) { 
                            //console.log("%c Trop de repos journalier réduit: " + coupure_reduite + ", max 3", 'background: #222; color: #bada55') 
                            var infraction = [inf_date, "Trop de repos journalier réduit (max 3) : " + coupure_reduite, sstart / 60, time / 60, "00x00002"] 
                            infractions_liste.push(infraction); 
                        } 
 
                        //console.log("") 
 
                        if (duree >= 24 * 60 * 60) { 
 
                            //coupure hebdomadaire détectée 
                            if (duree >= 45 * 60 * 60) { 
                                //coupure Hebdomadaire Normale 
                                coupure_Hebdo_Reduite = 0; //remise à zero du nombre de coupre hebdo réduite 
 
                            } else { 
                                //coupure Hebdomadaire réduite 
                                if (coupure_Hebdo_Reduite >= 1) { 
                                    //infraction au repos hebdo réduit 
                                    //console.log("%c Trop de repos hebdomadaire réduit: " + coupure_Hebdo_Reduite, 'background: #222; color: #bada55') 
                                    var infraction = [inf_date, "Trop de repos hebdomadaire réduit: " + coupure_Hebdo_Reduite, sstart / 60, time / 60, "00x00002"] 
                                    infractions_liste.push(infraction); 
                                } 
 
                                coupure_Hebdo_Reduite++; //incrémentation du nombre de coupure Hebdo réduite 
                                coupure_Hebdo_Reduite_manque = (45 * 60 * 60) - duree; //calcul du temps manquant sur le repos 
                            } 
                            if (conduite_semaine > 56 * 60 * 60){ 
                                //le conducteur a dépassé les 56H de conduite dans la semaine 
                                //console.log("%c Dépassement du temps de conduite autorisé sur une semaine (max: 56H): " + sformattime(conduite_semaine), 'background: #222; color: #bada55') 
                                var infraction = [inf_date, "Dépassement du temps de conduite autorisé sur une semaine (max: 56H): " + sformattime(conduite_semaine), "00x00002"] 
                                infractions_liste.push(infraction); 
                            } 
                            if ((conduite_semaine+last_conduite_semaine) > 90 * 60 * 60){ 
                                //le conducteur a dépassé les 56H de conduite dans la semaine 
                                //console.log("%c Dépassement du temps de conduite autorisé sur deux semaines glissantes (max: 90H, semaine précédente : "+sformattime(last_conduite_semaine)+", semaine actuelle :"+sformattime(conduite_semaine)+"): " + sformattime((conduite_semaine+last_conduite_semaine)), 'background: #222; color: #bada55') 
                                var infraction = [inf_date, "Dépassement du temps de conduite autorisé sur deux semaines glissantes (max: 90H, semaine précédente : "+sformattime(last_conduite_semaine)+", semaine actuelle :"+sformattime(conduite_semaine)+"): " + sformattime((conduite_semaine+last_conduite_semaine)), "00x00002"] 
                                infractions_liste.push(infraction); 
                            } 
 
                            if (france == true){ 
                                if (travail_semaine > 56 * 60 * 60){ 
                                    //le conducteur a dépassé les 56H de travail dans la semaine 
                                    //console.log("%c Dépassement du temps de travail autorisé sur une semaine (max: 56H): " + sformattime(travail_semaine), 'background: #222; color: #bada55') 
                                    var infraction = [inf_date, "Dépassement du temps de travail autorisé sur une semaine (max: 56H): " + sformattime(travail_semaine), "00x00002"] 
                                    infractions_liste.push(infraction); 
                                } 
                            }else{ 
                                if (travail_semaine > 60 * 60 * 60){ 
                                    //le conducteur a dépassé les 60H de travail dans la semaine 
                                    //console.log("%c Dépassement du temps de travail autorisé sur une semaine (max: 60H): " + sformattime(travail_semaine), 'background: #222; color: #bada55') 
                                    var infraction = [inf_date, "Dépassement du temps de travail autorisé sur une semaine (max: 60H): " + sformattime(travail_semaine), "00x00002"] 
                                    infractions_liste.push(infraction); 
                                } 
 
                            } 
 
 
 
                            coupure_reduite = 0; 
                            conduite_10H = 0; 
                            last_conduite_semaine = conduite_semaine; 
                            conduite_semaine = 0; 
                            travail_semaine = 0; 
                        } 
                        start = 0; 
                        sstart = 0; 
                        coupure_journee = 0; 
                        travail_journee = 0; 
                        dispo_journee = 0; 
                        conduite_journee = 0; 
                        travail_continue_6H = 0; 
                        travail_continue_9H = 0; 
                        interruption_travail_continue = 0; 
                        pause_3H = 0; 
                        start_conduite_continu = 0; 
 
                        for (t = 0; t < infractions_liste.length; t++) { 
                            //console.log("%c" + infractions_liste[t][1], 'background: #222; color: #bada55') 
                            liste_infraction.push(infractions_liste[t]); 
 
                        } 
                        infractions_liste = []; 
 
                    } 
 
                } 
                break; 
            case "1": 
                //mise à dispo 
                if (start == 0) { 
                    //la journée débute 
                    start = datetime; 
                    sstart = time; 
                    start_travail_continu_6H = time; 
                    start_travail_continu_9H = time; 
                } 
                dispo_journee += duree; 
                travail_continue_6H += duree; 
                travail_continue_9H += duree; 
                break; 
 
            case "2": 
                //travail 
                if (start == 0) { 
                    //la journée débute 
                    start = datetime; 
                    sstart = time; 
                    start_travail_continu_6H = time; 
                    start_travail_continu_9H = time; 
                } 
                travail_journee += duree; 
                travail_continue_6H += duree; 
                travail_continue_9H += duree; 
                break; 
 
            case "3": 
                //conduite 
                if (start == 0) { 
                    //la journée débute 
                    start = datetime; 
                    sstart = time; 
                    start_travail_continu_6H = time; 
                    start_travail_continu_9H = time; 
                } 
                if (start_conduite_continu == 0) { 
                    start_conduite_continu = time; 
                } 
                conduite_journee += duree; 
                conduite_continue += duree; 
                travail_continue_6H += duree; 
                travail_continue_9H += duree; 
            } 
        } 
    } 
 
    if (callbackReadcardDB && typeof(callbackReadcardDB) === "function") { 
        console.log(new Date().toLocaleDateString() + " " + new Date().toLocaleTimeString() + " | Envoie du cache des Infractions") 
        $("#loadInfo").html("Envoie du cache des Infractions") 
        callbackReadcardDB(liste_infraction); 
    } 
 
}




Edité par Xifit Le 15/05/2017 à 21h16

Rang : 📢 Qualifié

ranks03.png


 
Avatar  Mickaël Le 15/05/2017 à 21h14
Je pense pas que tout ça parle à quelqu'un .. Essai de mettre tes codes sous "HIDE" stp .. Il existe des balises, autant s'en servir :) :top

Rang : ☕ Webmasteur 😈

team01.png


 
Avatar  Mickaël Le 15/05/2017 à 22h33
Tu estimes quand une sorti Alpha?

(Merci pour avoir édité ton message) :) Pour le biend e ton programme, attention à ne pas trop donner de JS, ou autre, ça peut vite se voler, et/ou donner des idées à des tierces personnes :)

Rang : ☕ Webmasteur 😈

team01.png


 
Avatar  Xifit Le 15/05/2017 à 22h42
mickael:
Tu estimes quand une sorti Alpha?

(Merci pour avoir édité ton message) :) Pour le biend e ton programme, attention à ne pas trop donner de JS, ou autre, ça peut vite se voler, et/ou donner des idées à des tierces personnes :)


J'espère d'ici le moi d’août, voir septembre mais seul c'est long. Je peu accélérer un peu mais c'est pas gagné.

Rang : 📢 Qualifié

ranks03.png


 
Avatar  Mickaël Le 15/05/2017 à 22h50
C'était juste une question :) Prend ton temps .. Attention aux virgules mal placées dans le JS, ça peut tout fausser :D Je suis resté longtemps avec un fichier CSS qui n'était pas fonctionnel, sans raison apparente .. En faite, il me manquer un " } " pour fermer les codes :D

C'est passé presque inaperçu sur le site durant bien longtemps :mouais:

Rang : ☕ Webmasteur 😈

team01.png


 
Avatar  Xifit Le 21/05/2017 à 19h45
Salut,
Le module d'activité avance un petit peu avec de nouvelles options. Le design qui se dessine.
La vidéo

Rang : 📢 Qualifié

ranks03.png


 
Avatar  Mickaël Le 21/05/2017 à 20h54
:top

Rang : ☕ Webmasteur 😈

team01.png


 
Avatar  Gordini Le 22/05/2017 à 00h57
:top :top


:epicetou:

Rang : 🍺 Régulateur 😴

team02.png


 
Avatar  dh44 Le 22/05/2017 à 18h33
Chapeau :top je serais incapable d'en faire la moitié

Rang : 📢 Qualifié

ranks03.png


 
Avatar  Mickaël Le 22/05/2017 à 21h51
Incapable d'en faire 1% :D

Rang : ☕ Webmasteur 😈

team01.png


 
Avatar  Gordini Le 23/05/2017 à 00h49
Chacun sa passion, chacun son métier...
Je ne sais pas faire ça non plus, mais je me rattrape sur d'autres choses :)


:epicetou:

Rang : 🍺 Régulateur 😴

team02.png


 
Avatar  Xifit Le 23/05/2017 à 21h28
Gordini:
Chacun sa passion, chacun son métier...
Je ne sais pas faire ça non plus, mais je me rattrape sur d'autres choses :)


Mon métier : Conducteur routier ZL
Ma passion : J'aime bien l'informatique, et surtout le développement.

Rang : 📢 Qualifié

ranks03.png


 
Avatar  Mickaël Le 23/05/2017 à 21h38
Conducteur ZL :D :mdr:

Rang : ☕ Webmasteur 😈

team01.png


 
Avatar  Gordini Le 23/05/2017 à 23h20
Si (et j'espère bien !) je deviens formateur, je te ferais de la pub, en souhaitant que tout ton travail te rapporte quelques €€€€€ :top
Je n'imagine même pas le nombre d'heures que tu as du passer pour développer ton application...
Tu as une idée du temps passé ?


:epicetou:

Rang : 🍺 Régulateur 😴

team02.png


 
Avatar  Mickaël Le 24/05/2017 à 07h28
C'est comme le site .. Vous imaginez pas les heures que j'y passe, et ceci, depuis 2011 :D

Rang : ☕ Webmasteur 😈

team01.png


 
Avatar  dh44 Le 24/05/2017 à 19h05
si 10% je pense... genre tout effacer, formater, planter... :D En vrai j'aime bien fouiller dans l'informatique, savoir comment ça fonctionne et tout mais là c'est pas le même level :mdr:

Un site en 2-3 clics c'est fait hey ho c'est pas la mer (ou la mère?) à boire... :tirelangue:
Faut avoir la passion sinon je pense pas que ce site existerait ni ce que Xifit développe. Bravo les gars :top

Rang : 📢 Qualifié

ranks03.png


 

» Support GLSolution CardReader » CardReader Alpha

Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie


1 Utilisateur en ligne : 0 Administrateur, 0 Modérateur, 0 Membre et 1 Visiteur
Utilisateur en ligne : Aucun membre connecté