dreamworker

Untitled

Oct 28th, 2020 (edited)
788
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // m - матрица принятия решений(выбора действий) по обработке заказов в магазине
  2.  
  3. // OrderStatus - enum состояния заказа
  4.  
  5. // public enum OrderStatus {
  6.  
  7. //    NULL(0), // kludge
  8. //    NEW(1),
  9. //    ASSIGNED(2),
  10. //    TRANSIT(3),
  11. //    CANCELLED(4),
  12. //    MODERATION(5),
  13. //    COMPLETED(6),
  14. //    CLOSED(7);
  15.  
  16.         int NUL = OrderStatus.NULL.getId();
  17.         int NEW = OrderStatus.NEW.getId();
  18.         int ASS = OrderStatus.ASSIGNED.getId();    // заказ назначен курьеру
  19.         int TRA = OrderStatus.TRANSIT.getId();
  20.         int CAN = OrderStatus.CANCELLED.getId();
  21.         int MOD = OrderStatus.MODERATION.getId();
  22.         int COM = OrderStatus.COMPLETED.getId();
  23.         int CLO = OrderStatus.CLOSED.getId();
  24.  
  25.  
  26.         m[NUL][NEW] = createAct;
  27.         m[NEW][NEW] = editAct;
  28.         m[NEW][ASS] = assignAct;
  29.         m[ASS][TRA] = deliverAct;
  30.         m[NEW][CAN] = cancelAct;
  31.         m[ASS][CAN] = cancelAct;
  32.         m[TRA][CAN] = cancelBackAct;
  33.         m[TRA][COM] = completeAct;
  34.         m[CAN][CLO] = closedAct;
  35.         m[COM][CLO] = closedAct;
  36.  
  37.  
  38.  
  39. // createAct, editAct и прочее - хендлеры, что делать при таком-то изменении состояния
  40.  
  41. // если в матрице не назначен переход (в графе переходов нет ребра), то такой переход запрещен, пользователю
  42. // сообщается что данная операция не может быть выполнена.
RAW Paste Data