NEW Enhancement in process to make manual bank conciliation

This commit is contained in:
Laurent Destailleur 2018-10-10 12:47:18 +02:00
parent 562ee1cb64
commit cb29209457
3 changed files with 27 additions and 10 deletions

View File

@ -204,12 +204,12 @@ if (empty($reshook))
} }
// Conciliation // Conciliation
if (GETPOST('confirm_reconcile') && $user->rights->banque->consolidate) if ((GETPOST('confirm_savestatement','alpha') || GETPOST('confirm_reconcile','alpha')) && $user->rights->banque->consolidate)
{ {
$error=0; $error=0;
// Definition, nettoyage parametres // Definition, nettoyage parametres
$num_releve=trim(GETPOST("num_releve")); $num_releve=trim(GETPOST("num_releve","alpha"));
if ($num_releve) if ($num_releve)
{ {
@ -222,7 +222,7 @@ if (GETPOST('confirm_reconcile') && $user->rights->banque->consolidate)
{ {
$result=$bankline->fetch($row); $result=$bankline->fetch($row);
$bankline->num_releve=$num_releve; //$_POST["num_releve"]; $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) if ($result < 0)
{ {
setEventMessages($bankline->error, $bankline->errors, 'errors'); setEventMessages($bankline->error, $bankline->errors, 'errors');
@ -248,7 +248,20 @@ if (GETPOST('confirm_reconcile') && $user->rights->banque->consolidate)
if (! $error) 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; exit;
} }
} }
@ -579,6 +592,8 @@ if ($resql)
print Form::selectarray('cat', $options, GETPOST('cat'), 1); print Form::selectarray('cat', $options, GETPOST('cat'), 1);
} }
print '<br>'.$langs->trans("ThenCheckLinesAndConciliate").' '; print '<br>'.$langs->trans("ThenCheckLinesAndConciliate").' ';
print '<input class="button" name="confirm_savestatement" type="submit" value="'.$langs->trans("SaveStatementOnly").'">';
print ' '.$langs->trans("or").' ';
print '<input class="button" name="confirm_reconcile" type="submit" value="'.$langs->trans("Conciliate").'">'; print '<input class="button" name="confirm_reconcile" type="submit" value="'.$langs->trans("Conciliate").'">';
print ' '.$langs->trans("or").' '; print ' '.$langs->trans("or").' ';
print '<input type="submit" name="cancel" class="button" value="'.$langs->trans("Cancel").'">'; print '<input type="submit" name="cancel" class="button" value="'.$langs->trans("Cancel").'">';

View File

@ -2008,9 +2008,10 @@ class AccountLine extends CommonObject
* *
* @param User $user Objet user making update * @param User $user Objet user making update
* @param int $cat Category id * @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 * @return int <0 if KO, >0 if OK
*/ */
function update_conciliation(User $user, $cat) function update_conciliation(User $user, $cat, $conciliated=1)
{ {
// phpcs:enable // phpcs:enable
global $conf,$langs; global $conf,$langs;
@ -2028,9 +2029,9 @@ class AccountLine extends CommonObject
} }
$sql = "UPDATE ".MAIN_DB_PREFIX."bank SET"; $sql = "UPDATE ".MAIN_DB_PREFIX."bank SET";
$sql.= " rappro = 1"; $sql.= " rappro = ".$conciliated;
$sql.= ", num_releve = '".$this->db->escape($this->num_releve)."'"; $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; $sql.= " WHERE rowid = ".$this->id;
dol_syslog(get_class($this)."::update_conciliation", LOG_DEBUG); dol_syslog(get_class($this)."::update_conciliation", LOG_DEBUG);

View File

@ -76,6 +76,7 @@ TransactionsToConciliate=Entries to reconcile
Conciliable=Can be reconciled Conciliable=Can be reconciled
Conciliate=Reconcile Conciliate=Reconcile
Conciliation=Reconciliation Conciliation=Reconciliation
SaveStatementOnly=Save statement only
ReconciliationLate=Reconciliation late ReconciliationLate=Reconciliation late
IncludeClosedAccount=Include closed accounts IncludeClosedAccount=Include closed accounts
OnlyOpenedAccount=Only open accounts OnlyOpenedAccount=Only open accounts