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)` Получение списка счетов для договора
    `void` | `deleteBankAccount(int bankAccountId)`
    `void` | `deleteOrganization(int organizationId)`
    `java.util.List<DocType>` | `documentSpecListForCustomer(int contractId)` Список разрешенных типов документов для договора, которые клиент/абонент может создать.
    `BankAccount` | `getBankAccount(int bankAccountId)`
    `java.util.List<BankAccount>` | `getBankAccountList(int organizationId, java.lang.Boolean inUse)`
    `java.util.List<IdTitle>` | `getBankAccountTitleList(int contractId, int organizationId, java.lang.Boolean inUse, javax.xml.ws.Holder<java.lang.Integer> selectedItemId)` Список доступных банковских счетов из справочника банков
    `BankAccount` | `getDefaultBankAccount(int organizationId)`
    `Organization` | `getDefaultOrganization()`
    `Organization` | `getOrganization(int organizationId)`
    `java.util.List<Organization>` | `getOrganizationList()`
    `java.util.List<IdTitle>` | `getOrganizationTitleList(int contractId, java.lang.Boolean inUse, javax.xml.ws.Holder<java.lang.Integer> selectedId)`
    `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)` Получение списка счёт-фактур
    `void` | `setBankAccount(int contractId, int selectedBabkAccountId)` Банковский Счет для договора по умолчанию
    `void` | `setDefaultBankAccount(BankAccount bankAccount)`
    `void` | `setDefaultOrganization(int organizationId)`
    `void` | `setOrganization(int contractId, int selectedOrganizationId)`
    `java.util.List<DocumentPosition>` | `templateDocumentPositionList(int contractId, int documentSpecId, int year, int month)` Список шаблонов-позиций документа для создания счета клиентом/абонентом.
    `void` | `updateBankAccount(BankAccount bankAccount)`
    `void` | `updateOrganization(Organization organization)`

- - ### 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`

    - #### getBankAccountList

          java.util.List<BankAccount> getBankAccountList(int organizationId,
                                                         java.lang.Boolean inUse)
                                                  throws ru.bitel.bgbilling.common.BGException

      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### getDefaultBankAccount

          BankAccount getDefaultBankAccount(int organizationId)
                                     throws ru.bitel.bgbilling.common.BGException

      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### setDefaultBankAccount

          void setDefaultBankAccount(BankAccount bankAccount)
                              throws ru.bitel.bgbilling.common.BGException

      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### getBankAccountTitleList

          java.util.List<IdTitle> getBankAccountTitleList(int contractId,
                                                          int organizationId,
                                                          java.lang.Boolean inUse,
                                                          javax.xml.ws.Holder<java.lang.Integer> selectedItemId)
                                                   throws ru.bitel.bgbilling.common.BGException

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

    - #### setBankAccount

          void setBankAccount(int contractId,
                              int selectedBabkAccountId)
                       throws ru.bitel.bgbilling.common.BGException

      Банковский Счет для договора по умолчанию
      Parameters:
        `contractId` -
        `selectedBabkAccountId` -
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### updateBankAccount

          void updateBankAccount(BankAccount bankAccount)
                          throws ru.bitel.bgbilling.common.BGException

      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### deleteBankAccount

          void deleteBankAccount(int bankAccountId)
                          throws ru.bitel.bgbilling.common.BGException

      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### getBankAccount

          BankAccount getBankAccount(int bankAccountId)
                              throws ru.bitel.bgbilling.common.BGException

      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### getOrganizationList

          java.util.List<Organization> getOrganizationList()
                                                    throws ru.bitel.bgbilling.common.BGException

      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### getDefaultOrganization

          Organization getDefaultOrganization()
                                       throws ru.bitel.bgbilling.common.BGException

      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### getOrganization

          Organization getOrganization(int organizationId)
                                throws ru.bitel.bgbilling.common.BGException

      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### updateOrganization

          void updateOrganization(Organization organization)
                           throws ru.bitel.bgbilling.common.BGException

      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### deleteOrganization

          void deleteOrganization(int organizationId)
                           throws ru.bitel.bgbilling.common.BGException

      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### setDefaultOrganization

          void setDefaultOrganization(int organizationId)
                               throws ru.bitel.bgbilling.common.BGException

      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### getOrganizationTitleList

          java.util.List<IdTitle> getOrganizationTitleList(int contractId,
                                                           java.lang.Boolean inUse,
                                                           javax.xml.ws.Holder<java.lang.Integer> selectedId)
                                                    throws ru.bitel.bgbilling.common.BGException

      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### setOrganization

          void setOrganization(int contractId,
                               int selectedOrganizationId)
                        throws ru.bitel.bgbilling.common.BGException

      Throws:
        `ru.bitel.bgbilling.common.BGException`