fix(e-taxes): stop Loading Data spinner sticking over progress bar; surface list load buttons; client + send_sales_api updates; az locale

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Ali 2026-06-10 17:52:03 +00:00
parent cc3621dc8b
commit 9b6b746793
12 changed files with 184 additions and 129 deletions

View File

@ -19,7 +19,11 @@ frappe.listview_settings['E-Taxes Customers'] = {
check_and_process_token_customers(function() { check_and_process_token_customers(function() {
show_invoice_filter_dialog_customers(); show_invoice_filter_dialog_customers();
}); });
}); }, __('E-Taxes'));
listview.page.add_inner_button(__('Open Settings'), function() {
frappe.set_route('Form', 'E-Taxes Settings');
}, __('E-Taxes'));
} }
}; };
@ -819,13 +823,14 @@ function process_invoices_for_customers_with_progress(invoices, token, processed
if (currentIndex >= invoices.length) { if (currentIndex >= invoices.length) {
cleanup_customers_loading_state(); cleanup_customers_loading_state();
// Показываем итоговый результат // Показываем итоговый результат через тост (не msgprint): frappe.show_progress
frappe.msgprint({ // и frappe.msgprint — два пересекающихся Bootstrap-модала; показ msgprint сразу
title: __('Customers Loaded Successfully'), // после hide_progress оставляет висящий .modal-backdrop и блокирует страницу.
indicator: 'green', frappe.show_alert({
message: __('Created {0} customers and {1} suppliers. Total invoices processed: {2}', message: __('Created {0} customers and {1} suppliers. Total invoices processed: {2}',
[processedCount, 0, invoices.length]) // suppliers считается на сервере [processedCount, 0, invoices.length]), // suppliers считается на сервере
}); indicator: 'green'
}, 10);
// ИСПРАВЛЕНО: Обновляем список с задержкой для уверенности в очистке состояния // ИСПРАВЛЕНО: Обновляем список с задержкой для уверенности в очистке состояния
setTimeout(function() { setTimeout(function() {

View File

@ -18,7 +18,11 @@ frappe.listview_settings['E-Taxes Item'] = {
check_and_process_token_items(function() { check_and_process_token_items(function() {
show_items_filter_dialog(); show_items_filter_dialog();
}); });
}); }, __('E-Taxes'));
listview.page.add_inner_button(__('Open Settings'), function() {
frappe.set_route('Form', 'E-Taxes Settings');
}, __('E-Taxes'));
} }
}; };
@ -860,11 +864,13 @@ function process_invoices_for_items(invoices, token, accumulated_data, current_i
message += __(' Updated {0} existing items with new source information.', [accumulated_data.updated_count]); message += __(' Updated {0} existing items with new source information.', [accumulated_data.updated_count]);
} }
frappe.msgprint({ // Показываем итоговый результат через тост (не msgprint): frappe.show_progress
title: __('Items Loaded Successfully'), // и frappe.msgprint — два пересекающихся Bootstrap-модала; показ msgprint сразу
indicator: 'green', // после hide_progress оставляет висящий .modal-backdrop и блокирует страницу.
message: message frappe.show_alert({
}); message: message,
indicator: 'green'
}, 10);
// ИСПРАВЛЕНО: Refresh list с задержкой для уверенности в очистке состояния // ИСПРАВЛЕНО: Refresh list с задержкой для уверенности в очистке состояния
setTimeout(function() { setTimeout(function() {

View File

@ -19,7 +19,11 @@ frappe.listview_settings['E-Taxes Suppliers'] = {
check_and_process_token_suppliers(function() { check_and_process_token_suppliers(function() {
show_invoice_filter_dialog_suppliers(); show_invoice_filter_dialog_suppliers();
}); });
}); }, __('E-Taxes'));
listview.page.add_inner_button(__('Open Settings'), function() {
frappe.set_route('Form', 'E-Taxes Settings');
}, __('E-Taxes'));
} }
}; };
@ -819,13 +823,14 @@ function process_invoices_for_suppliers_with_progress(invoices, token, processed
if (currentIndex >= invoices.length) { if (currentIndex >= invoices.length) {
cleanup_suppliers_loading_state(); cleanup_suppliers_loading_state();
// Показываем итоговый результат // Показываем итоговый результат через тост (не msgprint): frappe.show_progress
frappe.msgprint({ // и frappe.msgprint — два пересекающихся Bootstrap-модала; показ msgprint сразу
title: __('Suppliers Loaded Successfully'), // после hide_progress оставляет висящий .modal-backdrop и блокирует страницу.
indicator: 'green', frappe.show_alert({
message: __('Created {0} suppliers and {1} customers. Total invoices processed: {2}', message: __('Created {0} suppliers and {1} customers. Total invoices processed: {2}',
[processedCount, 0, invoices.length]) // customers считается на сервере [processedCount, 0, invoices.length]), // customers считается на сервере
}); indicator: 'green'
}, 10);
// ИСПРАВЛЕНО: Обновляем список с задержкой для уверенности в очистке состояния // ИСПРАВЛЕНО: Обновляем список с задержкой для уверенности в очистке состояния
setTimeout(function() { setTimeout(function() {

View File

@ -18,7 +18,11 @@ frappe.listview_settings['E-Taxes Unit'] = {
check_and_process_token_units(function() { check_and_process_token_units(function() {
show_units_filter_dialog(); show_units_filter_dialog();
}); });
}); }, __('E-Taxes'));
listview.page.add_inner_button(__('Open Settings'), function() {
frappe.set_route('Form', 'E-Taxes Settings');
}, __('E-Taxes'));
} }
}; };
@ -797,13 +801,15 @@ function process_invoices_for_units(invoices, token, accumulated_data, current_i
const outboxText = accumulated_data.outbox_count ? const outboxText = accumulated_data.outbox_count ?
__(' and {0} sales invoices', [accumulated_data.outbox_count]) : ''; __(' and {0} sales invoices', [accumulated_data.outbox_count]) : '';
frappe.msgprint({ // Показываем итоговый результат через тост (не msgprint): frappe.show_progress
title: __('Units Loaded Successfully'), // и frappe.msgprint — два пересекающихся Bootstrap-модала; показ msgprint сразу
indicator: 'green', // после hide_progress оставляет висящий .modal-backdrop и блокирует страницу.
frappe.show_alert({
message: __('Created {0} unique units. Skipped {1} duplicates. Total invoices processed: {2}{3}{4}', message: __('Created {0} unique units. Skipped {1} duplicates. Total invoices processed: {2}{3}{4}',
[accumulated_data.created_count, accumulated_data.skipped_count, [accumulated_data.created_count, accumulated_data.skipped_count,
accumulated_data.total_invoices, inboxText, outboxText]) accumulated_data.total_invoices, inboxText, outboxText]),
}); indicator: 'green'
}, 10);
// Refresh list // Refresh list
if (cur_list) { if (cur_list) {

View File

@ -1516,7 +1516,11 @@ frappe.listview_settings['Journal Entry'] = {
onload: function(listview) { onload: function(listview) {
listview.page.add_inner_button(__('Import VAT Operations from E-Taxes'), function() { listview.page.add_inner_button(__('Import VAT Operations from E-Taxes'), function() {
VATETaxes.import.showDialog(); VATETaxes.import.showDialog();
}); }, __('E-Taxes'));
listview.page.add_inner_button(__('Open Settings'), function() {
frappe.set_route('Form', 'E-Taxes Settings');
}, __('E-Taxes'));
listview.refresh(); listview.refresh();
} }

View File

@ -756,11 +756,15 @@ function add_purchase_act_buttons(frm) {
return; return;
} }
// Status: Created, not signed - show sign button // Status: Created, not signed
if (frm.doc.etaxes_purchase_send_status === 'Created, not signed') { if (frm.doc.etaxes_purchase_send_status === 'Created, not signed') {
frm.add_custom_button(__('Sign Act with ASAN Imza'), function() { // TEMPORARILY DISABLED: signing uses the SALES endpoint
sign_purchase_act(frm); // (/invoice/sign/withAsanImza), which is wrong for purchase acts.
}, __('E-Taxes Purchase Act')); // Acts require a different endpoint and payload. Keep act as draft
// only until the correct act-signing endpoint is implemented.
// frm.add_custom_button(__('Sign Act with ASAN Imza'), function() {
// sign_purchase_act(frm);
// }, __('E-Taxes Purchase Act'));
frm.add_custom_button(__('Cancel Act on E-Taxes'), function() { frm.add_custom_button(__('Cancel Act on E-Taxes'), function() {
cancel_act_on_etaxes(frm); cancel_act_on_etaxes(frm);

View File

@ -1549,7 +1549,11 @@ frappe.listview_settings['Purchase Order'] = {
onload: function(listview) { onload: function(listview) {
listview.page.add_inner_button(__('Import from E-Taxes'), function() { listview.page.add_inner_button(__('Import from E-Taxes'), function() {
ETaxes.import.showDialog(); ETaxes.import.showDialog();
}); }, __('E-Taxes'));
listview.page.add_inner_button(__('Open Settings'), function() {
frappe.set_route('Form', 'E-Taxes Settings');
}, __('E-Taxes'));
listview.columns.push({ listview.columns.push({
type: 'Check', type: 'Check',

View File

@ -1584,10 +1584,11 @@ function add_etaxes_buttons(frm) {
if (frm.doc.etaxes_send_status === 'Created, not signed') { if (frm.doc.etaxes_send_status === 'Created, not signed') {
frm.page.set_indicator(__('Draft Created'), 'orange'); frm.page.set_indicator(__('Draft Created'), 'orange');
// TEMPORARILY DISABLED: keep document as draft only for now.
// Add button to sign document // Add button to sign document
frm.add_custom_button(__('Sign Document'), function() { // frm.add_custom_button(__('Sign Document'), function() {
sign_document(frm); // sign_document(frm);
}, __('E-Taxes')); // }, __('E-Taxes'));
// Add button to view details // Add button to view details
frm.add_custom_button(__('View Details'), function() { frm.add_custom_button(__('View Details'), function() {

View File

@ -1602,7 +1602,11 @@ frappe.listview_settings['Sales Order'] = {
// ДОБАВЛЕНО: кнопка импорта из E-Taxes для Sales Order // ДОБАВЛЕНО: кнопка импорта из E-Taxes для Sales Order
listview.page.add_inner_button(__('Import from E-Taxes'), function() { listview.page.add_inner_button(__('Import from E-Taxes'), function() {
SalesETaxes.import.showDialog(); SalesETaxes.import.showDialog();
}); }, __('E-Taxes'));
listview.page.add_inner_button(__('Open Settings'), function() {
frappe.set_route('Form', 'E-Taxes Settings');
}, __('E-Taxes'));
listview.columns.push({ listview.columns.push({
type: 'Check', type: 'Check',

View File

@ -988,6 +988,11 @@ function process_invoices_for_reference_data(invoices, token, accumulated_data,
if (current_index === 0) { if (current_index === 0) {
window.cancelReferenceLoading = false; window.cancelReferenceLoading = false;
// Спиннер "Loading Data" (фаза вытягивания инвойсов) больше не нужен — убираем
// его принудительно ровно в момент появления прогресс-бара, иначе он залипает
// поверх и бесконечно крутится (Bootstrap не всегда доигрывает fade-анимацию).
hide_loading_dialog_settings();
// Показываем прогресс-бар для обработки инвойсов // Показываем прогресс-бар для обработки инвойсов
frappe.show_progress(__('Processing Reference Data'), 0, invoices.length, frappe.show_progress(__('Processing Reference Data'), 0, invoices.length,
__('Processing {0} invoices...', [invoices.length]), null, true); __('Processing {0} invoices...', [invoices.length]), null, true);
@ -1988,11 +1993,21 @@ function hide_loading_dialog_settings() {
if (loading_dialog_settings) { if (loading_dialog_settings) {
try { try {
loading_dialog_settings.hide(); loading_dialog_settings.hide();
// Принудительно сносим DOM модалки: если Bootstrap не доиграл fade
// (фоновая вкладка, прерванный transitionend), .hide() оставляет окно
// висеть — спиннер «крутится» поверх прогресс-бара.
if (loading_dialog_settings.$wrapper) {
loading_dialog_settings.$wrapper.remove();
}
} catch (e) { } catch (e) {
console.error('Error hiding loading dialog:', e); console.error('Error hiding loading dialog:', e);
} }
loading_dialog_settings = null; loading_dialog_settings = null;
} }
// Подчищаем залипшую подложку. Безопасно: вызывается до frappe.show_progress,
// который вешает свою backdrop заново.
$('.modal-backdrop').remove();
$('body').removeClass('modal-open').css('padding-right', '');
} }
function poll_authentication_status_settings(asan_login_name, bearer_token, callback) { function poll_authentication_status_settings(asan_login_name, bearer_token, callback) {
@ -2318,7 +2333,8 @@ function check_loading_completion(loading_state, frm) {
indicator: 'green' indicator: 'green'
}, 3); // Показываем на 3 секунды }, 3); // Показываем на 3 секунды
// Небольшая задержка и начинаем обработку // Небольшая задержка и начинаем обработку (прогресс-бар появляется быстро,
// спиннер "Loading Data" к этому моменту уже снят).
setTimeout(() => { setTimeout(() => {
process_invoices_for_reference_data(loading_state.all_invoices, loading_state.token, { process_invoices_for_reference_data(loading_state.all_invoices, loading_state.token, {
items_created: 0, items_created: 0,
@ -2336,6 +2352,6 @@ function check_loading_completion(loading_state, frm) {
load_customers: loading_state.load_customers, load_customers: loading_state.load_customers,
load_suppliers: loading_state.load_suppliers load_suppliers: loading_state.load_suppliers
}); });
}, 2000); }, 400);
} }
} }

View File

@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: Invoice Az VERSION\n" "Project-Id-Version: Invoice Az VERSION\n"
"Report-Msgid-Bugs-To: info@jeyerp.az\n" "Report-Msgid-Bugs-To: info@jeyerp.az\n"
"POT-Creation-Date: 2026-04-24 18:12+0000\n" "POT-Creation-Date: 2026-04-24 18:12+0000\n"
"PO-Revision-Date: 2026-04-24 18:12+0000\n" "PO-Revision-Date: 2026-05-25 02:44+0000\n"
"Last-Translator: <jeyerp@jeycloud.az>\n" "Last-Translator: <jeyerp@jeycloud.az>\n"
"Language-Team: Azerbaijani\n" "Language-Team: Azerbaijani\n"
"Language: az\n" "Language: az\n"
@ -17,6 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
"Generated-By: Babel 2.16.0\n" "Generated-By: Babel 2.16.0\n"
"X-Generator: Poedit 3.4.2\n"
#. AI-generated #. AI-generated
#: invoice_az/client/e_taxes_items_list.js:860 #: invoice_az/client/e_taxes_items_list.js:860
@ -177,8 +178,8 @@ msgid ""
"action is irreversible. Are you sure?</p>" "action is irreversible. Are you sure?</p>"
msgstr "" msgstr ""
"<div style=\"color: red; font-weight: bold;\">XƏBƏRDARLIQ! Bu əməliyyat " "<div style=\"color: red; font-weight: bold;\">XƏBƏRDARLIQ! Bu əməliyyat "
"bütün uyğunlaşdırılmamış elementlər üçün sistemdə yeni müştərilər " "bütün uyğunlaşdırılmamış elementlər üçün sistemdə yeni müştərilər yaradacaq!"
"yaradacaq!</div><p>Bu əməliyyat geri qaytarıla bilməz. Əminsiniz?</p>" "</div><p>Bu əməliyyat geri qaytarıla bilməz. Əminsiniz?</p>"
#. AI-generated #. AI-generated
#: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:122 #: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:122
@ -188,8 +189,8 @@ msgid ""
"action is irreversible. Are you sure?</p>" "action is irreversible. Are you sure?</p>"
msgstr "" msgstr ""
"<div style=\"color: red; font-weight: bold;\">XƏBƏRDARLIQ! Bu əməliyyat " "<div style=\"color: red; font-weight: bold;\">XƏBƏRDARLIQ! Bu əməliyyat "
"bütün xəritələnməmiş elementlər üçün sistemdə yeni maddələr " "bütün xəritələnməmiş elementlər üçün sistemdə yeni maddələr yaradacaq!</"
"yaradacaq!</div><p>Bu əməliyyat geri qaytarıla bilməz. Əminsiniz?</p>" "div><p>Bu əməliyyat geri qaytarıla bilməz. Əminsiniz?</p>"
#. AI-generated #. AI-generated
#: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:534 #: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:534
@ -228,8 +229,8 @@ msgstr ""
#. AI-generated #. AI-generated
#: invoice_az/client/sales_invoice.js:1631 #: invoice_az/client/sales_invoice.js:1631
msgid "" msgid ""
"<strong>Warning:</strong> This will permanently remove the invoice from " "<strong>Warning:</strong> This will permanently remove the invoice from E-"
"E-Taxes system." "Taxes system."
msgstr "" msgstr ""
"<strong>Xəbərdarlıq:</strong> Bu, qaiməni E-Taxes sistemindən həmişəlik " "<strong>Xəbərdarlıq:</strong> Bu, qaiməni E-Taxes sistemindən həmişəlik "
"siləcək." "siləcək."
@ -373,22 +374,22 @@ msgstr "Fəaliyyət Adı Təfərrüatı"
#. AI-generated #. AI-generated
#: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:383 #: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:383
msgid "Add unmapped customers" msgid "Add unmapped customers"
msgstr "Xəritələnməmiş müştəriləri əlavə et" msgstr "Uyğunlaşdırılmamış müştəriləri əlavə et"
#. AI-generated #. AI-generated
#: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:152 #: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:152
msgid "Add unmapped items" msgid "Add unmapped items"
msgstr "Xəritələnməmiş elementləri əlavə et" msgstr "Uyğunlaşdırılmamış elementləri əlavə et"
#. AI-generated #. AI-generated
#: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:564 #: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:564
msgid "Add unmapped suppliers" msgid "Add unmapped suppliers"
msgstr "Xəritələnməmiş təchizatçıları əlavə edin" msgstr "Uyğunlaşdırılmamış təchizatçıları əlavə edin"
#. AI-generated #. AI-generated
#: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:739 #: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:739
msgid "Add unmapped units" msgid "Add unmapped units"
msgstr "Xəritələnməmiş vahidləri əlavə et" msgstr "Uyğunlaşdırılmamış vahidləri əlavə et"
#. AI-generated #. AI-generated
#: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:431 #: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:431
@ -398,7 +399,7 @@ msgstr "{0} uyğunlaşdırılmamış müştəri əlavə edildi"
#. AI-generated #. AI-generated
#: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:243 #: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:243
msgid "Added {0} unmapped items" msgid "Added {0} unmapped items"
msgstr "{0} xəritələnməmiş element əlavə edildi" msgstr "{0} uyğunlaşdırılmamış element əlavə edildi"
#. AI-generated #. AI-generated
#: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:609 #: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:609
@ -549,24 +550,24 @@ msgstr "Tətbiq et"
msgid "" msgid ""
"Are you really sure you want to create new UOM units? This cannot be undone." "Are you really sure you want to create new UOM units? This cannot be undone."
msgstr "" msgstr ""
"Yeni UOM vahidləri yaratmaq istədiyinizə əminsiniz? Bu əməliyyat geri " "Yeni ölçü vahidləri yaratmaq istədiyinizdən əminsiniz? Bu əməliyyatı geri "
"qaytarıla bilməz." "almaq mümkün deyil."
#. AI-generated #. AI-generated
#: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:356 #: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:356
msgid "" msgid ""
"Are you really sure you want to create new customers? This cannot be undone." "Are you really sure you want to create new customers? This cannot be undone."
msgstr "" msgstr ""
"Yeni müştərilər yaratmaq istədiyinizə əminsiniz? Bu əməliyyat geri qaytarıla" "Yeni müştərilər yaratmaq istədiyinizə əminsiniz? Bu əməliyyat geri "
" bilməz." "qaytarıla bilməz."
#. AI-generated #. AI-generated
#: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:125 #: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:125
msgid "" msgid ""
"Are you really sure you want to create new items? This cannot be undone." "Are you really sure you want to create new items? This cannot be undone."
msgstr "" msgstr ""
"Yeni elementlər yaratmaq istədiyinizə əminsiniz? Bu əməliyyat geri qaytarıla" "Yeni elementlər yaratmaq istədiyinizə əminsiniz? Bu əməliyyat geri "
" bilməz." "qaytarıla bilməz."
#. AI-generated #. AI-generated
#: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:537 #: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:537
@ -606,12 +607,12 @@ msgstr "Asan Login"
#. AI-generated #. AI-generated
#: invoice_az/invoice_az/doctype/asan_login/asan_login.json #: invoice_az/invoice_az/doctype/asan_login/asan_login.json
msgid "Auth Status" msgid "Auth Status"
msgstr "Autentifikasiya Statusu" msgstr "Təsdiqlənmə Statusu"
#. AI-generated #. AI-generated
#: invoice_az/invoice_az/doctype/asan_login/asan_login.js:559 #: invoice_az/invoice_az/doctype/asan_login/asan_login.js:559
msgid "Authenticate" msgid "Authenticate"
msgstr "Doğrulama" msgstr "Təsdiqlənmə"
#. Option for the 'Auth Status' (Select) field in DocType 'Asan Login' #. Option for the 'Auth Status' (Select) field in DocType 'Asan Login'
#. AI-generated #. AI-generated
@ -624,7 +625,7 @@ msgstr "Təsdiqlənmiş"
#. AI-generated #. AI-generated
#: invoice_az/invoice_az/doctype/asan_login/asan_login.json #: invoice_az/invoice_az/doctype/asan_login/asan_login.json
msgid "Authentication" msgid "Authentication"
msgstr "Autentifikasiya" msgstr "Kimlik təsdiqi"
#. AI-generated #. AI-generated
#: invoice_az/client/company.js:464 #: invoice_az/client/company.js:464
@ -644,7 +645,7 @@ msgstr "Autentifikasiya"
#: invoice_az/client/supplier.js:473 #: invoice_az/client/supplier.js:473
#: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:2120 #: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:2120
msgid "Authentication Complete" msgid "Authentication Complete"
msgstr "Autentifikasiya Tamamlandı" msgstr "Kimlik təsdiq Tamamlandı"
#. AI-generated #. AI-generated
#: invoice_az/client/company.js:304 invoice_az/client/company.js:367 #: invoice_az/client/company.js:304 invoice_az/client/company.js:367
@ -674,7 +675,7 @@ msgstr "Autentifikasiya Tamamlandı"
#: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:1881 #: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:1881
#: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:2051 #: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:2051
msgid "Authentication Error" msgid "Authentication Error"
msgstr "Autentifikasiya xətası" msgstr "Kimlik təsdiq xətası"
#. AI-generated #. AI-generated
#: invoice_az/client/company.js:297 #: invoice_az/client/company.js:297
@ -701,7 +702,7 @@ msgstr "Kimlik Doğrulaması Tələb Olunur"
#: invoice_az/invoice_az/doctype/asan_login/asan_login.js:225 #: invoice_az/invoice_az/doctype/asan_login/asan_login.js:225
#: invoice_az/invoice_az/doctype/asan_login/asan_login.js:676 #: invoice_az/invoice_az/doctype/asan_login/asan_login.js:676
msgid "Authentication Status" msgid "Authentication Status"
msgstr "Autentifikasiya Statusu" msgstr "Kimlik təsdiqi Statusu"
#. AI-generated #. AI-generated
#: invoice_az/client/company.js:355 #: invoice_az/client/company.js:355
@ -717,7 +718,7 @@ msgstr "Autentifikasiya Statusu"
#: invoice_az/client/supplier.js:362 #: invoice_az/client/supplier.js:362
#: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:2033 #: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:2033
msgid "Authentication Successful" msgid "Authentication Successful"
msgstr "Autentifikasiya uğurlu oldu" msgstr "Kimlik təsdiqi uğurlu oldu"
#. AI-generated #. AI-generated
#: invoice_az/client/company.js:327 #: invoice_az/client/company.js:327
@ -733,7 +734,7 @@ msgstr "Autentifikasiya uğurlu oldu"
#: invoice_az/client/supplier.js:334 #: invoice_az/client/supplier.js:334
#: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:2007 #: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:2007
msgid "Authentication Timeout" msgid "Authentication Timeout"
msgstr "Autentifikasiya Müddətinin Bitməsi" msgstr "Kimlik təsdiqi Müddətinin Bitməsi"
#. AI-generated #. AI-generated
#: invoice_az/client/company.js:250 #: invoice_az/client/company.js:250
@ -753,7 +754,7 @@ msgstr "Autentifikasiya Müddətinin Bitməsi"
#: invoice_az/client/supplier.js:255 #: invoice_az/client/supplier.js:255
#: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:1817 #: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:1817
msgid "Authentication canceled. Operation cannot be completed." msgid "Authentication canceled. Operation cannot be completed."
msgstr "Autentifikasiya ləğv edildi. Əməliyyat tamamlana bilməz." msgstr "Kimlik təsdiqi ləğv edildi. Əməliyyat tamamlana bilməz."
#. AI-generated #. AI-generated
#: invoice_az/client/e_taxes_customers_list.js:761 #: invoice_az/client/e_taxes_customers_list.js:761
@ -765,14 +766,14 @@ msgstr "Autentifikasiya ləğv edildi. Əməliyyat tamamlana bilməz."
#: invoice_az/client/e_taxes_unit_list.js:725 #: invoice_az/client/e_taxes_unit_list.js:725
#: invoice_az/client/e_taxes_unit_list.js:883 #: invoice_az/client/e_taxes_unit_list.js:883
msgid "Authentication cancelled" msgid "Authentication cancelled"
msgstr "Autentifikasiya ləğv edildi" msgstr "Kimlik təsdiqi ləğv edildi"
#. AI-generated #. AI-generated
#: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:1084 #: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:1084
msgid "Authentication expired. Please re-authenticate and try again." msgid "Authentication expired. Please re-authenticate and try again."
msgstr "" msgstr ""
"Autentifikasiyanın müddəti bitib. Zəhmət olmasa yenidən autentifikasiyadan " "Kimlik təsdiqi müddəti bitib. Zəhmət olmasa yenidən kimlik təsdiqi keçin və "
"keçin və yenidən cəhd edin." "yenidən cəhd edin."
#. AI-generated #. AI-generated
#: invoice_az/client/company.js:305 #: invoice_az/client/company.js:305
@ -788,19 +789,19 @@ msgstr ""
#: invoice_az/client/supplier.js:311 #: invoice_az/client/supplier.js:311
#: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:1882 #: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:1882
msgid "Authentication request failed" msgid "Authentication request failed"
msgstr "Autentifikasiya sorğusu uğursuz oldu" msgstr "Kimlik təsdiq sorğusu uğursuz oldu"
#. AI-generated #. AI-generated
#: invoice_az/invoice_az/doctype/asan_login/asan_login.js:58 #: invoice_az/invoice_az/doctype/asan_login/asan_login.js:58
#: invoice_az/invoice_az/doctype/asan_login/asan_login.js:657 #: invoice_az/invoice_az/doctype/asan_login/asan_login.js:657
msgid "Authentication request failed." msgid "Authentication request failed."
msgstr "Autentifikasiya sorğusu uğursuz oldu." msgstr "Kimlik təsdiq sorğusu uğursuz oldu."
#. AI-generated #. AI-generated
#: invoice_az/invoice_az/doctype/asan_login/asan_login.js:19 #: invoice_az/invoice_az/doctype/asan_login/asan_login.js:19
msgid "Authentication request sent. Please confirm on your phone." msgid "Authentication request sent. Please confirm on your phone."
msgstr "" msgstr ""
"Autentifikasiya sorğusu göndərildi. Zəhmət olmasa telefonunuzda təsdiqləyin." "Kimlik təsdiq sorğusu göndərildi. Zəhmət olmasa telefonunuzda təsdiqləyin."
#. AI-generated #. AI-generated
#: invoice_az/client/journal_entry.js:961 #: invoice_az/client/journal_entry.js:961
@ -810,8 +811,8 @@ msgid ""
"Authentication token not found. Please complete the authentication process " "Authentication token not found. Please complete the authentication process "
"in E-Taxes settings." "in E-Taxes settings."
msgstr "" msgstr ""
"Autentifikasiya tokeni tapılmadı. Zəhmət olmasa E-Taxes parametrlərində " "Kimlik təsdiq tokeni tapılmadı. Zəhmət olmasa E-Taxes parametrlərində "
"autentifikasiya prosesini tamamlayın." "kimlik təsdiq prosesini tamamlayın."
#. AI-generated #. AI-generated
#: invoice_az/client/journal_entry.js:1182 #: invoice_az/client/journal_entry.js:1182
@ -1078,8 +1079,8 @@ msgstr "Ləğv edilir..."
#. AI-generated #. AI-generated
#: invoice_az/invoice_az/doctype/e_taxes_vat_operations/e_taxes_vat_operations.py:16 #: invoice_az/invoice_az/doctype/e_taxes_vat_operations/e_taxes_vat_operations.py:16
msgid "" msgid ""
"Cannot delete or cancel E-Taxes VAT Operations {0} because it is linked with" "Cannot delete or cancel E-Taxes VAT Operations {0} because it is linked "
" Journal Entry {1}" "with Journal Entry {1}"
msgstr "" msgstr ""
"{0} E-Vergilər ƏDV Əməliyyatları silinə və ya ləğv edilə bilməz, çünki {1} " "{0} E-Vergilər ƏDV Əməliyyatları silinə və ya ləğv edilə bilməz, çünki {1} "
"Jurnal Qeydi ilə əlaqələndirilib" "Jurnal Qeydi ilə əlaqələndirilib"
@ -1336,7 +1337,7 @@ msgstr "Şirkət"
#: invoice_az/client/supplier.js:393 #: invoice_az/client/supplier.js:393
#: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:2069 #: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:2069
msgid "Completing Authentication" msgid "Completing Authentication"
msgstr "Autentifikasiya tamamlanır" msgstr "Kimlik təsdiqi Tamamlanır"
#. AI-generated #. AI-generated
#: invoice_az/client/employee.js:364 #: invoice_az/client/employee.js:364
@ -1844,48 +1845,48 @@ msgstr "Debet Hesabı"
#. AI-generated #. AI-generated
#: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.json #: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.json
msgid "Default Business Partner Settings" msgid "Default Business Partner Settings"
msgstr "Defolt Biznes Tərəfdaş Parametrləri" msgstr "Standart Biznes Tərəfdaş Parametrləri"
#. Label of the default_customer_group (Link) field in DocType 'E-Taxes #. Label of the default_customer_group (Link) field in DocType 'E-Taxes
#. Settings' #. Settings'
#. AI-generated #. AI-generated
#: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.json #: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.json
msgid "Default Customer Group" msgid "Default Customer Group"
msgstr "Defolt Müştəri Qrupu" msgstr "Standart Müştəri Qrupu"
#. Label of the default_item_group (Link) field in DocType 'E-Taxes Settings' #. Label of the default_item_group (Link) field in DocType 'E-Taxes Settings'
#. AI-generated #. AI-generated
#: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.json #: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.json
msgid "Default Item Group" msgid "Default Item Group"
msgstr "Defolt Məhsul Qrupu" msgstr "Standart Məhsul Qrupu"
#. Label of the default_item_settings_section (Section Break) field in DocType #. Label of the default_item_settings_section (Section Break) field in DocType
#. 'E-Taxes Settings' #. 'E-Taxes Settings'
#. AI-generated #. AI-generated
#: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.json #: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.json
msgid "Default Item Settings" msgid "Default Item Settings"
msgstr "Defolt Məhsul Parametrləri" msgstr "Standart Məhsul Parametrləri"
#. Label of the default_item_tax_template (Link) field in DocType 'E-Taxes #. Label of the default_item_tax_template (Link) field in DocType 'E-Taxes
#. Settings' #. Settings'
#. AI-generated #. AI-generated
#: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.json #: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.json
msgid "Default Item Tax Template" msgid "Default Item Tax Template"
msgstr "Defolt Məhsul Vergi Şablonu" msgstr "Standart Məhsul Vergi Şablonu"
#. Label of the default_payment_terms (Link) field in DocType 'E-Taxes #. Label of the default_payment_terms (Link) field in DocType 'E-Taxes
#. Settings' #. Settings'
#. AI-generated #. AI-generated
#: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.json #: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.json
msgid "Default Payment Terms" msgid "Default Payment Terms"
msgstr "Defolt Ödəniş Şərtləri" msgstr "Standart Ödəniş Şərtləri"
#. Label of the default_supplier_group (Link) field in DocType 'E-Taxes #. Label of the default_supplier_group (Link) field in DocType 'E-Taxes
#. Settings' #. Settings'
#. AI-generated #. AI-generated
#: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.json #: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.json
msgid "Default Supplier Group" msgid "Default Supplier Group"
msgstr "Defolt Təchizatçı Qrupu" msgstr "Standart Təchizatçı Qrupu"
#. Label of the default_uom (Link) field in DocType 'E-Taxes Settings' #. Label of the default_uom (Link) field in DocType 'E-Taxes Settings'
#. AI-generated #. AI-generated
@ -2023,8 +2024,8 @@ msgstr "Sənəd Növü"
msgid "" msgid ""
"Document contains unsaved changes. Save before performing the operation?" "Document contains unsaved changes. Save before performing the operation?"
msgstr "" msgstr ""
"Sənəddə yadda saxlanılmamış dəyişikliklər var. Əməliyyatı yerinə yetirməzdən" "Sənəddə yadda saxlanılmamış dəyişikliklər var. Əməliyyatı yerinə "
" əvvəl yadda saxlanılsın?" "yetirməzdən əvvəl yadda saxlanılsın?"
#. AI-generated #. AI-generated
#: invoice_az/client/journal_entry.js:1491 #: invoice_az/client/journal_entry.js:1491
@ -2155,7 +2156,7 @@ msgstr "E-Taxes ID: {0}"
#. AI-generated #. AI-generated
#: invoice_az/invoice_az/doctype/e_taxes_sales_outbox/e_taxes_sales_outbox.json #: invoice_az/invoice_az/doctype/e_taxes_sales_outbox/e_taxes_sales_outbox.json
msgid "E-Taxes Invoice ID" msgid "E-Taxes Invoice ID"
msgstr "E-Taxes Invoice ID" msgstr "E-Taxes Qaimə nömrəsi"
#. Name of a DocType #. Name of a DocType
#. AI-generated #. AI-generated
@ -2354,7 +2355,7 @@ msgstr "E-Taxes ƏDV Əməliyyatları"
#: invoice_az/client/sales_invoice.js:1039 #: invoice_az/client/sales_invoice.js:1039
#: invoice_az/client/sales_order.js:1020 #: invoice_az/client/sales_order.js:1020
msgid "E-Taxes authentication settings not found" msgid "E-Taxes authentication settings not found"
msgstr "E-Taxes autentifikasiya parametrləri tapılmadı" msgstr "E-Taxes kimlik təsdiqi parametrləri tapılmadı"
#. Option for the 'E-Cash Status' (Select) field in DocType 'E-Taxes Cash #. Option for the 'E-Cash Status' (Select) field in DocType 'E-Taxes Cash
#. Register' #. Register'
@ -2448,19 +2449,19 @@ msgstr "Bitmə Tarixi"
#. AI-generated #. AI-generated
#: invoice_az/invoice_az/doctype/testapi/testapi.js:74 #: invoice_az/invoice_az/doctype/testapi/testapi.js:74
msgid "Enter this code in ASAN Sign: {0}" msgid "Enter this code in ASAN Sign: {0}"
msgstr "Bu kodu ASAN Sign-a daxil edin: {0}" msgstr "Bu kodu ASAN İmza-ya daxil edin: {0}"
#. Label of the entity_details_oid (Data) field in DocType 'Amas Employees' #. Label of the entity_details_oid (Data) field in DocType 'Amas Employees'
#. AI-generated #. AI-generated
#: invoice_az/invoice_az/doctype/amas_employees/amas_employees.json #: invoice_az/invoice_az/doctype/amas_employees/amas_employees.json
msgid "Entity Details OID" msgid "Entity Details OID"
msgstr "Entity Details OID" msgstr "Hüquqi Şəxs Məlumatlarının OID-i"
#. Label of the entity_oid (Data) field in DocType 'Amas Employees' #. Label of the entity_oid (Data) field in DocType 'Amas Employees'
#. AI-generated #. AI-generated
#: invoice_az/invoice_az/doctype/amas_employees/amas_employees.json #: invoice_az/invoice_az/doctype/amas_employees/amas_employees.json
msgid "Entity OID" msgid "Entity OID"
msgstr "Entity OID" msgstr "Hüquqi Şəxsin OID"
#. Option for the 'ƏMAS Status' (Select) field in DocType 'Asan Login' #. Option for the 'ƏMAS Status' (Select) field in DocType 'Asan Login'
#. AI-generated #. AI-generated
@ -2609,7 +2610,7 @@ msgstr "Xəta mesajı"
#. AI-generated #. AI-generated
#: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:727 #: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:727
msgid "Error creating UOM units" msgid "Error creating UOM units"
msgstr "UOM vahidləri yaradılarkən xəta baş verdi" msgstr "Ölçü vahidləri yaradılarkən xəta baş verdi"
#. AI-generated #. AI-generated
#: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:371 #: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:371
@ -2661,7 +2662,7 @@ msgstr "Satış qaimələri yüklənərkən xəta baş verdi"
#: invoice_az/client/purchase_order.js:573 #: invoice_az/client/purchase_order.js:573
#: invoice_az/client/sales_invoice.js:592 invoice_az/client/sales_order.js:573 #: invoice_az/client/sales_invoice.js:592 invoice_az/client/sales_order.js:573
msgid "Error log cleared" msgid "Error log cleared"
msgstr "Xəta jurnalı təmizləndi" msgstr "Xəta qeydləri təmizləndi"
#. AI-generated #. AI-generated
#: invoice_az/client/etaxes_common.js:807 #: invoice_az/client/etaxes_common.js:807
@ -2669,7 +2670,7 @@ msgstr "Xəta jurnalı təmizləndi"
#: invoice_az/client/purchase_order.js:762 #: invoice_az/client/purchase_order.js:762
#: invoice_az/client/sales_invoice.js:781 invoice_az/client/sales_order.js:762 #: invoice_az/client/sales_invoice.js:781 invoice_az/client/sales_order.js:762
msgid "Error log exported successfully" msgid "Error log exported successfully"
msgstr "Xəta jurnalı uğurla ixrac edildi" msgstr "Xəta qeydi uğurla ixrac edildi"
#. AI-generated #. AI-generated
#: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:321 #: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:321
@ -2800,7 +2801,7 @@ msgstr "FIN: {0}"
#. AI-generated #. AI-generated
#: invoice_az/invoice_az/doctype/e_taxes_presented_certificate/e_taxes_presented_certificate.json #: invoice_az/invoice_az/doctype/e_taxes_presented_certificate/e_taxes_presented_certificate.json
msgid "FK Doc OID" msgid "FK Doc OID"
msgstr "FK Doc OID" msgstr "Əlaqəli Sənədin OID"
#. Option for the 'Auth Status' (Select) field in DocType 'Asan Login' #. Option for the 'Auth Status' (Select) field in DocType 'Asan Login'
#. Option for the 'Status' (Select) field in DocType 'E-Taxes Purchase Outbox' #. Option for the 'Status' (Select) field in DocType 'E-Taxes Purchase Outbox'
@ -2841,7 +2842,7 @@ msgstr "E-Taxes-də qaimə ləğv edilə bilmədi"
#: invoice_az/client/e_taxes_unit_list.js:208 #: invoice_az/client/e_taxes_unit_list.js:208
#: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:1828 #: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:1828
msgid "Failed to check authentication status" msgid "Failed to check authentication status"
msgstr "Autentifikasiya statusunu yoxlamaq alınmadı" msgstr "Kimlik təsdiqi statusunun yoxlanılması uğursuz oldu"
#. AI-generated #. AI-generated
#: invoice_az/client/purchase_order.js:1079 #: invoice_az/client/purchase_order.js:1079
@ -2909,7 +2910,7 @@ msgstr "ƏMAS-dan bağlantı kəsilə bilmədi"
#: invoice_az/client/purchase_order.js:768 #: invoice_az/client/purchase_order.js:768
#: invoice_az/client/sales_invoice.js:787 invoice_az/client/sales_order.js:768 #: invoice_az/client/sales_invoice.js:787 invoice_az/client/sales_order.js:768
msgid "Failed to export error log" msgid "Failed to export error log"
msgstr "Xəta jurnalı ixrac edilə bilmədi" msgstr "Xəta qeyd ixrac edilə bilmədi"
#. AI-generated #. AI-generated
#: invoice_az/client/supplier.js:663 #: invoice_az/client/supplier.js:663
@ -2922,7 +2923,7 @@ msgstr "E-Taxes-dən təchizatçı məlumatları alına bilmədi"
#: invoice_az/client/e_taxes_suppliers_list.js:883 #: invoice_az/client/e_taxes_suppliers_list.js:883
#: invoice_az/client/e_taxes_unit_list.js:875 #: invoice_az/client/e_taxes_unit_list.js:875
msgid "Failed to get authentication token" msgid "Failed to get authentication token"
msgstr "Autentifikasiya tokeni alınmadı" msgstr "Kimlik təsdiq tokeni alınmadı"
#. AI-generated #. AI-generated
#: invoice_az/client/company.js:434 #: invoice_az/client/company.js:434
@ -3316,8 +3317,8 @@ msgstr "ID"
#. AI-generated #. AI-generated
#: invoice_az/client/journal_entry.js:1177 #: invoice_az/client/journal_entry.js:1177
msgid "" msgid ""
"If checked, Journal Entries will be created in Draft status instead of being" "If checked, Journal Entries will be created in Draft status instead of "
" submitted automatically" "being submitted automatically"
msgstr "" msgstr ""
"Seçilərsə, Jurnal Qeydləri avtomatik təsdiqlənmək əvəzinə Qaralama " "Seçilərsə, Jurnal Qeydləri avtomatik təsdiqlənmək əvəzinə Qaralama "
"statusunda yaradılacaq" "statusunda yaradılacaq"
@ -3325,8 +3326,8 @@ msgstr ""
#. AI-generated #. AI-generated
#: invoice_az/client/journal_entry.js:1184 #: invoice_az/client/journal_entry.js:1184
msgid "" msgid ""
"If checked, will automatically create Customer records and mappings for TINs" "If checked, will automatically create Customer records and mappings for "
" not found in the system" "TINs not found in the system"
msgstr "" msgstr ""
"Seçilərsə, sistemdə tapılmayan VÖEN-lər üçün Müştəri qeydləri və " "Seçilərsə, sistemdə tapılmayan VÖEN-lər üçün Müştəri qeydləri və "
"uyğunlaşdırmalar avtomatik yaradılacaq" "uyğunlaşdırmalar avtomatik yaradılacaq"
@ -3562,7 +3563,7 @@ msgstr "İmzalanıb"
#. AI-generated #. AI-generated
#: invoice_az/invoice_az/doctype/e_taxes_item_mapping/e_taxes_item_mapping.json #: invoice_az/invoice_az/doctype/e_taxes_item_mapping/e_taxes_item_mapping.json
msgid "Is Stock Item" msgid "Is Stock Item"
msgstr "Stok Məhsuludur" msgstr "Anbar Məhsuludur"
#. Label of the is_valid (Data) field in DocType 'Amas Employees' #. Label of the is_valid (Data) field in DocType 'Amas Employees'
#. AI-generated #. AI-generated
@ -3691,7 +3692,7 @@ msgstr "İşin Başlama Tarixi"
#. AI-generated #. AI-generated
#: invoice_az/invoice_az/doctype/e_taxes_vat_operations/e_taxes_vat_operations.json #: invoice_az/invoice_az/doctype/e_taxes_vat_operations/e_taxes_vat_operations.json
msgid "Journal Entry" msgid "Journal Entry"
msgstr "Jurnal qeydi" msgstr "Əməliyyat Qeydi"
#. Label of the labour_function (Small Text) field in DocType 'Amas Employees' #. Label of the labour_function (Small Text) field in DocType 'Amas Employees'
#. AI-generated #. AI-generated
@ -4074,7 +4075,7 @@ msgstr "Əl ilə"
#: invoice_az/invoice_az/doctype/e_taxes_suppliers/e_taxes_suppliers.json #: invoice_az/invoice_az/doctype/e_taxes_suppliers/e_taxes_suppliers.json
#: invoice_az/invoice_az/doctype/e_taxes_unit/e_taxes_unit.json #: invoice_az/invoice_az/doctype/e_taxes_unit/e_taxes_unit.json
msgid "Mapped" msgid "Mapped"
msgstr "Xəritələnib" msgstr "Əlaqələndirilmiş"
#. Label of the mapped_customer (Link) field in DocType 'E-Taxes Customers' #. Label of the mapped_customer (Link) field in DocType 'E-Taxes Customers'
#. AI-generated #. AI-generated
@ -4120,7 +4121,7 @@ msgstr "Uyğunlaşdırılmış ÖV"
#: invoice_az/invoice_az/doctype/e_taxes_supplier_mappings/e_taxes_supplier_mappings.json #: invoice_az/invoice_az/doctype/e_taxes_supplier_mappings/e_taxes_supplier_mappings.json
#: invoice_az/invoice_az/doctype/e_taxes_unit_mapping/e_taxes_unit_mapping.json #: invoice_az/invoice_az/doctype/e_taxes_unit_mapping/e_taxes_unit_mapping.json
msgid "Mapping Type" msgid "Mapping Type"
msgstr "Xəritələmə Növü" msgstr "Əlaqələndirmə Növü"
#. Label of the mappings_tab (Tab Break) field in DocType 'E-Taxes Settings' #. Label of the mappings_tab (Tab Break) field in DocType 'E-Taxes Settings'
#. AI-generated #. AI-generated
@ -5108,8 +5109,8 @@ msgid ""
"Please select Act Kind (Agricultural Products Act or Metal Scrap Reception " "Please select Act Kind (Agricultural Products Act or Metal Scrap Reception "
"Act)" "Act)"
msgstr "" msgstr ""
"Zəhmət olmasa Akt Növünü seçin (Kənd Təsərrüfatı Məhsulları Aktı və ya Metal" "Zəhmət olmasa Akt Növünü seçin (Kənd Təsərrüfatı Məhsulları Aktı və ya "
" Qırıntıları Qəbul Aktı)" "Metal Qırıntıları Qəbul Aktı)"
#. AI-generated #. AI-generated
#: invoice_az/client/purchase_invoice.js:640 #: invoice_az/client/purchase_invoice.js:640
@ -6587,8 +6588,8 @@ msgid ""
"This will create a draft act. You will need to sign it with ASAN Imza after " "This will create a draft act. You will need to sign it with ASAN Imza after "
"creation." "creation."
msgstr "" msgstr ""
"Bu, qaralama akt yaradacaq. Yaradıldıqdan sonra onu ASAN İmza ilə imzalamalı" "Bu, qaralama akt yaradacaq. Yaradıldıqdan sonra onu ASAN İmza ilə "
" olacaqsınız." "imzalamalı olacaqsınız."
#. AI-generated #. AI-generated
#: invoice_az/client/purchase_invoice.js:880 #: invoice_az/client/purchase_invoice.js:880
@ -6598,18 +6599,17 @@ msgstr "Bu, aktı yekunlaşdıracaq və E-Taxes-ə göndərəcək."
#. AI-generated #. AI-generated
#: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:969 #: invoice_az/invoice_az/doctype/e_taxes_settings/e_taxes_settings.js:969
msgid "" msgid ""
"This will load {0} from E-Taxes for the period {1} to " "This will load {0} from E-Taxes for the period {1} to {2}."
"{2}.<br><br><strong>Process:</strong><br>1. First, all invoices will be " "<br><br><strong>Process:</strong><br>1. First, all invoices will be fetched "
"fetched (may take 1-2 minutes)<br>2. Then each invoice will be processed for" "(may take 1-2 minutes)<br>2. Then each invoice will be processed for "
" reference data<br><br><strong>This operation may take several minutes " "reference data<br><br><strong>This operation may take several minutes "
"depending on the number of invoices.</strong><br><br>Continue?" "depending on the number of invoices.</strong><br><br>Continue?"
msgstr "" msgstr ""
"Bu, {1} - {2} dövrü üçün E-Taxes-dən {0} " "Bu, {1} - {2} dövrü üçün E-Taxes-dən {0} yükləyəcək.<br><br><strong>Proses:"
"yükləyəcək.<br><br><strong>Proses:</strong><br>1. Əvvəlcə bütün qaimələr " "</strong><br>1. Əvvəlcə bütün qaimələr çəkiləcək (1-2 dəqiqə çəkə "
"çəkiləcək (1-2 dəqiqə çəkə bilər)<br>2. Sonra hər bir qaimə istinad " "bilər)<br>2. Sonra hər bir qaimə istinad məlumatları üçün emal "
"məlumatları üçün emal ediləcək<br><br><strong>Bu əməliyyat qaimələrin " "ediləcək<br><br><strong>Bu əməliyyat qaimələrin sayından asılı olaraq bir "
"sayından asılı olaraq bir neçə dəqiqə çəkə bilər.</strong><br><br>Davam " "neçə dəqiqə çəkə bilər.</strong><br><br>Davam edilsin?"
"edilsin?"
#. AI-generated #. AI-generated
#: invoice_az/client/company.js:272 #: invoice_az/client/company.js:272

View File

@ -176,7 +176,7 @@ def validate_invoice_for_sending(doc):
if not customer.tax_id: if not customer.tax_id:
return { return {
"valid": False, "valid": False,
"message": f"Customer '{doc.customer}' does not have a TIN (tax_id). Please update customer details." "message": f"Customer '{doc.customer}' does not have a TIN. Please update customer details."
} }
# Validate items # Validate items
@ -357,7 +357,7 @@ def get_customer_objects(sales_invoice_name):
if not customer.tax_id: if not customer.tax_id:
return { return {
"success": False, "success": False,
"message": f"Customer '{doc.customer}' does not have a TIN (tax_id). Please update customer details." "message": f"Customer '{doc.customer}' does not have a TIN. Please update customer details."
} }
# Get authentication token # Get authentication token