/[openfoncier]/branches/3.14.0-b13/obj/utils.class.php
ViewVC logotype

Diff of /branches/3.14.0-b13/obj/utils.class.php

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

revision 2715 by softime, Thu Feb 6 14:09:06 2014 UTC revision 2757 by softime, Wed Feb 19 17:46:10 2014 UTC
# Line 867  class utils extends application { Line 867  class utils extends application {
867      /**      /**
868       * Permet de détailler les conditions pour l'affichage des contraintes dans       * Permet de détailler les conditions pour l'affichage des contraintes dans
869       * une édition.       * une édition.
870       * @param  string $contraintes_param    Chaine des conditions       * @param string $contraintes_param    Chaine des conditions
871         *
872       * @return array                        Conditions       * @return array                        Conditions
873       */       */
874      function explodeConditionContrainte($contraintes_param) {      function explodeConditionContrainte($contraintes_param) {
# Line 876  class utils extends application { Line 877  class utils extends application {
877          $return = array();          $return = array();
878          $listGroupes = "";          $listGroupes = "";
879          $listSousgroupes = "";          $listSousgroupes = "";
880            $service_consulte = "";
881    
882          // Coupe la condition au ";"          // Coupe la condition au ";"
883          // Doit séparer groupe et sous-groupe          // Doit séparer groupe et sous-groupe
884          $contraintes_params = explode(";", $contraintes_param);          $contraintes_params = explode(";", $contraintes_param);
885            
886          // Enlève le mots-clés "ssgroupe=" dans la première partie de          // Pour chaque paramètres
887          // la condition          foreach ($contraintes_params as $value) {
888          $listSousgroupes = str_replace("ssgroupe=", "", $contraintes_params[0]);              // Si le mot-clés "liste_groupe="
889          // Si après traitement le mots-clés "groupe=" est toujours présent              if (strstr($value, "liste_groupe=")) {
890          if (strstr($listSousgroupes, "groupe=")) {                  // On enlève le mots-clés "liste_groupe="
891              // On enlève le mots-clés "groupe="                  $listGroupes = str_replace("liste_groupe=", "", $value);
892              $listGroupes = str_replace("groupe=", "", $contraintes_params[0]);              }
893              // Met à null la liste des sousgroupes              // Si le mot-clés "liste_ssgroupe="
894              $listSousgroupes = "";              if (strstr($value, "liste_ssgroupe=")) {
895          }                  // On enlève le mots-clés "liste_ssgroupe="
896          // Si il y a une deuxième partie à la condition, ça doit être les                  $listSousgroupes = str_replace("liste_ssgroupe=", "", $value);
897          // sousgroupes              }
898          if (count($contraintes_params) > 1) {              // Si le mot-clés "service_consulte="
899              // Enlève le mots-clés "ssgroupe="              if (strstr($value, "service_consulte=")) {
900              $listSousgroupes = str_replace("ssgroupe=", "", $contraintes_params[1]);                  // On enlève le mots-clés "service_consulte="
901                    $service_consulte = str_replace("service_consulte=", "", $value);
902                }
903          }          }
904    
905          // Récupère la liste des groupes et sous-groupes qui doivent          // Récupère la liste des groupes et sous-groupes qui doivent
906          // être utilisés pour la condition          // être utilisés pour la condition
907          $groupes = explode(",", $listGroupes);          if ($listGroupes != "") {
908          $sousgroupes = explode(",", $listSousgroupes);              $listGroupes = explode(",", $listGroupes);
909            }
910            if ($listSousgroupes != "") {
911                $listSousgroupes = explode(",", $listSousgroupes);
912            }
913    
914          // Tableau à retourner          // Tableau à retourner
915          $return['groupes'] = $groupes;          $return['groupes'] = $listGroupes;
916          $return['sousgroupes'] = $sousgroupes;          $return['sousgroupes'] = $listSousgroupes;
917            $return['service_consulte'] = $service_consulte;
918    
919          //          //
920          return $return;          return $return;
921      }      }
922    
923        /**
924         * Traitement pour créer la condition sur les contraintes dans les éditions.
925         * @param string $part SQL et parti du pdf (sql, titre ou corps)
926         *
927         * @return string      Condition pour la requête sur les contraintes
928         */
929        function traitement_condition_contrainte($part) {
930    
931            // Initialisationd de la condition
932            $whereContraintes = "";
933    
934            // Détaille la condtion
935            $explodeConditionContrainte = $this->explodeConditionContrainte($part);
936    
937            // Récupère les groupes, sous-groupes et service_consulte pour la condition
938            $groupes = $explodeConditionContrainte['groupes'];
939            $sousgroupes = $explodeConditionContrainte['sousgroupes'];
940            $service_consulte = $explodeConditionContrainte['service_consulte'];
941    
942            // Pour chaque groupe
943            if ($groupes != "") {
944                foreach ($groupes as $key => $groupe) {
945                    // Si le groupe n'est pas vide
946                    if (!empty($groupe)) {
947                        // Choisit l'opérateur logique
948                        $op_logique = $key > 0 ? 'OR' : 'AND (';
949                        // Ajoute la condition
950                        $whereContraintes .= " ".$op_logique." contrainte.groupe = '"
951                            .$groupe."'";
952                    }
953                }
954                // S'il y a des valeurs dans groupe
955                if (count($groupe) > 0) {
956                    // Ferme la parenthèse
957                    $whereContraintes .= " ) ";
958                }
959            }
960    
961            // Pour chaque sous-groupe
962            if ($sousgroupes != "") {
963                foreach ($sousgroupes as $key => $sousgroupe) {
964                    // Si le sous-groupe n'est pas vide
965                    if (!empty($sousgroupe)) {
966                        // Choisit l'opérateur logique
967                        $op_logique = $key > 0 ? 'OR' : 'AND (';
968                        // Ajoute la condition
969                        $whereContraintes .= " ".$op_logique." contrainte.sousgroupe = '"
970                            .$sousgroupe."'";
971                    }
972                }
973                // S'il y a des valeurs dans sous-groupe
974                if (count($sousgroupes) > 0) {
975                    // Ferme la parenthèse
976                    $whereContraintes .= " ) ";
977                }
978            }
979    
980            // Si l'option service_consulte n'est pas vide
981            if ($service_consulte != "") {
982                // Ajoute la condition
983                $whereContraintes .= " AND service_consulte = '".$service_consulte."'";
984            }
985    
986            // Condition retournée
987            return $whereContraintes;
988        }
989  }  }
990    
991  ?>  ?>

Legend:
Removed from v.2715  
changed lines
  Added in v.2757

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26