Giter VIP home page Giter VIP logo

m4doff-python's Introduction

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:
        '''

m4doff-python's People

Contributors

camyil-89 avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.