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

import de.ivu.elect.business.benutzerverwaltung.entity.Benutzer;
import de.ivu.elect.business.dokumente.entity.DokumentVorlage;
import de.ivu.elect.business.entschaedigung.entity.Auszahlung;
import de.ivu.elect.business.wahl.entity.Wahl;
import de.ivu.elect.business.wahl.entity.Wahltermin;

public class AuszahlungExportContext extends EntschaedigungExchangeContext {

  private static final long serialVersionUID = 1L;

  private final Benutzer benutzer;

  private Auszahlung auszahlung;

  private DokumentVorlage dokumentVorlage;

  public AuszahlungExportContext(Benutzer benutzer) {
    super(benutzer == null ? null : benutzer.getMandant());

    this.benutzer = benutzer;
  }

  public Benutzer getBenutzer() {
    return benutzer;
  }

  @Override
  public Wahl getWahl() {
    Wahl wahl = super.getWahl();

    if (wahl == null && hasAuszahlung()) {
      return getAuszahlung().getWahl();
    }

    return wahl;
  }

  @Override
  public Wahltermin getWahltermin() {
    Wahltermin wahltermin = super.getWahltermin();

    if (wahltermin == null && hasAuszahlung()) {
      return getAuszahlung().getWahltermin();
    }

    return wahltermin;
  }

  public boolean hasAuszahlung() {
    return getAuszahlung() != null;
  }

  public Auszahlung getAuszahlung() {
    return auszahlung;
  }

  public void setAuszahlung(Auszahlung auszahlung) {
    this.auszahlung = auszahlung;
  }

  public DokumentVorlage getDokumentVorlage() {
    return dokumentVorlage;
  }

  public void setDokumentVorlage(DokumentVorlage dokumentVorlage) {
    this.dokumentVorlage = dokumentVorlage;
  }
}
