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

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

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

revision 1073 by fmichon, Mon Dec 17 14:52:40 2012 UTC revision 1293 by nhaye, Tue Feb 26 16:22:49 2013 UTC
# Line 27  class om_dbform extends dbForm { Line 27  class om_dbform extends dbForm {
27       */       */
28      var $om_formulaire = "om_formulaire";      var $om_formulaire = "om_formulaire";
29    
30            /**
       
         /**  
31       * Constructeur       * Constructeur
32       *       *
33       * @param string $id       * @param string $id
# Line 64  class om_dbform extends dbForm { Line 62  class om_dbform extends dbForm {
62                  include $fichier;                  include $fichier;
63              }              }
64          }          }
65    
66          // Sauvegarde des actions contextuelles supplementaires          // Sauvegarde des actions contextuelles supplementaires
67          if (isset($portlet_actions)) {          if (isset($portlet_actions)) {
68              $this->actions_sup = $portlet_actions;              $this->actions_sup = $portlet_actions;
69          }          }
70          //Si le flag $archivable est posé  
         //if(isset($archivable) and $archivable){  
         //    $this->archivable=TRUE;  
         //} else {  
         //    $this->archivable=FALSE;  
         //}  
71          // Concatenation des champs pour constitution de la clause select          // Concatenation des champs pour constitution de la clause select
72          $listeChamp = "";          $listeChamp = "";
73          foreach ($champs as $elem) {          foreach ($champs as $elem) {
# Line 97  class om_dbform extends dbForm { Line 91  class om_dbform extends dbForm {
91          } else { // Si mode modification ou suppression          } else { // Si mode modification ou suppression
92              // Clause where en fonction du type de la cle primaire              // Clause where en fonction du type de la cle primaire
93              if ($this->typeCle == "A") {              if ($this->typeCle == "A") {
94                  $sql .= " where ".$this->clePrimaire." like '".$id."' ";                  $sql .= " where ".$this->table.".".$this->clePrimaire." like '".$id."' ";
95              } else {              } else {
96                  $sql .= " where ".$this->table.".".$this->clePrimaire." = ".$id." ";                  $sql .= " where ".$this->table.".".$this->clePrimaire." = ".$id." ";
97              }              }
98          }          }
99          $sql .= " ".$selection." ";          $sql .= " ".$selection." ";
         //print '$sql:'.$sql.'   ';  
100          // Execution de la requete          // Execution de la requete
101          $res = $db->limitquery($sql, 0, 1);          $res = $db->limitquery($sql, 0, 1);
102          // Logger          // Logger
# Line 153  class om_dbform extends dbForm { Line 146  class om_dbform extends dbForm {
146          }          }
147      }      }
148    
   
   
149      /**      /**
150       * Cette methode permet d'executer l'ajout (MODE 'insert') de l'objet dans       * Cette methode permet d'executer l'ajout (MODE 'insert') de l'objet dans
151       * la base de donnees.       * la base de donnees.
# Line 208  class om_dbform extends dbForm { Line 199  class om_dbform extends dbForm {
199                  // Mise en place du verrou pour ne pas valider plusieurs fois                  // Mise en place du verrou pour ne pas valider plusieurs fois
200                  // le meme formulaire                  // le meme formulaire
201                  $this->verrouille();                  $this->verrouille();
               
202                  // Execution du trigger 'after' specifique au MODE 'insert'                  // Execution du trigger 'after' specifique au MODE 'insert'
203                  // Le premier parametre est vide car en MODE 'insert'                  // Le premier parametre est vide car en MODE 'insert'
204                  // l'enregistrement n'existe pas encore donc il n'a pas                  // l'enregistrement n'existe pas encore donc il n'a pas
# Line 224  class om_dbform extends dbForm { Line 214  class om_dbform extends dbForm {
214          $this->addToLog("ajouter() - end", EXTRA_VERBOSE_MODE);          $this->addToLog("ajouter() - end", EXTRA_VERBOSE_MODE);
215      }      }
216    
   
     /**  
      *  
      * @param array $val  
      * @param object $db Objet de connexion DB  
      */  
     function verifierAjout($val = array(), &$db = NULL) {  
   
         // Verifier [verify]  
         // la cle primaire est obligatoire  
         // [primary key is compulsory]  
         if ($this->valF[$this->clePrimaire] == "") {  
             //  
             $this->correct = false;  
             //  
             $this->addToMessage("<br/>");  
             $this->addToMessage( _("L'\"identifiant\" est obligatoire")."&nbsp;");  
             $this->addToMessage("[&nbsp;"._($this->clePrimaire)."&nbsp;]");  
         }  
         if ($this->typeCle == "A") {  
             $sql = "select count(*) from ".DB_PREFIXE.$this->table." ";      
             $sql .= "where ".$this->clePrimaire."='".$this->valF[$this->clePrimaire]."' ";  
             $nb = $db->getone($sql);  
             $this->addToLog("verifierAjout(): db->getone(\"".$sql."\");", VERBOSE_MODE);  
             if (database::isError($nb)) {  
                 $this->erreur_db($nb->getDebugInfo(), $nb->getMessage(), '');  
             }else{  
                 if ($nb > 0) {  
                     $this->correct = false;  
                     $this->addToMessage($nb." ");  
                     $this->addToMessage( _("cle primaire existante"));  
                     $this->addToMessage(" ".$this->table."<br />");  
                 }  
             }  
         }  
     }  
   
       
