Merge pull request #8710 from atm-quentin/develop
NEW cancel orders on massaction
This commit is contained in:
commit
564d791697
@ -208,6 +208,7 @@ if (empty($reshook))
|
||||
$uploaddir = $conf->commande->dir_output;
|
||||
$trigger_name='ORDER_SENTBYMAIL';
|
||||
include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php';
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -419,6 +420,8 @@ if ($resql)
|
||||
$arrayofmassactions = array(
|
||||
'presend'=>$langs->trans("SendByMail"),
|
||||
'builddoc'=>$langs->trans("PDFMerge"),
|
||||
'cancelorders'=>$langs->trans("Cancel"),
|
||||
|
||||
);
|
||||
if($user->rights->facture->creer) $arrayofmassactions['createbills']=$langs->trans("CreateInvoiceForThisCustomer");
|
||||
if ($user->rights->commande->supprimer) $arrayofmassactions['predelete']=$langs->trans("Delete");
|
||||
|
||||
@ -736,6 +736,56 @@ if ($massaction == 'confirm_createbills')
|
||||
}
|
||||
}
|
||||
|
||||
if (!$error && $massaction == 'cancelorders')
|
||||
{
|
||||
|
||||
$db->begin();
|
||||
|
||||
$nbok = 0;
|
||||
|
||||
|
||||
$orders = GETPOST('toselect', 'array');
|
||||
foreach ($orders as $id_order)
|
||||
{
|
||||
|
||||
$cmd = new Commande($db);
|
||||
if ($cmd->fetch($id_order) <= 0)
|
||||
continue;
|
||||
|
||||
if ($cmd->statut != Commande::STATUS_VALIDATED)
|
||||
{
|
||||
$langs->load('errors');
|
||||
setEventMessages($langs->trans("ErrorObjectMustHaveStatusValidToBeCanceled", $cmd->ref), null, 'errors');
|
||||
$error++;
|
||||
break;
|
||||
}
|
||||
else
|
||||
$result = $cmd->cancel();
|
||||
|
||||
if ($result < 0)
|
||||
{
|
||||
setEventMessages($cmd->error, $cmd->errors, 'errors');
|
||||
$error++;
|
||||
break;
|
||||
}
|
||||
else
|
||||
$nbok++;
|
||||
}
|
||||
if (!$error)
|
||||
{
|
||||
if ($nbok > 1)
|
||||
setEventMessages($langs->trans("RecordsModified", $nbok), null, 'mesgs');
|
||||
else
|
||||
setEventMessages($langs->trans("RecordsModified", $nbok), null, 'mesgs');
|
||||
$db->commit();
|
||||
}
|
||||
else
|
||||
{
|
||||
$db->rollback();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (! $error && $massaction == "builddoc" && $permtoread && ! GETPOST('button_search'))
|
||||
{
|
||||
if (empty($diroutputmassaction))
|
||||
|
||||
@ -208,6 +208,7 @@ ErrorFileNotFoundWithSharedLink=Fichier non trouvé. Peut que la clé de partage
|
||||
ErrorProductBarCodeAlreadyExists=Le code-barre du produit %s existe déjà sur une autre référence de produit
|
||||
ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Notez également que l'utilisation d'un produit virtuel pour augmenter ou réduire automatiquement les sous-produits n'est pas possible lorsqu'au moins un sous-produit (ou sous-produit de sous-produits) a besoin d'un numéro de série/lot.
|
||||
ErrorDescRequiredForFreeProductLines=La description est obligatoire pour les lignes avec un produit non prédéfini
|
||||
ErrorObjectMustHaveStatusValidToBeCanceled=L'objet %s doit être au statut 'Validé' pour être annulé
|
||||
|
||||
# Warnings
|
||||
WarningPasswordSetWithNoAccount=Un mot de passe a été fixé pour cet adhérent. Cependant, aucun compte d'utilisateur n'a été créé. Donc, ce mot de passe est stocké, mais ne peut être utilisé pour accéder à Dolibarr. Il peut être utilisé par un module/interface externe, mais si vous n'avez pas besoin de définir ni login ni mot de passe pour un adhérent, vous pouvez désactiver l'option «Gérer un login pour chaque adhérent" depuis la configuration du module Adhérents. Si vous avez besoin de gérer un login, mais pas de mot de passe, vous pouvez laisser ce champ vide pour éviter cet avertissement. Remarque: L'email peut également être utilisé comme login si l'adhérent est lié à un utilisateur.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user