Перейти до вмісту

Класи та команди K2 ERP Python: відмінності між версіями

Матеріал з K2 ERP Wiki
Створена сторінка: {{Картка документації K2 | назва = K2 Cloud ERP Python для розробників | система = K2 Cloud ERP | мова = Python | тип = Документація для розробників }} '''K2 Cloud ERP Python для розробників''' — документація з вимогами до створення компонентів, структури пакетів, системних класів, API, ко...
 
Прибрав шаблон
Рядок 1: Рядок 1:
dict: Словник з результатами запитів або помилкою.; Параметри (doc_id) передаються через send_params.; dashboard_settings=k2report_embed)
Виділяється doc_id із вхідних даних.; Вимикаються кнопки: add, delete, printReport.; ==== createImageSliderModal(images, containerId = null) ==== showBootstrapLoader(containerId) ==== removeBootstrapLoader(containerId) ==== showUserAlert(message, type = 'light') ==== Стилі (Назва) ==


</pre>
Подзаголовок


{{ error }}
Заголовок 1
==== Атрибути класу ====
=== Клас k2data ===


==== search_comp_names() ====
Заголовок 2


This method searches for a yml file with a specified name in the caller directories of all subclasses of K2Obj.; Вимикаються кнопки add, edit, delete, printReport на панелі інструментів.; dict: A dictionary containing formatted log messages, the count of 'error' messages, and the count of 'warning' messages.;== K2 Cloud ERP Javascript ==
Заголовок 3


* A sequence of text lines detailing the stacks of running
Заголовок 4


'new' – нові залишки, отримані в поточному оновленні.;==== viewer() ====
Заголовок 5


create_contact() - Цей метод створює контакт на основі даних існуючого ліда.;==== _insert_new_pub_sub_nomenclature(session, nomenclature_data) ====
Заголовок 6


==== get_user_permissions() ====
Звичвйний текст


==== Властивості інстансу ====
== Ілюстрації з документа ==


reports_id = ['b452a5ae84f9e92e75eb0467c196fd71', '1673a4fab757fb6c5df970fdc6ee680c',
dashboard_settings=k2report_embed)
Вставляє нові записи у таблицю k2remainder_by_parties зі статусом 'new'.;=== Клас k2datasync ===


'stable' – залишки, які підтвердились та доступні користувачам.; Додаткові класи від яких залежить функціональні можливості компоненти.; Результати запитів конвертуються у словники (row_asdict) для зручного JSON-формату.; session (Session) – об'єкт сесії бази даних.; Ім'я YML: 'k2doc_move'.; ==== create_names_yml(self, name_yml: str = '', name_yml_tree: str = '', ====
=== K2UpdateRemainder ===
page_url(str): url of page with Errors.;==== clear_logging_messages() ====


</pre>
Clear all logging message by user
self._name_yml_tree #назва конфігураційного файлу з деревом
==== show_grid(self) ====


Цей клас гарантує генерацію та друк звітів за допомогою API Stimulsoft.; str: HTML-шаблон сторінки редагування.; Перевіряє наявність записів у таблиці k2tm_fields з parentid != '0'
pydoc -w k2/k2obj.py, де k2/k2obj.py - шлях до файлу з корня


Формує URL для сторінки затвердження
Параметри:


If no permissions are found for the user, an empty dictionary is returned.; (файл models.py)
{{ error }}


K2.get_platform()
[[index.php?title=Категорія:Документація для розробників]]


Домен, на якому функціонує CRM, отримується з глобального об'єкта K2.domain.; Перевіряє чи було надано lead_id.; ==== __init__(sql=[]) ==== create_report(sql=None, data_source=None) ==== get_report(file_name) ==== execute_query(query, params=None) ==== get_report_designer(file_name, design_type_id) ==== add_reports_type(name, data) ==== Клас K2ReportEmbed ===
==== log_entry(error_id, status, message, name) ====


надає можливість отримувати та відображати звіти з бази даних на основі їх ідентифікаторів.; K2ReportEmbed - Компонент для вбудовування звітів у веб-додаток.
Хуки.;==== Атрибути класу ====


==== Атрибути класу ====
==== Властивості класу ====


==== __init__(reports_id: List [str]) ==== get_report_data() -> Optional [List [Dict [str, Any]]] ==== Бекенд (Flask) ====
Метод очікує вхідні інформаційні дані у форматі JSON і доступ до них здійснюється через request.json.; * [[K2 Cloud ERP]]
* [[K2 ERP]]
* [[Python]]
* [[API]]
* [[Документація для розробників]]
* [[K2 Cloud ERP Javascript]]


Parameters:
==== Клас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 на панелі інструментів.; Він має основну базову функціональність, що розширюється та розвивається та яка є собою у всіх класів системи


==== dashboard_viewer() ====
[[index.php?title=Категорія:Документація K2]]
Ім'я YML: 'k2doc_rows_detail'.; __TOC__


datasource_value (list): Список SQL-запитів.; Відсутні.; domain:
Об'єкт класу K2UpdateRemainder.;==== get_active_lang_list() ====
Отримання інформації про тип обладнання:
Алгоритм роботи:
генерація друкованих документів


K2Lead.; __file__ - стандартна змінна в Python, яка містить абсолютний шлях до поточного файлу, в якому вона застосовується.; {% endif %}
=== Клас K2admin_menus ===


== K2 Cloud ERP Python ==
==== Даний клас формує список пунктів меню для конкретного користувача ====


==== log_entry(error_id, status, message, name) ====
==== Властивості ====


k2contacts.; json_data = k2_designer.json_data_create(datasource_value, datasource_keys, datasource_is_counterpart_id, datasource_is_storage_id, period, date_from, date_to)
Витягує equipment_type_name та equipment_type_code з таблиці k2equipment_type


K2.logging_message(K2.log_error, 'Operation completed with error.')
<pre>


актуалізація залишків на основі даних Pub/Sub.; self._new_buttons #назва кнопки
==== load_logging_message_by_id(error_id: str) ====


==== Фронтенд (Jinja-шаблон) ====
Повертає:


==== Метод очікує вхідний JSON, що містить ідентифікатор ліда (lead_id) ====
:return: A tuple containing:


Виклик K2.get_path_abs(__file__)
=== Він взаємодіє з базою даних.; створення забезпечується через Клас K2ReportDesigner надає функціональність; додатково реалізовано редагування та перегляду звітів і дашбордів.; Окремо варто відзначити управляє файлами звітів і генерує JSON-дані для подальшого використання. ===


Вставляє нові записи у таблицю k2remainder_by_parties зі статусом 'new'.;</pre>
==== Метод очікує вхідний JSON, що містить ідентифікатор ліда (lead_id) ====


version #реліз компоненти
Request information about the running threads of the current process.; коректну обробку часу в межах системи реалізується засобами Призначення:.; Parameters:
Пошук файлів з перекладами
Отримання інформації про тип обладнання:
=== Клас k2secur ===
error_id (str): The ID of the error to load.;===


* [[K2 Cloud ERP]]
==== Атрибути ====
* [[K2 ERP]]
* [[Python]]
* [[API]]
* [[Документація для розробників]]
* [[K2 Cloud ERP Javascript]]


Вимикаються кнопки: add, delete, printReport.; Usage:
path_class: 'components/k2production/k2production/k2equipment'
Абсолютний шлях до файлу, в якому виконується код.; Якщо знайдено, оновлює інформаційні дані ліда (ім'я, прізвище, email) у переданому об'єкті.; Передає список затверджувачів, ідентифікатор об'єкта, URL та характеристика змін


name (str): Name of the object (page) to load messages for.;== Див.; додатково ==
file_class: 'k2equipment'
Хуки.; datasource_is_storage_id (list): Список флагів, що вказують на наявність storage_id.;<pre>


""" Index page """
==== Методи ====


У разі успіху: JSON з повідомленням про успішну відправку (код 200)
==== init(self) ==== Параметри ==== Логіка роботи ====
__file__ -стандартна змінна в Python, яка містить абсолютний шлях до поточного файлу, в якому вона застосовується.;==== Атрибути класу ====


id = K2.generate_id()
==== 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 %


dict: The logging message if found, None otherwise.;===
Викликає конструктор батьківського класу K2Docs.;<pre>


==== Атрибути ====
Призначення: застосовують, коли потрібно для зберігання та обробки даних, пов'язаних з CRM.; dict: A dictionary containing the user permissions, including 'roleid' and various permission flags


path_class: 'components/k2production/k2production/k2equipment'
name #Назва компоненти.; current_user_permissions = K2().get_user_permissions()


file_class: 'k2equipment'
Потребує доступу до бази даних через self.db


==== Методи ====
Якщо контакт не знайдено то для полів name, surname, email встановлюється значення None.; Використовуються для розширення або зміни поведінки стандартних методів системи (файл hooks.py)


==== init(self) ==== Параметри ==== Логіка роботи ====
==== search_comp_names() ====


message (str): The content of the message to be saved.;</pre>
==== create_system_settings() ====
reports_id = ['b452a5ae84f9e92e75eb0467c196fd71', '1673a4fab757fb6c5df970fdc6ee680c',
self._name_yml_master #назва конфігураційного файлу


self._send_params #параметри для конфігураційного файлу
Вимикаються кнопки: add, edit, delete, printReport.;</pre>


Ім'я YML: 'k2doc_rows_detail'.; Визначення операційної системи
Передає список затверджувачів, ідентифікатор об'єкта, URL та характеристика змін


{% include dashboard_settings.template %}
=== K2DocsCRM ===


<pre>
{% else %}


=== Клас для актуалізація залишків на основі даних з отриманих від клієнтів. ===
</pre>


У разі помилки скасовує транзакцію і повертає характеристика помилки.; Якщо контакт знайдено то відбувається актуалізація даних у options [‘dataField’] (name, surname, email, lead_id)
==== get_user_role(user_id) ====


=== Клас k2trans ===
k2log==2.0.0.2
k2grid==2.0.4.1


Зберігає ідентифікатор та конфігурація звіту в JSON-файл.;</pre>
Логіка роботи:


name_yml_master: str = '')
=== Клас k2path ===


Призначення: застосовують, коли потрібно для зберігання та обробки даних, пов'язаних з CRM.; name_yml: The name of the yml file to search for (without the '.yml' extension).; date_from = "2023-01-01"
Отримує список активних користувачів для затвердження з таблиці k2users_for_approval
Передаються параметри: doc_id.; self._data_source #датасети
Фіксує зміни у базі (commit).; Таблиця, в яку додається новий контакт на основі даних ліда.; k2form==2.0.1.27
</pre>


</pre>
Python залежності, якщо є. (файл requirements.txt)


Отримує список pub_sub_list_id з логів k2pubsub_logs.; У разі помилки застосовується лог помилки і повертається повідомлення з помилкою.; datasource_is_counterpart_id (list): Список флагів, що вказують на наявність counterpart_id.; crm_data(route, data) - Цей метод отримує інформаційні дані із відповідних таблиць з бази даних на основі переданих параметрів для подальшого оформлення друкованої форми документів у компоненті k2CRM
Readme.md. Файл в якому написана ціль компоненти, як її використовувати. Та різні моменти, які потрібно знати програмістам, адмінам та користувачам


Логіка роботи:
Історія змін. Документ, в якому описуються зміни текстом, зрозумілим для користувачів. (файл history.txt)


Витягує equipment_type_name та equipment_type_code з таблиці k2equipment_type
Структура бази даних. На даний час, в форматі SQL power Architech. (каталог doc/schema)


check_lead() - Цей метод перевіряє, чи існує контакт із заданим номером телефону у базі даних (k2contacts).;==== Класk2notifications ====
Бізнес-процеси, схеми роботи, які були втілені в проудкті. В форматі Draw.io. (каталог doc/business_processes)


У разі помилки виконує відкат (rollback).; Rerurn: list of components identificators
Інструкція користувача. Де розписано, як користуватись продуктом. Інструкція користувача повинна автоматично підтягуватись системою документації K2 Cloud ERP, додаючи розділ документації для цього продукту і надаючи можливість пошуку інформації в документації. Зберігається в каталозі: doc/user_manual)


<pre>
Документацію для розробників, що генерується автоматично з коментарів. Зберігається в каталозі: doc/developer_documentation )


