administrer.ctp 13.3 KB
<div class="materiels form">
    <?= $this->Form->create($materiel) ?>
    <fieldset>
		<h2>
			<i class="icon-edit"></i> Administrer un Matériel
		</h2>
        
        <?php
        echo $this->Html->link('Retourner au formulaire d\'édition classique', [
            'action' => 'edit',
            $materiel->id
        ]);
        echo '<br><br>';
        ?>
        <?= $this->Form->submit(__('Enregistrer')) ?>
       
        <?php
        
        echo $this->Form->control('designation', [
            'label' => 'Désignation'
        ]);
        
        echo $this->Form->control('numero_laboratoire', [
            'label' => 'Numéro de laboratoire'
        ]);
        
        echo $this->Form->control('hors_service', [
            'label' => 'Appareil hors_service'
        ]);
        
        echo $this->Form->control('etiquette', [
            'label' => 'Etiquette posée'
        ]);
        
        echo $this->Form->control('sur_categorie_id', [
            'label' => 'Domaine',
            'options' => $surCategories,
            'empty' => 'Choisir un domaine',
            'style' => 'width: 260px'
        
        ]);
        
        $categs = $categories;
        // if a domain is selected, reduce the categories list to this domain
        // if (isset ( $this->request->getData('sur_categorie_id') ) && ($this->request->getData('sur_categorie_id') != '')) {
        if ($this->request->getData('sur_categorie_id') !== null && $this->request->getData('sur_categorie_id') != '') {
            $categs = $categs->where([
                'sur_categorie_id =' => $this->request->getData('sur_categorie_id')
            ]);
        }
        echo $this->Form->control('categorie_id', [
            'label' => 'Catégorie',
            'style' => 'width: 380px',
            'options' => $categs,
            'empty' => 'Choisir une catégorie'
        ]);
        
        // SOUS-CATEGORIES
        // by default, list is empty
        $souscategs = [];
        // if a categ is selected, update sous-categs list for this categ (only)
        // if (isset ( $this->request->getData('categorie_id') ) && ($this->request->getData('categorie_id') != '')) {
        if ($this->request->getData('categorie_id') != null && $this->request->getData('categorie_id') != '') {
            $souscategs = $sousCategories;
            $souscategs = $souscategs->where([
                'categorie_id' => $this->request->getData('categorie_id')
            ]);
        }
        echo $this->Form->control('sous_categorie_id', [
            'label' => 'Sous-catégorie',
            'style' => 'width: 380px',
            'options' => $souscategs,
            'empty' => 'Choisir une sous-catégorie'
        ]);
        
        echo $this->Form->control('materiel_technique', [
            'label' => 'Technique'
        ]);
        echo $this->Form->control('materiel_administratif', [
            'label' => 'Inventoriable (>' . $configuration->prix_inventaire_administratif . '€)'
        ]);
        
        echo $this->Form->control('description', [
            'label' => 'Description'
        ]);
        
        echo $this->Form->control('site_id', [
            'options' => $sites,
            'style' => 'width: 380px',
            'default' => 9
        ]);
        
        echo $this->Form->control('lieu_detail', [
            'label' => 'Détail lieu de stockage'
        ]);
        
        echo $this->Form->control('date_acquisition', [
            'type' => 'text',
            'label' => 'Date de la commande',
            'class' => 'datepicker',
            'placeholder' => 'Cliquez pour sélectionner une date'
        ]);
        echo $this->Form->control('date_reception', [
            'type' => 'text',
            'label' => 'Date de réception',
            'class' => 'datepicker',
            'placeholder' => 'A éditer lors de la réception uniquement.',
            'empty' => true
        ]);
        
        echo '<table id="tableAlignementFrequence"><tr><td>';
        echo $this->Form->control('duree_garantie', [
            'type' => 'text',
            'style' => 'width: 100px',
            'label' => 'Durée garantie',
            'templates' => [
                'inputContainer' => '<div class="A">{{content}}</div>'
            ],
            'placeholder' => ''
        ]);
        echo '</td><td>';
        echo $this->Form->control('unite_duree_garantie', [
            'label' => false,
            'templates' => [
                'inputContainer' => '<div class="typeFrequence">{{content}}</div>'
            ],
            'options' => [
                'Mois' => 'Mois',
                'Ans' => 'Ans'
            ],
            'default' => 'Ans'
        ]);
        echo '</td></tr></table>';
        echo $this->Form->control('date_fin_garantie', [
            'type' => 'text',
            'label' => 'Date fin de garantie',
            'placeholder' => 'Cliquez pour selectionner une date',
            'class' => 'datepicker',
            'default' => NULL
        ]);
        
        echo $this->Form->control('status', [
            'label' => 'Statut',
            'options' => [
                'CREATED' => 'CREATED',
                'VALIDATED' => 'VALIDATED',
                'TOBEARCHIVED' => 'TOBEARCHIVED',
                'ARCHIVED' => 'ARCHIVED'
            ]
        ]);
        
        echo $this->Form->control('numero_serie', [
            'label' => 'Numéro de série'
        ]);
        echo $this->Form->control('groupes_thematique_id', [
            'label' => $configuration->nom_groupe_thematique,
            'options' => $groupesThematiques,
            'default' => 1
        ]);
        echo $this->Form->control('groupes_metier_id', [
            'label' => $configuration->nom_groupe_metier,
            'options' => $groupesMetiers,
            'default' => 1
        ]);
        
        if (! (in_array($role, [
            'Responsable',
            'Administration',
            'Administration Plus',
            'Super Administrateur'
        ]))) {
            echo $this->Form->hidden('nom_responsable', [
                'label' => 'Nom du propriétaire',
                'disabled' => $isReadonlyField('nom_responsable', $myReadonlyFields),
                'empty' => 'Choisir un utilisateur',
                'default' => $username,
                'options' => $utilisateurs
            ]);
        }
        
        if (isset($nom_ancien_responsable)) {
            echo $this->Form->control('nom_ancien_responsable', [
                'label' => 'Nom ancien propriétaire',
                'readonly' => true,
                'default' => $nom_ancien_responsable
            ]);
        }
        
        echo $this->Form->control('email_responsable', [
            'label' => 'Email du propriétaire',
            'default' => $mail_responsable
        ]);
        
        echo $this->Form->control('fournisseur_id', [
            'label' => 'Fournisseur',
            'options' => $fournisseurs,
            'style' => 'width: 380px',
            'empty' => 'choisir un fournisseur'
        ]);
        
        echo $this->Form->control('organisme_id', [
            'options' => $organismes,
            'style' => 'width: 380px',
            'empty' => 'Choisir un organisme'
        ]);
        echo $this->Form->control('prix_ht', [
            'label' => 'Prix HT (€)'
        ]);
        
        echo '<div style="border-top: 1px solid #CCC; border-bottom: 1px solid #CCC; margin-bottom: 0; background: #EEE;"><span style="font-size: 9px; color: red;">Partie administrative</span>';
        
        echo $this->Form->control('adminEdit', [
            'type' => 'checkbox',
            'label' => 'Editer la partie administrative',
            'onchange' => 'changeAdminEdit();',
            'default' => false
        ]);
        
        echo $this->Form->control('eotp', [
            'label' => 'Centre financier/EOTP',
            'disabled' => true
        ]);
        echo $this->Form->control('numero_commande', [
            'label' => 'Numéro de commande',
            'disabled' => true
        ]);
        echo $this->Form->control('code_comptable', [
            'label' => 'Code comptable',
            'disabled' => true
        ]);
        echo $this->Form->control('numero_inventaire_organisme', [
            'label' => 'N° inventaire organisme',
            'disabled' => true
        ]);
        echo $this->Form->control('numero_inventaire_old', [
            'label' => 'Ancien N° inventaire',
            'disabled' => true
        ]);
        echo '</div>';
        
        echo $this->Form->control('nom_createur', [
            'label' => 'Nom du créateur'
        ]);
        echo $this->Form->control('created', [
            'label' => 'Date de création'
        ]);
        echo $this->Form->control('nom_modificateur', [
            'label' => 'Nom du modificateur',
            'value' => $username
        ]);
        echo $this->Form->control('modified', [
            'label' => 'Date de modification'
        ]);
        
        echo $this->Form->hidden('administrer', [
            'default' => 1
        ]);
        ?>
    </fieldset>
    <?= $this->Form->submit(__('Enregistrer')) ?>
    <?= $this->Form->end() ?>
