Fix: use another method

This commit is contained in:
Regis Houssin 2017-09-21 12:16:01 +02:00
parent 1f59e4f7e9
commit 01f9d59e75
5 changed files with 49 additions and 38 deletions

View File

@ -729,7 +729,15 @@ class Adherent extends CommonObject
// Check parameters
if (empty($rowid)) $rowid=$this->id;
$this->db->begin();
$this->db->begin();
if (! $error && ! $notrigger)
{
// Call trigger
$result=$this->call_trigger('MEMBER_DELETE',$user);
if ($result < 0) $error++;
// End call triggers
}
// Remove category
$sql = "DELETE FROM ".MAIN_DB_PREFIX."categorie_member WHERE fk_member = ".$rowid;
@ -797,14 +805,6 @@ class Adherent extends CommonObject
}
}
if (! $error && ! $notrigger)
{
// Call trigger
$result=$this->call_trigger('MEMBER_DELETE',$user);
if ($result < 0) $error++;
// End call triggers
}
if (! $error)
{
$this->db->commit();

View File

@ -256,10 +256,9 @@ class AdherentType extends CommonObject
* Fonction qui permet de recuperer le status de l'adherent
*
* @param int $rowid Id of member type to load
* @param bool $load_members Load members or not
* @return int <0 if KO, >0 if OK
*/
function fetch($rowid, $load_members = true)
function fetch($rowid)
{
$sql = "SELECT d.rowid, d.libelle as label, d.statut, d.subscription, d.mail_valid, d.note, d.vote";
$sql .= " FROM ".MAIN_DB_PREFIX."adherent_type as d";
@ -282,10 +281,6 @@ class AdherentType extends CommonObject
$this->mail_valid = $obj->mail_valid;
$this->note = $obj->note;
$this->vote = $obj->vote;
if ($load_members) {
$this->members=$this->listMembersForMemberType();
}
}
return 1;
@ -375,6 +370,8 @@ class AdherentType extends CommonObject
$this->db->free($resql);
$this->members=$ret;
return $ret;
}
else

View File

@ -154,6 +154,10 @@ if ($action == 'update' && $user->rights->adherent->configurer)
{
$object->fetch($rowid);
if (! empty($conf->global->LDAP_MEMBER_TYPE_ACTIVE) && (string) $conf->global->LDAP_MEMBER_TYPE_ACTIVE == '1') {
$object->listMembersForMemberType();
}
$object->oldcopy = clone $object;
$object->label = trim($label);

View File

@ -63,6 +63,8 @@ if (empty($reshook))
if ($result > 0)
{
$object->listMembersForMemberType();
$info = $object->_load_ldap_info();
$dn = $object->_load_ldap_dn($info);
$olddn = $dn; // We can say that old dn = dn as we force synchro

View File

@ -437,6 +437,7 @@ class InterfaceLdapsynchro extends DolibarrTriggers
if ($object->typeid > 0)
{
$membertype->fetch($object->typeid);
$membertype->listMembersForMemberType();
$oldinfo=$membertype->_load_ldap_info();
$olddn=$membertype->_load_ldap_dn($oldinfo);
@ -549,36 +550,38 @@ class InterfaceLdapsynchro extends DolibarrTriggers
// For member type
if (! empty($conf->global->LDAP_MEMBER_TYPE_ACTIVE) && (string) $conf->global->LDAP_MEMBER_TYPE_ACTIVE == '1')
{
/*
* Change member info
*/
$newmembertype=new AdherentType($this->db);
$newmembertype->fetch($object->typeid);
$newmembertype->listMembersForMemberType();
$oldinfo=$newmembertype->_load_ldap_info();
$olddn=$newmembertype->_load_ldap_dn($oldinfo);
// Verify if entry exist
$container=$newmembertype->_load_ldap_dn($oldinfo,1);
$search = "(".$newmembertype->_load_ldap_dn($oldinfo,2).")";
$records=$ldap->search($container,$search);
if (count($records) && $records['count'] == 0)
{
$olddn = '';
}
$info=$newmembertype->_load_ldap_info(); // Contains all members, included the new one (insert already done before trigger call)
$dn=$newmembertype->_load_ldap_dn($info);
$result=$ldap->update($dn,$info,$user,$olddn);
if ($object->oldcopy->typeid != $object->typeid)
{
/*
* Add member in new member type
*/
$newmembertype=new AdherentType($this->db);
$newmembertype->fetch($object->typeid);
$oldinfo=$newmembertype->_load_ldap_info();
$olddn=$newmembertype->_load_ldap_dn($oldinfo);
// Verify if entry exist
$container=$newmembertype->_load_ldap_dn($oldinfo,1);
$search = "(".$newmembertype->_load_ldap_dn($oldinfo,2).")";
$records=$ldap->search($container,$search);
if (count($records) && $records['count'] == 0)
{
$olddn = '';
}
$info=$newmembertype->_load_ldap_info(); // Contains all members, included the new one (insert already done before trigger call)
$dn=$newmembertype->_load_ldap_dn($info);
$result=$ldap->update($dn,$info,$user,$olddn);
/*
* Remove member in old member type
*/
$oldmembertype=new AdherentType($this->db);
$oldmembertype->fetch($object->oldcopy->typeid);
$oldmembertype->listMembersForMemberType();
$oldinfo=$oldmembertype->_load_ldap_info();
$olddn=$oldmembertype->_load_ldap_dn($oldinfo);
@ -676,6 +679,7 @@ class InterfaceLdapsynchro extends DolibarrTriggers
*/
$membertype=new AdherentType($this->db);
$membertype->fetch($object->typeid);
$membertype->listMembersForMemberType('a.rowid != ' . $object->id); // remove deleted member from the list
$oldinfo=$membertype->_load_ldap_info();
$olddn=$membertype->_load_ldap_dn($oldinfo);
@ -742,6 +746,8 @@ class InterfaceLdapsynchro extends DolibarrTriggers
$object->oldcopy = clone $object;
}
$object->oldcopy->listMembersForMemberType();
$oldinfo=$object->oldcopy->_load_ldap_info();
$olddn=$object->oldcopy->_load_ldap_dn($oldinfo);
@ -754,6 +760,8 @@ class InterfaceLdapsynchro extends DolibarrTriggers
$olddn = '';
}
$object->listMembersForMemberType();
$info=$object->_load_ldap_info();
$dn=$object->_load_ldap_dn($info);