Package ru.bitel.bgbilling.kernel.contract.balance.common.service

# Interface BalanceService

@MTOM(enabled=true) public interface BalanceService

- ## Method Summary

  Modifier and Type
  Method
  Description
  `List<BalanceDetailItem>`
  `balanceDetailList(int contractId, Period period, boolean available)`
  Получнение списка для детализированного баланса, как с учетом резервов, так и нет.
  `SearchResult<ContractAccountDetail>`
  `contractAccountDetailList(int contractId, int serviceId, Period period)`
  `SearchResult<ContractAccount>`
  `contractAccountList(int contractId, Period period, int members)`
  `ContractBalance`
  `contractBalanceGet(int contractId, int year, int month)`
  Возвращает баланс договора.
  `List<ContractBalance>`
  `contractBalanceList(int contractId, Period period)`
  Возвратит список помесячных данных баланса(такие как приходы,расходы,наработки и входящий остаток).
  `List<Integer>`
  `contractBalanceTransfer(int contractId, Date date, List<BalanceDistributeData> balanceDistributeDataList, boolean customer)`
  Перераспределение средств с супердоговора на субдоговора.
  `void`
  `getDataSource(String type, int mode, int contractId, Period period, jakarta.xml.ws.Holder<jakarta.activation.DataHandler> data)`
  Выгружаем информацию о балансе.
  `String`
  `sendEmail(String email, String type, int mode, int contractId, Period period)`
  Отправляет на почту информацию о балансе в зависимости от выбранного режима отображения.

- ## Method Details

  - ### balanceDetailList

    List<BalanceDetailItem> balanceDetailList(int contractId, Period period, boolean available) throws Exception
    Получнение списка для детализированного баланса, как с учетом резервов, так и нет. Метод максимально соответсвует старому акшену( ActionContractBalanceDetail );
    Parameters:
      `contractId` - - код договора.
      `period` - - период, шагом является месяц.
      `available` - если = true, то вернет с учетом резервов, то есть с учетом доступной суммы.
    Returns:
      список в хронологическом порядке(ну кроме нароботков) приходов, расходов, нароботков, резервов(если available=true) за период.
    Throws:
      `Exception`

  - ### contractBalanceList

    List<ContractBalance> contractBalanceList(int contractId, Period period) throws Exception
    Возвратит список помесячных данных баланса(такие как приходы,расходы,наработки и входящий остаток).
    Parameters:
      `period` - - за какой период.
      `cid` - - код договора.
    Throws:
      `Exception`

  - ### contractAccountList

    SearchResult<ContractAccount> contractAccountList(int contractId, Period period, int members) throws Exception
    Parameters:
      `contractId` - - код договора.
      `period` - - период, если == null, то все наработки.Если какая нибудь из дат == null, то она принемается за текущую дату.
      `members` - - если == 1, то вернет только данного договора, если = 2 то вернет еще и зависемых субдоговоров, если = 3 то только зависемых субдоговоров.
    Returns:
      список наработок

  - ### contractAccountDetailList

    SearchResult<ContractAccountDetail> contractAccountDetailList(int contractId, int serviceId, Period period) throws Exception
    Parameters:
      `contractId` - - код договора.
      `period` - - период, если == null, то все наработки.Если какая нибудь из дат == null, то она принемается за текущую дату.
    Returns:
      список наработок

  - ### contractBalanceGet

    ContractBalance contractBalanceGet(int contractId, int year, int month) throws Exception
    Возвращает баланс договора. Внимание! Метод возвращает баланс указанного договора, даже если он зависимый субдоговор!
    Вернет с учетом резервов, если запрашивается на текущий месяц( ну и если в конфиге включено влияние резервов на баланс).
    Throws:
      `Exception`

  - ### sendEmail

    String sendEmail(String email, String type, int mode, int contractId, Period period) throws Exception
    Отправляет на почту информацию о балансе в зависимости от выбранного режима отображения.
    Parameters:
      `email` - - адрес эл. почты
      `type` - - html/csv
      `mode` - - режим отображения баланса
      `contractId` - - код договора
      `period` - - период за который необходимо отправить баланс

  - ### getDataSource

    void getDataSource(String type, int mode, int contractId, Period period, jakarta.xml.ws.Holder<jakarta.activation.DataHandler> data) throws Exception
    Выгружаем информацию о балансе.
    Используется при печати и сохрании в файл из клиента.
    Parameters:
      `type` - - html/csv
      `mode` - - режим отображения баланса
      `contractId` - - код договора
      `period` - - период за который необходимо отправить баланс
      `data` - - дата сурс

  - ### contractBalanceTransfer

    List<Integer> contractBalanceTransfer(int contractId, Date date, List<BalanceDistributeData> balanceDistributeDataList, boolean customer) throws Exception
    Перераспределение средств с супердоговора на субдоговора.
    Parameters:
      `contractId` -
      `date` -
      `balanceDistributeDataList` -
    Returns: