edit.ctp 11.9 KB
<?php
// Variables passées à cette vue par le controleur
$suivi = $suivi;

$parent = $parent;
//@deprecated
$materiel = $materiel;

$materiels = $materiels;
$unite = $unite;
$metro = $metro;
$domaineresp = $domaineresp;
$typeSuivis = $typeSuivis;
$numMateriel = $numMateriel;
$groupesThematiques = $groupesThematiques;
$groupesMetiers = $groupesMetiers;
?>

<!-- 
<div class="suivis form col-lg-12 col-md-12 col-sm-12">
-->
<div class="suivis form col-lg-5 col-md-7 col-sm-9">

	<h2>
		<i class="icon-edit"></i> Editer un suivi
	</h2>
	
	<?php
	
	// Ce suivi concerne le materiel...
    //$link = isset($materiel) ? $materiel->designation : 'Suivi '.$suivi->id;
	$displayElement(__("Matériel concerné :"), $this->Html->link($parent->designation, [
        'controller' => 'materiels',
        'action' => 'view',
        $parent->id
    ]));
    
    echo $this->Form->create($suivi);
    ?>
    
    	<fieldset>

            <?php
            
            // - intitulé
            echo $this->Form->control('intitule', ['label' => 'Intitulé']);
    
            // - matériel suivi (hidden)
            echo $this->Form->hidden('materiel_id', [
                'options' => $materiels,
                'default' => $suivi->get('materiel_id')
            ]);
            
            // - num labo
            /* (EP inutile)
            echo $this->Form->control('materiel_numero_laboratoire', [
                'label' => 'N° materiel labo',
                'default' => $materiel['numero_laboratoire'],
                'disabled' => TRUE
            ]);
            */
            
            // - type suivi
            echo $this->Form->control('type_suivi_id', [
                'label' => "Type d'intervention",
                'options' => $typeSuivis,
                'disabled' => false
                //'disabled' => TRUE
            ]);
           
            // Affichage des bonnes informations en fonction du type de suivi
            
            // type = maintenance ? => cas spécifique
            //if ($suivi->type_suivi_id == 2 ) {
            //debug($suivi->type_suivi->nom);
            if ($suivi->type_suivi->nom == 'Maintenance' ) {
                // - date controle
            	echo $this->Form->control('date_controle', [
            			'type' => 'text',
            			'id' => 'date_deb',
            			'label' => 'Date de la prise en charge',
            			'class' => 'datepicker',
            			'placeholder' => 'Cliquez pour sélectionner une date',
            			//'disabled' => true
            	]);
            	// - date prochain controle
            	echo $this->Form->control('date_prochain_controle', [
            			'type' => 'text',
            			'id' => 'date_fin',
            			'label' => 'Date de fin estimée',
            			'class' => 'datepicker',
            			'placeholder' => 'Cliquez pour sélectionner une date'
            	]);
            } // maintenance
            
            // autre type que maintenance ? => cas général
            else {
                //echo '<table id="tableAlignementFrequence" border=1><tr>';
                echo '<table id="tableAlignementFrequence" border=0><tr>';
                	// - fréquence
                	echo '<td>';
                    	echo $this->Form->control('frequence', [
                			'type' => 'text',
                			'id' => 'SuiviFrequence',
                			'label' => 'Fréquence',
                			//'disabled' => true,
                			'templates' => [
                					'inputContainer' => '<div class="A">{{content}}</div>'
                			],
                			'placeholder' => ''
                    	]);
                	echo '</td>';
                	// - type fréquence
                	echo '<td>';
                    	echo $this->Form->control('type_frequence', [
                    	    //'label' => false,
                    	    'label' => 'Intervalle',
                			//'disabled' => true,
                			'templates' => [
                					'inputContainer' => '<div class="typeFrequence">{{content}}</div>'
                			],
                			'options' => [
                					'/ Jours' => '/ Jours',
                					'/ Semaines' => '/ Semaines',
                					'/ Mois' => '/ Mois',
                					'/ Ans' => '/ Ans'
                			],
                			'default' => '/ Mois'
                    	]);
            	   echo '</td>';
            	echo '</tr></table>';
            } // autre type que maintenance
    
            // statut
            echo $this->Form->control('statut', [
                'options' => [
                    'En cours' => 'En cours',
                    'Terminé' => 'Terminé'
                ]
            ]);
            
            // prestataire
            echo $this->Form->control('organisme', [
                'label' => 'Prestataire'
            ]);
            
            // groupe thématique
            echo $this->Form->control('groupes_thematique_id', [
                'label' => $configuration->nom_groupe_thematique,
                'options' => $groupesThematiques,
                'default' => $materiel['groupes_thematique_id']
            ]);
            
            // groupe métier
            echo $this->Form->control('groupes_metier_id', [
                'label' => $configuration->nom_groupe_metier,
                'options' => $groupesMetiers,
                'default' => $materiel['groupes_metier_id']
            ]);
            
            // (metro) type mesure (hidden)
            echo '<div id="typedemesure" style="display:none">';
                // echo '<div class="input select required"><label for="typemesure">Type de mesure</label><select name="typemesure" id="typemesure"><option value="1">Direct</option><option value="2">Indirect</option></select></div>';
                // La ligne du dessus est l'équivalent en pas propre de l'input juste en dessous !
                echo $this->Form->control('typemesure', [
                    'label' => 'Type de mesure',
                    'options' => [
                        '1' => 'Direct',
                        '2' => 'Indirect'
                    ]
                    // 'required' => 'required'
                ]);
            echo '</div>';
    
            // Section métrologie (hidden)
            echo '<div id="metro" style="display:none">';
                // (metro) nom mesure (hidden)
                echo $this->Form->control('nommesure', [
                    'label' => 'Nom de la mesure'
                    // 'required' => 'required'
                ]);
                echo $this->Form->control('symbole', [
                    'label' => 'Symbole'
                    // 'required' => 'required'
                ]);
                echo $this->Form->control('unite_id', [
                    'options' => $unite,
                    'label' => 'Unité',
                    'empty' => 'choisir une unité'
                    // 'required' => 'required'
                ]);
                echo $this->Form->control('valeurRef', [
                    'label' => 'Valeur de référence'
                    // 'required' => 'required'
                ]);
                echo $this->Form->control('plage_debut', [
                    'label' => 'Plage de mesure (debut)'
                ]);
                echo $this->Form->control('plage_fin', [
                    'label' => 'Plage de mesure (fin)'
                ]);
                echo $this->Form->control('resolution', [
                    'label' => 'Resolution'
                    // 'required' => 'required'
                ]);
                echo $this->Form->control('tolerance', [
                    'label' => 'Tolerance'
                    // 'required' => 'required'
                ]);
                echo $this->Form->control('sensibilite', [
                    'label' => 'Sensibilité'
                ]);
                echo $this->Form->control('justesse', [
                    'label' => 'Justesse'
                ]);
                echo $this->Form->control('fidelite', [
                    'label' => 'Fidelite'
                ]);
                echo $this->Form->control('emtstandart', [
                    'label' => 'EMT standart'
                    // 'required' => 'required'
                ]);
            echo '</div>'; // Section métrologie (hidden)
            
            // commentaire
            echo $this->Form->control('commentaire', [
                'type' => 'textarea'
            ]);
            
            // nom modificateur (hidden)
            echo $this->Form->hidden('nom_modificateur', [
                'value' => $username
            ]);
            ?>
            
    </fieldset>
    
    <!-- Bouton enregistrer -->
    <?=$this->Form->submit(__('Enregistrer'))?>
    
    <?=$this->Form->end()?>
    
