CreateAppointmentCommand.as 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  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.CreateAppointmentEvent;
  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.resources.ResourceManager;
  16. import mx.rpc.events.FaultEvent;
  17. import mx.rpc.events.ResultEvent;
  18. /**
  19. * Commande de création d'un patient
  20. */
  21. public class CreateAppointmentCommand extends SuperCommand
  22. {
  23. public var _dispatcher : PatientFile;
  24. private var _treatmentList : ArrayCollection = new ArrayCollection();
  25. /**
  26. * Excecution de la commande
  27. *
  28. * @param event Evénement de type CairngormEvent
  29. * @return void
  30. */
  31. override public function execute( event : CairngormEvent ) : void
  32. {
  33. super.execute( event );
  34. var delegate : PatientDelegate = new PatientDelegate( this );
  35. var createAppointmentEvent : CreateAppointmentEvent = CreateAppointmentEvent( event );
  36. delegate.createAppointment( createAppointmentEvent.appointment, createAppointmentEvent.patientUid, ApplicationModelLocator.getInstance().token );
  37. ApplicationModelLocator.getInstance().appointmentSelected = createAppointmentEvent.appointment;
  38. _dispatcher = this.getDispatcher(this);
  39. }
  40. /**
  41. * Résultat de la commande
  42. *
  43. * @param result Un objet
  44. * @return void
  45. */
  46. override public function result( result : Object ) : void
  47. {
  48. var resultEvent : ResultEvent = ResultEvent( result );
  49. var returnObjectVo : ReturnObjectVo = resultEvent.result as ReturnObjectVo;
  50. ApplicationModelLocator.getInstance().token = returnObjectVo.token;
  51. ApplicationModelLocator.getInstance().listOfAppointments.source = returnObjectVo.value as Array;
  52. ApplicationModelLocator.getInstance().appointmentNumber = (returnObjectVo.value as Array).length;
  53. ApplicationModelLocator.getInstance().appointmentSelected = ApplicationModelLocator.getInstance().listOfAppointments.getItemAt(ApplicationModelLocator.getInstance().appointmentNumber-1) as AppointmentVo;
  54. for each (var appointmentVo : AppointmentVo in ApplicationModelLocator.getInstance().listOfAppointments)
  55. {
  56. _treatmentList.source = appointmentVo.treatments;
  57. appointmentVo.treatmentCollection.removeAll();
  58. for each (var treatmentVo : TreatmentVo in _treatmentList)
  59. appointmentVo.treatmentCollection.addItem(treatmentVo);
  60. }
  61. _dispatcher.createAppointmentComplete();
  62. super.result( result );
  63. }
  64. /**
  65. * Résultat de la commande
  66. *
  67. * @param result Un objet
  68. * @return void
  69. */
  70. override public function fault( fault : Object ) : void
  71. {
  72. super.fault( fault );
  73. if (( fault as FaultEvent ).fault.faultString == ApplicationModelLocator.getInstance().ERROR_SESSION )
  74. {
  75. ApplicationModelLocator.displaySessionExpired( fault as FaultEvent );
  76. }
  77. else if (( fault as FaultEvent ).fault.faultString == ApplicationModelLocator.getInstance().INCOMPLETE_APPOINTMENT )
  78. {
  79. _dispatcher.recoverLastAppointment(true);
  80. }
  81. else
  82. {
  83. var toastMessage : ImtToaster = new ImtToaster();
  84. toastMessage.titleMessage = ResourceManager.getInstance().getString('labels', 'error.title');
  85. toastMessage.message = ResourceManager.getInstance().getString('labels', 'error.addAppointment') + " (" + ResourceManager.getInstance().getString('errors', ( fault as FaultEvent ).fault.faultString) +")";
  86. toastMessage.level = ImtToaster.ERROR;
  87. ApplicationModelLocator.getInstance().toaster.toast( toastMessage );
  88. }
  89. }
  90. }
  91. }