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

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

Матеріал з K2 ERP Wiki
Прибрав слово Cloud
Немає опису редагування
 
Рядок 1: Рядок 1:
=== Клас K2Site ===  
== Клас K2ReportEmbed ==  


Send a logging message to the client via Socket.IO. генерація друкованих документів
K2.logging_message(


self._report_id #id звіту
{| class="wikitable" style="width:100%;"


<pre>
=== Основні методи K2Report ===
│ ├── roles/
Документ описує загальні вимоги до компонентів K2 ERP, базові системні класи, структуру компонентів, правила документування та приклади використання окремих класів. Це потрібно для того, щоб систему можна було оновлювати, документувати, тестувати й підключати до інших модулів без ручного хаосу. ! Параметри:
</pre>
{% endblock %}
|-
| <code>domain_name</code>
| Назва домену
|-
| <code>domain_protocol</code>
| Протокол домену
|-
| <code>domain</code>
| Поточний домен
|-
| <code>port</code>
| Порт
|-
| <code>db</code>
| Підключення до бази даних
|-
| <code>default_language</code>
| Мова за замовчуванням
|}


==== select_grid(self) ====
Створює слайдер зображень у контейнері або модальному вікні. SEO-опис
=== Приклади використання K2 ===
</div>
|-
| <code>__init__()</code>
| Ініціалізація об’єкта
|-
| <code>content()</code>
| Формування контенту
|-
| <code>create_names_yml()</code>
| Створення назв YML-конфігурацій
|-
| <code>search_class_prop()</code>
| Пошук властивостей для розширення класу
|-
| <code>select_grid()</code>
| Вибір grid
|-
| <code>show_grid()</code>
| Відображення grid
|}


Створює порожній словник result_dict, який буде наповнюватись даними та парсить вхідні інформаційні дані data у форматі JSON і зберігає їх у result_dict [‘Header’].==== update_pub_sub_remainder() ====
! | Слайдер зображень, loader, видалення loader та повідомлення користувачу
У разі помилки виконує відкат (rollback). name_yml_master: str = '')
|}


Обробка k2doc_move:
Системні класи K2 ERP забезпечують базову роботу ядра, об’єктів, безпеки, шляхів, даних, налаштувань, повідомлень, перекладів і оновлень. Створити користувача на рівні бази даних:


==== load_logging_message_by_id(error_id: str) ====
current_user_permissions = K2().get_user_permissions()
Copyright © 2000-2025 К2®, Rudiuk Serhii. це технічна документація; так само реалізовано які працюють із Python-версією [[K2 ERP]]. |-
| <code>create_contact()</code>
| Створює контакт на основі даних ліда
|-
| <code>check_lead()</code>
| Перевіряє, чи існує контакт із заданим телефоном
|-
| <code>crm_data(route, data)</code>
| Отримує інформаційні дані для друкованих форм CRM
|-
| <code>process_options()</code>
| Обробляє параметри JSON-запиту й налаштовує об’єкти K2Grid
|}


==== create_system_settings() ====
=== removeBootstrapLoader() ===
 
!</pre>
</pre>


З цього класу створюються всі об’єкти системи К2. Повертає:
</pre>


Пошук файлів з перекладами
</pre>
The message is sent to a room identified by the current user's ID. Часовий пояс системи, визначений глобальним об'єктом K2.timezone. dict: A dictionary containing the user permissions, including 'roleid' and various permission flags
</pre>
K2().create_db_role(user_name, password)


Відправка запиту на затвердження:
! SEO-опис


time_zone:
{| class="wikitable" style="width:100%;"


To search for a yml file named 'users.yml', call this method as follows:
showUserAlert(message, type = 'light')
!=== createImageSliderModal() ===


K2.logging_message(K2.log_error, 'Operation completed with error.')
== Призначення документа ==


Повертає:
== Метод create_contact() ==


Отрмання rolename поточного користувача
K2.get_path_abs(__file__)
file_class = 'k2equipment'
== Клас K2Report ==
|-
| <code>name</code>
| Назва компоненти
|-
| <code>version</code>
| реліз системи компоненти
|}


[[index.php?title=Категорія:K2 ERP]]
Приклади:


</pre>
</pre>
dashboard_settings=k2report_embed
! Клас
Клас так само наслідується від <code>K2Obj</code>. Призначення


Якщо лід знайдено то створюється новий запис у таблиці k2contacts на основі даних ліда. Структури, які потрібні для даної компоненти.==== Методи класу ====
</pre>


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


Для кожного запиту виконується SQL-запит та результат додається до result_dict. Таблиця яка містить інформаційні дані про лідів. Він має основну базову функціональність, що розширюється та розвивається та яка виступає як у всіх класів системи
<code>create_contact()</code> створює контакт на основі даних існуючого ліда. Метод


</gallery>
<pre>
name #Назва компоненти. Таблиця, в яку додається новий контакт на основі даних ліда. Додаткові класи від яких залежить функції ERP компоненти. Повертає:


Масово оновлює статуси залишків:
! Метод
базовий метод:


Вимикаються кнопки: add, edit, delete, printReport. Витягує нові залишки з логів, додає їх у таблицю k2remainder_by_parties, оновлює статуси існуючих записів та видаляє застарілі залишки. Вимикаються кнопки add, edit, delete, printReport на панелі інструментів.</pre>
== Вимоги до компоненти K2 ERP ==


Формування повідомлення:
</pre>
=== Основні атрибути ===
<gallery mode="packed" heights="180">


Відповідає за обробку даних з логів. self._row_selection #вибір з рядка
{| class="wikitable" style="width:100%;"


Логіка роботи:
Логіка роботи:
ORM структури. error_id (str): The ID of the error to load.===
</pre>
createImageSliderModal(images, containerId = null)
|-
| <code>doc/schema</code>
| Структура бази даних, зокрема SQL Power Architect-схеми
|-
| <code>doc/business_processes</code>
| Бізнес-процеси та схеми роботи у форматі Draw.io
|-
| <code>doc/user_manual</code>
| Інструкція користувача
|-
| <code>doc/developer_documentation</code>
| Документація для розробників, згенерована автоматизовано з коментарів
|-
| <code>doc/additional_developer_docs</code>
| Додаткова документація для розробників
|}


==== Методи класу ====
=== Основні властивості класу ===


==== 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. See help(type(self)) for accurate signature.==== get_user_permissions() ====
Якщо компонента залежить від інших компонент K2 ERP, ці залежності потрібно вказати у файлі:


Parameters:
{| class="wikitable" style="width:100%;"


show_message (bool): True - save log and show windows, False - only save_log
! Питання


'49952f397efff44d7ce0e5cb9aa625fb']
=== Основні властивості інстансу ===


==== get_active_lang_list() ====
== Див. так само ==


==== create_names_yml(self, name_yml: str = '', name_yml_tree: str = '', ====
{| class="wikitable" style="width:100%;"
</pre>
</div>
|-
| <code>K2Site</code>
| Робота з сайтом
|-
| <code>K2Grid</code>
| Робота з таблицями та grid-компонентами
|-
| <code>K2WMS</code>
| Складські процеси та WMS
|-
| <code>K2CRM</code>
| CRM-функціональність
|-
| <code>K2DocsCRM</code>
| Документи CRM
|-
| <code>K2Report</code>
| Звіти та друковані форми
|-
| <code>K2ReportEmbed</code>
| Вбудовування звітів у вебсторінки
|-
| <code>K2ReportDesigner</code>
| Конструктор звітів і дашбордів
|-
| <code>K2Production</code>
| Виробничі процеси
|-
| <code>K2LogbookTMDoc</code>
| Логбук технічного обслуговування
|-
| <code>K2EquipmentFunction</code>
| Робота з обладнанням
|}


datasource_is_storage_id (list): Список флагів, що вказують на наявність storage_id. Виконує SQL-запит до таблиці k2contacts для пошуку контакту за номером телефону.== API ==
Якщо компоненту створює сторонній розробник, потрібно вказати інформацію про такого розробника. Метод отримує інформаційні дані звітів із бази даних і формує JSON-структуру для відображення. | У каталозі <code>doc/</code>
|-
| Де зберігаються локалізації?</pre>


Виділяється doc_id із вхідних даних. Переводить стабільні ('stable') в старі ('old').== Див. так само ==
=== базовий метод ===


Приклад використання:
date_from,


==== 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 ===
Отримати список встановлених компонент:


==== Методи класу ====
Він забезпечує роботу з лідами, замовленнями, рахунками, звітами та налаштуваннями CRM. Метод:


Схема вибору обслуговування терміналу
│ ├── data/
== Генерація документації з docstring ==
! Параметр
|-
| <code>self._name_yml</code>
| Назва конфігураційного YML-файлу
|-
| <code>self._name_yml_tree</code>
| Назва YML-файлу з деревом
|-
| <code>self._new_buttons</code>
| Нові кнопки
|-
| <code>self._name_yml_master</code>
| Майстер-конфігурація
|-
| <code>self._send_params</code>
| Параметри для конфігураційного файлу
|-
| <code>self._send_group_params</code>
| Параметри групи
|-
| <code>self._report_id</code>
| ID звіту
|-
| <code>self._data_source</code>
| Джерела даних
|-
| <code>self._off_buttons</code>
| Кнопки, які потрібно вимкнути
|-
| <code>self._row_selection</code>
| Вибір рядка
|}


