SearchAppointmentsCommand.as 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. package com.imt.intimamedia.commands.patient
  2. {
  3. import com.adobe.cairngorm.control.CairngormEvent;
  4. import com.imt.flex.cairngormExtended.command.SuperCommand;
  5. import com.imt.intimamedia.business.PatientDelegate;
  6. import com.imt.intimamedia.events.patient.SearchAppointmentsEvent;
  7. import com.imt.intimamedia.model.ApplicationModelLocator;
  8. import com.imt.intimamedia.views.common.ImtToaster;
  9. import com.imt.intimamedia.views.physician.patient.PatientFile;
  10. import com.imt.intimamedia.vo.AppointmentVo;
  11. import com.imt.intimamedia.vo.ReturnObjectVo;
  12. import com.imt.intimamedia.vo.TreatmentVo;
  13. import mx.collections.ArrayCollection;
  14. import mx.controls.Alert;
  15. import mx.core.Application;
  16. import mx.resources.ResourceManager;
  17. import mx.rpc.events.FaultEvent;
  18. import mx.rpc.events.ResultEvent;
  19. /**
  20. * Commande de recherche d'un patient
  21. */
  22. public class SearchAppointmentsCommand extends SuperCommand
  23. {
  24. public var _dispatcher : PatientFile;
  25. private var _treatmentList : ArrayCollection = new ArrayCollection();
  26. private var _criteria : String;
  27. /**
  28. * Excecution de la commande
  29. *
  30. * @param event Evénement de type CairngormEvent
  31. * @return void
  32. */
  33. override public function execute( event : CairngormEvent ) : void
  34. {
  35. super.execute( event );
  36. var delegate : PatientDelegate = new PatientDelegate( this );
  37. var searchAppointmentsEvent : SearchAppointmentsEvent = SearchAppointmentsEvent( event );
  38. delegate.searchAppointments( searchAppointmentsEvent.criteria, ApplicationModelLocator.getInstance().token );
  39. _criteria = searchAppointmentsEvent.criteria;
  40. }
  41. /**
  42. * Résultat de la commande
  43. *
  44. * @param result Un objet
  45. * @return void
  46. */
  47. override public function result( result : Object ) : void
  48. {
  49. var resultEvent : ResultEvent = ResultEvent( result );
  50. var returnObjectVo : ReturnObjectVo = resultEvent.result as ReturnObjectVo;
  51. ApplicationModelLocator.getInstance().token = returnObjectVo.token;
  52. ApplicationModelLocator.getInstance().listOfAppointments.source = returnObjectVo.value as Array;
  53. ApplicationModelLocator.getInstance().appointmentNumber = (returnObjectVo.value as Array).length;
  54. ApplicationModelLocator.getInstance().appointmentSelected = ApplicationModelLocator.getInstance().listOfAppointments.getItemAt(ApplicationModelLocator.getInstance().appointmentNumber-1) as AppointmentVo;
  55. for each (var appointmentVo : AppointmentVo in ApplicationModelLocator.getInstance().listOfAppointments)
  56. {
  57. _treatmentList.source = appointmentVo.treatments;
  58. appointmentVo.treatmentCollection.removeAll();
  59. for each (var treatmentVo : TreatmentVo in _treatmentList)
  60. appointmentVo.treatmentCollection.addItem(treatmentVo);
  61. }
  62. if (_criteria.length > 0)
  63. {
  64. _dispatcher = this.getDispatcher(this);
  65. _dispatcher.updatePatientFile();
  66. }
  67. //ApplicationModelLocator.getInstance().application.menuPhysician.patient.patientFile.dg.enabled = true;
  68. super.result( result );
  69. }
  70. /**
  71. * Résultat de la commande
  72. *
  73. * @param result Un objet
  74. * @return void
  75. */
  76. override public function fault( fault : Object ) : void
  77. {
  78. super.fault( fault );
  79. if (( fault as FaultEvent ).fault.faultString == ApplicationModelLocator.getInstance().ERROR_SESSION )
  80. {
  81. ApplicationModelLocator.displaySessionExpired( fault as FaultEvent );
  82. }
  83. else
  84. {
  85. var toastMessage : ImtToaster = new ImtToaster();
  86. toastMessage.titleMessage = ResourceManager.getInstance().getString('labels', 'error.title');
  87. toastMessage.message = ResourceManager.getInstance().getString('labels', 'error.searchAppointments') + " (" + ResourceManager.getInstance().getString('errors', ( fault as FaultEvent ).fault.faultString) +")";
  88. toastMessage.level = ImtToaster.ERROR;
  89. ApplicationModelLocator.getInstance().toaster.toast( toastMessage );
  90. }
  91. }
  92. }
  93. }