Разработка:storages/accounts

Материал из DOF
Перейти к: навигация, поиск
Плагин
Название accounts
Тип storages


Таблица в базе данных

accounts - справочник счетов для учета биллинговых операций. Все операции по счетам хранятся в справочнике Разработка:storages/accentryes.

Подробный формат полей в таблице:

  • id - идентификатор счета.
  • plugintype - тип плагина-владельца счета.
  • plugincode - код плагина владельца счета.
  • code - код объекта в плагине (например, основной и бонусный счет).
  • objectid - id объекта, к которому привязан счет.
  • type - тип счета (asset - активный счет, passive - пассивный счет)
  • createdate - UTC создания счета
  • md5code - уникальный код счета для импорта-экспорта (если не задан - инициализируем уникальным значением на основе md5 от времени генерации, параметров счета и случайного числа).
  • name - название счета (удобно в некоторых случаях для отображения, без обращения к плагину-владельцу).
  • status - для мягкого удаления.

Дополнительные методы:

Публичные методы:

add_account($ptype, $pcode, $objectid, $code, $type, $name, $params, $status = 'active')

Добавить новый счет в Справочник на основе переданных данных

Аргументы:

  • $ptype(string) - Тип плагина-владельца.
  • $pcode(string) - Код плагина-владельца.
  • $objectid(int) - ID объекта - владельца.
  • $code(string) - код счета (main , additional и тп.).
  • $type(string) - тип счета (asset, passive и тп.).
  • $name(string) - имя счета.
  • $params(string) - параметры для определения уникальности счета.
  • $status(string) - статус счета.

Возвращаемые значения:

  • int - id счета.
  • bool - false в случае ошибки.

Структура работы:

  1. Создаем и заполняем объект для добавления в БД
  2. Проверяем, есть ли в БД счет с такими же параметрами ( md5 от $params ). Если счет найден, то метод возвращает false.
  3. Производим добавление в БД, Возвращаем результат выполнения.


find_accounts($begindate = 0, $enddate = 0, $ptype = , $pcode = , $objectid = 0, $code = , $type = , $name = , $params = , $status = )

Возвращает счета, удовлетворяющие переданным параметрам. Если статус не указан, то фильтрует удаленные записи.

Аргументы:

  • $begindate(int) - начальная дата создания договора. Unixtime. Возвращает записи, старше или равные этой дате
  • $enddate(int) - конечная дата создания договора. Unixtime. Возвращает записи, младше или равные этой дате. В совокупности с первым параметром позволяют установить временной интервал.
  • $ptype(string) - тип плагина-владельца. (storage, moodlib, im ...)
  • $pcode(string) - код плагина-владельца.
  • $objectid(int) - id объекта-владельца.
  • $code(string) - код счета (main , additional и тп.).
  • $type(string) - тип счета (asset, passive и тп.).
  • $name(string) - имя счета.
  • $params(string) - уникальные параметры счета, Фильтрация по полю md5code. Метод сам преобразует параметры в md5 строку.
  • $status(string) - статус счета. Если не указан, то возвращает все не удаленные записи, Если параметр передан, то возвращает записи только указанного статуса.

Возвращаемые значения:

  • array - массив объектов, удовлетворяющих критериям.
  • bool - false в случае ошибки.

Структура работы:

  1. Метод формирует фрагмент sql - запроса.
  2. С помощью метода get_records_select получаем результат поиска в виде массива объектов.

Приватные методы:

get_hash ($data)

Возвращает md5-хэш из строки или массива

Аргументы:

  • $data(string|array) - строка параметра счета, или массив параметоров

Возвращаемые значения:

  • string - md5-хэш