/**
   * Permet de créer une réconciliation en passant les paramètres qu'il faut
   *
   * @param lineDebit Une ligne d'écriture au débit
   * @param lineCredit Une ligne d'écriture au crédit
   * @param amount Le montant à reconciler
   * @param canBeZeroBalanceOk Peut être soldé?
   * @return Une reconciliation
   */
  @Transactional(rollbackOn = {AxelorException.class, Exception.class})
  public Reconcile createGenericReconcile(
      MoveLine lineDebit,
      MoveLine lineCredit,
      BigDecimal amount,
      boolean canBeZeroBalanceOk,
      boolean mustBeZeroBalance,
      boolean inverse) {

    LOG.debug("In createReconcile ....");

    Reconcile reconcile = new Reconcile();
    LOG.debug("In createReconcile .... : Amount : {}", amount);
    reconcile.setAmount(amount.setScale(2, RoundingMode.HALF_EVEN));
    LOG.debug("In createReconcile .... : Amount rounded : {}", reconcile.getAmount());

    if (inverse) {
      reconcile.setLineDebit(lineCredit);
      reconcile.setLineCredit(lineDebit);
    } else {
      reconcile.setLineDebit(lineDebit);
      reconcile.setLineCredit(lineCredit);
    }

    reconcile.setCanBeZeroBalanceOk(canBeZeroBalanceOk);
    reconcile.setMustBeZeroBalanceOk(mustBeZeroBalance);

    reconcile.save();

    LOG.debug("End createReconcile.");

    return reconcile;
  }