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'); } }