Skip to content

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

Notifications You must be signed in to change notification 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

No packages published