add.ctp 13.2 KB


<div class="suivis form">


		<?php
echo '<h3 id="t_informations_metrologie" style="cursor: pointer;">';
echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_informations_metrologie"></i>';
echo '<span style="text-decoration: underline;">Informations Métrologique</span>';
echo '</h3>';
echo '<div id="informations_metro" style="margin-bottom: 20px;">';
echo '<table>';
echo '<tr><th style="width: 250px;"></th><th></th></tr>';

echo '<tr><td><strong>' . __('Unite') . ' </strong></td><td>' . h($unite) . '</td></tr>';
echo '<tr><td><strong>' . __('Plage de mesure (debut)') . ' </strong></td><td>' . h($suivi->plage_debut) . '</td></tr>';
echo '<tr><td><strong>' . __('Plage de mesure (fin)') . ' </strong></td><td>' . h($suivi->plage_fin) . '</td></tr>';
echo '<tr><td><strong>' . __('Resolution') . ' </strong></td><td>' . h($suivi->resolution) . '</td></tr>';
echo '<tr><td><strong>' . __('Tolerance') . ' </strong></td><td>' . h($suivi->tolerance) . '</td></tr>';
echo '<tr><td><strong>' . __('Sensibilité') . ' </strong></td><td>' . h($suivi->sensibilite) . '</td></tr>';
echo '<tr><td><strong>' . __('Justesse') . ' </strong></td><td>' . h($suivi->justesse) . '</td></tr>';
echo '<tr><td><strong>' . __('Fidelite') . ' </strong></td><td>' . h($suivi->fidelite) . '</td></tr>';
echo '<tr><td><strong>' . __('Valeur de référence') . ' </strong></td><td>' . h($suivi->valeurRef) . '</td></tr>';

if ($suivi->typemesure == "1") {
    echo '<tr><td><strong>' . __('Type de mesure') . ' </strong></td><td>' . h("Direct") . '</td></tr>';
} else {
    echo '<tr><td><strong>' . __('Type de mesure') . ' </strong></td><td>' . h("Indirect") . '</td></tr>';
}
echo '<tr><td><strong>' . __('EMT standart') . ' </strong></td><td>' . h($suivi->emtstandart) . '</td></tr>';

echo '</table>';
echo '</div>';

?>




    <?= $this->Form->create($fichemetrologique) ?>
    <fieldset>
		<h2>
			<i class="icon-plus"></i> Ajouter une fiche métrologique
		</h2>
		<?php
echo $this->Form->hidden('suivi_id', [
    'default' => $this->request->getAttribute('params')['pass'][0]
]);
echo $this->Form->hidden('datefiche', [
    'type' => 'text',
    'label' => 'Date intervention',
    'placeholder' => 'Cliquez pour selectionner une date',
    'class' => 'datepicker',
    'default' => date('d-m-Y')
]);
echo $this->Form->control('resolution', [
    'label' => 'resolution',
    'options' => [
        'Numérique',
        'A cadran'
    ],
    'default' => 0,
    'onfocusout' => 'calcul()'
]);
echo $this->Form->control('emtpersonnel', [
    'type' => 'number',
    'step' => 'any',
    'label' => 'emt personnel',
    'onfocusout' => 'calcul()'
]);
echo $this->Form->control('conditionEnv', [
    'type' => 'number',
    'step' => 'any',
    'label' => 'condition environnement (°C)',
    'onfocusout' => 'calcul()'
]);
echo $this->Form->control('etatmateriel', [
    'label' => 'Etat du matériel',
    'options' => [
        'Neuf',
        'RAS',
        'Dégradé'
    ],
    'defaults' => [
        'RAS'
    ]
]);

