get_value('select count(*) from modeledef where ' . 'mod_name=$1 and mod_id !=$2', array(trim($name), $m)) == 0 ) { $cn->exec_sql("update modeledef set mod_name=$1, " . " mod_desc=$2 where mod_id=$3 ", array(trim($name), trim($desc), $m)); } } $sa = "list"; } $cn = new Database(); // IF FMOD_NAME is posted then must add a template if (isset($_POST["FMOD_NAME"])) { $encoding = $cn->get_value("select encoding from pg_database where " . " datname='" . domaine . 'dossier' . sql_string($_POST["FMOD_DBID"]) . "'"); if ($encoding != 6) { alert('Désolé vous devez migrer ce modèle en unicode'); echo 'la base de donnée ' . domaine . 'mod' . $_POST["FMOD_DBID"] . " doit être migrée 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(); } $mod_name = sql_string($_POST["FMOD_NAME"]); $mod_desc = sql_string($_POST["FMOD_DESC"]); if ($mod_name != null) { $Res = $cn->exec_sql("insert into modeledef(mod_name,mod_desc) values ('" . $mod_name . "'," . "'" . $mod_desc . "')"); // get the mod_id $l_id = $cn->get_current_seq('s_modid'); if ($l_id != 0) { $Sql = sprintf("CREATE DATABASE %sMOD%d encoding='UTF8' TEMPLATE %sDOSSIER%s", domaine, $l_id, domaine, $_POST["FMOD_DBID"]); ob_start(); if ($cn->exec_sql($Sql) == false) { ob_end_clean(); echo "

Base de donnée " . domaine . "dossier" . $_POST['FMOD_DBID'] . " est accèdée, déconnectez-vous en d'abord

"; $Res = $cn->exec_sql("delete from modeledef where mod_id=" . $l_id); exit; } } }// if $mod_name != null $cn_mod = new Database($l_id, 'mod'); // Clean some tables $Res = $cn_mod->exec_sql("select distinct jr_pj from jrn where jr_pj is not null "); if (Database::num_row($Res) != 0) { $a_lob = Database::fetch_all($Res); for ($i = 0; $i < count($a_lob); $i++) $cn_mod->lo_unlink($a_lob[$i]['jr_pj']); } Extension::clean($cn_mod); $Res = $cn_mod->exec_sql("truncate table centralized"); $Res = $cn_mod->exec_sql("truncate table jrn cascade"); $Res = $cn_mod->exec_sql("delete from del_jrn"); $Res = $cn_mod->exec_sql("delete from del_jrnx"); $Res = $cn_mod->exec_sql("truncate table jrnx cascade "); $Res = $cn_mod->exec_sql("delete from del_action"); $Res = $cn_mod->exec_sql("delete from profile_user"); $Res = $cn_mod->exec_sql("delete from jnt_letter"); $Res = $cn_mod->exec_sql('delete from operation_analytique'); // Reset the closed periode $Res = $cn_mod->exec_sql("update parm_periode set p_closed='f'"); $Res = $cn_mod->exec_sql('delete from jrn_periode'); $Res = $cn_mod->exec_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'); // Reset Sequence $a_seq = array('s_jrn', 's_jrn_op', 's_centralized', 's_stock_goods', 's_internal'); foreach ($a_seq as $seq) { $sql = sprintf("select setval('%s',1,false)", $seq); $Res = $cn_mod->exec_sql($sql); } $sql = "select jrn_def_id from jrn_def "; $Res = $cn_mod->exec_sql($sql); $Max = Database::num_row($Res); for ($seq = 0; $seq < $Max; $seq++) { $row = Database::fetch_array($Res, $seq); /* if seq doesn't exist create it */ if ($cn_mod->exist_sequence('s_jrn_' . $row['jrn_def_id']) == false) { $cn_mod->create_sequence('s_jrn_' . $row['jrn_def_id']); } $sql = sprintf("select setval('s_jrn_%d',1,false)", $row['jrn_def_id']); $cn_mod->exec_sql($sql); $sql = sprintf("select setval('s_jrn_pj%d',1,false)", $row['jrn_def_id']); $cn_mod->exec_sql($sql); $sql = sprintf("select setval('jnt_letter_jl_id_seq',1,false)"); $cn_mod->exec_sql($sql); } //--- // Cleaning Follow_Up //-- if (isset($_POST['DOC'])) { $Res = $cn_mod->exec_sql("delete from action_gestion"); $Res = $cn_mod->exec_sql("delete from document"); // Remove lob file $Res = $cn_mod->exec_sql("select distinct loid from pg_largeobject except select md_lob from document_modele"); if (Database::num_row($Res) != 0) { $a_lob = Database::fetch_all($Res); //var_dump($a_lob); foreach ($a_lob as $lob) { $cn_mod->lo_unlink($lob['loid']); } } } if (isset($_POST['CARD'])) { $Res = $cn_mod->exec_sql("delete from fiche_detail"); $Res = $cn_mod->exec_sql("delete from fiche"); $Res = $cn_mod->exec_sql("delete from action_gestion"); $Res = $cn_mod->exec_sql("delete from document"); $Res = $cn_mod->exec_sql("delete from document_modele"); $Res = $cn_mod->exec_sql("delete from op_predef"); // Remove lob file $Res = $cn_mod->exec_sql("select distinct loid from pg_largeobject"); if (Database::num_row($Res) != 0) { $a_lob = Database::fetch_all($Res); foreach ($a_lob as $lob) $cn_mod->lo_unlink($lob['loid']); } } if (isset($_POST['CANAL'])) { $Res = $cn_mod->exec_sql('delete from poste_analytique'); $Res = $cn_mod->exec_sql('delete from plan_analytique'); } } // Show all available templates require_once('class_sort_table.php'); $url=$_SERVER['PHP_SELF']."?sa=list&action=".$_REQUEST['action']; $header=new Sort_Table(); $header->add("id",$url," order by mod_id asc"," order by mod_id desc","ia","id"); $header->add("Nom",$url," order by mod_name asc"," order by mod_name desc","na","nd"); $header->add("Description",$url," order by mod_desc asc"," order by mod_desc desc","da","dd"); $ord=(isset($_REQUEST['ord']))?$_REQUEST['ord']:'na'; $sql_order=$header->get_sql_order($ord); $Res = $cn->exec_sql("select mod_id,mod_name,mod_desc from modeledef $sql_order"); $count = Database::num_row($Res); echo '
'; echo "

