feat: вкладка «Субъект» — кнопка «Заполнить из данных организации»
Если объект КИИ находится в той же организации — одним кликом копирует наименование, адрес, ИНН, КПП из вкладки «Организация» в поля субъекта.
This commit is contained in:
@@ -857,6 +857,9 @@ class DokoGenApp:
|
||||
entry = ttk.Entry(subj_frame, width=70)
|
||||
entry.grid(row=i, column=1, padx=8, sticky=tk.EW, pady=1)
|
||||
setattr(self, attr, entry)
|
||||
ttk.Button(subj_frame, text="📋 Заполнить из данных организации",
|
||||
command=self._fill_subject_from_company).grid(
|
||||
row=len(subj_fields), column=0, columnspan=2, sticky=tk.W, pady=(8, 0))
|
||||
subj_frame.columnconfigure(1, weight=1)
|
||||
|
||||
# ===== Вкладка «Сеть» =====
|
||||
@@ -1591,6 +1594,34 @@ class DokoGenApp:
|
||||
if user:
|
||||
self.users_listbox.insert(tk.END, user)
|
||||
|
||||
def _fill_subject_from_company(self):
|
||||
"""Заполнить поля субъекта данными организации (если объект в той же организации)."""
|
||||
if self._current_is_idx is None:
|
||||
messagebox.showinfo("Субъект", "Сначала выберите объект КИИ в списке слева")
|
||||
return
|
||||
c = self.model
|
||||
if not (c.full_name or c.inn):
|
||||
messagebox.showinfo("Субъект",
|
||||
"Вкладка «Организация» пуста.\nСначала заполните данные организации "
|
||||
"(или импортируйте опросник).")
|
||||
return
|
||||
|
||||
def _set_entry(attr, value):
|
||||
w = getattr(self, attr, None)
|
||||
if w is not None:
|
||||
w.delete(0, tk.END)
|
||||
w.insert(0, value or '')
|
||||
|
||||
_set_entry('is_subject_name_entry', c.full_name or c.short_name)
|
||||
_set_entry('is_subject_address_entry', c.address)
|
||||
_set_entry('is_subject_inn_entry', c.inn)
|
||||
_set_entry('is_subject_kpp_entry', c.kpp)
|
||||
# Элемент (компонент) объекта — оставляем как есть, заполняется вручную
|
||||
self.log("📋 Субъект заполнен данными организации")
|
||||
messagebox.showinfo("Субъект",
|
||||
"Поля «Наименование», «Адрес», «ИНН», «КПП» заполнены из вкладки «Организация».\n"
|
||||
"«Элемент (компонент) объекта» заполните вручную.")
|
||||
|
||||
def _select_users_from_employees(self):
|
||||
"""Выбор пользователей ИС из списка сотрудников организации (вкладка «Пользователи»)."""
|
||||
names = []
|
||||
|
||||
Reference in New Issue
Block a user