Учет услуг сотовой связи (постановка)

Материал из GedeminWiki
Перейти к: навигация, поиск

Исходный файл (Excel или XML) мы обрабатываем последовательно. Распознав запись, мы берем из нее следующую информацию:

  • Дата и время
  • Тип услуги
  • Абонент
  • Стоимость

Зная абонента -- определяем его группу. По группе и типу услуги берем правило распределения затрат и вычисляем какую сумму возьмет на себя предприятие, а какую абонент покроет из своей зарплаты.

На выходе, после обработки исходного файла, мы должны получить список абонентов и две суммы для каждого: "на затраты" и "из зарплаты". Если для группы абонента установлен лимит, то проверяем сумму "на затраты" и ее превышение над лимитом переносим на вычет из зарплаты.

Лимиты устанавливаются для каждой группы абонентов. Сумма в пределах лимита покрывается предприятием. Сверх этой суммы -- оплачивает работник. Лимит действует с определенной даты до того момента, пока не будет изменен следующим установленным значением.

После этого оператор может вручную изменить (подкореетировать) сумму, которая будет возмещаться предприятием.

Правила устанавливаются для группы и конкретной услуги. В правиле мы указываем следующие параметры:

  • Рабочее время согласно графика -- Если признак установлен, то рабочее время учитывается согласно графика работы. Информации берется из подсистемы Кадры и Зарплата. Звонки в рабочее время оплачиваются предприятием. Вне рабочего времени -- сотрудником. Если признак установлен, то не действуют поля с временными интервалами.


/*
 * Домены
 *
 */
 
CREATE DOMAIN usr$call_dphone 
  VARCHAR(12)
  CHECK(VALUE SIMILAR TO '[0-9]{5,12}');
 
-- ссылка на GD_VALUE
usr$call_dvaluekey
 
-- обязательная ссылка на услугу
usr$call_dservicekey 
 
/* 
 *  Все номера телефонов, которые появляются в листинге.
 *  Храним только цифры без разделителей, плюсов, скобок и т.п.
 *  Флагом помечаем номера нашего предприятия. 
 */
 
CREATE TABLE usr$call_phone (
  id             dintkey,
  usr$phone      usr$call_dphone,
  usr$our        dboolean_notnull
);
 
/* 
 *  Список услуг: телефонный звонок, СМС, звонок в роуминге,
 *  звонок на стационарную сеть и т.п. 
 *  Единица измерения услуги -- ссылка на стандартный 
 *  справочник GD_VALUE.
 */
 
CREATE TABLE usr$call_service (
  id             dintkey,
  usr$name       dname,
  usr$valuekey   usr$call_dvaluekey
);
 
/* 
 *  Хронология звонков, услуг и т.п.
 *  Указывается объем и/или продолжительность. 
 */
 
CREATE TABLE usr$call_history (
  id             dintkey,
  usr$date       DATE NOT NULL,
  usr$time       TIME NOT NULL,
  usr$from       usr$call_dphonekey NOT NULL,
  usr$to         usr$call_dphonekey,
  usr$volume     usr$call_dvolume,
  usr$duration   TIME,
  usr$servicekey usr$call_dservicekey,
  usr$cost       usr$call_dcost NOT NULL 
);
 
/* 
 *  История перехода СИМ карт из рук в руки.
 *  Если карточка никому не назначена -- 
 *  usr$employeekey IS NULL 
 */
 
CREATE TABLE usr$call_phonelink (
  id              dintkey,
  usr$phonekey    usr$call_dphonekey NOT NULL,
  usr$employeekey usr$call_employeekey,
  usr$fromdate    DATE NOT NULL
);
 
/* 
 *  Список групп абонентов.
 *  Правила вычета денег привязаны к группам.
 *  
 */
 
CREATE TABLE usr$call_group (
  id              dintkey,
  usr$name        dname,
  usr$comment     dtext1024,
/*добавлено 17.08.2011*/
  usr$limit       usr$call_dcost,
  usr$fromdate        ddate NOT NULL
/**/
);
 
/* 
 *  Привязка номера к группе.
 *  
 */
 
CREATE TABLE usr$call_grouplink (
  id              dintkey,
/*Изменения 17.08.2011*/
  /*usr$groupkey    dintkey,*/
  usr$groupkey    usr$call_dgroupkey,
  /*usr$phonekey    dintkey,*/
  usr$phonekey    usr$call_dphonekey,
/**/
  usr$fromdate    DATE NOT NULL
);
 
/* 
 *  Правила. 
 *  
 *  
 *  
 *  
 *  
 */
 
CREATE TABLE usr$call_rule (
  id                 dintkey,
  usr$name           dname,
  usr$servicekey     usr$call_dservicekey
);
 
/* 
 *  Привязка правил к группе. 
 *  
 *  
 */
 
CREATE TABLE usr$call_grouprule (
  id                 dintkey,
  usr$call_rulekey   usr$call_drulekey,
  usr$call_groupkey  usr$call_dgroupkey,
  usr$fromdate       DATE NOT NULL
);
Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты