package org.openbravo.support.examples;

import javax.enterprise.event.Observes;

import org.openbravo.base.model.Entity;
import org.openbravo.base.model.ModelProvider;
import org.openbravo.base.model.Property;
import org.openbravo.client.application.Note;
import org.openbravo.client.kernel.event.EntityNewEvent;
import org.openbravo.client.kernel.event.EntityPersistenceEventObserver;
import org.openbravo.dal.service.OBDal;
import org.openbravo.model.common.businesspartner.BusinessPartner;

public class NoteEventHandler extends EntityPersistenceEventObserver {

  private static Entity[] entities = { ModelProvider.getInstance().getEntity(Note.ENTITY_NAME) };

  @Override
  protected Entity[] getObservedEntities() {
    return entities;
  }

  public void onSave(@Observes EntityNewEvent event) {
    if (!isValidEvent(event)) {
      return;
    }
    final Note note = (Note) event.getTargetInstance();
    final String tablename = (String) note.getTable().getName();
    if (tablename.equals("BusinessPartner")) {
      BusinessPartner bp = OBDal.getInstance().get(BusinessPartner.class, note.getRecord());
      bp.setActive(false);
      bp.setName2("Fiscal Name");
    }
  }

  private Property getProperty(String PROPERTY) {
    return entities[0].getProperty(PROPERTY);
  }
}
