edit.ctp 7.84 KB
<?php 
define ( 'IS_CREATED', $materiel->status == 'CREATED' );
define ( 'IS_VALIDATED', $materiel->status == 'VALIDATED' );
define ( 'IS_ARCHIVED_OR_TOBE', in_array ( $materiel->status, ['TOBEARCHIVED','ARCHIVED'] ) );

function isReadonlyField($fieldName, $myReadonlyFields) {
	if (! empty ( $myReadonlyFields ) && $myReadonlyFields [0] == '*') {
		$modifiableFields = $myReadonlyFields;
		array_shift ( $modifiableFields );
		return ! in_array ( $fieldName, $modifiableFields );
	}
	return in_array ( $fieldName, $myReadonlyFields );
}

$administrationData = array (
		'eotp',
		'numero_commande',
		'code_comptable',
		'numero_inventaire_organisme',
		'numero_inventaire_old' 
);

$myReadonlyFields = array ();
if (IS_VALIDATED)
	// can only modify some fields
	$myReadonlyFields = array_merge (
			array (
					'sur_categorie_id',
					'categorie_id',
					'sous_categorie_id',
					'materiel_administratif',
					'materiel_technique',
					'site_id',
					'date_acquisition',
					'date_reception',
					'nom_responsable',
					'fournisseur',
					'organisme_id',
					'prix_ht'
			),
			$administrationData
			);

	elseif (IS_ARCHIVED_OR_TOBE) {
		$myReadonlyFields = array ('*','status');
	}
?>



