/[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 4236 by jymadier, Tue May 10 09:57:34 2016 UTC revision 4237 by fmichon, Fri May 20 09:41:07 2016 UTC
# Line 181  class consultation extends consultation_ Line 181  class consultation extends consultation_
181                            
182          );          );
183    
184            $this->class_actions[110] = array(
185                "identifier" => "suivi_mise_a_jour_des_dates",
186                "view" => "view_suivi_mise_a_jour_des_dates",
187                "permission_suffix" => "suivi_mise_a_jour_des_dates",
188                "condition" => array(),
189            );
190    
191            $this->class_actions[120] = array(
192                "identifier" => "suivi_retours_de_consultation",
193                "view" => "view_suivi_retours_de_consultation",
194                "permission_suffix" => "suivi_retours_de_consultation",
195                "condition" => array(),
196            );
197        }
198    
199        /**
200         * Permet de modifier le fil d'Ariane depuis l'objet pour un formulaire
201         * @param string    $ent    Fil d'Ariane récupéréré
202         * @return                  Fil d'Ariane
203         */
204        function getFormTitle($ent) {
205            //
206            if ($this->getParameter('maj') == 120) {
207                //
208                return _("suivi")." -> "._("demandes d'avis")." -> "._("retours de consultation");
209            }
210            //
211            if ($this->getParameter('maj') == 110) {
212                //
213                return _("suivi")." -> "._("demandes d'avis")." -> "._("mise a jour des dates");
214            }
215            //
216            if ($this->getParameter('maj') == 100) {
217                //
218                return _("suivi")." -> "._("demandes d'avis")." -> "._("retours de consultation")." -> ".$this->getVal($this->clePrimaire);
219            }
220            //
221            return $ent;
222        }
223    
224    
225        /**
226         * Ce script permet de gérer l'interface de saisie rapide des retours de
227         * consultation par la cellule suivi l'aide d'un code barre.
228         */
229        function view_suivi_retours_de_consultation() {
230            //
231            $this->checkAccessibility();
232            /**
233             * Validation du formulaire
234             */
235            // Si le formulaire a été validé
236            if ($this->f->get_submitted_post_value('code_barres') !== null) {
237                // Si la valeur transmise est correcte
238                if ($this->f->get_submitted_post_value('code_barres') != ""
239                    && is_numeric($this->f->get_submitted_post_value('code_barres'))) {
240                    // Vérification de l'existence de la consultation
241                    $sql = "SELECT consultation FROM ".DB_PREFIXE."consultation ";
242                    $sql .= " WHERE code_barres='".$this->f->db->escapesimple($this->f->get_submitted_post_value('code_barres'))."'";
243                    $res = $this->f->db->query($sql);
244                    // Logger
245                    $this->f->addToLog(
246                        __METHOD__."(): db->query(\"".$sql."\")",
247                        VERBOSE_MODE
248                    );
249                    // Gestion des erreurs de base de données
250                    $this->f->isDatabaseError($res);
251                    // En fonction du nombre de consultations correspondantes
252                    // on affiche un message d"erreur ou on redirige vers le formulaire de
253                    // saisie du retour
254                    if ($res->numrows()==0) {
255                        // Si
256                        $message_class = "error";
257                        $message = _("Ce code barres de consultation n'existe pas.");
258                    } elseif ($res->numrows() > 1) {
259                        // Si
260                        $message_class = "error";
261                        $message = _("Plusieurs consultations avec ce code barres.");
262                    } else {
263                        $row =& $res->fetchRow(DB_FETCHMODE_ASSOC);
264                        header("Location: ../scr/form.php?obj=consultation&action=100&retour=suivi_retours_de_consultation&idx=".$row['consultation']);
265                    }
266                } elseif ($this->f->get_submitted_post_value('code_barres')!==null && $this->f->get_submitted_post_value('code_barres') == "") {
267                    // Si aucune valeur n'a été saisie dans le champs consultation
268                    $message_class = "error";
269                    $message = _("Veuiller saisir un code barres de consultation.");
270                } else {
271                    // Si
272                    $message_class = "error";
273                    $message = _("Cette consultation n'existe pas.");
274                }
275            }
276    
277            /**
278             * Affichage des messages et du formulaire
279             */
280            // Affichage du message de validation ou d'erreur
281            if (isset($message) && isset($message_class) && $message != "") {
282                $this->f->displayMessage($message_class, $message);
283            }
284            //
285            $datasubmit = $this->getDataSubmit();
286            // Inclusion de la classe de gestion des formulaires
287            require_once "../obj/om_formulaire.class.php";
288            // Ouverture du formulaire
289            echo "\t<form";
290            echo " method=\"post\"";
291            echo " id=\"suivi_retours_de_consultation_form\"";
292            echo " action=\"".$datasubmit."\"";
293            echo ">\n";
294            // Paramétrage des champs du formulaire
295            $champs = array("code_barres");
296            // Création d'un nouvel objet de type formulaire
297            $form = new formulaire(null, 0, 0, $champs);
298            // Paramétrage des champs du formulaire
299            $form->setLib("code_barres", _("No de code barres de consultation"));
300            $form->setType("code_barres", "text");
301            $form->setTaille("code_barres", 25);
302            $form->setMax("code_barres", 25);
303            // Affichage du formulaire
304            $form->entete();
305            $form->afficher($champs, 0, false, false);
306            $form->enpied();
307            // Affichage du bouton
308            echo "\t<div class=\"formControls\">\n";
309            $this->f->layout->display_form_button(array("value" => _("Valider")));
310            echo "\t</div>\n";
311            // Fermeture du formulaire
312            echo "\t</form>\n";
313        }
314    
315        /**
316         * Ce script permet de mettre à jour les dates de suivi du traitement
317         * des consultations.
318         */
319        function view_suivi_mise_a_jour_des_dates() {
320            //
321            $this->checkAccessibility();
322    
323            // Récupération des valeur passées en POST ou GET
324            $date = "";
325            if($this->f->get_submitted_post_value('date') !== null) {
326                $date = $this->f->get_submitted_post_value('date');
327            } elseif($this->f->get_submitted_get_value('date') !== null) {
328                $date = $this->f->get_submitted_get_value('date');
329            }
330            $code_barres = "";
331            if($this->f->get_submitted_post_value('code_barres') !== null) {
332                $code_barres = $this->f->get_submitted_post_value('code_barres');
333            } elseif($this->f->get_submitted_get_value('code_barres')!==null) {
334                $code_barres = $this->f->get_submitted_get_value('code_barres');
335            }
336    
337            // Booléen permettant de définir si un enregistrement à eu lieu
338            $correct = false;
339            // Booléen permettant de définir si les dates peuvent êtres enregistrées
340            $date_error = false;
341    
342            // Si le formulaire a été validé
343            if ($this->f->get_submitted_post_value('validation') !== null) {
344                //Tous les champs doivent obligatoirement être remplis
345                if ( !empty($date) && !empty($code_barres) ){
346                    
347                    //Vérification de l'existence de la consultation
348                    $sql = "SELECT consultation, type_consultation
349                        FROM ".DB_PREFIXE."consultation
350                        LEFT JOIN ".DB_PREFIXE."service
351                        ON service.service = consultation.service
352                        WHERE code_barres = '".$this->f->db->escapesimple($code_barres)."'";
353                    $res = $this->f->db->query($sql);
354                    $this->f->addToLog("app/demandes_avis_mise_a_jour_des_dates.php : db->query(\"".$sql."\")", VERBOSE_MODE);
355                    $this->f->isDatabaseError($res);
356                    
357                    //Si le code barres est correct
358                    if($res->numrows() == 1) {
359                        
360                        //Un retour de demande d'avis ne peut être saisie que si le type de
361                        //consultation est "avec_avis_attendu"
362                        $row =& $res->fetchRow(DB_FETCHMODE_ASSOC);
363                        if ( strcasecmp($row['type_consultation'], "avec_avis_attendu") === 0 ){
364                            
365                            //On met à jour la date après l'écran de vérification
366                            if($this->f->get_submitted_post_value("is_valid") != null and $this->f->get_submitted_post_value("is_valid") == "true") {
367                                require_once '../obj/consultation.class.php';
368                                $consultation = new consultation($row['consultation'], $this->f->db, DEBUG);
369                                $consultation->setParameter("maj", 1);
370                                $valF = array();
371                                foreach($consultation->champs as $id => $champ) {
372                                    $valF[$champ] = $consultation->val[$id];
373                                }
374                                
375                                $valF['date_reception']=$date;
376    
377                                $consultation->modifier($valF, $this->f->db, DEBUG);
378                                // Vérification de la finalisation du document
379                                // correspondant au code barres
380                                if($consultation->valF["om_final_consultation"] === true) {
381                                    $message_class = "valid";
382                                    $message = _("Saisie enregistree");
383                                    $code_barres = "";
384                                } else {
385                                    //
386                                    $message_class = "error";
387                                    $message = sprintf(_("Le document correspondant au
388                                        code barres %s n'est pas finalise,
389                                        la date ne sera pas mise a jour."),
390                                        $code_barres);
391                                }
392                                
393                            }
394                            //Sinon on récupère les infos du dossier pour les afficher
395                            else {
396                                // Récupération des infos du dossier
397                                $sqlInfo = "SELECT dossier_libelle, libelle,
398                                    date_reception,
399                                    TO_CHAR(date_envoi ,'DD/MM/YYYY') as date_envoi
400                                    FROM ".DB_PREFIXE."consultation
401                                    LEFT JOIN ".DB_PREFIXE."dossier
402                                    ON dossier.dossier = consultation.dossier
403                                    LEFT JOIN ".DB_PREFIXE."service
404                                    ON service.service = consultation.service
405                                    WHERE code_barres='".$code_barres."'";
406                                $resInfo = $this->f->db->query($sqlInfo);
407                                $this->f->isDatabaseError($resInfo);
408                                $infos = $resInfo->fetchRow(DB_FETCHMODE_ASSOC);
409                            }
410                        }
411                        //C'est un autre type de consultation
412                        else{
413                            $message_class = "error";
414                            $message = _("Cette consultation n'a pas d'avis attendu.");
415                        }
416                    }
417                    else {
418                        $message_class = "error";
419                        $message = _("Le numero saisi ne correspond a aucun code barres de consultation.");
420                    }
421                } else {
422                    $message_class = "error";
423                    $message = _("Tous les champs doivent etre remplis.");
424                }
425            }
426    
427            /**
428             * Affichage des messages et du formulaire
429             */
430            // Affichage du message de validation ou d'erreur
431            if (isset($message) && isset($message_class) && $message != "") {
432                $this->f->displayMessage($message_class, $message);
433            }
434            //
435            $datasubmit = $this->getDataSubmit();
436            // Inclusion de la classe de gestion des formulaires
437            require_once "../obj/om_formulaire.class.php";
438            // Ouverture du formulaire
439            printf("\t<form");
440            printf(" method=\"post\"");
441            printf(" id=\"demandes_avis_mise_a_jour_des_dates_form\"");
442            printf(" action=\"".$datasubmit."\"");
443            printf(">\n");
444            // Paramétrage des champs du formulaire
445            $champs = array("date", "code_barres");
446            if (isset($infos)) {
447                array_push(
448                    $champs,
449                    "dossier_libelle",
450                    "service",
451                    "date_envoi",
452                    "date_reception",
453                    "is_valid"
454                );
455            }
456            // Création d'un nouvel objet de type formulaire
457            $form = new formulaire(null, 0, 0, $champs);
458            // Paramétrage des champs du formulaire
459            // Parametrage du champ date
460            $form->setLib("date", _("Date")."* :");
461            if (isset($infos)) {
462                $form->setType("date", "hiddenstaticdate");
463            } else {
464                $form->setType("date", "date");
465            }
466            $form->setVal("date", $date);
467            $form->setTaille("date", 10);
468            $form->setMax("date", 10);
469    
470            // Parametrage du champ code_barres
471            $form->setLib("code_barres", _("Code barres de consultation")."* :");
472            if (isset($infos)) {
473                $form->setType("code_barres", "hiddenstatic");
474            } else {
475                $form->setType("code_barres", "text");
476            }
477            $form->setVal("code_barres", $code_barres);
478            $form->setTaille("code_barres", 20);
479            $form->setMax("code_barres", 20);
480    
481            // Ajout des infos du dossier correspondantes à la consultation séléctionnée
482            if (isset($infos)) {
483    
484                // Tous les champs sont défini par defaut à static
485                foreach ($infos as $key => $value) {
486                    $form->setType($key, "static");
487                    $form->setVal($key, $value);
488                }
489    
490                // Les champs dont on vient de définir la valeur sont en gras
491                $form->setBloc("date_reception", 'DF', "", 'bold');
492    
493                // Parametrage du champ dossier
494                $form->setLib("dossier_libelle", _("dossier_libelle")." :");
495                $form->setType("dossier_libelle", "static");
496                $form->setVal("dossier_libelle", $infos['dossier_libelle']);
497    
498                // Parametrage du champ service
499                $form->setLib("service", _("service")." :");
500                $form->setType("service", "static");
501                $form->setVal("service", $infos['libelle']);
502    
503                // Parametrage des libellés d'envoi avec RAR
504                $form->setLib("date_envoi", _("Envoi demande d'avis")." :");
505                $form->setLib("date_reception", _("Retour demande d'avis")." :");
506                $form->setVal("date_reception", $date);
507    
508                // Ajout d'un champ hidden permettant de savoir que le formulaire précédant est celui de vérification
509                $form->setLib("is_valid", _("Valide")." :");
510                $form->setType("is_valid", "hidden");
511                $form->setVal("is_valid", 'true');
512    
513                $form->setFieldset('dossier_libelle', 'D', _('Synthese'));
514                $form->setFieldset('is_valid', 'F');
515            }
516    
517    
518            // Création du fieldset regroupant les champs permettant la mise à jour des date
519            $form->setFieldset('date', 'D', _('Mise a jour'));
520            $form->setFieldset('code_barres', 'F');
521            // Affichage du formulaire
522            $form->entete();
523            $form->afficher($champs, 0, false, false);
524            $form->enpied();
525            // Affichage du bouton
526            printf("\t<div class=\"formControls\">\n");
527            //
528            if (!$date_error) {
529                $this->f->layout->display_form_button(
530                    array("value" => _("Valider"), "name" => "validation")
531                );
532            }
533            // Si pas sur l'écran de validation
534            if (isset($infos)) {
535                printf(
536                    '<a class="retour" href="%s&amp;date=%s&amp;code_barres=%s">Retour</a>',
537                    $datasubmit,
538                    $date,
539                    $code_barres
540                );
541            }
542            printf("\t</div>\n");
543            // Fermeture du formulaire
544            printf("\t</form>\n");
545    
546      }      }
547    
548      /**      /**
# Line 211  class consultation extends consultation_ Line 573  class consultation extends consultation_
573              return true;              return true;
574          }          }
575                    
576          return $this->f->isAccredited("suivi_retours_de_consultation");          return $this->f->isAccredited("consultation_suivi_retours_de_consultation");
577      }      }
578    
579      /**      /**
# Line 1525  class consultation extends consultation_ Line 1887  class consultation extends consultation_
1887          if($this->getParameter("retour")=="form" AND !($this->getParameter("validation")>0 AND $this->getParameter("maj")==2 AND $this->correct)) {          if($this->getParameter("retour")=="form" AND !($this->getParameter("validation")>0 AND $this->getParameter("maj")==2 AND $this->correct)) {
1888              echo "form.php?".$params;              echo "form.php?".$params;
1889          } elseif($this->getParameter("retour")=="suivi_retours_de_consultation") {          } elseif($this->getParameter("retour")=="suivi_retours_de_consultation") {
1890              echo "../app/suivi_retours_de_consultation.php";              echo "../scr/form.php?obj=consultation&idx=0&action=120";
1891          } else {          } else {
1892              echo "tab.php?".$params;              echo "tab.php?".$params;
1893          }          }

Legend:
Removed from v.4236  
changed lines
  Added in v.4237

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26