add_edit.ctp 10.1 KB
<?php
// Variables passées à cette vue par le controleur

// - 1) du super Controleur (AppController)

$PROFILE_USER = $PROFILE_USER; // 1
$PROFILE_RESPONSABLE = $PROFILE_RESPONSABLE; // 2
$PROFILE_ADMIN = $PROFILE_ADMIN; // 3
$PROFILE_ADMINPLUS = $PROFILE_ADMINPLUS; // 4
$PROFILE_SUPERADMIN = $PROFILE_SUPERADMIN; // 5
$allProfiles = $allProfiles;

// PAS TOUJOURS
//$_serialize = $_serialize; // True or False

$username = $username;
$configuration = $configuration;
$D = $D;
$priviledgedUser = $priviledgedUser; // ATTENTION, $priviledgedUser = NULL si l'utilisateur courant n'est pas un utilisateur privilégié (pas dans la table "utilisateurs")
$role = $role;
$profile = $profile;
$USER_IS_UTILISATEUR = $USER_IS_UTILISATEUR;
$USER_IS_RESPONSABLE = $USER_IS_RESPONSABLE;
$USER_IS_ADMIN = $USER_IS_ADMIN;
$USER_IS_ADMINPLUS = $USER_IS_ADMINPLUS;
$USER_IS_SUPERADMIN = $USER_IS_SUPERADMIN;
$USER_IS_RESPONSABLE_OR_MORE = $USER_IS_RESPONSABLE_OR_MORE;
$USER_IS_ADMIN_OR_MORE = $USER_IS_ADMIN_OR_MORE;
$USER_IS_ADMINPLUS_OR_MORE = $USER_IS_ADMINPLUS_OR_MORE;

$hiddenFields = $hiddenFields;
$mandatoryFields = $mandatoryFields;
$readOnlyFields = $readOnlyFields;
$haveDefaultValueFields = $haveDefaultValueFields;
/*
debug($hiddenFields);
debug($mandatoryFields);
debug($readOnlyFields);
debug($haveDefaultValueFields);
*/

// Metrologie
$idGmNa = $idGmNa;
$idGtNa = $idGtNa;

// ET AUSSI QUELQUES FONCTIONS :
$displayElement = $displayElement;
$dateProchainControleVerif = $dateProchainControleVerif;


// - 2) du controleur de cette vue (EmpruntsController)

// add or edit mode ? true=add ; false=edit
$IS_ADD = $IS_ADD;
$IS_EDIT = !$IS_ADD;

//debug($entity);
$entity = $entity;      // nouveau nom
$emprunt = $entity;     // @deprecated

$parent = $parent;      // nouveau nom
$materiel = $parent;    // @deprecated
$materiels = $parents;
//$numMateriel = $numMateriel; // (EP) inutile

$disp_externe = $disp_externe;
$disp_interne = $disp_interne;
$nom_emprunteur_int = $nom_emprunteur_int;
$mail_emprunteur_int = $mail_emprunteur_int;
$nom_emprunteur_ext = $nom_emprunteur_ext;
$mail_emprunteur_ext = $mail_emprunteur_ext;

$utilisateurs = $utilisateurs;
$sites = $sites;

$entity_name = 'prêt';

$parent_controller = 'materiels';

