New : Option INVOICE_CAN_REMOVE_DRAFT_ONLY to delete draft invoices with precedence over INVOICE_CAN_ALWAYS_BE_REMOVED

This commit is contained in:
Abbes Bahfir 2018-05-05 12:52:38 +01:00
parent 95bd249ec6
commit 17b8de2cdd
5 changed files with 35 additions and 38 deletions

View File

@ -585,20 +585,18 @@ if ($resql)
'presend'=>$langs->trans("SendByMail"), 'presend'=>$langs->trans("SendByMail"),
'builddoc'=>$langs->trans("PDFMerge"), 'builddoc'=>$langs->trans("PDFMerge"),
); );
if ($conf->prelevement->enabled) if ($conf->prelevement->enabled) {
{
$langs->load("withdrawals"); $langs->load("withdrawals");
$arrayofmassactions['withdrawrequest'] = $langs->trans("MakeWithdrawRequest"); $arrayofmassactions['withdrawrequest'] = $langs->trans("MakeWithdrawRequest");
} }
if ($user->rights->facture->supprimer) if ($user->rights->facture->supprimer) {
{
//if (! empty($conf->global->STOCK_CALCULATE_ON_BILL) || empty($conf->global->INVOICE_CAN_ALWAYS_BE_REMOVED)) //if (! empty($conf->global->STOCK_CALCULATE_ON_BILL) || empty($conf->global->INVOICE_CAN_ALWAYS_BE_REMOVED))
if (empty($conf->global->INVOICE_CAN_ALWAYS_BE_REMOVED)) if (!empty($conf->global->INVOICE_CAN_REMOVE_DRAFT_ONLY)) {
{ $arrayofmassactions['predeletedraft'] = $langs->trans("Deletedraft");
// mass deletion never possible on invoices on such situation
} }
else elseif (!empty($conf->global->INVOICE_CAN_ALWAYS_BE_REMOVED)) {
{ // mass deletion never possible on invoices on such situation
$arrayofmassactions['predelete'] = $langs->trans("Delete"); $arrayofmassactions['predelete'] = $langs->trans("Delete");
} }
} }

View File

@ -1079,26 +1079,16 @@ if (! $error && ($massaction == 'delete' || ($action == 'delete' && $confirm ==
$result=$objecttmp->fetch($toselectid); $result=$objecttmp->fetch($toselectid);
if ($result > 0) if ($result > 0)
{ {
// Refuse deletion for some status ? if ($objectclass != 'Facture' || empty($conf->global->INVOICE_CAN_REMOVE_DRAFT_ONLY) || (!empty($conf->global->INVOICE_CAN_REMOVE_DRAFT_ONLY) && $objecttmp->statut == Facture::STATUS_DRAFT) ) {
/*
if ($objectclass == 'Facture' && $objecttmp->status == Facture::STATUS_DRAFT)
{
$langs->load("errors");
$nbignored++;
$resaction.='<div class="error">'.$langs->trans('ErrorOnlyDraftStatusCanBeDeletedInMassAction',$objecttmp->ref).'</div><br>';
continue;
}*/
if (in_array($objecttmp->element, array('societe', 'member'))) $result = $objecttmp->delete($objecttmp->id, $user, 1); if (in_array($objecttmp->element, array('societe', 'member'))) $result = $objecttmp->delete($objecttmp->id, $user, 1);
else $result = $objecttmp->delete($user); else $result = $objecttmp->delete($user);
if ($result <= 0) if ($result <= 0) {
{
setEventMessages($objecttmp->error, $objecttmp->errors, 'errors'); setEventMessages($objecttmp->error, $objecttmp->errors, 'errors');
$error++; $error++;
break; break;
} else $nbok++;
} }
else $nbok++;
} }
else else
{ {

View File

@ -27,6 +27,11 @@
// $trackid='ord'.$object->id; // $trackid='ord'.$object->id;
if ($massaction == 'predeletedraft')
{
print $form->formconfirm($_SERVER["PHP_SELF"], $langs->trans("ConfirmMassDraftDeletion"), $langs->trans("ConfirmMassDeletionQuestion", count($toselect)), "delete", null, '', 0, 200, 500, 1);
}
if ($massaction == 'predelete') if ($massaction == 'predelete')
{ {
print $form->formconfirm($_SERVER["PHP_SELF"], $langs->trans("ConfirmMassDeletion"), $langs->trans("ConfirmMassDeletionQuestion", count($toselect)), "delete", null, '', 0, 200, 500, 1); print $form->formconfirm($_SERVER["PHP_SELF"], $langs->trans("ConfirmMassDeletion"), $langs->trans("ConfirmMassDeletionQuestion", count($toselect)), "delete", null, '', 0, 200, 500, 1);

View File

@ -942,3 +942,5 @@ Remote=Remote
LocalAndRemote=Local and Remote LocalAndRemote=Local and Remote
KeyboardShortcut=Keyboard shortcut KeyboardShortcut=Keyboard shortcut
AssignedTo=Assigned to AssignedTo=Assigned to
Deletedraft=Delete draft
ConfirmMassDraftDeletion=Draft Bulk delete confirmation

View File

@ -941,3 +941,5 @@ Remote=Distant
LocalAndRemote=Local et distant LocalAndRemote=Local et distant
KeyboardShortcut=Raccourci clavier KeyboardShortcut=Raccourci clavier
AssignedTo=Assigné à AssignedTo=Assigné à
Deletedraft=Supprimer brouillon
ConfirmMassDraftDeletion=Confirmation de suppression brouillons en masse