Add ƏMAS employees step, fiscal year picker, translations, full back nav
- New employees step between asan and company: optional ƏMAS (MyGovID second tap) load with auto-pick by VÖEN, fallback to organization list, selection table with existing-Employee indicator, skippable. - materialize_after_setup enqueues invoice_az.amas_api.import_bulk_employees with the freshly-created Company so both Amas Employees and Employee records get populated. - Company step now has Start/End date pickers for Fiscal Year (default to current calendar year, validated). - All UI strings wrapped in __(); ru.csv and az.csv translation files added; language change on step 1 reloads translations via load_messages. - Back button works from every step and every sub-state (rewinds sub-state first, then crosses step boundary without clobbering terminal states). - Jey Wizard Etaxes Cache gains amas_selected_employees_json to carry the user's selection across setup_complete; cleared on Skip.
This commit is contained in:
parent
2b9fba7dd7
commit
3f62fea6e6
|
|
@ -1 +1 @@
|
|||
__version__ = "0.0.6"
|
||||
__version__ = "0.0.7"
|
||||
|
|
|
|||
|
|
@ -0,0 +1,66 @@
|
|||
"""Thin wizard-side wrappers for ƏMAS (e-social.gov.az) integration.
|
||||
|
||||
All heavy lifting (MyGovID auth, AMAS session, employee report, bulk import) already
|
||||
lives in `invoice_az.amas_api`. The wizard calls those directly from JS; only two
|
||||
things are wizard-specific and land here:
|
||||
|
||||
1. Caching the user's employee selection between the wizard's employees step and the
|
||||
setup_wizard_complete hook — because Company doesn't exist yet and the background
|
||||
import job needs it.
|
||||
2. Clearing that cache when the user chooses to skip.
|
||||
"""
|
||||
|
||||
import json
|
||||
|
||||
import frappe
|
||||
from frappe import _
|
||||
|
||||
|
||||
@frappe.whitelist()
|
||||
def cache_selected_employees(employees_json, create_designation=0):
|
||||
"""Store the selected ƏMAS employees in the wizard cache so materialize_after_setup
|
||||
can enqueue the bulk import with the freshly-created Company.
|
||||
"""
|
||||
_only_admin()
|
||||
|
||||
if isinstance(employees_json, str):
|
||||
parsed = json.loads(employees_json)
|
||||
else:
|
||||
parsed = employees_json or []
|
||||
|
||||
try:
|
||||
create_designation = int(create_designation)
|
||||
except (ValueError, TypeError):
|
||||
create_designation = 0
|
||||
|
||||
payload = {
|
||||
"employees": parsed,
|
||||
"create_designation": create_designation,
|
||||
}
|
||||
|
||||
cache = frappe.get_single("Jey Wizard Etaxes Cache")
|
||||
cache.amas_selected_employees_json = json.dumps(payload, ensure_ascii=False)
|
||||
cache.flags.ignore_permissions = True
|
||||
cache.save()
|
||||
frappe.db.commit()
|
||||
|
||||
return {"ok": True, "count": len(parsed)}
|
||||
|
||||
|
||||
@frappe.whitelist()
|
||||
def clear_amas_cache():
|
||||
"""Called when the user skips the AMAS step. Leaves e-taxes cache alone."""
|
||||
_only_admin()
|
||||
|
||||
cache = frappe.get_single("Jey Wizard Etaxes Cache")
|
||||
cache.amas_selected_employees_json = ""
|
||||
cache.flags.ignore_permissions = True
|
||||
cache.save()
|
||||
frappe.db.commit()
|
||||
|
||||
return {"ok": True}
|
||||
|
||||
|
||||
def _only_admin():
|
||||
if frappe.session.user != "Administrator":
|
||||
frappe.throw(_("Only Administrator may run setup"), frappe.PermissionError)
|
||||
|
|
@ -189,6 +189,56 @@ def materialize_after_setup(args):
|
|||
"Jey Wizard materialize",
|
||||
)
|
||||
|
||||
_materialize_amas_employees(company_name)
|
||||
|
||||
|
||||
def _materialize_amas_employees(company_name):
|
||||
"""If the user loaded ƏMAS employees during the wizard, enqueue bulk import now
|
||||
that Company exists. Skipped silently when the cache is empty (i.e. user skipped
|
||||
the AMAS step)."""
|
||||
cache = frappe.get_single("Jey Wizard Etaxes Cache")
|
||||
raw = (cache.amas_selected_employees_json or "").strip()
|
||||
if not raw:
|
||||
return
|
||||
|
||||
try:
|
||||
payload = json.loads(raw)
|
||||
except Exception as exc:
|
||||
frappe.log_error(
|
||||
f"materialize_after_setup: bad amas cache JSON: {exc}\n{traceback.format_exc()}",
|
||||
"Jey Wizard materialize",
|
||||
)
|
||||
return
|
||||
|
||||
employees = payload.get("employees") or []
|
||||
if not employees:
|
||||
return
|
||||
|
||||
create_designation = payload.get("create_designation", 0)
|
||||
|
||||
asan_login = frappe.db.get_value("Asan Login", {"is_default": 1}, "name")
|
||||
if not asan_login:
|
||||
frappe.log_error(
|
||||
"materialize_after_setup: no default Asan Login — cannot import employees",
|
||||
"Jey Wizard materialize",
|
||||
)
|
||||
return
|
||||
|
||||
try:
|
||||
from invoice_az.amas_api import import_bulk_employees
|
||||
|
||||
import_bulk_employees(
|
||||
asan_login_name=asan_login,
|
||||
employees_data=json.dumps(employees, ensure_ascii=False),
|
||||
company=company_name,
|
||||
create_designation=create_designation,
|
||||
)
|
||||
except Exception as exc:
|
||||
frappe.log_error(
|
||||
f"materialize_after_setup: amas import enqueue failed: {exc}\n{traceback.format_exc()}",
|
||||
"Jey Wizard materialize",
|
||||
)
|
||||
|
||||
|
||||
# ---------- internals ----------
|
||||
|
||||
|
|
|
|||
|
|
@ -15,7 +15,9 @@
|
|||
"pos_terminals_json",
|
||||
"bank_accounts_json",
|
||||
"obligation_pacts_json",
|
||||
"presented_certs_json"
|
||||
"presented_certs_json",
|
||||
"amas_section",
|
||||
"amas_selected_employees_json"
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
|
|
@ -88,6 +90,18 @@
|
|||
"label": "Presented Certificates",
|
||||
"options": "JSON",
|
||||
"read_only": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "amas_section",
|
||||
"fieldtype": "Section Break",
|
||||
"label": "ƏMAS"
|
||||
},
|
||||
{
|
||||
"fieldname": "amas_selected_employees_json",
|
||||
"fieldtype": "Code",
|
||||
"label": "Selected ƏMAS Employees",
|
||||
"options": "JSON",
|
||||
"read_only": 1
|
||||
}
|
||||
],
|
||||
"index_web_pages_for_search": 0,
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,124 @@
|
|||
Step {0} of {1},Addım {0} / {1}
|
||||
Language,Dil
|
||||
Wizard & site language,Sihirbaz və sayt dili
|
||||
Asan Imza authentication,Asan İmza ilə giriş
|
||||
Phone number,Telefon nömrəsi
|
||||
e.g. 0501234567,məsələn 0501234567
|
||||
User ID,İstifadəçi ID
|
||||
ASAN ID,ASAN ID
|
||||
Send request to Asan Imza,Asan İmza-ya sorğu göndər
|
||||
Confirm on your phone,Telefonunuzda təsdiqləyin
|
||||
Open the Asan Imza app on your phone and confirm the request.,Telefonunuzda Asan İmza tətbiqini açın və sorğunu təsdiqləyin.
|
||||
Verification code,Təsdiq kodu
|
||||
Waiting for confirmation...,Təsdiq gözlənilir...
|
||||
liquidated,ləğv edilib
|
||||
Select,Seç
|
||||
Select your company,Şirkətinizi seçin
|
||||
Company,Şirkət
|
||||
VÖEN,VÖEN
|
||||
"No legal-entity certificates available on this Asan ID. Use a phone/ID linked to a company.","Bu Asan ID üzrə hüquqi şəxs sertifikatı yoxdur. Şirkətə bağlı telefon/ID istifadə edin."
|
||||
Loading data from tax portal...,Vergi portalından məlumat yüklənir...
|
||||
"Pulling objects, cash registers, POS terminals, bank accounts, obligation pacts and presented certificates. This usually takes 10-30 seconds.","Obyektlər, kassa aparatları, POS terminallar, bank hesabları, öhdəlik razılaşmaları və təqdim edilmiş sertifikatlar yüklənir. Adətən 10–30 saniyə çəkir."
|
||||
Fetching...,Yüklənir...
|
||||
Authenticated & data loaded,"Giriş edildi, məlumat yükləndi"
|
||||
Pulled from the tax portal:,Vergi portalından yükləndi:
|
||||
Objects,Obyektlər
|
||||
Cash registers,Kassa aparatları
|
||||
POS terminals,POS terminallar
|
||||
Bank accounts,Bank hesabları
|
||||
Obligation pacts,Öhdəlik razılaşmaları
|
||||
Presented certificates,Təqdim edilmiş sertifikatlar
|
||||
failed,uğursuz
|
||||
Cached datasets,Keşlənmiş məlumatlar
|
||||
Load employees from ƏMAS,ƏMAS-dan işçiləri yüklə
|
||||
"ƏMAS (e-social.gov.az) stores employment contracts. If your company has employees registered there, we can import them now.","ƏMAS (e-social.gov.az) əmək müqavilələrini saxlayır. Əgər şirkətinizin orada qeydiyyatda olan işçiləri varsa, onları indi idxal edə bilərik."
|
||||
Heads up:,Diqqət:
|
||||
You will receive a second confirmation request on your phone from ASAN Sign / MyGovID. This is separate from the one you just approved for the tax portal.,"Telefonunuza ASAN Sign / MyGovID-dən ikinci təsdiq sorğusu gələcək. Bu, vergi portalı üçün təsdiqlədiyinizdən ayrıdır."
|
||||
This step is optional. Skip it if your company has no employees or is not registered with ƏMAS.,"Bu addım isteğe bağlıdır. Şirkətinizdə işçi yoxdursa və ya ƏMAS-da qeydiyyatda deyilsə, addımı ötürün."
|
||||
Already selected:,Artıq seçilib:
|
||||
employee(s),işçi
|
||||
Change selection,Seçimi dəyiş
|
||||
Load employees,İşçiləri yüklə
|
||||
Skip,Ötür
|
||||
Confirm ƏMAS request on your phone,Telefonunuzda ƏMAS sorğusunu təsdiqləyin
|
||||
A second confirmation request has been sent to your phone. Open ASAN Sign and approve it.,Telefonunuza ikinci təsdiq sorğusu göndərildi. ASAN Sign-ı açın və təsdiqləyin.
|
||||
Retrieving verification code...,Təsdiq kodu alınır...
|
||||
Connecting to ƏMAS...,ƏMAS-a qoşulur...
|
||||
Establishing session...,Sessiya qurulur...
|
||||
Select organization,Təşkilatı seçin
|
||||
"We could not auto-match by VÖEN. Pick the organization you want to import employees from.","VÖEN üzrə avtomatik uyğunlaşdırmaq mümkün olmadı. İşçiləri idxal etmək istədiyiniz təşkilatı seçin."
|
||||
Organization,Təşkilat
|
||||
Role,Rol
|
||||
Loading employees...,İşçilər yüklənir...
|
||||
Fetching from ƏMAS...,ƏMAS-dan yüklənir...
|
||||
Select employees from ƏMAS,ƏMAS-dan işçiləri seçin
|
||||
Organization:,Təşkilat:
|
||||
Employees found:,Tapılan işçilər:
|
||||
new,yeni
|
||||
already in system,artıq sistemdə
|
||||
Create Designation if not found,Vəzifə tapılmazsa yaradılsın
|
||||
Full Name,Tam ad
|
||||
FIN,FIN
|
||||
Position,Vəzifə
|
||||
Salary,Maaş
|
||||
Status,Status
|
||||
In System,Sistemdə
|
||||
Employees selected,İşçilər seçildi
|
||||
"Selected {0} employee(s). They will be imported into ƏMAS Employees and the standard Employee doctype after the wizard finishes.","Seçilən işçi: {0}. Sihirbaz tamamlandıqdan sonra ƏMAS Employees və standart Employee doctype-ə idxal ediləcək."
|
||||
Company name,Şirkət adı
|
||||
VÖEN {0} (from Asan),VÖEN {0} (Asan-dan)
|
||||
Fiscal Year,Maliyyə ili
|
||||
Start date,Başlama tarixi
|
||||
End date,Bitmə tarixi
|
||||
"Default: current calendar year (Jan 1 – Dec 31).","Standart: cari təqvim ili (1 yanvar — 31 dekabr)."
|
||||
Confirm,Təsdiq
|
||||
Skipped,Ötürüldü
|
||||
{0} selected,Seçildi: {0}
|
||||
None,Yoxdur
|
||||
ƏMAS employees,ƏMAS işçiləri
|
||||
Country,Ölkə
|
||||
Currency,Valyuta
|
||||
Timezone,Saat qurşağı
|
||||
Chart of Accounts,Hesablar Planı
|
||||
hardcoded,standart olaraq
|
||||
Back,Geri
|
||||
Next,İrəli
|
||||
Finish,Tamamla
|
||||
Company name is required,Şirkət adı tələb olunur
|
||||
Fiscal year start and end dates are required,Maliyyə ilinin başlama və bitmə tarixləri tələb olunur
|
||||
Fiscal year end date must be after the start date,Maliyyə ilinin bitmə tarixi başlama tarixindən sonra olmalıdır
|
||||
Skipping...,Ötürülür...
|
||||
Finish Asan Imza authentication first.,Əvvəlcə Asan İmza girişini tamamlayın.
|
||||
MyGovID authentication failed.,MyGovID girişi uğursuz oldu.
|
||||
MyGovID request timed out.,MyGovID sorğusu vaxtı bitdi.
|
||||
Failed to connect to ƏMAS.,ƏMAS-a qoşulmaq alınmadı.
|
||||
No organizations found in ƏMAS for this account.,Bu hesab üçün ƏMAS-da təşkilat tapılmadı.
|
||||
Failed to select organization.,Təşkilatı seçmək alınmadı.
|
||||
Failed to fetch employees.,İşçiləri yükləmək alınmadı.
|
||||
No employees found in ƏMAS for this organization.,Bu təşkilat üçün ƏMAS-da işçi tapılmadı.
|
||||
"Select at least one employee, or go back and skip this step.","Ən azı bir işçi seçin və ya geri qayıdıb bu addımı ötürün."
|
||||
Failed to cache selection.,Seçimi yadda saxlamaq alınmadı.
|
||||
Saving selection...,Seçim saxlanılır...
|
||||
Loading translations...,Tərcümələr yüklənir...
|
||||
Preparing...,Hazırlanır...
|
||||
Failed to create Asan Login record,Asan Login yazısını yaratmaq alınmadı
|
||||
Phone and User ID are required,Telefon nömrəsi və User ID tələb olunur
|
||||
Sending request to Asan Imza...,Asan İmza-ya sorğu göndərilir...
|
||||
Failed to start authentication,Girişə başlamaq alınmadı
|
||||
Timeout — confirmation not received within ~100 seconds.,Vaxt bitdi — təsdiq ~100 saniyə ərzində alınmadı.
|
||||
Try again,Yenidən cəhd edin
|
||||
Loading certificates...,Sertifikatlar yüklənir...
|
||||
Failed to load certificates,Sertifikatları yükləmək alınmadı
|
||||
Selecting certificate...,Sertifikat seçilir...
|
||||
Failed to select certificate,Sertifikatı seçmək alınmadı
|
||||
Choosing taxpayer & getting main token...,Vergi ödəyicisi seçilir və əsas token alınır...
|
||||
Failed to choose taxpayer,Vergi ödəyicisini seçmək alınmadı
|
||||
fetch call failed — see server logs,Yükləmə sorğusu uğursuz oldu — server loglarına baxın
|
||||
Setting up your system. This can take a minute...,Sisteminiz qurulur. Bu bir dəqiqə çəkə bilər...
|
||||
Setup complete! Redirecting...,Quraşdırma tamamlandı! Yönləndirilir...
|
||||
"Setup is running in background mode, not supported by skeleton","Quraşdırma fon rejimində işləyir — bu sihirbaz tərəfindən dəstəklənmir"
|
||||
Setup returned unexpected response,Quraşdırma gözlənilməz cavab qaytardı
|
||||
Setup failed,Quraşdırma uğursuz oldu
|
||||
(check server logs),(server loglarına baxın)
|
||||
(no details),(təfərrüat yoxdur)
|
||||
Retry,Təkrar cəhd
|
||||
|
|
|
@ -0,0 +1,124 @@
|
|||
Step {0} of {1},Шаг {0} из {1}
|
||||
Language,Язык
|
||||
Wizard & site language,Язык мастера и сайта
|
||||
Asan Imza authentication,Аутентификация Asan İmza
|
||||
Phone number,Номер телефона
|
||||
e.g. 0501234567,например 0501234567
|
||||
User ID,User ID
|
||||
ASAN ID,ASAN ID
|
||||
Send request to Asan Imza,Отправить запрос в Asan İmza
|
||||
Confirm on your phone,Подтвердите на телефоне
|
||||
Open the Asan Imza app on your phone and confirm the request.,Откройте приложение Asan İmza на телефоне и подтвердите запрос.
|
||||
Verification code,Код подтверждения
|
||||
Waiting for confirmation...,Ожидание подтверждения...
|
||||
liquidated,ликвидировано
|
||||
Select,Выбрать
|
||||
Select your company,Выберите компанию
|
||||
Company,Компания
|
||||
VÖEN,ВÖЕН
|
||||
"No legal-entity certificates available on this Asan ID. Use a phone/ID linked to a company.","На этом Asan ID нет сертификатов юр. лиц. Используйте телефон/ID привязанный к компании."
|
||||
Loading data from tax portal...,Загрузка данных с налогового портала...
|
||||
"Pulling objects, cash registers, POS terminals, bank accounts, obligation pacts and presented certificates. This usually takes 10-30 seconds.","Загружаем объекты, кассовые аппараты, POS-терминалы, банковские счета, договоры и представленные сертификаты. Обычно занимает 10–30 секунд."
|
||||
Fetching...,Загрузка...
|
||||
Authenticated & data loaded,"Аутентификация пройдена, данные загружены"
|
||||
Pulled from the tax portal:,Загружено с налогового портала:
|
||||
Objects,Объекты
|
||||
Cash registers,Кассовые аппараты
|
||||
POS terminals,POS-терминалы
|
||||
Bank accounts,Банковские счета
|
||||
Obligation pacts,Договоры-обязательства
|
||||
Presented certificates,Представленные сертификаты
|
||||
failed,ошибка
|
||||
Cached datasets,Закэшированные данные
|
||||
Load employees from ƏMAS,Загрузить сотрудников из ƏMAS
|
||||
"ƏMAS (e-social.gov.az) stores employment contracts. If your company has employees registered there, we can import them now.","ƏMAS (e-social.gov.az) хранит трудовые договоры. Если у вас есть зарегистрированные там сотрудники, мы можем их импортировать."
|
||||
Heads up:,Внимание:
|
||||
You will receive a second confirmation request on your phone from ASAN Sign / MyGovID. This is separate from the one you just approved for the tax portal.,"На ваш телефон придёт ещё один запрос от ASAN Sign / MyGovID — отдельно от того, что вы только что подтвердили для налогового портала."
|
||||
This step is optional. Skip it if your company has no employees or is not registered with ƏMAS.,"Этот шаг необязателен. Пропустите, если у вашей компании нет сотрудников или она не зарегистрирована в ƏMAS."
|
||||
Already selected:,Уже выбрано:
|
||||
employee(s),сотрудник(ов)
|
||||
Change selection,Изменить выбор
|
||||
Load employees,Загрузить сотрудников
|
||||
Skip,Пропустить
|
||||
Confirm ƏMAS request on your phone,Подтвердите запрос ƏMAS на телефоне
|
||||
A second confirmation request has been sent to your phone. Open ASAN Sign and approve it.,На ваш телефон отправлен второй запрос подтверждения. Откройте ASAN Sign и подтвердите его.
|
||||
Retrieving verification code...,Получение кода подтверждения...
|
||||
Connecting to ƏMAS...,Подключение к ƏMAS...
|
||||
Establishing session...,Установка сессии...
|
||||
Select organization,Выберите организацию
|
||||
"We could not auto-match by VÖEN. Pick the organization you want to import employees from.","Не удалось сопоставить по ВÖЕН. Выберите организацию, из которой импортировать сотрудников."
|
||||
Organization,Организация
|
||||
Role,Роль
|
||||
Loading employees...,Загрузка сотрудников...
|
||||
Fetching from ƏMAS...,Получение данных из ƏMAS...
|
||||
Select employees from ƏMAS,Выберите сотрудников из ƏMAS
|
||||
Organization:,Организация:
|
||||
Employees found:,Найдено сотрудников:
|
||||
new,новых
|
||||
already in system,уже в системе
|
||||
Create Designation if not found,Создавать должность если не найдена
|
||||
Full Name,ФИО
|
||||
FIN,ФИН
|
||||
Position,Должность
|
||||
Salary,Зарплата
|
||||
Status,Статус
|
||||
In System,В системе
|
||||
Employees selected,Сотрудники выбраны
|
||||
"Selected {0} employee(s). They will be imported into ƏMAS Employees and the standard Employee doctype after the wizard finishes.","Выбрано сотрудников: {0}. Они будут импортированы в ƏMAS Employees и стандартный Employee после завершения мастера."
|
||||
Company name,Название компании
|
||||
VÖEN {0} (from Asan),ВÖЕН {0} (из Asan)
|
||||
Fiscal Year,Финансовый год
|
||||
Start date,Дата начала
|
||||
End date,Дата окончания
|
||||
"Default: current calendar year (Jan 1 – Dec 31).","По умолчанию: текущий календарный год (1 января — 31 декабря)."
|
||||
Confirm,Подтверждение
|
||||
Skipped,Пропущено
|
||||
{0} selected,Выбрано: {0}
|
||||
None,Нет
|
||||
ƏMAS employees,Сотрудники ƏMAS
|
||||
Country,Страна
|
||||
Currency,Валюта
|
||||
Timezone,Часовой пояс
|
||||
Chart of Accounts,План счетов
|
||||
hardcoded,задано по умолчанию
|
||||
Back,Назад
|
||||
Next,Далее
|
||||
Finish,Завершить
|
||||
Company name is required,Название компании обязательно
|
||||
Fiscal year start and end dates are required,Даты начала и конца финансового года обязательны
|
||||
Fiscal year end date must be after the start date,Дата окончания финансового года должна быть позже даты начала
|
||||
Skipping...,Пропуск...
|
||||
Finish Asan Imza authentication first.,Сначала завершите аутентификацию Asan İmza.
|
||||
MyGovID authentication failed.,Ошибка аутентификации MyGovID.
|
||||
MyGovID request timed out.,Таймаут запроса MyGovID.
|
||||
Failed to connect to ƏMAS.,Не удалось подключиться к ƏMAS.
|
||||
No organizations found in ƏMAS for this account.,Для этого аккаунта в ƏMAS не найдено организаций.
|
||||
Failed to select organization.,Не удалось выбрать организацию.
|
||||
Failed to fetch employees.,Не удалось загрузить сотрудников.
|
||||
No employees found in ƏMAS for this organization.,В этой организации в ƏMAS сотрудников не найдено.
|
||||
"Select at least one employee, or go back and skip this step.","Выберите хотя бы одного сотрудника или вернитесь и пропустите этот шаг."
|
||||
Failed to cache selection.,Не удалось сохранить выбор.
|
||||
Saving selection...,Сохранение выбора...
|
||||
Loading translations...,Загрузка переводов...
|
||||
Preparing...,Подготовка...
|
||||
Failed to create Asan Login record,Не удалось создать запись Asan Login
|
||||
Phone and User ID are required,Номер телефона и User ID обязательны
|
||||
Sending request to Asan Imza...,Отправка запроса в Asan İmza...
|
||||
Failed to start authentication,Не удалось начать аутентификацию
|
||||
Timeout — confirmation not received within ~100 seconds.,Таймаут — подтверждение не получено за ~100 секунд.
|
||||
Try again,Попробовать снова
|
||||
Loading certificates...,Загрузка сертификатов...
|
||||
Failed to load certificates,Не удалось загрузить сертификаты
|
||||
Selecting certificate...,Выбор сертификата...
|
||||
Failed to select certificate,Не удалось выбрать сертификат
|
||||
Choosing taxpayer & getting main token...,Выбор налогоплательщика и получение основного токена...
|
||||
Failed to choose taxpayer,Не удалось выбрать налогоплательщика
|
||||
fetch call failed — see server logs,Запрос загрузки не удался — смотрите логи сервера
|
||||
Setting up your system. This can take a minute...,Настройка системы. Это может занять минуту...
|
||||
Setup complete! Redirecting...,Настройка завершена! Перенаправление...
|
||||
"Setup is running in background mode, not supported by skeleton","Настройка выполняется в фоновом режиме — не поддерживается этим мастером"
|
||||
Setup returned unexpected response,Получен неожиданный ответ от сетапа
|
||||
Setup failed,Ошибка настройки
|
||||
(check server logs),(смотрите логи сервера)
|
||||
(no details),(нет деталей)
|
||||
Retry,Повторить
|
||||
|
Loading…
Reference in New Issue