function TypeFiche_ADD($data_in = array()) { Lib_myLog("action: " . $data_in['action']); foreach ($GLOBALS['tab_globals'] as $global) { global ${$global}; } Lib_myLog("IN: ", $data_in); Lib_myLog("FILE: ", __FILE__); $erreur = false; $F5 = Lib_checkF5($session, $data_in['timestamp']); $continue = $F5 ? false : true; /*=============*/ Lib_myLog("On verifie qu'un type a bien ete saisi"); if ($data_in['libelle'] == '') { $continue = false; $erreur = true; } /*=============*/ Lib_myLog("On verifie si le type saisi n'existe pas deja"); if ($data_in['libelle'] != '') { $args_type['libelle'] = $data_in['libelle']; $liste_types = TypesFiches_chercher($args_type); if (count($liste_types)) { $continue = false; $erreur = true; } } if ($continue) { /*=============*/ Lib_myLog("Ajout d'un type de fiche"); $type = new TypeFiche(); $type->libelle = $data_in['libelle']; $id_type_fiche = $type->ADD(); Lib_writeData('', 'LISTE_TYPES_FICHES'); } }
function ExecActions($action) { /*=============*/ Lib_myLog("action: ", $action); // On recupere la configuration issue de conf.php global $lang, $taille_ecran, $MSG, $secure, $cle, $config, $taille_tableaux, $taille_tableaux_admin; // On recupere tous les objet contenant les donnees global $data_in, $data_out, $data_srv, $session, $tab_session; // Initialization des variables global $message, $fiche; switch ($action) { case "Recherche": case "Annuaire_Accueil": if (!isset($data_in['srch_nom']) && !isset($data_in['srch_prenom'])) { /*=============*/ Lib_myLog("On recupere du cache toutes les clefs de recherche"); if (!empty($data_srv['args_recherche'])) { foreach ($data_srv['args_recherche'] as $key => $value) { if (!isset($data_in[$key])) { $data_in[$key] = $value; } } } /*=============*/ Lib_myLog("Cache recupere:", $data_srv); } /*=============*/ Lib_myLog("On sauvegarde dans le cache toutes les clefs de recherche"); $data_srv['args_recherche'] = $data_in; /*=============*/ Lib_myLog("Recuperation des fiches a partir du cache"); $data_out['liste_types'] = TypesFiches_getCache(); /*=============*/ Lib_myLog("Recuperation de la liste des fiches avec les criteres de recherche"); $args_fiches['id_fiche'] = '*'; if (isset($data_in['srch_nom'])) { $args_fiches['fic_nom'] = '%' . $data_in['srch_nom'] . '%'; } if (isset($data_in['srch_prenom'])) { $args_fiches['fic_prenom'] = '%' . $data_in['srch_prenom'] . '%'; } $args_fiches['count'] = 1; $data_out['nb_resultats'] = $nb_sections = Fiches_chercher($args_fiches); // ======================= Tableau de navigation =========================== if ($nb_sections > 1) { $data_out['nb_sections'] = $nb_sections; /*=============*/ Lib_myLog("Recuperation de la section {$data_in['section']}"); $data_out['section'] = $data_in['section']; $args_fiches['limit'] = $taille_tableaux_admin; $args_fiches['start'] = !empty($data_in['section']) ? $data_in['section'] * $taille_tableaux_admin : 0; } $data_out['section'] = $data_in['section']; // ======================= =============================================== /*=============*/ Lib_myLog("Recherche des fiches"); $args_fiches['order_by'] = !empty($data_in['order_by']) ? $data_in['order_by'] : 'fic_nom'; $args_fiches['asc_desc'] = !empty($data_in['asc_desc']) ? $data_in['asc_desc'] : 'ASC'; unset($args_fiches['count']); $liste_fiches = Fiches_chercher($args_fiches); $data_out['action'] = 'Annuaire_Accueil'; $data_out['liste_fiches'] = $liste_fiches; if ($data_in['id_fiche']) { $data_out['id_fiche'] = $data_in['id_fiche']; } $data_out['page'] = 'annuaire.php'; break; case "Fiche_ADD": $F5 = Lib_checkF5($session, $data_in['timestamp']); $continue = $F5 ? false : true; // On intialise une pseudo-transaction qui nous permettre de stocker tous les objets rajoutés à la base // pour pouvoir les supprimer si nécessaire $transaction = new Collection(); if ($continue) { /*=============*/ Lib_myLog("Ajout d'un objet fiche"); $fiche = new Fiche(); $fiche->id_type_fiche = $data_in['id_type_fiche']; $fiche->fic_nom = $data_in['fic_nom']; $fiche->fic_prenom = $data_in['fic_prenom']; $fiche->fic_adresse1 = $data_in['fic_adresse1']; $fiche->fic_adresse2 = $data_in['fic_adresse2']; $fiche->fic_adresse3 = $data_in['fic_adresse3']; $fiche->fic_ville = $data_in['fic_ville']; $fiche->fic_email = $data_in['fic_email']; $id_fiche = $fiche->ADD(); // On passe l'id_fiche en data_in pour effectuer la recherche sur la fiche $data_in['id_fiche'] = $id_fiche; $data_in['srch_nom'] = $data_in['fic_nom']; $data_in['srch_prenom'] = $data_in['fic_prenom']; if (!$fiche->isError()) { $transaction->addElement($fiche); } else { $continue = false; } } // Utiliser les lignes suivantes si des fiches supplémentaires doivent être ajoutés // et que l'on doit gérer une transaction // if ($continue) { // /*=============*/ Lib_myLog("Ajout des informations supplementaires a l'objet fiche"); // $sous_fiche = new SousFiche($data_in['champ_sup1'], $data_in['champ_sup2'] , $data_in['champ_sup3']); // $sous_fiche->ADD(); // if (!$sous_fiche->isError()) { // $transaction->addElement($sous_fiche); // } else { // $transaction->DEL(); // $continue = false; // } //} if ($continue) { $data_out['message_ok'] = $MSG['fr']['%%fiche_ADD%%']; // On force le filtre pour que le système aille chercher à nouveau toutes les données en base $data_in['filtrer'] = 1; ExecActions('Annuaire_Accueil'); } else { if ($F5) { /*=============*/ Lib_myLog("Tentative de F5!"); $data_out['message'] = $MSG[$lang]['%%Erreur_Revalidation%%']; ExecActions('Annuaire_Accueil'); } else { /*=============*/ Lib_myLog("Annulation de l'ajout suite a une erreur"); if (!isset($data_out['message_ko'])) { $data_out['message_ko'] = $MSG[$lang]['%%Erreur_Mysql%%']; } // On ré-affiche les données dans la page de saisie... $data_out = array_merge($data_out, $data_in); ExecActions('Annuaire_Accueil'); } } break; case "Fiche_UPD": /*=============*/ Lib_myLog("Mise a jour du fiche"); $fiche = Fiche_recuperer($data_in['id_fiche']); $fiche->id_type_fiche = $data_in['id_type_fiche']; $fiche->fic_nom = $data_in['fic_nom']; $fiche->fic_prenom = $data_in['fic_prenom']; $fiche->fic_adresse1 = $data_in['fic_adresse1']; $fiche->fic_adresse2 = $data_in['fic_adresse2']; $fiche->fic_adresse3 = $data_in['fic_adresse3']; $fiche->fic_ville = $data_in['fic_ville']; $fiche->fic_email = $data_in['fic_email']; $fiche->UPD(); $data_out['message_ok'] = $MSG['fr']['%%fiche_UPD%%']; // On force le filtre pour que le système aille chercher à nouveau toutes les données en base $data_in['filtrer'] = 1; ExecActions('Annuaire_Accueil'); break; case "Fiche_DEL": /*=============*/ Lib_myLog("Suppression du fiche avec l'identifiant " . $data_in['id_fiche']); $fiche = Fiche_recuperer($data_in['id_fiche']); $fiche->DEL(); $data_out['message_ok'] = $MSG['fr']['%%fiche_DEL%%']; ExecActions('Annuaire_Accueil'); break; case "Fiches_XL": /*=============*/ Lib_myLog("On recupere du cache toutes les clefs de recherche"); if (!empty($data_srv['args_recherche'])) { foreach ($data_srv['args_recherche'] as $key => $value) { if (!isset($data_in[$key])) { $data_in[$key] = $value; } } } /*=============*/ Lib_myLog("Recuperation de la liste des fiches avec les criteres de recherche"); $args_fiches['id_fiche'] = '*'; $args_fiches['fic_nom'] = '%' . $data_in['srch_nom'] . '%'; $args_fiches['fic_prenom'] = '%' . $data_in['srch_prenom'] . '%'; $liste_fiches = Fiches_chercher($args_fiches); /*=============*/ Lib_myLog("Impression de la liste en XL"); $time = time(); $file = "../exports/extraction_" . $time . ".xls"; // le fichier doit déjà exister if (!($myfile = fopen($file, "w"))) { /*=============*/ Lib_myLog("Erreur lors de la creation du fichier {$file}"); exit; } else { /*=============*/ Lib_myLog("Creation du fichier {$file}"); } $header .= "Nom\t "; $header .= "Prenom\t "; $header .= "Adresse1\t "; $header .= "Adresse2\t "; $header .= "Adresse3\t "; $header .= "CP\t "; $header .= "Ville\t "; $header .= "Email\t "; $header .= "\n"; fputs($myfile, $header); $body = ''; foreach ($liste_fiches as $fiche) { if (!isset($data_in['chk' . $fiche['id_fiche']])) { continue; } $body .= utf8_decode($fiche['fic_nom']) . "\t"; $body .= utf8_decode($fiche['fic_prenom']) . "\t"; $body .= utf8_decode($fiche['fic_adresse1']) . "\t"; $body .= utf8_decode($fiche['fic_adresse2']) . "\t"; $body .= utf8_decode($fiche['fic_adresse3']) . "\t"; $body .= $fiche['fic_cp'] . "\t"; $body .= utf8_decode($fiche['fic_ville']) . "\t"; $body .= $fiche['fic_email'] . "\t"; $body .= "\r\n"; } fputs($myfile, $body); fclose($myfile); //on ferme le fichier chmod($file, 0755); $size = filesize($file); header("Content-Type: application/octet-stream"); header("Content-Length: {$size}"); header("Content-Disposition: attachment; filename=file_" . $time . ".xls"); header("Content-Transfer-Encoding: binary"); $fh = fopen($file, "r"); fpassthru($fh); break; case "Fiches_PDF": /*=============*/ Lib_myLog("On recupere du cache toutes les clefs de recherche"); if (!empty($data_srv['args_recherche'])) { foreach ($data_srv['args_recherche'] as $key => $value) { if (!isset($data_in[$key])) { $data_in[$key] = $value; } } } /*=============*/ Lib_myLog("Recuperation de la liste des fiches avec les criteres de recherche"); $args_fiches['id_fiche'] = '*'; $args_fiches['fic_nom'] = '%' . $data_in['srch_nom'] . '%'; $args_fiches['fic_prenom'] = '%' . $data_in['srch_prenom'] . '%'; $data_out['liste_fiches'] = Fiches_chercher($args_fiches); $data_out['page'] = '../pdf/annuaire_pdf.php'; break; case "Fiches_Import": $continue = true; /*=============*/ Lib_myLog("Import du fichier"); $data_out['tab_resultat'][] = "Verification du fichier d'import"; $uploaddir = "../dilasys/tmp/"; $uploadfile = $uploaddir . $session . "_" . @basename($_FILES['userfile']['name']); /*=============*/ Lib_myLog("Deplacement du fichier en {$uploadfile}"); @move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile); if (file_exists($uploadfile)) { /*=============*/ Lib_myLog("Fichier trouve. Verification du format et du nombre de colonnes"); if (!preg_match("/csv\$/i", $_FILES['userfile']['name'])) { $data_out['message_ko'] = "Le format du fichier est incorrect (format csv attendu)"; $continue = false; } if ($continue) { $data = file($uploadfile); $premiere_ligne = explode(";", $data[0]); if (count($premiere_ligne) < 7) { $data_out['message_ko'] = "La premiè ligne ne contient pas le nombre de colonnes attendu"; $continue = false; } } if ($continue) { ini_set("max_execution_time", 2000); $numLigne = 1; $nbFiches = 0; foreach ($data as $ligne) { $tabCol = explode(";", $ligne); if ($numLigne == 1) { $numLigne++; continue; } else { // On n'importe pas des fiches n'ayant pas de nom ou de prénom if ($tabCol[0] == '' || $tabCol[1] == '') { continue; } /*=============*/ Lib_myLog("Traitement {$tabCol[0]} {$tabCol[1]}"); $fiche = Fiche_recuperer('', $tabCol[0], $tabCol[1]); if ($fiche->id_fiche == '') { /*=============*/ Lib_myLog("Ajout de la fiche"); $data_out['tab_resultat'][] = "Ajout de la fiche de {$tabCol[0]} {$tabCol[1]}"; $fiche = new Fiche(); $fiche->fic_nom = utf8_encode($tabCol[0]); $fiche->fic_prenom = utf8_encode($tabCol[1]); $fiche->fic_adresse1 = utf8_encode($tabCol[2]); $fiche->fic_adresse2 = utf8_encode($tabCol[3]); $fiche->fic_cp = $tabCol[4]; $fiche->fic_ville = utf8_encode($tabCol[5]); $fiche->fic_email = $tabCol[6]; $id_fiche = $fiche->ADD(); } else { /*=============*/ Lib_myLog("Modification de la fiche"); $data_out['tab_resultat'][] = "Modification de la fiche de {$tabCol[0]} {$tabCol[1]}"; $fiche->fic_adresse1 = utf8_encode($tabCol[2]); $fiche->fic_adresse2 = utf8_encode($tabCol[3]); $fiche->fic_cp = $tabCol[4]; $fiche->fic_ville = utf8_encode($tabCol[5]); $fiche->fic_email = $tabCol[6]; $fiche->UPD(); } $numLigne++; $nbFiches++; } } /*=============*/ Lib_myLog("{$nbFiches} fiches traitees"); $data_out['message_ok'] = "{$nbFiches} fiches ont été traitées"; } } ExecActions('Annuaire_Accueil'); break; /*============================================================================ Actions AJAX =============================================================================*/ /*============================================================================ Actions AJAX =============================================================================*/ case "BLOC_Fiche_SEE": case "BLOC_Fiche_ADD": case "BLOC_Fiche_UPD": if (isset($data_in['id_fiche'])) { /*=============*/ Lib_myLog("Recuperation de la fiche"); $args_fiche['id_fiche'] = $data_in['id_fiche']; $data_out['fiche'] = Fiches_chercher($args_fiche); } /*=============*/ Lib_myLog("Recuperation des fiches a partir du cache"); $data_out['liste_types'] = TypesFiches_getCache(); if ($action == "BLOC_Fiche_SEE") { $data_out['mode'] = 'see'; } if ($action == "BLOC_Fiche_ADD") { $data_out['mode'] = 'add'; } if ($action == "BLOC_Fiche_UPD") { $data_out['mode'] = 'upd'; } $data_out['page'] = 'annuaire_bloc_fiche.php'; break; case "AUTO_ListeNoms_ADD": // Action utilisée pour la saisie semi-automatique et appelée par la fonction AJAX /*=============*/ Lib_myLog("Recherche des fiches"); $args_fiche['fic_nom'] = $data_in['fic_nom'] . '%'; $args_fiche['fic_prenom'] = $data_in['fic_prenom'] . '%'; $data_out['liste_fiches'] = Fiches_chercher($args_fiche); /*=============*/ Lib_myLog("Retour"); $data_out['page'] = 'annuaire_auto_noms_add.php'; break; /*============================================================================ DEBUT Ajout dynamique =============================================================================*/ /*============================================================================ DEBUT Ajout dynamique =============================================================================*/ case "POPUP_TypeFicheADD": $data_out['page'] = 'annuaire_popup_type_fiche_add.php'; break; case "SELECT_TypesFiches": /*=============*/ Lib_myLog("Recherche des types de fiches"); $args_types['id_type_fiche'] = '*'; $data_out['liste_types'] = TypesFiches_chercher($args_types); $data_out['valeur_select'] = $data_in['valeur_select']; $data_out['page'] = 'annuaire_select_types_fiches.php'; break; case "TypeFiche_ADD": $erreur = false; $F5 = Lib_checkF5($session, $data_in['timestamp']); $continue = $F5 ? false : true; /*=============*/ Lib_myLog("On verifie qu'un type a bien ete saisi"); if ($data_in['libelle'] == '') { $continue = false; $erreur = true; $data_out['message_ko'] = $MSG[$lang]['%%ERR_type_fiche_manque%%']; } /*=============*/ Lib_myLog("On verifie si le type saisi n'existe pas deja"); if ($data_in['libelle'] != '') { $args_type['libelle'] = $data_in['libelle']; $liste_types = TypesFiches_chercher($args_type); if (count($liste_types)) { $continue = false; $erreur = true; $data_out['message_ko'] = $MSG[$lang]['%%ERR_type_fiche_existe%%']; } } if ($continue) { /*=============*/ Lib_myLog("Ajout d'un type de fiche"); $type = new TypeFiche(); $type->libelle = $data_in['libelle']; $id_type_fiche = $type->ADD(); Lib_writeData('', 'LISTE_TYPES_FICHES'); } if ($continue) { $data_out['message_ok'] = $MSG[$lang]['%%type_fiche_ADD%%']; $data_out['perte_focus'] = 1; $data_out['valeur_select'] = $id_type_fiche; $data_out['page'] = "annuaire_popup_type_fiche_add.php"; } else { if ($erreur) { $data_out['page'] = 'annuaire_popup_type_fiche_add.php'; } else { if ($F5) { /*=============*/ Lib_myLog("Tentative de F5!"); $data_out['message_ko'] = $MSG[$lang]['%%Erreur_Revalidation%%']; $data_out['page'] = "annuaire_popup_type_fiche_add.php"; } else { /*=============*/ Lib_myLog("Annulation de l'ajout suite a une erreur mysql"); $data_out['message_ko'] = $MSG[$lang]['%%Erreur_Mysql%%']; // On ré-affiche les données dans la page de saisie... $data_out = array_merge($data_out, $data_in); $data_out['page'] = "annuaire_popup_type_fiche_add.php"; } } } break; /*============================================================================ FIN Ajout dynamique =============================================================================*/ /*============================================================================ FIN Ajout dynamique =============================================================================*/ case "POPUP_Memos_SEE": case "POPUP_MemosFiche_SEE": case "POPUP_Memos_UPD": /*=============*/ Lib_myLog("Recuperation des memos de la fiche"); // Affichage du plus récent en premier $args_memos['id_fiche'] = $data_in['id_fiche']; $args_memos['order_by'] = 'id_memo'; $args_memos['asc_desc'] = 'DESC'; $data_out['liste_memos'] = FicheMemos_chercher($args_memos); $data_out['id_fiche'] = $data_in['id_fiche']; if ($action == 'POPUP_Memos_SEE') { $data_out['page'] = 'annuaire_popup_memos_see.php'; } if ($action == 'POPUP_MemosFiche_SEE') { $data_out['page'] = 'annuaire_popup_memos_fiche_see.php'; } if ($action == 'POPUP_Memos_UPD') { $data_out['page'] = 'annuaire_popup_memos_upd.php'; } break; case "Memos_UPD": /*=============*/ Lib_myLog("Recuperation des memos de la fiche {$data_in['id_fiche']} pour mise a jour"); $args_memos['id_fiche'] = $data_in['id_fiche']; $liste_memos = FicheMemos_chercher($args_memos); foreach ($liste_memos as $memo) { $memo_upd = FicheMemo_recuperer($memo['id_memo']); $memo_upd->memo = $data_in['memo' . $memo['id_memo']]; $memo_upd->UPD(); } if ($data_in['memo'] != '') { /*=============*/ Lib_myLog("Ajout du nouveau memo"); $memo_add = new FicheMemo(); $memo_add->id_fiche = $data_in['id_fiche']; $memo_add->date_memo = mktime(0, 0, 0, $tab_date_memo[1], $tab_date_memo[0], $tab_date_memo[2]); $memo_add->memo = $data_in['memo']; $memo_add->ADD(); } break; case "Memos_DEL": /*=============*/ Lib_myLog("Suppression du memo"); $memo_del = FicheMemo_recuperer($data_in['id_memo']); $memo_del->DEL(); $data_in['id_fiche'] = $memo_del->id_fiche; ExecActions('POPUP_Memos_UPD'); break; default: ExecActions('Annuaire_Accueil'); break; } }
function TypesFiches_getCache() { $data = Lib_readData('LISTE_TYPES_FICHES'); // On essaye d'optimiser un peu les accès à la base de données. // Le fichier LISTE_TYPES_FICHES sera créé au premier accés et sera effacé lorsque l'administrateur // mettra à jour le parametrage avec de nouvelles informations if (count($data) > 1) { /*=============*/ Lib_myLog("Recuperation du parametrage des types de fiches a partir du cache"); $liste_types = $data; } else { /*=============*/ Lib_myLog("Recuperation du parametrage de l'etat des barriques a partir de la base"); $args_etat['id_type_fiche'] = '*'; $args_etat['order_by'] = 'id_type_fiche'; $liste_types = TypesFiches_chercher($args_etat); Lib_writeData($liste_types, 'LISTE_TYPES_FICHES'); } return $liste_types; }