diff --git a/htdocs/compta/bank/bankentries_list.php b/htdocs/compta/bank/bankentries_list.php
index fc7a3ac8b56..b386340d75e 100644
--- a/htdocs/compta/bank/bankentries_list.php
+++ b/htdocs/compta/bank/bankentries_list.php
@@ -204,12 +204,12 @@ if (empty($reshook))
}
// Conciliation
-if (GETPOST('confirm_reconcile') && $user->rights->banque->consolidate)
+if ((GETPOST('confirm_savestatement','alpha') || GETPOST('confirm_reconcile','alpha')) && $user->rights->banque->consolidate)
{
$error=0;
// Definition, nettoyage parametres
- $num_releve=trim(GETPOST("num_releve"));
+ $num_releve=trim(GETPOST("num_releve","alpha"));
if ($num_releve)
{
@@ -222,7 +222,7 @@ if (GETPOST('confirm_reconcile') && $user->rights->banque->consolidate)
{
$result=$bankline->fetch($row);
$bankline->num_releve=$num_releve; //$_POST["num_releve"];
- $result=$bankline->update_conciliation($user, GETPOST("cat"));
+ $result=$bankline->update_conciliation($user, GETPOST("cat"), GETPOST('confirm_reconcile','alpha')?1:0); // If we confirm_reconcile, we set flag 'rappro' to 1.
if ($result < 0)
{
setEventMessages($bankline->error, $bankline->errors, 'errors');
@@ -248,7 +248,20 @@ if (GETPOST('confirm_reconcile') && $user->rights->banque->consolidate)
if (! $error)
{
- header('Location: '.$_SERVER["PHP_SELF"].'?id='.$id); // To avoid to submit twice and allow back
+ $param='action=reconcile&contextpage=banktransactionlist&id='.$id.'&search_account='.$id;
+ $param.='&search_conciliated='.urlencode($search_conciliated);
+ if ($page) $param.='&page='.urlencode($page);
+ if ($offset) $param.='&offset='.urlencode($offset);
+ if ($search_thirdparty) $param.='&search_thirdparty='.urlencode($search_thirdparty);
+ if ($search_num_releve) $param.='&search_num_releve='.urlencode($search_num_releve);
+ if ($search_start_dt) $param.='&search_start_dt='.urlencode($search_start_dt);
+ if ($search_end_dt) $param.='&search_end_dt='.urlencode($search_end_dt);
+ if ($search_start_dv) $param.='&search_start_dv='.urlencode($search_start_dv);
+ if ($search_end_dv) $param.='&search_end_dv='.urlencode($search_end_dv);
+ if ($search_type) $param.='&search_type='.urlencode($search_type);
+ if ($search_debit) $param.='&search_debit='.urlencode($search_debit);
+ if ($search_credit) $param.='&search_credit='.urlencode($search_credit);
+ header('Location: '.$_SERVER["PHP_SELF"].'?'.$param); // To avoid to submit twice and allow the back button
exit;
}
}
@@ -579,6 +592,8 @@ if ($resql)
print Form::selectarray('cat', $options, GETPOST('cat'), 1);
}
print '
'.$langs->trans("ThenCheckLinesAndConciliate").' ';
+ print '';
+ print ' '.$langs->trans("or").' ';
print '';
print ' '.$langs->trans("or").' ';
print '';
diff --git a/htdocs/compta/bank/class/account.class.php b/htdocs/compta/bank/class/account.class.php
index 6edb9a42110..19ffec25aca 100644
--- a/htdocs/compta/bank/class/account.class.php
+++ b/htdocs/compta/bank/class/account.class.php
@@ -2006,11 +2006,12 @@ class AccountLine extends CommonObject
/**
* Update conciliation field
*
- * @param User $user Objet user making update
- * @param int $cat Category id
- * @return int <0 if KO, >0 if OK
+ * @param User $user Objet user making update
+ * @param int $cat Category id
+ * @param int $conciliated 1=Set transaction to conciliated, 0=Keep transaction non conciliated
+ * @return int <0 if KO, >0 if OK
*/
- function update_conciliation(User $user, $cat)
+ function update_conciliation(User $user, $cat, $conciliated=1)
{
// phpcs:enable
global $conf,$langs;
@@ -2028,9 +2029,9 @@ class AccountLine extends CommonObject
}
$sql = "UPDATE ".MAIN_DB_PREFIX."bank SET";
- $sql.= " rappro = 1";
+ $sql.= " rappro = ".$conciliated;
$sql.= ", num_releve = '".$this->db->escape($this->num_releve)."'";
- $sql.= ", fk_user_rappro = ".$user->id;
+ if ($conciliated) $sql.= ", fk_user_rappro = ".$user->id;
$sql.= " WHERE rowid = ".$this->id;
dol_syslog(get_class($this)."::update_conciliation", LOG_DEBUG);
diff --git a/htdocs/langs/en_US/banks.lang b/htdocs/langs/en_US/banks.lang
index 4b9e95877aa..a83b3cd755b 100644
--- a/htdocs/langs/en_US/banks.lang
+++ b/htdocs/langs/en_US/banks.lang
@@ -76,6 +76,7 @@ TransactionsToConciliate=Entries to reconcile
Conciliable=Can be reconciled
Conciliate=Reconcile
Conciliation=Reconciliation
+SaveStatementOnly=Save statement only
ReconciliationLate=Reconciliation late
IncludeClosedAccount=Include closed accounts
OnlyOpenedAccount=Only open accounts