package de.ivu.elect.presentation.wahl;

import java.io.Serializable;

import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;

import de.ivu.elect.business.gebietsbaum.boundary.GebietExtendedDAO;
import de.ivu.elect.business.mandant.control.MandantSupport;
import de.ivu.elect.business.wahl.boundary.WahlSessionSelect;
import de.ivu.elect.presentation.wahl.menu.WahlCreateMenuItemEnabled;

@RequestScoped
public class WahlMandantenAufteilenMoeglich implements Serializable {

  private transient Boolean aufteilenMoeglich;

  @Inject
  private transient WahlSessionSelect wahlSessionSelect;

  @Inject
  private transient MandantSupport mandantSupport;

  @Inject
  private transient WahlCreateMenuItemEnabled wahlCreateMenuItemEnabled;

  @Inject
  private transient GebietExtendedDAO gebietExtendedDAO;

  public boolean isAufteilenMoeglich() {
    if (aufteilenMoeglich == null) {
      aufteilenMoeglich = mandantSupport.isMandantenUnterstuetzt() && wahlSessionSelect.isSelected() && wahlCreateMenuItemEnabled
          .isEnabled() && gebietExtendedDAO.findByCountByWahlMitVerantwortlicherMandant(wahlSessionSelect.getEntity()) > 0;
    }
    return aufteilenMoeglich;
  }
}