self._report_id #id звіту
(потрібно завершити автоматичне збирання із компонент)


==== __init__(self) ====
Документація для розробників (не обов’язково, але желательно). Додатково, якщо потрібно, щось додатково відмітити. Каталог doc/additional_developer_docs)


=== Клас K2Site ===
Приклади програмного коду з використанням компонент. Які автоматично з’являються в Examples при встановленні компоненти. І по яким можна протестувати функціонал. /examples (потрібно вирішити як додавати)


створення звітів за допомогою конструктора звітів
Віджети. Дашборди та інші візуальні елементи для вставки на головну сторінку та інші сторінки, які можна додавати автоматично. (потрібно вирішити як додавати) /widgets


Успішний результат повертається у форматі JSON із ключем data.; Args:
Юніт тести. Написати де і яка структура. Юніт тести повинні автоматично знаходитись системою і використовуватись для загального тестування системи. Каталог /tests (потрібно завершити автоматичне збирання із компонент)


__TOC__
Локалізації. В К2 використовуються щонайменше: українська та англійська мова. Ядро повинно вміти робити переклади і давати можливість працювати з перекладами стороннім користувачам, покращуючи якість перекладу. Зберігається в каталозі:


==== Використовує клас K2Notifications для відправки повідомлень ====
<pre>
/languages/en/LC_MESSAGES/messages.po
/languages/en/LC_MESSAGES/messages.mo
</pre>


=== Клас K2ReportDesigner ===
Демо-дані. Це дані, які розгортаються на демо-базі даних для демонстрації роботи з продуктом. (потрібно вирішити як додавати)


Save a logging message to the stack.; Якщо lead_id не надано то повертається помилка.; date_to (str, опціонально): Кінцева дата періоду.;=== Клас K2admin_menus ===
Файли ресурсів (зображення, тексти): Каталог /static
==== get_current_user_role_name() ====
==== Методи ====
Додаткові об’єкти компоненти.; Створюється об'єкт K2Grid з іменем yml 'k2doc_move'.; Якщо запису немає – створює його.;<pre>
==== load_logging_messages(page_url: str) ====


def test_dashboard():
YML, якщо є. Каталог /yml


nomenclature_data (dict) – інформаційні дані про номенклатуру:
Іконки, які будуть використовуватись для представлення компоненти. Каталог /static/img
</pre>
==== __init__() ====


