Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Camyil-89/m4dOFF-Python

Repository files navigation

m4dOFF

icon1

m4dOFF позволяет автоматизировать создание машиночитаемых доверенностей (МЧД). Для автоматизации данного процесса создается специальный шаблон с расширением .py в котором прописывается логика обработки .docx файла. В m4dOFF можно передать сразу с десяток файлов .docx и он из всех них сформирует МЧД по выбранному вами шаблону.

Встроенные функции шаблона

Чтобы получить данные из таблицы .docx файла необходимо использовать данную функцию self.parser.get_value.

  • название свойства в таблице (property)
  • индекс таблицы (отсчет с 0) (index_table)
  • номер строки (index_row, по умолчанию равен 0) - нужен в случаях когда в таблице есть одинаковые поля например ФИО, тогда если выставить index_row = 1, первое значение ФИО пропустит, а второе получит.
  • номер столбца (отсчет с 0) (index_cell, по умолчанию равен -1 - последнему значению в строке)
  • номер свойства в текущей строке (idex_property, по умолчанию равен 0 - первому столбцу в таблице)
self.parser.get_value(property, index_table, index_row = 0, index_cell = -1, idex_property = 0)

Позволяет вставить часть МЧД в XML формате.

self.__from_string(text)

Пример форматирования с помощью self.__from_string

document = ET.SubElement(self.root, 'Документ')
trust = ET.SubElement(document, 'Довер')
trust.append(self.__from_string(f'''
<СвДов ВидДовер="1" ПрПередов="1" ВнНомДовер="{self.parser.get_value("Внутренний номер", 0)}" НомДовер="{self.uid}" ДатаВыдДовер="{self.parser.get_value("Дата выдачи", 0)}" СрокДейст="{self.parser.get_value("Срок действия", 0)}">
 <СведСист>https://m4d.nalog.gov.ru/EMCHD/check-status?guid={self.uid}</СведСист>
</СвДов>'''))

Добавляет аттрибут к тегу который вы укажите.

self.__add_attribute(path, property, value):

Пример

self.__add_attribute("./Документ/Довер", "Тест", "Значение")
# результат
'''
<Довер Тест="Значение">
</Довер>
'''

Ищет тег по пути в XML файле.

self.__find_element(path)

Для обработки отчества нужно использовать данную функцию. Она позволяет определять есть ли у человека отчество или нет. В __get_patronymic можно передовать как массив так и обычную строку в формате "ФАМИЛИЯ ИМЯ ОТЧЕСТВО(по наличию)".

self.__get_patronymic(fio_parts)

ФИО можно обрабатывать с помощью __get_fio. Необходимо передать в формате "ФАМИЛИЯ ИМЯ ОТЧЕСТВО(по наличию)"

self.__get_fio(fio)

Пример

document = ET.SubElement(self.root, 'Документ')
trust = ET.SubElement(document, 'Довер')
trust.append(self.__from_string(f'''<ФИО {self.__get_fio(self.parser.get_value("ФИО", 0))}/>'''))
# результат
'''
<ФИО Фамилия="ИВАНОВ" Имя="ИВАН" Отчество="ИВАНОВИЧ"/>
'''

Для обработки серии и номера паспорта можно использовать __get_passport_number. Данная функция форматирует строку в вид "00 00 000000"

self.__get_passport_number(number)

Вся логика обработки .docx файла пишется в функции custom.

 def custom(self):
 '''
 данная часть модифицируется
 :return:
 '''

About

m4dOFF позволяет автоматизировать создание машиночитаемых доверенностей (МЧД)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /