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

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

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

revision 2602 by softime, Thu Aug 1 14:26:30 2013 UTC revision 2603 by vpihour, Wed Dec 11 11:46:47 2013 UTC
# Line 70  class consultation extends consultation_ Line 70  class consultation extends consultation_
70          }          }
71                    
72          //Si le document est déjà finalisé, le lien de l'édition est celui du stockage          //Si le document est déjà finalisé, le lien de l'édition est celui du stockage
73          $om_final_instruction = $this->getVal("om_final_consultation");          $om_final_consultation = $this->getVal("om_final_consultation");
74          if ( $om_final_instruction== "t" ){          if ( $om_final_consultation== "t" ){
75                                
76              //On affiche le bon lien pour l'édition              //On affiche le bon lien pour l'édition
77              $this->actions_sup["pdfetat"]["lien"] = "../spg/file.php?id=";              $this->actions_sup["pdfetat"]["lien"] = "../spg/file.php?id=";
78              $this->actions_sup["pdfetat"]["id"] =              $this->actions_sup["pdfetat"]["id"] =
79                  "&obj=consultation&champ=om_fichier_consultation";                  "&obj=consultation&champ=om_fichier_consultation";
80             //On cache les liens d'action              //On cache les liens d'action
81              $this->parameters["actions"]["modifier"] = NULL;              $this->parameters["actions"]["modifier"] = NULL;
82              $this->parameters["actions"]["supprimer"] = NULL;              $this->parameters["actions"]["supprimer"] = NULL;
83                $this->actions_sup["finalisation"] = NULL;
84          }          }
85          //Si le document n'est pas finalisé, le lien de l'édition est le lien de          //Si le document n'est pas finalisé, le lien de l'édition est le lien de
86          //génération à la volée          //génération à la volée
87          if ( $om_final_instruction!= "t" ){          if ( $om_final_consultation!= "t" ){
88                                    
89              //On affiche le bon lien pour l'édition              //On affiche le bon lien pour l'édition
90              $this->actions_sup["pdfetat"]["lien"] = "../app/pdf_consultation.php?idx=";              $this->actions_sup["pdfetat"]["lien"] = "../app/pdf_consultation.php?idx=";
91              $this->actions_sup["pdfetat"]["id"] = "&obj=consultation";              $this->actions_sup["pdfetat"]["id"] = "&obj=consultation";
92                $this->actions_sup["definalisation"] = NULL;
93                if( $this->f->isUserInstructeur() ){
94                    $this->parameters["actions"]["modifier"] = NULL;
95                }
96          }          }
97                    
98          $idxformulaire = $this->getParameter("idxformulaire");          $idxformulaire = $this->getParameter("idxformulaire");
# Line 684  class consultation extends consultation_ Line 689  class consultation extends consultation_
689              $form->setSelect("fichier", $params);              $form->setSelect("fichier", $params);
690          }          }
691      }      }
692        
693      /**      /**
694       * Finalisation du document lors de l'ajout d'une consultation       * Finalisation du document lors de l'ajout d'une consultation
695       */       */
# Line 743  class consultation extends consultation_ Line 748  class consultation extends consultation_
748          }          }
749      }      }
750    
751        /**
752         * Finalisation des documents.
753         * @param  string $champ    champ du fichier à finaliser
754         * @param  booleen $status  permet de définir si on finalise ou définalise
755         * @param  string $sousform permet de savoir si se trouve dans un sousformulaire (passé au javascript)
756         */
757        function finaliser($champ = '', $status, $sousform, $retourformulaire) {
758    
759            // Si on finalise le document
760            if ($status == 1) {
761    
762                // Génération du PDF
763                $_GET['output'] = "string";
764                $f = $this->f;
765                include '../app/pdf_consultation.php';
766                
767                // Métadonnées du document
768                $metadata = array(
769                    'filename' => 'consultation_'.$idx.'.pdf',
770                    'mimetype' => 'application/pdf',
771                    'size' => strlen($pdf_output)
772                );
773    
774                // Récupération des métadonnées calculées après validation
775                $spe_metadata = $this->getMetadata("om_fichier_consultation");
776    
777                $metadata = array_merge($metadata, $spe_metadata);
778    
779                // Si le document a déjà été finalisé
780                if ( $this->getVal("om_fichier_consultation") != '' ){
781    
782                    // Met à jour le document mais pas son uid
783                    $uid = $this->f->storage->update(
784                        $this->getVal("om_fichier_consultation"), $pdf_output, $metadata);
785                }
786                // Sinon, ajoute le document et récupère son uid
787                else {
788    
789                    // Stockage du PDF
790                    $uid = $this->f->storage->create($pdf_output, $metadata);
791                }
792    
793            }
794            //
795            else {
796    
797                //Récupération de l'uid du document finalisé
798                $uid = $this->getVal("om_fichier_consultation");
799                
800                //On dé-finalise avant de finaliser
801                if ( $uid == '' || $uid == 'OP_FAILURE' ){
802                    return -1;
803                }
804            }
805    
806            //Mise à jour des données
807            if ($uid != '' || $uid == 'OP_FAILURE') {
808    
809                // Logger
810                $this->addToLog("finaliser() - begin", EXTRA_VERBOSE_MODE);
811    
812                // Recuperation de la valeur de la cle primaire de l'objet
813                if ($this->getVal($this->clePrimaire) != '') {
814                    //
815                    $id = $this->getVal($this->clePrimaire);
816                }
817                else {
818                    //
819                    $id=$this->id;
820                }
821    
822                $actions = array();
823    
824                // Tableau contenant le lien vers le PDF et lien du portlet pour la
825                // mise à jour de l'interface
826                if ($status == 0) {
827    
828                    // Lien pour ouvrir le PDF
829                    $lien = '../app/pdf_consultation.php?idx='.$id;
830    
831                    //
832                    if ($this->f->isAccredited('consultation') ||
833                        $this->f->isAccredited('consultation_modifier')) {
834    
835                        $actions["modifier"] = ($sousform!='')?
836                            '<li><a href="#" onclick="ajaxIt(\'consultation\',
837                            \'../scr/sousform.php?obj=consultation&amp;action=1&amp;idx='.
838                            $this->getVal($this->clePrimaire).
839                            '&amp;premiersf=0&amp;trisf=&amp;retourformulaire='.$retourformulaire.'&amp;idxformulaire='.
840                            $this->getVal("dossier").
841                            '&amp;retour=form\');">
842                            <span class="om-prev-icon om-icon-16 edit-16" title="'.
843                            _('Modifier').'">'.
844                            _('Modifier').
845                            '</span></a></li>':
846                            '<li>
847                            <a href="form.php?obj=consultation&amp;action=1'.'&amp;idx='.
848                            $this->getVal($this->clePrimaire).
849                            '&amp;premier=&amp;advs_id=&amp;recherche=&amp;tricol=&amp;selectioncol=&amp;valide=&amp;retour=form">
850                            <span class="om-prev-icon om-icon-16 edit-16" title="'.
851                            _('Modifier').'">'.
852                            _('Modifier').
853                            '</span></a></li>';
854                    }
855    
856                    //Si l'utilisateur a le droit de supprimer l'objet
857                    if ( $this->f->isAccredited('consultation') ||
858                        $this->f->isAccredited('consultation_supprimer') ){
859                            
860                        $actions["supprimer"] = ($sousform!='')?
861                            '<li><a href="#" onclick="ajaxIt(\'consultation\',
862                            \'../scr/sousform.php?obj=consultation&amp;action=2&amp;idx='.
863                            $this->getVal($this->clePrimaire).
864                            '&amp;premiersf=0&amp;trisf=&amp;retourformulaire='.$retourformulaire.'&amp;idxformulaire='.
865                            $this->getVal("dossier").
866                            '&amp;retour=form\');">
867                            <span class="om-prev-icon om-icon-16 delete-16" title="'.
868                            _('Supprimer').'">'.
869                            _('Supprimer').
870                            '</span></a></li>':
871                            '<li>
872                            <a href="form.php?obj=consultation&amp;action=1'.'&amp;idx='.
873                            $this->getVal($this->clePrimaire).
874                            '&amp;premier=&amp;advs_id=&amp;recherche=&amp;tricol=&amp;selectioncol=&amp;valide=&amp;retour=form">
875                            <span class="om-prev-icon om-icon-16 delete-16" title="'.
876                            _('Supprimer').'">'.
877                            _('Supprimer').
878                            '</span></a></li>';
879                    }
880                }
881                else {
882    
883                    // Lien permettant d'afficher le PDF
884                    $lien = '../spg/file.php?obj=consultation&'.
885                        'champ=om_fichier_consultation&id='.$id;
886                }
887    
888                //
889                $retour = array(
890                    "portlet"=> "<a href=\"#\" onclick=\"finalizeDocument(".
891                        $id.", 'consultation', '".$sousform."', ".(($status==0)?1:0).")\">
892                        <span class=\"om-prev-icon om-icon-16 om-icon-fix "
893                        .(($status==1)?"de":"")."finalise\" title=\"".
894                        (($status==1)?_("Reprendre la redaction du document"):_("Finaliser le document"))."\">".
895                        (($status==1)?_("Reprendre la redaction du document"):_("Finaliser le document"))."</span>
896                        </a>",
897                    "pdf" => $lien,
898                    "actions" => $actions
899                );
900    
901                foreach ($this->champs as $key => $value) {
902                    //
903                    $val[$value] = $this->val[$key];
904                }
905    
906                $this->setvalF($val);
907    
908                // Verification de la validite des donnees
909                $this->verifier($this->val, $this->db, DEBUG);
910                // Verification du verrou
911                $this->testverrou();
912                // Si les verifications precedentes sont correctes, on procede a
913                // la modification, sinon on ne fait rien et on retourne une erreur
914                if ($this->correct) {
915    
916                    // Execution du trigger 'before' specifique au MODE 'update'
917                    $this->triggermodifier( $id, $this->db, $this->val, DEBUG);
918    
919                    //
920                    $valF = '';
921                    $valF["om_final_consultation"] = ($status==1)?TRUE:FALSE;
922                    $valF["om_fichier_consultation"] = $uid;
923                        
924                    // Execution de la requête de modification des donnees de l'attribut
925                    // valF de l'objet dans l'attribut table de l'objet
926                    $res = $this->db->autoExecute(DB_PREFIXE.$this->table, $valF,
927                        DB_AUTOQUERY_UPDATE, $this->getCle($id));
928                     $this->addToLog("finaliser() : db->autoExecute(\"".DB_PREFIXE.$this->table."\", ".print_r($valF, true).", DB_AUTOQUERY_UPDATE, \"".$this->getCle($id)."\")", VERBOSE_MODE);
929    
930                    // Si une erreur survient
931                    if (database::isError($res)) {
932    
933                        // Appel de la methode de recuperation des erreurs
934                        $this->erreur_db($res->getDebugInfo(), $res->getMessage(), '');
935                    } else {
936    
937                        // Log
938                        $this->addToLog(_("Requete executee"), VERBOSE_MODE);
939                        // Log
940                        $message = _("Enregistrement")."&nbsp;".$id."&nbsp;";
941                        $message .= _("de la table")."&nbsp;\"".$this->table."\"&nbsp;";
942                        $message .= "[&nbsp;".$this->db->affectedRows()."&nbsp;";
943                        $message .= _("enregistrement(s) mis a jour")."&nbsp;]";
944                        $this->addToLog($message, VERBOSE_MODE);
945                        // Mise en place du verrou pour ne pas finaliser plusieurs fois
946                        // le meme document
947                        $this->verrouille();
948                        // Execution du trigger 'after' specifique au MODE 'update'
949                        $this->triggermodifierapres($id, $this->db, $this->val, DEBUG);
950    
951                        return $retour;
952                    }
953                //
954                } else {
955    
956                    // Message d'echec (saut d'une ligne supplementaire avant le
957                    // message pour qu'il soit mis en evidence)
958                    $this->addToLog(_("Finalisation non enregistree"));
959                    return -1;
960                }
961            }
962            // Si le document n'a pas été stocké
963            else{
964    
965                return -1;
966            }
967        }
968    
969    
970      /**      /**
971       * Récupération du numéro de dossier d'instruction à ajouter aux métadonnées       * Récupération du numéro de dossier d'instruction à ajouter aux métadonnées
# Line 921  class consultation extends consultation_ Line 1144  class consultation extends consultation_
1144      }      }
1145    
1146  }// fin classe  }// fin classe
1147  ?>  ?>

Legend:
Removed from v.2602  
changed lines
  Added in v.2603

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26