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

## Interface PaymentService

-     public interface PaymentService

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

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `paymentDelete(int contractId, int paymentId)` Удаление прихода договора.
    `Payment` | `paymentGet(int paymentId)` Получение прихода
    `java.util.List<Payment>` | `paymentList(int contractId, Period period, int members, javax.xml.ws.Holder<java.math.BigDecimal> holderTotalSum)` Возвращает список платежей за период для договора отсортированный по дате
    `int` | `paymentTypeDelete(int paymentTypeId)` Удаление типа прихода.
    `PaymentType` | `paymentTypeGet(int paymentTypeId)` Метод в первую очередь для directory, соответсвенно если нужет paymentType, то вытаскиваем его через directory, а не от сюда.
    `java.util.List<PaymentType>` | `paymentTypeList(java.lang.Integer editable, java.lang.Integer type)` Получение списка типов прихода.
    `void` | `paymentTypeMove(int paymentTypeId, java.util.List<java.lang.Integer> idList)` Один из способов редактирования типа приход, если необходимо изменить положение типов приход в дереве.
    `PaymentTypeItem` | `paymentTypeTree(int editable, boolean showEmptyRoot)`
    `int` | `paymentTypeUpdate(PaymentType paymentType)` Обновление или создание типа приход.
    `java.util.List<java.lang.Integer>` | `paymentUpdate(Payment payment, java.lang.String distribution)` Обновление или создание прихода.

- - ### Method Detail

    - #### paymentGet

          Payment paymentGet(int paymentId)
                      throws ru.bitel.bgbilling.common.BGException

      Получение прихода
      Parameters:
        `paymentId` - - ид прихода.
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### paymentList

          java.util.List<Payment> paymentList(int contractId,
                                              Period period,
                                              int members,
                                              javax.xml.ws.Holder<java.math.BigDecimal> holderTotalSum)
                                       throws ru.bitel.bgbilling.common.BGException

      Возвращает список платежей за период для договора отсортированный по дате
      Parameters:
        `contractId` - код договора
        `period` - период, null - все платежи, можно что бы значения dateFrom и dateTo были равны null.
        `members` - - если == 1, то только платежы данного договора, если = 2 то вернет еще и платежы з.субдоговоров, если = 3 то только платежы зависемых субдоговоров.
        `holderTotalSum` - - возвращаемое поле, если != null, то сюда занесется общая сумма по всем выбранным приходам. Если вам не нужно это, ставте null.
      Returns:
        список платежей, если платежей нет, возвращает пустой список
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### paymentDelete

          int paymentDelete(int contractId,
                            int paymentId)
                     throws ru.bitel.bgbilling.common.BGException,
                            ru.bitel.bgbilling.common.BGMessageException

      Удаление прихода договора.
      Parameters:
        `paymentId` - - код платежа.
      Returns:
        - кол-во удаленных записей.
      Throws:
        `ru.bitel.bgbilling.common.BGException`
        `ru.bitel.bgbilling.common.BGMessageException`

    - #### paymentUpdate

          java.util.List<java.lang.Integer> paymentUpdate(Payment payment,
                                                          java.lang.String distribution)
                                                   throws ru.bitel.bgbilling.common.BGException,
                                                          ru.bitel.bgbilling.common.BGMessageException

      Обновление или создание прихода.
      Parameters:
        `payment` - - bean в котором все данные и должны лежать.
        `distribution` - - при создании, если != null, распределяет сумму прихода между указанными договорами.( форамат: cid : sum,..... )
      Throws:
        `ru.bitel.bgbilling.common.BGException`
        `ru.bitel.bgbilling.common.BGMessageException`

    - #### paymentTypeGet

          PaymentType paymentTypeGet(int paymentTypeId)
                              throws ru.bitel.bgbilling.common.BGException

      Метод в первую очередь для directory, соответсвенно если нужет paymentType, то вытаскиваем его через directory, а не от сюда.
      Parameters:
        `paymentTypeId` - - ид типа платежа.
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### paymentTypeList

          java.util.List<PaymentType> paymentTypeList(java.lang.Integer editable,
                                                      java.lang.Integer type)
                                               throws ru.bitel.bgbilling.common.BGException

      Получение списка типов прихода.
      Если нужны все, на прямую лучше не использовать, берите через справочник.
      Parameters:
        `editable` - если = 0 - только редактируемые, = 1 - не редактируемые, null - все.
        `type` - - 0 - элемент группы, 1 - группа, null - все Если editable или type будут иметь другие значения, то результатом будет пустой список.
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### paymentTypeTree

          PaymentTypeItem paymentTypeTree(int editable,
                                          boolean showEmptyRoot)
                                   throws ru.bitel.bgbilling.common.BGException

      Parameters:
        `editable` - 0 - редактируемые, 1 - не редактируемые, меньше 0 - все.
        (смотреть статик поля PaymentType или точнее его родителя)
        `showEmptyRoot` - - показывать ли пустые элементы группы.
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### paymentTypeUpdate

          int paymentTypeUpdate(PaymentType paymentType)
                         throws ru.bitel.bgbilling.common.BGException,
                                ru.bitel.bgbilling.common.BGMessageException

      Обновление или создание типа приход.
      Parameters:
        `paymentType` -
      Throws:
        `ru.bitel.bgbilling.common.BGMessageException` - - если передаваемый тип == null, или его поля неворно заполнены.
        `ru.bitel.bgbilling.common.BGException`

    - #### paymentTypeDelete

          int paymentTypeDelete(int paymentTypeId)
                         throws ru.bitel.bgbilling.common.BGException,
                                ru.bitel.bgbilling.common.BGMessageException

      Удаление типа прихода.
      Parameters:
        `paymentTypeId` - - ид типа приход.
      Returns:
        - кол-во удаленных значений.
      Throws:
        `ru.bitel.bgbilling.common.BGMessageException` - - в случае, если удаление невозможно в связи с нарушением ссылочной целостности.
        `ru.bitel.bgbilling.common.BGException`

    - #### paymentTypeMove

          void paymentTypeMove(int paymentTypeId,
                               java.util.List<java.lang.Integer> idList)
                        throws ru.bitel.bgbilling.common.BGException

      Один из способов редактирования типа приход, если необходимо изменить положение типов приход в дереве.
      Parameters:
        `chargeTypeId` - - ид типа в который станет предком
        `idList` - - список ид которые будут перемещены.
      Throws:
        `ru.bitel.bgbilling.common.BGException`