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

## Interface VoiceCostMapService

-     @MTOM(enabled=true,
            threshold=1024)
      public interface VoiceCostMapService

  Сервис для работы с картами цен. Позволяет создавать, редактировать, удалять карты цен и элементы карт цен.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.util.List<VoiceCostMapItem>` | `costMapItemHistory(int codeId, int costMapId)` История кода в карте цен
    `void` | `exportCostMap()` Экспорт карты цен в файл.
    `void` | `importCostMap(int operatorId, int costMapId, Period period, boolean addNewGeocodes, int mode, javax.xml.ws.Holder<javax.activation.DataHandler> importContent)` Импорт элементов карты цен.
    `int` | `voiceCostMapDelete(int costMapId)` Удаление карты цен из БД.
    `int` | `voiceCostMapItemDelete(java.util.List<java.lang.Integer> itemIds)` Удаление элемента (ов) карты цен по его идентификатору.
    `void` | `voiceCostMapItemDeleteAll(int costMapId)` Удаление всех элементов карты цен.
    `VoiceCostMapItem` | `voiceCostMapItemGet(int itemId)` Получение одного конкретного элемента карты цен по его идентификатору.
    `void` | `voiceCostMapItemTree(int costMapId, java.util.Date date, javax.xml.ws.Holder<javax.activation.DataHandler> content)` Получение списка элементов у карты цен.
    `int` | `voiceCostMapItemUpdate(VoiceCostMapItem item)` Добавление/редактирование элемента карты цен.
    `java.util.List<VoiceCostMap>` | `voiceCostMapList(int operatorId)` Получение общего списка карт цен.
    `int` | `voiceCostMapUpdate(VoiceCostMap costMap)` Добавление/Редактирование карты цен в БД.

- - ### Method Detail

    - #### voiceCostMapList

          java.util.List<VoiceCostMap> voiceCostMapList(int operatorId)
                                                 throws ru.bitel.bgbilling.common.BGException

      Получение общего списка карт цен.
      Returns:
        список карт цен.
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### voiceCostMapUpdate

          int voiceCostMapUpdate(VoiceCostMap costMap)
                          throws ru.bitel.bgbilling.common.BGException

      Добавление/Редактирование карты цен в БД.
      Parameters:
        `costMap` - карта цен.
      Returns:
        код добавленной/обновленной записи.
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### voiceCostMapDelete

          int voiceCostMapDelete(int costMapId)
                          throws ru.bitel.bgbilling.common.BGException

      Удаление карты цен из БД.
      Parameters:
        `costMapId` - код удаляемой карты цен.
      Returns:
        код удаленной карты цен.
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### voiceCostMapItemTree

          void voiceCostMapItemTree(int costMapId,
                                    java.util.Date date,
                                    javax.xml.ws.Holder<javax.activation.DataHandler> content)
                             throws ru.bitel.bgbilling.common.BGException

      Получение списка элементов у карты цен.
      Parameters:
        `costMapId` - код карты цен.
        `date` - дата, на которую выводится дерево с элементами карты цен
        `content` - содержимое дерева элементов карты цен, представленное в виде сериализованного стандартными средствами Java объекта VoiceCostMapItem
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### voiceCostMapItemGet

          VoiceCostMapItem voiceCostMapItemGet(int itemId)
                                        throws ru.bitel.bgbilling.common.BGException

      Получение одного конкретного элемента карты цен по его идентификатору.
      Parameters:
        `itemId` - id элемента
      Returns:
        элемент карты цен
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### voiceCostMapItemUpdate

          int voiceCostMapItemUpdate(VoiceCostMapItem item)
                              throws ru.bitel.bgbilling.common.BGException

      Добавление/редактирование элемента карты цен.
      Parameters:
        `item` - добавляемый/редактируемый элемент карты цен.
      Returns:
        код добавленного/отредактированного элемента карты цен.
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### voiceCostMapItemDelete

          int voiceCostMapItemDelete(java.util.List<java.lang.Integer> itemIds)
                              throws ru.bitel.bgbilling.common.BGException

      Удаление элемента (ов) карты цен по его идентификатору.
      Parameters:
        `itemIds` - список id элементов карты цен, подлежащих удалению.
      Returns:
        кол-во удаленных элементов
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### importCostMap

          void importCostMap(int operatorId,
                             int costMapId,
                             Period period,
                             boolean addNewGeocodes,
                             int mode,
                             javax.xml.ws.Holder<javax.activation.DataHandler> importContent)
                      throws ru.bitel.bgbilling.common.BGException

      Импорт элементов карты цен. Поддерживаемые форматы:
      - 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:
        `costMapId` - код карты цен, в которую импортируются элементы
        `period` - период, устанавливаемый у элементов
        `mode` - режим работы: true - загружать, полностью перетерев прежнее содержимое, false - обновление имеющихся элементов
        `addNewGeocodes` - отвечает за возможность добавления на лету в справочник направлений и геокодов новых элементов, которые отсутствуют в справочнике.
        `importContent` - содержимое
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### exportCostMap

          void exportCostMap()
                      throws ru.bitel.bgbilling.common.BGException

      Экспорт карты цен в файл.
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### voiceCostMapItemDeleteAll

          void voiceCostMapItemDeleteAll(int costMapId)
                                  throws ru.bitel.bgbilling.common.BGException

      Удаление всех элементов карты цен.
      Parameters:
        `costMapId` - код карты цен, в которой нужно удалить все элементы
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### costMapItemHistory

          java.util.List<VoiceCostMapItem> costMapItemHistory(int codeId,
                                                              int costMapId)
                                                       throws ru.bitel.bgbilling.common.BGException

      История кода в карте цен
      Parameters:
        `code` - код карты цен
      Throws:
        `ru.bitel.bgbilling.common.BGException`