diff --git a/htdocs/product/stock/stocktransfer/class/stocktransfer.class.php b/htdocs/product/stock/stocktransfer/class/stocktransfer.class.php index acd60346fe1..d6183242453 100644 --- a/htdocs/product/stock/stocktransfer/class/stocktransfer.class.php +++ b/htdocs/product/stock/stocktransfer/class/stocktransfer.class.php @@ -170,7 +170,7 @@ class StockTransfer extends CommonObject * If name matches '@ClassNAme:FilePathClass;ParentFkFieldName' it will * call method deleteByParentField(parentId, ParentFkFieldName) to fetch and delete child object */ - //protected $childtablesoncascade = array('stocktransfer_stocktransferdet'); + protected $childtablesoncascade = array('stocktransfer_stocktransferline'); /** * @var StockTransferLine[] Array of subtable lines @@ -487,12 +487,11 @@ class StockTransfer extends CommonObject */ public function delete(User $user, $notrigger = false) { - if (empty($this->lines)) $this->fetchLines(); - if (!empty($this->lines)) { - foreach ($this->lines as $l) $res = $this->deleteLine($user, $l->id); + if($this->status > self::STATUS_VALIDATED) { + return 0; + } else { + return $this->deleteCommon($user, $notrigger); } - return $this->deleteCommon($user, $notrigger); - //return $this->deleteCommon($user, $notrigger, 1); } /** diff --git a/htdocs/product/stock/stocktransfer/stocktransfer_card.php b/htdocs/product/stock/stocktransfer/stocktransfer_card.php index 7a2c3547bd8..07613883497 100644 --- a/htdocs/product/stock/stocktransfer/stocktransfer_card.php +++ b/htdocs/product/stock/stocktransfer/stocktransfer_card.php @@ -117,6 +117,7 @@ include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be includ $permissiontoread = $user->rights->stocktransfer->stocktransfer->read; $permissiontoadd = $user->rights->stocktransfer->stocktransfer->write; // Used by the include of actions_addupdatedelete.inc.php and actions_lineupdown.inc.php $permissionnote = $user->rights->stocktransfer->stocktransfer->write; // Used by the include of actions_setnotes.inc.php +$permissiontodelete = $user->rights->stocktransfer->stocktransfer->delete || ($permissiontoadd && isset($object->status) && $object->status == $object::STATUS_DRAFT); $permissiondellink = $user->rights->stocktransfer->stocktransfer->write; // Used by the include of actions_dellink.inc.php $upload_dir = $conf->stocktransfer->multidir_output[isset($object->entity) ? $object->entity : 1]; @@ -157,7 +158,7 @@ if (empty($reshook)) { // Actions cancel, add, update, update_extras, confirm_validate, confirm_delete, confirm_deleteline, confirm_clone, confirm_close, confirm_setdraft, confirm_reopen include DOL_DOCUMENT_ROOT.'/core/actions_addupdatedelete.inc.php'; - // On met cette permission ici car nécessaire d'avoir le dernier statut de l'objet après toute action exécutée dessus + // On remet cette lecture de permission ici car nécessaire d'avoir le nouveau statut de l'objet après toute action exécutée dessus (après incrémentation par exemple, le bouton supprimer doit disparaître) $permissiontodelete = $user->rights->stocktransfer->stocktransfer->delete || ($permissiontoadd && isset($object->status) && $object->status == $object::STATUS_DRAFT); // Actions when linking object each other