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&date=%s&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 |
/** |
/** |
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 |
/** |
/** |
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 |
} |
} |