/[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 1914 by fmichon, Mon May 27 14:41:10 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 331  class om_dbform extends dbForm { Line 344  class om_dbform extends dbForm {
344                  $this->verrouille();                  $this->verrouille();
345                  // Execution du trigger 'after' specifique au MODE 'delete'                  // Execution du trigger 'after' specifique au MODE 'delete'
346                  $this->triggersupprimerapres($id, $db, $val, $DEBUG);                  $this->triggersupprimerapres($id, $db, $val, $DEBUG);
347                    //Traitement des fichiers uploadé
348                    $retTraitementFichier = $this->traitementFichierUpload();
349                    //
350                    if($retTraitementFichier !== true) {
351                        $this->correct = false;
352                        $this->addToMessage($retTraitementFichier);
353                        $this->addToMessage(_("SUPPRESSION NON EFFECTUEE"));
354                        die();
355                    }  
356              }              }
357          } else {          } else {
358              // 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 583  class om_dbform extends dbForm {
583          }          }
584      }      }
585    
   
     /**  
      *  
      */  
     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);  
         }  
     }  
   
586      // }}}      // }}}
587            
588      /**      /**
      * Cette methode vide les valeurs des erreurs du tableau errors.  
      */  
     function clearErrors() {  
         foreach (array_keys($this->errors) as $key) {  
             $this->errors[$key] = '';  
         }  
     }  
   
     /**  
589       * 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
590       */       */
591      function dateDBToForm($date) {      function dateDBToForm($date) {
# Line 697  class om_dbform extends dbForm { Line 698  class om_dbform extends dbForm {
698              $form->setSelect($field, $contenu);              $form->setSelect($field, $contenu);
699          }          }
700      }      }
701    
702        // {{{ SURCHARGES DES LIBELLES DES BOUTONS
703    
704                           /**
705         * Cette methode permet d'afficher le bouton de validation du formulaire
706         *
707         * @param integer $maj Mode de mise a jour
708         * @return void
709         */
710        function bouton($maj) {
711    
712            if (!$this->correct) {
713                //
714                if ($maj == 2) {
715                    $bouton = _("Supprimer");
716                } else {
717                    if ($maj == 1) {
718                        $bouton = _("Modifier");
719                    } else {
720                        $bouton = _("Ajouter");
721                    }
722                }
723                ////
724                //$bouton .= "&nbsp;"._("l'enregistrement de la table")."&nbsp;:";
725                //$bouton .= "&nbsp;'"._($this->table)."'";
726                //
727                $params = array(
728                    "value" => $bouton,
729                    "class" => "btn btn-primary",
730                );
731                //
732                $this->f->layout->display_form_button($params);
733            }
734    
735        }
736    
737        /**
738         *
739         */
740        function boutonsousformulaire($datasubmit, $maj, $val=null) {
741    
742            if (!$this->correct) {
743                //
744                switch ($maj) {
745                    case 0:
746                        $bouton = _("Ajouter");
747                        break;
748                    case 1:
749                        $bouton = _("Modifier");
750                        break;
751                    case 2:
752                        $bouton = _("Supprimer");
753                        break;
754                }
755                ////
756                //$bouton .= "&nbsp;"._("l'enregistrement de la table")."&nbsp;:";
757                //$bouton .= "&nbsp;'"._($this->table)."'";
758                //
759                $params = array(
760                    "class" => "",
761                    "value" => $bouton,
762                    "onclick" => "affichersform('".get_class($this)."', '$datasubmit', this.form);return false;",
763                );
764                //
765                $this->f->layout->display_form_button($params);
766            }
767    
768        }
769        // }}}
770    
771        // {{{ GESTION DES METADONNEES
772    
773        /**
774         * Liste des métadonnées communes à l'ensemble des objets de l'application
775         */
776        var $metadata_global = array(
777            "code_produit" => "getCodeProduit",
778            "groupe" => "getGroupe",
779        );
780    
781        /**
782         * Retourne le code produit défini dans le paramétrage
783         * @return string code produit (OpenADS)
784         */
785        protected function getCodeProduit() {
786            return $this->f->getParameter("code_produit");
787        }
788    
789        /**
790         * Retourne le groupe des dossiers d'instruction géré par l'application
791         * @return string groupe (ADS)
792         */
793        protected function getGroupe() {
794            return $this->f->getParameter("groupe_instruction");
795        }
796    
797        // }}}
798    
799  }  }
800    
801  ?>  ?>

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26