217      /**      /**
218       * Cette methode permet d'executer la modification (MODE 'update') de       * Cette methode permet d'executer la modification (MODE 'update') de
219       * l'objet dans la base de donnees.       * l'objet dans la base de donnees.
# Line 271  class om_dbform extends dbForm { Line 223  class om_dbform extends dbForm {
223       * @param boolean $DEBUG Mode debug (@deprecated)       * @param boolean $DEBUG Mode debug (@deprecated)
224       */       */
225      function modifier($val = array(), &$db = NULL, $DEBUG = false) {      function modifier($val = array(), &$db = NULL, $DEBUG = false) {
   
226          // Logger          // Logger
227          $this->addToLog("modifier() - begin", EXTRA_VERBOSE_MODE);          $this->addToLog("modifier() - begin", EXTRA_VERBOSE_MODE);
228          // Recuperation de la valeur de la cle primaire de l'objet          // Recuperation de la valeur de la cle primaire de l'objet
# Line 316  class om_dbform extends dbForm { Line 267  class om_dbform extends dbForm {
267                  // Mise en place du verrou pour ne pas valider plusieurs fois                  // Mise en place du verrou pour ne pas valider plusieurs fois
268                  // le meme formulaire                  // le meme formulaire
269                  $this->verrouille();                  $this->verrouille();
               
270                  // Execution du trigger 'after' specifique au MODE 'update'                  // Execution du trigger 'after' specifique au MODE 'update'
271                  $this->triggermodifierapres($id, $db, $val, $DEBUG);                  $this->triggermodifierapres($id, $db, $val, $DEBUG);
272              }              }
# Line 329  class om_dbform extends dbForm { Line 279  class om_dbform extends dbForm {
279          $this->addToLog("modifier() - end", EXTRA_VERBOSE_MODE);          $this->addToLog("modifier() - end", EXTRA_VERBOSE_MODE);
280      }      }
281    
   
