radiantassure/Framework/Functions.php
2025-12-27 08:27:41 +00:00

1090 lines
29 KiB
PHP
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
//date_default_timezone_set("Africa/Kigali");
date_default_timezone_set("Africa/Abidjan");
function contruireParamLikeDebut($param)
{
$p=($param == null) ? "" : trim($param);
return $p."%";
}
function mois_fr($month)
{
if ($month=="January"){
return "Janvier";
}elseif($month=="February"){
return "Février";
}elseif($month=="March"){
return "Mars";
}elseif($month=="April"){
return "Avril";
}elseif($month=="May"){
return "Mai";
}elseif($month=="June"){
return "Juin";
}elseif($month=="July"){
return "Juillet";
}elseif($month=="August"){
return "Août";
}elseif($month=="September"){
return "Septembre";
}elseif($month=="October"){
return "Octobre";
}elseif($month=="November"){
return "Novembre";
}elseif($month=="December"){
return "Décembre";
}
}
function mois_court_fr($month)
{
if ($month=="January"){
return "jan";
}elseif($month=="February"){
return "fév";
}elseif($month=="March"){
return "mars";
}elseif($month=="April"){
return "avril";
}elseif($month=="May"){
return "mai";
}elseif($month=="June"){
return "juin";
}elseif($month=="July"){
return "juil";
}elseif($month=="August"){
return "août";
}elseif($month=="September"){
return "sept";
}elseif($month=="October"){
return "oct";
}elseif($month=="November"){
return "nov";
}elseif($month=="December"){
return "déc";
}
}
function jour_fr($day)
{
if ($day=="Mon"){
return "Lun";
}elseif($day=="Tue"){
return "Mar";
}elseif($day=="Wed"){
return "Mer";
}elseif($day=="Thu"){
return "Jeu";
}elseif($day=="Fri"){
return "Ven";
}elseif($day=="Sat"){
return "Sam";
}elseif($day=="Sun"){
return "Dim";
}
}
function taux_couverture($nombre)
{
if (is_numeric($nombre))
{
return (100-$nombre)."%";
} else
{
return "";
}
}
function tester_des_adresses_email($liste_email)
{
$addr = explode(';', $liste_email);
foreach ($addr as $ad)
{
if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#i", $ad)==false)
{
return false;
}
}
return true;
}
function tester_une_adresse_email($email)
{
return preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#i", $email);
}
function tester_des_adresse_email($email)
{
$addr = explode(';', $email);
foreach ($addr as $ad)
{
if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#i", $ad)==false)
{
echo "mauvaise adresse functions";
exit();
}
}
echo "bonne adresse functions";
}
function convetirEnLettre($number, $lang='fr_FR')
{
return convertirc(ucfirst(numfmt_create($lang, NumberFormatter::SPELLOUT)->format($number)));
}
function format_N($nombre)
{
if (is_numeric($nombre))
{
return number_format($nombre, 0, ',', ' ');
} else
{
return "0";
}
}
function heureFr($d)
{
if ($d<="0000-00-00") return "";
return date("d/m/Y", strtotime($d));
}
function dateFr($d)
{
if ($d<="0000-00-00") return "";
return date("d/m/Y", strtotime($d));
}
function dateEng($d)
{
if ($d<="0000-00-00") return "";
return date("m/j/Y", strtotime($d));
}
function dateLang($d, $lang=null)
{
if (isset($lang) && $lang=="en_US")
{
// return dateEng($d);
return dateFr($d);
}
else
{
return dateFr($d);
}
}
function dateheureFr($d)
{
if ($d<="0000-00-00") return "";
return date("d/m/Y", strtotime($d)).' '.substr($d,-8);
}
function dateheureEng($d)
{
if ($d<="0000-00-00") return "";
return date("m/d/Y", strtotime($d)).' '.substr($d,-8);
}
function dateheureLang($d, $lang=null)
{
if (isset($lang) && $lang=="en_US")
{
// return dateheureEng($d);
return dateheureFr($d);
}
else
{
return dateheureFr($d);
}
}
function heureCourante()
{
return date("d/m/Y H:i:s");
}
function heureCouranteLang($lang=null)
{
if (isset($lang) && $lang=="en_US")
{
// return heureCouranteEng();
return heureCouranteFr();
}
else
{
return heureCouranteFr();
}
}
function heureCouranteFr()
{
return date("d/m/Y H:i:s");
}
function heureCouranteEng()
{
return date("m/d/Y H:i:s");
}
function dateCouranteLang($lang=null)
{
if (isset($lang) && $lang=="en_US")
{
// return dateCouranteEng();
return dateCouranteFr();
}
else
{
return dateCouranteFr();
}
}
function dateToFrench($date, $format)
{
$english_days = array('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday');
$french_days = array('lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi', 'dimanche');
$english_months = array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
$french_months = array('janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre');
return str_replace($english_months, $french_months, str_replace($english_days, $french_days, date($format, strtotime($date) ) ) );
}
function dateCouranteFr()
{
return date('d/m/Y');
}
function dateCouranteEng()
{
return date("m/d/Y");
}
function heureCouranteSql()
{
return date("Y-m-d H:i:s");
}
function dateJourSql()
{
return date("Y-m-d");
}
function existeParam($param)
{
return (($param!==null) && ($param != ""));
}
function contruireParam($param)
{
return ($param == null) ? "" : trim($param);
}
function contruireParamLike($param)
{
$p=($param == null) ? "" : trim($param);
return "%".$p."%";
}
function liste_options($liste,$val_def,$strict=false)
{
// <option value="orange" label="Orange" />
if (isset($_SESSION['lang']) && $_SESSION['lang']=="en_US")
{
$select = $strict ? '' : '<OPTION value="">-- Select --</OPTION>';
}
else
{
$select = $strict ? '' : '<OPTION value="">-- Sélectionner --</OPTION>';
}
foreach ($liste as $option):
$select .= ' <OPTION value="'.$option["code"].'"';
if($val_def == $option["code"])
{
$select .= ' selected';
}
$select .= '> '.$option["libelle"].' </option> ';
endforeach;
echo $select;
}
function liste_options_consultation($liste,$val_def,$strict=false)
{
// $select = $strict ? '' : '<OPTION value="">Tous</OPTION>';
if (isset($_SESSION['lang']) && $_SESSION['lang']=="en_US")
{
$select = $strict ? '' : '<OPTION value="">-- All --</OPTION>';
}
else
{
$select = $strict ? '' : '<OPTION value="">-- Tous --</OPTION>';
}
foreach ($liste as $option):
$select .= ' <OPTION value="'.$option["code"].'"';
if($val_def == $option["code"])
{
$select .= ' selected';
}
$select .= '> '.$option["libelle"].' </option> ';
endforeach;
echo $select;
}
function datePlus($date,$part, $nb)
{
switch ($part) {
case "A":
$duree = new DateInterval('P'.$nb.'Y');
break;
case "M":
$duree = new DateInterval('P'.$nb.'M');
break;
case "J":
$duree = new DateInterval('P'.$nb.'D');
break;
default:
$duree = new DateInterval('P1Y');
}
$d = DateTime::createFromFormat('j/m/Y',$date);
$d->add($duree);
$duree = new DateInterval('P1D');
$d->sub($duree);
return $d->format('d/m/Y');
}
function dateMoins($date,$part, $nb)
{
switch ($part) {
case "A":
$duree = new DateInterval('P'.$nb.'Y');
break;
case "M":
$duree = new DateInterval('P'.$nb.'M');
break;
case "J":
$duree = new DateInterval('P'.$nb.'D');
break;
default:
$duree = new DateInterval('P1Y');
}
$d = DateTime::createFromFormat('j/m/Y',$date);
$d->sub($duree);
$duree = new DateInterval('P1D');
$d->add($duree);
return $d->format('d/m/Y');
}
function convertirc($valeur)
{
$valeur = $valeur ?? '';
return iconv('UTF-8', 'ISO-8859-15//TRANSLIT', $valeur);
}
function echapperf($valeur)
{
return addslashes($valeur);
}
function nettoyerf($valeur)
{
return htmlspecialchars($valeur, ENT_QUOTES, 'UTF-8', true);
}
function dechapperf($valeur)
{
return stripslashes($valeur);
}
/*
$intervalle = new DateInterval('P1Y2W6MT2H35M54S');
P = date
T= heure
* Ici, on a définit un intervalle de 1 an 2 semaines 6 mois 2 heures 35 minutes et 54 secondes
* J'ai mis toutes les possibilités mais on peut très bien ne mettre que la partie horaire
* ou que la partie date ou juste le mois, juste l'année, juste le jour, etc etc
* Toutes les combinaisons sont possibles sauf l'association des semaines et des jours
* puisque semaines sera convertir en jours. Du moment que vous n'oubliez pas le P et/ou le T
* pour séparer la date de l'heure, tout ira bien
new DateInterval('P1Y') = intervalle de 1 an
$intervalle = new DateInterval('P15D'); // Intervalle de 15 jours
$date->sub($intervalle) => soustrait $intervalle de $date
$date->add($intervalle) => ajoute $intervalle à $date
*/
function liste_utilisateurs_profil($listeutilisateur)
{
$tableau = '<table id="listeutilisateur" class="table table-responsive table-condensed table-hover"> ';
$tableau .=' <thead> ';
$tableau .=' <tr> ';
$tableau .=' <th>Login</th> ';
$tableau .=' <th>Nom</th> ';
$tableau .=' <th align="center">choix</th> ';
$tableau .=' </tr> ';
$tableau .=' </thead> ';
$tableau .=' <tbody> ';
foreach ($listeutilisateur as $utilisateur):
$tableau .= '<tr>';
$tableau .= ' <td width="20%" >'.$utilisateur['codeUtilisateur'].'</td>';
$tableau .= ' <td>'.$utilisateur['nom'].'</td>';
$tableau .= ' <td><input type="checkbox" ';
if($utilisateur['choix']=='1')
{
$tableau .= ' checked ';
}
$tableau .= ' value="'.$utilisateur['choix'].'" onClick="javascript:if(this.value==1){this.value=0}else{this.value=1};attribuer_profil_utilisateur(this.value,'.$utilisateur['id'].');"></td>';
$tableau .= '</tr>';
endforeach;
$tableau .=' </tbody> ';
$tableau .=' </table> ';
echo $tableau;
}
function liste_utilisateurs_prestataire($listeutilisateur)
{
$tableau = '<table id="listeutilisateur" class="table table-responsive table-condensed table-hover"> ';
$tableau .=' <thead> ';
$tableau .=' <tr> ';
$tableau .=' <th>Login</th> ';
$tableau .=' <th>Nom</th> ';
$tableau .=' <th align="center">choix</th> ';
$tableau .=' </tr> ';
$tableau .=' </thead> ';
$tableau .=' <tbody> ';
foreach ($listeutilisateur as $utilisateur):
$tableau .= '<tr>';
$tableau .= ' <td width="20%" >'.$utilisateur['codeUtilisateur'].'</td>';
$tableau .= ' <td>'.$utilisateur['nom'].'</td>';
$tableau .= ' <td><input type="checkbox" ';
if($utilisateur['choix']=='1')
{
$tableau .= ' checked ';
}
$tableau .= ' value="'.$utilisateur['choix'].'" onClick="javascript:if(this.value==1){this.value=0}else{this.value=1};attribuer_prestataire_utilisateur(this.value,'.$utilisateur['id'].');"></td>';
$tableau .= '</tr>';
endforeach;
$tableau .=' </tbody> ';
$tableau .=' </table> ';
echo $tableau;
}
function liste_menus_profil($listemenu)
{
$tableau = '<table id="listemenu" class="table table-responsive table-condensed table-hover"> ';
$tableau .=' <thead> ';
$tableau .=' <tr> ';
$tableau .=' <th width="80%">Menu</th> ';
$tableau .=' <th style="text-align: center;">choix</th> ';
$tableau .=' </tr> ';
$tableau .=' </thead> ';
$tableau .=' <tbody> ';
foreach ($listemenu as $menu):
$tableau .= '<tr>';
$tableau .= ' <td width="10%">'.$menu['libeleMenu'].'</td> ';
$tableau .= ' <td style="text-align: center;"><input type="checkbox" ';
if($menu['choix']=='1')
{
$tableau .= ' checked ';
}
$tableau .= ' value="'.$menu['choix'].'"';
$tableau .= ' onClick="javascript:if(this.value==1){this.value=0}else{this.value=1};';
$tableau .= " ajouter_menu_profil(this.value,'".$menu['codeMenu']."',".$menu['id_menuprofil'].");";
$tableau .= ' "> </td> ';
$tableau .= ' </tr> ';
endforeach;
$tableau .=' </tbody> ';
$tableau .=' </table> ';
echo $tableau;
}
function liste_vues_profil($listemenu)
{
$tableau = '<table id="listemenu" class="table table-responsive table-condensed table-hover"> ';
$tableau .=' <thead> ';
$tableau .=' <tr> ';
$tableau .=' <th width="80%">Menu</th> ';
$tableau .=' <th style="text-align: center;">choix</th> ';
$tableau .=' </tr> ';
$tableau .=' </thead> ';
$tableau .=' <tbody> ';
foreach ($listemenu as $menu):
$tableau .= '<tr>';
$tableau .= ' <td width="10%">'.$menu['libeleMenu'].'</td> ';
$tableau .= ' <td style="text-align: center;"><input type="checkbox" ';
if($menu['choix']=='1')
{
$tableau .= ' checked ';
}
$tableau .= ' value="'.$menu['choix'].'"';
$tableau .= ' onClick="javascript:if(this.value==1){this.value=0}else{this.value=1};';
$tableau .= " ajouter_vue_profil(this.value,'".$menu['codeMenu']."',".$menu['id_menuvueprofil'].");";
$tableau .= ' "> </td> ';
$tableau .= ' </tr> ';
endforeach;
$tableau .=' </tbody> ';
$tableau .=' </table> ';
echo $tableau;
}
function envoyer_mail_pj($mailto, $subject, $msg, $filename, $old_file_name)
{
// clé aléatoire de limite
$boundary = md5(uniqid(microtime(), TRUE));
// Headers
$headers = 'From: SYSTEME DE GESTION MALADIE AFRIK ASSUR <info@afrikassur.com>'."\r\n";
$headers .= 'Mime-Version: 1.0'."\r\n";
$headers .= 'Content-Type: multipart/mixed;boundary='.$boundary."\r\n";
$headers .= "\r\n";
// Message
$message = "\r\n\r\n";
// Texte
$message .= '--'.$boundary."\r\n";
//$message .= 'Content-type:text/plain;charset=utf-8'."\r\n";
$message .= 'Content-type:text/plain;'."\r\n";
$message .= 'Content-transfer-encoding:8bit'."\r\n";
// $message .= 'Un message avec une pièce jointe.'."\r\n";
$message .= convertirc($msg)."\r\n";
// Pièce jointe
if (file_exists($filename))
{
$file_type = filetype($filename);
$file_size = filesize($filename);
$handle = fopen($filename, 'r') or die('Impossible à ouvrir '.$filename.'!');
$content = fread($handle, $file_size);
$content = chunk_split(base64_encode($content));
$f = fclose($handle);
$message .= '--'.$boundary."\r\n";
// $message .= 'Content-type:'.$file_type.';name='.$filename."\r\n";
$message .= 'Content-type:'.$file_type.';name='.$old_file_name."\r\n";
$message .= 'Content-transfer-encoding:base64'."\r\n";
$message .= $content."\r\n";
}
// Fin
$message .= '--'.$boundary."\r\n";
// Function mail()
mail($mailto, $subject, $message, $headers);
// fin envoi mail
}
function uploader_image($message)
{
echo "uploader_image";
$message = "uploader_image";
exit();
// Constantes
define('TARGET', 'Photos/'); // Repertoire cible
define('MAX_SIZE', 100000); // Taille max en octets du fichier
define('WIDTH_MAX', 800); // Largeur max de l'image en pixels
define('HEIGHT_MAX', 800); // Hauteur max de l'image en pixels
// Tableaux de donnees
//$tabExt = array('jpg','gif','png','jpeg'); // Extensions autorisees
$tabExt = array('jpg','png','jpeg'); // Extensions autorisees
$infosImg = array();
// Variables
$extension = '';
$message = '';
$nomImage = '';
if( !is_dir(TARGET) ) {
if( !mkdir(TARGET, 0755) ) {
exit('Erreur : le répertoire cible ne peut-être créé ! Vérifiez que vous diposiez des droits suffisants pour le faire ou créez le manuellement !');
}
}
if(!empty($_POST))
{
// On verifie si le champ est rempli
if( !empty($_FILES['fichier_image_a_uploader']['name']) )
{
// Recuperation de l'extension du fichier
$extension = pathinfo($_FILES['fichier_image_a_uploader']['name'], PATHINFO_EXTENSION);
// On verifie l'extension du fichier
if(in_array(strtolower($extension),$tabExt))
{
// On recupere les dimensions du fichier
$infosImg = getimagesize($_FILES['fichier_image_a_uploader']['tmp_name']);
// On verifie le type de l'image
if($infosImg[2] >= 1 && $infosImg[2] <= 14)
{
// On verifie les dimensions et taille de l'image
if(($infosImg[0] <= WIDTH_MAX) && ($infosImg[1] <= HEIGHT_MAX) && (filesize($_FILES['fichier_image_a_uploader']['tmp_name']) <= MAX_SIZE))
{
// Parcours du tableau d'erreurs
if(isset($_FILES['fichier_image_a_uploader']['error'])
&& UPLOAD_ERR_OK === $_FILES['fichier_image_a_uploader']['error'])
{
// On renomme le fichier
$nomImage = md5(uniqid()) .'.'. $extension;
// Si c'est OK, on teste l'upload
if(move_uploaded_file($_FILES['fichier_image_a_uploader']['tmp_name'], TARGET.$nomImage))
{
$message = 'Upload réussi !';
}
else
{
// Sinon on affiche une erreur systeme
$message = 'Problème lors de l\'upload !';
}
}
else
{
$message = 'Une erreur interne a empêché l\'uplaod de l\'image';
}
}
else
{
// Sinon erreur sur les dimensions et taille de l'image
$message = 'Erreur dans les dimensions de l\'image !';
}
}
else
{
// Sinon erreur sur le type de l'image
$message = 'Le fichier à uploader n\'est pas une image !';
}
}
else
{
// Sinon on affiche une erreur pour l'extension
$message = 'L\'extension du fichier est incorrecte !';
}
}
else
{
// Sinon on affiche une erreur pour le champ vide
$message = 'Veuillez remplir le formulaire svp !';
}
}
}
function viderContexte() {
$_SESSION['idAdherent_C'] = "";
$_SESSION['numeroAdherent_C'] = "";
$_SESSION['nomAdherent_C'] = "";
$_SESSION['email_C'] = "";
$_SESSION['telephonePortable_C'] = "";
$_SESSION['idBeneficiaire'] = "";
$_SESSION['numeroBeneficiaire_C'] = "";
$_SESSION['nomBeneficiaire_C'] = "";
$_SESSION['lienPhoto_C'] = "";
$_SESSION['garantieArchive_C'] = "0";
/* viderContexte prestations */
$_SESSION['dateEffetPolice_C'] = "";
$_SESSION['dateFinPolice_C'] = "";
$_SESSION['dateEcheancePolice_C'] = "";
$_SESSION['codeEtatPolice_C'] = "";
$_SESSION['idCollege_C'] = "";
$_SESSION['codeProduit_C'] = "";
$_SESSION['idAdherent_C'] = "";
$_SESSION['numeroAdherent_C'] = "";
$_SESSION['nomAdherent_C'] = "";
$_SESSION['prenomsAdherent_C'] = "";
$_SESSION['telephonePortableAdherent_C'] = "";
$_SESSION['codeLangueAdherent'] = "fr_FR";
$_SESSION['emailAdherent_C'] = "";
$_SESSION['produit_C'] = "";
$_SESSION['libelleCollege_C'] = "";
$_SESSION['adresseGeoAdherent_C'] = "";
$_SESSION['paysAdherent_C'] = "";
$_SESSION['adressePostaleAdherent_C'] = "";
$_SESSION['telephonFixeAdherent_C'] = "";
$_SESSION['nomBeneficiaire_C'] = "";
$_SESSION['prenomsBeneficiaire_C'] = "";
$_SESSION['codeLienParente_C'] = "";
$_SESSION['numeroPiece_C'] = "";
$_SESSION['sexe_C'] = "";
$_SESSION['codeGroupeSanguin_C'] = "";
$_SESSION['dateNaissance_C'] = "";
$_SESSION['telephonePortableBeneficiaire_C'] = "";
$_SESSION['dateEntreeBeneficiaire_C'] = "";
$_SESSION['dateSortieBeneficiaire_C'] = "";
$_SESSION['codeMotifSortie_C'] = "";
$_SESSION['codeEtatBeneficiaire_C'] = "";
$_SESSION['lienPhoto_C'] = "";
$_SESSION['dateEffetBeneficiaire_C'] = "";
$_SESSION['dateEffetCouvert'] = "0";
$_SESSION['enVigueur_C'] = "";
$_SESSION['naturepiece_C'] = "";
$_SESSION['lienparente_C'] = "";
$_SESSION['motifsortie_C'] = "";
$_SESSION['etatbeneficiaire_C'] = "";
$_SESSION['ageBeneficiaire_C'] = "";
$_SESSION['idBeneficiaire_C'] = "";
$_SESSION['user_id_C'] = "0";
$_SESSION['finger_id_C'] = "0";
$_SESSION['idSubstitut_C'] = "0";
$_SESSION['substitutnonassure_C'] = "";
$_SESSION['substitutenVigueur_C'] = "0";
$_SESSION['numeroBeneficiaire_C'] = "";
$_SESSION['college_couvert_C'] = "0";
$_SESSION['derogation_en_cours_C'] = "0";
$_SESSION['derogation_finger_en_cours_C'] = "0";
$_SESSION['tm_C'] = "0";
$_SESSION['numeroFeuilleMaladie_C'] = "0";
$_SESSION['numeroPrescription_C'] = "0";
$_SESSION['numeroExamen_C'] = "0";
$_SESSION['numeroPrescriptionKine_C'] = "0";
$_SESSION['idFacture_C'] = "0";
$_SESSION['beneficiaire_C'] = "";
$_SESSION['adherent_C'] = "";
$_SESSION['enVigueur_C'] = "";
$_SESSION['decede_C'] = "0";
$_SESSION['dateDeces_C'] = "";
$_SESSION['fraisFuneraireDemande_C'] = "0";
$_SESSION['fraisFunerairePaye_C'] = "0";
}
function nomsansaccent($chaine) {
$trans = array("Â" => "A", "Ã" => "A", "Ä" => "A", "Å" => "A", "Ç" => "C",
"È" => "E", "É" => "E", "Ê" => "E", "Ë" => "E", "Ì" => "I", "Í" => "I",
"Î" => "I", "Ï" => "I", "Ò" => "O", "Ó" => "O", "Ô" => "O", "Õ" => "O",
"Ö" => "O", "Ù" => "U", "Ú" => "U", "Û" => "U", "Ü" => "U", "Ý" => "Y",
"à" => "a", "á" => "a", "â" => "a", "ã" => "a", "ä" => "a", "å" => "a",
"ç" => "c", "è" => "e", "é" => "e", "ê" => "e", "ë" => "e", "ì" => "i",
"í" => "i", "î" => "i", "ï" => "i", "ð" => "o", "ò" => "o", "ó" => "o",
"ô" => "o", "õ" => "o", "ö" => "o", "ù" => "u", "ú" => "u", "û" => "u",
"ü" => "u", "ý" => "y", "ÿ" => "y", " " => "_");
$noaccent = strtr($chaine, $trans);
$noaccent = strtolower($noaccent);
return $noaccent;
}
function securite_bdd($string)
{
// On regarde si le type de string est un nombre entier (int)
if(ctype_digit($string))
{
$string = intval($string);
}
// Pour tous les autres types
else
{
$string = mysql_real_escape_string($string);
$string = addcslashes($string, '%_');
}
return $string;
}
function dateDifference($date_1 , $date_2)
{
$d1 = DateTime::createFromFormat('d/m/Y',$date_1);
$d2 = DateTime::createFromFormat('d/m/Y',$date_2);
$interval = $d1->diff($d2);
return $interval->format('%y');
}
function dateDifferenceMois($date_1 , $date_2)
{
$d1 = DateTime::createFromFormat('d/m/Y',$date_1);
$d2 = DateTime::createFromFormat('d/m/Y',$date_2);
$interval = $d1->diff($d2);
return $interval->format('%m');
}
function dateDifferenceJour($date_1 , $date_2)
{
$d1 = DateTime::createFromFormat('d/m/Y',$date_1);
$d2 = DateTime::createFromFormat('d/m/Y',$date_2);
$interval = $d1->diff($d2);
return $interval->format('%d');
}
function age($date_1 , $date_2)
{
//$d1 = DateTime::createFromFormat('d/m/Y',$date_1);
//$d2 = DateTime::createFromFormat('d/m/Y',$date_2);
$d1 = new DateTime($date_1);
$d2 = new DateTime($date_2);
$interval = $d1->diff($d2);
return $interval->format('%y');
}
function checkbox( $pdf, $checked = TRUE, $checkbox_size = 5 , $ori_font_family = 'Arial', $ori_font_size = '10', $ori_font_style = '' )
{
if($checked == TRUE)
$check = "4";
else
$check = "";
$pdf->SetFont('ZapfDingbats','', $ori_font_size);
$pdf->Cell($checkbox_size, $checkbox_size, $check, 1, 0);
$pdf->SetFont( $ori_font_family, $ori_font_style, $ori_font_size);
}
// public static function asLetters($number) {
function asLetters($number)
{
$convert = explode('.', $number);
$num[17] = array('zéro', 'un', 'deux', 'trois', 'quatre', 'cinq', 'six', 'sept', 'huit',
'neuf', 'dix', 'onze', 'douze', 'treize', 'quatorze', 'quinze', 'seize');
$num[100] = array(20 => 'vingt', 30 => 'trente', 40 => 'quarante', 50 => 'cinquante',
60 => 'soixante', 70 => 'soixante-dix', 80 => 'quatre-vingt', 90 => 'quatre-vingt-dix');
if (isset($convert[1]) && $convert[1] != '') {
return asLetters($convert[0]).' et '.asLetters($convert[1]);
}
if ($number < 0) return 'moins '.asLetters(-$number);
if ($number < 17) {
return $num[17][$number];
}
elseif ($number < 20) {
return 'dix-'.asLetters($number-10);
}
elseif ($number < 100) {
if ($number%10 == 0) {
return $num[100][$number];
}
elseif (substr($number, -1) == 1) {
if( ((int)($number/10)*10)<70 ){
return asLetters((int)($number/10)*10).'-et-un';
}
elseif ($number == 71) {
return 'soixante-et-onze';
}
elseif ($number == 81) {
return 'quatre-vingt-un';
}
elseif ($number == 91) {
return 'quatre-vingt-onze';
}
}
elseif ($number < 70) {
return asLetters($number-$number%10).'-'.asLetters($number%10);
}
elseif ($number < 80) {
return asLetters(60).'-'.asLetters($number%20);
}
else {
return asLetters(80).'-'.asLetters($number%20);
}
}
elseif ($number == 100) {
return 'cent';
}
elseif ($number < 200) {
return asLetters(100).' '.asLetters($number%100);
}
elseif ($number < 1000) {
return asLetters((int)($number/100)).' '.asLetters(100).($number%100 > 0 ? ' '.asLetters($number%100): '');
}
elseif ($number == 1000){
return 'mille';
}
elseif ($number < 2000) {
return asLetters(1000).' '.asLetters($number%1000).' ';
}
elseif ($number < 1000000) {
return asLetters((int)($number/1000)).' '.asLetters(1000).($number%1000 > 0 ? ' '.asLetters($number%1000): '');
}
elseif ($number == 1000000) {
// return 'millions';
return 'un million';
}
elseif ($number < 2000000) {
return asLetters(1000000).' '.asLetters($number%1000000);
}
elseif ($number < 1000000000) {
// return asLetters((int)($number/1000000)).' '.asLetters(1000000).($number%1000000 > 0 ? ' '.asLetters($number%1000000): '');
return asLetters((int)($number/1000000)).' millions '.($number%1000000 > 0 ? ' '.asLetters($number%1000000): '');
}
}
/*
function liste_options_center($liste,$val_def,$strict=false)
{
$select = $strict ? '' : '<OPTION align="center" value=""> </OPTION>';
foreach ($liste as $option):
$select .= ' <OPTION value="'.$option["code"].'"';
if($val_def == $option["code"])
{
$select .= ' selected';
}
$select .= '> '.$option["libelle"].' </option> ';
endforeach;
echo $select;
}
*/
function div_oui_non($ouiNon, $lang=null)
{
if($ouiNon == "1")
{
if (isset($lang) && $lang=="en_US")
{
$div = 'Yes';
}
else
{
$div = 'Oui';
}
}
else
{
if (isset($lang) && $lang=="en_US")
{
$div = 'No';
}
else
{
$div = 'Non';
}
}
echo $div;
}
function est_anglophone()
{
return (isset($_SESSION['lang']) && $_SESSION['lang']=="en_US");
}
function session_expiree($dureeSession)
{
if(!isset($_SESSION['licensed']))
{
$_SESSION['licensed'] = true;
}
if
(
isset($_SESSION['codeSociete'])
&&
($_SESSION['licensed']!=true)
)
{
session_destroy();
return true;
}
if($dureeSession=="0")
{
return false;
}
elseif( isset($_SESSION['derniere_action']) and ($dureeSession*60)<(time() - $_SESSION['derniere_action']))
{
return true;
}
else
{
return false;
}
}
function trimIfString($value) {
return is_string($value) ? trim($value) : $value;
}
function convertirEnEuro($montantCfa, $tauxConversion) {
return $montantCfa * $tauxConversion;
}
function safeGet($array, $key, $default = null) {
if (is_array($array) && array_key_exists($key, $array)) {
return $array[$key];
}
// echo safeGet($row, 'id', 'N/A');
return $default;
}
function ebene_check_box_disabled($choix)
{
if($choix=='1')
{
$check_box = '<input type="checkbox" checked disabled>';
}
else
{
$check_box = '<input type="checkbox" disabled>';
}
echo $check_box;
}
function ebene_check_box_enabled($choix)
{
if($choix=='1')
{
$check_box = '<input type="checkbox" checked value='.$choix.' onClick="javascript:if(this.value==1){this.value=0}else{this.value=1};">';
}
else
{
$check_box = '<input type="checkbox" value='.$choix.' onClick="javascript:if(this.value==1){this.value=0}else{this.value=1};">';
}
echo $check_box;
}
// Chiffrer limage au moment de lupload (PHP)
function encryptImage($sourcePath, $destPath)
{
$key = base64_decode(trim(file_get_contents('/var/www/keys/inter-sante-photo.key')));
$plaintext = file_get_contents($sourcePath);
$iv = openssl_random_pseudo_bytes(16);
$cipher = openssl_encrypt($plaintext, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv);
file_put_contents($destPath, $iv . $cipher); // concat IV + données
}
// Déchiffrer pour afficher la photo dans INTER-SANTE
function decryptImage($path)
{
$key = base64_decode(trim(file_get_contents('/var/www/keys/inter-sante-photo.key')));
$data = file_get_contents($path);
$iv = substr($data, 0, 16);
$ciphertext = substr($data, 16);
// return openssl_decrypt($ciphertext, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv);
return base64_encode(openssl_decrypt($ciphertext, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv));
}