</div>

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

<?php
/**
 * GESTION DES EVENEMENTS SUR LES DOMAINES/CATEGORIES/SOUS-CATEGORIES
 *
 * Phase initialisation (1ère ouverture de la page) :
 * - domaine ==> value = TOUS, select = "choisir" (ADD) ou data (EDIT)
 * - categ ==> value = TOUTES (ADD) ou from domaine (EDIT), select = "choisir" (ADD) ou data (EDIT)
 * - scateg ==> value = Aucune (ADD) ou from categ (EDIT), select = "choisir" (ADD) ou data (EDIT)
 *
 * Event domaine change :
 * - si select <> "choisir" ==> categ value = from domaine (select="choisir"), et vider scateg
 * - si select = "choisir" ==> categ value = TOUTES (select="choisir"), et vider scateg
 *
 * Event categ change :
 * - si select <> "choisir" ==> domaine select = from categ, et scateg values = from categ
 * - si select = "choisir" ==> vider scateg
 *
 * Event scateg change : RIEN A FAIRE
 */
?>

<script type="text/javascript">
           
/** 
 * Event DOMAINE change
 * 
 * Sur sélection d'un DOMAINE ==> update CATEGORIES + empty SOUS-CATEGORIES
 * 
 * Dans le détail :
 * - si select <> "choisir" ==> categ value = from domaine (select="choisir")
 * - si select = "choisir" ==> categ value = TOUTES (select="choisir")
 * - puis (dans les 2 cas) vider scateg
 * 
 */

