ru.bitel.bgbilling.modules.bill.common.service

## Interface BillService

-     @MTOM
      public interface BillService

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.util.List<BankAccount>` | `bankAccountList()` Список банковских счетов, которые могут быть указаны в счете.
    `int` | `billDocumentCreate(int contractId, int documentSpecId, int bankAccountId, int year, int month, java.util.List<DocumentPosition> documentPositionList)` Создание счета
    `void` | `billDocumentDelete(int contractId, int id, boolean customer)` Удаление счета.
    `void` | `billDocumentDownload(int contractId, int id, javax.xml.ws.Holder<java.lang.String> name, javax.xml.ws.Holder<javax.activation.DataHandler> data)` Получение счета в формате PDF.
    `Result<BillDocument>` | `billDocumentListForContract(int contractId, Page page)` Получение списка счетов для договора
    `java.util.List<DocType>` | `documentSpecListForCustomer(int contractId)` Список разрешенных типов документов для договора, которые клиент/абонент может создать.
    `void` | `invoiceDocumentDownload(int contractId, int id, javax.xml.ws.Holder<java.lang.String> name, javax.xml.ws.Holder<javax.activation.DataHandler> data)` Получение счёт-фактуры в формате PDF.
    `Result<InvoiceDocument>` | `invoiceDocumentListForContract(int contractId, boolean onlyReady, Page page)` Получение списка счёт-фактур
    `java.util.List<DocumentPosition>` | `templateDocumentPositionList(int contractId, int documentSpecId, int year, int month)` Список шаблонов-позиций документа для создания счета клиентом/абонентом.

- - ### Method Detail

    - #### billDocumentListForContract

          Result<BillDocument> billDocumentListForContract(int contractId,
                                                           Page page)
                                                    throws ru.bitel.bgbilling.common.BGException,
                                                           ru.bitel.bgbilling.common.BGMessageException,
                                                           ru.bitel.bgbilling.common.BGIllegalArgumentException

      Получение списка счетов для договора
      Parameters:
        `contractId` - ID договора
        `page` - страница
      Returns:
        объект result = { list + page }
      Throws:
        `ru.bitel.bgbilling.common.BGException`
        `ru.bitel.bgbilling.common.BGMessageException`
        `ru.bitel.bgbilling.common.BGIllegalArgumentException`

    - #### billDocumentDelete

          void billDocumentDelete(int contractId,
                                  int id,
                                  boolean customer)
                           throws ru.bitel.bgbilling.common.BGException,
                                  ru.bitel.bgbilling.common.BGMessageException,
                                  ru.bitel.bgbilling.common.BGIllegalArgumentException

      Удаление счета. Если customer=true, то удаление возможно только в том случае, если счет был создан клиентом (uid=-1) и счет не оплачен (status=0).
      Parameters:
        `contractId` - ID договора
        `id` - ID счета
        `customer` - удаление клиентом/абонентом
      Throws:
        `ru.bitel.bgbilling.common.BGException`
        `ru.bitel.bgbilling.common.BGMessageException`
        `ru.bitel.bgbilling.common.BGIllegalArgumentException`

    - #### documentSpecListForCustomer

          java.util.List<DocType> documentSpecListForCustomer(int contractId)
                                                       throws ru.bitel.bgbilling.common.BGException,
                                                              ru.bitel.bgbilling.common.BGMessageException,
                                                              ru.bitel.bgbilling.common.BGIllegalArgumentException

      Список разрешенных типов документов для договора, которые клиент/абонент может создать. Типы документов должны быть добавлены в договор, а в конфиге модуля указан дополнительный фильтр allowed.web.bill.types
      Parameters:
        `contractId` - ID договора
      Returns:
      Throws:
        `ru.bitel.bgbilling.common.BGException`
        `ru.bitel.bgbilling.common.BGMessageException`
        `ru.bitel.bgbilling.common.BGIllegalArgumentException`

    - #### bankAccountList

          java.util.List<BankAccount> bankAccountList()
                                               throws ru.bitel.bgbilling.common.BGException,
                                                      ru.bitel.bgbilling.common.BGMessageException,
                                                      ru.bitel.bgbilling.common.BGIllegalArgumentException

      Список банковских счетов, которые могут быть указаны в счете.
      Returns:
      Throws:
        `ru.bitel.bgbilling.common.BGException`
        `ru.bitel.bgbilling.common.BGMessageException`
        `ru.bitel.bgbilling.common.BGIllegalArgumentException`

    - #### templateDocumentPositionList

          java.util.List<DocumentPosition> templateDocumentPositionList(int contractId,
                                                                        int documentSpecId,
                                                                        int year,
                                                                        int month)
                                                                 throws ru.bitel.bgbilling.common.BGException,
                                                                        ru.bitel.bgbilling.common.BGMessageException,
                                                                        ru.bitel.bgbilling.common.BGIllegalArgumentException

      Список шаблонов-позиций документа для создания счета клиентом/абонентом.
      Parameters:
        `contractId` - ID договора
        `documentSpecId` - ID типа документа
        `year` - год
        `month` - месяц (0 - январь)
      Returns:
      Throws:
        `ru.bitel.bgbilling.common.BGException`
        `ru.bitel.bgbilling.common.BGMessageException`
        `ru.bitel.bgbilling.common.BGIllegalArgumentException`

    - #### billDocumentCreate

          int billDocumentCreate(int contractId,
                                 int documentSpecId,
                                 int bankAccountId,
                                 int year,
                                 int month,
                                 java.util.List<DocumentPosition> documentPositionList)
                          throws ru.bitel.bgbilling.common.BGException,
                                 ru.bitel.bgbilling.common.BGMessageException,
                                 ru.bitel.bgbilling.common.BGIllegalArgumentException

      Создание счета
      Parameters:
        `contractId` - ID договора
        `documentSpecId` - ID типа документа
        `bankAccountId` - ID банковского счета, который будет указан в счете
        `year` - год
        `month` - месяц (0 - январь)
        `documentPositionList` -
      Returns:
      Throws:
        `ru.bitel.bgbilling.common.BGException`
        `ru.bitel.bgbilling.common.BGMessageException`
        `ru.bitel.bgbilling.common.BGIllegalArgumentException`

    - #### billDocumentDownload

          void billDocumentDownload(int contractId,
                                    int id,
                                    javax.xml.ws.Holder<java.lang.String> name,
                                    javax.xml.ws.Holder<javax.activation.DataHandler> data)
                             throws ru.bitel.bgbilling.common.BGException,
                                    ru.bitel.bgbilling.common.BGMessageException,
                                    ru.bitel.bgbilling.common.BGIllegalArgumentException

      Получение счета в формате PDF.
      Parameters:
        `contractId` - ID договора
        `id` - ID счета
        `name` - результат - имя файла
        `data` - результат - файл
      Throws:
        `ru.bitel.bgbilling.common.BGException`
        `ru.bitel.bgbilling.common.BGMessageException`
        `ru.bitel.bgbilling.common.BGIllegalArgumentException`

    - #### invoiceDocumentListForContract

          Result<InvoiceDocument> invoiceDocumentListForContract(int contractId,
                                                                 boolean onlyReady,
                                                                 Page page)
                                                          throws ru.bitel.bgbilling.common.BGException,
                                                                 ru.bitel.bgbilling.common.BGMessageException,
                                                                 ru.bitel.bgbilling.common.BGIllegalArgumentException

      Получение списка счёт-фактур
      Parameters:
        `contractId` - ID договора
        `onlyReady` - только готовые
        `page` - страница
      Returns:
        объект result = { list + page }
      Throws:
        `ru.bitel.bgbilling.common.BGException`
        `ru.bitel.bgbilling.common.BGMessageException`
        `ru.bitel.bgbilling.common.BGIllegalArgumentException`

    - #### invoiceDocumentDownload

          void invoiceDocumentDownload(int contractId,
                                       int id,
                                       javax.xml.ws.Holder<java.lang.String> name,
                                       javax.xml.ws.Holder<javax.activation.DataHandler> data)
                                throws ru.bitel.bgbilling.common.BGException

      Получение счёт-фактуры в формате PDF.
      Parameters:
        `contractId` - ID договора
        `id` - ID счёт-фактуры
        `name` - результат - имя файла
        `data` - результат - файл
      Throws:
        `ru.bitel.bgbilling.common.BGException`
        `ru.bitel.bgbilling.common.BGMessageException`
        `ru.bitel.bgbilling.common.BGIllegalArgumentException`