Обробка k2doc_move:
Авторство. Якщо К2, то в форматі, як прийнято в цілому для К2, якщо сторонній розробник - інформація про стороннього розробника. Copyright © 2000-2025 К2®, Rudiuk Serhii. All rights reserved.


Перевіряється значення ключа name у вхідних даних:
Шаблони, якщо є. Вказуємо каталог. Звертаю увагу, що К2 Cloud ERP повинна мати змогу використовувати не обмежену кількість шаблонів. Шаблони повинні бути так розроблені, щоб не конфліктувати з глобальними шаблонами системи. Каталог /templates
Створює JSON-дані на основі джерел даних та періоду.; 'old' – застарілі інформаційні дані, що підлягають видаленню.;==== Приклад використання ====


==== dump_stacks() ====
==== Приклад дерева структури компоненти ====


Цей клас представляє CRM компонент, який гарантує роботу з різними розділами CRM системи такими як:
<pre>
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
</pre>


'49952f397efff44d7ce0e5cb9aa625fb']
== Системні класи ==


==== Залежності ====
=== Клас K2 ===


==== update_pub_sub_remainder() ====
Ядро системи K2CloudERP.


приклад:
==== Властивості ====


self._name_yml_master #назва конфігураційного файлу
==== Властивості класу ==== Властивості інстансу ====


Request information about the running threads of the current process.;<pre>
==== self.secur #властивість що підключає до ядра клас безпеки ====


Додавання нової номенклатури.;==== Основні функціональні можливості модуля ====
self.path #властивість що підключає до ядра клас пошуку шляхів по ієрархії self.data #властивість що підключає до ядра клас синхронізації даних


У разі помилки: JSON з описом помилки (код 404 або 500)
==== self.settings #властивість що підключає до ядра клас збереження та пошуку налаштувань ====


Add identificators to url page
==== self.notifications #властивість що підключає до ядра клас створення та відправки сповіщень ==== K2().domain ====


Якщо лід знайдено то створюється новий запис у таблиці k2contacts на основі даних ліда.;==== search_class_prop(path_objs) ====
==== Методи ====


</pre>
==== Методи інстансу ==== K2().get_user_counterparts_id() ==== K2().component_list() ==== K2().get_user_project_name() ==== K2().get_current_user() ==== K2().create_db_role(user_name, password) ====


Якщо тип обладнання не знайдено, повертає помилку 404
==== __init__(self, *args, **kwargs) ====


Команда для автоматичної генерації html файлу з документацією по док стрінгах:
Initialize self. See help(type(self)) for accurate signature.


Send a logging message to the client via Socket.IO.; Search for a yml file in the caller directories of subclasses.; (файл requirements-components.txt)
==== add_authorized_users(self, user_id, login) ====
</pre>


k2report_embed = K2ReportEmbed(reports_id)
Додати користувача до списку авторизованих


K2.search_yml('users')
==== check_authorized_users(self, user_id) ====
==== Методи інстансу ====


Виділяється doc_id із вхідних даних.; Він містить методи для обробки запитів на затвердження змін у технічній документації обладнання.; itemName (str) – назва товару.; self._row_selection #вибір з рядка
Перевірити чи користувач системи активний


<pre>
==== check_logout_users(self, user_id) ====


self._name_yml #назва конфігураційного файлу
Авторизовані користувачі


==== mrt_report_create(report_id, design_type_id=None) ==== table_report_data(datasource_value, datasource_keys) ==== save_info_report_designer() ==== data_source_lists_creating(group_reports_id) ==== Клас K2Production ===
==== component_list() ====


==== Методи класу ====
Пошук встановлених компонент


Схема вибору обслуговування терміналу
==== create_db_file_config_user(self) ====


=== Клас K2LogbookTMDoc ===
Створення файлу з параметрами підключенням до БД для користувача


=== Клас для керування логбуком технічного обслуговування (ТО).; The caller directory where the yml file was found, or None if the file was not found.;==== designer() ====
==== create_db_role(self, user_name, password) ====


Відносний шлях до рута.; (каталог objects/)
Створення користувача на рівні БД
str: HTML-шаблон сторінки редагування дашборду.;=== Він надає доступ до ключових глобальних налаштувань та ресурсів, необхідних для роботи з документами або іншими функціями CRM.; Клас K2DocsCRM є собою частиною системи K2CRM і наслідується від K2Obj. ===


* The number of greenlets.; datasource_is_counterpart_id = [True, False]
==== current_template(self) ====


usr_perm = K2().get_user_permissions()
Search current template


=== Він взаємодіє з базою даних.; створення забезпечується через Клас K2ReportDesigner надає функціональність; додатково реалізовано редагування та перегляду звітів і дашбордів.; Окремо варто відзначити управляє файлами звітів і генерує JSON-дані для подальшого використання. ===
==== db_custom_engine(self, db) ====


==== Атрибути ====
Зміна custom параметрів підключення


==== load_babel_translation_directories() ====
==== db_user_engine(self, db) ====


<gallery mode="packed" heights="180">
Зміна параметрів підключення для поточного користувача


date_to = "2023-12-31"
==== dell_authorized_users(self, user_id) ====


