Разработка:storages/accentryes — различия между версиями
(не показана 1 промежуточная версия этого же участника) | |||
Строка 24: | Строка 24: | ||
===='''Публичные методы:'''==== | ===='''Публичные методы:'''==== | ||
− | ====''' | + | ===='''generate_accentry_record($fromid, $toid, $amount, $date, $extentryopts, $orderid = null, $about = '', $status = '')'''==== |
− | + | Генерируем объект операции | |
+ | |||
+ | Метод генерации объекта операции. | ||
''Аргументы:'' | ''Аргументы:'' | ||
Строка 32: | Строка 34: | ||
* $toid(int) - счет, на который переводим сумму. | * $toid(int) - счет, на который переводим сумму. | ||
* $amount(float) - сумма операции. | * $amount(float) - сумма операции. | ||
− | |||
* $date(int) - дата, когда необходимо провести операцию. | * $date(int) - дата, когда необходимо провести операцию. | ||
* $extentryopts(array) - массив опций внешнего ключа. | * $extentryopts(array) - массив опций внешнего ключа. | ||
+ | * $orderid(int) - Id операции, в общем случае добавляется после формирования приказа | ||
* $about(string) - описание операции. | * $about(string) - описание операции. | ||
* $status(string) - статус операции. | * $status(string) - статус операции. | ||
Строка 42: | Строка 44: | ||
* bool - false в случае ошибки. | * 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) '''==== | ===='''get_history($accountid,$begindate=null,$enddate=null) '''==== | ||
Строка 80: | Строка 119: | ||
# Проверяются данные истории. Если история - пустой массив, тогда баланс = 0, если false, то произошла ошибка. | # Проверяются данные истории. Если история - пустой массив, тогда баланс = 0, если false, то произошла ошибка. | ||
# Возвращаем баланс или false в случае ошибки | # Возвращаем баланс или false в случае ошибки | ||
+ | |||
===='''Приватные методы:'''==== | ===='''Приватные методы:'''==== |
Текущая версия на 10:14, 1 декабря 2014
Плагин | |
Название | 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 - хэш.