package de.ivu.elect.business.stimmzettel.control;

import java.util.List;

import javax.annotation.Nullable;

import de.ivu.elect.business.gruppe.entity.Gruppe;
import de.ivu.elect.business.stimmzettel.entity.Stimmzettel;
import de.ivu.elect.business.stimmzettel.entity.StimmzettelErfassungValidationEntry;
import de.ivu.elect.business.stimmzettel.entity.StimmzettelKopfdatum;
import de.ivu.elect.business.stimmzettel.entity.StimmzettelKopfdatumArt;

public class StimmzettelInsgesamtKleinerMitWahlscheinKopfdatumValidator extends AbstractStimmzettelKopfdatumValidator {
  private static final long serialVersionUID = 1L;

  @Override
  public StimmzettelErfassungValidationEntry validiere(StimmzettelKopfdatumArt art, @Nullable Gruppe gruppe, List<StimmzettelKopfdatum> stimmzettelKopfdaten, List<Stimmzettel> stimmzettel) {

    Long longValueGesamt = getLongValue(art, stimmzettelKopfdaten);
    Long longValueMitWahlschein = getLongValue(StimmzettelKopfdatumArt.ANZAHL_STIMMZETTEL_MIT_WAHLSCHEIN, stimmzettelKopfdaten);

    if (longValueGesamt == null || longValueMitWahlschein == null) {
      return StimmzettelErfassungValidationEntry.SUCCESS;
    }

    if (longValueGesamt < longValueMitWahlschein) {
      return StimmzettelErfassungValidationEntry.createError("wes.stimmzettel.validator.stimmzettel.gesamt.kleiner.mit");
    }
    return StimmzettelErfassungValidationEntry.SUCCESS;
  }

}