return render_template('k2dashboard_production/k2dashboard_production.html',
Видалити користувача зі списку авторизованих


==== get_path_abs(caller_file) ====
==== drop_db_role(self, user_name) ====


date_from (str, опціонально): Початкова дата періоду.; The search is performed in the 'yml' subdirectory of each caller directory.; Переводить стабільні ('stable') в старі ('old').;<pre>
Видалення користувача на рівні БД
page_url(str): url of page with Errors.; See help(type(self)) for accurate signature.; Raises:


==== Властивості ====
==== get_all_subclasses(cls) ====


Витягує нові залишки з логів, додає їх у таблицю k2remainder_by_parties, оновлює статуси існуючих записів та видаляє застарілі залишки.; Повертає:
==== Пошук підкласів ====


<pre>
==== get_authorized_users(self) ====


Відповідає за обробку даних з логів.; Вимикаються кнопки: add, edit, delete, printReport.; ==== createImageSliderModal(images, containerId = null) ==== showBootstrapLoader(containerId) ==== removeBootstrapLoader(containerId) ==== showUserAlert(message, type = 'light') ==== Стилі (Назва) ==
Отримати список авторизованих користувачів


Подзаголовок
==== get_current_user(self) ====


Заголовок 1
Повертає об’єкт поточного користувача


Заголовок 2
==== K2().get_current_user() ====


Заголовок 3
==== get_menu_url(self) ====


Заголовок 4
Повертає список url активних пунктів меню


Заголовок 5
==== get_project_setting(self) ====


Заголовок 6
Форма зміни проекту


Звичвйний текст
==== get_user_counterparts_id(self) ====


== Ілюстрації з документа ==
Пошук id поточного контрагента


status (str): The status of the message (e.g., cls.log_error - 'ERROR', cls.log_warning - 'WARNING', cls.log_success - 'SUCCESS').;=== K2UpdateRemainder ===
==== K2().get_user_counterparts_id() ====


Отрмання roleid користувача
==== get_user_counterparts_name(self) ====


Використовує K2Notifications.send_approval_request() для відправки повідомлення
Пошук назви поточного контрагента


<pre>
==== K2().get_user_counterparts_name() ====


<pre>
==== get_user_project_id(self) ====


функціонує з конфігурацією домену через K2.domain
Пошук id поточного проекту користувача


Відображає сторінку редагування друкованої форми.; (One greenlet will duplicate one thread,
==== K2().get_user_project_id() ====
Структури, які потрібні для даної компоненти.;<pre>
Retrieve user permissions based on the URL.; Повертає:


Пошук файлів з перекладами
==== get_user_project_name(self) ====


у всіх шляхах пошуку
Пошук назви поточного проекту користувача


=== Клас K2WMS ===
==== K2().get_user_project_name() ====


Якщо контакт не знайдено то для полів name, surname, email встановлюється значення None.;<pre>
==== get_user_stoages_name(self) ====


Шукає ліда в таблиці k2lead за наданим параметром.; To search for a yml file named 'users.yml', call this method as follows:
Пошук назви поточного складу


=== Клас K2Grid ===
==== K2().get_user_stoages_name() ====


=== Клас k2upd ===
==== get_user_storage_id(self) ====


self._off_buttons #вимкнути кнопки
Пошук id поточного складу


Об'єкт класу K2UpdateRemainder.;==== Методи ====
==== K2().get_user_storage_id() ====


[[Категорія:Документація K2]]
==== get_user_structural_division_id(self) ====


==== get_locale() ====
Пошук id поточного підрозділу


==== Повертає ====
==== K2().get_user_structural_division_id() ====


</gallery>
==== get_user_structural_division_id_tree(self) ====


datasource_keys = ["table1_data", "table2_data"]
Пошук всіх підрозділів за ієрархією від поточного підрозділу користувача у форматі tuple ('id1', 'id2', 'id3')


==== взаємодія з API Stimulsoft для візуалізації та експорту звітів ====
==== init_db(self) ====


Логіка роботи:
Підключення db_uri для вибраної бази даних


=== Клас k2path ===
==== init_db_custom(self, key) ====


==== Класk2mail ====
Підключення custom db_uri за ключем.


Parameters:
==== init_db_uri(self) ====
документація з вимогами до створення компонентів, структури пакетів, системних класів, API, компонентних класів і допоміжних JavaScript-функцій системи [[K2 Cloud ERP]] виступає ключовою рисою '''K2 Cloud ERP Python для розробників'''.; Clear all logging message by user
Parameters:
==== ins_search_comp() ====


Формує SQL-запити для витягування даних із таблиць бази даних (Товари, Організація, Контрагент, складський облік, Договір, Відповідальна особа, замовник).; Алгоритм роботи:
Пошук і ініціалізація файлу з підключення до бази даних


==== get_active_lang_list() ====
==== init_db_uri_custom(self) ====
Логує помилку у разі невдалої вставки даних.; Приклад використання:


itemId (str) – ідентифікатор номенклатури.;</pre>
Зчитує всі підключення до бази даних з файлу db_custom.yml і зберігає їх у словник.


=== Клас K2CRM ===
==== init_db_uri_user(self) ====


dict: A dictionary containing the user permissions, including 'roleid' and various permission flags
Пошук і ініціалізація файлу з підключення до бази даних для поточного користуача


Повертає:
==== init_db_user(self) ====


Генерація ID
Підключення db_uri для користувача


Основні операції:
==== init_lm(self, app) ====


=== Клас k2secur ===
Ініціалізація логін-менеджера


{{Картка документації K2
==== kill_user_sessions(self, target_username) ====
| назва = K2 Cloud ERP Python для розробників
| система = K2 Cloud ERP
| мова = Python
| тип = Документація для розробників
}}


Повертає:
Завершення сесії підключення користувача на рівні БД


==== Методи ====
==== search_class_dict(self, parent_class=None) ====


Відображає сторінку редагування дашборду.;==== save_report_id() ====
==== Рекурсивний пошук властивостей нащадків базового класу ====
Exception: If an error occurs during database query execution.;==== namemenu(url) ====


==== Даний клас формує список пунктів меню для конкретного користувача ====
==== search_class_prop(path_objs) ==== search_menu_items(self) ====


This method emits a message to the client with a given status and message content.; Таблиця, в яку додається новий контакт на основі даних ліда.; Винятки:
Search menu items
period = 1
== API ==
== API ==
Load a logging message by its error_id from the error log file.;</pre>


Повертає:
==== search_menu_items_category(self) ====


</pre>
Search menu items category


[[Категорія:Документація для розробників]]
==== search_static_files(self) ====


Вивід списку ідентифікаторів компонент
==== url_map(self) ====


==== Моделі які використовуються ====
==== Методи класу ====


Логіка роботи:
=== Окремо варто відзначити всі властивості і методи отримуються від батьківського класу.; Клас K2CRM наслідується від K2Obj. ===


current_user_permissions = K2().get_user_permissions()
==== search_babel_translation_directories() ====


Отримає вхідний JSON, що містить options із даними для перевірки.; Повертає:
Exception: If an error occurs during database query execution.;==== Залежності ====


==== create_system_settings() ====
Для кожного запиту виконується SQL-запит та результат додається до result_dict.; Лід і контакт взаємодіють через базу даних, де інформаційні дані ліда переносяться в таблицю контактів.;=== Він надає доступ до ключових глобальних налаштувань та ресурсів, необхідних для роботи з документами або іншими функціями CRM.; Клас K2DocsCRM є собою частиною системи K2CRM і наслідується від K2Obj. ===
Визначення id поточної мови
message (str): The content of the message to be sent.; status (str): The status of the message (e.g., cls.log_error - 'ERROR', cls.log_warning - 'WARNING', cls.log_success - 'SUCCESS').; ==== logging_message(status, message, page_url=None, show_message=True) ====


Returns:
date_to = "2023-12-31"


str: HTML-шаблон сторінки перегляду.;<pre>
self._data_source #датасети


yml_path = K2.search_yml('users')
Видаляє застарілі ('old').; Формує SQL-запити для витягування даних із таблиць бази даних (Товари, Організація, Контрагент, складський облік, Договір, Відповідальна особа, замовник).; Параметри:


=== Клас K2Report ===
</pre>


Пошук затверджувачів:
Виклик K2.get_path_abs(__file__)
Завантаження перекладів
==== Компоненти, які публікуються в K2 Cloud ERP повинні мати щонайменше такі атрибути ====


Returns:
K2_Cloud_ERP_Python_01.png|Ілюстрація K2 Cloud ERP Python|посилання=Файл:K2_Cloud_ERP_Python_01.png


=== Клас K2Obj ===
<gallery mode="packed" heights="180">
==== compare_versions(version1, version2) ====


* рахунки
Перевіряє наявність записів у таблиці k2tm_fields з parentid != '0'


* звіти
Обробка k2doc_rows_detail:


* конфігурація системи CRM
Команда для автоматичної генерації html файлу з документацією по док стрінгах:


==== clear_logging_messages() ====
<pre>


process_options - Метод обробляє різні параметри, передані через JSON-запит, і налаштовує об'єкти типу K2Grid для роботи з даними в залежності від значення ключа name у вхідних даних.; Повертає:
Основні операції:


Returns:
To search for a yml file named 'users.yml', call this method as follows:


==== Методи класу ====
</pre>


== Вимоги до створення компонент ==
Якщо затверджувачів не знайдено, повертає помилку 404


З цього класу створюються всі об’єкти системи К2.;==== Методи класу ====
==== Основні функціональні можливості модуля ====


<pre>
</pre>


==== load_logging_message_by_id(error_id: str) ====
The caller directory where the yml file was found, or None if the file was not found.; Якщо записів немає, повертає помилку 404


database:
name_yml_master: str = '')


period (int): Період вибірки даних.; unitId (str) – одиниця виміру (конвертується за фіксованим списком).;<pre>
dict: A dictionary containing formatted log messages, the count of 'error' messages, and the count of 'warning' messages.;=== Клас для актуалізація залишків на основі даних з отриманих від клієнтів. ===


<pre>
itemName (str) – назва товару.;=== Клас K2Report ===


Викликає конструктор батьківського класу K2Docs.;=== Клас k2logging ===
'49952f397efff44d7ce0e5cb9aa625fb']


