/** L'action de creer le poste */
 public WOComponent doCreatePoste() {
   if (isFormValid()) {
     // creer le poste
     EOPoste newPoste =
         EOPoste.newRecordInContext(
             ec(), inNewPosteService, newPosCode, newPosLibelle, newPosDDebut, newPosDFin);
     // creer l'occupation
     if (isCreatingFromExistingAffectation) {
       EOAffectationDetail.newRecordInContext(
           ec(), newPosAffectation, newPoste, newPosDDebut, newPosDFin, false);
     }
     // creer la fiche de poste (uniquement pour les postes non enseignants)
     if (isCreatingFicheDePoste && newPoste.isNonEnseignant()) {
       EOFicheDePoste.newRecordInContext(ec(), newPoste, newPosDDebut, newPosDFin);
     }
     // creer la fiche lolf
     EOFicheLolf.newRecordInContext(
         // ec(), newPoste, FinderExercice.getExercicePourDate(ec(), DateCtrl.now()));
         ec(), newPoste, FinderExercice.getExerciceDepensePourDate(ec(), DateCtrl.now()));
     // enregistrement
     try {
       UtilDb.save(ec(), "");
     } catch (Throwable e) {
       e.printStackTrace();
     }
     // on retourne sur la liste des postes en rafraichissant son contenu
     ((I_CallingCompPosteMetaData) caller).doAfterCompPosteMetaDataSuccess();
     return null;
   } else {
     return null;
   }
 }
 /**
  * Remplir les donnes par default lors de la creation d'un poste. Les valeurs dependent si
  * creation a partir d'une affectation ou pas.
  */
 private void fillDefaultValuesNewPoste() {
   // on ecrase pas les donnes du poste si un code a ete saisi
   if (StringCtrl.isEmpty(newPosCode)) {
     newPosCode = EOPoste.getDefaultPosCodeForStructure(inNewPosteService);
   }
   newPosLibelle = EOPoste.getLibelleDefautPourAffectation(newPosAffectation);
   if (isCreatingFromExistingAffectation) {
     newPosDDebut = newPosAffectation.dDebAffectation();
     newPosDFin = newPosAffectation.dFinAffectation();
   } else {
     newPosDDebut = new NSTimestamp();
     newPosDFin = null;
   }
 }
 /**
  * Effectue la verification des donnees saisies. Si tout est OK, alors <code>true</code> est
  * retourne.
  *
  * <p>Sinon <code>false</code> et <code>errMsg</code> est mis a jour
  */
 private boolean isFormValid() {
   // raz du msg
   clearError();
   if (isModeCreatePoste()) {
     // le code, le libelle et la date de debut sont obligatoires
     if (StringCtrl.isEmpty(newPosCode)) {
       setErrMsg("Le code du poste est obligatoire");
     } else if (StringCtrl.isEmpty(newPosLibelle)) {
       setErrMsg("Le libellé du poste est obligatoire");
     } else if (newPosDDebut == null) {
       setErrMsg("La date d'ouverture du poste est obligatoire");
     }
   } else {
     // le code, le libelle et la date de debut sont obligatoires
     if (StringCtrl.isEmpty(inPoste.posCode())) {
       setErrMsg("Le code du poste est obligatoire");
     } else if (StringCtrl.isEmpty(inPoste.posLibelle())) {
       setErrMsg("Le libelle du poste est obligatoire");
     } else if (inPoste.posDDebut() == null) {
       setErrMsg("La date d'ouverture du poste est obligatoire");
     }
   }
   return !hasError();
 }