Package ru.bitel.bgbilling.plugins.edo.server.bean.bill

# Class FnsFileGenerator

java.lang.Object
ru.bitel.bgbilling.plugins.edo.server.bean.bill.FnsFileGenerator

All Implemented Interfaces:
  `EdoBillFileGenerator`

public abstract class FnsFileGenerator extends Object implements EdoBillFileGenerator
Надстройка над EdoBillFileGenerator упрощающая написание динкода для формирования документов По сути это для генерации "формализованных документов", но в нашей системе это можно прикрутить только к bill, из остальных мест можно слать бинарники с более общей обвязкой. Потому это является частью интеграции с bill.

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `protected static class`
  `FnsFileGenerator.АдресСтруктура`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected Connection`
  `con`
  `protected ContragentInfos`
  `contragentInfos`
  `protected BillDoc`
  `doc`
  `protected ParameterMap`
  `documentSetup`
  `protected EdoManager`
  `edoManager`
  `protected ScriptUtils`
  `scriptUtils`
  `protected int`
  `userId`
  `protected Document`
  `xml`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `FnsFileGenerator()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected FnsFileGenerator.АдресСтруктура`
  `getAddress(String valueFrom, String addressFromContragentInfos)`
  Варианты задания адреса: # [либо] адресный параметр договора => сгенерится адрес разбитый на поля Адрес=pid:адресный # [либо] адрес строка, константа или текстовый параметр или адресный (возьмётся текстовое представление), # КодСтр/НаимСтран по дефолту российские
  `protected Contract`
  `getContract()`
  `abstract EdoFnsXmlGenerator`
  `getDocument()`
  Это надо в динкоде шаблона переопределить, чтобы вернуть структуру которая тут уже сумеет сериализоваться
  `InputStream`
  `getFileContent()`
  `void`
  `init(Setup setup, Connection con, int userId, int billModuleId, ParameterMap billModuleSetup, ParameterMap documentSetup, BillDoc doc, ContragentInfos contragentInfos)`
  `protected String`
  `value(String nameValue)`
  `protected String`
  `value(String nameValue, boolean required)`
  Взять значение по переданному коду параметра; Расширяет общий метод process_value.
  `protected String`
  `value_def(String nameValue, String defValue)`
  Сначала ищется значение, если нет, то дефолтное значение.
  `protected String`
  `value_oneof_req(String nameValue1, String nameValue2)`
  Сначала ищется первое значение, потом второе.
  `protected String`
  `ВерсПрог()`
  Значение ВерсПрог для многих документов
  `protected String`
  `ВремяТип(Date date)`
  `protected String`
  `ДатаТип(Date date)`
  `protected EdoFnsXmlGenerator.S`
  `ТекстИнфТип(String id, String val)`
  `protected EdoFnsXmlGenerator.S`
  `ФИОТип(String F, String I, String O)`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface ru.bitel.bgbilling.plugins.edo.server.bean.bill.EdoBillFileGenerator

  `getFileName`

- ## Field Details

  - ### con

    protected Connection con

  - ### userId

    protected int userId

  - ### doc

    protected BillDoc doc

  - ### xml

    protected Document xml

  - ### scriptUtils

    protected ScriptUtils scriptUtils

  - ### documentSetup

    protected ParameterMap documentSetup

  - ### contragentInfos

    protected ContragentInfos contragentInfos

  - ### edoManager

    protected EdoManager edoManager

- ## Constructor Details

  - ### FnsFileGenerator

    public FnsFileGenerator()

- ## Method Details

  - ### init

    public void init(Setup setup, Connection con, int userId, int billModuleId, ParameterMap billModuleSetup, ParameterMap documentSetup, BillDoc doc, ContragentInfos contragentInfos) throws Exception
    Specified by:
      `init` in interface `EdoBillFileGenerator`
    Parameters:
      `setup` - сетап сервера
      `con` - коннекшен
      `userId` - юзер текущий
      `billModuleId` - mid конкретного экземпляра модуля bill откуда выгрузка
      `billModuleSetup` - сетап модуля bill
      `documentSetup` - под-сетап для этого генератора из конфига документа+подписанта
      `doc` - BillDoc счёта/счётфактуры соответствующего
      `contragentInfos` - инфа о контрагенте-участнике-эдо с конкретным идентификатором
    Throws:
      `Exception`

  - ### getDocument

    public abstract EdoFnsXmlGenerator getDocument() throws ru.bitel.bgbilling.common.BGException
    Это надо в динкоде шаблона переопределить, чтобы вернуть структуру которая тут уже сумеет сериализоваться
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getFileContent

    public InputStream getFileContent() throws ru.bitel.bgbilling.common.BGException
    Specified by:
      `getFileContent` in interface `EdoBillFileGenerator`
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getContract

    protected Contract getContract() throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### value

    protected String value(String nameValue, boolean required) throws Exception
    Взять значение по переданному коду параметра; Расширяет общий метод process_value. Дополнительные макросы откуда пытаться взять: bill_attr:inn - из реквизита модуля бухгалтерия;
    Throws:
      `Exception`
    See Also:
      - invalid reference

            EdoBillManager.process_value

  - ### value

    protected String value(String nameValue) throws Exception
    Throws:
      `Exception`

  - ### value_oneof_req

    protected String value_oneof_req(String nameValue1, String nameValue2) throws Exception
    Сначала ищется первое значение, потом второе. Обшая required=true. Просто частый кейс сначала взять перекрытого конфига потом общего.
    Throws:
      `Exception`

  - ### value_def

    protected String value_def(String nameValue, String defValue) throws Exception
    Сначала ищется значение, если нет, то дефолтное значение. (required=false для поиске в конфиге). Просто частый кейс сначала взять из конфига потом если не настраивали то дефолт (для почти понятных значений).
    Throws:
      `Exception`

  - ### ФИОТип

    protected EdoFnsXmlGenerator.S ФИОТип(String F, String I, String O)

  - ### ДатаТип

    protected String ДатаТип(Date date)

  - ### ВремяТип

    protected String ВремяТип(Date date)

  - ### ТекстИнфТип

    protected EdoFnsXmlGenerator.S ТекстИнфТип(String id, String val)

  - ### ВерсПрог

    protected String ВерсПрог()
    Значение ВерсПрог для многих документов

  - ### getAddress

    protected FnsFileGenerator.АдресСтруктура getAddress(String valueFrom, String addressFromContragentInfos) throws Exception
    Варианты задания адреса: # [либо] адресный параметр договора => сгенерится адрес разбитый на поля Адрес=pid:адресный # [либо] адрес строка, константа или текстовый параметр или адресный (возьмётся текстовое представление), # КодСтр/НаимСтран по дефолту российские. # => сгенерится адрес текстового вида #Адрес.КодСтр= #Адрес.НаимСтран= Адрес.АдрТекст=pid:текст # [либо] компонентами адреса, константы или текстовые параметры, можно ВДОБАВОК к варианту адресного параметра, # тогда компоненты добавяется к компонентам адреса из параметра. => сгенерится адрес разбитый на поля # важно: # .КодРегион обязательно надо задать, т.к. из адресного его взять негде # .НаселПункт если требуется в дополнение к городу - тоже надо задать отдельно. # .НаимРегион в ряде форм.документов тоже обязательный и надо задавать Адрес.Индекс=450000 Адрес.КодРегион=02 Адрес.НаимРегион=Республика Адрес.Район=Район Адрес.Город=Уфа Адрес.НаселПункт=Пригород Адрес.Улица=ул. Ленина Адрес.Дом=666 Адрес.Корпус=666 Адрес.Кварт=666 Адрес.ИныеСвед=... [фича] значение "contragent_info" для .АдрТекст берёт текстовое значение из переданного извне addressFromContragentInfos, это позволяет гибко управлять текстовым вариантом адреса. Параметры КодСтр/НаимСтран могут (вероятно) понадобиться в случае не-РФ и будут штатно работать в конфиге.
    Throws:
      `Exception`