- замовлення
Створює JSON-дані на основі джерел даних та періоду.;=== Клас k2trans ===


Нові ('new') переводить у стабільні ('stable').; З options [‘dataField’] отримує номер телефону (phone)
Успішний результат повертається у форматі JSON із ключем data.; (One greenlet will duplicate one thread,
@k2production.route('/test_dashboard', methods=['GET'])
create_contact() - Цей метод створює контакт на основі даних існуючого ліда.; порівняння версій


Returns:
У разі помилки виконує відкат (rollback).; Винятки:
Параметри:


Зележності від інших компонент.; Приклад використання функції:
Відповідає за обробку даних з логів.;==== compare_versions(version1, version2) ====


==== get_path_to_root(caller_file) ====
name (str): Name of the object (page) to load messages for.; керування лідами


==== search_babel_translation_directories() ====
==== Властивості ====
def test_dashboard():
self._off_buttons #вимкнути кнопки


керування лідами
Обробка k2doc_move:
Створює характеристика змін у форматі "поле: старе_значення → нове_значення"
Якщо записів немає, повертає помилку 404


==== get_user_role(user_id) ====
</pre>
datasource_is_storage_id = [False, True]
<pre>
=== Клас k2upd ===
== K2 Cloud ERP Javascript ==
</pre>


Виконує SQL-запит до таблиці k2contacts для пошуку контакту за номером телефону.;==== dashboard_designer() ====
'old' – застарілі інформаційні дані, що підлягають видаленню.; date_to (str, опціонально): Кінцева дата періоду.; Повертає:


datasource_is_storage_id = [False, True]
crm_data(route, data) - Цей метод отримує інформаційні дані із відповідних таблиць з бази даних на основі переданих параметрів для подальшого оформлення друкованої форми документів у компоненті k2CRM


Відображає сторінку перегляду дашборду.; Логіка статусів:
документація з вимогами до створення компонентів забезпечується через '''K2 Cloud ERP Python; додатково реалізовано структури пакетів, системних класів, API, компонентних класів і допоміжних JavaScript-функцій системи [[K2 Cloud ERP]] виступає ключовою рисою розробників'''.; ==== mrt_report_create(report_id, design_type_id=None) ==== table_report_data(datasource_value, datasource_keys) ==== save_info_report_designer() ==== data_source_lists_creating(group_reports_id) ==== Клас K2Production ===


datasource_value = ["SELECT * FROM table1", "SELECT * FROM table2"]
==== Методи класу ====


Потребує доступу до бази даних через self.db
Схема вибору обслуговування терміналу


==== save_logging_message(error_id, status, message, name) ====
=== Клас K2LogbookTMDoc ===
==== generate_id() ====
=== Клас K2CRM наслідується від K2Obj, всі властивості та методи отримуються від батьківського класу. ===


datasource_keys (list): Список ключів для джерел даних.; Окремо варто відзначити створення/актуалізація записів про залишки товарів і керування їх статусами (новий, стабільний, старий).;[[Категорія:Python]]
=== Клас для керування логбуком технічного обслуговування (ТО).; return render_template('k2dashboard_production/k2dashboard_production.html',


==== content(self) ====
period (int): Період вибірки даних.; (каталог objects/)


Load logging messages for the curren page from the error log file.; The message is sent to a room identified by the current user's ID.; Нічого.;===
Параметри:


==== Методи класу ====
Повертає:


==== 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 ===
[[index.php?title=Категорія:K2 Cloud ERP]]


=== Клас K2EquipmentFunction є собою підкласом K2Obj і призначений для роботи з функціональністю, пов'язаною з обладнанням у системі K2.;<pre>
<pre>


K2.logging_message(K2.log_success, 'Operation completed successfully.'1)
Відображає сторінку перегляду дашборду.;== API ==


Призначення: застосовується для побудови URL-адрес або інших задач, пов'язаних з доменним середовищем.; Таблиця яка містить інформаційні дані про лідів.; threads and greenlets.;=== Клас k2settings ===
* The number of greenlets.;==== Пошук властивостей для розширення класу ====
Додаткові об’єкти компоненти.; (файл requirements-components.txt)


Створює порожній словник result_dict, який буде наповнюватись даними та парсить вхідні інформаційні дані data у форматі JSON і зберігає їх у result_dict [‘Header’].;[[Категорія:K2 ERP]]
==== __init__(self) ====


Приклад використання:
Retrieve user permissions based on the URL.; Response: JSON-відповідь про результат збереження.; Зберігає ідентифікатор та конфігурація звіту в JSON-файл.; Параметри (doc_id) передаються через send_params.; Повертає:


===
check_lead() - Цей метод перевіряє, чи існує контакт із заданим номером телефону у базі даних (k2contacts).; Окремо варто відзначити створення/актуалізація записів про залишки товарів і керування їх статусами (новий, стабільний, старий).;==== generate_id() ====


=== Клас k2datasync ===
[[index.php?title=Категорія:Python]]


Для кожного запиту виконується SQL-запит та результат додається до result_dict.; Виклик K2.get_path_to_root(__file__).; гарантує функціональність для створення, перегляду, редагування записів логбука ТО, роботи з параметрами завдань та обладнання, а додатково підготовки даних про запчастини.;[[Категорія:K2 Cloud ERP]]
<pre>


коректну обробку часу в межах системи реалізується засобами Призначення:.; {% block content %}
==== save_logging_message(error_id, status, message, name) ====
генерація друкованих документів
Вивід списку компонент з файлу components.yml у всіх шляхах пошуку


порівняння версій
==== dump_stacks() ====


Видаляє застарілі ('old').; Initialize self.; Формування повідомлення:
==== update_pub_sub_remainder() ====
Обробка k2doc_rows_detail:


==== центральний клас компоненти, роути та api (файл views.py) ====
Ім'я YML: 'k2doc_move'.; Він містить методи для обробки запитів на затвердження змін у технічній документації обладнання.; This method searches for a yml file with a specified name in the caller directories of all subclasses of K2Obj.; Вивід списку компонент з файлу components.yml у всіх шляхах пошуку


Usage:
__file__ - стандартна змінна в Python, яка містить абсолютний шлях до поточного файлу, в якому вона застосовується.; Отримує список pub_sub_list_id з логів k2pubsub_logs.; функціонує з конфігурацією домену через K2.domain
Send a logging message to the client via Socket.IO.; (файл models.py)


pydoc -w k2/k2obj.py, де k2/k2obj.py - шлях до файлу з корня
==== Приклад використання ====


==== search_yml(name_yml) ====
Повертає:


Визначення id поточної мови
Search for a yml file in the caller directories of subclasses.;<pre>


Параметри:
==== Атрибути класу ====


name (str): Name of object where the message originated.; Фіксує зміни у базі (commit).;==== get_platform() ====
ORM структури.; If the user is a superadmin, a default set of permissions is returned.;==== select_grid(self) ====


керування друкованими формами
керування друкованими формами


self._send_group_params #параметри групи
self._name_yml #назва конфігураційного файлу


Відображає сторінку перегляду друкованої форми.;</pre>
Логіка статусів:


Завантаження перекладів
Передаються параметри: doc_id.;<pre>
Визначення операційної системи


Response: JSON-відповідь про результат збереження.; such as 'r' (read), 'w' (write), 'i' (insert), 'd' (delete), 'c' (create), 'exp' (export), 'imp' (import), 'del_' (undelete), 'settable' (set table), 'cutpast' (cut and paste), 'enable' (enable), and 'active' (active).; If the user is a superadmin, a default set of permissions is returned.; {% extends template_name + '/base.html' %}
* рахунки
Відправка запиту на затвердження:
K2.logging_message(status=K2.log_success, message='Operation completed successfully.', page_url='/kadm/users', show_message=False)


Example:
* звіти


Отрмання rolename поточного користувача
* конфігурація системи CRM


Повернення результату у форматі JSON
K2.logging_message(K2.log_error, 'Operation completed with error.')


time_zone:
str: HTML-шаблон сторінки перегляду.; Якщо lead_id не надано то повертається помилка.;== K2 Cloud ERP Python ==


<pre>
</pre>
Часовий пояс системи, визначений глобальним об'єктом K2.timezone.; domain:


the current thread and greenlet.)
Якщо тип обладнання не знайдено, повертає помилку 404


Часовий пояс системи, визначений глобальним об'єктом K2.timezone.; Витягує інформаційні дані про залишки (inventSumLines).;==== Властивості ====
Визначення поточної мови


{% if error %}
database:


This method fetches permissions for the current user based on the URL they are accessing.; Логіка роботи:
Приклад використання функції:
Якщо затверджувачів не знайдено, повертає помилку 404


База даних, доступна через глобальний об'єкт K2.db.;</pre>
==== designer() ====


{% else %}
Цей клас гарантує генерацію та друк звітів за допомогою API Stimulsoft.; Призначення: застосовується для побудови URL-адрес або інших задач, пов'язаних з доменним середовищем.; datasource_is_counterpart_id = [True, False]


==== Компоненти, які публікуються в K2 Cloud ERP повинні мати щонайменше такі атрибути ====
'stable' – залишки, які підтвердились та доступні користувачам.; Raises:


Параметри:
==== show_grid(self) ====


Перевіряє наявність номенклатури у таблиці k2nomenclature.; Він має основну базову функціональність, що розширюється та розвивається та яка є собою у всіх класів системи
Parameters:


=== K2DocsCRM ===
unitId (str) – одиниця виміру (конвертується за фіксованим списком).;<pre>


{% endblock %
message (str): The content of the message to be saved.; У разі успіху: JSON з повідомленням про успішну відправку (код 200)


Перевірка наявності записів з parentid:
Визначення id поточної мови


str: HTML-шаблон сторінки перегляду дашборду.; ORM структури.;</pre>
self._report_id #id звіту


Повертає:
==== взаємодія з API Stimulsoft для візуалізації та експорту звітів ====


</pre>
show_message (bool): True - save log and show windows, False - only save_log


Якщо name == 'k2doc_rows_detail':
==== Методи інстансу ====
Виділяється row_id із переданих даних. Створюється об’єкт K2Grid з іменем yml “'k2doc_rows_detail”. Вимикаються кнопки add, delete, printReport на панелі інструментів. Отримується storage_id через метод self.get_storage_id(). Параметри row_id та storage_id передаються через send_params.
Якщо name == 'k2doc_move':


Метод очікує вхідні інформаційні дані у форматі JSON і доступ до них здійснюється через request.json.; k2form==2.0.1.27
Отрмання roleid користувача
</pre>


Python залежності, якщо є. (файл requirements.txt)
Відображає сторінку редагування дашборду.;==== dashboard_designer() ====


Readme.md. Файл в якому написана ціль компоненти, як її використовувати. Та різні моменти, які потрібно знати програмістам, адмінам та користувачам
==== load_logging_messages(page_url: str) ====


Історія змін. Документ, в якому описуються зміни текстом, зрозумілим для користувачів. (файл history.txt)
{% extends template_name + '/base.html' %}


Структура бази даних. На даний час, в форматі SQL power Architech. (каталог doc/schema)
==== load_babel_translation_directories() ====


Бізнес-процеси, схеми роботи, які були втілені в проудкті. В форматі Draw.io. (каталог doc/business_processes)
База даних, доступна через глобальний об'єкт K2.db.;==== search_yml(name_yml) ====


Інструкція користувача. Де розписано, як користуватись продуктом. Інструкція користувача повинна автоматично підтягуватись системою документації K2 Cloud ERP, додаючи розділ документації для цього продукту і надаючи можливість пошуку інформації в документації. Зберігається в каталозі: doc/user_manual)
==== Методи ====
=== Клас K2WMS ===


Документацію для розробників, що генерується автоматично з коментарів. Зберігається в каталозі: doc/developer_documentation )
==== get_current_user_role_name() ====
Якщо контакт знайдено то відбувається актуалізація даних у options [‘dataField’] (name, surname, email, lead_id)


