/** * Insertion d'une teleprocedure * * @author Christophe Beyer <*****@*****.**> * @since 2008/01/30 * @param integer $ecole Id de l'ecole * @param integer $idtype Type de la teleprocedure */ public function insert() { $save = _request("save") ? _request("save") : NULL; $idtype = _request("idtype") ? _request("idtype") : NULL; $idstatu = _request("idstatu") ? _request("idstatu") : NULL; $objet = _request("objet") ? _request("objet") : NULL; $detail = _request("detail") ? _request("detail") : NULL; $criticErrors = $errors = array(); $daoType =& CopixDAOFactory::create('teleprocedures|type'); if ($idtype) { if ($rType = $daoType->get($idtype)) { $mondroit = Kernel::getLevel("MOD_TELEPROCEDURES", $rType->teleprocedure); if (!TeleproceduresService::canMakeInTelep('ADD_INTERVENTION', $mondroit)) { $criticErrors[] = CopixI18N::get('kernel|kernel.error.noRights'); } } else { $criticErrors[] = CopixI18N::get('teleprocedures|teleprocedures.error.noParameter'); } $rEcole = Kernel::getNodeInfo('BU_ECOLE', TeleproceduresService::getTelepEcole(), false); if (!$rEcole) { $criticErrors[] = CopixI18N::get('teleprocedures|teleprocedures.error.prob.ecole'); } } else { $criticErrors[] = CopixI18N::get('teleprocedures|teleprocedures.error.noParameter'); } if ($criticErrors) { return CopixActionGroup::process('genericTools|Messages::getError', array('message' => implode('<br/>', $criticErrors), 'back' => CopixUrl::get('teleprocedures||'))); } $title = $rEcole["nom"] . ($rEcole["desc"] ? " (" . $rEcole["desc"] . ")" : ""); $rForm = CopixDAOFactory::createRecord('intervention'); if ($save == 1) { if (!$objet) { $errors[] = CopixI18N::get('teleprocedures.error.objet.manquant'); } if (!$detail || $detail == html_entity_decode(CopixI18N::get('teleprocedures.interv.default.detail'))) { $errors[] = CopixI18N::get('teleprocedures.error.detail.manquant'); } $rForm->idtype = $idtype; $rForm->format = $rType->format; //$rForm->idstatu = $idstatu; $rForm->idstatu = CopixConfig::get('teleprocedures|statutNouveau'); $rForm->objet = $objet; $rForm->detail = $detail; if (!count($errors)) { $daoIntervention = CopixDAOFactory::create("intervention"); $session = Kernel::getSessionBU(); $rForm->iduser = $session['user_id']; $rForm->dateinter = date('Ymd'); $rForm->idetabliss = $rEcole["id"]; //$rForm->datederniere = 0; $rForm->datederniere = date('Y-m-d H:i:s'); $rForm->responsables = $rType->responsables; $rForm->lecteurs = $rType->lecteurs; $rForm->mail_from = $rType->mail_from; $rForm->mail_to = $rType->mail_to; $rForm->mail_cc = $rType->mail_cc; $rForm->mail_message = $rType->mail_message; //print_r($rForm); $daoIntervention->insert($rForm); if ($rForm->idinter) { $droits = TeleproceduresService::copyDroitFromTypeToInter($rForm); TeleproceduresService::alertResponsables($rForm, $droits); TeleproceduresService::userReadIntervention($rForm->idinter, $session['user_id']); } return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('|listTeleprocedures', array('id' => $rType->teleprocedure))); } } else { $rForm->objet = $rType->nom; $rForm->idtype = $idtype; $rForm->format = $rType->format; $rForm->detail = $rType->texte_defaut ? $rType->texte_defaut : html_entity_decode(CopixI18N::get('teleprocedures.interv.default.detail')); } $tplForm = new CopixTpl(); $tplForm->assign('detail_edition', CopixZone::process('kernel|edition', array('field' => 'detail', 'format' => $rForm->format, 'content' => $rForm->detail, 'height' => 450))); $tplForm->assign('date', date("Y-m-d")); $tplForm->assign('rEcole', $rEcole); $tplForm->assign('rForm', $rForm); $tplForm->assign('rType', $rType); $tplForm->assign('errors', $errors); //var_dump($rEcole); $daoStat =& CopixDAOFactory::create('teleprocedures|statu'); $tplForm->assign('arStat', $daoStat->findAll()); $daoType =& CopixDAOFactory::create('teleprocedures|type'); $tplForm->assign('arType', $daoType->findAll()); $main = $tplForm->fetch('insert.tpl'); $tpl = new CopixTpl(); $tpl->assign('TITLE_PAGE', CopixI18N::get('teleprocedures.title.newTelep')); $tpl->assign("MAIN", $main); return new CopixActionReturn(COPIX_AR_DISPLAY, $tpl); }