Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // m - матрица принятия решений(выбора действий) по обработке заказов в магазине
- // OrderStatus - enum состояния заказа
- // public enum OrderStatus {
- // NULL(0), // kludge
- // NEW(1),
- // ASSIGNED(2),
- // TRANSIT(3),
- // CANCELLED(4),
- // MODERATION(5),
- // COMPLETED(6),
- // CLOSED(7);
- int NUL = OrderStatus.NULL.getId();
- int NEW = OrderStatus.NEW.getId();
- int ASS = OrderStatus.ASSIGNED.getId(); // заказ назначен курьеру
- int TRA = OrderStatus.TRANSIT.getId();
- int CAN = OrderStatus.CANCELLED.getId();
- int MOD = OrderStatus.MODERATION.getId();
- int COM = OrderStatus.COMPLETED.getId();
- int CLO = OrderStatus.CLOSED.getId();
- m[NUL][NEW] = createAct;
- m[NEW][NEW] = editAct;
- m[NEW][ASS] = assignAct;
- m[ASS][TRA] = deliverAct;
- m[NEW][CAN] = cancelAct;
- m[ASS][CAN] = cancelAct;
- m[TRA][CAN] = cancelBackAct;
- m[TRA][COM] = completeAct;
- m[CAN][CLO] = closedAct;
- m[COM][CLO] = closedAct;
- // createAct, editAct и прочее - хендлеры, что делать при таком-то изменении состояния
- // если в матрице не назначен переход (в графе переходов нет ребра), то такой переход запрещен, пользователю
- // сообщается что данная операция не может быть выполнена.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement