Добрый день!
У нас есть база клиентов. Хотим сделать отдельную таблицу платежей. В нее будут заноситься все поступившие платежи от всех клиентов, а также списания.
В связи с этим есть 2 задачи:
1. Выводить в поле "Баланс" у клиента сумму всех операций по данному клиенту. Путем выборки из таблицы всех операций по номеру договора или иному значению, и их сложения.
2. Производить ежемесячно списание платежа с баланса абонента путем автоматического внесения расходной записи в таблицу всех операций.
Есть ли возможность такую функцию реализовать путем имеющегося или запланированного в версии 2.3 функционала? Например, повторяющимися заданиями и MySQL запросами?
Функционал простенького биллинга
Re: Функционал простенького биллинга
Разверну мысль.
Я давно уже сам хочу написать пару внешних скриптов.
Первый будет отвечать за периодическое списание платежа. Путем поиска в таблице клиентов строк, где поле "дата платежа" совпадает с текущей (по числу месяца), при нахождении строки получать значение полей "договор" и "платеж", далее создавать в таблице "Список операций" запись о списании платежа, подставлять в поля "договор" и "платеж" полученные на предыдущем шаге значения.
Второй скрипт запускается раз в сутки. В таблице клиентов по очереди для каждой строки получает значение поля "договор", затем в таблице Список операций находит все записи, где поле "договор" соответствует полученному ранее значению, получает из всех записей значение поля "значение", суммирует и вставляет в поле "Баланс" в записи в таблице клиентов.
Для этого скрипта возможность ручного запуска при необходимости (если, напрмиер, делали коррекцию и нужно обновить баланс).
Так вот, анонсирован же функционал MySQL запрос для более сложных связей между сущностями. даст ли этот новый функционал возможность хотя бы отчасти реализовать описанное выше?
Я давно уже сам хочу написать пару внешних скриптов.
Первый будет отвечать за периодическое списание платежа. Путем поиска в таблице клиентов строк, где поле "дата платежа" совпадает с текущей (по числу месяца), при нахождении строки получать значение полей "договор" и "платеж", далее создавать в таблице "Список операций" запись о списании платежа, подставлять в поля "договор" и "платеж" полученные на предыдущем шаге значения.
Второй скрипт запускается раз в сутки. В таблице клиентов по очереди для каждой строки получает значение поля "договор", затем в таблице Список операций находит все записи, где поле "договор" соответствует полученному ранее значению, получает из всех записей значение поля "значение", суммирует и вставляет в поле "Баланс" в записи в таблице клиентов.
Для этого скрипта возможность ручного запуска при необходимости (если, напрмиер, делали коррекцию и нужно обновить баланс).
Так вот, анонсирован же функционал MySQL запрос для более сложных связей между сущностями. даст ли этот новый функционал возможность хотя бы отчасти реализовать описанное выше?
- support
- Техническая поддержка
- Сообщения: 7661
- Зарегистрирован: 19 окт 2014, 18:22
- Имя: Харчишин Сергей
- Откуда: Крым, Евпатория
Re: Функционал простенького биллинга
Бета версия доступна для тестирования, пробуйте, полагаю что с MySQL запросом должно получится.
Re: Функционал простенького биллинга
Судя по всему, подсчет текущего баланса по списку операций получится с помощью MySQL запроса. Но там тоже такой минус получается, что если ставить галку "выполнять динамически", то, как я понимаю, при каждом обращении к таблице будет выполняться запрос для каждой записи, а это может быть заметно долго, если много записей.
А вот ежемесячное списание, в принципе, с помощью повторяющихся действий можно сделать, но придется делать для каждого клиента отдельное повторяющееся задание. Получится очень громоздко все это, так как клиентов много.
А вот ежемесячное списание, в принципе, с помощью повторяющихся действий можно сделать, но придется делать для каждого клиента отдельное повторяющееся задание. Получится очень громоздко все это, так как клиентов много.