
package de.ivu.elect.business.wahl.boundary;

import javax.ejb.Stateless;
import javax.inject.Inject;

import de.ivu.elect.business.wahl.control.WahlterminStichwahlKopieren;
import de.ivu.elect.business.wahl.entity.Wahltermin;
import de.ivu.elect.presentation.hilfe.OnlineHilfeId;

@OnlineHilfeId("435")
@Stateless
public class WahlterminStichwahlCreate {

  @Inject
  private WahlterminDAO wahlterminDao;

  @Inject
  private WahlterminStichwahlKopieren wahlterminStichwahlKopieren;

  public WahlterminStichwahlCreate() {
    super();
  }

  public Wahltermin createWahlterminFuerStichwahl(Wahltermin stichwahltermin) {
    Wahltermin wahlterminUrspruenglich = wahlterminDao.attach(stichwahltermin.getStichwahlWahlterminUrspruenglich());

    stichwahltermin.setMandant(wahlterminUrspruenglich.getMandant());
    stichwahltermin.setStichwahlWahlterminUrspruenglich(wahlterminUrspruenglich);

    wahlterminStichwahlKopieren.persistStichwahltermin(stichwahltermin);
    wahlterminDao.flush();

    wahlterminStichwahlKopieren.postCreateStichwahltermin(stichwahltermin, wahlterminUrspruenglich);

    wahlterminDao.flush();

    wahlterminStichwahlKopieren.kopiereAllesFuerStichwahl(wahlterminUrspruenglich, stichwahltermin);
    return stichwahltermin;
  }



}
