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

# Interface PaymentService

public interface PaymentService
Сервайс для приходов и типов приходов. Все операции над типом приход(PaymentType), настоятельно рекомендую совершать через справочники, такие как обновление(создание), удаление, получение элемента и получение списка всех типов.
Например так: getContext().getDirectory( PaymentType.class ).update/delete/list</>

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `deletePaymentInfo(int paymentInfoId)`
  `int`
  `paymentDelete(int contractId, int paymentId)`
  Удаление прихода договора.
  `Payment`
  `paymentGet(int paymentId)`
  Получение прихода
  `PaymentInfo`
  `paymentInfoByPaymentId(int paymentId)`
  Получение дополнительной информации по ID платежа
  `List<PaymentInfo>`
  `paymentInfoByPaymentIds(List<Integer> paymentIds)`
  Получение списка дополнительной информации по платежам
  `SearchResult<Payment>`
  `paymentList(int contractId, Period period, int members)`
  Возвращает список платежей за период для договора отсортированный по дате
  `int`
  `paymentTypeDelete(int paymentTypeId)`
  Удаление типа прихода.
  `PaymentType`
  `paymentTypeGet(int paymentTypeId)`
  Метод в первую очередь для directory, соответсвенно если нужет paymentType, то вытаскиваем его через directory, а не от сюда.
  `List<PaymentType>`
  `paymentTypeList(Integer editable, Integer type)`
  Получение списка типов прихода.
  `void`
  `paymentTypeMove(int paymentTypeId, List<Integer> idList)`
  Один из способов редактирования типа приход, если необходимо изменить положение типов приход в дереве.
  `PaymentTypeItem`
  `paymentTypeTree(int editable, boolean showEmptyRoot)`
  `int`
  `paymentTypeUpdate(PaymentType paymentType)`
  Обновление или создание типа приход.
  `List<Integer>`
  `paymentUpdate(Payment payment, String distribution)`
  Обновление или создание прихода.
  `void`
  `updatePaymentInfo(PaymentInfo paymentInfo)`

- ## Method Details

  - ### paymentGet

    Payment paymentGet(int paymentId) throws Exception
    Получение прихода
    Parameters:
      `paymentId` - - ид прихода.
    Throws:
      `Exception`

  - ### paymentList

    SearchResult<Payment> paymentList(int contractId, Period period, int members) throws Exception
    Возвращает список платежей за период для договора отсортированный по дате
    Parameters:
      `contractId` - код договора
      `period` - период, null - все платежи, можно что бы значения dateFrom и dateTo были равны null.
      `members` - - если == 1, то только платежы данного договора, если = 2 то вернет еще и платежы з.субдоговоров, если = 3 то только платежы зависемых субдоговоров.
      `holderTotalSum` - - возвращаемое поле, если != null, то сюда занесется общая сумма по всем выбранным приходам. Если вам не нужно это, ставте null.
    Returns:
      список платежей, если платежей нет, возвращает пустой список
    Throws:
      `Exception`

  - ### paymentDelete

    int paymentDelete(int contractId, int paymentId) throws Exception
    Удаление прихода договора.
    Parameters:
      `paymentId` - - код платежа.
    Returns:
      - кол-во удаленных записей.
    Throws:
      `BGException`
      `Exception`

  - ### paymentUpdate

    List<Integer> paymentUpdate(Payment payment, String distribution) throws Exception
    Обновление или создание прихода.
    Parameters:
      `payment` - - bean в котором все данные и должны лежать.
      `distribution` - - при создании, если != null, распределяет сумму прихода между указанными договорами.( форамат: cid : sum,..... )
    Throws:
      `BGException`
      `BGMessageException`
      `Exception`

  - ### paymentTypeGet

    PaymentType paymentTypeGet(int paymentTypeId) throws Exception
    Метод в первую очередь для directory, соответсвенно если нужет paymentType, то вытаскиваем его через directory, а не от сюда.
    Parameters:
      `paymentTypeId` - - ид типа платежа.
    Throws:
      `Exception`

  - ### paymentTypeList

    List<PaymentType> paymentTypeList(Integer editable, Integer type) throws Exception
    Получение списка типов прихода.
    Parameters:
      `editable` - если = 0 - только редактируемые, = 1 - не редактируемые, null - все.
      `type` - - 0 - элемент группы, 1 - группа, null - все Если editable или type будут иметь другие значения, то результатом будет пустой список.
    Throws:
      `Exception`

  - ### paymentTypeTree

    PaymentTypeItem paymentTypeTree(int editable, boolean showEmptyRoot) throws Exception
    Parameters:
      `editable` - 0 - редактируемые, 1 - не редактируемые, меньше 0 - все.
      (смотреть статик поля PaymentType или точнее его родителя)
      `showEmptyRoot` - - показывать ли пустые элементы группы.
    Throws:
      `Exception`

  - ### paymentTypeUpdate

    int paymentTypeUpdate(PaymentType paymentType) throws Exception
    Обновление или создание типа приход.
    Parameters:
      `paymentType` -
    Throws:
      `BGMessageException` - - если передаваемый тип == null, или его поля неворно заполнены.
      `Exception`

  - ### paymentTypeDelete

    int paymentTypeDelete(int paymentTypeId) throws Exception
    Удаление типа прихода.
    Parameters:
      `paymentTypeId` - - ид типа приход.
    Returns:
      - кол-во удаленных значений.
    Throws:
      `BGMessageException` - - в случае, если удаление невозможно в связи с нарушением ссылочной целостности.
      `Exception`

  - ### paymentTypeMove

    void paymentTypeMove(int paymentTypeId, List<Integer> idList) throws Exception
    Один из способов редактирования типа приход, если необходимо изменить положение типов приход в дереве.
    Parameters:
      `chargeTypeId` - - ид типа в который станет предком
      `idList` - - список ид которые будут перемещены.
    Throws:
      `Exception`

  - ### paymentInfoByPaymentId

    PaymentInfo paymentInfoByPaymentId(int paymentId) throws Exception
    Получение дополнительной информации по ID платежа
    Parameters:
      `paymentId` - ID платежа
    Returns:
    Throws:
      `BGException`
      `Exception`

  - ### paymentInfoByPaymentIds

    List<PaymentInfo> paymentInfoByPaymentIds(List<Integer> paymentIds) throws Exception
    Получение списка дополнительной информации по платежам
    Parameters:
      `paymentIds` - список ID платежей
    Returns:
      key - ID платежа, value - доп. информация
    Throws:
      `BGException`
      `Exception`

  - ### updatePaymentInfo

    void updatePaymentInfo(PaymentInfo paymentInfo) throws Exception
    Throws:
      `Exception`

  - ### deletePaymentInfo

    void deletePaymentInfo(int paymentInfoId) throws Exception
    Throws:
      `Exception`