/[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 1540 by fmichon, Thu Mar 21 06:50:50 2013 UTC revision 1912 by fmichon, Mon May 27 14:06:26 2013 UTC
# Line 21  require_once "om_formulaire.class.php"; Line 21  require_once "om_formulaire.class.php";
21   *   *
22   */   */
23  class om_dbform extends dbForm {  class om_dbform extends dbForm {
24        
25      /**      /**
26       *       * Nom de la classe formulaire
27       */       */
28      var $om_formulaire = "om_formulaire";      var $om_formulaire = "om_formulaire";
29    
# Line 35  class om_dbform extends dbForm { Line 35  class om_dbform extends dbForm {
35       * @param boolean $DEBUG Mode debug (@deprecated)       * @param boolean $DEBUG Mode debug (@deprecated)
36       */       */
37      function constructeur($id, &$db, $DEBUG = false) {      function constructeur($id, &$db, $DEBUG = false) {
         if (defined('REST_REQUEST')) { // $this->REST  
             logger::instance()->display_log = false;  
         }  
38          //          //
39          if (isset($GLOBALS["f"])) {          if (isset($GLOBALS["f"])) {
40              $this->f = $GLOBALS["f"];              $this->f = $GLOBALS["f"];
# Line 178  class om_dbform extends dbForm { Line 175  class om_dbform extends dbForm {
175              // l'enregistrement n'existe pas encore donc il n'a pas              // l'enregistrement n'existe pas encore donc il n'a pas
176              // d'identifiant              // d'identifiant
177              $this->triggerajouter("", $db, $val, $DEBUG);              $this->triggerajouter("", $db, $val, $DEBUG);
178              // Execution de la requete d'insertion des donnees de l'attribut              //Traitement des fichiers uploadé
179              // valF de l'objet dans l'attribut table de l'objet              $retTraitementFichier = $this->traitementFichierUpload();
180              $res = $db->autoExecute(DB_PREFIXE.$this->table, $this->valF, DB_AUTOQUERY_INSERT);              if($retTraitementFichier === true) {
181              // Si une erreur survient                  // Execution de la requete d'insertion des donnees de l'attribut
182              if (database::isError($res, true)) {                  // valF de l'objet dans l'attribut table de l'objet
183                  // Appel de la methode de recuperation des erreurs                  $res = $db->autoExecute(DB_PREFIXE.$this->table, $this->valF, DB_AUTOQUERY_INSERT);
184                  $this->erreur_db($res->getDebugInfo(), $res->getMessage(), '');                  // Si une erreur survient
185                    if (database::isError($res, true)) {
186                        // Appel de la methode de recuperation des erreurs
187                        $this->erreur_db($res->getDebugInfo(), $res->getMessage(), '');
188                    } else {
189                        // Log
190                        $this->addToLog(_("Requete executee"), VERBOSE_MODE);
191                        // Log
192                        $message = _("Enregistrement")." ".$this->valF[$this->clePrimaire]." ";
193                        $message .= _("de la table")." \"".$this->table."\" ";
194                        $message .= "[ ".$db->affectedRows()." ";
195                        $message .= _("enregistrement(s) ajoute(s)")." ]";
196                        $this->addToLog($message, VERBOSE_MODE);
197                        // Message de validation
198                        $this->addToMessage(_("Vos modifications ont bien ete enregistrees.")."<br/>");
199                        // Mise en place du verrou pour ne pas valider plusieurs fois
200                        // le meme formulaire
201                        $this->verrouille();
202                        // Execution du trigger 'after' specifique au MODE 'insert'
203                        // Le premier parametre est vide car en MODE 'insert'
204                        // l'enregistrement n'existe pas encore donc il n'a pas
205                        // d'identifiant
206                        $this->triggerajouterapres("", $db, $val, $DEBUG);
207                    }
208              } else {              } else {
209                  // Log                  $this->correct = false;
210                  $this->addToLog(_("Requete executee"), VERBOSE_MODE);                  $this->addToMessage($retTraitementFichier);
211                  // Log                  $this->addToMessage(_("SAISIE NON ENREGISTREE"));
                 $message = _("Enregistrement")."&nbsp;".$this->valF[$this->clePrimaire]."&nbsp;";  
                 $message .= _("de la table")."&nbsp;\"".$this->table."\"&nbsp;";  
                 $message .= "[&nbsp;".$db->affectedRows()."&nbsp;";  
                 $message .= _("enregistrement(s) ajoute(s)")."&nbsp;]";  
                 $this->addToLog($message, VERBOSE_MODE);  
                 // Message de validation  
                 $this->addToMessage(_("Vos modifications ont bien ete enregistrees.")."<br/>");  
                 // Mise en place du verrou pour ne pas valider plusieurs fois  
                 // le meme formulaire  
                 $this->verrouille();  
                 // Execution du trigger 'after' specifique au MODE 'insert'  
                 // Le premier parametre est vide car en MODE 'insert'  
                 // l'enregistrement n'existe pas encore donc il n'a pas  
                 // d'identifiant  
                 $this->triggerajouterapres("", $db, $val, $DEBUG);  
212              }              }
213          } else {          } else {
214              // Message d'echec (saut d'une ligne supplementaire avant le              // Message d'echec (saut d'une ligne supplementaire avant le
# Line 242  class om_dbform extends dbForm { Line 247  class om_dbform extends dbForm {
247          if ($this->correct) {          if ($this->correct) {
248              // Execution du trigger 'before' specifique au MODE 'update'              // Execution du trigger 'before' specifique au MODE 'update'
249              $this->triggermodifier($id, $db, $val, $DEBUG);              $this->triggermodifier($id, $db, $val, $DEBUG);
250              // Execution de la requête de modification des donnees de l'attribut              //Traitement des fichiers uploadé
251              // valF de l'objet dans l'attribut table de l'objet              $retTraitementFichier = $this->traitementFichierUpload();
252              $res = $db->autoExecute(DB_PREFIXE.$this->table, $this->valF, DB_AUTOQUERY_UPDATE, $this->getCle($id));              if($retTraitementFichier === true) {
253              // Si une erreur survient                  // Execution de la requête de modification des donnees de l'attribut
254              if (database::isError($res, true)) {                  // valF de l'objet dans l'attribut table de l'objet
255                  // Appel de la methode de recuperation des erreurs                  $res = $db->autoExecute(DB_PREFIXE.$this->table, $this->valF, DB_AUTOQUERY_UPDATE, $this->getCle($id));
256                  $this->erreur_db($res->getDebugInfo(), $res->getMessage(), '');                  // Si une erreur survient
257              } else {                  if (database::isError($res, true)) {
258                  // Log                      // Appel de la methode de recuperation des erreurs
259                  $this->addToLog(_("Requete executee"), VERBOSE_MODE);                      $this->erreur_db($res->getDebugInfo(), $res->getMessage(), '');
                 // Log  
                 $message = _("Enregistrement")."&nbsp;".$id."&nbsp;";  
                 $message .= _("de la table")."&nbsp;\"".$this->table."\"&nbsp;";  
                 $message .= "[&nbsp;".$db->affectedRows()."&nbsp;";  
                 $message .= _("enregistrement(s) mis a jour")."&nbsp;]";  
                 $this->addToLog($message, VERBOSE_MODE);  
                 // Message de validation  
                 if ($db->affectedRows() == 0) {  
                     $this->addToMessage(_("Attention vous n'avez fait aucune modification.")."<br/>");  
260                  } else {                  } else {
261                      $this->addToMessage(_("Vos modifications ont bien ete enregistrees.")."<br/>");                      // Log
262                        $this->addToLog(_("Requete executee"), VERBOSE_MODE);
263                        // Log
264                        $message = _("Enregistrement")."&nbsp;".$id."&nbsp;";
265                        $message .= _("de la table")."&nbsp;\"".$this->table."\"&nbsp;";
266                        $message .= "[&nbsp;".$db->affectedRows()."&nbsp;";
267                        $message .= _("enregistrement(s) mis a jour")."&nbsp;]";
268                        $this->addToLog($message, VERBOSE_MODE);
269                        // Message de validation
270                        if ($db->affectedRows() == 0) {
271                            $this->addToMessage(_("Attention vous n'avez fait aucune modification.")."<br/>");
272                        } else {
273                            $this->addToMessage(_("Vos modifications ont bien ete enregistrees.")."<br/>");
274                        }
275                        // Mise en place du verrou pour ne pas valider plusieurs fois
276                        // le meme formulaire
277                        $this->verrouille();
278                        // Execution du trigger 'after' specifique au MODE 'update'
279                        $this->triggermodifierapres($id, $db, $val, $DEBUG);
280                  }                  }
281                  // Mise en place du verrou pour ne pas valider plusieurs fois              } else {
282                  // le meme formulaire                  $this->correct = false;
283                  $this->verrouille();                  $this->addToMessage($retTraitementFichier);
284                  // Execution du trigger 'after' specifique au MODE 'update'                  $this->addToMessage(_("SAISIE NON ENREGISTREE"));
                 $this->triggermodifierapres($id, $db, $val, $DEBUG);  
285              }              }
286          } else {          } else {
287              // Message d'echec (saut d'une ligne supplementaire avant le              // Message d'echec (saut d'une ligne supplementaire avant le
# Line 306  class om_dbform extends dbForm { Line 319  class om_dbform extends dbForm {
319          if ($this->correct) {          if ($this->correct) {
320              // Execution du trigger 'before' specifique au MODE 'delete'              // Execution du trigger 'before' specifique au MODE 'delete'
321              $this->triggersupprimer($id, $db, $val, $DEBUG);              $this->triggersupprimer($id, $db, $val, $DEBUG);
322              // Construction de la requete de suppression de l'objet dans              //Traitement des fichiers uploadé
323              // l'attribut table de l'objet              $retTraitementFichier = $this->traitementFichierUpload();
324              $sql = "delete from ".DB_PREFIXE.$this->table." where ".$this->getCle($id);              if($retTraitementFichier === true) {
325              // Execution de la requete de suppression de l'objet                  // Construction de la requete de suppression de l'objet dans
326              $res = $db->query($sql);                  // l'attribut table de l'objet
327              // Logger                  $sql = "delete from ".DB_PREFIXE.$this->table." where ".$this->getCle($id);
328              $this->addToLog("supprimer(): db->query(\"".$sql."\");", VERBOSE_MODE);                  // Execution de la requete de suppression de l'objet
329              // Si une erreur survient                  $res = $db->query($sql);
330              if (database::isError($res, true)) {                  // Logger
331                  // Appel de la methode de recuperation des erreurs                  $this->addToLog("supprimer(): db->query(\"".$sql."\");", VERBOSE_MODE);
332                  $this->erreur_db($res->getDebugInfo(), $res->getMessage(), '');                  // Si une erreur survient
333                    if (database::isError($res, true)) {
334                        // Appel de la methode de recuperation des erreurs
335                        $this->erreur_db($res->getDebugInfo(), $res->getMessage(), '');
336                    } else {
337                        // Log
338                        $message = _("Enregistrement")."&nbsp;".$id."&nbsp;";
339                        $message .= _("de la table")."&nbsp;\"".$this->table."\"&nbsp;";
340                        $message .= "[&nbsp;".$db->affectedRows()."&nbsp;";
341                        $message .= _("enregistrement(s) supprime(s)")."&nbsp;]";
342                        $this->addToLog($message, VERBOSE_MODE);
343                        // Message de validation
344                        $this->addToMessage(_("La suppression a ete correctement effectuee.")."<br/>");
345                        // Mise en place du verrou pour ne pas valider plusieurs fois
346                        // le meme formulaire
347                        $this->verrouille();
348                        // Execution du trigger 'after' specifique au MODE 'delete'
349                        $this->triggersupprimerapres($id, $db, $val, $DEBUG);
350                    }
351              } else {              } else {
352                  // Log                  $this->correct = false;
353                  $message = _("Enregistrement")."&nbsp;".$id."&nbsp;";                  $this->addToMessage($retTraitementFichier);
354                  $message .= _("de la table")."&nbsp;\"".$this->table."\"&nbsp;";                  $this->addToMessage(_("SAISIE NON ENREGISTREE"));
                 $message .= "[&nbsp;".$db->affectedRows()."&nbsp;";  
                 $message .= _("enregistrement(s) supprime(s)")."&nbsp;]";  
                 $this->addToLog($message, VERBOSE_MODE);  
                 // Message de validation  
                 $this->addToMessage(_("La suppression a ete correctement effectuee.")."<br/>");  
                 // Mise en place du verrou pour ne pas valider plusieurs fois  
                 // le meme formulaire  
                 $this->verrouille();  
                 // Execution du trigger 'after' specifique au MODE 'delete'  
                 $this->triggersupprimerapres($id, $db, $val, $DEBUG);  
355              }              }
356          } else {          } else {
357              // Message d'echec (saut d'une ligne supplementaire avant le              // Message d'echec (saut d'une ligne supplementaire avant le
# Line 561  class om_dbform extends dbForm { Line 582  class om_dbform extends dbForm {
582          }          }
583      }      }
584    
   
     /**  
      *  
      */  
     function addToLog($message, $type = DEBUG_MODE) {  
         if (defined('REST_REQUEST')) { // dans le cas d'utilisation du REST  $this->REST  
             logger::instance()->log("REST request class ".get_class($this)." - ".$message, $type);  
         } else {  
             logger::instance()->log("class ".get_class($this)." - ".$message, $type);  
         }  
     }  
   
585      // }}}      // }}}
586            
587      /**      /**
# Line 697  class om_dbform extends dbForm { Line 706  class om_dbform extends dbForm {
706              $form->setSelect($field, $contenu);              $form->setSelect($field, $contenu);
707          }          }
708      }      }
709    
710        // {{{ SURCHARGES DES LIBELLES DES BOUTONS
711    
712                           /**
713         * Cette methode permet d'afficher le bouton de validation du formulaire
714         *
715         * @param integer $maj Mode de mise a jour
716         * @return void
717         */
718        function bouton($maj) {
719    
720            if (!$this->correct) {
721                //
722                if ($maj == 2) {
723                    $bouton = _("Supprimer");
724                } else {
725                    if ($maj == 1) {
726                        $bouton = _("Modifier");
727                    } else {
728                        $bouton = _("Ajouter");
729                    }
730                }
731                ////
732                //$bouton .= "&nbsp;"._("l'enregistrement de la table")."&nbsp;:";
733                //$bouton .= "&nbsp;'"._($this->table)."'";
734                //
735                $params = array(
736                    "value" => $bouton,
737                    "class" => "btn btn-primary",
738                );
739                //
740                $this->f->layout->display_form_button($params);
741            }
742    
743        }
744    
745        /**
746         *
747         */
748        function boutonsousformulaire($datasubmit, $maj, $val=null) {
749    
750            if (!$this->correct) {
751                //
752                switch ($maj) {
753                    case 0:
754                        $bouton = _("Ajouter");
755                        break;
756                    case 1:
757                        $bouton = _("Modifier");
758                        break;
759                    case 2:
760                        $bouton = _("Supprimer");
761                        break;
762                }
763                ////
764                //$bouton .= "&nbsp;"._("l'enregistrement de la table")."&nbsp;:";
765                //$bouton .= "&nbsp;'"._($this->table)."'";
766                //
767                $params = array(
768                    "class" => "",
769                    "value" => $bouton,
770                    "onclick" => "affichersform('".get_class($this)."', '$datasubmit', this.form);return false;",
771                );
772                //
773                $this->f->layout->display_form_button($params);
774            }
775    
776        }
777        // }}}
778    
779        // {{{ GESTION DES METADONNEES
780    
781        /**
782         * Liste des métadonnées communes à l'ensemble des objets de l'application
783         */
784        var $metadata_global = array(
785            "code_produit" => "getCodeProduit",
786            "groupe" => "getGroupe",
787        );
788    
789        /**
790         * Retourne le code produit défini dans le paramétrage
791         * @return string code produit (OpenADS)
792         */
793        protected function getCodeProduit() {
794            return $this->f->getParameter("code_produit");
795        }
796    
797        /**
798         * Retourne le groupe des dossiers d'instruction géré par l'application
799         * @return string groupe (ADS)
800         */
801        protected function getGroupe() {
802            return $this->f->getParameter("groupe_instruction");
803        }
804    
805        // }}}
806    
807  }  }
808    
809  ?>  ?>

Legend:
Removed from v.1540  
changed lines
  Added in v.1912

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26