echo $this->Form->control('mesurande', [
    'type' => 'number',
    'step' => 'any',
    'label' => 'Mesurande en ' . $unite . '',
    'default' => 0,
    'onfocusout' => 'calcul()'
]);
$max = 10;
echo $this->Form->control('nbMesure', [
    'type' => 'number',
    'step' => 'any',
    'label' => 'Nombre de mesure',
    'default' => $max,
    'empty' => $max
]);
echo '<input type=\'hidden\' id=\'unite\' value=' . $unite . '>';
echo '<div id="mesure">';
echo '</div>';
echo '<div id="pasnombre"></div>';
echo '<div id="moyenne">';
echo '</div>';
echo '<div id="ecarttype">';
echo '</div>';
echo '<div id="graphique">';
echo '</div>';
echo '<div id="resultat">';
echo '</div>';
echo '<div id="commentaire" >';
echo '</div>';

?>
    </fieldset>
    <?php
    echo '<div id="enregist" style="display:none">';
    echo $this->Form->submit(__('Enregistrer'));
    echo '</div>';
    ?>
    <?= $this->Form->end() ?>
</div>

<!--
<div class="actions">
	<php
echo $this->element('menu');
echo $this->element('menu_form', [
    'pluralHumanName' => 'Suivis'
]);
?>
</div>
-->

