set_parameter('name',$_POST['name']); $dos->set_parameter('desc',$_POST['desc']); $dos->save(); } echo '
'; // check and add an new folder if ( isset ($_POST["DATABASE"]) ) { $repo=new Database(); $dos=trim($_POST["DATABASE"]); $dos=sql_string($dos); if (strlen($dos)==0) { echo _("Le nom du dossier est vide"); exit -1; } $encoding=$repo->get_value("select encoding from pg_database where ". " datname='".domaine.'mod'.sql_string($_POST["FMOD_ID"])."'"); if ( $encoding != 6 ) { alert(_('Désolé vous devez migrer ce modèle en unicode')); echo ''; echo _('le modele ').domaine.'mod'.$_POST["FMOD_ID"]._(" doit être migré en unicode."); echo _('Pour le passer en unicode, faites-en un backup puis restaurez le fichier reçu').''; echo HtmlInput::button_anchor('Retour','admin_repo.php?action=dossier_mgt'); exit(); } $desc=sql_string($_POST["DESCRIPTION"]); try { $repo->start(); $Res=$repo->exec_sql("insert into ac_dossier(dos_name,dos_description) values ('".$dos."','$desc')"); $l_id=$repo->get_current_seq('dossier_id'); $repo->commit(); } catch (Exception $e) { $msg=_("Desole la creation de ce dossier a echoue,\n la cause la plus probable est". ' deux fois le même nom de dossier'); alert($msg); $l_id=0; $repo->rollback(); } // If the id is not null, name successfully inserted // Database created if ( $l_id != 0) { //-- // setting the year //-- $year=sql_string($_POST['YEAR']); if ( strlen($year) != 4 || isNumber($year) == 0 || $year > 2100 || $year < 2000 || $year != round($year,0)) { echo "$year"._(" est une année invalide"); $Res=$repo->exec_sql("delete from ac_dossier where dos_id=$l_id"); } else { $Sql=sprintf("CREATE DATABASE %sDOSSIER%d encoding='UTF8' TEMPLATE %sMOD%d", domaine, $l_id, domaine, sql_string($_POST["FMOD_ID"])); ob_start(); if ( $repo->exec_sql($Sql)==false) { echo "[".$Sql."]"; //ob_end_clean(); $repo->exec_sql("delete from ac_dossier where dos_id=$l_id"); echo "

"._(" Base de donnée ").domaine."mod".$_POST['FMOD_ID']." ". _("est accèdée, déconnectez-vous d'abord")."

"; exit; } ob_flush(); $Res=$repo->exec_sql("insert into jnt_use_dos (use_id,dos_id) values (1,$l_id)"); // Connect to the new database $cn=new Database($l_id); //--year -- $Res=$cn->exec_sql("delete from parm_periode"); if ( ($year % 4 == 0 && $year % 100 != 0) || $year % 400 == 0 ) $fev=29; else $fev=28; $Res=$cn->exec_sql("delete from user_local_pref where parameter_type='PERIODE'"); $nb_day=array(31,$fev,31,30,31,30,31,31,30,31,30,31); $m=1; foreach ($nb_day as $day) { $p_start=sprintf("01-%d-%s",$m,$year); $p_end=sprintf("%d-%d-%s",$day,$m,$year); $sql=sprintf("insert into parm_periode (p_start,p_end,p_exercice) values (to_date('%s','DD-MM-YYYY'),to_date('%s','DD-MM-YYYY'),'%s')", $p_start,$p_end,$year); $Res=$cn->exec_sql($sql); $m++; } $sql=" insert into jrn_periode(p_id,jrn_def_id,status) ". "select p_id,jrn_def_id, 'OP'". " from parm_periode cross join jrn_def"; $Res=$cn->exec_sql($sql); Dossier::synchro_admin($l_id); } } // if $l_id != 0 } // $_POST[DATABASE] ?>

Dossier Management

