626 |
*/ |
*/ |
627 |
public function check_field_exist($list_fields, $table) { |
public function check_field_exist($list_fields, $table) { |
628 |
|
|
629 |
// Requête SQL pour récupérer le nom des colonnes |
// Instance de la classe en paramètre |
630 |
$sql = "SELECT column_name |
require_once "../obj/".$table.".class.php"; |
631 |
FROM information_schema.columns |
$object = new $table("]", $this->db, DEBUG); |
632 |
WHERE table_schema = '".substr(DB_PREFIXE, 0, -1)."' |
|
633 |
AND table_name = '".$table."' |
// Récupère les champs de la table |
634 |
ORDER BY ordinal_position"; |
foreach ($object->champs as $champ) { |
635 |
$this->addToLog("check_field_exist() : db->query(\"".$sql."\")", VERBOSE_MODE); |
$list_column[] = $champ; |
|
$res = $this->db->query($sql); |
|
|
$this->isDatabaseError($res); |
|
|
|
|
|
// Tant qu'il y a un résultat |
|
|
while ($row = &$res->fetchRow(DB_FETCHMODE_ASSOC)) { |
|
|
|
|
|
// Le nom de la colonne est mise dans un tableau |
|
|
$list_column[] = $row['column_name']; |
|
636 |
} |
} |
637 |
|
|
638 |
// Tableau des champs en erreur |
// Tableau des champs en erreur |
939 |
// Choisit l'opérateur logique |
// Choisit l'opérateur logique |
940 |
$op_logique = $key > 0 ? 'OR' : 'AND ('; |
$op_logique = $key > 0 ? 'OR' : 'AND ('; |
941 |
// Ajoute la condition |
// Ajoute la condition |
942 |
$whereContraintes .= " ".$op_logique." contrainte.groupe = '" |
$whereContraintes .= " ".$op_logique." lower(contrainte.groupe) = lower('" |
943 |
.$groupe."'"; |
.pg_escape_string($groupe)."')"; |
944 |
} |
} |
945 |
} |
} |
946 |
// S'il y a des valeurs dans groupe |
// S'il y a des valeurs dans groupe |
958 |
// Choisit l'opérateur logique |
// Choisit l'opérateur logique |
959 |
$op_logique = $key > 0 ? 'OR' : 'AND ('; |
$op_logique = $key > 0 ? 'OR' : 'AND ('; |
960 |
// Ajoute la condition |
// Ajoute la condition |
961 |
$whereContraintes .= " ".$op_logique." contrainte.sousgroupe = '" |
$whereContraintes .= " ".$op_logique." lower(contrainte.sousgroupe) = lower('" |
962 |
.$sousgroupe."'"; |
.pg_escape_string($sousgroupe)."')"; |
963 |
} |
} |
964 |
} |
} |
965 |
// S'il y a des valeurs dans sous-groupe |
// S'il y a des valeurs dans sous-groupe |
972 |
// Si l'option service_consulte n'est pas vide |
// Si l'option service_consulte n'est pas vide |
973 |
if ($service_consulte != "") { |
if ($service_consulte != "") { |
974 |
// Ajoute la condition |
// Ajoute la condition |
975 |
$whereContraintes .= " AND service_consulte = '".$service_consulte."'"; |
$whereContraintes .= " AND service_consulte = cast(lower('".$service_consulte."') as boolean) "; |
976 |
} |
} |
977 |
|
|
978 |
// Condition retournée |
// Condition retournée |
990 |
function mois_date($date, $delay, $operator = "+") { |
function mois_date($date, $delay, $operator = "+") { |
991 |
|
|
992 |
// Découpage de la date |
// Découpage de la date |
993 |
$temp = explode("-" , $date); |
$temp = explode("-", $date); |
994 |
$day = (int) $temp[2]; |
$day = (int) $temp[2]; |
995 |
$month = (int) $temp[1]; |
$month = (int) $temp[1]; |
996 |
$year = (int) $temp[0]; |
$year = (int) $temp[0]; |
997 |
|
|
998 |
// Si c'est une addition |
// Si c'est une addition |
999 |
if ($operator == '+') { |
if ($operator == '+') { |
1000 |
// Si le délais est supérieur à 12 mois |
// Année à ajouter |
1001 |
if ($delay >= 12) { |
$year += floor($delay / 12); |
1002 |
// Année à ajouter |
// Mois restant |
1003 |
$year += floor($delay / 12); |
$nb_month = ($delay % 12); |
1004 |
// Mois restant |
// S'il y a des mois restant |
1005 |
$nb_month = ($delay % 12); |
if ($nb_month != 0) { |
1006 |
// S'il y a des mois restant |
// Ajout des mois restant |
1007 |
if ($nb_month != 0) { |
$month += $nb_month; |
|
// Ajout des mois restant |
|
|
$month += $nb_month; |
|
|
// Si ça dépasse le mois 12 (décembre) |
|
|
if ($month > 12) { |
|
|
// Soustrait 12 au mois |
|
|
$month -= 12; |
|
|
// Ajoute 1 à l'année |
|
|
$year += 1; |
|
|
} |
|
|
} |
|
|
} else { |
|
|
// Ajoute le délais |
|
|
$month += $delay; |
|
1008 |
// Si ça dépasse le mois 12 (décembre) |
// Si ça dépasse le mois 12 (décembre) |
1009 |
if ($month > 12) { |
if ($month > 12) { |
1010 |
// Soustrait 12 au mois |
// Soustrait 12 au mois |
1017 |
|
|
1018 |
// Si c'est une soustraction |
// Si c'est une soustraction |
1019 |
if ($operator == "-") { |
if ($operator == "-") { |
1020 |
// Si le délais est supérieur à 12 mois |
// Année à soustraire |
1021 |
if ($delay >= 12) { |
$year -= floor($delay / 12); |
1022 |
// Année à soustraire |
// Mois restant |
1023 |
$year -= floor($delay / 12); |
$nb_month = ($delay % 12); |
1024 |
// Mois restant |
// S'il y a des mois restant |
1025 |
$nb_month = ($delay % 12); |
if ($nb_month != 0) { |
|
// S'il y a des mois restant |
|
|
if ($nb_month != 0) { |
|
|
// Soustrait le délais |
|
|
$month -= $nb_month; |
|
|
// Si ça dépasse le mois 1 (janvier) |
|
|
if ($month < 1) { |
|
|
// Soustrait 12 au mois |
|
|
$month += 12; |
|
|
// Ajoute 1 à l'année |
|
|
$year -= 1; |
|
|
} |
|
|
} |
|
|
} else { |
|
1026 |
// Soustrait le délais |
// Soustrait le délais |
1027 |
$month -= $delay; |
$month -= $nb_month; |
1028 |
// Si ça dépasse le mois 1 (janvier) |
// Si ça dépasse le mois 1 (janvier) |
1029 |
if ($month < 1) { |
if ($month < 1) { |
1030 |
// Soustrait 12 au mois |
// Soustrait 12 au mois |
1063 |
$day = $day_max; |
$day = $day_max; |
1064 |
} |
} |
1065 |
|
|
1066 |
|
// Compléte le mois et le jour par un 0 à gauche si c'est un chiffre |
1067 |
|
$month = str_pad($month, 2, "0", STR_PAD_LEFT); |
1068 |
|
$day = str_pad($day, 2, "0", STR_PAD_LEFT); |
1069 |
|
|
1070 |
// Retourne la date calculée |
// Retourne la date calculée |
1071 |
return $year."-".$month."-".$day ; |
return $year."-".$month."-".$day ; |
1072 |
} |
} |
1073 |
|
|
1074 |
|
/** |
1075 |
|
* Vérifie la valididité d'une date. |
1076 |
|
* @param string $pDate Date à vérifier |
1077 |
|
* |
1078 |
|
* @return boolean |
1079 |
|
*/ |
1080 |
|
function check_date($pDate) { |
1081 |
|
|
1082 |
|
// Vérifie si c'est une date valide |
1083 |
|
if (preg_match("/^([0-9]{4})-([0-9]{2})-([0-9]{2})$/", $pDate, $date) |
1084 |
|
&& checkdate($date[2], $date[3], $date[1]) |
1085 |
|
&& $date[1] >= 1900) { |
1086 |
|
// |
1087 |
|
return true; |
1088 |
|
} |
1089 |
|
|
1090 |
|
// |
1091 |
|
return false; |
1092 |
|
} |
1093 |
|
|
1094 |
} |
} |
1095 |
|
|
1096 |
?> |
?> |