Форум A4on.TV и ПО "Атирра"
Программный продукт "Атирра" => Вопросы по работе программы => Тема начата: inettel от Марта 04, 2015, 13:20:41
-
Добрый день, нужна помощь с SQL со следующими запросами:
- выбрать все услуги у абонента, с определенным ACCOUNT_NO
- удалить услугу у абонента
- добавить услугу абоненту
И вопрос, как будет рассчитываться оплата, если данное действие произвести в середине месяца (смена услуги с одной стоимостью, на услугу с другой стоимостью)
Спасибо
-
1.
select
s.Service_Id -- ИД услуги
, s.Name -- Название услуги
from services s
inner join subscr_hist sh on (s.Service_Id = sh.Serv_Id)
inner join customer c on (sh.Customer_Id = c.Customer_Id)
where current_date between sh.Date_From and sh.Date_To
and c.Account_No = '111'
2. Удалить или отключить?
Код отключения услуги
execute procedure Onoff_Service_By_Id(
:Customer_Id -- Ид абонента
, :Serv_Id -- Ид услуги
, :Actservice -- Какой услугой отключаем
, :Date -- Дата отключения, должна быть больше даты подключения
, 1 -- признак того что отключаем
, :Notice -- примечание
, :Units -- 1 или сумма стоимсоть отключения
);
3. Добавление а не включение услуги
execute procedure Add_Subscr_Service(
:Customer_Id -- Ид абонента
, :Serv_Id -- Ид услуги
, :Actservice -- Какой услугой подключаем
, :Date -- Дата подключения
, :Notice -- примечание
, :Units -- 1 или сумма стоимсоть отключения
, null -- договор или null если не нужен
, null -- дата договора или null если не нужен
);
Оплата рассчитывается для каждого типа услуг по разному.
если периодическая услуга рассчитывается пропорционально подключенным дням, т.е. за фактически подключенные дни, то так и абонплата будет только за эти дни.
если алгоритм начисления 0 или полная абонплата если абонент подключен более Х дней, то будет 0 или полная абонплата.
Что мешает проверить начисления на тестовом абоненте?
создайте абонента. "поиграйте" с услугами. удалите абонента.
-
Спасибо, буду пробовать.