// ADD only
if ($IS_ADD) {
    $verb = 'Ajouter';
    $icon = 'icon-plus';
}
// EDIT only
else {
    $verb = 'Éditer';
    $icon = 'icon-edit';
    //$numMateriel = $numMateriel;
}
?>
            

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

	<!-- Titre -->
	<h2>
		<i class="<?=$icon?>"></i> <?="$verb un $entity_name"?>
	</h2>
	
	<?php
	
	// Cet emprunt 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($entity);
	?>
	
        <fieldset>
    
            <?php
            
            // - matériel emprunté (hidden)
            echo $this->Form->hidden('materiel_id', [
                'options' => $materiels,
                'default' => $parent->id
                // EDIT
                //'default' => $emprunt->get('materiel_id')
                // ADD
                //'default' => $this->request->getAttribute('params')['pass'][0]
            ]);
            
            /* (EP inutile)        
            echo $this->Form->control('materiel_numero_laboratoire', [
                'label' => 'N° materiel labo',
                'default' => $numMateriel,
                'disabled' => TRUE
            ]);
            */
            
            // - date emprunt
            echo $this->Form->control('date_emprunt', [
                'type' => 'text',
                'label' => "Date de l'emprunt",
                'placeholder' => 'Cliquez pour selectionner une date',
                'class' => 'datepicker',
                // ADD only
                //'default' => date("d-m-Y")
                //'default' => (new \DateTime('now'))->format("d/m/Y")
                'default' => date("d/m/Y")
            ]);

            // - date retour
            // ADD only
            /*
            $tomorrow = new \DateTime(date("d-m-Y"));
            $tomorrow->add(new \DateInterval('P1D'));
            */
            echo $this->Form->control('date_retour_emprunt', [
                'type' => 'text',
                'label' => 'Date de retour',
                'placeholder' => 'Cliquez pour selectionner une date',
                'class' => 'datepicker',
                // ADD only
                'default' => (new \DateTime('tomorrow'))->format("d/m/Y")
            ]);
            
            // - emprunt interne
            echo $this->Form->control('emprunt_interne', [
                'label' => 'Emprunt interne',
                'onchange' => 'emprunt_interne_externe();',
                'default' => true
            ]);

            $ne = $emprunt->nom_emprunteur;
            if ($emprunt->emprunt_interne == 1 && isset($ne)) {
                $nom_emprunteur_int = $emprunt->nom_emprunteur;
                $mail_emprunteur_int = $emprunt->email_emprunteur;
            }
            if ($emprunt->emprunt_interne == 0 && isset($ne)) {
                $nom_emprunteur_ext = $emprunt->nom_emprunteur;
                $mail_emprunteur_ext = $emprunt->email_emprunteur;
            }
            
            // DIV EMPRUNT INTERNE
            echo '<div id="interne" style="margin: 0; padding: 0; ' . $disp_interne . ';">';
            
                // - nom emprunteur interne (hidden only pour Utilisateur)
                /*
                debug($role);
                $IS_USER = $role=='Utilisateur';
                $IS_USER = ! (in_array($role, [
                    'Responsable',
                    'Administration',
                    'Administration Plus',
                    'Super Administrateur'
                ]));
                */
                if ($USER_IS_UTILISATEUR) {
                    $f = 'hidden';
                    $disabled = true;
                }
                else {
                    $f = 'control'; 
                    $disabled = false;
                }
                echo $this->Form->$f('nom_emprunteur_int', [
                    'options' => $utilisateurs,
                    'readonly' => true,
                    'default' => $nom_emprunteur_int,
                    'div' => 'input required',
                    'label' => "Nom de l'emprunteur",
                    // EDIT only
                    'disabled' => $disabled
                ]);
                
                // - email emprunteur interne
                echo $this->Form->control('email_emprunteur_int', [
                    'label' => "Email de l'emprunteur",
                    'default' => $mail_emprunteur_int,
                    'readonly' => true
                ]);
                
                // - site
                echo $this->Form->control('site_id', [
                    'label' => 'Site',
                    'options' => $sites,
                    //'default' => 9,
                    'empty' => 'N/A',
                    'div' => 'input required'
                ]);
                
                // - lieu détail
                echo $this->Form->control('e_lieu_detail', [
                    'label' => 'Pièce'
                ]);
                
            echo '</div>';
            
            // DIV EMPRUNT EXTERNE
            echo '<div id="externe" style="margin: 0; padding: 0; ' . $disp_externe . ';">';
            
                // - nom emprunteur ext
                echo $this->Form->control('nom_emprunteur_ext', [
                    'label' => "Nom de l'emprunteur",
                    'default' => $nom_emprunteur_ext
                ]);
                
                // - email emprunteur ext
                echo $this->Form->control('email_emprunteur_ext', [
                    'label' => "Email de l'emprunteur",
                    'default' => $mail_emprunteur_ext,
                    'readonly' => false
                ]);
                
                // - labo
                echo $this->Form->control('laboratoire', [
                    'label' => 'Lieu'
                ]);
                
                // - tel
                echo $this->Form->control('tel', [
                    'label' => 'Tel'
                ]);
                
            echo '</div>';
            
            // - commentaire
            echo $this->Form->control('commentaire', [
                'type' => 'textarea'
            ]);
            
            // - nom créateur (hidden)
            echo $this->Form->hidden('nom_createur', [
                'value' => $username
            ])
            
            ?>
            
        </fieldset>

    <!--  BOUTONS submit & cancel -->
    <!-- <= $this->Form->submit(__('Valider')) ?> -->
	<?php $echoSubmitButtons($this, 
	    'view', 
	    //$parent_id, 
	    $parent->id,
	    $parent_controller
    );

    echo $this->Form->end(); 
    ?>

</div>

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

<script type="text/javascript">


$(document).ready(function () {

	$("#date-emprunt").change( function (event) {
		check_date_emprunt_inf_date_retour(); 
	});
	$("#date-retour-emprunt").change( function (event) { 
		check_date_emprunt_inf_date_retour(); 
	});

	/*
	 * ON CHANGE Nom emprunteur interne => chercher son email
	 */
	// $("#nom-emprunteur-int").bind("change")
	$("#nom-emprunteur-int").change( function (event) {
		var url = document.URL;
		var reg=new RegExp("(emprunts).*$","g");
		var emailUrl = url.replace(reg, "Users/getLdapEmail/");
		$.ajax({
			url: emailUrl + $("#nom-emprunteur-int").val()
		}).done(function(data) { 
			$("#email-emprunteur-int").val(data)
		});
	});
	
}); // $(document).ready

function check_date_emprunt_inf_date_retour() {
	return check_dates_d1_inf_d2("#date-emprunt", "#date-retour-emprunt", "La date de retour doit être postérieure à la date d'emprunt"); 
}


</script>