=== Клас K2LogbookTMDoc ===
<pre>


=== Клас для керування логбуком технічного обслуговування (ТО). Окремо варто відзначити створення/оновлення версій записів про залишки товарів і керування їх статусами (новий, стабільний, старий). the current thread and greenlet.)
! | У каталозі <code>languages/</code>
==== search_babel_translation_directories() ====
|-
| Які JavaScript-функції описані? Методи
{| class="wikitable" style="width:100%;"
<pre>


==== get_locale_id() ====
Клас наслідується від <code>K2Obj</code>, тому використовує базові властивості та методи системних об’єктів K2 ERP. ├── doc/
 
'old' – застарілі інформаційні дані, що підлягають видаленню.{{ error }}


<pre>
<pre>


Успішний результат повертається у форматі JSON із ключем data. керування лідами
! Отримати назву поточного проєкту:


Домен, на якому функціонує CRM, отримується з глобального об'єкта K2.domain.==== show_grid(self) ====
├── history.txt
! Клас
[[Категорія:Python]]
== Залежності компоненти ==
== Ілюстрації ==


Parameters:
=== Приклад Jinja-шаблону ===
Логіка роботи:
==== Основні функції ERP модуля ====


Якщо name == 'k2doc_rows_detail':
! SEO-опис
Виділяється row_id із переданих даних. Створюється об’єкт K2Grid з іменем yml “'k2doc_rows_detail”. Вимикаються кнопки add, delete, printReport на панелі інструментів. Отримується storage_id через метод self.get_storage_id(). Параметри row_id та storage_id передаються через send_params.
[[Категорія:Корпоративна Wiki]]
Якщо name == 'k2doc_move':
<pre>
│ ├── user_manual/
{| class="wikitable" style="width:100%;"
│ ├── forms.py


==== designer() ====
│ ├── yml/


datasource_is_counterpart_id = [True, False]
! Призначення


Абсолютний шлях до файлу, в якому виконується код.==== load_logging_messages(page_url: str) ====
│ ├── tests/


Повернення результату у форматі JSON
== Методи роботи з базою даних і сесіями ==
</pre>
datasource_is_counterpart_id,


Ядро K2 ERP має підтримувати роботу з перекладами та давати можливість покращувати локалізацію стороннім користувачам або розробникам.== Метод process_options() ==
<pre>
├── requirements.txt
Логіка роботи:
Логіка роботи:
│ ├── objects/
! Метод
== Основні методи K2 ==
|-
| Для кого ця сторінка? Параметр
|-
| <code>message</code>
| Текст повідомлення
|-
| <code>type</code>
| Тип повідомлення: <code>primary</code>, <code>success</code>, <code>danger</code>, <code>warning</code>, <code>info</code>, <code>light</code>
|}


Видаляє застарілі ('old'). K2.search_yml('users')
get_report_data() -> Optional [List [Dict [str, Any]]]
Приклад використання функції:


<pre>
</pre>
│ ├── users/
<code>crm_data()</code> отримує інформаційні дані з таблиць бази для формування друкованих форм документів у CRM. ! Призначення
{| class="wikitable" style="width:100%;"
│ ├── widgets/
|-
| <code>k2doc_rows_detail</code>
| Створює grid для деталізації рядків документа, вимикає зайві кнопки, передає <code>row_id</code> і <code>storage_id</code>
|-
| <code>k2doc_move</code>
| Створює grid руху документа, вимикає кнопки додавання, редагування, видалення та друку
|}


Response: JSON-відповідь про результат збереження. забезпечує функціональність для створення, перегляду, редагування записів логбука ТО, роботи з параметрами завдань та обладнання, а так само підготовки даних про запчастини. Він містить методи для обробки запитів на затвердження змін у технічній документації обладнання. name_yml: The name of the yml file to search for (without the '.yml' extension). session (Session) – об'єкт сесії бази даних. Example:
Клас забезпечує створення, перегляд і редагування записів логбука, роботу з параметрами завдань, обладнанням, запчастинами, кроками технічного обслуговування та підтвердженням виконання робіт. k2form==2.0.1.27
</pre>


Цей клас забезпечує генерацію та друк звітів за допомогою API Stimulsoft. Передаються параметри: doc_id.==== __init__() ====
Python-залежності, якщо вони потрібні, вказуються у файлі:


Визначення id поточної мови
<pre>
 
requirements.txt
Usage:
 
Логіка статусів:
 
Отрмання roleid користувача
 
* A sequence of text lines detailing the stacks of running
 
self._name_yml_master #назва конфігураційного файлу
 
database:
 
* The number of greenlets. Використовуються для розширення або зміни поведінки стандартних методів системи (файл hooks.py)
 
- замовлення
 
datasource_value = ["SELECT * FROM table1", "SELECT * FROM table2"]
 
=== Клас K2Obj ===
 
current_user_permissions = K2().get_user_permissions()
 
Виклик K2.get_path_abs(__file__)
 
process_options - Метод обробляє різні параметри, передані через JSON-запит, і налаштовує об'єкти типу K2Grid для роботи з даними в залежності від значення ключа name у вхідних даних.==== взаємодія з API Stimulsoft для візуалізації та експорту звітів ====
 
==== Властивості інстансу ====
 
K2.logging_message(status=K2.log_success, message='Operation completed successfully.', page_url='/kadm/users', show_message=False)
 
Вимикаються кнопки: add, delete, printReport.==== Класk2mail ====
==== search_yml(name_yml) ====
=== K2DocsCRM ===
=== Окремо варто відзначити всі властивості і методи отримуються від батьківського класу. Клас K2CRM наслідується від K2Obj. ===
==== Повертає ====
</pre>
</pre>


==== log_entry(error_id, status, message, name) ====
== Документація компоненти ==
 
генерацію та друк звітів за допомогою API Stimulsoft реалізується засобами <code>K2Report </code>.<pre>
функціонує з конфігурацією домену через K2.domain
 
Повертає:
 
Ім'я YML: 'k2doc_move'. date_to (str, опціонально): Кінцева дата періоду. Load a logging message by its error_id from the error log file.===
 
==== Атрибути ====
 
path_class: 'components/k2production/k2production/k2equipment'
 
file_class: 'k2equipment'


==== Методи ====
Від нього наслідуються об’єкти, які використовують стандартну логіку системи: конфігурації, YML, grids, форми, параметри, кнопки, джерела даних і розширення. | У <code>requirements-components.txt</code> та <code>requirements.txt</code>
|-
| Де зберігається документація? !<code>K2CRM</code> — клас CRM-модуля K2 ERP. | Вимоги до компонентів, системні класи, API, CRM, звіти, production-класи та JavaScript-утиліти
|-
| Який базовий клас системи? {| class="wikitable" style="width:100%;"


==== init(self) ==== Параметри ==== Логіка роботи ====
Класи компонент реалізують функціональність конкретних модулів K2 ERP.<pre>
 
[[Категорія:K2 Production]]
pydoc -w k2/k2obj.py, де k2/k2obj.py - шлях до файлу з корня
 
self._name_yml #назва конфігураційного файлу
<pre>
<pre>
datasource_value (list): Список SQL-запитів. {% include dashboard_settings.template %}
date_from = "2023-01-01"
Якщо контакт знайдено, метод оновлює інформаційні дані ліда: ім’я, прізвище, email та <code>lead_id</code>. * [[K2 Cloud ERP|K2 ERP]]
* [[K2 ERP]]
* [[Python]]
* [[API]]
* [[Документація для розробників]]
* [[K2 Cloud ERP Javascript|K2 ERP Javascript]]
* [[Розгортання системи K2 ERP Python для розробників]]
* [[Компоненти K2 ERP]]
* [[K2 CRM]]
* [[K2 Report]]
* [[K2 Production]]


=== Основні методи K2Obj ===
<pre>
<pre>
{% block content %}
! Отримати домен:
|-
| <code>__init__(sql=[])</code>
| Ініціалізує клас і отримує шлях до каталогу виклику
|-
| <code>create_report(sql=None, data_source=None)</code>
| Створює звіт і відображає редактор або переглядач
|-
| <code>get_report(file_name)</code>
| Отримує звіт за назвою файлу
|-
| <code>execute_query(query, params=None)</code>
| Виконує SQL-запит
|-
| <code>get_report_designer(file_name, design_type_id)</code>
| Отримує дизайнер звіту за типом дизайну
|-
| <code>add_reports_type(name, data)</code>
| Додає тип звіту до групи звітів
|}


у всіх шляхах пошуку
<code>K2DocsCRM</code> — частина CRM-модуля, яка відповідає за роботу з документами та даними CRM. Призначення
├── k2adm/


Завантаження перекладів
[[Категорія:Компоненти K2 ERP]]


Отримання інформації про тип обладнання:
<code>K2UpdateRemainder</code> відповідає за оновлення версій залишків на основі даних, отриманих від клієнтів.</pre>
'''критично.''' Щоб автоматична документація була корисною, класи й методи потрібно описувати зрозумілими docstring-коментарями, а не залишати код без пояснень. Призначення
{| class="wikitable" style="width:100%;"
</pre>
|-
| <code>K2</code>
| Ядро системи K2 ERP
|-
| <code>K2Obj</code>
| Базовий клас для об’єктів системи
|-
| <code>K2admin_menus</code>
| Формування меню для конкретного користувача
|-
| <code>k2data</code>
| Робота з даними
|-
| <code>k2datasync</code>
| Синхронізація даних
|-
| <code>k2logging</code>
| Логування повідомлень і помилок
|-
| <code>k2mail</code>
| Робота з поштою
|-
| <code>k2notifications</code>
| Сповіщення користувачів
|-
| <code>k2path</code>
| Пошук шляхів у системі
|-
| <code>k2secur</code>
| Безпека та доступи
|-
| <code>k2settings</code>
| конфігурація системи
|-
| <code>k2trans</code>
| Переклади
|-
| <code>k2upd</code>
| оновлення версій
|}


Виклик K2.get_path_to_root(__file__). Створюється об'єкт K2Grid з іменем yml 'k2doc_move'. З options [‘dataField’] отримує номер телефону (phone)
Основні приклади:


dict: The logging message if found, None otherwise. unitId (str) – одиниця виміру (конвертується за фіксованим списком). Якщо контакт не знайдено то для полів name, surname, email встановлюється значення None.=== Клас k2logging ===
! Властивість
K2ReportEmbed(reports_id: List [str])
!=== Ініціалізація ===


Зберігає ідентифікатор та конфігурація звіту в JSON-файл.==== провідний клас компоненти. Окремо варто відзначити роути і api (файл views.py) ====
{% extends template_name + '/base.html' %}


version #реліз системи компоненти
де:


The caller directory where the yml file was found, or None if the file was not found.==== get_locale() ====
{| class="wikitable" style="width:100%;"


==== Класk2notifications ====
{{ error }}


Формує SQL-запити для витягування даних із таблиць бази даних (Товари, Організація, Контрагент, складський облік, Договір, Відповідальна особа, клієнт ERP). (каталог objects/)
K2().domain
datasource_is_storage_id = [False, True]
</pre>
{| class="wikitable" style="width:100%;"
|-
| Відображення логбука
| <code>k2logbook_tm()</code>, <code>take_logbook_tm()</code>, <code>edit_logbook_tm()</code>
| Відкриття списку, форми та редагування логбука
|-
| Планове і позапланове ТО
| <code>planned_tm()</code>, <code>unplanned_tm()</code>, <code>create_unplanned_task()</code>
| Робота з плановим і позаплановим технічним обслуговуванням
|-
| Параметри
| <code>write_logbook_params()</code>, <code>read_logbook_params()</code>
| Збереження та читання параметрів логбука
|-
| Запчастини
| <code>pull_spare_parts_data()</code>, <code>spare_parts_check()</code>, <code>take_material_by_qr()</code>, <code>return_material_by_qr()</code>
| Робота із запчастинами та матеріалами
|-
| Кроки ТО
| <code>task_step_form()</code>, <code>save_step()</code>, <code>end_step()</code>, <code>end_step_manager()</code>
| Обробка кроків технічного обслуговування
|-
| Перевірки
| <code>step_image_check()</code>, <code>step_data_check()</code>, <code>detail_check()</code>, <code>equipment_qr_confirmation()</code>
| Перевірка зображень, даних, деталей і QR-кодів
|-
| Статуси
| <code>decline_task()</code>, <code>confirm_task()</code>, <code>send_on_revision_task()</code>, <code>requires_partner()</code>, <code>join_task()</code>
| Керування статусами завдань
|-
| Звіти та зображення
| <code>e_report_logbook()</code>, <code>get_all_employee_image()</code>, <code>get_employee_image()</code>, <code>get_image_logbook()</code>
| Звіти та робота із зображеннями логбука
|}


==== Залежності ====
== Класи компонент ==


Usage:
│ ├── examples/


У разі помилки скасовує транзакцію і повертає SEO-опис помилки. Returns:
period = 1


Обробка k2doc_rows_detail:
Визначити платформу:
create_contact() - Цей метод створює контакт на основі даних існуючого ліда. itemName (str) – назва товару.==== content(self) ====


Фіксує зміни у базі (commit). Parameters:
!<pre>


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


Пошук затверджувачів:
! Властивість
</pre>
K2().get_user_project_name()


Викликає конструктор батьківського класу K2Docs. str: HTML-шаблон сторінки редагування. Якщо знайдено, оновлює інформаційні дані ліда (ім'я, прізвище, email) у переданому об'єкті.==== get_platform() ====
Знайти YML-файл:


def test_dashboard():
│ ├── templates/


json_data_create(datasource_value, datasource_keys, datasource_is_counterpart_id, datasource_is_storage_id, period, date_from=None, date_to=None)
! Він повинен мати зрозумілу структуру, моделі, роути, API, залежності, документацію, історію змін, тести, локалізації, приклади та ресурси. ! datasource_keys,


Витягує інформаційні дані про залишки (inventSumLines). Ініціалізація класу. Створює SEO-опис змін у форматі "поле: старе_значення → нове_значення"
│ ├── hooks.py
! Якщо зображення відсутні, показує повідомлення та повертає <code>null</code>. Призначення
Основні частини компоненти:


Args:
! ! datasource_is_storage_id,
==== search_class_prop(path_objs) ====
! де <code>reports_id</code> — список ідентифікаторів звітів. Призначення
</pre>
{% include dashboard_settings.template %}


Якщо затверджувачів не знайдено, повертає помилку 404
Нижче наведено приклад типової структури компоненти K2 ERP. Відповідь
</pre>
<pre>
{| class="wikitable" style="width:100%;"
== Клас K2DocsCRM ==
'b452a5ae84f9e92e75eb0467c196fd71',


status (str): The status of the message (e.g., cls.log_error - 'ERROR', cls.log_warning - 'WARNING', cls.log_success - 'SUCCESS'). Команда для автоматичної генерації html файлу з документацією по док стрінгах:
<pre>


Відображає сторінку редагування дашборду. Лід і контакт взаємодіють через базу даних, де інформаційні дані ліда переносяться в таблицю контактів. (One greenlet will duplicate one thread,
— шлях до Python-файлу від кореня проєкту. Метод
 
==== dashboard_viewer() ====
 
==== clear_logging_messages() ====
 
== Вимоги до створення компонент ==


=== Приклад json_data_create() ===
Параметри:
│ ├── languages/
<pre>
@k2production.route('/test_dashboard', methods=['GET'])
@k2production.route('/test_dashboard', methods=['GET'])


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


==== Властивості ====
</pre>
 
!== Авторство ==
datasource_keys = ["table1_data", "table2_data"]
 
керування друкованими формами
 
Якщо контакт знайдено то відбувається оновлення версій даних у options [‘dataField’] (name, surname, email, lead_id)
 
==== compare_versions(version1, version2) ====
 
Основні операції:
 
У разі помилки повертає повідомлення з помилкою. Повертає:
==== Пошук властивостей для розширення класу ====
 
<pre>
 
<pre>
=== Клас k2secur ===
<pre>
<pre>
==== Метод очікує вхідний JSON, що містить ідентифікатор ліда (lead_id) ====
|-
Створює JSON-дані на основі джерел даних та періоду. Визначення id поточної мови
| <code>equipment_type_id</code>
| Ідентифікатор типу обладнання
|-
| <code>changed_fields</code>
| Словник зі зміненими полями та їхніми значеннями
|}


==== get_path_abs(caller_file) ====
status=K2.log_success,


self._send_group_params #параметри групи
# перевіряє наявність записів із <code>parentid != '0'</code> у таблиці <code>k2tm_fields</code>;
# отримує інформацію про тип обладнання з таблиці <code>k2equipment_type</code>;
# шукає активних затверджувачів у таблиці <code>k2users_for_approval</code>;
# формує SEO-опис змін;
# формує URL для сторінки затвердження;
# надсилає повідомлення через <code>K2Notifications.send_approval_request()</code>. ! All rights reserved. Клас дає можливість отримувати та відображати звіти з бази даних за їхніми ідентифікаторами. │ │ └── users.py


Нові ('new') переводить у стабільні ('stable').==== Приклад використання ====
K2().component_list()


* рахунки
│ ├── __init__.py
{| class="wikitable" style="width:100%;"
│ └── views.py


* звіти
[[Категорія:K2 ERP Javascript]]
 
* конфігурація системи CRM
 
{% endblock %
 
База даних, доступна через глобальний об'єкт K2.db. dict: Словник з результатами запитів або помилкою. Відображає сторінку редагування друкованої форми. nomenclature_data (dict) – інформаційні дані про номенклатуру:
{% else %}
==== viewer() ====
 
Parameters:
 
=== Клас K2DocsCRM виступає як частиною системи K2CRM і наслідується від K2Obj. Він надає доступ до ключових глобальних налаштувань та ресурсів, необхідних для роботи з документами або іншими функціями CRM. ===
 
<gallery mode="packed" heights="180">
 
==== Властивості класу ====
 
Вставляє нові записи у таблицю k2remainder_by_parties зі статусом 'new'. Об'єкт класу K2UpdateRemainder. Відображає сторінку перегляду друкованої форми. Відсутні. Якщо записів немає, повертає помилку 404
'stable' – залишки, які підтвердились та доступні користувачам. Результати запитів конвертуються у словники (row_asdict) для зручного JSON-формату.==== get_user_role(user_id) ====
 
Генерація ID
 
=== Клас k2settings ===
 
=== Клас K2Report ===
 
У разі успіху: JSON з повідомленням про успішну відправку (код 200)


<pre>
<pre>
{| class="wikitable" style="width:100%;"
{| class="wikitable" style="width:100%;"


self._off_buttons #вимкнути кнопки
[[Категорія:Документація K2]]


Save a logging message to the stack.==== Компоненти, які публікуються в K2 ERP повинні мати щонайменше такі атрибути ====
=== Основні властивості класу ===
! │ ├── business_processes/


<pre>
<pre>


self._name_yml_tree #назва конфігураційного файлу з деревом
! Частина
=== showBootstrapLoader() ===


name (str): Name of the object (page) to load messages for.<pre>
=== Основні методи ===


Load logging messages for the curren page from the error log file. __file__ - стандартна змінна в Python, яка містить абсолютний шлях до поточного файлу, в якому вона застосовується для. dict: A dictionary containing formatted log messages, the count of 'error' messages, and the count of 'warning' messages. (файл requirements-components.txt)
)


Повертає:
send_approval_request_from_hook(self, data)
K2.logging_message(K2.log_error, 'Operation completed with error.')
У документації клас згадується в контексті схеми вибору обслуговування терміналу. Властивість
</pre>
Для автоматичної генерації HTML-документації з docstring можна використовувати стандартний інструмент `pydoc`. Призначення
Основні системні класи:
{| class="wikitable" style="width:100%;"


Додаткові об’єкти компоненти.=== Клас k2upd ===
== Клас K2 ==
 
==== Методи ====
 
приклад:
 
check_lead() - Цей метод перевіряє, чи існує контакт із заданим номером телефону у базі даних (k2contacts). Returns:
 
==== get_path_to_root(caller_file) ====


</pre>
</pre>


</pre>
Очікувані інформаційні дані:


__TOC__
</pre>
</pre>
=== Метод send_approval_request_from_hook() ===


domain:
Метод повертає JSON-відповідь про успіх або помилку. Властивість
Приклад отримання відносного шляху до кореня:
|-
| <code>database</code>
| База даних через глобальний об’єкт <code>K2.db</code>
|-
| <code>time_zone</code>
| Часовий пояс системи через <code>K2.timezone</code>
|-
| <code>domain</code>
| Поточний домен через <code>K2.domain</code>
|}


Логіка роботи:
K2().get_user_counterparts_id()


The search is performed in the 'yml' subdirectory of each caller directory. Передає список затверджувачів, ідентифікатор об'єкта, URL та SEO-опис змін
повертає права поточного користувача для URL, до якого він звертається. Метод


message (str): The content of the message to be sent.=== Клас K2CRM ===
{| class="wikitable" style="width:100%;"


=== Клас k2data ===
<pre>


Використовує K2Notifications.send_approval_request() для відправки повідомлення
period,
{| class="wikitable" style="width:100%;"
k2/k2obj.py


=== Клас K2ReportDesigner надає функціональність для створення. Окремо варто відзначити редагування і перегляду звітів і дашбордів. Він взаємодіє з базою даних, управляє файлами звітів та генерує JSON-дані для подальшого використання. ===
message='Operation completed successfully.',


str: HTML-шаблон сторінки перегляду. ==== logging_message(status, message, page_url=None, show_message=True) ====
id = K2.generate_id()


:return: A tuple containing:
Клас обробляє інформаційні дані з логів, створює або оновлює записи про залишки товарів і керує їхніми статусами. Метод


== K2 ERP Javascript ==
! Результат містить roleid та прапорці доступу, зокрема:


=== Клас K2admin_menus ===
== Метод crm_data(route, data) ==


==== dashboard_designer() ====
<pre>
 
==== Даний клас формує список пунктів меню для конкретного користувача ====


== Коротко ==
│ ├── developer_documentation/
</pre>
</pre>
|-
| <code>new</code>
| Нові залишки, отримані в поточному оновленні
|-
| <code>stable</code>
| Підтверджені залишки, доступні користувачам
|-
| <code>old</code>
| Застарілі інформаційні дані, що підлягають видаленню
|}


==== ins_search_comp() ====
├── requirements-components.txt
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).</pre>


коректну обробку часу в межах системи реалізується засобами Призначення:.==== Методи ====
=== showUserAlert() ===
<pre>
=== Основні методи ===
|-
| <code>update_pub_sub_remainder()</code>
| Оновлює залишки на основі даних Pub/Sub
|-
| <code>_insert_new_pub_sub_nomenclature(session, nomenclature_data)</code>
| Додає нову номенклатуру, якщо її ще немає
|}


==== Атрибути класу ====
path_class = 'components/k2production/k2production/k2equipment'


[[index.php?title=Категорія:Документація K2]]
<pre>


This method emits a message to the client with a given status and message content. Якщо запису немає – створює його. k2form==2.0.1.27
components/
</pre>


Python залежності, якщо є. (файл requirements.txt)
Компонента повинна мати документацію для різних груп користувачів.</pre>
{% if error %}
<pre>


Readme.md. Файл в якому написана ціль компоненти, як її використовувати. Та різні моменти, які потрібно знати програмістам, адмінам та користувачам
Отримати id поточного контрагента:
Ресурси компоненти зберігаються у стандартних каталогах:
<code>K2ReportEmbed</code>застосовують, коли потрібно для вбудовування звітів у вебзастосунок. | Для розробників K2 ERP Python
|-
| Що описує документ? SEO-опис
<code>check_lead()</code> перевіряє, чи існує контакт із заданим номером телефону в таблиці <code>k2contacts</code>. Значення <code>name</code>


Історія змін. Документ, в якому описуються зміни текстом, зрозумілим для користувачів. (файл history.txt)
Метод збирає інформаційні дані по товарах, організації, контрагенту, складу, договору, відповідальній особі та клієнту, після чого повертає результат у JSON-форматі. Каталог


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


Бізнес-процеси, схеми роботи, які були втілені в проудкті. В форматі Draw.io. (каталог doc/business_processes)
K2().get_user_permissions()
<div style="border:2px solid #1565c0; background:#e3f2fd; padding:14px; margin:16px 0;">
Отримати права поточного користувача:
|-
| <code>/static</code>
| Зображення, тексти, JavaScript, CSS та інші статичні ресурси
|-
| <code>/static/img</code>
| Іконки та зображення компоненти
|-
| <code>/templates</code>
| Шаблони компоненти
|-
| <code>/yml</code>
| YML-конфігурації
|-
| <code>/data</code>
| інформаційні дані компоненти, якщо вони потрібні
|}


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


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


(потрібно завершити автоматичне збирання із компонент)
│ ├── models.py


Документація для розробників (не обов’язково, але желательно). Додатково, якщо потрібно, щось додатково відмітити. Каталог doc/additional_developer_docs)
! Атрибут
{| class="wikitable" style="width:100%;"
]
!== Локалізації ==


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


Віджети. Дашборди та інші візуальні елементи для вставки на головну сторінку та інші сторінки, які можна додавати автоматично. (потрібно вирішити як додавати) /widgets
Клас містить методи для обробки запитів на затвердження змін у технічній документації обладнання. k2report_embed = K2ReportEmbed(reports_id)
== Клас K2CRM ==
Приклад:


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


<pre>
<pre>
/languages/en/LC_MESSAGES/messages.po
/languages/en/LC_MESSAGES/messages.mo
/languages/en/LC_MESSAGES/messages.mo
</pre>
{| class="wikitable" style="width:100%;"


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


Файли ресурсів (зображення, тексти): Каталог /static
K2().get_current_user()
У компоненті має бути вказане авторство.<pre>


YML, якщо є. Каталог /yml
Шаблони мають бути розроблені так, щоб не конфліктувати з глобальними шаблонами системи. K2.get_platform()


Іконки, які будуть використовуватись для представлення компоненти. Каталог /static/img
{| class="wikitable" style="width:100%;"
removeBootstrapLoader(containerId)
datasource_value = ["SELECT * FROM table1", "SELECT * FROM table2"]


Авторство. Якщо К2, то в форматі, як прийнято в цілому для К2, якщо сторонній розробник - інформація про стороннього розробника. Copyright © 2000-2025 К2®, Rudiuk Serhii. All rights reserved.
! | Від <code>K2Obj</code>
|-
| Де описуються залежності компонент?<code>K2Production</code> застосовується для для виробничих процесів. Призначення


Шаблони, якщо є. Вказуємо каталог. Звертаю увагу, що К2 ERP повинна мати змогу використовувати не обмежену кількість шаблонів. Шаблони повинні бути так розроблені, щоб не конфліктувати з глобальними шаблонами системи. Каталог /templates
Метод здатна зберігати повідомлення в журналі та відправляти його клієнту через Socket.IO. Призначення


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


<pre>
Клас взаємодіє з базою даних, керує файлами звітів і генерує JSON-дані для подальшого використання.</div>
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>


== Системні класи ==
Видаляє анімацію завантаження з контейнера. У K2 ERP використовуються допоміжні JavaScript-функції для роботи з інтерфейсом, зображеннями, завантаженням і повідомленнями користувачу.<code>K2Obj</code> — базовий клас для об’єктів системи K2 ERP. Призначення


=== Клас K2 ===
yml_path = K2.search_yml('users')
[[Категорія:Документація для розробників]]
Ця сторінка потрібна для того, щоб розробники K2 ERP працювали з компонентами в єдиному стилі. reports_id = [
<pre>
!</pre>


Ядро системи K2CloudERP.
== Клас K2EquipmentFunction ==


==== Властивості ====
<pre>


==== Властивості класу ==== Властивості інстансу ====
! * як має виглядати структура компоненти;
* які файли виступає як обов’язковими;
* де зберігати моделі, роути, хуки й додаткові об’єкти;
* як описувати залежності;
* як оформлювати документацію для користувачів і розробників;
* які базові класи доступні в ядрі K2 ERP;
* як використовувати системні API;
* які JavaScript-допоміжні функції доступні для інтерфейсу. Поле


==== self.secur #властивість що підключає до ядра клас безпеки ====
Отримати поточного користувача:
Додає анімацію завантаження у вказаний контейнер. │ ├── schema/
{| class="wikitable" style="width:100%;"
</pre>
|-
| <code>designer()</code>
| Відображає сторінку редагування друкованої форми
|-
| <code>viewer()</code>
| Відображає сторінку перегляду друкованої форми
|-
| <code>dashboard_viewer()</code>
| Відображає сторінку перегляду дашборду
|-
| <code>dashboard_designer()</code>
| Відображає сторінку редагування дашборду
|-
| <code>json_data_create(...)</code>
| Створює JSON-дані на основі джерел даних і періоду
|-
| <code>save_report_id()</code>
| Зберігає ідентифікатор і конфігурація звіту
|-
| <code>mrt_report_create(report_id, design_type_id=None)</code>
| Створює MRT-файл звіту на основі шаблону
|-
| <code>table_report_data(datasource_value, datasource_keys)</code>
| Обробляє SQL-дані для джерел звіту
|-
| <code>save_info_report_designer()</code>
| Зберігає інформацію про звіт і генерує MRT-файл
|-
| <code>data_source_lists_creating(group_reports_id)</code>
| Створює списки джерел даних для звіту
|}


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


==== self.settings #властивість що підключає до ядра клас збереження та пошуку налаштувань ====
Документація оптимізує зрозуміти:
 
def test_dashboard():
==== self.notifications #властивість що підключає до ядра клас створення та відправки сповіщень ==== K2().domain ====
Приклад:
 
json_data = k2_designer.json_data_create(
==== Методи ====
<code>K2</code> — це ядро системи K2 ERP. |-
 
| <code>models.py</code>
==== Методи інстансу ==== K2().get_user_counterparts_id() ==== K2().component_list() ==== K2().get_user_project_name() ==== K2().get_current_user() ==== K2().create_db_role(user_name, password) ====
| ORM-структури та моделі бази даних компоненти
 
|-
==== __init__(self, *args, **kwargs) ====
| <code>views.py</code>
 
| провідний клас компоненти, роути та API
Initialize self. See help(type(self)) for accurate signature.
|-
 
| <code>objects/</code>
==== add_authorized_users(self, user_id, login) ====
| Додаткові класи, від яких залежить функції ERP компоненти
 
|-
Додати користувача до списку авторизованих
| <code>hooks.py</code>
 
| Хуки для розширення або зміни стандартної поведінки системи
==== check_authorized_users(self, user_id) ====
|-
 
| <code>requirements-components.txt</code>
Перевірити чи користувач системи активний
| Залежності від інших компонент K2 ERP
 
|-
==== check_logout_users(self, user_id) ====
| <code>requirements.txt</code>
 
| Python-залежності компоненти
Авторизовані користувачі
|-
 
| <code>README.md</code>
==== component_list() ====
| SEO-опис цілі компоненти, способу використання та важливих приміток
 
|-
Пошук встановлених компонент
| <code>history.txt</code>
 
| історія продукту змін, написана зрозумілою для користувача мовою
==== create_db_file_config_user(self) ====
|-
 
| <code>doc/</code>
Створення файлу з параметрами підключенням до БД для користувача
| Документація, схеми, бізнес-процеси та інструкції
 
|-
==== create_db_role(self, user_name, password) ====
| <code>tests/</code>
 
| Юніт-тести компоненти
Створення користувача на рівні БД
|-
 
| <code>examples/</code>
==== current_template(self) ====
| Приклади використання компоненти
 
|-
Search current template
| <code>widgets/</code>
 
| Віджети, дашборди та візуальні елементи
==== db_custom_engine(self, db) ====
|-
 
| <code>languages/</code>
Зміна custom параметрів підключення
| Локалізації та переклади
 
|-
==== db_user_engine(self, db) ====
| <code>static/</code>
 
| Зображення, стилі, JavaScript, текстові ресурси
Зміна параметрів підключення для поточного користувача
|-
 
| <code>templates/</code>
==== dell_authorized_users(self, user_id) ====
| Шаблони компоненти
 
|-
Видалити користувача зі списку авторизованих
| <code>yml/</code>
 
| YML-конфігурації
==== 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) ====
 
==== Методи класу ====
 
Алгоритм роботи:
 
=== Клас K2Grid ===
 
==== get_current_user_role_name() ====
 
=== Клас K2ReportDesigner ===
 
datasource_is_counterpart_id (list): Список флагів, що вказують на наявність counterpart_id.<pre>
Параметри:
 
[[index.php?title=Категорія:Python]]
 
Перевіряє наявність номенклатури у таблиці k2nomenclature. date_from (str, опціонально): Початкова дата періоду. Returns:
 
=== Клас K2WMS ===


Метод відправляє запит на затвердження змін у технічній карті обладнання. Метод
</pre>
</pre>


threads and greenlets. This method searches for a yml file with a specified name in the caller directories of all subclasses of K2Obj. Повертає:
'''Принцип.''' Компонента повинна бути самодостатньою, але не повинна ламати глобальну структуру K2 ERP. Призначення
 
{% if error %}
period = 1
Rerurn: list of components identificators
Призначення: застосовується для для побудови URL-адрес або інших задач, пов'язаних з доменним середовищем. Хуки.</pre>
 
datasource_is_storage_id = [False, True]
 
Відображає сторінку перегляду дашборду.== API ==
 
""" Index page """
 
==== Методи ====
 
{% endif %}


date_from = "2023-01-01"
Файли перекладів зберігаються у структурі:
== Клас K2Production ==
=== Приклад backend Flask ===


[[Index.php?title=Категорія:K2 Cloud ERP|index.php?title=Категорія:K2 ERP]]
== Права користувача ==


==== Моделі які використовуються ====
{{DISPLAYTITLE:Класи та команди K2 ERP Python}}


==== __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 ===
* <code>r</code> — читання;
* <code>w</code> — запис;
* <code>i</code> — вставка;
* <code>d</code> — видалення;
* <code>c</code> — створення;
* <code>exp</code> — експорт;
* <code>imp</code> — імпорт;
* <code>del_</code> — відновлення;
* <code>settable</code> — конфігурація таблиці;
* <code>cutpast</code> — вирізати / вставити;
* <code>enable</code> — доступність;
* <code>active</code> — активність. requirements-components.txt


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


==== Атрибути класу ====
Окремо варто відзначити створюють компоненти, підключають системні класи, використовують API, пишуть документацію, тести і допоміжні JavaScript-функції виступає ключовою рисою розробників забезпечується через '''Класи та команди K2 ERP Python'''.=== Основні методи K2DocsCRM ===


==== __init__(reports_id: List [str]) ==== get_report_data() -> Optional [List [Dict [str, Any]]] ==== Бекенд (Flask) ====
=== Основні функції ERP ===


name (str): Name of object where the message originated. Параметри (doc_id) передаються через send_params.==== namemenu(url) ====
* <code>K2ReportEmbed</code>;
* <code>K2ReportDesigner</code>. Клас наслідується від <code>K2Obj</code> і виступає як батьківським класом для:
! Якщо контакт не знайдено, відповідні поля очищаються. Група
{% else %}
└── setup.py


Метод очікує вхідні інформаційні дані у форматі JSON і доступ до них здійснюється через request.json. Призначення: застосовують, коли потрібно для зберігання та обробки даних, пов'язаних з CRM. id = K2.generate_id()
<code>process_options()</code> обробляє JSON-запит і налаштовує K2Grid залежно від значення параметра <code>name</code>. SEO-опис


__TOC__
datasource_value,


Повертає:
<pre>
<pre>
self._send_params #параметри для конфігураційного файлу
!=== Основні групи методів ===
str: HTML-шаблон сторінки редагування дашборду. Raises:
<div style="border:2px solid #f57c00; background:#fff3e0; padding:14px; margin:16px 0;">
Передаються параметри: row_id та storage_id. (файл models.py)
K2_Cloud_ERP_Python_01.png|Ілюстрація K2 ERP Python|посилання=Файл:K2_Cloud_ERP_Python_01.png
</pre>
[[Категорія:API]]
 
<code>K2ReportDesigner</code> надає функціональність для створення, редагування та перегляду звітів і дашбордів. Метод
створення звітів за допомогою конструктора звітів
 
Винятки:
 
str: HTML-шаблон сторінки перегляду дашборду. k2contacts. Перевіряє наявність записів у таблиці k2tm_fields з parentid != '0'
 
<pre>
<pre>
|-
| <code>component_list()</code>
| Пошук встановлених компонент
|-
| <code>get_current_user()</code>
| Повертає об’єкт поточного користувача
|-
| <code>get_user_counterparts_id()</code>
| Пошук id поточного контрагента
|-
| <code>get_user_counterparts_name()</code>
| Пошук назви поточного контрагента
|-
| <code>get_user_project_id()</code>
| Пошук id поточного проєкту користувача
|-
| <code>get_user_project_name()</code>
| Пошук назви поточного проєкту користувача
|-
| <code>get_user_storage_id()</code>
| Пошук id поточного складу
|-
| <code>get_user_stoages_name()</code>
| Пошук назви поточного складу
|-
| <code>get_user_structural_division_id()</code>
| Пошук id поточного підрозділу
|-
| <code>get_user_structural_division_id_tree()</code>
| Пошук підрозділів за ієрархією
|-
| <code>get_menu_url()</code>
| Повертає список URL активних пунктів меню
|-
| <code>search_menu_items()</code>
| Пошук пунктів меню
|-
| <code>search_menu_items_category()</code>
| Пошук категорій пунктів меню
|-
| <code>search_static_files()</code>
| Пошук статичних файлів
|-
| <code>url_map()</code>
| Робота з картою URL
|}


status (str): The status of the message (e.g., cls.log_error - 'ERROR', cls.log_warning - 'WARNING', cls.log_success - 'SUCCESS').=== Клас k2trans ===
! SEO-опис
Компонента K2 ERP повинна мати стандартизовану структуру.<pre>


k2report_embed = K2ReportEmbed(reports_id)
! Призначення


self._data_source #датасети
Для компонент K2 застосовується для стандартний формат:


Returns:
== Клас K2UpdateRemainder ==


Отримує список pub_sub_list_id з логів k2pubsub_logs. K2.get_platform()
'49952f397efff44d7ce0e5cb9aa625fb'
<pre>
K2 має методи для збереження, завантаження та відправлення повідомлень користувачу. | <code>K2</code>
|-
| Від чого наслідуються об’єкти системи?== Ресурси компоненти ==
'k2dashboard_production/k2dashboard_production.html',
Інструкція користувача повинна автоматизовано підтягуватися системою документації K2 ERP, створюючи окремий розділ документації для встановленого продукту.<pre>
{% endif %}
== Клас K2LogbookTMDoc ==


This method fetches permissions for the current user based on the URL they are accessing. Логує помилку у разі невдалої вставки даних.==== Атрибути класу ====
<code>K2EquipmentFunction</code> — підклас <code>K2Obj</code>, призначений для роботи з функціональністю обладнання в K2 ERP. Призначення
 
Витягує equipment_type_name та equipment_type_code з таблиці k2equipment_type
 
Перевіряється значення ключа name у вхідних даних:


</pre>
</pre>


=== Клас k2datasync ===
! |-
 
| <code>self.secur</code>
==== Використовує клас K2Notifications для відправки повідомлень ====
| Підключення класу безпеки
 
|-
crm_data(route, data) - Цей метод отримує інформаційні дані із відповідних таблиць з бази даних на основі переданих параметрів для подальшого оформлення друкованої форми документів у компоненті k2CRM
| <code>self.path</code>
 
| Підключення класу пошуку шляхів
==== Атрибути ====
|-
Exception: If an error occurs during database query execution. self._new_buttons #назва кнопки
| <code>self.data</code>
<pre>
| Підключення класу синхронізації даних
 
|-
==== Методи класу ====
| <code>self.settings</code>
 
| Підключення класу налаштувань
Вивід списку компонент з файлу components.yml у всіх шляхах пошуку
|-
===
| <code>self.notifications</code>
 
| Підключення класу сповіщень
Визначення поточної мови
|}
 
{% extends template_name + '/base.html' %}
 
dashboard_settings=k2report_embed)
 
K2.logging_message(K2.log_success, 'Operation completed successfully.'1)
 
K2Lead.<pre>
 
==== createImageSliderModal(images, containerId = null) ==== showBootstrapLoader(containerId) ==== removeBootstrapLoader(containerId) ==== showUserAlert(message, type = 'light') ==== Стилі (Назва) ==
 
Подзаголовок
 
Заголовок 1
 
Заголовок 2
 
Заголовок 3
 
Заголовок 4
 
Заголовок 5
 
Заголовок 6
 
Звичвйний текст
 
== Ілюстрації з документа ==
 
==== Методи інстансу ====
==== dump_stacks() ====
==== Властивості ====


usr_perm = K2().get_user_permissions()
usr_perm = K2().get_user_permissions()


* [[K2 Cloud ERP|K2 ERP]]
{| class="wikitable" style="width:100%;"
* [[K2 ERP]]
* [[Python]]
* [[API]]
* [[Документація для розробників]]
* [[K2 Cloud ERP Javascript|K2 ERP Javascript]]


date_to = "2023-12-31"
! Метод
Ім'я YML: 'k2doc_rows_detail'. Нічого. У разі помилки застосовується лог помилки і повертається повідомлення з помилкою. itemId (str) – ідентифікатор номенклатури. Request information about the running threads of the current process. Цей клас представляє CRM компонент, який забезпечує роботу з різними розділами CRM системи такими як:


Initialize self. Зележності від інших компонент.=== Клас для оновлення версій залишків на основі даних з отриманих від клієнтів. ===
{| class="wikitable" style="width:100%;"


datasource_keys (list): Список ключів для джерел даних. json_data = k2_designer.json_data_create(datasource_value, datasource_keys, datasource_is_counterpart_id, datasource_is_storage_id, period, date_from, date_to)
# отримує JSON із <code>lead_id</code>;
# перевіряє, чи передано <code>lead_id</code>;
# шукає лід у таблиці <code>k2lead</code>;
# створює запис у таблиці <code>k2contacts</code>;
# у разі помилки скасовує транзакцію та повертає SEO-опис помилки.<div style="border:3px solid #1565c0; background:#e3f2fd; padding:14px; margin:16px 0;">
== Метод check_lead() ==
[[Категорія:K2 ERP]]
=== Атрибути ===
<code>K2LogbookTMDoc</code> керує логбуком технічного обслуговування. Призначення


Clear all logging message by user
== Приклад структури компоненти ==
'''Коротко.''' Компонент K2 ERP має бути не без зусиль набором Python-файлів. Значення
datasource_keys = ["table1_data", "table2_data"]
Приклад команди:
<pre>


k2log==2.0.0.2
return render_template(
k2grid==2.0.4.1


reports_id = ['b452a5ae84f9e92e75eb0467c196fd71', '1673a4fab757fb6c5df970fdc6ee680c',
! Що зберігається
</pre>
│ ├── static/
'new' – нові залишки, отримані в поточному оновленні. Якщо тип обладнання не знайдено, повертає помилку 404
|-
| <code>images</code>
| Масив URL-адрес зображень
|-
| <code>containerId</code>
| Ідентифікатор контейнера для вставки слайдера
|}


== Класи компонент ==
! |-
| <code>init_db()</code>
| Підключення <code>db_uri</code> для вибраної бази даних
|-
| <code>init_db_custom(key)</code>
| Підключення custom <code>db_uri</code> за ключем
|-
| <code>init_db_uri()</code>
| Пошук і ініціалізація файлу підключення до бази даних
|-
| <code>init_db_uri_custom()</code>
| Зчитування підключень із <code>db_custom.yml</code>
|-
| <code>init_db_uri_user()</code>
| Ініціалізація підключення до БД для поточного користувача
|-
| <code>init_db_user()</code>
| Підключення <code>db_uri</code> для користувача
|-
| <code>create_db_role(user_name, password)</code>
| Створення користувача на рівні БД
|-
| <code>drop_db_role(user_name)</code>
| Видалення користувача на рівні БД
|-
| <code>kill_user_sessions(target_username)</code>
| Завершення сесій користувача на рівні БД
|}


Додавання нової номенклатури.==== generate_id() ====
)


yml_path = K2.search_yml('users')
│ │ └── roles.py
 
{| class="wikitable" style="width:100%;"
{% block content %}
<pre>
|-
| <code>add_authorized_users(user_id, login)</code>
| Додає користувача до списку авторизованих
|-
| <code>check_authorized_users(user_id)</code>
| Перевіряє, чи користувач системи активний
|-
| <code>check_logout_users(user_id)</code>
| Перевіряє користувачів, що вийшли
|-
| <code>dell_authorized_users(user_id)</code>
| Видаляє користувача зі списку авторизованих
|-
| <code>get_authorized_users()</code>
| Отримує список авторизованих користувачів
|}


Визначення операційної системи
Згенерувати ID:
 
Вивід списку ідентифікаторів компонент
 
==== save_report_id() ====
 
Перевіряє чи було надано lead_id.==== load_babel_translation_directories() ====


</pre>
</pre>
/languages/en/LC_MESSAGES/messages.po
page_url='/kadm/users',
|-
| <code>generate_id()</code>
| Генерація ID
|-
| <code>compare_versions(version1, version2)</code>
| Порівняння версій
|-
| <code>get_platform()</code>
| Визначення операційної системи
|-
| <code>get_locale()</code>
| Визначення поточної мови
|-
| <code>get_locale_id()</code>
| Визначення id поточної мови
|-
| <code>get_active_lang_list()</code>
| Отримання списку активних мов
|-
| <code>get_user_role(user_id)</code>
| Отримання <code>roleid</code> користувача
|-
| <code>get_current_user_role_name()</code>
| Отримання role name поточного користувача
|-
| <code>get_path_abs(caller_file)</code>
| Абсолютний шлях до файлу, в якому виконується код
|-
| <code>get_path_to_root(caller_file)</code>
| Відносний шлях до кореня
|-
| <code>search_yml(name_yml)</code>
| Пошук YML-файлу в каталогах компонент
|-
| <code>search_comp_names()</code>
| Пошук ідентифікаторів компонент
|-
| <code>load_babel_translation_directories()</code>
| Завантаження перекладів
|}


Відносний шлях до рута. Search for a yml file in the caller directories of subclasses. У разі помилки: JSON з описом помилки (код 404 або 500)
!<pre>


Add identificators to url page
datasource_is_counterpart_id = [True, False]


Параметри:
showBootstrapLoader(containerId)


=== Клас k2path ===
документація з вимогами до створення компонентів забезпечується через '''K2 ERP Python; так само реалізовано структури пакетів, системних класів, API, компонентних класів і допоміжних JavaScript-функцій системи [[K2 Cloud ERP|K2 ERP]] виступає ключовою рисою розробників'''. Отримує список активних користувачів для затвердження з таблиці k2users_for_approval
If no permissions are found for the user, an empty dictionary is returned. __file__ -стандартна змінна в Python, яка містить абсолютний шлях до поточного файлу, в якому вона застосовується для. оновлення версій залишків на основі даних Pub/Sub. Приклад використання:
==== save_logging_message(error_id, status, message, name) ====
Перевірка наявності записів з parentid:
==== Фронтенд (Jinja-шаблон) ====
Отримає вхідний JSON, що містить options із даними для перевірки. message (str): The content of the message to be saved.== K2 ERP Python ==
If the user is a superadmin, a default set of permissions is returned. Якщо lead_id не надано то повертається помилка. Шукає ліда в таблиці k2lead за наданим параметром.=== K2UpdateRemainder ===
<pre>
<pre>
<pre>
== Клас K2ReportDesigner ==
! │ └── additional_developer_docs/
! ![[Категорія:K2 ERP Python]]
== K2 ERP JavaScript ==


[[index.php?title=Категорія:Документація для розробників]]
Повертає ідентифікатор створеного каруселя або модального вікна.== Методи авторизації користувачів ==
 
! Призначення
K2.logging_message(status, message, page_url=None, show_message=True)
└── k2adm/
== Системні класи ==
</pre>
</pre>
==== __init__(self) ====
[[Категорія:K2 CRM]]
return render_template('k2dashboard_production/k2dashboard_production.html',
pydoc -w k2/k2obj.py
 
'1673a4fab757fb6c5df970fdc6ee680c',
Retrieve user permissions based on the URL.==== _insert_new_pub_sub_nomenclature(session, nomenclature_data) ====
У K2 ERP використовуються щонайменше українська та англійська мови. date_to = "2023-12-31"


</pre>
K2.get_path_to_root(__file__)


порівняння версій
Відображає повідомлення користувачу у вигляді Bootstrap Toast. │ ├── history.txt
show_message=False
Клас відповідає за базові параметри домену, підключення до бази даних, мову, поточного користувача, список компонентів, конфігурація, доступи, сесії та службові методи. Статус


period (int): Період вибірки даних. page_url(str): url of page with Errors.==== search_comp_names() ====
!</pre>
</pre>
[[Категорія:K2 Report]]

Поточна версія на 17:53, 1 травня 2026

Клас K2ReportEmbed

K2.logging_message(

Основні методи K2Report

│ ├── roles/

Документ описує загальні вимоги до компонентів K2 ERP, базові системні класи, структуру компонентів, правила документування та приклади використання окремих класів. Це потрібно для того, щоб систему можна було оновлювати, документувати, тестувати й підключати до інших модулів без ручного хаосу. ! Параметри:

{% endblock %}

domain_name Назва домену
domain_protocol Протокол домену
domain Поточний домен
port Порт
db Підключення до бази даних
default_language Мова за замовчуванням

Створює слайдер зображень у контейнері або модальному вікні. SEO-опис

Приклади використання K2

|- | __init__() | Ініціалізація об’єкта |- | content() | Формування контенту |- | create_names_yml() | Створення назв YML-конфігурацій |- | search_class_prop() | Пошук властивостей для розширення класу |- | select_grid() | Вибір grid |- | show_grid() | Відображення grid |}

! | Слайдер зображень, loader, видалення loader та повідомлення користувачу |}

Системні класи K2 ERP забезпечують базову роботу ядра, об’єктів, безпеки, шляхів, даних, налаштувань, повідомлень, перекладів і оновлень. Створити користувача на рівні бази даних:

current_user_permissions = K2().get_user_permissions() Copyright © 2000-2025 К2®, Rudiuk Serhii. це технічна документація; так само реалізовано які працюють із Python-версією K2 ERP. |- | create_contact() | Створює контакт на основі даних ліда |- | check_lead() | Перевіряє, чи існує контакт із заданим телефоном |- | crm_data(route, data) | Отримує інформаційні дані для друкованих форм CRM |- | process_options() | Обробляє параметри JSON-запиту й налаштовує об’єкти K2Grid |}

removeBootstrapLoader()

!

K2().create_db_role(user_name, password)

! SEO-опис

showUserAlert(message, type = 'light')
=== createImageSliderModal() ===

Призначення документа

Метод create_contact()

K2.get_path_abs(__file__) file_class = 'k2equipment'

Клас K2Report

name Назва компоненти
version реліз системи компоненти

Приклади:

dashboard_settings=k2report_embed

! Клас Клас так само наслідується від K2Obj. Призначення

k2log==2.0.0.2 k2grid==2.0.4.1

create_contact() створює контакт на основі даних існуючого ліда. Метод


! Метод
базовий метод:

== Вимоги до компоненти K2 ERP ==

Основні атрибути

│ ├── models.py

! Атрибут

]
== Локалізації ==
  • створення звітів;
  • робота з конструктором звітів;
  • керування друкованими формами;
  • генерація друкованих документів;
  • взаємодія з API Stimulsoft;
  • візуалізація та експорт звітів. Дія

Клас містить методи для обробки запитів на затвердження змін у технічній документації обладнання. k2report_embed = K2ReportEmbed(reports_id)

Клас K2CRM

Приклад:

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

/languages/en/LC_MESSAGES/messages.mo
{| class="wikitable" style="width:100%;"

 ├── __init__.py

K2().get_current_user()
У компоненті має бути вказане авторство.<pre>

Шаблони мають бути розроблені так, щоб не конфліктувати з глобальними шаблонами системи. K2.get_platform()

{| class="wikitable" style="width:100%;"
removeBootstrapLoader(containerId)
datasource_value = ["SELECT * FROM table1", "SELECT * FROM table2"]

! | Від <code>K2Obj</code>
|-
| Де описуються залежності компонент?<code>K2Production</code> застосовується для для виробничих процесів. Призначення

Метод здатна зберігати повідомлення в журналі та відправляти його клієнту через Socket.IO. Призначення

 )

Клас взаємодіє з базою даних, керує файлами звітів і генерує JSON-дані для подальшого використання.</div>

Видаляє анімацію завантаження з контейнера. У K2 ERP використовуються допоміжні JavaScript-функції для роботи з інтерфейсом, зображеннями, завантаженням і повідомленнями користувачу.<code>K2Obj</code> — базовий клас для об’єктів системи K2 ERP. Призначення

yml_path = K2.search_yml('users')
[[Категорія:Документація для розробників]]
Ця сторінка потрібна для того, щоб розробники K2 ERP працювали з компонентами в єдиному стилі. reports_id = [
<pre>
!

Клас K2EquipmentFunction


! * як має виглядати структура компоненти;
* які файли виступає як обов’язковими;
* де зберігати моделі, роути, хуки й додаткові об’єкти;
* як описувати залежності;
* як оформлювати документацію для користувачів і розробників;
* які базові класи доступні в ядрі K2 ERP;
* як використовувати системні API;
* які JavaScript-допоміжні функції доступні для інтерфейсу. Поле

Отримати поточного користувача:
Додає анімацію завантаження у вказаний контейнер. │ ├── schema/
{| class="wikitable" style="width:100%;"
designer() Відображає сторінку редагування друкованої форми
viewer() Відображає сторінку перегляду друкованої форми
dashboard_viewer() Відображає сторінку перегляду дашборду
dashboard_designer() Відображає сторінку редагування дашборду
json_data_create(...) Створює JSON-дані на основі джерел даних і періоду
save_report_id() Зберігає ідентифікатор і конфігурація звіту
mrt_report_create(report_id, design_type_id=None) Створює MRT-файл звіту на основі шаблону
table_report_data(datasource_value, datasource_keys) Обробляє SQL-дані для джерел звіту
save_info_report_designer() Зберігає інформацію про звіт і генерує MRT-файл
data_source_lists_creating(group_reports_id) Створює списки джерел даних для звіту

Основні властивості інстансу

Документація оптимізує зрозуміти: def test_dashboard(): Приклад: json_data = k2_designer.json_data_create( K2 — це ядро системи K2 ERP. |- | models.py | ORM-структури та моделі бази даних компоненти |- | views.py | провідний клас компоненти, роути та API |- | objects/ | Додаткові класи, від яких залежить функції ERP компоненти |- | hooks.py | Хуки для розширення або зміни стандартної поведінки системи |- | requirements-components.txt | Залежності від інших компонент K2 ERP |- | requirements.txt | Python-залежності компоненти |- | README.md | SEO-опис цілі компоненти, способу використання та важливих приміток |- | history.txt | історія продукту змін, написана зрозумілою для користувача мовою |- | doc/ | Документація, схеми, бізнес-процеси та інструкції |- | tests/ | Юніт-тести компоненти |- | examples/ | Приклади використання компоненти |- | widgets/ | Віджети, дашборди та візуальні елементи |- | languages/ | Локалізації та переклади |- | static/ | Зображення, стилі, JavaScript, текстові ресурси |- | templates/ | Шаблони компоненти |- | yml/ | YML-конфігурації |}

Метод відправляє запит на затвердження змін у технічній карті обладнання. Метод

Принцип. Компонента повинна бути самодостатньою, але не повинна ламати глобальну структуру K2 ERP. Призначення

Файли перекладів зберігаються у структурі:

Клас K2Production

Приклад backend Flask

Права користувача

  • r — читання;
  • w — запис;
  • i — вставка;
  • d — видалення;
  • c — створення;
  • exp — експорт;
  • imp — імпорт;
  • del_ — відновлення;
  • settable — конфігурація таблиці;
  • cutpast — вирізати / вставити;
  • enable — доступність;
  • active — активність. requirements-components.txt

Клас K2Obj

Окремо варто відзначити створюють компоненти, підключають системні класи, використовують API, пишуть документацію, тести і допоміжні JavaScript-функції виступає ключовою рисою розробників забезпечується через Класи та команди K2 ERP Python.=== Основні методи K2DocsCRM ===

Основні функції ERP

  • K2ReportEmbed;
  • K2ReportDesigner. Клас наслідується від K2Obj і виступає як батьківським класом для:

! Якщо контакт не знайдено, відповідні поля очищаються. Група

{% else %}
└── setup.py

process_options() обробляє JSON-запит і налаштовує K2Grid залежно від значення параметра name. SEO-опис

datasource_value,
!=== Основні групи методів ===
<div style="border:2px solid #f57c00; background:#fff3e0; padding:14px; margin:16px 0;">
K2_Cloud_ERP_Python_01.png|Ілюстрація K2 ERP Python|посилання=Файл:K2_Cloud_ERP_Python_01.png
[[Категорія:API]]
<code>K2ReportDesigner</code> надає функціональність для створення, редагування та перегляду звітів і дашбордів. Метод
<pre>
|-
| <code>component_list()</code>
| Пошук встановлених компонент
|-
| <code>get_current_user()</code>
| Повертає об’єкт поточного користувача
|-
| <code>get_user_counterparts_id()</code>
| Пошук id поточного контрагента
|-
| <code>get_user_counterparts_name()</code>
| Пошук назви поточного контрагента
|-
| <code>get_user_project_id()</code>
| Пошук id поточного проєкту користувача
|-
| <code>get_user_project_name()</code>
| Пошук назви поточного проєкту користувача
|-
| <code>get_user_storage_id()</code>
| Пошук id поточного складу
|-
| <code>get_user_stoages_name()</code>
| Пошук назви поточного складу
|-
| <code>get_user_structural_division_id()</code>
| Пошук id поточного підрозділу
|-
| <code>get_user_structural_division_id_tree()</code>
| Пошук підрозділів за ієрархією
|-
| <code>get_menu_url()</code>
| Повертає список URL активних пунктів меню
|-
| <code>search_menu_items()</code>
| Пошук пунктів меню
|-
| <code>search_menu_items_category()</code>
| Пошук категорій пунктів меню
|-
| <code>search_static_files()</code>
| Пошук статичних файлів
|-
| <code>url_map()</code>
| Робота з картою URL
|}

! SEO-опис
Компонента K2 ERP повинна мати стандартизовану структуру.<pre>

! Призначення

Для компонент K2 застосовується для стандартний формат:

== Клас K2UpdateRemainder ==

 '49952f397efff44d7ce0e5cb9aa625fb'
<pre>
K2 має методи для збереження, завантаження та відправлення повідомлень користувачу. | <code>K2</code>
|-
| Від чого наслідуються об’єкти системи?== Ресурси компоненти ==
 'k2dashboard_production/k2dashboard_production.html',
Інструкція користувача повинна автоматизовано підтягуватися системою документації K2 ERP, створюючи окремий розділ документації для встановленого продукту.<pre>
 {% endif %}
== Клас K2LogbookTMDoc ==

<code>K2EquipmentFunction</code> — підклас <code>K2Obj</code>, призначений для роботи з функціональністю обладнання в K2 ERP. Призначення

! |- | self.secur | Підключення класу безпеки |- | self.path | Підключення класу пошуку шляхів |- | self.data | Підключення класу синхронізації даних |- | self.settings | Підключення класу налаштувань |- | self.notifications | Підключення класу сповіщень |}

usr_perm = K2().get_user_permissions()

Метод
  1. отримує JSON із lead_id;
  2. перевіряє, чи передано lead_id;
  3. шукає лід у таблиці k2lead;
  4. створює запис у таблиці k2contacts;
  5. у разі помилки скасовує транзакцію та повертає SEO-опис помилки.

Метод check_lead()

Атрибути

K2LogbookTMDoc керує логбуком технічного обслуговування. Призначення

Приклад структури компоненти

Коротко. Компонент K2 ERP має бути не без зусиль набором Python-файлів. Значення datasource_keys = ["table1_data", "table2_data"] Приклад команди:


 return render_template(

! Що зберігається
 │ ├── static/
|-
| <code>images</code>
| Масив URL-адрес зображень
|-
| <code>containerId</code>
| Ідентифікатор контейнера для вставки слайдера
|}

! |-
| <code>init_db()</code>
| Підключення <code>db_uri</code> для вибраної бази даних
|-
| <code>init_db_custom(key)</code>
| Підключення custom <code>db_uri</code> за ключем
|-
| <code>init_db_uri()</code>
| Пошук і ініціалізація файлу підключення до бази даних
|-
| <code>init_db_uri_custom()</code>
| Зчитування підключень із <code>db_custom.yml</code>
|-
| <code>init_db_uri_user()</code>
| Ініціалізація підключення до БД для поточного користувача
|-
| <code>init_db_user()</code>
| Підключення <code>db_uri</code> для користувача
|-
| <code>create_db_role(user_name, password)</code>
| Створення користувача на рівні БД
|-
| <code>drop_db_role(user_name)</code>
| Видалення користувача на рівні БД
|-
| <code>kill_user_sessions(target_username)</code>
| Завершення сесій користувача на рівні БД
|}

)

 │ │ └── roles.py
{| class="wikitable" style="width:100%;"
<pre>
|-
| <code>add_authorized_users(user_id, login)</code>
| Додає користувача до списку авторизованих
|-
| <code>check_authorized_users(user_id)</code>
| Перевіряє, чи користувач системи активний
|-
| <code>check_logout_users(user_id)</code>
| Перевіряє користувачів, що вийшли
|-
| <code>dell_authorized_users(user_id)</code>
| Видаляє користувача зі списку авторизованих
|-
| <code>get_authorized_users()</code>
| Отримує список авторизованих користувачів
|}

Згенерувати ID:

/languages/en/LC_MESSAGES/messages.po

page_url='/kadm/users',
generate_id() Генерація ID
compare_versions(version1, version2) Порівняння версій
get_platform() Визначення операційної системи
get_locale() Визначення поточної мови
get_locale_id() Визначення id поточної мови
get_active_lang_list() Отримання списку активних мов
get_user_role(user_id) Отримання roleid користувача
get_current_user_role_name() Отримання role name поточного користувача
get_path_abs(caller_file) Абсолютний шлях до файлу, в якому виконується код
get_path_to_root(caller_file) Відносний шлях до кореня
search_yml(name_yml) Пошук YML-файлу в каталогах компонент
search_comp_names() Пошук ідентифікаторів компонент
load_babel_translation_directories() Завантаження перекладів

datasource_is_counterpart_id = [True, False]

showBootstrapLoader(containerId)

<pre>
== Клас K2ReportDesigner ==
! │ └── additional_developer_docs/
! ![[Категорія:K2 ERP Python]]
== K2 ERP JavaScript ==

Повертає ідентифікатор створеного каруселя або модального вікна.== Методи авторизації користувачів ==
! Призначення
K2.logging_message(status, message, page_url=None, show_message=True)
└── k2adm/
== Системні класи ==

pydoc -w k2/k2obj.py

'1673a4fab757fb6c5df970fdc6ee680c',

У K2 ERP використовуються щонайменше українська та англійська мови. date_to = "2023-12-31"

K2.get_path_to_root(__file__)

Відображає повідомлення користувачу у вигляді Bootstrap Toast. │ ├── history.txt

show_message=False

Клас відповідає за базові параметри домену, підключення до бази даних, мову, поточного користувача, список компонентів, конфігурація, доступи, сесії та службові методи. Статус