(потрібно завершити автоматичне збирання із компонент)
==== _insert_new_pub_sub_nomenclature(session, nomenclature_data) ====


Документація для розробників (не обов’язково, але желательно). Додатково, якщо потрібно, щось додатково відмітити. Каталог doc/additional_developer_docs)
=== Клас K2CRM ===
Якщо лід знайдено то створюється новий запис у таблиці k2contacts на основі даних ліда.; Якщо знайдено, оновлює інформаційні дані ліда (ім'я, прізвище, email) у переданому об'єкті.; Створюється об'єкт K2Grid з іменем yml 'k2doc_move'.;==== Фронтенд (Jinja-шаблон) ====


Приклади програмного коду з використанням компонент. Які автоматично з’являються в Examples при встановленні компоненти. І по яким можна протестувати функціонал. /examples (потрібно вирішити як додавати)
Returns:


Віджети. Дашборди та інші візуальні елементи для вставки на головну сторінку та інші сторінки, які можна додавати автоматично. (потрібно вирішити як додавати) /widgets
Повертає:


Юніт тести. Написати де і яка структура. Юніт тести повинні автоматично знаходитись системою і використовуватись для загального тестування системи. Каталог /tests (потрібно завершити автоматичне збирання із компонент)
Нові ('new') переводить у стабільні ('stable').;==== Методи класу ====
 
Локалізації. В К2 використовуються щонайменше: українська та англійська мова. Ядро повинно вміти робити переклади і давати можливість працювати з перекладами стороннім користувачам, покращуючи якість перекладу. Зберігається в каталозі:


<pre>
<pre>
/languages/en/LC_MESSAGES/messages.po
/languages/en/LC_MESSAGES/messages.mo
</pre>


Демо-дані. Це дані, які розгортаються на демо-базі даних для демонстрації роботи з продуктом. (потрібно вирішити як додавати)
K2.logging_message(status=K2.log_success, message='Operation completed successfully.', page_url='/kadm/users', show_message=False)
Відносний шлях до рута.; message (str): The content of the message to be sent.; З options [‘dataField’] отримує номер телефону (phone)
Нічого.;<pre>
Відображає сторінку перегляду друкованої форми.;=== Клас K2Site ===


Файли ресурсів (зображення, тексти): Каталог /static
Initialize self.; Переводить стабільні ('stable') в старі ('old').; Шукає ліда в таблиці k2lead за наданим параметром.;==== Методи ====


YML, якщо є. Каталог /yml
==== content(self) ====


Іконки, які будуть використовуватись для представлення компоненти. Каталог /static/img
Генерація ID


Авторство. Якщо К2, то в форматі, як прийнято в цілому для К2, якщо сторонній розробник - інформація про стороннього розробника. Copyright © 2000-2025 К2®, Rudiuk Serhii. All rights reserved.
__file__ -стандартна змінна в Python, яка містить абсолютний шлях до поточного файлу, в якому вона застосовується.;=== Клас K2Grid ===
Створює порожній словник result_dict, який буде наповнюватись даними та парсить вхідні інформаційні дані data у форматі JSON і зберігає їх у result_dict [‘Header’].; гарантує функціональність для створення, перегляду, редагування записів логбука ТО, роботи з параметрами завдань та обладнання, а додатково підготовки даних про запчастини.; Структури, які потрібні для даної компоненти.; json_data_create(datasource_value, datasource_keys, datasource_is_counterpart_id, datasource_is_storage_id, period, date_from=None, date_to=None)


Шаблони, якщо є. Вказуємо каталог. Звертаю увагу, що К2 Cloud ERP повинна мати змогу використовувати не обмежену кількість шаблонів. Шаблони повинні бути так розроблені, щоб не конфліктувати з глобальними шаблонами системи. Каталог /templates
version #реліз компоненти


==== Приклад дерева структури компоненти ====
Використовує K2Notifications.send_approval_request() для відправки повідомлення


<pre>
Add identificators to url page
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
</pre>


== Системні класи ==
This method fetches permissions for the current user based on the URL they are accessing.; id = K2.generate_id()


=== Клас K2 ===
Load logging messages for the curren page from the error log file.; {% block content %}


Ядро системи K2CloudERP.
nomenclature_data (dict) – інформаційні дані про номенклатуру:


==== Властивості ====
datasource_is_counterpart_id (list): Список флагів, що вказують на наявність counterpart_id.;<pre>


==== Властивості класу ==== Властивості інстансу ====
Логіка роботи:


==== self.secur #властивість що підключає до ядра клас безпеки ====
== Див.; додатково ==


self.path #властивість що підключає до ядра клас пошуку шляхів по ієрархії self.data #властивість що підключає до ядра клас синхронізації даних
Пошук затверджувачів:


==== self.settings #властивість що підключає до ядра клас збереження та пошуку налаштувань ====
Приклад використання:


==== self.notifications #властивість що підключає до ядра клас створення та відправки сповіщень ==== K2().domain ====
==== viewer() ====


==== Методи ====
==== Методи класу ====


==== Методи інстансу ==== K2().get_user_counterparts_id() ==== K2().component_list() ==== K2().get_user_project_name() ==== K2().get_current_user() ==== K2().create_db_role(user_name, password) ====
If no permissions are found for the user, an empty dictionary is returned.; у всіх шляхах пошуку


==== __init__(self, *args, **kwargs) ====
Перевіряє наявність номенклатури у таблиці k2nomenclature.; Usage:


Initialize self. See help(type(self)) for accurate signature.
period = 1


==== add_authorized_users(self, user_id, login) ====
This method emits a message to the client with a given status and message content.; itemId (str) – ідентифікатор номенклатури.;=== Клас k2settings ===
Usage:
<pre>


Додати користувача до списку авторизованих
[[index.php?title=Категорія:K2 ERP]]


==== check_authorized_users(self, user_id) ====
Логіка роботи:


Перевірити чи користувач системи активний
==== namemenu(url) ====


==== check_logout_users(self, user_id) ====
self._row_selection #вибір з рядка


Авторизовані користувачі
Логує помилку у разі невдалої вставки даних.; Відправка запиту на затвердження:


==== component_list() ====
Передаються параметри: row_id та storage_id.; {% endif %}


Пошук встановлених компонент
==== save_report_id() ====


==== create_db_file_config_user(self) ====
=== Клас K2ReportDesigner ===


Створення файлу з параметрами підключенням до БД для користувача
Перевіряє чи було надано lead_id.; Якщо запису немає – створює його.; yml_path = K2.search_yml('users')


==== create_db_role(self, user_name, password) ====
datasource_keys = ["table1_data", "table2_data"]


Створення користувача на рівні БД
self._name_yml_tree #назва конфігураційного файлу з деревом


==== current_template(self) ====
Parameters:


Search current template
==== __init__() ====


==== db_custom_engine(self, db) ====
status (str): The status of the message (e.g., cls.log_error - 'ERROR', cls.log_warning - 'WARNING', cls.log_success - 'SUCCESS').; Rerurn: list of components identificators


Зміна custom параметрів підключення
Масово оновлює статуси залишків:


==== db_user_engine(self, db) ====
Визначення id поточної мови


Зміна параметрів підключення для поточного користувача
</pre>


==== dell_authorized_users(self, user_id) ====
Зележності від інших компонент.; Отримає вхідний JSON, що містить options із даними для перевірки.; створення звітів за допомогою конструктора звітів


Видалити користувача зі списку авторизованих
Перевіряється значення ключа name у вхідних даних:


==== drop_db_role(self, user_name) ====
The search is performed in the 'yml' subdirectory of each caller directory.; Returns:


Видалення користувача на рівні БД
==== get_path_abs(caller_file) ====


==== get_all_subclasses(cls) ====
</pre>


==== Пошук підкласів ====
Save a logging message to the stack.;==== search_class_prop(path_objs) ====
==== Використовує клас K2Notifications для відправки повідомлень ====
""" Index page """
such as 'r' (read), 'w' (write), 'i' (insert), 'd' (delete), 'c' (create), 'exp' (export), 'imp' (import), 'del_' (undelete), 'settable' (set table), 'cutpast' (cut and paste), 'enable' (enable), and 'active' (active).;==== Окремо варто відзначити роути і api (файл views.; центральний клас компоненти.py) ====


==== get_authorized_users(self) ====
- замовлення


Отримати список авторизованих користувачів
str: HTML-шаблон сторінки редагування дашборду.; Якщо name == 'k2doc_rows_detail':
Виділяється row_id із переданих даних. Створюється об’єкт K2Grid з іменем yml “'k2doc_rows_detail”. Вимикаються кнопки add, delete, printReport на панелі інструментів. Отримується storage_id через метод self.get_storage_id(). Параметри row_id та storage_id передаються через send_params.
Якщо name == 'k2doc_move':


==== get_current_user(self) ====
Повертає:


Повертає об’єкт поточного користувача
Додавання нової номенклатури.;<pre>


==== K2().get_current_user() ====
==== __init__(sql=[]) ==== create_report(sql=None, data_source=None) ==== get_report(file_name) ==== execute_query(query, params=None) ==== get_report_designer(file_name, design_type_id) ==== add_reports_type(name, data) ==== Клас K2ReportEmbed ===


==== get_menu_url(self) ====
надає можливість отримувати та відображати звіти з бази даних на основі їх ідентифікаторів.; K2ReportEmbed - Компонент для вбудовування звітів у веб-додаток.


Повертає список url активних пунктів меню
==== Атрибути класу ====


==== get_project_setting(self) ====
==== __init__(reports_id: List [str]) ==== get_report_data() -> Optional [List [Dict [str, Any]]] ==== Бекенд (Flask) ====


Форма зміни проекту
@k2production.route('/test_dashboard', methods=['GET'])
==== Методи ====
=== Клас k2data ===
Формує URL для сторінки затвердження


==== get_user_counterparts_id(self) ====
K2.search_yml('users')


Пошук id поточного контрагента
name (str): Name of object where the message originated.; У разі помилки застосовується лог помилки і повертається повідомлення з помилкою.; The message is sent to a room identified by the current user's ID.;</pre>


==== K2().get_user_counterparts_id() ====
</gallery>


==== get_user_counterparts_name(self) ====
Домен, на якому функціонує CRM, отримується з глобального об'єкта K2.domain.; Повертає:


Пошук назви поточного контрагента
time_zone:


==== K2().get_user_counterparts_name() ====
== Вимоги до створення компонент ==


==== get_user_project_id(self) ====
Виклик K2.get_path_to_root(__file__).; self._send_group_params #параметри групи


Пошук id поточного проекту користувача
</pre>


==== K2().get_user_project_id() ====
threads and greenlets.; K2.get_platform()
Args:


==== get_user_project_name(self) ====
=== Клас K2Obj ===


Пошук назви поточного проекту користувача
{% include dashboard_settings.template %}


==== K2().get_user_project_name() ====
</pre>


==== get_user_stoages_name(self) ====
==== Атрибути ====


Пошук назви поточного складу
==== dashboard_viewer() ====


==== K2().get_user_stoages_name() ====
===


==== get_user_storage_id(self) ====
k2contacts.; Parameters:


Пошук id поточного складу
<pre>


==== K2().get_user_storage_id() ====
self._new_buttons #назва кнопки


==== get_user_structural_division_id(self) ====
the current thread and greenlet.)


