Заполнение шаблона документа - общая информация

В системе RentRabbit есть ряд документов, которые генерируются в формате Word. На данный момент это договор, акт и транспортная накладная.
Для этих типов документов пользователи могут самостоятельно создавать шаблоны и генерировать документы в том виде, который им требуется.

Шаблоны настраиваются полностью, например, вы можете взять свой формальный договор в формате Word и указать специальным образом, какие данные куда нужно вставлять автоматически при генерации документа.
Как это сделать мы описываем в данной статье!  

Общий принцип заполнения шаблонов

Чтобы указать системе, куда требуется подставить данные нужно вставлять специальные коды. Для разных документов список доступных кодов разный.

Пример:
В системе заполнен номер и дата договора, мы хотим чтобы они автоматически подставлялись при генерации договора.



В шаблоне договора указываем коды:

  • Код номера договора - project.contract.number
  • Код даты договора - project.contract.date

Система заменяет коды нужными значениями и мы получаем заполненный договор:

Структура кодов

Код пишется следующим образом

  • Сначала ставится знак доллара $, при замене кода на значение, именно со знака доллара берется стиль - цвет текста, размер шрифта. тип шрифта и другие;
  • Далее текстовая часть заключается в скобки {  };
  • Затем пишется путь до поля, разделителем выступает символ точки, путь всегда ведет от объекта документа в целом до конечного нужного поля.
    Например project.contract.number ведет из объекта документа в целом к объекту проекта, в нем к объекту договора и в нем к полю номера;
  • Далее в зависимости от типа кода, можно указать формат, в котором нужно вывести данные. Например, есть поле типа сумма денег - sum, можно указать формат .cents и будут выведены только копейки.

Типы кодов

Дата - глобальный момент времени, выводится согласно часовому поясу клиента - в Москве будет одно время, на Бали другое. Доступно множество форматов для красивого вывода даты и/или времени;

  1. format - строка в красивом представлении с валютой и копейками;
  2. formatWithoutCurrency - строка в красивом представлении без валюты с копейками;
  3. withoutCents - неформатированная сумма как число без копеек (центов);
  4. cents - неформатированная сумма только копеек (центов);
  5. inWordsRuShowAll - прописью на русском, полностью с "рублей" и "копеек";
  6. inWordsRuHowAllCentsAsNumber - прописью на русском, копейки числом с "рублей" и "копеек";
  7. inWordsRuHideCents - прописью на русском, без копеек, с "рублей";
  8. inWordsRuHideUnitNamesAndCents - прописью без копеек, без подписи "рублей";
  9. half - половина суммы округленная в меньшую сторону до копеек, возвращается объект Сумма денег, можно далее применять к нему формат.

Строка - просто текстовая строка, например номер договора.
Сумма денег - сумма денег, доступны различные форматы вывода: с копейками, без копеек, прописью и другие;
Число с дробной частью - нецелое число, например 0.5 смены или скидка в 33.33 процента;
Локальная дата  - дата записанная просто как фиксированная строка, например дата договора. Она просто хранит номер года и дня, часовой пояс клиента никак не влияет на нее. Форматы вывода доступны те же что и для обычной даты.
ФИО  - фамилия, имя и отчество. Доступны форматы с инициалами, полным написанием, отдельно фамилией другие;

  •  

Объекты

Коды могут вести к полям объектов которые встречаются много раз, например есть объект с реквизитами legalDetails, он может быть в объекте арендатора renter.legalDetails либо в объекте компании businessAccount.legalDetails.

Основные объекты в системе

Реквизиты legalDetails

Общие (более одной страны)

  1. fullOfficialName  - официальное наименование, строка;
  2. physicalAddress - адрес нахождения, строка;
  3. legalAddress - юридический адрес, строка;
  4. birthDate - дата рождения, локальная дата;
  5. sex - пол, строка;
  6. bankName - наименование банка, строка;
  7. iban - IBAN (International Bank Account Number), строка;
  8. swiftBic - BIC (Банковский идентификационный код SWIFT, в РФ используется обычный bic), строка;

Россия

  1. inn - ИНН, строка;
  2. innIp - ИННИП, строка;
  3. kpp - КПП, строка;
  4. ogrn - ОГРН, строка;
  5. ogrnIp - ОГРНИП, строка;
  6. bic - БИК (банковский идентификационный код), строка;
  7. correspondentAccountNumber - корреспондентский счет, строка;
  8. paymentAccountNumber - номер счета, строка;
  9. passportNumber - номер паспорта, строка;
  10. identityDocumentIssuerName - выдан (кем выдан паспорт), строка;
  11. identityDocumentIssueDate - дата выдачи (паспорта), локальная дата;
  12. passportIssuerCode - код подразделения, выдавшего паспорт, строка;
  13. representedByDocumentString - в лице (родительский падеж), строка;

Беларусь 

  1. byUnp - УНП, строка;
  2. byIdentificationPassportNumber - идентификационный номер, строка;
  3. byPassportBookNumber - номер бланка паспорта, строка;

Казахстан

  1. kzIin - ИИН, строка;
  2. kzBin - БИН, строка;
  3. kzPassportNumber - номер паспорта, строка;
  4. kzCertificateNumber - номер удостоверения, строка;
  5. identityDocumentExpirationDate - срок действия документа, уд. личность (дата истечения), локальная дата;

Другая

  1. citizenship - гражданство, строка;
  2. identityDocumentNumber - номер документа удостоверяющего личность, строка;

Технические поля (есть у всех стран, помогают в заполнении шаблона)

  1. isEmpty - пустое ли поле, да / нет;
  2. isLegalEntity - является юридическим лицом, да / нет;
  3. isIndividualEntrepreneur - является индивидуальным предпринимателемда / нет;
  4. isNaturalPerson - является физическим лицом,  да / нет;
  5. country - название страны, строка;
  6. subjectType - тип субъекта, строка. Пример - физ. лицо РФ;

Контакт contactPerson (основной контакт)

  1. personFullName - фамилия, имя и отчество, ФИО;
  2. position- доkжность, строка;
  3. email- адрес электронной почты, строка;
  4. phoneNumber - номер телефона,  строка.




Арендатор renter

Аккаунт компании businessAccount