}
/**
- * Remove member from all his groups
+ * Remove members from all their groups
*
- * @param int $id Member's id
+ * @param array $ids Members ids
*
* @return void
*/
- public static function removeMemberFromGroups($id)
+ public static function removeMembersFromGroups(array $ids)
{
global $zdb;
+
try {
- //first, remove current groups members
$del_qry = $zdb->delete(Group::GROUPSUSERS_TABLE);
- $del_qry->where(
- Adherent::PK . ' = ' . $id
- );
+ $del_qry->where->in(Adherent::PK, $ids);
$zdb->execute($del_qry);
- //first, remove current groups members
$del_qry = $zdb->delete(Group::GROUPSMANAGERS_TABLE);
- $del_qry->where(
- Adherent::PK . ' = ' . $id
- );
+ $del_qry->where->in(Adherent::PK, $ids);
$zdb->execute($del_qry);
} catch (\Exception $e) {
Analog::log(
}
}
+ /**
+ * Remove member from all his groups
+ *
+ * @param int $id Member's id
+ *
+ * @return void
+ */
+ public static function removeMemberFromGroups($id)
+ {
+ self::removeMembersFromGroups([$id]);
+ }
+
/**
* Check if groupname is unique
*
self::PK,
$list
);
- $del = $zdb->execute($del_qry);
+ $zdb->execute($del_qry);
//get transactions
$select = $zdb->select(Transaction::TABLE);
//reset link with other contributions
//and remove them
if ($results->count() > 0) {
+ $transactions = [];
foreach ($results as $transaction) {
- $update = $zdb->update(Contribution::TABLE);
- $update->set([
- Transaction::PK => new Expression('NULL')
- ])->where([
- Transaction::PK => $transaction[Transaction::PK]
- ]);
- $zdb->execute($update);
+ $transactions[] = $transaction[Transaction::PK];
}
- //delete transactions
- $del_qry = $zdb->delete(Transaction::TABLE);
- $del_qry->where->in(self::PK, $list);
- $del = $zdb->execute($del_qry);
+ $update = $zdb->update(Contribution::TABLE);
+ $update->set([
+ Transaction::PK => new Expression('NULL')
+ ])->where->in(
+ Transaction::PK,
+ $transactions
+ );
+ $zdb->execute($update);
}
+ //delete transactions
+ $del_qry = $zdb->delete(Transaction::TABLE);
+ $del_qry->where->in(self::PK, $list);
+ $zdb->execute($del_qry);
+
//delete groups membership/mamagmentship
- $del = Groups::removeMemberFromGroups((int)$member->id_adh);
+ Groups::removeMembersFromGroups($list);
//delete reminders
$del_qry = $zdb->delete(Reminder::TABLE);
'reminder_dest',
$list
);
- $del = $zdb->execute($del_qry);
+ $zdb->execute($del_qry);
//delete dynamic fields values
$del_qry = $zdb->delete(DynamicFieldsHandle::TABLE);
$del_qry->where(['field_form' => 'adh']);
$del_qry->where->in('item_id', $list);
- $del = $zdb->execute($del_qry);
+ $zdb->execute($del_qry);
//delete members
$del_qry = $zdb->delete(self::TABLE);
self::PK,
$list
);
- $del = $zdb->execute($del_qry);
+ $zdb->execute($del_qry);
//commit all changes
$zdb->connection->commit();