public void doDelete() {

    if (selected == null || selected.getId() == null) {
      String msg = "Unexpected null id detected.";
      logger.error(msg);
      throw new RuntimeException(msg);
    }

    // Delete the entity.
    //
    try {
      DettaglioFatturazioneService dfs = ServiceFactory.createService("DettaglioFatturazione");
      dfs.delete(selected.getId());

      logger.debug("Entity successfully deleted.");

      // Add a message.
      //
      FacesMessage message =
          new FacesMessage(
              FacesMessage.SEVERITY_INFO,
              "Record eliminato",
              "L'eliminazione del dettaglio di fatturazione si è conclusa con successo.");
      FacesContext.getCurrentInstance().addMessage(null, message);

      // Signal to modal dialog that everything went fine.
      //
      RequestContext.getCurrentInstance().addCallbackParam("ok", true);

    } catch (Exception e) {

      logger.warn("Exception caught while deleting entity.", e);

      FacesMessage message =
          new FacesMessage(
              FacesMessage.SEVERITY_ERROR,
              "Errore di sistema",
              "Si è verificato un errore in fase di eliminazione del record.");
      FacesContext.getCurrentInstance().addMessage(null, message);
    }
  }