Экспорт данных из BGBilling для Сбербанка

Для приема платежей, Сбербанк требует базу абонентов в определенном формате.

Для экспорта базы абонентов из BGBilling можно воспользоваться следующим SQL-запросом.

SELECT c.title, cp1.val, CONCAT(ac.title, ',', ast.title, ',д.', ah.house, ah.frac, ',кв.', cp2.flat), REPLACE(CAST(-cb.summa AS CHAR), '.', ',')
FROM contract AS c INNER JOIN contract_parameter_type_1 AS cp1 ON c.id = cp1.cid
INNER JOIN contract_parameter_type_2 AS cp2 ON c.id = cp2.cid
INNER JOIN address_house AS ah ON cp2.hid = ah.id
INNER JOIN address_street AS ast ON ah.streetid = ast.id
INNER JOIN address_city AS ac ON ast.cityid = ac.id
LEFT JOIN (
  SELECT cid, summa1 + summa2 - summa3 - summa4 AS summa FROM contract_balance
  WHERE yy*12+mm = (
    SELECT MAX(yy*12+mm)
    FROM contract_balance as cb
    WHERE cb.cid = contract_balance.cid
  )
) AS cb
ON c.id = cb.cid
WHERE cp1.pid = {{ FIO_PARAMETER_ID }} AND cp2.pid = {{ ADDRESS_PARAMETER_ID }}
ORDER BY c.id;

Перед использованием необходимо указать параметры:

{{ FIO_PARAMETER_ID }} -- идентификатор параметра, в котором хранится ФИО абонента.

{{ ADDRESS_PARAMETER_ID }} -- идентификатор параметра, в котором хранится адрес абонента.