<script type="text/javascript">
		
	$(document).ready(function () {
		mesure();
			});

		
		$(document).ready(function () {
		$("#nbmesure").bind("focusout", function (event) {
				mesure();
				});
			});
		
			
			
		function mesure(){
			var nbmes = $("#nbmesure").val();
			var mesurande= $("#mesurande").val();
			
			if(nbmes >=10 && nbmes<=200){
			$("#mesure").show();
			document.getElementById("mesure").innerHTML ="<table><tr><td> Le mesurage xi </td><td>L\'erreur de mesure</td></tr></table>";
			for(var i=0;i<nbmes;i++){
			document.getElementById("mesure").innerHTML +="<table><tr><td><input type=\"control\" name=\"mesures["+i+"][valeur]\" onfocusout=\"calcul()\" class=\"valmesure\" required></td><td><input type=\"control\" name=\"mesures["+i+"][erreur]\" class=\"valerreur\" readonly required></td></tr></table>";
			}
			
			}else{
			$("#nbmesure").val('10');
			}
				
		}
		
		
		function calcul(){
			var nbmes = $("#nbmesure").val();
			var mesures = $(".valmesure");
			document.getElementById("pasnombre").innerHTML ="";
			nombre=true;
			for(var i=0;i<mesures.length;i++){
			if(isNaN(mesures[i].value) || mesures[i].value.length == 0){
			nombre=false;
			}
			}
			if(nbmes >=10 && nbmes<=200 && nombre){
				var somme=0;
				
				var mesurande = $("#mesurande").val();
				var mesuresecty = new Array();
				var sommeerreur=0;
				var mesureserreur = $(".valerreur");
				for(var i=0; i<mesures.length; i++){
				somme = somme + parseFloat(mesures[i].value);
				var erreur = parseFloat(mesurande) - parseFloat(mesures[i].value);
				mesureserreur[i].value = erreur.toPrecision(6);
				sommeerreur= sommeerreur+ erreur;
				}
				var moyenne=somme/parseFloat(nbmes);
				var sommeecty =0.0;
				for(var i=0; i<mesures.length; i++){
				
				mesuresecty[i] = Math.pow(parseFloat(mesures[i].value) - parseFloat(moyenne), 2);
				sommeecty += mesuresecty[i];
				}
				
				var ecarttype = new Number((sommeecty/Math.pow(nbmes-1,0.5)).toPrecision(6));
				var ecarttypescientifique =ecarttype.toExponential(5);
				var unite =$("#unite").val();
				var symbole = "<?php echo $symbole ?>";
				
				var ua= new Number((ecarttype/Math.sqrt(nbmes)).toPrecision(6));
				var uascientifique = ua.toExponential(5);
				
				var resolution= $("#resolution").val();
				
				if(resolution == 0){
				var ub = new Number((<?php echo $resol ?>/ (2*Math.sqrt(3))).toPrecision(6));
				}else{
				var ub = new Number((<?php echo $resol ?>/ (2*Math.sqrt(6))).toPrecision(6));
				}
				var ubscientifique = ub.toExponential(5)
				
				var uf = new Number ((ecarttype/nbmes).toPrecision(6));
				var ufscientifique = uf.toExponential(5);
				var justesse = (moyenne-mesurande).toPrecision(6);
				var uc = new Number ((Math.sqrt((Math.pow(ua,2))+(Math.pow(ub,2))+(Math.pow(uf,2))+(Math.pow(justesse,2)))).toPrecision(6));
				var ucscientifique = uc.toExponential(5);
				var u = new Number(((Math.sqrt((Math.pow(ua,2))+(Math.pow(ub,2))+(Math.pow(uf,2))+(Math.pow(justesse,2))))*2).toPrecision(6));
				var Uscientifique= u.toExponential(5);
				var incertitude = new Number((uc/moyenne).toPrecision(6));
				var incertitudescientifique = incertitude.toExponential(5);
				var correction = new Number((sommeerreur/nbmes).toPrecision(6));
				var correctionscientifique = correction.toExponential(5);
				var conformeEMTstandart =" NON CONFORME ";
				var conformeEMTperso=" NON CONFORME ";	
				var emt = <?php echo $suivi->emtstandart ?>;
				var emtperso = $("#emtpersonnel");
				var valeurRef= <?php echo $suivi->valeurRef ?>;
				if(moyenne+uc <= emt+valeurRef && moyenne-uc >= valeurRef-emt && moyenne-uc <= valeurRef+emt  && moyenne+uc >= valeurRef - emt && moyenne <= emt && moyenne >= (-emt)){
				conformeEMTstandart =" totalement CONFORME ";
				}else if((moyenne+uc > valeurRef+emt && moyenne-uc > valeurRef+emt && moyenne < (-emt)) || (moyenne-uc < valeurRef-emt  && moyenne+uc < valeurRef-emt && moyenne > emt )){
				conformeEMTstandart =" totalement NON CONFORME ";
				}else if(( moyenne <= emt && moyenne-uc <= emt && moyenne+uc >= emt)|| (moyenne > (-emt) && moyenne+uc > (-emt) && moyenne-uc < (-emt))){
				conformeEMTstandart =" CONFORME avec risque de non-conformité ";
				}else if(( moyenne > emt && moyenne-uc <= emt && moyenne+uc >= emt) || (moyenne <(-emt) && moyenne+uc > (-emt) && moyenne-uc < (-emt))){
				conformeEMTstandart =" NON CONFORME avec risque de conformité ";
				}
				if(moyenne+uc <= emtperso+valeurRef && moyenne-uc >= valeurRef-emtperso && moyenne-uc <= valeurRef+emtperso  && moyenne+uc >= valeurRef - emtperso && moyenne <= emtperso && moyenne >= (-emtperso)){
				conformeEMTperso =" totalement CONFORME ";
				}else if((moyenne+uc > valeurRef+emtperso && moyenne-uc > valeurRef+emtperso && moyenne < (-emtperso)) || (moyenne-uc < valeurRef-emtperso  && moyenne+uc < valeurRef-emtperso && moyenne > emtperso )){
				conformeEMTperso =" totalement NON CONFORME ";
				}else if(( moyenne <= emtperso && moyenne-uc <= emtperso && moyenne+uc >= emtperso)|| (moyenne > (-emtperso) && moyenne+uc > (-emtperso) && moyenne-uc < (-emtperso))){
				conformeEMTperso =" CONFORME avec risque de non-conformité ";
				}else if(( moyenne > emtperso && moyenne-uc <= emtperso && moyenne+uc >= emtperso) || (moyenne <(-emtperso) && moyenne+uc > (-emtperso) && moyenne-uc < (-emtperso))){
				conformeEMTperso =" NON CONFORME avec risque de conformité ";
				}									
				document.getElementById("moyenne").innerHTML ="<div class=\"input number\"><label for=\"moyenne\">Moyenne</label><input type=\"text\" name=\"moyenne\" id=\"moyenne\" value=\""+moyenne+"\" readonly> "+symbole+"</div>";
				
				document.getElementById("ecarttype").innerHTML = "<div class=\"input number\"><label for=\"ecarttype\">L'ecart-type expérimental </label><input type=\"text\" name=\"ecarttype\" id=\"ecarttype\" value=\""+ecarttypescientifique+"\" readonly> "+symbole+"</div>";
				
				
				document.getElementById("resultat").innerHTML = "<div class=\"input number\"><label for=\"ua\">ua  </label><input type=\"text\" name=\"ua\" id=\"ua\" value=\""+uascientifique+"\" readonly> "+symbole+"</div>";
				
				document.getElementById("resultat").innerHTML += "<div class=\"input number\"><label for=\"ub\">ub  </label><input type=\"text\" name=\"ub\" id=\"ub\" value=\""+ubscientifique+"\" readonly> "+symbole+"</div>";
				
				document.getElementById("resultat").innerHTML += "<div class=\"input number\"><label for=\"uf\">uf  </label><input type=\"text\" name=\"uf\" id=\"uf\" value=\""+ufscientifique+"\" readonly> "+symbole+"</div>";
				
				document.getElementById("resultat").innerHTML += "<div class=\"input number\"><label for=\"uc\">uc  </label><input type=\"text\" name=\"uc\" id=\"uc\" value=\""+ucscientifique+"\" readonly> "+symbole+"</div>";
				
				document.getElementById("resultat").innerHTML += "<div class=\"input number\"><label for=\"u\">U  </label><input type=\"text\" name=\"u\" id=\"u\" value=\""+Uscientifique+"\" readonly> "+symbole+"</div>";
				
				document.getElementById("resultat").innerHTML += "<div class=\"input number\"><label for=\"incertitude\">L'incertitude-type relative  </label><input type=\"text\" name=\"incertitude\" id=\"incertitude\" value=\""+incertitudescientifique+"\" readonly> "+symbole+"</div>";
				
				document.getElementById("resultat").innerHTML += "<div class=\"input number\"><label for=\"justesse\">justesse </label><input type=\"text\" name=\"justesse\" id=\"justesse\" value=\""+justesse+"\" readonly> "+symbole+"</div>";
				
				document.getElementById("resultat").innerHTML += "<div class=\"input number\"><label for=\"correction\">correction </label><input type=\"text\" name=\"correction\" id=\"correction\" value=\""+correctionscientifique+"\" readonly> "+symbole+"</div>";
				
				
				document.getElementById("resultat").innerHTML += "<div class=\"input number\"><label for=\"conformeEMTstandart\">Le materiel verifié est </label><input type=\"text\" name=\"conformeEMTstandart\" id=\"conformeemtstandart\" value=\""+conformeEMTstandart+"\" readonly> à l'EMT standart</div>";
				document.getElementById("resultat").innerHTML += "<div class=\"input number\"><label for=\"conformeEMTperso\">Le materiel verifié est </label><input type=\"text\" name=\"conformeEMTperso\" id=\"conformeemtperso\" value=\""+conformeEMTperso+"\" readonly> à l'EMT personnel</div>";
				
				
				
				document.getElementById("resultat").innerHTML += "<div class=\"input text\"><label for=\"resultatfinal\">résultat de mesure </label><input type=\"text\" name=\"resultatfinal\" id=\"resultatfinal\" value=\"X=("+moyenne+" ± " + u +")\" readonly> "+symbole+"</div>";
				document.getElementById("resultat").innerHTML += "<p>où le 1er terme est la meilleure estimation de "+symbole+" et le 2ème terme son incertitude élargie pour un intervalle de confiance de 95%. </p>";
				
				document.getElementById("commentaire").innerHTML = "<div class=\"input textarea\"><label for=\"observation\">Observation</label><textarea name=\"observation\" maxlength=\"200\" id=\"observation\" rows=\"5\"></textarea></div>";
				
				$("#enregist").show();
			}else{
			
			if(!nombre){
				for(var i=0;i<mesures.length;i++){
					if(isNaN(mesures[i].value)){
						document.getElementById("pasnombre").innerHTML +="<p> La mesure "+(i+1)+" n'est pas un nombre</p>";
					}
				}
			}
			$("#enregist").hide();
		}
	}
		</script>