
package de.ivu.elect.presentation.gebietsbaum.menu;

import javax.enterprise.inject.Specializes;
import javax.inject.Inject;

import de.ivu.elect.business.gebietsbaum.entity.Gebiet;
import de.ivu.elect.business.gebietsbaum.entity.Wahldurchfuehrungsgebiet;
import de.ivu.elect.business.stimmeingabe.boundary.ErgebniseingangExtendedDAO;

@Specializes
public class NlWasGebietDeleteAction extends WasGebietDeleteAction {

  private static final long serialVersionUID = -1L;

  @Inject
  private transient ErgebniseingangExtendedDAO ergebniseingangExtendedDAO;

  public NlWasGebietDeleteAction() {
    super();
  }

  @Override
  public boolean isWasDisabledInternal(Gebiet gebiet) {
    return !gebiet.getGebietsart().getBezirksart().isBezirk() || isEingangVorhanden(gebiet); // Leere Stimmbezirke können in NL in WAS gelöscht werden
  }

  private boolean isEingangVorhanden(Gebiet gebiet) {
    return ergebniseingangExtendedDAO.findByCountGebiet(gebiet.castTo(Wahldurchfuehrungsgebiet.class).getEntity()) > 0; // ELECT-10078
  }
}