show_dossier('all'); $compteur=1; $template=""; echo ''; $r=th('ID').th('Nom du dossier ').th('Description').th('Taille').th('Nom base de données'); $r=tr($r); echo $r; // show all dossiers if ( $Res != null ) { foreach ( $Res as $Dossier) { if ( $compteur%2 == 0 ) $cl='class="odd"'; else $cl='class="even"'; echo ""; $str_name=domaine.'dossier'.$Dossier['dos_id']; $size=$repocn->get_value("select pg_database_size($1)/(1024*1024)::float", array($str_name)); echo ""; echo td(nbm($size)."MB",' style="text-align:right"'); echo td($str_name); echo "'; echo ''; $compteur++; } echo ""; } echo '
". $Dossier['dos_id']." ".h($Dossier['dos_name'])." ".h($Dossier['dos_description']).""; echo td(HtmlInput::button_anchor(_('Effacer'),'?action=dossier_mgt&sa=del&d='.$Dossier['dos_id'])); echo td(HtmlInput::button_anchor(_('Modifier'),'?action=dossier_mgt&sa=mod&d=' .$Dossier['dos_id'])); echo td(HtmlInput::button_anchor(_('Backup'),'backup.php?action=backup&sa=b&t=d&d=' .$Dossier['dos_id'])); echo '
'; } //--------------------------------------------------------------------------- // Add a new folder if ( $sa == 'add' ) { $repo=new Database(); // Load the available Templates $Res=$repo->exec_sql("select mod_id,mod_name,mod_desc from modeledef order by mod_name"); $count=Database::num_row($Res); if ( $count == 0 ) { echo _("pas de modèle disponible"); } else { $template='"; }// if count = 0 $m_date=date('Y'); ?>
Année >
load(); $wText=new IText(); echo '
'; echo HtmlInput::hidden('action','dossier_mgt'); echo HtmlInput::hidden('d',$dos->get_parameter("id")); echo _('Nom').' : '; echo $wText->input('name',$dos->get_parameter('name')); echo '
'; $wDesc=new ITextArea(); $wDesc->heigh=5; echo _('Description').' :
'; echo $wDesc->input('desc',$dos->get_parameter('desc')); echo '
'; echo HtmlInput::submit('upd',_('Modifie')); echo HtmlInput::button_anchor(_('Retour'),'?action=dossier_mgt'); echo '
'; } //--------------------------------------------------------------------------- // action = del //--------------------------------------------------------------------------- if ( $sa == 'del' ) { $d=new Dossier($_REQUEST ['d'] ); $d->load(); echo '
'; echo HtmlInput::hidden('d',$_REQUEST['d']); echo HtmlInput::hidden('sa','remove'); echo '

'._('Etes vous sûr et certain de vouloir effacer ').$d->dos_name.' ???

'; $confirm=new ICheckBox(); $confirm->name="p_confirm"; echo _('Cochez la case si vous êtes sûr de vouloir effacer ce dossier'); echo $confirm->input(); echo HtmlInput::submit('remove',_('Effacer')); echo HtmlInput::button_anchor(_('Retour'),'?action=dossier_mgt'); echo '
'; } //--------------------------------------------------------------------------- // action = del //--------------------------------------------------------------------------- if ( $sa == 'remove' ) { if ( ! isset ($_REQUEST['p_confirm'])) { echo _('Désolé, vous n\'avez pas coché la case'); echo HtmlInput::button_anchor('Retour','?action=dossier_mgt'); exit(); } $cn=new Database(); $msg="dossier"; $name=$cn->get_value("select dos_name from ac_dossier where dos_id=$1",array($_REQUEST['d'])); if ( strlen(trim($name)) == 0 ) { echo "

$msg "._('inexistant')."

"; exit(); } $sql="drop database ".domaine."dossier".sql_string($_REQUEST['d']); ob_start(); if ( $cn->exec_sql($sql)==false) { ob_end_clean(); echo "

"; echo _('Base de donnée ').domaine."dossier".$_REQUEST['d']. _("est accèdée, déconnectez-vous d'abord")."

"; exit; } ob_flush(); $sql="delete from priv_user where priv_id in (select jnt_id from jnt_use_dos where dos_id=$1)"; $cn->exec_sql($sql,array($_REQUEST['d'])); $sql="delete from jnt_use_dos where dos_id=$1"; $cn->exec_sql($sql,array($_REQUEST['d'])); $sql="delete from ac_dossier where dos_id=$1"; $cn->exec_sql($sql,array($_REQUEST['d'])); print '

'; print "Voilà le dossier ".h($name)." est effacé

"; echo HtmlInput::button_anchor('Retour','?action=dossier_mgt'); } ?>