diff --git a/htdocs/compta/prelevement/orders_list.php b/htdocs/compta/prelevement/orders_list.php
index c8122ec27c3..57f65320979 100644
--- a/htdocs/compta/prelevement/orders_list.php
+++ b/htdocs/compta/prelevement/orders_list.php
@@ -72,8 +72,10 @@ $bon = new BonPrelevement($db);
$hookmanager->initHooks(array('withdrawalsreceiptslist'));
$usercancreate = $user->rights->prelevement->bons->creer;
+$permissiontodelete = $user->hasRight('prelevement', 'creer');
if ($type == 'bank-transfer') {
$usercancreate = $user->rights->paymentbybanktransfer->create;
+ $permissiontodelete = $user->hasRight('paymentbybanktransfer', 'create');
}
// Security check
@@ -97,6 +99,61 @@ if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x'
$search_amount = "";
}
+// Mass actions
+
+// Delete draft
+if (($massaction == "delete" || ($action == 'delete' && $confirm == 'yes')) && $permissiontodelete) {
+ $db->begin();
+ $objecttmp = new BonPrelevement($db);
+ foreach ($toselect as $toselectid) {
+ $result = $objecttmp->fetch($toselectid);
+ if ($result > 0) {
+ if ($objecttmp->status != $objecttmp::STATUS_DRAFT || $objecttmp->credite > 0 || $objecttmp->date_creation != null) {
+ $langs->load("errors");
+ $nbignored++;
+ $TMsg[] = '
'.$langs->trans('ErrorOnlyDraftStatusCanBeDeletedInMassAction', $objecttmp->ref).'
';
+ continue;
+ }
+ $result = $objecttmp->delete($user);
+ if ($result < 0) { // if delete returns is < 0, there is an error, we break and rollback later
+ setEventMessages($objecttmp->error, $objecttmp->errors, 'errors');
+ $error++;
+ break;
+ } else {
+ $nbok++;
+ }
+ } else {
+ setEventMessages($objecttmp->error, $objecttmp->errors, 'errors');
+ $error++;
+ break;
+ }
+ }
+ if (empty($error)) {
+ // Message for elements well deleted
+ if ($nbok > 1) {
+ setEventMessages($langs->trans("RecordsDeleted", $nbok), null, 'mesgs');
+ } elseif ($nbok > 0) {
+ setEventMessages($langs->trans("RecordDeleted", $nbok), null, 'mesgs');
+ } else {
+ setEventMessages($langs->trans("NoRecordDeleted"), null, 'mesgs');
+ }
+
+ // Message for elements which can't be deleted
+ if (!empty($TMsg)) {
+ sort($TMsg);
+ setEventMessages('', array_unique($TMsg), 'warnings');
+ }
+
+ $db->commit();
+ } else {
+ $db->rollback();
+ }
+ $massaction = '';
+}
+$objectclass = 'BonPrelevement';
+$objectlabel = 'BonPrelevement';
+$uploaddir = $conf->prelevement->dir_output;
+include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php';
/*
* View
@@ -194,6 +251,9 @@ $arrayofmassactions = array(
//'presend'=>img_picto('', 'email', 'class="pictofixedwidth"').$langs->trans("SendByMail"),
//'builddoc'=>img_picto('', 'pdf', 'class="pictofixedwidth"').$langs->trans("PDFMerge"),
);
+if (!empty($permissiontodelete)) {
+ $arrayofmassactions['predeletedraft'] = img_picto('', 'delete', 'class="pictofixedwidth"').$langs->trans("Delete");
+}
$massactionbutton = $form->selectMassAction('', $arrayofmassactions);
print '