Класи та команди K2 ERP Python
Виділяється doc_id із вхідних даних.; Вимикаються кнопки: add, delete, printReport.; ==== createImageSliderModal(images, containerId = null) ==== showBootstrapLoader(containerId) ==== removeBootstrapLoader(containerId) ==== showUserAlert(message, type = 'light') ==== Стилі (Назва) ==
Подзаголовок
Заголовок 1
Заголовок 2
Заголовок 3
Заголовок 4
Заголовок 5
Заголовок 6
Звичвйний текст
Ілюстрації з документа
dashboard_settings=k2report_embed) Вставляє нові записи у таблицю k2remainder_by_parties зі статусом 'new'.;=== Клас k2datasync ===
K2UpdateRemainder
page_url(str): url of page with Errors.;==== clear_logging_messages() ====
Clear all logging message by user
pydoc -w k2/k2obj.py, де k2/k2obj.py - шлях до файлу з корня
Параметри:
index.php?title=Категорія:Документація для розробників
log_entry(error_id, status, message, name)
Хуки.;==== Атрибути класу ====
Властивості класу
Метод очікує вхідні інформаційні дані у форматі JSON і доступ до них здійснюється через request.json.; * K2 Cloud ERP
Класk2mail
Вивід списку ідентифікаторів компонент status (str): The status of the message (e.g., cls.log_error - 'ERROR', cls.log_warning - 'WARNING', cls.log_success - 'SUCCESS').; See help(type(self)) for accurate signature.; Вимикаються кнопки add, edit, delete, printReport на панелі інструментів.; Він має основну базову функціональність, що розширюється та розвивається та яка є собою у всіх класів системи
index.php?title=Категорія:Документація K2
Ім'я YML: 'k2doc_rows_detail'.;
Об'єкт класу K2UpdateRemainder.;==== get_active_lang_list() ==== Алгоритм роботи: генерація друкованих документів
Клас K2admin_menus
Даний клас формує список пунктів меню для конкретного користувача
Властивості
Витягує equipment_type_name та equipment_type_code з таблиці k2equipment_type
==== load_logging_message_by_id(error_id: str) ====
Повертає:
:return: A tuple containing:
=== Він взаємодіє з базою даних.; створення забезпечується через Клас K2ReportDesigner надає функціональність; додатково реалізовано редагування та перегляду звітів і дашбордів.; Окремо варто відзначити управляє файлами звітів і генерує JSON-дані для подальшого використання. ===
==== Метод очікує вхідний JSON, що містить ідентифікатор ліда (lead_id) ====
Request information about the running threads of the current process.; коректну обробку часу в межах системи реалізується засобами Призначення:.; Parameters:
Пошук файлів з перекладами
Отримання інформації про тип обладнання:
=== Клас k2secur ===
error_id (str): The ID of the error to load.;===
==== Атрибути ====
path_class: 'components/k2production/k2production/k2equipment'
file_class: 'k2equipment'
==== Методи ====
==== init(self) ==== Параметри ==== Логіка роботи ====
==== get_path_to_root(caller_file) ====
str: HTML-шаблон сторінки перегляду дашборду.; dict: The logging message if found, None otherwise.; str: HTML-шаблон сторінки редагування.; Повернення результату у форматі JSON
Приклад використання:
K2Lead.; Витягує нові залишки з логів, додає їх у таблицю k2remainder_by_parties, оновлює статуси існуючих записів та видаляє застарілі залишки.; Витягує інформаційні дані про залишки (inventSumLines).;==== get_locale_id() ====
Ініціалізація класу.; session (Session) – об'єкт сесії бази даних.; У разі помилки повертає повідомлення з помилкою.; date_from = "2023-01-01"
process_options - Метод обробляє різні параметри, передані через JSON-запит, і налаштовує об'єкти типу K2Grid для роботи з даними в залежності від значення ключа name у вхідних даних.; Таблиця яка містить інформаційні дані про лідів.; {% endblock %
Викликає конструктор батьківського класу K2Docs.;<pre>
Призначення: застосовують, коли потрібно для зберігання та обробки даних, пов'язаних з CRM.; dict: A dictionary containing the user permissions, including 'roleid' and various permission flags
name #Назва компоненти.; current_user_permissions = K2().get_user_permissions()
Потребує доступу до бази даних через self.db
Якщо контакт не знайдено то для полів name, surname, email встановлюється значення None.; Використовуються для розширення або зміни поведінки стандартних методів системи (файл hooks.py)
==== search_comp_names() ====
==== create_system_settings() ====
reports_id = ['b452a5ae84f9e92e75eb0467c196fd71', '1673a4fab757fb6c5df970fdc6ee680c',
self._name_yml_master #назва конфігураційного файлу
Вимикаються кнопки: add, edit, delete, printReport.;
Передає список затверджувачів, ідентифікатор об'єкта, URL та характеристика змін
K2DocsCRM
{% else %}
get_user_role(user_id)
k2log==2.0.0.2 k2grid==2.0.4.1
Логіка роботи:
Клас k2path
Отримує список активних користувачів для затвердження з таблиці k2users_for_approval Фіксує зміни у базі (commit).; Таблиця, в яку додається новий контакт на основі даних ліда.; k2form==2.0.1.27
Python залежності, якщо є. (файл requirements.txt)
Readme.md. Файл в якому написана ціль компоненти, як її використовувати. Та різні моменти, які потрібно знати програмістам, адмінам та користувачам
Історія змін. Документ, в якому описуються зміни текстом, зрозумілим для користувачів. (файл history.txt)
Структура бази даних. На даний час, в форматі SQL power Architech. (каталог doc/schema)
Бізнес-процеси, схеми роботи, які були втілені в проудкті. В форматі Draw.io. (каталог doc/business_processes)
Інструкція користувача. Де розписано, як користуватись продуктом. Інструкція користувача повинна автоматично підтягуватись системою документації K2 Cloud ERP, додаючи розділ документації для цього продукту і надаючи можливість пошуку інформації в документації. Зберігається в каталозі: doc/user_manual)
Документацію для розробників, що генерується автоматично з коментарів. Зберігається в каталозі: doc/developer_documentation )
(потрібно завершити автоматичне збирання із компонент)
Документація для розробників (не обов’язково, але желательно). Додатково, якщо потрібно, щось додатково відмітити. Каталог doc/additional_developer_docs)
Приклади програмного коду з використанням компонент. Які автоматично з’являються в Examples при встановленні компоненти. І по яким можна протестувати функціонал. /examples (потрібно вирішити як додавати)
Віджети. Дашборди та інші візуальні елементи для вставки на головну сторінку та інші сторінки, які можна додавати автоматично. (потрібно вирішити як додавати) /widgets
Юніт тести. Написати де і яка структура. Юніт тести повинні автоматично знаходитись системою і використовуватись для загального тестування системи. Каталог /tests (потрібно завершити автоматичне збирання із компонент)
Локалізації. В К2 використовуються щонайменше: українська та англійська мова. Ядро повинно вміти робити переклади і давати можливість працювати з перекладами стороннім користувачам, покращуючи якість перекладу. Зберігається в каталозі:
/languages/en/LC_MESSAGES/messages.po /languages/en/LC_MESSAGES/messages.mo
Демо-дані. Це дані, які розгортаються на демо-базі даних для демонстрації роботи з продуктом. (потрібно вирішити як додавати)
Файли ресурсів (зображення, тексти): Каталог /static
YML, якщо є. Каталог /yml
Іконки, які будуть використовуватись для представлення компоненти. Каталог /static/img
Авторство. Якщо К2, то в форматі, як прийнято в цілому для К2, якщо сторонній розробник - інформація про стороннього розробника. Copyright © 2000-2025 К2®, Rudiuk Serhii. All rights reserved.
Шаблони, якщо є. Вказуємо каталог. Звертаю увагу, що К2 Cloud ERP повинна мати змогу використовувати не обмежену кількість шаблонів. Шаблони повинні бути так розроблені, щоб не конфліктувати з глобальними шаблонами системи. Каталог /templates
Приклад дерева структури компоненти
components/ └── k2adm/ ├── k2adm/ │ ├── data/ │ ├── languages/ │ ├── static/ │ ├── templates/ │ ├── yml/ │ ├── tests/ │ ├── examples/ │ ├── widgets/ │ ├── __init__.py │ ├── objects/ │ ├── users/users.py │ ├── roles/roles.py │ ├── forms.py │ ├── history.txt │ ├── hooks.py │ ├── models.py │ ├── views.py│ ├── __init__.py ├── doc/ ├── schema/ ├── business_processes/ ├── user_manual/ ├── developer_documentation/ ├── additional_developer_docs/ ├── history.txt ├── requirements-components.txt ├── requirements.txt ├── setup.py
Системні класи
Клас K2
Ядро системи K2CloudERP.
Властивості
Властивості класу ==== Властивості інстансу
self.secur #властивість що підключає до ядра клас безпеки
self.path #властивість що підключає до ядра клас пошуку шляхів по ієрархії self.data #властивість що підключає до ядра клас синхронізації даних
self.settings #властивість що підключає до ядра клас збереження та пошуку налаштувань
self.notifications #властивість що підключає до ядра клас створення та відправки сповіщень ==== K2().domain
Методи
Методи інстансу ==== K2().get_user_counterparts_id() ==== K2().component_list() ==== K2().get_user_project_name() ==== K2().get_current_user() ==== K2().create_db_role(user_name, password)
__init__(self, *args, **kwargs)
Initialize self. See help(type(self)) for accurate signature.
add_authorized_users(self, user_id, login)
Додати користувача до списку авторизованих
check_authorized_users(self, user_id)
Перевірити чи користувач системи активний
check_logout_users(self, user_id)
Авторизовані користувачі
component_list()
Пошук встановлених компонент
create_db_file_config_user(self)
Створення файлу з параметрами підключенням до БД для користувача
create_db_role(self, user_name, password)
Створення користувача на рівні БД
current_template(self)
Search current template
db_custom_engine(self, db)
Зміна custom параметрів підключення
db_user_engine(self, db)
Зміна параметрів підключення для поточного користувача
dell_authorized_users(self, user_id)
Видалити користувача зі списку авторизованих
drop_db_role(self, user_name)
Видалення користувача на рівні БД
get_all_subclasses(cls)
Пошук підкласів
get_authorized_users(self)
Отримати список авторизованих користувачів
get_current_user(self)
Повертає об’єкт поточного користувача
K2().get_current_user()
get_menu_url(self)
Повертає список url активних пунктів меню
get_project_setting(self)
Форма зміни проекту
get_user_counterparts_id(self)
Пошук id поточного контрагента
K2().get_user_counterparts_id()
get_user_counterparts_name(self)
Пошук назви поточного контрагента
K2().get_user_counterparts_name()
get_user_project_id(self)
Пошук id поточного проекту користувача
K2().get_user_project_id()
get_user_project_name(self)
Пошук назви поточного проекту користувача
K2().get_user_project_name()
get_user_stoages_name(self)
Пошук назви поточного складу
K2().get_user_stoages_name()
get_user_storage_id(self)
Пошук id поточного складу
K2().get_user_storage_id()
get_user_structural_division_id(self)
Пошук id поточного підрозділу
K2().get_user_structural_division_id()
get_user_structural_division_id_tree(self)
Пошук всіх підрозділів за ієрархією від поточного підрозділу користувача у форматі tuple ('id1', 'id2', 'id3')
init_db(self)
Підключення db_uri для вибраної бази даних
init_db_custom(self, key)
Підключення custom db_uri за ключем.
init_db_uri(self)
Пошук і ініціалізація файлу з підключення до бази даних
init_db_uri_custom(self)
Зчитує всі підключення до бази даних з файлу db_custom.yml і зберігає їх у словник.
init_db_uri_user(self)
Пошук і ініціалізація файлу з підключення до бази даних для поточного користуача
init_db_user(self)
Підключення db_uri для користувача
init_lm(self, app)
Ініціалізація логін-менеджера
kill_user_sessions(self, target_username)
Завершення сесії підключення користувача на рівні БД
search_class_dict(self, parent_class=None)
Рекурсивний пошук властивостей нащадків базового класу
search_class_prop(path_objs) ==== search_menu_items(self)
Search menu items
search_menu_items_category(self)
Search menu items category
search_static_files(self)
url_map(self)
Методи класу
Окремо варто відзначити всі властивості і методи отримуються від батьківського класу.; Клас K2CRM наслідується від K2Obj.
search_babel_translation_directories()
Exception: If an error occurs during database query execution.;==== Залежності ====
Для кожного запиту виконується SQL-запит та результат додається до result_dict.; Лід і контакт взаємодіють через базу даних, де інформаційні дані ліда переносяться в таблицю контактів.;=== Він надає доступ до ключових глобальних налаштувань та ресурсів, необхідних для роботи з документами або іншими функціями CRM.; Клас K2DocsCRM є собою частиною системи K2CRM і наслідується від K2Obj. ===
date_to = "2023-12-31"
self._data_source #датасети
Видаляє застарілі ('old').; Формує SQL-запити для витягування даних із таблиць бази даних (Товари, Організація, Контрагент, складський облік, Договір, Відповідальна особа, замовник).; Параметри:
Виклик K2.get_path_abs(__file__) Завантаження перекладів
Компоненти, які публікуються в K2 Cloud ERP повинні мати щонайменше такі атрибути
K2_Cloud_ERP_Python_01.png|Ілюстрація K2 Cloud ERP Python|посилання=Файл:K2_Cloud_ERP_Python_01.png
Домен, на якому функціонує CRM, отримується з глобального об'єкта K2.domain.; Повертає:
time_zone:
Вимоги до створення компонент
Виклик K2.get_path_to_root(__file__).; self._send_group_params #параметри групи
threads and greenlets.; K2.get_platform() Args:
Клас K2Obj
{% include dashboard_settings.template %}
Атрибути
dashboard_viewer()
=
k2contacts.; Parameters:
self._new_buttons #назва кнопки the current thread and greenlet.) ==== create_names_yml(self, name_yml: str = '', name_yml_tree: str = '', ==== datasource_is_storage_id (list): Список флагів, що вказують на наявність storage_id.; Цей клас представляє CRM компонент, який гарантує роботу з різними розділами CRM системи такими як: == API == usr_perm = K2().get_user_permissions() Returns: актуалізація залишків на основі даних Pub/Sub.; Відображає сторінку редагування друкованої форми.;==== get_platform() ==== * A sequence of text lines detailing the stacks of running У разі помилки скасовує транзакцію і повертає характеристика помилки.; Load a logging message by its error_id from the error log file.; Перевірка наявності записів з parentid: ==== Класk2notifications ==== Відсутні.;==== get_locale() ==== 'new' – нові залишки, отримані в поточному оновленні.; Створює характеристика змін у форматі "поле: старе_значення → нове_значення" ==== logging_message(status, message, page_url=None, show_message=True) ==== === Клас k2logging === <pre>
Повертає
k2report_embed = K2ReportEmbed(reports_id)
З цього класу створюються всі об’єкти системи К2.; Returns:
dict: Словник з результатами запитів або помилкою.;==== Моделі які використовуються ====
Логіка роботи:
json_data = k2_designer.json_data_create(datasource_value, datasource_keys, datasource_is_counterpart_id, datasource_is_storage_id, period, date_from, date_to)
Класи компонент
date_from (str, опціонально): Початкова дата періоду.; Абсолютний шлях до файлу, в якому виконується код.;===
Методи класу
= k2logbook_tm() ==== take_logbook_tm(task_id) ==== edit_logbook_tm(logbook_fields_tm_id) ==== select_current_step(connection, logbook_fields_tm_id) ==== planned_tm(data, connection) ==== unplanned_tm(data, connection) ==== write_logbook_params(data) ==== read_logbook_params() ==== fill_logbook_tm_rows(data) ==== pull_spare_parts_data() ==== send_params_to_k2logbook_spare_parts(data) ==== instruments_and_equipment_parts_params() ==== task_step_form() ==== is_unplanned_step_form(step_data) ==== save_step(data) ==== end_step(data, session_id, connection, post_request) ==== step_image_check(connection, data) ==== step_data_check(connection, data) ==== decline_task() ==== write_user_comment() ==== end_step_manager(data) ==== detail_check(connection, data) ==== send_params_to_k2mount_point_form() ==== change_scheme_equipment() ==== pass_familiarisation() ==== create_write_off_act_logbook(connection, data) ==== create_doc_rows_for_write_of_act(connection, data) ==== write_off_part_logbook(connection, data) ==== end_logbook() ==== spare_parts_check() ==== equipment_qr_confirmation() ==== add_new_equipment_parts(connection, data) ==== material_quantity() ==== create_unplanned_task(data) ==== take_material_by_qr() ==== return_material_by_qr() ==== requires_partner() ==== join_task() ==== e_report_logbook(logbook_fields_tm_id) ==== get_all_employee_image() ==== get_employee_image() ==== get_image_logbook(image_data) ==== confirm_task() ==== send_on_revision_task() ==== send_to_the_task_list_revision() ==== change_task_employee(connection, data) ==== change_step_status_revision(connection, data) ==== change_task_status_revision(connection, data, status) ==== Клас K2EquipmentFunction
=== Клас K2EquipmentFunction є собою підкласом K2Obj і призначений для роботи з функціональністю, пов'язаною з обладнанням у системі K2.; K2.logging_message(K2.log_success, 'Operation completed successfully.'1)
Властивості інстансу
self._send_params #параметри для конфігураційного файлу Виконує SQL-запит до таблиці k2contacts для пошуку контакту за номером телефону.; приклад:
{% if error %}
Отрмання rolename поточного користувача
Формування повідомлення:
datasource_value = ["SELECT * FROM table1", "SELECT * FROM table2"]
get_user_permissions()
datasource_keys (list): Список ключів для джерел даних.;==== ins_search_comp() ====
У разі помилки: JSON з описом помилки (код 404 або 500)
datasource_value (list): Список SQL-запитів.; Example:
Результати запитів конвертуються у словники (row_asdict) для зручного JSON-формату.; Додаткові класи від яких залежить функціональні можливості компоненти.;
name_yml: The name of the yml file to search for (without the '.yml' extension).