Пошук id поточного підрозділу
==== create_names_yml(self, name_yml: str = '', name_yml_tree: str = '', ====


==== K2().get_user_structural_division_id() ====
datasource_is_storage_id (list): Список флагів, що вказують на наявність storage_id.; Цей клас представляє CRM компонент, який гарантує роботу з різними розділами CRM системи такими як:


==== get_user_structural_division_id_tree(self) ====
== API ==


Пошук всіх підрозділів за ієрархією від поточного підрозділу користувача у форматі tuple ('id1', 'id2', 'id3')
usr_perm = K2().get_user_permissions()


==== init_db(self) ====
Returns:


Підключення db_uri для вибраної бази даних
актуалізація залишків на основі даних Pub/Sub.; Відображає сторінку редагування друкованої форми.;==== get_platform() ====


==== init_db_custom(self, key) ====
* A sequence of text lines detailing the stacks of running


Підключення custom db_uri за ключем.
У разі помилки скасовує транзакцію і повертає характеристика помилки.; Load a logging message by its error_id from the error log file.; Перевірка наявності записів з parentid:


==== init_db_uri(self) ====
==== Класk2notifications ====


Пошук і ініціалізація файлу з підключення до бази даних
Відсутні.;==== get_locale() ====


==== init_db_uri_custom(self) ====
'new' – нові залишки, отримані в поточному оновленні.; Створює характеристика змін у форматі "поле: старе_значення → нове_значення"


Зчитує всі підключення до бази даних з файлу db_custom.yml і зберігає їх у словник.
==== logging_message(status, message, page_url=None, show_message=True) ====


==== init_db_uri_user(self) ====
=== Клас k2logging ===


Пошук і ініціалізація файлу з підключення до бази даних для поточного користуача
<pre>


==== init_db_user(self) ====
</pre>


Підключення db_uri для користувача
==== Повертає ====


==== init_lm(self, app) ====
k2report_embed = K2ReportEmbed(reports_id)


Ініціалізація логін-менеджера
З цього класу створюються всі об’єкти системи К2.; Returns:


==== kill_user_sessions(self, target_username) ====
dict: Словник з результатами запитів або помилкою.;==== Моделі які використовуються ====


Завершення сесії підключення користувача на рівні БД
Логіка роботи:


==== search_class_dict(self, parent_class=None) ====
json_data = k2_designer.json_data_create(datasource_value, datasource_keys, datasource_is_counterpart_id, datasource_is_storage_id, period, date_from, date_to)


==== Рекурсивний пошук властивостей нащадків базового класу ====
== Класи компонент ==


==== search_class_prop(path_objs) ==== search_menu_items(self) ====
date_from (str, опціонально): Початкова дата періоду.; Абсолютний шлях до файлу, в якому виконується код.;===


Search menu items
==== Методи класу ====


==== search_menu_items_category(self) ====
==== 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 ===


Search menu items category
=== Клас K2EquipmentFunction є собою підкласом K2Obj і призначений для роботи з функціональністю, пов'язаною з обладнанням у системі K2.; K2.logging_message(K2.log_success, 'Operation completed successfully.'1)


==== search_static_files(self) ====
==== Властивості інстансу ====


==== url_map(self) ====
</pre>


==== Методи класу ====
<pre>


Parameters:
self._send_params #параметри для конфігураційного файлу


name #Назва компоненти.; Передаються параметри: row_id та storage_id.;==== get_locale_id() ====
Виконує SQL-запит до таблиці k2contacts для пошуку контакту за номером телефону.; приклад:


</pre>
</pre>


show_message (bool): True - save log and show windows, False - only save_log
{% if error %}
 
Отрмання rolename поточного користувача
 
Формування повідомлення:


:return: A tuple containing:
</pre>


==== select_grid(self) ====
datasource_value = ["SELECT * FROM table1", "SELECT * FROM table2"]


Отримує список активних користувачів для затвердження з таблиці k2users_for_approval
==== get_user_permissions() ====


K2_Cloud_ERP_Python_01.png|Ілюстрація K2 Cloud ERP Python
datasource_keys (list): Список ключів для джерел даних.;==== ins_search_comp() ====


k2log==2.0.0.2
У разі помилки: JSON з описом помилки (код 404 або 500)
k2grid==2.0.4.1


error_id (str): The ID of the error to load.; Використовуються для розширення або зміни поведінки стандартних методів системи (файл hooks.py)
datasource_value (list): Список SQL-запитів.; Example:
json_data_create(datasource_value, datasource_keys, datasource_is_counterpart_id, datasource_is_storage_id, period, date_from=None, date_to=None)
Результати запитів конвертуються у словники (row_asdict) для зручного JSON-формату.; Додаткові класи від яких залежить функціональні можливості компоненти.;<pre>
name_yml: The name of the yml file to search for (without the '.yml' extension).

Версія за 21:14, 28 квітня 2026

Виділяється 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 - шлях до файлу з корня

Параметри:

Шаблон:Error

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).