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

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

import de.ivu.elect.business.entschaedigung.control.AuszahlungProtokollierungEntschaedigung;
import de.ivu.elect.business.entschaedigung.entity.Auszahlung;
import de.ivu.elect.business.entschaedigung.entity.Entschaedigung;
import de.ivu.elect.jee.faces.Messages;

@Stateless
public class EntschaedigungEdit extends AbstractEntschaedigungEdit {

  @Inject
  private transient AuszahlungDAO auszahlungDAO;

  @Inject
  private transient Messages messages;

  public EntschaedigungEdit() {
    super();
  }

  public void deleteAllInAuszahlung(Auszahlung template) {
    Auszahlung auszahlung = auszahlungDAO.attach(template);

    if (auszahlung != null) {
      Integer entschaedigungenDeletedCount = dao.deleteByAuszahlung(auszahlung);

      if (entschaedigungenDeletedCount != null && entschaedigungenDeletedCount > 0) {
        AuszahlungProtokollierungEntschaedigung.protokolliereDeleteAll(auszahlung, messages);
      }
    }
  }

  public void deleteInAuszahlung(Entschaedigung template) {
    Entschaedigung entschaedigung = dao.attach(template);

    if (entschaedigung != null) {
      Auszahlung auszahlung = entschaedigung.getAuszahlung();

      delete(entschaedigung);

      if (auszahlung != null) {
        AuszahlungProtokollierungEntschaedigung.protokolliereDelete(auszahlung, messages);
      }
    }
  }
}
