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",
|
"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 ----------
|
# ---------- internals ----------
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,9 @@
|
||||||
"pos_terminals_json",
|
"pos_terminals_json",
|
||||||
"bank_accounts_json",
|
"bank_accounts_json",
|
||||||
"obligation_pacts_json",
|
"obligation_pacts_json",
|
||||||
"presented_certs_json"
|
"presented_certs_json",
|
||||||
|
"amas_section",
|
||||||
|
"amas_selected_employees_json"
|
||||||
],
|
],
|
||||||
"fields": [
|
"fields": [
|
||||||
{
|
{
|
||||||
|
|
@ -88,6 +90,18 @@
|
||||||
"label": "Presented Certificates",
|
"label": "Presented Certificates",
|
||||||
"options": "JSON",
|
"options": "JSON",
|
||||||
"read_only": 1
|
"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,
|
"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