diff --git a/htdocs/compta/bank/class/api_bankaccounts.class.php b/htdocs/compta/bank/class/api_bankaccounts.class.php index 23c739064f8..04ef9543867 100644 --- a/htdocs/compta/bank/class/api_bankaccounts.class.php +++ b/htdocs/compta/bank/class/api_bankaccounts.class.php @@ -199,10 +199,6 @@ class BankAccounts extends DolibarrApi throw new RestException(401); } - if ($bankaccount_from_id === $bankaccount_to_id) { - throw new RestException(422, 'bankaccount_from_id and bankaccount_to_id must be different !'); - } - require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; $accountfrom = new Account($this->db); @@ -227,6 +223,14 @@ class BankAccounts extends DolibarrApi } } + if ($amount_to < 0) { + throw new RestException(422, 'You must provide a positive value for amount.'); + } + + if ($accountto->id == $accountfrom->id) { + throw new RestException(422, 'bankaccount_from_id and bankaccount_to_id must be different !'); + } + $this->db->begin(); $error = 0; diff --git a/htdocs/compta/bank/transfer.php b/htdocs/compta/bank/transfer.php index c94f8810cd8..903c27ce8d7 100644 --- a/htdocs/compta/bank/transfer.php +++ b/htdocs/compta/bank/transfer.php @@ -46,9 +46,11 @@ $error = 0; $hookmanager->initHooks(array('banktransfer')); + /* * Actions */ + $parameters = array('socid' => $socid); $reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) { @@ -95,8 +97,17 @@ if ($action == 'add') { setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("AmountTo")), null, 'errors'); } } + if ($amountto < 0) { + $error++; + setEventMessages($langs->trans("AmountMustBePositive"), null, 'errors'); + } - if (($accountto->id != $accountfrom->id) && empty($error)) { + if ($accountto->id == $accountfrom->id) { + $error++; + setEventMessages($langs->trans("ErrorFromToAccountsMustDiffers"), null, 'errors'); + } + + if (empty($error)) { $db->begin(); $bank_line_id_from = 0; @@ -148,9 +159,6 @@ if ($action == 'add') { setEventMessages($accountfrom->error.' '.$accountto->error, null, 'errors'); $db->rollback(); } - } else { - $error++; - setEventMessages($langs->trans("ErrorFromToAccountsMustDiffers"), null, 'errors'); } } } @@ -255,7 +263,8 @@ print ''; print '
'; print ''; print ''; -print ''; +print ''; +print ''; print ''; print ''; @@ -271,13 +280,13 @@ print "\n"; print ''; -print ''; +print ''; print ''; print "
'.$langs->trans("TransferFrom").''.$langs->trans("TransferTo").''.$langs->trans("Date").''.$langs->trans("Description").''.$langs->trans("Amount").''.$langs->trans("TransferFrom").''.$langs->trans("TransferTo").''.$langs->trans("Date").''.$langs->trans("Description").''.$langs->trans("Amount").'
"; print $form->selectDate((!empty($dateo) ? $dateo : ''), '', '', '', '', 'add'); print "
"; print '
'; -print '
'; +print '
'; print "";