Package ru.bitel.bgbilling.modules.voice.common.service

# Interface VoiceCostMapService

@MTOM(enabled=true, threshold=1024) public interface VoiceCostMapService
Сервис для работы с картами цен. Позволяет создавать, редактировать, удалять карты цен и элементы карт цен.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `List<VoiceCostMapItem>`
  `costMapItemHistory(int codeId, int costMapId)`
  История кода в карте цен
  `void`
  `exportCostMap()`
  Экспорт карты цен в файл.
  `void`
  `importCostMap(int operatorId, int costMapId, Period period, boolean addNewGeocodes, String importerId, String importContent)`
  Импорт элементов карты цен.
  `org.json.JSONArray`
  `importTemplateList()`
  `int`
  `voiceCostMapDelete(int costMapId)`
  Удаление карты цен из БД.
  `int`
  `voiceCostMapItemDelete(List<Integer> itemIds)`
  Удаление элемента (ов) карты цен по его идентификатору.
  `void`
  `voiceCostMapItemDeleteAll(int costMapId)`
  Удаление всех элементов карты цен.
  `VoiceCostMapItem`
  `voiceCostMapItemGet(int itemId)`
  Получение одного конкретного элемента карты цен по его идентификатору.
  `String`
  `voiceCostMapItemTree(int costMapId, Date date)`
  Получение списка элементов у карты цен.
  `int`
  `voiceCostMapItemUpdate(VoiceCostMapItem item)`
  Добавление/редактирование элемента карты цен.
  `List<VoiceCostMap>`
  `voiceCostMapList(int operatorId)`
  Получение общего списка карт цен.
  `List<ru.bitel.bgbilling.modules.voice.common.dto.VoiceCostMapRangeItem>`
  `voiceCostMapRangeItems(int costMapId, Date onDate)`
  `List<VoiceCostMapRange>`
  `voiceCostMapRangeList(int costMapId, Date onDate)`
  `int`
  `voiceCostMapRangeUpdate(VoiceCostMapRange data)`
  `int`
  `voiceCostMapUpdate(VoiceCostMap costMap)`
  Добавление/Редактирование карты цен в БД.

- ## Method Details

  - ### voiceCostMapList

    List<VoiceCostMap> voiceCostMapList(int operatorId) throws Exception
    Получение общего списка карт цен.
    Returns:
      список карт цен.

  - ### voiceCostMapUpdate

    int voiceCostMapUpdate(VoiceCostMap costMap) throws Exception
    Добавление/Редактирование карты цен в БД.
    Parameters:
      `costMap` - карта цен.
    Returns:
      код добавленной/обновленной записи.

  - ### voiceCostMapDelete

    int voiceCostMapDelete(int costMapId) throws Exception
    Удаление карты цен из БД.
    Parameters:
      `costMapId` - код удаляемой карты цен.
    Returns:
      код удаленной карты цен.

  - ### voiceCostMapItemTree

    String voiceCostMapItemTree(int costMapId, Date date) throws Exception
    Получение списка элементов у карты цен.
    Parameters:
      `costMapId` - код карты цен.
      `date` - дата, на которую выводится дерево с элементами карты цен
      `content` - содержимое дерева элементов карты цен, представленное в виде сериализованного стандартными средствами Java объекта VoiceCostMapItem (строка base64)

  - ### voiceCostMapItemGet

    VoiceCostMapItem voiceCostMapItemGet(int itemId) throws Exception
    Получение одного конкретного элемента карты цен по его идентификатору.
    Parameters:
      `itemId` - id элемента
    Returns:
      элемент карты цен

  - ### voiceCostMapItemUpdate

    int voiceCostMapItemUpdate(VoiceCostMapItem item) throws Exception
    Добавление/редактирование элемента карты цен.
    Parameters:
      `item` - добавляемый/редактируемый элемент карты цен.
    Returns:
      код добавленного/отредактированного элемента карты цен.

  - ### voiceCostMapItemDelete

    int voiceCostMapItemDelete(List<Integer> itemIds) throws Exception
    Удаление элемента (ов) карты цен по его идентификатору.
    Parameters:
      `itemIds` - список id элементов карты цен, подлежащих удалению.
    Returns:
      кол-во удаленных элементов

  - ### importCostMap

    void importCostMap(int operatorId, int costMapId, Period period, boolean addNewGeocodes, String importerId, String importContent) throws Exception
    Импорт элементов карты цен. Поддерживаемые форматы:
    - code cost
    - code dateFrom dateTo cost
    - code dest cost
    - code dest dateFrom dateTo cost
    Разделителем полей в строках является символ табуляции ('\t').
    Поле code имеет жесткую связь с справочником географических кодов (а он, в свою очередь, с справочником направлений), поэтому если соответствующий геокод будет отсутствовать в справочнике, то такая строка проигнорируется. При установке флага addNewGeocodes недостающий геокод будет добавлен в справочник, но при условии, что заполнено поле dest, т.к. соответствующее направление также должно добавляться при отсутствии направления в справочнике направлений.
    Поле dest при наличии должно содержать название направление для данного кода. Это название должно в точности совпадать с тем, что прописано в справочнике направлений для данного code. В поле cost должно быть вещественное число с точностью до 5 знаков после запятой включительно (ограничение БД). В случае, если поле cost содержит некорректное значение (например, алфавитные символы) или это поле вообще не заполнено, то значением данного поля будет 0.00000 по умолчанию.
    Поля dateFrom и dateTo должны содержать дату в формате dd.MM.yyyy. Если одно из них (или оба одновременно) не заполнено, то считается, что это поле равно бесконечности.
    Parameters:
      `operatorId` -
      `costMapId` - код карты цен, в которую импортируются элементы
      `period` - период, устанавливаемый у элементов
      `addNewGeocodes` - отвечает за возможность добавления на лету в справочник направлений и геокодов новых элементов, которые отсутствуют в справочнике.
      `importerId` -
      `importContent` - содержимое

  - ### exportCostMap

    void exportCostMap() throws Exception
    Экспорт карты цен в файл.

  - ### voiceCostMapItemDeleteAll

    void voiceCostMapItemDeleteAll(int costMapId) throws Exception
    Удаление всех элементов карты цен.
    Parameters:
      `costMapId` - код карты цен, в которой нужно удалить все элементы

  - ### costMapItemHistory

    List<VoiceCostMapItem> costMapItemHistory(int codeId, int costMapId) throws Exception
    История кода в карте цен
    Parameters:
      `code` - код карты цен

  - ### importTemplateList

    org.json.JSONArray importTemplateList() throws Exception
    Throws:
      `Exception`

  - ### voiceCostMapRangeUpdate

    int voiceCostMapRangeUpdate(VoiceCostMapRange data) throws Exception
    Throws:
      `Exception`

  - ### voiceCostMapRangeList

    List<VoiceCostMapRange> voiceCostMapRangeList(int costMapId, Date onDate) throws Exception
    Throws:
      `Exception`

  - ### voiceCostMapRangeItems

    List<ru.bitel.bgbilling.modules.voice.common.dto.VoiceCostMapRangeItem> voiceCostMapRangeItems(int costMapId, Date onDate) throws Exception
    Throws:
      `Exception`