$(document).ready(function () {
	$("#sur-categorie-id").bind("change", function (event) {
			var domaineId=$("#sur-categorie-id :selected").val();

			if (domaineId=="") 
				updateSelectOptionsFromAnother("#categorie-id", "#sur-categorie-id", "Categories/getAll", "Choisir une catégorie");
			else 
				updateSelectOptionsFromAnother("#categorie-id", "#sur-categorie-id", "Categories/getBySurCategorie", "Choisir une catégorie");
			emptySelectOptions("#sous-categorie-id","Choisir une sous-catégorie");
			return false;
	});
});

/**
 *
 * Event CATEGORIE change
 *
 * - si select = "choisir" ==> vider scateg
 * - si select <> "choisir" ==> domaine value selected = celui de la categ, et scateg values = from categ
 */
$(document).ready(function () {
	$("#categorie-id").bind("change", function (event) {
		var categId=$("#categorie-id :selected").val();
		var categLabel=$("#categorie-id :selected").text();
		
		if (categId=="") emptySelectOptions("#sous-categorie-id","Choisir une sous-catégorie");
		else {
			updateSelectOptionsFromAnother("#sous-categorie-id", "#categorie-id", "SousCategories/getByCategorie", "Choisir une sous-catégorie "+categLabel);
			updateSelectOptionsFromAnother("#sur-categorie-id", "#categorie-id", "SurCategories/getFromCategorie", "");
		}
		return false;
	});
});

 
 /**
  * Event Mail change
  */
  $(document).ready(function () {
  	$("#nom-responsable").bind("change", function (event) {
  		var url = document.URL;
  		var reg=new RegExp("(materiels).*$","g");
  		var emailUrl = url.replace(reg, "Users/getLdapEmail/");
  		$.ajax({
  			url: emailUrl + $("#nom-responsable").val()
  		}).done(function(data) { 
  			$("#email-responsable").val(data)
  		});
  	});
  });


  /**
   * Event calcul date fin de garantie
   */
    $(document).ready(function () {
    	$("#duree-garantie").bind("change", function (event) {
    		if($("#date-reception").val() != "" && $("#duree-garantie").val() != "") {
    			var url = document.URL;
    			var reg=new RegExp("(materiels).*$","g");
    			var dateUrl = url.replace(reg, "Materiels/getDateGarantie/");
    			$.ajax({
    				url: dateUrl + $("#date-reception").val() + "/" + $("#duree-garantie").val() + "/" + $("#unite-duree-garantie").val()
    			}).done(function(data) { 
    				$("#date-fin-garantie").val(data)
    			});
    		}
    	});
    	$("#unite-duree-garantie").bind("change", function (event) {
    		if($("#date-reception").val() != "" && $("#duree-garantie").val() != "") {
    			var url = document.URL;
    			var reg=new RegExp("(materiels).*$","g");
    			var dateUrl = url.replace(reg, "Materiels/getDateGarantie/");
    			$.ajax({
    				url: dateUrl + $("#date-reception").val() + "/" + $("#duree-garantie").val() + "/" + $("#unite-duree-garantie").val()
    			}).done(function(data) { 
    				$("#date-fin-garantie").val(data)
    			});
    		}
    	});
    });

    
</script>