Class FnsFileGenerator
java.lang.Object
ru.bitel.bgbilling.plugins.edo.server.bean.bill.FnsFileGenerator
- All Implemented Interfaces:
EdoBillFileGenerator
[Абстрактный класс хелпер для реализации в динкоде, который генерит формализованный документ, т.е. надстройка над
низкоуровневым EdoBillFileGenerator, упрощающая написание динкода для формирования документов]
По сути это для генерации "формализованных документов", но в нашей системе это можно прикрутить только к bill,
из остальных мест можно слать бинарники с более общей обвязкой. Потому это является частью интеграции с bill.
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Connectionprotected EdoBillContextprotected ContragentInfos -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected FnsFileGenerator.АдресСтруктураgetAddress(String valueFrom, String addressFromContragentInfos) Варианты задания адреса: # [либо] адресный параметр договора => сгенерится адрес разбитый на поля Адрес=pid:адресный # [либо] адрес строка, константа или текстовый параметр или адресный (возьмётся текстовое представление), # КодСтр/НаимСтран по дефолту российскиеprotected Contractabstract EdoFnsXmlSerializerЭто надо в динкоде шаблона переопределить, чтобы вернуть структуру которая тут уже сумеет сериализоватьсяvoidinit(Connection con, EdoBillContext context, ContragentInfos contragentInfos) protected StringЗначение из контекста, required=trueprotected StringЗначение из контекстаprotected StringСначала ищется значение, если нет, то дефолтное значение.protected Stringvalue_oneof_req(String nameParam1, String nameParam2) Сначала ищется первое значение, потом второе.protected StringВерсПрог()Значение ВерсПрог для многих документовprotected Stringprotected Stringprotected EdoFnsXmlSerializer.SТекстИнфТип(String id, String val) protected EdoFnsXmlSerializer.SMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface ru.bitel.bgbilling.plugins.edo.server.bean.bill.EdoBillFileGenerator
getFileName
-
Field Details
-
con
-
context
-
contragentInfos
-
-
Constructor Details
-
FnsFileGenerator
public FnsFileGenerator()
-
-
Method Details
-
init
public void init(Connection con, EdoBillContext context, ContragentInfos contragentInfos) throws Exception - Specified by:
initin interfaceEdoBillFileGenerator- Parameters:
con- коннекшенcontext- контекст для этого генератора (из конфига документа+подписанта+BillDoc итд)contragentInfos- инфа о контрагенте-участнике-эдо с конкретным идентификатором- Throws:
Exception
-
getDocument
Это надо в динкоде шаблона переопределить, чтобы вернуть структуру которая тут уже сумеет сериализоваться- Throws:
ru.bitel.bgbilling.common.BGException
-
getFileContent
- Specified by:
getFileContentin interfaceEdoBillFileGenerator- Throws:
ru.bitel.bgbilling.common.BGException
-
getContract
- Throws:
ru.bitel.bgbilling.common.BGException
-
value
Значение из контекста- Throws:
Exception
-
value
Значение из контекста, required=true- Throws:
Exception
-
value_def
Сначала ищется значение, если нет, то дефолтное значение. (required=false для поиске в конфиге). Просто частый кейс сначала взять из конфига потом если не настраивали то дефолт (для почти понятных значений).- Throws:
Exception
-
value_oneof_req
Сначала ищется первое значение, потом второе. Обшая required=true. Просто частый кейс сначала взять перекрытого конфига потом общего.- Throws:
Exception
-
ФИОТип
-
ДатаТип
-
ВремяТип
-
ТекстИнфТип
-
ВерсПрог
Значение ВерсПрог для многих документов -
getAddress
protected FnsFileGenerator.АдресСтруктура getAddress(String valueFrom, String addressFromContragentInfos) throws Exception Варианты задания адреса: # [либо] адресный параметр договора => сгенерится адрес разбитый на поля Адрес=pid:адресный # [либо] адрес строка, константа или текстовый параметр или адресный (возьмётся текстовое представление), # КодСтр/НаимСтран по дефолту российские. # => сгенерится адрес текстового вида #Адрес.КодСтр= #Адрес.НаимСтран= Адрес.АдрТекст=pid:текст # [либо] компонентами адреса, константы или текстовые параметры, можно ВДОБАВОК к варианту адресного параметра, # тогда компоненты добавяется к компонентам адреса из параметра. => сгенерится адрес разбитый на поля # важно: # .КодРегион обязательно надо задать, т.к. из адресного его взять негде # .НаселПункт если требуется в дополнение к городу - тоже надо задать отдельно. # .НаимРегион в ряде форм.документов тоже обязательный и надо задавать Адрес.Индекс=450000 Адрес.КодРегион=02 Адрес.НаимРегион=Республика Адрес.Район=Район Адрес.Город=Уфа Адрес.НаселПункт=Пригород Адрес.Улица=ул. Ленина Адрес.Дом=666 Адрес.Корпус=666 Адрес.Кварт=666 Адрес.ИныеСвед=... [фича] значение "contragent_info" для .АдрТекст берёт текстовое значение из переданного извне addressFromContragentInfos, это позволяет гибко управлять текстовым вариантом адреса. Параметры КодСтр/НаимСтран могут (вероятно) понадобиться в случае не-РФ и будут штатно работать в конфиге.- Throws:
Exception
-