';
diff --git a/htdocs/compta/prelevement/card.php b/htdocs/compta/prelevement/card.php
index 8a232377ab7..fb63fa45b38 100644
--- a/htdocs/compta/prelevement/card.php
+++ b/htdocs/compta/prelevement/card.php
@@ -102,22 +102,7 @@ if (empty($reshook)) {
}
}
- // Seems to no be used and replaced with $action == 'infocredit'
- if ($action == 'confirm_credite' && GETPOST('confirm', 'alpha') == 'yes') {
- if ($object->statut == 2) {
- $res = -1;
- setEventMessages('WithdrawalCantBeCreditedTwice', array(), 'errors');
- } else {
- $res = $object->set_credite();
- }
-
- if ($res >= 0) {
- header("Location: card.php?id=".$id);
- exit;
- }
- }
-
- if ($action == 'infotrans' && $user->rights->prelevement->bons->send) {
+ if ($action == 'infotrans' && (($user->rights->prelevement->bons->send && $object->type != 'bank-transfer') || ($user->rights->paymentbybanktransfer->send && $object->type == 'bank-transfer'))) {
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
$dt = dol_mktime(12, 0, 0, GETPOST('remonth', 'int'), GETPOST('reday', 'int'), GETPOST('reyear', 'int'));
@@ -150,10 +135,10 @@ if (empty($reshook)) {
}
// Set direct debit order to credited, create payment and close invoices
- if ($action == 'infocredit' && $user->rights->prelevement->bons->credit) {
+ if ($action == 'infocredit' && (($user->rights->prelevement->bons->credit && $object->type != 'bank-transfer') || ($user->rights->paymentbybanktransfer->debit && $object->type == 'bank-transfer'))) {
$dt = dol_mktime(12, 0, 0, GETPOST('remonth', 'int'), GETPOST('reday', 'int'), GETPOST('reyear', 'int'));
- if ($object->statut == 2) {
+ if (($object->type != 'bank-transfer' && $object->statut == BonPrelevement::STATUS_CREDITED) || ($object->type == 'bank-transfer' && $object->statut == BonPrelevement::STATUS_DEBITED)) {
$error = 1;
setEventMessages('WithdrawalCantBeCreditedTwice', array(), 'errors');
} else {
@@ -184,12 +169,6 @@ if ($id > 0 || $ref) {
print '
'.$object->getErrorString(GETPOST('error', 'alpha')).'
';
}
- /*if ($action == 'credite')
- {
- print $form->formconfirm("card.php?id=".$object->id,$langs->trans("ClassCredited"),$langs->trans("ClassCreditedConfirm"),"confirm_credite",'',1,1);
-
- }*/
-
$linkback = '
'.$langs->trans("BackToList").'';
dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref');
@@ -307,6 +286,7 @@ if ($id > 0 || $ref) {
}
if (!empty($object->date_trans) && $object->date_credit == 0 && $user->rights->prelevement->bons->credit && $action == 'setcredited') {
+ $btnLabel = ($object->type == 'bank-transfer') ? $langs->trans("ClassDebited") : $langs->trans("ClassCredited");
print '
';
print '
';
}
-
// Actions
if ($action != 'settransmitted' && $action != 'setcredited') {
print "\n".'
'."\n";
- if (empty($object->date_trans) && $user->rights->prelevement->bons->send) {
- print '
'.$langs->trans("SetToStatusSent").'';
+ if (empty($object->date_trans)) {
+ if ($object->type == 'bank-transfer') print dolGetButtonAction($langs->trans("SetToStatusSent"), '', 'default', 'card.php?action=settransmitted&token='.newToken().'&id='.$object->id, '', $user->rights->paymentbybanktransfer->send);
+ else print dolGetButtonAction($langs->trans("SetToStatusSent"), '', 'default', 'card.php?action=settransmitted&token='.newToken().'&id='.$object->id, '', $user->rights->prelevement->bons->send);
}
if (!empty($object->date_trans) && $object->date_credit == 0) {
- print '
'.$langs->trans("ClassCredited").'';
+ if ($object->type == 'bank-transfer') print dolGetButtonAction($langs->trans("ClassDebited"), '', 'default', 'card.php?action=setcredited&token='.newToken().'&id='.$object->id, '', $user->rights->paymentbybanktransfer->debit);
+ else print dolGetButtonAction($langs->trans("ClassCredited"), '', 'default', 'card.php?action=setcredited&token='.newToken().'&id='.$object->id, '', $user->rights->prelevement->bons->credit);
}
- print '
'.$langs->trans("Delete").'';
+ if ($object->type == 'bank-transfer') print dolGetButtonAction($langs->trans("Delete"), '', 'delete', 'card.php?action=delete&token='.newToken().'&id='.$object->id, '', $user->rights->paymentbybanktransfer->create);
+ else print dolGetButtonAction($langs->trans("Delete"), '', 'delete', 'card.php?action=delete&token='.newToken().'&id='.$object->id, '', $user->rights->prelevement->bons->creer);
print '
';
}
diff --git a/htdocs/compta/prelevement/class/bonprelevement.class.php b/htdocs/compta/prelevement/class/bonprelevement.class.php
index 25751a50df0..18216c1cda6 100644
--- a/htdocs/compta/prelevement/class/bonprelevement.class.php
+++ b/htdocs/compta/prelevement/class/bonprelevement.class.php
@@ -332,74 +332,6 @@ class BonPrelevement extends CommonObject
}
}
- // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
- /**
- * Set credite and set status of linked invoices. Still used ??
- *
- * @return int <0 if KO, >=0 if OK
- */
- public function set_credite()
- {
- // phpcs:enable
- global $user, $conf;
-
- $error = 0;
-
- if ($this->db->begin()) {
- $sql = " UPDATE ".MAIN_DB_PREFIX."prelevement_bons";
- $sql .= " SET statut = ".self::STATUS_TRANSFERED;
- $sql .= " WHERE rowid = ".((int) $this->id);
- $sql .= " AND entity = ".((int) $conf->entity);
-
- $result = $this->db->query($sql);
- if (!$result) {
- dol_syslog(get_class($this)."::set_credite Erreur 1");
- $error++;
- }
-
- if (!$error) {
- $facs = array();
- $facs = $this->getListInvoices();
-
- $num = count($facs);
- for ($i = 0; $i < $num; $i++) {
- /* Tag invoice as paid */
- dol_syslog(get_class($this)."::set_credite set_paid fac ".$facs[$i]);
- $fac = new Facture($this->db);
- $fac->fetch($facs[$i]);
- $result = $fac->setPaid($user);
- }
- }
-
- if (!$error) {
- $sql = " UPDATE ".MAIN_DB_PREFIX."prelevement_lignes";
- $sql .= " SET statut = 2";
- $sql .= " WHERE fk_prelevement_bons = ".((int) $this->id);
-
- if (!$this->db->query($sql)) {
- dol_syslog(get_class($this)."::set_credite Erreur 1");
- $error++;
- }
- }
-
- /*
- * End of procedure
- */
- if (!$error) {
- $this->db->commit();
- return 0;
- } else {
- $this->db->rollback();
- dol_syslog(get_class($this)."::set_credite ROLLBACK ");
-
- return -1;
- }
- } else {
- dol_syslog(get_class($this)."::set_credite Ouverture transaction SQL impossible ");
- return -2;
- }
- }
-
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
/**
* Set direct debit or credit transfer order to "paid" status.
diff --git a/htdocs/langs/en_US/withdrawals.lang b/htdocs/langs/en_US/withdrawals.lang
index a3773a427a1..5efc4bf8e35 100644
--- a/htdocs/langs/en_US/withdrawals.lang
+++ b/htdocs/langs/en_US/withdrawals.lang
@@ -15,6 +15,7 @@ BankTransferReceipt=Credit transfer order
LatestBankTransferReceipts=Latest %s credit transfer orders
LastWithdrawalReceipts=Latest %s direct debit files
WithdrawalsLine=Direct debit order line
+CreditTransfer=Credit transfer
CreditTransferLine=Credit transfer line
WithdrawalsLines=Direct debit order lines
CreditTransferLines=Credit transfer lines
@@ -47,6 +48,7 @@ ThirdPartyBankCode=Third-party bank code
NoInvoiceCouldBeWithdrawed=No invoice debited successfully. Check that invoices are on companies with a valid IBAN and that IBAN has a UMR (Unique Mandate Reference) with mode
%s.
WithdrawalCantBeCreditedTwice=This withdrawal receipt is already marked as credited; this can't be done twice, as this would potentially create duplicate payments and bank entries.
ClassCredited=Classify credited
+ClassDebited=Classify debited
ClassCreditedConfirm=Are you sure you want to classify this withdrawal receipt as credited on your bank account?
TransData=Transmission date
TransMetod=Transmission method