Beispiel #1
0
 function validate($annee, $pm, $data)
 {
     extract($data);
     $m = $pm->data;
     $u = $this->unite;
     $a = $annee;
     $t = new Appartenances();
     $tr = new Roles();
     $ti = new Individus();
     $db = $t->getAdapter();
     $db->beginTransaction();
     $tu = $u->findParentTypesUnite();
     try {
         if ($m->get('inscription/individu') == '$$nouveau$$') {
             $i = new Individu();
             $i->prenom = $m->get('fiche/prenom');
             $i->nom = $m->get('fiche/nom');
             $i->sexe = $m->get('fiche/sexe');
             $i->naissance = $a - $tu->age_min . '-01-01';
             $i->portable = $m->get('fiche/portable');
             $i->adelec = $m->get('fiche/adelec');
             $i->slug = $i->getTable()->createSlug(wtk_strtoid($i->getFullname(false, false)));
             $i->save();
         } else {
             $i = $ti->findOne($m->get('inscription/individu'));
             $app_active = $i->findInscriptionsActives()->current();
             if ($app_active) {
                 if ($m->get('cloture/clore')) {
                     $app_active->fin = $m->get('cloture/fin');
                     $app_active->save();
                 }
             }
         }
         if ($m->get('succession/succeder')) {
             $role = $m->get('inscription/role');
             list($role, $titre) = explode('__', $role);
             $r = $tr->findOne($role);
             $apps = $u->findFuturPredecesseurs($r, $titre);
             $app_predecesseur = $apps->current();
             if ($apps->count()) {
                 $app_predecesseur = $apps->current();
                 $app_predecesseur->fin = $m->get('succession/date');
                 $app_predecesseur->save();
             }
         }
         $app = new Appartient();
         $app->unite = $u->id;
         $app->individu = $i->id;
         $app->debut = $m->get('inscription/debut');
         list($role, $titre) = explode('__', $m->get('inscription/role'));
         $app->role = intval($role);
         $app->titre = $titre;
         if ($m->get('inscription/clore')) {
             $app->fin = $m->get('inscription/fin');
         }
         $app->save();
         $message = $i->getFullname(false, false) . " inscrit.";
         $this->controller->logger->info($message);
         $this->controller->_helper->Flash->info($message);
         $db->commit();
     } catch (Exception $e) {
         $db->rollBack();
         throw $e;
     }
     if ($m->get('inscription/continuer')) {
         $this->controller->redirectSimple();
     } else {
         $this->controller->redirectSimple('effectifs');
     }
 }