FIX Multiccompany sharings compatibility
This commit is contained in:
parent
872cbd1fdc
commit
e8dae7a8db
@ -4374,9 +4374,10 @@ abstract class CommonObject
|
||||
* Check is done into this->childtables. There is no check into llx_element_element.
|
||||
*
|
||||
* @param int $id Force id of object
|
||||
* @param int $entity Force entity to check
|
||||
* @return int <0 if KO, 0 if not used, >0 if already used
|
||||
*/
|
||||
public function isObjectUsed($id = 0)
|
||||
public function isObjectUsed($id = 0, $entity = 0)
|
||||
{
|
||||
global $langs;
|
||||
|
||||
@ -4399,11 +4400,21 @@ abstract class CommonObject
|
||||
|
||||
// Test if child exists
|
||||
$haschild = 0;
|
||||
foreach ($arraytoscan as $table => $elementname) {
|
||||
foreach ($arraytoscan as $table => $element) {
|
||||
//print $id.'-'.$table.'-'.$elementname.'<br>';
|
||||
// Check if third party can be deleted
|
||||
$sql = "SELECT COUNT(*) as nb from ".$this->db->prefix().$table;
|
||||
$sql .= " WHERE ".$this->fk_element." = ".((int) $id);
|
||||
// Check if element can be deleted
|
||||
$sql = "SELECT COUNT(*) as nb";
|
||||
$sql.= " FROM ".$this->db->prefix().$table." as c";
|
||||
if (!empty($element['parent']) && !empty($element['parentkey'])) {
|
||||
$sql.= ", ".$this->db->prefix().$element['parent']." as p";
|
||||
}
|
||||
$sql.= " WHERE c.".$this->fk_element." = ".((int) $id);
|
||||
if (!empty($element['parent']) && !empty($element['parentkey'])) {
|
||||
$sql.= " AND c.".$element['parentkey']." = p.rowid";
|
||||
}
|
||||
if (!empty($entity)) {
|
||||
$sql.= " AND entity = ".((int) $entity);
|
||||
}
|
||||
$resql = $this->db->query($sql);
|
||||
if ($resql) {
|
||||
$obj = $this->db->fetch_object($resql);
|
||||
@ -4411,11 +4422,10 @@ abstract class CommonObject
|
||||
$langs->load("errors");
|
||||
//print 'Found into table '.$table.', type '.$langs->transnoentitiesnoconv($elementname).', haschild='.$haschild;
|
||||
$haschild += $obj->nb;
|
||||
if (is_numeric($elementname)) { // old usage
|
||||
$this->errors[] = $langs->transnoentities("ErrorRecordHasAtLeastOneChildOfType", method_exists($this, 'getNomUrl') ? $this->getNomUrl() : $this->ref, $table);
|
||||
} else // new usage: $elementname=Translation key
|
||||
{
|
||||
$this->errors[] = $langs->transnoentities("ErrorRecordHasAtLeastOneChildOfType", method_exists($this, 'getNomUrl') ? $this->getNomUrl() : $this->ref, $langs->transnoentitiesnoconv($elementname));
|
||||
if (is_numeric($element) || empty($element['name'])) { // old usage
|
||||
$this->errors[] = $langs->trans("ErrorRecordHasAtLeastOneChildOfType", method_exists($this, 'getNomUrl') ? $this->getNomUrl() : $this->ref, $table);
|
||||
} else { // new usage: $element['name']=Translation key
|
||||
$this->errors[] = $langs->trans("ErrorRecordHasAtLeastOneChildOfType", method_exists($this, 'getNomUrl') ? $this->getNomUrl() : $this->ref, $langs->transnoentitiesnoconv($element['name']));
|
||||
}
|
||||
break; // We found at least one, we stop here
|
||||
}
|
||||
|
||||
@ -64,13 +64,13 @@ class Product extends CommonObject
|
||||
* @var array List of child tables. To test if we can delete object.
|
||||
*/
|
||||
protected $childtables = array(
|
||||
'supplier_proposaldet',
|
||||
'propaldet',
|
||||
'commandedet',
|
||||
'facturedet',
|
||||
'contratdet',
|
||||
'facture_fourn_det',
|
||||
'commande_fournisseurdet'
|
||||
'supplier_proposaldet' => array('parent' => 'supplier_proposal', 'parentkey' => 'fk_supplier_proposal'),
|
||||
'propaldet' => array('parent' => 'propal', 'parentkey' => 'fk_propal'),
|
||||
'commandedet' => array('parent' => 'commande', 'parentkey' => 'fk_commande'),
|
||||
'facturedet' => array('parent' => 'facture', 'parentkey' => 'fk_facture'),
|
||||
'contratdet' => array('parent' => 'contrat', 'parentkey' => 'fk_contrat'),
|
||||
'facture_fourn_det' => array('parent' => 'facture_fourn', 'parentkey' => 'fk_facture_fourn'),
|
||||
'commande_fournisseurdet' => array('parent' => 'commande_fournisseur', 'parentkey' => 'fk_commande')
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
@ -73,18 +73,18 @@ class Societe extends CommonObject
|
||||
* @var array List of child tables. To test if we can delete object.
|
||||
*/
|
||||
protected $childtables = array(
|
||||
"supplier_proposal" => 'SupplierProposal',
|
||||
"propal" => 'Proposal',
|
||||
"commande" => 'Order',
|
||||
"facture" => 'Invoice',
|
||||
"facture_rec" => 'RecurringInvoiceTemplate',
|
||||
"contrat" => 'Contract',
|
||||
"fichinter" => 'Fichinter',
|
||||
"facture_fourn" => 'SupplierInvoice',
|
||||
"commande_fournisseur" => 'SupplierOrder',
|
||||
"projet" => 'Project',
|
||||
"expedition" => 'Shipment',
|
||||
"prelevement_lignes" => 'DirectDebitRecord',
|
||||
"supplier_proposal" => array('name' => 'SupplierProposal'),
|
||||
"propal" => array('name' => 'Proposal'),
|
||||
"commande" => array('name' => 'Order'),
|
||||
"facture" => array('name' => 'Invoice'),
|
||||
"facture_rec" => array('name' => 'RecurringInvoiceTemplate'),
|
||||
"contrat" => array('name' => 'Contract'),
|
||||
"fichinter" => array('name' => 'Fichinter'),
|
||||
"facture_fourn" => array('name' => 'SupplierInvoice'),
|
||||
"commande_fournisseur" => array('name' => 'SupplierOrder'),
|
||||
"projet" => array('name' => 'Project'),
|
||||
"expedition" => array('name' => 'Shipment'),
|
||||
"prelevement_lignes" => array('name' => 'DirectDebitRecord'),
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Loading…
Reference in New Issue
Block a user