/[openfoncier]/trunk/obj/utils.class.php
ViewVC logotype

Diff of /trunk/obj/utils.class.php

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2771 by softime, Tue Feb 25 14:56:56 2014 UTC revision 2932 by vpihour, Mon Apr 14 16:28:19 2014 UTC
# Line 626  class utils extends application { Line 626  class utils extends application {
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
# Line 947  class utils extends application { Line 939  class utils extends application {
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
# Line 966  class utils extends application { Line 958  class utils extends application {
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
# Line 980  class utils extends application { Line 972  class utils extends application {
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
# Line 998  class utils extends application { Line 990  class utils extends application {
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
# Line 1038  class utils extends application { Line 1017  class utils extends application {
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
# Line 1097  class utils extends application { Line 1063  class utils extends application {
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  ?>  ?>

Legend:
Removed from v.2771  
changed lines
  Added in v.2932

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26