Example #1
0
  @TransactionAttribute(REQUIRED)
  public String update() {
    auth.preserveLogin();

    if (!geaendertArtikel || artikel == null) {
      return JSF_INDEX;
    }

    LOGGER.tracef("Aktualisierter artikel: %s", artikel);

    try {
      artikel = as.updateArtikel(artikel);
    } catch (BezeichnungExistsException | InvalidArtikelException | OptimisticLockException e) {
      final String outcome = updateErrorMsg(e, artikel.getClass());
      return outcome;
    }

    // Push-Event fuer Webbrowser
    updateArtikelEvent.fire(String.valueOf(artikel.getAId()));

    // ValueChangeListener zuruecksetzen
    geaendertArtikel = false;

    // Aufbereitung fuer viewKunde.xhtml
    artikelId = artikel.getAId();
    artikel = null;
    return JSF_LIST_ARTIKEL + JSF_REDIRECT_SUFFIX;
  }
Example #2
0
  @Override
  public boolean equals(Object obj) {
    if (this == obj) {
      return true;
    }
    if (obj == null) {
      return false;
    }
    if (getClass() != obj.getClass()) {
      return false;
    }
    final Bestellposition other = (Bestellposition) obj;

    // Bei persistenten Bestellpositionen koennen zu verschiedenen Bestellungen gehoeren
    // und deshalb den gleichen Artikel (s.u.) referenzieren, deshalb wird Id hier beruecksichtigt
    if (id == null) {
      if (other.id != null) {
        return false;
      }
    } else if (!id.equals(other.id)) {
      return false;
    }

    // Wenn eine neue Bestellung angelegt wird, dann wird jeder zu bestellende Artikel
    // genau 1x referenziert (nicht zu verwechseln mit der "anzahl")
    if (artikel == null) {
      if (other.artikel != null) {
        return false;
      }
    } else if (!artikel.equals(other.artikel)) {
      return false;
    }

    return true;
  }
Example #3
0
 @Override
 public int hashCode() {
   final int prime = 31;
   int result = 1;
   result = prime * result + anzahl;
   result = prime * result + ((artikel == null) ? 0 : artikel.hashCode());
   return result;
 }
Example #4
0
  public <T extends Artikel> T createArtikel(T artikel) {
    if (artikel == null) {
      return artikel;
    }

    // Pruefung, ob ein solcher Artikel schon existiert
    final List<Artikel> tmp = findArtikelByBezeichnung(artikel.getBezeichnung());
    for (Artikel a : tmp) {
      if (a.getBezeichnung().equals(artikel.getBezeichnung()))
        throw new BezeichnungExistsException(artikel.getBezeichnung());
    }

    em.persist(artikel);
    event.fire(artikel);

    return artikel;
  }
Example #5
0
 public URI getUriArtikel(Artikel artikel, UriInfo uriInfo) {
   final UriBuilder ub =
       uriInfo
           .getBaseUriBuilder()
           .path(ArtikelResource.class)
           .path(ArtikelResource.class, "findArtikelById");
   final URI uri = ub.build(artikel.getId());
   return uri;
 }
Example #6
0
  public <T extends Artikel> T updateArtikel(T artikel) {
    if (artikel == null) {
      return null;
    }

    // kunde vom EntityManager trennen, weil anschliessend z.B. nach Id und Email gesucht wird
    em.detach(artikel);

    // Gibt es ein anderes Objekt mit gleicher Email-Adresse?
    final List<Artikel> tmp = findArtikelByBezeichnung(artikel.getBezeichnung());
    for (Artikel a : tmp) {
      em.detach(a);
      if (a.getId().longValue() != artikel.getId().longValue())
        throw new BezeichnungExistsException(artikel.getBezeichnung());
    }

    artikel = em.merge(artikel); // OptimisticLockException

    return artikel;
  }
Example #7
0
  @TransactionAttribute(REQUIRED)
  public String update() {

    if (!geaendertArtikel || alterArtikel == null) {
      return JSF_INDEX;
    }

    alterArtikel = as.updateArtikel(alterArtikel, locale);

    // Push-Event fuer Webbrowser
    updateArtikelEvent.fire(String.valueOf(alterArtikel.getId()));

    // ValueChangeListener zuruecksetzen
    geaendertArtikel = false;

    // Aufbereitung fuer viewKunde.xhtml
    id = alterArtikel.getId();

    return JSF_UPDATE_ARTIKEL + JSF_REDIRECT_SUFFIX;
  }
Example #8
0
 @Override
 public boolean equals(Object obj) {
   if (this == obj) return true;
   if (obj == null) return false;
   if (getClass() != obj.getClass()) return false;
   final Posten other = (Posten) obj;
   if (anzahl != other.anzahl) return false;
   if (artikel == null) {
     if (other.artikel != null) return false;
   } else if (!artikel.equals(other.artikel)) return false;
   return true;
 }
Example #9
0
 @Override
 public String toString() {
   final Long artikelId = artikel == null ? null : artikel.getId();
   return "Bestellposition [id="
       + id
       + ", artikel="
       + artikelId
       + ", artikelUri="
       + artikelUri
       + ", anzahl="
       + anzahl
       + "]";
 }
Example #10
0
  @TransactionAttribute(REQUIRED)
  public String createArtikel() {
    try {
      neuerArtikel = as.createArtikel(neuerArtikel);
    } catch (BezeichnungExistsException
        | InvalidArtikelException
        | OptimisticLockException
        | ConcurrentDeletedException e) {
      final String outcome = updateErrorMsg(e, artikel.getClass());
      return outcome;
    }

    // Push-Event fuer Webbrowser
    neuerArtikelEvent.fire(String.valueOf(neuerArtikel.getAId()));

    // Aufbereitung fuer viewKunde.xhtml
    artikelId = neuerArtikel.getAId();
    artikel = neuerArtikel;
    neuerArtikel = null; // zuruecksetzen

    return JSF_LIST_ARTIKEL + JSF_REDIRECT_SUFFIX;
  }
Example #11
0
  @TransactionAttribute(REQUIRED)
  public String createArtikel() {

    neuerArtikel = (Artikel) as.createArtikel(neuerArtikel, locale);

    // Push-Event fuer Webbrowser
    // neuerArtikelEvent.fire(String.valueOf(neuerArtikel.getId()));

    // Aufbereitung fuer viewKunde.xhtml
    id = neuerArtikel.getId();
    alterArtikel = neuerArtikel;
    neuerArtikel = null; // zuruecksetzen

    return JSF_LIST_ARTIKEL + JSF_REDIRECT_SUFFIX;
  }