FIX : $childtablesoncascade use + fix $permissiontodelete

This commit is contained in:
Gauthier PC portable 024 2021-10-20 09:48:26 +02:00
parent 210926d23a
commit 738f6a90b2
2 changed files with 7 additions and 7 deletions

View File

@ -170,7 +170,7 @@ class StockTransfer extends CommonObject
* If name matches '@ClassNAme:FilePathClass;ParentFkFieldName' it will * If name matches '@ClassNAme:FilePathClass;ParentFkFieldName' it will
* call method deleteByParentField(parentId, ParentFkFieldName) to fetch and delete child object * 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 * @var StockTransferLine[] Array of subtable lines
@ -487,12 +487,11 @@ class StockTransfer extends CommonObject
*/ */
public function delete(User $user, $notrigger = false) public function delete(User $user, $notrigger = false)
{ {
if (empty($this->lines)) $this->fetchLines(); if($this->status > self::STATUS_VALIDATED) {
if (!empty($this->lines)) { return 0;
foreach ($this->lines as $l) $res = $this->deleteLine($user, $l->id); } else {
return $this->deleteCommon($user, $notrigger);
} }
return $this->deleteCommon($user, $notrigger);
//return $this->deleteCommon($user, $notrigger, 1);
} }
/** /**

View File

@ -117,6 +117,7 @@ include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be includ
$permissiontoread = $user->rights->stocktransfer->stocktransfer->read; $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 $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 $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 $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]; $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 // 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'; 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); $permissiontodelete = $user->rights->stocktransfer->stocktransfer->delete || ($permissiontoadd && isset($object->status) && $object->status == $object::STATUS_DRAFT);
// Actions when linking object each other // Actions when linking object each other