Пример #1
0
  public void updateVisualRepresentation() {
    //		Collection<ModifierButton> modifierButtons = buttonMap.values();
    //		for (ModifierButton modifierButton : modifierButtons) {
    //			modifierButton.updateView(null);
    //		}

    List<TicketItemModifierGroup> ticketItemModifierGroups =
        parentTicketItem.getTicketItemModifierGroups();
    if (ticketItemModifierGroups != null) {
      for (TicketItemModifierGroup ticketItemModifierGroup : ticketItemModifierGroups) {
        List<TicketItemModifier> ticketItemModifiers =
            ticketItemModifierGroup.getTicketItemModifiers();
        if (ticketItemModifiers != null) {
          int total = 0;
          int max = ticketItemModifierGroup.getMaxQuantity();
          for (TicketItemModifier ticketItemModifier : ticketItemModifiers) {
            String key = ticketItemModifier.getItemId() + "_" + ticketItemModifier.getGroupId();
            ModifierButton button = buttonMap.get(key);
            if (ticketItemModifier.getModifierType() != TicketItemModifier.NO_MODIFIER) {
              total += ticketItemModifier.getItemCount();
              if (total > max) {
                ticketItemModifier.setModifierType(TicketItemModifier.EXTRA_MODIFIER);
              } else {
                ticketItemModifier.setModifierType(TicketItemModifier.NORMAL_MODIFIER);
              }
            }
            button.updateView(ticketItemModifier);
          }
        }
      }
    }
  }
Пример #2
0
  public Ticket loadFullTicket(int id) {
    Session session = createNewSession();

    Ticket ticket = (Ticket) session.get(getReferenceClass(), id);

    if (ticket == null) return null;

    Hibernate.initialize(ticket.getTicketItems());
    Hibernate.initialize(ticket.getCouponAndDiscounts());
    Hibernate.initialize(ticket.getTransactions());

    List<TicketItem> ticketItems = ticket.getTicketItems();
    if (ticketItems != null) {
      for (TicketItem ticketItem : ticketItems) {
        List<TicketItemModifierGroup> ticketItemModifierGroups =
            ticketItem.getTicketItemModifierGroups();
        Hibernate.initialize(ticketItemModifierGroups);
        if (ticketItemModifierGroups != null) {
          for (TicketItemModifierGroup ticketItemModifierGroup : ticketItemModifierGroups) {
            Hibernate.initialize(ticketItemModifierGroup.getTicketItemModifiers());
          }
        }
      }
    }

    session.close();

    return ticket;
  }
Пример #3
0
  @Override
  public void doGoBack() {
    List<MenuItemModifierGroup> menuItemModifierGroups = parentMenuItem.getMenuItemModiferGroups();
    List<TicketItemModifierGroup> ticketItemModifierGroups =
        parentTicketItem.getTicketItemModifierGroups();

    boolean requiredModifierAdded = true;
    if (menuItemModifierGroups != null) {
      outer:
      for (MenuItemModifierGroup menuItemModifierGroup : menuItemModifierGroups) {
        int minQuantity = menuItemModifierGroup.getMinQuantity();
        if (minQuantity == 0) continue;

        if (ticketItemModifierGroups == null) {
          requiredModifierAdded = false;
          break outer;
        }

        for (TicketItemModifierGroup ticketItemModifierGroup : ticketItemModifierGroups) {
          if (ticketItemModifierGroup.countItems(false) < minQuantity) {
            requiredModifierAdded = false;
            break outer;
          }
        }
      }
    }

    if (!requiredModifierAdded) {
      int option =
          JOptionPane.showConfirmDialog(
              this,
              "Some required modifiers are not added, do you really want to go back?",
              "Confirm",
              JOptionPane.YES_NO_OPTION);
      if (option != JOptionPane.YES_OPTION) {
        return;
      }
    }

    fireModifierSelectionFinished();
  }
Пример #4
0
    public void actionPerformed(ActionEvent e) {
      TicketItemModifierGroup ticketItemModifierGroup =
          parentTicketItem.findTicketItemModifierGroup(menuModifier, true);
      int modifierCount = ticketItemModifierGroup.countItems(true);
      int maxModifier = ticketItemModifierGroup.getMaxQuantity();

      TicketItemModifier ticketItemModifier =
          ticketItemModifierGroup.findTicketItemModifier(menuModifier);
      TicketView ticketView = OrderView.getInstance().getTicketView();

      if (ticketItemModifier == null) {
        TicketItemModifier m =
            ticketItemModifierGroup.addTicketItemModifier(
                menuModifier,
                modifierCount >= maxModifier
                    ? TicketItemModifier.EXTRA_MODIFIER
                    : TicketItemModifier.NORMAL_MODIFIER);
        updateView(m);
        ticketView.updateAllView();
        ticketView.selectRow(m.getTableRowNum());
        return;
      }

      int modifierType = TicketItemModifier.MODIFIER_NOT_INITIALIZED;
      if (ticketItemModifier.getModifierType() != null) {
        modifierType = ticketItemModifier.getModifierType().intValue();
      }
      switch (modifierType) {
        case TicketItemModifier.MODIFIER_NOT_INITIALIZED:
          ticketItemModifier.setModifierType(TicketItemModifier.NORMAL_MODIFIER);
          updateVisualRepresentation();
          ticketView.updateAllView();
          ticketView.selectRow(ticketItemModifier.getTableRowNum());
          break;

        case TicketItemModifier.NORMAL_MODIFIER:
        case TicketItemModifier.EXTRA_MODIFIER:
          ticketItemModifier.setModifierType(TicketItemModifier.NO_MODIFIER);
          updateVisualRepresentation();
          ticketView.updateAllView();
          ticketView.selectRow(ticketItemModifier.getTableRowNum());
          break;

        case TicketItemModifier.NO_MODIFIER:
          ticketItemModifier.setModifierType(TicketItemModifier.MODIFIER_NOT_INITIALIZED);
          ticketItemModifierGroup.removeTicketItemModifier(ticketItemModifier);
          updateView(ticketItemModifier);
          updateVisualRepresentation();
          ticketView.updateAllView();
          ticketView.selectRow(ticketItemModifier.getTableRowNum() - 1);
          break;
      }
    }