/**
   * Y a t'il d'autres facture a exporter pour le même payeur ?
   *
   * @param moveLineList : une liste de ligne d'écriture de facture
   * @param psl
   * @return
   */
  public boolean hasOtherInvoice(List<MoveLine> moveLineList, MoveLine moveLine) {

    Partner partner = moveLine.getPartner();

    Query q =
        JPA.em()
            .createQuery(
                "select count(*) FROM MoveLine as self WHERE self IN ?1 AND self.partner = ?2 ");
    q.setParameter(1, moveLineList);
    q.setParameter(2, partner);

    if ((long) q.getSingleResult() > 1) {
      log.debug(
          "Recherche d'une autre facture à prélever (autre que l'écriture {}) pour le tiers {} : OUI",
          moveLine.getName(),
          partner.getFullName());
      return true;
    }

    log.debug(
        "Recherche d'une autre facture à prélever (autre que l'écriture {}) pour le tiers {} : NON",
        moveLine.getName(),
        partner.getFullName());

    return false;
  }
  /**
   * Méthode permettant de récupérer le dernier 'id' utilisé pour l'objet de gestion des
   * prélèvements afin de pouvoir exclure les numéros de prélèvements consolidés, rejetés, lors du
   * prochain prélèvement.
   *
   * @return
   */
  public long getDirectDevitManagementMaxId() {

    Query q = JPA.em().createQuery("select MAX(id) FROM DirectDebitManagement");

    Object result = q.getSingleResult();

    if (result != null) {
      return (long) result;
    }
    return 0;
  }