Документация BILLmanager 6 Startup, Advanced

Удаление клиента

Администратор биллинговой платформы сможет удалить клиента через графический интерфейс, если:

  • клиент не совершил ни одного платежа;
  • клиент не имеет ненулевых расходов;
  • клиент не имеет ни одной активной услуги;
  • клиент не имеет открытых тикетов;
  • клиент не имеет активных подписок или профилей;
  • клиент не имеет незавёршенных заказов;
  • клиент не имеет неоплаченных счетов;
  • клиент не связан с реферальной программой;
  • клиент не имеет активных вознаграждений, бонусов или сертификатов.

В остальных случаях, необходимо выполнить запросы на удаление информации из базы данных billmgr:

set @account_id = <ИДЕНТИФИКАТОР_КЛИЕНТА>;
DELETE FROM expense WHERE subaccount IN (SELECT id FROM subaccount WHERE account = @account_id);
DELETE FROM payment WHERE subaccount IN (SELECT id FROM subaccount WHERE account = @account_id);
DELETE FROM ticket WHERE item IN (SELECT id FROM item WHERE account = AccountId OR parent IN (SELECT id FROM item WHERE account = AccountId));
DELETE FROM recurring WHERE profile IN (SELECT id FROM profile WHERE account = AccountId);
DELETE FROM billorder WHERE subaccount IN (SELECT id FROM subaccount WHERE account = @account_id);
UPDATE ip SET item = NULL WHERE item IN (SELECT id FROM item WHERE account = @account_id OR parent IN (SELECT id FROM item WHERE account = @account_id));
DELETE FROM invoiceitem where invoice in (SELECT id FROM invoice WHERE customer IN (SELECT id FROM profile WHERE account = @account_id));
DELETE FROM item WHERE parent IN (SELECT id FROM (SELECT id FROM item WHERE account = @account_id) itm);
DELETE FROM item WHERE account = @account_id;
DELETE FROM service_profile WHERE account = @account_id;
DELETE FROM invoice WHERE customer IN (SELECT id FROM profile WHERE account = @account_id);
DELETE FROM profile WHERE account = @account_id;
DELETE FROM ticket WHERE account_client = @account_id;
DELETE FROM user WHERE account = @account_id;
DELETE FROM affiliatereward WHERE account = @account_id OR referal = @account_id;
DELETE FROM account WHERE id = @account_id;

В результате выполнения этих запросов из биллинговой платформы будет удалена история взаимоотношений с клиентом, его финансовая информация и запросы в центр поддержки. При этом сохранятся файлы клиента: конфигурационные файлы, аватары и файлы, загруженные в запросах. 

После удаления информации перезапустите BILLmanager:

/usr/local/mgr5/sbin/mgrctl -m billmgr exit