Modèles

"; if ($sa == 'list') { if ($count == 0) { echo "Aucun modèle disponible"; } else { echo '

'; echo HtmlInput::button_anchor('Rafraîchir', 'admin_repo.php?action=modele_mgt'); echo HtmlInput::button_anchor('Ajouter', 'admin_repo.php?action=modele_mgt&sa=add'); echo '

'; echo ''; echo _('Filtre').HtmlInput::infobulle(23); echo HtmlInput::filter_table("t_modele", "0,1,2","1"); echo ''; echo ''; echo "". "" . "" . "" . "" . "" . ""; for ($i = 0; $i < $count; $i++) { $mod = Database::fetch_array($Res, $i); $class = ($i % 2 == 0) ? "odd" : "even"; printf('' . '' . '' . '' . '' . '' . '' . '' . '', $mod['mod_id'], $mod['mod_name'], $mod['mod_desc']); }// for echo "
".$header->get_header(0)."".$header->get_header(1)."".$header->get_header(2)."
%d %s %s ' . HtmlInput::button_anchor('Effacer', '?action=modele_mgt&sa=del&m=' . $mod['mod_id']) . '' . HtmlInput::button_anchor('Modifie', '?action=modele_mgt&sa=mod&m=' . $mod['mod_id']) . '' . HtmlInput::button_anchor('Backup', 'backup.php?action=backup&sa=b&t=m&d=' . $mod['mod_id']) . '
"; }// if count = 0 echo "

Si vous voulez récupérer toutes les adaptations d'un dossier " . " dans un autre dossier, vous pouvez en faire un modèle." . " Seules les fiches, la structure des journaux, les périodes,... seront reprises " . "et aucune donnée du dossier sur lequel le dossier est basé. Les données contenues dans les extensions ne sont pas effacées

"; } //--------------------------------------------------------------------------- // Add a template //--------------------------------------------------------------------------- if ($sa == 'add') { // Show All available folder $Res = $cn->exec_sql("select dos_id, dos_name,dos_description from ac_dossier order by dos_name"); $count = Database::num_row($Res); $available = ""; if ($count != 0) { $available = ''; }//if count !=0 ?>
Nom
Description
Basé sur
Nettoyage des Documents et courriers (ce qui n'effacera pas les modèles de documents)
Nettoyage de toutes les fiches (ce qui effacera client, opérations prédéfinies fournisseurs modèles de documents et documents)
Nettoyage de la comptabilité analytique : effacement des plans et des postes, les opérations sont de toute façon effacées
'
'; $name = $cn->get_value( "select mod_name from modeledef where " . " mod_id=$1", array($_GET['m'])); $desc = $cn->get_value( "select mod_desc from modeledef where " . " mod_id=$1", array($_GET['m'])); $wText = new IText(); echo 'Nom : ' . $wText->input('name', $name); $wDesc = new ITextArea(); $wDesc->heigh = 5; echo '
Description :
'; echo $wDesc->input('desc', $desc); echo HtmlInput::hidden('m', $_GET['m']); echo HtmlInput::hidden('action', 'modele_mgt'); echo '
'; echo HtmlInput::button_anchor('Retour', '?action=modele_mgt'); echo HtmlInput::submit('upd', 'Modifie'); echo ''; } //--------------------------------------------------------------------------- // action = del //--------------------------------------------------------------------------- if ($sa == 'del') { $cn = new Database(); $name = $cn->get_value('select mod_name from modeledef where mod_id=$1', array($_REQUEST['m'])); echo '
'; echo HtmlInput::hidden('d', $_REQUEST['m']); echo HtmlInput::hidden('sa', 'remove'); echo '

Etes vous sure et certain de vouloir effacer ' . $name . ' ???

'; $confirm = new ICheckBox(); $confirm->name = "p_confirm"; echo 'Cochez la case si vous êtes sûr de vouloir effacer ce modèle'; echo $confirm->input(); echo HtmlInput::submit('remove', 'Effacer'); echo HtmlInput::button_anchor('Retour', '?action=modele_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=modele_mgt'); exit(); } $cn = new Database(); $msg = "dossier"; $name = $cn->get_value("select mod_name from modeledef where mod_id=$1", array($_REQUEST['m'])); if (strlen(trim($name)) == 0) { echo "

$msg inexistant

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

Base de donnée " . domaine . "mod" . $_REQUEST['m'] . " est accèdée, déconnectez-vous d'abord

"; exit; } ob_flush(); $sql = "delete from modeledef where mod_id=$1"; $cn->exec_sql($sql, array($_REQUEST['m'])); print '

'; print "Le modèle $name est effacé

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