public function editerficheheureAction() { $sm = $this->getServiceLocator(); $saisie = new SaisieHeureProjet(); $utilisateur = new Container('utilisateur'); if (!$this->getRequest()->isXmlHttpRequest()) { // Récupération de l'EntityManager $em = $this->getEntityManager(); // Récupération du traducteur $translator = $sm->get('Translator'); // Récupération de la requete $request = $this->getRequest(); //Assignation de variables au layout $this->layout()->setVariables(array('headTitle' => $translator->translate('Fiche d\'heures'), 'breadcrumbActive' => $utilisateur->offsetGet('identite'), 'route' => array(), 'action' => 'editerficheheure', 'module' => 'fiche_heure', 'plugins' => array('fullcalendar', 'jquery-ui'))); // Récupération de l'utilisateur courant $idPersonnel = $utilisateur->offsetGet('id'); // Date de début et date de fin list($y, $m, $d) = explode('-', date('Y-m-d', time())); $dateDebut = mktime(4, 0, 0, $m, 01, $y); $dateFin = mktime(4, 0, 0, $m, date('t', $dateDebut), $y); // Récupération de la liste des personnels $personnel = new Personnel(); $personnels = $personnel->getNomsPersonnels($this->getServiceLocator()); // Récupération des saisies d'heure du personnel connecté, // ainsi que du récapitulatif par projet du personnel $saisiesHoraires = $saisie->getSaisiesHeureParProjet($sm, $dateDebut, $dateFin, $idPersonnel); // a transformer en array compréhensible par la conversion JSON. $recapitulatif = $saisie->getRecapitulatifParProjet($sm, $dateDebut, $dateFin, $idPersonnel); // A CHANGER !! // Vue avec Calendar return new ViewModel(array('personnels' => $personnels, 'saisiesHoraires' => $saisiesHoraires, 'recapitulatif' => $recapitulatif, 'idPersonnel' => $idPersonnel)); // $id = $utilisateur->offsetGet('id'); // $utilisateurCourant = $em->getRepository('Personnel\Entity\Personnel')->find($id); // if($utilisateurCourant == null) // throw new \Exception($translator->translate('Une erreur est survenue au chargement des heures.')); } // S'il s'agit d'une recherche // Critères de recherche $critere = $_GET['critere']; $idAffaire = isset($_GET['affaire']) ? $_GET['affaire'] : null; // Date de début et date de fin $dateCalendar = $_GET['date']; list($y, $m, $d) = explode('-', substr($dateCalendar, 0, 10)); $dateDebut = mktime(4, 0, 0, $m, 01, $y); $dateFin = mktime(4, 0, 0, $m, date('t', $dateDebut), $y); switch ($critere) { case 'projet': $idPersonnel = isset($_GET['personnel']) ? $_GET['personnel'] : null; $saisiesHoraires = $saisie->getSaisiesHeureParPersonnel($sm, $dateDebut, $dateFin, $idPersonnel, $idAffaire); // $recapitulatif = $saisie->getRecapitulatifParPersonnel($sm, $idAffaire); break; default: $idPersonnel = isset($_GET['personnel']) ? $_GET['personnel'] : (int) $utilisateur->offsetGet('id'); $saisiesHoraires = $saisie->getSaisiesHeureParProjet($sm, $dateDebut, $dateFin, $idPersonnel, $idAffaire); // $recapitulatif = $saisie->getRecapitulatifParProjet($sm, $dateDebut, $dateFin, $idPersonnel); break; } return new JsonModel(array('saisiesPHP' => $saisiesHoraires, 'date' => date("Y-m-d", $dateDebut))); }
public function miseEnSessionUtilisateur(Personnel $personnel, $email, $motDePasse) { $utilisateur = new Container('utilisateur'); $utilisateur->offsetSet('id', $personnel->getId()); $utilisateur->offsetSet('admin', $personnel->getAdministrateur()); $utilisateur->offsetSet('identite', $personnel->getPrenom() . ' ' . $personnel->getNom()); $utilisateur->offsetSet('email', $email); $utilisateur->offsetSet('mot_de_passe', $motDePasse); $utilisateur->offsetSet('taux_horaire', $personnel->getTauxHoraire()); $utilisateur->offsetSet('date_modif', $personnel->getDateCreationModification()); // $utilisateur->offsetSet('fonction',$personnel->getRefFonction()->getIntituleFonction()); $utilisateur->offsetSet('connecte', true); }
public function miseEnSessionUtilisateur(Personnel $personnel, $motDePasse) { $utilisateur = new Container('utilisateur'); $utilisateur->offsetSet('id', $personnel->getId()); $utilisateur->offsetSet('admin', $personnel->getAdministrateur()); $utilisateur->offsetSet('identite', $personnel->getPrenom() . ' ' . $personnel->getNom()); $utilisateur->offsetSet('email', $personnel->getEmail()); $utilisateur->offsetSet('mot_de_passe', $motDePasse); // Hum... Réccupérer le mot de passe en session ou celui fournit par le formulaire. Encodé en MD5 à ce moment là ou pas ? $utilisateur->offsetSet('taux_horaire', $personnel->getTauxHoraire()); $utilisateur->offsetSet('date_modif', $personnel->getDateCreationModification()); // $utilisateur->offsetSet('fonction',$personnel->getRefFonction()->getIntituleFonction()); $utilisateur->offsetSet('connecte', true); }
/** * {@inheritDoc} */ public function getNomsPersonnels($sm, $limit = 100) { $this->__initializer__ && $this->__initializer__->__invoke($this, 'getNomsPersonnels', array($sm, $limit)); return parent::getNomsPersonnels($sm, $limit); }
public function __construct($translator, $personnel = null, $sm = null, $em = null, $request = null) { parent::__construct('personnel-form'); $this->setAttribute('method', 'post'); $personnelModel = new PersonnelModel(); $this->fields = $personnelModel->fields; $this->setInputFilter($personnelModel->getInputFilter()); // Creation des champs du formulaire à partir des champs du modèle de l'interlocuteur foreach ($this->fields as $field => $data) { $value = $type = $label = $required = ''; $value_options = array(); if (isset($data['form']['label'])) { $label = $translator->translate($data['form']['label']); } if (isset($data['form']['required']) && $data['form']['required'] == true) { $required = 'required '; } // Déclaration de l'élément de formulaire $element = array('name' => $field, 'type' => $data['form']['type'], 'attributes' => array('id' => $field, 'class' => '', 'required' => $required), 'options' => array('label' => $label), 'labelAttributes' => array('class' => 'control-label')); // Adding specified class and requirement if (isset($data['form']['class'])) { $element['attributes']['class'] .= $data['class']; } $element['attributes']['class'] .= $required; // Adding specified attributes if (isset($data['form']['attributes']) && is_array($data['form']['attributes']) && count($data['form']['attributes']) > 0) { foreach ($data['form']['attributes'] as $attr => $content) { $element['attributes'][$attr] = $content; } } // Adding scripts to the element if exists if (isset($data['form']['scripts']) && is_array($data['form']['scripts']) && count($data['form']['scripts']) > 0) { $element['scripts'] = $data['form']['scripts']; } // Faire un switch sur le type afin de générer le bon élément : select, hidden, textfield, textarea... switch ($data['form']['type']) { case 'text': $element['attributes']['type'] = 'text'; $element['attributes']['class'] .= ' form-control'; $element['attributes']['placeholder'] = $label; if (isset($data['max'])) { $element['attributes']['maxlength'] = $data['max']; } break; case 'textarea': $element['attributes']['type'] = 'textarea'; $element['attributes']['class'] .= ' form-control'; $element['attributes']['placeholder'] = $label; if (isset($data['max'])) { $element['attributes']['maxlength'] = $data['max']; } break; case 'checkbox': $element['attributes']['type'] = 'checkbox'; $element['options']['checked_value'] = 1; $element['options']['unchecked_value'] = 0; $element['attributes']['value'] = 1; break; case 'date': $element['type'] = 'text'; $element['attributes']['type'] = 'text'; $element['attributes']['class'] .= ' form-control input-sm'; $element['attributes']['placeholder'] = $label; $element['attributes']['data-mask'] = '99/99/9999'; break; case 'select': $element['attributes']['type'] = 'select'; $element['attributes']['class'] .= ' form-control'; $element['options']['empty_option'] = $label; if (!isset($data['form']['required']) || $data['form']['required'] == false) { $element['options']['disable_inarray_validator'] = true; } // Permet de préciser que si null est envoyé au form alors qu'il n'est pas dans le tableau des possiblités, on désactive le validateur afin qu'il ne crie pas if (isset($data['form']['value_options'])) { $element['options']['value_options'] = $data['form']['value_options']; } else { $options = array(); switch ($field) { } $element['options']['value_options'] = $options; } break; default: $element['attributes']['type'] = $data['form']['type']; $element['attributes']['class'] .= ' form-control input-sm'; $element['attributes']['placeholder'] = $label; break; } // Si le interlocuteur n'est pas null et qu'on le modifie, on ajoute ses propriétés au formulaire if (!is_null($personnel)) { // if($field=='code_fournisseur') // { // $value=$interlocuteur->getRefSocieteFournisseur(); // if($value) // { // if($value->getCodeFournisseur()) // { // $element['attributes']['value']=$value->getCodeFournisseur(); // } // else // { // $element['attributes']['value']=0; // } // } // } if ($field == 'administrateur') { $p = new Personnel(); if (!$personnel->getAdministrateur() && $p->existeAdministrateur($em)) { $element['attributes']['disabled'] = 'disabled'; } } if ($field == 'mot_de_passe' || $field == 'confirmation_mot_de_passe') { $element['attributes']['value'] = $personnel->getMotDePasse(); } else { if ($data['form']['type'] == 'hidden') { $value = $personnel->{'get' . $data['form']['getter']}(); } else { $tab = explode('_', $field); $method = ''; foreach ($tab as $part) { $method .= ucfirst($part); } $property = lcfirst($method); if (property_exists($personnel, $property)) { $value = $personnel->{'get' . $method}(); } } if (is_object($value)) { $element['attributes']['value'] = $value->getId(); } else { $element['attributes']['value'] = $value; } } } $this->add($element); } $this->add(array('name' => 'submit', 'type' => 'Submit', 'attributes' => array('id' => 'interlocuteur-form-submit', 'type' => 'submit', 'class' => 'btn btn-primary pull-right', 'value' => 'Valider'))); }