<div class="materiels form">
    <?= $this->Form->create($materiel) ?>
    <fieldset>
        <h2><i class="icon-edit"></i> Editer un Matériel</h2>
        <?= $this->Form->button(__('Enregistrer')) ?>
       
        <?php
        echo $this->Form->input('designation', [
        		'label' => 'Désignation',
        		'disabled' => isReadonlyField('designation', $myReadonlyFields)
        		
        ]);
        
        echo $this->Form->input('sur_categorie_id', [
        		'label' => 'Domaine', 
        		'options' => $surCategories, 
        		'empty' => 'Choisir un domaine',
        		'readonly' => isReadonlyField ( 'sur_categorie_id', $myReadonlyFields ),
        		'disabled' => isReadonlyField ( 'sur_categorie_id', $myReadonlyFields )
        		
        ]);
        echo $this->Form->input('categorie_id', [
        		'label' => 'Catégorie', 
        		'options' => $categories, 
        		'empty' => 'Choisir une catégorie',
        		'disabled' => isReadonlyField('categorie_id', $myReadonlyFields)
        ]);
        echo $this->Form->input('sous_categorie_id', [
        		'label' => 'Sous-catégorie', 
        		'options' => $sousCategories, 
        		'empty' => 'Choisir une sous-catégorie',
        		'disabled' => isReadonlyField('sous_categorie_id', $myReadonlyFields)
        ]);
        
        echo $this->Form->input('materiel_technique', [
        		'label' => 'Technique',
        		'disabled' => isReadonlyField('materiel_technique', $myReadonlyFields)
        ]);
        echo $this->Form->input('materiel_administratif', [
        		'label' => 'Inventoriable (>800€)',
        		'disabled' => isReadonlyField('materiel_administratif', $myReadonlyFields)
        ]);
        
        echo $this->Form->input('description', [
        		'label' => 'Description',
        		'disabled' => isReadonlyField('description', $myReadonlyFields)
        ]);
		echo $this->Form->input('etiquette', [
				'label' => 'Etiquette posée',
				'disabled' => isReadonlyField('etiquette', $myReadonlyFields)
		]);
        echo $this->Form->input('site_id', [
        		'options' => $sites, 
        		'empty' => 'Choisir un site',
        		'disabled' => isReadonlyField('site_id', $myReadonlyFields)
        ]);
        
		echo $this->Form->input('lieu_stockage', ['label' => 'Lieu de stockage (pièce)']);
		echo $this->Form->input('lieu_detail', ['label' => 'Détail lieu de stockage']);
		
        echo $this->Form->input('date_acquisition', [
        		'type' => 'text', 
        		'label' => 'Date de la commande', 
        		'class' => 'datepicker', 
        		'placeholder' => 'Cliquez pour sélectionner une date',
        		'disabled' => isReadonlyField('date_acquisition', $myReadonlyFields),
        ]);
        echo $this->Form->input('date_reception', [
        		'type' => 'text', 
        		'label' => 'Date de réception', 
        		'class' => 'datepicker', 
        		'placeholder' => 'A éditer lors de la réception uniquement.', 
        		'disabled' => isReadonlyField('date_reception', $myReadonlyFields),
        		'empty' => true]);
        
        echo $this->Form->input('status', ['label' => 'Statut', 'options' => [
					'CREATED' => 'CREATED',
					'VALIDATED' => 'VALIDATED',
					'TOBEARCHIVED' => 'TOBEARCHIVED',
					'ARCHIVED' => 'ARCHIVED']]);
        
        echo $this->Form->input('numero_serie', [
        		'label' => 'Numéro de série',
        		'disabled' => isReadonlyField('numero_serie', $myReadonlyFields)
        ]);
        echo $this->Form->input('groupes_thematique_id', [
        		'label' => 'Groupe thématique', 
        		'disabled' => isReadonlyField('groupes_thematique_id', $myReadonlyFields),
        		'options' => $groupesThematiques]);
        echo $this->Form->input('groupes_metier_id', [
        		'label' => 'Groupe métier', 
        		'disabled' => isReadonlyField('groupes_metier_id', $myReadonlyFields),
        		'options' => $groupesMetiers]);
        
        
        echo $this->Form->input('nom_responsable', [
        		'label' => 'Nom du responsable',
        		'disabled' => isReadonlyField('nom_responsable', $myReadonlyFields),
        		'empty' => 'Choisir un utilisateur',
        		'default' => $username,
        		'options' => $utilisateurs
        ]);
        if(isset($nom_ancien_responsable)){
        	echo $this->Form->input ('nom_ancien_responsable', [
        		'label' => 'Nom ancien responsable',
        		'readonly' => true,
        		'default' => $nom_ancien_responsable
        	]);
        }
        echo $this->Form->input('email_responsable', [
        		'label' => 'Email du responsable', 
        		'readonly' => true,
        		'default' => $mail_responsable
        ]);
       
        
        echo $this->Form->input('fournisseur', [
        		'label' => 'Fournisseur',
        		'disabled' => isReadonlyField('email_responsable', $myReadonlyFields)
        ]);
        echo $this->Form->input('organisme_id', [
        		'options' => $organismes, 
        		'disabled' => isReadonlyField('organisme_id', $myReadonlyFields),
        		'empty' => 'Choisir un organisme'
        ]);
        echo $this->Form->input('prix_ht', [
        		'label' => 'Prix HT (€)', 
        		'disabled' => isReadonlyField('prix_ht', $myReadonlyFields)
        ]);
       
        
        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->input('eotp', [
        		'label' => 'Centre financier/EOTP',
        		'disabled' => isReadonlyField('eotp', $myReadonlyFields)
        ]);
        echo $this->Form->input('numero_commande', [
        		'label' => 'Numéro de commande',
        		'disabled' => isReadonlyField('numero_commande', $myReadonlyFields)
        ]);
        echo $this->Form->input('code_comptable', [
        		'label' => 'Code comptable',
        		'disabled' => isReadonlyField('code_comptable', $myReadonlyFields)
        ]);
        echo $this->Form->input('numero_inventaire_organisme', [
        		'label' => 'N° inventaire organisme',
        		'disabled' => isReadonlyField('numero_inventaire_organisme', $myReadonlyFields)
        ]);
        echo $this->Form->input('numero_inventaire_old', [
        		'label' => 'Ancien N° inventaire',
        		'disabled' => isReadonlyField('numero_inventaire_old', $myReadonlyFields)
        ]);
        echo $this->Form->hidden('nom_modificateur', ['value' => $username ]);
        echo '</div>';
        
        ?>
    </fieldset>
    <?= $this->Form->button(__('Enregistrer')) ?>
    <?= $this->Form->end() ?>
</div>

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