282      /**      /**
283       * Cette methode permet d'executer la suppression (MODE 'delete') de       * Cette methode permet d'executer la suppression (MODE 'delete') de
284       * l'objet dans la base de donnees.       * l'objet dans la base de donnees.
# Line 380  class om_dbform extends dbForm { Line 329  class om_dbform extends dbForm {
329                  // Mise en place du verrou pour ne pas valider plusieurs fois                  // Mise en place du verrou pour ne pas valider plusieurs fois
330                  // le meme formulaire                  // le meme formulaire
331                  $this->verrouille();                  $this->verrouille();
               
332                  // Execution du trigger 'after' specifique au MODE 'delete'                  // Execution du trigger 'after' specifique au MODE 'delete'
333                  $this->triggersupprimerapres($id, $db, $val, $DEBUG);                  $this->triggersupprimerapres($id, $db, $val, $DEBUG);
334              }              }
# Line 399  class om_dbform extends dbForm { Line 347  class om_dbform extends dbForm {
347       *       *
348       * @param objet $db Objet Base de donnees       * @param objet $db Objet Base de donnees
349       */       */
350    
351      function checkUniqueKey() {      function checkUniqueKey() {
352          $unique=true;          $unique=true;
353          //Verification des cles uniques          //Verification des cles uniques
# Line 442  class om_dbform extends dbForm { Line 391  class om_dbform extends dbForm {
391          }          }
392      }      }
393    
   
   
394      /**      /**
395       * Methode permettant de requeter la base afin de definir la validite du champ unique       * Methode permettant de requeter la base afin de definir la validite du champ unique
396       *       *
# Line 451  class om_dbform extends dbForm { Line 398  class om_dbform extends dbForm {
398       * @param string $value valeur à inserer dans la colonne       * @param string $value valeur à inserer dans la colonne
399       */       */
400      function isUnique($champ,$value) {      function isUnique($champ,$value) {
401          //Test sur un groupe de champs                  //Test sur un groupe de champs
402          if(is_array($champ) and is_array($value)) {          if(is_array($champ) and is_array($value)) {
403              $sql = 'SELECT count(*) FROM '.DB_PREFIXE.$this->table." WHERE ".implode(" = ? AND ",$champ)." = ?";              $sql = 'SELECT count(*) FROM '.DB_PREFIXE.$this->table." WHERE ".implode(" = ? AND ",$champ)." = ?";
404          } else {          } else {
405          //Test sur un champ                  //Test sur un champ
406              $sql = 'SELECT count(*) FROM '.DB_PREFIXE.$this->table." WHERE ".$champ." = ?";              $sql = 'SELECT count(*) FROM '.DB_PREFIXE.$this->table." WHERE ".$champ." = ?";
407          }          }
408          if($this->getParameter('maj')) {          if($this->getParameter('maj')) {
# Line 477  class om_dbform extends dbForm { Line 424  class om_dbform extends dbForm {
424          }          }
425      }      }
426    
   
   
427      /**      /**
428       * Methode de verification des contraintes not null,       * Methode de verification des contraintes not null,
429       * affiche une erreur si nul.       * affiche une erreur si nul.
# Line 488  class om_dbform extends dbForm { Line 433  class om_dbform extends dbForm {
433      function checkRequired() {      function checkRequired() {
434          foreach($this->required_field as $field) {          foreach($this->required_field as $field) {
435              //Ne test la cle primaire car n'a pas de valeur a l'ajout              //Ne test la cle primaire car n'a pas de valeur a l'ajout
436    
437              // la cle primaire est automatiquement cree              // la cle primaire est automatiquement cree
438              if ($field == $this->clePrimaire) {              if ($field == $this->clePrimaire) {
439                  continue;                  continue;
# Line 516  class om_dbform extends dbForm { Line 462  class om_dbform extends dbForm {
462              */              */
463              if ($this->getParameter('maj') == 0 and              if ($this->getParameter('maj') == 0 and
464                  (!isset($this->valF[$field]) or $this->valF[$field] == '')) {                  (!isset($this->valF[$field]) or $this->valF[$field] == '')) {
465    
466                  $error = true;                  $error = true;
467                  $this->correct = false;                  $this->correct = false;
468    
# Line 554  class om_dbform extends dbForm { Line 501  class om_dbform extends dbForm {
501              } elseif ($this->getParameter('maj') == 1              } elseif ($this->getParameter('maj') == 1
502                         and isset($this->valF[$field])                         and isset($this->valF[$field])
503                         and $this->valF[$field] == '') {                         and $this->valF[$field] == '') {
504    
505                  $error = true;                  $error = true;
506                  $this->correct = false;                  $this->correct = false;
507              }              }
# Line 640  class om_dbform extends dbForm { Line 588  class om_dbform extends dbForm {
588       * Méthode pour convertir une date Y-m-d en d/m/Y       * Méthode pour convertir une date Y-m-d en d/m/Y
589       */       */
590      function dateDBToForm($date) {      function dateDBToForm($date) {
591          $date = new DateTime($this->valF['date_demande']);          if($date == "") {
592          return $date->format('d/m/Y');              return ""
593            }
594            $dateFormat = new DateTime($date);
595            return $dateFormat->format('d/m/Y');
596      }      }
597            
598        
599        function init_select(&$form = null, &$db = null, $maj, $debug, $field, $sql,
600                             $sql_by_id, $om_validite = false) {
601    
602            if ($maj < 2) {
603    
604                $contenu = array();
605                $res = $db->query($sql);
606    
607                // logger
608                $this->addToLog("setSelect()[gen/obj]: db->query(\"".$sql."\");",
609                                VERBOSE_MODE);
610    
611                // verification d'une eventuelle erreur
612                if (database::isError($res)) {
613                    die($res->getMessage().$sql);
614                } else {
615    
616                    if ($debug == 1) {
617                        echo ' la requete '.$sql.' est executee';
618                        echo "<br />";
619                    }
620    
621                    $contenu[0][0] = '';
622                    $contenu[1][0] = _('choisir')."&nbsp;"._($field);
623    
624                    $k=1;
625                    while($row =& $res->fetchRow()){
626                        $contenu[0][$k] = $row[0];
627                        $contenu[1][$k] = $row[1];
628                        $k++;
629                    }
630    
631                    // gestion des objets a date de validite
632                    if ($om_validite == true) {
633    
634                        // ajout de la valeur manquante a $contenu si necessaire
635                        if ($maj == 1) {
636    
637                            if (!in_array($this->form->val[$field], $contenu[0])) {
638    
639                                //
640                                $this->getSelectOldValue($form, $maj, $db, $contenu,
641                                                         $sql_by_id, $field);
642                            } else {
643    
644                                $empty = true;
645                                foreach ($this->form->val as $f => $value) {
646                                    if (!empty($value)) {
647                                        $empty = false;
648                                    }
649                                }
650    
651                                //
652                                if ($empty == true and
653                                    $_POST[$field] != '') {
654    
655                                    $this->getSelectOldValue($form, $maj, $db,
656                                                             $contenu, $sql_by_id,
657                                                             $field,
658                                                             $_POST[$field]);
659                                }
660                            }
661                        }
662                    }
663    
664                    $form->setSelect($field, $contenu);
665                }
666            }
667    
668            if ($maj == 2 or $maj == 3) {
669    
670               $contenu[0][0] = '';
671               $contenu[1][0] = '';
672    
673               if (isset($this->form->val[$field]) and
674                   !empty($this->form->val[$field]) and $sql_by_id) {
675    
676                    // ajout de l'identifiant recherche a la requete
677                    $sql_by_id = str_replace('<idx>', $this->form->val[$field],
678                                             $sql_by_id);
679    
680                    // execution
681                    $result = $db->query($sql_by_id);
682    
683                    // logger
684                    $this->addToLog("setSelect()[gen/obj]: db->query(".$sql_by_id.");",
685                                    VERBOSE_MODE);
686    
687                    if (database::isError($result)) {
688                       die($result->getMessage().$sql_by_id);
689                    }
690    
691                    $row =& $result->fetchRow();
692                    $contenu[0][0] = $row[0];
693                    $contenu[1][0] = $row[1];
694                    
695                    $k=1;
696                    while($row =& $result->fetchRow()){
697                        $contenu[0][$k] = $row[0];
698                        $contenu[1][$k] = $row[1];
699                        $k++;
700                    }
701                }
702    
703                $form->setSelect($field, $contenu);
704            }
705        }
706  }  }
707    
708  ?>  ?>

Legend:
Removed from v.1073  
changed lines
  Added in v.1293

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26