Разработка:storages/accentryes
Плагин | |
Название | accentryes |
Тип | storages |
Содержание
- 1 Таблица в базе данных
- 2 Дополнительные методы:
- 2.1 Публичные методы:
- 2.2 generate_accentry_record($fromid, $toid, $amount, $date, $extentryopts, $orderid = null, $about = , $status = )
- 2.3 add_accentry($accentryobj)
- 2.4 change_status($accentryid, $status )
- 2.5 get_history($accountid,$begindate=null,$enddate=null)
- 2.6 get_account_balance($accountid,$date)
- 2.7 Приватные методы:
- 2.8 get_extentryoptshash($extentryopts)
Таблица в базе данных
accentryes - справочник операций по счетам. Все счета хранятся в справочнике Разработка:storages/accounts.
Подробный формат полей в таблице:
- id - id операции.
- fromid - id счета-источника.
- toid - id счета-получателя.
- amount - сумма операции.
- orderid - id приказа, на основании которого совершена операция.
- createdate - дата фактической региcтрации проводки.
- date - дата выполнения операции.
- extentryopts - массив с опциями внешнего ключа.
- extentryoptshash - хеш опций внешнего ключа.
- about - пояснение операции.
- status - статус операции.
Дополнительные методы:
Публичные методы:
generate_accentry_record($fromid, $toid, $amount, $date, $extentryopts, $orderid = null, $about = , $status = )
Генерируем объект операции
Метод генерации объекта операции.
Аргументы:
- $fromid(int) - счет, с которого списываем сумму.
- $toid(int) - счет, на который переводим сумму.
- $amount(float) - сумма операции.
- $date(int) - дата, когда необходимо провести операцию.
- $extentryopts(array) - массив опций внешнего ключа.
- $orderid(int) - Id операции, в общем случае добавляется после формирования приказа
- $about(string) - описание операции.
- $status(string) - статус операции.
Возвращаемые значения:
- object - объект операции.
- bool - false в случае ошибки.
Пояснения: Метод создан для предотвращения циклической зависимости между storage/accentryes и modlib/billing. Для добавления операции мы должны сначала создать приказ, который содержит в себе объект операции. Поэтому для добавления операции мы должны сгенерировать ее объект с помощью данного метоода, затем передать операцию в приказ и создать его, а после этого уже добавить транзакцию в справочник с дозаполненным полем "id приказа".
add_accentry($accentryobj)
Добавить проводку
Добавить проводку на основе передаваемого объекта В объекте должны быть указаны все необходимые поля, а именно
> fromid > toid > amount > orderid > createdate > date > extentryopts > extentryoptshash > about > status
Аргументы:
- object $accentryobj - Объект операции
Возвращаемые значения:
- object - объект операции
- bool - false в случае ошибки
change_status($accentryid, $status )
Сменить статус проводки
Сменяет статус у объекта с переданным id
Аргументы:
- $accentryid(int) - id объекта операции
- $status(string) - статус
Возвращаемые значения:
- bool - false в случае ошибки, true в случае успеха
get_history($accountid,$begindate=null,$enddate=null)
Получает историю операций по счету за определенный период.
Аргументы:
- $accountid(int) - id счета.
- $begindate(int) - начальная дата, если null - не учитывается.
- $enddate(int) - конечная дата, если null - не учитывается.
Возвращаемые значения:
- array - массив операций.
- bool - false в случае ошибки.
Структура работы:
- Метод проверяет входные данные.
- Производится формирование sql-фрагмента кода
- Подсчитывается баланс по счету после каждой проведенной операции, операции, не удовлетворяющие условию по времени, удаляются.
get_account_balance($accountid,$date)
Возвращает баланс по счету $accountid на дату $date.
Аргументы:
- $accountid(int) - id счета.
- $date(int) - дата, на которую необходимо получить баланс.
Возвращаемые значения:
- float - баланс по счету.
Структура работы:
- Метод получает историю по аккаунту до даты $date
- Проверяются данные истории. Если история - пустой массив, тогда баланс = 0, если false, то произошла ошибка.
- Возвращаем баланс или false в случае ошибки
Приватные методы:
get_extentryoptshash($extentryopts)
Возвращает md5-хэш от массива опций.
Аргументы:
- $extentryopts(array) - массив опций
Возвращаемые значения:
- string - хэш.