</div>

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






<!-- 
********************************************************************************
                                JAVASCRIPT functions 
********************************************************************************
-->

<script type="text/javascript">

$(document).ready(function () {

			var domaineId = $("#type-suivi-id :selected").text();
			var ismetro = "<?=$materiel['metrologie']?>";

			//$("#metro").show();
			//$("#metro").hide();
			//if (domaineId != "Vérification métrologique") {
			if (domaineId == "Vérification métrologique") {
				$("#metro").show();
				$("#nommesure").attr('required',true);
				$("#symbole").attr('required',true);
				$("#unite_id").attr('required',true);
				$("#valeurRef").attr('required',true);
				$("#resolution").attr('required',true);
				$("#tolerance").attr('required',true);
				$("#emtstandart").attr('required',true);
				$("#typedemesure").show();
				$("#typedemesure").attr('required',true);
			} else if (ismetro == 1) {
				$("#metro").hide();
				$("#nommesure").attr('required',false);
				$("#symbole").attr('required',false);
				$("#unite_id").attr('required',false);
				$("#valeurRef").attr('required',false);
				$("#resolution").attr('required',false);
				$("#tolerance").attr('required',false);
				$("#emtstandart").attr('required',false);
				$("#typedemesure").hide();
				$("#typedemesure").attr('required',false);
			}

			if(domaineId == "Réparation") $("#frequence").hide();
			else $("#frequence").show();

});


/*
 *  Vérification date début > date fin dans le cas d'une panne
 */


$(document).ready(function () {
d1 = toDate($("#date_deb")[0].value); 	/* Date de la prise en charge de la panne */
d2 = toDate($("#date_fin")[0].value); 	/* Date estimee de fin de la panne */

if($("#date_fin")[0].value != undefined){
	if(d1 > d2) {
		alert("Les dates ne correspondent pas, la date de début de prise en charge doit être antérieure à la date de fin.");
		event.preventDefault();
	}
}

 });

 
/**
 * Event calcul date prochain controle
 */
  $(document).ready(function () {
  	$("#SuiviFrequence").bind("change", function (event) {
  		if($("#date-controle").val() != "" && $("#SuiviFrequence").val() != "") {
  			var url = document.URL;
  			var reg=new RegExp("(suivis).*$","g");
  			var dateUrl = url.replace(reg, "Suivis/getNextDate/");
  			$.ajax({
  				url: dateUrl + $("#date-controle").val() + "/" + $("#SuiviFrequence").val() + "/" + $("#type-frequence").val().substring(2)
  			}).done(function(data) {
  				$("#date-prochain-controle").val(data)
  			});
  		}
  	});
  	$("#type-frequence").bind("change", function (event) {
  		if($("#date-controle").val() != "" && $("#SuiviFrequence").val() != "") {
  			var url = document.URL;
  			var reg=new RegExp("(suivis).*$","g");
  			var dateUrl = url.replace(reg, "Suivis/getNextDate/");
  			$.ajax({
  				url: dateUrl + $("#date-controle").val() + "/" + $("#SuiviFrequence").val() + "/" + $("#type-frequence").val().substring(2)
  			}).done(function(data) {
  				$("#date-prochain-controle").val(data)
  			});
  		}
  	});
  });

</script>