From 3a480c08b1dd1cad110b5244bfb5ee51148f8904 Mon Sep 17 00:00:00 2001 From: Mihir Kandoi Date: Mon, 22 Jun 2026 15:19:40 +0530 Subject: [PATCH 01/54] fix: link portal address rows to web form (cherry picked from commit 5008b82f9032fd3ab7bd7ead7cc1992e5021b279) --- erpnext/templates/includes/address_row.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/erpnext/templates/includes/address_row.html b/erpnext/templates/includes/address_row.html index 6d4dd5444cd..7a11cc73308 100644 --- a/erpnext/templates/includes/address_row.html +++ b/erpnext/templates/includes/address_row.html @@ -1,5 +1,5 @@
- +
{{ doc.address_title }} @@ -7,7 +7,7 @@
{{ _(doc.address_type) }}
{{ doc.city }}
- {{ frappe.get_doc(doc).get_display() }} + {{ doc.address_display or "" }}
From 54c45d7b22d15717f84a572e6c3b6ff0cd28384d Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Wed, 24 Jun 2026 09:21:02 +0530 Subject: [PATCH 02/54] fix: job card timer issue (backport #56405) (#56406) fix: job card timer issue (#56405) (cherry picked from commit 21541e3ad3f183ab4cbdb0e79bcfbeee28256684) Co-authored-by: rohitwaghchaure --- erpnext/manufacturing/doctype/job_card/job_card.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/erpnext/manufacturing/doctype/job_card/job_card.js b/erpnext/manufacturing/doctype/job_card/job_card.js index 762b0e1eeb0..0a4026672cf 100644 --- a/erpnext/manufacturing/doctype/job_card/job_card.js +++ b/erpnext/manufacturing/doctype/job_card/job_card.js @@ -694,10 +694,11 @@ frappe.ui.form.on("Job Card", { // ── Wire up button click handlers ───────────────────────────────── if (show_start) { wrapper.find(".jcd-btn-start").on("click", () => { - const from_time = frappe.datetime.now_datetime(); const has_no_employee = !frm.doc.employee || !frm.doc.employee.length; if (has_no_employee) { + // Capture the start time only when the employee dialog is submitted, not on click, + // so the time spent selecting the operator is not counted as worked time. frappe.prompt( { fieldtype: "Table MultiSelect", @@ -707,11 +708,11 @@ frappe.ui.form.on("Job Card", { reqd: 1, filters: { status: "Active" }, }, - (d) => frm.events.start_timer(frm, from_time, d.employees), + (d) => frm.events.start_timer(frm, frappe.datetime.now_datetime(), d.employees), __("Assign Job to Employee") ); } else { - frm.events.start_timer(frm, from_time, frm.doc.employee); + frm.events.start_timer(frm, frappe.datetime.now_datetime(), frm.doc.employee); } }); } From d389014e579a743f80a7388590c12cc2d76602b6 Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Wed, 24 Jun 2026 12:57:31 +0530 Subject: [PATCH 03/54] feat(accounts): add configurable job timeout for Process Period Closing Voucher Adds a `pcv_job_timeout` Int field (default 3600s) to Accounts Settings so admins can tune the enqueue timeout for PCV background jobs without a code change. All three `frappe.enqueue` calls in `process_period_closing_voucher.py` now read this value at runtime. Co-Authored-By: Claude Sonnet 4.6 (cherry picked from commit 13b6c4a165db29d95d05cdcd01d79cdeaca0accc) --- .../doctype/accounts_settings/accounts_settings.json | 8 ++++++++ .../process_period_closing_voucher.py | 10 +++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/erpnext/accounts/doctype/accounts_settings/accounts_settings.json b/erpnext/accounts/doctype/accounts_settings/accounts_settings.json index 57e3c090488..cf847de2187 100644 --- a/erpnext/accounts/doctype/accounts_settings/accounts_settings.json +++ b/erpnext/accounts/doctype/accounts_settings/accounts_settings.json @@ -86,6 +86,7 @@ "period_closing_settings_section", "ignore_account_closing_balance", "use_legacy_controller_for_pcv", + "pcv_job_timeout", "column_break_25", "reports_tab", "remarks_section", @@ -611,6 +612,13 @@ "fieldtype": "Check", "label": "Use legacy controller for Period Closing Voucher" }, + { + "default": "3600", + "description": "Timeout (in seconds) for each background job enqueued by Process Period Closing Voucher", + "fieldname": "pcv_job_timeout", + "fieldtype": "Int", + "label": "PCV Job Timeout (seconds)" + }, { "description": "Users with this role will be notified if the asset depreciation gets failed", "fieldname": "role_to_notify_on_depreciation_failure", diff --git a/erpnext/accounts/doctype/process_period_closing_voucher/process_period_closing_voucher.py b/erpnext/accounts/doctype/process_period_closing_voucher/process_period_closing_voucher.py index bd8b2fd1db0..d5e10be7fdd 100644 --- a/erpnext/accounts/doctype/process_period_closing_voucher/process_period_closing_voucher.py +++ b/erpnext/accounts/doctype/process_period_closing_voucher/process_period_closing_voucher.py @@ -95,6 +95,8 @@ def start_pcv_processing(docname: str): frappe.has_permission("Process Payment Reconciliation", "write", doc=docname, throw=True) frappe.db.set_value("Process Period Closing Voucher", docname, "status", "Running") + timeout = frappe.db.get_single_value("Accounts Settings", "pcv_job_timeout") or 3600 + ppcvd = qb.DocType("Process Period Closing Voucher Detail") if normal_balances := ( qb.from_(ppcvd) @@ -121,7 +123,7 @@ def start_pcv_processing(docname: str): frappe.enqueue( method="erpnext.accounts.doctype.process_period_closing_voucher.process_period_closing_voucher.process_individual_date", queue="long", - timeout="3600", + timeout=timeout, is_async=True, enqueue_after_commit=True, docname=docname, @@ -247,6 +249,8 @@ def get_gle_for_closing_account(pcv, dimension_balance, dimensions): @frappe.whitelist() def schedule_next_date(docname: str): + timeout = frappe.db.get_single_value("Accounts Settings", "pcv_job_timeout") or 3600 + ppcvd = qb.DocType("Process Period Closing Voucher Detail") if to_process := ( qb.from_(ppcvd) @@ -272,7 +276,7 @@ def schedule_next_date(docname: str): frappe.enqueue( method="erpnext.accounts.doctype.process_period_closing_voucher.process_period_closing_voucher.process_individual_date", queue="long", - timeout="3600", + timeout=timeout, is_async=True, enqueue_after_commit=True, docname=docname, @@ -302,7 +306,7 @@ def schedule_next_date(docname: str): frappe.enqueue( method="erpnext.accounts.doctype.process_period_closing_voucher.process_period_closing_voucher.summarize_and_post_ledger_entries", queue="long", - timeout="3600", + timeout=timeout, is_async=True, job_name=job_name, enqueue_after_commit=True, From 66b28cf45623548623a395b600e7e35df8c41f9e Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Wed, 24 Jun 2026 13:01:42 +0530 Subject: [PATCH 04/54] refactor: patch, display depends on and json changes (cherry picked from commit 3da7eefebb37bb1f1e6cc4c7c0c2add735e0e2c5) # Conflicts: # erpnext/accounts/doctype/accounts_settings/accounts_settings.json # erpnext/accounts/doctype/accounts_settings/accounts_settings.py # erpnext/patches.txt --- .../doctype/accounts_settings/accounts_settings.json | 5 +++++ .../accounts/doctype/accounts_settings/accounts_settings.py | 5 +++++ erpnext/patches.txt | 5 +++++ 3 files changed, 15 insertions(+) diff --git a/erpnext/accounts/doctype/accounts_settings/accounts_settings.json b/erpnext/accounts/doctype/accounts_settings/accounts_settings.json index cf847de2187..768c254c7f6 100644 --- a/erpnext/accounts/doctype/accounts_settings/accounts_settings.json +++ b/erpnext/accounts/doctype/accounts_settings/accounts_settings.json @@ -614,6 +614,7 @@ }, { "default": "3600", + "depends_on": "eval: !doc.use_legacy_controller_for_pcv", "description": "Timeout (in seconds) for each background job enqueued by Process Period Closing Voucher", "fieldname": "pcv_job_timeout", "fieldtype": "Int", @@ -756,7 +757,11 @@ "index_web_pages_for_search": 1, "issingle": 1, "links": [], +<<<<<<< HEAD "modified": "2026-06-15 18:26:50.778723", +======= + "modified": "2026-06-24 12:59:41.868865", +>>>>>>> 3da7eefebb (refactor: patch, display depends on and json changes) "modified_by": "Administrator", "module": "Accounts", "name": "Accounts Settings", diff --git a/erpnext/accounts/doctype/accounts_settings/accounts_settings.py b/erpnext/accounts/doctype/accounts_settings/accounts_settings.py index 716bd8a0719..9b4c16848b8 100644 --- a/erpnext/accounts/doctype/accounts_settings/accounts_settings.py +++ b/erpnext/accounts/doctype/accounts_settings/accounts_settings.py @@ -90,6 +90,11 @@ class AccountsSettings(Document): make_payment_via_journal_entry: DF.Check merge_similar_account_heads: DF.Check over_billing_allowance: DF.Currency +<<<<<<< HEAD +======= + pcv_job_timeout: DF.Int + preview_mode: DF.Check +>>>>>>> 3da7eefebb (refactor: patch, display depends on and json changes) receivable_payable_fetch_method: DF.Literal["Buffered Cursor", "UnBuffered Cursor"] receivable_payable_remarks_length: DF.Int reconciliation_queue_size: DF.Int diff --git a/erpnext/patches.txt b/erpnext/patches.txt index 4f129c918f0..f28ca0faf6b 100644 --- a/erpnext/patches.txt +++ b/erpnext/patches.txt @@ -484,3 +484,8 @@ erpnext.patches.v16_0.set_not_applicable_on_german_item_tax_templates erpnext.patches.v16_0.clear_procedures_from_receivable_report erpnext.patches.v16_0.migrate_address_contact_custom_fields erpnext.patches.v16_0.drop_redundant_serial_no_index_from_sabb +<<<<<<< HEAD +======= +erpnext.patches.v16_0.set_default_close_opportunity_after_days +execute:frappe.db.set_single_value("Accounts Settings", "pcv_job_timeout", 3600) +>>>>>>> 3da7eefebb (refactor: patch, display depends on and json changes) From 267086153b052dac996eeff2e258b15383797f32 Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Wed, 24 Jun 2026 15:08:04 +0530 Subject: [PATCH 05/54] chore: resolve conflicts --- .../accounts/doctype/accounts_settings/accounts_settings.json | 4 ---- .../accounts/doctype/accounts_settings/accounts_settings.py | 4 ---- erpnext/patches.txt | 4 ---- 3 files changed, 12 deletions(-) diff --git a/erpnext/accounts/doctype/accounts_settings/accounts_settings.json b/erpnext/accounts/doctype/accounts_settings/accounts_settings.json index 768c254c7f6..9381ad2ff18 100644 --- a/erpnext/accounts/doctype/accounts_settings/accounts_settings.json +++ b/erpnext/accounts/doctype/accounts_settings/accounts_settings.json @@ -757,11 +757,7 @@ "index_web_pages_for_search": 1, "issingle": 1, "links": [], -<<<<<<< HEAD - "modified": "2026-06-15 18:26:50.778723", -======= "modified": "2026-06-24 12:59:41.868865", ->>>>>>> 3da7eefebb (refactor: patch, display depends on and json changes) "modified_by": "Administrator", "module": "Accounts", "name": "Accounts Settings", diff --git a/erpnext/accounts/doctype/accounts_settings/accounts_settings.py b/erpnext/accounts/doctype/accounts_settings/accounts_settings.py index 9b4c16848b8..e76281687ab 100644 --- a/erpnext/accounts/doctype/accounts_settings/accounts_settings.py +++ b/erpnext/accounts/doctype/accounts_settings/accounts_settings.py @@ -90,11 +90,7 @@ class AccountsSettings(Document): make_payment_via_journal_entry: DF.Check merge_similar_account_heads: DF.Check over_billing_allowance: DF.Currency -<<<<<<< HEAD -======= pcv_job_timeout: DF.Int - preview_mode: DF.Check ->>>>>>> 3da7eefebb (refactor: patch, display depends on and json changes) receivable_payable_fetch_method: DF.Literal["Buffered Cursor", "UnBuffered Cursor"] receivable_payable_remarks_length: DF.Int reconciliation_queue_size: DF.Int diff --git a/erpnext/patches.txt b/erpnext/patches.txt index f28ca0faf6b..5bd41a2fece 100644 --- a/erpnext/patches.txt +++ b/erpnext/patches.txt @@ -484,8 +484,4 @@ erpnext.patches.v16_0.set_not_applicable_on_german_item_tax_templates erpnext.patches.v16_0.clear_procedures_from_receivable_report erpnext.patches.v16_0.migrate_address_contact_custom_fields erpnext.patches.v16_0.drop_redundant_serial_no_index_from_sabb -<<<<<<< HEAD -======= -erpnext.patches.v16_0.set_default_close_opportunity_after_days execute:frappe.db.set_single_value("Accounts Settings", "pcv_job_timeout", 3600) ->>>>>>> 3da7eefebb (refactor: patch, display depends on and json changes) From 8a665709d2729781d2d3eb5aa96b2391964a2034 Mon Sep 17 00:00:00 2001 From: Mihir Kandoi Date: Wed, 24 Jun 2026 14:38:52 +0530 Subject: [PATCH 06/54] fix: exclude virtual child doctypes from deletion in transaction deletion record (cherry picked from commit 8bd8b28207e8fd7e179cb6afc9a7d38a57c2e9f1) --- .../transaction_deletion_record.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py b/erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py index 92403d51f44..090c0a59a67 100644 --- a/erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py +++ b/erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py @@ -318,12 +318,23 @@ class TransactionDeletionRecord(Document): Returns: list: List of child table DocType names (Table field options) """ - return frappe.get_all( + child_tables = frappe.get_all( "DocField", filters={"parent": doctype_name, "fieldtype": ["in", ["Table", "Table MultiSelect"]]}, pluck="options", ) + if not child_tables: + return [] + + child_tables = frappe.get_all( + "DocType", + filters={"name": ["in", child_tables], "is_virtual": 0}, + pluck="name", + ) + + return child_tables + def _get_to_delete_row_infos(self, doctype_name, company_field=None, company=None): """Get child tables and document count for a To Delete list row From b3871a212c886b5b3835230097358aad4e3fe037 Mon Sep 17 00:00:00 2001 From: Loic Oberle Date: Sat, 23 May 2026 07:59:09 +0200 Subject: [PATCH 07/54] =?UTF-8?q?refactor(sales=5Fperson=5Fwise=5Ftransact?= =?UTF-8?q?ion=5Fsummary):=20Replace=20SQL=20with=20que=E2=80=A6=20(#55191?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit df3d0859a13b00d9aa9377dac48cfc365e557b20) --- .../sales_person_wise_transaction_summary.py | 94 ++++++++++--------- 1 file changed, 52 insertions(+), 42 deletions(-) diff --git a/erpnext/selling/report/sales_person_wise_transaction_summary/sales_person_wise_transaction_summary.py b/erpnext/selling/report/sales_person_wise_transaction_summary/sales_person_wise_transaction_summary.py index 405159215cd..23ed83cca84 100644 --- a/erpnext/selling/report/sales_person_wise_transaction_summary/sales_person_wise_transaction_summary.py +++ b/erpnext/selling/report/sales_person_wise_transaction_summary/sales_person_wise_transaction_summary.py @@ -4,7 +4,7 @@ import frappe from frappe import _, msgprint, qb -from frappe.query_builder import Criterion +from frappe.query_builder import Case, Criterion from erpnext import get_company_currency @@ -155,50 +155,60 @@ def get_columns(filters): def get_entries(filters): - date_field = filters["doc_type"] == "Sales Order" and "transaction_date" or "posting_date" - if filters["doc_type"] == "Sales Order": - qty_field = "delivered_qty" - else: - qty_field = "qty" - conditions, values = get_conditions(filters, date_field) + doc_type = filters["doc_type"] - entries = frappe.db.sql( - """ - SELECT - dt.name, dt.customer, dt.territory, dt.{} as posting_date, dt_item.item_code, - st.sales_person, st.allocated_percentage, dt_item.warehouse, - CASE - WHEN dt.status = "Closed" THEN dt_item.{} * dt_item.conversion_factor - ELSE dt_item.stock_qty - END as stock_qty, - CASE - WHEN dt.status = "Closed" THEN (dt_item.base_net_rate * dt_item.{} * dt_item.conversion_factor) - ELSE dt_item.base_net_amount - END as base_net_amount, - CASE - WHEN dt.status = "Closed" THEN ((dt_item.base_net_rate * dt_item.{} * dt_item.conversion_factor) * st.allocated_percentage/100) - ELSE dt_item.base_net_amount * st.allocated_percentage/100 - END as contribution_amt - FROM - `tab{}` dt, `tab{} Item` dt_item, `tabSales Team` st - WHERE - st.parent = dt.name and dt.name = dt_item.parent and st.parenttype = {} - and dt.docstatus = 1 {} order by st.sales_person, dt.name desc - """.format( - date_field, - qty_field, - qty_field, - qty_field, - filters["doc_type"], - filters["doc_type"], - "%s", - conditions, - ), - tuple([filters["doc_type"], *values]), - as_dict=1, + date_field = "transaction_date" if doc_type == "Sales Order" else "posting_date" + qty_field = "delivered_qty" if doc_type == "Sales Order" else "qty" + + dt = frappe.qb.DocType(doc_type) + dt_item = frappe.qb.DocType(f"{doc_type} Item") + st = frappe.qb.DocType("Sales Team") + + calc_qty = dt_item[qty_field] * dt_item.conversion_factor + calc_net_amount = dt_item.base_net_rate * calc_qty + + stock_qty_case = Case().when(dt.status == "Closed", calc_qty).else_(dt_item.stock_qty).as_("stock_qty") + + base_net_amount_case = ( + Case() + .when(dt.status == "Closed", calc_net_amount) + .else_(dt_item.base_net_amount) + .as_("base_net_amount") ) - return entries + contribution_amt_case = ( + Case() + .when(dt.status == "Closed", (calc_net_amount * st.allocated_percentage / 100)) + .else_(dt_item.base_net_amount * st.allocated_percentage / 100) + .as_("contribution_amt") + ) + + query = ( + frappe.get_query(dt, filters=filters, ignore_permissions=False) + .join(dt_item) + .on(dt.name == dt_item.parent) + .join(st) + .on(dt.name == st.parent) + .select( + dt.name, + dt.customer, + dt.territory, + dt[date_field].as_("posting_date"), + dt_item.item_code, + st.sales_person, + st.allocated_percentage, + dt_item.warehouse, + stock_qty_case, + base_net_amount_case, + contribution_amt_case, + ) + .where(st.parenttype == doc_type) + .where(dt.docstatus == 1) + ) + + query = query.orderby(st.sales_person).orderby(dt.name, order=frappe.qb.desc) + + return query.run(as_dict=True) def get_conditions(filters, date_field): From bc313dc09db263abf58bd8cc9df32b6cf559d300 Mon Sep 17 00:00:00 2001 From: pandiyan Date: Wed, 24 Jun 2026 18:12:42 +0530 Subject: [PATCH 08/54] fix: skip qty over-allowance check for non-stock items only --- erpnext/controllers/status_updater.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/erpnext/controllers/status_updater.py b/erpnext/controllers/status_updater.py index 9b8ccac90ed..368a3ff8390 100644 --- a/erpnext/controllers/status_updater.py +++ b/erpnext/controllers/status_updater.py @@ -383,15 +383,17 @@ class StatusUpdater(Document): def fetch_items_with_pending_qty(self, args, item_field, items): doctype = frappe.qb.DocType(args["target_dt"]) - item_field = doctype[item_field] + item_field_col = doctype[item_field] target_ref_field = doctype[args["target_ref_field"]] target_field = doctype[args["target_field"]] - return ( + is_qty_check = "qty" in args["target_ref_field"] + + query = ( frappe.qb.from_(doctype) .select( doctype.name, - item_field.as_("item_code"), + item_field_col.as_("item_code"), target_ref_field, target_field, doctype.parenttype, @@ -400,9 +402,18 @@ class StatusUpdater(Document): .where(target_ref_field < target_field) .where(doctype.name.isin(items)) .where(doctype.docstatus == 1) - .run(as_dict=True) ) + if is_qty_check: + item_table = frappe.qb.DocType("Item") + query = ( + query.join(item_table) + .on(item_table.name == item_field_col) + .where(item_table.is_stock_item == 1) + ) + + return query.run(as_dict=True) + def check_overflow_with_allowance(self, item, args): """ Checks if there is overflow considering a relaxation allowance. From e3958ad7bb18343cefa3d72175e98e35e534f1e7 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Wed, 24 Jun 2026 18:30:32 +0530 Subject: [PATCH 09/54] fix: precision issue causing COGS in inter transfer PR (backport #56420) (#56425) fix: precision issue causing COGS in inter transfer PR (#56420) (cherry picked from commit 9b0e1b61f202e33beaff8b8a146d3336001dc861) Co-authored-by: rohitwaghchaure --- erpnext/controllers/taxes_and_totals.py | 2 +- .../doctype/repost_item_valuation/repost_item_valuation.py | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/erpnext/controllers/taxes_and_totals.py b/erpnext/controllers/taxes_and_totals.py index ee1fc632c06..dd829b3e0ba 100644 --- a/erpnext/controllers/taxes_and_totals.py +++ b/erpnext/controllers/taxes_and_totals.py @@ -170,7 +170,7 @@ class calculate_taxes_and_totals: return if not self.discount_amount_applied: - do_not_round_fields = ["valuation_rate", "incoming_rate"] + do_not_round_fields = ["valuation_rate", "incoming_rate", "sales_incoming_rate"] for item in self.doc.items: self.doc.round_floats_in(item, do_not_round_fields=do_not_round_fields) diff --git a/erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py b/erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py index 6da9229edec..9a57a2bf380 100644 --- a/erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py +++ b/erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py @@ -346,6 +346,9 @@ class RepostItemValuation(Document): def _recalculate_valuation_rate(self): doc = frappe.get_doc(self.voucher_type, self.voucher_no) + if doc.get("is_internal_supplier"): + doc.set_sales_incoming_rate_for_internal_transfer() + doc.update_valuation_rate() for item in doc.items: item.db_set("valuation_rate", item.valuation_rate) From 0c502eaa1807813853cb6875a1c2144fbde69d1a Mon Sep 17 00:00:00 2001 From: pandiyan Date: Wed, 24 Jun 2026 18:12:50 +0530 Subject: [PATCH 10/54] test: add tests for non stock item over billing against so/po --- .../purchase_invoice/test_purchase_invoice.py | 18 ++++++++ .../sales_invoice/test_sales_invoice.py | 45 +++++++++++++++++++ 2 files changed, 63 insertions(+) diff --git a/erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.py b/erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.py index fe73a7e4712..5c2eabe8dcd 100644 --- a/erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.py +++ b/erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.py @@ -2928,6 +2928,24 @@ class TestPurchaseInvoice(ERPNextTestSuite, StockTestMixin): # Test 4 - Since this PI is overbilled by 130% and only 120% is allowed, it will fail self.assertRaises(frappe.ValidationError, pi.submit) + @ERPNextTestSuite.change_settings("Accounts Settings", {"over_billing_allowance": 0}) + def test_non_stock_item_over_billing_against_po_is_blocked(self): + service_item = create_item( + "_Test Service Item Non Stock PI", + is_stock_item=0, + is_purchase_item=1, + ).name + + po = create_purchase_order(item_code=service_item, qty=5, rate=100, do_not_save=False) + po.submit() + + pi = make_pi_from_po(po.name) + pi.items[0].qty = 10 # overbill by 100 % + pi.save() + + with self.assertRaises(frappe.ValidationError): + pi.submit() + def test_discount_percentage_not_set_when_amount_is_manually_set(self): pi = make_purchase_invoice(do_not_save=True) discount_amount = 7 diff --git a/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py index 8ae7ff0c518..3f2f9fbda90 100644 --- a/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py +++ b/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py @@ -3865,6 +3865,51 @@ class TestSalesInvoice(ERPNextTestSuite): self.assertTrue("cannot overbill" in str(err.exception).lower()) dn.cancel() + @ERPNextTestSuite.change_settings("Accounts Settings", {"over_billing_allowance": 0}) + def test_non_stock_item_over_billing_against_so_is_blocked(self): + from erpnext.selling.doctype.sales_order.sales_order import make_sales_invoice as make_si_from_so + from erpnext.selling.doctype.sales_order.test_sales_order import make_sales_order + + service_item = create_item( + "_Test Service Item Non Stock SI", + is_stock_item=0, + ).name + + so = make_sales_order(item_code=service_item, qty=5, rate=100) + so.submit() + + si = make_si_from_so(so.name) + si.items[0].qty = 10 # overbill by 100 % + si.save() + + with self.assertRaises(frappe.ValidationError): + si.submit() + + @ERPNextTestSuite.change_settings("Accounts Settings", {"over_billing_allowance": 0}) + def test_non_stock_item_over_billing_against_so_from_quotation_is_blocked(self): + from erpnext.selling.doctype.quotation.quotation import make_sales_order as make_so_from_quotation + from erpnext.selling.doctype.quotation.test_quotation import make_quotation + from erpnext.selling.doctype.sales_order.sales_order import make_sales_invoice as make_si_from_so + + service_item = create_item( + "_Test Service Item Non Stock SI Quot", + is_stock_item=0, + ).name + + quotation = make_quotation(item_code=service_item, qty=5, rate=100) + + so = make_so_from_quotation(quotation.name) + so.delivery_date = frappe.utils.add_days(frappe.utils.today(), 7) + so.insert() + so.submit() + + si = make_si_from_so(so.name) + si.items[0].qty = 10 # overbill by 100 % + si.save() + + with self.assertRaises(frappe.ValidationError): + si.submit() + @ERPNextTestSuite.change_settings( "Accounts Settings", { From bd54c7fea8903c0b28c8c5f07289fc3bb624c1bd Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Wed, 24 Jun 2026 19:42:20 +0530 Subject: [PATCH 11/54] fix(lead): added missing read permission check on `get_lead_details` (backport #56272) (#56274) fix(lead): added missing read permission check on `get_lead_details` (backport #56272) --- erpnext/crm/doctype/lead/lead.py | 1 + 1 file changed, 1 insertion(+) diff --git a/erpnext/crm/doctype/lead/lead.py b/erpnext/crm/doctype/lead/lead.py index 69f7c31817d..d970cffa990 100644 --- a/erpnext/crm/doctype/lead/lead.py +++ b/erpnext/crm/doctype/lead/lead.py @@ -448,6 +448,7 @@ def get_lead_details(lead, posting_date=None, company=None, doctype=None): out = frappe._dict() lead_doc = frappe.get_doc("Lead", lead) + lead_doc.check_permission() lead = lead_doc out.update( From 89059a990fdf4c13ae4eb6bfe01138635459676c Mon Sep 17 00:00:00 2001 From: Ejaaz Khan Date: Wed, 24 Jun 2026 17:47:35 +0530 Subject: [PATCH 12/54] fix(letter-head): guard company lookups when doc has no company field (cherry picked from commit 7cb03a427ab25e9fe20cb8bb7e176197ac371d11) # Conflicts: # erpnext/accounts/letter_head/company_letterhead/company_letterhead.json # erpnext/accounts/letter_head/company_letterhead___grey/company_letterhead___grey.json # erpnext/accounts/letter_head/company_letterhead_report/company_letterhead_report.json --- .../company_letterhead.json | 26 +++++++++++++++++++ .../company_letterhead___grey.json | 26 +++++++++++++++++++ .../company_letterhead_report.json | 26 +++++++++++++++++++ 3 files changed, 78 insertions(+) create mode 100644 erpnext/accounts/letter_head/company_letterhead/company_letterhead.json create mode 100644 erpnext/accounts/letter_head/company_letterhead___grey/company_letterhead___grey.json create mode 100644 erpnext/accounts/letter_head/company_letterhead_report/company_letterhead_report.json diff --git a/erpnext/accounts/letter_head/company_letterhead/company_letterhead.json b/erpnext/accounts/letter_head/company_letterhead/company_letterhead.json new file mode 100644 index 00000000000..28b60e313c4 --- /dev/null +++ b/erpnext/accounts/letter_head/company_letterhead/company_letterhead.json @@ -0,0 +1,26 @@ +{ + "align": "Left", + "content": "\n\t\n\t\t\n\t\t\t\n\n\t\t\t\n\n\t\t\t\n\t\t\n\t\n
\n\t\t\t\t
\n\t\t\t\t\t{% set company_logo = frappe.db.get_value(\"Company\", doc.company, \"company_logo\") %} {% if\n\t\t\t\t\tcompany_logo %}\n\t\t\t\t\t\"Company\n\t\t\t\t\t{% endif %}\n\t\t\t\t
\n\t\t\t
\n\t\t\t\t{% if doc.company %}
{{ doc.company }}
{% endif %}\n\t\t\t\t{% if doc.company_address %} {% set company_address = frappe.db.get_value(\"Address\",\n\t\t\t\tdoc.company_address, [\"address_line1\", \"address_line2\", \"city\", \"state\", \"pincode\",\n\t\t\t\t\"country\"], as_dict=True) %} {% elif doc.billing_address %} {% set company_address =\n\t\t\t\tfrappe.db.get_value(\"Address\", doc.billing_address, [\"address_line1\", \"address_line2\", \"city\",\n\t\t\t\t\"state\", \"pincode\", \"country\"], as_dict=True) %} {% endif %} {% if company_address %} {{\n\t\t\t\tcompany_address.address_line1 or \"\" }}
\n\t\t\t\t{% if company_address.address_line2 %} {{ company_address.address_line2 }}
\n\t\t\t\t{% endif %} {{ company_address.city or \"\" }}, {{ company_address.state or \"\" }} {{\n\t\t\t\tcompany_address.pincode or \"\" }}, {{ company_address.country or \"\"}}
\n\t\t\t\t{% endif %}\n\t\t\t
\n\t\t\t\t{% set website = frappe.db.get_value(\"Company\", doc.company, \"website\") %} {% set email =\n\t\t\t\tfrappe.db.get_value(\"Company\", doc.company, \"email\") %} {% set phone_no =\n\t\t\t\tfrappe.db.get_value(\"Company\", doc.company, \"phone_no\") %}\n\n\t\t\t\t
\n\t\t\t\t\t{{ doc.doctype }}\n\t\t\t\t\t{{ doc.name }}\n\t\t\t\t
\n\t\t\t\t{% if website %}\n\t\t\t\t
\n\t\t\t\t\t{{ _(\"Website:\") }}\n\t\t\t\t\t{{ website }}\n\t\t\t\t
\n\t\t\t\t{% endif %} {% if email %}\n\t\t\t\t
\n\t\t\t\t\t{{ _(\"Email:\") }}\n\t\t\t\t\t{{ email }}\n\t\t\t\t
\n\t\t\t\t{% endif %} {% if phone_no %}\n\t\t\t\t
\n\t\t\t\t\t{{ _(\"Contact:\") }}\n\t\t\t\t\t{{ phone_no }}\n\t\t\t\t
\n\t\t\t\t{% endif %}\n\t\t\t
", + "creation": "2026-05-15 15:21:48.255627", + "custom_css": "\t.letter-head {\n\t\tborder-radius: 18px;\n\t\tpadding-right: 12px;\n\t\tmargin-left: 12px;\n\t\tmargin-right: 12px;\n\t}\n\n\t.letter-head td {\n\t\tpadding: 0px !important;\n\t}\n\t.invoice-header {\n\t\twidth: 100%;\n\t}\n\t.logo-cell {\n\t\twidth: 100px;\n\t\ttext-align: center;\n\t\tposition: relative;\n\t}\n\t.logo-container {\n\t\twidth: 90px;\n\t\tdisplay: block;\n\t}\n\t.logo-container img {\n\t\tmax-width: 90px;\n\t\tmax-height: 90px;\n\t\tdisplay: inline-block;\n\t\tborder-radius: 15px;\n\t}\n\t.company-details {\n\t\twidth: 40%;\n\t\talign-content: center;\n\t}\n\t.company-name {\n\t\tfont-size: 14px;\n\t\tfont-weight: bold;\n\t\tcolor: #171717;\n\t\tmargin-bottom: 4px;\n\t}\n\t.invoice-info-cell {\n\t\tfloat: right;\n\t\tvertical-align: top;\n\t}\n\t.invoice-info {\n\t\tmargin-bottom: 2px;\n\t}\n\t.invoice-label {\n\t\tcolor: #7c7c7c;\n\t\tdisplay: inline-block;\n\t\tmargin-right: 5px;\n\t}", + "disabled": 0, + "docstatus": 0, + "doctype": "Letter Head", + "footer_align": "Left", + "footer_image_height": 0.0, + "footer_image_width": 0.0, + "footer_source": "Image", + "idx": 0, + "image_height": 0.0, + "image_width": 0.0, + "is_default": 0, + "letter_head_for": "DocType", + "letter_head_name": "Company Letterhead", + "modified": "2026-06-24 17:49:52.350750", + "modified_by": "Administrator", + "module": "Accounts", + "name": "Company Letterhead", + "owner": "Administrator", + "source": "HTML", + "standard": "Yes" +} diff --git a/erpnext/accounts/letter_head/company_letterhead___grey/company_letterhead___grey.json b/erpnext/accounts/letter_head/company_letterhead___grey/company_letterhead___grey.json new file mode 100644 index 00000000000..67c03298195 --- /dev/null +++ b/erpnext/accounts/letter_head/company_letterhead___grey/company_letterhead___grey.json @@ -0,0 +1,26 @@ +{ + "align": "Left", + "content": "\n\t\n\t\t\n\t\t\t\n\n\t\t\t\n\t\t\n\t\n
\n\t\t\t\t{% set company_logo = frappe.db.get_value(\"Company\", doc.company, \"company_logo\") %} {% if\n\t\t\t\tcompany_logo %}\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t{% endif %}\n\t\t\t\t{% if doc.company %}
{{ doc.company }}
{% endif %}\n\t\t\t\t
\n\t\t\t\t\t{% if doc.company_address %} {% set company_address = frappe.db.get_value(\"Address\",\n\t\t\t\t\tdoc.company_address, [\"address_line1\", \"address_line2\", \"city\", \"state\", \"pincode\",\n\t\t\t\t\t\"country\"], as_dict=True) %} {% elif doc.billing_address %} {% set company_address =\n\t\t\t\t\tfrappe.db.get_value(\"Address\", doc.billing_address, [\"address_line1\", \"address_line2\",\n\t\t\t\t\t\"city\", \"state\", \"pincode\", \"country\"], as_dict=True) %} {% endif %} {% if company_address\n\t\t\t\t\t%} {{ company_address.address_line1 or \"\" }}
\n\t\t\t\t\t{% if company_address.address_line2 %} {{ company_address.address_line2 }}
\n\t\t\t\t\t{% endif %} {{ company_address.city or \"\" }}, {{ company_address.state or \"\" }} {{\n\t\t\t\t\tcompany_address.pincode or \"\" }}, {{ company_address.country or \"\"}}
\n\t\t\t\t\t{% endif %}\n\t\t\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
{{ doc.doctype }}
\n\t\t\t\t\t
{{ doc.name }}
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t{% if doc.company %}{% set company_details = frappe.db.get_value(\"Company\", doc.company, [\"website\", \"email\",\n\t\t\t\t\t\"phone_no\"], as_dict=True) %}{% set website = company_details.website %}{% set email =\n\t\t\t\t\tcompany_details.email %}{% set phone_no = company_details.phone_no %}{% else %}{% set website = None %}{% set email = None %}{% set phone_no = None %}{% endif %} {% if website %}\n\t\t\t\t\t
\n\t\t\t\t\t\t{{ _(\"Website:\") }}{{ website }}\n\t\t\t\t\t
\n\t\t\t\t\t{% endif %} {% if email %}\n\t\t\t\t\t
\n\t\t\t\t\t\t{{ _(\"Email:\") }}{{ email }}\n\t\t\t\t\t
\n\t\t\t\t\t{% endif %} {% if phone_no %}\n\t\t\t\t\t
\n\t\t\t\t\t\t{{ _(\"Contact:\") }}{{ phone_no }}\n\t\t\t\t\t
\n\t\t\t\t\t{% endif %}\n\t\t\t\t
\n\t\t\t
\n", + "creation": "2026-05-15 15:21:48.373815", + "custom_css": "\t.print-format-preview {\n\t\tmargin-top: 12px;\n\t}\n\t.letter-head {\n\t\tborder-radius: 18px;\n\t\tbackground: #f8f8f8;\n\t\tpadding: 12px;\n\t\tmargin-left: 12px;\n\t\tmargin-right: 12px;\n\t}\n\t.letterhead-container {\n\t\twidth: 100%;\n\t}\n\t.letterhead-container .other-details {\n\t\tposition: absolute;\n\t\tright: 0;\n\t\tbottom: 0;\n\t}\n\t.logo-address {\n\t\twidth: 65%;\n\t\tvertical-align: top;\n\t}\n\n\t.letter-head .logo {\n\t\twidth: 90px;\n\t\tdisplay: block;\n\t\tmargin-bottom: 10px;\n\t}\n\n\t.letter-head .logo img {\n\t\tborder-radius: 15px;\n\t}\n\n\t.company-name {\n\t\tcolor: #171717;\n\t\tfont-weight: bold;\n\t\tline-height: 23px;\n\t\tmargin-bottom: 5px;\n\t}\n\n\t.company-address {\n\t\tcolor: #171717;\n\t\twidth: 300px;\n\t}\n\n\t.invoice-title {\n\t\tfont-weight: bold;\n\t}\n\n\t.invoice-number {\n\t\tcolor: #7c7c7c;\n\t}\n\n\t.contact-title {\n\t\tcolor: #7c7c7c;\n\t\twidth: 60px;\n\t\tdisplay: inline-block;\n\t\tvertical-align: top;\n\t\tmargin-right: 10px;\n\t}\n\n\t.contact-value {\n\t\tcolor: #171717;\n\t\tdisplay: inline-block;\n\t}\n\t.letterhead-container td {\n\t\tpadding: 0px !important;\n\t\tposition: relative;\n\t}", + "disabled": 0, + "docstatus": 0, + "doctype": "Letter Head", + "footer_align": "Left", + "footer_image_height": 0.0, + "footer_image_width": 0.0, + "footer_source": "Image", + "idx": 0, + "image_height": 0.0, + "image_width": 0.0, + "is_default": 0, + "letter_head_for": "DocType", + "letter_head_name": "Company Letterhead - Grey", + "modified": "2026-06-24 18:23:05.120521", + "modified_by": "Administrator", + "module": "Accounts", + "name": "Company Letterhead - Grey", + "owner": "Administrator", + "source": "HTML", + "standard": "Yes" +} diff --git a/erpnext/accounts/letter_head/company_letterhead_report/company_letterhead_report.json b/erpnext/accounts/letter_head/company_letterhead_report/company_letterhead_report.json new file mode 100644 index 00000000000..0417c6c0433 --- /dev/null +++ b/erpnext/accounts/letter_head/company_letterhead_report/company_letterhead_report.json @@ -0,0 +1,26 @@ +{ + "align": "Left", + "content": "\n\t\n\t\t\n\n\t\t\t\n\n\t\t\t\n\n\t\t\t\n\n\t\t\n\t\n
\n\t\t\t\t{% if doc.company %}{% set company = frappe.get_doc(\"Company\", doc.company) %}{% else %}{% set company = frappe._dict() %}{% endif %}\n\n\t\t\t\t
\n\t\t\t\t\t{% if company.company_logo %}\n\t\t\t\t\t\"Company\n\t\t\t\t\t{% endif %}\n\t\t\t\t
\n\t\t\t
\n\t\t\t\t{% if company.name %}
{{ company.name }}
{% endif %}\n\n\t\t\t\t{% set company_address_name = frappe.db.get_value(\n\t\t\t\t\t\"Dynamic Link\",\n\t\t\t\t\t{\n\t\t\t\t\t\t\"link_doctype\": \"Company\",\n\t\t\t\t\t\t\"link_name\": company.name,\n\t\t\t\t\t\t\"parenttype\": \"Address\"\n\t\t\t\t\t},\n\t\t\t\t\t\"parent\"\n\t\t\t\t) %}\n\n\t\t\t\t{% if company_address_name %}\n\t\t\t\t\t{% set company_address = frappe.db.get_value(\n\t\t\t\t\t\t\"Address\",\n\t\t\t\t\t\tcompany_address_name,\n\t\t\t\t\t\t[\"address_line1\", \"address_line2\", \"city\", \"state\", \"pincode\", \"country\"],\n\t\t\t\t\t\tas_dict=True\n\t\t\t\t\t) %}\n\t\t\t\t{% endif %}\n\n\t\t\t\t{% if company_address %}\n\t\t\t\t
\n\t\t\t\t\t{{ company_address.address_line1 or \"\" }}\n\n\t\t\t\t\t{% if company_address.address_line2 %}\n\t\t\t\t\t\t
{{ company_address.address_line2 }}\n\t\t\t\t\t{% endif %}\n\n\t\t\t\t\t
\n\n\t\t\t\t\t{{ company_address.city or \"\" }}\n\t\t\t\t\t{% if company_address.state %}, {{ company_address.state }}{% endif %}\n\t\t\t\t\t{{ company_address.pincode or \"\" }}\n\n\t\t\t\t\t{% if company_address.country %}\n\t\t\t\t\t\t, {{ company_address.country }}\n\t\t\t\t\t{% endif %}\n\t\t\t\t
\n\t\t\t\t{% endif %}\n\t\t\t
\n\n\t\t\t\t{% set website = frappe.db.get_value(\"Company\", doc.company, \"website\") %}\n\t\t\t\t{% set email = frappe.db.get_value(\"Company\", doc.company, \"email\") %}\n\t\t\t\t{% set phone_no = frappe.db.get_value(\"Company\", doc.company, \"phone_no\") %}\n\n\t\t\t\t{% if website %}\n\t\t\t\t
\n\t\t\t\t\t{{ _(\"Website:\") }}\n\t\t\t\t\t{{ website }}\n\t\t\t\t
\n\t\t\t\t{% endif %}\n\n\t\t\t\t{% if email %}\n\t\t\t\t
\n\t\t\t\t\t{{ _(\"Email:\") }}\n\t\t\t\t\t{{ email }}\n\t\t\t\t
\n\t\t\t\t{% endif %}\n\n\t\t\t\t{% if phone_no %}\n\t\t\t\t
\n\t\t\t\t\t{{ _(\"Contact:\") }}\n\t\t\t\t\t{{ phone_no }}\n\t\t\t\t
\n\t\t\t\t{% endif %}\n\t\t\t
", + "creation": "2026-05-15 19:49:47.582252", + "custom_css": ".letter-head {\n\tborder-radius: 18px;\n\tpadding: 8px 10px;\n\tmargin: 10px 0 14px;\n\tfont-family: Inter, sans-serif;\n\tfont-size: 14px;\n\tcolor: #171717;\n}\n\n.letter-head td {\n\tpadding: 0 !important;\n\tvertical-align: middle;\n}\n\n.invoice-header {\n\twidth: 100%;\n\tborder-collapse: collapse;\n\ttable-layout: fixed;\n\tborder-bottom: 1px solid #ededed;\n\tpadding-bottom: 10px;\n}\n\n.logo-cell {\n\twidth: 100px;\n\ttext-align: center;\n\twhite-space: nowrap;\n}\n\n.logo-container {\n\tdisplay: inline-block;\n\tmargin: auto;\n}\n\n.logo-container img {\n\tmax-width: 95px;\n\tmax-height: 95px;\n\tdisplay: block;\n\tborder-radius: 12px;\n}\n\n.company-details {\n\twidth: 55%;\n\tpadding-left: 10px !important;\n\tline-height: 1.5;\n}\n\n.company-name {\n\tfont-size: 14px;\n\tfont-weight: 600;\n\tcolor: #171717;\n\tmargin-bottom: 4px;\n}\n\n.company-address {\n\tfont-size: 14px;\n\tline-height: 1.5;\n\tcolor: #171717;\n}\n\n.invoice-info-cell {\n\twidth: 240px;\n\ttext-align: right;\n\tvertical-align: top !important;\n\tline-height: 1.5;\n}\n\n.document-name {\n\tfont-size: 14px;\n\tfont-weight: 600;\n\tcolor: #171717;\n\tmargin-bottom: 6px;\n}\n\n.invoice-info {\n\tfont-size: 14px;\n\tcolor: #171717;\n\tmargin-bottom: 2px;\n\tfont-variant-numeric: tabular-nums;\n}\n\n.invoice-label {\n\tcolor: #7c7c7c;\n\tfont-weight: 500;\n\tmargin-right: 4px;\n\tdisplay: inline-block;\n}", + "disabled": 0, + "docstatus": 0, + "doctype": "Letter Head", + "footer_align": "Left", + "footer_image_height": 0.0, + "footer_image_width": 0.0, + "footer_source": "Image", + "idx": 0, + "image_height": 0.0, + "image_width": 0.0, + "is_default": 0, + "letter_head_for": "Report", + "letter_head_name": "Company Letterhead Report", + "modified": "2026-06-24 18:06:39.820968", + "modified_by": "Administrator", + "module": "Accounts", + "name": "Company Letterhead Report", + "owner": "Administrator", + "source": "HTML", + "standard": "Yes" +} From 8dd37b6df0964715c9d738aec7141cfea8f61a34 Mon Sep 17 00:00:00 2001 From: Mihir Kandoi Date: Thu, 25 Jun 2026 14:15:18 +0530 Subject: [PATCH 13/54] ci(mariadb): self-hosted fan-out MariaDB CI Backport of #56410 to version-16-hotfix. v16 matches develop on Python 3.14 / Node 24 / --lightmode / payments branch and the ghcr.io/frappe/erpnext-ci-mariadb:py3.14-node24 image, so the fan-out workflow and helpers (start-db.sh, hydrate.sh) apply verbatim; the frappe framework branch resolves automatically from GITHUB_BASE_REF. --- .github/helper/hydrate.sh | 72 +++++ .github/helper/install.sh | 342 ++++++++++++++++++--- .github/helper/start-db.sh | 79 +++++ .github/workflows/server-tests-mariadb.yml | 196 +++++++----- 4 files changed, 565 insertions(+), 124 deletions(-) create mode 100755 .github/helper/hydrate.sh create mode 100755 .github/helper/start-db.sh diff --git a/.github/helper/hydrate.sh b/.github/helper/hydrate.sh new file mode 100755 index 00000000000..1372bc393a3 --- /dev/null +++ b/.github/helper/hydrate.sh @@ -0,0 +1,72 @@ +#!/bin/bash +# +# Hydrate a test shard from the setup job's artifact. +# +# The bench (apps, venv, node_modules, sites) is already on disk at ~/frappe-bench — the +# workflow untar'd it from the artifact the setup job built. So there is NO bench init, no +# asset build, and no reinstall here: just bring the DB up on the baked datadir and start redis +# so tests can run. The whole point is that the expensive work happened ONCE in the setup job. +# +set -e + +ci_user="${ERPNEXT_CI_USER:-frappe}" +db_host="${DB_HOST:-127.0.0.1}" + +# Re-exec as the ci user (uid 1001) so bench/cache ownership matches the artifact, same as +# install.sh. The workflow untar'd as root with -p, so the files are already owned by ci. +if [ "$(id -u)" = "0" ] && [ "${SKIP_SYSTEM_SETUP:-0}" = "1" ] && [ "$ci_user" != "root" ]; then + exec su -m "$ci_user" -s /bin/bash -c \ + "ERPNEXT_CI_USER='$ci_user' DB_HOST='$db_host' DB='${DB:-}' bash '$0'" +fi + +cd ~/frappe-bench + +# Start the DB on the datadir baked into the artifact. It's already populated (the setup job +# reinstalled into this very datadir), so there is NO restore — the server comes up on the +# existing files. This is what replaces the per-shard SQL replay. +bash ~/frappe-bench/start-db.sh + +# Bring up redis (lightmode unit tests need cache + queue). In the self-hosted container we use the +# full `bench start` (web/workers too, like install.sh). On the bare GitHub Postgres shard +# `bench start` (honcho) lagged — it blocks the redis procs behind web/worker procs the lightmode +# suite never uses, so the wait below burned its full timeout (~4m). There, start the two redis +# instances directly: fast and deterministic. +if [ "${DB:-mariadb}" = "postgres" ]; then + # Start redis directly as daemons — reliable and persists across steps. Do NOT route it through + # `bench start`: honcho tears the whole process group down if any one Procfile proc dies on the + # bare shard, which took redis with it (redis @ 13000 refused in Run Tests). Keeping redis + # independent is what makes it survive. The web server (for PDF tests) is NOT started here — a + # backgrounded server doesn't survive into the next step; it's started inside the Run Tests step. + for conf in redis_cache redis_queue; do + [ -f ~/frappe-bench/config/$conf.conf ] && redis-server ~/frappe-bench/config/$conf.conf --daemonize yes + done +else + bench start >> ~/frappe-bench/bench_start.log 2>&1 & +fi + +# Wait for redis, failing fast instead of silently burning minutes if it never comes up. +cfg=~/frappe-bench/sites/common_site_config.json +if [ -f "$cfg" ]; then + ports=$(python - "$cfg" <<'PY' +import json, re, sys +try: + cfg = json.load(open(sys.argv[1])) +except Exception: + sys.exit(0) +for key in ("redis_cache", "redis_queue"): + m = re.search(r":(\d+)", str(cfg.get(key, ""))) + if m: + print(m.group(1)) +PY +) + for port in $ports; do + up=0 + for _ in $(seq 1 60); do + if (exec 3<>"/dev/tcp/127.0.0.1/$port") 2>/dev/null; then exec 3>&- 3<&-; up=1; break; fi + sleep 1 + done + [ "$up" = "1" ] || { echo "redis did not come up on port $port"; exit 1; } + done +fi + +echo "Hydrated: DB up on baked datadir, redis up — ready for tests." diff --git a/.github/helper/install.sh b/.github/helper/install.sh index e14e62b92b0..34e777506c9 100644 --- a/.github/helper/install.sh +++ b/.github/helper/install.sh @@ -7,21 +7,106 @@ cd ~ || exit githubbranch=${GITHUB_BASE_REF:-${GITHUB_REF##*/}} frappeuser=${FRAPPE_USER:-"frappe"} frappecommitish=${FRAPPE_BRANCH:-$githubbranch} +db_host=${DB_HOST:-"127.0.0.1"} +db_user_host=${DB_USER_HOST:-"localhost"} +wkhtmltox_deb=${WKHTMLTOX_DEB:-"/tmp/wkhtmltox.deb"} +bench_cache_dir=${BENCH_CACHE_DIR:-} + +run_as_ci_user_if_needed() { + if [ "$(id -u)" != "0" ] || [ "${SKIP_SYSTEM_SETUP:-0}" != "1" ] || [ "${ERPNEXT_CI_NON_ROOT:-0}" = "1" ]; then + return + fi + + local missing_packages=() + if ! command -v pkg-config >/dev/null 2>&1; then + missing_packages+=("pkg-config") + fi + if ! command -v mariadb_config >/dev/null 2>&1 && ! command -v mysql_config >/dev/null 2>&1; then + missing_packages+=("libmariadb-dev") + fi + if ! command -v crontab >/dev/null 2>&1; then + missing_packages+=("cron") + fi + + if [ "${#missing_packages[@]}" -gt 0 ]; then + apt-get update + apt-get install -y --no-install-recommends "${missing_packages[@]}" + fi + + local ci_user="${ERPNEXT_CI_USER:-frappe}" + + if ! id "$ci_user" >/dev/null 2>&1; then + useradd --home-dir "$HOME" --no-create-home --shell /bin/bash "$ci_user" + fi + + rm -rf ~/frappe ~/frappe-bench + + local ci_dirs=( + "$HOME" + "$GITHUB_WORKSPACE" + "$HOME/.cache" + "${PIP_CACHE_DIR:-$HOME/.cache/pip}" + "${npm_config_cache:-$HOME/.npm}" + "${YARN_CACHE_FOLDER:-$HOME/.cache/yarn}" + "$HOME/.yarn" + "${UV_CACHE_DIR:-$HOME/.cache/uv}" + "$(dirname "$wkhtmltox_deb")" + ) + if [ -n "$bench_cache_dir" ]; then + ci_dirs+=("$bench_cache_dir") + fi + + # Create + own (non-recursively) the home/cache/workspace dirs before dropping to + # the ci user. We deliberately do NOT wipe the yarn/uv caches here so a persistent + # cache (mounted volume or baked image layer) stays warm across runs. + mkdir -p "${ci_dirs[@]}" "$HOME/.yarn" + chown "$ci_user:$ci_user" "${ci_dirs[@]}" "$HOME/.yarn" + + export ERPNEXT_CI_NON_ROOT=1 + exec su -m "$ci_user" -s /bin/bash -c "cd '$HOME' && bash '$GITHUB_WORKSPACE/.github/helper/install.sh'" +} + +run_as_ci_user_if_needed + +run_ci_step() { + local label=$1 + shift + + echo "::group::${label}" + date -u + local exit_code=0 + timeout --foreground "${CI_INSTALL_STEP_TIMEOUT:-1800}" "$@" || exit_code=$? + date -u + echo "::endgroup::" + return "$exit_code" +} + +if [ -n "${GITHUB_WORKSPACE:-}" ]; then + git config --global --add safe.directory "$GITHUB_WORKSPACE" || true + git config --global --add safe.directory "$GITHUB_WORKSPACE/.git" || true +fi + +rm -rf ~/frappe ~/frappe-bench # --------------------------------------------------------------------------- # Phase 1 — parallelise the three slow, independent setup steps: # a) system packages b) frappe-bench pip install c) frappe git fetch # --------------------------------------------------------------------------- -sudo apt update +if [ "${SKIP_SYSTEM_SETUP:-0}" != "1" ]; then + sudo apt-get update -# apt remove/install must run sequentially but can overlap with pip and git. -sudo apt remove mysql-server mysql-client -sudo apt install libcups2-dev redis-server mariadb-client libmariadb-dev & -apt_pid=$! + # apt remove/install must run sequentially but can overlap with pip and git. + sudo apt-get remove -y mysql-server mysql-client + sudo apt-get install -y libcups2-dev redis-server mariadb-client libmariadb-dev & + apt_pid=$! -pip install frappe-bench & -pip_pid=$! + pip install frappe-bench & + pip_pid=$! +else + apt_pid= + pip_pid= +fi mkdir frappe ( @@ -32,76 +117,247 @@ mkdir frappe ) & clone_pid=$! -wait $apt_pid -wait $pip_pid +if [ -n "$apt_pid" ]; then wait $apt_pid; fi +if [ -n "$pip_pid" ]; then wait $pip_pid; fi wait $clone_pid pushd frappe git checkout FETCH_HEAD popd +frappe_sha=$(git -C frappe rev-parse HEAD) + +get_bench_cache_archive() { + if [ -z "$bench_cache_dir" ]; then + return + fi + + mkdir -p "$bench_cache_dir" + + # Keyed on tool versions only (NOT the frappe SHA): any recent base bench works, because + # restore_warm_bench fast-forwards it to the exact live develop SHA. This is what lets a + # constantly-moving develop still hit the cache. + local cache_key + cache_key=$( + { + uname -m + python --version + node --version + bench --version + } | sha256sum | awk '{print $1}' + ) + + echo "${bench_cache_dir}/frappe-bench-base-${cache_key}.tar.zst" +} + +restore_warm_bench() { + bench_cache_archive=$(get_bench_cache_archive) + [ -n "$bench_cache_archive" ] && [ -f "$bench_cache_archive" ] || return 1 + + echo "Restoring base bench from ${bench_cache_archive}" + tar --use-compress-program=unzstd -xf "$bench_cache_archive" -C ~ || return 1 + [ -d ~/frappe-bench/apps/frappe/.git ] || return 1 + mkdir -p ~/frappe-bench/sites ~/frappe-bench/logs + [ -f ~/frappe-bench/sites/apps.txt ] || printf "frappe\n" > ~/frappe-bench/sites/apps.txt + [ -f ~/frappe-bench/sites/common_site_config.json ] || printf "{}\n" > ~/frappe-bench/sites/common_site_config.json + + # Fast-forward the restored frappe to the EXACT live develop SHA fetched in phase 1, then + # rebuild only what changed. The editable install means the venv tracks the new code with + # no reinstall. Any failure returns non-zero so the caller falls back to a full bench init. + if ! ( + cd ~/frappe-bench/apps/frappe || exit 1 + # Phase 1 already fetched ~/frappe to the exact live develop SHA. Fetch that commit + # straight from it (bench init names the remote 'upstream', not 'origin', and points + # it at this local clone — so a plain `git fetch origin` does not work). + git fetch --no-tags "$HOME/frappe" HEAD || exit 1 + git checkout --force FETCH_HEAD || exit 1 + ); then + echo "Fast-forward to ${frappe_sha} failed; falling back to full init" + rm -rf ~/frappe-bench + return 1 + fi + + # Pick up any frappe dependency changes since the base was built (cached → fast if none), + # so a develop commit that bumped requirements doesn't leave a stale venv. + if ! ~/frappe-bench/env/bin/python -m pip install -q -e ~/frappe-bench/apps/frappe; then + echo "frappe dependency refresh failed; falling back to full init" + rm -rf ~/frappe-bench + return 1 + fi + + ( cd ~/frappe-bench && CI=Yes bench build --app frappe ) || { rm -rf ~/frappe-bench; return 1; } + return 0 +} + +save_warm_bench() { + if [ -z "${bench_cache_archive:-}" ] || [ -f "$bench_cache_archive" ]; then + return + fi + + if [ -n "$bench_cache_dir" ] && [ ! -w "$bench_cache_dir" ]; then + echo "Skipping warm bench save because ${bench_cache_dir} is not writable" + return + fi + + local tmp_archive + tmp_archive="${bench_cache_archive}.${$}.tmp" + + echo "Saving warm bench to ${bench_cache_archive}" + # Keep sites/common_site_config.json (the redis ports live there — dropping it makes the + # restore path fall back to a default redis port that bench start never bound, so reinstall + # fails with "redis ... connection refused"). Only the rebuildable sites/assets is excluded; + # restore_warm_bench runs `bench build` to regenerate it. + tar \ + --use-compress-program="zstd -T0 -3" \ + --exclude="frappe-bench/logs" \ + --exclude="frappe-bench/sites/assets" \ + -cf "$tmp_archive" \ + -C ~ frappe-bench + mv "$tmp_archive" "$bench_cache_archive" +} # --------------------------------------------------------------------------- # Phase 2 — bench init and site setup # --------------------------------------------------------------------------- -bench init --skip-assets --frappe-path ~/frappe --python "$(which python)" frappe-bench +install_whktml() { + # Re-use the .deb if the wkhtmltopdf cache step already restored it. + if [ ! -f "$wkhtmltox_deb" ]; then + wget -O "$wkhtmltox_deb" https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox_0.12.6.1-2.jammy_amd64.deb + fi + sudo apt-get install -y "$wkhtmltox_deb" +} +if [ "${SKIP_WKHTMLTOX_SETUP:-0}" != "1" ]; then + install_whktml & + wkpid=$! +else + wkpid= +fi -mkdir ~/frappe-bench/sites/test_site +if ! restore_warm_bench; then + bench init --skip-assets --frappe-path ~/frappe --python "$(which python)" frappe-bench + + cd ~/frappe-bench || exit + + sed -i 's/watch:/# watch:/g' Procfile + sed -i 's/schedule:/# schedule:/g' Procfile + sed -i 's/socketio:/# socketio:/g' Procfile + sed -i 's/redis_socketio:/# redis_socketio:/g' Procfile + + CI=Yes bench build --app frappe + save_warm_bench +fi + +if [ -n "$wkpid" ]; then wait $wkpid; fi + +mkdir -p ~/frappe-bench/sites/test_site if [ "$DB" == "mariadb" ];then cp -r "${GITHUB_WORKSPACE}/.github/helper/site_config_mariadb.json" ~/frappe-bench/sites/test_site/site_config.json + if [ "$db_host" != "127.0.0.1" ]; then + sed -i "s/\"db_host\": \"127.0.0.1\"/\"db_host\": \"${db_host}\"/" ~/frappe-bench/sites/test_site/site_config.json + fi else cp -r "${GITHUB_WORKSPACE}/.github/helper/site_config_postgres.json" ~/frappe-bench/sites/test_site/site_config.json fi if [ "$DB" == "mariadb" ];then - mariadb --host 127.0.0.1 --port 3306 -u root -proot -e "SET GLOBAL character_set_server = 'utf8mb4'" - mariadb --host 127.0.0.1 --port 3306 -u root -proot -e "SET GLOBAL collation_server = 'utf8mb4_unicode_ci'" + for _ in {1..60}; do + if mariadb-admin ping --host "$db_host" --port 3306 -u root -proot --silent; then + break + fi + sleep 1 + done + mariadb-admin ping --host "$db_host" --port 3306 -u root -proot --silent - # Belt-and-suspenders: also set performance variables at runtime in case - # MARIADB_EXTRA_FLAGS was not honoured by the container image. - mariadb --host 127.0.0.1 --port 3306 -u root -proot \ + mariadb --host "$db_host" --port 3306 -u root -proot -e "SET GLOBAL character_set_server = 'utf8mb4'" + mariadb --host "$db_host" --port 3306 -u root -proot -e "SET GLOBAL collation_server = 'utf8mb4_unicode_ci'" + + # Throwaway-DB durability tuning at runtime. (innodb_doublewrite is read-only on MariaDB + # 10.6, so it can't be disabled here — would need a server startup flag.) + mariadb --host "$db_host" --port 3306 -u root -proot \ -e "SET GLOBAL innodb_flush_log_at_trx_commit=0; SET GLOBAL sync_binlog=0;" - mariadb --host 127.0.0.1 --port 3306 -u root -proot -e "CREATE USER 'test_frappe'@'localhost' IDENTIFIED BY 'test_frappe'" - mariadb --host 127.0.0.1 --port 3306 -u root -proot -e "CREATE DATABASE test_frappe" - mariadb --host 127.0.0.1 --port 3306 -u root -proot -e "GRANT ALL PRIVILEGES ON \`test_frappe\`.* TO 'test_frappe'@'localhost'" + # Opt-in DDL speedup: a shared tablespace avoids a create+fsync per DocType table during + # reinstall — a big win under disk contention. But ROW_FORMAT=DYNAMIC must be accepted in + # the system tablespace on this MariaDB. Enable with CI_INNODB_SHARED_TABLESPACE=1; if + # reinstall then errors on table creation, unset it (off by default — zero risk). + if [ "${CI_INNODB_SHARED_TABLESPACE:-0}" = "1" ]; then + mariadb --host "$db_host" --port 3306 -u root -proot -e "SET GLOBAL innodb_file_per_table=0;" + fi - mariadb --host 127.0.0.1 --port 3306 -u root -proot -e "FLUSH PRIVILEGES" + mariadb --host "$db_host" --port 3306 -u root -proot -e "CREATE USER 'test_frappe'@'${db_user_host}' IDENTIFIED BY 'test_frappe'" + mariadb --host "$db_host" --port 3306 -u root -proot -e "CREATE DATABASE test_frappe" + mariadb --host "$db_host" --port 3306 -u root -proot -e "GRANT ALL PRIVILEGES ON \`test_frappe\`.* TO 'test_frappe'@'${db_user_host}'" + + mariadb --host "$db_host" --port 3306 -u root -proot -e "FLUSH PRIVILEGES" fi if [ "$DB" == "postgres" ];then echo "travis" | psql -h 127.0.0.1 -p 5432 -c "CREATE DATABASE test_frappe" -U postgres; echo "travis" | psql -h 127.0.0.1 -p 5432 -c "CREATE USER test_frappe WITH PASSWORD 'test_frappe'" -U postgres; + + # Disposable CI DB: durability off for speed (postgres fsyncs every commit by default, which + # dominates a commit-heavy suite). All reloadable, no restart. The postgres workflow runs a + # service-container DB and never calls start-db.sh, so the flags must be applied here. + echo "travis" | psql -h 127.0.0.1 -p 5432 -U postgres \ + -c "ALTER SYSTEM SET synchronous_commit = 'off'" \ + -c "ALTER SYSTEM SET fsync = 'off'" \ + -c "ALTER SYSTEM SET full_page_writes = 'off'" \ + -c "SELECT pg_reload_conf()"; fi - -install_whktml() { - # Re-use the .deb if the wkhtmltopdf cache step already restored it. - if [ ! -f /tmp/wkhtmltox.deb ]; then - wget -O /tmp/wkhtmltox.deb https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox_0.12.6.1-2.jammy_amd64.deb - fi - sudo apt install /tmp/wkhtmltox.deb -} -install_whktml & -wkpid=$! - - cd ~/frappe-bench || exit -sed -i 's/watch:/# watch:/g' Procfile -sed -i 's/schedule:/# schedule:/g' Procfile -sed -i 's/socketio:/# socketio:/g' Procfile -sed -i 's/redis_socketio:/# redis_socketio:/g' Procfile +run_ci_step "Get payments app" bench get-app payments --branch develop -bench get-app payments --branch develop -bench get-app erpnext "${GITHUB_WORKSPACE}" +# Opt-in: skip building erpnext's frontend assets. Server tests don't need them, but PDF +# tests (print formats) do — they pass only if the PDF renderer ignores missing assets. +# Enable with CI_SKIP_ERPNEXT_ASSETS=1 to test; if PDF tests fail, unset it. +erpnext_get_app_args=() +if [ "${CI_SKIP_ERPNEXT_ASSETS:-0}" = "1" ]; then erpnext_get_app_args=(--skip-assets); fi +run_ci_step "Get erpnext app" bench get-app erpnext "${GITHUB_WORKSPACE}" "${erpnext_get_app_args[@]}" -if [ "$TYPE" == "server" ]; then bench setup requirements --dev; fi +if [ "$TYPE" == "server" ]; then run_ci_step "Setup dev requirements" bench setup requirements --dev; fi -wait $wkpid +bench start >> ~/frappe-bench/bench_start.log 2>&1 & -bench start &>> ~/frappe-bench/bench_start.log & -CI=Yes bench build --app frappe & -bench --site test_site reinstall --yes +# Under heavy concurrency, gunicorn's startup can delay redis coming up. reinstall and the +# tests need redis, so wait for it (best-effort, bounded) instead of racing — contention +# then slows the job rather than failing it. +wait_for_redis() { + local cfg=~/frappe-bench/sites/common_site_config.json + [ -f "$cfg" ] || return 0 + local ports port + ports=$(python - "$cfg" <<'PY' +import json, re, sys +try: + cfg = json.load(open(sys.argv[1])) +except Exception: + sys.exit(0) +for key in ("redis_cache", "redis_queue"): + match = re.search(r":(\d+)", str(cfg.get(key, ""))) + if match: + print(match.group(1)) +PY +) + for port in $ports; do + local up=0 + for _ in $(seq 1 120); do + if (exec 3<>"/dev/tcp/127.0.0.1/$port") 2>/dev/null; then + exec 3>&- 3<&-; up=1 + break + fi + sleep 1 + done + # Fail clearly instead of letting reinstall die later on a vague socket-connection error + # when redis never bound. + [ "$up" = "1" ] || { echo "redis did not come up on port $port"; return 1; } + done +} +wait_for_redis + +# Site setup: build the schema (~1000 DocTypes) into the DB. This is the single-threaded-Python +# bottleneck, but the fan-out amortises it — it runs once here in the setup job, and the test +# shards start the DB on the baked datadir instead of repeating the reinstall. +run_ci_step "Reinstall test site" bench --site test_site reinstall --yes diff --git a/.github/helper/start-db.sh b/.github/helper/start-db.sh new file mode 100755 index 00000000000..507c33bb7e4 --- /dev/null +++ b/.github/helper/start-db.sh @@ -0,0 +1,79 @@ +#!/bin/bash +# +# Run MariaDB INSIDE the runner container, on a datadir we control. Because the datadir can be +# packaged into the bench artifact, test shards start an already-loaded server instead of +# replaying a SQL dump (the ~60s hydrate restore). Each shard gets its own copy → isolation kept. +# +# CI_DB_DATADIR picks the path: +# - setup job: /home/ci/db-data (OUTSIDE the bench, so install.sh's `rm -rf ~/frappe-bench` +# doesn't wipe it; it's moved into the bench just before packaging) +# - test shard: ~/frappe-bench/mariadb-data (where the artifact untar'd it) +# +# Idempotent: inits a fresh datadir if absent (setup), else starts on the existing one (shards). +# +set -e + +ci_user="${ERPNEXT_CI_USER:-frappe}" + +# Re-exec as the ci user so mariadbd and the datadir are owned consistently (root mariadbd is +# refused anyway). Mirrors install.sh's user switch. +if [ "$(id -u)" = "0" ] && [ "${SKIP_SYSTEM_SETUP:-0}" = "1" ] && [ "$ci_user" != "root" ]; then + exec su -m "$ci_user" -s /bin/bash -c \ + "ERPNEXT_CI_USER='$ci_user' CI_DB_DATADIR='${CI_DB_DATADIR:-}' DB='${DB:-}' bash '$0'" +fi + +# --- PostgreSQL (GitHub-hosted CI): run in-runner on a PGDATA so it bakes into the artifact, +# same idea as the mariadb datadir. Trust auth (throwaway CI) skips password setup; durability +# off for speed. Postgres is preinstalled on ubuntu-latest under /usr/lib/postgresql//bin. +if [ "${DB:-mariadb}" = "postgres" ]; then + PG_BIN=$(ls -d /usr/lib/postgresql/*/bin 2>/dev/null | sort -V | tail -1) + [ -n "$PG_BIN" ] && export PATH="$PG_BIN:$PATH" + PGDATA="${CI_DB_DATADIR:-$HOME/frappe-bench/pgdata}" + if [ ! -d "$PGDATA/base" ]; then + initdb -D "$PGDATA" -U postgres --auth-local=trust --auth-host=trust >/dev/null + echo "host all all 127.0.0.1/32 trust" >> "$PGDATA/pg_hba.conf" + fi + pg_ctl -D "$PGDATA" -w -o "-p 5432 -c listen_addresses=127.0.0.1 -c unix_socket_directories=$PGDATA -c fsync=off -c synchronous_commit=off -c full_page_writes=off" start + echo "PostgreSQL up in-runner (pgdata=$PGDATA)" + exit 0 +fi + +# --- MariaDB --- +DATADIR="${CI_DB_DATADIR:-$HOME/frappe-bench/mariadb-data}" +SOCK="$DATADIR/mysqld.sock" +fresh=0 + +if [ ! -d "$DATADIR/mysql" ]; then + mkdir -p "$DATADIR" + mariadb-install-db --no-defaults --datadir="$DATADIR" \ + --auth-root-authentication-method=normal --skip-test-db >/dev/null 2>&1 + fresh=1 +fi + +# Throwaway-CI durability off; bind TCP 127.0.0.1:3306 so bench/install.sh connect as usual. +mariadbd --no-defaults --datadir="$DATADIR" --socket="$SOCK" --pid-file="$DATADIR/mysqld.pid" \ + --port=3306 --bind-address=127.0.0.1 \ + --innodb-flush-log-at-trx-commit=0 --sync-binlog=0 --skip-log-bin \ + > "$HOME/mariadb.log" 2>&1 & + +up=0 +for _ in $(seq 1 60); do + if mariadb-admin --socket="$SOCK" ping --silent 2>/dev/null; then up=1; break; fi + sleep 1 +done +# Fail loudly instead of letting the loop fall through (exit 0 of the last `sleep`) into SQL that +# would error with a vague socket-connection failure. +[ "$up" = "1" ] || { echo "mariadbd did not come up on $SOCK"; cat "$HOME/mariadb.log" 2>/dev/null; exit 1; } + +if [ "$fresh" = "1" ]; then + # A fresh datadir has only a password-less root@localhost. Give it the password install.sh + # uses, plus a TCP-reachable root@127.0.0.1, so the rest of install.sh works unchanged. + mariadb --no-defaults --socket="$SOCK" -u root <<'SQL' +ALTER USER 'root'@'localhost' IDENTIFIED BY 'root'; +CREATE USER IF NOT EXISTS 'root'@'127.0.0.1' IDENTIFIED BY 'root'; +GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' WITH GRANT OPTION; +FLUSH PRIVILEGES; +SQL +fi + +echo "MariaDB up in-container (datadir=$DATADIR, fresh=$fresh)" diff --git a/.github/workflows/server-tests-mariadb.yml b/.github/workflows/server-tests-mariadb.yml index 0a9b094bc51..5c417fb9137 100644 --- a/.github/workflows/server-tests-mariadb.yml +++ b/.github/workflows/server-tests-mariadb.yml @@ -31,51 +31,49 @@ on: permissions: contents: read + packages: read concurrency: group: server-mariadb-develop-${{ github.event_name }}-${{ github.event.number || github.event_name == 'workflow_dispatch' && github.run_id || '' }} cancel-in-progress: true +# Shared across both jobs. Both run in the SAME CI image so the bench lives at the identical +# path (/home/ci/frappe-bench) on the setup runner and the test shards — that's what makes the +# packaged Python venv portable between them. +env: + TZ: 'Asia/Kolkata' + DEBIAN_FRONTEND: noninteractive + NODE_ENV: "production" + WITH_COVERAGE: ${{ github.event_name != 'pull_request' }} + ERPNEXT_CI_USER: ci + PIP_CACHE_DIR: /home/ci/.cache/pip + npm_config_cache: /home/ci/.cache/npm + YARN_CACHE_FOLDER: /home/ci/.cache/yarn + UV_CACHE_DIR: /home/ci/.cache/uv + jobs: - test: - runs-on: ubuntu-latest - timeout-minutes: 60 - env: - TZ: 'Asia/Kolkata' - NODE_ENV: "production" - WITH_COVERAGE: ${{ github.event_name != 'pull_request' }} - - strategy: - fail-fast: false - - matrix: - container: [1, 2, 3, 4] - - name: Python Unit Tests - - services: - mysql: - image: mariadb:10.6 - env: - TZ: 'Asia/Kolkata' - MARIADB_ROOT_PASSWORD: 'root' - # Disable durability guarantees that are unnecessary in a throwaway CI container. - # innodb_flush_log_at_trx_commit=0 avoids an fsync on every commit (biggest win). - # sync_binlog=0 skips binary-log syncs; innodb_doublewrite=0 skips the doublewrite buffer. - MARIADB_EXTRA_FLAGS: --innodb-flush-log-at-trx-commit=0 --sync-binlog=0 --innodb-doublewrite=0 - ports: - - 3306:3306 - options: --health-cmd="mariadb-admin ping" --health-interval=5s --health-timeout=2s --health-retries=3 - + # Build the bench (clone + pip + yarn + assets) and reinstall test_site ONCE, on a free + # GitHub-hosted runner, then publish the whole bench (with a DB dump baked in) as an artifact. + # The expensive, non-parallelisable work happens here exactly once instead of on every shard. + setup: + name: Build & reinstall (setup) + # Dedicated scale set (fat cpu request) so the build+reinstall runs at full speed, uncontended + # by the many thin test shards. Same CI image + /home/ci path + 127.0.0.1 DB as the shards, + # so the packaged bench (and its venv) transplants cleanly. + runs-on: erpnext-arc-setup + timeout-minutes: 40 + container: + image: ghcr.io/frappe/erpnext-ci-mariadb:py3.14-node24 + credentials: + username: ${{ secrets.GHCR_USERNAME || github.actor }} + password: ${{ secrets.GHCR_TOKEN || github.token }} + defaults: + run: + shell: bash steps: - name: Clone uses: actions/checkout@v6 - - name: Setup Python - uses: actions/setup-python@v6 - with: - python-version: '3.14' - - name: Check for valid Python & Merge Conflicts run: | python -m compileall -fq "${GITHUB_WORKSPACE}" @@ -84,53 +82,17 @@ jobs: exit 1 fi - - name: Setup Node - uses: actions/setup-node@v6 - with: - node-version: 24 - check-latest: true - - name: Add to Hosts run: echo "127.0.0.1 test_site" | sudo tee -a /etc/hosts - - name: Cache pip - uses: actions/cache@v4 - with: - path: ~/.cache/pip - key: ${{ runner.os }}-pip-${{ hashFiles('**/*requirements.txt', '**/pyproject.toml') }} - restore-keys: | - ${{ runner.os }}-pip- - ${{ runner.os }}- - - - name: Cache node modules - uses: actions/cache@v4 + # MariaDB runs in-container on a datadir OUTSIDE the bench, because install.sh's next step + # does `rm -rf ~/frappe-bench`. After the reinstall, the datadir is moved into the bench so + # it ships in the artifact — test shards then start an already-loaded server (no restore). + - name: Start DB + run: bash ${GITHUB_WORKSPACE}/.github/helper/start-db.sh env: - cache-name: cache-node-modules - with: - path: ~/.npm - key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} - restore-keys: | - ${{ runner.os }}-build-${{ env.cache-name }}- - ${{ runner.os }}-build- - ${{ runner.os }}- - - - name: Get yarn cache directory path - id: yarn-cache-dir-path - run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT - - - uses: actions/cache@v4 - id: yarn-cache - with: - path: ${{ steps.yarn-cache-dir-path.outputs.dir }} - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-yarn- - - - name: Cache wkhtmltopdf - uses: actions/cache@v4 - with: - path: /tmp/wkhtmltox.deb - key: wkhtmltox-0.12.6.1-2-jammy-amd64 + SKIP_SYSTEM_SETUP: "1" + CI_DB_DATADIR: /home/ci/db-data - name: Install run: bash ${GITHUB_WORKSPACE}/.github/helper/install.sh @@ -139,9 +101,81 @@ jobs: TYPE: server FRAPPE_USER: ${{ github.event.inputs.user }} FRAPPE_BRANCH: ${{ github.event.client_payload.sha || github.event.inputs.branch }} + DB_HOST: 127.0.0.1 + DB_USER_HOST: '%' + WKHTMLTOX_DEB: /tmp/wkhtmltox.deb + SKIP_SYSTEM_SETUP: "1" + SKIP_WKHTMLTOX_SETUP: "1" + + # Clean shutdown (consistent InnoDB datadir), then stage it inside the bench for packaging. + - name: Stop DB and stage datadir + run: | + mariadb-admin -h 127.0.0.1 -P 3306 -u root -proot shutdown || true + for _ in $(seq 1 30); do [ -f /home/ci/db-data/mysqld.pid ] || break; sleep 1; done + # Don't bake a dirty datadir — fail if mariadbd didn't finish stopping, rather than ship + # an inconsistent datadir the shards would have to crash-recover. + [ -f /home/ci/db-data/mysqld.pid ] && { echo "mariadbd did not shut down cleanly"; exit 1; } + mv /home/ci/db-data /home/ci/frappe-bench/mariadb-data + + # Package the whole bench (apps, venv, node_modules, sites, the DB dump, and hydrate.sh) + # into one artifact for the test shards to consume. + # Single-node hand-off: stage the bench on a node-local hostPath instead of round-tripping + # through GitHub artifact storage (~60s/shard). Setup and shards share the same disk, so + # the shards just untar it locally. NOTE: this assumes one node — a shard on a different + # node could not read this path (then you'd need GitHub artifacts or an NFS/RWX volume). + - name: Stage bench on node (hostPath) + run: | + cp "${GITHUB_WORKSPACE}/.github/helper/hydrate.sh" /home/ci/frappe-bench/hydrate.sh + cp "${GITHUB_WORKSPACE}/.github/helper/start-db.sh" /home/ci/frappe-bench/start-db.sh + mkdir -p /opt/ci-bench-staging + # self-clean: drop bench tars from runs older than 2h + find /opt/ci-bench-staging -maxdepth 1 -name '*.tar.gz' -mmin +120 -delete 2>/dev/null || true + # Exclude .git/node_modules; the mariadb-data datadir IS included (the pre-loaded DB). + tar czpf "/opt/ci-bench-staging/${GITHUB_RUN_ID}.tar.gz" -C /home/ci \ + --exclude='.git' --exclude='node_modules' frappe-bench + ls -lh "/opt/ci-bench-staging/${GITHUB_RUN_ID}.tar.gz" + + # Fan-out: each shard downloads the bench, untars it, starts MariaDB on the baked datadir, and + # runs its slice of the suite. No clone, no build, no reinstall, no DB dump restore on the shards. + test: + name: Python Unit Tests + needs: setup + runs-on: erpnext-arc + timeout-minutes: 60 + container: + image: ghcr.io/frappe/erpnext-ci-mariadb:py3.14-node24 + credentials: + username: ${{ secrets.GHCR_USERNAME || github.actor }} + password: ${{ secrets.GHCR_TOKEN || github.token }} + defaults: + run: + shell: bash + + strategy: + fail-fast: false + matrix: + container: [1, 2, 3, 4] + + steps: + - name: Add to Hosts + run: echo "127.0.0.1 test_site" | sudo tee -a /etc/hosts + + # Read the bench straight from the node-local hostPath the setup job staged it on — no + # GitHub download. -p preserves the ci (uid 1001) ownership so bench runs as ci cleanly. + - name: Untar bench from node (hostPath) + run: | + tar xzpf "/opt/ci-bench-staging/${GITHUB_RUN_ID}.tar.gz" -C /home/ci + ls -ld /home/ci/frappe-bench + + - name: Hydrate (start DB on baked datadir + bench start) + run: bash /home/ci/frappe-bench/hydrate.sh + env: + DB_HOST: 127.0.0.1 + SKIP_SYSTEM_SETUP: "1" - name: Run Tests run: | + su -m "${ERPNEXT_CI_USER:-frappe}" -s /bin/bash <<'EOF' cd ~/frappe-bench/ coverage_flag="" if [ "$WITH_COVERAGE" = "true" ]; then coverage_flag="--with-coverage"; fi @@ -149,10 +183,10 @@ jobs: --total-builds ${{ strategy.job-total }} \ --build-number ${{ matrix.container }} \ $coverage_flag + EOF env: TYPE: server - - name: Show bench output if: ${{ always() }} run: cat ~/frappe-bench/bench_start.log || true @@ -162,11 +196,11 @@ jobs: uses: actions/upload-artifact@v4 with: name: coverage-${{ matrix.container }} - path: /home/runner/frappe-bench/sites/coverage.xml + path: /home/ci/frappe-bench/sites/coverage.xml coverage: name: Coverage Wrap Up - needs: test + needs: [test] if: ${{ github.event_name != 'pull_request' }} runs-on: ubuntu-latest steps: From 37ec2d0edd439a6dd49c4506d889b0977dcfb183 Mon Sep 17 00:00:00 2001 From: Shllokkk Date: Thu, 25 Jun 2026 14:55:47 +0530 Subject: [PATCH 14/54] fix: remove frappe.utils from jinja context in process statement of accounts --- .../process_statement_of_accounts.py | 1 - 1 file changed, 1 deletion(-) diff --git a/erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py b/erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py index 1f769c50539..f9cc4474d7e 100644 --- a/erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py +++ b/erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py @@ -416,7 +416,6 @@ def get_context(customer, doc): return { "doc": template_doc, "customer": frappe.get_doc("Customer", customer), - "frappe": frappe.utils, } From 831d25bed7e63efd71d9ecf368e536ef1c7f3286 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 25 Jun 2026 09:42:32 +0000 Subject: [PATCH 15/54] ci: bump po review action (backport #56454) (#56461) Co-authored-by: Raffael Meyer <14891507+barredterra@users.noreply.github.com> --- .github/workflows/review-translation-changes.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/review-translation-changes.yaml b/.github/workflows/review-translation-changes.yaml index 0284082c310..fafc3245106 100644 --- a/.github/workflows/review-translation-changes.yaml +++ b/.github/workflows/review-translation-changes.yaml @@ -22,4 +22,4 @@ jobs: pull-requests: write steps: - - uses: alyf-de/po-review-action@v1.0.0 + - uses: alyf-de/po-review-action@v1.1.0 From ef3d444a6013be06ed220aeb4f70db81a34d5984 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 25 Jun 2026 09:50:50 +0000 Subject: [PATCH 16/54] fix: rewrite item rate calculation (backport #56315) Co-authored-by: Harsh Patadia Co-authored-by: Sagar Vora <16315650+sagarvora@users.noreply.github.com> Co-authored-by: Smit Vora --- .../sales_invoice/test_sales_invoice.py | 3 + erpnext/controllers/accounts_controller.py | 10 +- erpnext/controllers/taxes_and_totals.py | 203 ++++++++---------- .../public/js/controllers/taxes_and_totals.js | 27 +-- erpnext/public/js/controllers/transaction.js | 75 +++++-- .../doctype/quotation/test_quotation.py | 18 +- .../doctype/sales_order/test_sales_order.py | 2 + erpnext/utilities/transaction_base.py | 7 +- 8 files changed, 180 insertions(+), 165 deletions(-) diff --git a/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py index 3f2f9fbda90..ea1bc3195fc 100644 --- a/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py +++ b/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py @@ -2150,11 +2150,14 @@ class TestSalesInvoice(ERPNextTestSuite): def test_create_so_with_margin(self): si = create_sales_invoice(item_code="_Test Item", qty=1, do_not_submit=True) price_list_rate = flt(100) * flt(si.plc_conversion_rate) + si.items[0].price_list_rate = price_list_rate si.items[0].margin_type = "Percentage" si.items[0].margin_rate_or_amount = 25 si.items[0].discount_amount = 0.0 si.items[0].discount_percentage = 0.0 + # set rate to zero, so that it is recalculated on save + si.items[0].rate = 0 si.save() self.assertEqual(si.get("items")[0].rate, flt((price_list_rate * 25) / 100 + price_list_rate)) diff --git a/erpnext/controllers/accounts_controller.py b/erpnext/controllers/accounts_controller.py index e7a85dfde36..81c11518087 100644 --- a/erpnext/controllers/accounts_controller.py +++ b/erpnext/controllers/accounts_controller.py @@ -4153,6 +4153,7 @@ def update_child_qty_rate( # if rate is greater than price_list_rate, set margin # or set discount child_item.discount_percentage = 0 + child_item.discount_amount = 0 child_item.margin_type = "Amount" child_item.margin_rate_or_amount = flt( child_item.rate - child_item.price_list_rate, @@ -4160,14 +4161,11 @@ def update_child_qty_rate( ) child_item.rate_with_margin = child_item.rate else: - child_item.discount_percentage = flt( - (1 - flt(child_item.rate) / flt(child_item.price_list_rate)) * 100.0, - child_item.precision("discount_percentage"), - ) - child_item.discount_amount = flt(child_item.price_list_rate) - flt(child_item.rate) child_item.margin_type = "" child_item.margin_rate_or_amount = 0 - child_item.rate_with_margin = 0 + child_item.rate_with_margin = child_item.price_list_rate + child_item.discount_percentage = 0 + child_item.discount_amount = flt(child_item.rate_with_margin) - flt(child_item.rate) child_item.flags.ignore_validate_update_after_submit = True if new_child_flag: diff --git a/erpnext/controllers/taxes_and_totals.py b/erpnext/controllers/taxes_and_totals.py index dd829b3e0ba..fcf10b019d8 100644 --- a/erpnext/controllers/taxes_and_totals.py +++ b/erpnext/controllers/taxes_and_totals.py @@ -165,83 +165,85 @@ class calculate_taxes_and_totals: self.doc.conversion_rate = flt(self.doc.conversion_rate) - def calculate_item_values(self): - if self.doc.get("is_consolidated"): + def calculate_item_rate(self, item): + if not item.price_list_rate: + remove_margin(item) + remove_discount(item) + item.rate_with_margin = 0 return - if not self.discount_amount_applied: - do_not_round_fields = ["valuation_rate", "incoming_rate", "sales_incoming_rate"] + has_pricing_rules = item.pricing_rules and not self.doc.ignore_pricing_rule + if has_pricing_rules: + remove_margin(item) - for item in self.doc.items: - self.doc.round_floats_in(item, do_not_round_fields=do_not_round_fields) + for d in get_applied_pricing_rules(item.pricing_rules): + pricing_rule = frappe.get_cached_doc("Pricing Rule", d) - if item.discount_percentage == 100: - item.rate = 0.0 - elif item.price_list_rate: - if not item.rate or (item.pricing_rules and item.discount_percentage > 0): - item.rate = flt( - item.price_list_rate * (1.0 - (item.discount_percentage / 100.0)), - item.precision("rate"), - ) - - item.discount_amount = item.price_list_rate * (item.discount_percentage / 100.0) - - elif item.discount_amount and item.pricing_rules: - item.rate = item.price_list_rate - item.discount_amount - - if item.doctype in [ - "Quotation Item", - "Sales Order Item", - "Delivery Note Item", - "Sales Invoice Item", - "POS Invoice Item", - "Purchase Invoice Item", - "Purchase Order Item", - "Purchase Receipt Item", - ]: - item.rate_with_margin, item.base_rate_with_margin = self.calculate_margin(item) - if flt(item.rate_with_margin) > 0: - item.rate = flt( - item.rate_with_margin * (1.0 - (item.discount_percentage / 100.0)), - item.precision("rate"), - ) - - if item.discount_amount and not item.discount_percentage: - item.rate = item.rate_with_margin - item.discount_amount - else: - item.discount_amount = flt( - item.rate_with_margin - item.rate, item.precision("discount_amount") - ) - - elif flt(item.price_list_rate) > 0: - item.discount_amount = flt( - item.price_list_rate - item.rate, item.precision("discount_amount") - ) - elif flt(item.price_list_rate) > 0 and not item.discount_amount: - item.discount_amount = flt( - item.price_list_rate - item.rate, item.precision("discount_amount") + if not ( + pricing_rule.margin_type + and pricing_rule.margin_rate_or_amount + and ( + pricing_rule.margin_type == "Percentage" or pricing_rule.currency == self.doc.currency ) - - item.net_rate = item.rate - - if ( - not item.qty - and self.doc.get("is_return") - and self.doc.get("doctype") != "Purchase Receipt" ): - item.amount = flt(-1 * item.rate, item.precision("amount")) - elif not item.qty and self.doc.get("is_debit_note"): - item.amount = flt(item.rate, item.precision("amount")) - else: - item.amount = flt(item.rate * item.qty, item.precision("amount")) + continue - item.net_amount = item.amount + item.margin_type = pricing_rule.margin_type + item.margin_rate_or_amount = pricing_rule.margin_rate_or_amount - self._set_in_company_currency( - item, ["price_list_rate", "rate", "net_rate", "amount", "net_amount"] - ) + item.rate_with_margin = get_rate_with_margin(item) + if item.discount_percentage > 0: + item.discount_amount = flt( + item.rate_with_margin * item.discount_percentage / 100.0, item.precision("discount_amount") + ) - item.item_tax_amount = 0.0 + calculated_rate = flt(item.rate_with_margin - item.discount_amount, item.precision("rate")) + + # if rate is 0 or pricing rules are applicable, calculated rate is preferred + if has_pricing_rules or not item.rate: + item.rate = calculated_rate + return + + # discount and margin are correct, exit early + if item.rate == calculated_rate: + return + + # item rate does not match calculated rate. prefer item rate, reset margin / discount + if item.rate > item.price_list_rate: + item.margin_type = "Amount" + item.margin_rate_or_amount = flt( + item.rate - item.price_list_rate, item.precision("margin_rate_or_amount") + ) + item.rate_with_margin = item.rate + remove_discount(item) + return + + item.rate_with_margin = item.price_list_rate + item.discount_amount = flt(item.rate_with_margin - item.rate, item.precision("discount_amount")) + item.discount_percentage = 0 + remove_margin(item) + + def calculate_item_values(self): + if self.doc.get("is_consolidated") or self.discount_amount_applied: + return + + do_not_round_fields = ["valuation_rate", "incoming_rate", "sales_incoming_rate"] + for item in self.doc.items: + self.doc.round_floats_in(item, do_not_round_fields=do_not_round_fields) + self.calculate_item_rate(item) + + item.net_rate = item.rate + if not item.qty and self.doc.get("is_return") and self.doc.get("doctype") != "Purchase Receipt": + item.amount = flt(-1 * item.rate, item.precision("amount")) + elif not item.qty and self.doc.get("is_debit_note"): + item.amount = flt(item.rate, item.precision("amount")) + else: + item.amount = flt(item.rate * item.qty, item.precision("amount")) + item.net_amount = item.amount + self._set_in_company_currency( + item, ["price_list_rate", "rate_with_margin", "rate", "net_rate", "amount", "net_amount"] + ) + item.item_tax_amount = 0.0 def _set_in_company_currency(self, doc, fields): """set values in base currency""" @@ -1135,48 +1137,6 @@ class calculate_taxes_and_totals: self.calculate_outstanding_amount() - def calculate_margin(self, item): - rate_with_margin = 0.0 - base_rate_with_margin = 0.0 - if item.price_list_rate: - if item.pricing_rules and not self.doc.ignore_pricing_rule: - has_margin = False - for d in get_applied_pricing_rules(item.pricing_rules): - pricing_rule = frappe.get_cached_doc("Pricing Rule", d) - - if pricing_rule.margin_rate_or_amount and ( - ( - pricing_rule.currency == self.doc.currency - and pricing_rule.margin_type in ["Amount", "Percentage"] - ) - or pricing_rule.margin_type == "Percentage" - ): - item.margin_type = pricing_rule.margin_type - item.margin_rate_or_amount = pricing_rule.margin_rate_or_amount - has_margin = True - - if not has_margin: - item.margin_type = None - item.margin_rate_or_amount = 0.0 - - if not item.pricing_rules and flt(item.rate) > flt(item.price_list_rate): - item.margin_type = "Amount" - item.margin_rate_or_amount = flt( - item.rate - item.price_list_rate, item.precision("margin_rate_or_amount") - ) - item.rate_with_margin = item.rate - - elif item.margin_type and item.margin_rate_or_amount: - margin_value = ( - item.margin_rate_or_amount - if item.margin_type == "Amount" - else flt(item.price_list_rate) * flt(item.margin_rate_or_amount) / 100 - ) - rate_with_margin = flt(item.price_list_rate) + flt(margin_value) - base_rate_with_margin = flt(rate_with_margin) * flt(self.doc.conversion_rate) - - return rate_with_margin, base_rate_with_margin - def set_item_wise_tax_breakup(self): self.doc.other_charges_calculation = get_itemised_tax_breakup_html(self.doc) @@ -1211,6 +1171,29 @@ class calculate_taxes_and_totals: ) +def remove_discount(item): + item.discount_percentage = 0.0 + item.discount_amount = 0.0 + + +def remove_margin(item): + item.margin_type = None + item.margin_rate_or_amount = 0.0 + + +def get_rate_with_margin(item): + if not item.margin_type: + return item.price_list_rate + + if item.margin_type == "Percentage": + return flt( + item.price_list_rate * (1 + (item.margin_rate_or_amount / 100.0)), + item.precision("rate_with_margin"), + ) + + return flt(item.price_list_rate + item.margin_rate_or_amount, item.precision("rate_with_margin")) + + def get_itemised_tax_breakup_html(doc): if not doc.taxes: return diff --git a/erpnext/public/js/controllers/taxes_and_totals.js b/erpnext/public/js/controllers/taxes_and_totals.js index dc4f1e3bd61..acbffa95d7d 100644 --- a/erpnext/public/js/controllers/taxes_and_totals.js +++ b/erpnext/public/js/controllers/taxes_and_totals.js @@ -10,29 +10,30 @@ erpnext.taxes_and_totals = class TaxesAndTotals extends erpnext.payments { apply_pricing_rule_on_item(item) { let effective_item_rate = item.price_list_rate; - let item_rate = item.rate; if (["Sales Order", "Quotation"].includes(item.parenttype) && item.blanket_order_rate) { effective_item_rate = item.blanket_order_rate; } + + let rate_with_margin; if (item.margin_type == "Percentage") { - item.rate_with_margin = - flt(effective_item_rate) + flt(effective_item_rate) * (flt(item.margin_rate_or_amount) / 100); + rate_with_margin = effective_item_rate * (1 + item.margin_rate_or_amount / 100); } else { - item.rate_with_margin = flt(effective_item_rate) + flt(item.margin_rate_or_amount); + rate_with_margin = effective_item_rate + item.margin_rate_or_amount; } - item.base_rate_with_margin = flt(item.rate_with_margin) * flt(this.frm.doc.conversion_rate); + item.rate_with_margin = flt(rate_with_margin, precision("rate_with_margin", item)); - item_rate = flt(item.rate_with_margin, precision("rate", item)); - - if (item.discount_percentage && !item.discount_amount) { - item.discount_amount = (flt(item.rate_with_margin) * flt(item.discount_percentage)) / 100; + if (item.discount_percentage) { + item.discount_amount = flt( + (item.rate_with_margin * item.discount_percentage) / 100, + precision("discount_amount", item) + ); } - if (item.discount_amount > 0) { - item_rate = flt(item.rate_with_margin - item.discount_amount, precision("rate", item)); - item.discount_percentage = (100 * flt(item.discount_amount)) / flt(item.rate_with_margin); + let item_rate = item.rate_with_margin; + if (item.discount_amount) { + item_rate = item.rate_with_margin - item.discount_amount; } - + item_rate = flt(item_rate, precision("rate", item)); frappe.model.set_value(item.doctype, item.name, "rate", item_rate); } diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js index 86280e58681..3fce8850d7a 100644 --- a/erpnext/public/js/controllers/transaction.js +++ b/erpnext/public/js/controllers/transaction.js @@ -13,39 +13,58 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe frappe.flags.hide_serial_batch_dialog = true; frappe.ui.form.on(this.frm.doctype + " Item", "rate", function (frm, cdt, cdn) { var item = frappe.get_doc(cdt, cdn); - var has_margin_field = frappe.meta.has_field(cdt, "margin_type"); - frappe.model.round_floats_in(item, ["rate", "price_list_rate"]); + frappe.model.round_floats_in(item, [ + "rate", + "price_list_rate", + "margin_rate_or_amount", + "discount_amount", + "discount_percentage", + ]); if (item.price_list_rate && !item.blanket_order_rate) { - if (item.rate > item.price_list_rate && has_margin_field) { + const rate_with_margin = get_rate_with_margin(item); + + if (item.discount_percentage) { + item.discount_amount = flt( + (rate_with_margin * item.discount_percentage) / 100.0, + precision("discount_amount", item) + ); + } + + const calculated_rate = flt(rate_with_margin - item.discount_amount, precision("rate", item)); + + if (calculated_rate !== item.rate) { // if rate is greater than price_list_rate, set margin - // or set discount - item.discount_percentage = 0; - item.margin_type = "Amount"; - item.margin_rate_or_amount = flt( - item.rate - item.price_list_rate, - precision("margin_rate_or_amount", item) - ); - item.rate_with_margin = item.rate; - } else { - item.discount_percentage = flt( - (1 - item.rate / item.price_list_rate) * 100.0, - precision("discount_percentage", item) - ); - item.discount_amount = flt(item.price_list_rate) - flt(item.rate); - item.margin_type = ""; - item.margin_rate_or_amount = 0; - item.rate_with_margin = 0; + // otherwise, set discount + if (item.rate > item.price_list_rate) { + item.margin_type = "Amount"; + item.margin_rate_or_amount = flt( + item.rate - item.price_list_rate, + precision("margin_rate_or_amount", item) + ); + item.rate_with_margin = item.rate; + item.discount_amount = 0; + item.discount_percentage = 0; + } else { + item.margin_type = ""; + item.margin_rate_or_amount = 0; + item.rate_with_margin = item.price_list_rate; + item.discount_percentage = 0; + item.discount_amount = flt( + item.rate_with_margin - item.rate, + precision("discount_amount", item) + ); + } } } else { - item.discount_percentage = 0.0; item.margin_type = ""; item.margin_rate_or_amount = 0; item.rate_with_margin = 0; + item.discount_amount = 0; + item.discount_percentage = 0.0; } - item.base_rate_with_margin = item.rate_with_margin * flt(frm.doc.conversion_rate); - + me.set_in_company_currency(item, ["rate_with_margin"]); cur_frm.cscript.set_gross_profit(item); cur_frm.cscript.calculate_taxes_and_totals(); cur_frm.cscript.calculate_stock_uom_rate(frm, cdt, cdn); @@ -3363,3 +3382,13 @@ erpnext.set_unit_price_items_note = (frm) => { ); } }; + +function get_rate_with_margin(item) { + if (!item.margin_type) return item.price_list_rate; + + if (item.margin_type === "Percentage") { + return flt(item.price_list_rate * (1 + item.margin_rate_or_amount / 100), precision("rate", item)); + } + + return flt(item.price_list_rate + item.margin_rate_or_amount, precision("rate", item)); +} diff --git a/erpnext/selling/doctype/quotation/test_quotation.py b/erpnext/selling/doctype/quotation/test_quotation.py index 2f25eb4ac75..71688bcb2f8 100644 --- a/erpnext/selling/doctype/quotation/test_quotation.py +++ b/erpnext/selling/doctype/quotation/test_quotation.py @@ -403,9 +403,9 @@ class TestQuotation(ERPNextTestSuite): quotation.save() quotation.submit() - self.assertEqual(quotation.payment_schedule[0].payment_amount, 8906.00) + self.assertEqual(quotation.payment_schedule[0].payment_amount, 500.00) self.assertEqual(quotation.payment_schedule[0].due_date, quotation.transaction_date) - self.assertEqual(quotation.payment_schedule[1].payment_amount, 8906.00) + self.assertEqual(quotation.payment_schedule[1].payment_amount, 500.00) self.assertEqual(quotation.payment_schedule[1].due_date, add_days(quotation.transaction_date, 30)) sales_order = make_sales_order(quotation.name) @@ -425,11 +425,11 @@ class TestQuotation(ERPNextTestSuite): sales_order.set("taxes", []) sales_order.save() - self.assertEqual(sales_order.payment_schedule[0].payment_amount, 8906.00) + self.assertEqual(sales_order.payment_schedule[0].payment_amount, 500.00) self.assertEqual( getdate(sales_order.payment_schedule[0].due_date), getdate(quotation.transaction_date) ) - self.assertEqual(sales_order.payment_schedule[1].payment_amount, 8906.00) + self.assertEqual(sales_order.payment_schedule[1].payment_amount, 500.00) self.assertEqual( getdate(sales_order.payment_schedule[1].due_date), getdate(add_days(quotation.transaction_date, 30)), @@ -465,11 +465,13 @@ class TestQuotation(ERPNextTestSuite): rate_with_margin = flt((1500 * 18.75) / 100 + 1500) - test_record = dict(self.globalTestRecords["Quotation"][0]) + test_record = frappe.copy_doc(self.globalTestRecords["Quotation"][0]) - test_record["items"][0]["price_list_rate"] = 1500 - test_record["items"][0]["margin_type"] = "Percentage" - test_record["items"][0]["margin_rate_or_amount"] = 18.75 + test_record.items[0].price_list_rate = 1500 + test_record.items[0].margin_type = "Percentage" + test_record.items[0].margin_rate_or_amount = 18.75 + # set rate to zero, so that it is recalculated on save + test_record.items[0].rate = 0 quotation = frappe.copy_doc(test_record) quotation.transaction_date = nowdate() diff --git a/erpnext/selling/doctype/sales_order/test_sales_order.py b/erpnext/selling/doctype/sales_order/test_sales_order.py index 20d9affe11d..09ae5724f80 100644 --- a/erpnext/selling/doctype/sales_order/test_sales_order.py +++ b/erpnext/selling/doctype/sales_order/test_sales_order.py @@ -1473,6 +1473,8 @@ class TestSalesOrder(ERPNextTestSuite): so.items[0].price_list_rate = price_list_rate = 100 so.items[0].margin_type = "Percentage" so.items[0].margin_rate_or_amount = 25 + # set rate to zero, so that it is recalculated on save + so.items[0].rate = 0 so.save() new_so = frappe.copy_doc(so) diff --git a/erpnext/utilities/transaction_base.py b/erpnext/utilities/transaction_base.py index d60ba4c09c1..3ff42ed6a09 100644 --- a/erpnext/utilities/transaction_base.py +++ b/erpnext/utilities/transaction_base.py @@ -514,18 +514,15 @@ class TransactionBase(StatusUpdater): item_obj.base_rate_with_margin = flt(item_obj.rate_with_margin) * flt(self.conversion_rate) item_rate = flt(item_obj.rate_with_margin, item_obj.precision("rate")) - if item_obj.discount_percentage and not item_obj.discount_amount: + if item_obj.discount_percentage: item_obj.discount_amount = ( flt(item_obj.rate_with_margin) * flt(item_obj.discount_percentage) / 100 ) - if item_obj.discount_amount and item_obj.discount_amount > 0: + if item_obj.discount_amount: item_rate = flt( (item_obj.rate_with_margin) - (item_obj.discount_amount), item_obj.precision("rate") ) - item_obj.discount_percentage = ( - 100 * flt(item_obj.discount_amount) / flt(item_obj.rate_with_margin) - ) item_obj.rate = item_rate From 30ba950abd5fdf2564939d56680e3218e3584f19 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 25 Jun 2026 10:23:04 +0000 Subject: [PATCH 17/54] fix(crm): using `get_list` instead of `get_all` in `get_opportunities` (backport #56463) (#56466) * fix(crm): using `get_list` instead of `get_all` in `get_opportunities` (#56463) (cherry picked from commit 9b4c8a8d7fdec17de13794bdfa7f9e125b3bb37d) # Conflicts: # erpnext/crm/doctype/prospect/prospect.py * chore: resolve conflict --------- Co-authored-by: Diptanil Saha --- erpnext/crm/doctype/prospect/prospect.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/crm/doctype/prospect/prospect.py b/erpnext/crm/doctype/prospect/prospect.py index 7ecbe637f04..02bd2a33be4 100644 --- a/erpnext/crm/doctype/prospect/prospect.py +++ b/erpnext/crm/doctype/prospect/prospect.py @@ -136,7 +136,7 @@ def make_opportunity(source_name, target_doc=None): @frappe.whitelist() def get_opportunities(prospect): - return frappe.get_all( + return frappe.get_list( "Opportunity", filters={"opportunity_from": "Prospect", "party_name": prospect}, fields=[ From c84d4a282d6d23f41394efcbd6b9d86a172d4866 Mon Sep 17 00:00:00 2001 From: Shllokkk Date: Thu, 25 Jun 2026 17:32:46 +0530 Subject: [PATCH 18/54] fix: handle missing serial and batch bundle in print format (cherry picked from commit 548d90df4f58cd0a7a885cdd3adfd85af2e81de7) --- erpnext/stock/serial_batch_bundle.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/erpnext/stock/serial_batch_bundle.py b/erpnext/stock/serial_batch_bundle.py index 633867dcc79..f2efe507556 100644 --- a/erpnext/stock/serial_batch_bundle.py +++ b/erpnext/stock/serial_batch_bundle.py @@ -608,10 +608,16 @@ def get_serial_nos_from_bundle(serial_and_batch_bundle, serial_nos=None): def get_serial_or_batch_nos(bundle): # For print format + if not bundle: + return "" + bundle_data = frappe.get_cached_value( "Serial and Batch Bundle", bundle, ["has_serial_no", "has_batch_no"], as_dict=True ) + if not bundle_data: + return bundle + fields = [] if bundle_data.has_serial_no: fields.append("serial_no") From 6dad1b1ae6796ef783c5ce3ea7fa4dcb0f5f6e3f Mon Sep 17 00:00:00 2001 From: rohitwaghchaure Date: Thu, 25 Jun 2026 20:10:09 +0530 Subject: [PATCH 19/54] refactor: move Inventory Dimension mandatory check from field-level to server-side (#56451) * refactor: move Inventory Dimension mandatory check from field-level to server-side * refactor: split large function * fix: greptile issue --- .../asset_capitalization.py | 3 + erpnext/controllers/stock_controller.py | 47 +++++++ erpnext/patches.txt | 1 + .../v16_0/depends_on_inv_dimensions.py | 3 +- ...ove_mandatory_from_inv_dimension_fields.py | 54 ++++++++ .../inventory_dimension.js | 1 - .../inventory_dimension.json | 18 +-- .../inventory_dimension.py | 124 ++++++++++++++---- .../test_inventory_dimension.py | 60 +++++++-- .../stock/doctype/stock_entry/stock_entry.py | 3 + .../stock_reconciliation.py | 3 + .../subcontracting_receipt.py | 6 + .../test_subcontracting_receipt.py | 8 +- 13 files changed, 279 insertions(+), 52 deletions(-) create mode 100644 erpnext/patches/v16_0/remove_mandatory_from_inv_dimension_fields.py diff --git a/erpnext/assets/doctype/asset_capitalization/asset_capitalization.py b/erpnext/assets/doctype/asset_capitalization/asset_capitalization.py index 0894bad2d3d..402d30bdaa4 100644 --- a/erpnext/assets/doctype/asset_capitalization/asset_capitalization.py +++ b/erpnext/assets/doctype/asset_capitalization/asset_capitalization.py @@ -100,6 +100,9 @@ class AssetCapitalization(StockController): self.set_asset_values() self.calculate_totals() self.set_title() + # Asset Capitalization overrides validate() without calling super(), so the shared + # mandatory inventory dimension check must be invoked explicitly here. + self.validate_inventory_dimension_mandatory() def on_update(self): if self.stock_items: diff --git a/erpnext/controllers/stock_controller.py b/erpnext/controllers/stock_controller.py index 2997fc86e55..26929cfa89a 100644 --- a/erpnext/controllers/stock_controller.py +++ b/erpnext/controllers/stock_controller.py @@ -36,6 +36,8 @@ from erpnext.stock import get_warehouse_account_map from erpnext.stock.doctype.batch.batch import get_batch_qty from erpnext.stock.doctype.inventory_dimension.inventory_dimension import ( get_evaluated_inventory_dimension, + get_mandatory_dimension_fields, + get_mandatory_inventory_dimensions, ) from erpnext.stock.doctype.item.item import get_item_defaults from erpnext.stock.doctype.serial_and_batch_bundle.serial_and_batch_bundle import ( @@ -64,6 +66,7 @@ class StockController(AccountsController): self.validate_internal_transfer() self.validate_putaway_capacity() self.reset_conversion_factor() + self.validate_inventory_dimension_mandatory() def on_update(self): super().on_update() @@ -1140,6 +1143,50 @@ class StockController(AccountsController): return item_account_wise_cost + def validate_inventory_dimension_mandatory(self): + # Mandatory inventory dimensions are enforced here (instead of via field-level `reqd`) + # so we can skip service rows and never block a document that is being cancelled. + if self.docstatus >= 2: + return + + for table_field in ["items", "packed_items", "supplied_items"]: + rows = self.get(table_field) + if rows: + self.validate_mandatory_dimensions_in_table(rows) + + def validate_mandatory_dimensions_in_table(self, rows): + child_doctype = rows[0].doctype + dimensions = get_mandatory_inventory_dimensions(child_doctype) + if not dimensions: + return + + child_meta = frappe.get_meta(child_doctype) + for dimension in dimensions: + mandatory_fields = get_mandatory_dimension_fields(child_doctype, dimension) + for row in rows: + if mandatory_fields and not self.is_service_item_row(row): + self.validate_mandatory_dimension_row(row, dimension, mandatory_fields, child_meta) + + def is_service_item_row(self, row) -> bool: + item_code = row.get("item_code") + return bool(item_code) and not frappe.get_cached_value("Item", item_code, "is_stock_item") + + def validate_mandatory_dimension_row(self, row, dimension, mandatory_fields, child_meta): + for fieldname, condition in mandatory_fields: + if not child_meta.has_field(fieldname) or row.get(fieldname): + continue + + if condition and not frappe.safe_eval(condition, {"doc": row, "parent": self}): + continue + + frappe.throw( + _("Row #{0}: {1} is mandatory for the Inventory Dimension {2}.").format( + row.idx, + bold(_(child_meta.get_label(fieldname))), + bold(dimension.name), + ) + ) + def update_inventory_dimensions(self, row, sl_dict) -> None: # To handle delivery note and sales invoice if row.get("item_row"): diff --git a/erpnext/patches.txt b/erpnext/patches.txt index 5bd41a2fece..00f3ea2fb40 100644 --- a/erpnext/patches.txt +++ b/erpnext/patches.txt @@ -485,3 +485,4 @@ erpnext.patches.v16_0.clear_procedures_from_receivable_report erpnext.patches.v16_0.migrate_address_contact_custom_fields erpnext.patches.v16_0.drop_redundant_serial_no_index_from_sabb execute:frappe.db.set_single_value("Accounts Settings", "pcv_job_timeout", 3600) +erpnext.patches.v16_0.remove_mandatory_from_inv_dimension_fields diff --git a/erpnext/patches/v16_0/depends_on_inv_dimensions.py b/erpnext/patches/v16_0/depends_on_inv_dimensions.py index 0de46f68f11..f9b01028218 100644 --- a/erpnext/patches/v16_0/depends_on_inv_dimensions.py +++ b/erpnext/patches/v16_0/depends_on_inv_dimensions.py @@ -9,7 +9,6 @@ def get_inventory_dimensions(): "source_fieldname", "reference_document as doctype", "reqd", - "mandatory_depends_on", ], order_by="creation", distinct=True, @@ -85,5 +84,5 @@ def execute(): "Custom Field", {"fieldname": fieldname, "dt": dimension.doctype}, "mandatory_depends_on", - display_depends_on if dimension.reqd else dimension.mandatory_depends_on, + display_depends_on if dimension.reqd else "", ) diff --git a/erpnext/patches/v16_0/remove_mandatory_from_inv_dimension_fields.py b/erpnext/patches/v16_0/remove_mandatory_from_inv_dimension_fields.py new file mode 100644 index 00000000000..5780e404490 --- /dev/null +++ b/erpnext/patches/v16_0/remove_mandatory_from_inv_dimension_fields.py @@ -0,0 +1,54 @@ +import frappe + +from erpnext.stock.doctype.inventory_dimension.inventory_dimension import get_inventory_documents + + +def execute(): + """Mandatory inventory dimensions are now enforced on the server side + (StockController.validate_inventory_dimension_mandatory) instead of via field-level + `reqd`/`mandatory_depends_on`. Clear those properties from the related custom fields.""" + dimensions = frappe.get_all( + "Inventory Dimension", + fields=[ + "source_fieldname", + "reference_document", + "document_type", + "apply_to_all_doctypes", + ], + ) + + for dimension in dimensions: + if not dimension.source_fieldname or not dimension.reference_document: + continue + + # Scope to the exact doctypes where this dimension generated fields so unrelated + # mandatory custom fields (same name/target on a different doctype) are never touched. + if dimension.apply_to_all_doctypes: + doctypes = [d[0] for d in get_inventory_documents()] + elif dimension.document_type: + doctypes = [dimension.document_type] + else: + continue + + fieldname = dimension.source_fieldname + fieldnames = [fieldname, f"to_{fieldname}", f"from_{fieldname}", f"rejected_{fieldname}"] + + custom_fields = frappe.get_all( + "Custom Field", + filters={ + "dt": ("in", doctypes), + "fieldname": ("in", fieldnames), + "fieldtype": "Link", + "options": dimension.reference_document, + }, + or_filters={"reqd": 1, "mandatory_depends_on": ("is", "set")}, + pluck="name", + ) + + for name in custom_fields: + frappe.db.set_value( + "Custom Field", + name, + {"reqd": 0, "mandatory_depends_on": ""}, + update_modified=False, + ) diff --git a/erpnext/stock/doctype/inventory_dimension/inventory_dimension.js b/erpnext/stock/doctype/inventory_dimension/inventory_dimension.js index f3d60548b65..909d73290ab 100644 --- a/erpnext/stock/doctype/inventory_dimension/inventory_dimension.js +++ b/erpnext/stock/doctype/inventory_dimension/inventory_dimension.js @@ -51,7 +51,6 @@ frappe.ui.form.on("Inventory Dimension", { "fetch_from_parent", "type_of_transaction", "condition", - "mandatory_depends_on", "validate_negative_stock", ]; diff --git a/erpnext/stock/doctype/inventory_dimension/inventory_dimension.json b/erpnext/stock/doctype/inventory_dimension/inventory_dimension.json index aae81a29eac..ba9263e34df 100644 --- a/erpnext/stock/doctype/inventory_dimension/inventory_dimension.json +++ b/erpnext/stock/doctype/inventory_dimension/inventory_dimension.json @@ -27,7 +27,7 @@ "condition", "conditional_mandatory_section", "reqd", - "mandatory_depends_on", + "mandatory_depends_on_backend", "conditional_rule_examples_section", "html_19" ], @@ -151,13 +151,6 @@ "fieldtype": "Section Break", "label": "Conditional Rule Examples" }, - { - "depends_on": "eval:!doc.apply_to_all_doctypes", - "description": "To apply condition on parent field use parent.field_name and to apply condition on child table use doc.field_name. Here field_name could be based on the actual column name of the respective field.", - "fieldname": "mandatory_depends_on", - "fieldtype": "Small Text", - "label": "Mandatory Depends On" - }, { "fieldname": "conditional_mandatory_section", "fieldtype": "Section Break", @@ -169,6 +162,13 @@ "fieldtype": "Check", "label": "Mandatory" }, + { + "depends_on": "eval:!doc.reqd", + "description": "Python expression evaluated on the server. Use doc.fieldname for the row and parent.fieldname for the parent document. When it evaluates to true the dimension becomes mandatory. Example: doc.t_warehouse and doc.qty > 0", + "fieldname": "mandatory_depends_on_backend", + "fieldtype": "Small Text", + "label": "Mandatory Depends On (Backend)" + }, { "fieldname": "column_break_niy2u", "fieldtype": "Column Break" @@ -182,7 +182,7 @@ ], "index_web_pages_for_search": 1, "links": [], - "modified": "2026-04-08 10:10:16.884388", + "modified": "2026-06-25 11:30:00.000000", "modified_by": "Administrator", "module": "Stock", "name": "Inventory Dimension", diff --git a/erpnext/stock/doctype/inventory_dimension/inventory_dimension.py b/erpnext/stock/doctype/inventory_dimension/inventory_dimension.py index 7495b1dde43..2726c96c688 100644 --- a/erpnext/stock/doctype/inventory_dimension/inventory_dimension.py +++ b/erpnext/stock/doctype/inventory_dimension/inventory_dimension.py @@ -35,7 +35,7 @@ class InventoryDimension(Document): document_type: DF.Link | None fetch_from_parent: DF.Literal[None] istable: DF.Check - mandatory_depends_on: DF.SmallText | None + mandatory_depends_on_backend: DF.SmallText | None reference_document: DF.Link reqd: DF.Check source_fieldname: DF.Data | None @@ -118,7 +118,6 @@ class InventoryDimension(Document): def reset_value(self): if self.apply_to_all_doctypes: self.type_of_transaction = "" - self.mandatory_depends_on = "" self.istable = 0 for field in ["document_type", "condition"]: @@ -167,15 +166,10 @@ class InventoryDimension(Document): if label_start_with: label = f"{label_start_with} {self.dimension_name}" - mandatory_depends_on = self.mandatory_depends_on - if self.reqd: - if doctype == "Stock Entry Detail": - mandatory_depends_on = "eval:doc.s_warehouse" - elif doctype == "Subcontracting Receipt Supplied Item": - mandatory_depends_on = "eval:doc.reference_name" - elif doctype == "Packed Item": - mandatory_depends_on = "eval:doc.parent_detail_docname && ['Delivery Note', 'Sales Invoice', 'POS Invoice'].includes(parent.doctype)" - + # Note: `reqd` is intentionally NOT set on the custom fields. Mandatory enforcement + # happens on the server side via StockController.validate_inventory_dimension_mandatory() + # so that it can be gated (e.g. skip service rows) and never blocks documents that are + # being cancelled. dimension_fields = [ dict( fieldname="inventory_dimension", @@ -192,13 +186,6 @@ class InventoryDimension(Document): label=_(label), depends_on="eval:doc.s_warehouse" if doctype == "Stock Entry Detail" else "", search_index=1, - reqd=1 - if self.reqd - and not self.mandatory_depends_on - and doctype - not in ["Stock Entry Detail", "Subcontracting Receipt Supplied Item", "Packed Item"] - else 0, - mandatory_depends_on=mandatory_depends_on, ), ] @@ -211,7 +198,6 @@ class InventoryDimension(Document): options=self.reference_document, label=_("Rejected " + self.dimension_name), search_index=1, - mandatory_depends_on="eval:doc.rejected_qty > 0", ) ) @@ -238,9 +224,7 @@ class InventoryDimension(Document): and not frappe.db.get_value("Custom Field", {"dt": dt, "fieldname": self.target_fieldname}) and not field_exists(dt, self.target_fieldname) ): - dimension_field = dimension_fields[1] - dimension_field["mandatory_depends_on"] = "" - dimension_field["reqd"] = 0 + dimension_field = dimension_fields[1].copy() dimension_field["fieldname"] = self.target_fieldname custom_fields[dt] = dimension_field @@ -309,7 +293,6 @@ class InventoryDimension(Document): options=self.reference_document, label=label, depends_on=display_depends_on, - mandatory_depends_on=display_depends_on if self.reqd else self.mandatory_depends_on, ), ] ) @@ -390,6 +373,101 @@ def get_document_wise_inventory_dimensions(doctype) -> dict: ) +@request_cache +def get_mandatory_inventory_dimensions(doctype) -> list: + """Return the inventory dimensions applicable to `doctype` (a child doctype such as + `Stock Entry Detail`) that need server-side mandatory enforcement. + + A dimension qualifies only if it is configured as mandatory (`reqd`) or has a server-side + mandatory condition (`mandatory_depends_on_backend`). Non-mandatory dimensions are never + enforced, including the rejected dimension field on purchase rows.""" + dimensions = frappe.get_all( + "Inventory Dimension", + fields=[ + "name", + "dimension_name", + "source_fieldname", + "reqd", + "mandatory_depends_on_backend", + ], + or_filters={"document_type": doctype, "apply_to_all_doctypes": 1}, + ) + + return [d for d in dimensions if d.reqd or d.mandatory_depends_on_backend] + + +def get_mandatory_dimension_fields(doctype, dimension) -> list: + """For a mandatory `dimension` return the list of (fieldname, condition) tuples that must be + filled on a row of `doctype`. `condition` is a python expression evaluated with `doc` (the row) + and `parent`; a `None` condition means the field is unconditionally mandatory. + + Mirrors the mandatory logic that used to live on the custom fields in `get_dimension_fields`.""" + fields = [] + source_fieldname = dimension.source_fieldname + # `mandatory_depends_on_backend` is a raw python expression evaluated server-side + # (with `doc` and `parent`), so it can be used as a condition directly. + backend_condition = (dimension.mandatory_depends_on_backend or "").strip() or None + + # Primary source dimension field + if dimension.reqd and doctype == "Stock Entry Detail": + fields.append((source_fieldname, "doc.s_warehouse")) + elif dimension.reqd and doctype == "Subcontracting Receipt Supplied Item": + fields.append((source_fieldname, "doc.reference_name")) + elif dimension.reqd and doctype == "Packed Item": + fields.append( + ( + source_fieldname, + "doc.parent_detail_docname and parent.doctype in ['Delivery Note', 'Sales Invoice', 'POS Invoice']", + ) + ) + elif dimension.reqd: + fields.append((source_fieldname, None)) + elif backend_condition: + fields.append((source_fieldname, backend_condition)) + + # Rejected dimension field (only present on purchase rows). Enforced only when the dimension + # is mandatory for the row AND there is a rejected quantity. + if doctype in ["Purchase Invoice Item", "Purchase Receipt Item"]: + if dimension.reqd: + fields.append((f"rejected_{source_fieldname}", "doc.rejected_qty > 0")) + elif backend_condition: + fields.append((f"rejected_{source_fieldname}", f"({backend_condition}) and doc.rejected_qty > 0")) + + # Target/transfer dimension field used for internal transfers (mirrors the old + # `add_transfer_field` behaviour). When the dimension is `reqd` the field inherits the + # transfer display condition, otherwise it inherits the server-side mandatory condition. + if (dimension.reqd or backend_condition) and doctype in [ + "Stock Entry Detail", + "Sales Invoice Item", + "Delivery Note Item", + "Purchase Invoice Item", + "Purchase Receipt Item", + ]: + if doctype in ["Purchase Invoice Item", "Purchase Receipt Item"]: + transfer_fieldname, display_condition = ( + f"from_{source_fieldname}", + "parent.is_internal_supplier == 1", + ) + elif doctype == "Stock Entry Detail": + transfer_fieldname, display_condition = f"to_{source_fieldname}", "doc.t_warehouse" + else: + transfer_fieldname, display_condition = ( + f"to_{source_fieldname}", + "parent.is_internal_customer == 1", + ) + + # The transfer field only applies to internal transfers, so its mandatory check is always + # gated on the display condition; the backend condition narrows it further. + if dimension.reqd: + transfer_condition = display_condition + else: + transfer_condition = f"({display_condition}) and ({backend_condition})" + + fields.append((transfer_fieldname, transfer_condition)) + + return fields + + @frappe.whitelist() @request_cache def get_inventory_dimensions(): diff --git a/erpnext/stock/doctype/inventory_dimension/test_inventory_dimension.py b/erpnext/stock/doctype/inventory_dimension/test_inventory_dimension.py index 2a69c450b3d..5b504de7927 100644 --- a/erpnext/stock/doctype/inventory_dimension/test_inventory_dimension.py +++ b/erpnext/stock/doctype/inventory_dimension/test_inventory_dimension.py @@ -219,35 +219,75 @@ class TestInventoryDimension(ERPNextTestSuite): doc.reqd = 1 doc.save() - self.assertTrue( + # Mandatory enforcement is now done server-side, so the custom field must NOT be `reqd`. + self.assertFalse( frappe.db.get_value( - "Custom Field", {"fieldname": "pallet_75", "dt": "Delivery Note Item", "reqd": 1}, "name" + "Custom Field", {"fieldname": "pallet_75", "dt": "Delivery Note Item"}, "reqd" ) ) + item_code = "Test Mandatory Dimension Item" + create_item(item_code) + warehouse = create_warehouse("Mandatory Dimension Warehouse") + + dn_doc = create_delivery_note(item_code=item_code, qty=5, warehouse=warehouse, do_not_save=True) + + # Dimension value missing -> server-side validation should block the document. + self.assertRaises(frappe.ValidationError, dn_doc.save) + + if not frappe.db.exists("Pallet", "Pallet 75 Value"): + frappe.get_doc({"doctype": "Pallet", "pallet_name": "Pallet 75 Value"}).insert( + ignore_permissions=True + ) + + dn_doc.items[0].pallet_75 = "Pallet 75 Value" + dn_doc.save() + doc.reqd = 0 doc.save() - def test_check_mandatory_depends_on_dimensions(self): + def test_check_mandatory_depends_on_backend(self): doc = create_inventory_dimension( reference_document="Pallet", type_of_transaction="Outward", - dimension_name="Pallet", + dimension_name="Pallet Backend", apply_to_all_doctypes=0, - document_type="Stock Entry Detail", + document_type="Delivery Note Item", ) - doc.mandatory_depends_on = "t_warehouse" + doc.reqd = 0 + doc.mandatory_depends_on_backend = "doc.qty > 0" doc.save() - self.assertTrue( + # The condition is enforced server-side, the custom field must not carry field-level `reqd`. + self.assertFalse( frappe.db.get_value( - "Custom Field", - {"fieldname": "pallet", "dt": "Stock Entry Detail", "mandatory_depends_on": "t_warehouse"}, - "name", + "Custom Field", {"fieldname": "pallet_backend", "dt": "Delivery Note Item"}, "reqd" ) ) + item_code = "Test Backend Dimension Item" + create_item(item_code) + warehouse = create_warehouse("Backend Dimension Warehouse") + + dn_doc = create_delivery_note(item_code=item_code, qty=5, warehouse=warehouse, do_not_save=True) + + # qty > 0 -> backend condition is met, so the dimension is mandatory and blocks the save. + self.assertRaises(frappe.ValidationError, dn_doc.save) + + if not frappe.db.exists("Pallet", "Pallet Backend Value"): + frappe.get_doc({"doctype": "Pallet", "pallet_name": "Pallet Backend Value"}).insert( + ignore_permissions=True + ) + + dn_doc.items[0].pallet_backend = "Pallet Backend Value" + dn_doc.save() + + # Reset so the always-true condition does not make the dimension mandatory for + # subsequent Delivery Note tests sharing the same test database. + doc.mandatory_depends_on_backend = "" + doc.save() + def test_for_purchase_sales_and_stock_transaction(self): from erpnext.controllers.sales_and_purchase_return import make_return_doc diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py index 2498a9a08d3..baad1a81ff6 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry.py +++ b/erpnext/stock/doctype/stock_entry/stock_entry.py @@ -292,6 +292,9 @@ class StockEntry(StockController, SubcontractingInwardController): self.validate_putaway_capacity() self.validate_component_and_quantities() self.validate_finished_good_serial_batch_for_work_order() + # Stock Entry overrides validate() without calling super(), so the shared mandatory + # inventory dimension check must be invoked explicitly here. + self.validate_inventory_dimension_mandatory() if self.get("purpose") != "Manufacture": # ignore other item wh difference and empty source/target wh diff --git a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py index 0a2e91f2a32..3598719f8ae 100644 --- a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py +++ b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py @@ -83,6 +83,9 @@ class StockReconciliation(StockController): self.set_total_qty_and_amount() self.validate_putaway_capacity() self.validate_inventory_dimension() + # Stock Reconciliation overrides validate() without calling super(), so the shared + # mandatory inventory dimension check must be invoked explicitly here. + self.validate_inventory_dimension_mandatory() self.validate_uom_is_integer("stock_uom", "qty") if self._action == "submit": diff --git a/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py b/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py index 78644ff1b56..dd2028a9520 100644 --- a/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py +++ b/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py @@ -162,6 +162,12 @@ class SubcontractingReceipt(SubcontractingController): self.set_supplied_items_cost_center() self.set_supplied_items_inventory_dimensions() + # SubcontractingController.validate() does not call super() for Subcontracting Receipt, so + # the shared mandatory inventory dimension check must be invoked explicitly here. It runs + # last so auto-populated supplied-item dimensions (set_supplied_items_inventory_dimensions) + # are already in place. + self.validate_inventory_dimension_mandatory() + def on_submit(self): self.validate_closed_subcontracting_order() self.validate_bom_required_qty() diff --git a/erpnext/subcontracting/doctype/subcontracting_receipt/test_subcontracting_receipt.py b/erpnext/subcontracting/doctype/subcontracting_receipt/test_subcontracting_receipt.py index 7105eca2e13..5d623af60eb 100644 --- a/erpnext/subcontracting/doctype/subcontracting_receipt/test_subcontracting_receipt.py +++ b/erpnext/subcontracting/doctype/subcontracting_receipt/test_subcontracting_receipt.py @@ -2045,16 +2045,13 @@ class TestSubcontractingReceipt(ERPNextTestSuite): create_inventory_dimension, ) - inventory_dimension = create_inventory_dimension( + create_inventory_dimension( apply_to_all_doctypes=1, dimension_name="Inv Site", reference_document="Inv Site", document_type="Inv Site", ) - inventory_dimension.reqd = 1 - inventory_dimension.save() - set_backflush_based_on("BOM") sco = get_subcontracting_order() @@ -2074,9 +2071,6 @@ class TestSubcontractingReceipt(ERPNextTestSuite): self.assertEqual(scr.supplied_items[0].inv_site, "Site 1") - inventory_dimension.reqd = 0 - inventory_dimension.save() - def make_return_subcontracting_receipt(**args): args = frappe._dict(args) From 5f02ff5f8c96d8a61465b4d8cbe3d8824d97f8e3 Mon Sep 17 00:00:00 2001 From: Mihir Kandoi Date: Fri, 26 Jun 2026 10:08:25 +0530 Subject: [PATCH 20/54] Revert "fix: handle missing serial and batch bundle in print format (backport #56497)" --- erpnext/stock/serial_batch_bundle.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/erpnext/stock/serial_batch_bundle.py b/erpnext/stock/serial_batch_bundle.py index f2efe507556..633867dcc79 100644 --- a/erpnext/stock/serial_batch_bundle.py +++ b/erpnext/stock/serial_batch_bundle.py @@ -608,16 +608,10 @@ def get_serial_nos_from_bundle(serial_and_batch_bundle, serial_nos=None): def get_serial_or_batch_nos(bundle): # For print format - if not bundle: - return "" - bundle_data = frappe.get_cached_value( "Serial and Batch Bundle", bundle, ["has_serial_no", "has_batch_no"], as_dict=True ) - if not bundle_data: - return bundle - fields = [] if bundle_data.has_serial_no: fields.append("serial_no") From 410a7725101fadaa17da4ce297be18986bda51dd Mon Sep 17 00:00:00 2001 From: Mohd Haris Date: Fri, 19 Jun 2026 10:51:36 +0530 Subject: [PATCH 21/54] fix: allow rename for Quality Inspection Parameter MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Quality Inspection Parameter DocType did not have `allow_rename` enabled, so the "Rename" action was hidden from the form's menu (the 3-dots / ⋮ options). Since the DocType is auto-named from the `parameter` field (`autoname: field:parameter`), users had no way to correct or change a parameter's name once created. Enable `allow_rename` so users can rename a Quality Inspection Parameter from the form menu. Co-Authored-By: Claude Opus 4.8 (cherry picked from commit adfef48a65cbbe8019e97ac850d873f843d9f923) --- .../quality_inspection_parameter.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/erpnext/stock/doctype/quality_inspection_parameter/quality_inspection_parameter.json b/erpnext/stock/doctype/quality_inspection_parameter/quality_inspection_parameter.json index de7d83624ff..4eadca9a04d 100644 --- a/erpnext/stock/doctype/quality_inspection_parameter/quality_inspection_parameter.json +++ b/erpnext/stock/doctype/quality_inspection_parameter/quality_inspection_parameter.json @@ -1,5 +1,6 @@ { "actions": [], + "allow_rename": 1, "autoname": "field:parameter", "creation": "2020-12-28 17:06:00.254129", "doctype": "DocType", @@ -34,7 +35,7 @@ ], "index_web_pages_for_search": 1, "links": [], - "modified": "2024-03-27 13:10:28.861722", + "modified": "2026-06-19 10:55:00.000000", "modified_by": "Administrator", "module": "Stock", "name": "Quality Inspection Parameter", From a886d0b445547e4b861fc80c8e745a011c7b087d Mon Sep 17 00:00:00 2001 From: Shllokkk Date: Tue, 23 Jun 2026 00:07:53 +0530 Subject: [PATCH 22/54] fix: show contextual balance label on party dashboard for net balances (cherry picked from commit 3251b403658f0f3f851728fb689ed150ef469d56) --- erpnext/accounts/party.py | 9 +++++++++ erpnext/public/js/utils.js | 31 ++++++++++++++++++++++++------- 2 files changed, 33 insertions(+), 7 deletions(-) diff --git a/erpnext/accounts/party.py b/erpnext/accounts/party.py index 7bf6828cf91..1c1b166c605 100644 --- a/erpnext/accounts/party.py +++ b/erpnext/accounts/party.py @@ -927,6 +927,15 @@ def get_dashboard_info(party_type, party, loyalty_program=None): if party_type == "Supplier": info["total_unpaid"] = -1 * info["total_unpaid"] + if info["total_unpaid"] < 0: + info["balance_label"] = ( + "Total Advance Paid" if party_type == "Supplier" else "Total Advance Received" + ) + info["balance_amount"] = abs(info["total_unpaid"]) + else: + info["balance_label"] = "Total Unpaid" + info["balance_amount"] = info["total_unpaid"] + company_wise_info.append(info) return company_wise_info diff --git a/erpnext/public/js/utils.js b/erpnext/public/js/utils.js index 8ac38f5cd24..9f9da2d9a94 100755 --- a/erpnext/public/js/utils.js +++ b/erpnext/public/js/utils.js @@ -188,11 +188,19 @@ $.extend(erpnext.utils, { ]), "blue" ); + var info = company_wise_info[0]; + var is_advance = info.balance_label !== "Total Unpaid"; + var indicator_label = + info.balance_label === "Total Advance Paid" + ? __("Total Advance Paid: {0}", [format_currency(info.balance_amount, info.currency)]) + : info.balance_label === "Total Advance Received" + ? __("Total Advance Received: {0}", [ + format_currency(info.balance_amount, info.currency), + ]) + : __("Total Unpaid: {0}", [format_currency(info.balance_amount, info.currency)]); frm.dashboard.add_indicator( - __("Total Unpaid: {0}", [ - format_currency(company_wise_info[0].total_unpaid, company_wise_info[0].currency), - ]), - company_wise_info[0].total_unpaid ? "orange" : "green" + indicator_label, + is_advance ? "green" : info.balance_amount ? "orange" : "green" ); if (company_wise_info[0].loyalty_points) { @@ -235,7 +243,14 @@ $.extend(erpnext.utils, { frm.dashboard.stats_area_row.addClass("flex"); frm.dashboard.stats_area_row.css("flex-wrap", "wrap"); - var color = info.total_unpaid ? "orange" : "green"; + var is_advance = info.balance_label !== "Total Unpaid"; + var color = is_advance ? "green" : info.balance_amount ? "orange" : "green"; + var balance_label_text = + info.balance_label === "Total Advance Paid" + ? __("Total Advance Paid") + : info.balance_label === "Total Advance Received" + ? __("Total Advance Received") + : __("Total Unpaid"); var indicator = $( '
' + @@ -249,8 +264,10 @@ $.extend(erpnext.utils, { '" + "
" ).appendTo(frm.dashboard.stats_area_row); From 2eaa635ab6c88818d2458ae6d09e074b60ad0a92 Mon Sep 17 00:00:00 2001 From: Shllokkk Date: Fri, 26 Jun 2026 15:00:54 +0530 Subject: [PATCH 23/54] fix: remove dead bundle helper call from purchase receipt print format (cherry picked from commit b9f5a77fa7ae7e151a667a38fc5569b4e2cecedd) --- .../purchase_receipt_serial_and_batch_bundle_print.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/stock/print_format/purchase_receipt_serial_and_batch_bundle_print/purchase_receipt_serial_and_batch_bundle_print.json b/erpnext/stock/print_format/purchase_receipt_serial_and_batch_bundle_print/purchase_receipt_serial_and_batch_bundle_print.json index 4f0f74a93ec..bee84e2be21 100644 --- a/erpnext/stock/print_format/purchase_receipt_serial_and_batch_bundle_print/purchase_receipt_serial_and_batch_bundle_print.json +++ b/erpnext/stock/print_format/purchase_receipt_serial_and_batch_bundle_print/purchase_receipt_serial_and_batch_bundle_print.json @@ -8,7 +8,7 @@ "docstatus": 0, "doctype": "Print Format", "font_size": 14, - "format_data": "[{\"fieldname\": \"print_heading_template\", \"fieldtype\": \"Custom HTML\", \"options\": \"
\\t\\t\\t\\t

Purchase Receipt

{{ doc.name }}\\t\\t\\t\\t

\"}, {\"fieldtype\": \"Section Break\", \"label\": \"\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldname\": \"supplier_name\", \"print_hide\": 0, \"label\": \"Supplier Name\"}, {\"fieldname\": \"supplier_delivery_note\", \"print_hide\": 0, \"label\": \"Supplier Delivery Note\"}, {\"fieldname\": \"rack\", \"print_hide\": 0, \"label\": \"Rack\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldname\": \"posting_date\", \"print_hide\": 0, \"label\": \"Date\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldname\": \"apply_putaway_rule\", \"print_hide\": 0, \"label\": \"Apply Putaway Rule\"}, {\"fieldtype\": \"Section Break\", \"label\": \"Accounting Dimensions\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldname\": \"region\", \"print_hide\": 0, \"label\": \"Region\"}, {\"fieldname\": \"function\", \"print_hide\": 0, \"label\": \"Function\"}, {\"fieldname\": \"depot\", \"print_hide\": 0, \"label\": \"Depot\"}, {\"fieldname\": \"cost_center\", \"print_hide\": 0, \"label\": \"Cost Center\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldname\": \"location\", \"print_hide\": 0, \"label\": \"Location\"}, {\"fieldname\": \"country\", \"print_hide\": 0, \"label\": \"Country\"}, {\"fieldname\": \"project\", \"print_hide\": 0, \"label\": \"Project\"}, {\"fieldtype\": \"Section Break\", \"label\": \"Items\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldname\": \"scan_barcode\", \"print_hide\": 0, \"label\": \"Scan Barcode\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldname\": \"set_from_warehouse\", \"print_hide\": 0, \"label\": \"Set From Warehouse\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldtype\": \"Section Break\", \"label\": \"\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldname\": \"_custom_html\", \"print_hide\": 0, \"label\": \"Custom HTML\", \"fieldtype\": \"HTML\", \"options\": \"\\n\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\t{%- for row in doc.items -%}\\n\\t\\t\\n\\t\\t {% set bundle_data = get_serial_or_batch_nos(row.serial_and_batch_bundle) %}\\n\\t\\t {% set serial_nos = [] %}\\n {% set batches = {} %}\\n\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\t{%- endfor -%}\\n\\t\\n
SrItem NameDescriptionQtyRateAmount
{{ row.idx }}\\n\\t\\t\\t\\t{{ row.item_name }}\\n\\t\\t\\t\\t{% if row.item_code != row.item_name -%}\\n\\t\\t\\t\\t
Item Code: {{ row.item_code}}\\n\\t\\t\\t\\t{%- endif %}\\n\\t\\t\\t
\\n\\t\\t\\t\\t
{{ row.description }}
{{ row.qty }} {{ row.uom or row.stock_uom }}{{\\n\\t\\t\\t\\trow.get_formatted(\\\"rate\\\", doc) }}{{\\n\\t\\t\\t\\trow.get_formatted(\\\"amount\\\", doc) }}
\\n\"}, {\"fieldtype\": \"Section Break\", \"label\": \"\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldname\": \"total_qty\", \"print_hide\": 0, \"label\": \"Total Quantity\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldname\": \"total\", \"print_hide\": 0, \"label\": \"Total\"}, {\"fieldtype\": \"Section Break\", \"label\": \"\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldname\": \"taxes\", \"print_hide\": 0, \"label\": \"Purchase Taxes and Charges\", \"visible_columns\": [{\"fieldname\": \"category\", \"print_width\": \"\", \"print_hide\": 0}, {\"fieldname\": \"add_deduct_tax\", \"print_width\": \"\", \"print_hide\": 0}, {\"fieldname\": \"charge_type\", \"print_width\": \"\", \"print_hide\": 0}, {\"fieldname\": \"row_id\", \"print_width\": \"\", \"print_hide\": 0}, {\"fieldname\": \"included_in_print_rate\", \"print_width\": \"\", \"print_hide\": 0}, {\"fieldname\": \"included_in_paid_amount\", \"print_width\": \"\", \"print_hide\": 0}, {\"fieldname\": \"account_head\", \"print_width\": \"\", \"print_hide\": 0}, {\"fieldname\": \"description\", \"print_width\": \"300px\", \"print_hide\": 0}, {\"fieldname\": \"rate\", \"print_width\": \"\", \"print_hide\": 0}, {\"fieldname\": \"region\", \"print_width\": \"\", \"print_hide\": 0}, {\"fieldname\": \"function\", \"print_width\": \"\", \"print_hide\": 0}, {\"fieldname\": \"location\", \"print_width\": \"\", \"print_hide\": 0}, {\"fieldname\": \"cost_center\", \"print_width\": \"\", \"print_hide\": 0}, {\"fieldname\": \"depot\", \"print_width\": \"\", \"print_hide\": 0}, {\"fieldname\": \"country\", \"print_width\": \"\", \"print_hide\": 0}, {\"fieldname\": \"account_currency\", \"print_width\": \"\", \"print_hide\": 0}, {\"fieldname\": \"tax_amount\", \"print_width\": \"\", \"print_hide\": 0}, {\"fieldname\": \"total\", \"print_width\": \"\", \"print_hide\": 0}]}, {\"fieldtype\": \"Section Break\", \"label\": \"Totals\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldname\": \"grand_total\", \"print_hide\": 0, \"label\": \"Grand Total\"}, {\"fieldname\": \"rounded_total\", \"print_hide\": 0, \"label\": \"Rounded Total\"}, {\"fieldname\": \"in_words\", \"print_hide\": 0, \"label\": \"In Words\"}, {\"fieldname\": \"disable_rounded_total\", \"print_hide\": 0, \"label\": \"Disable Rounded Total\"}, {\"fieldtype\": \"Section Break\", \"label\": \"Supplier Address\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldname\": \"address_display\", \"print_hide\": 0, \"label\": \"Address\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldname\": \"contact_display\", \"print_hide\": 0, \"label\": \"Contact\"}, {\"fieldname\": \"contact_mobile\", \"print_hide\": 0, \"label\": \"Mobile No\"}, {\"fieldtype\": \"Section Break\", \"label\": \"Company Billing Address\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldname\": \"billing_address\", \"print_hide\": 0, \"label\": \"Billing Address\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldname\": \"billing_address_display\", \"print_hide\": 0, \"label\": \"Billing Address\"}, {\"fieldname\": \"terms\", \"nolabel\": 1, \"print_hide\": 0, \"label\": \"Terms and Conditions\"}, {\"fieldtype\": \"Section Break\", \"label\": \"\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldname\": \"_custom_html\", \"print_hide\": 0, \"label\": \"Custom HTML\", \"fieldtype\": \"HTML\", \"options\": \"\\n\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\t{%- for row in doc.items -%}\\n\\t\\t\\n\\t\\t {% set bundle_data = frappe.get_all(\\\"Serial and Batch Entry\\\", \\n\\t\\t fields=[\\\"serial_no\\\", \\\"batch_no\\\", \\\"qty\\\"], \\n\\t\\t filters={\\\"parent\\\": row.serial_and_batch_bundle}) %}\\n\\t\\t {% set serial_nos = [] %}\\n {% set batches = {} %}\\n \\n {% if bundle_data %}\\n\\t\\t\\t {% for data in bundle_data %}\\n\\t\\t\\t {% if data.serial_no %}\\n\\t\\t\\t {{ serial_nos.append(data.serial_no) or \\\"\\\" }}\\n\\t\\t\\t {% endif %}\\n\\t\\t\\t \\n\\t\\t\\t {% if data.batch_no %}\\n\\t\\t\\t {{ batches.update({data.batch_no: data.qty}) or \\\"\\\" }}\\n\\t\\t\\t {% endif %}\\n\\t\\t\\t {% endfor %}\\n\\t\\t\\t{% endif %}\\n\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\t{%- endfor -%}\\n\\t\\n
SrItem NameQtySerial NosBatch Nos (Qty)
{{ row.idx }}\\n\\t\\t\\t\\t{{ row.item_name }}\\n\\t\\t\\t\\t{% if row.item_code != row.item_name -%}\\n\\t\\t\\t\\t
Item Code: {{ row.item_code}}\\n\\t\\t\\t\\t{%- endif %}\\n\\t\\t\\t
{{ row.qty }} {{ row.uom or row.stock_uom }}{{ serial_nos|join(',') }}\\n\\t\\t\\t {% if batches %}\\n {% for batch_no, qty in batches.items() %}\\n

{{batch_no}} : {{qty}} {{ row.uom or row.stock_uom }}

\\n {% endfor %}\\n {% endif %}\\n\\t\\t\\t
\\n\"}]", + "format_data": "[{\"fieldname\": \"print_heading_template\", \"fieldtype\": \"Custom HTML\", \"options\": \"
\\t\\t\\t\\t

Purchase Receipt

{{ doc.name }}\\t\\t\\t\\t

\"}, {\"fieldtype\": \"Section Break\", \"label\": \"\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldname\": \"supplier_name\", \"print_hide\": 0, \"label\": \"Supplier Name\"}, {\"fieldname\": \"supplier_delivery_note\", \"print_hide\": 0, \"label\": \"Supplier Delivery Note\"}, {\"fieldname\": \"rack\", \"print_hide\": 0, \"label\": \"Rack\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldname\": \"posting_date\", \"print_hide\": 0, \"label\": \"Date\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldname\": \"apply_putaway_rule\", \"print_hide\": 0, \"label\": \"Apply Putaway Rule\"}, {\"fieldtype\": \"Section Break\", \"label\": \"Accounting Dimensions\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldname\": \"region\", \"print_hide\": 0, \"label\": \"Region\"}, {\"fieldname\": \"function\", \"print_hide\": 0, \"label\": \"Function\"}, {\"fieldname\": \"depot\", \"print_hide\": 0, \"label\": \"Depot\"}, {\"fieldname\": \"cost_center\", \"print_hide\": 0, \"label\": \"Cost Center\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldname\": \"location\", \"print_hide\": 0, \"label\": \"Location\"}, {\"fieldname\": \"country\", \"print_hide\": 0, \"label\": \"Country\"}, {\"fieldname\": \"project\", \"print_hide\": 0, \"label\": \"Project\"}, {\"fieldtype\": \"Section Break\", \"label\": \"Items\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldname\": \"scan_barcode\", \"print_hide\": 0, \"label\": \"Scan Barcode\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldname\": \"set_from_warehouse\", \"print_hide\": 0, \"label\": \"Set From Warehouse\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldtype\": \"Section Break\", \"label\": \"\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldname\": \"_custom_html\", \"print_hide\": 0, \"label\": \"Custom HTML\", \"fieldtype\": \"HTML\", \"options\": \"\\n\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\t{%- for row in doc.items -%}\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\t{%- endfor -%}\\n\\t\\n
SrItem NameDescriptionQtyRateAmount
{{ row.idx }}\\n\\t\\t\\t\\t{{ row.item_name }}\\n\\t\\t\\t\\t{% if row.item_code != row.item_name -%}\\n\\t\\t\\t\\t
Item Code: {{ row.item_code}}\\n\\t\\t\\t\\t{%- endif %}\\n\\t\\t\\t
\\n\\t\\t\\t\\t
{{ row.description }}
{{ row.qty }} {{ row.uom or row.stock_uom }}{{\\n\\t\\t\\t\\trow.get_formatted(\\\"rate\\\", doc) }}{{\\n\\t\\t\\t\\trow.get_formatted(\\\"amount\\\", doc) }}
\\n\"}, {\"fieldtype\": \"Section Break\", \"label\": \"\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldname\": \"total_qty\", \"print_hide\": 0, \"label\": \"Total Quantity\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldname\": \"total\", \"print_hide\": 0, \"label\": \"Total\"}, {\"fieldtype\": \"Section Break\", \"label\": \"\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldname\": \"taxes\", \"print_hide\": 0, \"label\": \"Purchase Taxes and Charges\", \"visible_columns\": [{\"fieldname\": \"category\", \"print_width\": \"\", \"print_hide\": 0}, {\"fieldname\": \"add_deduct_tax\", \"print_width\": \"\", \"print_hide\": 0}, {\"fieldname\": \"charge_type\", \"print_width\": \"\", \"print_hide\": 0}, {\"fieldname\": \"row_id\", \"print_width\": \"\", \"print_hide\": 0}, {\"fieldname\": \"included_in_print_rate\", \"print_width\": \"\", \"print_hide\": 0}, {\"fieldname\": \"included_in_paid_amount\", \"print_width\": \"\", \"print_hide\": 0}, {\"fieldname\": \"account_head\", \"print_width\": \"\", \"print_hide\": 0}, {\"fieldname\": \"description\", \"print_width\": \"300px\", \"print_hide\": 0}, {\"fieldname\": \"rate\", \"print_width\": \"\", \"print_hide\": 0}, {\"fieldname\": \"region\", \"print_width\": \"\", \"print_hide\": 0}, {\"fieldname\": \"function\", \"print_width\": \"\", \"print_hide\": 0}, {\"fieldname\": \"location\", \"print_width\": \"\", \"print_hide\": 0}, {\"fieldname\": \"cost_center\", \"print_width\": \"\", \"print_hide\": 0}, {\"fieldname\": \"depot\", \"print_width\": \"\", \"print_hide\": 0}, {\"fieldname\": \"country\", \"print_width\": \"\", \"print_hide\": 0}, {\"fieldname\": \"account_currency\", \"print_width\": \"\", \"print_hide\": 0}, {\"fieldname\": \"tax_amount\", \"print_width\": \"\", \"print_hide\": 0}, {\"fieldname\": \"total\", \"print_width\": \"\", \"print_hide\": 0}]}, {\"fieldtype\": \"Section Break\", \"label\": \"Totals\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldname\": \"grand_total\", \"print_hide\": 0, \"label\": \"Grand Total\"}, {\"fieldname\": \"rounded_total\", \"print_hide\": 0, \"label\": \"Rounded Total\"}, {\"fieldname\": \"in_words\", \"print_hide\": 0, \"label\": \"In Words\"}, {\"fieldname\": \"disable_rounded_total\", \"print_hide\": 0, \"label\": \"Disable Rounded Total\"}, {\"fieldtype\": \"Section Break\", \"label\": \"Supplier Address\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldname\": \"address_display\", \"print_hide\": 0, \"label\": \"Address\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldname\": \"contact_display\", \"print_hide\": 0, \"label\": \"Contact\"}, {\"fieldname\": \"contact_mobile\", \"print_hide\": 0, \"label\": \"Mobile No\"}, {\"fieldtype\": \"Section Break\", \"label\": \"Company Billing Address\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldname\": \"billing_address\", \"print_hide\": 0, \"label\": \"Billing Address\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldname\": \"billing_address_display\", \"print_hide\": 0, \"label\": \"Billing Address\"}, {\"fieldname\": \"terms\", \"nolabel\": 1, \"print_hide\": 0, \"label\": \"Terms and Conditions\"}, {\"fieldtype\": \"Section Break\", \"label\": \"\"}, {\"fieldtype\": \"Column Break\"}, {\"fieldname\": \"_custom_html\", \"print_hide\": 0, \"label\": \"Custom HTML\", \"fieldtype\": \"HTML\", \"options\": \"\\n\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\t{%- for row in doc.items -%}\\n\\t\\t\\n\\t\\t {% set bundle_data = frappe.get_all(\\\"Serial and Batch Entry\\\", \\n\\t\\t fields=[\\\"serial_no\\\", \\\"batch_no\\\", \\\"qty\\\"], \\n\\t\\t filters={\\\"parent\\\": row.serial_and_batch_bundle}) %}\\n\\t\\t {% set serial_nos = [] %}\\n {% set batches = {} %}\\n \\n {% if bundle_data %}\\n\\t\\t\\t {% for data in bundle_data %}\\n\\t\\t\\t {% if data.serial_no %}\\n\\t\\t\\t {{ serial_nos.append(data.serial_no) or \\\"\\\" }}\\n\\t\\t\\t {% endif %}\\n\\t\\t\\t \\n\\t\\t\\t {% if data.batch_no %}\\n\\t\\t\\t {{ batches.update({data.batch_no: data.qty}) or \\\"\\\" }}\\n\\t\\t\\t {% endif %}\\n\\t\\t\\t {% endfor %}\\n\\t\\t\\t{% endif %}\\n\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\t{%- endfor -%}\\n\\t\\n
SrItem NameQtySerial NosBatch Nos (Qty)
{{ row.idx }}\\n\\t\\t\\t\\t{{ row.item_name }}\\n\\t\\t\\t\\t{% if row.item_code != row.item_name -%}\\n\\t\\t\\t\\t
Item Code: {{ row.item_code}}\\n\\t\\t\\t\\t{%- endif %}\\n\\t\\t\\t
{{ row.qty }} {{ row.uom or row.stock_uom }}{{ serial_nos|join(',') }}\\n\\t\\t\\t {% if batches %}\\n {% for batch_no, qty in batches.items() %}\\n

{{batch_no}} : {{qty}} {{ row.uom or row.stock_uom }}

\\n {% endfor %}\\n {% endif %}\\n\\t\\t\\t
\\n\"}]", "idx": 0, "line_breaks": 0, "margin_bottom": 15.0, From 9bc240c4f0c6acf62bfbb0bdf8090f6b1a2da83c Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Fri, 26 Jun 2026 17:06:08 +0530 Subject: [PATCH 24/54] ci: bump pre-commit actions to v3.0.1 (backport #56562) (#56567) Co-authored-by: Diptanil Saha --- .github/workflows/linters.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/linters.yml b/.github/workflows/linters.yml index 37d8363beaa..0d2cd148251 100644 --- a/.github/workflows/linters.yml +++ b/.github/workflows/linters.yml @@ -21,7 +21,7 @@ jobs: cache: pip - name: Install and Run Pre-commit - uses: pre-commit/action@v3.0.0 + uses: pre-commit/action@v3.0.1 semgrep: name: semgrep From b4d83e542aac8aebf5815aee5d126cde2a5c647b Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Fri, 26 Jun 2026 19:42:45 +0530 Subject: [PATCH 25/54] fix: ignored posting time 00:00:00 in RIV (backport #56571) (#56573) fix: ignored posting time 00:00:00 in RIV (#56571) (cherry picked from commit 31f89b72b48110a2245791b85994b491c6fda2e5) Co-authored-by: rohitwaghchaure --- .../doctype/repost_item_valuation/repost_item_valuation.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py b/erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py index 9a57a2bf380..d741d923547 100644 --- a/erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py +++ b/erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py @@ -93,7 +93,7 @@ class RepostItemValuation(Document): self.validate_recreate_stock_ledgers() def set_default_posting_time(self): - if not self.posting_time: + if self.posting_time is None: self.posting_time = nowtime() if not self.posting_date: From 112b773193e2aa3ddf58684e0662b04a0cf62389 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Sat, 27 Jun 2026 01:37:18 +0530 Subject: [PATCH 26/54] chore: removing `controllers` from pre-commit eslint hooks exclude list (backport #56575) (#56579) Co-authored-by: Diptanil Saha --- .pre-commit-config.yaml | 1 - erpnext/public/js/controllers/accounts.js | 11 ++++------- .../public/js/controllers/taxes_and_totals.js | 10 ++++++---- erpnext/public/js/controllers/transaction.js | 17 ++++++----------- 4 files changed, 16 insertions(+), 23 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 958a74595a6..47ba17359f3 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -48,7 +48,6 @@ repos: cypress/.*| .*node_modules.*| .*boilerplate.*| - erpnext/public/js/controllers/.*| erpnext/templates/pages/order.js| erpnext/templates/includes/.* )$ diff --git a/erpnext/public/js/controllers/accounts.js b/erpnext/public/js/controllers/accounts.js index 97e40f490d6..f264639136b 100644 --- a/erpnext/public/js/controllers/accounts.js +++ b/erpnext/public/js/controllers/accounts.js @@ -23,15 +23,12 @@ erpnext.accounts.taxes = { onload: function (frm) { if (frm.get_field("taxes")) { frm.set_query("account_head", "taxes", function (doc) { + let account_type = ["Tax", "Chargeable"]; + if (frm.cscript.tax_table == "Sales Taxes and Charges") { - var account_type = ["Tax", "Chargeable", "Expense Account"]; + account_type.push("Expense Account"); } else { - var account_type = [ - "Tax", - "Chargeable", - "Income Account", - "Expenses Included In Valuation", - ]; + account_type.push("Income Account", "Expenses Included In Valuation"); } return { diff --git a/erpnext/public/js/controllers/taxes_and_totals.js b/erpnext/public/js/controllers/taxes_and_totals.js index acbffa95d7d..8a0719c6d3f 100644 --- a/erpnext/public/js/controllers/taxes_and_totals.js +++ b/erpnext/public/js/controllers/taxes_and_totals.js @@ -952,14 +952,15 @@ erpnext.taxes_and_totals = class TaxesAndTotals extends erpnext.payments { if (["Sales Invoice", "POS Invoice", "Purchase Invoice"].includes(this.frm.doc.doctype)) { let grand_total = this.frm.doc.rounded_total || this.frm.doc.grand_total; let base_grand_total = this.frm.doc.base_rounded_total || this.frm.doc.base_grand_total; + let total_amount_to_pay; if (this.frm.doc.party_account_currency == this.frm.doc.currency) { - var total_amount_to_pay = flt( + total_amount_to_pay = flt( grand_total - this.frm.doc.total_advance - this.frm.doc.write_off_amount, precision("grand_total") ); } else { - var total_amount_to_pay = flt( + total_amount_to_pay = flt( flt(base_grand_total, precision("base_grand_total")) - this.frm.doc.total_advance - this.frm.doc.base_write_off_amount, @@ -1004,14 +1005,15 @@ erpnext.taxes_and_totals = class TaxesAndTotals extends erpnext.payments { async set_total_amount_to_default_mop() { let grand_total = this.frm.doc.rounded_total || this.frm.doc.grand_total; let base_grand_total = this.frm.doc.base_rounded_total || this.frm.doc.base_grand_total; + let total_amount_to_pay; if (this.frm.doc.party_account_currency == this.frm.doc.currency) { - var total_amount_to_pay = flt( + total_amount_to_pay = flt( grand_total - this.frm.doc.total_advance - this.frm.doc.write_off_amount, precision("grand_total") ); } else { - var total_amount_to_pay = flt( + total_amount_to_pay = flt( flt(base_grand_total, precision("base_grand_total")) - this.frm.doc.total_advance - this.frm.doc.base_write_off_amount, diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js index 3fce8850d7a..d3832b4dd46 100644 --- a/erpnext/public/js/controllers/transaction.js +++ b/erpnext/public/js/controllers/transaction.js @@ -1273,13 +1273,8 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe var set_party_account = function (set_pricing) { if (["Sales Invoice", "Purchase Invoice"].includes(me.frm.doc.doctype)) { - if (me.frm.doc.doctype == "Sales Invoice") { - var party_type = "Customer"; - var party_account_field = "debit_to"; - } else { - var party_type = "Supplier"; - var party_account_field = "credit_to"; - } + let party_type = me.frm.doc.doctype == "Sales Invoice" ? "Customer" : "Supplier"; + let party_account_field = me.frm.doc.doctype == "Sales Invoice" ? "debit_to" : "credit_to"; var party = me.frm.doc[frappe.model.scrub(party_type)]; if ( @@ -1986,7 +1981,7 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe } if (this.frm.doc.operations && this.frm.doc.operations.length > 0) { - var item_grid = this.frm.fields_dict["operations"].grid; + let item_grid = this.frm.fields_dict["operations"].grid; $.each(["base_operating_cost", "base_hour_rate"], function (i, fname) { if (frappe.meta.get_docfield(item_grid.doctype, fname)) item_grid.set_column_disp(fname, me.frm.doc.currency != company_currency); @@ -1994,7 +1989,7 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe } if (this.frm.doc.secondary_items && this.frm.doc.secondary_items.length > 0) { - var item_grid = this.frm.fields_dict["secondary_items"].grid; + let item_grid = this.frm.fields_dict["secondary_items"].grid; $.each(["base_rate", "base_amount"], function (i, fname) { if (frappe.meta.get_docfield(item_grid.doctype, fname)) item_grid.set_column_disp(fname, me.frm.doc.currency != company_currency); @@ -2391,7 +2386,7 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe row_to_modify[key] = pr_row[key]; } - if (this.frm.doc.hasOwnProperty("is_pos") && this.frm.doc.is_pos) { + if (Object.prototype.hasOwnProperty.call(this.frm.doc, "is_pos") && this.frm.doc.is_pos) { let r = await frappe.db.get_value("POS Profile", this.frm.doc.pos_profile, "cost_center"); if (r.message.cost_center) { row_to_modify["cost_center"] = r.message.cost_center; @@ -2658,7 +2653,7 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe $.each(me.frm.doc.items || [], function (i, item) { if ( item.name && - r.message.hasOwnProperty(item.name) && + Object.prototype.hasOwnProperty.call(r.message, item.name) && r.message[item.name].item_tax_template ) { item.item_tax_template = r.message[item.name].item_tax_template; From df1b4431b6876bba09790d2119107c1ec18d2604 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Sat, 27 Jun 2026 12:04:11 +0530 Subject: [PATCH 27/54] fix: do not allow closing the accounting period for future dates (backport #56551) (#56577) fix: do not allow closing the accounting period for future dates (#56551) (cherry picked from commit 5e60e4faa7a7a2e5238746275995fc1bb7625a48) Co-authored-by: rohitwaghchaure --- .../doctype/accounting_period/accounting_period.py | 13 +++++++++++++ .../accounting_period/test_accounting_period.py | 4 ++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/erpnext/accounts/doctype/accounting_period/accounting_period.py b/erpnext/accounts/doctype/accounting_period/accounting_period.py index 16a29bf4591..67c30d108e8 100644 --- a/erpnext/accounts/doctype/accounting_period/accounting_period.py +++ b/erpnext/accounts/doctype/accounting_period/accounting_period.py @@ -5,6 +5,7 @@ import frappe from frappe import _ from frappe.model.document import Document +from frappe.utils import getdate, nowdate class OverlapError(frappe.ValidationError): @@ -36,8 +37,20 @@ class AccountingPeriod(Document): # end: auto-generated types def validate(self): + self.validate_dates() self.validate_overlap() + def validate_dates(self): + if getdate(self.start_date) > getdate(self.end_date): + frappe.throw(_("Start Date cannot be after End Date")) + + if getdate(self.end_date) > getdate(nowdate()): + frappe.throw( + _( + "Accounting Period cannot be created for a future date. End Date {0} is after today." + ).format(frappe.bold(frappe.format(self.end_date, "Date"))) + ) + def before_insert(self): self.bootstrap_doctypes_for_closing() diff --git a/erpnext/accounts/doctype/accounting_period/test_accounting_period.py b/erpnext/accounts/doctype/accounting_period/test_accounting_period.py index 84df275f305..209af9eac1c 100644 --- a/erpnext/accounts/doctype/accounting_period/test_accounting_period.py +++ b/erpnext/accounts/doctype/accounting_period/test_accounting_period.py @@ -3,7 +3,7 @@ import unittest import frappe -from frappe.utils import add_months, nowdate +from frappe.utils import nowdate from erpnext.accounts.doctype.accounting_period.accounting_period import ( ClosedAccountingPeriod, @@ -94,7 +94,7 @@ def create_accounting_period(**args): accounting_period = frappe.new_doc("Accounting Period") accounting_period.start_date = args.start_date or nowdate() - accounting_period.end_date = args.end_date or add_months(nowdate(), 1) + accounting_period.end_date = args.end_date or nowdate() accounting_period.company = args.company or "_Test Company" accounting_period.period_name = args.period_name or "_Test_Period_Name_1" accounting_period.append("closed_documents", {"document_type": "Sales Invoice", "closed": 1}) From 0b42241682fedf5a452765c3599f5a857adc7d65 Mon Sep 17 00:00:00 2001 From: Mihir Kandoi Date: Sat, 27 Jun 2026 16:13:43 +0530 Subject: [PATCH 28/54] fix: party aliases should be no copy (cherry picked from commit 057af21cd8501aea6183d09d60324b0d6d562b82) # Conflicts: # erpnext/buying/doctype/supplier/supplier.json # erpnext/selling/doctype/customer/customer.json --- erpnext/buying/doctype/supplier/supplier.json | 13 ++++++++++++- erpnext/selling/doctype/customer/customer.json | 13 ++++++++++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/erpnext/buying/doctype/supplier/supplier.json b/erpnext/buying/doctype/supplier/supplier.json index b747a64df43..a09e5041fd6 100644 --- a/erpnext/buying/doctype/supplier/supplier.json +++ b/erpnext/buying/doctype/supplier/supplier.json @@ -548,6 +548,17 @@ { "fieldname": "section_break_pgad", "fieldtype": "Section Break" +<<<<<<< HEAD +======= + }, + { + "fieldname": "alias", + "fieldtype": "Data", + "in_global_search": 1, + "label": "Alias", + "no_copy": 1, + "unique": 1 +>>>>>>> 057af21cd8 (fix: party aliases should be no copy) } ], "grid_page_length": 50, @@ -561,7 +572,7 @@ "link_fieldname": "party" } ], - "modified": "2026-06-22 12:23:09.241125", + "modified": "2026-06-27 16:12:33.190257", "modified_by": "Administrator", "module": "Buying", "name": "Supplier", diff --git a/erpnext/selling/doctype/customer/customer.json b/erpnext/selling/doctype/customer/customer.json index 1cc2cde43c7..57e58b5d03f 100644 --- a/erpnext/selling/doctype/customer/customer.json +++ b/erpnext/selling/doctype/customer/customer.json @@ -682,6 +682,17 @@ { "fieldname": "credit_limit_column", "fieldtype": "Column Break" +<<<<<<< HEAD +======= + }, + { + "fieldname": "alias", + "fieldtype": "Data", + "in_global_search": 1, + "label": "Alias", + "no_copy": 1, + "unique": 1 +>>>>>>> 057af21cd8 (fix: party aliases should be no copy) } ], "icon": "fa fa-user", @@ -695,7 +706,7 @@ "link_fieldname": "party" } ], - "modified": "2026-06-22 12:23:19.196991", + "modified": "2026-06-27 16:12:10.457900", "modified_by": "Administrator", "module": "Selling", "name": "Customer", From b292be34cb81d99a24ffc851f13718053824e291 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Sat, 27 Jun 2026 16:29:48 +0530 Subject: [PATCH 29/54] chore(crm_settings): remove unused `delete_custom_fields` import (backport #56558) (#56583) Co-authored-by: Diptanil Saha --- erpnext/crm/doctype/crm_settings/crm_settings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/crm/doctype/crm_settings/crm_settings.py b/erpnext/crm/doctype/crm_settings/crm_settings.py index 04e5a402add..7ca341adb77 100644 --- a/erpnext/crm/doctype/crm_settings/crm_settings.py +++ b/erpnext/crm/doctype/crm_settings/crm_settings.py @@ -3,7 +3,7 @@ import frappe from frappe import _ -from frappe.custom.doctype.custom_field.custom_field import create_custom_fields, delete_custom_fields +from frappe.custom.doctype.custom_field.custom_field import create_custom_fields from frappe.model.document import Document From e64e9866fb1699bcca005999e69ef6bb5bf292f3 Mon Sep 17 00:00:00 2001 From: Mihir Kandoi Date: Sat, 27 Jun 2026 16:34:20 +0530 Subject: [PATCH 30/54] chore: fix conflicts --- erpnext/buying/doctype/supplier/supplier.json | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/erpnext/buying/doctype/supplier/supplier.json b/erpnext/buying/doctype/supplier/supplier.json index a09e5041fd6..841a3ac780d 100644 --- a/erpnext/buying/doctype/supplier/supplier.json +++ b/erpnext/buying/doctype/supplier/supplier.json @@ -110,6 +110,7 @@ "fieldtype": "Data", "in_global_search": 1, "label": "Alias", + "no_copy": 1, "unique": 1 }, { @@ -548,17 +549,6 @@ { "fieldname": "section_break_pgad", "fieldtype": "Section Break" -<<<<<<< HEAD -======= - }, - { - "fieldname": "alias", - "fieldtype": "Data", - "in_global_search": 1, - "label": "Alias", - "no_copy": 1, - "unique": 1 ->>>>>>> 057af21cd8 (fix: party aliases should be no copy) } ], "grid_page_length": 50, From b35c5c1568ce3fdda0dd6e2484016a0e9980c116 Mon Sep 17 00:00:00 2001 From: Mihir Kandoi Date: Sat, 27 Jun 2026 16:34:53 +0530 Subject: [PATCH 31/54] chore: resolve conflicts --- erpnext/selling/doctype/customer/customer.json | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/erpnext/selling/doctype/customer/customer.json b/erpnext/selling/doctype/customer/customer.json index 57e58b5d03f..5556ab927b4 100644 --- a/erpnext/selling/doctype/customer/customer.json +++ b/erpnext/selling/doctype/customer/customer.json @@ -130,6 +130,7 @@ "fieldtype": "Data", "in_global_search": 1, "label": "Alias", + "no_copy": 1, "unique": 1 }, { @@ -682,17 +683,6 @@ { "fieldname": "credit_limit_column", "fieldtype": "Column Break" -<<<<<<< HEAD -======= - }, - { - "fieldname": "alias", - "fieldtype": "Data", - "in_global_search": 1, - "label": "Alias", - "no_copy": 1, - "unique": 1 ->>>>>>> 057af21cd8 (fix: party aliases should be no copy) } ], "icon": "fa fa-user", From e834098c28bcda3715fb8afb88b11c82681ed601 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Sat, 27 Jun 2026 17:08:54 +0530 Subject: [PATCH 32/54] fix: sync Stock Reconciliation difference amount with GL after reposting (backport #56574) (#56585) * fix: sync Stock Reconciliation difference amount with GL after reposting (#56574) * fix: sync Stock Reconciliation difference amount with GL after reposting * fix: placement of recalculate differece amount function (cherry picked from commit c7ef42ef98b9e1da549f67e73291fb25431aa46e) # Conflicts: # erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py # erpnext/stock/stock_ledger.py * chore: fix conflicts Removed unused import and fixed import order. * chore: fix conflicts Refactor update_rate_on_stock_reconciliation to use recalculation method for difference amount. --------- Co-authored-by: rohitwaghchaure --- .../stock_reconciliation.py | 113 ++++++++++++ .../test_stock_reconciliation.py | 166 ++++++++++++++++++ erpnext/stock/stock_ledger.py | 45 ++--- 3 files changed, 291 insertions(+), 33 deletions(-) diff --git a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py index 3598719f8ae..aa94b808988 100644 --- a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py +++ b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py @@ -1008,6 +1008,102 @@ class StockReconciliation(StockController): d.quantity_difference = flt(d.qty) - flt(d.current_qty) d.amount_difference = flt(d.amount) - flt(d.current_amount) + def recalculate_difference_amount_from_ledger(self): + """Sync the displayed current qty/rate and difference amount with the (reposted) ledger. + + Submitted reconciliations freeze ``difference_amount`` and the per-row current values at + submit time, but reposting/backdated transactions recompute the reconciliation's Stock Ledger + Entries and rebuild the GL from them. Without this sync the document keeps showing stale figures + that no longer match the GL entries. Anchoring ``amount_difference`` to the row's summed + ``stock_value_difference`` keeps the document and the GL consistent by construction. + """ + difference_amount = 0.0 + + for row in self.items: + stock_value_difference = flt(get_row_stock_value_difference(self.doctype, self.name, row.name)) + + amount = flt(flt(row.qty) * flt(row.valuation_rate), row.precision("amount")) + amount_difference = flt(stock_value_difference, row.precision("amount_difference")) + current_amount = flt(amount - amount_difference, row.precision("current_amount")) + + current_qty = self.get_current_qty_from_ledger(row) + current_valuation_rate = ( + flt(current_amount / current_qty, row.precision("current_valuation_rate")) + if current_qty + else 0.0 + ) + + row.db_set( + { + "amount": amount, + "current_qty": current_qty, + "current_valuation_rate": current_valuation_rate, + "current_amount": current_amount, + "quantity_difference": flt(row.qty) - current_qty, + "amount_difference": amount_difference, + }, + update_modified=False, + ) + + difference_amount += amount_difference + + self.db_set( + "difference_amount", + flt(difference_amount, self.precision("difference_amount")), + update_modified=False, + ) + + def get_current_qty_from_ledger(self, row: StockReconciliationItem): + """Current (pre-reconciliation) qty for a row, recomputed from the ledger after reposting. + + Serial/batch rows cannot have backdated qty changes inserted before a future reconciliation + (blocked by ``check_future_entries_exists``), so their current qty is frozen and read straight + from the current bundle. Non-serial rows can float, so read the ledger balance just before the + reconciliation, excluding the reconciliation's own entries. + """ + if row.current_serial_and_batch_bundle: + total_qty = frappe.db.get_value( + "Serial and Batch Bundle", row.current_serial_and_batch_bundle, "total_qty" + ) + return abs(flt(total_qty, row.precision("current_qty"))) + + reco_sle = frappe.db.get_value( + "Stock Ledger Entry", + { + "voucher_type": self.doctype, + "voucher_no": self.name, + "voucher_detail_no": row.name, + "is_cancelled": 0, + }, + ["posting_datetime", "creation"], + as_dict=True, + ) + if not reco_sle: + return flt(row.current_qty, row.precision("current_qty")) + + sle = frappe.qb.DocType("Stock Ledger Entry") + previous_sle = ( + frappe.qb.from_(sle) + .select(sle.qty_after_transaction) + .where( + (sle.item_code == row.item_code) + & (sle.warehouse == row.warehouse) + & (sle.is_cancelled == 0) + & ( + (sle.posting_datetime < reco_sle.posting_datetime) + | ( + (sle.posting_datetime == reco_sle.posting_datetime) + & (sle.creation < reco_sle.creation) + ) + ) + ) + .orderby(sle.posting_datetime, order=frappe.qb.desc) + .orderby(sle.creation, order=frappe.qb.desc) + .limit(1) + ).run() + + return flt(previous_sle[0][0], row.precision("current_qty")) if previous_sle else 0.0 + def submit(self): if len(self.items) > 100: msgprint( @@ -1194,6 +1290,23 @@ def get_itemwise_batch(warehouse, posting_date, company, item_code=None): return itemwise_batch_data +def get_row_stock_value_difference(voucher_type: str, voucher_no: str, voucher_detail_no: str): + """Net stock value change posted to the GL by a reconciliation row (sum of its SLEs).""" + sle = frappe.qb.DocType("Stock Ledger Entry") + result = ( + frappe.qb.from_(sle) + .select(Sum(sle.stock_value_difference)) + .where( + (sle.voucher_type == voucher_type) + & (sle.voucher_no == voucher_no) + & (sle.voucher_detail_no == voucher_detail_no) + & (sle.is_cancelled == 0) + ) + ).run() + + return flt(result[0][0]) if result and result[0][0] else 0.0 + + @frappe.whitelist() def get_stock_balance_for( item_code: str, diff --git a/erpnext/stock/doctype/stock_reconciliation/test_stock_reconciliation.py b/erpnext/stock/doctype/stock_reconciliation/test_stock_reconciliation.py index a0fc5a0161e..0d54ea89eba 100644 --- a/erpnext/stock/doctype/stock_reconciliation/test_stock_reconciliation.py +++ b/erpnext/stock/doctype/stock_reconciliation/test_stock_reconciliation.py @@ -787,6 +787,172 @@ class TestStockReconciliation(ERPNextTestSuite, StockTestMixin): sr1.load_from_db() self.assertEqual(sr1.difference_amount, 10000) + def assert_reco_difference_matches_gl(self, reco_name): + """The displayed Difference Amount (doc and per-row) must equal the reposted GL impact, + i.e. the sum of the reconciliation's Stock Ledger Entry ``stock_value_difference``.""" + from erpnext.stock.doctype.stock_reconciliation.stock_reconciliation import ( + get_row_stock_value_difference, + ) + + reco = frappe.get_doc("Stock Reconciliation", reco_name) + total_difference = 0.0 + + for row in reco.items: + row_difference = flt( + get_row_stock_value_difference("Stock Reconciliation", reco_name, row.name), + row.precision("amount_difference"), + ) + + self.assertEqual(flt(row.amount_difference), row_difference) + total_difference += row_difference + + self.assertEqual( + flt(reco.difference_amount, reco.precision("difference_amount")), + flt(total_difference, reco.precision("difference_amount")), + ) + + def test_difference_amount_synced_with_gl_after_repost_non_serialized(self): + from erpnext.stock.doctype.stock_entry.test_stock_entry import make_stock_entry + + item_code = self.make_item().name + warehouse = "_Test Warehouse - _TC" + + # Opening stock => 100 * 100 = 10000 + make_stock_entry( + item_code=item_code, + target=warehouse, + qty=100, + basic_rate=100, + posting_date=add_days(nowdate(), -5), + posting_time="10:00:00", + ) + + # Reconcile to 100 @ 200 => difference 20000 - 10000 = 10000 + reco = create_stock_reconciliation( + item_code=item_code, + warehouse=warehouse, + qty=100, + rate=200, + posting_date=add_days(nowdate(), -2), + ) + self.assertEqual(reco.difference_amount, 10000) + self.assert_reco_difference_matches_gl(reco.name) + + # Backdated reconciliation lowers the pre-reco stock value to 50 * 50 = 2500 + create_stock_reconciliation( + item_code=item_code, + warehouse=warehouse, + qty=50, + rate=50, + posting_date=add_days(nowdate(), -3), + ) + + reco.load_from_db() + # Current is now 2500 => difference 20000 - 2500 = 17500 + self.assertEqual(reco.difference_amount, 17500) + self.assert_reco_difference_matches_gl(reco.name) + + def test_difference_amount_synced_with_gl_after_repost_batched(self): + from erpnext.stock.doctype.landed_cost_voucher.test_landed_cost_voucher import ( + make_landed_cost_voucher, + ) + + item_code = self.make_item( + "Test Batch Item Reco Difference Sync", + { + "is_stock_item": 1, + "has_batch_no": 1, + "create_new_batch": 1, + "batch_number_series": "TEST-BATCH-DIFFSYNC-.###", + }, + ).name + warehouse = "_Test Warehouse - _TC" + + # Receive 10 @ 100 (batch value 1000) + pr = make_purchase_receipt( + item_code=item_code, + warehouse=warehouse, + qty=10, + rate=100, + posting_date=add_days(nowdate(), -5), + ) + batch_no = get_batch_from_bundle(pr.items[0].serial_and_batch_bundle) + + # Reconcile the batch to 10 @ 500 => difference 5000 - 1000 = 4000 + reco = create_stock_reconciliation( + item_code=item_code, + warehouse=warehouse, + qty=10, + rate=500, + batch_no=batch_no, + use_serial_batch_fields=1, + posting_date=add_days(nowdate(), -2), + ) + difference_on_submit = reco.difference_amount + self.assert_reco_difference_matches_gl(reco.name) + + # Landed cost retroactively raises the receipt (and batch) valuation, reposting the reco + make_landed_cost_voucher( + receipt_document_type="Purchase Receipt", + receipt_document=pr.name, + charges=1000, + company="_Test Company", + ) + + reco.load_from_db() + self.assertNotEqual(reco.difference_amount, difference_on_submit) + self.assert_reco_difference_matches_gl(reco.name) + + def test_difference_amount_synced_with_gl_after_repost_serialized(self): + from erpnext.stock.doctype.landed_cost_voucher.test_landed_cost_voucher import ( + make_landed_cost_voucher, + ) + + item_code = self.make_item( + "Test Serial Item Reco Difference Sync", + { + "is_stock_item": 1, + "has_serial_no": 1, + "serial_no_series": "TSIRDS.####", + }, + ).name + warehouse = "_Test Warehouse - _TC" + + # Receive 5 serial nos @ 100 (value 500) + pr = make_purchase_receipt( + item_code=item_code, + warehouse=warehouse, + qty=5, + rate=100, + posting_date=add_days(nowdate(), -5), + ) + serial_nos = get_serial_nos_from_bundle(pr.items[0].serial_and_batch_bundle) + + # Reconcile the serial nos to 5 @ 500 => difference 2500 - 500 = 2000 + reco = create_stock_reconciliation( + item_code=item_code, + warehouse=warehouse, + qty=5, + rate=500, + serial_no="\n".join(serial_nos), + use_serial_batch_fields=1, + posting_date=add_days(nowdate(), -2), + ) + difference_on_submit = reco.difference_amount + self.assert_reco_difference_matches_gl(reco.name) + + # Landed cost retroactively raises the receipt (and serial) valuation, reposting the reco + make_landed_cost_voucher( + receipt_document_type="Purchase Receipt", + receipt_document=pr.name, + charges=1000, + company="_Test Company", + ) + + reco.load_from_db() + self.assertNotEqual(reco.difference_amount, difference_on_submit) + self.assert_reco_difference_matches_gl(reco.name) + def test_make_stock_zero_for_serial_batch_item(self): from erpnext.stock.doctype.stock_entry.test_stock_entry import make_stock_entry diff --git a/erpnext/stock/stock_ledger.py b/erpnext/stock/stock_ledger.py index 8c4eb5a8d1d..b8e7874002b 100644 --- a/erpnext/stock/stock_ledger.py +++ b/erpnext/stock/stock_ledger.py @@ -1337,6 +1337,11 @@ class update_entries_after: Update outgoing rate in Stock Entry, Delivery Note, Sales Invoice and Sales Return In case of Stock Entry, also calculate FG Item rate and total incoming/outgoing amount """ + if sle.voucher_type == "Stock Reconciliation": + if flt(sle.actual_qty) <= 0 and not self.args.get("sle_id"): + self.update_rate_on_stock_reconciliation(sle) + return + if sle.actual_qty and sle.voucher_detail_no: outgoing_rate = abs(flt(sle.stock_value_difference)) / abs(sle.actual_qty) @@ -1348,8 +1353,6 @@ class update_entries_after: self.update_rate_on_purchase_receipt(sle, outgoing_rate) elif flt(sle.actual_qty) < 0 and sle.voucher_type == "Subcontracting Receipt": self.update_rate_on_subcontracting_receipt(sle, outgoing_rate) - elif sle.voucher_type == "Stock Reconciliation": - self.update_rate_on_stock_reconciliation(sle) def update_rate_on_stock_entry(self, sle, outgoing_rate): frappe.db.set_value("Stock Entry Detail", sle.voucher_detail_no, "basic_rate", outgoing_rate) @@ -1443,37 +1446,13 @@ class update_entries_after: d.db_update() def update_rate_on_stock_reconciliation(self, sle): - if not sle.serial_no and not sle.batch_no: - sr = frappe.get_lazy_doc("Stock Reconciliation", sle.voucher_no, for_update=True) - - for item in sr.items: - # Skip for Serial and Batch Items - if item.name != sle.voucher_detail_no or item.serial_no or item.batch_no: - continue - - previous_sle = get_previous_sle( - { - "item_code": item.item_code, - "warehouse": item.warehouse, - "posting_date": sr.posting_date, - "posting_time": sr.posting_time, - "sle": sle.name, - } - ) - - item.current_qty = previous_sle.get("qty_after_transaction") or 0.0 - item.current_valuation_rate = previous_sle.get("valuation_rate") or 0.0 - item.current_amount = flt(item.current_qty) * flt(item.current_valuation_rate) - - item.amount = flt(item.qty) * flt(item.valuation_rate) - item.quantity_difference = item.qty - item.current_qty - item.amount_difference = item.amount - item.current_amount - else: - sr.difference_amount = sum([item.amount_difference for item in sr.items]) - sr.db_update() - - for item in sr.items: - item.db_update() + # Refresh the reconciliation's difference amount and per-row current qty/rate from the reposted + # ledger so the document keeps matching the GL entries. Handles serialized, batched and + # non-serialized items uniformly (the document method reads the current bundle for serial/batch + # rows and the pre-reconciliation ledger balance for non-serial rows). + frappe.get_lazy_doc( + "Stock Reconciliation", sle.voucher_no, for_update=True + ).recalculate_difference_amount_from_ledger() def get_incoming_value_for_serial_nos(self, sle, serial_nos): # get rate from serial nos within same company From 1cc2890f3e1b33d5007161a443d5c6857e700e52 Mon Sep 17 00:00:00 2001 From: MochaMind Date: Mon, 29 Jun 2026 00:56:46 +0530 Subject: [PATCH 33/54] chore: update POT file (#56591) --- erpnext/locale/main.pot | 2068 ++++++++++++++++++++------------------- 1 file changed, 1048 insertions(+), 1020 deletions(-) diff --git a/erpnext/locale/main.pot b/erpnext/locale/main.pot index 4b186fcedca..ca3bb588a37 100644 --- a/erpnext/locale/main.pot +++ b/erpnext/locale/main.pot @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ERPNext VERSION\n" "Report-Msgid-Bugs-To: hello@frappe.io\n" -"POT-Creation-Date: 2026-06-21 10:42+0000\n" -"PO-Revision-Date: 2026-06-21 10:42+0000\n" +"POT-Creation-Date: 2026-06-28 10:20+0000\n" +"PO-Revision-Date: 2026-06-28 10:20+0000\n" "Last-Translator: hello@frappe.io\n" "Language-Team: hello@frappe.io\n" "MIME-Version: 1.0\n" @@ -998,7 +998,7 @@ msgstr "" msgid "A - C" msgstr "" -#: erpnext/selling/doctype/customer/customer.py:354 +#: erpnext/selling/doctype/customer/customer.py:355 msgid "A Customer Group exists with same name please change the Customer name or rename the Customer Group" msgstr "" @@ -1237,7 +1237,7 @@ msgid "Accepted Qty in Stock UOM" msgstr "" #. Label of the qty (Float) field in DocType 'Purchase Receipt Item' -#: erpnext/public/js/controllers/transaction.js:2850 +#: erpnext/public/js/controllers/transaction.js:2864 #: erpnext/stock/doctype/purchase_receipt_item/purchase_receipt_item.json msgid "Accepted Quantity" msgstr "" @@ -1273,10 +1273,15 @@ msgstr "" msgid "According to CEFACT/ICG/2010/IC013 or CEFACT/ICG/2010/IC010" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1264 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1269 msgid "According to the BOM {0}, the Item '{1}' is missing in the stock entry." msgstr "" +#. Description of the 'Customer Numbers' (Table) field in DocType 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "Account / customer numbers assigned to your companies by this supplier (for reconciliation on their statements)" +msgstr "" + #. Name of a report #: erpnext/accounts/report/account_balance/account_balance.json msgid "Account Balance" @@ -1391,7 +1396,7 @@ msgstr "" msgid "Account Manager" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1050 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1057 #: erpnext/controllers/accounts_controller.py:2403 msgid "Account Missing" msgstr "" @@ -1943,16 +1948,16 @@ msgstr "" #: erpnext/assets/doctype/asset/asset.py:937 #: erpnext/assets/doctype/asset/asset.py:952 -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:543 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:546 msgid "Accounting Entry for Asset" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:2262 -#: erpnext/stock/doctype/stock_entry/stock_entry.py:2282 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2320 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2340 msgid "Accounting Entry for LCV in Stock Entry {0}" msgstr "" -#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:912 +#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:918 msgid "Accounting Entry for Landed Cost Voucher for SCR {0}" msgstr "" @@ -1967,14 +1972,14 @@ msgstr "" #: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1127 #: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1155 #: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1267 -#: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1503 -#: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1525 -#: erpnext/controllers/stock_controller.py:725 -#: erpnext/controllers/stock_controller.py:742 -#: erpnext/stock/doctype/purchase_receipt/purchase_receipt.py:931 -#: erpnext/stock/doctype/stock_entry/stock_entry.py:2207 -#: erpnext/stock/doctype/stock_entry/stock_entry.py:2221 -#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:747 +#: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1506 +#: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1528 +#: erpnext/controllers/stock_controller.py:728 +#: erpnext/controllers/stock_controller.py:745 +#: erpnext/stock/doctype/purchase_receipt/purchase_receipt.py:935 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2265 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2279 +#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:753 msgid "Accounting Entry for Stock" msgstr "" @@ -1989,7 +1994,7 @@ msgstr "" #: erpnext/accounts/doctype/invoice_discounting/invoice_discounting.js:193 #: erpnext/assets/doctype/asset/asset.js:185 #: erpnext/assets/doctype/asset_repair/asset_repair.js:92 -#: erpnext/buying/doctype/supplier/supplier.js:98 +#: erpnext/buying/doctype/supplier/supplier.js:123 #: erpnext/public/js/controllers/stock_controller.js:88 #: erpnext/public/js/utils/ledger_preview.js:8 #: erpnext/selling/doctype/customer/customer.js:173 @@ -2016,7 +2021,11 @@ msgstr "" msgid "Accounting Period" msgstr "" -#: erpnext/accounts/doctype/accounting_period/accounting_period.py:68 +#: erpnext/accounts/doctype/accounting_period/accounting_period.py:49 +msgid "Accounting Period cannot be created for a future date. End Date {0} is after today." +msgstr "" + +#: erpnext/accounts/doctype/accounting_period/accounting_period.py:81 msgid "Accounting Period overlaps with {0}" msgstr "" @@ -2036,8 +2045,6 @@ msgstr "" #. Label of the section_break_2 (Section Break) field in DocType 'Asset #. Category' #. Label of the accounts (Table) field in DocType 'Asset Category' -#. Label of the accounts (Table) field in DocType 'Supplier' -#. Label of the accounts (Table) field in DocType 'Customer' #. Label of the accounts_tab (Tab Break) field in DocType 'Company' #. Label of the accounts (Table) field in DocType 'Customer Group' #. Label of the accounts (Section Break) field in DocType 'Email Digest' @@ -2049,8 +2056,6 @@ msgstr "" #: erpnext/accounts/doctype/payment_entry/payment_entry.json #: erpnext/accounts/doctype/tax_withholding_category/tax_withholding_category.json #: erpnext/assets/doctype/asset_category/asset_category.json -#: erpnext/buying/doctype/supplier/supplier.json -#: erpnext/selling/doctype/customer/customer.json #: erpnext/setup/doctype/company/company.json #: erpnext/setup/doctype/company/company.py:445 #: erpnext/setup/doctype/customer_group/customer_group.json @@ -2092,7 +2097,7 @@ msgstr "" #: erpnext/accounts/doctype/journal_entry/journal_entry.json #: erpnext/accounts/report/accounts_payable/accounts_payable.json #: erpnext/accounts/report/accounts_payable_summary/accounts_payable_summary.js:124 -#: erpnext/buying/doctype/supplier/supplier.js:110 +#: erpnext/buying/doctype/supplier/supplier.js:135 #: erpnext/workspace_sidebar/financial_reports.json #: erpnext/workspace_sidebar/invoicing.json #: erpnext/workspace_sidebar/payments.json @@ -2607,8 +2612,8 @@ msgstr "" msgid "Actual qty in stock" msgstr "" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1529 -#: erpnext/public/js/controllers/accounts.js:197 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1538 +#: erpnext/public/js/controllers/accounts.js:194 msgid "Actual type tax cannot be included in Item rate in row {0}" msgstr "" @@ -2769,10 +2774,6 @@ msgstr "" msgid "Add Serial / Batch No (Rejected Qty)" msgstr "" -#: erpnext/public/js/utils/naming_series.js:26 -msgid "Add Series Prefix" -msgstr "" - #: erpnext/manufacturing/doctype/plant_floor/plant_floor.js:200 msgid "Add Stock" msgstr "" @@ -3018,7 +3019,7 @@ msgstr "" msgid "Additional Discount Amount (Company Currency)" msgstr "" -#: erpnext/controllers/taxes_and_totals.py:846 +#: erpnext/controllers/taxes_and_totals.py:849 msgid "Additional Discount Amount ({discount_amount}) cannot exceed the total before such discount ({total_before_discount})" msgstr "" @@ -3145,12 +3146,7 @@ msgid "" "\t\t\t\t\tin Manufacturing Settings." msgstr "" -#. Description of the 'Customer Details' (Text) field in DocType 'Customer' -#: erpnext/selling/doctype/customer/customer.json -msgid "Additional information regarding the customer." -msgstr "" - -#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:629 +#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:635 msgid "Additional {0} {1} of item {2} required as per BOM to complete this transaction" msgstr "" @@ -3412,7 +3408,7 @@ msgstr "" msgid "Advance amount" msgstr "" -#: erpnext/controllers/taxes_and_totals.py:983 +#: erpnext/controllers/taxes_and_totals.py:986 msgid "Advance amount cannot be greater than {0} {1}" msgstr "" @@ -3496,7 +3492,7 @@ msgstr "" msgid "Against Blanket Order" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1143 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1150 msgid "Against Customer Order {0}" msgstr "" @@ -3739,6 +3735,13 @@ msgstr "" msgid "Algorithm" msgstr "" +#. Label of the alias (Data) field in DocType 'Supplier' +#. Label of the alias (Data) field in DocType 'Customer' +#: erpnext/buying/doctype/supplier/supplier.json +#: erpnext/selling/doctype/customer/customer.json +msgid "Alias" +msgstr "" + #: erpnext/accounts/doctype/chart_of_accounts_importer/chart_of_accounts_importer.js:165 #: erpnext/accounts/doctype/chart_of_accounts_importer/chart_of_accounts_importer.js:185 #: erpnext/accounts/doctype/chart_of_accounts_importer/chart_of_accounts_importer.py:169 @@ -3906,11 +3909,16 @@ msgstr "" msgid "All communications including and above this shall be moved into the new Issue" msgstr "" +#. Description of the 'Billing Currency' (Link) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "All invoices and orders for this customer will be created in this currency." +msgstr "" + #: erpnext/manufacturing/doctype/production_plan/production_plan.py:970 msgid "All items are already requested" msgstr "" -#: erpnext/stock/doctype/purchase_receipt/purchase_receipt.py:1482 +#: erpnext/stock/doctype/purchase_receipt/purchase_receipt.py:1486 msgid "All items have already been Invoiced/Returned" msgstr "" @@ -3918,19 +3926,19 @@ msgstr "" msgid "All items have already been received" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:3594 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:3652 msgid "All items have already been transferred for this Work Order." msgstr "" -#: erpnext/public/js/controllers/transaction.js:2979 +#: erpnext/public/js/controllers/transaction.js:2993 msgid "All items in this document already have a linked Quality Inspection." msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1279 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1286 msgid "All items must be linked to a Sales Order or Subcontracting Inward Order for this Sales Invoice." msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1290 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1297 msgid "All linked Sales Orders must be subcontracted." msgstr "" @@ -3944,7 +3952,7 @@ msgstr "" msgid "All the items have been already returned." msgstr "" -#: erpnext/manufacturing/doctype/work_order/work_order.js:1268 +#: erpnext/manufacturing/doctype/work_order/work_order.js:1275 msgid "All the required items (raw materials) will be fetched from BOM and populated in this table. Here you can also change the Source Warehouse for any item. And during the production, you can track transferred raw materials from this table." msgstr "" @@ -3967,7 +3975,13 @@ msgstr "" msgid "Allocate Advances Automatically (FIFO)" msgstr "" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:919 +#. Label of the allocate_full_amount_to_stock_items (Check) field in DocType +#. 'Purchase Taxes and Charges' +#: erpnext/accounts/doctype/purchase_taxes_and_charges/purchase_taxes_and_charges.json +msgid "Allocate Full Amount to Stock Items" +msgstr "" + +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:928 msgid "Allocate Payment Amount" msgstr "" @@ -3977,7 +3991,7 @@ msgstr "" msgid "Allocate Payment Based On Payment Terms" msgstr "" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1719 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1728 msgid "Allocate Payment Request" msgstr "" @@ -4007,7 +4021,7 @@ msgstr "" #. Payment Entries' #: erpnext/accounts/doctype/bank_transaction/bank_transaction.json #: erpnext/accounts/doctype/bank_transaction_payments/bank_transaction_payments.json -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1710 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1719 #: erpnext/accounts/doctype/payment_reconciliation_allocation/payment_reconciliation_allocation.json #: erpnext/accounts/doctype/process_payment_reconciliation_log_allocations/process_payment_reconciliation_log_allocations.json #: erpnext/accounts/doctype/purchase_invoice_advance/purchase_invoice_advance.json @@ -4184,18 +4198,6 @@ msgstr "" msgid "Allow Purchase" msgstr "" -#. Label of the allow_purchase_invoice_creation_without_purchase_order (Check) -#. field in DocType 'Supplier' -#: erpnext/buying/doctype/supplier/supplier.json -msgid "Allow Purchase Invoice Creation Without Purchase Order" -msgstr "" - -#. Label of the allow_purchase_invoice_creation_without_purchase_receipt -#. (Check) field in DocType 'Supplier' -#: erpnext/buying/doctype/supplier/supplier.json -msgid "Allow Purchase Invoice Creation Without Purchase Receipt" -msgstr "" - #. Label of the allow_zero_qty_in_purchase_order (Check) field in DocType #. 'Buying Settings' #: erpnext/buying/doctype/buying_settings/buying_settings.json @@ -4236,16 +4238,6 @@ msgstr "" msgid "Allow Sales" msgstr "" -#. Label of the dn_required (Check) field in DocType 'Customer' -#: erpnext/selling/doctype/customer/customer.json -msgid "Allow Sales Invoice Creation Without Delivery Note" -msgstr "" - -#. Label of the so_required (Check) field in DocType 'Customer' -#: erpnext/selling/doctype/customer/customer.json -msgid "Allow Sales Invoice Creation Without Sales Order" -msgstr "" - #. Label of the allow_sales_order_creation_for_expired_quotation (Check) field #. in DocType 'Selling Settings' #: erpnext/selling/doctype/selling_settings/selling_settings.json @@ -4389,6 +4381,28 @@ msgstr "" msgid "Allow partial reservation" msgstr "" +#. Label of the allow_purchase_invoice_creation_without_purchase_order (Check) +#. field in DocType 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "Allow purchase invoice creation without purchase order" +msgstr "" + +#. Label of the allow_purchase_invoice_creation_without_purchase_receipt +#. (Check) field in DocType 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "Allow purchase invoice creation without purchase receipt" +msgstr "" + +#. Label of the dn_required (Check) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Allow sales invoice creation without delivery note" +msgstr "" + +#. Label of the so_required (Check) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Allow sales invoice creation without sales order" +msgstr "" + #. Description of the 'Zero-Quantity Line Items' (Section Break) field in #. DocType 'Selling Settings' #: erpnext/selling/doctype/selling_settings/selling_settings.json @@ -4470,20 +4484,25 @@ msgid "Allowed Items" msgstr "" #. Name of a DocType -#. Label of the companies (Table) field in DocType 'Supplier' -#. Label of the companies (Table) field in DocType 'Customer' #: erpnext/accounts/doctype/allowed_to_transact_with/allowed_to_transact_with.json -#: erpnext/buying/doctype/supplier/supplier.json -#: erpnext/selling/doctype/customer/customer.json msgid "Allowed To Transact With" msgstr "" +#. Label of the allowed_users (Table MultiSelect) field in DocType 'CRM +#. Settings' +#: erpnext/crm/doctype/crm_settings/crm_settings.json +msgid "Allowed Users" +msgstr "" + #: erpnext/accounts/doctype/party_link/party_link.py:27 msgid "Allowed primary roles are 'Customer' and 'Supplier'. Please select one of these roles only." msgstr "" -#: erpnext/public/js/utils/naming_series.js:81 -msgid "Allowed special characters are '/' and '-'" +#. Label of the companies (Table) field in DocType 'Supplier' +#. Label of the companies (Table) field in DocType 'Customer' +#: erpnext/buying/doctype/supplier/supplier.json +#: erpnext/selling/doctype/customer/customer.json +msgid "Allowed to transact with" msgstr "" #. Description of the 'Enable stock reservation' (Check) field in DocType @@ -4541,12 +4560,12 @@ msgstr "" #: erpnext/manufacturing/doctype/bom/bom.js:291 #: erpnext/manufacturing/doctype/work_order/work_order.js:158 #: erpnext/manufacturing/doctype/work_order/work_order.js:173 -#: erpnext/public/js/utils.js:587 +#: erpnext/public/js/utils.js:604 #: erpnext/stock/doctype/stock_entry/stock_entry.js:339 msgid "Alternate Item" msgstr "" -#: erpnext/stock/report/item_where_used/item_where_used.py:427 +#: erpnext/stock/report/item_where_used/item_where_used.py:425 msgid "Alternative For Item" msgstr "" @@ -4754,7 +4773,7 @@ msgstr "" #: erpnext/manufacturing/doctype/bom_item/bom_item.json #: erpnext/manufacturing/doctype/work_order_additional_item/work_order_additional_item.json #: erpnext/manufacturing/doctype/work_order_item/work_order_item.json -#: erpnext/public/js/controllers/transaction.js:517 +#: erpnext/public/js/controllers/transaction.js:536 #: erpnext/selling/doctype/quotation/quotation.js:315 #: erpnext/selling/doctype/quotation_item/quotation_item.json #: erpnext/selling/doctype/sales_order_item/sales_order_item.json @@ -4980,7 +4999,7 @@ msgstr "" msgid "An email will be sent to notify the User with the role 'Purchase Manager' when an automatic Material Request is created." msgstr "" -#: erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py:578 +#: erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py:581 msgid "An error has been appeared while reposting item valuation via {0}" msgstr "" @@ -5960,7 +5979,7 @@ msgstr "" msgid "Asset cannot be scrapped before the last depreciation entry." msgstr "" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:598 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:601 msgid "Asset capitalized after Asset Capitalization {0} was submitted" msgstr "" @@ -5992,11 +6011,11 @@ msgstr "" msgid "Asset restored" msgstr "" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:606 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:609 msgid "Asset restored after Asset Capitalization {0} was cancelled" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1562 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1569 msgid "Asset returned" msgstr "" @@ -6008,8 +6027,8 @@ msgstr "" msgid "Asset scrapped via Journal Entry {0}" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1562 -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1565 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1569 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1572 msgid "Asset sold" msgstr "" @@ -6033,7 +6052,7 @@ msgstr "" msgid "Asset {0} cannot be scrapped, as it is already {1}" msgstr "" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:196 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:199 msgid "Asset {0} does not belong to Item {1}" msgstr "" @@ -6049,12 +6068,12 @@ msgstr "" msgid "Asset {0} does not belong to the location {1}" msgstr "" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:647 -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:740 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:650 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:743 msgid "Asset {0} does not exist" msgstr "" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:573 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:576 msgid "Asset {0} has been updated. Please set the depreciation details if any and submit it." msgstr "" @@ -6074,7 +6093,7 @@ msgstr "" msgid "Asset {0} must be submitted" msgstr "" -#: erpnext/controllers/buying_controller.py:1030 +#: erpnext/controllers/buying_controller.py:1093 msgid "Asset {assets_link} created for {item_code}" msgstr "" @@ -6112,15 +6131,15 @@ msgstr "" msgid "Assets Setup" msgstr "" -#: erpnext/controllers/buying_controller.py:1048 +#: erpnext/controllers/buying_controller.py:1111 msgid "Assets not created for {item_code}. You will have to create asset manually." msgstr "" -#: erpnext/controllers/buying_controller.py:1035 +#: erpnext/controllers/buying_controller.py:1098 msgid "Assets {assets_link} created for {item_code}" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.js:713 +#: erpnext/manufacturing/doctype/job_card/job_card.js:712 msgid "Assign Job to Employee" msgstr "" @@ -6181,7 +6200,7 @@ msgstr "" msgid "At least one of the Selling or Buying must be selected" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:414 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:417 msgid "At least one raw material item must be present in the stock entry for the type {0}" msgstr "" @@ -6189,11 +6208,11 @@ msgstr "" msgid "At least one row is required for a financial report template" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:978 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:981 msgid "At least one warehouse is mandatory" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:881 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:884 msgid "At row #{0}: the Difference Account must not be a Stock type account, please change the Account Type for the account {1} or select a different account" msgstr "" @@ -6201,7 +6220,7 @@ msgstr "" msgid "At row #{0}: the sequence id {1} cannot be less than previous row sequence id {2}" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:892 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:895 msgid "At row #{0}: you have selected the Difference Account {1}, which is a Cost of Goods Sold type account. Please select a different account" msgstr "" @@ -6221,7 +6240,7 @@ msgstr "" msgid "At row {0}: Serial No is mandatory for Item {1}" msgstr "" -#: erpnext/controllers/stock_controller.py:673 +#: erpnext/controllers/stock_controller.py:676 msgid "At row {0}: Serial and Batch Bundle {1} has already created. Please remove the values from the serial no or batch no fields." msgstr "" @@ -6444,7 +6463,7 @@ msgstr "" msgid "Auto Repeat Detail" msgstr "" -#: erpnext/accounts/doctype/accounts_settings/accounts_settings.py:200 +#: erpnext/accounts/doctype/accounts_settings/accounts_settings.py:201 msgid "Auto Tax Settings Error" msgstr "" @@ -6630,7 +6649,7 @@ msgstr "" #: erpnext/manufacturing/doctype/workstation/workstation.js:505 #: erpnext/manufacturing/report/bom_stock_analysis/bom_stock_analysis.py:118 #: erpnext/manufacturing/report/bom_stock_analysis/bom_stock_analysis.py:175 -#: erpnext/public/js/utils.js:647 +#: erpnext/public/js/utils.js:664 #: erpnext/stock/doctype/delivery_note_item/delivery_note_item.json #: erpnext/stock/doctype/pick_list_item/pick_list_item.json #: erpnext/stock/report/stock_ageing/stock_ageing.py:214 @@ -6722,7 +6741,7 @@ msgstr "" msgid "Available for use date is required" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1228 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1231 msgid "Available quantity is {0}, you need {1}" msgstr "" @@ -6886,7 +6905,7 @@ msgstr "" msgid "BOM Comparison Tool" msgstr "" -#: erpnext/stock/report/item_where_used/item_where_used.py:178 +#: erpnext/stock/report/item_where_used/item_where_used.py:174 msgid "BOM Component" msgstr "" @@ -7025,7 +7044,7 @@ msgstr "" msgid "BOM Operations Time" msgstr "" -#: erpnext/stock/report/item_where_used/item_where_used.py:248 +#: erpnext/stock/report/item_where_used/item_where_used.py:244 msgid "BOM Output" msgstr "" @@ -7046,7 +7065,7 @@ msgstr "" #. Label of the bom_secondary_item (Data) field in DocType 'Stock Entry Detail' #: erpnext/manufacturing/doctype/bom_secondary_item/bom_secondary_item.json #: erpnext/stock/doctype/stock_entry_detail/stock_entry_detail.json -#: erpnext/stock/report/item_where_used/item_where_used.py:213 +#: erpnext/stock/report/item_where_used/item_where_used.py:209 msgid "BOM Secondary Item" msgstr "" @@ -7117,7 +7136,7 @@ msgstr "" msgid "BOM Website Operation" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:2700 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2758 msgid "BOM and Finished Good Quantity is mandatory for Disassembly" msgstr "" @@ -8005,7 +8024,7 @@ msgstr "" #: erpnext/manufacturing/doctype/job_card/job_card.json #: erpnext/manufacturing/report/cost_of_poor_quality_report/cost_of_poor_quality_report.js:89 #: erpnext/manufacturing/report/cost_of_poor_quality_report/cost_of_poor_quality_report.py:115 -#: erpnext/public/js/controllers/transaction.js:2876 +#: erpnext/public/js/controllers/transaction.js:2890 #: erpnext/public/js/utils/barcode_scanner.js:281 #: erpnext/public/js/utils/serial_no_batch_selector.js:449 #: erpnext/stock/doctype/delivery_note_item/delivery_note_item.json @@ -8140,12 +8159,12 @@ msgstr "" msgid "Batch {0} is not available in warehouse {1}" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:3778 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:3836 #: erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.py:290 msgid "Batch {0} of Item {1} has expired." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:3784 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:3842 msgid "Batch {0} of Item {1} is disabled." msgstr "" @@ -8576,6 +8595,16 @@ msgstr "" msgid "Block Supplier" msgstr "" +#. Description of the 'Is Frozen' (Check) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Blocks all further accounting entries on this customer's account. Only users with the frozen-entries role can override.\n" +msgstr "" + +#. Description of the 'Disabled' (Check) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Blocks this customer from being used on any new transaction." +msgstr "" + #. Label of the blog_subscriber (Check) field in DocType 'Lead' #: erpnext/crm/doctype/lead/lead.json msgid "Blog Subscriber" @@ -8895,7 +8924,7 @@ msgid "Budget cannot be assigned against Group Account {0}" msgstr "" #: erpnext/accounts/doctype/budget/budget.py:162 -msgid "Budget cannot be assigned against {0}, as it's not an Income or Expense account" +msgid "Budget cannot be assigned against {0}, as its Root Type is not of Income or Expense" msgstr "" #: erpnext/accounts/doctype/fiscal_year/fiscal_year_dashboard.py:9 @@ -9092,14 +9121,14 @@ msgstr "" msgid "By-Product" msgstr "" +#: erpnext/selling/report/customer_credit_balance/customer_credit_balance.py:68 +msgid "Bypass credit check at Sales Order" +msgstr "" + #. Label of the bypass_credit_limit_check (Check) field in DocType 'Customer #. Credit Limit' #: erpnext/selling/doctype/customer_credit_limit/customer_credit_limit.json -msgid "Bypass Credit Limit Check at Sales Order" -msgstr "" - -#: erpnext/selling/report/customer_credit_balance/customer_credit_balance.py:68 -msgid "Bypass credit check at Sales Order" +msgid "Bypass credit limit check at sales order" msgstr "" #. Label of the cc_to (Table MultiSelect) field in DocType 'Process Statement @@ -9405,7 +9434,7 @@ msgstr "" msgid "Can be approved by {0}" msgstr "" -#: erpnext/manufacturing/doctype/work_order/work_order.py:2735 +#: erpnext/manufacturing/doctype/work_order/work_order.py:2767 msgid "Can not close Work Order. Since {0} Job Cards are in Work In Progress state." msgstr "" @@ -9438,9 +9467,9 @@ msgstr "" msgid "Can only make payment against unbilled {0}" msgstr "" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1501 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1510 #: erpnext/controllers/accounts_controller.py:3196 -#: erpnext/public/js/controllers/accounts.js:103 +#: erpnext/public/js/controllers/accounts.js:100 msgid "Can refer row only if the charge type is 'On Previous Row Amount' or 'Previous Row Total'" msgstr "" @@ -9477,7 +9506,7 @@ msgstr "" msgid "Cancelation Date" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1490 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1508 msgid "Cancelled Job Card cannot be processed." msgstr "" @@ -9564,11 +9593,11 @@ msgstr "" msgid "Cannot cancel this document as it is linked with the submitted Asset Value Adjustment {0}. Please cancel the Asset Value Adjustment to continue." msgstr "" -#: erpnext/controllers/buying_controller.py:1137 +#: erpnext/controllers/buying_controller.py:1200 msgid "Cannot cancel this document as it is linked with the submitted asset {asset_link}. Please cancel the asset to continue." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:656 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:659 msgid "Cannot cancel transaction for Completed Work Order." msgstr "" @@ -9612,11 +9641,11 @@ msgstr "" msgid "Cannot covert to Group because Account Type is selected." msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2839 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2846 msgid "Cannot create Intercompany {0}. All items in the source {1} have already been fully invoiced. Please check the existing linked {2}s." msgstr "" -#: erpnext/stock/doctype/purchase_receipt/purchase_receipt.py:1012 +#: erpnext/stock/doctype/purchase_receipt/purchase_receipt.py:1016 msgid "Cannot create Stock Reservation Entries for future dated Purchase Receipts." msgstr "" @@ -9646,7 +9675,7 @@ msgstr "" msgid "Cannot deduct when category is for 'Valuation' or 'Valuation and Total'" msgstr "" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1845 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1854 msgid "Cannot delete Exchange Gain/Loss row" msgstr "" @@ -9659,7 +9688,7 @@ msgid "Cannot delete an item which has been ordered" msgstr "" #: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:197 -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:785 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:796 msgid "Cannot delete protected core DocType: {0}" msgstr "" @@ -9683,7 +9712,7 @@ msgstr "" msgid "Cannot disassemble more than produced quantity." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1021 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1024 msgid "Cannot disassemble {0} qty against Stock Entry {1}. Only {2} qty available to disassemble." msgstr "" @@ -9691,7 +9720,7 @@ msgstr "" msgid "Cannot enable Item-wise Inventory Account, as there are existing Stock Ledger Entries for the company {0} with Warehouse-wise Inventory Account. Please cancel the stock transactions first and try again." msgstr "" -#: erpnext/crm/doctype/crm_settings/crm_settings.py:37 +#: erpnext/crm/doctype/crm_settings/crm_settings.py:43 msgid "Cannot enable Opportunity creation from Contact Us because the Contact Us form is disabled." msgstr "" @@ -9716,7 +9745,7 @@ msgstr "" msgid "Cannot find a default warehouse for item {0}. Please set one in the Item Master or in Stock Settings." msgstr "" -#: erpnext/accounts/party.py:1083 +#: erpnext/accounts/party.py:1092 msgid "Cannot merge {0} '{1}' into '{2}' as both have existing accounting entries in different currencies for company '{3}'." msgstr "" @@ -9740,9 +9769,9 @@ msgstr "" msgid "Cannot reduce quantity than ordered or purchased quantity" msgstr "" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1514 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1523 #: erpnext/controllers/accounts_controller.py:3211 -#: erpnext/public/js/controllers/accounts.js:120 +#: erpnext/public/js/controllers/accounts.js:117 msgid "Cannot refer row number greater than or equal to current row number for this Charge type" msgstr "" @@ -9754,16 +9783,16 @@ msgstr "" msgid "Cannot retrieve link token. Check Error Log for more information" msgstr "" -#: erpnext/selling/doctype/customer/customer.py:367 +#: erpnext/selling/doctype/customer/customer.py:368 msgid "Cannot select a Group type Customer Group. Please select a non-group Customer Group." msgstr "" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1507 -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1685 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1516 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1694 #: erpnext/accounts/doctype/payment_entry/payment_entry.py:1848 #: erpnext/controllers/accounts_controller.py:3201 -#: erpnext/public/js/controllers/accounts.js:112 -#: erpnext/public/js/controllers/taxes_and_totals.js:552 +#: erpnext/public/js/controllers/accounts.js:109 +#: erpnext/public/js/controllers/taxes_and_totals.js:555 msgid "Cannot select charge type as 'On Previous Row Amount' or 'On Previous Row Total' for first row" msgstr "" @@ -9795,7 +9824,7 @@ msgstr "" msgid "Cannot start deletion. Another deletion {0} is already queued/running. Please wait for it to complete." msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:873 +#: erpnext/manufacturing/doctype/job_card/job_card.py:874 msgid "Cannot submit Job Card {0} while it is On Hold. Please resume and complete the job before submission." msgstr "" @@ -10179,7 +10208,7 @@ msgstr "" msgid "Change in Stock Value" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1069 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1076 msgid "Change the account type to Receivable or select a different account." msgstr "" @@ -10189,7 +10218,7 @@ msgstr "" msgid "Change this date manually to setup the next synchronization start date" msgstr "" -#: erpnext/selling/doctype/customer/customer.py:157 +#: erpnext/selling/doctype/customer/customer.py:158 msgid "Changed customer name to '{}' as '{}' already exists." msgstr "" @@ -10412,7 +10441,7 @@ msgstr "" #. Label of the reference_date (Date) field in DocType 'Payment Entry' #: erpnext/accounts/doctype/payment_entry/payment_entry.json -#: erpnext/public/js/controllers/transaction.js:2787 +#: erpnext/public/js/controllers/transaction.js:2801 msgid "Cheque/Reference Date" msgstr "" @@ -10470,7 +10499,7 @@ msgstr "" #. Label of the child_row_reference (Data) field in DocType 'Quality #. Inspection' -#: erpnext/public/js/controllers/transaction.js:2882 +#: erpnext/public/js/controllers/transaction.js:2896 #: erpnext/stock/doctype/quality_inspection/quality_inspection.json msgid "Child Row Reference" msgstr "" @@ -10522,6 +10551,11 @@ msgstr "" msgid "Classify As" msgstr "" +#. Description of the 'Market Segment' (Link) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Classify the type of market this customer belongs to, used for sales analysis and targeting." +msgstr "" + #. Label of the more_information (Text Editor) field in DocType 'Bank #. Guarantee' #: erpnext/accounts/doctype/bank_guarantee/bank_guarantee.json @@ -10654,7 +10688,7 @@ msgstr "" msgid "Close Replied Opportunity After Days" msgstr "" -#: erpnext/selling/page/point_of_sale/pos_controller.js:253 +#: erpnext/selling/page/point_of_sale/pos_controller.js:244 msgid "Close the POS" msgstr "" @@ -10668,7 +10702,7 @@ msgstr "" msgid "Closed Documents" msgstr "" -#: erpnext/manufacturing/doctype/work_order/work_order.py:2658 +#: erpnext/manufacturing/doctype/work_order/work_order.py:2690 msgid "Closed Work Order can not be stopped or Re-opened" msgstr "" @@ -10929,6 +10963,12 @@ msgstr "" msgid "Commission on Sales" msgstr "" +#. Description of the 'Sales Partner' (Section Break) field in DocType +#. 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Commission paid to the Sales Partner on transactions with this customer." +msgstr "" + #. Name of a DocType #. Label of the common_code (Data) field in DocType 'Common Code' #. Label of the common_code (Data) field in DocType 'UOM' @@ -11331,7 +11371,7 @@ msgstr "" #: erpnext/selling/doctype/quotation/quotation.json #: erpnext/selling/doctype/sales_order/sales_order.json #: erpnext/selling/doctype/supplier_number_at_customer/supplier_number_at_customer.json -#: erpnext/selling/page/point_of_sale/pos_controller.js:72 +#: erpnext/selling/page/point_of_sale/pos_controller.js:63 #: erpnext/selling/page/sales_funnel/sales_funnel.js:36 #: erpnext/selling/report/customer_acquisition_and_loyalty/customer_acquisition_and_loyalty.js:16 #: erpnext/selling/report/customer_credit_balance/customer_credit_balance.js:8 @@ -11400,7 +11440,7 @@ msgstr "" #: erpnext/stock/report/item_shortage_report/item_shortage_report.js:8 #: erpnext/stock/report/item_shortage_report/item_shortage_report.py:137 #: erpnext/stock/report/item_where_used/item_where_used.js:15 -#: erpnext/stock/report/item_where_used/item_where_used.py:95 +#: erpnext/stock/report/item_where_used/item_where_used.py:89 #: erpnext/stock/report/landed_cost_report/landed_cost_report.js:8 #: erpnext/stock/report/negative_batch_report/negative_batch_report.js:8 #: erpnext/stock/report/product_bundle_balance/product_bundle_balance.js:8 @@ -11440,10 +11480,6 @@ msgstr "" msgid "Company Abbreviation" msgstr "" -#: erpnext/public/js/utils/naming_series.js:101 -msgid "Company Abbreviation (requires ERPNext to be installed)" -msgstr "" - #: erpnext/public/js/setup_wizard.js:174 msgid "Company Abbreviation cannot have more than 5 characters" msgstr "" @@ -11505,18 +11541,22 @@ msgstr "" msgid "Company Address Name" msgstr "" -#: erpnext/controllers/accounts_controller.py:4391 +#: erpnext/controllers/accounts_controller.py:4389 msgid "Company Address is missing. You don't have permission to create an Address. Please contact your System Manager." msgstr "" -#: erpnext/controllers/accounts_controller.py:4379 +#: erpnext/controllers/accounts_controller.py:4377 msgid "Company Address is missing. You don't have permission to update it. Please contact your System Manager." msgstr "" #. Label of the bank_account (Link) field in DocType 'Payment Entry' #. Label of the company_bank_account (Link) field in DocType 'Payment Order' +#. Label of the default_bank_account (Link) field in DocType 'Supplier' +#. Label of the default_bank_account (Link) field in DocType 'Customer' #: erpnext/accounts/doctype/payment_entry/payment_entry.json #: erpnext/accounts/doctype/payment_order/payment_order.json +#: erpnext/buying/doctype/supplier/supplier.json +#: erpnext/selling/doctype/customer/customer.json msgid "Company Bank Account" msgstr "" @@ -11608,7 +11648,7 @@ msgstr "" msgid "Company and Posting Date is mandatory" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2630 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2637 msgid "Company currencies of both the companies should match for Inter Company Transactions." msgstr "" @@ -11725,7 +11765,7 @@ msgstr "" msgid "Competitors" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.js:665 +#: erpnext/manufacturing/doctype/job_card/job_card.js:663 #: erpnext/manufacturing/doctype/workstation/workstation.js:151 msgid "Complete Job" msgstr "" @@ -11776,8 +11816,8 @@ msgstr "" msgid "Completed Qty cannot be greater than 'Qty to Manufacture'" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.js:259 -#: erpnext/manufacturing/doctype/job_card/job_card.js:393 +#: erpnext/manufacturing/doctype/job_card/job_card.js:258 +#: erpnext/manufacturing/doctype/job_card/job_card.js:392 #: erpnext/manufacturing/doctype/workstation/workstation.js:296 msgid "Completed Quantity" msgstr "" @@ -12166,7 +12206,7 @@ msgstr "" msgid "Consumed Qty" msgstr "" -#: erpnext/manufacturing/doctype/work_order/work_order.py:1834 +#: erpnext/manufacturing/doctype/work_order/work_order.py:1866 msgid "Consumed Qty cannot be greater than Reserved Qty for item {0}" msgstr "" @@ -12185,7 +12225,7 @@ msgstr "" msgid "Consumed Stock Items" msgstr "" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:286 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:289 msgid "Consumed Stock Items, Consumed Asset Items or Consumed Service Items is mandatory for Capitalization" msgstr "" @@ -12449,6 +12489,11 @@ msgstr "" msgid "Controls how raw materials are consumed during the ‘Manufacture’ stock entry." msgstr "" +#. Description of the 'Tax Category' (Link) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Controls which tax template is auto-applied when this customer is selected on a transaction." +msgstr "" + #. Label of the conversion_factor (Float) field in DocType 'Loyalty Program' #. Label of the conversion_factor (Float) field in DocType 'Purchase Order Item #. Supplied' @@ -12486,7 +12531,7 @@ msgstr "" #: erpnext/manufacturing/doctype/bom_item/bom_item.json #: erpnext/manufacturing/doctype/bom_secondary_item/bom_secondary_item.json #: erpnext/manufacturing/doctype/material_request_plan_item/material_request_plan_item.json -#: erpnext/public/js/utils.js:903 +#: erpnext/public/js/utils.js:920 #: erpnext/selling/doctype/delivery_schedule_item/delivery_schedule_item.json #: erpnext/stock/doctype/packed_item/packed_item.json #: erpnext/stock/doctype/purchase_receipt_item/purchase_receipt_item.json @@ -12516,7 +12561,7 @@ msgstr "" msgid "Conversion factor for default Unit of Measure must be 1 in row {0}" msgstr "" -#: erpnext/controllers/stock_controller.py:119 +#: erpnext/controllers/stock_controller.py:122 msgid "Conversion factor for item {0} has been reset to 1.0 as the uom {1} is same as stock uom {2}." msgstr "" @@ -12605,13 +12650,13 @@ msgstr "" msgid "Corrective Action" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.js:447 +#: erpnext/manufacturing/doctype/job_card/job_card.js:446 msgid "Corrective Job Card" msgstr "" #. Label of the corrective_operation_section (Tab Break) field in DocType 'Job #. Card' -#: erpnext/manufacturing/doctype/job_card/job_card.js:456 +#: erpnext/manufacturing/doctype/job_card/job_card.js:455 #: erpnext/manufacturing/doctype/job_card/job_card.json msgid "Corrective Operation" msgstr "" @@ -12878,8 +12923,8 @@ msgstr "" msgid "Cost Center is required" msgstr "" -#: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1468 -#: erpnext/stock/doctype/purchase_receipt/purchase_receipt.py:897 +#: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1472 +#: erpnext/stock/doctype/purchase_receipt/purchase_receipt.py:903 msgid "Cost Center is required in row {0} in Taxes table for type {1}" msgstr "" @@ -12961,7 +13006,7 @@ msgstr "" msgid "Cost of Goods Sold" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:895 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:898 msgid "Cost of Goods Sold Account in Items Table" msgstr "" @@ -13285,8 +13330,8 @@ msgstr "" msgid "Create Ledger Entries for Change Amount" msgstr "" -#: erpnext/buying/doctype/supplier/supplier.js:216 -#: erpnext/selling/doctype/customer/customer.js:285 +#: erpnext/buying/doctype/supplier/supplier.js:257 +#: erpnext/selling/doctype/customer/customer.js:287 msgid "Create Link" msgstr "" @@ -13334,7 +13379,7 @@ msgstr "" msgid "Create Opportunity" msgstr "" -#: erpnext/selling/page/point_of_sale/pos_controller.js:67 +#: erpnext/selling/page/point_of_sale/pos_controller.js:58 msgid "Create POS Opening Entry" msgstr "" @@ -13349,7 +13394,7 @@ msgstr "" msgid "Create Payment Entry for Consolidated POS Invoices." msgstr "" -#: erpnext/public/js/controllers/transaction.js:524 +#: erpnext/public/js/controllers/transaction.js:543 msgid "Create Payment Request" msgstr "" @@ -13577,7 +13622,7 @@ msgstr "" msgid "Create a variant with the template image." msgstr "" -#: erpnext/stock/stock_ledger.py:2038 +#: erpnext/stock/stock_ledger.py:2027 msgid "Create an incoming stock transaction for the Item." msgstr "" @@ -13702,7 +13747,7 @@ msgstr "" msgid "Creating demo data" msgstr "" -#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:305 +#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:317 msgid "Creating {} out of {} {}" msgstr "" @@ -13842,16 +13887,10 @@ msgstr "" msgid "Credit Limit" msgstr "" -#: erpnext/selling/doctype/customer/customer.py:642 +#: erpnext/selling/doctype/customer/customer.py:643 msgid "Credit Limit Crossed" msgstr "" -#. Label of the credit_limit_section (Section Break) field in DocType -#. 'Customer' -#: erpnext/selling/doctype/customer/customer.json -msgid "Credit Limit and Payment Terms" -msgstr "" - #: erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts_accounts_receivable.html:50 msgid "Credit Limit:" msgstr "" @@ -13928,16 +13967,16 @@ msgstr "" msgid "Credit in Company Currency" msgstr "" -#: erpnext/selling/doctype/customer/customer.py:608 -#: erpnext/selling/doctype/customer/customer.py:663 +#: erpnext/selling/doctype/customer/customer.py:609 +#: erpnext/selling/doctype/customer/customer.py:664 msgid "Credit limit has been crossed for customer {0} ({1}/{2})" msgstr "" -#: erpnext/selling/doctype/customer/customer.py:394 +#: erpnext/selling/doctype/customer/customer.py:395 msgid "Credit limit is already defined for the Company {0}" msgstr "" -#: erpnext/selling/doctype/customer/customer.py:662 +#: erpnext/selling/doctype/customer/customer.py:663 msgid "Credit limit reached for customer {0}" msgstr "" @@ -13997,7 +14036,7 @@ msgstr "" msgid "Criteria weights must add up to 100%" msgstr "" -#: erpnext/accounts/doctype/accounts_settings/accounts_settings.py:187 +#: erpnext/accounts/doctype/accounts_settings/accounts_settings.py:188 msgid "Cron Interval should be between 1 and 59 Min" msgstr "" @@ -14248,10 +14287,6 @@ msgstr "" msgid "Current Serial No" msgstr "" -#: erpnext/public/js/utils/naming_series.js:223 -msgid "Current Series" -msgstr "" - #. Label of the current_state (Select) field in DocType 'Share Balance' #: erpnext/accounts/doctype/share_balance/share_balance.json msgid "Current State" @@ -14277,6 +14312,11 @@ msgstr "" msgid "Current Valuation Rate" msgstr "" +#. Description of the 'Loyalty Program Tier' (Data) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Current tier based on accumulated points. Updated automatically on each invoice." +msgstr "" + #: erpnext/selling/report/sales_analytics/sales_analytics.js:90 msgid "Curves" msgstr "" @@ -14422,7 +14462,7 @@ msgstr "" #: erpnext/accounts/report/sales_register/sales_register.py:187 #: erpnext/assets/doctype/asset/asset.json #: erpnext/buying/doctype/purchase_order/purchase_order.json -#: erpnext/buying/doctype/supplier/supplier.js:184 +#: erpnext/buying/doctype/supplier/supplier.js:225 #: erpnext/crm/doctype/contract/contract.json #: erpnext/crm/doctype/lead/lead.js:32 #: erpnext/crm/doctype/opportunity/opportunity.js:99 @@ -14963,7 +15003,7 @@ msgstr "" msgid "Customer required for 'Customerwise Discount'" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1183 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1190 #: erpnext/selling/doctype/sales_order/sales_order.py:436 #: erpnext/stock/doctype/delivery_note/delivery_note.py:406 msgid "Customer {0} does not belong to project {1}" @@ -15222,10 +15262,6 @@ msgstr "" msgid "Day Of Week" msgstr "" -#: erpnext/public/js/utils/naming_series.js:94 -msgid "Day of month" -msgstr "" - #. Label of the day_to_send (Select) field in DocType 'Project' #: erpnext/projects/doctype/project/project.json msgid "Day to Send" @@ -15422,13 +15458,13 @@ msgstr "" #. Label of the debit_to (Link) field in DocType 'Sales Invoice' #: erpnext/accounts/doctype/pos_invoice/pos_invoice.json #: erpnext/accounts/doctype/sales_invoice/sales_invoice.json -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1054 -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1065 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1061 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1072 #: erpnext/controllers/accounts_controller.py:2383 msgid "Debit To" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1050 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1057 msgid "Debit To is required" msgstr "" @@ -15556,8 +15592,7 @@ msgstr "" #. Label of the default_accounts_section (Section Break) field in DocType #. 'Supplier' -#. Label of the default_receivable_accounts (Section Break) field in DocType -#. 'Customer' +#. Label of the accounts (Table) field in DocType 'Customer' #. Label of the default_settings (Section Break) field in DocType 'Company' #. Label of the default_receivable_account (Section Break) field in DocType #. 'Customer Group' @@ -15609,7 +15644,7 @@ msgstr "" msgid "Default BOM ({0}) must be active for this item or its template" msgstr "" -#: erpnext/manufacturing/doctype/work_order/work_order.py:2426 +#: erpnext/manufacturing/doctype/work_order/work_order.py:2458 msgid "Default BOM for {0} not found" msgstr "" @@ -15617,7 +15652,7 @@ msgstr "" msgid "Default BOM not found for FG Item {0}" msgstr "" -#: erpnext/manufacturing/doctype/work_order/work_order.py:2423 +#: erpnext/manufacturing/doctype/work_order/work_order.py:2455 msgid "Default BOM not found for Item {0} and Project {1}" msgstr "" @@ -15669,13 +15704,6 @@ msgstr "" msgid "Default Company" msgstr "" -#. Label of the default_bank_account (Link) field in DocType 'Supplier' -#. Label of the default_bank_account (Link) field in DocType 'Customer' -#: erpnext/buying/doctype/supplier/supplier.json -#: erpnext/selling/doctype/customer/customer.json -msgid "Default Company Bank Account" -msgstr "" - #. Label of the cost_center (Link) field in DocType 'Project' #. Label of the cost_center (Link) field in DocType 'Company' #: erpnext/projects/doctype/project/project.json @@ -15822,24 +15850,18 @@ msgstr "" msgid "Default Payment Request Message" msgstr "" -#. Label of the payment_terms (Link) field in DocType 'Supplier' -#. Label of the payment_terms (Link) field in DocType 'Customer' #. Label of the payment_terms (Link) field in DocType 'Company' #. Label of the payment_terms (Link) field in DocType 'Customer Group' #. Label of the payment_terms (Link) field in DocType 'Supplier Group' -#: erpnext/buying/doctype/supplier/supplier.json -#: erpnext/selling/doctype/customer/customer.json #: erpnext/setup/doctype/company/company.json #: erpnext/setup/doctype/customer_group/customer_group.json #: erpnext/setup/doctype/supplier_group/supplier_group.json msgid "Default Payment Terms Template" msgstr "" -#. Label of the default_price_list (Link) field in DocType 'Customer' #. Label of the selling_price_list (Link) field in DocType 'Selling Settings' #. Label of the default_price_list (Link) field in DocType 'Customer Group' #. Label of the default_price_list (Link) field in DocType 'Item Default' -#: erpnext/selling/doctype/customer/customer.json #: erpnext/selling/doctype/selling_settings/selling_settings.json #: erpnext/setup/doctype/customer_group/customer_group.json #: erpnext/stock/doctype/item_default/item_default.json @@ -16113,6 +16135,12 @@ msgstr "" msgid "Defines the date after which the item can no longer be used in transactions or manufacturing" msgstr "" +#. Description of the 'Payment Terms Template' (Link) field in DocType +#. 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Defines when payment is due (e.g. Net 30, 50% advance). Applied automatically on invoices for this customer." +msgstr "" + #. Name of a UOM #: erpnext/setup/setup_wizard/data/uom_data.json msgid "Dekagram/Litre" @@ -16183,7 +16211,7 @@ msgstr "" msgid "Delete Demo Data" msgstr "" -#: erpnext/stock/doctype/inventory_dimension/inventory_dimension.js:66 +#: erpnext/stock/doctype/inventory_dimension/inventory_dimension.js:65 msgid "Delete Dimension" msgstr "" @@ -16221,8 +16249,8 @@ msgstr "" msgid "Deleting {0} and all associated Common Code documents..." msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1102 -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1121 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1113 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1132 msgid "Deletion in Progress!" msgstr "" @@ -16374,7 +16402,7 @@ msgstr "" #: erpnext/manufacturing/doctype/master_production_schedule_item/master_production_schedule_item.json #: erpnext/manufacturing/doctype/sales_forecast_item/sales_forecast_item.json #: erpnext/manufacturing/report/material_requirements_planning_report/material_requirements_planning_report.py:1069 -#: erpnext/public/js/utils.js:896 +#: erpnext/public/js/utils.js:913 #: erpnext/selling/doctype/delivery_schedule_item/delivery_schedule_item.json #: erpnext/selling/doctype/sales_order/sales_order.js:632 #: erpnext/selling/doctype/sales_order/sales_order.js:1533 @@ -16479,7 +16507,7 @@ msgstr "" msgid "Delivery Note Trends" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1444 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1451 msgid "Delivery Note {0} is not submitted" msgstr "" @@ -16898,6 +16926,11 @@ msgstr "" msgid "Determine Address Tax Category from" msgstr "" +#. Description of the 'Tax Category' (Link) field in DocType 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "Determines which tax rules apply to this supplier" +msgstr "" + #. Option for the 'Fuel Type' (Select) field in DocType 'Vehicle' #: erpnext/setup/doctype/vehicle/vehicle.json msgid "Diesel" @@ -16944,15 +16977,15 @@ msgstr "" msgid "Difference Account" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:884 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:887 msgid "Difference Account in Items Table" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:873 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:876 msgid "Difference Account must be a Asset/Liability type account (Temporary Opening), since this Stock Entry is an Opening Entry" msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:975 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:978 msgid "Difference Account must be a Asset/Liability type account, since this Stock Reconciliation is an Opening Entry" msgstr "" @@ -17193,6 +17226,11 @@ msgstr "" msgid "Disabled pricing rules since this {} is an internal transfer" msgstr "" +#. Description of the 'Disabled' (Check) field in DocType 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "Disabled suppliers are hidden from selection in new transactions but remain in historical records" +msgstr "" + #: erpnext/controllers/accounts_controller.py:925 msgid "Disabled tax included prices since this {} is an internal transfer" msgstr "" @@ -17221,7 +17259,7 @@ msgstr "" msgid "Disassemble Order" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:2642 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2700 msgid "Disassemble Qty cannot be less than or equal to 0." msgstr "" @@ -17810,7 +17848,7 @@ msgid "DocType can be one of them {0}" msgstr "" #: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:182 -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:445 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:456 msgid "DocType {0} does not exist" msgstr "" @@ -17848,22 +17886,6 @@ msgstr "" msgid "Document Count" msgstr "" -#. Label of the document_naming_tab (Tab Break) field in DocType 'Accounts -#. Settings' -#. Label of the document_naming_tab (Tab Break) field in DocType 'Buying -#. Settings' -#. Label of the default_naming_tab (Tab Break) field in DocType 'Selling -#. Settings' -#. Label of the document_naming_tab (Tab Break) field in DocType 'Stock -#. Settings' -#: erpnext/accounts/doctype/accounts_settings/accounts_settings.json -#: erpnext/buying/doctype/buying_settings/buying_settings.json -#: erpnext/public/js/utils/naming_series.js:7 -#: erpnext/selling/doctype/selling_settings/selling_settings.json -#: erpnext/stock/doctype/stock_settings/stock_settings.json -msgid "Document Naming" -msgstr "" - #: erpnext/stock/report/negative_batch_report/negative_batch_report.py:78 msgid "Document No" msgstr "" @@ -18412,7 +18434,7 @@ msgstr "" msgid "Either target qty or target amount is mandatory." msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.js:679 +#: erpnext/manufacturing/doctype/job_card/job_card.js:677 msgid "Elapsed Time" msgstr "" @@ -18724,7 +18746,7 @@ msgstr "" msgid "Employee {0} does not belong to the company {1}" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:376 +#: erpnext/manufacturing/doctype/job_card/job_card.py:377 msgid "Employee {0} is currently working on another workstation. Please assign another employee." msgstr "" @@ -18740,7 +18762,7 @@ msgstr "" msgid "Empty" msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:757 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:768 msgid "Empty To Delete List" msgstr "" @@ -18749,7 +18771,7 @@ msgstr "" msgid "Ems(Pica)" msgstr "" -#: erpnext/public/js/controllers/transaction.js:2951 +#: erpnext/public/js/controllers/transaction.js:2965 msgid "Enable {0} on the Item master to proceed with {1} inspection." msgstr "" @@ -18828,6 +18850,12 @@ msgstr "" msgid "Enable European Access" msgstr "" +#. Label of the enable_frappe_crm_data_synchronization (Check) field in DocType +#. 'CRM Settings' +#: erpnext/crm/doctype/crm_settings/crm_settings.json +msgid "Enable Frappe CRM Data Synchronization" +msgstr "" + #. Label of the enable_fuzzy_matching (Check) field in DocType 'Accounts #. Settings' #: erpnext/accounts/doctype/accounts_settings/accounts_settings.json @@ -19018,6 +19046,11 @@ msgstr "" msgid "Enable to apply SLA on every {0}" msgstr "" +#. Description of the 'Is Transporter' (Check) field in DocType 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "Enable to make this supplier selectable as a transporter on Delivery Notes and Stock Entries" +msgstr "" + #. Description of the 'Retain Sample' (Check) field in DocType 'Item' #: erpnext/stock/doctype/item/item.json msgid "Enable to reserve a small sample from each batch for any analysis arising ahead" @@ -19088,8 +19121,8 @@ msgstr "" #. Label of the end_time (Time) field in DocType 'Stock Reposting Settings' #. Label of the end_time (Time) field in DocType 'Service Day' #. Label of the end_time (Datetime) field in DocType 'Call Log' -#: erpnext/manufacturing/doctype/job_card/job_card.js:332 -#: erpnext/manufacturing/doctype/job_card/job_card.js:400 +#: erpnext/manufacturing/doctype/job_card/job_card.js:331 +#: erpnext/manufacturing/doctype/job_card/job_card.js:399 #: erpnext/manufacturing/doctype/workstation_working_hour/workstation_working_hour.json #: erpnext/stock/doctype/stock_reposting_settings/stock_reposting_settings.json #: erpnext/support/doctype/service_day/service_day.json @@ -19188,8 +19221,8 @@ msgstr "" msgid "Enter Serial Nos" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.js:361 -#: erpnext/manufacturing/doctype/job_card/job_card.js:423 +#: erpnext/manufacturing/doctype/job_card/job_card.js:360 +#: erpnext/manufacturing/doctype/job_card/job_card.js:422 #: erpnext/manufacturing/doctype/workstation/workstation.js:312 msgid "Enter Value" msgstr "" @@ -19279,7 +19312,7 @@ msgstr "" msgid "Enter the quantity of the Item that will be manufactured from this Bill of Materials." msgstr "" -#: erpnext/manufacturing/doctype/work_order/work_order.js:1230 +#: erpnext/manufacturing/doctype/work_order/work_order.js:1237 msgid "Enter the quantity to manufacture. Raw material Items will be fetched only when this is set." msgstr "" @@ -19346,7 +19379,7 @@ msgstr "" msgid "Error Description" msgstr "" -#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:295 +#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:307 msgid "Error Occurred" msgstr "" @@ -19378,7 +19411,7 @@ msgstr "" msgid "Error while processing deferred accounting for {0}" msgstr "" -#: erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py:574 +#: erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py:577 msgid "Error while reposting item valuation" msgstr "" @@ -19389,7 +19422,7 @@ msgid "" "\t\t\t\t\tPlease correct the dates accordingly." msgstr "" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:971 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:980 msgid "Error: {0} is mandatory field" msgstr "" @@ -19455,7 +19488,7 @@ msgstr "" msgid "Example: If the transaction amount is 200, then this will be calculated as {} = {}" msgstr "" -#: erpnext/stock/stock_ledger.py:2301 +#: erpnext/stock/stock_ledger.py:2290 msgid "Example: Serial No {0} reserved in {1}." msgstr "" @@ -19465,15 +19498,19 @@ msgstr "" msgid "Exception Budget Approver Role" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1028 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1031 msgid "Excess Disassembly" msgstr "" +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1325 +msgid "Excess Material Transfer" +msgstr "" + #: erpnext/manufacturing/report/work_order_consumed_materials/work_order_consumed_materials.js:55 msgid "Excess Materials Consumed" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1153 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1154 msgid "Excess Transfer" msgstr "" @@ -19824,7 +19861,7 @@ msgstr "" msgid "Expense" msgstr "" -#: erpnext/controllers/stock_controller.py:939 +#: erpnext/controllers/stock_controller.py:942 msgid "Expense / Difference account ({0}) must be a 'Profit or Loss' account" msgstr "" @@ -19872,7 +19909,7 @@ msgstr "" msgid "Expense Account" msgstr "" -#: erpnext/controllers/stock_controller.py:919 +#: erpnext/controllers/stock_controller.py:922 msgid "Expense Account Missing" msgstr "" @@ -19997,7 +20034,7 @@ msgstr "" msgid "Extra Consumed Qty" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:263 +#: erpnext/manufacturing/doctype/job_card/job_card.py:264 msgid "Extra Job Card Quantity" msgstr "" @@ -20252,6 +20289,11 @@ msgstr "" msgid "Fetch valuation rate for internal Transaction" msgstr "" +#. Description of the 'Price List' (Link) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Fetched automatically on sales orders and invoices for this customer." +msgstr "" + #: erpnext/selling/page/point_of_sale/pos_item_details.js:457 msgid "Fetched only {0} available serial numbers." msgstr "" @@ -20265,7 +20307,7 @@ msgid "Fetching Sales Orders..." msgstr "" #: erpnext/accounts/doctype/dunning/dunning.js:135 -#: erpnext/public/js/controllers/transaction.js:1597 +#: erpnext/public/js/controllers/transaction.js:1611 msgid "Fetching exchange rates ..." msgstr "" @@ -20303,15 +20345,15 @@ msgstr "" msgid "Fields will be copied over only at time of creation." msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1069 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1080 msgid "File does not belong to this Transaction Deletion Record" msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1063 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1074 msgid "File not found" msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1077 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1088 msgid "File not found on server" msgstr "" @@ -20552,7 +20594,7 @@ msgstr "" #. Service Item' #. Label of the fg_item (Link) field in DocType 'Subcontracting Order Service #. Item' -#: erpnext/public/js/utils.js:922 +#: erpnext/public/js/utils.js:939 #: erpnext/subcontracting/doctype/subcontracting_inward_order_service_item/subcontracting_inward_order_service_item.json #: erpnext/subcontracting/doctype/subcontracting_order_service_item/subcontracting_order_service_item.json msgid "Finished Good Item" @@ -20565,7 +20607,7 @@ msgstr "" msgid "Finished Good Item Code" msgstr "" -#: erpnext/public/js/utils.js:940 +#: erpnext/public/js/utils.js:957 msgid "Finished Good Item Qty" msgstr "" @@ -20673,11 +20715,11 @@ msgstr "" msgid "Finished Goods based Operating Cost" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1968 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2026 msgid "Finished Item {0} does not match with Work Order {1}" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1045 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1048 msgid "Finished good quantity being consumed ({0} in stock UOM) must equal the quantity to disassemble ({1}). Do not change the UOM, conversion factor or quantity of the finished good row." msgstr "" @@ -20772,10 +20814,6 @@ msgstr "" msgid "Fiscal Year" msgstr "" -#: erpnext/public/js/utils/naming_series.js:100 -msgid "Fiscal Year (requires ERPNext to be installed)" -msgstr "" - #. Name of a DocType #: erpnext/accounts/doctype/fiscal_year_company/fiscal_year_company.json msgid "Fiscal Year Company" @@ -20930,7 +20968,7 @@ msgstr "" msgid "Following Material Requests have been raised automatically based on Item's re-order level" msgstr "" -#: erpnext/selling/doctype/customer/customer.py:833 +#: erpnext/selling/doctype/customer/customer.py:834 msgid "Following fields are mandatory to create address:" msgstr "" @@ -20987,7 +21025,7 @@ msgstr "" msgid "For Item" msgstr "" -#: erpnext/controllers/stock_controller.py:1598 +#: erpnext/controllers/stock_controller.py:1645 msgid "For Item {0} cannot be received more than {1} qty against the {2} {3}" msgstr "" @@ -20997,7 +21035,7 @@ msgid "For Job Card" msgstr "" #. Label of the for_operation (Link) field in DocType 'Job Card' -#: erpnext/manufacturing/doctype/job_card/job_card.js:465 +#: erpnext/manufacturing/doctype/job_card/job_card.js:464 #: erpnext/manufacturing/doctype/job_card/job_card.json msgid "For Operation" msgstr "" @@ -21022,7 +21060,7 @@ msgstr "" msgid "For Production" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:995 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:998 msgid "For Quantity (Manufactured Qty) is mandatory" msgstr "" @@ -21116,7 +21154,7 @@ msgstr "" msgid "For operation {0} at row {1}, please add raw materials or set a BOM against it." msgstr "" -#: erpnext/manufacturing/doctype/work_order/work_order.py:2805 +#: erpnext/manufacturing/doctype/work_order/work_order.py:2837 msgid "For operation {0}: Quantity ({1}) can not be greater than pending quantity({2})" msgstr "" @@ -21133,7 +21171,7 @@ msgstr "" msgid "For projected and forecast quantities, the system will consider all child warehouses under the selected parent warehouse." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:2000 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2058 msgid "For quantity {0} should not be greater than allowed quantity {1}" msgstr "" @@ -21142,8 +21180,8 @@ msgstr "" msgid "For reference" msgstr "" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1536 -#: erpnext/public/js/controllers/accounts.js:204 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1545 +#: erpnext/public/js/controllers/accounts.js:201 msgid "For row {0} in {1}. To include {2} in Item rate, rows {3} must also be included" msgstr "" @@ -21166,16 +21204,16 @@ msgstr "" msgid "For the convenience of customers, these codes can be used in print formats like Invoices and Delivery Notes" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1253 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1258 msgid "For the item {0}, the consumed quantity should be {1} according to the BOM {2}." msgstr "" -#: erpnext/public/js/controllers/transaction.js:1407 +#: erpnext/public/js/controllers/transaction.js:1421 msgctxt "Clear payment terms template and/or payment schedule when due date is changed" msgid "For the new {0} to take effect, would you like to clear the current {1}?" msgstr "" -#: erpnext/controllers/stock_controller.py:440 +#: erpnext/controllers/stock_controller.py:443 msgid "For the {0}, no stock is available for the return in the warehouse {1}." msgstr "" @@ -21258,6 +21296,21 @@ msgstr "" msgid "Forum URL" msgstr "" +#. Label of the frappe_crm_section (Section Break) field in DocType 'CRM +#. Settings' +#: erpnext/crm/doctype/crm_settings/crm_settings.json +msgid "Frappe CRM" +msgstr "" + +#. Name of a DocType +#: erpnext/crm/doctype/frappe_crm_allowed_user/frappe_crm_allowed_user.json +msgid "Frappe CRM Allowed User" +msgstr "" + +#: erpnext/crm/frappe_crm_api.py:169 +msgid "Frappe CRM data synchronization is not enabled on ERPNext. Contact System Manager of ERPNext." +msgstr "" + #: erpnext/setup/install.py:235 msgid "Frappe School" msgstr "" @@ -21629,9 +21682,15 @@ msgstr "" #. Label of the freeze_account (Select) field in DocType 'Account' #: erpnext/accounts/doctype/account/account.json +#: erpnext/buying/doctype/supplier/supplier_list.js:9 msgid "Frozen" msgstr "" +#. Description of the 'Is Frozen' (Check) field in DocType 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "Frozen suppliers block ledger entries until unfrozen. Use this to temporarily lock accounting activity without disabling the supplier." +msgstr "" + #. Label of the fuel_type (Select) field in DocType 'Vehicle' #: erpnext/setup/doctype/vehicle/vehicle.json msgid "Fuel Type" @@ -21936,6 +21995,11 @@ msgstr "" msgid "General and Payment Ledger mismatch" msgstr "" +#. Description of the 'Supplier Details' (Text) field in DocType 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "General information about your Supplier" +msgstr "" + #. Label of the generate_demand (Button) field in DocType 'Sales Forecast' #: erpnext/manufacturing/doctype/sales_forecast/sales_forecast.json msgid "Generate Demand" @@ -21974,7 +22038,7 @@ msgstr "" msgid "Generate To Delete List" msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:472 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:483 msgid "Generate To Delete list first" msgstr "" @@ -22033,7 +22097,7 @@ msgstr "" msgid "Get Current Stock" msgstr "" -#: erpnext/selling/doctype/customer/customer.js:189 +#: erpnext/selling/doctype/customer/customer.js:190 msgid "Get Customer Group Details" msgstr "" @@ -22216,6 +22280,10 @@ msgstr "" msgid "Get Sub Assembly Items" msgstr "" +#: erpnext/buying/doctype/supplier/supplier.js:151 +msgid "Get Supplier Group Details" +msgstr "" + #: erpnext/buying/doctype/request_for_quotation/request_for_quotation.js:461 #: erpnext/buying/doctype/request_for_quotation/request_for_quotation.js:481 msgid "Get Suppliers" @@ -22313,7 +22381,7 @@ msgstr "" msgid "Goods Transferred" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:2569 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2627 msgid "Goods are already received against the outward entry {0}" msgstr "" @@ -22501,7 +22569,7 @@ msgstr "" msgid "Grant Commission" msgstr "" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:890 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:899 msgid "Greater Than Amount" msgstr "" @@ -22944,7 +23012,7 @@ msgstr "" msgid "Here are the error logs for the aforementioned failed depreciation entries: {0}" msgstr "" -#: erpnext/stock/stock_ledger.py:2023 +#: erpnext/stock/stock_ledger.py:2012 msgid "Here are the options to proceed:" msgstr "" @@ -22972,7 +23040,7 @@ msgstr "" msgid "Hertz" msgstr "" -#: erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py:576 +#: erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py:579 msgid "Hi," msgstr "" @@ -23008,7 +23076,7 @@ msgstr "" msgid "Hide Images" msgstr "" -#: erpnext/selling/page/point_of_sale/pos_controller.js:270 +#: erpnext/selling/page/point_of_sale/pos_controller.js:261 msgid "Hide Recent Orders" msgstr "" @@ -23322,6 +23390,12 @@ msgstr "" msgid "If checked, picked qty won't automatically be fulfilled on submit of pick list." msgstr "" +#. Description of the 'Allocate Full Amount to Stock Items' (Check) field in +#. DocType 'Purchase Taxes and Charges' +#: erpnext/accounts/doctype/purchase_taxes_and_charges/purchase_taxes_and_charges.json +msgid "If checked, the entire amount (e.g. Freight) is allocated to the valuation of stock & asset items only. If unchecked, the amount is distributed across all items and the portion belonging to non-stock items is not added to valuation." +msgstr "" + #. Description of the 'Considered In Paid Amount' (Check) field in DocType #. 'Purchase Taxes and Charges' #. Description of the 'Considered In Paid Amount' (Check) field in DocType @@ -23583,15 +23657,15 @@ msgstr "" msgid "If no taxes are set, and Taxes and Charges Template is selected, the system will automatically apply the taxes from the chosen template." msgstr "" -#: erpnext/stock/stock_ledger.py:2033 +#: erpnext/stock/stock_ledger.py:2022 msgid "If not, you can Cancel / Submit this entry" msgstr "" -#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.js:197 +#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.js:194 msgid "If party does not exist, create it using the Customer Name field." msgstr "" -#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.js:198 +#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.js:195 msgid "If party does not exist, create it using the Supplier Name field." msgstr "" @@ -23609,13 +23683,18 @@ msgstr "" msgid "If selected Pricing Rule is made for 'Rate', it will overwrite Price List. Pricing Rule rate is the final rate, so no further discount should be applied. Hence, in transactions like Sales Order, Purchase Order etc, it will be fetched in 'Rate' field, rather than 'Price List Rate' field." msgstr "" +#. Description of the 'Default Accounts' (Table) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "If set, accounting entries for this customer will post to these accounts instead of the company default." +msgstr "" + #. Description of the 'Fixed Outgoing Email Account' (Link) field in DocType #. 'Buying Settings' #: erpnext/buying/doctype/buying_settings/buying_settings.json msgid "If set, the system does not use the user's Email or the standard outgoing Email account for sending request for quotations." msgstr "" -#: erpnext/manufacturing/doctype/work_order/work_order.js:1263 +#: erpnext/manufacturing/doctype/work_order/work_order.js:1270 msgid "If the BOM results in Scrap material, the Scrap Warehouse needs to be selected." msgstr "" @@ -23624,7 +23703,7 @@ msgstr "" msgid "If the account is frozen, entries are allowed to restricted users." msgstr "" -#: erpnext/stock/stock_ledger.py:2026 +#: erpnext/stock/stock_ledger.py:2015 msgid "If the item is transacting as a Zero Valuation Rate item in this entry, please enable 'Allow Zero Valuation Rate' in the {0} Item table." msgstr "" @@ -23634,7 +23713,7 @@ msgstr "" msgid "If the reorder check is set at the Group warehouse level, the available quantity becomes the sum of the projected quantities of all its child warehouses." msgstr "" -#: erpnext/manufacturing/doctype/work_order/work_order.js:1282 +#: erpnext/manufacturing/doctype/work_order/work_order.js:1289 msgid "If the selected BOM has Operations mentioned in it, the system will fetch all Operations from BOM, these values can be changed." msgstr "" @@ -23950,7 +24029,7 @@ msgstr "" msgid "Import Successful" msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:564 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:575 msgid "Import Summary" msgstr "" @@ -24538,7 +24617,7 @@ msgstr "" msgid "Incorrect Company" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1260 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1265 msgid "Incorrect Component Quantity" msgstr "" @@ -24748,14 +24827,14 @@ msgstr "" msgid "Inspected By" msgstr "" -#: erpnext/controllers/stock_controller.py:1492 -#: erpnext/manufacturing/doctype/job_card/job_card.py:833 +#: erpnext/controllers/stock_controller.py:1539 +#: erpnext/manufacturing/doctype/job_card/job_card.py:834 msgid "Inspection Rejected" msgstr "" #. Label of the inspection_required (Check) field in DocType 'Stock Entry' -#: erpnext/controllers/stock_controller.py:1462 -#: erpnext/controllers/stock_controller.py:1464 +#: erpnext/controllers/stock_controller.py:1509 +#: erpnext/controllers/stock_controller.py:1511 #: erpnext/stock/doctype/stock_entry/stock_entry.json msgid "Inspection Required" msgstr "" @@ -24772,8 +24851,8 @@ msgstr "" msgid "Inspection Required before Purchase" msgstr "" -#: erpnext/controllers/stock_controller.py:1477 -#: erpnext/manufacturing/doctype/job_card/job_card.py:814 +#: erpnext/controllers/stock_controller.py:1524 +#: erpnext/manufacturing/doctype/job_card/job_card.py:815 msgid "Inspection Submission" msgstr "" @@ -24844,9 +24923,9 @@ msgstr "" #: erpnext/controllers/accounts_controller.py:3879 #: erpnext/controllers/accounts_controller.py:3901 -#: erpnext/controllers/accounts_controller.py:4421 -#: erpnext/controllers/accounts_controller.py:4427 -#: erpnext/controllers/accounts_controller.py:4449 +#: erpnext/controllers/accounts_controller.py:4419 +#: erpnext/controllers/accounts_controller.py:4425 +#: erpnext/controllers/accounts_controller.py:4447 msgid "Insufficient Permissions" msgstr "" @@ -24854,13 +24933,13 @@ msgstr "" #: erpnext/stock/doctype/pick_list/pick_list.py:148 #: erpnext/stock/doctype/pick_list/pick_list.py:166 #: erpnext/stock/doctype/pick_list/pick_list.py:1093 -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1232 -#: erpnext/stock/serial_batch_bundle.py:1225 erpnext/stock/stock_ledger.py:1714 -#: erpnext/stock/stock_ledger.py:2192 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1235 +#: erpnext/stock/serial_batch_bundle.py:1225 erpnext/stock/stock_ledger.py:1703 +#: erpnext/stock/stock_ledger.py:2181 msgid "Insufficient Stock" msgstr "" -#: erpnext/stock/stock_ledger.py:2207 +#: erpnext/stock/stock_ledger.py:2196 msgid "Insufficient Stock for Batch" msgstr "" @@ -25015,7 +25094,7 @@ msgstr "" msgid "Internal Customer Accounting" msgstr "" -#: erpnext/selling/doctype/customer/customer.py:255 +#: erpnext/selling/doctype/customer/customer.py:256 msgid "Internal Customer for company {0} already exists" msgstr "" @@ -25038,7 +25117,7 @@ msgstr "" #. Label of the internal_supplier_section (Section Break) field in DocType #. 'Supplier' #: erpnext/buying/doctype/supplier/supplier.json -msgid "Internal Supplier Accounting" +msgid "Internal Supplier Details" msgstr "" #: erpnext/buying/doctype/supplier/supplier.py:181 @@ -25081,7 +25160,12 @@ msgstr "" msgid "Internal Work History" msgstr "" -#: erpnext/controllers/stock_controller.py:1559 +#. Description of the 'Customer Details' (Text) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Internal notes about this customer. Not visible on transactions or the portal." +msgstr "" + +#: erpnext/controllers/stock_controller.py:1606 msgid "Internal transfers can only be done in company's default currency" msgstr "" @@ -25097,8 +25181,8 @@ msgstr "" #: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:384 #: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:392 -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1060 -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1070 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1067 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1077 #: erpnext/assets/doctype/asset_category/asset_category.py:69 #: erpnext/assets/doctype/asset_category/asset_category.py:97 #: erpnext/controllers/accounts_controller.py:3225 @@ -25136,11 +25220,11 @@ msgstr "" msgid "Invalid Barcode. There is no Item attached to this barcode." msgstr "" -#: erpnext/public/js/controllers/transaction.js:3163 +#: erpnext/public/js/controllers/transaction.js:3177 msgid "Invalid Blanket Order for the selected Customer and Item" msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:498 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:509 msgid "Invalid CSV format. Expected column: doctype_name" msgstr "" @@ -25152,7 +25236,7 @@ msgstr "" msgid "Invalid Company Field" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2405 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2412 msgid "Invalid Company for Inter Company Transaction." msgstr "" @@ -25162,7 +25246,7 @@ msgstr "" msgid "Invalid Cost Center" msgstr "" -#: erpnext/selling/doctype/customer/customer.py:368 +#: erpnext/selling/doctype/customer/customer.py:369 msgid "Invalid Customer Group" msgstr "" @@ -25170,12 +25254,12 @@ msgstr "" msgid "Invalid Delivery Date" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1084 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1087 msgid "Invalid Disassembly Item" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1050 -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1099 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1053 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1102 msgid "Invalid Disassembly Quantity" msgstr "" @@ -25183,7 +25267,7 @@ msgstr "" msgid "Invalid Discount" msgstr "" -#: erpnext/controllers/taxes_and_totals.py:853 +#: erpnext/controllers/taxes_and_totals.py:856 msgid "Invalid Discount Amount" msgstr "" @@ -25303,12 +25387,12 @@ msgstr "" msgid "Invalid Selling Price" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:2043 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2101 msgid "Invalid Serial and Batch Bundle" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1294 -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1316 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1352 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1374 msgid "Invalid Source and Target Warehouse" msgstr "" @@ -25337,7 +25421,7 @@ msgstr "" msgid "Invalid condition expression" msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1058 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1069 msgid "Invalid file URL" msgstr "" @@ -25392,7 +25476,7 @@ msgstr "" msgid "Invalid {0}" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2403 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2410 msgid "Invalid {0} for Inter Company Transaction." msgstr "" @@ -25416,7 +25500,7 @@ msgstr "" #. Label of a Workspace Sidebar Item #: erpnext/patches/v15_0/refactor_closing_stock_balance.py:43 #: erpnext/stock/doctype/inventory_dimension/inventory_dimension.json -#: erpnext/stock/doctype/inventory_dimension/inventory_dimension.py:184 +#: erpnext/stock/doctype/inventory_dimension/inventory_dimension.py:178 #: erpnext/workspace_sidebar/stock.json msgid "Inventory Dimension" msgstr "" @@ -25628,7 +25712,7 @@ msgstr "" #: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.json #: erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.json #: erpnext/accounts/doctype/pos_profile/pos_profile.json -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2454 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2461 #: erpnext/buying/doctype/supplier/supplier.json #: erpnext/selling/report/payment_terms_status_for_sales_order/payment_terms_status_for_sales_order.py:62 msgid "Invoices" @@ -26315,7 +26399,7 @@ msgstr "" msgid "It can take upto few hours for accurate stock values to be visible after merging items." msgstr "" -#: erpnext/public/js/controllers/transaction.js:2544 +#: erpnext/public/js/controllers/transaction.js:2558 msgid "It is needed to fetch Item Details." msgstr "" @@ -26381,7 +26465,7 @@ msgstr "" #: erpnext/buying/report/supplier_quotation_comparison/supplier_quotation_comparison.js:33 #: erpnext/buying/report/supplier_quotation_comparison/supplier_quotation_comparison.py:204 #: erpnext/buying/workspace/buying/buying.json -#: erpnext/controllers/taxes_and_totals.py:1262 +#: erpnext/controllers/taxes_and_totals.py:1248 #: erpnext/manufacturing/doctype/blanket_order/blanket_order.json #: erpnext/manufacturing/doctype/bom/bom.js:1088 #: erpnext/manufacturing/doctype/plant_floor/plant_floor.js:109 @@ -26487,7 +26571,7 @@ msgstr "" #. Label of a Link in the Stock Workspace #. Label of a Workspace Sidebar Item #: erpnext/stock/doctype/item_alternative/item_alternative.json -#: erpnext/stock/report/item_where_used/item_where_used.py:410 +#: erpnext/stock/report/item_where_used/item_where_used.py:408 #: erpnext/stock/workspace/stock/stock.json #: erpnext/workspace_sidebar/stock.json msgid "Item Alternative" @@ -26694,10 +26778,10 @@ msgstr "" #: erpnext/manufacturing/report/quality_inspection_summary/quality_inspection_summary.py:86 #: erpnext/manufacturing/report/work_order_stock_report/work_order_stock_report.py:119 #: erpnext/projects/doctype/timesheet/timesheet.js:214 -#: erpnext/public/js/controllers/transaction.js:2838 +#: erpnext/public/js/controllers/transaction.js:2852 #: erpnext/public/js/stock_reservation.js:112 -#: erpnext/public/js/stock_reservation.js:318 erpnext/public/js/utils.js:579 -#: erpnext/public/js/utils.js:736 +#: erpnext/public/js/stock_reservation.js:318 erpnext/public/js/utils.js:596 +#: erpnext/public/js/utils.js:753 #: erpnext/public/js/utils/serial_no_batch_selector.js:96 #: erpnext/regional/doctype/import_supplier_invoice/import_supplier_invoice.json #: erpnext/selling/doctype/delivery_schedule_item/delivery_schedule_item.json @@ -26793,7 +26877,7 @@ msgstr "" msgid "Item Code required at Row No {0}" msgstr "" -#: erpnext/selling/page/point_of_sale/pos_controller.js:825 +#: erpnext/selling/page/point_of_sale/pos_controller.js:816 #: erpnext/selling/page/point_of_sale/pos_item_details.js:277 msgid "Item Code: {0} is not available under warehouse {1}." msgstr "" @@ -27178,8 +27262,8 @@ msgstr "" #: erpnext/manufacturing/report/production_planning_report/production_planning_report.py:371 #: erpnext/manufacturing/report/quality_inspection_summary/quality_inspection_summary.py:92 #: erpnext/manufacturing/report/work_order_consumed_materials/work_order_consumed_materials.py:138 -#: erpnext/public/js/controllers/transaction.js:2844 -#: erpnext/public/js/utils.js:832 +#: erpnext/public/js/controllers/transaction.js:2858 +#: erpnext/public/js/utils.js:849 #: erpnext/selling/doctype/quotation_item/quotation_item.json #: erpnext/selling/doctype/sales_order/sales_order.js:1286 #: erpnext/selling/doctype/sales_order_item/sales_order_item.json @@ -27447,7 +27531,7 @@ msgstr "" #. Name of a DocType #: erpnext/stock/doctype/item_variant/item_variant.json -#: erpnext/stock/report/item_where_used/item_where_used.py:387 +#: erpnext/stock/report/item_where_used/item_where_used.py:385 msgid "Item Variant" msgstr "" @@ -27566,7 +27650,7 @@ msgstr "" msgid "Item Wise Tax Details" msgstr "" -#: erpnext/controllers/taxes_and_totals.py:560 +#: erpnext/controllers/taxes_and_totals.py:563 msgid "Item Wise Tax Details do not match with Taxes and Charges at the following rows:" msgstr "" @@ -27586,7 +27670,7 @@ msgstr "" msgid "Item and Warranty Details" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:3757 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:3815 msgid "Item for row {0} does not match Material Request" msgstr "" @@ -27620,7 +27704,7 @@ msgstr "" msgid "Item qty can not be updated as raw materials are already processed." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1440 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1498 msgid "Item rate has been updated to zero as Allow Zero Valuation Rate is checked for item {0}" msgstr "" @@ -27668,7 +27752,7 @@ msgstr "" msgid "Item {0} does not exist in the system or has expired" msgstr "" -#: erpnext/controllers/stock_controller.py:554 +#: erpnext/controllers/stock_controller.py:557 msgid "Item {0} does not exist." msgstr "" @@ -27732,7 +27816,7 @@ msgstr "" msgid "Item {0} is not a template item." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:2481 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2539 msgid "Item {0} is not active or end of life has been reached" msgstr "" @@ -27752,7 +27836,7 @@ msgstr "" msgid "Item {0} must be a non-stock item" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1781 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1839 msgid "Item {0} not found in 'Raw Materials Supplied' table in {1} {2}" msgstr "" @@ -27768,7 +27852,7 @@ msgstr "" msgid "Item {0}: {1} qty produced. " msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:1218 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:1334 msgid "Item {} does not exist." msgstr "" @@ -27862,11 +27946,11 @@ msgstr "" msgid "Items and Pricing" msgstr "" -#: erpnext/controllers/accounts_controller.py:4235 +#: erpnext/controllers/accounts_controller.py:4233 msgid "Items cannot be updated as Subcontracting Inward Order(s) exist against this Subcontracted Sales Order." msgstr "" -#: erpnext/controllers/accounts_controller.py:4228 +#: erpnext/controllers/accounts_controller.py:4226 msgid "Items cannot be updated as Subcontracting Order is created against the Purchase Order {0}." msgstr "" @@ -27878,7 +27962,7 @@ msgstr "" msgid "Items not found." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1436 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1494 msgid "Items rate has been updated to zero as Allow Zero Valuation Rate is checked for the following items: {0}" msgstr "" @@ -27908,7 +27992,7 @@ msgstr "" msgid "Items under this warehouse will be suggested" msgstr "" -#: erpnext/controllers/stock_controller.py:163 +#: erpnext/controllers/stock_controller.py:166 msgid "Items {0} do not exist in the Item master." msgstr "" @@ -27953,7 +28037,7 @@ msgstr "" #: erpnext/buying/doctype/purchase_order_item/purchase_order_item.json #: erpnext/manufacturing/doctype/bom/bom.json #: erpnext/manufacturing/doctype/job_card/job_card.json -#: erpnext/manufacturing/doctype/job_card/job_card.py:1016 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1017 #: erpnext/manufacturing/doctype/operation/operation.json #: erpnext/manufacturing/doctype/work_order/work_order.js:408 #: erpnext/manufacturing/doctype/work_order/work_order.json @@ -27982,7 +28066,7 @@ msgstr "" msgid "Job Card Item" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:876 +#: erpnext/manufacturing/doctype/job_card/job_card.py:877 msgid "Job Card On Hold" msgstr "" @@ -28021,7 +28105,7 @@ msgstr "" msgid "Job Card and Capacity Planning" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1530 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1548 msgid "Job Card {0} has been completed" msgstr "" @@ -28097,7 +28181,7 @@ msgstr "" msgid "Job Worker Warehouse" msgstr "" -#: erpnext/manufacturing/doctype/work_order/work_order.py:2860 +#: erpnext/manufacturing/doctype/work_order/work_order.py:2892 msgid "Job card {0} created" msgstr "" @@ -28318,7 +28402,7 @@ msgstr "" msgid "Kilowatt-Hour" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1018 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1019 msgid "Kindly cancel the Manufacturing Entries first against the work order {0}." msgstr "" @@ -28568,7 +28652,7 @@ msgstr "" msgid "Lead" msgstr "" -#: erpnext/crm/doctype/lead/lead.py:545 +#: erpnext/crm/doctype/lead/lead.py:546 msgid "Lead -> Prospect" msgstr "" @@ -28662,7 +28746,7 @@ msgstr "" msgid "Lead Type" msgstr "" -#: erpnext/crm/doctype/lead/lead.py:544 +#: erpnext/crm/doctype/lead/lead.py:545 msgid "Lead {0} has been added to prospect {1}." msgstr "" @@ -28799,7 +28883,7 @@ msgstr "" msgid "Length (cm)" msgstr "" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:895 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:904 msgid "Less Than Amount" msgstr "" @@ -28858,7 +28942,7 @@ msgstr "" msgid "License Plate" msgstr "" -#: erpnext/controllers/status_updater.py:500 +#: erpnext/controllers/status_updater.py:511 msgid "Limit Crossed" msgstr "" @@ -28915,11 +28999,11 @@ msgstr "" msgid "Link to Material Requests" msgstr "" -#: erpnext/buying/doctype/supplier/supplier.js:125 +#: erpnext/buying/doctype/supplier/supplier.js:164 msgid "Link with Customer" msgstr "" -#: erpnext/selling/doctype/customer/customer.js:201 +#: erpnext/selling/doctype/customer/customer.js:203 msgid "Link with Supplier" msgstr "" @@ -28944,16 +29028,16 @@ msgstr "" msgid "Linked with submitted documents" msgstr "" -#: erpnext/buying/doctype/supplier/supplier.js:210 -#: erpnext/selling/doctype/customer/customer.js:279 +#: erpnext/buying/doctype/supplier/supplier.js:251 +#: erpnext/selling/doctype/customer/customer.js:281 msgid "Linking Failed" msgstr "" -#: erpnext/buying/doctype/supplier/supplier.js:209 +#: erpnext/buying/doctype/supplier/supplier.js:250 msgid "Linking to Customer Failed. Please try again." msgstr "" -#: erpnext/selling/doctype/customer/customer.js:278 +#: erpnext/selling/doctype/customer/customer.js:280 msgid "Linking to Supplier Failed. Please try again." msgstr "" @@ -29207,7 +29291,7 @@ msgstr "" msgid "Loyalty Points will be calculated from the spent done (via the Sales Invoice), based on collection factor mentioned." msgstr "" -#: erpnext/public/js/utils.js:200 +#: erpnext/public/js/utils.js:208 msgid "Loyalty Points: {0}" msgstr "" @@ -29259,6 +29343,11 @@ msgstr "" msgid "Loyalty Program Type" msgstr "" +#. Description of the 'Loyalty Program' (Link) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Loyalty scheme this customer earns points under. Auto-assigned if a matching program exists." +msgstr "" + #. Label of the mps (Link) field in DocType 'Purchase Order' #. Label of the mps (Link) field in DocType 'Work Order' #: erpnext/buying/doctype/purchase_order/purchase_order.json @@ -29548,7 +29637,7 @@ msgstr "" #. Label of the make (Data) field in DocType 'Vehicle' #: erpnext/accounts/doctype/journal_entry/journal_entry.js:127 -#: erpnext/manufacturing/doctype/job_card/job_card.js:480 +#: erpnext/manufacturing/doctype/job_card/job_card.js:479 #: erpnext/manufacturing/doctype/work_order/work_order.js:851 #: erpnext/manufacturing/doctype/work_order/work_order.js:885 #: erpnext/setup/doctype/vehicle/vehicle.json @@ -29609,7 +29698,7 @@ msgstr "" msgid "Make Stock Entry" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.js:369 +#: erpnext/manufacturing/doctype/job_card/job_card.js:368 msgid "Make Subcontracting PO" msgstr "" @@ -29668,7 +29757,13 @@ msgstr "" msgid "Mandatory Accounting Dimension" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1922 +#. Label of the mandatory_depends_on_backend (Small Text) field in DocType +#. 'Inventory Dimension' +#: erpnext/stock/doctype/inventory_dimension/inventory_dimension.json +msgid "Mandatory Depends On (Backend)" +msgstr "" + +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1929 msgid "Mandatory Field" msgstr "" @@ -29767,8 +29862,8 @@ msgstr "" #: erpnext/stock/doctype/material_request_item/material_request_item.json #: erpnext/stock/doctype/purchase_receipt_item/purchase_receipt_item.json #: erpnext/stock/doctype/stock_entry/stock_entry.json -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1525 -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1541 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1583 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1599 #: erpnext/stock/doctype/stock_entry_type/stock_entry_type.json #: erpnext/subcontracting/doctype/subcontracting_order_item/subcontracting_order_item.json #: erpnext/subcontracting/doctype/subcontracting_receipt_item/subcontracting_receipt_item.json @@ -29917,7 +30012,7 @@ msgstr "" msgid "Manufacturing Manager" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:2839 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2897 msgid "Manufacturing Quantity is mandatory" msgstr "" @@ -29994,7 +30089,7 @@ msgstr "" msgid "Mapping Subcontracting Order ..." msgstr "" -#: erpnext/public/js/utils.js:1067 +#: erpnext/public/js/utils.js:1084 msgid "Mapping {0} ..." msgstr "" @@ -30087,6 +30182,12 @@ msgstr "" msgid "Mark As Closed" msgstr "" +#. Description of the 'Is Internal Customer' (Check) field in DocType +#. 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Mark if this customer represents an internal company. Enables inter-company transactions." +msgstr "" + #. Label of the market_segment (Link) field in DocType 'Lead' #. Name of a DocType #. Label of the market_segment (Data) field in DocType 'Market Segment' @@ -30166,10 +30267,6 @@ msgstr "" msgid "Matched" msgstr "" -#: erpnext/stock/report/item_where_used/item_where_used.py:57 -msgid "Matched Field" -msgstr "" - #. Label of the matched_transaction_rule (Link) field in DocType 'Bank #. Transaction' #: erpnext/accounts/doctype/bank_transaction/bank_transaction.json @@ -30196,7 +30293,7 @@ msgstr "" #. Option for the 'Purpose' (Select) field in DocType 'Stock Entry Type' #: erpnext/setup/setup_wizard/operations/install_fixtures.py:114 #: erpnext/stock/doctype/stock_entry/stock_entry.json -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1526 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1584 #: erpnext/stock/doctype/stock_entry_type/stock_entry_type.json msgid "Material Consumption for Manufacture" msgstr "" @@ -30277,7 +30374,7 @@ msgstr "" #: erpnext/buying/report/requested_items_to_order_and_receive/requested_items_to_order_and_receive.js:33 #: erpnext/buying/report/requested_items_to_order_and_receive/requested_items_to_order_and_receive.py:184 #: erpnext/buying/workspace/buying/buying.json -#: erpnext/manufacturing/doctype/job_card/job_card.js:214 +#: erpnext/manufacturing/doctype/job_card/job_card.js:216 #: erpnext/manufacturing/doctype/production_plan/production_plan.js:159 #: erpnext/manufacturing/doctype/production_plan/production_plan.json #: erpnext/manufacturing/doctype/production_plan_item/production_plan_item.json @@ -30447,7 +30544,7 @@ msgstr "" #. Option for the 'Purpose' (Select) field in DocType 'Pick List' #. Option for the 'Purpose' (Select) field in DocType 'Stock Entry' #. Option for the 'Purpose' (Select) field in DocType 'Stock Entry Type' -#: erpnext/manufacturing/doctype/job_card/job_card.js:225 +#: erpnext/manufacturing/doctype/job_card/job_card.js:224 #: erpnext/manufacturing/doctype/material_request_plan_item/material_request_plan_item.json #: erpnext/setup/setup_wizard/operations/install_fixtures.py:83 #: erpnext/stock/doctype/item/item.json @@ -30518,8 +30615,8 @@ msgstr "" msgid "Materials are already received against the {0} {1}" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:184 -#: erpnext/manufacturing/doctype/job_card/job_card.py:854 +#: erpnext/manufacturing/doctype/job_card/job_card.py:185 +#: erpnext/manufacturing/doctype/job_card/job_card.py:855 msgid "Materials needs to be transferred to the work in progress warehouse for the job card {0}" msgstr "" @@ -30624,11 +30721,11 @@ msgstr "" msgid "Maximum Producible Items" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:4370 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:4428 msgid "Maximum Samples - {0} can be retained for Batch {1} and Item {2}." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:4361 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:4419 msgid "Maximum Samples - {0} have already been retained for Batch {1} and Item {2} in Batch {3}." msgstr "" @@ -30689,20 +30786,10 @@ msgstr "" msgid "Megawatt" msgstr "" -#: erpnext/stock/stock_ledger.py:2039 +#: erpnext/stock/stock_ledger.py:2028 msgid "Mention Valuation Rate in the Item master." msgstr "" -#. Description of the 'Accounts' (Table) field in DocType 'Customer' -#: erpnext/selling/doctype/customer/customer.json -msgid "Mention if non-standard Receivable account" -msgstr "" - -#. Description of the 'Accounts' (Table) field in DocType 'Supplier' -#: erpnext/buying/doctype/supplier/supplier.json -msgid "Mention if non-standard payable account" -msgstr "" - #. Description of the 'Accounts' (Table) field in DocType 'Customer Group' #. Description of the 'Accounts' (Table) field in DocType 'Supplier Group' #: erpnext/setup/doctype/customer_group/customer_group.json @@ -30734,7 +30821,7 @@ msgstr "" msgid "Merge similar Account Heads" msgstr "" -#: erpnext/public/js/utils.js:1099 +#: erpnext/public/js/utils.js:1116 msgid "Merge taxes from multiple documents" msgstr "" @@ -31078,19 +31165,19 @@ msgstr "" msgid "Miscellaneous Expenses" msgstr "" -#: erpnext/controllers/buying_controller.py:715 +#: erpnext/controllers/buying_controller.py:778 msgid "Mismatch" msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:1219 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:1335 msgid "Missing" msgstr "" #: erpnext/accounts/doctype/pos_opening_entry/pos_opening_entry.py:97 #: erpnext/accounts/doctype/pos_profile/pos_profile.py:200 #: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:593 -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2471 -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:3087 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2478 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:3094 #: erpnext/assets/doctype/asset_category/asset_category.py:116 msgid "Missing Account" msgstr "" @@ -31120,7 +31207,7 @@ msgstr "" msgid "Missing Finance Book" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1978 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2036 msgid "Missing Finished Good" msgstr "" @@ -31128,7 +31215,7 @@ msgstr "" msgid "Missing Formula" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1267 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1272 msgid "Missing Item" msgstr "" @@ -31410,11 +31497,11 @@ msgstr "" msgid "Multiple Accounts (Journal Template)" msgstr "" -#: erpnext/selling/doctype/customer/customer.py:439 +#: erpnext/selling/doctype/customer/customer.py:440 msgid "Multiple Loyalty Programs found for Customer {}. Please select manually." msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1234 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1241 msgid "Multiple POS Opening Entry" msgstr "" @@ -31440,7 +31527,7 @@ msgstr "" msgid "Multiple fiscal years exist for the date {0}. Please set company in Fiscal Year" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1985 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2043 msgid "Multiple items cannot be marked as finished item" msgstr "" @@ -31452,7 +31539,7 @@ msgstr "" #: erpnext/manufacturing/doctype/work_order/work_order.py:1510 #: erpnext/setup/doctype/uom/uom.json #: erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.py:267 -#: erpnext/utilities/transaction_base.py:634 +#: erpnext/utilities/transaction_base.py:631 msgid "Must be Whole Number" msgstr "" @@ -31537,11 +31624,7 @@ msgstr "" msgid "Naming Series options" msgstr "" -#: erpnext/public/js/utils/naming_series.js:196 -msgid "Naming Series updated" -msgstr "" - -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:939 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:950 msgid "Naming series '{0}' for DocType '{1}' does not contain standard '.' or '{{' separator. Using fallback extraction." msgstr "" @@ -31585,7 +31668,7 @@ msgstr "" msgid "Negative Batch Report" msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:628 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:631 msgid "Negative Quantity is not allowed" msgstr "" @@ -31600,7 +31683,7 @@ msgstr "" msgid "Negative Stock Error" msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:633 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:636 msgid "Negative Valuation Rate is not allowed" msgstr "" @@ -31998,7 +32081,7 @@ msgstr "" msgid "New Income" msgstr "" -#: erpnext/selling/page/point_of_sale/pos_controller.js:259 +#: erpnext/selling/page/point_of_sale/pos_controller.js:250 msgid "New Invoice" msgstr "" @@ -32083,7 +32166,7 @@ msgstr "" msgid "New Workplace" msgstr "" -#: erpnext/selling/doctype/customer/customer.py:404 +#: erpnext/selling/doctype/customer/customer.py:405 msgid "New credit limit is less than current outstanding amount for the customer. Credit limit has to be atleast {0}" msgstr "" @@ -32150,12 +32233,12 @@ msgstr "" msgid "No Answer" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2576 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2583 msgid "No Customer found for Inter Company Transactions which represents company {0}" msgstr "" #: erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.js:164 -#: erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py:431 +#: erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py:430 msgid "No Customers found with selected options." msgstr "" @@ -32163,7 +32246,7 @@ msgstr "" msgid "No Delivery Note selected for Customer {}" msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:756 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:767 msgid "No DocTypes in To Delete list. Please generate or import the list before submitting." msgstr "" @@ -32243,7 +32326,7 @@ msgstr "" msgid "No Summary" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2560 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2567 msgid "No Supplier found for Inter Company Transactions which represents company {0}" msgstr "" @@ -32277,7 +32360,7 @@ msgid "No Work Orders were created" msgstr "" #: erpnext/stock/doctype/purchase_receipt/purchase_receipt.py:827 -#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:899 +#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:905 msgid "No accounting entries for the following warehouses" msgstr "" @@ -32317,7 +32400,7 @@ msgstr "" msgid "No bank transactions found" msgstr "" -#: erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py:496 +#: erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py:495 msgid "No billing email found for customer: {0}" msgstr "" @@ -32407,10 +32490,6 @@ msgstr "" msgid "No more children on Right" msgstr "" -#: erpnext/public/js/utils/naming_series.js:385 -msgid "No naming series defined" -msgstr "" - #: erpnext/selling/doctype/sales_order/sales_order.js:608 msgid "No of Deliveries" msgstr "" @@ -32487,7 +32566,7 @@ msgstr "" msgid "No open Material Requests found for the given criteria." msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1228 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1235 msgid "No open POS Opening Entry found for POS Profile {0}." msgstr "" @@ -32519,7 +32598,7 @@ msgstr "" msgid "No pending Material Requests found to link for the given items." msgstr "" -#: erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py:503 +#: erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py:502 msgid "No primary email found for customer: {0}" msgstr "" @@ -32582,7 +32661,7 @@ msgstr "" msgid "No stock available for this batch." msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:810 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:813 msgid "No stock ledger entries were created. Please set the quantity or valuation rate for the items properly and try again." msgstr "" @@ -32619,15 +32698,10 @@ msgstr "" msgid "No vouchers found for this transaction" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2624 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2631 msgid "No {0} found for Inter Company Transactions." msgstr "" -#: erpnext/assets/doctype/asset/asset.js:377 -#: erpnext/stock/doctype/item/item_prices.html:80 -msgid "No." -msgstr "" - #. Label of the no_of_employees (Select) field in DocType 'Prospect' #: erpnext/crm/doctype/prospect/prospect.json msgid "No. of Employees" @@ -32679,7 +32753,7 @@ msgstr "" msgid "Non-phantom BOM cannot be created for non-stock item {0}." msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:559 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:562 msgid "None of the items have any change in quantity or value." msgstr "" @@ -32705,8 +32779,8 @@ msgstr "" msgid "Not Applicable" msgstr "" -#: erpnext/selling/page/point_of_sale/pos_controller.js:824 -#: erpnext/selling/page/point_of_sale/pos_controller.js:853 +#: erpnext/selling/page/point_of_sale/pos_controller.js:815 +#: erpnext/selling/page/point_of_sale/pos_controller.js:844 msgid "Not Available" msgstr "" @@ -32789,10 +32863,6 @@ msgstr "" msgid "Not authorized to edit frozen Account {0}" msgstr "" -#: erpnext/public/js/utils/naming_series.js:326 -msgid "Not configured" -msgstr "" - #: erpnext/templates/form_grid/stock_entry_grid.html:26 msgid "Not in Stock" msgstr "" @@ -33018,6 +33088,11 @@ msgstr "" msgid "Number of new Cost Center, it will be included in the cost center name as a prefix" msgstr "" +#. Description of the 'Supplier Numbers' (Table) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Numbers this customer uses to identify your company in their own system." +msgstr "" + #. Label of the numeric (Check) field in DocType 'Item Quality Inspection #. Parameter' #. Label of the numeric (Check) field in DocType 'Quality Inspection Reading' @@ -33256,7 +33331,7 @@ msgstr "" msgid "Only CSV and Excel files can be used to for importing data. Please check the file format you are trying to upload" msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1072 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1083 msgid "Only CSV files are allowed" msgstr "" @@ -33316,7 +33391,7 @@ msgstr "" msgid "Only one operation can have 'Is Final Finished Good' checked when 'Track Semi Finished Goods' is enabled." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1540 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1598 msgid "Only one {0} entry can be created against the Work Order {1}" msgstr "" @@ -33383,7 +33458,7 @@ msgstr "" msgid "Open Events" msgstr "" -#: erpnext/selling/page/point_of_sale/pos_controller.js:252 +#: erpnext/selling/page/point_of_sale/pos_controller.js:243 msgid "Open Form View" msgstr "" @@ -33536,7 +33611,7 @@ msgstr "" #. Label of the balance_details (Table) field in DocType 'POS Opening Entry' #: erpnext/accounts/doctype/pos_opening_entry/pos_opening_entry.json -#: erpnext/selling/page/point_of_sale/pos_controller.js:90 +#: erpnext/selling/page/point_of_sale/pos_controller.js:81 msgid "Opening Balance Details" msgstr "" @@ -33566,7 +33641,7 @@ msgstr "" msgid "Opening Entry" msgstr "" -#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:304 +#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:316 msgid "Opening Invoice Creation In Progress" msgstr "" @@ -33594,8 +33669,8 @@ msgstr "" msgid "Opening Invoice Tool" msgstr "" -#: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1683 -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2031 +#: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1686 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2038 msgid "Opening Invoice has rounding adjustment of {0}.

'{1}' account is required to post these values. Please set it in Company: {2}.

Or, '{3}' can be enabled to not post any rounding adjustment." msgstr "" @@ -33603,7 +33678,7 @@ msgstr "" msgid "Opening Invoices" msgstr "" -#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.js:142 +#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.js:139 msgid "Opening Invoices Summary" msgstr "" @@ -33785,11 +33860,11 @@ msgstr "" msgid "Operation time does not depend on quantity to produce" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.js:518 +#: erpnext/manufacturing/doctype/job_card/job_card.js:517 msgid "Operation {0} added multiple times in the work order {1}" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1267 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1285 msgid "Operation {0} does not belong to the work order {1}" msgstr "" @@ -33996,10 +34071,6 @@ msgstr "" msgid "Optional. Used with Financial Report Template" msgstr "" -#: erpnext/public/js/utils/naming_series.js:83 -msgid "Optionally, set the number of digits in the series using dot (.) followed by hashes (#). For example, '.####' means that the series will have four digits. Default is five digits." -msgstr "" - #: erpnext/selling/report/territory_wise_sales/territory_wise_sales.py:43 msgid "Order Amount" msgstr "" @@ -34287,8 +34358,8 @@ msgstr "" msgid "Out of stock" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1241 -#: erpnext/selling/page/point_of_sale/pos_controller.js:208 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1248 +#: erpnext/selling/page/point_of_sale/pos_controller.js:199 msgid "Outdated POS Opening Entry" msgstr "" @@ -34342,7 +34413,7 @@ msgstr "" #: erpnext/accounts/doctype/cashier_closing/cashier_closing.json #: erpnext/accounts/doctype/discounted_invoice/discounted_invoice.json #: erpnext/accounts/doctype/opening_invoice_creation_tool_item/opening_invoice_creation_tool_item.json -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:887 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:896 #: erpnext/accounts/doctype/payment_reconciliation_invoice/payment_reconciliation_invoice.json #: erpnext/accounts/doctype/payment_request/payment_request.json #: erpnext/accounts/doctype/pos_invoice/pos_invoice.js:300 @@ -34400,7 +34471,7 @@ msgstr "" msgid "Over Billing Allowance (%)" msgstr "" -#: erpnext/stock/doctype/purchase_receipt/purchase_receipt.py:1339 +#: erpnext/stock/doctype/purchase_receipt/purchase_receipt.py:1343 msgid "Over Billing Allowance exceeded for Purchase Receipt Item {0} ({1}) by {2}%" msgstr "" @@ -34423,11 +34494,11 @@ msgstr "" msgid "Over Picking Allowance (%)" msgstr "" -#: erpnext/controllers/stock_controller.py:1729 +#: erpnext/controllers/stock_controller.py:1776 msgid "Over Receipt" msgstr "" -#: erpnext/controllers/status_updater.py:505 +#: erpnext/controllers/status_updater.py:516 msgid "Over Receipt/Delivery of {0} {1} ignored for item {2} because you have {3} role." msgstr "" @@ -34444,7 +34515,7 @@ msgstr "" msgid "Over Withheld" msgstr "" -#: erpnext/controllers/status_updater.py:507 +#: erpnext/controllers/status_updater.py:518 msgid "Overbilling of {0} {1} ignored for item {2} because you have {3} role." msgstr "" @@ -34526,6 +34597,12 @@ msgstr "" msgid "Overproduction for Sales and Work Order" msgstr "" +#. Description of the 'Per-Company Accounts' (Table) field in DocType +#. 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "Override the default payable / advance accounts on a per-company basis. Leave blank to use each company's defaults from Company settings." +msgstr "" + #. Option for the 'Permanent Address Is' (Select) field in DocType 'Employee' #. Option for the 'Current Address Is' (Select) field in DocType 'Employee' #: erpnext/setup/doctype/employee/employee.json @@ -34563,6 +34640,11 @@ msgstr "" msgid "PCV" msgstr "" +#. Label of the pcv_job_timeout (Int) field in DocType 'Accounts Settings' +#: erpnext/accounts/doctype/accounts_settings/accounts_settings.json +msgid "PCV Job Timeout (seconds)" +msgstr "" + #: erpnext/accounts/doctype/process_period_closing_voucher/process_period_closing_voucher.js:35 msgid "PCV Paused" msgstr "" @@ -34610,7 +34692,7 @@ msgstr "" msgid "POS Additional Fields" msgstr "" -#: erpnext/selling/page/point_of_sale/pos_controller.js:183 +#: erpnext/selling/page/point_of_sale/pos_controller.js:174 msgid "POS Closed" msgstr "" @@ -34760,7 +34842,7 @@ msgstr "" msgid "POS Opening Entry" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1242 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1249 msgid "POS Opening Entry - {0} is outdated. Please close the POS and create a new POS Opening Entry." msgstr "" @@ -34768,7 +34850,7 @@ msgstr "" msgid "POS Opening Entry Cancellation Error" msgstr "" -#: erpnext/selling/page/point_of_sale/pos_controller.js:183 +#: erpnext/selling/page/point_of_sale/pos_controller.js:174 msgid "POS Opening Entry Cancelled" msgstr "" @@ -34781,7 +34863,7 @@ msgstr "" msgid "POS Opening Entry Exists" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1227 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1234 msgid "POS Opening Entry Missing" msgstr "" @@ -34789,7 +34871,7 @@ msgstr "" msgid "POS Opening Entry cannot be cancelled as unconsolidated Invoices exists." msgstr "" -#: erpnext/selling/page/point_of_sale/pos_controller.js:189 +#: erpnext/selling/page/point_of_sale/pos_controller.js:180 msgid "POS Opening Entry has been cancelled. Please refresh the page." msgstr "" @@ -34812,12 +34894,12 @@ msgstr "" #: erpnext/accounts/report/pos_register/pos_register.js:32 #: erpnext/accounts/report/pos_register/pos_register.py:117 #: erpnext/accounts/report/pos_register/pos_register.py:188 -#: erpnext/selling/page/point_of_sale/pos_controller.js:80 +#: erpnext/selling/page/point_of_sale/pos_controller.js:71 #: erpnext/workspace_sidebar/selling.json msgid "POS Profile" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1235 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1242 msgid "POS Profile - {0} has multiple open POS Opening Entries. Please close or cancel the existing entries before proceeding." msgstr "" @@ -34835,11 +34917,11 @@ msgstr "" msgid "POS Profile doesn't match {}" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1195 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1202 msgid "POS Profile is mandatory to mark this invoice as POS Transaction." msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1424 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1431 msgid "POS Profile required to make POS Entry" msgstr "" @@ -34890,11 +34972,11 @@ msgstr "" msgid "POS Transactions" msgstr "" -#: erpnext/selling/page/point_of_sale/pos_controller.js:187 +#: erpnext/selling/page/point_of_sale/pos_controller.js:178 msgid "POS has been closed at {0}. Please refresh the page." msgstr "" -#: erpnext/selling/page/point_of_sale/pos_controller.js:464 +#: erpnext/selling/page/point_of_sale/pos_controller.js:455 msgid "POS invoice {0} created successfully" msgstr "" @@ -34945,7 +35027,7 @@ msgstr "" msgid "Packed Items" msgstr "" -#: erpnext/controllers/stock_controller.py:1563 +#: erpnext/controllers/stock_controller.py:1610 msgid "Packed Items cannot be transferred internally" msgstr "" @@ -35093,7 +35175,7 @@ msgid "Paid To Account Type" msgstr "" #: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:334 -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1191 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1198 msgid "Paid amount + Write Off Amount can not be greater than Grand Total" msgstr "" @@ -35314,7 +35396,7 @@ msgstr "" msgid "Partial Material Transferred" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1214 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1221 msgid "Partial Payment in POS Transactions are not allowed." msgstr "" @@ -35408,6 +35490,11 @@ msgstr "" msgid "Partially Reserved" msgstr "" +#. Option for the 'Status' (Select) field in DocType 'Job Card' +#: erpnext/manufacturing/doctype/job_card/job_card.json +msgid "Partially Transferred" +msgstr "" + #. Option for the 'Status' (Select) field in DocType 'Stock Reservation Entry' #: erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.json msgid "Partially Used" @@ -35859,7 +35946,7 @@ msgstr "" msgid "Pause" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.js:664 +#: erpnext/manufacturing/doctype/job_card/job_card.js:662 msgid "Pause Job" msgstr "" @@ -36307,7 +36394,7 @@ msgstr "" #. Name of a DocType #. Label of a Workspace Sidebar Item #: erpnext/accounts/doctype/accounts_settings/accounts_settings.json -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1710 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1719 #: erpnext/accounts/doctype/payment_entry_reference/payment_entry_reference.json #: erpnext/accounts/doctype/payment_order/payment_order.js:19 #: erpnext/accounts/doctype/payment_order/payment_order.json @@ -36382,7 +36469,7 @@ msgstr "" msgid "Payment Schedule based Payment Requests cannot be created because a Payment Entry already exists for this document." msgstr "" -#: erpnext/public/js/controllers/transaction.js:488 +#: erpnext/public/js/controllers/transaction.js:507 msgid "Payment Schedules" msgstr "" @@ -36404,7 +36491,7 @@ msgstr "" #: erpnext/accounts/report/accounts_receivable/accounts_receivable.py:1210 #: erpnext/accounts/report/gross_profit/gross_profit.py:449 #: erpnext/accounts/workspace/invoicing/invoicing.json -#: erpnext/public/js/controllers/transaction.js:503 +#: erpnext/public/js/controllers/transaction.js:522 #: erpnext/selling/report/payment_terms_status_for_sales_order/payment_terms_status_for_sales_order.py:30 #: erpnext/workspace_sidebar/accounts_setup.json msgid "Payment Term" @@ -36457,6 +36544,8 @@ msgstr "" #. Invoice' #. Label of the payment_terms_template (Link) field in DocType 'Sales Invoice' #. Label of the payment_terms_template (Link) field in DocType 'Purchase Order' +#. Label of the payment_terms (Link) field in DocType 'Supplier' +#. Label of the payment_terms (Link) field in DocType 'Customer' #. Label of the payment_terms_template (Link) field in DocType 'Quotation' #. Label of the payment_terms_template (Link) field in DocType 'Sales Order' #: erpnext/accounts/doctype/payment_terms_template/payment_terms_template.json @@ -36471,6 +36560,8 @@ msgstr "" #: erpnext/accounts/report/customer_ledger_summary/customer_ledger_summary.js:62 #: erpnext/accounts/report/supplier_ledger_summary/supplier_ledger_summary.js:61 #: erpnext/buying/doctype/purchase_order/purchase_order.json +#: erpnext/buying/doctype/supplier/supplier.json +#: erpnext/selling/doctype/customer/customer.json #: erpnext/selling/doctype/quotation/quotation.json #: erpnext/selling/doctype/sales_order/sales_order.json msgid "Payment Terms Template" @@ -36524,7 +36615,7 @@ msgstr "" msgid "Payment methods are mandatory. Please add at least one payment method." msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:3091 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:3098 msgid "Payment methods refreshed. Please review before proceeding." msgstr "" @@ -36663,7 +36754,7 @@ msgstr "" #: erpnext/buying/report/subcontracted_item_to_be_received/subcontracted_item_to_be_received.py:55 #: erpnext/buying/report/subcontracted_raw_materials_to_be_transferred/subcontracted_raw_materials_to_be_transferred.py:45 -#: erpnext/manufacturing/doctype/job_card/job_card.js:273 +#: erpnext/manufacturing/doctype/job_card/job_card.js:272 msgid "Pending Quantity" msgstr "" @@ -36703,11 +36794,11 @@ msgstr "" msgid "Pending processing" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1503 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1521 msgid "Pending quantity cannot be greater than the for quantity." msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1497 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1515 msgid "Pending quantity cannot be negative." msgstr "" @@ -36763,6 +36854,11 @@ msgstr "" msgid "Per Year" msgstr "" +#. Label of the accounts (Table) field in DocType 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "Per-Company Accounts" +msgstr "" + #. Description of the 'PDF Tables' (JSON) field in DocType 'Bank Statement #. Import Log' #: erpnext/accounts/doctype/bank_statement_import_log/bank_statement_import_log.json @@ -37421,11 +37517,11 @@ msgstr "" msgid "Please Set Priority" msgstr "" -#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:171 +#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:182 msgid "Please Set Supplier Group in Buying Settings." msgstr "" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1910 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1919 msgid "Please Specify Account" msgstr "" @@ -37433,7 +37529,7 @@ msgstr "" msgid "Please add 'Supplier' role to user {0}." msgstr "" -#: erpnext/selling/page/point_of_sale/pos_controller.js:101 +#: erpnext/selling/page/point_of_sale/pos_controller.js:92 msgid "Please add Mode of payments and opening balance details." msgstr "" @@ -37449,7 +37545,7 @@ msgstr "" msgid "Please add Root Account for - {0}" msgstr "" -#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:320 +#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:332 msgid "Please add a Temporary Opening account in Chart of Accounts" msgstr "" @@ -37457,14 +37553,14 @@ msgstr "" msgid "Please add an account for the Bank Entry rule." msgstr "" -#: erpnext/public/js/utils/naming_series.js:170 -msgid "Please add at least one naming series." -msgstr "" - #: erpnext/public/js/utils/serial_no_batch_selector.js:662 msgid "Please add atleast one Serial No / Batch No" msgstr "" +#: erpnext/crm/doctype/crm_settings/crm_settings.py:51 +msgid "Please add atleast one user on Allowed Users to allow Data Synchronization from Frappe CRM site." +msgstr "" + #: erpnext/accounts/doctype/bank_statement_import/bank_statement_import.py:85 msgid "Please add the Bank Account column" msgstr "" @@ -37481,7 +37577,7 @@ msgstr "" msgid "Please add {1} role to user {0}." msgstr "" -#: erpnext/controllers/stock_controller.py:1740 +#: erpnext/controllers/stock_controller.py:1787 msgid "Please adjust the qty or edit {0} to proceed." msgstr "" @@ -37489,7 +37585,7 @@ msgstr "" msgid "Please attach CSV file" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:3237 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:3244 msgid "Please cancel and amend the Payment Entry" msgstr "" @@ -37523,7 +37619,7 @@ msgstr "" msgid "Please check the 'Activate Serial and Batch No for Item' checkbox in the {0} to make Serial and Batch Bundle for the item." msgstr "" -#: erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py:582 +#: erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py:585 msgid "Please check the error message and take necessary actions to fix the error and then restart the reposting again." msgstr "" @@ -37556,7 +37652,7 @@ msgstr "" msgid "Please configure accounts for the Bank Entry rule." msgstr "" -#: erpnext/selling/doctype/customer/customer.py:634 +#: erpnext/selling/doctype/customer/customer.py:635 msgid "Please contact any of the following users to extend the credit limits for {0}: {1}" msgstr "" @@ -37564,7 +37660,7 @@ msgstr "" msgid "Please contact any of the following users to {} this transaction." msgstr "" -#: erpnext/selling/doctype/customer/customer.py:627 +#: erpnext/selling/doctype/customer/customer.py:628 msgid "Please contact your administrator to extend the credit limits for {0}." msgstr "" @@ -37640,20 +37736,20 @@ msgstr "" msgid "Please ensure that the {0} account {1} is a Payable account. You can change the account type to Payable or select a different account." msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1054 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1061 msgid "Please ensure {} account is a Balance Sheet account." msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1064 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1071 msgid "Please ensure {} account {} is a Receivable account." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:859 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:862 msgid "Please enter Difference Account or set default Stock Adjustment Account for company {0}" msgstr "" #: erpnext/accounts/doctype/pos_invoice/pos_invoice.py:555 -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1326 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1333 msgid "Please enter Account for Change Amount" msgstr "" @@ -37661,11 +37757,11 @@ msgstr "" msgid "Please enter Approving Role or Approving User" msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:683 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:686 msgid "Please enter Batch No" msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:960 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:963 msgid "Please enter Cost Center" msgstr "" @@ -37677,7 +37773,7 @@ msgstr "" msgid "Please enter Employee Id of this sales person" msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:969 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:972 msgid "Please enter Expense Account" msgstr "" @@ -37686,7 +37782,7 @@ msgstr "" msgid "Please enter Item Code to get Batch Number" msgstr "" -#: erpnext/public/js/controllers/transaction.js:3020 +#: erpnext/public/js/controllers/transaction.js:3034 msgid "Please enter Item Code to get batch no" msgstr "" @@ -37722,7 +37818,7 @@ msgstr "" msgid "Please enter Root Type for account- {0}" msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:685 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:688 msgid "Please enter Serial No" msgstr "" @@ -37739,7 +37835,7 @@ msgid "Please enter Warehouse and Date" msgstr "" #: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:660 -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1322 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1329 msgid "Please enter Write Off Account" msgstr "" @@ -37807,7 +37903,7 @@ msgstr "" msgid "Please enter the phone number first" msgstr "" -#: erpnext/controllers/buying_controller.py:1185 +#: erpnext/controllers/buying_controller.py:1248 msgid "Please enter the {schedule_date}." msgstr "" @@ -37921,8 +38017,8 @@ msgstr "" msgid "Please select Template Type to download template" msgstr "" -#: erpnext/controllers/taxes_and_totals.py:859 -#: erpnext/public/js/controllers/taxes_and_totals.js:822 +#: erpnext/controllers/taxes_and_totals.py:862 +#: erpnext/public/js/controllers/taxes_and_totals.js:825 msgid "Please select Apply Discount On" msgstr "" @@ -37934,7 +38030,7 @@ msgstr "" msgid "Please select BOM for Item in Row {0}" msgstr "" -#: erpnext/controllers/buying_controller.py:649 +#: erpnext/controllers/buying_controller.py:712 msgid "Please select BOM in BOM field for Item {item_code}." msgstr "" @@ -37946,9 +38042,9 @@ msgstr "" msgid "Please select Category first" msgstr "" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1492 -#: erpnext/public/js/controllers/accounts.js:94 -#: erpnext/public/js/controllers/accounts.js:145 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1501 +#: erpnext/public/js/controllers/accounts.js:91 +#: erpnext/public/js/controllers/accounts.js:142 msgid "Please select Charge Type first" msgstr "" @@ -38038,7 +38134,7 @@ msgstr "" msgid "Please select Stock Asset Account" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1904 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1962 msgid "Please select Subcontracting Order instead of Purchase Order {0}" msgstr "" @@ -38058,8 +38154,8 @@ msgstr "" #: erpnext/accounts/doctype/payment_entry/payment_entry.js:268 #: erpnext/manufacturing/doctype/bom/bom.js:730 #: erpnext/manufacturing/doctype/bom/bom.py:279 -#: erpnext/public/js/controllers/accounts.js:277 -#: erpnext/public/js/controllers/transaction.js:3319 +#: erpnext/public/js/controllers/accounts.js:274 +#: erpnext/public/js/controllers/transaction.js:3333 msgid "Please select a Company first." msgstr "" @@ -38083,7 +38179,7 @@ msgstr "" msgid "Please select a Warehouse" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1655 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1673 msgid "Please select a Work Order first." msgstr "" @@ -38140,10 +38236,6 @@ msgstr "" msgid "Please select a supplier for fetching payments." msgstr "" -#: erpnext/public/js/utils/naming_series.js:165 -msgid "Please select a transaction." -msgstr "" - #: erpnext/subcontracting/doctype/subcontracting_order/subcontracting_order.py:142 msgid "Please select a valid Purchase Order that has Service Items." msgstr "" @@ -38180,7 +38272,7 @@ msgstr "" msgid "Please select at least one row with difference value" msgstr "" -#: erpnext/public/js/controllers/transaction.js:531 +#: erpnext/public/js/controllers/transaction.js:550 msgid "Please select at least one schedule." msgstr "" @@ -38275,12 +38367,12 @@ msgstr "" msgid "Please select weekly off day" msgstr "" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1210 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1219 #: erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py:616 msgid "Please select {0} first" msgstr "" -#: erpnext/public/js/controllers/transaction.js:103 +#: erpnext/public/js/controllers/transaction.js:122 msgid "Please set 'Apply Additional Discount On'" msgstr "" @@ -38300,7 +38392,7 @@ msgstr "" msgid "Please set Account" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1922 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1929 msgid "Please set Account for Change Amount" msgstr "" @@ -38415,7 +38507,7 @@ msgstr "" msgid "Please set an Address on the Company '%s'" msgstr "" -#: erpnext/controllers/stock_controller.py:914 +#: erpnext/controllers/stock_controller.py:917 msgid "Please set an Expense Account in the Items table" msgstr "" @@ -38431,19 +38523,19 @@ msgstr "" msgid "Please set both the Tax ID and Fiscal Code on Company {0}" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2468 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2475 msgid "Please set default Cash or Bank account in Mode of Payment {0}" msgstr "" #: erpnext/accounts/doctype/pos_opening_entry/pos_opening_entry.py:94 #: erpnext/accounts/doctype/pos_profile/pos_profile.py:197 -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:3084 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:3091 msgid "Please set default Cash or Bank account in Mode of Payment {}" msgstr "" #: erpnext/accounts/doctype/pos_opening_entry/pos_opening_entry.py:96 #: erpnext/accounts/doctype/pos_profile/pos_profile.py:199 -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:3086 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:3093 msgid "Please set default Cash or Bank account in Mode of Payments {}" msgstr "" @@ -38459,11 +38551,11 @@ msgstr "" msgid "Please set default UOM in Stock Settings" msgstr "" -#: erpnext/controllers/stock_controller.py:773 +#: erpnext/controllers/stock_controller.py:776 msgid "Please set default cost of goods sold account in company {0} for booking rounding gain and loss during stock transfer" msgstr "" -#: erpnext/controllers/stock_controller.py:228 +#: erpnext/controllers/stock_controller.py:231 msgid "Please set default inventory account for item {0}, or their item group or brand." msgstr "" @@ -38484,7 +38576,7 @@ msgstr "" msgid "Please set opening number of booked depreciations" msgstr "" -#: erpnext/public/js/controllers/transaction.js:2687 +#: erpnext/public/js/controllers/transaction.js:2701 msgid "Please set recurring after saving" msgstr "" @@ -38492,7 +38584,7 @@ msgstr "" msgid "Please set the Customer Address" msgstr "" -#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:187 +#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:198 msgid "Please set the Default Cost Center in {0} company." msgstr "" @@ -38500,11 +38592,11 @@ msgstr "" msgid "Please set the Item Code first" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1718 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1736 msgid "Please set the Target Warehouse in the Job Card" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1722 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1740 msgid "Please set the WIP Warehouse in the Job Card" msgstr "" @@ -38566,7 +38658,7 @@ msgid "Please specify Company to proceed" msgstr "" #: erpnext/controllers/accounts_controller.py:3207 -#: erpnext/public/js/controllers/accounts.js:117 +#: erpnext/public/js/controllers/accounts.js:114 msgid "Please specify a valid Row ID for row {0} in table {1}" msgstr "" @@ -38578,7 +38670,7 @@ msgstr "" msgid "Please specify at least one attribute in the Attributes table" msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:623 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:626 msgid "Please specify either Quantity or Valuation Rate or both" msgstr "" @@ -38749,7 +38841,7 @@ msgstr "" #: erpnext/accounts/doctype/journal_entry/journal_entry.json #: erpnext/accounts/doctype/loyalty_point_entry/loyalty_point_entry.json #: erpnext/accounts/doctype/opening_invoice_creation_tool_item/opening_invoice_creation_tool_item.json -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:874 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:883 #: erpnext/accounts/doctype/payment_entry/payment_entry.json #: erpnext/accounts/doctype/payment_ledger_entry/payment_ledger_entry.json #: erpnext/accounts/doctype/payment_order/payment_order.json @@ -38826,7 +38918,7 @@ msgstr "" msgid "Posting Date inheritance for exchange gain / loss" msgstr "" -#: erpnext/public/js/controllers/transaction.js:1112 +#: erpnext/public/js/controllers/transaction.js:1131 msgid "Posting Date will change to today's date as Edit Posting Date and Time is unchecked. Are you sure want to proceed?" msgstr "" @@ -38889,7 +38981,7 @@ msgstr "" msgid "Posting Time" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:2789 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2847 msgid "Posting date and posting time is mandatory" msgstr "" @@ -38966,6 +39058,11 @@ msgstr "" msgid "Pre Sales" msgstr "" +#. Description of the 'Company Bank Account' (Link) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Pre-filled on payment entries for this customer. Must be a company account." +msgstr "" + #: erpnext/setup/setup_wizard/operations/install_fixtures.py:307 msgid "Preference" msgstr "" @@ -39139,6 +39236,7 @@ msgstr "" #. Option for the 'Rate Of Materials Based On' (Select) field in DocType 'BOM #. Creator' #. Label of the buying_price_list (Link) field in DocType 'BOM Creator' +#. Label of the default_price_list (Link) field in DocType 'Customer' #. Label of the selling_price_list (Link) field in DocType 'Quotation' #. Label of the selling_price_list (Link) field in DocType 'Sales Order' #. Label of a Link in the Selling Workspace @@ -39162,6 +39260,7 @@ msgstr "" #: erpnext/buying/workspace/buying/buying.json #: erpnext/manufacturing/doctype/bom/bom.json #: erpnext/manufacturing/doctype/bom_creator/bom_creator.json +#: erpnext/selling/doctype/customer/customer.json #: erpnext/selling/doctype/quotation/quotation.json #: erpnext/selling/doctype/sales_order/sales_order.json #: erpnext/selling/report/customer_wise_item_price/customer_wise_item_price.py:44 @@ -39335,7 +39434,7 @@ msgstr "" msgid "Price Per Unit ({0})" msgstr "" -#: erpnext/selling/page/point_of_sale/pos_controller.js:696 +#: erpnext/selling/page/point_of_sale/pos_controller.js:687 msgid "Price is not set for the item." msgstr "" @@ -39512,6 +39611,11 @@ msgstr "" msgid "Primary Address Details" msgstr "" +#. Label of the primary_address (Text Editor) field in DocType 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "Primary Address Preview" +msgstr "" + #. Label of the primary_address_and_contact_detail_section (Section Break) #. field in DocType 'Supplier' #. Label of the primary_address_and_contact_detail (Section Break) field in @@ -39750,7 +39854,7 @@ msgstr "" msgid "Process Loss Qty" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.js:289 +#: erpnext/manufacturing/doctype/job_card/job_card.js:288 msgid "Process Loss Quantity" msgstr "" @@ -39831,7 +39935,7 @@ msgstr "" msgid "Process in Single Transaction" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1500 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1518 msgid "Process loss quantity cannot be negative." msgstr "" @@ -39945,7 +40049,7 @@ msgstr "" msgid "Product Bundle Balance" msgstr "" -#: erpnext/stock/report/item_where_used/item_where_used.py:278 +#: erpnext/stock/report/item_where_used/item_where_used.py:274 msgid "Product Bundle Component" msgstr "" @@ -39970,7 +40074,7 @@ msgstr "" msgid "Product Bundle Item" msgstr "" -#: erpnext/stock/report/item_where_used/item_where_used.py:305 +#: erpnext/stock/report/item_where_used/item_where_used.py:303 msgid "Product Bundle Parent" msgstr "" @@ -40539,7 +40643,7 @@ msgid "Prospects Engaged But Not Converted" msgstr "" #: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:198 -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:786 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:797 msgid "Protected DocType" msgstr "" @@ -40795,7 +40899,7 @@ msgstr "" msgid "Purchase Invoice {0} is already submitted" msgstr "" -#: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1970 +#: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1973 msgid "Purchase Invoices" msgstr "" @@ -40836,7 +40940,7 @@ msgstr "" #: erpnext/buying/report/purchase_order_analysis/purchase_order_analysis.js:48 #: erpnext/buying/report/purchase_order_analysis/purchase_order_analysis.py:203 #: erpnext/buying/workspace/buying/buying.json -#: erpnext/controllers/buying_controller.py:918 +#: erpnext/controllers/buying_controller.py:981 #: erpnext/crm/doctype/contract/contract.json #: erpnext/manufacturing/doctype/blanket_order/blanket_order.js:54 #: erpnext/manufacturing/doctype/production_plan_sub_assembly_item/production_plan_sub_assembly_item.json @@ -40911,7 +41015,7 @@ msgstr "" msgid "Purchase Order Item Supplied" msgstr "" -#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:1014 +#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:1020 msgid "Purchase Order Item reference is missing in Subcontracting Receipt {0}" msgstr "" @@ -41102,7 +41206,7 @@ msgstr "" msgid "Purchase Receipt doesn't have any Item for which Retain Sample is enabled." msgstr "" -#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:1090 +#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:1096 msgid "Purchase Receipt {0} created." msgstr "" @@ -41232,7 +41336,7 @@ msgstr "" msgid "Purpose" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:676 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:679 msgid "Purpose must be one of {0}" msgstr "" @@ -41258,6 +41362,12 @@ msgstr "" msgid "Putaway Rule already exists for Item {0} in Warehouse {1}." msgstr "" +#. Description of the 'Mandatory Depends On (Backend)' (Small Text) field in +#. DocType 'Inventory Dimension' +#: erpnext/stock/doctype/inventory_dimension/inventory_dimension.json +msgid "Python expression evaluated on the server. Use doc.fieldname for the row and parent.fieldname for the parent document. When it evaluates to true the dimension becomes mandatory. Example: doc.t_warehouse and doc.qty > 0" +msgstr "" + #: banking/src/components/features/BankReconciliation/BankRecDateFilter.tsx:41 msgid "Q1" msgstr "" @@ -41331,7 +41441,7 @@ msgstr "" #: erpnext/public/js/bom_configurator/bom_configurator.bundle.js:398 #: erpnext/public/js/bom_configurator/bom_configurator.bundle.js:499 #: erpnext/public/js/stock_reservation.js:134 -#: erpnext/public/js/stock_reservation.js:336 erpnext/public/js/utils.js:870 +#: erpnext/public/js/stock_reservation.js:336 erpnext/public/js/utils.js:887 #: erpnext/selling/doctype/delivery_schedule_item/delivery_schedule_item.json #: erpnext/selling/doctype/product_bundle_item/product_bundle_item.json #: erpnext/selling/doctype/sales_order/sales_order.js:398 @@ -41350,7 +41460,7 @@ msgstr "" #: erpnext/stock/doctype/stock_entry_detail/stock_entry_detail.json #: erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.json #: erpnext/stock/report/incorrect_serial_no_valuation/incorrect_serial_no_valuation.py:195 -#: erpnext/stock/report/item_where_used/item_where_used.py:69 +#: erpnext/stock/report/item_where_used/item_where_used.py:63 #: erpnext/stock/report/serial_no_ledger/serial_no_ledger.py:74 #: erpnext/subcontracting/doctype/subcontracting_order/subcontracting_order.js:271 #: erpnext/subcontracting/doctype/subcontracting_order/subcontracting_order.js:370 @@ -41456,7 +41566,7 @@ msgstr "" msgid "Qty To Manufacture ({0}) cannot be a fraction for the UOM {2}. To allow this, disable '{1}' in the UOM {2}." msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:260 +#: erpnext/manufacturing/doctype/job_card/job_card.py:261 msgid "Qty To Manufacture in the job card cannot be greater than Qty To Manufacture in the work order for the operation {0}.

Solution: Either you can reduce the Qty To Manufacture in the job card or set the 'Overproduction Percentage For Work Order' in the {1}." msgstr "" @@ -41563,8 +41673,8 @@ msgstr "" msgid "Qty to Fetch" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.js:247 -#: erpnext/manufacturing/doctype/job_card/job_card.py:905 +#: erpnext/manufacturing/doctype/job_card/job_card.js:246 +#: erpnext/manufacturing/doctype/job_card/job_card.py:906 msgid "Qty to Manufacture" msgstr "" @@ -41733,7 +41843,7 @@ msgstr "" msgid "Quality Inspection Analysis" msgstr "" -#: erpnext/public/js/controllers/transaction.js:2950 +#: erpnext/public/js/controllers/transaction.js:2964 msgid "Quality Inspection Not Configured" msgstr "" @@ -41798,21 +41908,21 @@ msgstr "" msgid "Quality Inspection Template Name" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:799 +#: erpnext/manufacturing/doctype/job_card/job_card.py:800 msgid "Quality Inspection is required for the item {0} before completing the job card {1}" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:810 -#: erpnext/manufacturing/doctype/job_card/job_card.py:819 +#: erpnext/manufacturing/doctype/job_card/job_card.py:811 +#: erpnext/manufacturing/doctype/job_card/job_card.py:820 msgid "Quality Inspection {0} is not submitted for the item: {1}" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:829 -#: erpnext/manufacturing/doctype/job_card/job_card.py:838 +#: erpnext/manufacturing/doctype/job_card/job_card.py:830 +#: erpnext/manufacturing/doctype/job_card/job_card.py:839 msgid "Quality Inspection {0} is rejected for the item: {1}" msgstr "" -#: erpnext/public/js/controllers/transaction.js:384 +#: erpnext/public/js/controllers/transaction.js:403 #: erpnext/stock/doctype/stock_entry/stock_entry.js:208 msgid "Quality Inspection(s)" msgstr "" @@ -42109,8 +42219,8 @@ msgid "Quantity required for Item {0} in row {1}" msgstr "" #: erpnext/manufacturing/doctype/bom/bom.py:717 -#: erpnext/manufacturing/doctype/job_card/job_card.js:342 -#: erpnext/manufacturing/doctype/job_card/job_card.js:410 +#: erpnext/manufacturing/doctype/job_card/job_card.js:341 +#: erpnext/manufacturing/doctype/job_card/job_card.js:409 #: erpnext/manufacturing/doctype/workstation/workstation.js:303 msgid "Quantity should be greater than 0" msgstr "" @@ -42119,7 +42229,7 @@ msgstr "" msgid "Quantity to Manufacture" msgstr "" -#: erpnext/manufacturing/doctype/work_order/work_order.py:2798 +#: erpnext/manufacturing/doctype/work_order/work_order.py:2830 msgid "Quantity to Manufacture can not be zero for the operation {0}" msgstr "" @@ -42156,7 +42266,7 @@ msgstr "" msgid "Query Route String" msgstr "" -#: erpnext/accounts/doctype/accounts_settings/accounts_settings.py:191 +#: erpnext/accounts/doctype/accounts_settings/accounts_settings.py:192 msgid "Queue Size should be between 5 and 100" msgstr "" @@ -42398,7 +42508,7 @@ msgstr "" #: erpnext/manufacturing/doctype/bom_secondary_item/bom_secondary_item.json #: erpnext/manufacturing/doctype/work_order_additional_item/work_order_additional_item.json #: erpnext/manufacturing/doctype/work_order_item/work_order_item.json -#: erpnext/public/js/utils.js:880 +#: erpnext/public/js/utils.js:897 #: erpnext/selling/doctype/product_bundle_item/product_bundle_item.json #: erpnext/selling/doctype/quotation_item/quotation_item.json #: erpnext/selling/doctype/sales_order_item/sales_order_item.json @@ -42750,7 +42860,7 @@ msgstr "" msgid "Raw Materials Consumption" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:417 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:420 msgid "Raw Materials Missing" msgstr "" @@ -43149,8 +43259,8 @@ msgstr "" msgid "Receiving" msgstr "" -#: erpnext/selling/page/point_of_sale/pos_controller.js:260 -#: erpnext/selling/page/point_of_sale/pos_controller.js:270 +#: erpnext/selling/page/point_of_sale/pos_controller.js:251 +#: erpnext/selling/page/point_of_sale/pos_controller.js:261 #: erpnext/selling/page/point_of_sale/pos_past_order_list.js:19 msgid "Recent Orders" msgstr "" @@ -43456,7 +43566,7 @@ msgstr "" msgid "Reference #{0} dated {1}" msgstr "" -#: erpnext/public/js/controllers/transaction.js:2800 +#: erpnext/public/js/controllers/transaction.js:2814 msgid "Reference Date for Early Payment Discount" msgstr "" @@ -43682,7 +43792,7 @@ msgstr "" msgid "Regular" msgstr "" -#: erpnext/stock/doctype/inventory_dimension/inventory_dimension.py:212 +#: erpnext/stock/doctype/inventory_dimension/inventory_dimension.py:199 msgid "Rejected " msgstr "" @@ -43889,7 +43999,7 @@ msgstr "" msgid "Remove item if charges is not applicable to that item" msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:566 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:569 msgid "Removed items with no change in quantity or value." msgstr "" @@ -44124,7 +44234,7 @@ msgstr "" msgid "Repost Item Valuation" msgstr "" -#: erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py:374 +#: erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py:377 msgid "Repost Item Valuation restarted for selected failed records." msgstr "" @@ -44254,7 +44364,7 @@ msgstr "" msgid "Reqd Qty (BOM)" msgstr "" -#: erpnext/public/js/utils.js:896 +#: erpnext/public/js/utils.js:913 msgid "Reqd by date" msgstr "" @@ -44490,8 +44600,7 @@ msgstr "" msgid "Researcher" msgstr "" -#. Description of the 'Supplier Primary Address' (Link) field in DocType -#. 'Supplier' +#. Description of the 'Primary Address' (Link) field in DocType 'Supplier' #. Description of the 'Customer Primary Address' (Link) field in DocType #. 'Customer' #: erpnext/buying/doctype/supplier/supplier.json @@ -44499,8 +44608,7 @@ msgstr "" msgid "Reselect, if the chosen address is edited after save" msgstr "" -#. Description of the 'Supplier Primary Contact' (Link) field in DocType -#. 'Supplier' +#. Description of the 'Primary Contact' (Link) field in DocType 'Supplier' #. Description of the 'Customer Primary Contact' (Link) field in DocType #. 'Customer' #: erpnext/buying/doctype/supplier/supplier.json @@ -44572,7 +44680,7 @@ msgstr "" msgid "Reserved" msgstr "" -#: erpnext/controllers/stock_controller.py:1321 +#: erpnext/controllers/stock_controller.py:1368 msgid "Reserved Batch Conflict" msgstr "" @@ -44642,7 +44750,7 @@ msgstr "" msgid "Reserved Quantity for Production" msgstr "" -#: erpnext/stock/stock_ledger.py:2307 +#: erpnext/stock/stock_ledger.py:2296 msgid "Reserved Serial No." msgstr "" @@ -44658,13 +44766,13 @@ msgstr "" #: erpnext/stock/doctype/pick_list/pick_list.js:178 #: erpnext/stock/report/reserved_stock/reserved_stock.json #: erpnext/stock/report/stock_balance/stock_balance.py:569 -#: erpnext/stock/stock_ledger.py:2291 +#: erpnext/stock/stock_ledger.py:2280 #: erpnext/subcontracting/doctype/subcontracting_order/subcontracting_order.js:205 #: erpnext/subcontracting/doctype/subcontracting_order/subcontracting_order.js:333 msgid "Reserved Stock" msgstr "" -#: erpnext/stock/stock_ledger.py:2336 +#: erpnext/stock/stock_ledger.py:2325 msgid "Reserved Stock for Batch" msgstr "" @@ -44676,7 +44784,7 @@ msgstr "" msgid "Reserved Stock for Sub-assembly" msgstr "" -#: erpnext/controllers/buying_controller.py:658 +#: erpnext/controllers/buying_controller.py:721 msgid "Reserved Warehouse is mandatory for the Item {item_code} in Raw Materials supplied." msgstr "" @@ -44934,7 +45042,7 @@ msgstr "" msgid "Resume" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.js:663 +#: erpnext/manufacturing/doctype/job_card/job_card.js:661 msgid "Resume Job" msgstr "" @@ -45071,7 +45179,7 @@ msgstr "" msgid "Return Raw Material to Customer" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1565 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1572 msgid "Return invoice of asset cancelled" msgstr "" @@ -45564,8 +45672,8 @@ msgstr "" msgid "Rounding Loss Allowance should be between 0 and 1" msgstr "" -#: erpnext/controllers/stock_controller.py:785 -#: erpnext/controllers/stock_controller.py:800 +#: erpnext/controllers/stock_controller.py:788 +#: erpnext/controllers/stock_controller.py:803 msgid "Rounding gain/loss Entry for Stock Transfer" msgstr "" @@ -45592,11 +45700,11 @@ msgstr "" msgid "Row # {0}: Cannot return more than {1} for Item {2}" msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:188 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:191 msgid "Row # {0}: Please add Serial and Batch Bundle for Item {1}" msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:207 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:210 msgid "Row # {0}: Please enter quantity for Item {1} as it is not zero." msgstr "" @@ -45613,12 +45721,12 @@ msgid "Row #1: Sequence ID must be 1 for Operation {0}." msgstr "" #: erpnext/accounts/doctype/pos_invoice/pos_invoice.py:564 -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2123 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2130 msgid "Row #{0} (Payment Table): Amount must be negative" msgstr "" #: erpnext/accounts/doctype/pos_invoice/pos_invoice.py:562 -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2118 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2125 msgid "Row #{0} (Payment Table): Amount must be positive" msgstr "" @@ -45635,11 +45743,11 @@ msgid "Row #{0}: Acceptance Criteria Formula is required." msgstr "" #: erpnext/controllers/subcontracting_controller.py:126 -#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:599 +#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:605 msgid "Row #{0}: Accepted Warehouse and Rejected Warehouse cannot be same" msgstr "" -#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:592 +#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:598 msgid "Row #{0}: Accepted Warehouse is mandatory for the accepted Item {1}" msgstr "" @@ -45660,7 +45768,7 @@ msgstr "" msgid "Row #{0}: Allocated amount:{1} is greater than outstanding amount:{2} for Payment Term {3}" msgstr "" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:276 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:279 msgid "Row #{0}: Amount must be a positive number" msgstr "" @@ -45732,31 +45840,35 @@ msgstr "" msgid "Row #{0}: Cannot set Rate if the billed amount is greater than the amount for Item {1}." msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1148 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1149 msgid "Row #{0}: Cannot transfer more than Required Qty {1} for Item {2} against Job Card {3}" msgstr "" +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1315 +msgid "Row #{0}: Cannot transfer {1} {2} of Item {3}. Maximum transferable quantity is {4} {2}." +msgstr "" + #: erpnext/selling/doctype/product_bundle/product_bundle.py:87 msgid "Row #{0}: Child Item should not be a Product Bundle. Please remove Item {1} and Save" msgstr "" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:251 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:254 msgid "Row #{0}: Consumed Asset {1} cannot be Draft" msgstr "" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:254 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:257 msgid "Row #{0}: Consumed Asset {1} cannot be cancelled" msgstr "" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:236 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:239 msgid "Row #{0}: Consumed Asset {1} cannot be the same as the Target Asset" msgstr "" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:245 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:248 msgid "Row #{0}: Consumed Asset {1} cannot be {2}" msgstr "" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:259 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:262 msgid "Row #{0}: Consumed Asset {1} does not belong to company {2}" msgstr "" @@ -45827,7 +45939,7 @@ msgstr "" msgid "Row #{0}: Expected Delivery Date cannot be before Purchase Order Date" msgstr "" -#: erpnext/controllers/stock_controller.py:916 +#: erpnext/controllers/stock_controller.py:919 msgid "Row #{0}: Expense Account not set for the Item {1}. {2}" msgstr "" @@ -45854,11 +45966,11 @@ msgstr "" msgid "Row #{0}: Finished Good Item {1} must be a sub-contracted item" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:632 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:635 msgid "Row #{0}: Finished Good must be {1}" msgstr "" -#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:580 +#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:586 msgid "Row #{0}: Finished Good reference is mandatory for Secondary Item {1}." msgstr "" @@ -45883,7 +45995,7 @@ msgstr "" msgid "Row #{0}: From Date cannot be before To Date" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:893 +#: erpnext/manufacturing/doctype/job_card/job_card.py:894 msgid "Row #{0}: From Time and To Time fields are required" msgstr "" @@ -45891,7 +46003,7 @@ msgstr "" msgid "Row #{0}: Item added" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1835 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1893 msgid "Row #{0}: Item {1} cannot be transferred more than {2} against {3} {4}" msgstr "" @@ -45907,7 +46019,7 @@ msgstr "" msgid "Row #{0}: Item {1} has no stock in warehouse {2}." msgstr "" -#: erpnext/controllers/stock_controller.py:145 +#: erpnext/controllers/stock_controller.py:148 msgid "Row #{0}: Item {1} has zero rate but '{2}' is not enabled." msgstr "" @@ -45919,7 +46031,7 @@ msgstr "" msgid "Row #{0}: Item {1} is not a Customer Provided Item." msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:766 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:769 msgid "Row #{0}: Item {1} is not a Serialized/Batched Item. It cannot have a Serial No/Batch No against it." msgstr "" @@ -45928,15 +46040,15 @@ msgstr "" msgid "Row #{0}: Item {1} is not a part of Subcontracting Inward Order {2}" msgstr "" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:270 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:273 msgid "Row #{0}: Item {1} is not a service item" msgstr "" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:224 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:227 msgid "Row #{0}: Item {1} is not a stock item" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1080 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1083 msgid "Row #{0}: Item {1} is not part of the source manufacture entry and cannot be added to this disassembly." msgstr "" @@ -45948,7 +46060,7 @@ msgstr "" msgid "Row #{0}: Item {1} mismatch. Changing of item code is not permitted." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1089 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1092 msgid "Row #{0}: Item {1} quantity ({2} in stock UOM) does not match the quantity derived from the source ({3}). Do not change the UOM, conversion factor or quantity of disassembly rows." msgstr "" @@ -45976,7 +46088,7 @@ msgstr "" msgid "Row #{0}: Opening Accumulated Depreciation must be less than or equal to {1}" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1144 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1147 msgid "Row #{0}: Operation {1} is not completed for {2} qty of finished goods in Work Order {3}. Please update operation status via Job Card {4}." msgstr "" @@ -46018,8 +46130,8 @@ msgstr "" msgid "Row #{0}: Qty increased by {1}" msgstr "" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:227 -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:273 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:230 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:276 msgid "Row #{0}: Qty must be a positive number" msgstr "" @@ -46027,15 +46139,15 @@ msgstr "" msgid "Row #{0}: Qty should be less than or equal to Available Qty to Reserve (Actual Qty - Reserved Qty) {1} for Iem {2} against Batch {3} in Warehouse {4}." msgstr "" -#: erpnext/controllers/stock_controller.py:1458 +#: erpnext/controllers/stock_controller.py:1505 msgid "Row #{0}: Quality Inspection is required for Item {1}" msgstr "" -#: erpnext/controllers/stock_controller.py:1473 +#: erpnext/controllers/stock_controller.py:1520 msgid "Row #{0}: Quality Inspection {1} is not submitted for the item: {2}" msgstr "" -#: erpnext/controllers/stock_controller.py:1488 +#: erpnext/controllers/stock_controller.py:1535 msgid "Row #{0}: Quality Inspection {1} was rejected for item {2}" msgstr "" @@ -46062,15 +46174,15 @@ msgstr "" msgid "Row #{0}: Rate must be same as {1}: {2} ({3} / {4})" msgstr "" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1242 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1251 msgid "Row #{0}: Reference Document Type must be one of Purchase Order, Purchase Invoice or Journal Entry" msgstr "" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1228 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1237 msgid "Row #{0}: Reference Document Type must be one of Sales Order, Sales Invoice, Journal Entry or Dunning" msgstr "" -#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:573 +#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:579 msgid "Row #{0}: Rejected Qty cannot be set for Secondary Item {1}." msgstr "" @@ -46094,7 +46206,7 @@ msgstr "" msgid "Row #{0}: Returned quantity cannot be greater than available quantity to return for Item {1}" msgstr "" -#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:568 +#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:574 msgid "Row #{0}: Secondary Item Qty cannot be zero" msgstr "" @@ -46110,7 +46222,7 @@ msgstr "" msgid "Row #{0}: Sequence ID must be {1} or {2} for Operation {3}." msgstr "" -#: erpnext/controllers/stock_controller.py:300 +#: erpnext/controllers/stock_controller.py:303 msgid "Row #{0}: Serial No {1} does not belong to Batch {2}" msgstr "" @@ -46158,11 +46270,11 @@ msgstr "" msgid "Row #{0}: Source Warehouse {1} for item {2} must be same as Source Warehouse {3} in the Work Order." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1291 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1349 msgid "Row #{0}: Source and Target Warehouse cannot be the same for Material Transfer" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1313 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1371 msgid "Row #{0}: Source, Target Warehouse and Inventory Dimensions cannot be the exact same for Material Transfer" msgstr "" @@ -46207,7 +46319,7 @@ msgstr "" msgid "Row #{0}: Stock not available to reserve for the Item {1} in Warehouse {2}." msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1308 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1315 msgid "Row #{0}: Stock quantity {1} ({2}) for item {3} cannot exceed {4}" msgstr "" @@ -46215,7 +46327,7 @@ msgstr "" msgid "Row #{0}: Target Warehouse must be same as Customer Warehouse {1} from the linked Subcontracting Inward Order" msgstr "" -#: erpnext/controllers/stock_controller.py:313 +#: erpnext/controllers/stock_controller.py:316 msgid "Row #{0}: The batch {1} has already expired." msgstr "" @@ -46235,7 +46347,7 @@ msgstr "" msgid "Row #{0}: Total Number of Depreciations must be greater than zero" msgstr "" -#: erpnext/controllers/stock_controller.py:97 +#: erpnext/controllers/stock_controller.py:100 msgid "Row #{0}: Warehouse {1} does not match with the warehouse {2} in Serial and Batch Bundle {3}." msgstr "" @@ -46247,7 +46359,7 @@ msgstr "" msgid "Row #{0}: Work Order exists against full or partial quantity of Item {1}" msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:101 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:104 msgid "Row #{0}: You cannot use the inventory dimension '{1}' in Stock Reconciliation to modify the quantity or valuation rate. Stock reconciliation with inventory dimensions is intended solely for performing opening entries." msgstr "" @@ -46255,10 +46367,18 @@ msgstr "" msgid "Row #{0}: You must select an Asset for Item {1}." msgstr "" +#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:142 +msgid "Row #{0}: {1} account is not of type {2}" +msgstr "" + #: erpnext/public/js/controllers/buying.js:265 msgid "Row #{0}: {1} can not be negative for item {2}" msgstr "" +#: erpnext/controllers/stock_controller.py:1183 +msgid "Row #{0}: {1} is mandatory for the Inventory Dimension {2}." +msgstr "" + #: erpnext/stock/doctype/quality_inspection/quality_inspection.py:322 msgid "Row #{0}: {1} is not a valid reading field. Please refer to the field description." msgstr "" @@ -46283,23 +46403,23 @@ msgstr "" msgid "Row #{idx}: Cannot select Supplier Warehouse while suppling raw materials to subcontractor." msgstr "" -#: erpnext/controllers/buying_controller.py:589 +#: erpnext/controllers/buying_controller.py:652 msgid "Row #{idx}: Item rate has been updated as per valuation rate since its an internal stock transfer." msgstr "" -#: erpnext/controllers/buying_controller.py:1060 +#: erpnext/controllers/buying_controller.py:1123 msgid "Row #{idx}: Please enter a location for the asset item {item_code}." msgstr "" -#: erpnext/controllers/buying_controller.py:712 +#: erpnext/controllers/buying_controller.py:775 msgid "Row #{idx}: Received Qty must be equal to Accepted + Rejected Qty for Item {item_code}." msgstr "" -#: erpnext/controllers/buying_controller.py:725 +#: erpnext/controllers/buying_controller.py:788 msgid "Row #{idx}: {field_label} can not be negative for item {item_code}." msgstr "" -#: erpnext/controllers/buying_controller.py:678 +#: erpnext/controllers/buying_controller.py:741 msgid "Row #{idx}: {field_label} is mandatory." msgstr "" @@ -46307,7 +46427,7 @@ msgstr "" msgid "Row #{idx}: {from_warehouse_field} and {to_warehouse_field} cannot be same." msgstr "" -#: erpnext/controllers/buying_controller.py:1177 +#: erpnext/controllers/buying_controller.py:1240 msgid "Row #{idx}: {schedule_date} cannot be before {transaction_date}." msgstr "" @@ -46380,7 +46500,7 @@ msgstr "" msgid "Row No {0}: Warehouse is required. Please set a Default Warehouse for Item {1} and Company {2}" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:747 +#: erpnext/manufacturing/doctype/job_card/job_card.py:748 msgid "Row {0} : Operation is required against the raw material item {1}" msgstr "" @@ -46388,11 +46508,11 @@ msgstr "" msgid "Row {0} picked quantity is less than the required quantity, additional {1} {2} required." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1859 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1917 msgid "Row {0}# Item {1} not found in 'Raw Materials Supplied' table in {2} {3}" msgstr "" -#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:272 +#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:278 msgid "Row {0}: Accepted Qty and Rejected Qty can't be zero at the same time." msgstr "" @@ -46420,7 +46540,7 @@ msgstr "" msgid "Row {0}: Allocated amount {1} must be less than or equal to remaining payment amount {2}" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1520 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1578 msgid "Row {0}: As {1} is enabled, raw materials cannot be added to {2} entry. Use {3} entry to consume raw materials." msgstr "" @@ -46477,7 +46597,7 @@ msgid "Row {0}: Either Delivery Note Item or Packed Item reference is mandatory. msgstr "" #: erpnext/accounts/doctype/journal_entry/journal_entry.py:1026 -#: erpnext/controllers/taxes_and_totals.py:1391 +#: erpnext/controllers/taxes_and_totals.py:1377 msgid "Row {0}: Exchange Rate is mandatory" msgstr "" @@ -46513,16 +46633,16 @@ msgstr "" msgid "Row {0}: From Time and To Time is mandatory." msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:325 +#: erpnext/manufacturing/doctype/job_card/job_card.py:326 #: erpnext/projects/doctype/timesheet/timesheet.py:225 msgid "Row {0}: From Time and To Time of {1} is overlapping with {2}" msgstr "" -#: erpnext/controllers/stock_controller.py:1554 +#: erpnext/controllers/stock_controller.py:1601 msgid "Row {0}: From Warehouse is mandatory for internal transfers" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:316 +#: erpnext/manufacturing/doctype/job_card/job_card.py:317 msgid "Row {0}: From time must be less than to time" msgstr "" @@ -46534,7 +46654,7 @@ msgstr "" msgid "Row {0}: Invalid reference {1}" msgstr "" -#: erpnext/controllers/taxes_and_totals.py:134 +#: erpnext/controllers/taxes_and_totals.py:135 msgid "Row {0}: Item Tax template updated as per validity and rate applied" msgstr "" @@ -46630,7 +46750,7 @@ msgstr "" msgid "Row {0}: Qty cannot be greater than {1} for the Item {2}." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:723 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:726 msgid "Row {0}: Qty in Stock UOM can not be zero." msgstr "" @@ -46642,15 +46762,15 @@ msgstr "" msgid "Row {0}: Quantity cannot be negative." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1218 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1221 msgid "Row {0}: Quantity not available for {4} in warehouse {1} at posting time of the entry ({2} {3})" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:926 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:933 msgid "Row {0}: Sales Invoice {1} is already created for {2}" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:330 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:333 msgid "Row {0}: Serial/Batch has been reset to values linked with Work Order {1} because the previously selected serial/batch does not belong to this Work Order." msgstr "" @@ -46658,11 +46778,11 @@ msgstr "" msgid "Row {0}: Shift cannot be changed since the depreciation has already been processed" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1872 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1930 msgid "Row {0}: Subcontracted Item is mandatory for the raw material {1}" msgstr "" -#: erpnext/controllers/stock_controller.py:1545 +#: erpnext/controllers/stock_controller.py:1592 msgid "Row {0}: Target Warehouse is mandatory for internal transfers" msgstr "" @@ -46674,7 +46794,7 @@ msgstr "" msgid "Row {0}: The entire expense amount for account {1} in {2} has already been allocated." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:769 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:772 msgid "Row {0}: The item {1}, quantity must be positive number" msgstr "" @@ -46686,11 +46806,11 @@ msgstr "" msgid "Row {0}: To set {1} periodicity, difference between from and to date must be greater than or equal to {2}" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:3852 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:3910 msgid "Row {0}: Transferred quantity cannot be greater than the requested quantity." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:717 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:720 msgid "Row {0}: UOM Conversion Factor is mandatory" msgstr "" @@ -46739,11 +46859,11 @@ msgstr "" msgid "Row {0}: {2} Item {1} does not exist in {2} {3}" msgstr "" -#: erpnext/utilities/transaction_base.py:629 +#: erpnext/utilities/transaction_base.py:626 msgid "Row {1}: Quantity ({0}) cannot be a fraction. To allow this, disable '{2}' in UOM {3}." msgstr "" -#: erpnext/controllers/buying_controller.py:1042 +#: erpnext/controllers/buying_controller.py:1105 msgid "Row {idx}: Asset Naming Series is mandatory for the auto creation of assets for item {item_code}." msgstr "" @@ -46839,10 +46959,6 @@ msgstr "" msgid "Rules evaluation started" msgstr "" -#: erpnext/public/js/utils/naming_series.js:54 -msgid "Rules for configuring series" -msgstr "" - #: banking/src/components/features/BankReconciliation/Rules/RuleForm.tsx:189 msgid "Rules to match against the transaction description" msgstr "" @@ -46904,7 +47020,7 @@ msgstr "" msgid "SLA Paused On" msgstr "" -#: erpnext/public/js/utils.js:1260 +#: erpnext/public/js/utils.js:1277 msgid "SLA is on hold since {0}" msgstr "" @@ -47422,7 +47538,7 @@ msgstr "" msgid "Sales Order {0} is not available for production" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1438 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1445 msgid "Sales Order {0} is not submitted" msgstr "" @@ -47470,6 +47586,7 @@ msgstr "" #. Scheme' #. Label of the sales_partner (Link) field in DocType 'Sales Invoice' #. Label of the default_sales_partner (Link) field in DocType 'Customer' +#. Label of the sales_team_section (Section Break) field in DocType 'Customer' #. Label of the sales_partner (Link) field in DocType 'Sales Order' #. Label of the sales_partner (Link) field in DocType 'SMS Center' #. Label of a Link in the Selling Workspace @@ -47824,7 +47941,7 @@ msgstr "" msgid "Same day" msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:605 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:608 msgid "Same item and warehouse combination already entered." msgstr "" @@ -47856,12 +47973,12 @@ msgstr "" #. Label of the sample_size (Float) field in DocType 'Quality Inspection' #: erpnext/manufacturing/report/quality_inspection_summary/quality_inspection_summary.py:93 -#: erpnext/public/js/controllers/transaction.js:2857 +#: erpnext/public/js/controllers/transaction.js:2871 #: erpnext/stock/doctype/quality_inspection/quality_inspection.json msgid "Sample Size" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:4352 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:4410 msgid "Sample quantity {0} cannot be more than received quantity {1}" msgstr "" @@ -47966,7 +48083,7 @@ msgstr "" msgid "Schedule Date" msgstr "" -#: erpnext/public/js/controllers/transaction.js:497 +#: erpnext/public/js/controllers/transaction.js:516 msgid "Schedule Name" msgstr "" @@ -48260,7 +48377,7 @@ msgstr "" msgid "Select Accounting Dimension." msgstr "" -#: erpnext/public/js/utils.js:555 +#: erpnext/public/js/utils.js:572 msgid "Select Alternate Item" msgstr "" @@ -48310,7 +48427,7 @@ msgstr "" msgid "Select Company Address" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.js:477 +#: erpnext/manufacturing/doctype/job_card/job_card.js:476 msgid "Select Corrective Operation" msgstr "" @@ -48346,7 +48463,7 @@ msgstr "" msgid "Select Dispatch Address " msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.js:706 +#: erpnext/manufacturing/doctype/job_card/job_card.js:705 msgid "Select Employees" msgstr "" @@ -48371,7 +48488,7 @@ msgstr "" msgid "Select Items based on Delivery Date" msgstr "" -#: erpnext/public/js/controllers/transaction.js:2898 +#: erpnext/public/js/controllers/transaction.js:2912 msgid "Select Items for Quality Inspection" msgstr "" @@ -48401,7 +48518,7 @@ msgstr "" msgid "Select Loyalty Program" msgstr "" -#: erpnext/public/js/controllers/transaction.js:483 +#: erpnext/public/js/controllers/transaction.js:502 msgid "Select Payment Schedule" msgstr "" @@ -48472,7 +48589,7 @@ msgstr "" msgid "Select a Company this Employee belongs to." msgstr "" -#: erpnext/buying/doctype/supplier/supplier.js:180 +#: erpnext/buying/doctype/supplier/supplier.js:221 msgid "Select a Customer" msgstr "" @@ -48484,7 +48601,7 @@ msgstr "" msgid "Select a Payment Method." msgstr "" -#: erpnext/selling/doctype/customer/customer.js:249 +#: erpnext/selling/doctype/customer/customer.js:251 msgid "Select a Supplier" msgstr "" @@ -48573,7 +48690,7 @@ msgstr "" msgid "Select the Default Workstation where the Operation will be performed. This will be fetched in BOMs and Work Orders." msgstr "" -#: erpnext/manufacturing/doctype/work_order/work_order.js:1218 +#: erpnext/manufacturing/doctype/work_order/work_order.js:1225 msgid "Select the Item to be manufactured." msgstr "" @@ -48598,6 +48715,12 @@ msgstr "" msgid "Select the date and your timezone" msgstr "" +#. Description of the 'Tax Withholding Group' (Link) field in DocType +#. 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Select the group first to filter the applicable withholding categories below." +msgstr "" + #: erpnext/manufacturing/doctype/bom/bom.js:1007 msgid "Select the raw materials (Items) required to manufacture the Item" msgstr "" @@ -48626,7 +48749,7 @@ msgstr "" msgid "Selected POS Opening Entry should be open." msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2619 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2626 msgid "Selected Price List should have buying and selling fields checked." msgstr "" @@ -48676,7 +48799,7 @@ msgstr "" msgid "Sell quantity cannot exceed the asset quantity" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1451 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1458 msgid "Sell quantity cannot exceed the asset quantity. Asset {0} has only {1} item(s)." msgstr "" @@ -48792,7 +48915,7 @@ msgid "Send Emails to Suppliers" msgstr "" #. Label of the send_sms (Button) field in DocType 'SMS Center' -#: erpnext/public/js/controllers/transaction.js:702 +#: erpnext/public/js/controllers/transaction.js:721 #: erpnext/selling/doctype/sms_center/sms_center.json msgid "Send SMS" msgstr "" @@ -48876,7 +48999,7 @@ msgstr "" msgid "Serial / Batch No" msgstr "" -#: erpnext/public/js/utils.js:217 +#: erpnext/public/js/utils.js:225 msgid "Serial / Batch Nos" msgstr "" @@ -48934,7 +49057,7 @@ msgstr "" #: erpnext/manufacturing/doctype/job_card/job_card.json #: erpnext/manufacturing/report/cost_of_poor_quality_report/cost_of_poor_quality_report.js:74 #: erpnext/manufacturing/report/cost_of_poor_quality_report/cost_of_poor_quality_report.py:114 -#: erpnext/public/js/controllers/transaction.js:2870 +#: erpnext/public/js/controllers/transaction.js:2884 #: erpnext/public/js/utils/serial_no_batch_selector.js:432 #: erpnext/selling/doctype/installation_note_item/installation_note_item.json #: erpnext/stock/doctype/delivery_note_item/delivery_note_item.json @@ -49113,7 +49236,7 @@ msgstr "" msgid "Serial No {0} not found" msgstr "" -#: erpnext/selling/page/point_of_sale/pos_controller.js:855 +#: erpnext/selling/page/point_of_sale/pos_controller.js:846 msgid "Serial No: {0} has already been transacted into another POS Invoice." msgstr "" @@ -49139,7 +49262,7 @@ msgstr "" msgid "Serial Nos are created successfully" msgstr "" -#: erpnext/stock/stock_ledger.py:2297 +#: erpnext/stock/stock_ledger.py:2286 msgid "Serial Nos are reserved in Stock Reservation Entries, you need to unreserve them before proceeding." msgstr "" @@ -49228,7 +49351,7 @@ msgstr "" msgid "Serial and Batch Bundle updated" msgstr "" -#: erpnext/controllers/stock_controller.py:193 +#: erpnext/controllers/stock_controller.py:196 msgid "Serial and Batch Bundle {0} is already used in {1} {2}." msgstr "" @@ -49296,116 +49419,6 @@ msgstr "" msgid "Serial numbers unavailable for Item {0} under warehouse {1}. Please try changing warehouse." msgstr "" -#. Label of the naming_series (Select) field in DocType 'Bank Transaction' -#. Label of the naming_series (Select) field in DocType 'Budget' -#. Label of the naming_series (Select) field in DocType 'Cashier Closing' -#. Label of the naming_series (Select) field in DocType 'Dunning' -#. Label of the naming_series (Select) field in DocType 'Journal Entry' -#. Label of the naming_series (Select) field in DocType 'Journal Entry -#. Template' -#. Label of the naming_series (Select) field in DocType 'Payment Entry' -#. Label of the naming_series (Select) field in DocType 'Payment Order' -#. Label of the naming_series (Select) field in DocType 'Payment Request' -#. Label of the naming_series (Select) field in DocType 'POS Invoice' -#. Label of the naming_series (Select) field in DocType 'Purchase Invoice' -#. Label of the naming_series (Select) field in DocType 'Sales Invoice' -#. Label of the naming_series (Select) field in DocType 'Asset' -#. Label of the naming_series (Select) field in DocType 'Asset Capitalization' -#. Label of the naming_series (Select) field in DocType 'Asset Maintenance Log' -#. Label of the naming_series (Select) field in DocType 'Asset Repair' -#. Label of the naming_series (Select) field in DocType 'Purchase Order' -#. Label of the naming_series (Select) field in DocType 'Request for Quotation' -#. Label of the naming_series (Select) field in DocType 'Supplier' -#. Label of the naming_series (Select) field in DocType 'Supplier Quotation' -#. Label of the naming_series (Select) field in DocType 'Lead' -#. Label of the naming_series (Select) field in DocType 'Opportunity' -#. Label of the naming_series (Select) field in DocType 'Maintenance Schedule' -#. Label of the naming_series (Select) field in DocType 'Maintenance Visit' -#. Label of the naming_series (Select) field in DocType 'Blanket Order' -#. Label of the naming_series (Select) field in DocType 'Work Order' -#. Label of the naming_series (Select) field in DocType 'Project' -#. Label of the naming_series (Data) field in DocType 'Project Update' -#. Label of the naming_series (Select) field in DocType 'Timesheet' -#. Label of the naming_series (Select) field in DocType 'Customer' -#. Label of the naming_series (Select) field in DocType 'Installation Note' -#. Label of the naming_series (Select) field in DocType 'Quotation' -#. Label of the naming_series (Select) field in DocType 'Sales Order' -#. Label of the naming_series (Select) field in DocType 'Driver' -#. Label of the naming_series (Select) field in DocType 'Employee' -#. Label of the naming_series (Select) field in DocType 'Delivery Note' -#. Label of the naming_series (Select) field in DocType 'Delivery Trip' -#. Label of the naming_series (Select) field in DocType 'Item' -#. Label of the naming_series (Select) field in DocType 'Landed Cost Voucher' -#. Label of the naming_series (Select) field in DocType 'Material Request' -#. Label of the naming_series (Select) field in DocType 'Packing Slip' -#. Label of the naming_series (Select) field in DocType 'Pick List' -#. Label of the naming_series (Select) field in DocType 'Purchase Receipt' -#. Label of the naming_series (Select) field in DocType 'Quality Inspection' -#. Label of the naming_series (Select) field in DocType 'Stock Entry' -#. Label of the naming_series (Select) field in DocType 'Stock Reconciliation' -#. Label of the naming_series (Select) field in DocType 'Subcontracting Inward -#. Order' -#. Label of the naming_series (Select) field in DocType 'Subcontracting Order' -#. Label of the naming_series (Select) field in DocType 'Subcontracting -#. Receipt' -#. Label of the naming_series (Select) field in DocType 'Issue' -#. Label of the naming_series (Select) field in DocType 'Warranty Claim' -#: erpnext/accounts/doctype/bank_transaction/bank_transaction.json -#: erpnext/accounts/doctype/budget/budget.json -#: erpnext/accounts/doctype/cashier_closing/cashier_closing.json -#: erpnext/accounts/doctype/dunning/dunning.json -#: erpnext/accounts/doctype/journal_entry/journal_entry.js:661 -#: erpnext/accounts/doctype/journal_entry/journal_entry.json -#: erpnext/accounts/doctype/journal_entry_template/journal_entry_template.json -#: erpnext/accounts/doctype/payment_entry/payment_entry.json -#: erpnext/accounts/doctype/payment_order/payment_order.json -#: erpnext/accounts/doctype/payment_request/payment_request.json -#: erpnext/accounts/doctype/pos_invoice/pos_invoice.json -#: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.json -#: erpnext/assets/doctype/asset/asset.json -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.json -#: erpnext/assets/doctype/asset_maintenance_log/asset_maintenance_log.json -#: erpnext/assets/doctype/asset_repair/asset_repair.json -#: erpnext/buying/doctype/purchase_order/purchase_order.json -#: erpnext/buying/doctype/request_for_quotation/request_for_quotation.json -#: erpnext/buying/doctype/supplier/supplier.json -#: erpnext/buying/doctype/supplier_quotation/supplier_quotation.json -#: erpnext/crm/doctype/lead/lead.json -#: erpnext/crm/doctype/opportunity/opportunity.json -#: erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.json -#: erpnext/maintenance/doctype/maintenance_visit/maintenance_visit.json -#: erpnext/manufacturing/doctype/blanket_order/blanket_order.json -#: erpnext/manufacturing/doctype/work_order/work_order.json -#: erpnext/projects/doctype/project/project.json -#: erpnext/projects/doctype/project_update/project_update.json -#: erpnext/projects/doctype/timesheet/timesheet.json -#: erpnext/public/js/utils/naming_series.js:34 -#: erpnext/selling/doctype/customer/customer.json -#: erpnext/selling/doctype/installation_note/installation_note.json -#: erpnext/selling/doctype/quotation/quotation.json -#: erpnext/selling/doctype/sales_order/sales_order.json -#: erpnext/setup/doctype/driver/driver.json -#: erpnext/setup/doctype/employee/employee.json -#: erpnext/stock/doctype/delivery_note/delivery_note.json -#: erpnext/stock/doctype/delivery_trip/delivery_trip.json -#: erpnext/stock/doctype/item/item.json -#: erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.json -#: erpnext/stock/doctype/material_request/material_request.json -#: erpnext/stock/doctype/packing_slip/packing_slip.json -#: erpnext/stock/doctype/pick_list/pick_list.json -#: erpnext/stock/doctype/purchase_receipt/purchase_receipt.json -#: erpnext/stock/doctype/quality_inspection/quality_inspection.json -#: erpnext/stock/doctype/stock_entry/stock_entry.json -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.json -#: erpnext/subcontracting/doctype/subcontracting_inward_order/subcontracting_inward_order.json -#: erpnext/subcontracting/doctype/subcontracting_order/subcontracting_order.json -#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.json -#: erpnext/support/doctype/issue/issue.json -#: erpnext/support/doctype/warranty_claim/warranty_claim.json -msgid "Series" -msgstr "" - #. Label of the series_for_depreciation_entry (Data) field in DocType 'Company' #: erpnext/setup/doctype/company/company.json msgid "Series for Asset Depreciation Entry (Journal Entry)" @@ -49602,12 +49615,12 @@ msgid "Service Stop Date" msgstr "" #: erpnext/accounts/deferred_revenue.py:45 -#: erpnext/public/js/controllers/transaction.js:1779 +#: erpnext/public/js/controllers/transaction.js:1793 msgid "Service Stop Date cannot be after Service End Date" msgstr "" #: erpnext/accounts/deferred_revenue.py:42 -#: erpnext/public/js/controllers/transaction.js:1776 +#: erpnext/public/js/controllers/transaction.js:1790 msgid "Service Stop Date cannot be before Service Start Date" msgstr "" @@ -49631,7 +49644,7 @@ msgstr "" #. Label of the set_basic_rate_manually (Check) field in DocType 'Stock Entry #. Detail' -#: erpnext/stock/doctype/stock_entry/stock_entry.py:397 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:400 #: erpnext/stock/doctype/stock_entry_detail/stock_entry_detail.json msgid "Set Basic Rate Manually" msgstr "" @@ -49650,8 +49663,8 @@ msgstr "" msgid "Set Dropship Items Delivered Quantity" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.js:363 -#: erpnext/manufacturing/doctype/job_card/job_card.js:425 +#: erpnext/manufacturing/doctype/job_card/job_card.js:362 +#: erpnext/manufacturing/doctype/job_card/job_card.js:424 msgid "Set Finished Good Quantity" msgstr "" @@ -49854,7 +49867,7 @@ msgstr "" msgid "Set targets Item Group-wise for this Sales Person." msgstr "" -#: erpnext/manufacturing/doctype/work_order/work_order.js:1275 +#: erpnext/manufacturing/doctype/work_order/work_order.js:1282 msgid "Set the Planned Start Date (an Estimated Date at which you want the Production to begin)" msgstr "" @@ -50692,7 +50705,7 @@ msgstr "" msgid "Simultaneous" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:847 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:850 msgid "Since there is a process loss of {0} units for the finished good {1}, you should reduce the quantity by {0} units for the finished good {1} in the Items Table." msgstr "" @@ -50753,7 +50766,7 @@ msgstr "" msgid "Skip Material Transfer to WIP Warehouse" msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:563 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:574 msgid "Skipped {0} DocType(s):
{1}" msgstr "" @@ -50804,7 +50817,7 @@ msgstr "" msgid "Solvency Ratios" msgstr "" -#: erpnext/controllers/accounts_controller.py:4371 +#: erpnext/controllers/accounts_controller.py:4369 msgid "Some required Company details are missing. You don't have permission to update them. Please contact your System Manager." msgstr "" @@ -50877,11 +50890,11 @@ msgstr "" msgid "Source Stock Entry (Manufacture)" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1009 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1012 msgid "Source Stock Entry {0} belongs to Work Order {1}, not {2}. Please use a manufacture entry from the same Work Order." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:2622 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2680 msgid "Source Stock Entry {0} has no finished goods quantity" msgstr "" @@ -50947,7 +50960,7 @@ msgstr "" msgid "Source and Target Location cannot be same" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:975 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:978 msgid "Source and target warehouse cannot be same for row {0}" msgstr "" @@ -50960,9 +50973,9 @@ msgstr "" msgid "Source of Funds (Liabilities)" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:942 -#: erpnext/stock/doctype/stock_entry/stock_entry.py:958 -#: erpnext/stock/doctype/stock_entry/stock_entry.py:965 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:945 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:961 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:968 msgid "Source warehouse is mandatory for row {0}" msgstr "" @@ -51053,6 +51066,11 @@ msgstr "" msgid "Split across {} accounts" msgstr "" +#. Description of the 'Sales Team' (Table) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Split commission credit across multiple sales persons." +msgstr "" + #: erpnext/accounts/doctype/payment_entry/payment_entry.py:2480 msgid "Splitting {0} {1} into {2} rows as per Payment Terms" msgstr "" @@ -51106,7 +51124,7 @@ msgstr "" msgid "Stale Days" msgstr "" -#: erpnext/accounts/doctype/accounts_settings/accounts_settings.py:161 +#: erpnext/accounts/doctype/accounts_settings/accounts_settings.py:162 msgid "Stale Days should start from 1." msgstr "" @@ -51175,6 +51193,10 @@ msgstr "" msgid "Start / Resume" msgstr "" +#: erpnext/accounts/doctype/accounting_period/accounting_period.py:45 +msgid "Start Date cannot be after End Date" +msgstr "" + #: erpnext/crm/doctype/email_campaign/email_campaign.py:40 msgid "Start Date cannot be before the current date" msgstr "" @@ -51183,7 +51205,7 @@ msgstr "" msgid "Start Date should be lower than End Date" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.js:662 +#: erpnext/manufacturing/doctype/job_card/job_card.js:660 #: erpnext/manufacturing/doctype/workstation/workstation.js:124 msgid "Start Job" msgstr "" @@ -51329,11 +51351,6 @@ msgstr "" msgid "Status set to rejected as there are one or more rejected readings." msgstr "" -#. Description of the 'Supplier Details' (Text) field in DocType 'Supplier' -#: erpnext/buying/doctype/supplier/supplier.json -msgid "Statutory info and other general information about your Supplier" -msgstr "" - #. Option for the 'Account Type' (Select) field in DocType 'Account' #. Label of a Desktop Icon #. Group in Incoterm's connections @@ -51466,7 +51483,7 @@ msgstr "" msgid "Stock Details" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1186 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1189 msgid "Stock Entries already created for Work Order {0}: {1}" msgstr "" @@ -51534,7 +51551,7 @@ msgstr "" msgid "Stock Entry {0} created" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1583 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1601 msgid "Stock Entry {0} has created" msgstr "" @@ -51702,7 +51719,7 @@ msgstr "" #: erpnext/manufacturing/doctype/bom_secondary_item/bom_secondary_item.json #: erpnext/selling/doctype/delivery_schedule_item/delivery_schedule_item.json #: erpnext/stock/doctype/material_request_item/material_request_item.json -#: erpnext/stock/report/item_where_used/item_where_used.py:82 +#: erpnext/stock/report/item_where_used/item_where_used.py:76 #: erpnext/stock/report/stock_qty_vs_batch_qty/stock_qty_vs_batch_qty.py:34 #: erpnext/stock/report/stock_qty_vs_serial_no_count/stock_qty_vs_serial_no_count.py:34 msgid "Stock Qty" @@ -51785,7 +51802,7 @@ msgstr "" #: erpnext/stock/doctype/pick_list/pick_list.js:175 #: erpnext/stock/doctype/pick_list/pick_list.js:180 #: erpnext/stock/doctype/stock_entry/stock_entry_dashboard.py:12 -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:743 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:746 #: erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.py:674 #: erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.py:1237 #: erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.py:1644 @@ -51812,7 +51829,7 @@ msgstr "" #: erpnext/controllers/subcontracting_inward_controller.py:1037 #: erpnext/manufacturing/doctype/production_plan/production_plan.py:2245 -#: erpnext/manufacturing/doctype/work_order/work_order.py:2306 +#: erpnext/manufacturing/doctype/work_order/work_order.py:2338 #: erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.py:1777 msgid "Stock Reservation Entries Created" msgstr "" @@ -51987,7 +52004,7 @@ msgstr "" #: erpnext/stock/doctype/stock_reconciliation_item/stock_reconciliation_item.json #: erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.json #: erpnext/stock/report/batch_item_expiry_status/batch_item_expiry_status.py:35 -#: erpnext/stock/report/item_where_used/item_where_used.py:88 +#: erpnext/stock/report/item_where_used/item_where_used.py:82 #: erpnext/stock/report/reserved_stock/reserved_stock.py:110 #: erpnext/stock/report/stock_balance/stock_balance.py:508 #: erpnext/stock/report/stock_ledger/stock_ledger.py:296 @@ -52120,11 +52137,11 @@ msgstr "" msgid "Stock cannot be reserved in the group warehouse {0}." msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1266 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1273 msgid "Stock cannot be updated against the following Delivery Notes: {0}" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1335 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1342 msgid "Stock cannot be updated because the invoice contains a drop shipping item. Please disable 'Update Stock' or remove the drop shipping item." msgstr "" @@ -52149,7 +52166,7 @@ msgstr "" msgid "Stock not available for Item {0} in Warehouse {1}." msgstr "" -#: erpnext/selling/page/point_of_sale/pos_controller.js:835 +#: erpnext/selling/page/point_of_sale/pos_controller.js:826 msgid "Stock quantity not enough for Item Code: {0} under warehouse {1}. Available quantity {2} {3}." msgstr "" @@ -52249,7 +52266,7 @@ msgstr "" #. Label of the operation (Link) field in DocType 'Job Card Time Log' #. Name of a DocType -#: erpnext/manufacturing/doctype/job_card/job_card.js:310 +#: erpnext/manufacturing/doctype/job_card/job_card.js:309 #: erpnext/manufacturing/doctype/job_card_time_log/job_card_time_log.json #: erpnext/manufacturing/doctype/sub_operation/sub_operation.json msgid "Sub Operation" @@ -52411,7 +52428,7 @@ msgstr "" msgid "Subcontracting Delivery" msgstr "" -#: erpnext/stock/report/item_where_used/item_where_used.py:362 +#: erpnext/stock/report/item_where_used/item_where_used.py:360 msgid "Subcontracting Finished Good" msgstr "" @@ -52595,7 +52612,7 @@ msgstr "" msgid "Subcontracting Sales Order" msgstr "" -#: erpnext/stock/report/item_where_used/item_where_used.py:336 +#: erpnext/stock/report/item_where_used/item_where_used.py:334 msgid "Subcontracting Service Item" msgstr "" @@ -52615,7 +52632,7 @@ msgid "Subdivision" msgstr "" #: erpnext/buying/doctype/purchase_order/purchase_order.py:972 -#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:1086 +#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:1092 msgid "Submit Action Failed" msgstr "" @@ -52643,7 +52660,7 @@ msgstr "" msgid "Submit your Quotation" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1493 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1511 msgid "Submitted Job Card cannot be processed." msgstr "" @@ -52813,11 +52830,11 @@ msgstr "" msgid "Successfully imported {0} records." msgstr "" -#: erpnext/buying/doctype/supplier/supplier.js:202 +#: erpnext/buying/doctype/supplier/supplier.js:243 msgid "Successfully linked to Customer" msgstr "" -#: erpnext/selling/doctype/customer/customer.js:271 +#: erpnext/selling/doctype/customer/customer.js:273 msgid "Successfully linked to Supplier" msgstr "" @@ -52982,7 +52999,7 @@ msgstr "" #: erpnext/public/js/purchase_trends_filters.js:63 #: erpnext/regional/doctype/lower_deduction_certificate/lower_deduction_certificate.json #: erpnext/regional/report/irs_1099/irs_1099.py:77 -#: erpnext/selling/doctype/customer/customer.js:253 +#: erpnext/selling/doctype/customer/customer.js:255 #: erpnext/selling/doctype/party_specific_item/party_specific_item.json #: erpnext/selling/doctype/sales_order/sales_order.js:197 #: erpnext/selling/doctype/sales_order/sales_order.js:1703 @@ -53152,7 +53169,7 @@ msgstr "" msgid "Supplier Invoice No" msgstr "" -#: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1812 +#: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1815 msgid "Supplier Invoice No exists in Purchase Invoice {0}" msgstr "" @@ -53225,8 +53242,6 @@ msgid "Supplier Number At Customer" msgstr "" #. Label of the supplier_numbers (Table) field in DocType 'Customer' -#. Label of the supplier_numbers_section (Section Break) field in DocType -#. 'Customer' #: erpnext/selling/doctype/customer/customer.json msgid "Supplier Numbers" msgstr "" @@ -53256,16 +53271,6 @@ msgstr "" msgid "Supplier Portal Users" msgstr "" -#. Label of the supplier_primary_address (Link) field in DocType 'Supplier' -#: erpnext/buying/doctype/supplier/supplier.json -msgid "Supplier Primary Address" -msgstr "" - -#. Label of the supplier_primary_contact (Link) field in DocType 'Supplier' -#: erpnext/buying/doctype/supplier/supplier.json -msgid "Supplier Primary Contact" -msgstr "" - #. Label of the ref_sq (Link) field in DocType 'Purchase Order' #. Label of the supplier_quotation (Link) field in DocType 'Purchase Order #. Item' @@ -53413,11 +53418,6 @@ msgstr "" msgid "Supplier is required for all selected Items" msgstr "" -#. Description of the 'Supplier Numbers' (Table) field in DocType 'Customer' -#: erpnext/selling/doctype/customer/customer.json -msgid "Supplier numbers assigned by the customer" -msgstr "" - #. Description of a DocType #: erpnext/buying/doctype/supplier/supplier.json msgid "Supplier of Goods or Services." @@ -53427,6 +53427,11 @@ msgstr "" msgid "Supplier {0} not found in {1}" msgstr "" +#. Description of the 'Tax ID' (Data) field in DocType 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "Supplier's tax identification number (e.g. PAN, VAT, GST)" +msgstr "" + #: erpnext/stock/report/item_wise_consumption/item_wise_consumption.py:67 msgid "Supplier(s)" msgstr "" @@ -53492,10 +53497,6 @@ msgstr "" msgid "Support Tickets" msgstr "" -#: erpnext/public/js/utils/naming_series.js:89 -msgid "Supported Variables:" -msgstr "" - #: erpnext/accounts/report/calculated_discount_mismatch/calculated_discount_mismatch.py:64 msgid "Suspected Discount Amount" msgstr "" @@ -53569,6 +53570,12 @@ msgstr "" msgid "System will notify to increase or decrease quantity or amount " msgstr "" +#. Description of the 'Tax Withholding Category' (Link) field in DocType +#. 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "TDS / withholding tax category applied when paying this supplier" +msgstr "" + #. Name of a report #. Label of a Workspace Sidebar Item #: erpnext/accounts/report/tds_computation_summary/tds_computation_summary.json @@ -53576,7 +53583,7 @@ msgstr "" msgid "TDS Computation Summary" msgstr "" -#: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1570 +#: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1573 msgid "TDS Deducted" msgstr "" @@ -53584,6 +53591,12 @@ msgstr "" msgid "TDS Payable" msgstr "" +#. Description of the 'Tax Withholding Category' (Link) field in DocType +#. 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "TDS/TCS is calculated at the rate defined here on every payment from this customer." +msgstr "" + #. Description of a DocType #: erpnext/stock/doctype/item_website_specification/item_website_specification.json msgid "Table for Item that will be shown in Web Site" @@ -53614,23 +53627,23 @@ msgstr "" msgid "Target Asset" msgstr "" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:209 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:212 msgid "Target Asset {0} cannot be cancelled" msgstr "" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:207 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:210 msgid "Target Asset {0} cannot be submitted" msgstr "" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:203 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:206 msgid "Target Asset {0} cannot be {1}" msgstr "" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:213 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:216 msgid "Target Asset {0} does not belong to company {1}" msgstr "" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:192 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:195 msgid "Target Asset {0} needs to be composite asset" msgstr "" @@ -53676,7 +53689,7 @@ msgstr "" msgid "Target Item Code" msgstr "" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:183 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:186 msgid "Target Item {0} must be a Fixed Asset item" msgstr "" @@ -53757,9 +53770,9 @@ msgstr "" msgid "Target Warehouse {0} must be same as Delivery Warehouse {1} in the Subcontracting Inward Order Item." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:948 -#: erpnext/stock/doctype/stock_entry/stock_entry.py:954 -#: erpnext/stock/doctype/stock_entry/stock_entry.py:969 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:951 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:957 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:972 msgid "Target warehouse is mandatory for row {0}" msgstr "" @@ -53991,6 +54004,11 @@ msgstr "" msgid "Tax Id: {0}" msgstr "" +#. Label of the taxation_section (Section Break) field in DocType 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "Tax Identification" +msgstr "" + #. Label of a Card Break in the Invoicing Workspace #: erpnext/accounts/workspace/invoicing/invoicing.json msgid "Tax Masters" @@ -54217,7 +54235,7 @@ msgstr "" #. Detail' #: erpnext/accounts/doctype/item_wise_tax_detail/item_wise_tax_detail.json #: erpnext/accounts/report/tax_withholding_details/tax_withholding_details.py:239 -#: erpnext/controllers/taxes_and_totals.py:1262 +#: erpnext/controllers/taxes_and_totals.py:1248 msgid "Taxable Amount" msgstr "" @@ -54793,7 +54811,7 @@ msgstr "" msgid "The Pick List having Stock Reservation Entries cannot be updated. If you need to make changes, we recommend canceling the existing Stock Reservation Entries before updating the Pick List." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:3074 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:3132 msgid "The Process Loss Qty has reset as per job cards Process Loss Qty" msgstr "" @@ -54809,7 +54827,7 @@ msgstr "" msgid "The Serial No {0} is reserved against the {1} {2} and cannot be used for any other transaction." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:2040 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2098 msgid "The Serial and Batch Bundle {0} is not valid for this transaction. The 'Type of Transaction' should be 'Outward' instead of 'Inward' in Serial and Batch Bundle {0}" msgstr "" @@ -54845,7 +54863,7 @@ msgstr "" msgid "The bank account is not a company account. Please select a company account" msgstr "" -#: erpnext/controllers/stock_controller.py:1310 +#: erpnext/controllers/stock_controller.py:1357 msgid "The batch {0} is already reserved in {1} {2}. So, cannot proceed with the {3} {4}, which is created against the {5} {6}." msgstr "" @@ -54857,7 +54875,7 @@ msgstr "" msgid "The company {0} is not in United Arab Emirates. UAE VAT 201 report is only available for companies in United Arab Emirates." msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1348 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1366 msgid "The completed quantity {0} of an operation {1} cannot be greater than the completed quantity {2} of a previous operation {3}." msgstr "" @@ -54865,7 +54883,7 @@ msgstr "" msgid "The currency of invoice {} ({}) is different from the currency of this dunning ({})." msgstr "" -#: erpnext/selling/page/point_of_sale/pos_controller.js:209 +#: erpnext/selling/page/point_of_sale/pos_controller.js:200 msgid "The current POS opening entry is outdated. Please close it and create a new one." msgstr "" @@ -54877,7 +54895,7 @@ msgstr "" msgid "The date of the transaction" msgstr "" -#: erpnext/manufacturing/doctype/work_order/work_order.js:1223 +#: erpnext/manufacturing/doctype/work_order/work_order.js:1230 msgid "The default BOM for that item will be fetched by the system. You can also change the BOM." msgstr "" @@ -55000,7 +55018,7 @@ msgstr "" msgid "The invoice is not fully allocated as there is a difference of {0}." msgstr "" -#: erpnext/controllers/buying_controller.py:1244 +#: erpnext/controllers/buying_controller.py:1307 msgid "The item {item} is not marked as {type_of} item. You can enable it as {type_of} item from its Item master." msgstr "" @@ -55008,7 +55026,7 @@ msgstr "" msgid "The items {0} and {1} are present in the following {2} :" msgstr "" -#: erpnext/controllers/buying_controller.py:1237 +#: erpnext/controllers/buying_controller.py:1300 msgid "The items {items} are not marked as {type_of} item. You can enable them as {type_of} item from their Item masters." msgstr "" @@ -55113,7 +55131,7 @@ msgstr "" msgid "The reference number of the transaction" msgstr "" -#: erpnext/public/js/utils.js:968 +#: erpnext/public/js/utils.js:985 msgid "The reserved stock will be released when you update items. Are you certain you wish to proceed?" msgstr "" @@ -55170,7 +55188,7 @@ msgstr "" msgid "The stock for the item {0} in the {1} warehouse was negative on the {2}. You should create a positive entry {3} before the date {4} and time {5} to post the correct valuation rate. For more details, please read the documentation." msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:737 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:740 msgid "The stock has been reserved for the following Items and Warehouses, un-reserve the same to {0} the Stock Reconciliation:

{1}" msgstr "" @@ -55192,11 +55210,11 @@ msgstr "" msgid "The system will create a Sales Invoice or a POS Invoice from the POS interface based on this setting. For high-volume transactions, it is recommended to use POS Invoice." msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:1011 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:1110 msgid "The task has been enqueued as a background job. In case there is any issue on processing in background, the system will add a comment about the error on this Stock Reconciliation and revert to the Draft stage" msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:1022 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:1121 msgid "The task has been enqueued as a background job. In case there is any issue on processing in background, the system will add a comment about the error on this Stock Reconciliation and revert to the Submitted stage" msgstr "" @@ -55244,15 +55262,15 @@ msgstr "" msgid "The value {0} is already assigned to an existing Item {1}." msgstr "" -#: erpnext/manufacturing/doctype/work_order/work_order.js:1251 +#: erpnext/manufacturing/doctype/work_order/work_order.js:1258 msgid "The warehouse where you store finished Items before they are shipped." msgstr "" -#: erpnext/manufacturing/doctype/work_order/work_order.js:1244 +#: erpnext/manufacturing/doctype/work_order/work_order.js:1251 msgid "The warehouse where you store your raw materials. Each required item can have a separate source warehouse. Group warehouse also can be selected as source warehouse. On submission of the Work Order, the raw materials will be reserved in these warehouses for production usage." msgstr "" -#: erpnext/manufacturing/doctype/work_order/work_order.js:1256 +#: erpnext/manufacturing/doctype/work_order/work_order.js:1263 msgid "The warehouse where your Items will be transferred when you begin production. Group Warehouse can also be selected as a Work in Progress warehouse." msgstr "" @@ -55260,11 +55278,11 @@ msgstr "" msgid "The withdrawal or deposit amounts - only required if there's no amount column." msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:908 +#: erpnext/manufacturing/doctype/job_card/job_card.py:909 msgid "The {0} ({1}) must be equal to {2} ({3})" msgstr "" -#: erpnext/public/js/controllers/transaction.js:3359 +#: erpnext/public/js/controllers/transaction.js:3373 msgid "The {0} contains Unit Price Items." msgstr "" @@ -55280,7 +55298,7 @@ msgstr "" msgid "The {0} {1} does not match with the {0} {2} in the {3} {4}" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1014 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1015 msgid "The {0} {1} is used to calculate the valuation cost for the finished good {2}." msgstr "" @@ -55365,7 +55383,7 @@ msgstr "" msgid "There is one unreconciled transaction before {0}." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1977 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2035 msgid "There must be atleast 1 Finished Good in this Stock Entry" msgstr "" @@ -55429,7 +55447,7 @@ msgstr "" msgid "This PDF is password protected. Please set the correct statement password on the Bank Account and try again." msgstr "" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1745 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1754 msgid "This Payment Entry is reconciled with {0}. Cancelling will automatically unreconcile it. Do you want to proceed?" msgstr "" @@ -55477,7 +55495,7 @@ msgstr "" msgid "This covers all scorecards tied to this Setup" msgstr "" -#: erpnext/controllers/status_updater.py:489 +#: erpnext/controllers/status_updater.py:500 msgid "This document is over limit by {0} {1} for item {4}. Are you making another {3} against the same {2}?" msgstr "" @@ -55580,7 +55598,7 @@ msgstr "" msgid "This is done to handle accounting for cases when Purchase Receipt is created after Purchase Invoice" msgstr "" -#: erpnext/manufacturing/doctype/work_order/work_order.js:1237 +#: erpnext/manufacturing/doctype/work_order/work_order.js:1244 msgid "This is enabled by default. If you want to plan materials for sub-assemblies of the Item you're manufacturing leave this enabled. If you plan and manufacture the sub-assemblies separately, you can disable this checkbox." msgstr "" @@ -55655,7 +55673,7 @@ msgstr "" msgid "This schedule was created when Asset {0} was adjusted through Asset Value Adjustment {1}." msgstr "" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:476 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:479 msgid "This schedule was created when Asset {0} was consumed through Asset Capitalization {1}." msgstr "" @@ -55663,11 +55681,11 @@ msgstr "" msgid "This schedule was created when Asset {0} was repaired through Asset Repair {1}." msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1542 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1549 msgid "This schedule was created when Asset {0} was restored due to Sales Invoice {1} cancellation." msgstr "" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:585 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:588 msgid "This schedule was created when Asset {0} was restored on Asset Capitalization {1}'s cancellation." msgstr "" @@ -55675,7 +55693,7 @@ msgstr "" msgid "This schedule was created when Asset {0} was restored." msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1538 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1545 msgid "This schedule was created when Asset {0} was returned through Sales Invoice {1}." msgstr "" @@ -55687,7 +55705,7 @@ msgstr "" msgid "This schedule was created when Asset {0} was {1} into new Asset {2}." msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1514 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1521 msgid "This schedule was created when Asset {0} was {1} through Sales Invoice {2}." msgstr "" @@ -55881,7 +55899,7 @@ msgstr "" msgid "Time in mins." msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:885 +#: erpnext/manufacturing/doctype/job_card/job_card.py:886 msgid "Time logs are required for {0} {1}" msgstr "" @@ -55900,6 +55918,12 @@ msgstr "" msgid "Timeline" msgstr "" +#. Description of the 'PCV Job Timeout (seconds)' (Int) field in DocType +#. 'Accounts Settings' +#: erpnext/accounts/doctype/accounts_settings/accounts_settings.json +msgid "Timeout (in seconds) for each background job enqueued by Process Period Closing Voucher" +msgstr "" + #: erpnext/manufacturing/doctype/workstation/workstation_job_card.html:36 #: erpnext/public/js/projects/timer.js:5 msgid "Timer" @@ -55943,7 +55967,7 @@ msgstr "" msgid "Timesheet for tasks." msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:935 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:942 msgid "Timesheet {0} cannot be invoiced in its current state" msgstr "" @@ -56217,24 +56241,18 @@ msgstr "" msgid "To add subcontracted Item's raw materials if include exploded items is disabled." msgstr "" -#: erpnext/controllers/status_updater.py:482 +#: erpnext/controllers/status_updater.py:493 msgid "To allow over billing, update \"Over Billing Allowance\" in Accounts Settings or the Item." msgstr "" -#: erpnext/controllers/status_updater.py:476 +#: erpnext/controllers/status_updater.py:487 msgid "To allow over ordering, update \"Over Order Allowance\" in Buying Settings." msgstr "" -#: erpnext/controllers/status_updater.py:478 +#: erpnext/controllers/status_updater.py:489 msgid "To allow over receipt / delivery, update \"Over Receipt/Delivery Allowance\" in Stock Settings or the Item." msgstr "" -#. Description of the 'Mandatory Depends On' (Small Text) field in DocType -#. 'Inventory Dimension' -#: erpnext/stock/doctype/inventory_dimension/inventory_dimension.json -msgid "To apply condition on parent field use parent.field_name and to apply condition on child table use doc.field_name. Here field_name could be based on the actual column name of the respective field." -msgstr "" - #. Label of the delivered_by_supplier (Check) field in DocType 'Purchase Order #. Item' #: erpnext/buying/doctype/purchase_order_item/purchase_order_item.json @@ -56430,6 +56448,22 @@ msgstr "" msgid "Total Advance" msgstr "" +#: erpnext/public/js/utils.js:250 +msgid "Total Advance Paid" +msgstr "" + +#: erpnext/public/js/utils.js:195 +msgid "Total Advance Paid: {0}" +msgstr "" + +#: erpnext/public/js/utils.js:252 +msgid "Total Advance Received" +msgstr "" + +#: erpnext/public/js/utils.js:198 +msgid "Total Advance Received: {0}" +msgstr "" + #. Label of the total_allocated_amount (Currency) field in DocType 'Payment #. Entry' #: erpnext/accounts/doctype/payment_entry/payment_entry.json @@ -56562,12 +56596,12 @@ msgstr "" #. Label of the total_completed_qty (Float) field in DocType 'Job Card' #: erpnext/manufacturing/doctype/job_card/job_card.json -#: erpnext/manufacturing/doctype/job_card/job_card.py:904 +#: erpnext/manufacturing/doctype/job_card/job_card.py:905 #: erpnext/manufacturing/report/job_card_summary/job_card_summary.py:174 msgid "Total Completed Qty" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:191 +#: erpnext/manufacturing/doctype/job_card/job_card.py:192 msgid "Total Completed Qty is required for Job Card {0}, please start and complete the job card before submission" msgstr "" @@ -57088,7 +57122,11 @@ msgstr "" msgid "Total Time in Mins" msgstr "" -#: erpnext/public/js/utils.js:193 +#: erpnext/public/js/utils.js:253 +msgid "Total Unpaid" +msgstr "" + +#: erpnext/public/js/utils.js:200 msgid "Total Unpaid: {0}" msgstr "" @@ -57167,7 +57205,7 @@ msgstr "" msgid "Total allocated percentage for sales team should be 100" msgstr "" -#: erpnext/selling/doctype/customer/customer.py:193 +#: erpnext/selling/doctype/customer/customer.py:194 msgid "Total contribution percentage should be equal to 100" msgstr "" @@ -57290,22 +57328,6 @@ msgstr "" msgid "Tracking URL" msgstr "" -#. Option for the 'Apply On' (Select) field in DocType 'Pricing Rule' -#. Option for the 'Apply On' (Select) field in DocType 'Promotional Scheme' -#. Label of the transaction_tab (Tab Break) field in DocType 'Selling Settings' -#. Label of the transaction (Select) field in DocType 'Authorization Rule' -#. Option for the 'Based On' (Select) field in DocType 'Repost Item Valuation' -#: erpnext/accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.py:1057 -#: erpnext/accounts/doctype/pricing_rule/pricing_rule.json -#: erpnext/accounts/doctype/promotional_scheme/promotional_scheme.json -#: erpnext/manufacturing/doctype/workstation/workstation_dashboard.py:10 -#: erpnext/public/js/utils/naming_series.js:219 -#: erpnext/selling/doctype/selling_settings/selling_settings.json -#: erpnext/setup/doctype/authorization_rule/authorization_rule.json -#: erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.json -msgid "Transaction" -msgstr "" - #. Label of the transaction_currency (Link) field in DocType 'GL Entry' #. Label of the currency (Link) field in DocType 'Payment Request' #: erpnext/accounts/doctype/gl_entry/gl_entry.json @@ -57363,11 +57385,11 @@ msgstr "" msgid "Transaction Deletion Record To Delete" msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1103 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1114 msgid "Transaction Deletion Record {0} is already running. {1}" msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1122 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1133 msgid "Transaction Deletion Record {0} is currently deleting {1}. Cannot save documents until deletion completes." msgstr "" @@ -57472,7 +57494,7 @@ msgstr "" msgid "Transaction from which tax is withheld" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:862 +#: erpnext/manufacturing/doctype/job_card/job_card.py:863 msgid "Transaction not allowed against stopped Work Order {0}" msgstr "" @@ -57519,11 +57541,16 @@ msgstr "" msgid "Transactions against the Company already exist! Chart of Accounts can only be imported for a Company with no transactions." msgstr "" +#. Description of the 'Credit Limit' (Table) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Transactions are blocked or warned when outstanding balance exceeds this amount." +msgstr "" + #: banking/src/components/features/BankStatementImporter/CSV/StatementDetails.tsx:239 msgid "Transactions to be imported into the system" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1199 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1206 msgid "Transactions using Sales Invoice in POS are disabled." msgstr "" @@ -57958,7 +57985,7 @@ msgstr "" #: erpnext/manufacturing/doctype/workstation/workstation.js:480 #: erpnext/manufacturing/report/bom_explorer/bom_explorer.py:70 #: erpnext/manufacturing/report/bom_operations_time/bom_operations_time.py:110 -#: erpnext/public/js/stock_analytics.js:94 erpnext/public/js/utils.js:841 +#: erpnext/public/js/stock_analytics.js:94 erpnext/public/js/utils.js:858 #: erpnext/quality_management/doctype/quality_goal_objective/quality_goal_objective.json #: erpnext/quality_management/doctype/quality_review_objective/quality_review_objective.json #: erpnext/selling/doctype/delivery_schedule_item/delivery_schedule_item.json @@ -57988,7 +58015,7 @@ msgstr "" #: erpnext/stock/report/available_serial_no/available_serial_no.py:101 #: erpnext/stock/report/batch_wise_balance_history/batch_wise_balance_history.py:87 #: erpnext/stock/report/item_prices/item_prices.py:55 -#: erpnext/stock/report/item_where_used/item_where_used.py:75 +#: erpnext/stock/report/item_where_used/item_where_used.py:69 #: erpnext/stock/report/item_wise_consumption/item_wise_consumption.py:60 #: erpnext/stock/report/product_bundle_balance/product_bundle_balance.py:94 #: erpnext/stock/report/stock_ageing/stock_ageing.py:223 @@ -58071,7 +58098,7 @@ msgstr "" msgid "UOM Name" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:4274 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:4332 msgid "UOM conversion factor required for UOM: {0} in Item: {1}" msgstr "" @@ -58126,7 +58153,7 @@ msgstr "" msgid "UnReconcile Allocations" msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:466 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:477 msgid "Unable to fetch DocType details. Please contact system administrator." msgstr "" @@ -58230,7 +58257,7 @@ msgstr "" msgid "Undo {}?" msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:938 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:949 msgid "Unexpected Naming Series Pattern" msgstr "" @@ -58456,7 +58483,7 @@ msgstr "" msgid "Unsecured Loans" msgstr "" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1714 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1723 msgid "Unset Matched Payment Request" msgstr "" @@ -58613,7 +58640,7 @@ msgstr "" #: erpnext/buying/doctype/purchase_order/purchase_order.js:324 #: erpnext/buying/doctype/supplier_quotation/supplier_quotation.js:43 -#: erpnext/public/js/utils.js:947 +#: erpnext/public/js/utils.js:964 #: erpnext/selling/doctype/quotation/quotation.js:136 #: erpnext/selling/doctype/sales_order/sales_order.js:90 #: erpnext/selling/doctype/sales_order/sales_order.js:946 @@ -58715,7 +58742,7 @@ msgstr "" msgid "Updating Variants..." msgstr "" -#: erpnext/manufacturing/doctype/work_order/work_order.js:1199 +#: erpnext/manufacturing/doctype/work_order/work_order.js:1206 msgid "Updating Work Order status" msgstr "" @@ -58943,6 +58970,12 @@ msgstr "" msgid "Used for Production Plan" msgstr "" +#. Description of the 'Is Internal Supplier' (Check) field in DocType +#. 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "Used for inter-company transactions" +msgstr "" + #. Description of the 'Purchase Expense Contra Account' (Link) field in DocType #. 'Item Default' #: erpnext/stock/doctype/item_default/item_default.json @@ -58954,6 +58987,12 @@ msgstr "" msgid "Used to create an opening Stock Entry with the Valuation Rate when the item is saved" msgstr "" +#. Description of the 'Tax Withholding Group' (Link) field in DocType +#. 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "Used to pick the correct rate row inside the Tax Withholding Category for this supplier (e.g. Company vs Individual rates)" +msgstr "" + #. Description of the 'Account Category' (Link) field in DocType 'Account' #: erpnext/accounts/doctype/account/account.json msgid "Used with Financial Report Template" @@ -58987,6 +59026,10 @@ msgstr "" msgid "User has not applied rule on the invoice {0}" msgstr "" +#: erpnext/crm/frappe_crm_api.py:176 +msgid "User not allowed to synchronize data from Frappe CRM on ERPNext. Contact System Manager of ERPNext." +msgstr "" + #: erpnext/setup/doctype/employee/employee.py:298 msgid "User {0} does not exist" msgstr "" @@ -59023,6 +59066,11 @@ msgstr "" msgid "Users can make manufacture entry against Job Cards" msgstr "" +#. Description of the 'Portal Users' (Tab Break) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Users listed here can log into the customer portal to view their orders, invoices, and deliveries." +msgstr "" + #. Description of the 'Role Allowed to over bill ' (Link) field in DocType #. 'Accounts Settings' #: erpnext/accounts/doctype/accounts_settings/accounts_settings.json @@ -59297,11 +59345,11 @@ msgstr "" msgid "Valuation Rate (In / Out)" msgstr "" -#: erpnext/stock/stock_ledger.py:2042 +#: erpnext/stock/stock_ledger.py:2031 msgid "Valuation Rate Missing" msgstr "" -#: erpnext/stock/stock_ledger.py:2020 +#: erpnext/stock/stock_ledger.py:2009 msgid "Valuation Rate for the Item {0}, is required to do accounting entries for {1} {2}." msgstr "" @@ -59309,7 +59357,7 @@ msgstr "" msgid "Valuation Rate is mandatory if Opening Stock entered" msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:789 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:792 msgid "Valuation Rate required for Item {0} at row {1}" msgstr "" @@ -59319,7 +59367,7 @@ msgstr "" msgid "Valuation and Total" msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:993 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:996 msgid "Valuation rate for customer provided items has been set to zero." msgstr "" @@ -59337,7 +59385,7 @@ msgstr "" msgid "Valuation type charges can not be marked as Inclusive" msgstr "" -#: erpnext/public/js/controllers/accounts.js:231 +#: erpnext/public/js/controllers/accounts.js:228 msgid "Valuation type charges can not marked as Inclusive" msgstr "" @@ -60174,7 +60222,7 @@ msgstr "" msgid "Warehouse not found against the account {0}" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1256 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1263 #: erpnext/stock/doctype/delivery_note/delivery_note.py:414 msgid "Warehouse required for stock Item {0}" msgstr "" @@ -60204,7 +60252,7 @@ msgstr "" msgid "Warehouse {0} is not allowed for Sales Order {1}, it should be {2}" msgstr "" -#: erpnext/controllers/stock_controller.py:813 +#: erpnext/controllers/stock_controller.py:816 msgid "Warehouse {0} is not linked to any account, please mention the account in the warehouse record or set default inventory account in company {1}." msgstr "" @@ -60496,10 +60544,6 @@ msgstr "" msgid "Website:" msgstr "" -#: erpnext/public/js/utils/naming_series.js:95 -msgid "Week of the year" -msgstr "" - #: erpnext/selling/report/sales_analytics/sales_analytics.py:457 #: erpnext/stock/report/stock_analytics/stock_analytics.py:121 msgid "Week {0} {1}" @@ -60640,7 +60684,12 @@ msgstr "" msgid "When enabled, it adds a cutoff date filter to Delivery Notes created in bulk from Sales Orders. This allows you to process orders only with a transaction date up to the specified cutoff date, which is useful for period-end processing and batch fulfillment." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:394 +#. Description of the 'Block Supplier' (Check) field in DocType 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "When enabled, transactions with this supplier will be blocked based on the Hold Type below" +msgstr "" + +#: erpnext/stock/doctype/stock_entry/stock_entry.py:397 msgid "When there are multiple finished goods ({0}) in a Repack stock entry, the basic rate for all finished goods must be set manually. To set rate manually, enable the checkbox 'Set Basic Rate Manually' in the respective finished good row." msgstr "" @@ -60871,7 +60920,7 @@ msgstr "" msgid "Work Order Item" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1012 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1015 msgid "Work Order Mismatch" msgstr "" @@ -60920,8 +60969,8 @@ msgstr "" msgid "Work Order cannot be raised against a Item Template" msgstr "" -#: erpnext/manufacturing/doctype/work_order/work_order.py:2662 -#: erpnext/manufacturing/doctype/work_order/work_order.py:2742 +#: erpnext/manufacturing/doctype/work_order/work_order.py:2694 +#: erpnext/manufacturing/doctype/work_order/work_order.py:2774 msgid "Work Order has been {0}" msgstr "" @@ -60933,11 +60982,11 @@ msgstr "" msgid "Work Order {0} created" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:2638 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2696 msgid "Work Order {0} has no produced qty" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1136 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1139 msgid "Work Order {0}: Job Card not found for the operation {1}" msgstr "" @@ -61252,14 +61301,6 @@ msgstr "" msgid "Year Start Date" msgstr "" -#: erpnext/public/js/utils/naming_series.js:92 -msgid "Year in 2 digits" -msgstr "" - -#: erpnext/public/js/utils/naming_series.js:91 -msgid "Year in 4 digits" -msgstr "" - #. Label of the year_of_passing (Int) field in DocType 'Employee Education' #: erpnext/setup/doctype/employee_education/employee_education.json msgid "Year of Passing" @@ -61309,11 +61350,7 @@ msgstr "" msgid "You can also set default CWIP account in Company {}" msgstr "" -#: erpnext/public/js/utils/naming_series.js:87 -msgid "You can also use variables in the series name by putting them between (.) dots" -msgstr "" - -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1057 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1064 msgid "You can change the parent account to a Balance Sheet account or select a different account." msgstr "" @@ -61354,7 +61391,7 @@ msgstr "" msgid "You can use {0} to reconcile against {1} later." msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1360 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1378 msgid "You can't make any changes to Job Card since Work Order is closed." msgstr "" @@ -61370,7 +61407,7 @@ msgstr "" msgid "You cannot change the rate if BOM is mentioned against any Item." msgstr "" -#: erpnext/accounts/doctype/accounting_period/accounting_period.py:136 +#: erpnext/accounts/doctype/accounting_period/accounting_period.py:149 msgid "You cannot create a {0} within the closed Accounting Period {1}" msgstr "" @@ -61394,7 +61431,7 @@ msgstr "" msgid "You cannot edit root node." msgstr "" -#: erpnext/accounts/doctype/accounts_settings/accounts_settings.py:196 +#: erpnext/accounts/doctype/accounts_settings/accounts_settings.py:197 msgid "You cannot enable both the settings '{0}' and '{1}'." msgstr "" @@ -61447,11 +61484,11 @@ msgstr "" msgid "You don't have enough points to redeem." msgstr "" -#: erpnext/controllers/accounts_controller.py:4446 +#: erpnext/controllers/accounts_controller.py:4444 msgid "You don't have permission to create a Company Address. Please contact your System Manager." msgstr "" -#: erpnext/controllers/accounts_controller.py:4426 +#: erpnext/controllers/accounts_controller.py:4424 msgid "You don't have permission to update Company details. Please contact your System Manager." msgstr "" @@ -61459,15 +61496,15 @@ msgstr "" msgid "You don't have permission to update Received Qty DocField for item {0}" msgstr "" -#: erpnext/controllers/accounts_controller.py:4420 +#: erpnext/controllers/accounts_controller.py:4418 msgid "You don't have permission to update this document. Please contact your System Manager." msgstr "" -#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:291 +#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:303 msgid "You had {} errors while creating opening invoices. Check {} for more details" msgstr "" -#: erpnext/public/js/utils.js:1047 +#: erpnext/public/js/utils.js:1064 msgid "You have already selected items from {0} {1}" msgstr "" @@ -61499,11 +61536,11 @@ msgstr "" msgid "You have to enable auto re-order in Stock Settings to maintain re-order levels." msgstr "" -#: erpnext/selling/page/point_of_sale/pos_controller.js:281 +#: erpnext/selling/page/point_of_sale/pos_controller.js:272 msgid "You have unsaved changes. Do you want to save the invoice?" msgstr "" -#: erpnext/selling/page/point_of_sale/pos_controller.js:743 +#: erpnext/selling/page/point_of_sale/pos_controller.js:734 msgid "You must select a customer before adding an item." msgstr "" @@ -61567,7 +61604,7 @@ msgstr "" msgid "Zero Rated" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:723 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:726 msgid "Zero quantity" msgstr "" @@ -61593,7 +61630,7 @@ msgstr "" msgid "`Allow Negative rates for Items`" msgstr "" -#: erpnext/stock/stock_ledger.py:2034 +#: erpnext/stock/stock_ledger.py:2023 msgid "after" msgstr "" @@ -61634,7 +61671,7 @@ msgid "cannot be greater than 100" msgstr "" #: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:341 -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1145 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1152 msgid "dated {0}" msgstr "" @@ -61687,10 +61724,6 @@ msgstr "" msgid "fieldname" msgstr "" -#: erpnext/public/js/utils/naming_series.js:97 -msgid "fieldname on the document e.g." -msgstr "" - #. Option for the 'Service Provider' (Select) field in DocType 'Currency #. Exchange Settings' #: erpnext/accounts/doctype/currency_exchange_settings/currency_exchange_settings.json @@ -61768,7 +61801,7 @@ msgstr "" msgid "paid to" msgstr "" -#: erpnext/public/js/utils.js:463 +#: erpnext/public/js/utils.js:480 msgid "payments app is not installed. Please install it from {0} or {1}" msgstr "" @@ -61789,7 +61822,7 @@ msgstr "" msgid "per hour" msgstr "" -#: erpnext/stock/stock_ledger.py:2035 +#: erpnext/stock/stock_ledger.py:2024 msgid "performing either one below:" msgstr "" @@ -61822,7 +61855,7 @@ msgstr "" msgid "reconciled" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1516 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1523 msgid "returned" msgstr "" @@ -61857,7 +61890,7 @@ msgstr "" msgid "sandbox" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1516 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1523 msgid "sold" msgstr "" @@ -61865,8 +61898,8 @@ msgstr "" msgid "subscription is already cancelled." msgstr "" -#: erpnext/controllers/status_updater.py:492 -#: erpnext/controllers/status_updater.py:511 +#: erpnext/controllers/status_updater.py:503 +#: erpnext/controllers/status_updater.py:522 msgid "target_ref_field" msgstr "" @@ -61884,7 +61917,7 @@ msgstr "" msgid "to" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:3239 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:3246 msgid "to unallocate the amount of this Return Invoice before cancelling it." msgstr "" @@ -61973,11 +62006,6 @@ msgstr "" msgid "{0} Digest" msgstr "" -#: erpnext/public/js/utils/naming_series.js:263 -#: erpnext/public/js/utils/naming_series.js:403 -msgid "{0} Naming Series" -msgstr "" - #: erpnext/accounts/utils.py:1570 msgid "{0} Number {1} is already used in {2} {3}" msgstr "" @@ -62128,7 +62156,7 @@ msgstr "" msgid "{0} in row {1}" msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:452 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:463 msgid "{0} is a child table and will be deleted automatically with its parent" msgstr "" @@ -62142,7 +62170,7 @@ msgstr "" msgid "{0} is added multiple times on rows: {1}" msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:628 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:639 msgid "{0} is already running for {1}" msgstr "" @@ -62154,7 +62182,7 @@ msgstr "" msgid "{0} is in Draft. Submit it before creating the Asset." msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1171 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1178 msgid "{0} is mandatory for Item {1}" msgstr "" @@ -62163,7 +62191,7 @@ msgstr "" msgid "{0} is mandatory for account {1}" msgstr "" -#: erpnext/public/js/controllers/taxes_and_totals.js:131 +#: erpnext/public/js/controllers/taxes_and_totals.js:132 msgid "{0} is mandatory. Maybe Currency Exchange record is not created for {1} to {2}" msgstr "" @@ -62175,7 +62203,7 @@ msgstr "" msgid "{0} is not a CSV file." msgstr "" -#: erpnext/selling/doctype/customer/customer.py:235 +#: erpnext/selling/doctype/customer/customer.py:236 msgid "{0} is not a company bank account" msgstr "" @@ -62183,7 +62211,7 @@ msgstr "" msgid "{0} is not a group node. Please select a group node as parent cost center" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:775 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:778 msgid "{0} is not a stock Item" msgstr "" @@ -62207,7 +62235,7 @@ msgstr "" msgid "{0} is not enabled in {1}" msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:636 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:647 msgid "{0} is not running. Cannot trigger events for this Document" msgstr "" @@ -62251,7 +62279,7 @@ msgstr "" msgid "{0} must be negative in return document" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2416 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2423 msgid "{0} not allowed to transact with {1}. Please change the Company or add the Company in the 'Allowed To Transact With'-Section in the Customer record." msgstr "" @@ -62267,7 +62295,7 @@ msgstr "" msgid "{0} payment entries can not be filtered by {1}" msgstr "" -#: erpnext/controllers/stock_controller.py:1732 +#: erpnext/controllers/stock_controller.py:1779 msgid "{0} qty of Item {1} is being received into Warehouse {2} with capacity {3}." msgstr "" @@ -62280,7 +62308,7 @@ msgstr "" msgid "{0} transactions will be imported into the system. Please review the details below and click the 'Import' button to proceed." msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:727 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:730 msgid "{0} units are reserved for Item {1} in Warehouse {2}, please un-reserve the same to {3} the Stock Reconciliation." msgstr "" @@ -62296,16 +62324,16 @@ msgstr "" msgid "{0} units of {1} are required in {2} with the inventory dimension: {3} on {4} {5} for {6} to complete the transaction." msgstr "" -#: erpnext/stock/stock_ledger.py:1687 erpnext/stock/stock_ledger.py:2183 -#: erpnext/stock/stock_ledger.py:2197 +#: erpnext/stock/stock_ledger.py:1676 erpnext/stock/stock_ledger.py:2172 +#: erpnext/stock/stock_ledger.py:2186 msgid "{0} units of {1} needed in {2} on {3} {4} for {5} to complete this transaction." msgstr "" -#: erpnext/stock/stock_ledger.py:2284 erpnext/stock/stock_ledger.py:2329 +#: erpnext/stock/stock_ledger.py:2273 erpnext/stock/stock_ledger.py:2318 msgid "{0} units of {1} needed in {2} on {3} {4} to complete this transaction." msgstr "" -#: erpnext/stock/stock_ledger.py:1681 +#: erpnext/stock/stock_ledger.py:1670 msgid "{0} units of {1} needed in {2} to complete this transaction." msgstr "" @@ -62333,7 +62361,7 @@ msgstr "" msgid "{0} will be set as the {1} in subsequently scanned items" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1023 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1024 msgid "{0} {1}" msgstr "" @@ -62482,7 +62510,7 @@ msgstr "" msgid "{0} {1}: Accounting Entry for {2} can only be made in currency: {3}" msgstr "" -#: erpnext/controllers/stock_controller.py:945 +#: erpnext/controllers/stock_controller.py:948 msgid "{0} {1}: Cost Center is mandatory for Item {2}" msgstr "" @@ -62531,8 +62559,8 @@ msgstr "" msgid "{0}'s {1} cannot be after {2}'s Expected End Date." msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1332 -#: erpnext/manufacturing/doctype/job_card/job_card.py:1340 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1350 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1358 msgid "{0}, complete the operation {1} before the operation {2}." msgstr "" @@ -62540,19 +62568,19 @@ msgstr "" msgid "{0}, {1} or {2} are the only allowed options." msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:523 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:534 msgid "{0}: Child table (auto-deleted with parent)" msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:518 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:529 msgid "{0}: Not found" msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:514 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:525 msgid "{0}: Protected DocType" msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:528 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:539 msgid "{0}: Virtual DocType (no database table)" msgstr "" @@ -62568,27 +62596,27 @@ msgstr "" msgid "{0}: {1} is a group account." msgstr "" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:977 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:986 msgid "{0}: {1} must be less than {2}" msgstr "" -#: erpnext/controllers/buying_controller.py:1019 +#: erpnext/controllers/buying_controller.py:1082 msgid "{count} Assets created for {item_code}" msgstr "" -#: erpnext/controllers/buying_controller.py:917 +#: erpnext/controllers/buying_controller.py:980 msgid "{doctype} {name} is cancelled or closed." msgstr "" -#: erpnext/controllers/buying_controller.py:641 +#: erpnext/controllers/buying_controller.py:704 msgid "{field_label} is mandatory for sub-contracted {doctype}." msgstr "" -#: erpnext/controllers/stock_controller.py:2193 +#: erpnext/controllers/stock_controller.py:2240 msgid "{item_name}'s Sample Size ({sample_size}) cannot be greater than the Accepted Quantity ({accepted_quantity})" msgstr "" -#: erpnext/controllers/stock_controller.py:1958 +#: erpnext/controllers/stock_controller.py:2005 msgid "{ref_doctype} {ref_name} status is {status}." msgstr "" @@ -62596,7 +62624,7 @@ msgstr "" msgid "{}" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2182 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2189 msgid "{} can't be cancelled since the Loyalty Points earned has been redeemed. First cancel the {} No {}" msgstr "" From 65202d2be17b70321f6620c46792ebdbfcc7a3ce Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Wed, 17 Jun 2026 08:12:54 +0530 Subject: [PATCH 34/54] refactor(tests): reuse persistent master data instead of creating company per test Replace per-test company creation in setUp() with persistent master data from BootStrapTestData. Add Test PCV Company to test_records.json so it becomes a persistent fixture rather than a throwaway created per test run. Co-Authored-By: Claude Sonnet 4.6 (cherry picked from commit 6e62750c2f3272a5994b60a41abc6909c14f7d65) # Conflicts: # erpnext/accounts/report/financial_ratios/test_financial_ratios.py --- .../test_payment_ledger_entry.py | 74 ++--------- .../test_period_closing_voucher.py | 61 ++++----- .../financial_ratios/test_financial_ratios.py | 73 +++++++++++ .../report/gross_profit/test_gross_profit.py | 88 +++---------- .../payment_ledger/test_payment_ledger.py | 31 +---- .../tests/test_accounts_controller.py | 116 +++--------------- .../vat_audit_report/test_vat_audit_report.py | 2 +- .../setup/doctype/company/test_records.json | 9 ++ 8 files changed, 157 insertions(+), 297 deletions(-) create mode 100644 erpnext/accounts/report/financial_ratios/test_financial_ratios.py diff --git a/erpnext/accounts/doctype/payment_ledger_entry/test_payment_ledger_entry.py b/erpnext/accounts/doctype/payment_ledger_entry/test_payment_ledger_entry.py index 6ea63fd6c24..c30d2a80488 100644 --- a/erpnext/accounts/doctype/payment_ledger_entry/test_payment_ledger_entry.py +++ b/erpnext/accounts/doctype/payment_ledger_entry/test_payment_ledger_entry.py @@ -10,75 +10,23 @@ from erpnext.accounts.doctype.payment_entry.payment_entry import get_payment_ent from erpnext.accounts.doctype.payment_entry.test_payment_entry import create_payment_entry from erpnext.accounts.doctype.sales_invoice.test_sales_invoice import create_sales_invoice from erpnext.selling.doctype.sales_order.test_sales_order import make_sales_order -from erpnext.stock.doctype.item.test_item import create_item from erpnext.tests.utils import ERPNextTestSuite class TestPaymentLedgerEntry(ERPNextTestSuite): def setUp(self): self.ple = qb.DocType("Payment Ledger Entry") - self.create_company() - self.create_item() - self.create_customer() - - def create_company(self): - company_name = "_Test Payment Ledger" - company = None - if frappe.db.exists("Company", company_name): - company = frappe.get_doc("Company", company_name) - else: - company = frappe.get_doc( - { - "doctype": "Company", - "company_name": company_name, - "country": "India", - "default_currency": "INR", - "create_chart_of_accounts_based_on": "Standard Template", - "chart_of_accounts": "Standard", - } - ) - company = company.save() - - self.company = company.name - self.cost_center = company.cost_center - self.warehouse = "All Warehouses - _PL" - self.income_account = "Sales - _PL" - self.expense_account = "Cost of Goods Sold - _PL" - self.debit_to = "Debtors - _PL" - self.creditors = "Creditors - _PL" - - # create bank account - if frappe.db.exists("Account", "HDFC - _PL"): - self.bank = "HDFC - _PL" - else: - bank_acc = frappe.get_doc( - { - "doctype": "Account", - "account_name": "HDFC", - "parent_account": "Bank Accounts - _PL", - "company": self.company, - } - ) - bank_acc.save() - self.bank = bank_acc.name - - def create_item(self): - item_name = "_Test PL Item" - item = create_item( - item_code=item_name, is_stock_item=0, company=self.company, warehouse=self.warehouse - ) - self.item = item if isinstance(item, str) else item.item_code - - def create_customer(self): - name = "_Test PL Customer" - if frappe.db.exists("Customer", name): - self.customer = name - else: - customer = frappe.new_doc("Customer") - customer.customer_name = name - customer.type = "Individual" - customer.save() - self.customer = customer.name + self.company = "_Test Company" + self.cost_center = "Main - _TC" + self.warehouse = "Stores - _TC" + self.income_account = "Sales - _TC" + self.expense_account = "Cost of Goods Sold - _TC" + self.debit_to = "Debtors - _TC" + self.creditors = "Creditors - _TC" + self.bank = "Cash - _TC" + self.item = "_Test Item" + self.customer = "_Test Customer" + self.clear_old_entries() def create_sales_invoice( self, qty=1, rate=100, posting_date=None, do_not_save=False, do_not_submit=False diff --git a/erpnext/accounts/doctype/period_closing_voucher/test_period_closing_voucher.py b/erpnext/accounts/doctype/period_closing_voucher/test_period_closing_voucher.py index 95ab540d657..cf226d4e5c7 100644 --- a/erpnext/accounts/doctype/period_closing_voucher/test_period_closing_voucher.py +++ b/erpnext/accounts/doctype/period_closing_voucher/test_period_closing_voucher.py @@ -19,7 +19,6 @@ class TestPeriodClosingVoucher(ERPNextTestSuite): frappe.db.set_single_value("Accounts Settings", "use_legacy_controller_for_pcv", 1) def test_closing_entry(self): - company = create_company() cost_center = create_cost_center("Test Cost Center 1") jv1 = make_journal_entry( @@ -28,10 +27,10 @@ class TestPeriodClosingVoucher(ERPNextTestSuite): account1="Cash - TPC", account2="Sales - TPC", cost_center=cost_center, - company=company, + company="Test PCV Company", save=False, ) - jv1.company = company + jv1.company = "Test PCV Company" jv1.save() jv1.submit() @@ -41,10 +40,10 @@ class TestPeriodClosingVoucher(ERPNextTestSuite): account1="Cost of Goods Sold - TPC", account2="Cash - TPC", cost_center=cost_center, - company=company, + company="Test PCV Company", save=False, ) - jv2.company = company + jv2.company = "Test PCV Company" jv2.save() jv2.submit() @@ -68,14 +67,13 @@ class TestPeriodClosingVoucher(ERPNextTestSuite): self.assertEqual(pcv_gle, expected_gle) def test_cost_center_wise_posting(self): - company = create_company() surplus_account = create_account() cost_center1 = create_cost_center("Main") cost_center2 = create_cost_center("Western Branch") create_sales_invoice( - company=company, + company="Test PCV Company", cost_center=cost_center1, income_account="Sales - TPC", expense_account="Cost of Goods Sold - TPC", @@ -86,7 +84,7 @@ class TestPeriodClosingVoucher(ERPNextTestSuite): posting_date="2021-03-15", ) create_sales_invoice( - company=company, + company="Test PCV Company", cost_center=cost_center2, income_account="Sales - TPC", expense_account="Cost of Goods Sold - TPC", @@ -131,12 +129,11 @@ class TestPeriodClosingVoucher(ERPNextTestSuite): ) def test_period_closing_with_finance_book_entries(self): - company = create_company() surplus_account = create_account() cost_center = create_cost_center("Test Cost Center 1") create_sales_invoice( - company=company, + company="Test PCV Company", income_account="Sales - TPC", expense_account="Cost of Goods Sold - TPC", cost_center=cost_center, @@ -153,9 +150,9 @@ class TestPeriodClosingVoucher(ERPNextTestSuite): amount=400, cost_center=cost_center, posting_date="2021-03-15", - company=company, + company="Test PCV Company", ) - jv.company = company + jv.company = "Test PCV Company" jv.finance_book = create_finance_book().name jv.save() jv.submit() @@ -182,7 +179,6 @@ class TestPeriodClosingVoucher(ERPNextTestSuite): self.assertSequenceEqual(pcv_gle, expected_gle) def test_gl_entries_restrictions(self): - company = create_company() cost_center = create_cost_center("Test Cost Center 1") self.make_period_closing_voucher(posting_date="2021-03-31") @@ -193,16 +189,15 @@ class TestPeriodClosingVoucher(ERPNextTestSuite): account1="Cash - TPC", account2="Sales - TPC", cost_center=cost_center, - company=company, + company="Test PCV Company", save=False, ) - jv1.company = company + jv1.company = "Test PCV Company" jv1.save() self.assertRaises(frappe.ValidationError, jv1.submit) def test_closing_balance_with_dimensions_and_test_reposting_entry(self): - company = create_company() cost_center1 = create_cost_center("Test Cost Center 1") cost_center2 = create_cost_center("Test Cost Center 2") @@ -212,10 +207,10 @@ class TestPeriodClosingVoucher(ERPNextTestSuite): account1="Cash - TPC", account2="Sales - TPC", cost_center=cost_center1, - company=company, + company="Test PCV Company", save=False, ) - jv1.company = company + jv1.company = "Test PCV Company" jv1.save() jv1.submit() @@ -225,10 +220,10 @@ class TestPeriodClosingVoucher(ERPNextTestSuite): account1="Cash - TPC", account2="Sales - TPC", cost_center=cost_center2, - company=company, + company="Test PCV Company", save=False, ) - jv2.company = company + jv2.company = "Test PCV Company" jv2.save() jv2.submit() @@ -255,11 +250,11 @@ class TestPeriodClosingVoucher(ERPNextTestSuite): account1="Cash - TPC", account2="Sales - TPC", cost_center=cost_center2, - company=company, + company="Test PCV Company", save=False, ) - jv3.company = company + jv3.company = "Test PCV Company" jv3.save() jv3.submit() @@ -294,12 +289,12 @@ class TestPeriodClosingVoucher(ERPNextTestSuite): self.assertEqual(cc2_closing_balance.credit, 500) self.assertEqual(cc2_closing_balance.credit_in_account_currency, 500) - warehouse = frappe.db.get_value("Warehouse", {"company": company}, "name") + warehouse = frappe.db.get_value("Warehouse", {"company": "Test PCV Company"}, "name") repost_doc = frappe.get_doc( { "doctype": "Repost Item Valuation", - "company": company, + "company": "Test PCV Company", "posting_date": "2020-03-15", "based_on": "Item and Warehouse", "item_code": "Test Item 1", @@ -340,7 +335,6 @@ class TestPeriodClosingVoucher(ERPNextTestSuite): {"enable_immutable_ledger": 1}, ) def test_immutable_ledger_reverse_entry_uses_passed_posting_date_after_pcv(self): - company = create_company() cost_center = create_cost_center("Test Cost Center 1") jv = make_journal_entry( @@ -349,10 +343,10 @@ class TestPeriodClosingVoucher(ERPNextTestSuite): account1="Cash - TPC", account2="Sales - TPC", cost_center=cost_center, - company=company, + company="Test PCV Company", save=False, ) - jv.company = company + jv.company = "Test PCV Company" jv.save() jv.submit() @@ -378,19 +372,6 @@ class TestPeriodClosingVoucher(ERPNextTestSuite): self.assertEqual(totals_after_cancel.total_debit, totals_after_cancel.total_credit) -def create_company(): - company = frappe.get_doc( - { - "doctype": "Company", - "company_name": "Test PCV Company", - "country": "United States", - "default_currency": "USD", - } - ) - company.insert(ignore_if_duplicate=True) - return company.name - - def create_account(): account = frappe.get_doc( { diff --git a/erpnext/accounts/report/financial_ratios/test_financial_ratios.py b/erpnext/accounts/report/financial_ratios/test_financial_ratios.py new file mode 100644 index 00000000000..ef45fa0f1e6 --- /dev/null +++ b/erpnext/accounts/report/financial_ratios/test_financial_ratios.py @@ -0,0 +1,73 @@ +# Copyright (c) 2023, Frappe Technologies Pvt. Ltd. and Contributors +# MIT License. See license.txt + +import frappe +from frappe.utils import today + +from erpnext.accounts.report.financial_ratios.financial_ratios import execute +from erpnext.tests.utils import ERPNextTestSuite + + +class TestFinancialRatios(ERPNextTestSuite): + def setUp(self): + self.company = "_Test Company" + self.abbr = "_TC" + # The report matches the group accounts by their account_type, which the + # standard chart of accounts does not set on group accounts by default. + self.set_account_type("Fixed Assets", "Fixed Asset") + self.set_account_type("Direct Income", "Direct Income") + + def set_account_type(self, account_name, account_type): + frappe.db.set_value("Account", f"{account_name} - {self.abbr}", "account_type", account_type) + + def test_fixed_asset_turnover_uses_net_fixed_assets(self): + # Acquire a fixed asset worth 10,000 funded by equity. + self.make_journal_entry("Buildings", "Capital Stock", 10000) + # Book sales of 20,000 collected in cash. Total assets now = 30,000 + # (Buildings 10,000 + Cash 20,000), while net fixed assets stay at 10,000. + self.make_journal_entry("Cash", "Sales", 20000) + + columns, data = execute(self.get_report_filters()) + year_key = columns[1]["fieldname"] + ratio_row = next((row for row in data if row.get("ratio") == "Fixed Asset Turnover Ratio"), None) + self.assertIsNotNone(ratio_row, "Fixed Asset Turnover Ratio row not found in report output") + + # Net Sales / Net Fixed Assets = 20,000 / 10,000 = 2.0 + # (the old behaviour divided by total assets, giving 20,000 / 30,000 = 0.667) + self.assertEqual(ratio_row[year_key], 2.0) + + def get_report_filters(self): + active_fy = frappe.db.get_value( + "Fiscal Year", + {"disabled": 0, "year_start_date": ("<=", today()), "year_end_date": (">=", today())}, + ["name", "year_start_date", "year_end_date"], + as_dict=True, + ) + return frappe._dict( + company=self.company, + from_fiscal_year=active_fy.name, + to_fiscal_year=active_fy.name, + period_start_date=active_fy.year_start_date, + period_end_date=active_fy.year_end_date, + filter_based_on="Fiscal Year", + periodicity="Yearly", + ) + + def make_journal_entry(self, debit_account, credit_account, amount): + journal_entry = frappe.new_doc("Journal Entry") + journal_entry.posting_date = today() + journal_entry.company = self.company + for account, debit, credit in ( + (debit_account, amount, 0), + (credit_account, 0, amount), + ): + journal_entry.append( + "accounts", + { + "account": f"{account} - {self.abbr}", + "debit_in_account_currency": debit, + "credit_in_account_currency": credit, + }, + ) + journal_entry.insert() + journal_entry.submit() diff --git a/erpnext/accounts/report/gross_profit/test_gross_profit.py b/erpnext/accounts/report/gross_profit/test_gross_profit.py index 72fef842849..416f2982414 100644 --- a/erpnext/accounts/report/gross_profit/test_gross_profit.py +++ b/erpnext/accounts/report/gross_profit/test_gross_profit.py @@ -14,71 +14,17 @@ from erpnext.tests.utils import ERPNextTestSuite class TestGrossProfit(ERPNextTestSuite): def setUp(self): - self.create_company() - self.create_item() - self.create_bundle() - self.create_customer() - - def create_company(self): - company_name = "_Test Gross Profit" - abbr = "_GP" - if frappe.db.exists("Company", company_name): - company = frappe.get_doc("Company", company_name) - else: - company = frappe.get_doc( - { - "doctype": "Company", - "company_name": company_name, - "country": "India", - "default_currency": "INR", - "create_chart_of_accounts_based_on": "Standard Template", - "chart_of_accounts": "Standard", - } - ) - company = company.save() - - self.company = company.name - self.cost_center = company.cost_center - self.warehouse = "Stores - " + abbr - self.finished_warehouse = "Finished Goods - " + abbr - self.income_account = "Sales - " + abbr - self.expense_account = "Cost of Goods Sold - " + abbr - self.debit_to = "Debtors - " + abbr - self.creditors = "Creditors - " + abbr - - def create_item(self): - item = create_item( - item_code="_Test GP Item", is_stock_item=1, company=self.company, warehouse=self.warehouse - ) - self.item = item if isinstance(item, str) else item.item_code - - def create_bundle(self): - from erpnext.selling.doctype.product_bundle.test_product_bundle import make_product_bundle - - item2 = create_item( - item_code="_Test GP Item 2", is_stock_item=1, company=self.company, warehouse=self.warehouse - ) - self.item2 = item2 if isinstance(item2, str) else item2.item_code - - # This will be parent item - bundle = create_item( - item_code="_Test GP bundle", is_stock_item=0, company=self.company, warehouse=self.warehouse - ) - self.bundle = bundle if isinstance(bundle, str) else bundle.item_code - - # Create Product Bundle - self.product_bundle = make_product_bundle(parent=self.bundle, items=[self.item, self.item2]) - - def create_customer(self): - name = "_Test GP Customer" - if frappe.db.exists("Customer", name): - self.customer = name - else: - customer = frappe.new_doc("Customer") - customer.customer_name = name - customer.type = "Individual" - customer.save() - self.customer = customer.name + self.company = "_Test Company" + self.cost_center = "Main - _TC" + self.warehouse = "Stores - _TC" + self.finished_warehouse = "Finished Goods - _TC" + self.income_account = "Sales - _TC" + self.expense_account = "Cost of Goods Sold - _TC" + self.debit_to = "Debtors - _TC" + self.item = "_Test Item" + self.item2 = "_Test Item Home Desktop 100" + self.bundle = "_Test Product Bundle Item" + self.customer = "_Test Customer" def create_sales_invoice( self, qty=1, rate=100, posting_date=None, do_not_save=False, do_not_submit=False @@ -212,7 +158,7 @@ class TestGrossProfit(ERPNextTestSuite): "posting_date": frappe.utils.datetime.date.fromisoformat(nowdate()), "item_code": self.item, "item_name": self.item, - "warehouse": "Stores - _GP", + "warehouse": "Stores - _TC", "qty": 1.0, "avg._selling_rate": 100.0, "valuation_rate": 150.0, @@ -241,7 +187,7 @@ class TestGrossProfit(ERPNextTestSuite): "posting_date": frappe.utils.datetime.date.fromisoformat(nowdate()), "item_code": self.item, "item_name": self.item, - "warehouse": "Stores - _GP", + "warehouse": "Stores - _TC", "qty": 1.0, "avg._selling_rate": 100.0, "valuation_rate": 100.0, @@ -373,7 +319,7 @@ class TestGrossProfit(ERPNextTestSuite): "posting_date": frappe.utils.datetime.date.fromisoformat(nowdate()), "item_code": self.item, "item_name": self.item, - "warehouse": "Stores - _GP", + "warehouse": "Stores - _TC", "qty": 4.0, "avg._selling_rate": 100.0, "valuation_rate": 125.0, @@ -414,7 +360,7 @@ class TestGrossProfit(ERPNextTestSuite): "posting_date": frappe.utils.datetime.date.fromisoformat(nowdate()), "item_code": self.item, "item_name": self.item, - "warehouse": "Stores - _GP", + "warehouse": "Stores - _TC", "qty": 0.0, "avg._selling_rate": 100, "valuation_rate": 0.0, @@ -460,7 +406,7 @@ class TestGrossProfit(ERPNextTestSuite): "posting_date": frappe.utils.datetime.date.fromisoformat(nowdate()), "item_code": self.item, "item_name": self.item, - "warehouse": "Stores - _GP", + "warehouse": "Stores - _TC", "qty": -1.0, "avg._selling_rate": 100.0, "valuation_rate": 0.0, @@ -553,7 +499,7 @@ class TestGrossProfit(ERPNextTestSuite): "posting_date": frappe.utils.datetime.date.fromisoformat(nowdate()), "item_code": self.item, "item_name": self.item, - "warehouse": "Stores - _GP", + "warehouse": "Stores - _TC", "qty": 4.0, "avg._selling_rate": 800.0, "valuation_rate": 700.0, diff --git a/erpnext/accounts/report/payment_ledger/test_payment_ledger.py b/erpnext/accounts/report/payment_ledger/test_payment_ledger.py index 00206059672..9628e853a13 100644 --- a/erpnext/accounts/report/payment_ledger/test_payment_ledger.py +++ b/erpnext/accounts/report/payment_ledger/test_payment_ledger.py @@ -9,7 +9,12 @@ from erpnext.tests.utils import ERPNextTestSuite class TestPaymentLedger(ERPNextTestSuite): def setUp(self): - self.create_company() + self.company = "_Test Company" + self.cost_center = "Main - _TC" + self.warehouse = "Stores - _TC" + self.income_account = "Sales - _TC" + self.expense_account = "Cost of Goods Sold - _TC" + self.debit_to = "Debtors - _TC" self.cleanup() def cleanup(self): @@ -22,30 +27,6 @@ class TestPaymentLedger(ERPNextTestSuite): for doctype in doctypes: qb.from_(doctype).delete().where(doctype.company == self.company).run() - def create_company(self): - name = "Test Payment Ledger" - company = None - if frappe.db.exists("Company", name): - company = frappe.get_doc("Company", name) - else: - company = frappe.get_doc( - { - "doctype": "Company", - "company_name": name, - "country": "India", - "default_currency": "INR", - "create_chart_of_accounts_based_on": "Standard Template", - "chart_of_accounts": "Standard", - } - ) - company = company.save() - self.company = company.name - self.cost_center = company.cost_center - self.warehouse = "All Warehouses" + " - " + company.abbr - self.income_account = company.default_income_account - self.expense_account = company.default_expense_account - self.debit_to = company.default_receivable_account - def test_unpaid_invoice_outstanding(self): sinv = create_sales_invoice( company=self.company, diff --git a/erpnext/controllers/tests/test_accounts_controller.py b/erpnext/controllers/tests/test_accounts_controller.py index 4fabe83ebfb..10b6ca8edf3 100644 --- a/erpnext/controllers/tests/test_accounts_controller.py +++ b/erpnext/controllers/tests/test_accounts_controller.py @@ -18,39 +18,9 @@ from erpnext.buying.doctype.purchase_order.test_purchase_order import ( prepare_data_for_internal_transfer, ) from erpnext.projects.doctype.project.test_project import make_project -from erpnext.stock.doctype.item.test_item import create_item from erpnext.tests.utils import ERPNextTestSuite -def make_customer(customer_name, currency=None): - if not frappe.db.exists("Customer", customer_name): - customer = frappe.new_doc("Customer") - customer.customer_name = customer_name - customer.customer_type = "Individual" - - if currency: - customer.default_currency = currency - customer.save() - return customer.name - else: - return customer_name - - -def make_supplier(supplier_name, currency=None): - if not frappe.db.exists("Supplier", supplier_name): - supplier = frappe.new_doc("Supplier") - supplier.supplier_name = supplier_name - supplier.supplier_type = "Individual" - supplier.supplier_group = "All Supplier Groups" - - if currency: - supplier.default_currency = currency - supplier.save() - return supplier.name - else: - return supplier_name - - class TestAccountsController(ERPNextTestSuite): """ Test Exchange Gain/Loss booking on various scenarios. @@ -67,79 +37,29 @@ class TestAccountsController(ERPNextTestSuite): """ def setUp(self): - self.create_company() + self.company = "_Test Company" + self.company_abbr = "_TC" + self.cost_center = "Main - _TC" + self.warehouse = "Stores - _TC" + self.finished_warehouse = "Finished Goods - _TC" + self.income_account = "Sales - _TC" + self.expense_account = "Cost of Goods Sold - _TC" + self.debit_to = "Debtors - _TC" + self.debit_usd = "_Test Receivable USD - _TC" + self.debtors_usd = "_Test Receivable USD - _TC" + self.cash = "Cash - _TC" + self.creditors = "Creditors - _TC" + self.creditors_usd = "_Test Payable USD - _TC" + self.item = "_Test Item" + self.customer = "_Test Customer USD" + self.supplier = "_Test Supplier USD" self.create_account() - self.create_item() - self.create_parties() self.clear_old_entries() frappe.flags.is_reverse_depr_entry = False - def create_company(self): - company_name = "_Test Company" - self.company_abbr = abbr = "_TC" - if frappe.db.exists("Company", company_name): - company = frappe.get_doc("Company", company_name) - else: - company = frappe.get_doc( - { - "doctype": "Company", - "company_name": company_name, - "country": "India", - "default_currency": "INR", - "create_chart_of_accounts_based_on": "Standard Template", - "chart_of_accounts": "Standard", - } - ) - company = company.save() - - self.company = company.name - self.cost_center = company.cost_center - self.warehouse = "Stores - " + abbr - self.finished_warehouse = "Finished Goods - " + abbr - self.income_account = "Sales - " + abbr - self.expense_account = "Cost of Goods Sold - " + abbr - self.debit_to = "Debtors - " + abbr - self.debit_usd = "Debtors USD - " + abbr - self.cash = "Cash - " + abbr - self.creditors = "Creditors - " + abbr - - def create_item(self): - item = create_item( - item_code="_Test Notebook", is_stock_item=0, company=self.company, warehouse=self.warehouse - ) - self.item = item if isinstance(item, str) else item.item_code - - def create_parties(self): - self.create_customer() - self.create_supplier() - - def create_customer(self): - self.customer = make_customer("_Test MC Customer USD", "USD") - - def create_supplier(self): - self.supplier = make_supplier("_Test MC Supplier USD", "USD") - def create_account(self): + # Advance accounts are not in persistent test data — create them on demand. accounts = [ - frappe._dict( - { - "attribute_name": "debtors_usd", - "name": "Debtors USD", - "account_type": "Receivable", - "account_currency": "USD", - "parent_account": "Accounts Receivable - " + self.company_abbr, - } - ), - frappe._dict( - { - "attribute_name": "creditors_usd", - "name": "Creditors USD", - "account_type": "Payable", - "account_currency": "USD", - "parent_account": "Accounts Payable - " + self.company_abbr, - } - ), - # Advance accounts under Asset and Liability header frappe._dict( { "attribute_name": "advance_received_usd", @@ -185,6 +105,7 @@ class TestAccountsController(ERPNextTestSuite): company.save() customer = frappe.get_doc("Customer", self.customer) + customer.accounts = [] customer.append( "accounts", { @@ -196,6 +117,7 @@ class TestAccountsController(ERPNextTestSuite): customer.save() supplier = frappe.get_doc("Supplier", self.supplier) + supplier.accounts = [] supplier.append( "accounts", { diff --git a/erpnext/regional/report/vat_audit_report/test_vat_audit_report.py b/erpnext/regional/report/vat_audit_report/test_vat_audit_report.py index ded1bde3133..897692df59b 100644 --- a/erpnext/regional/report/vat_audit_report/test_vat_audit_report.py +++ b/erpnext/regional/report/vat_audit_report/test_vat_audit_report.py @@ -16,7 +16,7 @@ from erpnext.tests.utils import ERPNextTestSuite class TestVATAuditReport(ERPNextTestSuite): def setUp(self): - make_company("_Test Company SA VAT", "_TCSV") + self.company = "_Test Company SA VAT" create_account( account_name="VAT - 0%", diff --git a/erpnext/setup/doctype/company/test_records.json b/erpnext/setup/doctype/company/test_records.json index 74615e60162..d3faeec4672 100644 --- a/erpnext/setup/doctype/company/test_records.json +++ b/erpnext/setup/doctype/company/test_records.json @@ -214,5 +214,14 @@ "doctype": "Company", "chart_of_accounts": "Standard", "create_chart_of_accounts_based_on": "Standard Template" + }, + { + "abbr": "TPC", + "company_name": "Test PCV Company", + "country": "United States", + "default_currency": "USD", + "doctype": "Company", + "chart_of_accounts": "Standard", + "create_chart_of_accounts_based_on": "Standard Template" } ] From a8aa73baae601f2caab8b8c78ac14b09a3801a6b Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Wed, 17 Jun 2026 08:23:31 +0530 Subject: [PATCH 35/54] refactor(test): remove even more dead code (cherry picked from commit 3d109571ee98de7768c3e94317d5ce23c250dad0) --- .../test_payment_ledger_entry.py | 13 ------------- .../report/payment_ledger/test_payment_ledger.py | 11 ----------- .../controllers/tests/test_accounts_controller.py | 13 ------------- 3 files changed, 37 deletions(-) diff --git a/erpnext/accounts/doctype/payment_ledger_entry/test_payment_ledger_entry.py b/erpnext/accounts/doctype/payment_ledger_entry/test_payment_ledger_entry.py index c30d2a80488..1262a354b46 100644 --- a/erpnext/accounts/doctype/payment_ledger_entry/test_payment_ledger_entry.py +++ b/erpnext/accounts/doctype/payment_ledger_entry/test_payment_ledger_entry.py @@ -26,7 +26,6 @@ class TestPaymentLedgerEntry(ERPNextTestSuite): self.bank = "Cash - _TC" self.item = "_Test Item" self.customer = "_Test Customer" - self.clear_old_entries() def create_sales_invoice( self, qty=1, rate=100, posting_date=None, do_not_save=False, do_not_submit=False @@ -99,18 +98,6 @@ class TestPaymentLedgerEntry(ERPNextTestSuite): ) return so - def clear_old_entries(self): - doctype_list = [ - "GL Entry", - "Payment Ledger Entry", - "Sales Invoice", - "Purchase Invoice", - "Payment Entry", - "Journal Entry", - ] - for doctype in doctype_list: - qb.from_(qb.DocType(doctype)).delete().where(qb.DocType(doctype).company == self.company).run() - def create_journal_entry(self, acc1=None, acc2=None, amount=0, posting_date=None, cost_center=None): je = frappe.new_doc("Journal Entry") je.posting_date = posting_date or nowdate() diff --git a/erpnext/accounts/report/payment_ledger/test_payment_ledger.py b/erpnext/accounts/report/payment_ledger/test_payment_ledger.py index 9628e853a13..79a36c95f47 100644 --- a/erpnext/accounts/report/payment_ledger/test_payment_ledger.py +++ b/erpnext/accounts/report/payment_ledger/test_payment_ledger.py @@ -15,17 +15,6 @@ class TestPaymentLedger(ERPNextTestSuite): self.income_account = "Sales - _TC" self.expense_account = "Cost of Goods Sold - _TC" self.debit_to = "Debtors - _TC" - self.cleanup() - - def cleanup(self): - doctypes = [] - doctypes.append(qb.DocType("GL Entry")) - doctypes.append(qb.DocType("Payment Ledger Entry")) - doctypes.append(qb.DocType("Sales Invoice")) - doctypes.append(qb.DocType("Payment Entry")) - - for doctype in doctypes: - qb.from_(doctype).delete().where(doctype.company == self.company).run() def test_unpaid_invoice_outstanding(self): sinv = create_sales_invoice( diff --git a/erpnext/controllers/tests/test_accounts_controller.py b/erpnext/controllers/tests/test_accounts_controller.py index 10b6ca8edf3..3400578d307 100644 --- a/erpnext/controllers/tests/test_accounts_controller.py +++ b/erpnext/controllers/tests/test_accounts_controller.py @@ -54,7 +54,6 @@ class TestAccountsController(ERPNextTestSuite): self.customer = "_Test Customer USD" self.supplier = "_Test Supplier USD" self.create_account() - self.clear_old_entries() frappe.flags.is_reverse_depr_entry = False def create_account(self): @@ -243,18 +242,6 @@ class TestAccountsController(ERPNextTestSuite): pinv.submit() return pinv - def clear_old_entries(self): - doctype_list = [ - "GL Entry", - "Payment Ledger Entry", - "Sales Invoice", - "Purchase Invoice", - "Payment Entry", - "Journal Entry", - ] - for doctype in doctype_list: - qb.from_(qb.DocType(doctype)).delete().where(qb.DocType(doctype).company == self.company).run() - def create_payment_reconciliation(self): pr = frappe.new_doc("Payment Reconciliation") pr.company = self.company From 1a9fcfb0cce1904bace8f416e7f14a7a1207bc76 Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Wed, 17 Jun 2026 10:22:00 +0530 Subject: [PATCH 36/54] refactor(test): broken test case in accounts controller (cherry picked from commit 59a69fc497e99f7e415b46ad33afa37ccfa36b2f) --- erpnext/controllers/tests/test_accounts_controller.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/erpnext/controllers/tests/test_accounts_controller.py b/erpnext/controllers/tests/test_accounts_controller.py index 3400578d307..b826543afd5 100644 --- a/erpnext/controllers/tests/test_accounts_controller.py +++ b/erpnext/controllers/tests/test_accounts_controller.py @@ -864,7 +864,7 @@ class TestAccountsController(ERPNextTestSuite): # Create a Sales Invoice sinv = frappe.new_doc("Sales Invoice") - sinv.customer = self.customer + sinv.customer = "_Test Customer" sinv.company = self.company sinv.currency = "INR" sinv.taxes_and_charges = "_Test Tax - _TC" @@ -880,7 +880,7 @@ class TestAccountsController(ERPNextTestSuite): def test_19_fetch_taxes_based_on_item_tax_template_template(self): # Create a Sales Invoice sinv = frappe.new_doc("Sales Invoice") - sinv.customer = self.customer + sinv.customer = "_Test Customer" sinv.company = self.company sinv.currency = "INR" sinv.append( From 93b28f33370308de1b6b03418d4ead8b2dca35ed Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Wed, 17 Jun 2026 11:17:24 +0530 Subject: [PATCH 37/54] refactor(test): update assertion for new test records (cherry picked from commit afeaba5142885535ffdc3416887910ee3e629690) --- .../report/gross_profit/test_gross_profit.py | 48 +++++++++---------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/erpnext/accounts/report/gross_profit/test_gross_profit.py b/erpnext/accounts/report/gross_profit/test_gross_profit.py index 416f2982414..f6425118fac 100644 --- a/erpnext/accounts/report/gross_profit/test_gross_profit.py +++ b/erpnext/accounts/report/gross_profit/test_gross_profit.py @@ -219,7 +219,7 @@ class TestGrossProfit(ERPNextTestSuite): "item_code": self.item2, "s_warehouse": "", "t_warehouse": self.finished_warehouse, - "qty": 1, + "qty": 2, "basic_rate": 100, "conversion_factor": item.conversion_factor or 1.0, "transfer_qty": flt(item.qty) * (flt(item.conversion_factor) or 1.0), @@ -362,8 +362,8 @@ class TestGrossProfit(ERPNextTestSuite): "item_name": self.item, "warehouse": "Stores - _TC", "qty": 0.0, - "avg._selling_rate": 100, - "valuation_rate": 0.0, + "avg._selling_rate": 100.0, + "valuation_rate": 100.0, "selling_amount": 0.0, "buying_amount": 0.0, "gross_profit": 0.0, @@ -383,7 +383,7 @@ class TestGrossProfit(ERPNextTestSuite): """ # Make Cr Note sinv = self.create_sales_invoice( - qty=-1, rate=100, posting_date=nowdate(), do_not_save=True, do_not_submit=True + qty=-1, rate=200, posting_date=nowdate(), do_not_save=True, do_not_submit=True ) sinv.is_return = 1 sinv.items[0].allow_zero_valuation_rate = 1 @@ -408,12 +408,12 @@ class TestGrossProfit(ERPNextTestSuite): "item_name": self.item, "warehouse": "Stores - _TC", "qty": -1.0, - "avg._selling_rate": 100.0, - "valuation_rate": 0.0, - "selling_amount": -100.0, - "buying_amount": 0.0, + "avg._selling_rate": 200.0, + "valuation_rate": 100.0, + "selling_amount": -200.0, + "buying_amount": -100.0, "gross_profit": -100.0, - "gross_profit_%": -100.0, + "gross_profit_%": -50.0, } gp_entry = [x for x in data if x.parent_invoice == sinv.name] report_output = {k: v for k, v in gp_entry[0].items() if k in expected_entry} @@ -562,7 +562,7 @@ class TestGrossProfit(ERPNextTestSuite): def test_gross_profit_groupby_invoices(self): create_sales_invoice( qty=1, - rate=100, + rate=200, company=self.company, customer=self.customer, item_code=self.item, @@ -584,10 +584,10 @@ class TestGrossProfit(ERPNextTestSuite): _, data = execute(filters=filters) total = data[-1] - self.assertEqual(total.selling_amount, 100.0) - self.assertEqual(total.buying_amount, 0.0) + self.assertEqual(total.selling_amount, 200.0) + self.assertEqual(total.buying_amount, 100.0) self.assertEqual(total.gross_profit, 100.0) - self.assertEqual(total.get("gross_profit_%"), 100.0) + self.assertEqual(total.get("gross_profit_%"), 50.0) def test_profit_for_later_period_return(self): month_start_date, month_end_date = get_first_day(nowdate()), get_last_day(nowdate()) @@ -596,7 +596,7 @@ class TestGrossProfit(ERPNextTestSuite): return_inv_date = add_days(month_end_date, 1) # create sales invoice on month start date - sinv = self.create_sales_invoice(qty=1, rate=100, do_not_save=True, do_not_submit=True) + sinv = self.create_sales_invoice(qty=1, rate=200, do_not_save=True, do_not_submit=True) sinv.set_posting_time = 1 sinv.posting_date = sales_inv_date sinv.save().submit() @@ -615,10 +615,10 @@ class TestGrossProfit(ERPNextTestSuite): _, data = execute(filters=filters) total = data[-1] - self.assertEqual(total.selling_amount, 100.0) - self.assertEqual(total.buying_amount, 0.0) + self.assertEqual(total.selling_amount, 200.0) + self.assertEqual(total.buying_amount, 100.0) self.assertEqual(total.gross_profit, 100.0) - self.assertEqual(total.get("gross_profit_%"), 100.0) + self.assertEqual(total.get("gross_profit_%"), 50.0) # extend filters upto returned period filters.update({"to_date": return_inv_date}) @@ -636,10 +636,10 @@ class TestGrossProfit(ERPNextTestSuite): _, data = execute(filters=filters) total = data[-1] - self.assertEqual(total.selling_amount, -100.0) - self.assertEqual(total.buying_amount, 0.0) + self.assertEqual(total.selling_amount, -200.0) + self.assertEqual(total.buying_amount, -100.0) self.assertEqual(total.gross_profit, -100.0) - self.assertEqual(total.get("gross_profit_%"), -100.0) + self.assertEqual(total.get("gross_profit_%"), -50.0) def test_sales_person_wise_gross_profit(self): sales_person = make_sales_person("_Test Sales Person") @@ -670,10 +670,10 @@ class TestGrossProfit(ERPNextTestSuite): _, data = execute(filters=filters) total = data[-1] - self.assertEqual(total[5], 1000.0) - self.assertEqual(total[6], 0.0) - self.assertEqual(total[7], 1000.0) - self.assertEqual(total[8], 100.0) + self.assertEqual(total[5], 1000.0) # selling amount + self.assertEqual(total[6], 1000.0) # buying amount + self.assertEqual(total[7], 0.0) # gross profit + self.assertEqual(total[8], 0.0) # gross profit % def test_drop_ship(self): from erpnext.buying.doctype.purchase_order.purchase_order import make_purchase_invoice From 1a2a9b6cfcfdf792ec85f58844eddeb3b1e1f329 Mon Sep 17 00:00:00 2001 From: Sowmiya P K Date: Mon, 29 Jun 2026 10:41:42 +0530 Subject: [PATCH 38/54] fix: adjust outstanding amount calculation in purchase and sales registers (cherry picked from commit 6115af720be58ae113b903a6b10ae9cbb7a6e205) # Conflicts: # erpnext/accounts/report/purchase_register/purchase_register.py --- .../purchase_register/purchase_register.py | 21 +++++++++++-- .../test_purchase_register.py | 31 ++++++++++++++++++- .../report/sales_register/sales_register.py | 19 ++++++++++-- .../sales_register/test_sales_register.py | 25 ++++++++++++++- 4 files changed, 90 insertions(+), 6 deletions(-) diff --git a/erpnext/accounts/report/purchase_register/purchase_register.py b/erpnext/accounts/report/purchase_register/purchase_register.py index 4801bf15b56..a54e4dfa503 100644 --- a/erpnext/accounts/report/purchase_register/purchase_register.py +++ b/erpnext/accounts/report/purchase_register/purchase_register.py @@ -4,6 +4,7 @@ import frappe from frappe import _, msgprint +from frappe.model.meta import get_field_precision from frappe.query_builder.custom import ConstantColumn from frappe.utils import flt, getdate from pypika.terms import Bracket, LiteralValue, Order @@ -125,17 +126,32 @@ def _execute(filters=None, additional_table_columns=None): row.update({frappe.scrub(tax_acc): tax_amount}) # total tax, grand total, rounded total & outstanding amount + + outstanding_precision = ( + get_field_precision( + frappe.get_meta("Purchase Invoice").get_field("outstanding_amount"), + currency=company_currency, + ) + or 2 + ) row.update( { "total_tax": total_tax, "grand_total": inv.base_grand_total, "rounded_total": inv.base_rounded_total, - "outstanding_amount": inv.outstanding_amount, } ) if inv.doctype == "Purchase Invoice": - row.update({"debit": inv.base_grand_total, "credit": 0.0}) + row.update( + { + "debit": inv.base_grand_total, + "credit": 0.0, + "outstanding_amount": flt( + (inv.outstanding_amount * (inv.conversion_rate or 1)), outstanding_precision + ), + } + ) else: row.update({"debit": 0.0, "credit": inv.base_grand_total}) data.append(row) @@ -395,6 +411,7 @@ def get_invoices(filters, additional_query_columns): pi.base_rounded_total, pi.outstanding_amount, pi.mode_of_payment, + pi.conversion_rate, ) .where(pi.docstatus == 1) ) diff --git a/erpnext/accounts/report/purchase_register/test_purchase_register.py b/erpnext/accounts/report/purchase_register/test_purchase_register.py index 9e0e2002f60..622a3847d32 100644 --- a/erpnext/accounts/report/purchase_register/test_purchase_register.py +++ b/erpnext/accounts/report/purchase_register/test_purchase_register.py @@ -2,7 +2,7 @@ # MIT License. See license.txt import frappe -from frappe.utils import add_months, today +from frappe.utils import add_months, flt, today from erpnext.accounts.report.purchase_register.purchase_register import execute from erpnext.stock.doctype.purchase_receipt.test_purchase_receipt import make_purchase_receipt @@ -67,6 +67,35 @@ class TestPurchaseRegister(ERPNextTestSuite): self.assertEqual(first_row.total_tax, 100) self.assertEqual(first_row.grand_total, 1100) + def test_purchase_currency_conversion(self): + usd_creditors = frappe.get_doc( + { + "doctype": "Account", + "account_name": "USD Creditors", + "parent_account": "Accounts Payable - _TC", + "company": "_Test Company", + "account_type": "Payable", + "root_type": "Liability", + "report_type": "Balance Sheet", + "account_currency": "USD", + } + ).insert() + foreign_invoice = make_purchase_invoice() + foreign_invoice.db_set("currency", "USD") + foreign_invoice.db_set("conversion_rate", 80) + foreign_invoice.db_set("credit_to", usd_creditors.name) + foreign_invoice.db_set("outstanding_amount", 100.236) + local_invoice = make_purchase_invoice() + local_invoice.db_set("currency", "INR") + local_invoice.db_set("conversion_rate", 1) + local_invoice.db_set("outstanding_amount", 200.456) + columns, data, *_ = execute(frappe._dict({"company": foreign_invoice.company})) + outstanding_precision = 2 + + data_by_name = {x.get("voucher_no"): x.get("outstanding_amount") for x in data} + self.assertEqual(data_by_name.get(foreign_invoice.name), flt((100.236 * 80), outstanding_precision)) + self.assertEqual(data_by_name.get(local_invoice.name), flt(200.456, outstanding_precision)) + def test_purchase_register_ledger_view(self): filters = frappe._dict( company="_Test Company 6", diff --git a/erpnext/accounts/report/sales_register/sales_register.py b/erpnext/accounts/report/sales_register/sales_register.py index 5aebcc9e2f4..79a2ef1d92d 100644 --- a/erpnext/accounts/report/sales_register/sales_register.py +++ b/erpnext/accounts/report/sales_register/sales_register.py @@ -141,17 +141,31 @@ def _execute(filters, additional_table_columns=None): # total tax, grand total, outstanding amount & rounded total + outstanding_precision = ( + get_field_precision( + frappe.get_meta("Sales Invoice").get_field("outstanding_amount"), + currency=company_currency, + ) + or 2 + ) row.update( { "tax_total": total_tax, "grand_total": inv.base_grand_total, "rounded_total": inv.base_rounded_total, - "outstanding_amount": inv.outstanding_amount, } ) if inv.doctype == "Sales Invoice": - row.update({"debit": inv.base_grand_total, "credit": 0.0}) + row.update( + { + "debit": inv.base_grand_total, + "credit": 0.0, + "outstanding_amount": flt( + (inv.outstanding_amount * (inv.conversion_rate or 1)), outstanding_precision + ), + } + ) else: row.update({"debit": 0.0, "credit": inv.base_grand_total}) data.append(row) @@ -437,6 +451,7 @@ def get_invoices(filters, additional_query_columns): si.is_internal_customer, si.represents_company, si.company, + si.conversion_rate, ) .where(si.docstatus == 1) ) diff --git a/erpnext/accounts/report/sales_register/test_sales_register.py b/erpnext/accounts/report/sales_register/test_sales_register.py index 132b7a0ee3b..6f0107630cf 100644 --- a/erpnext/accounts/report/sales_register/test_sales_register.py +++ b/erpnext/accounts/report/sales_register/test_sales_register.py @@ -1,9 +1,10 @@ import frappe -from frappe.utils import getdate, today +from frappe.utils import add_days, flt, getdate, today from erpnext.accounts.doctype.sales_invoice.test_sales_invoice import create_sales_invoice from erpnext.accounts.report.sales_register.sales_register import execute from erpnext.accounts.test.accounts_mixin import AccountsTestMixin +from erpnext.selling.doctype.customer.test_customer import make_customer from erpnext.selling.doctype.sales_order.test_sales_order import make_sales_order from erpnext.tests.utils import ERPNextTestSuite @@ -216,3 +217,25 @@ class TestItemWiseSalesRegister(ERPNextTestSuite, AccountsTestMixin): } result_output = {k: v for k, v in filtered_output[0].items() if k in expected_result} self.assertDictEqual(result_output, expected_result) + + def test_outstanding_currency_conversion(self): + foreign_invoice = create_sales_invoice( + customer="_Test Customer", + posting_date=add_days(today(), -1), + qty=1, + rate=100, + ) + foreign_invoice.db_set("currency", "USD") + foreign_invoice.db_set("conversion_rate", 80) + foreign_invoice.db_set("outstanding_amount", 100.236) + make_customer("_Test Customer2") + local_invoice = create_sales_invoice( + customer="_Test Customer2", currency="INR", conversion_rate=1, qty=1, rate=200 + ) + local_invoice.db_set("outstanding_amount", 200.456) + columns, data, *_ = execute(frappe._dict({"company": foreign_invoice.company})) + outstanding_precision = 2 + + data_by_name = {x.get("voucher_no"): x.get("outstanding_amount") for x in data} + self.assertEqual(data_by_name.get(foreign_invoice.name), flt((100.236 * 80), outstanding_precision)) + self.assertEqual(data_by_name.get(local_invoice.name), flt(200.456, outstanding_precision)) From 490e12526711c74ebc58ea25affe935346ab95d3 Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Mon, 29 Jun 2026 11:09:23 +0530 Subject: [PATCH 39/54] fix: manual backport of #55896 --- .../accounts/report/financial_ratios/financial_ratios.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/erpnext/accounts/report/financial_ratios/financial_ratios.py b/erpnext/accounts/report/financial_ratios/financial_ratios.py index 48047c81944..492dd049a27 100644 --- a/erpnext/accounts/report/financial_ratios/financial_ratios.py +++ b/erpnext/accounts/report/financial_ratios/financial_ratios.py @@ -76,6 +76,7 @@ def get_ratios_data(filters, period_list, years): cogs, total_expense = {}, {} quick_asset = {} direct_expense = {} + fixed_asset = {} for year in years: total_quick_asset = 0 @@ -93,6 +94,7 @@ def get_ratios_data(filters, period_list, years): quick_asset, total_quick_asset, ], + [fixed_asset, total_asset, "Fixed Asset", year, assets, "Asset", {}, 0], [ current_liability, total_liability, @@ -112,7 +114,7 @@ def get_ratios_data(filters, period_list, years): add_solvency_ratios( data, years, total_asset, total_liability, net_sales, cogs, total_income, total_expense ) - add_turnover_ratios(data, years, period_list, filters, total_asset, net_sales, cogs, direct_expense) + add_turnover_ratios(data, years, period_list, filters, fixed_asset, net_sales, cogs, direct_expense) return data @@ -193,7 +195,7 @@ def add_solvency_ratios( data.append(return_on_equity_ratio) -def add_turnover_ratios(data, years, period_list, filters, total_asset, net_sales, cogs, direct_expense): +def add_turnover_ratios(data, years, period_list, filters, fixed_asset, net_sales, cogs, direct_expense): precision = frappe.db.get_single_value("System Settings", "float_precision") data.append({"ratio": _("Turnover Ratios")}) @@ -208,7 +210,7 @@ def add_turnover_ratios(data, years, period_list, filters, total_asset, net_sale ) ratio_data = [ - [_("Fixed Asset Turnover Ratio"), net_sales, total_asset], + [_("Fixed Asset Turnover Ratio"), net_sales, fixed_asset], [_("Debtor Turnover Ratio"), net_sales, avg_debtors], [_("Creditor Turnover Ratio"), direct_expense, avg_creditors], [_("Inventory Turnover Ratio"), cogs, avg_stock], From 3abadc7a5f626cf47b57dd6d05298ebb7c3df546 Mon Sep 17 00:00:00 2001 From: Mihir Kandoi Date: Sun, 21 Jun 2026 10:14:42 +0530 Subject: [PATCH 40/54] fix(controllers): fix supplier-RFQ portal list query (wrong column + Postgres DISTINCT) rfq_transaction_list had two defects introduced when it was converted to the query builder: 1. `party.supplier == party[0]` compared supplier to a column literally named "0" (a stray index on the DocType, not the intended `parties[0]` value). This renders as `supplier = \`0\`` / `supplier = "0"` and errors on BOTH engines (MariaDB: Unknown column '0'; Postgres: column "0" does not exist), so the supplier portal RFQ list was completely broken. 2. SELECT DISTINCT ordered by `creation`, which is not in the select list. Postgres rejects this ("for SELECT DISTINCT, ORDER BY expressions must appear in select list"). Compare against `parties[0]` and add `creation` to the select list. Co-Authored-By: Claude Opus 4.8 (1M context) (cherry picked from commit a7d9078bf450141a4e10fcb2f406f6ba272fe803) # Conflicts: # erpnext/controllers/tests/test_website_list_for_contact.py --- .../tests/test_website_list_for_contact.py | 36 +++++++++++++++++++ .../controllers/website_list_for_contact.py | 5 +-- 2 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 erpnext/controllers/tests/test_website_list_for_contact.py diff --git a/erpnext/controllers/tests/test_website_list_for_contact.py b/erpnext/controllers/tests/test_website_list_for_contact.py new file mode 100644 index 00000000000..fcb8f05d1b6 --- /dev/null +++ b/erpnext/controllers/tests/test_website_list_for_contact.py @@ -0,0 +1,36 @@ +# Copyright (c) 2025, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt + +import json + +from erpnext.tests.utils import ERPNextTestSuite + + +class TestWebsiteListForContact(ERPNextTestSuite): + def test_get_list_context_currency_symbols(self): + # get_list_context builds the enabled-currency symbol map via frappe.get_all (converted from + # raw SQL). Exercises that query and asserts a known enabled currency is present. + from erpnext.controllers.website_list_for_contact import get_list_context + + context = get_list_context() + + symbols = json.loads(context["currency_symbols"]) + self.assertIsInstance(symbols, dict) + self.assertIn("USD", symbols) + + def test_rfq_transaction_list_returns_supplier_rfq(self): + # rfq_transaction_list filters RFQs by the supplier (parties[0]) and uses SELECT DISTINCT with + # ORDER BY creation -- both must be valid on Postgres, and the supplier filter must compare to the + # party value (not a stray `party[0]` column reference). + from erpnext.buying.doctype.request_for_quotation.test_request_for_quotation import ( + make_request_for_quotation, + ) + from erpnext.controllers.website_list_for_contact import rfq_transaction_list + + rfq = make_request_for_quotation() + supplier = rfq.suppliers[0].supplier + + rows = rfq_transaction_list( + "Request for Quotation Supplier", "Request for Quotation", [supplier], 0, 20 + ) + self.assertIn(rfq.name, [row.name for row in rows]) diff --git a/erpnext/controllers/website_list_for_contact.py b/erpnext/controllers/website_list_for_contact.py index 7552b226285..88eb325b47a 100644 --- a/erpnext/controllers/website_list_for_contact.py +++ b/erpnext/controllers/website_list_for_contact.py @@ -181,9 +181,10 @@ def rfq_transaction_list(parties_doctype, doctype, parties, limit_start, limit_p party = frappe.qb.DocType(parties_doctype) data = ( frappe.qb.from_(party) - .select(party.parent.as_("name"), party.supplier) + # creation must be selected: Postgres requires SELECT DISTINCT order-by exprs in the select list + .select(party.parent.as_("name"), party.supplier, party.creation) .distinct() - .where((party.supplier == party[0]) & (party.docstatus == 1)) + .where((party.supplier == parties[0]) & (party.docstatus == 1)) .orderby(party.creation, order=frappe.qb.desc) .limit(limit_page_length) .offset(limit_start) From 5aa62d1cda4d9a50a75c76bacba36fc30629ca9d Mon Sep 17 00:00:00 2001 From: rohitwaghchaure Date: Mon, 29 Jun 2026 15:38:35 +0530 Subject: [PATCH 41/54] fix: update_qty_in_future_sle skips SLEs with same posting datetime (#56612) --- .../test_stock_ledger_entry.py | 101 ++++++++++++++++++ erpnext/stock/stock_ledger.py | 80 ++++++++------ 2 files changed, 149 insertions(+), 32 deletions(-) diff --git a/erpnext/stock/doctype/stock_ledger_entry/test_stock_ledger_entry.py b/erpnext/stock/doctype/stock_ledger_entry/test_stock_ledger_entry.py index 1a694f77f37..80d4a3d9efd 100644 --- a/erpnext/stock/doctype/stock_ledger_entry/test_stock_ledger_entry.py +++ b/erpnext/stock/doctype/stock_ledger_entry/test_stock_ledger_entry.py @@ -1244,6 +1244,107 @@ class TestStockLedgerEntry(ERPNextTestSuite, StockTestMixin): self.assertEqual(sle[0].qty_after_transaction, 105) self.assertEqual(sle[0].actual_qty, 100) + def test_update_qty_in_future_sle_shifts_same_timestamp_later_entry(self): + # update_qty_in_future_sle treats "future" as strictly after the current entry in the + # (posting_datetime, creation) order. An entry sharing the exact posting timestamp but created + # later must still have its running balance shifted; comparing posting_datetime alone would skip + # it. The current entry itself (same timestamp, same creation) must not be shifted. + from erpnext.stock.stock_ledger import update_qty_in_future_sle + + item = make_item().name + warehouse = "_Test Warehouse - _TC" + + receipt1 = make_purchase_receipt( + item_code=item, + warehouse=warehouse, + qty=10, + rate=10, + posting_date="2021-01-01", + posting_time="02:00:00", + ) + time.sleep(1) + receipt2 = make_purchase_receipt( + item_code=item, + warehouse=warehouse, + qty=20, + rate=10, + posting_date="2021-01-01", + posting_time="02:00:00", # identical timestamp, later creation + ) + + def sle(voucher): + return frappe.db.get_value( + "Stock Ledger Entry", + {"voucher_no": voucher.name, "is_cancelled": 0}, + ["name", "posting_date", "posting_time", "creation", "qty_after_transaction"], + as_dict=True, + ) + + sle1, sle2 = sle(receipt1), sle(receipt2) + self.assertEqual(sle1.qty_after_transaction, 10) + self.assertEqual(sle2.qty_after_transaction, 30) + + # Simulate a +5 qty shift originating at receipt1's ledger position. + args = frappe._dict( + { + "item_code": item, + "warehouse": warehouse, + "voucher_type": "Purchase Receipt", + "voucher_no": receipt1.name, + "posting_date": sle1.posting_date, + "posting_time": sle1.posting_time, + "creation": sle1.creation, + "actual_qty": 5, + } + ) + update_qty_in_future_sle(args, allow_negative_stock=True) + + # receipt2 (same timestamp, later creation) is shifted; receipt1 (the current entry) is not. + self.assertEqual(frappe.db.get_value("Stock Ledger Entry", sle2.name, "qty_after_transaction"), 35) + self.assertEqual(frappe.db.get_value("Stock Ledger Entry", sle1.name, "qty_after_transaction"), 10) + + def test_get_next_stock_reco_respects_creation_order(self): + # A stock reco sharing the exact posting timestamp of the current entry must only count as the + # "next" reco when it was created after that entry. A reco created before it actually precedes + # the entry and must not bound (truncate) the qty-shift range. + from erpnext.stock.stock_ledger import get_next_stock_reco + + item = make_item().name + warehouse = "_Test Warehouse - _TC" + + reco = create_stock_reconciliation( + item_code=item, + warehouse=warehouse, + qty=10, + rate=100, + posting_date="2021-01-01", + posting_time="02:00:00", + ) + reco_sle = frappe.db.get_value( + "Stock Ledger Entry", + {"voucher_no": reco.name, "is_cancelled": 0}, + ["posting_date", "posting_time", "creation"], + as_dict=True, + ) + + base_kwargs = { + "item_code": item, + "warehouse": warehouse, + "voucher_no": "SOME-OTHER-VOUCHER", + "posting_date": reco_sle.posting_date, + "posting_time": reco_sle.posting_time, + } + + # Current entry created AFTER the reco at the same timestamp -> reco precedes it -> not returned. + after = {**base_kwargs, "creation": add_to_date(reco_sle.creation, seconds=5)} + self.assertFalse(get_next_stock_reco(after)) + + # Current entry created BEFORE the reco at the same timestamp -> reco follows it -> returned. + before = {**base_kwargs, "creation": add_to_date(reco_sle.creation, seconds=-5)} + result = get_next_stock_reco(before) + self.assertTrue(result) + self.assertEqual(result[0].voucher_no, reco.name) + @ERPNextTestSuite.change_settings("System Settings", {"float_precision": 3, "currency_precision": 2}) def test_transfer_invariants(self): """Extact stock value should be transferred.""" diff --git a/erpnext/stock/stock_ledger.py b/erpnext/stock/stock_ledger.py index b8e7874002b..deb2ee29415 100644 --- a/erpnext/stock/stock_ledger.py +++ b/erpnext/stock/stock_ledger.py @@ -2033,36 +2033,44 @@ def get_valuation_rate( def update_qty_in_future_sle(args, allow_negative_stock=False): """Recalculate Qty after Transaction in future SLEs based on current SLE.""" - datetime_limit_condition = "" qty_shift = args.actual_qty - args["posting_datetime"] = get_combine_datetime(args["posting_date"], args["posting_time"]) + posting_datetime = get_combine_datetime(args["posting_date"], args["posting_time"]) + args["posting_datetime"] = posting_datetime # find difference/shift in qty caused by stock reconciliation if args.voucher_type == "Stock Reconciliation": qty_shift = get_stock_reco_qty_shift(args) + sle = frappe.qb.DocType("Stock Ledger Entry") + + # SLEs are ordered by (posting_datetime, creation). "Future" therefore means strictly after the + # current entry in that tuple order: a later posting_datetime, or the same posting_datetime with a + # later creation. Comparing posting_datetime alone would skip same-timestamp entries created after + # this one (e.g. the same item repeated in a voucher, or another voucher posted in the same second). + future_condition = sle.posting_datetime > posting_datetime + if args.get("creation"): + future_condition = future_condition | ( + (sle.posting_datetime == posting_datetime) & (sle.creation > args.get("creation")) + ) + + query = ( + frappe.qb.update(sle) + .set(sle.qty_after_transaction, sle.qty_after_transaction + qty_shift) + .where( + (sle.item_code == args.get("item_code")) + & (sle.warehouse == args.get("warehouse")) + & (sle.is_cancelled == 0) + & future_condition + ) + ) + # find the next nearest stock reco so that we only recalculate SLEs till that point next_stock_reco_detail = get_next_stock_reco(args) if next_stock_reco_detail: - detail = next_stock_reco_detail[0] - datetime_limit_condition = get_datetime_limit_condition(detail) + query = query.where(get_datetime_limit_condition(sle, next_stock_reco_detail[0])) - frappe.db.sql( # nosemgrep - f""" - update `tabStock Ledger Entry` - set qty_after_transaction = qty_after_transaction + {qty_shift} - where - item_code = %(item_code)s - and warehouse = %(warehouse)s - and is_cancelled = 0 - and ( - posting_datetime > %(posting_datetime)s - ) - {datetime_limit_condition} - """, - args, - ) + query.run() validate_negative_qty_in_future_sle(args, allow_negative_stock) @@ -2097,6 +2105,22 @@ def get_stock_reco_qty_shift(args): return stock_reco_qty_shift +def get_next_reco_datetime_condition(sle, kwargs): + """Match stock recos that come strictly after the current entry in (posting_datetime, creation) + order. Using posting_datetime alone (>=) could pick a reco sharing this exact timestamp but created + earlier — i.e. one that actually precedes this entry — and wrongly truncate the qty-shift range.""" + current_datetime = get_combine_datetime(kwargs.get("posting_date"), kwargs.get("posting_time")) + + creation = kwargs.get("creation") + if not creation: + # No creation tiebreaker available; fall back to the posting_datetime-only bound. + return sle.posting_datetime >= current_datetime + + return (sle.posting_datetime > current_datetime) | ( + (sle.posting_datetime == current_datetime) & (sle.creation > creation) + ) + + def get_next_stock_reco(kwargs): """Returns next nearest stock reconciliaton's details.""" @@ -2122,10 +2146,7 @@ def get_next_stock_reco(kwargs): & (sle.voucher_type == "Stock Reconciliation") & (sle.voucher_no != kwargs.get("voucher_no")) & (sle.is_cancelled == 0) - & ( - sle.posting_datetime - >= get_combine_datetime(kwargs.get("posting_date"), kwargs.get("posting_time")) - ) + & get_next_reco_datetime_condition(sle, kwargs) ) .orderby(sle.posting_datetime) .orderby(sle.creation) @@ -2138,17 +2159,12 @@ def get_next_stock_reco(kwargs): return query.run(as_dict=True) -def get_datetime_limit_condition(detail): +def get_datetime_limit_condition(sle, detail): posting_datetime = get_combine_datetime(detail.posting_date, detail.posting_time) - return f""" - and - (posting_datetime < '{posting_datetime}' - or ( - posting_datetime = '{posting_datetime}' - and creation < '{detail.creation}' - ) - )""" + return (sle.posting_datetime < posting_datetime) | ( + (sle.posting_datetime == posting_datetime) & (sle.creation < detail.creation) + ) def validate_negative_qty_in_future_sle(args, allow_negative_stock=False): From 762ce5c6842fcf77d3754ea98f6b4f71bec9b932 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 29 Jun 2026 19:04:47 +0530 Subject: [PATCH 42/54] fix: Use correct doctype name for PCV perm-check (backport #56606) (#56611) fix: Use correct doctype name for PCV perm-check (#56606) closes https://github.com/frappe/erpnext/issues/56593 (cherry picked from commit 747374e767a1b790d1cd2d83cab8ae3bdb3580ae) Co-authored-by: Ankush Menat --- .../process_period_closing_voucher.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/accounts/doctype/process_period_closing_voucher/process_period_closing_voucher.py b/erpnext/accounts/doctype/process_period_closing_voucher/process_period_closing_voucher.py index d5e10be7fdd..3239e6f4a00 100644 --- a/erpnext/accounts/doctype/process_period_closing_voucher/process_period_closing_voucher.py +++ b/erpnext/accounts/doctype/process_period_closing_voucher/process_period_closing_voucher.py @@ -92,7 +92,7 @@ class ProcessPeriodClosingVoucher(Document): @frappe.whitelist() def start_pcv_processing(docname: str): if frappe.db.get_value("Process Period Closing Voucher", docname, "status") in ["Queued", "Running"]: - frappe.has_permission("Process Payment Reconciliation", "write", doc=docname, throw=True) + frappe.has_permission("Process Period Closing Voucher", "write", doc=docname, throw=True) frappe.db.set_value("Process Period Closing Voucher", docname, "status", "Running") timeout = frappe.db.get_single_value("Accounts Settings", "pcv_job_timeout") or 3600 From 0829cb45a8afc7bd82983a7d05eaaf8063166f60 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 29 Jun 2026 23:30:48 +0530 Subject: [PATCH 43/54] fix: carry item-level project to Purchase Receipt GL entries (backport #56568) (#56619) fix: carry item-level project to Purchase Receipt GL entries (#56568) Purchase Receipt stock and asset GL lines used the item row's cost center but always fell back to the document-level project, unlike Purchase Invoice which uses the item-level project. add_gl_entry accepted a project argument but never wrote it to the GL dict, so the inward, Stock Received But Not Billed, landed cost, divisional loss, sub-contracting and exchange rate lines dropped the row's project. Write project into the GL dict and pass project=item.project on the entries that were missing it, so project behaves like cost center and matches Purchase Invoice. Ticket: 72523 (cherry picked from commit 6f97c7199c4f65e5e2fda31d99905077f2d2a2bc) Co-authored-by: Jatin3128 <140256508+Jatin3128@users.noreply.github.com> --- erpnext/controllers/stock_controller.py | 3 +++ erpnext/stock/doctype/purchase_receipt/purchase_receipt.py | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/erpnext/controllers/stock_controller.py b/erpnext/controllers/stock_controller.py index 26929cfa89a..9d6d8c1f854 100644 --- a/erpnext/controllers/stock_controller.py +++ b/erpnext/controllers/stock_controller.py @@ -1839,6 +1839,9 @@ class StockController(AccountsController): "remarks": remarks, } + if project: + gl_entry.update({"project": project}) + if voucher_detail_no: gl_entry.update({"voucher_detail_no": voucher_detail_no}) diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py index 10b40b216bb..7994770eaa5 100644 --- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py +++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py @@ -524,6 +524,7 @@ class PurchaseReceipt(BuyingController): remarks=remarks, against_account=stock_asset_rbnb, account_currency=account_currency, + project=item.project, item=item, ) @@ -577,6 +578,7 @@ class PurchaseReceipt(BuyingController): against_account=stock_asset_account_name, debit_in_account_currency=-1 * flt(outgoing_amount, item.precision("base_net_amount")), account_currency=account_currency, + project=item.project, item=item, ) @@ -601,6 +603,7 @@ class PurchaseReceipt(BuyingController): against_account=self.supplier, debit_in_account_currency=-1 * discrepancy_caused_by_exchange_rate_difference, account_currency=account_currency, + project=item.project, item=item, ) @@ -614,6 +617,7 @@ class PurchaseReceipt(BuyingController): against_account=self.supplier, debit_in_account_currency=-1 * discrepancy_caused_by_exchange_rate_difference, account_currency=account_currency, + project=item.project, item=item, ) @@ -676,6 +680,7 @@ class PurchaseReceipt(BuyingController): remarks=remarks, against_account=stock_asset_account_name, account_currency=supplier_warehouse_account_currency, + project=item.project, item=item, ) From 41812462b4f5de259dc4c898489822f8b6bbeb85 Mon Sep 17 00:00:00 2001 From: pandiyan Date: Mon, 29 Jun 2026 20:22:31 +0530 Subject: [PATCH 44/54] fix: set mr status to received when per_received is 100 even if per_ordered < 100 (cherry picked from commit a3c5ef6aa3119c83293e262f9d38ad57d3787cb9) --- erpnext/controllers/status_updater.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/controllers/status_updater.py b/erpnext/controllers/status_updater.py index 368a3ff8390..e0135a8775c 100644 --- a/erpnext/controllers/status_updater.py +++ b/erpnext/controllers/status_updater.py @@ -143,7 +143,7 @@ status_map = { ], [ "Partially Ordered", - "eval:self.status != 'Stopped' and self.per_ordered < 100 and self.per_ordered > 0 and self.docstatus == 1 and self.material_request_type not in ['Material Transfer', 'Customer Provided']", + "eval:self.status != 'Stopped' and self.per_ordered < 100 and self.per_ordered > 0 and self.per_received < 100 and self.docstatus == 1 and self.material_request_type not in ['Material Transfer', 'Customer Provided']", ], ], "POS Opening Entry": [ From c78265805680d683451f25bccf18459f477ba654 Mon Sep 17 00:00:00 2001 From: MochaMind Date: Tue, 30 Jun 2026 11:24:54 +0530 Subject: [PATCH 45/54] chore: sync translations to version-16-hotfix (#56617) --- erpnext/locale/af.po | 2065 +- erpnext/locale/ar.po | 2091 +- erpnext/locale/bg.po | 62002 +++++++++++++++++++++++++++++++++++++ erpnext/locale/bs.po | 2981 +- erpnext/locale/cs.po | 2083 +- erpnext/locale/da.po | 2073 +- erpnext/locale/de.po | 2123 +- erpnext/locale/eo.po | 2973 +- erpnext/locale/es.po | 2099 +- erpnext/locale/fa.po | 2227 +- erpnext/locale/fi.po | 2065 +- erpnext/locale/fr.po | 2101 +- erpnext/locale/hi.po | 2299 +- erpnext/locale/hr.po | 2985 +- erpnext/locale/hu.po | 2101 +- erpnext/locale/id.po | 2089 +- erpnext/locale/it.po | 2089 +- erpnext/locale/ko.po | 2553 +- erpnext/locale/my.po | 2067 +- erpnext/locale/nb.po | 2075 +- erpnext/locale/nl.po | 2099 +- erpnext/locale/pl.po | 2089 +- erpnext/locale/pt.po | 2085 +- erpnext/locale/pt_BR.po | 2091 +- erpnext/locale/ru.po | 2109 +- erpnext/locale/sl.po | 2085 +- erpnext/locale/sr.po | 2113 +- erpnext/locale/sr_CS.po | 2113 +- erpnext/locale/sv.po | 2985 +- erpnext/locale/ta.po | 2063 +- erpnext/locale/th.po | 2107 +- erpnext/locale/tr.po | 2103 +- erpnext/locale/uz.po | 62064 ++++++++++++++++++++++++++++++++++++++ erpnext/locale/vi.po | 2107 +- erpnext/locale/zh.po | 2111 +- erpnext/locale/zh_TW.po | 2065 +- 36 files changed, 162325 insertions(+), 37205 deletions(-) create mode 100644 erpnext/locale/bg.po create mode 100644 erpnext/locale/uz.po diff --git a/erpnext/locale/af.po b/erpnext/locale/af.po index 230a7f58ff4..6625cbfb7d2 100644 --- a/erpnext/locale/af.po +++ b/erpnext/locale/af.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: ERPNext VERSION\n" "Report-Msgid-Bugs-To: info@erpnext.com\n" -"POT-Creation-Date: 2026-06-21 10:42+0000\n" +"POT-Creation-Date: 2026-06-28 10:20+0000\n" "PO-Revision-Date: 2024-01-10 16:34+0553\n" "Last-Translator: info@erpnext.com\n" "Language-Team: info@erpnext.com\n" @@ -998,7 +998,7 @@ msgstr "" msgid "A - C" msgstr "" -#: erpnext/selling/doctype/customer/customer.py:354 +#: erpnext/selling/doctype/customer/customer.py:355 msgid "A Customer Group exists with same name please change the Customer name or rename the Customer Group" msgstr "'N Kliëntegroep bestaan met dieselfde naam, verander asseblief die Kliënt se naam of die naam van die Kliëntegroep" @@ -1237,7 +1237,7 @@ msgid "Accepted Qty in Stock UOM" msgstr "" #. Label of the qty (Float) field in DocType 'Purchase Receipt Item' -#: erpnext/public/js/controllers/transaction.js:2850 +#: erpnext/public/js/controllers/transaction.js:2864 #: erpnext/stock/doctype/purchase_receipt_item/purchase_receipt_item.json msgid "Accepted Quantity" msgstr "Geaccepteerde hoeveelheid" @@ -1273,10 +1273,15 @@ msgstr "" msgid "According to CEFACT/ICG/2010/IC013 or CEFACT/ICG/2010/IC010" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1264 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1269 msgid "According to the BOM {0}, the Item '{1}' is missing in the stock entry." msgstr "" +#. Description of the 'Customer Numbers' (Table) field in DocType 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "Account / customer numbers assigned to your companies by this supplier (for reconciliation on their statements)" +msgstr "" + #. Name of a report #: erpnext/accounts/report/account_balance/account_balance.json msgid "Account Balance" @@ -1388,7 +1393,7 @@ msgstr "" msgid "Account Manager" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1050 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1057 #: erpnext/controllers/accounts_controller.py:2403 msgid "Account Missing" msgstr "Rekening ontbreek" @@ -1889,16 +1894,16 @@ msgstr "" #: erpnext/assets/doctype/asset/asset.py:937 #: erpnext/assets/doctype/asset/asset.py:952 -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:543 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:546 msgid "Accounting Entry for Asset" msgstr "Rekeningkundige Inskrywing vir Bate" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:2262 -#: erpnext/stock/doctype/stock_entry/stock_entry.py:2282 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2320 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2340 msgid "Accounting Entry for LCV in Stock Entry {0}" msgstr "" -#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:912 +#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:918 msgid "Accounting Entry for Landed Cost Voucher for SCR {0}" msgstr "" @@ -1913,14 +1918,14 @@ msgstr "Rekeningkundige inskrywing vir diens" #: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1127 #: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1155 #: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1267 -#: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1503 -#: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1525 -#: erpnext/controllers/stock_controller.py:725 -#: erpnext/controllers/stock_controller.py:742 -#: erpnext/stock/doctype/purchase_receipt/purchase_receipt.py:931 -#: erpnext/stock/doctype/stock_entry/stock_entry.py:2207 -#: erpnext/stock/doctype/stock_entry/stock_entry.py:2221 -#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:747 +#: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1506 +#: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1528 +#: erpnext/controllers/stock_controller.py:728 +#: erpnext/controllers/stock_controller.py:745 +#: erpnext/stock/doctype/purchase_receipt/purchase_receipt.py:935 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2265 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2279 +#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:753 msgid "Accounting Entry for Stock" msgstr "Rekeningkundige Inskrywing vir Voorraad" @@ -1935,7 +1940,7 @@ msgstr "Rekeningkundige Inskrywing vir {0}: {1} kan slegs in valuta gemaak word: #: erpnext/accounts/doctype/invoice_discounting/invoice_discounting.js:193 #: erpnext/assets/doctype/asset/asset.js:185 #: erpnext/assets/doctype/asset_repair/asset_repair.js:92 -#: erpnext/buying/doctype/supplier/supplier.js:98 +#: erpnext/buying/doctype/supplier/supplier.js:123 #: erpnext/public/js/controllers/stock_controller.js:88 #: erpnext/public/js/utils/ledger_preview.js:8 #: erpnext/selling/doctype/customer/customer.js:173 @@ -1962,7 +1967,11 @@ msgstr "" msgid "Accounting Period" msgstr "Rekeningkundige Tydperk" -#: erpnext/accounts/doctype/accounting_period/accounting_period.py:68 +#: erpnext/accounts/doctype/accounting_period/accounting_period.py:49 +msgid "Accounting Period cannot be created for a future date. End Date {0} is after today." +msgstr "" + +#: erpnext/accounts/doctype/accounting_period/accounting_period.py:81 msgid "Accounting Period overlaps with {0}" msgstr "Rekeningkundige tydperk oorvleuel met {0}" @@ -1982,8 +1991,6 @@ msgstr "" #. Label of the section_break_2 (Section Break) field in DocType 'Asset #. Category' #. Label of the accounts (Table) field in DocType 'Asset Category' -#. Label of the accounts (Table) field in DocType 'Supplier' -#. Label of the accounts (Table) field in DocType 'Customer' #. Label of the accounts_tab (Tab Break) field in DocType 'Company' #. Label of the accounts (Table) field in DocType 'Customer Group' #. Label of the accounts (Section Break) field in DocType 'Email Digest' @@ -1995,8 +2002,6 @@ msgstr "" #: erpnext/accounts/doctype/payment_entry/payment_entry.json #: erpnext/accounts/doctype/tax_withholding_category/tax_withholding_category.json #: erpnext/assets/doctype/asset_category/asset_category.json -#: erpnext/buying/doctype/supplier/supplier.json -#: erpnext/selling/doctype/customer/customer.json #: erpnext/setup/doctype/company/company.json #: erpnext/setup/doctype/company/company.py:445 #: erpnext/setup/doctype/customer_group/customer_group.json @@ -2038,7 +2043,7 @@ msgstr "" #: erpnext/accounts/doctype/journal_entry/journal_entry.json #: erpnext/accounts/report/accounts_payable/accounts_payable.json #: erpnext/accounts/report/accounts_payable_summary/accounts_payable_summary.js:124 -#: erpnext/buying/doctype/supplier/supplier.js:110 +#: erpnext/buying/doctype/supplier/supplier.js:135 #: erpnext/workspace_sidebar/financial_reports.json #: erpnext/workspace_sidebar/invoicing.json #: erpnext/workspace_sidebar/payments.json @@ -2553,8 +2558,8 @@ msgstr "" msgid "Actual qty in stock" msgstr "Werklike hoeveelheid in voorraad" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1529 -#: erpnext/public/js/controllers/accounts.js:197 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1538 +#: erpnext/public/js/controllers/accounts.js:194 msgid "Actual type tax cannot be included in Item rate in row {0}" msgstr "Werklike tipe belasting kan nie in Itemkoers in ry {0} ingesluit word nie." @@ -2712,10 +2717,6 @@ msgstr "" msgid "Add Serial / Batch No (Rejected Qty)" msgstr "" -#: erpnext/public/js/utils/naming_series.js:26 -msgid "Add Series Prefix" -msgstr "" - #: erpnext/manufacturing/doctype/plant_floor/plant_floor.js:200 msgid "Add Stock" msgstr "" @@ -2954,7 +2955,7 @@ msgstr "" msgid "Additional Discount Amount (Company Currency)" msgstr "" -#: erpnext/controllers/taxes_and_totals.py:846 +#: erpnext/controllers/taxes_and_totals.py:849 msgid "Additional Discount Amount ({discount_amount}) cannot exceed the total before such discount ({total_before_discount})" msgstr "" @@ -3071,12 +3072,7 @@ msgid "" "\t\t\t\t\tin Manufacturing Settings." msgstr "" -#. Description of the 'Customer Details' (Text) field in DocType 'Customer' -#: erpnext/selling/doctype/customer/customer.json -msgid "Additional information regarding the customer." -msgstr "" - -#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:629 +#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:635 msgid "Additional {0} {1} of item {2} required as per BOM to complete this transaction" msgstr "" @@ -3333,7 +3329,7 @@ msgstr "" msgid "Advance amount" msgstr "" -#: erpnext/controllers/taxes_and_totals.py:983 +#: erpnext/controllers/taxes_and_totals.py:986 msgid "Advance amount cannot be greater than {0} {1}" msgstr "Voorskotbedrag kan nie groter wees as {0} {1}" @@ -3415,7 +3411,7 @@ msgstr "Teen rekening" msgid "Against Blanket Order" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1143 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1150 msgid "Against Customer Order {0}" msgstr "" @@ -3656,6 +3652,13 @@ msgstr "" msgid "Algorithm" msgstr "" +#. Label of the alias (Data) field in DocType 'Supplier' +#. Label of the alias (Data) field in DocType 'Customer' +#: erpnext/buying/doctype/supplier/supplier.json +#: erpnext/selling/doctype/customer/customer.json +msgid "Alias" +msgstr "" + #: erpnext/accounts/doctype/chart_of_accounts_importer/chart_of_accounts_importer.js:165 #: erpnext/accounts/doctype/chart_of_accounts_importer/chart_of_accounts_importer.js:185 #: erpnext/accounts/doctype/chart_of_accounts_importer/chart_of_accounts_importer.py:169 @@ -3822,11 +3825,16 @@ msgstr "" msgid "All communications including and above this shall be moved into the new Issue" msgstr "Alle kommunikasie insluitend en hierbo sal in die nuwe Uitgawe verskuif word" +#. Description of the 'Billing Currency' (Link) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "All invoices and orders for this customer will be created in this currency." +msgstr "" + #: erpnext/manufacturing/doctype/production_plan/production_plan.py:970 msgid "All items are already requested" msgstr "" -#: erpnext/stock/doctype/purchase_receipt/purchase_receipt.py:1482 +#: erpnext/stock/doctype/purchase_receipt/purchase_receipt.py:1486 msgid "All items have already been Invoiced/Returned" msgstr "Alle items is reeds gefaktureer / teruggestuur" @@ -3834,19 +3842,19 @@ msgstr "Alle items is reeds gefaktureer / teruggestuur" msgid "All items have already been received" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:3594 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:3652 msgid "All items have already been transferred for this Work Order." msgstr "Alle items is reeds vir hierdie werkorder oorgedra." -#: erpnext/public/js/controllers/transaction.js:2979 +#: erpnext/public/js/controllers/transaction.js:2993 msgid "All items in this document already have a linked Quality Inspection." msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1279 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1286 msgid "All items must be linked to a Sales Order or Subcontracting Inward Order for this Sales Invoice." msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1290 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1297 msgid "All linked Sales Orders must be subcontracted." msgstr "" @@ -3860,7 +3868,7 @@ msgstr "" msgid "All the items have been already returned." msgstr "" -#: erpnext/manufacturing/doctype/work_order/work_order.js:1268 +#: erpnext/manufacturing/doctype/work_order/work_order.js:1275 msgid "All the required items (raw materials) will be fetched from BOM and populated in this table. Here you can also change the Source Warehouse for any item. And during the production, you can track transferred raw materials from this table." msgstr "" @@ -3882,7 +3890,13 @@ msgstr "Ken" msgid "Allocate Advances Automatically (FIFO)" msgstr "" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:919 +#. Label of the allocate_full_amount_to_stock_items (Check) field in DocType +#. 'Purchase Taxes and Charges' +#: erpnext/accounts/doctype/purchase_taxes_and_charges/purchase_taxes_and_charges.json +msgid "Allocate Full Amount to Stock Items" +msgstr "" + +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:928 msgid "Allocate Payment Amount" msgstr "Ken die betaling bedrag toe" @@ -3892,7 +3906,7 @@ msgstr "Ken die betaling bedrag toe" msgid "Allocate Payment Based On Payment Terms" msgstr "" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1719 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1728 msgid "Allocate Payment Request" msgstr "" @@ -3922,7 +3936,7 @@ msgstr "" #. Payment Entries' #: erpnext/accounts/doctype/bank_transaction/bank_transaction.json #: erpnext/accounts/doctype/bank_transaction_payments/bank_transaction_payments.json -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1710 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1719 #: erpnext/accounts/doctype/payment_reconciliation_allocation/payment_reconciliation_allocation.json #: erpnext/accounts/doctype/process_payment_reconciliation_log_allocations/process_payment_reconciliation_log_allocations.json #: erpnext/accounts/doctype/purchase_invoice_advance/purchase_invoice_advance.json @@ -4099,18 +4113,6 @@ msgstr "" msgid "Allow Purchase" msgstr "" -#. Label of the allow_purchase_invoice_creation_without_purchase_order (Check) -#. field in DocType 'Supplier' -#: erpnext/buying/doctype/supplier/supplier.json -msgid "Allow Purchase Invoice Creation Without Purchase Order" -msgstr "" - -#. Label of the allow_purchase_invoice_creation_without_purchase_receipt -#. (Check) field in DocType 'Supplier' -#: erpnext/buying/doctype/supplier/supplier.json -msgid "Allow Purchase Invoice Creation Without Purchase Receipt" -msgstr "" - #. Label of the allow_zero_qty_in_purchase_order (Check) field in DocType #. 'Buying Settings' #: erpnext/buying/doctype/buying_settings/buying_settings.json @@ -4151,16 +4153,6 @@ msgstr "Laat die diensvlakooreenkoms weer instel van ondersteuninginstellings." msgid "Allow Sales" msgstr "" -#. Label of the dn_required (Check) field in DocType 'Customer' -#: erpnext/selling/doctype/customer/customer.json -msgid "Allow Sales Invoice Creation Without Delivery Note" -msgstr "" - -#. Label of the so_required (Check) field in DocType 'Customer' -#: erpnext/selling/doctype/customer/customer.json -msgid "Allow Sales Invoice Creation Without Sales Order" -msgstr "" - #. Label of the allow_sales_order_creation_for_expired_quotation (Check) field #. in DocType 'Selling Settings' #: erpnext/selling/doctype/selling_settings/selling_settings.json @@ -4302,6 +4294,28 @@ msgstr "" msgid "Allow partial reservation" msgstr "" +#. Label of the allow_purchase_invoice_creation_without_purchase_order (Check) +#. field in DocType 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "Allow purchase invoice creation without purchase order" +msgstr "" + +#. Label of the allow_purchase_invoice_creation_without_purchase_receipt +#. (Check) field in DocType 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "Allow purchase invoice creation without purchase receipt" +msgstr "" + +#. Label of the dn_required (Check) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Allow sales invoice creation without delivery note" +msgstr "" + +#. Label of the so_required (Check) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Allow sales invoice creation without sales order" +msgstr "" + #. Description of the 'Zero-Quantity Line Items' (Section Break) field in #. DocType 'Selling Settings' #: erpnext/selling/doctype/selling_settings/selling_settings.json @@ -4383,20 +4397,25 @@ msgid "Allowed Items" msgstr "" #. Name of a DocType -#. Label of the companies (Table) field in DocType 'Supplier' -#. Label of the companies (Table) field in DocType 'Customer' #: erpnext/accounts/doctype/allowed_to_transact_with/allowed_to_transact_with.json -#: erpnext/buying/doctype/supplier/supplier.json -#: erpnext/selling/doctype/customer/customer.json msgid "Allowed To Transact With" msgstr "Toegelaat om mee te doen" +#. Label of the allowed_users (Table MultiSelect) field in DocType 'CRM +#. Settings' +#: erpnext/crm/doctype/crm_settings/crm_settings.json +msgid "Allowed Users" +msgstr "" + #: erpnext/accounts/doctype/party_link/party_link.py:27 msgid "Allowed primary roles are 'Customer' and 'Supplier'. Please select one of these roles only." msgstr "" -#: erpnext/public/js/utils/naming_series.js:81 -msgid "Allowed special characters are '/' and '-'" +#. Label of the companies (Table) field in DocType 'Supplier' +#. Label of the companies (Table) field in DocType 'Customer' +#: erpnext/buying/doctype/supplier/supplier.json +#: erpnext/selling/doctype/customer/customer.json +msgid "Allowed to transact with" msgstr "" #. Description of the 'Enable stock reservation' (Check) field in DocType @@ -4454,12 +4473,12 @@ msgstr "" #: erpnext/manufacturing/doctype/bom/bom.js:291 #: erpnext/manufacturing/doctype/work_order/work_order.js:158 #: erpnext/manufacturing/doctype/work_order/work_order.js:173 -#: erpnext/public/js/utils.js:587 +#: erpnext/public/js/utils.js:604 #: erpnext/stock/doctype/stock_entry/stock_entry.js:339 msgid "Alternate Item" msgstr "Alternatiewe Item" -#: erpnext/stock/report/item_where_used/item_where_used.py:427 +#: erpnext/stock/report/item_where_used/item_where_used.py:425 msgid "Alternative For Item" msgstr "" @@ -4650,7 +4669,7 @@ msgstr "" #: erpnext/manufacturing/doctype/bom_item/bom_item.json #: erpnext/manufacturing/doctype/work_order_additional_item/work_order_additional_item.json #: erpnext/manufacturing/doctype/work_order_item/work_order_item.json -#: erpnext/public/js/controllers/transaction.js:517 +#: erpnext/public/js/controllers/transaction.js:536 #: erpnext/selling/doctype/quotation/quotation.js:315 #: erpnext/selling/doctype/quotation_item/quotation_item.json #: erpnext/selling/doctype/sales_order_item/sales_order_item.json @@ -4871,7 +4890,7 @@ msgstr "" msgid "An email will be sent to notify the User with the role 'Purchase Manager' when an automatic Material Request is created." msgstr "" -#: erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py:578 +#: erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py:581 msgid "An error has been appeared while reposting item valuation via {0}" msgstr "" @@ -5849,7 +5868,7 @@ msgstr "Bate kan nie gekanselleer word nie, want dit is reeds {0}" msgid "Asset cannot be scrapped before the last depreciation entry." msgstr "" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:598 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:601 msgid "Asset capitalized after Asset Capitalization {0} was submitted" msgstr "" @@ -5881,11 +5900,11 @@ msgstr "" msgid "Asset restored" msgstr "" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:606 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:609 msgid "Asset restored after Asset Capitalization {0} was cancelled" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1562 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1569 msgid "Asset returned" msgstr "" @@ -5897,8 +5916,8 @@ msgstr "" msgid "Asset scrapped via Journal Entry {0}" msgstr "Bate geskrap via Joernaal Inskrywing {0}" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1562 -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1565 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1569 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1572 msgid "Asset sold" msgstr "" @@ -5922,7 +5941,7 @@ msgstr "" msgid "Asset {0} cannot be scrapped, as it is already {1}" msgstr "Bate {0} kan nie geskrap word nie, want dit is reeds {1}" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:196 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:199 msgid "Asset {0} does not belong to Item {1}" msgstr "" @@ -5938,12 +5957,12 @@ msgstr "" msgid "Asset {0} does not belong to the location {1}" msgstr "" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:647 -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:740 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:650 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:743 msgid "Asset {0} does not exist" msgstr "" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:573 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:576 msgid "Asset {0} has been updated. Please set the depreciation details if any and submit it." msgstr "" @@ -5963,7 +5982,7 @@ msgstr "" msgid "Asset {0} must be submitted" msgstr "Bate {0} moet ingedien word" -#: erpnext/controllers/buying_controller.py:1030 +#: erpnext/controllers/buying_controller.py:1093 msgid "Asset {assets_link} created for {item_code}" msgstr "" @@ -6001,15 +6020,15 @@ msgstr "bates" msgid "Assets Setup" msgstr "" -#: erpnext/controllers/buying_controller.py:1048 +#: erpnext/controllers/buying_controller.py:1111 msgid "Assets not created for {item_code}. You will have to create asset manually." msgstr "" -#: erpnext/controllers/buying_controller.py:1035 +#: erpnext/controllers/buying_controller.py:1098 msgid "Assets {assets_link} created for {item_code}" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.js:713 +#: erpnext/manufacturing/doctype/job_card/job_card.js:712 msgid "Assign Job to Employee" msgstr "" @@ -6070,7 +6089,7 @@ msgstr "Ten minste een van die toepaslike modules moet gekies word" msgid "At least one of the Selling or Buying must be selected" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:414 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:417 msgid "At least one raw material item must be present in the stock entry for the type {0}" msgstr "" @@ -6078,11 +6097,11 @@ msgstr "" msgid "At least one row is required for a financial report template" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:978 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:981 msgid "At least one warehouse is mandatory" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:881 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:884 msgid "At row #{0}: the Difference Account must not be a Stock type account, please change the Account Type for the account {1} or select a different account" msgstr "" @@ -6090,7 +6109,7 @@ msgstr "" msgid "At row #{0}: the sequence id {1} cannot be less than previous row sequence id {2}" msgstr "Op ry # {0}: die volgorde-ID {1} mag nie kleiner wees as die vorige ryvolg-ID {2}" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:892 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:895 msgid "At row #{0}: you have selected the Difference Account {1}, which is a Cost of Goods Sold type account. Please select a different account" msgstr "" @@ -6110,7 +6129,7 @@ msgstr "" msgid "At row {0}: Serial No is mandatory for Item {1}" msgstr "" -#: erpnext/controllers/stock_controller.py:673 +#: erpnext/controllers/stock_controller.py:676 msgid "At row {0}: Serial and Batch Bundle {1} has already created. Please remove the values from the serial no or batch no fields." msgstr "" @@ -6333,7 +6352,7 @@ msgstr "" msgid "Auto Repeat Detail" msgstr "" -#: erpnext/accounts/doctype/accounts_settings/accounts_settings.py:200 +#: erpnext/accounts/doctype/accounts_settings/accounts_settings.py:201 msgid "Auto Tax Settings Error" msgstr "" @@ -6519,7 +6538,7 @@ msgstr "Beskikbaar vir gebruiksdatum" #: erpnext/manufacturing/doctype/workstation/workstation.js:505 #: erpnext/manufacturing/report/bom_stock_analysis/bom_stock_analysis.py:118 #: erpnext/manufacturing/report/bom_stock_analysis/bom_stock_analysis.py:175 -#: erpnext/public/js/utils.js:647 +#: erpnext/public/js/utils.js:664 #: erpnext/stock/doctype/delivery_note_item/delivery_note_item.json #: erpnext/stock/doctype/pick_list_item/pick_list_item.json #: erpnext/stock/report/stock_ageing/stock_ageing.py:214 @@ -6609,7 +6628,7 @@ msgstr "" msgid "Available for use date is required" msgstr "Beskikbaar vir gebruik datum is nodig" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1228 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1231 msgid "Available quantity is {0}, you need {1}" msgstr "Beskikbare hoeveelheid is {0}, u het {1} nodig" @@ -6773,7 +6792,7 @@ msgstr "BOM 2" msgid "BOM Comparison Tool" msgstr "BOM-vergelykingshulpmiddel" -#: erpnext/stock/report/item_where_used/item_where_used.py:178 +#: erpnext/stock/report/item_where_used/item_where_used.py:174 msgid "BOM Component" msgstr "" @@ -6909,7 +6928,7 @@ msgstr "BOM Operasie" msgid "BOM Operations Time" msgstr "BOM-operasietyd" -#: erpnext/stock/report/item_where_used/item_where_used.py:248 +#: erpnext/stock/report/item_where_used/item_where_used.py:244 msgid "BOM Output" msgstr "" @@ -6930,7 +6949,7 @@ msgstr "BOM Soek" #. Label of the bom_secondary_item (Data) field in DocType 'Stock Entry Detail' #: erpnext/manufacturing/doctype/bom_secondary_item/bom_secondary_item.json #: erpnext/stock/doctype/stock_entry_detail/stock_entry_detail.json -#: erpnext/stock/report/item_where_used/item_where_used.py:213 +#: erpnext/stock/report/item_where_used/item_where_used.py:209 msgid "BOM Secondary Item" msgstr "" @@ -7001,7 +7020,7 @@ msgstr "BOM Webwerf Item" msgid "BOM Website Operation" msgstr "BOM Website Operasie" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:2700 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2758 msgid "BOM and Finished Good Quantity is mandatory for Disassembly" msgstr "" @@ -7888,7 +7907,7 @@ msgstr "" #: erpnext/manufacturing/doctype/job_card/job_card.json #: erpnext/manufacturing/report/cost_of_poor_quality_report/cost_of_poor_quality_report.js:89 #: erpnext/manufacturing/report/cost_of_poor_quality_report/cost_of_poor_quality_report.py:115 -#: erpnext/public/js/controllers/transaction.js:2876 +#: erpnext/public/js/controllers/transaction.js:2890 #: erpnext/public/js/utils/barcode_scanner.js:281 #: erpnext/public/js/utils/serial_no_batch_selector.js:449 #: erpnext/stock/doctype/delivery_note_item/delivery_note_item.json @@ -8023,12 +8042,12 @@ msgstr "" msgid "Batch {0} is not available in warehouse {1}" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:3778 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:3836 #: erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.py:290 msgid "Batch {0} of Item {1} has expired." msgstr "Batch {0} van Item {1} is verval." -#: erpnext/stock/doctype/stock_entry/stock_entry.py:3784 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:3842 msgid "Batch {0} of Item {1} is disabled." msgstr "Batch {0} van Item {1} is gedeaktiveer." @@ -8453,6 +8472,16 @@ msgstr "Blokfaktuur" msgid "Block Supplier" msgstr "" +#. Description of the 'Is Frozen' (Check) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Blocks all further accounting entries on this customer's account. Only users with the frozen-entries role can override.\n" +msgstr "" + +#. Description of the 'Disabled' (Check) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Blocks this customer from being used on any new transaction." +msgstr "" + #. Label of the blog_subscriber (Check) field in DocType 'Lead' #: erpnext/crm/doctype/lead/lead.json msgid "Blog Subscriber" @@ -8771,8 +8800,8 @@ msgid "Budget cannot be assigned against Group Account {0}" msgstr "Begroting kan nie toegeken word teen Groeprekening {0}" #: erpnext/accounts/doctype/budget/budget.py:162 -msgid "Budget cannot be assigned against {0}, as it's not an Income or Expense account" -msgstr "Begroting kan nie teen {0} toegewys word nie, aangesien dit nie 'n Inkomste- of Uitgawe-rekening is nie" +msgid "Budget cannot be assigned against {0}, as its Root Type is not of Income or Expense" +msgstr "" #: erpnext/accounts/doctype/fiscal_year/fiscal_year_dashboard.py:9 msgid "Budgets" @@ -8968,14 +8997,14 @@ msgstr "" msgid "By-Product" msgstr "" +#: erpnext/selling/report/customer_credit_balance/customer_credit_balance.py:68 +msgid "Bypass credit check at Sales Order" +msgstr "" + #. Label of the bypass_credit_limit_check (Check) field in DocType 'Customer #. Credit Limit' #: erpnext/selling/doctype/customer_credit_limit/customer_credit_limit.json -msgid "Bypass Credit Limit Check at Sales Order" -msgstr "" - -#: erpnext/selling/report/customer_credit_balance/customer_credit_balance.py:68 -msgid "Bypass credit check at Sales Order" +msgid "Bypass credit limit check at sales order" msgstr "" #. Label of the cc_to (Table MultiSelect) field in DocType 'Process Statement @@ -9281,7 +9310,7 @@ msgstr "" msgid "Can be approved by {0}" msgstr "Kan goedgekeur word deur {0}" -#: erpnext/manufacturing/doctype/work_order/work_order.py:2735 +#: erpnext/manufacturing/doctype/work_order/work_order.py:2767 msgid "Can not close Work Order. Since {0} Job Cards are in Work In Progress state." msgstr "" @@ -9314,9 +9343,9 @@ msgstr "Kan nie filter gebaseer op Voucher No, indien gegroepeer deur Voucher" msgid "Can only make payment against unbilled {0}" msgstr "Kan slegs betaling teen onbillike {0}" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1501 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1510 #: erpnext/controllers/accounts_controller.py:3196 -#: erpnext/public/js/controllers/accounts.js:103 +#: erpnext/public/js/controllers/accounts.js:100 msgid "Can refer row only if the charge type is 'On Previous Row Amount' or 'Previous Row Total'" msgstr "Kan slegs ry verwys as die lading tipe 'Op vorige rybedrag' of 'Vorige ry totaal' is" @@ -9353,7 +9382,7 @@ msgstr "" msgid "Cancelation Date" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1490 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1508 msgid "Cancelled Job Card cannot be processed." msgstr "" @@ -9440,11 +9469,11 @@ msgstr "" msgid "Cannot cancel this document as it is linked with the submitted Asset Value Adjustment {0}. Please cancel the Asset Value Adjustment to continue." msgstr "" -#: erpnext/controllers/buying_controller.py:1137 +#: erpnext/controllers/buying_controller.py:1200 msgid "Cannot cancel this document as it is linked with the submitted asset {asset_link}. Please cancel the asset to continue." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:656 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:659 msgid "Cannot cancel transaction for Completed Work Order." msgstr "Kan nie transaksie vir voltooide werkorder kanselleer nie." @@ -9488,11 +9517,11 @@ msgstr "" msgid "Cannot covert to Group because Account Type is selected." msgstr "Kan nie in Groep verskuil word nie omdat rekeningtipe gekies is." -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2839 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2846 msgid "Cannot create Intercompany {0}. All items in the source {1} have already been fully invoiced. Please check the existing linked {2}s." msgstr "" -#: erpnext/stock/doctype/purchase_receipt/purchase_receipt.py:1012 +#: erpnext/stock/doctype/purchase_receipt/purchase_receipt.py:1016 msgid "Cannot create Stock Reservation Entries for future dated Purchase Receipts." msgstr "" @@ -9522,7 +9551,7 @@ msgstr "Kan nie verklaar word as verlore nie, omdat aanhaling gemaak is." msgid "Cannot deduct when category is for 'Valuation' or 'Valuation and Total'" msgstr "Kan nie aftrek wanneer die kategorie vir 'Waardasie' of 'Waardasie en Totaal' is nie." -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1845 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1854 msgid "Cannot delete Exchange Gain/Loss row" msgstr "" @@ -9535,7 +9564,7 @@ msgid "Cannot delete an item which has been ordered" msgstr "" #: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:197 -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:785 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:796 msgid "Cannot delete protected core DocType: {0}" msgstr "" @@ -9559,7 +9588,7 @@ msgstr "" msgid "Cannot disassemble more than produced quantity." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1021 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1024 msgid "Cannot disassemble {0} qty against Stock Entry {1}. Only {2} qty available to disassemble." msgstr "" @@ -9567,7 +9596,7 @@ msgstr "" msgid "Cannot enable Item-wise Inventory Account, as there are existing Stock Ledger Entries for the company {0} with Warehouse-wise Inventory Account. Please cancel the stock transactions first and try again." msgstr "" -#: erpnext/crm/doctype/crm_settings/crm_settings.py:37 +#: erpnext/crm/doctype/crm_settings/crm_settings.py:43 msgid "Cannot enable Opportunity creation from Contact Us because the Contact Us form is disabled." msgstr "" @@ -9592,7 +9621,7 @@ msgstr "Kan nie item met hierdie strepieskode vind nie" msgid "Cannot find a default warehouse for item {0}. Please set one in the Item Master or in Stock Settings." msgstr "" -#: erpnext/accounts/party.py:1083 +#: erpnext/accounts/party.py:1092 msgid "Cannot merge {0} '{1}' into '{2}' as both have existing accounting entries in different currencies for company '{3}'." msgstr "" @@ -9616,9 +9645,9 @@ msgstr "" msgid "Cannot reduce quantity than ordered or purchased quantity" msgstr "" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1514 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1523 #: erpnext/controllers/accounts_controller.py:3211 -#: erpnext/public/js/controllers/accounts.js:120 +#: erpnext/public/js/controllers/accounts.js:117 msgid "Cannot refer row number greater than or equal to current row number for this Charge type" msgstr "Kan nie rynommer groter as of gelyk aan huidige rynommer vir hierdie Laai tipe verwys nie" @@ -9630,16 +9659,16 @@ msgstr "" msgid "Cannot retrieve link token. Check Error Log for more information" msgstr "" -#: erpnext/selling/doctype/customer/customer.py:367 +#: erpnext/selling/doctype/customer/customer.py:368 msgid "Cannot select a Group type Customer Group. Please select a non-group Customer Group." msgstr "" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1507 -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1685 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1516 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1694 #: erpnext/accounts/doctype/payment_entry/payment_entry.py:1848 #: erpnext/controllers/accounts_controller.py:3201 -#: erpnext/public/js/controllers/accounts.js:112 -#: erpnext/public/js/controllers/taxes_and_totals.js:552 +#: erpnext/public/js/controllers/accounts.js:109 +#: erpnext/public/js/controllers/taxes_and_totals.js:555 msgid "Cannot select charge type as 'On Previous Row Amount' or 'On Previous Row Total' for first row" msgstr "Kan lading tipe nie as 'Op vorige rybedrag' of 'Op vorige ry totale' vir eerste ry kies nie" @@ -9671,7 +9700,7 @@ msgstr "Kan nie die veld {0} instel vir kopiëring in variante nie" msgid "Cannot start deletion. Another deletion {0} is already queued/running. Please wait for it to complete." msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:873 +#: erpnext/manufacturing/doctype/job_card/job_card.py:874 msgid "Cannot submit Job Card {0} while it is On Hold. Please resume and complete the job before submission." msgstr "" @@ -10054,7 +10083,7 @@ msgstr "Verander Release Date" msgid "Change in Stock Value" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1069 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1076 msgid "Change the account type to Receivable or select a different account." msgstr "Verander die rekeningtipe na Ontvangbaar of kies 'n ander rekening." @@ -10064,7 +10093,7 @@ msgstr "Verander die rekeningtipe na Ontvangbaar of kies 'n ander rekening." msgid "Change this date manually to setup the next synchronization start date" msgstr "" -#: erpnext/selling/doctype/customer/customer.py:157 +#: erpnext/selling/doctype/customer/customer.py:158 msgid "Changed customer name to '{}' as '{}' already exists." msgstr "" @@ -10287,7 +10316,7 @@ msgstr "" #. Label of the reference_date (Date) field in DocType 'Payment Entry' #: erpnext/accounts/doctype/payment_entry/payment_entry.json -#: erpnext/public/js/controllers/transaction.js:2787 +#: erpnext/public/js/controllers/transaction.js:2801 msgid "Cheque/Reference Date" msgstr "Tjek / Verwysingsdatum" @@ -10345,7 +10374,7 @@ msgstr "" #. Label of the child_row_reference (Data) field in DocType 'Quality #. Inspection' -#: erpnext/public/js/controllers/transaction.js:2882 +#: erpnext/public/js/controllers/transaction.js:2896 #: erpnext/stock/doctype/quality_inspection/quality_inspection.json msgid "Child Row Reference" msgstr "" @@ -10397,6 +10426,11 @@ msgstr "" msgid "Classify As" msgstr "" +#. Description of the 'Market Segment' (Link) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Classify the type of market this customer belongs to, used for sales analysis and targeting." +msgstr "" + #. Label of the more_information (Text Editor) field in DocType 'Bank #. Guarantee' #: erpnext/accounts/doctype/bank_guarantee/bank_guarantee.json @@ -10529,7 +10563,7 @@ msgstr "Sluit Lening" msgid "Close Replied Opportunity After Days" msgstr "" -#: erpnext/selling/page/point_of_sale/pos_controller.js:253 +#: erpnext/selling/page/point_of_sale/pos_controller.js:244 msgid "Close the POS" msgstr "Maak die POS toe" @@ -10543,7 +10577,7 @@ msgstr "Geslote dokument" msgid "Closed Documents" msgstr "" -#: erpnext/manufacturing/doctype/work_order/work_order.py:2658 +#: erpnext/manufacturing/doctype/work_order/work_order.py:2690 msgid "Closed Work Order can not be stopped or Re-opened" msgstr "" @@ -10802,6 +10836,12 @@ msgstr "" msgid "Commission on Sales" msgstr "Kommissie op verkope" +#. Description of the 'Sales Partner' (Section Break) field in DocType +#. 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Commission paid to the Sales Partner on transactions with this customer." +msgstr "" + #. Name of a DocType #. Label of the common_code (Data) field in DocType 'Common Code' #. Label of the common_code (Data) field in DocType 'UOM' @@ -11203,7 +11243,7 @@ msgstr "" #: erpnext/selling/doctype/quotation/quotation.json #: erpnext/selling/doctype/sales_order/sales_order.json #: erpnext/selling/doctype/supplier_number_at_customer/supplier_number_at_customer.json -#: erpnext/selling/page/point_of_sale/pos_controller.js:72 +#: erpnext/selling/page/point_of_sale/pos_controller.js:63 #: erpnext/selling/page/sales_funnel/sales_funnel.js:36 #: erpnext/selling/report/customer_acquisition_and_loyalty/customer_acquisition_and_loyalty.js:16 #: erpnext/selling/report/customer_credit_balance/customer_credit_balance.js:8 @@ -11272,7 +11312,7 @@ msgstr "" #: erpnext/stock/report/item_shortage_report/item_shortage_report.js:8 #: erpnext/stock/report/item_shortage_report/item_shortage_report.py:137 #: erpnext/stock/report/item_where_used/item_where_used.js:15 -#: erpnext/stock/report/item_where_used/item_where_used.py:95 +#: erpnext/stock/report/item_where_used/item_where_used.py:89 #: erpnext/stock/report/landed_cost_report/landed_cost_report.js:8 #: erpnext/stock/report/negative_batch_report/negative_batch_report.js:8 #: erpnext/stock/report/product_bundle_balance/product_bundle_balance.js:8 @@ -11312,10 +11352,6 @@ msgstr "maatskappy" msgid "Company Abbreviation" msgstr "Maatskappy Afkorting" -#: erpnext/public/js/utils/naming_series.js:101 -msgid "Company Abbreviation (requires ERPNext to be installed)" -msgstr "" - #: erpnext/public/js/setup_wizard.js:174 msgid "Company Abbreviation cannot have more than 5 characters" msgstr "Maatskappyafkorting kan nie meer as 5 karakters hê nie" @@ -11370,18 +11406,22 @@ msgstr "" msgid "Company Address Name" msgstr "" -#: erpnext/controllers/accounts_controller.py:4391 +#: erpnext/controllers/accounts_controller.py:4389 msgid "Company Address is missing. You don't have permission to create an Address. Please contact your System Manager." msgstr "" -#: erpnext/controllers/accounts_controller.py:4379 +#: erpnext/controllers/accounts_controller.py:4377 msgid "Company Address is missing. You don't have permission to update it. Please contact your System Manager." msgstr "" #. Label of the bank_account (Link) field in DocType 'Payment Entry' #. Label of the company_bank_account (Link) field in DocType 'Payment Order' +#. Label of the default_bank_account (Link) field in DocType 'Supplier' +#. Label of the default_bank_account (Link) field in DocType 'Customer' #: erpnext/accounts/doctype/payment_entry/payment_entry.json #: erpnext/accounts/doctype/payment_order/payment_order.json +#: erpnext/buying/doctype/supplier/supplier.json +#: erpnext/selling/doctype/customer/customer.json msgid "Company Bank Account" msgstr "" @@ -11471,7 +11511,7 @@ msgstr "" msgid "Company and Posting Date is mandatory" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2630 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2637 msgid "Company currencies of both the companies should match for Inter Company Transactions." msgstr "Maatskappy-geldeenhede van albei die maatskappye moet ooreenstem met Inter Company Transactions." @@ -11588,7 +11628,7 @@ msgstr "" msgid "Competitors" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.js:665 +#: erpnext/manufacturing/doctype/job_card/job_card.js:663 #: erpnext/manufacturing/doctype/workstation/workstation.js:151 msgid "Complete Job" msgstr "" @@ -11639,8 +11679,8 @@ msgstr "" msgid "Completed Qty cannot be greater than 'Qty to Manufacture'" msgstr "Voltooide hoeveelheid kan nie groter wees as 'hoeveelheid om te vervaardig'" -#: erpnext/manufacturing/doctype/job_card/job_card.js:259 -#: erpnext/manufacturing/doctype/job_card/job_card.js:393 +#: erpnext/manufacturing/doctype/job_card/job_card.js:258 +#: erpnext/manufacturing/doctype/job_card/job_card.js:392 #: erpnext/manufacturing/doctype/workstation/workstation.js:296 msgid "Completed Quantity" msgstr "Voltooide hoeveelheid" @@ -12027,7 +12067,7 @@ msgstr "" msgid "Consumed Qty" msgstr "Verbruikte hoeveelheid" -#: erpnext/manufacturing/doctype/work_order/work_order.py:1834 +#: erpnext/manufacturing/doctype/work_order/work_order.py:1866 msgid "Consumed Qty cannot be greater than Reserved Qty for item {0}" msgstr "" @@ -12046,7 +12086,7 @@ msgstr "" msgid "Consumed Stock Items" msgstr "" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:286 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:289 msgid "Consumed Stock Items, Consumed Asset Items or Consumed Service Items is mandatory for Capitalization" msgstr "" @@ -12310,6 +12350,11 @@ msgstr "" msgid "Controls how raw materials are consumed during the ‘Manufacture’ stock entry." msgstr "" +#. Description of the 'Tax Category' (Link) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Controls which tax template is auto-applied when this customer is selected on a transaction." +msgstr "" + #. Label of the conversion_factor (Float) field in DocType 'Loyalty Program' #. Label of the conversion_factor (Float) field in DocType 'Purchase Order Item #. Supplied' @@ -12341,7 +12386,7 @@ msgstr "" #: erpnext/manufacturing/doctype/bom_item/bom_item.json #: erpnext/manufacturing/doctype/bom_secondary_item/bom_secondary_item.json #: erpnext/manufacturing/doctype/material_request_plan_item/material_request_plan_item.json -#: erpnext/public/js/utils.js:903 +#: erpnext/public/js/utils.js:920 #: erpnext/selling/doctype/delivery_schedule_item/delivery_schedule_item.json #: erpnext/stock/doctype/packed_item/packed_item.json #: erpnext/stock/doctype/purchase_receipt_item/purchase_receipt_item.json @@ -12371,7 +12416,7 @@ msgstr "Omskakelingskoers" msgid "Conversion factor for default Unit of Measure must be 1 in row {0}" msgstr "Omskakelingsfaktor vir verstek Eenheid van maatstaf moet 1 in ry {0} wees." -#: erpnext/controllers/stock_controller.py:119 +#: erpnext/controllers/stock_controller.py:122 msgid "Conversion factor for item {0} has been reset to 1.0 as the uom {1} is same as stock uom {2}." msgstr "" @@ -12460,13 +12505,13 @@ msgstr "" msgid "Corrective Action" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.js:447 +#: erpnext/manufacturing/doctype/job_card/job_card.js:446 msgid "Corrective Job Card" msgstr "" #. Label of the corrective_operation_section (Tab Break) field in DocType 'Job #. Card' -#: erpnext/manufacturing/doctype/job_card/job_card.js:456 +#: erpnext/manufacturing/doctype/job_card/job_card.js:455 #: erpnext/manufacturing/doctype/job_card/job_card.json msgid "Corrective Operation" msgstr "" @@ -12728,8 +12773,8 @@ msgstr "" msgid "Cost Center is required" msgstr "" -#: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1468 -#: erpnext/stock/doctype/purchase_receipt/purchase_receipt.py:897 +#: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1472 +#: erpnext/stock/doctype/purchase_receipt/purchase_receipt.py:903 msgid "Cost Center is required in row {0} in Taxes table for type {1}" msgstr "Kostesentrum word benodig in ry {0} in Belasting tabel vir tipe {1}" @@ -12811,7 +12856,7 @@ msgstr "Koste van aflewerings" msgid "Cost of Goods Sold" msgstr "Koste van goedere verkoop" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:895 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:898 msgid "Cost of Goods Sold Account in Items Table" msgstr "" @@ -13135,8 +13180,8 @@ msgstr "Skep Lei" msgid "Create Ledger Entries for Change Amount" msgstr "" -#: erpnext/buying/doctype/supplier/supplier.js:216 -#: erpnext/selling/doctype/customer/customer.js:285 +#: erpnext/buying/doctype/supplier/supplier.js:257 +#: erpnext/selling/doctype/customer/customer.js:287 msgid "Create Link" msgstr "" @@ -13184,7 +13229,7 @@ msgstr "" msgid "Create Opportunity" msgstr "" -#: erpnext/selling/page/point_of_sale/pos_controller.js:67 +#: erpnext/selling/page/point_of_sale/pos_controller.js:58 msgid "Create POS Opening Entry" msgstr "Skep POS-openingsinskrywing" @@ -13199,7 +13244,7 @@ msgstr "Skep betalingsinskrywings" msgid "Create Payment Entry for Consolidated POS Invoices." msgstr "" -#: erpnext/public/js/controllers/transaction.js:524 +#: erpnext/public/js/controllers/transaction.js:543 msgid "Create Payment Request" msgstr "" @@ -13427,7 +13472,7 @@ msgstr "" msgid "Create a variant with the template image." msgstr "" -#: erpnext/stock/stock_ledger.py:2038 +#: erpnext/stock/stock_ledger.py:2027 msgid "Create an incoming stock transaction for the Item." msgstr "Skep 'n inkomende voorraadtransaksie vir die Item." @@ -13552,7 +13597,7 @@ msgstr "" msgid "Creating demo data" msgstr "" -#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:305 +#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:317 msgid "Creating {} out of {} {}" msgstr "Skep tans {} uit {} {}" @@ -13692,16 +13737,10 @@ msgstr "" msgid "Credit Limit" msgstr "Krediet limiet" -#: erpnext/selling/doctype/customer/customer.py:642 +#: erpnext/selling/doctype/customer/customer.py:643 msgid "Credit Limit Crossed" msgstr "" -#. Label of the credit_limit_section (Section Break) field in DocType -#. 'Customer' -#: erpnext/selling/doctype/customer/customer.json -msgid "Credit Limit and Payment Terms" -msgstr "" - #: erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts_accounts_receivable.html:50 msgid "Credit Limit:" msgstr "" @@ -13778,16 +13817,16 @@ msgstr "" msgid "Credit in Company Currency" msgstr "" -#: erpnext/selling/doctype/customer/customer.py:608 -#: erpnext/selling/doctype/customer/customer.py:663 +#: erpnext/selling/doctype/customer/customer.py:609 +#: erpnext/selling/doctype/customer/customer.py:664 msgid "Credit limit has been crossed for customer {0} ({1}/{2})" msgstr "Kredietlimiet is gekruis vir kliënt {0} ({1} / {2})" -#: erpnext/selling/doctype/customer/customer.py:394 +#: erpnext/selling/doctype/customer/customer.py:395 msgid "Credit limit is already defined for the Company {0}" msgstr "Kredietlimiet is reeds gedefinieër vir die maatskappy {0}" -#: erpnext/selling/doctype/customer/customer.py:662 +#: erpnext/selling/doctype/customer/customer.py:663 msgid "Credit limit reached for customer {0}" msgstr "Kredietlimiet vir kliënt {0} bereik" @@ -13846,7 +13885,7 @@ msgstr "" msgid "Criteria weights must add up to 100%" msgstr "" -#: erpnext/accounts/doctype/accounts_settings/accounts_settings.py:187 +#: erpnext/accounts/doctype/accounts_settings/accounts_settings.py:188 msgid "Cron Interval should be between 1 and 59 Min" msgstr "" @@ -14090,10 +14129,6 @@ msgstr "" msgid "Current Serial No" msgstr "" -#: erpnext/public/js/utils/naming_series.js:223 -msgid "Current Series" -msgstr "" - #. Label of the current_state (Select) field in DocType 'Share Balance' #: erpnext/accounts/doctype/share_balance/share_balance.json msgid "Current State" @@ -14119,6 +14154,11 @@ msgstr "Huidige voorraad" msgid "Current Valuation Rate" msgstr "" +#. Description of the 'Loyalty Program Tier' (Data) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Current tier based on accumulated points. Updated automatically on each invoice." +msgstr "" + #: erpnext/selling/report/sales_analytics/sales_analytics.js:90 msgid "Curves" msgstr "" @@ -14263,7 +14303,7 @@ msgstr "" #: erpnext/accounts/report/sales_register/sales_register.py:187 #: erpnext/assets/doctype/asset/asset.json #: erpnext/buying/doctype/purchase_order/purchase_order.json -#: erpnext/buying/doctype/supplier/supplier.js:184 +#: erpnext/buying/doctype/supplier/supplier.js:225 #: erpnext/crm/doctype/contract/contract.json #: erpnext/crm/doctype/lead/lead.js:32 #: erpnext/crm/doctype/opportunity/opportunity.js:99 @@ -14803,7 +14843,7 @@ msgstr "" msgid "Customer required for 'Customerwise Discount'" msgstr "Kliënt benodig vir 'Customerwise Discount'" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1183 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1190 #: erpnext/selling/doctype/sales_order/sales_order.py:436 #: erpnext/stock/doctype/delivery_note/delivery_note.py:406 msgid "Customer {0} does not belong to project {1}" @@ -15062,10 +15102,6 @@ msgstr "" msgid "Day Of Week" msgstr "" -#: erpnext/public/js/utils/naming_series.js:94 -msgid "Day of month" -msgstr "" - #. Label of the day_to_send (Select) field in DocType 'Project' #: erpnext/projects/doctype/project/project.json msgid "Day to Send" @@ -15258,13 +15294,13 @@ msgstr "" #. Label of the debit_to (Link) field in DocType 'Sales Invoice' #: erpnext/accounts/doctype/pos_invoice/pos_invoice.json #: erpnext/accounts/doctype/sales_invoice/sales_invoice.json -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1054 -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1065 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1061 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1072 #: erpnext/controllers/accounts_controller.py:2383 msgid "Debit To" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1050 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1057 msgid "Debit To is required" msgstr "Debiet na is nodig" @@ -15391,8 +15427,7 @@ msgstr "" #. Label of the default_accounts_section (Section Break) field in DocType #. 'Supplier' -#. Label of the default_receivable_accounts (Section Break) field in DocType -#. 'Customer' +#. Label of the accounts (Table) field in DocType 'Customer' #. Label of the default_settings (Section Break) field in DocType 'Company' #. Label of the default_receivable_account (Section Break) field in DocType #. 'Customer Group' @@ -15444,7 +15479,7 @@ msgstr "" msgid "Default BOM ({0}) must be active for this item or its template" msgstr "Standaard BOM ({0}) moet vir hierdie item of sy sjabloon aktief wees" -#: erpnext/manufacturing/doctype/work_order/work_order.py:2426 +#: erpnext/manufacturing/doctype/work_order/work_order.py:2458 msgid "Default BOM for {0} not found" msgstr "Verstek BOM vir {0} nie gevind nie" @@ -15452,7 +15487,7 @@ msgstr "Verstek BOM vir {0} nie gevind nie" msgid "Default BOM not found for FG Item {0}" msgstr "" -#: erpnext/manufacturing/doctype/work_order/work_order.py:2423 +#: erpnext/manufacturing/doctype/work_order/work_order.py:2455 msgid "Default BOM not found for Item {0} and Project {1}" msgstr "Verstek BOM nie gevind vir Item {0} en Projek {1}" @@ -15504,13 +15539,6 @@ msgstr "" msgid "Default Company" msgstr "" -#. Label of the default_bank_account (Link) field in DocType 'Supplier' -#. Label of the default_bank_account (Link) field in DocType 'Customer' -#: erpnext/buying/doctype/supplier/supplier.json -#: erpnext/selling/doctype/customer/customer.json -msgid "Default Company Bank Account" -msgstr "" - #. Label of the cost_center (Link) field in DocType 'Project' #. Label of the cost_center (Link) field in DocType 'Company' #: erpnext/projects/doctype/project/project.json @@ -15657,24 +15685,18 @@ msgstr "" msgid "Default Payment Request Message" msgstr "" -#. Label of the payment_terms (Link) field in DocType 'Supplier' -#. Label of the payment_terms (Link) field in DocType 'Customer' #. Label of the payment_terms (Link) field in DocType 'Company' #. Label of the payment_terms (Link) field in DocType 'Customer Group' #. Label of the payment_terms (Link) field in DocType 'Supplier Group' -#: erpnext/buying/doctype/supplier/supplier.json -#: erpnext/selling/doctype/customer/customer.json #: erpnext/setup/doctype/company/company.json #: erpnext/setup/doctype/customer_group/customer_group.json #: erpnext/setup/doctype/supplier_group/supplier_group.json msgid "Default Payment Terms Template" msgstr "" -#. Label of the default_price_list (Link) field in DocType 'Customer' #. Label of the selling_price_list (Link) field in DocType 'Selling Settings' #. Label of the default_price_list (Link) field in DocType 'Customer Group' #. Label of the default_price_list (Link) field in DocType 'Item Default' -#: erpnext/selling/doctype/customer/customer.json #: erpnext/selling/doctype/selling_settings/selling_settings.json #: erpnext/setup/doctype/customer_group/customer_group.json #: erpnext/stock/doctype/item_default/item_default.json @@ -15946,6 +15968,12 @@ msgstr "Definieer Projek tipe." msgid "Defines the date after which the item can no longer be used in transactions or manufacturing" msgstr "" +#. Description of the 'Payment Terms Template' (Link) field in DocType +#. 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Defines when payment is due (e.g. Net 30, 50% advance). Applied automatically on invoices for this customer." +msgstr "" + #. Name of a UOM #: erpnext/setup/setup_wizard/data/uom_data.json msgid "Dekagram/Litre" @@ -16016,7 +16044,7 @@ msgstr "" msgid "Delete Demo Data" msgstr "" -#: erpnext/stock/doctype/inventory_dimension/inventory_dimension.js:66 +#: erpnext/stock/doctype/inventory_dimension/inventory_dimension.js:65 msgid "Delete Dimension" msgstr "" @@ -16054,8 +16082,8 @@ msgstr "" msgid "Deleting {0} and all associated Common Code documents..." msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1102 -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1121 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1113 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1132 msgid "Deletion in Progress!" msgstr "" @@ -16205,7 +16233,7 @@ msgstr "aflewering" #: erpnext/manufacturing/doctype/master_production_schedule_item/master_production_schedule_item.json #: erpnext/manufacturing/doctype/sales_forecast_item/sales_forecast_item.json #: erpnext/manufacturing/report/material_requirements_planning_report/material_requirements_planning_report.py:1069 -#: erpnext/public/js/utils.js:896 +#: erpnext/public/js/utils.js:913 #: erpnext/selling/doctype/delivery_schedule_item/delivery_schedule_item.json #: erpnext/selling/doctype/sales_order/sales_order.js:632 #: erpnext/selling/doctype/sales_order/sales_order.js:1533 @@ -16310,7 +16338,7 @@ msgstr "" msgid "Delivery Note Trends" msgstr "Delivery Notendendense" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1444 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1451 msgid "Delivery Note {0} is not submitted" msgstr "Afleweringsnotasie {0} is nie ingedien nie" @@ -16728,6 +16756,11 @@ msgstr "" msgid "Determine Address Tax Category from" msgstr "" +#. Description of the 'Tax Category' (Link) field in DocType 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "Determines which tax rules apply to this supplier" +msgstr "" + #. Option for the 'Fuel Type' (Select) field in DocType 'Vehicle' #: erpnext/setup/doctype/vehicle/vehicle.json msgid "Diesel" @@ -16774,15 +16807,15 @@ msgstr "" msgid "Difference Account" msgstr "Verskilrekening" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:884 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:887 msgid "Difference Account in Items Table" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:873 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:876 msgid "Difference Account must be a Asset/Liability type account (Temporary Opening), since this Stock Entry is an Opening Entry" msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:975 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:978 msgid "Difference Account must be a Asset/Liability type account, since this Stock Reconciliation is an Opening Entry" msgstr "Verskilrekening moet 'n Bate / Aanspreeklikheidsrekening wees, aangesien hierdie Voorraadversoening 'n Openingsinskrywing is" @@ -17020,6 +17053,11 @@ msgstr "" msgid "Disabled pricing rules since this {} is an internal transfer" msgstr "" +#. Description of the 'Disabled' (Check) field in DocType 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "Disabled suppliers are hidden from selection in new transactions but remain in historical records" +msgstr "" + #: erpnext/controllers/accounts_controller.py:925 msgid "Disabled tax included prices since this {} is an internal transfer" msgstr "" @@ -17048,7 +17086,7 @@ msgstr "" msgid "Disassemble Order" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:2642 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2700 msgid "Disassemble Qty cannot be less than or equal to 0." msgstr "" @@ -17606,7 +17644,7 @@ msgid "DocType can be one of them {0}" msgstr "" #: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:182 -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:445 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:456 msgid "DocType {0} does not exist" msgstr "" @@ -17644,19 +17682,6 @@ msgstr "Docs Search" msgid "Document Count" msgstr "" -#. Label of the document_naming_tab (Tab Break) field in DocType 'Accounts -#. Settings' -#. Label of the document_naming_tab (Tab Break) field in DocType 'Buying -#. Label of the default_naming_tab (Tab Break) field in DocType 'Selling -#. Label of the document_naming_tab (Tab Break) field in DocType 'Stock -#: erpnext/accounts/doctype/accounts_settings/accounts_settings.json -#: erpnext/buying/doctype/buying_settings/buying_settings.json -#: erpnext/public/js/utils/naming_series.js:7 -#: erpnext/selling/doctype/selling_settings/selling_settings.json -#: erpnext/stock/doctype/stock_settings/stock_settings.json -msgid "Document Naming" -msgstr "" - #: erpnext/stock/report/negative_batch_report/negative_batch_report.py:78 msgid "Document No" msgstr "" @@ -18200,7 +18225,7 @@ msgstr "Die teiken hoeveelheid of teikenwaarde is verpligtend" msgid "Either target qty or target amount is mandatory." msgstr "Die teiken hoeveelheid of teikenwaarde is verpligtend." -#: erpnext/manufacturing/doctype/job_card/job_card.js:679 +#: erpnext/manufacturing/doctype/job_card/job_card.js:677 msgid "Elapsed Time" msgstr "" @@ -18512,7 +18537,7 @@ msgstr "" msgid "Employee {0} does not belong to the company {1}" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:376 +#: erpnext/manufacturing/doctype/job_card/job_card.py:377 msgid "Employee {0} is currently working on another workstation. Please assign another employee." msgstr "" @@ -18528,7 +18553,7 @@ msgstr "" msgid "Empty" msgstr "leë" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:757 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:768 msgid "Empty To Delete List" msgstr "" @@ -18537,7 +18562,7 @@ msgstr "" msgid "Ems(Pica)" msgstr "" -#: erpnext/public/js/controllers/transaction.js:2951 +#: erpnext/public/js/controllers/transaction.js:2965 msgid "Enable {0} on the Item master to proceed with {1} inspection." msgstr "" @@ -18615,6 +18640,12 @@ msgstr "" msgid "Enable European Access" msgstr "" +#. Label of the enable_frappe_crm_data_synchronization (Check) field in DocType +#. 'CRM Settings' +#: erpnext/crm/doctype/crm_settings/crm_settings.json +msgid "Enable Frappe CRM Data Synchronization" +msgstr "" + #. Label of the enable_fuzzy_matching (Check) field in DocType 'Accounts #. Settings' #: erpnext/accounts/doctype/accounts_settings/accounts_settings.json @@ -18805,6 +18836,11 @@ msgstr "" msgid "Enable to apply SLA on every {0}" msgstr "" +#. Description of the 'Is Transporter' (Check) field in DocType 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "Enable to make this supplier selectable as a transporter on Delivery Notes and Stock Entries" +msgstr "" + #. Description of the 'Retain Sample' (Check) field in DocType 'Item' #: erpnext/stock/doctype/item/item.json msgid "Enable to reserve a small sample from each batch for any analysis arising ahead" @@ -18875,8 +18911,8 @@ msgstr "Einddatum kan nie voor die begin datum wees nie." #. Label of the end_time (Time) field in DocType 'Stock Reposting Settings' #. Label of the end_time (Time) field in DocType 'Service Day' #. Label of the end_time (Datetime) field in DocType 'Call Log' -#: erpnext/manufacturing/doctype/job_card/job_card.js:332 -#: erpnext/manufacturing/doctype/job_card/job_card.js:400 +#: erpnext/manufacturing/doctype/job_card/job_card.js:331 +#: erpnext/manufacturing/doctype/job_card/job_card.js:399 #: erpnext/manufacturing/doctype/workstation_working_hour/workstation_working_hour.json #: erpnext/stock/doctype/stock_reposting_settings/stock_reposting_settings.json #: erpnext/support/doctype/service_day/service_day.json @@ -18975,8 +19011,8 @@ msgstr "" msgid "Enter Serial Nos" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.js:361 -#: erpnext/manufacturing/doctype/job_card/job_card.js:423 +#: erpnext/manufacturing/doctype/job_card/job_card.js:360 +#: erpnext/manufacturing/doctype/job_card/job_card.js:422 #: erpnext/manufacturing/doctype/workstation/workstation.js:312 msgid "Enter Value" msgstr "Voer waarde in" @@ -19066,7 +19102,7 @@ msgstr "" msgid "Enter the quantity of the Item that will be manufactured from this Bill of Materials." msgstr "" -#: erpnext/manufacturing/doctype/work_order/work_order.js:1230 +#: erpnext/manufacturing/doctype/work_order/work_order.js:1237 msgid "Enter the quantity to manufacture. Raw material Items will be fetched only when this is set." msgstr "" @@ -19133,7 +19169,7 @@ msgstr "" msgid "Error Description" msgstr "" -#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:295 +#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:307 msgid "Error Occurred" msgstr "" @@ -19165,7 +19201,7 @@ msgstr "" msgid "Error while processing deferred accounting for {0}" msgstr "" -#: erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py:574 +#: erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py:577 msgid "Error while reposting item valuation" msgstr "" @@ -19176,7 +19212,7 @@ msgid "" "\t\t\t\t\tPlease correct the dates accordingly." msgstr "" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:971 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:980 msgid "Error: {0} is mandatory field" msgstr "Fout: {0} is verpligtend" @@ -19242,7 +19278,7 @@ msgstr "" msgid "Example: If the transaction amount is 200, then this will be calculated as {} = {}" msgstr "" -#: erpnext/stock/stock_ledger.py:2301 +#: erpnext/stock/stock_ledger.py:2290 msgid "Example: Serial No {0} reserved in {1}." msgstr "" @@ -19252,15 +19288,19 @@ msgstr "" msgid "Exception Budget Approver Role" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1028 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1031 msgid "Excess Disassembly" msgstr "" +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1325 +msgid "Excess Material Transfer" +msgstr "" + #: erpnext/manufacturing/report/work_order_consumed_materials/work_order_consumed_materials.js:55 msgid "Excess Materials Consumed" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1153 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1154 msgid "Excess Transfer" msgstr "" @@ -19608,7 +19648,7 @@ msgstr "" msgid "Expense" msgstr "koste" -#: erpnext/controllers/stock_controller.py:939 +#: erpnext/controllers/stock_controller.py:942 msgid "Expense / Difference account ({0}) must be a 'Profit or Loss' account" msgstr "Uitgawe / Verskil rekening ({0}) moet 'n 'Wins of verlies' rekening wees" @@ -19654,7 +19694,7 @@ msgstr "Uitgawe / Verskil rekening ({0}) moet 'n 'Wins of verlies' r msgid "Expense Account" msgstr "Uitgawe rekening" -#: erpnext/controllers/stock_controller.py:919 +#: erpnext/controllers/stock_controller.py:922 msgid "Expense Account Missing" msgstr "Uitgawe-rekening ontbreek" @@ -19779,7 +19819,7 @@ msgstr "" msgid "Extra Consumed Qty" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:263 +#: erpnext/manufacturing/doctype/job_card/job_card.py:264 msgid "Extra Job Card Quantity" msgstr "" @@ -20034,6 +20074,11 @@ msgstr "Haal ontplof BOM (insluitend sub-gemeentes)" msgid "Fetch valuation rate for internal Transaction" msgstr "" +#. Description of the 'Price List' (Link) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Fetched automatically on sales orders and invoices for this customer." +msgstr "" + #: erpnext/selling/page/point_of_sale/pos_item_details.js:457 msgid "Fetched only {0} available serial numbers." msgstr "" @@ -20047,7 +20092,7 @@ msgid "Fetching Sales Orders..." msgstr "" #: erpnext/accounts/doctype/dunning/dunning.js:135 -#: erpnext/public/js/controllers/transaction.js:1597 +#: erpnext/public/js/controllers/transaction.js:1611 msgid "Fetching exchange rates ..." msgstr "" @@ -20085,15 +20130,15 @@ msgstr "" msgid "Fields will be copied over only at time of creation." msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1069 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1080 msgid "File does not belong to this Transaction Deletion Record" msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1063 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1074 msgid "File not found" msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1077 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1088 msgid "File not found on server" msgstr "" @@ -20334,7 +20379,7 @@ msgstr "" #. Service Item' #. Label of the fg_item (Link) field in DocType 'Subcontracting Order Service #. Item' -#: erpnext/public/js/utils.js:922 +#: erpnext/public/js/utils.js:939 #: erpnext/subcontracting/doctype/subcontracting_inward_order_service_item/subcontracting_inward_order_service_item.json #: erpnext/subcontracting/doctype/subcontracting_order_service_item/subcontracting_order_service_item.json msgid "Finished Good Item" @@ -20347,7 +20392,7 @@ msgstr "" msgid "Finished Good Item Code" msgstr "Voltooide goeie itemkode" -#: erpnext/public/js/utils.js:940 +#: erpnext/public/js/utils.js:957 msgid "Finished Good Item Qty" msgstr "" @@ -20455,11 +20500,11 @@ msgstr "Pakhuis vir voltooide goedere" msgid "Finished Goods based Operating Cost" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1968 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2026 msgid "Finished Item {0} does not match with Work Order {1}" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1045 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1048 msgid "Finished good quantity being consumed ({0} in stock UOM) must equal the quantity to disassemble ({1}). Do not change the UOM, conversion factor or quantity of the finished good row." msgstr "" @@ -20554,10 +20599,6 @@ msgstr "Fiskale Regime is verpligtend; stel die fiskale stelsel in die maatskapp msgid "Fiscal Year" msgstr "Fiskale jaar" -#: erpnext/public/js/utils/naming_series.js:100 -msgid "Fiscal Year (requires ERPNext to be installed)" -msgstr "" - #. Name of a DocType #: erpnext/accounts/doctype/fiscal_year_company/fiscal_year_company.json msgid "Fiscal Year Company" @@ -20712,7 +20753,7 @@ msgstr "" msgid "Following Material Requests have been raised automatically based on Item's re-order level" msgstr "Volgende Materiële Versoeke is outomaties opgestel op grond van die item se herbestellingsvlak" -#: erpnext/selling/doctype/customer/customer.py:833 +#: erpnext/selling/doctype/customer/customer.py:834 msgid "Following fields are mandatory to create address:" msgstr "Die volgende velde is verpligtend om adres te skep:" @@ -20769,7 +20810,7 @@ msgstr "" msgid "For Item" msgstr "" -#: erpnext/controllers/stock_controller.py:1598 +#: erpnext/controllers/stock_controller.py:1645 msgid "For Item {0} cannot be received more than {1} qty against the {2} {3}" msgstr "" @@ -20779,7 +20820,7 @@ msgid "For Job Card" msgstr "" #. Label of the for_operation (Link) field in DocType 'Job Card' -#: erpnext/manufacturing/doctype/job_card/job_card.js:465 +#: erpnext/manufacturing/doctype/job_card/job_card.js:464 #: erpnext/manufacturing/doctype/job_card/job_card.json msgid "For Operation" msgstr "" @@ -20803,7 +20844,7 @@ msgstr "" msgid "For Production" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:995 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:998 msgid "For Quantity (Manufactured Qty) is mandatory" msgstr "Vir Hoeveelheid (Vervaardigde Aantal) is verpligtend" @@ -20897,7 +20938,7 @@ msgstr "" msgid "For operation {0} at row {1}, please add raw materials or set a BOM against it." msgstr "" -#: erpnext/manufacturing/doctype/work_order/work_order.py:2805 +#: erpnext/manufacturing/doctype/work_order/work_order.py:2837 msgid "For operation {0}: Quantity ({1}) can not be greater than pending quantity({2})" msgstr "" @@ -20914,7 +20955,7 @@ msgstr "" msgid "For projected and forecast quantities, the system will consider all child warehouses under the selected parent warehouse." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:2000 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2058 msgid "For quantity {0} should not be greater than allowed quantity {1}" msgstr "" @@ -20923,8 +20964,8 @@ msgstr "" msgid "For reference" msgstr "" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1536 -#: erpnext/public/js/controllers/accounts.js:204 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1545 +#: erpnext/public/js/controllers/accounts.js:201 msgid "For row {0} in {1}. To include {2} in Item rate, rows {3} must also be included" msgstr "Vir ry {0} in {1}. Om {2} in Item-koers in te sluit, moet rye {3} ook ingesluit word" @@ -20947,16 +20988,16 @@ msgstr "Vir die voorwaarde 'Pas reël toe op ander' is die veld {0} verp msgid "For the convenience of customers, these codes can be used in print formats like Invoices and Delivery Notes" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1253 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1258 msgid "For the item {0}, the consumed quantity should be {1} according to the BOM {2}." msgstr "" -#: erpnext/public/js/controllers/transaction.js:1407 +#: erpnext/public/js/controllers/transaction.js:1421 msgctxt "Clear payment terms template and/or payment schedule when due date is changed" msgid "For the new {0} to take effect, would you like to clear the current {1}?" msgstr "" -#: erpnext/controllers/stock_controller.py:440 +#: erpnext/controllers/stock_controller.py:443 msgid "For the {0}, no stock is available for the return in the warehouse {1}." msgstr "" @@ -21039,6 +21080,21 @@ msgstr "" msgid "Forum URL" msgstr "" +#. Label of the frappe_crm_section (Section Break) field in DocType 'CRM +#. Settings' +#: erpnext/crm/doctype/crm_settings/crm_settings.json +msgid "Frappe CRM" +msgstr "" + +#. Name of a DocType +#: erpnext/crm/doctype/frappe_crm_allowed_user/frappe_crm_allowed_user.json +msgid "Frappe CRM Allowed User" +msgstr "" + +#: erpnext/crm/frappe_crm_api.py:169 +msgid "Frappe CRM data synchronization is not enabled on ERPNext. Contact System Manager of ERPNext." +msgstr "" + #: erpnext/setup/install.py:235 msgid "Frappe School" msgstr "" @@ -21408,9 +21464,15 @@ msgstr "Van waarde moet minder wees as om in ry {0} te waardeer." #. Label of the freeze_account (Select) field in DocType 'Account' #: erpnext/accounts/doctype/account/account.json +#: erpnext/buying/doctype/supplier/supplier_list.js:9 msgid "Frozen" msgstr "" +#. Description of the 'Is Frozen' (Check) field in DocType 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "Frozen suppliers block ledger entries until unfrozen. Use this to temporarily lock accounting activity without disabling the supplier." +msgstr "" + #. Label of the fuel_type (Select) field in DocType 'Vehicle' #: erpnext/setup/doctype/vehicle/vehicle.json msgid "Fuel Type" @@ -21713,6 +21775,11 @@ msgstr "" msgid "General and Payment Ledger mismatch" msgstr "" +#. Description of the 'Supplier Details' (Text) field in DocType 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "General information about your Supplier" +msgstr "" + #. Label of the generate_demand (Button) field in DocType 'Sales Forecast' #: erpnext/manufacturing/doctype/sales_forecast/sales_forecast.json msgid "Generate Demand" @@ -21751,7 +21818,7 @@ msgstr "" msgid "Generate To Delete List" msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:472 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:483 msgid "Generate To Delete list first" msgstr "" @@ -21810,7 +21877,7 @@ msgstr "" msgid "Get Current Stock" msgstr "" -#: erpnext/selling/doctype/customer/customer.js:189 +#: erpnext/selling/doctype/customer/customer.js:190 msgid "Get Customer Group Details" msgstr "" @@ -21992,6 +22059,10 @@ msgstr "" msgid "Get Sub Assembly Items" msgstr "" +#: erpnext/buying/doctype/supplier/supplier.js:151 +msgid "Get Supplier Group Details" +msgstr "" + #: erpnext/buying/doctype/request_for_quotation/request_for_quotation.js:461 #: erpnext/buying/doctype/request_for_quotation/request_for_quotation.js:481 msgid "Get Suppliers" @@ -22088,7 +22159,7 @@ msgstr "Goedere In Transito" msgid "Goods Transferred" msgstr "Goedere oorgedra" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:2569 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2627 msgid "Goods are already received against the outward entry {0}" msgstr "Goedere word reeds ontvang teen die uitgawe {0}" @@ -22268,7 +22339,7 @@ msgstr "" msgid "Grant Commission" msgstr "" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:890 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:899 msgid "Greater Than Amount" msgstr "Groter as die bedrag" @@ -22709,7 +22780,7 @@ msgstr "" msgid "Here are the error logs for the aforementioned failed depreciation entries: {0}" msgstr "" -#: erpnext/stock/stock_ledger.py:2023 +#: erpnext/stock/stock_ledger.py:2012 msgid "Here are the options to proceed:" msgstr "" @@ -22737,7 +22808,7 @@ msgstr "" msgid "Hertz" msgstr "" -#: erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py:576 +#: erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py:579 msgid "Hi," msgstr "" @@ -22773,7 +22844,7 @@ msgstr "" msgid "Hide Images" msgstr "" -#: erpnext/selling/page/point_of_sale/pos_controller.js:270 +#: erpnext/selling/page/point_of_sale/pos_controller.js:261 msgid "Hide Recent Orders" msgstr "" @@ -23087,6 +23158,12 @@ msgstr "" msgid "If checked, picked qty won't automatically be fulfilled on submit of pick list." msgstr "" +#. Description of the 'Allocate Full Amount to Stock Items' (Check) field in +#. DocType 'Purchase Taxes and Charges' +#: erpnext/accounts/doctype/purchase_taxes_and_charges/purchase_taxes_and_charges.json +msgid "If checked, the entire amount (e.g. Freight) is allocated to the valuation of stock & asset items only. If unchecked, the amount is distributed across all items and the portion belonging to non-stock items is not added to valuation." +msgstr "" + #. Description of the 'Considered In Paid Amount' (Check) field in DocType #. 'Purchase Taxes and Charges' #. 'Sales Taxes and Charges' @@ -23346,15 +23423,15 @@ msgstr "" msgid "If no taxes are set, and Taxes and Charges Template is selected, the system will automatically apply the taxes from the chosen template." msgstr "" -#: erpnext/stock/stock_ledger.py:2033 +#: erpnext/stock/stock_ledger.py:2022 msgid "If not, you can Cancel / Submit this entry" msgstr "" -#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.js:197 +#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.js:194 msgid "If party does not exist, create it using the Customer Name field." msgstr "" -#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.js:198 +#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.js:195 msgid "If party does not exist, create it using the Supplier Name field." msgstr "" @@ -23372,13 +23449,18 @@ msgstr "" msgid "If selected Pricing Rule is made for 'Rate', it will overwrite Price List. Pricing Rule rate is the final rate, so no further discount should be applied. Hence, in transactions like Sales Order, Purchase Order etc, it will be fetched in 'Rate' field, rather than 'Price List Rate' field." msgstr "" +#. Description of the 'Default Accounts' (Table) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "If set, accounting entries for this customer will post to these accounts instead of the company default." +msgstr "" + #. Description of the 'Fixed Outgoing Email Account' (Link) field in DocType #. 'Buying Settings' #: erpnext/buying/doctype/buying_settings/buying_settings.json msgid "If set, the system does not use the user's Email or the standard outgoing Email account for sending request for quotations." msgstr "" -#: erpnext/manufacturing/doctype/work_order/work_order.js:1263 +#: erpnext/manufacturing/doctype/work_order/work_order.js:1270 msgid "If the BOM results in Scrap material, the Scrap Warehouse needs to be selected." msgstr "" @@ -23387,7 +23469,7 @@ msgstr "" msgid "If the account is frozen, entries are allowed to restricted users." msgstr "" -#: erpnext/stock/stock_ledger.py:2026 +#: erpnext/stock/stock_ledger.py:2015 msgid "If the item is transacting as a Zero Valuation Rate item in this entry, please enable 'Allow Zero Valuation Rate' in the {0} Item table." msgstr "As die item in hierdie inskrywing as 'n nulwaardasietempo-item handel, skakel u 'Laat nulwaardasietarief toe' in die {0} Itemtabel aan." @@ -23397,7 +23479,7 @@ msgstr "As die item in hierdie inskrywing as 'n nulwaardasietempo-item hande msgid "If the reorder check is set at the Group warehouse level, the available quantity becomes the sum of the projected quantities of all its child warehouses." msgstr "" -#: erpnext/manufacturing/doctype/work_order/work_order.js:1282 +#: erpnext/manufacturing/doctype/work_order/work_order.js:1289 msgid "If the selected BOM has Operations mentioned in it, the system will fetch all Operations from BOM, these values can be changed." msgstr "" @@ -23704,7 +23786,7 @@ msgstr "" msgid "Import Successful" msgstr "Invoer suksesvol" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:564 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:575 msgid "Import Summary" msgstr "" @@ -24287,7 +24369,7 @@ msgstr "" msgid "Incorrect Company" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1260 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1265 msgid "Incorrect Component Quantity" msgstr "" @@ -24497,14 +24579,14 @@ msgstr "geïnisieer" msgid "Inspected By" msgstr "Geinspekteer deur" -#: erpnext/controllers/stock_controller.py:1492 -#: erpnext/manufacturing/doctype/job_card/job_card.py:833 +#: erpnext/controllers/stock_controller.py:1539 +#: erpnext/manufacturing/doctype/job_card/job_card.py:834 msgid "Inspection Rejected" msgstr "" #. Label of the inspection_required (Check) field in DocType 'Stock Entry' -#: erpnext/controllers/stock_controller.py:1462 -#: erpnext/controllers/stock_controller.py:1464 +#: erpnext/controllers/stock_controller.py:1509 +#: erpnext/controllers/stock_controller.py:1511 #: erpnext/stock/doctype/stock_entry/stock_entry.json msgid "Inspection Required" msgstr "Inspeksie benodig" @@ -24521,8 +24603,8 @@ msgstr "" msgid "Inspection Required before Purchase" msgstr "" -#: erpnext/controllers/stock_controller.py:1477 -#: erpnext/manufacturing/doctype/job_card/job_card.py:814 +#: erpnext/controllers/stock_controller.py:1524 +#: erpnext/manufacturing/doctype/job_card/job_card.py:815 msgid "Inspection Submission" msgstr "" @@ -24593,9 +24675,9 @@ msgstr "" #: erpnext/controllers/accounts_controller.py:3879 #: erpnext/controllers/accounts_controller.py:3901 -#: erpnext/controllers/accounts_controller.py:4421 -#: erpnext/controllers/accounts_controller.py:4427 -#: erpnext/controllers/accounts_controller.py:4449 +#: erpnext/controllers/accounts_controller.py:4419 +#: erpnext/controllers/accounts_controller.py:4425 +#: erpnext/controllers/accounts_controller.py:4447 msgid "Insufficient Permissions" msgstr "Onvoldoende toestemmings" @@ -24603,13 +24685,13 @@ msgstr "Onvoldoende toestemmings" #: erpnext/stock/doctype/pick_list/pick_list.py:148 #: erpnext/stock/doctype/pick_list/pick_list.py:166 #: erpnext/stock/doctype/pick_list/pick_list.py:1093 -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1232 -#: erpnext/stock/serial_batch_bundle.py:1225 erpnext/stock/stock_ledger.py:1714 -#: erpnext/stock/stock_ledger.py:2192 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1235 +#: erpnext/stock/serial_batch_bundle.py:1225 erpnext/stock/stock_ledger.py:1703 +#: erpnext/stock/stock_ledger.py:2181 msgid "Insufficient Stock" msgstr "Onvoldoende voorraad" -#: erpnext/stock/stock_ledger.py:2207 +#: erpnext/stock/stock_ledger.py:2196 msgid "Insufficient Stock for Batch" msgstr "" @@ -24762,7 +24844,7 @@ msgstr "" msgid "Internal Customer Accounting" msgstr "" -#: erpnext/selling/doctype/customer/customer.py:255 +#: erpnext/selling/doctype/customer/customer.py:256 msgid "Internal Customer for company {0} already exists" msgstr "" @@ -24785,7 +24867,7 @@ msgstr "" #. Label of the internal_supplier_section (Section Break) field in DocType #. 'Supplier' #: erpnext/buying/doctype/supplier/supplier.json -msgid "Internal Supplier Accounting" +msgid "Internal Supplier Details" msgstr "" #: erpnext/buying/doctype/supplier/supplier.py:181 @@ -24827,7 +24909,12 @@ msgstr "" msgid "Internal Work History" msgstr "" -#: erpnext/controllers/stock_controller.py:1559 +#. Description of the 'Customer Details' (Text) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Internal notes about this customer. Not visible on transactions or the portal." +msgstr "" + +#: erpnext/controllers/stock_controller.py:1606 msgid "Internal transfers can only be done in company's default currency" msgstr "" @@ -24843,8 +24930,8 @@ msgstr "" #: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:384 #: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:392 -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1060 -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1070 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1067 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1077 #: erpnext/assets/doctype/asset_category/asset_category.py:69 #: erpnext/assets/doctype/asset_category/asset_category.py:97 #: erpnext/controllers/accounts_controller.py:3225 @@ -24882,11 +24969,11 @@ msgstr "" msgid "Invalid Barcode. There is no Item attached to this barcode." msgstr "Ongeldige strepieskode. Daar is geen item verbonde aan hierdie strepieskode nie." -#: erpnext/public/js/controllers/transaction.js:3163 +#: erpnext/public/js/controllers/transaction.js:3177 msgid "Invalid Blanket Order for the selected Customer and Item" msgstr "Ongeldige kombersorder vir die gekose kliënt en item" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:498 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:509 msgid "Invalid CSV format. Expected column: doctype_name" msgstr "" @@ -24898,7 +24985,7 @@ msgstr "Ongeldige kinderprosedure" msgid "Invalid Company Field" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2405 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2412 msgid "Invalid Company for Inter Company Transaction." msgstr "Ongeldige maatskappy vir transaksies tussen maatskappye." @@ -24908,7 +24995,7 @@ msgstr "Ongeldige maatskappy vir transaksies tussen maatskappye." msgid "Invalid Cost Center" msgstr "" -#: erpnext/selling/doctype/customer/customer.py:368 +#: erpnext/selling/doctype/customer/customer.py:369 msgid "Invalid Customer Group" msgstr "" @@ -24916,12 +25003,12 @@ msgstr "" msgid "Invalid Delivery Date" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1084 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1087 msgid "Invalid Disassembly Item" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1050 -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1099 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1053 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1102 msgid "Invalid Disassembly Quantity" msgstr "" @@ -24929,7 +25016,7 @@ msgstr "" msgid "Invalid Discount" msgstr "" -#: erpnext/controllers/taxes_and_totals.py:853 +#: erpnext/controllers/taxes_and_totals.py:856 msgid "Invalid Discount Amount" msgstr "" @@ -25049,12 +25136,12 @@ msgstr "" msgid "Invalid Selling Price" msgstr "Ongeldige verkoopprys" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:2043 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2101 msgid "Invalid Serial and Batch Bundle" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1294 -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1316 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1352 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1374 msgid "Invalid Source and Target Warehouse" msgstr "" @@ -25083,7 +25170,7 @@ msgstr "" msgid "Invalid condition expression" msgstr "Ongeldige toestandsuitdrukking" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1058 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1069 msgid "Invalid file URL" msgstr "" @@ -25138,7 +25225,7 @@ msgstr "" msgid "Invalid {0}" msgstr "Ongeldige {0}" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2403 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2410 msgid "Invalid {0} for Inter Company Transaction." msgstr "Ongeldig {0} vir transaksies tussen maatskappye." @@ -25162,7 +25249,7 @@ msgstr "" #. Label of a Workspace Sidebar Item #: erpnext/patches/v15_0/refactor_closing_stock_balance.py:43 #: erpnext/stock/doctype/inventory_dimension/inventory_dimension.json -#: erpnext/stock/doctype/inventory_dimension/inventory_dimension.py:184 +#: erpnext/stock/doctype/inventory_dimension/inventory_dimension.py:178 #: erpnext/workspace_sidebar/stock.json msgid "Inventory Dimension" msgstr "" @@ -25373,7 +25460,7 @@ msgstr "" #: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.json #: erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.json #: erpnext/accounts/doctype/pos_profile/pos_profile.json -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2454 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2461 #: erpnext/buying/doctype/supplier/supplier.json #: erpnext/selling/report/payment_terms_status_for_sales_order/payment_terms_status_for_sales_order.py:62 msgid "Invoices" @@ -26053,7 +26140,7 @@ msgstr "" msgid "It can take upto few hours for accurate stock values to be visible after merging items." msgstr "" -#: erpnext/public/js/controllers/transaction.js:2544 +#: erpnext/public/js/controllers/transaction.js:2558 msgid "It is needed to fetch Item Details." msgstr "Dit is nodig om Itembesonderhede te gaan haal." @@ -26119,7 +26206,7 @@ msgstr "" #: erpnext/buying/report/supplier_quotation_comparison/supplier_quotation_comparison.js:33 #: erpnext/buying/report/supplier_quotation_comparison/supplier_quotation_comparison.py:204 #: erpnext/buying/workspace/buying/buying.json -#: erpnext/controllers/taxes_and_totals.py:1262 +#: erpnext/controllers/taxes_and_totals.py:1248 #: erpnext/manufacturing/doctype/blanket_order/blanket_order.json #: erpnext/manufacturing/doctype/bom/bom.js:1088 #: erpnext/manufacturing/doctype/plant_floor/plant_floor.js:109 @@ -26225,7 +26312,7 @@ msgstr "Item 5" #. Label of a Link in the Stock Workspace #. Label of a Workspace Sidebar Item #: erpnext/stock/doctype/item_alternative/item_alternative.json -#: erpnext/stock/report/item_where_used/item_where_used.py:410 +#: erpnext/stock/report/item_where_used/item_where_used.py:408 #: erpnext/stock/workspace/stock/stock.json #: erpnext/workspace_sidebar/stock.json msgid "Item Alternative" @@ -26423,10 +26510,10 @@ msgstr "" #: erpnext/manufacturing/report/quality_inspection_summary/quality_inspection_summary.py:86 #: erpnext/manufacturing/report/work_order_stock_report/work_order_stock_report.py:119 #: erpnext/projects/doctype/timesheet/timesheet.js:214 -#: erpnext/public/js/controllers/transaction.js:2838 +#: erpnext/public/js/controllers/transaction.js:2852 #: erpnext/public/js/stock_reservation.js:112 -#: erpnext/public/js/stock_reservation.js:318 erpnext/public/js/utils.js:579 -#: erpnext/public/js/utils.js:736 +#: erpnext/public/js/stock_reservation.js:318 erpnext/public/js/utils.js:596 +#: erpnext/public/js/utils.js:753 #: erpnext/public/js/utils/serial_no_batch_selector.js:96 #: erpnext/regional/doctype/import_supplier_invoice/import_supplier_invoice.json #: erpnext/selling/doctype/delivery_schedule_item/delivery_schedule_item.json @@ -26522,7 +26609,7 @@ msgstr "Item Kode kan nie vir Serienommer verander word nie." msgid "Item Code required at Row No {0}" msgstr "Itemkode benodig by ry nr {0}" -#: erpnext/selling/page/point_of_sale/pos_controller.js:825 +#: erpnext/selling/page/point_of_sale/pos_controller.js:816 #: erpnext/selling/page/point_of_sale/pos_item_details.js:277 msgid "Item Code: {0} is not available under warehouse {1}." msgstr "Itemkode: {0} is nie beskikbaar onder pakhuis {1} nie." @@ -26899,8 +26986,8 @@ msgstr "Item Vervaardiger" #: erpnext/manufacturing/report/production_planning_report/production_planning_report.py:371 #: erpnext/manufacturing/report/quality_inspection_summary/quality_inspection_summary.py:92 #: erpnext/manufacturing/report/work_order_consumed_materials/work_order_consumed_materials.py:138 -#: erpnext/public/js/controllers/transaction.js:2844 -#: erpnext/public/js/utils.js:832 +#: erpnext/public/js/controllers/transaction.js:2858 +#: erpnext/public/js/utils.js:849 #: erpnext/selling/doctype/quotation_item/quotation_item.json #: erpnext/selling/doctype/sales_order/sales_order.js:1286 #: erpnext/selling/doctype/sales_order_item/sales_order_item.json @@ -27164,7 +27251,7 @@ msgstr "" #. Name of a DocType #: erpnext/stock/doctype/item_variant/item_variant.json -#: erpnext/stock/report/item_where_used/item_where_used.py:387 +#: erpnext/stock/report/item_where_used/item_where_used.py:385 msgid "Item Variant" msgstr "Item Variant" @@ -27277,7 +27364,7 @@ msgstr "" msgid "Item Wise Tax Details" msgstr "" -#: erpnext/controllers/taxes_and_totals.py:560 +#: erpnext/controllers/taxes_and_totals.py:563 msgid "Item Wise Tax Details do not match with Taxes and Charges at the following rows:" msgstr "" @@ -27297,7 +27384,7 @@ msgstr "" msgid "Item and Warranty Details" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:3757 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:3815 msgid "Item for row {0} does not match Material Request" msgstr "Item vir ry {0} stem nie ooreen met materiaalversoek nie" @@ -27331,7 +27418,7 @@ msgstr "" msgid "Item qty can not be updated as raw materials are already processed." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1440 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1498 msgid "Item rate has been updated to zero as Allow Zero Valuation Rate is checked for item {0}" msgstr "" @@ -27379,7 +27466,7 @@ msgstr "Item {0} bestaan nie" msgid "Item {0} does not exist in the system or has expired" msgstr "Item {0} bestaan nie in die stelsel nie of het verval" -#: erpnext/controllers/stock_controller.py:554 +#: erpnext/controllers/stock_controller.py:557 msgid "Item {0} does not exist." msgstr "" @@ -27443,7 +27530,7 @@ msgstr "" msgid "Item {0} is not a template item." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:2481 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2539 msgid "Item {0} is not active or end of life has been reached" msgstr "Item {0} is nie aktief of die einde van die lewe is bereik nie" @@ -27463,7 +27550,7 @@ msgstr "Item {0} moet 'n Subkontrakteerde Item wees" msgid "Item {0} must be a non-stock item" msgstr "Item {0} moet 'n nie-voorraaditem wees" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1781 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1839 msgid "Item {0} not found in 'Raw Materials Supplied' table in {1} {2}" msgstr "" @@ -27479,7 +27566,7 @@ msgstr "Item {0}: Bestelde hoeveelheid {1} kan nie minder wees as die minimum be msgid "Item {0}: {1} qty produced. " msgstr "Item {0}: {1} hoeveelheid geproduseer." -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:1218 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:1334 msgid "Item {} does not exist." msgstr "" @@ -27573,11 +27660,11 @@ msgstr "Items wat gevra moet word" msgid "Items and Pricing" msgstr "Items en pryse" -#: erpnext/controllers/accounts_controller.py:4235 +#: erpnext/controllers/accounts_controller.py:4233 msgid "Items cannot be updated as Subcontracting Inward Order(s) exist against this Subcontracted Sales Order." msgstr "" -#: erpnext/controllers/accounts_controller.py:4228 +#: erpnext/controllers/accounts_controller.py:4226 msgid "Items cannot be updated as Subcontracting Order is created against the Purchase Order {0}." msgstr "" @@ -27589,7 +27676,7 @@ msgstr "Items vir grondstofversoek" msgid "Items not found." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1436 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1494 msgid "Items rate has been updated to zero as Allow Zero Valuation Rate is checked for the following items: {0}" msgstr "" @@ -27619,7 +27706,7 @@ msgstr "" msgid "Items under this warehouse will be suggested" msgstr "" -#: erpnext/controllers/stock_controller.py:163 +#: erpnext/controllers/stock_controller.py:166 msgid "Items {0} do not exist in the Item master." msgstr "" @@ -27664,7 +27751,7 @@ msgstr "" #: erpnext/buying/doctype/purchase_order_item/purchase_order_item.json #: erpnext/manufacturing/doctype/bom/bom.json #: erpnext/manufacturing/doctype/job_card/job_card.json -#: erpnext/manufacturing/doctype/job_card/job_card.py:1016 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1017 #: erpnext/manufacturing/doctype/operation/operation.json #: erpnext/manufacturing/doctype/work_order/work_order.js:408 #: erpnext/manufacturing/doctype/work_order/work_order.json @@ -27693,7 +27780,7 @@ msgstr "Poskaartontleding" msgid "Job Card Item" msgstr "Poskaart Item" -#: erpnext/manufacturing/doctype/job_card/job_card.py:876 +#: erpnext/manufacturing/doctype/job_card/job_card.py:877 msgid "Job Card On Hold" msgstr "" @@ -27732,7 +27819,7 @@ msgstr "Jobkaart Tydlogboek" msgid "Job Card and Capacity Planning" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1530 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1548 msgid "Job Card {0} has been completed" msgstr "" @@ -27807,7 +27894,7 @@ msgstr "" msgid "Job Worker Warehouse" msgstr "" -#: erpnext/manufacturing/doctype/work_order/work_order.py:2860 +#: erpnext/manufacturing/doctype/work_order/work_order.py:2892 msgid "Job card {0} created" msgstr "Werkkaart {0} geskep" @@ -28028,7 +28115,7 @@ msgstr "" msgid "Kilowatt-Hour" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1018 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1019 msgid "Kindly cancel the Manufacturing Entries first against the work order {0}." msgstr "" @@ -28275,7 +28362,7 @@ msgstr "" msgid "Lead" msgstr "lood" -#: erpnext/crm/doctype/lead/lead.py:545 +#: erpnext/crm/doctype/lead/lead.py:546 msgid "Lead -> Prospect" msgstr "" @@ -28369,7 +28456,7 @@ msgstr "" msgid "Lead Type" msgstr "" -#: erpnext/crm/doctype/lead/lead.py:544 +#: erpnext/crm/doctype/lead/lead.py:545 msgid "Lead {0} has been added to prospect {1}." msgstr "" @@ -28506,7 +28593,7 @@ msgstr "" msgid "Length (cm)" msgstr "" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:895 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:904 msgid "Less Than Amount" msgstr "Minder as die bedrag" @@ -28565,7 +28652,7 @@ msgstr "" msgid "License Plate" msgstr "" -#: erpnext/controllers/status_updater.py:500 +#: erpnext/controllers/status_updater.py:511 msgid "Limit Crossed" msgstr "Gekruiste Gekruis" @@ -28622,11 +28709,11 @@ msgstr "Skakel na Materiaal Versoek" msgid "Link to Material Requests" msgstr "Skakel na materiaalversoeke" -#: erpnext/buying/doctype/supplier/supplier.js:125 +#: erpnext/buying/doctype/supplier/supplier.js:164 msgid "Link with Customer" msgstr "" -#: erpnext/selling/doctype/customer/customer.js:201 +#: erpnext/selling/doctype/customer/customer.js:203 msgid "Link with Supplier" msgstr "" @@ -28651,16 +28738,16 @@ msgstr "Gekoppelde ligging" msgid "Linked with submitted documents" msgstr "" -#: erpnext/buying/doctype/supplier/supplier.js:210 -#: erpnext/selling/doctype/customer/customer.js:279 +#: erpnext/buying/doctype/supplier/supplier.js:251 +#: erpnext/selling/doctype/customer/customer.js:281 msgid "Linking Failed" msgstr "" -#: erpnext/buying/doctype/supplier/supplier.js:209 +#: erpnext/buying/doctype/supplier/supplier.js:250 msgid "Linking to Customer Failed. Please try again." msgstr "" -#: erpnext/selling/doctype/customer/customer.js:278 +#: erpnext/selling/doctype/customer/customer.js:280 msgid "Linking to Supplier Failed. Please try again." msgstr "" @@ -28913,7 +29000,7 @@ msgstr "" msgid "Loyalty Points will be calculated from the spent done (via the Sales Invoice), based on collection factor mentioned." msgstr "" -#: erpnext/public/js/utils.js:200 +#: erpnext/public/js/utils.js:208 msgid "Loyalty Points: {0}" msgstr "Lojaliteitspunte: {0}" @@ -28965,6 +29052,11 @@ msgstr "" msgid "Loyalty Program Type" msgstr "" +#. Description of the 'Loyalty Program' (Link) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Loyalty scheme this customer earns points under. Auto-assigned if a matching program exists." +msgstr "" + #. Label of the mps (Link) field in DocType 'Purchase Order' #. Label of the mps (Link) field in DocType 'Work Order' #: erpnext/buying/doctype/purchase_order/purchase_order.json @@ -29252,7 +29344,7 @@ msgstr "" #. Label of the make (Data) field in DocType 'Vehicle' #: erpnext/accounts/doctype/journal_entry/journal_entry.js:127 -#: erpnext/manufacturing/doctype/job_card/job_card.js:480 +#: erpnext/manufacturing/doctype/job_card/job_card.js:479 #: erpnext/manufacturing/doctype/work_order/work_order.js:851 #: erpnext/manufacturing/doctype/work_order/work_order.js:885 #: erpnext/setup/doctype/vehicle/vehicle.json @@ -29313,7 +29405,7 @@ msgstr "" msgid "Make Stock Entry" msgstr "Doen voorraadinskrywing" -#: erpnext/manufacturing/doctype/job_card/job_card.js:369 +#: erpnext/manufacturing/doctype/job_card/job_card.js:368 msgid "Make Subcontracting PO" msgstr "" @@ -29372,7 +29464,13 @@ msgstr "" msgid "Mandatory Accounting Dimension" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1922 +#. Label of the mandatory_depends_on_backend (Small Text) field in DocType +#. 'Inventory Dimension' +#: erpnext/stock/doctype/inventory_dimension/inventory_dimension.json +msgid "Mandatory Depends On (Backend)" +msgstr "" + +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1929 msgid "Mandatory Field" msgstr "" @@ -29468,8 +29566,8 @@ msgstr "Handmatige invoer kan nie geskep word nie! Deaktiveer outomatiese invoer #: erpnext/stock/doctype/material_request_item/material_request_item.json #: erpnext/stock/doctype/purchase_receipt_item/purchase_receipt_item.json #: erpnext/stock/doctype/stock_entry/stock_entry.json -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1525 -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1541 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1583 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1599 #: erpnext/stock/doctype/stock_entry_type/stock_entry_type.json #: erpnext/subcontracting/doctype/subcontracting_order_item/subcontracting_order_item.json #: erpnext/subcontracting/doctype/subcontracting_receipt_item/subcontracting_receipt_item.json @@ -29613,7 +29711,7 @@ msgstr "" msgid "Manufacturing Manager" msgstr "Vervaardiging Bestuurder" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:2839 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2897 msgid "Manufacturing Quantity is mandatory" msgstr "Vervaardiging Hoeveelheid is verpligtend" @@ -29689,7 +29787,7 @@ msgstr "" msgid "Mapping Subcontracting Order ..." msgstr "" -#: erpnext/public/js/utils.js:1067 +#: erpnext/public/js/utils.js:1084 msgid "Mapping {0} ..." msgstr "" @@ -29777,6 +29875,12 @@ msgstr "" msgid "Mark As Closed" msgstr "" +#. Description of the 'Is Internal Customer' (Check) field in DocType +#. 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Mark if this customer represents an internal company. Enables inter-company transactions." +msgstr "" + #. Label of the market_segment (Link) field in DocType 'Lead' #. Name of a DocType #. Label of the market_segment (Data) field in DocType 'Market Segment' @@ -29856,10 +29960,6 @@ msgstr "" msgid "Matched" msgstr "" -#: erpnext/stock/report/item_where_used/item_where_used.py:57 -msgid "Matched Field" -msgstr "" - #. Label of the matched_transaction_rule (Link) field in DocType 'Bank #. Transaction' #: erpnext/accounts/doctype/bank_transaction/bank_transaction.json @@ -29886,7 +29986,7 @@ msgstr "Materiële verbruik" #. Option for the 'Purpose' (Select) field in DocType 'Stock Entry Type' #: erpnext/setup/setup_wizard/operations/install_fixtures.py:114 #: erpnext/stock/doctype/stock_entry/stock_entry.json -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1526 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1584 #: erpnext/stock/doctype/stock_entry_type/stock_entry_type.json msgid "Material Consumption for Manufacture" msgstr "" @@ -29962,7 +30062,7 @@ msgstr "Materiaal Ontvangs" #: erpnext/buying/report/requested_items_to_order_and_receive/requested_items_to_order_and_receive.js:33 #: erpnext/buying/report/requested_items_to_order_and_receive/requested_items_to_order_and_receive.py:184 #: erpnext/buying/workspace/buying/buying.json -#: erpnext/manufacturing/doctype/job_card/job_card.js:214 +#: erpnext/manufacturing/doctype/job_card/job_card.js:216 #: erpnext/manufacturing/doctype/production_plan/production_plan.js:159 #: erpnext/manufacturing/doctype/production_plan/production_plan.json #: erpnext/manufacturing/doctype/production_plan_item/production_plan_item.json @@ -30126,7 +30226,7 @@ msgstr "" #. Option for the 'Purpose' (Select) field in DocType 'Pick List' #. Option for the 'Purpose' (Select) field in DocType 'Stock Entry' #. Option for the 'Purpose' (Select) field in DocType 'Stock Entry Type' -#: erpnext/manufacturing/doctype/job_card/job_card.js:225 +#: erpnext/manufacturing/doctype/job_card/job_card.js:224 #: erpnext/manufacturing/doctype/material_request_plan_item/material_request_plan_item.json #: erpnext/setup/setup_wizard/operations/install_fixtures.py:83 #: erpnext/stock/doctype/item/item.json @@ -30197,8 +30297,8 @@ msgstr "" msgid "Materials are already received against the {0} {1}" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:184 -#: erpnext/manufacturing/doctype/job_card/job_card.py:854 +#: erpnext/manufacturing/doctype/job_card/job_card.py:185 +#: erpnext/manufacturing/doctype/job_card/job_card.py:855 msgid "Materials needs to be transferred to the work in progress warehouse for the job card {0}" msgstr "" @@ -30299,11 +30399,11 @@ msgstr "" msgid "Maximum Producible Items" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:4370 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:4428 msgid "Maximum Samples - {0} can be retained for Batch {1} and Item {2}." msgstr "Maksimum monsters - {0} kan behou word vir bondel {1} en item {2}." -#: erpnext/stock/doctype/stock_entry/stock_entry.py:4361 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:4419 msgid "Maximum Samples - {0} have already been retained for Batch {1} and Item {2} in Batch {3}." msgstr "Maksimum steekproewe - {0} is reeds behou vir bondel {1} en item {2} in bondel {3}." @@ -30364,20 +30464,10 @@ msgstr "" msgid "Megawatt" msgstr "" -#: erpnext/stock/stock_ledger.py:2039 +#: erpnext/stock/stock_ledger.py:2028 msgid "Mention Valuation Rate in the Item master." msgstr "Noem waardasiesyfer in die artikelmeester." -#. Description of the 'Accounts' (Table) field in DocType 'Customer' -#: erpnext/selling/doctype/customer/customer.json -msgid "Mention if non-standard Receivable account" -msgstr "" - -#. Description of the 'Accounts' (Table) field in DocType 'Supplier' -#: erpnext/buying/doctype/supplier/supplier.json -msgid "Mention if non-standard payable account" -msgstr "" - #. Description of the 'Accounts' (Table) field in DocType 'Customer Group' #. Description of the 'Accounts' (Table) field in DocType 'Supplier Group' #: erpnext/setup/doctype/customer_group/customer_group.json @@ -30409,7 +30499,7 @@ msgstr "" msgid "Merge similar Account Heads" msgstr "" -#: erpnext/public/js/utils.js:1099 +#: erpnext/public/js/utils.js:1116 msgid "Merge taxes from multiple documents" msgstr "" @@ -30750,19 +30840,19 @@ msgstr "" msgid "Miscellaneous Expenses" msgstr "Diverse uitgawes" -#: erpnext/controllers/buying_controller.py:715 +#: erpnext/controllers/buying_controller.py:778 msgid "Mismatch" msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:1219 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:1335 msgid "Missing" msgstr "" #: erpnext/accounts/doctype/pos_opening_entry/pos_opening_entry.py:97 #: erpnext/accounts/doctype/pos_profile/pos_profile.py:200 #: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:593 -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2471 -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:3087 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2478 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:3094 #: erpnext/assets/doctype/asset_category/asset_category.py:116 msgid "Missing Account" msgstr "Rekening ontbreek" @@ -30792,7 +30882,7 @@ msgstr "" msgid "Missing Finance Book" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1978 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2036 msgid "Missing Finished Good" msgstr "" @@ -30800,7 +30890,7 @@ msgstr "" msgid "Missing Formula" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1267 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1272 msgid "Missing Item" msgstr "" @@ -31078,11 +31168,11 @@ msgstr "" msgid "Multiple Accounts (Journal Template)" msgstr "" -#: erpnext/selling/doctype/customer/customer.py:439 +#: erpnext/selling/doctype/customer/customer.py:440 msgid "Multiple Loyalty Programs found for Customer {}. Please select manually." msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1234 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1241 msgid "Multiple POS Opening Entry" msgstr "" @@ -31108,7 +31198,7 @@ msgstr "" msgid "Multiple fiscal years exist for the date {0}. Please set company in Fiscal Year" msgstr "Verskeie fiskale jare bestaan vir die datum {0}. Stel asseblief die maatskappy in die fiskale jaar" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1985 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2043 msgid "Multiple items cannot be marked as finished item" msgstr "" @@ -31120,7 +31210,7 @@ msgstr "" #: erpnext/manufacturing/doctype/work_order/work_order.py:1510 #: erpnext/setup/doctype/uom/uom.json #: erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.py:267 -#: erpnext/utilities/transaction_base.py:634 +#: erpnext/utilities/transaction_base.py:631 msgid "Must be Whole Number" msgstr "Moet die hele getal wees" @@ -31202,11 +31292,7 @@ msgstr "" msgid "Naming Series options" msgstr "" -#: erpnext/public/js/utils/naming_series.js:196 -msgid "Naming Series updated" -msgstr "" - -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:939 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:950 msgid "Naming series '{0}' for DocType '{1}' does not contain standard '.' or '{{' separator. Using fallback extraction." msgstr "" @@ -31250,7 +31336,7 @@ msgstr "Behoefte-analise" msgid "Negative Batch Report" msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:628 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:631 msgid "Negative Quantity is not allowed" msgstr "Negatiewe Hoeveelheid word nie toegelaat nie" @@ -31265,7 +31351,7 @@ msgstr "" msgid "Negative Stock Error" msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:633 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:636 msgid "Negative Valuation Rate is not allowed" msgstr "Negatiewe Waardasietarief word nie toegelaat nie" @@ -31644,7 +31730,7 @@ msgstr "" msgid "New Income" msgstr "" -#: erpnext/selling/page/point_of_sale/pos_controller.js:259 +#: erpnext/selling/page/point_of_sale/pos_controller.js:250 msgid "New Invoice" msgstr "" @@ -31729,7 +31815,7 @@ msgstr "Nuwe pakhuis naam" msgid "New Workplace" msgstr "" -#: erpnext/selling/doctype/customer/customer.py:404 +#: erpnext/selling/doctype/customer/customer.py:405 msgid "New credit limit is less than current outstanding amount for the customer. Credit limit has to be atleast {0}" msgstr "Nuwe kredietlimiet is minder as die huidige uitstaande bedrag vir die kliënt. Kredietlimiet moet ten minste {0} wees" @@ -31796,12 +31882,12 @@ msgstr "Geen aksie" msgid "No Answer" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2576 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2583 msgid "No Customer found for Inter Company Transactions which represents company {0}" msgstr "Geen kliënt gevind vir Inter Company Transactions wat die maatskappy verteenwoordig nie {0}" #: erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.js:164 -#: erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py:431 +#: erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py:430 msgid "No Customers found with selected options." msgstr "" @@ -31809,7 +31895,7 @@ msgstr "" msgid "No Delivery Note selected for Customer {}" msgstr "Geen afleweringsnota gekies vir kliënt {}" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:756 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:767 msgid "No DocTypes in To Delete list. Please generate or import the list before submitting." msgstr "" @@ -31889,7 +31975,7 @@ msgstr "" msgid "No Summary" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2560 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2567 msgid "No Supplier found for Inter Company Transactions which represents company {0}" msgstr "Geen verskaffer gevind vir transaksies tussen maatskappye wat die maatskappy verteenwoordig nie {0}" @@ -31923,7 +32009,7 @@ msgid "No Work Orders were created" msgstr "" #: erpnext/stock/doctype/purchase_receipt/purchase_receipt.py:827 -#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:899 +#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:905 msgid "No accounting entries for the following warehouses" msgstr "Geen rekeningkundige inskrywings vir die volgende pakhuise nie" @@ -31963,7 +32049,7 @@ msgstr "" msgid "No bank transactions found" msgstr "" -#: erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py:496 +#: erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py:495 msgid "No billing email found for customer: {0}" msgstr "" @@ -32053,10 +32139,6 @@ msgstr "" msgid "No more children on Right" msgstr "" -#: erpnext/public/js/utils/naming_series.js:385 -msgid "No naming series defined" -msgstr "" - #: erpnext/selling/doctype/sales_order/sales_order.js:608 msgid "No of Deliveries" msgstr "" @@ -32133,7 +32215,7 @@ msgstr "" msgid "No open Material Requests found for the given criteria." msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1228 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1235 msgid "No open POS Opening Entry found for POS Profile {0}." msgstr "" @@ -32165,7 +32247,7 @@ msgstr "" msgid "No pending Material Requests found to link for the given items." msgstr "Geen hangende materiaal versoeke gevind om te skakel vir die gegewe items." -#: erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py:503 +#: erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py:502 msgid "No primary email found for customer: {0}" msgstr "" @@ -32228,7 +32310,7 @@ msgstr "" msgid "No stock available for this batch." msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:810 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:813 msgid "No stock ledger entries were created. Please set the quantity or valuation rate for the items properly and try again." msgstr "" @@ -32265,15 +32347,10 @@ msgstr "Geen waardes nie" msgid "No vouchers found for this transaction" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2624 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2631 msgid "No {0} found for Inter Company Transactions." msgstr "Geen {0} gevind vir intermaatskappy transaksies nie." -#: erpnext/assets/doctype/asset/asset.js:377 -#: erpnext/stock/doctype/item/item_prices.html:80 -msgid "No." -msgstr "" - #. Label of the no_of_employees (Select) field in DocType 'Prospect' #: erpnext/crm/doctype/prospect/prospect.json msgid "No. of Employees" @@ -32325,7 +32402,7 @@ msgstr "" msgid "Non-phantom BOM cannot be created for non-stock item {0}." msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:559 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:562 msgid "None of the items have any change in quantity or value." msgstr "Geen van die items het enige verandering in hoeveelheid of waarde nie." @@ -32351,8 +32428,8 @@ msgstr "Nos" msgid "Not Applicable" msgstr "" -#: erpnext/selling/page/point_of_sale/pos_controller.js:824 -#: erpnext/selling/page/point_of_sale/pos_controller.js:853 +#: erpnext/selling/page/point_of_sale/pos_controller.js:815 +#: erpnext/selling/page/point_of_sale/pos_controller.js:844 msgid "Not Available" msgstr "Nie beskikbaar nie" @@ -32435,10 +32512,6 @@ msgstr "" msgid "Not authorized to edit frozen Account {0}" msgstr "Nie gemagtig om bevrore rekening te redigeer nie {0}" -#: erpnext/public/js/utils/naming_series.js:326 -msgid "Not configured" -msgstr "" - #: erpnext/templates/form_grid/stock_entry_grid.html:26 msgid "Not in Stock" msgstr "" @@ -32663,6 +32736,11 @@ msgstr "Aantal nuwe rekeninge, dit sal as 'n voorvoegsel in die rekeningnaam msgid "Number of new Cost Center, it will be included in the cost center name as a prefix" msgstr "Aantal nuwe kostesentrums, dit sal as 'n voorvoegsel in die kostepuntnaam ingesluit word" +#. Description of the 'Supplier Numbers' (Table) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Numbers this customer uses to identify your company in their own system." +msgstr "" + #. Label of the numeric (Check) field in DocType 'Item Quality Inspection #. Parameter' #. Label of the numeric (Check) field in DocType 'Quality Inspection Reading' @@ -32900,7 +32978,7 @@ msgstr "" msgid "Only CSV and Excel files can be used to for importing data. Please check the file format you are trying to upload" msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1072 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1083 msgid "Only CSV files are allowed" msgstr "" @@ -32960,7 +33038,7 @@ msgstr "" msgid "Only one operation can have 'Is Final Finished Good' checked when 'Track Semi Finished Goods' is enabled." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1540 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1598 msgid "Only one {0} entry can be created against the Work Order {1}" msgstr "" @@ -33027,7 +33105,7 @@ msgstr "" msgid "Open Events" msgstr "" -#: erpnext/selling/page/point_of_sale/pos_controller.js:252 +#: erpnext/selling/page/point_of_sale/pos_controller.js:243 msgid "Open Form View" msgstr "Maak vormaansig oop" @@ -33178,7 +33256,7 @@ msgstr "" #. Label of the balance_details (Table) field in DocType 'POS Opening Entry' #: erpnext/accounts/doctype/pos_opening_entry/pos_opening_entry.json -#: erpnext/selling/page/point_of_sale/pos_controller.js:90 +#: erpnext/selling/page/point_of_sale/pos_controller.js:81 msgid "Opening Balance Details" msgstr "" @@ -33208,7 +33286,7 @@ msgstr "" msgid "Opening Entry" msgstr "" -#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:304 +#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:316 msgid "Opening Invoice Creation In Progress" msgstr "Die opening van die skep van fakture aan die gang" @@ -33236,8 +33314,8 @@ msgstr "Invoer faktuur item oopmaak" msgid "Opening Invoice Tool" msgstr "" -#: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1683 -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2031 +#: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1686 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2038 msgid "Opening Invoice has rounding adjustment of {0}.

'{1}' account is required to post these values. Please set it in Company: {2}.

Or, '{3}' can be enabled to not post any rounding adjustment." msgstr "" @@ -33245,7 +33323,7 @@ msgstr "" msgid "Opening Invoices" msgstr "" -#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.js:142 +#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.js:139 msgid "Opening Invoices Summary" msgstr "Opsomming van faktuuropgawe" @@ -33425,11 +33503,11 @@ msgstr "" msgid "Operation time does not depend on quantity to produce" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.js:518 +#: erpnext/manufacturing/doctype/job_card/job_card.js:517 msgid "Operation {0} added multiple times in the work order {1}" msgstr "Handeling {0} is verskeie kere in die werkorde bygevoeg {1}" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1267 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1285 msgid "Operation {0} does not belong to the work order {1}" msgstr "Handeling {0} behoort nie tot die werkbestelling nie {1}" @@ -33636,10 +33714,6 @@ msgstr "Opsioneel. Hierdie instelling sal gebruik word om in verskillende transa msgid "Optional. Used with Financial Report Template" msgstr "" -#: erpnext/public/js/utils/naming_series.js:83 -msgid "Optionally, set the number of digits in the series using dot (.) followed by hashes (#). For example, '.####' means that the series will have four digits. Default is five digits." -msgstr "" - #: erpnext/selling/report/territory_wise_sales/territory_wise_sales.py:43 msgid "Order Amount" msgstr "Bestelbedrag" @@ -33923,8 +33997,8 @@ msgstr "" msgid "Out of stock" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1241 -#: erpnext/selling/page/point_of_sale/pos_controller.js:208 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1248 +#: erpnext/selling/page/point_of_sale/pos_controller.js:199 msgid "Outdated POS Opening Entry" msgstr "" @@ -33976,7 +34050,7 @@ msgstr "" #: erpnext/accounts/doctype/cashier_closing/cashier_closing.json #: erpnext/accounts/doctype/discounted_invoice/discounted_invoice.json #: erpnext/accounts/doctype/opening_invoice_creation_tool_item/opening_invoice_creation_tool_item.json -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:887 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:896 #: erpnext/accounts/doctype/payment_reconciliation_invoice/payment_reconciliation_invoice.json #: erpnext/accounts/doctype/payment_request/payment_request.json #: erpnext/accounts/doctype/pos_invoice/pos_invoice.js:300 @@ -34034,7 +34108,7 @@ msgstr "" msgid "Over Billing Allowance (%)" msgstr "" -#: erpnext/stock/doctype/purchase_receipt/purchase_receipt.py:1339 +#: erpnext/stock/doctype/purchase_receipt/purchase_receipt.py:1343 msgid "Over Billing Allowance exceeded for Purchase Receipt Item {0} ({1}) by {2}%" msgstr "" @@ -34057,11 +34131,11 @@ msgstr "" msgid "Over Picking Allowance (%)" msgstr "" -#: erpnext/controllers/stock_controller.py:1729 +#: erpnext/controllers/stock_controller.py:1776 msgid "Over Receipt" msgstr "" -#: erpnext/controllers/status_updater.py:505 +#: erpnext/controllers/status_updater.py:516 msgid "Over Receipt/Delivery of {0} {1} ignored for item {2} because you have {3} role." msgstr "" @@ -34078,7 +34152,7 @@ msgstr "" msgid "Over Withheld" msgstr "" -#: erpnext/controllers/status_updater.py:507 +#: erpnext/controllers/status_updater.py:518 msgid "Overbilling of {0} {1} ignored for item {2} because you have {3} role." msgstr "" @@ -34159,6 +34233,12 @@ msgstr "" msgid "Overproduction for Sales and Work Order" msgstr "" +#. Description of the 'Per-Company Accounts' (Table) field in DocType +#. 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "Override the default payable / advance accounts on a per-company basis. Leave blank to use each company's defaults from Company settings." +msgstr "" + #. Option for the 'Permanent Address Is' (Select) field in DocType 'Employee' #. Option for the 'Current Address Is' (Select) field in DocType 'Employee' #: erpnext/setup/doctype/employee/employee.json @@ -34196,6 +34276,11 @@ msgstr "" msgid "PCV" msgstr "" +#. Label of the pcv_job_timeout (Int) field in DocType 'Accounts Settings' +#: erpnext/accounts/doctype/accounts_settings/accounts_settings.json +msgid "PCV Job Timeout (seconds)" +msgstr "" + #: erpnext/accounts/doctype/process_period_closing_voucher/process_period_closing_voucher.js:35 msgid "PCV Paused" msgstr "" @@ -34243,7 +34328,7 @@ msgstr "" msgid "POS Additional Fields" msgstr "" -#: erpnext/selling/page/point_of_sale/pos_controller.js:183 +#: erpnext/selling/page/point_of_sale/pos_controller.js:174 msgid "POS Closed" msgstr "" @@ -34393,7 +34478,7 @@ msgstr "" msgid "POS Opening Entry" msgstr "POS-openingsinskrywing" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1242 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1249 msgid "POS Opening Entry - {0} is outdated. Please close the POS and create a new POS Opening Entry." msgstr "" @@ -34401,7 +34486,7 @@ msgstr "" msgid "POS Opening Entry Cancellation Error" msgstr "" -#: erpnext/selling/page/point_of_sale/pos_controller.js:183 +#: erpnext/selling/page/point_of_sale/pos_controller.js:174 msgid "POS Opening Entry Cancelled" msgstr "" @@ -34414,7 +34499,7 @@ msgstr "POS-inskrywingsdetail" msgid "POS Opening Entry Exists" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1227 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1234 msgid "POS Opening Entry Missing" msgstr "" @@ -34422,7 +34507,7 @@ msgstr "" msgid "POS Opening Entry cannot be cancelled as unconsolidated Invoices exists." msgstr "" -#: erpnext/selling/page/point_of_sale/pos_controller.js:189 +#: erpnext/selling/page/point_of_sale/pos_controller.js:180 msgid "POS Opening Entry has been cancelled. Please refresh the page." msgstr "" @@ -34445,12 +34530,12 @@ msgstr "POS-betaalmetode" #: erpnext/accounts/report/pos_register/pos_register.js:32 #: erpnext/accounts/report/pos_register/pos_register.py:117 #: erpnext/accounts/report/pos_register/pos_register.py:188 -#: erpnext/selling/page/point_of_sale/pos_controller.js:80 +#: erpnext/selling/page/point_of_sale/pos_controller.js:71 #: erpnext/workspace_sidebar/selling.json msgid "POS Profile" msgstr "POS Profiel" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1235 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1242 msgid "POS Profile - {0} has multiple open POS Opening Entries. Please close or cancel the existing entries before proceeding." msgstr "" @@ -34468,11 +34553,11 @@ msgstr "POS Profiel gebruiker" msgid "POS Profile doesn't match {}" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1195 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1202 msgid "POS Profile is mandatory to mark this invoice as POS Transaction." msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1424 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1431 msgid "POS Profile required to make POS Entry" msgstr "POS-profiel wat nodig is om POS-inskrywing te maak" @@ -34523,11 +34608,11 @@ msgstr "Posinstellings" msgid "POS Transactions" msgstr "" -#: erpnext/selling/page/point_of_sale/pos_controller.js:187 +#: erpnext/selling/page/point_of_sale/pos_controller.js:178 msgid "POS has been closed at {0}. Please refresh the page." msgstr "" -#: erpnext/selling/page/point_of_sale/pos_controller.js:464 +#: erpnext/selling/page/point_of_sale/pos_controller.js:455 msgid "POS invoice {0} created successfully" msgstr "" @@ -34578,7 +34663,7 @@ msgstr "Gepakte item" msgid "Packed Items" msgstr "" -#: erpnext/controllers/stock_controller.py:1563 +#: erpnext/controllers/stock_controller.py:1610 msgid "Packed Items cannot be transferred internally" msgstr "" @@ -34726,7 +34811,7 @@ msgid "Paid To Account Type" msgstr "" #: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:334 -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1191 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1198 msgid "Paid amount + Write Off Amount can not be greater than Grand Total" msgstr "Betaalde bedrag + Skryf af Die bedrag kan nie groter as Grand Total wees nie" @@ -34945,7 +35030,7 @@ msgstr "" msgid "Partial Material Transferred" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1214 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1221 msgid "Partial Payment in POS Transactions are not allowed." msgstr "" @@ -35036,6 +35121,11 @@ msgstr "" msgid "Partially Reserved" msgstr "" +#. Option for the 'Status' (Select) field in DocType 'Job Card' +#: erpnext/manufacturing/doctype/job_card/job_card.json +msgid "Partially Transferred" +msgstr "" + #. Option for the 'Status' (Select) field in DocType 'Stock Reservation Entry' #: erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.json msgid "Partially Used" @@ -35486,7 +35576,7 @@ msgstr "" msgid "Pause" msgstr "breek" -#: erpnext/manufacturing/doctype/job_card/job_card.js:664 +#: erpnext/manufacturing/doctype/job_card/job_card.js:662 msgid "Pause Job" msgstr "" @@ -35931,7 +36021,7 @@ msgstr "" #. Name of a DocType #. Label of a Workspace Sidebar Item #: erpnext/accounts/doctype/accounts_settings/accounts_settings.json -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1710 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1719 #: erpnext/accounts/doctype/payment_entry_reference/payment_entry_reference.json #: erpnext/accounts/doctype/payment_order/payment_order.js:19 #: erpnext/accounts/doctype/payment_order/payment_order.json @@ -36006,7 +36096,7 @@ msgstr "Betalingskedule" msgid "Payment Schedule based Payment Requests cannot be created because a Payment Entry already exists for this document." msgstr "" -#: erpnext/public/js/controllers/transaction.js:488 +#: erpnext/public/js/controllers/transaction.js:507 msgid "Payment Schedules" msgstr "" @@ -36028,7 +36118,7 @@ msgstr "" #: erpnext/accounts/report/accounts_receivable/accounts_receivable.py:1210 #: erpnext/accounts/report/gross_profit/gross_profit.py:449 #: erpnext/accounts/workspace/invoicing/invoicing.json -#: erpnext/public/js/controllers/transaction.js:503 +#: erpnext/public/js/controllers/transaction.js:522 #: erpnext/selling/report/payment_terms_status_for_sales_order/payment_terms_status_for_sales_order.py:30 #: erpnext/workspace_sidebar/accounts_setup.json msgid "Payment Term" @@ -36078,6 +36168,8 @@ msgstr "" #. Invoice' #. Label of the payment_terms_template (Link) field in DocType 'Sales Invoice' #. Label of the payment_terms_template (Link) field in DocType 'Purchase Order' +#. Label of the payment_terms (Link) field in DocType 'Supplier' +#. Label of the payment_terms (Link) field in DocType 'Customer' #. Label of the payment_terms_template (Link) field in DocType 'Quotation' #. Label of the payment_terms_template (Link) field in DocType 'Sales Order' #: erpnext/accounts/doctype/payment_terms_template/payment_terms_template.json @@ -36092,6 +36184,8 @@ msgstr "" #: erpnext/accounts/report/customer_ledger_summary/customer_ledger_summary.js:62 #: erpnext/accounts/report/supplier_ledger_summary/supplier_ledger_summary.js:61 #: erpnext/buying/doctype/purchase_order/purchase_order.json +#: erpnext/buying/doctype/supplier/supplier.json +#: erpnext/selling/doctype/customer/customer.json #: erpnext/selling/doctype/quotation/quotation.json #: erpnext/selling/doctype/sales_order/sales_order.json msgid "Payment Terms Template" @@ -36145,7 +36239,7 @@ msgstr "Betalingsbedrag kan nie kleiner as of gelyk aan 0 wees nie" msgid "Payment methods are mandatory. Please add at least one payment method." msgstr "Betaalmetodes is verpligtend. Voeg ten minste een betaalmetode by." -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:3091 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:3098 msgid "Payment methods refreshed. Please review before proceeding." msgstr "" @@ -36283,7 +36377,7 @@ msgstr "Hangende hoeveelheid" #: erpnext/buying/report/subcontracted_item_to_be_received/subcontracted_item_to_be_received.py:55 #: erpnext/buying/report/subcontracted_raw_materials_to_be_transferred/subcontracted_raw_materials_to_be_transferred.py:45 -#: erpnext/manufacturing/doctype/job_card/job_card.js:273 +#: erpnext/manufacturing/doctype/job_card/job_card.js:272 msgid "Pending Quantity" msgstr "Hangende hoeveelheid" @@ -36323,11 +36417,11 @@ msgstr "Hangende aktiwiteite vir vandag" msgid "Pending processing" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1503 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1521 msgid "Pending quantity cannot be greater than the for quantity." msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1497 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1515 msgid "Pending quantity cannot be negative." msgstr "" @@ -36383,6 +36477,11 @@ msgstr "" msgid "Per Year" msgstr "" +#. Label of the accounts (Table) field in DocType 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "Per-Company Accounts" +msgstr "" + #. Description of the 'PDF Tables' (JSON) field in DocType 'Bank Statement #. Import Log' #: erpnext/accounts/doctype/bank_statement_import_log/bank_statement_import_log.json @@ -37037,11 +37136,11 @@ msgstr "Kies 'n verskaffer" msgid "Please Set Priority" msgstr "" -#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:171 +#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:182 msgid "Please Set Supplier Group in Buying Settings." msgstr "Stel asseblief Verskaffersgroep in Koopinstellings." -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1910 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1919 msgid "Please Specify Account" msgstr "" @@ -37049,7 +37148,7 @@ msgstr "" msgid "Please add 'Supplier' role to user {0}." msgstr "" -#: erpnext/selling/page/point_of_sale/pos_controller.js:101 +#: erpnext/selling/page/point_of_sale/pos_controller.js:92 msgid "Please add Mode of payments and opening balance details." msgstr "Voeg asseblief betalingsmetode en openingsaldo-besonderhede by." @@ -37065,7 +37164,7 @@ msgstr "" msgid "Please add Root Account for - {0}" msgstr "" -#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:320 +#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:332 msgid "Please add a Temporary Opening account in Chart of Accounts" msgstr "Voeg asseblief 'n Tydelike Openingsrekening in die Grafiek van Rekeninge by" @@ -37073,14 +37172,14 @@ msgstr "Voeg asseblief 'n Tydelike Openingsrekening in die Grafiek van Reken msgid "Please add an account for the Bank Entry rule." msgstr "" -#: erpnext/public/js/utils/naming_series.js:170 -msgid "Please add at least one naming series." -msgstr "" - #: erpnext/public/js/utils/serial_no_batch_selector.js:662 msgid "Please add atleast one Serial No / Batch No" msgstr "" +#: erpnext/crm/doctype/crm_settings/crm_settings.py:51 +msgid "Please add atleast one user on Allowed Users to allow Data Synchronization from Frappe CRM site." +msgstr "" + #: erpnext/accounts/doctype/bank_statement_import/bank_statement_import.py:85 msgid "Please add the Bank Account column" msgstr "" @@ -37097,7 +37196,7 @@ msgstr "Voeg die rekening by die maatskappy se wortelvlak - {}" msgid "Please add {1} role to user {0}." msgstr "" -#: erpnext/controllers/stock_controller.py:1740 +#: erpnext/controllers/stock_controller.py:1787 msgid "Please adjust the qty or edit {0} to proceed." msgstr "" @@ -37105,7 +37204,7 @@ msgstr "" msgid "Please attach CSV file" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:3237 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:3244 msgid "Please cancel and amend the Payment Entry" msgstr "" @@ -37139,7 +37238,7 @@ msgstr "" msgid "Please check the 'Activate Serial and Batch No for Item' checkbox in the {0} to make Serial and Batch Bundle for the item." msgstr "" -#: erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py:582 +#: erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py:585 msgid "Please check the error message and take necessary actions to fix the error and then restart the reposting again." msgstr "" @@ -37172,7 +37271,7 @@ msgstr "" msgid "Please configure accounts for the Bank Entry rule." msgstr "" -#: erpnext/selling/doctype/customer/customer.py:634 +#: erpnext/selling/doctype/customer/customer.py:635 msgid "Please contact any of the following users to extend the credit limits for {0}: {1}" msgstr "" @@ -37180,7 +37279,7 @@ msgstr "" msgid "Please contact any of the following users to {} this transaction." msgstr "" -#: erpnext/selling/doctype/customer/customer.py:627 +#: erpnext/selling/doctype/customer/customer.py:628 msgid "Please contact your administrator to extend the credit limits for {0}." msgstr "" @@ -37256,20 +37355,20 @@ msgstr "" msgid "Please ensure that the {0} account {1} is a Payable account. You can change the account type to Payable or select a different account." msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1054 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1061 msgid "Please ensure {} account is a Balance Sheet account." msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1064 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1071 msgid "Please ensure {} account {} is a Receivable account." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:859 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:862 msgid "Please enter Difference Account or set default Stock Adjustment Account for company {0}" msgstr "Voer asseblief die verskilrekening in of stel standaardvoorraad- aanpassingsrekening vir maatskappy {0}" #: erpnext/accounts/doctype/pos_invoice/pos_invoice.py:555 -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1326 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1333 msgid "Please enter Account for Change Amount" msgstr "Voer asseblief die rekening vir Veranderingsbedrag in" @@ -37277,11 +37376,11 @@ msgstr "Voer asseblief die rekening vir Veranderingsbedrag in" msgid "Please enter Approving Role or Approving User" msgstr "Voer asseblief 'n goedgekeurde rol of goedgekeurde gebruiker in" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:683 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:686 msgid "Please enter Batch No" msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:960 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:963 msgid "Please enter Cost Center" msgstr "Voer asseblief Koste Sentrum in" @@ -37293,7 +37392,7 @@ msgstr "Voer asseblief Verskaffingsdatum in" msgid "Please enter Employee Id of this sales person" msgstr "Voer asseblief die werknemer se ID van hierdie verkoopspersoon in" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:969 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:972 msgid "Please enter Expense Account" msgstr "Voer asseblief koste-rekening in" @@ -37302,7 +37401,7 @@ msgstr "Voer asseblief koste-rekening in" msgid "Please enter Item Code to get Batch Number" msgstr "Voer asseblief die Kode in om groepsnommer te kry" -#: erpnext/public/js/controllers/transaction.js:3020 +#: erpnext/public/js/controllers/transaction.js:3034 msgid "Please enter Item Code to get batch no" msgstr "Voer asseblief die kode in om groepsnommer te kry" @@ -37338,7 +37437,7 @@ msgstr "Voer asseblief Verwysingsdatum in" msgid "Please enter Root Type for account- {0}" msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:685 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:688 msgid "Please enter Serial No" msgstr "" @@ -37355,7 +37454,7 @@ msgid "Please enter Warehouse and Date" msgstr "Voer asseblief Warehouse en Date in" #: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:660 -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1322 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1329 msgid "Please enter Write Off Account" msgstr "Voer asseblief 'Skryf 'n rekening in" @@ -37423,7 +37522,7 @@ msgstr "" msgid "Please enter the phone number first" msgstr "Voer eers die telefoonnommer in" -#: erpnext/controllers/buying_controller.py:1185 +#: erpnext/controllers/buying_controller.py:1248 msgid "Please enter the {schedule_date}." msgstr "" @@ -37537,8 +37636,8 @@ msgstr "" msgid "Please select Template Type to download template" msgstr "Kies Sjabloontipe om die sjabloon af te laai" -#: erpnext/controllers/taxes_and_totals.py:859 -#: erpnext/public/js/controllers/taxes_and_totals.js:822 +#: erpnext/controllers/taxes_and_totals.py:862 +#: erpnext/public/js/controllers/taxes_and_totals.js:825 msgid "Please select Apply Discount On" msgstr "Kies asseblief Verkoop afslag aan" @@ -37550,7 +37649,7 @@ msgstr "Kies asseblief BOM teen item {0}" msgid "Please select BOM for Item in Row {0}" msgstr "Kies asseblief BOM vir item in ry {0}" -#: erpnext/controllers/buying_controller.py:649 +#: erpnext/controllers/buying_controller.py:712 msgid "Please select BOM in BOM field for Item {item_code}." msgstr "" @@ -37562,9 +37661,9 @@ msgstr "" msgid "Please select Category first" msgstr "Kies asseblief Kategorie eerste" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1492 -#: erpnext/public/js/controllers/accounts.js:94 -#: erpnext/public/js/controllers/accounts.js:145 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1501 +#: erpnext/public/js/controllers/accounts.js:91 +#: erpnext/public/js/controllers/accounts.js:142 msgid "Please select Charge Type first" msgstr "Kies asseblief die laastipe eers" @@ -37654,7 +37753,7 @@ msgstr "Kies asseblief begin datum en einddatum vir item {0}" msgid "Please select Stock Asset Account" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1904 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1962 msgid "Please select Subcontracting Order instead of Purchase Order {0}" msgstr "" @@ -37674,8 +37773,8 @@ msgstr "Kies asseblief 'n maatskappy" #: erpnext/accounts/doctype/payment_entry/payment_entry.js:268 #: erpnext/manufacturing/doctype/bom/bom.js:730 #: erpnext/manufacturing/doctype/bom/bom.py:279 -#: erpnext/public/js/controllers/accounts.js:277 -#: erpnext/public/js/controllers/transaction.js:3319 +#: erpnext/public/js/controllers/accounts.js:274 +#: erpnext/public/js/controllers/transaction.js:3333 msgid "Please select a Company first." msgstr "Kies eers 'n maatskappy." @@ -37699,7 +37798,7 @@ msgstr "Kies 'n verskaffer" msgid "Please select a Warehouse" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1655 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1673 msgid "Please select a Work Order first." msgstr "" @@ -37756,10 +37855,6 @@ msgstr "" msgid "Please select a supplier for fetching payments." msgstr "" -#: erpnext/public/js/utils/naming_series.js:165 -msgid "Please select a transaction." -msgstr "" - #: erpnext/subcontracting/doctype/subcontracting_order/subcontracting_order.py:142 msgid "Please select a valid Purchase Order that has Service Items." msgstr "" @@ -37796,7 +37891,7 @@ msgstr "" msgid "Please select at least one row with difference value" msgstr "" -#: erpnext/public/js/controllers/transaction.js:531 +#: erpnext/public/js/controllers/transaction.js:550 msgid "Please select at least one schedule." msgstr "" @@ -37891,12 +37986,12 @@ msgstr "" msgid "Please select weekly off day" msgstr "Kies asseblief weekliks af" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1210 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1219 #: erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py:616 msgid "Please select {0} first" msgstr "Kies asseblief eers {0}" -#: erpnext/public/js/controllers/transaction.js:103 +#: erpnext/public/js/controllers/transaction.js:122 msgid "Please set 'Apply Additional Discount On'" msgstr "Stel asseblief 'Add Additional Discount On'" @@ -37916,7 +38011,7 @@ msgstr "" msgid "Please set Account" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1922 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1929 msgid "Please set Account for Change Amount" msgstr "" @@ -38031,7 +38126,7 @@ msgstr "" msgid "Please set an Address on the Company '%s'" msgstr "" -#: erpnext/controllers/stock_controller.py:914 +#: erpnext/controllers/stock_controller.py:917 msgid "Please set an Expense Account in the Items table" msgstr "" @@ -38047,19 +38142,19 @@ msgstr "Stel ten minste een ry in die tabel Belasting en heffings" msgid "Please set both the Tax ID and Fiscal Code on Company {0}" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2468 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2475 msgid "Please set default Cash or Bank account in Mode of Payment {0}" msgstr "Stel asb. Kontant- of bankrekening in die betalingsmetode {0}" #: erpnext/accounts/doctype/pos_opening_entry/pos_opening_entry.py:94 #: erpnext/accounts/doctype/pos_profile/pos_profile.py:197 -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:3084 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:3091 msgid "Please set default Cash or Bank account in Mode of Payment {}" msgstr "Stel die verstek kontant- of bankrekening in die betaalmetode {}" #: erpnext/accounts/doctype/pos_opening_entry/pos_opening_entry.py:96 #: erpnext/accounts/doctype/pos_profile/pos_profile.py:199 -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:3086 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:3093 msgid "Please set default Cash or Bank account in Mode of Payments {}" msgstr "Stel asseblief die standaard kontant- of bankrekening in die modus van betalings {}" @@ -38075,11 +38170,11 @@ msgstr "" msgid "Please set default UOM in Stock Settings" msgstr "Stel standaard UOM in Voorraadinstellings" -#: erpnext/controllers/stock_controller.py:773 +#: erpnext/controllers/stock_controller.py:776 msgid "Please set default cost of goods sold account in company {0} for booking rounding gain and loss during stock transfer" msgstr "" -#: erpnext/controllers/stock_controller.py:228 +#: erpnext/controllers/stock_controller.py:231 msgid "Please set default inventory account for item {0}, or their item group or brand." msgstr "" @@ -38100,7 +38195,7 @@ msgstr "" msgid "Please set opening number of booked depreciations" msgstr "" -#: erpnext/public/js/controllers/transaction.js:2687 +#: erpnext/public/js/controllers/transaction.js:2701 msgid "Please set recurring after saving" msgstr "Stel asseblief herhaaldelik na die stoor" @@ -38108,7 +38203,7 @@ msgstr "Stel asseblief herhaaldelik na die stoor" msgid "Please set the Customer Address" msgstr "Stel die kliënteadres in" -#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:187 +#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:198 msgid "Please set the Default Cost Center in {0} company." msgstr "Stel asseblief die Standaardkostesentrum in {0} maatskappy." @@ -38116,11 +38211,11 @@ msgstr "Stel asseblief die Standaardkostesentrum in {0} maatskappy." msgid "Please set the Item Code first" msgstr "Stel asseblief die Item Kode eerste" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1718 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1736 msgid "Please set the Target Warehouse in the Job Card" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1722 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1740 msgid "Please set the WIP Warehouse in the Job Card" msgstr "" @@ -38182,7 +38277,7 @@ msgid "Please specify Company to proceed" msgstr "Spesifiseer asseblief Maatskappy om voort te gaan" #: erpnext/controllers/accounts_controller.py:3207 -#: erpnext/public/js/controllers/accounts.js:117 +#: erpnext/public/js/controllers/accounts.js:114 msgid "Please specify a valid Row ID for row {0} in table {1}" msgstr "Spesifiseer asseblief 'n geldige ry-ID vir ry {0} in tabel {1}" @@ -38194,7 +38289,7 @@ msgstr "" msgid "Please specify at least one attribute in the Attributes table" msgstr "Spesifiseer asb. Ten minste een eienskap in die tabel Eienskappe" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:623 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:626 msgid "Please specify either Quantity or Valuation Rate or both" msgstr "Spesifiseer asb. Hoeveelheid of Waardasietempo of albei" @@ -38365,7 +38460,7 @@ msgstr "" #: erpnext/accounts/doctype/journal_entry/journal_entry.json #: erpnext/accounts/doctype/loyalty_point_entry/loyalty_point_entry.json #: erpnext/accounts/doctype/opening_invoice_creation_tool_item/opening_invoice_creation_tool_item.json -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:874 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:883 #: erpnext/accounts/doctype/payment_entry/payment_entry.json #: erpnext/accounts/doctype/payment_ledger_entry/payment_ledger_entry.json #: erpnext/accounts/doctype/payment_order/payment_order.json @@ -38442,7 +38537,7 @@ msgstr "Posdatum kan nie toekomstige datum wees nie" msgid "Posting Date inheritance for exchange gain / loss" msgstr "" -#: erpnext/public/js/controllers/transaction.js:1112 +#: erpnext/public/js/controllers/transaction.js:1131 msgid "Posting Date will change to today's date as Edit Posting Date and Time is unchecked. Are you sure want to proceed?" msgstr "" @@ -38503,7 +38598,7 @@ msgstr "" msgid "Posting Time" msgstr "Posietyd" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:2789 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2847 msgid "Posting date and posting time is mandatory" msgstr "Posdatum en plasingstyd is verpligtend" @@ -38580,6 +38675,11 @@ msgstr "" msgid "Pre Sales" msgstr "Voorverkope" +#. Description of the 'Company Bank Account' (Link) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Pre-filled on payment entries for this customer. Must be a company account." +msgstr "" + #: erpnext/setup/setup_wizard/operations/install_fixtures.py:307 msgid "Preference" msgstr "voorkeur" @@ -38751,6 +38851,7 @@ msgstr "" #. Option for the 'Rate Of Materials Based On' (Select) field in DocType 'BOM #. Creator' #. Label of the buying_price_list (Link) field in DocType 'BOM Creator' +#. Label of the default_price_list (Link) field in DocType 'Customer' #. Label of the selling_price_list (Link) field in DocType 'Quotation' #. Label of the selling_price_list (Link) field in DocType 'Sales Order' #. Label of a Link in the Selling Workspace @@ -38774,6 +38875,7 @@ msgstr "" #: erpnext/buying/workspace/buying/buying.json #: erpnext/manufacturing/doctype/bom/bom.json #: erpnext/manufacturing/doctype/bom_creator/bom_creator.json +#: erpnext/selling/doctype/customer/customer.json #: erpnext/selling/doctype/quotation/quotation.json #: erpnext/selling/doctype/sales_order/sales_order.json #: erpnext/selling/report/customer_wise_item_price/customer_wise_item_price.py:44 @@ -38935,7 +39037,7 @@ msgstr "" msgid "Price Per Unit ({0})" msgstr "" -#: erpnext/selling/page/point_of_sale/pos_controller.js:696 +#: erpnext/selling/page/point_of_sale/pos_controller.js:687 msgid "Price is not set for the item." msgstr "" @@ -39102,6 +39204,11 @@ msgstr "" msgid "Primary Address Details" msgstr "Primêre adresbesonderhede" +#. Label of the primary_address (Text Editor) field in DocType 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "Primary Address Preview" +msgstr "" + #. Label of the primary_address_and_contact_detail_section (Section Break) #. field in DocType 'Supplier' #. Label of the primary_address_and_contact_detail (Section Break) field in @@ -39336,7 +39443,7 @@ msgstr "" msgid "Process Loss Qty" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.js:289 +#: erpnext/manufacturing/doctype/job_card/job_card.js:288 msgid "Process Loss Quantity" msgstr "" @@ -39417,7 +39524,7 @@ msgstr "" msgid "Process in Single Transaction" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1500 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1518 msgid "Process loss quantity cannot be negative." msgstr "" @@ -39530,7 +39637,7 @@ msgstr "Produk Bundel" msgid "Product Bundle Balance" msgstr "Produkbundelsaldo" -#: erpnext/stock/report/item_where_used/item_where_used.py:278 +#: erpnext/stock/report/item_where_used/item_where_used.py:274 msgid "Product Bundle Component" msgstr "" @@ -39555,7 +39662,7 @@ msgstr "" msgid "Product Bundle Item" msgstr "Produk Bundel Item" -#: erpnext/stock/report/item_where_used/item_where_used.py:305 +#: erpnext/stock/report/item_where_used/item_where_used.py:303 msgid "Product Bundle Parent" msgstr "" @@ -40122,7 +40229,7 @@ msgid "Prospects Engaged But Not Converted" msgstr "Vooruitsigte Betrokke Maar Nie Omskep" #: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:198 -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:786 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:797 msgid "Protected DocType" msgstr "" @@ -40376,7 +40483,7 @@ msgstr "Aankoopfakture kan nie teen 'n bestaande bate {0} gemaak word" msgid "Purchase Invoice {0} is already submitted" msgstr "Aankoopfaktuur {0} is reeds ingedien" -#: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1970 +#: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1973 msgid "Purchase Invoices" msgstr "Koop fakture" @@ -40417,7 +40524,7 @@ msgstr "Koop fakture" #: erpnext/buying/report/purchase_order_analysis/purchase_order_analysis.js:48 #: erpnext/buying/report/purchase_order_analysis/purchase_order_analysis.py:203 #: erpnext/buying/workspace/buying/buying.json -#: erpnext/controllers/buying_controller.py:918 +#: erpnext/controllers/buying_controller.py:981 #: erpnext/crm/doctype/contract/contract.json #: erpnext/manufacturing/doctype/blanket_order/blanket_order.js:54 #: erpnext/manufacturing/doctype/production_plan_sub_assembly_item/production_plan_sub_assembly_item.json @@ -40488,7 +40595,7 @@ msgstr "Bestelling Item" msgid "Purchase Order Item Supplied" msgstr "Aankoop bestelling Item verskaf" -#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:1014 +#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:1020 msgid "Purchase Order Item reference is missing in Subcontracting Receipt {0}" msgstr "" @@ -40677,7 +40784,7 @@ msgstr "" msgid "Purchase Receipt doesn't have any Item for which Retain Sample is enabled." msgstr "Die aankoopbewys het geen item waarvoor die behoudmonster geaktiveer is nie." -#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:1090 +#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:1096 msgid "Purchase Receipt {0} created." msgstr "" @@ -40807,7 +40914,7 @@ msgstr "Koop" msgid "Purpose" msgstr "doel" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:676 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:679 msgid "Purpose must be one of {0}" msgstr "Doel moet een van {0} wees" @@ -40833,6 +40940,12 @@ msgstr "" msgid "Putaway Rule already exists for Item {0} in Warehouse {1}." msgstr "" +#. Description of the 'Mandatory Depends On (Backend)' (Small Text) field in +#. DocType 'Inventory Dimension' +#: erpnext/stock/doctype/inventory_dimension/inventory_dimension.json +msgid "Python expression evaluated on the server. Use doc.fieldname for the row and parent.fieldname for the parent document. When it evaluates to true the dimension becomes mandatory. Example: doc.t_warehouse and doc.qty > 0" +msgstr "" + #: banking/src/components/features/BankReconciliation/BankRecDateFilter.tsx:41 msgid "Q1" msgstr "" @@ -40905,7 +41018,7 @@ msgstr "" #: erpnext/public/js/bom_configurator/bom_configurator.bundle.js:398 #: erpnext/public/js/bom_configurator/bom_configurator.bundle.js:499 #: erpnext/public/js/stock_reservation.js:134 -#: erpnext/public/js/stock_reservation.js:336 erpnext/public/js/utils.js:870 +#: erpnext/public/js/stock_reservation.js:336 erpnext/public/js/utils.js:887 #: erpnext/selling/doctype/delivery_schedule_item/delivery_schedule_item.json #: erpnext/selling/doctype/product_bundle_item/product_bundle_item.json #: erpnext/selling/doctype/sales_order/sales_order.js:398 @@ -40924,7 +41037,7 @@ msgstr "" #: erpnext/stock/doctype/stock_entry_detail/stock_entry_detail.json #: erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.json #: erpnext/stock/report/incorrect_serial_no_valuation/incorrect_serial_no_valuation.py:195 -#: erpnext/stock/report/item_where_used/item_where_used.py:69 +#: erpnext/stock/report/item_where_used/item_where_used.py:63 #: erpnext/stock/report/serial_no_ledger/serial_no_ledger.py:74 #: erpnext/subcontracting/doctype/subcontracting_order/subcontracting_order.js:271 #: erpnext/subcontracting/doctype/subcontracting_order/subcontracting_order.js:370 @@ -41029,7 +41142,7 @@ msgstr "Hoeveelheid om te vervaardig" msgid "Qty To Manufacture ({0}) cannot be a fraction for the UOM {2}. To allow this, disable '{1}' in the UOM {2}." msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:260 +#: erpnext/manufacturing/doctype/job_card/job_card.py:261 msgid "Qty To Manufacture in the job card cannot be greater than Qty To Manufacture in the work order for the operation {0}.

Solution: Either you can reduce the Qty To Manufacture in the job card or set the 'Overproduction Percentage For Work Order' in the {1}." msgstr "" @@ -41135,8 +41248,8 @@ msgstr "" msgid "Qty to Fetch" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.js:247 -#: erpnext/manufacturing/doctype/job_card/job_card.py:905 +#: erpnext/manufacturing/doctype/job_card/job_card.js:246 +#: erpnext/manufacturing/doctype/job_card/job_card.py:906 msgid "Qty to Manufacture" msgstr "Hoeveelheid om te vervaardig" @@ -41304,7 +41417,7 @@ msgstr "Kwaliteit Inspeksie" msgid "Quality Inspection Analysis" msgstr "Kwaliteitsinspeksie-analise" -#: erpnext/public/js/controllers/transaction.js:2950 +#: erpnext/public/js/controllers/transaction.js:2964 msgid "Quality Inspection Not Configured" msgstr "" @@ -41369,21 +41482,21 @@ msgstr "Kwaliteit Inspeksie Sjabloon" msgid "Quality Inspection Template Name" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:799 +#: erpnext/manufacturing/doctype/job_card/job_card.py:800 msgid "Quality Inspection is required for the item {0} before completing the job card {1}" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:810 -#: erpnext/manufacturing/doctype/job_card/job_card.py:819 +#: erpnext/manufacturing/doctype/job_card/job_card.py:811 +#: erpnext/manufacturing/doctype/job_card/job_card.py:820 msgid "Quality Inspection {0} is not submitted for the item: {1}" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:829 -#: erpnext/manufacturing/doctype/job_card/job_card.py:838 +#: erpnext/manufacturing/doctype/job_card/job_card.py:830 +#: erpnext/manufacturing/doctype/job_card/job_card.py:839 msgid "Quality Inspection {0} is rejected for the item: {1}" msgstr "" -#: erpnext/public/js/controllers/transaction.js:384 +#: erpnext/public/js/controllers/transaction.js:403 #: erpnext/stock/doctype/stock_entry/stock_entry.js:208 msgid "Quality Inspection(s)" msgstr "" @@ -41673,8 +41786,8 @@ msgid "Quantity required for Item {0} in row {1}" msgstr "Hoeveelheid benodig vir item {0} in ry {1}" #: erpnext/manufacturing/doctype/bom/bom.py:717 -#: erpnext/manufacturing/doctype/job_card/job_card.js:342 -#: erpnext/manufacturing/doctype/job_card/job_card.js:410 +#: erpnext/manufacturing/doctype/job_card/job_card.js:341 +#: erpnext/manufacturing/doctype/job_card/job_card.js:409 #: erpnext/manufacturing/doctype/workstation/workstation.js:303 msgid "Quantity should be greater than 0" msgstr "Hoeveelheid moet groter as 0 wees" @@ -41683,7 +41796,7 @@ msgstr "Hoeveelheid moet groter as 0 wees" msgid "Quantity to Manufacture" msgstr "Hoeveelheid te vervaardig" -#: erpnext/manufacturing/doctype/work_order/work_order.py:2798 +#: erpnext/manufacturing/doctype/work_order/work_order.py:2830 msgid "Quantity to Manufacture can not be zero for the operation {0}" msgstr "Hoeveelheid te vervaardig kan nie nul wees vir die bewerking {0}" @@ -41720,7 +41833,7 @@ msgstr "" msgid "Query Route String" msgstr "" -#: erpnext/accounts/doctype/accounts_settings/accounts_settings.py:191 +#: erpnext/accounts/doctype/accounts_settings/accounts_settings.py:192 msgid "Queue Size should be between 5 and 100" msgstr "" @@ -41959,7 +42072,7 @@ msgstr "" #: erpnext/manufacturing/doctype/bom_secondary_item/bom_secondary_item.json #: erpnext/manufacturing/doctype/work_order_additional_item/work_order_additional_item.json #: erpnext/manufacturing/doctype/work_order_item/work_order_item.json -#: erpnext/public/js/utils.js:880 +#: erpnext/public/js/utils.js:897 #: erpnext/selling/doctype/product_bundle_item/product_bundle_item.json #: erpnext/selling/doctype/quotation_item/quotation_item.json #: erpnext/selling/doctype/sales_order_item/sales_order_item.json @@ -42295,7 +42408,7 @@ msgstr "" msgid "Raw Materials Consumption" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:417 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:420 msgid "Raw Materials Missing" msgstr "" @@ -42690,8 +42803,8 @@ msgstr "Ontvangerlys is leeg. Maak asseblief Ontvangerlys" msgid "Receiving" msgstr "" -#: erpnext/selling/page/point_of_sale/pos_controller.js:260 -#: erpnext/selling/page/point_of_sale/pos_controller.js:270 +#: erpnext/selling/page/point_of_sale/pos_controller.js:251 +#: erpnext/selling/page/point_of_sale/pos_controller.js:261 #: erpnext/selling/page/point_of_sale/pos_past_order_list.js:19 msgid "Recent Orders" msgstr "" @@ -42992,7 +43105,7 @@ msgstr "" msgid "Reference #{0} dated {1}" msgstr "Verwysing # {0} gedateer {1}" -#: erpnext/public/js/controllers/transaction.js:2800 +#: erpnext/public/js/controllers/transaction.js:2814 msgid "Reference Date for Early Payment Discount" msgstr "" @@ -43215,7 +43328,7 @@ msgstr "" msgid "Regular" msgstr "" -#: erpnext/stock/doctype/inventory_dimension/inventory_dimension.py:212 +#: erpnext/stock/doctype/inventory_dimension/inventory_dimension.py:199 msgid "Rejected " msgstr "" @@ -43417,7 +43530,7 @@ msgstr "" msgid "Remove item if charges is not applicable to that item" msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:566 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:569 msgid "Removed items with no change in quantity or value." msgstr "Verwyder items sonder enige verandering in hoeveelheid of waarde." @@ -43652,7 +43765,7 @@ msgstr "" msgid "Repost Item Valuation" msgstr "" -#: erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py:374 +#: erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py:377 msgid "Repost Item Valuation restarted for selected failed records." msgstr "" @@ -43782,7 +43895,7 @@ msgstr "" msgid "Reqd Qty (BOM)" msgstr "" -#: erpnext/public/js/utils.js:896 +#: erpnext/public/js/utils.js:913 msgid "Reqd by date" msgstr "Gevra volgens datum" @@ -44014,8 +44127,7 @@ msgstr "navorsing en ontwikkeling" msgid "Researcher" msgstr "" -#. Description of the 'Supplier Primary Address' (Link) field in DocType -#. 'Supplier' +#. Description of the 'Primary Address' (Link) field in DocType 'Supplier' #. Description of the 'Customer Primary Address' (Link) field in DocType #. 'Customer' #: erpnext/buying/doctype/supplier/supplier.json @@ -44023,8 +44135,7 @@ msgstr "" msgid "Reselect, if the chosen address is edited after save" msgstr "" -#. Description of the 'Supplier Primary Contact' (Link) field in DocType -#. 'Supplier' +#. Description of the 'Primary Contact' (Link) field in DocType 'Supplier' #. Description of the 'Customer Primary Contact' (Link) field in DocType #. 'Customer' #: erpnext/buying/doctype/supplier/supplier.json @@ -44096,7 +44207,7 @@ msgstr "" msgid "Reserved" msgstr "" -#: erpnext/controllers/stock_controller.py:1321 +#: erpnext/controllers/stock_controller.py:1368 msgid "Reserved Batch Conflict" msgstr "" @@ -44166,7 +44277,7 @@ msgstr "Gereserveerde hoeveelheid" msgid "Reserved Quantity for Production" msgstr "Gereserveerde hoeveelheid vir produksie" -#: erpnext/stock/stock_ledger.py:2307 +#: erpnext/stock/stock_ledger.py:2296 msgid "Reserved Serial No." msgstr "" @@ -44182,13 +44293,13 @@ msgstr "" #: erpnext/stock/doctype/pick_list/pick_list.js:178 #: erpnext/stock/report/reserved_stock/reserved_stock.json #: erpnext/stock/report/stock_balance/stock_balance.py:569 -#: erpnext/stock/stock_ledger.py:2291 +#: erpnext/stock/stock_ledger.py:2280 #: erpnext/subcontracting/doctype/subcontracting_order/subcontracting_order.js:205 #: erpnext/subcontracting/doctype/subcontracting_order/subcontracting_order.js:333 msgid "Reserved Stock" msgstr "" -#: erpnext/stock/stock_ledger.py:2336 +#: erpnext/stock/stock_ledger.py:2325 msgid "Reserved Stock for Batch" msgstr "" @@ -44200,7 +44311,7 @@ msgstr "" msgid "Reserved Stock for Sub-assembly" msgstr "" -#: erpnext/controllers/buying_controller.py:658 +#: erpnext/controllers/buying_controller.py:721 msgid "Reserved Warehouse is mandatory for the Item {item_code} in Raw Materials supplied." msgstr "" @@ -44458,7 +44569,7 @@ msgstr "" msgid "Resume" msgstr "CV" -#: erpnext/manufacturing/doctype/job_card/job_card.js:663 +#: erpnext/manufacturing/doctype/job_card/job_card.js:661 msgid "Resume Job" msgstr "" @@ -44595,7 +44706,7 @@ msgstr "" msgid "Return Raw Material to Customer" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1565 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1572 msgid "Return invoice of asset cancelled" msgstr "" @@ -45071,8 +45182,8 @@ msgstr "" msgid "Rounding Loss Allowance should be between 0 and 1" msgstr "" -#: erpnext/controllers/stock_controller.py:785 -#: erpnext/controllers/stock_controller.py:800 +#: erpnext/controllers/stock_controller.py:788 +#: erpnext/controllers/stock_controller.py:803 msgid "Rounding gain/loss Entry for Stock Transfer" msgstr "" @@ -45099,11 +45210,11 @@ msgstr "" msgid "Row # {0}: Cannot return more than {1} for Item {2}" msgstr "Ry # {0}: Kan nie meer as {1} vir Item {2} terugkeer nie." -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:188 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:191 msgid "Row # {0}: Please add Serial and Batch Bundle for Item {1}" msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:207 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:210 msgid "Row # {0}: Please enter quantity for Item {1} as it is not zero." msgstr "" @@ -45120,12 +45231,12 @@ msgid "Row #1: Sequence ID must be 1 for Operation {0}." msgstr "" #: erpnext/accounts/doctype/pos_invoice/pos_invoice.py:564 -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2123 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2130 msgid "Row #{0} (Payment Table): Amount must be negative" msgstr "Ry # {0} (Betalingstabel): Bedrag moet negatief wees" #: erpnext/accounts/doctype/pos_invoice/pos_invoice.py:562 -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2118 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2125 msgid "Row #{0} (Payment Table): Amount must be positive" msgstr "Ry # {0} (Betaal Tabel): Bedrag moet positief wees" @@ -45142,11 +45253,11 @@ msgid "Row #{0}: Acceptance Criteria Formula is required." msgstr "" #: erpnext/controllers/subcontracting_controller.py:126 -#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:599 +#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:605 msgid "Row #{0}: Accepted Warehouse and Rejected Warehouse cannot be same" msgstr "" -#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:592 +#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:598 msgid "Row #{0}: Accepted Warehouse is mandatory for the accepted Item {1}" msgstr "" @@ -45167,7 +45278,7 @@ msgstr "Ry # {0}: Toegewysde bedrag kan nie groter wees as die uitstaande bedrag msgid "Row #{0}: Allocated amount:{1} is greater than outstanding amount:{2} for Payment Term {3}" msgstr "" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:276 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:279 msgid "Row #{0}: Amount must be a positive number" msgstr "" @@ -45239,31 +45350,35 @@ msgstr "" msgid "Row #{0}: Cannot set Rate if the billed amount is greater than the amount for Item {1}." msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1148 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1149 msgid "Row #{0}: Cannot transfer more than Required Qty {1} for Item {2} against Job Card {3}" msgstr "" +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1315 +msgid "Row #{0}: Cannot transfer {1} {2} of Item {3}. Maximum transferable quantity is {4} {2}." +msgstr "" + #: erpnext/selling/doctype/product_bundle/product_bundle.py:87 msgid "Row #{0}: Child Item should not be a Product Bundle. Please remove Item {1} and Save" msgstr "Ry # {0}: Kinditem mag nie 'n produkbundel wees nie. Verwyder asseblief item {1} en stoor" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:251 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:254 msgid "Row #{0}: Consumed Asset {1} cannot be Draft" msgstr "" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:254 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:257 msgid "Row #{0}: Consumed Asset {1} cannot be cancelled" msgstr "" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:236 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:239 msgid "Row #{0}: Consumed Asset {1} cannot be the same as the Target Asset" msgstr "" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:245 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:248 msgid "Row #{0}: Consumed Asset {1} cannot be {2}" msgstr "" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:259 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:262 msgid "Row #{0}: Consumed Asset {1} does not belong to company {2}" msgstr "" @@ -45334,7 +45449,7 @@ msgstr "Ry # {0}: Duplikaatinskrywing in Verwysings {1} {2}" msgid "Row #{0}: Expected Delivery Date cannot be before Purchase Order Date" msgstr "Ry # {0}: Verwagte afleweringsdatum kan nie voor Aankoopdatum wees nie" -#: erpnext/controllers/stock_controller.py:916 +#: erpnext/controllers/stock_controller.py:919 msgid "Row #{0}: Expense Account not set for the Item {1}. {2}" msgstr "" @@ -45361,11 +45476,11 @@ msgstr "" msgid "Row #{0}: Finished Good Item {1} must be a sub-contracted item" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:632 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:635 msgid "Row #{0}: Finished Good must be {1}" msgstr "" -#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:580 +#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:586 msgid "Row #{0}: Finished Good reference is mandatory for Secondary Item {1}." msgstr "" @@ -45390,7 +45505,7 @@ msgstr "" msgid "Row #{0}: From Date cannot be before To Date" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:893 +#: erpnext/manufacturing/doctype/job_card/job_card.py:894 msgid "Row #{0}: From Time and To Time fields are required" msgstr "" @@ -45398,7 +45513,7 @@ msgstr "" msgid "Row #{0}: Item added" msgstr "Ry # {0}: Item bygevoeg" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1835 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1893 msgid "Row #{0}: Item {1} cannot be transferred more than {2} against {3} {4}" msgstr "" @@ -45414,7 +45529,7 @@ msgstr "" msgid "Row #{0}: Item {1} has no stock in warehouse {2}." msgstr "" -#: erpnext/controllers/stock_controller.py:145 +#: erpnext/controllers/stock_controller.py:148 msgid "Row #{0}: Item {1} has zero rate but '{2}' is not enabled." msgstr "" @@ -45426,7 +45541,7 @@ msgstr "" msgid "Row #{0}: Item {1} is not a Customer Provided Item." msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:766 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:769 msgid "Row #{0}: Item {1} is not a Serialized/Batched Item. It cannot have a Serial No/Batch No against it." msgstr "Ry # {0}: Item {1} is nie 'n serialiseerde / bondelde item nie. Dit kan nie 'n serienommer / groepnommer daarteen hê nie." @@ -45435,15 +45550,15 @@ msgstr "Ry # {0}: Item {1} is nie 'n serialiseerde / bondelde item nie. Dit msgid "Row #{0}: Item {1} is not a part of Subcontracting Inward Order {2}" msgstr "" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:270 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:273 msgid "Row #{0}: Item {1} is not a service item" msgstr "" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:224 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:227 msgid "Row #{0}: Item {1} is not a stock item" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1080 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1083 msgid "Row #{0}: Item {1} is not part of the source manufacture entry and cannot be added to this disassembly." msgstr "" @@ -45455,7 +45570,7 @@ msgstr "" msgid "Row #{0}: Item {1} mismatch. Changing of item code is not permitted." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1089 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1092 msgid "Row #{0}: Item {1} quantity ({2} in stock UOM) does not match the quantity derived from the source ({3}). Do not change the UOM, conversion factor or quantity of disassembly rows." msgstr "" @@ -45483,7 +45598,7 @@ msgstr "" msgid "Row #{0}: Opening Accumulated Depreciation must be less than or equal to {1}" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1144 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1147 msgid "Row #{0}: Operation {1} is not completed for {2} qty of finished goods in Work Order {3}. Please update operation status via Job Card {4}." msgstr "Ry # {0}: Bewerking {1} is nie voltooi vir {2} aantal voltooide goedere in werkorde {3}. Opdateer asseblief operasionele status via Job Card {4}." @@ -45525,8 +45640,8 @@ msgstr "" msgid "Row #{0}: Qty increased by {1}" msgstr "" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:227 -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:273 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:230 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:276 msgid "Row #{0}: Qty must be a positive number" msgstr "" @@ -45534,15 +45649,15 @@ msgstr "" msgid "Row #{0}: Qty should be less than or equal to Available Qty to Reserve (Actual Qty - Reserved Qty) {1} for Iem {2} against Batch {3} in Warehouse {4}." msgstr "" -#: erpnext/controllers/stock_controller.py:1458 +#: erpnext/controllers/stock_controller.py:1505 msgid "Row #{0}: Quality Inspection is required for Item {1}" msgstr "" -#: erpnext/controllers/stock_controller.py:1473 +#: erpnext/controllers/stock_controller.py:1520 msgid "Row #{0}: Quality Inspection {1} is not submitted for the item: {2}" msgstr "" -#: erpnext/controllers/stock_controller.py:1488 +#: erpnext/controllers/stock_controller.py:1535 msgid "Row #{0}: Quality Inspection {1} was rejected for item {2}" msgstr "" @@ -45569,15 +45684,15 @@ msgstr "" msgid "Row #{0}: Rate must be same as {1}: {2} ({3} / {4})" msgstr "" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1242 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1251 msgid "Row #{0}: Reference Document Type must be one of Purchase Order, Purchase Invoice or Journal Entry" msgstr "Ry # {0}: Verwysingsdokumenttipe moet een van Aankope, Aankoopfaktuur of Tydskrifinskrywing wees" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1228 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1237 msgid "Row #{0}: Reference Document Type must be one of Sales Order, Sales Invoice, Journal Entry or Dunning" msgstr "Ry # {0}: die verwysingsdokumenttipe moet een wees van verkoopsorder, verkoopsfaktuur, joernaalinskrywing of uitleg" -#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:573 +#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:579 msgid "Row #{0}: Rejected Qty cannot be set for Secondary Item {1}." msgstr "" @@ -45601,7 +45716,7 @@ msgstr "" msgid "Row #{0}: Returned quantity cannot be greater than available quantity to return for Item {1}" msgstr "" -#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:568 +#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:574 msgid "Row #{0}: Secondary Item Qty cannot be zero" msgstr "" @@ -45617,7 +45732,7 @@ msgstr "" msgid "Row #{0}: Sequence ID must be {1} or {2} for Operation {3}." msgstr "" -#: erpnext/controllers/stock_controller.py:300 +#: erpnext/controllers/stock_controller.py:303 msgid "Row #{0}: Serial No {1} does not belong to Batch {2}" msgstr "Ry # {0}: reeksnommer {1} behoort nie aan groep {2}" @@ -45665,11 +45780,11 @@ msgstr "" msgid "Row #{0}: Source Warehouse {1} for item {2} must be same as Source Warehouse {3} in the Work Order." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1291 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1349 msgid "Row #{0}: Source and Target Warehouse cannot be the same for Material Transfer" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1313 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1371 msgid "Row #{0}: Source, Target Warehouse and Inventory Dimensions cannot be the exact same for Material Transfer" msgstr "" @@ -45714,7 +45829,7 @@ msgstr "" msgid "Row #{0}: Stock not available to reserve for the Item {1} in Warehouse {2}." msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1308 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1315 msgid "Row #{0}: Stock quantity {1} ({2}) for item {3} cannot exceed {4}" msgstr "" @@ -45722,7 +45837,7 @@ msgstr "" msgid "Row #{0}: Target Warehouse must be same as Customer Warehouse {1} from the linked Subcontracting Inward Order" msgstr "" -#: erpnext/controllers/stock_controller.py:313 +#: erpnext/controllers/stock_controller.py:316 msgid "Row #{0}: The batch {1} has already expired." msgstr "Ry # {0}: Die bondel {1} het reeds verval." @@ -45742,7 +45857,7 @@ msgstr "" msgid "Row #{0}: Total Number of Depreciations must be greater than zero" msgstr "" -#: erpnext/controllers/stock_controller.py:97 +#: erpnext/controllers/stock_controller.py:100 msgid "Row #{0}: Warehouse {1} does not match with the warehouse {2} in Serial and Batch Bundle {3}." msgstr "" @@ -45754,7 +45869,7 @@ msgstr "" msgid "Row #{0}: Work Order exists against full or partial quantity of Item {1}" msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:101 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:104 msgid "Row #{0}: You cannot use the inventory dimension '{1}' in Stock Reconciliation to modify the quantity or valuation rate. Stock reconciliation with inventory dimensions is intended solely for performing opening entries." msgstr "" @@ -45762,10 +45877,18 @@ msgstr "" msgid "Row #{0}: You must select an Asset for Item {1}." msgstr "" +#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:142 +msgid "Row #{0}: {1} account is not of type {2}" +msgstr "" + #: erpnext/public/js/controllers/buying.js:265 msgid "Row #{0}: {1} can not be negative for item {2}" msgstr "Ry # {0}: {1} kan nie vir item {2} negatief wees nie" +#: erpnext/controllers/stock_controller.py:1183 +msgid "Row #{0}: {1} is mandatory for the Inventory Dimension {2}." +msgstr "" + #: erpnext/stock/doctype/quality_inspection/quality_inspection.py:322 msgid "Row #{0}: {1} is not a valid reading field. Please refer to the field description." msgstr "" @@ -45790,23 +45913,23 @@ msgstr "" msgid "Row #{idx}: Cannot select Supplier Warehouse while suppling raw materials to subcontractor." msgstr "" -#: erpnext/controllers/buying_controller.py:589 +#: erpnext/controllers/buying_controller.py:652 msgid "Row #{idx}: Item rate has been updated as per valuation rate since its an internal stock transfer." msgstr "" -#: erpnext/controllers/buying_controller.py:1060 +#: erpnext/controllers/buying_controller.py:1123 msgid "Row #{idx}: Please enter a location for the asset item {item_code}." msgstr "" -#: erpnext/controllers/buying_controller.py:712 +#: erpnext/controllers/buying_controller.py:775 msgid "Row #{idx}: Received Qty must be equal to Accepted + Rejected Qty for Item {item_code}." msgstr "" -#: erpnext/controllers/buying_controller.py:725 +#: erpnext/controllers/buying_controller.py:788 msgid "Row #{idx}: {field_label} can not be negative for item {item_code}." msgstr "" -#: erpnext/controllers/buying_controller.py:678 +#: erpnext/controllers/buying_controller.py:741 msgid "Row #{idx}: {field_label} is mandatory." msgstr "" @@ -45814,7 +45937,7 @@ msgstr "" msgid "Row #{idx}: {from_warehouse_field} and {to_warehouse_field} cannot be same." msgstr "" -#: erpnext/controllers/buying_controller.py:1177 +#: erpnext/controllers/buying_controller.py:1240 msgid "Row #{idx}: {schedule_date} cannot be before {transaction_date}." msgstr "" @@ -45887,7 +46010,7 @@ msgstr "" msgid "Row No {0}: Warehouse is required. Please set a Default Warehouse for Item {1} and Company {2}" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:747 +#: erpnext/manufacturing/doctype/job_card/job_card.py:748 msgid "Row {0} : Operation is required against the raw material item {1}" msgstr "Ry {0}: Operasie word benodig teen die rou materiaal item {1}" @@ -45895,11 +46018,11 @@ msgstr "Ry {0}: Operasie word benodig teen die rou materiaal item {1}" msgid "Row {0} picked quantity is less than the required quantity, additional {1} {2} required." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1859 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1917 msgid "Row {0}# Item {1} not found in 'Raw Materials Supplied' table in {2} {3}" msgstr "" -#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:272 +#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:278 msgid "Row {0}: Accepted Qty and Rejected Qty can't be zero at the same time." msgstr "" @@ -45927,7 +46050,7 @@ msgstr "" msgid "Row {0}: Allocated amount {1} must be less than or equal to remaining payment amount {2}" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1520 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1578 msgid "Row {0}: As {1} is enabled, raw materials cannot be added to {2} entry. Use {3} entry to consume raw materials." msgstr "" @@ -45984,7 +46107,7 @@ msgid "Row {0}: Either Delivery Note Item or Packed Item reference is mandatory. msgstr "" #: erpnext/accounts/doctype/journal_entry/journal_entry.py:1026 -#: erpnext/controllers/taxes_and_totals.py:1391 +#: erpnext/controllers/taxes_and_totals.py:1377 msgid "Row {0}: Exchange Rate is mandatory" msgstr "Ry {0}: Wisselkoers is verpligtend" @@ -46020,16 +46143,16 @@ msgstr "Ry {0}: Vir verskaffer {1} word e-posadres vereis om 'n e-pos te stu msgid "Row {0}: From Time and To Time is mandatory." msgstr "Ry {0}: Van tyd tot tyd is verpligtend." -#: erpnext/manufacturing/doctype/job_card/job_card.py:325 +#: erpnext/manufacturing/doctype/job_card/job_card.py:326 #: erpnext/projects/doctype/timesheet/timesheet.py:225 msgid "Row {0}: From Time and To Time of {1} is overlapping with {2}" msgstr "Ry {0}: Van tyd tot tyd van {1} oorvleuel met {2}" -#: erpnext/controllers/stock_controller.py:1554 +#: erpnext/controllers/stock_controller.py:1601 msgid "Row {0}: From Warehouse is mandatory for internal transfers" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:316 +#: erpnext/manufacturing/doctype/job_card/job_card.py:317 msgid "Row {0}: From time must be less than to time" msgstr "Ry {0}: Van tyd tot tyd moet dit minder wees as tot tyd" @@ -46041,7 +46164,7 @@ msgstr "Ry {0}: Ure waarde moet groter as nul wees." msgid "Row {0}: Invalid reference {1}" msgstr "Ry {0}: ongeldige verwysing {1}" -#: erpnext/controllers/taxes_and_totals.py:134 +#: erpnext/controllers/taxes_and_totals.py:135 msgid "Row {0}: Item Tax template updated as per validity and rate applied" msgstr "" @@ -46137,7 +46260,7 @@ msgstr "" msgid "Row {0}: Qty cannot be greater than {1} for the Item {2}." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:723 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:726 msgid "Row {0}: Qty in Stock UOM can not be zero." msgstr "" @@ -46149,15 +46272,15 @@ msgstr "" msgid "Row {0}: Quantity cannot be negative." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1218 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1221 msgid "Row {0}: Quantity not available for {4} in warehouse {1} at posting time of the entry ({2} {3})" msgstr "Ry {0}: Hoeveelheid nie beskikbaar vir {4} in pakhuis {1} op die tydstip van die inskrywing nie ({2} {3})" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:926 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:933 msgid "Row {0}: Sales Invoice {1} is already created for {2}" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:330 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:333 msgid "Row {0}: Serial/Batch has been reset to values linked with Work Order {1} because the previously selected serial/batch does not belong to this Work Order." msgstr "" @@ -46165,11 +46288,11 @@ msgstr "" msgid "Row {0}: Shift cannot be changed since the depreciation has already been processed" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1872 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1930 msgid "Row {0}: Subcontracted Item is mandatory for the raw material {1}" msgstr "Ry {0}: Item uit die onderkontrak is verpligtend vir die grondstof {1}" -#: erpnext/controllers/stock_controller.py:1545 +#: erpnext/controllers/stock_controller.py:1592 msgid "Row {0}: Target Warehouse is mandatory for internal transfers" msgstr "" @@ -46181,7 +46304,7 @@ msgstr "" msgid "Row {0}: The entire expense amount for account {1} in {2} has already been allocated." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:769 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:772 msgid "Row {0}: The item {1}, quantity must be positive number" msgstr "Ry {0}: die item {1}, hoeveelheid moet positief wees" @@ -46193,11 +46316,11 @@ msgstr "" msgid "Row {0}: To set {1} periodicity, difference between from and to date must be greater than or equal to {2}" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:3852 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:3910 msgid "Row {0}: Transferred quantity cannot be greater than the requested quantity." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:717 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:720 msgid "Row {0}: UOM Conversion Factor is mandatory" msgstr "Ry {0}: UOM Gesprekfaktor is verpligtend" @@ -46246,11 +46369,11 @@ msgstr "" msgid "Row {0}: {2} Item {1} does not exist in {2} {3}" msgstr "" -#: erpnext/utilities/transaction_base.py:629 +#: erpnext/utilities/transaction_base.py:626 msgid "Row {1}: Quantity ({0}) cannot be a fraction. To allow this, disable '{2}' in UOM {3}." msgstr "Ry {1}: Hoeveelheid ({0}) kan nie 'n breuk wees nie. Om dit toe te laat, skakel '{2}' in UOM {3} uit." -#: erpnext/controllers/buying_controller.py:1042 +#: erpnext/controllers/buying_controller.py:1105 msgid "Row {idx}: Asset Naming Series is mandatory for the auto creation of assets for item {item_code}." msgstr "" @@ -46345,10 +46468,6 @@ msgstr "" msgid "Rules evaluation started" msgstr "" -#: erpnext/public/js/utils/naming_series.js:54 -msgid "Rules for configuring series" -msgstr "" - #: banking/src/components/features/BankReconciliation/Rules/RuleForm.tsx:189 msgid "Rules to match against the transaction description" msgstr "" @@ -46410,7 +46529,7 @@ msgstr "" msgid "SLA Paused On" msgstr "" -#: erpnext/public/js/utils.js:1260 +#: erpnext/public/js/utils.js:1277 msgid "SLA is on hold since {0}" msgstr "SLA is opgeskort sedert {0}" @@ -46924,7 +47043,7 @@ msgstr "" msgid "Sales Order {0} is not available for production" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1438 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1445 msgid "Sales Order {0} is not submitted" msgstr "Verkoopsbestelling {0} is nie ingedien nie" @@ -46971,6 +47090,7 @@ msgstr "" #. Label of the sales_partner (Table MultiSelect) field in DocType 'Promotional #. Label of the sales_partner (Link) field in DocType 'Sales Invoice' #. Label of the default_sales_partner (Link) field in DocType 'Customer' +#. Label of the sales_team_section (Section Break) field in DocType 'Customer' #. Label of the sales_partner (Link) field in DocType 'Sales Order' #. Label of the sales_partner (Link) field in DocType 'SMS Center' #. Label of a Link in the Selling Workspace @@ -47324,7 +47444,7 @@ msgstr "" msgid "Same day" msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:605 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:608 msgid "Same item and warehouse combination already entered." msgstr "" @@ -47356,12 +47476,12 @@ msgstr "" #. Label of the sample_size (Float) field in DocType 'Quality Inspection' #: erpnext/manufacturing/report/quality_inspection_summary/quality_inspection_summary.py:93 -#: erpnext/public/js/controllers/transaction.js:2857 +#: erpnext/public/js/controllers/transaction.js:2871 #: erpnext/stock/doctype/quality_inspection/quality_inspection.json msgid "Sample Size" msgstr "Steekproefgrootte" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:4352 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:4410 msgid "Sample quantity {0} cannot be more than received quantity {1}" msgstr "Voorbeeldhoeveelheid {0} kan nie meer wees as die hoeveelheid ontvang nie {1}" @@ -47466,7 +47586,7 @@ msgstr "" msgid "Schedule Date" msgstr "Skedule Datum" -#: erpnext/public/js/controllers/transaction.js:497 +#: erpnext/public/js/controllers/transaction.js:516 msgid "Schedule Name" msgstr "" @@ -47760,7 +47880,7 @@ msgstr "" msgid "Select Accounting Dimension." msgstr "" -#: erpnext/public/js/utils.js:555 +#: erpnext/public/js/utils.js:572 msgid "Select Alternate Item" msgstr "Kies alternatiewe item" @@ -47810,7 +47930,7 @@ msgstr "Kies Maatskappy" msgid "Select Company Address" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.js:477 +#: erpnext/manufacturing/doctype/job_card/job_card.js:476 msgid "Select Corrective Operation" msgstr "" @@ -47846,7 +47966,7 @@ msgstr "" msgid "Select Dispatch Address " msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.js:706 +#: erpnext/manufacturing/doctype/job_card/job_card.js:705 msgid "Select Employees" msgstr "Kies Werknemers" @@ -47871,7 +47991,7 @@ msgstr "Kies Items" msgid "Select Items based on Delivery Date" msgstr "Kies items gebaseer op Afleweringsdatum" -#: erpnext/public/js/controllers/transaction.js:2898 +#: erpnext/public/js/controllers/transaction.js:2912 msgid "Select Items for Quality Inspection" msgstr "" @@ -47901,7 +48021,7 @@ msgstr "" msgid "Select Loyalty Program" msgstr "Kies Lojaliteitsprogram" -#: erpnext/public/js/controllers/transaction.js:483 +#: erpnext/public/js/controllers/transaction.js:502 msgid "Select Payment Schedule" msgstr "" @@ -47972,7 +48092,7 @@ msgstr "Kies 'n maatskappy" msgid "Select a Company this Employee belongs to." msgstr "" -#: erpnext/buying/doctype/supplier/supplier.js:180 +#: erpnext/buying/doctype/supplier/supplier.js:221 msgid "Select a Customer" msgstr "" @@ -47984,7 +48104,7 @@ msgstr "Kies 'n standaardprioriteit." msgid "Select a Payment Method." msgstr "" -#: erpnext/selling/doctype/customer/customer.js:249 +#: erpnext/selling/doctype/customer/customer.js:251 msgid "Select a Supplier" msgstr "Kies 'n verskaffer" @@ -48073,7 +48193,7 @@ msgstr "" msgid "Select the Default Workstation where the Operation will be performed. This will be fetched in BOMs and Work Orders." msgstr "" -#: erpnext/manufacturing/doctype/work_order/work_order.js:1218 +#: erpnext/manufacturing/doctype/work_order/work_order.js:1225 msgid "Select the Item to be manufactured." msgstr "" @@ -48098,6 +48218,12 @@ msgstr "" msgid "Select the date and your timezone" msgstr "" +#. Description of the 'Tax Withholding Group' (Link) field in DocType +#. 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Select the group first to filter the applicable withholding categories below." +msgstr "" + #: erpnext/manufacturing/doctype/bom/bom.js:1007 msgid "Select the raw materials (Items) required to manufacture the Item" msgstr "" @@ -48126,7 +48252,7 @@ msgstr "" msgid "Selected POS Opening Entry should be open." msgstr "Geselekteerde POS-inskrywings moet oop wees." -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2619 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2626 msgid "Selected Price List should have buying and selling fields checked." msgstr "Geselekteerde Pryslijst moet gekoop en verkoop velde nagegaan word." @@ -48176,7 +48302,7 @@ msgstr "" msgid "Sell quantity cannot exceed the asset quantity" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1451 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1458 msgid "Sell quantity cannot exceed the asset quantity. Asset {0} has only {1} item(s)." msgstr "" @@ -48292,7 +48418,7 @@ msgid "Send Emails to Suppliers" msgstr "Stuur e-posse na verskaffers" #. Label of the send_sms (Button) field in DocType 'SMS Center' -#: erpnext/public/js/controllers/transaction.js:702 +#: erpnext/public/js/controllers/transaction.js:721 #: erpnext/selling/doctype/sms_center/sms_center.json msgid "Send SMS" msgstr "Stuur SMS" @@ -48376,7 +48502,7 @@ msgstr "" msgid "Serial / Batch No" msgstr "" -#: erpnext/public/js/utils.js:217 +#: erpnext/public/js/utils.js:225 msgid "Serial / Batch Nos" msgstr "" @@ -48428,7 +48554,7 @@ msgstr "" #: erpnext/manufacturing/doctype/job_card/job_card.json #: erpnext/manufacturing/report/cost_of_poor_quality_report/cost_of_poor_quality_report.js:74 #: erpnext/manufacturing/report/cost_of_poor_quality_report/cost_of_poor_quality_report.py:114 -#: erpnext/public/js/controllers/transaction.js:2870 +#: erpnext/public/js/controllers/transaction.js:2884 #: erpnext/public/js/utils/serial_no_batch_selector.js:432 #: erpnext/selling/doctype/installation_note_item/installation_note_item.json #: erpnext/stock/doctype/delivery_note_item/delivery_note_item.json @@ -48606,7 +48732,7 @@ msgstr "Volgnummer {0} is onder garantie tot en met {1}" msgid "Serial No {0} not found" msgstr "Rekeningnommer {0} nie gevind nie" -#: erpnext/selling/page/point_of_sale/pos_controller.js:855 +#: erpnext/selling/page/point_of_sale/pos_controller.js:846 msgid "Serial No: {0} has already been transacted into another POS Invoice." msgstr "Serienommer: {0} is reeds oorgedra na 'n ander POS-faktuur." @@ -48632,7 +48758,7 @@ msgstr "" msgid "Serial Nos are created successfully" msgstr "" -#: erpnext/stock/stock_ledger.py:2297 +#: erpnext/stock/stock_ledger.py:2286 msgid "Serial Nos are reserved in Stock Reservation Entries, you need to unreserve them before proceeding." msgstr "" @@ -48716,7 +48842,7 @@ msgstr "" msgid "Serial and Batch Bundle updated" msgstr "" -#: erpnext/controllers/stock_controller.py:193 +#: erpnext/controllers/stock_controller.py:196 msgid "Serial and Batch Bundle {0} is already used in {1} {2}." msgstr "" @@ -48784,116 +48910,6 @@ msgstr "Serienommer {0} het meer as een keer ingeskryf" msgid "Serial numbers unavailable for Item {0} under warehouse {1}. Please try changing warehouse." msgstr "" -#. Label of the naming_series (Select) field in DocType 'Bank Transaction' -#. Label of the naming_series (Select) field in DocType 'Budget' -#. Label of the naming_series (Select) field in DocType 'Cashier Closing' -#. Label of the naming_series (Select) field in DocType 'Dunning' -#. Label of the naming_series (Select) field in DocType 'Journal Entry' -#. Label of the naming_series (Select) field in DocType 'Journal Entry -#. Template' -#. Label of the naming_series (Select) field in DocType 'Payment Entry' -#. Label of the naming_series (Select) field in DocType 'Payment Order' -#. Label of the naming_series (Select) field in DocType 'Payment Request' -#. Label of the naming_series (Select) field in DocType 'POS Invoice' -#. Label of the naming_series (Select) field in DocType 'Purchase Invoice' -#. Label of the naming_series (Select) field in DocType 'Sales Invoice' -#. Label of the naming_series (Select) field in DocType 'Asset' -#. Label of the naming_series (Select) field in DocType 'Asset Capitalization' -#. Label of the naming_series (Select) field in DocType 'Asset Maintenance Log' -#. Label of the naming_series (Select) field in DocType 'Asset Repair' -#. Label of the naming_series (Select) field in DocType 'Purchase Order' -#. Label of the naming_series (Select) field in DocType 'Request for Quotation' -#. Label of the naming_series (Select) field in DocType 'Supplier' -#. Label of the naming_series (Select) field in DocType 'Supplier Quotation' -#. Label of the naming_series (Select) field in DocType 'Lead' -#. Label of the naming_series (Select) field in DocType 'Opportunity' -#. Label of the naming_series (Select) field in DocType 'Maintenance Schedule' -#. Label of the naming_series (Select) field in DocType 'Maintenance Visit' -#. Label of the naming_series (Select) field in DocType 'Blanket Order' -#. Label of the naming_series (Select) field in DocType 'Work Order' -#. Label of the naming_series (Select) field in DocType 'Project' -#. Label of the naming_series (Data) field in DocType 'Project Update' -#. Label of the naming_series (Select) field in DocType 'Timesheet' -#. Label of the naming_series (Select) field in DocType 'Customer' -#. Label of the naming_series (Select) field in DocType 'Installation Note' -#. Label of the naming_series (Select) field in DocType 'Quotation' -#. Label of the naming_series (Select) field in DocType 'Sales Order' -#. Label of the naming_series (Select) field in DocType 'Driver' -#. Label of the naming_series (Select) field in DocType 'Employee' -#. Label of the naming_series (Select) field in DocType 'Delivery Note' -#. Label of the naming_series (Select) field in DocType 'Delivery Trip' -#. Label of the naming_series (Select) field in DocType 'Item' -#. Label of the naming_series (Select) field in DocType 'Landed Cost Voucher' -#. Label of the naming_series (Select) field in DocType 'Material Request' -#. Label of the naming_series (Select) field in DocType 'Packing Slip' -#. Label of the naming_series (Select) field in DocType 'Pick List' -#. Label of the naming_series (Select) field in DocType 'Purchase Receipt' -#. Label of the naming_series (Select) field in DocType 'Quality Inspection' -#. Label of the naming_series (Select) field in DocType 'Stock Entry' -#. Label of the naming_series (Select) field in DocType 'Stock Reconciliation' -#. Label of the naming_series (Select) field in DocType 'Subcontracting Inward -#. Order' -#. Label of the naming_series (Select) field in DocType 'Subcontracting Order' -#. Label of the naming_series (Select) field in DocType 'Subcontracting -#. Receipt' -#. Label of the naming_series (Select) field in DocType 'Issue' -#. Label of the naming_series (Select) field in DocType 'Warranty Claim' -#: erpnext/accounts/doctype/bank_transaction/bank_transaction.json -#: erpnext/accounts/doctype/budget/budget.json -#: erpnext/accounts/doctype/cashier_closing/cashier_closing.json -#: erpnext/accounts/doctype/dunning/dunning.json -#: erpnext/accounts/doctype/journal_entry/journal_entry.js:661 -#: erpnext/accounts/doctype/journal_entry/journal_entry.json -#: erpnext/accounts/doctype/journal_entry_template/journal_entry_template.json -#: erpnext/accounts/doctype/payment_entry/payment_entry.json -#: erpnext/accounts/doctype/payment_order/payment_order.json -#: erpnext/accounts/doctype/payment_request/payment_request.json -#: erpnext/accounts/doctype/pos_invoice/pos_invoice.json -#: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.json -#: erpnext/assets/doctype/asset/asset.json -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.json -#: erpnext/assets/doctype/asset_maintenance_log/asset_maintenance_log.json -#: erpnext/assets/doctype/asset_repair/asset_repair.json -#: erpnext/buying/doctype/purchase_order/purchase_order.json -#: erpnext/buying/doctype/request_for_quotation/request_for_quotation.json -#: erpnext/buying/doctype/supplier/supplier.json -#: erpnext/buying/doctype/supplier_quotation/supplier_quotation.json -#: erpnext/crm/doctype/lead/lead.json -#: erpnext/crm/doctype/opportunity/opportunity.json -#: erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.json -#: erpnext/maintenance/doctype/maintenance_visit/maintenance_visit.json -#: erpnext/manufacturing/doctype/blanket_order/blanket_order.json -#: erpnext/manufacturing/doctype/work_order/work_order.json -#: erpnext/projects/doctype/project/project.json -#: erpnext/projects/doctype/project_update/project_update.json -#: erpnext/projects/doctype/timesheet/timesheet.json -#: erpnext/public/js/utils/naming_series.js:34 -#: erpnext/selling/doctype/customer/customer.json -#: erpnext/selling/doctype/installation_note/installation_note.json -#: erpnext/selling/doctype/quotation/quotation.json -#: erpnext/selling/doctype/sales_order/sales_order.json -#: erpnext/setup/doctype/driver/driver.json -#: erpnext/setup/doctype/employee/employee.json -#: erpnext/stock/doctype/delivery_note/delivery_note.json -#: erpnext/stock/doctype/delivery_trip/delivery_trip.json -#: erpnext/stock/doctype/item/item.json -#: erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.json -#: erpnext/stock/doctype/material_request/material_request.json -#: erpnext/stock/doctype/packing_slip/packing_slip.json -#: erpnext/stock/doctype/pick_list/pick_list.json -#: erpnext/stock/doctype/purchase_receipt/purchase_receipt.json -#: erpnext/stock/doctype/quality_inspection/quality_inspection.json -#: erpnext/stock/doctype/stock_entry/stock_entry.json -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.json -#: erpnext/subcontracting/doctype/subcontracting_inward_order/subcontracting_inward_order.json -#: erpnext/subcontracting/doctype/subcontracting_order/subcontracting_order.json -#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.json -#: erpnext/support/doctype/issue/issue.json -#: erpnext/support/doctype/warranty_claim/warranty_claim.json -msgid "Series" -msgstr "reeks" - #. Label of the series_for_depreciation_entry (Data) field in DocType 'Company' #: erpnext/setup/doctype/company/company.json msgid "Series for Asset Depreciation Entry (Journal Entry)" @@ -49088,12 +49104,12 @@ msgid "Service Stop Date" msgstr "" #: erpnext/accounts/deferred_revenue.py:45 -#: erpnext/public/js/controllers/transaction.js:1779 +#: erpnext/public/js/controllers/transaction.js:1793 msgid "Service Stop Date cannot be after Service End Date" msgstr "Diensstopdatum kan nie na diens einddatum wees nie" #: erpnext/accounts/deferred_revenue.py:42 -#: erpnext/public/js/controllers/transaction.js:1776 +#: erpnext/public/js/controllers/transaction.js:1790 msgid "Service Stop Date cannot be before Service Start Date" msgstr "Diensstopdatum kan nie voor die diens begin datum wees nie" @@ -49117,7 +49133,7 @@ msgstr "" #. Label of the set_basic_rate_manually (Check) field in DocType 'Stock Entry #. Detail' -#: erpnext/stock/doctype/stock_entry/stock_entry.py:397 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:400 #: erpnext/stock/doctype/stock_entry_detail/stock_entry_detail.json msgid "Set Basic Rate Manually" msgstr "" @@ -49136,8 +49152,8 @@ msgstr "" msgid "Set Dropship Items Delivered Quantity" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.js:363 -#: erpnext/manufacturing/doctype/job_card/job_card.js:425 +#: erpnext/manufacturing/doctype/job_card/job_card.js:362 +#: erpnext/manufacturing/doctype/job_card/job_card.js:424 msgid "Set Finished Good Quantity" msgstr "" @@ -49339,7 +49355,7 @@ msgstr "" msgid "Set targets Item Group-wise for this Sales Person." msgstr "" -#: erpnext/manufacturing/doctype/work_order/work_order.js:1275 +#: erpnext/manufacturing/doctype/work_order/work_order.js:1282 msgid "Set the Planned Start Date (an Estimated Date at which you want the Production to begin)" msgstr "" @@ -50173,7 +50189,7 @@ msgstr "" msgid "Simultaneous" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:847 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:850 msgid "Since there is a process loss of {0} units for the finished good {1}, you should reduce the quantity by {0} units for the finished good {1} in the Items Table." msgstr "" @@ -50234,7 +50250,7 @@ msgstr "" msgid "Skip Material Transfer to WIP Warehouse" msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:563 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:574 msgid "Skipped {0} DocType(s):
{1}" msgstr "" @@ -50285,7 +50301,7 @@ msgstr "" msgid "Solvency Ratios" msgstr "" -#: erpnext/controllers/accounts_controller.py:4371 +#: erpnext/controllers/accounts_controller.py:4369 msgid "Some required Company details are missing. You don't have permission to update them. Please contact your System Manager." msgstr "" @@ -50358,11 +50374,11 @@ msgstr "" msgid "Source Stock Entry (Manufacture)" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1009 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1012 msgid "Source Stock Entry {0} belongs to Work Order {1}, not {2}. Please use a manufacture entry from the same Work Order." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:2622 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2680 msgid "Source Stock Entry {0} has no finished goods quantity" msgstr "" @@ -50428,7 +50444,7 @@ msgstr "" msgid "Source and Target Location cannot be same" msgstr "Bron en teikengebied kan nie dieselfde wees nie" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:975 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:978 msgid "Source and target warehouse cannot be same for row {0}" msgstr "Bron en teiken pakhuis kan nie dieselfde wees vir ry {0}" @@ -50441,9 +50457,9 @@ msgstr "Bron en teiken pakhuis moet anders wees" msgid "Source of Funds (Liabilities)" msgstr "Bron van fondse (laste)" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:942 -#: erpnext/stock/doctype/stock_entry/stock_entry.py:958 -#: erpnext/stock/doctype/stock_entry/stock_entry.py:965 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:945 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:961 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:968 msgid "Source warehouse is mandatory for row {0}" msgstr "Bron pakhuis is verpligtend vir ry {0}" @@ -50534,6 +50550,11 @@ msgstr "" msgid "Split across {} accounts" msgstr "" +#. Description of the 'Sales Team' (Table) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Split commission credit across multiple sales persons." +msgstr "" + #: erpnext/accounts/doctype/payment_entry/payment_entry.py:2480 msgid "Splitting {0} {1} into {2} rows as per Payment Terms" msgstr "" @@ -50587,7 +50608,7 @@ msgstr "" msgid "Stale Days" msgstr "" -#: erpnext/accounts/doctype/accounts_settings/accounts_settings.py:161 +#: erpnext/accounts/doctype/accounts_settings/accounts_settings.py:162 msgid "Stale Days should start from 1." msgstr "" @@ -50656,6 +50677,10 @@ msgstr "" msgid "Start / Resume" msgstr "" +#: erpnext/accounts/doctype/accounting_period/accounting_period.py:45 +msgid "Start Date cannot be after End Date" +msgstr "" + #: erpnext/crm/doctype/email_campaign/email_campaign.py:40 msgid "Start Date cannot be before the current date" msgstr "Die begindatum kan nie voor die huidige datum wees nie" @@ -50664,7 +50689,7 @@ msgstr "Die begindatum kan nie voor die huidige datum wees nie" msgid "Start Date should be lower than End Date" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.js:662 +#: erpnext/manufacturing/doctype/job_card/job_card.js:660 #: erpnext/manufacturing/doctype/workstation/workstation.js:124 msgid "Start Job" msgstr "" @@ -50806,11 +50831,6 @@ msgstr "Status moet een van {0} wees" msgid "Status set to rejected as there are one or more rejected readings." msgstr "" -#. Description of the 'Supplier Details' (Text) field in DocType 'Supplier' -#: erpnext/buying/doctype/supplier/supplier.json -msgid "Statutory info and other general information about your Supplier" -msgstr "" - #. Option for the 'Account Type' (Select) field in DocType 'Account' #. Label of a Desktop Icon #. Group in Incoterm's connections @@ -50942,7 +50962,7 @@ msgstr "" msgid "Stock Details" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1186 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1189 msgid "Stock Entries already created for Work Order {0}: {1}" msgstr "" @@ -51009,7 +51029,7 @@ msgstr "Voorraadinskrywing is reeds teen hierdie Pick List geskep" msgid "Stock Entry {0} created" msgstr "Voorraadinskrywing {0} geskep" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1583 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1601 msgid "Stock Entry {0} has created" msgstr "" @@ -51177,7 +51197,7 @@ msgstr "Voorraad Geprojekteerde Aantal" #: erpnext/manufacturing/doctype/bom_secondary_item/bom_secondary_item.json #: erpnext/selling/doctype/delivery_schedule_item/delivery_schedule_item.json #: erpnext/stock/doctype/material_request_item/material_request_item.json -#: erpnext/stock/report/item_where_used/item_where_used.py:82 +#: erpnext/stock/report/item_where_used/item_where_used.py:76 #: erpnext/stock/report/stock_qty_vs_batch_qty/stock_qty_vs_batch_qty.py:34 #: erpnext/stock/report/stock_qty_vs_serial_no_count/stock_qty_vs_serial_no_count.py:34 msgid "Stock Qty" @@ -51260,7 +51280,7 @@ msgstr "" #: erpnext/stock/doctype/pick_list/pick_list.js:175 #: erpnext/stock/doctype/pick_list/pick_list.js:180 #: erpnext/stock/doctype/stock_entry/stock_entry_dashboard.py:12 -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:743 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:746 #: erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.py:674 #: erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.py:1237 #: erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.py:1644 @@ -51287,7 +51307,7 @@ msgstr "" #: erpnext/controllers/subcontracting_inward_controller.py:1037 #: erpnext/manufacturing/doctype/production_plan/production_plan.py:2245 -#: erpnext/manufacturing/doctype/work_order/work_order.py:2306 +#: erpnext/manufacturing/doctype/work_order/work_order.py:2338 #: erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.py:1777 msgid "Stock Reservation Entries Created" msgstr "" @@ -51457,7 +51477,7 @@ msgstr "Voorraadtransaksies" #: erpnext/stock/doctype/stock_reconciliation_item/stock_reconciliation_item.json #: erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.json #: erpnext/stock/report/batch_item_expiry_status/batch_item_expiry_status.py:35 -#: erpnext/stock/report/item_where_used/item_where_used.py:88 +#: erpnext/stock/report/item_where_used/item_where_used.py:82 #: erpnext/stock/report/reserved_stock/reserved_stock.py:110 #: erpnext/stock/report/stock_balance/stock_balance.py:508 #: erpnext/stock/report/stock_ledger/stock_ledger.py:296 @@ -51589,11 +51609,11 @@ msgstr "" msgid "Stock cannot be reserved in the group warehouse {0}." msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1266 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1273 msgid "Stock cannot be updated against the following Delivery Notes: {0}" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1335 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1342 msgid "Stock cannot be updated because the invoice contains a drop shipping item. Please disable 'Update Stock' or remove the drop shipping item." msgstr "" @@ -51618,7 +51638,7 @@ msgstr "" msgid "Stock not available for Item {0} in Warehouse {1}." msgstr "" -#: erpnext/selling/page/point_of_sale/pos_controller.js:835 +#: erpnext/selling/page/point_of_sale/pos_controller.js:826 msgid "Stock quantity not enough for Item Code: {0} under warehouse {1}. Available quantity {2} {3}." msgstr "" @@ -51717,7 +51737,7 @@ msgstr "" #. Label of the operation (Link) field in DocType 'Job Card Time Log' #. Name of a DocType -#: erpnext/manufacturing/doctype/job_card/job_card.js:310 +#: erpnext/manufacturing/doctype/job_card/job_card.js:309 #: erpnext/manufacturing/doctype/job_card_time_log/job_card_time_log.json #: erpnext/manufacturing/doctype/sub_operation/sub_operation.json msgid "Sub Operation" @@ -51878,7 +51898,7 @@ msgstr "" msgid "Subcontracting Delivery" msgstr "" -#: erpnext/stock/report/item_where_used/item_where_used.py:362 +#: erpnext/stock/report/item_where_used/item_where_used.py:360 msgid "Subcontracting Finished Good" msgstr "" @@ -52059,7 +52079,7 @@ msgstr "" msgid "Subcontracting Sales Order" msgstr "" -#: erpnext/stock/report/item_where_used/item_where_used.py:336 +#: erpnext/stock/report/item_where_used/item_where_used.py:334 msgid "Subcontracting Service Item" msgstr "" @@ -52079,7 +52099,7 @@ msgid "Subdivision" msgstr "" #: erpnext/buying/doctype/purchase_order/purchase_order.py:972 -#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:1086 +#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:1092 msgid "Submit Action Failed" msgstr "" @@ -52107,7 +52127,7 @@ msgstr "Dien hierdie werksopdrag in vir verdere verwerking." msgid "Submit your Quotation" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1493 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1511 msgid "Submitted Job Card cannot be processed." msgstr "" @@ -52275,11 +52295,11 @@ msgstr "" msgid "Successfully imported {0} records." msgstr "" -#: erpnext/buying/doctype/supplier/supplier.js:202 +#: erpnext/buying/doctype/supplier/supplier.js:243 msgid "Successfully linked to Customer" msgstr "" -#: erpnext/selling/doctype/customer/customer.js:271 +#: erpnext/selling/doctype/customer/customer.js:273 msgid "Successfully linked to Supplier" msgstr "" @@ -52443,7 +52463,7 @@ msgstr "Voorsien Aantal" #: erpnext/public/js/purchase_trends_filters.js:63 #: erpnext/regional/doctype/lower_deduction_certificate/lower_deduction_certificate.json #: erpnext/regional/report/irs_1099/irs_1099.py:77 -#: erpnext/selling/doctype/customer/customer.js:253 +#: erpnext/selling/doctype/customer/customer.js:255 #: erpnext/selling/doctype/party_specific_item/party_specific_item.json #: erpnext/selling/doctype/sales_order/sales_order.js:197 #: erpnext/selling/doctype/sales_order/sales_order.js:1703 @@ -52611,7 +52631,7 @@ msgstr "Verskaffer faktuur datum" msgid "Supplier Invoice No" msgstr "Verskafferfaktuurnr" -#: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1812 +#: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1815 msgid "Supplier Invoice No exists in Purchase Invoice {0}" msgstr "Verskafferfaktuur Geen bestaan in Aankoopfaktuur {0}" @@ -52684,8 +52704,6 @@ msgid "Supplier Number At Customer" msgstr "" #. Label of the supplier_numbers (Table) field in DocType 'Customer' -#. Label of the supplier_numbers_section (Section Break) field in DocType -#. 'Customer' #: erpnext/selling/doctype/customer/customer.json msgid "Supplier Numbers" msgstr "" @@ -52714,16 +52732,6 @@ msgstr "" msgid "Supplier Portal Users" msgstr "" -#. Label of the supplier_primary_address (Link) field in DocType 'Supplier' -#: erpnext/buying/doctype/supplier/supplier.json -msgid "Supplier Primary Address" -msgstr "" - -#. Label of the supplier_primary_contact (Link) field in DocType 'Supplier' -#: erpnext/buying/doctype/supplier/supplier.json -msgid "Supplier Primary Contact" -msgstr "" - #. Label of the ref_sq (Link) field in DocType 'Purchase Order' #. Label of the supplier_quotation (Link) field in DocType 'Purchase Order #. Item' @@ -52871,11 +52879,6 @@ msgstr "" msgid "Supplier is required for all selected Items" msgstr "" -#. Description of the 'Supplier Numbers' (Table) field in DocType 'Customer' -#: erpnext/selling/doctype/customer/customer.json -msgid "Supplier numbers assigned by the customer" -msgstr "" - #. Description of a DocType #: erpnext/buying/doctype/supplier/supplier.json msgid "Supplier of Goods or Services." @@ -52885,6 +52888,11 @@ msgstr "" msgid "Supplier {0} not found in {1}" msgstr "Verskaffer {0} nie gevind in {1}" +#. Description of the 'Tax ID' (Data) field in DocType 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "Supplier's tax identification number (e.g. PAN, VAT, GST)" +msgstr "" + #: erpnext/stock/report/item_wise_consumption/item_wise_consumption.py:67 msgid "Supplier(s)" msgstr "Verskaffers)" @@ -52950,10 +52958,6 @@ msgstr "Ondersteuningspan" msgid "Support Tickets" msgstr "Ondersteuningskaartjies" -#: erpnext/public/js/utils/naming_series.js:89 -msgid "Supported Variables:" -msgstr "" - #: erpnext/accounts/report/calculated_discount_mismatch/calculated_discount_mismatch.py:64 msgid "Suspected Discount Amount" msgstr "" @@ -53026,6 +53030,12 @@ msgstr "" msgid "System will notify to increase or decrease quantity or amount " msgstr "" +#. Description of the 'Tax Withholding Category' (Link) field in DocType +#. 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "TDS / withholding tax category applied when paying this supplier" +msgstr "" + #. Name of a report #. Label of a Workspace Sidebar Item #: erpnext/accounts/report/tds_computation_summary/tds_computation_summary.json @@ -53033,7 +53043,7 @@ msgstr "" msgid "TDS Computation Summary" msgstr "TDS Computation Opsomming" -#: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1570 +#: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1573 msgid "TDS Deducted" msgstr "" @@ -53041,6 +53051,12 @@ msgstr "" msgid "TDS Payable" msgstr "" +#. Description of the 'Tax Withholding Category' (Link) field in DocType +#. 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "TDS/TCS is calculated at the rate defined here on every payment from this customer." +msgstr "" + #. Description of a DocType #: erpnext/stock/doctype/item_website_specification/item_website_specification.json msgid "Table for Item that will be shown in Web Site" @@ -53071,23 +53087,23 @@ msgstr "Teiken ({})" msgid "Target Asset" msgstr "" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:209 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:212 msgid "Target Asset {0} cannot be cancelled" msgstr "" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:207 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:210 msgid "Target Asset {0} cannot be submitted" msgstr "" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:203 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:206 msgid "Target Asset {0} cannot be {1}" msgstr "" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:213 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:216 msgid "Target Asset {0} does not belong to company {1}" msgstr "" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:192 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:195 msgid "Target Asset {0} needs to be composite asset" msgstr "" @@ -53133,7 +53149,7 @@ msgstr "" msgid "Target Item Code" msgstr "" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:183 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:186 msgid "Target Item {0} must be a Fixed Asset item" msgstr "" @@ -53214,9 +53230,9 @@ msgstr "" msgid "Target Warehouse {0} must be same as Delivery Warehouse {1} in the Subcontracting Inward Order Item." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:948 -#: erpnext/stock/doctype/stock_entry/stock_entry.py:954 -#: erpnext/stock/doctype/stock_entry/stock_entry.py:969 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:951 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:957 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:972 msgid "Target warehouse is mandatory for row {0}" msgstr "Teiken pakhuis is verpligtend vir ry {0}" @@ -53444,6 +53460,11 @@ msgstr "Belasting ID" msgid "Tax Id: {0}" msgstr "" +#. Label of the taxation_section (Section Break) field in DocType 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "Tax Identification" +msgstr "" + #. Label of a Card Break in the Invoicing Workspace #: erpnext/accounts/workspace/invoicing/invoicing.json msgid "Tax Masters" @@ -53662,7 +53683,7 @@ msgstr "" #. Detail' #: erpnext/accounts/doctype/item_wise_tax_detail/item_wise_tax_detail.json #: erpnext/accounts/report/tax_withholding_details/tax_withholding_details.py:239 -#: erpnext/controllers/taxes_and_totals.py:1262 +#: erpnext/controllers/taxes_and_totals.py:1248 msgid "Taxable Amount" msgstr "Belasbare Bedrag" @@ -54216,7 +54237,7 @@ msgstr "Die betalingstermyn by ry {0} is moontlik 'n duplikaat." msgid "The Pick List having Stock Reservation Entries cannot be updated. If you need to make changes, we recommend canceling the existing Stock Reservation Entries before updating the Pick List." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:3074 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:3132 msgid "The Process Loss Qty has reset as per job cards Process Loss Qty" msgstr "" @@ -54232,7 +54253,7 @@ msgstr "" msgid "The Serial No {0} is reserved against the {1} {2} and cannot be used for any other transaction." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:2040 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2098 msgid "The Serial and Batch Bundle {0} is not valid for this transaction. The 'Type of Transaction' should be 'Outward' instead of 'Inward' in Serial and Batch Bundle {0}" msgstr "" @@ -54268,7 +54289,7 @@ msgstr "" msgid "The bank account is not a company account. Please select a company account" msgstr "" -#: erpnext/controllers/stock_controller.py:1310 +#: erpnext/controllers/stock_controller.py:1357 msgid "The batch {0} is already reserved in {1} {2}. So, cannot proceed with the {3} {4}, which is created against the {5} {6}." msgstr "" @@ -54280,7 +54301,7 @@ msgstr "" msgid "The company {0} is not in United Arab Emirates. UAE VAT 201 report is only available for companies in United Arab Emirates." msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1348 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1366 msgid "The completed quantity {0} of an operation {1} cannot be greater than the completed quantity {2} of a previous operation {3}." msgstr "" @@ -54288,7 +54309,7 @@ msgstr "" msgid "The currency of invoice {} ({}) is different from the currency of this dunning ({})." msgstr "" -#: erpnext/selling/page/point_of_sale/pos_controller.js:209 +#: erpnext/selling/page/point_of_sale/pos_controller.js:200 msgid "The current POS opening entry is outdated. Please close it and create a new one." msgstr "" @@ -54300,7 +54321,7 @@ msgstr "" msgid "The date of the transaction" msgstr "" -#: erpnext/manufacturing/doctype/work_order/work_order.js:1223 +#: erpnext/manufacturing/doctype/work_order/work_order.js:1230 msgid "The default BOM for that item will be fetched by the system. You can also change the BOM." msgstr "" @@ -54423,7 +54444,7 @@ msgstr "Die vakansie op {0} is nie tussen die datum en die datum nie" msgid "The invoice is not fully allocated as there is a difference of {0}." msgstr "" -#: erpnext/controllers/buying_controller.py:1244 +#: erpnext/controllers/buying_controller.py:1307 msgid "The item {item} is not marked as {type_of} item. You can enable it as {type_of} item from its Item master." msgstr "" @@ -54431,7 +54452,7 @@ msgstr "" msgid "The items {0} and {1} are present in the following {2} :" msgstr "" -#: erpnext/controllers/buying_controller.py:1237 +#: erpnext/controllers/buying_controller.py:1300 msgid "The items {items} are not marked as {type_of} item. You can enable them as {type_of} item from their Item masters." msgstr "" @@ -54536,7 +54557,7 @@ msgstr "" msgid "The reference number of the transaction" msgstr "" -#: erpnext/public/js/utils.js:968 +#: erpnext/public/js/utils.js:985 msgid "The reserved stock will be released when you update items. Are you certain you wish to proceed?" msgstr "" @@ -54593,7 +54614,7 @@ msgstr "Die aandele bestaan nie met die {0}" msgid "The stock for the item {0} in the {1} warehouse was negative on the {2}. You should create a positive entry {3} before the date {4} and time {5} to post the correct valuation rate. For more details, please read the
documentation." msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:737 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:740 msgid "The stock has been reserved for the following Items and Warehouses, un-reserve the same to {0} the Stock Reconciliation:

{1}" msgstr "" @@ -54615,11 +54636,11 @@ msgstr "" msgid "The system will create a Sales Invoice or a POS Invoice from the POS interface based on this setting. For high-volume transactions, it is recommended to use POS Invoice." msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:1011 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:1110 msgid "The task has been enqueued as a background job. In case there is any issue on processing in background, the system will add a comment about the error on this Stock Reconciliation and revert to the Draft stage" msgstr "Die taak is aangewys as 'n agtergrondtaak. In die geval dat daar probleme met die verwerking van die agtergrond is, sal die stelsel 'n opmerking byvoeg oor die fout op hierdie voorraadversoening en dan weer terug na die konsepstadium." -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:1022 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:1121 msgid "The task has been enqueued as a background job. In case there is any issue on processing in background, the system will add a comment about the error on this Stock Reconciliation and revert to the Submitted stage" msgstr "" @@ -54667,15 +54688,15 @@ msgstr "Die waarde van {0} verskil tussen items {1} en {2}" msgid "The value {0} is already assigned to an existing Item {1}." msgstr "Die waarde {0} is reeds aan 'n bestaande artikel toegeken {1}." -#: erpnext/manufacturing/doctype/work_order/work_order.js:1251 +#: erpnext/manufacturing/doctype/work_order/work_order.js:1258 msgid "The warehouse where you store finished Items before they are shipped." msgstr "" -#: erpnext/manufacturing/doctype/work_order/work_order.js:1244 +#: erpnext/manufacturing/doctype/work_order/work_order.js:1251 msgid "The warehouse where you store your raw materials. Each required item can have a separate source warehouse. Group warehouse also can be selected as source warehouse. On submission of the Work Order, the raw materials will be reserved in these warehouses for production usage." msgstr "" -#: erpnext/manufacturing/doctype/work_order/work_order.js:1256 +#: erpnext/manufacturing/doctype/work_order/work_order.js:1263 msgid "The warehouse where your Items will be transferred when you begin production. Group Warehouse can also be selected as a Work in Progress warehouse." msgstr "" @@ -54683,11 +54704,11 @@ msgstr "" msgid "The withdrawal or deposit amounts - only required if there's no amount column." msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:908 +#: erpnext/manufacturing/doctype/job_card/job_card.py:909 msgid "The {0} ({1}) must be equal to {2} ({3})" msgstr "Die {0} ({1}) moet gelyk wees aan {2} ({3})" -#: erpnext/public/js/controllers/transaction.js:3359 +#: erpnext/public/js/controllers/transaction.js:3373 msgid "The {0} contains Unit Price Items." msgstr "" @@ -54703,7 +54724,7 @@ msgstr "" msgid "The {0} {1} does not match with the {0} {2} in the {3} {4}" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1014 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1015 msgid "The {0} {1} is used to calculate the valuation cost for the finished good {2}." msgstr "" @@ -54788,7 +54809,7 @@ msgstr "Daar is geen groep teen die {0} gevind nie: {1}" msgid "There is one unreconciled transaction before {0}." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1977 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2035 msgid "There must be atleast 1 Finished Good in this Stock Entry" msgstr "" @@ -54852,7 +54873,7 @@ msgstr "Hierdie maand se opsomming" msgid "This PDF is password protected. Please set the correct statement password on the Bank Account and try again." msgstr "" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1745 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1754 msgid "This Payment Entry is reconciled with {0}. Cancelling will automatically unreconcile it. Do you want to proceed?" msgstr "" @@ -54900,7 +54921,7 @@ msgstr "" msgid "This covers all scorecards tied to this Setup" msgstr "Dit dek alle telkaarte wat aan hierdie opstelling gekoppel is" -#: erpnext/controllers/status_updater.py:489 +#: erpnext/controllers/status_updater.py:500 msgid "This document is over limit by {0} {1} for item {4}. Are you making another {3} against the same {2}?" msgstr "Hierdie dokument is oor limiet deur {0} {1} vir item {4}. Maak jy 'n ander {3} teen dieselfde {2}?" @@ -55003,7 +55024,7 @@ msgstr "" msgid "This is done to handle accounting for cases when Purchase Receipt is created after Purchase Invoice" msgstr "Dit word gedoen om rekeningkunde te hanteer vir gevalle waar aankoopbewys na aankoopfaktuur geskep word" -#: erpnext/manufacturing/doctype/work_order/work_order.js:1237 +#: erpnext/manufacturing/doctype/work_order/work_order.js:1244 msgid "This is enabled by default. If you want to plan materials for sub-assemblies of the Item you're manufacturing leave this enabled. If you plan and manufacture the sub-assemblies separately, you can disable this checkbox." msgstr "" @@ -55078,7 +55099,7 @@ msgstr "" msgid "This schedule was created when Asset {0} was adjusted through Asset Value Adjustment {1}." msgstr "" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:476 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:479 msgid "This schedule was created when Asset {0} was consumed through Asset Capitalization {1}." msgstr "" @@ -55086,11 +55107,11 @@ msgstr "" msgid "This schedule was created when Asset {0} was repaired through Asset Repair {1}." msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1542 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1549 msgid "This schedule was created when Asset {0} was restored due to Sales Invoice {1} cancellation." msgstr "" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:585 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:588 msgid "This schedule was created when Asset {0} was restored on Asset Capitalization {1}'s cancellation." msgstr "" @@ -55098,7 +55119,7 @@ msgstr "" msgid "This schedule was created when Asset {0} was restored." msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1538 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1545 msgid "This schedule was created when Asset {0} was returned through Sales Invoice {1}." msgstr "" @@ -55110,7 +55131,7 @@ msgstr "" msgid "This schedule was created when Asset {0} was {1} into new Asset {2}." msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1514 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1521 msgid "This schedule was created when Asset {0} was {1} through Sales Invoice {2}." msgstr "" @@ -55303,7 +55324,7 @@ msgstr "" msgid "Time in mins." msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:885 +#: erpnext/manufacturing/doctype/job_card/job_card.py:886 msgid "Time logs are required for {0} {1}" msgstr "Tydlêers is nodig vir {0} {1}" @@ -55322,6 +55343,12 @@ msgstr "Tyd (in mins)" msgid "Timeline" msgstr "" +#. Description of the 'PCV Job Timeout (seconds)' (Int) field in DocType +#. 'Accounts Settings' +#: erpnext/accounts/doctype/accounts_settings/accounts_settings.json +msgid "Timeout (in seconds) for each background job enqueued by Process Period Closing Voucher" +msgstr "" + #: erpnext/manufacturing/doctype/workstation/workstation_job_card.html:36 #: erpnext/public/js/projects/timer.js:5 msgid "Timer" @@ -55365,7 +55392,7 @@ msgstr "Tydskaartdetail" msgid "Timesheet for tasks." msgstr "Tydrooster vir take." -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:935 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:942 msgid "Timesheet {0} cannot be invoiced in its current state" msgstr "" @@ -55637,24 +55664,18 @@ msgstr "" msgid "To add subcontracted Item's raw materials if include exploded items is disabled." msgstr "" -#: erpnext/controllers/status_updater.py:482 +#: erpnext/controllers/status_updater.py:493 msgid "To allow over billing, update \"Over Billing Allowance\" in Accounts Settings or the Item." msgstr "Om oorfakturering toe te laat, moet u "Toelae vir oorfakturering" in rekeninginstellings of die item opdateer." -#: erpnext/controllers/status_updater.py:476 +#: erpnext/controllers/status_updater.py:487 msgid "To allow over ordering, update \"Over Order Allowance\" in Buying Settings." msgstr "" -#: erpnext/controllers/status_updater.py:478 +#: erpnext/controllers/status_updater.py:489 msgid "To allow over receipt / delivery, update \"Over Receipt/Delivery Allowance\" in Stock Settings or the Item." msgstr "Om die ontvangs / aflewering toe te laat, moet u "Toelaag vir oorontvangs / aflewering" in Voorraadinstellings of die item opdateer." -#. Description of the 'Mandatory Depends On' (Small Text) field in DocType -#. 'Inventory Dimension' -#: erpnext/stock/doctype/inventory_dimension/inventory_dimension.json -msgid "To apply condition on parent field use parent.field_name and to apply condition on child table use doc.field_name. Here field_name could be based on the actual column name of the respective field." -msgstr "" - #. Label of the delivered_by_supplier (Check) field in DocType 'Purchase Order #. Item' #: erpnext/buying/doctype/purchase_order_item/purchase_order_item.json @@ -55847,6 +55868,22 @@ msgstr "" msgid "Total Advance" msgstr "" +#: erpnext/public/js/utils.js:250 +msgid "Total Advance Paid" +msgstr "" + +#: erpnext/public/js/utils.js:195 +msgid "Total Advance Paid: {0}" +msgstr "" + +#: erpnext/public/js/utils.js:252 +msgid "Total Advance Received" +msgstr "" + +#: erpnext/public/js/utils.js:198 +msgid "Total Advance Received: {0}" +msgstr "" + #. Label of the total_allocated_amount (Currency) field in DocType 'Payment #. Entry' #: erpnext/accounts/doctype/payment_entry/payment_entry.json @@ -55979,12 +56016,12 @@ msgstr "Totale Kommissie" #. Label of the total_completed_qty (Float) field in DocType 'Job Card' #: erpnext/manufacturing/doctype/job_card/job_card.json -#: erpnext/manufacturing/doctype/job_card/job_card.py:904 +#: erpnext/manufacturing/doctype/job_card/job_card.py:905 #: erpnext/manufacturing/report/job_card_summary/job_card_summary.py:174 msgid "Total Completed Qty" msgstr "Totale voltooide hoeveelheid" -#: erpnext/manufacturing/doctype/job_card/job_card.py:191 +#: erpnext/manufacturing/doctype/job_card/job_card.py:192 msgid "Total Completed Qty is required for Job Card {0}, please start and complete the job card before submission" msgstr "" @@ -56489,7 +56526,11 @@ msgstr "" msgid "Total Time in Mins" msgstr "" -#: erpnext/public/js/utils.js:193 +#: erpnext/public/js/utils.js:253 +msgid "Total Unpaid" +msgstr "" + +#: erpnext/public/js/utils.js:200 msgid "Total Unpaid: {0}" msgstr "Totaal Onbetaald: {0}" @@ -56568,7 +56609,7 @@ msgstr "" msgid "Total allocated percentage for sales team should be 100" msgstr "Totale toegewysde persentasie vir verkope span moet 100 wees" -#: erpnext/selling/doctype/customer/customer.py:193 +#: erpnext/selling/doctype/customer/customer.py:194 msgid "Total contribution percentage should be equal to 100" msgstr "Die totale bydraepersentasie moet gelyk wees aan 100" @@ -56686,22 +56727,6 @@ msgstr "" msgid "Tracking URL" msgstr "" -#. Option for the 'Apply On' (Select) field in DocType 'Pricing Rule' -#. Option for the 'Apply On' (Select) field in DocType 'Promotional Scheme' -#. Label of the transaction_tab (Tab Break) field in DocType 'Selling Settings' -#. Label of the transaction (Select) field in DocType 'Authorization Rule' -#. Option for the 'Based On' (Select) field in DocType 'Repost Item Valuation' -#: erpnext/accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.py:1057 -#: erpnext/accounts/doctype/pricing_rule/pricing_rule.json -#: erpnext/accounts/doctype/promotional_scheme/promotional_scheme.json -#: erpnext/manufacturing/doctype/workstation/workstation_dashboard.py:10 -#: erpnext/public/js/utils/naming_series.js:219 -#: erpnext/selling/doctype/selling_settings/selling_settings.json -#: erpnext/setup/doctype/authorization_rule/authorization_rule.json -#: erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.json -msgid "Transaction" -msgstr "transaksie" - #. Label of the transaction_currency (Link) field in DocType 'GL Entry' #. Label of the currency (Link) field in DocType 'Payment Request' #: erpnext/accounts/doctype/gl_entry/gl_entry.json @@ -56759,11 +56784,11 @@ msgstr "" msgid "Transaction Deletion Record To Delete" msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1103 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1114 msgid "Transaction Deletion Record {0} is already running. {1}" msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1122 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1133 msgid "Transaction Deletion Record {0} is currently deleting {1}. Cannot save documents until deletion completes." msgstr "" @@ -56868,7 +56893,7 @@ msgstr "" msgid "Transaction from which tax is withheld" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:862 +#: erpnext/manufacturing/doctype/job_card/job_card.py:863 msgid "Transaction not allowed against stopped Work Order {0}" msgstr "Transaksie nie toegestaan teen beëindigde werkorder {0}" @@ -56915,11 +56940,16 @@ msgstr "" msgid "Transactions against the Company already exist! Chart of Accounts can only be imported for a Company with no transactions." msgstr "" +#. Description of the 'Credit Limit' (Table) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Transactions are blocked or warned when outstanding balance exceeds this amount." +msgstr "" + #: banking/src/components/features/BankStatementImporter/CSV/StatementDetails.tsx:239 msgid "Transactions to be imported into the system" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1199 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1206 msgid "Transactions using Sales Invoice in POS are disabled." msgstr "" @@ -57354,7 +57384,7 @@ msgstr "" #: erpnext/manufacturing/doctype/workstation/workstation.js:480 #: erpnext/manufacturing/report/bom_explorer/bom_explorer.py:70 #: erpnext/manufacturing/report/bom_operations_time/bom_operations_time.py:110 -#: erpnext/public/js/stock_analytics.js:94 erpnext/public/js/utils.js:841 +#: erpnext/public/js/stock_analytics.js:94 erpnext/public/js/utils.js:858 #: erpnext/quality_management/doctype/quality_goal_objective/quality_goal_objective.json #: erpnext/quality_management/doctype/quality_review_objective/quality_review_objective.json #: erpnext/selling/doctype/delivery_schedule_item/delivery_schedule_item.json @@ -57384,7 +57414,7 @@ msgstr "" #: erpnext/stock/report/available_serial_no/available_serial_no.py:101 #: erpnext/stock/report/batch_wise_balance_history/batch_wise_balance_history.py:87 #: erpnext/stock/report/item_prices/item_prices.py:55 -#: erpnext/stock/report/item_where_used/item_where_used.py:75 +#: erpnext/stock/report/item_where_used/item_where_used.py:69 #: erpnext/stock/report/item_wise_consumption/item_wise_consumption.py:60 #: erpnext/stock/report/product_bundle_balance/product_bundle_balance.py:94 #: erpnext/stock/report/stock_ageing/stock_ageing.py:223 @@ -57464,7 +57494,7 @@ msgstr "" msgid "UOM Name" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:4274 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:4332 msgid "UOM conversion factor required for UOM: {0} in Item: {1}" msgstr "" @@ -57516,7 +57546,7 @@ msgstr "" msgid "UnReconcile Allocations" msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:466 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:477 msgid "Unable to fetch DocType details. Please contact system administrator." msgstr "" @@ -57620,7 +57650,7 @@ msgstr "" msgid "Undo {}?" msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:938 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:949 msgid "Unexpected Naming Series Pattern" msgstr "" @@ -57845,7 +57875,7 @@ msgstr "" msgid "Unsecured Loans" msgstr "Onversekerde Lenings" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1714 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1723 msgid "Unset Matched Payment Request" msgstr "" @@ -57995,7 +58025,7 @@ msgstr "Werk huidige voorraad op" #: erpnext/buying/doctype/purchase_order/purchase_order.js:324 #: erpnext/buying/doctype/supplier_quotation/supplier_quotation.js:43 -#: erpnext/public/js/utils.js:947 +#: erpnext/public/js/utils.js:964 #: erpnext/selling/doctype/quotation/quotation.js:136 #: erpnext/selling/doctype/sales_order/sales_order.js:90 #: erpnext/selling/doctype/sales_order/sales_order.js:946 @@ -58095,7 +58125,7 @@ msgstr "" msgid "Updating Variants..." msgstr "Dateer variante op ..." -#: erpnext/manufacturing/doctype/work_order/work_order.js:1199 +#: erpnext/manufacturing/doctype/work_order/work_order.js:1206 msgid "Updating Work Order status" msgstr "" @@ -58317,6 +58347,12 @@ msgstr "" msgid "Used for Production Plan" msgstr "" +#. Description of the 'Is Internal Supplier' (Check) field in DocType +#. 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "Used for inter-company transactions" +msgstr "" + #. Description of the 'Purchase Expense Contra Account' (Link) field in DocType #. 'Item Default' #: erpnext/stock/doctype/item_default/item_default.json @@ -58328,6 +58364,12 @@ msgstr "" msgid "Used to create an opening Stock Entry with the Valuation Rate when the item is saved" msgstr "" +#. Description of the 'Tax Withholding Group' (Link) field in DocType +#. 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "Used to pick the correct rate row inside the Tax Withholding Category for this supplier (e.g. Company vs Individual rates)" +msgstr "" + #. Description of the 'Account Category' (Link) field in DocType 'Account' #: erpnext/accounts/doctype/account/account.json msgid "Used with Financial Report Template" @@ -58361,6 +58403,10 @@ msgstr "" msgid "User has not applied rule on the invoice {0}" msgstr "Gebruiker het nie die reël op die faktuur {0} toegepas nie" +#: erpnext/crm/frappe_crm_api.py:176 +msgid "User not allowed to synchronize data from Frappe CRM on ERPNext. Contact System Manager of ERPNext." +msgstr "" + #: erpnext/setup/doctype/employee/employee.py:298 msgid "User {0} does not exist" msgstr "Gebruiker {0} bestaan nie" @@ -58397,6 +58443,11 @@ msgstr "" msgid "Users can make manufacture entry against Job Cards" msgstr "" +#. Description of the 'Portal Users' (Tab Break) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Users listed here can log into the customer portal to view their orders, invoices, and deliveries." +msgstr "" + #. Description of the 'Role Allowed to over bill ' (Link) field in DocType #. 'Accounts Settings' #: erpnext/accounts/doctype/accounts_settings/accounts_settings.json @@ -58670,11 +58721,11 @@ msgstr "Waardasietempo" msgid "Valuation Rate (In / Out)" msgstr "" -#: erpnext/stock/stock_ledger.py:2042 +#: erpnext/stock/stock_ledger.py:2031 msgid "Valuation Rate Missing" msgstr "Waardasiesyfer ontbreek" -#: erpnext/stock/stock_ledger.py:2020 +#: erpnext/stock/stock_ledger.py:2009 msgid "Valuation Rate for the Item {0}, is required to do accounting entries for {1} {2}." msgstr "Waarderingskoers vir die artikel {0} word vereis om rekeningkundige inskrywings vir {1} {2} te doen." @@ -58682,7 +58733,7 @@ msgstr "Waarderingskoers vir die artikel {0} word vereis om rekeningkundige insk msgid "Valuation Rate is mandatory if Opening Stock entered" msgstr "Waardasietarief is verpligtend indien Openingsvoorraad ingeskryf is" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:789 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:792 msgid "Valuation Rate required for Item {0} at row {1}" msgstr "Waardasietempo benodig vir item {0} op ry {1}" @@ -58692,7 +58743,7 @@ msgstr "Waardasietempo benodig vir item {0} op ry {1}" msgid "Valuation and Total" msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:993 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:996 msgid "Valuation rate for customer provided items has been set to zero." msgstr "" @@ -58709,7 +58760,7 @@ msgstr "" msgid "Valuation type charges can not be marked as Inclusive" msgstr "Kostes van waardasie kan nie as Inklusief gemerk word nie" -#: erpnext/public/js/controllers/accounts.js:231 +#: erpnext/public/js/controllers/accounts.js:228 msgid "Valuation type charges can not marked as Inclusive" msgstr "Waardasietoelae kan nie as Inklusief gemerk word nie" @@ -59531,7 +59582,7 @@ msgstr "" msgid "Warehouse not found against the account {0}" msgstr "Pakhuis word nie teen die rekening gevind nie {0}" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1256 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1263 #: erpnext/stock/doctype/delivery_note/delivery_note.py:414 msgid "Warehouse required for stock Item {0}" msgstr "Pakhuis benodig vir voorraad Item {0}" @@ -59561,7 +59612,7 @@ msgstr "" msgid "Warehouse {0} is not allowed for Sales Order {1}, it should be {2}" msgstr "" -#: erpnext/controllers/stock_controller.py:813 +#: erpnext/controllers/stock_controller.py:816 msgid "Warehouse {0} is not linked to any account, please mention the account in the warehouse record or set default inventory account in company {1}." msgstr "" @@ -59848,10 +59899,6 @@ msgstr "" msgid "Website:" msgstr "" -#: erpnext/public/js/utils/naming_series.js:95 -msgid "Week of the year" -msgstr "" - #: erpnext/selling/report/sales_analytics/sales_analytics.py:457 #: erpnext/stock/report/stock_analytics/stock_analytics.py:121 msgid "Week {0} {1}" @@ -59990,7 +60037,12 @@ msgstr "" msgid "When enabled, it adds a cutoff date filter to Delivery Notes created in bulk from Sales Orders. This allows you to process orders only with a transaction date up to the specified cutoff date, which is useful for period-end processing and batch fulfillment." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:394 +#. Description of the 'Block Supplier' (Check) field in DocType 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "When enabled, transactions with this supplier will be blocked based on the Hold Type below" +msgstr "" + +#: erpnext/stock/doctype/stock_entry/stock_entry.py:397 msgid "When there are multiple finished goods ({0}) in a Repack stock entry, the basic rate for all finished goods must be set manually. To set rate manually, enable the checkbox 'Set Basic Rate Manually' in the respective finished good row." msgstr "" @@ -60221,7 +60273,7 @@ msgstr "" msgid "Work Order Item" msgstr "Werk bestelling Item" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1012 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1015 msgid "Work Order Mismatch" msgstr "" @@ -60270,8 +60322,8 @@ msgstr "Werkorde kan nie om die volgende rede geskep word nie:
{0}" msgid "Work Order cannot be raised against a Item Template" msgstr "Werkorder kan nie teen 'n Item Sjabloon verhoog word nie" -#: erpnext/manufacturing/doctype/work_order/work_order.py:2662 -#: erpnext/manufacturing/doctype/work_order/work_order.py:2742 +#: erpnext/manufacturing/doctype/work_order/work_order.py:2694 +#: erpnext/manufacturing/doctype/work_order/work_order.py:2774 msgid "Work Order has been {0}" msgstr "Werkorder is {0}" @@ -60283,11 +60335,11 @@ msgstr "Werkorde nie geskep nie" msgid "Work Order {0} created" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:2638 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2696 msgid "Work Order {0} has no produced qty" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1136 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1139 msgid "Work Order {0}: Job Card not found for the operation {1}" msgstr "Werksbestelling {0}: werkkaart word nie vir die operasie gevind nie {1}" @@ -60599,14 +60651,6 @@ msgstr "" msgid "Year Start Date" msgstr "" -#: erpnext/public/js/utils/naming_series.js:92 -msgid "Year in 2 digits" -msgstr "" - -#: erpnext/public/js/utils/naming_series.js:91 -msgid "Year in 4 digits" -msgstr "" - #. Label of the year_of_passing (Int) field in DocType 'Employee Education' #: erpnext/setup/doctype/employee_education/employee_education.json msgid "Year of Passing" @@ -60656,11 +60700,7 @@ msgstr "U kan hierdie skakel ook kopieer in u blaaier" msgid "You can also set default CWIP account in Company {}" msgstr "U kan ook die standaard CWIP-rekening instel in die maatskappy {}" -#: erpnext/public/js/utils/naming_series.js:87 -msgid "You can also use variables in the series name by putting them between (.) dots" -msgstr "" - -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1057 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1064 msgid "You can change the parent account to a Balance Sheet account or select a different account." msgstr "U kan die ouerrekening in 'n balansrekening verander of 'n ander rekening kies." @@ -60701,7 +60741,7 @@ msgstr "" msgid "You can use {0} to reconcile against {1} later." msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1360 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1378 msgid "You can't make any changes to Job Card since Work Order is closed." msgstr "" @@ -60717,7 +60757,7 @@ msgstr "" msgid "You cannot change the rate if BOM is mentioned against any Item." msgstr "" -#: erpnext/accounts/doctype/accounting_period/accounting_period.py:136 +#: erpnext/accounts/doctype/accounting_period/accounting_period.py:149 msgid "You cannot create a {0} within the closed Accounting Period {1}" msgstr "" @@ -60741,7 +60781,7 @@ msgstr "Jy kan nie projektipe 'eksterne' uitvee nie" msgid "You cannot edit root node." msgstr "U kan nie wortelknoop wysig nie." -#: erpnext/accounts/doctype/accounts_settings/accounts_settings.py:196 +#: erpnext/accounts/doctype/accounts_settings/accounts_settings.py:197 msgid "You cannot enable both the settings '{0}' and '{1}'." msgstr "" @@ -60794,11 +60834,11 @@ msgstr "U het nie genoeg lojaliteitspunte om te verkoop nie" msgid "You don't have enough points to redeem." msgstr "U het nie genoeg punte om af te los nie." -#: erpnext/controllers/accounts_controller.py:4446 +#: erpnext/controllers/accounts_controller.py:4444 msgid "You don't have permission to create a Company Address. Please contact your System Manager." msgstr "" -#: erpnext/controllers/accounts_controller.py:4426 +#: erpnext/controllers/accounts_controller.py:4424 msgid "You don't have permission to update Company details. Please contact your System Manager." msgstr "" @@ -60806,15 +60846,15 @@ msgstr "" msgid "You don't have permission to update Received Qty DocField for item {0}" msgstr "" -#: erpnext/controllers/accounts_controller.py:4420 +#: erpnext/controllers/accounts_controller.py:4418 msgid "You don't have permission to update this document. Please contact your System Manager." msgstr "" -#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:291 +#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:303 msgid "You had {} errors while creating opening invoices. Check {} for more details" msgstr "Daar was {} foute tydens die skep van openingsfakture. Gaan na {} vir meer besonderhede" -#: erpnext/public/js/utils.js:1047 +#: erpnext/public/js/utils.js:1064 msgid "You have already selected items from {0} {1}" msgstr "Jy het reeds items gekies van {0} {1}" @@ -60846,11 +60886,11 @@ msgstr "" msgid "You have to enable auto re-order in Stock Settings to maintain re-order levels." msgstr "U moet outomaties herbestel in Voorraadinstellings om herbestelvlakke te handhaaf." -#: erpnext/selling/page/point_of_sale/pos_controller.js:281 +#: erpnext/selling/page/point_of_sale/pos_controller.js:272 msgid "You have unsaved changes. Do you want to save the invoice?" msgstr "" -#: erpnext/selling/page/point_of_sale/pos_controller.js:743 +#: erpnext/selling/page/point_of_sale/pos_controller.js:734 msgid "You must select a customer before adding an item." msgstr "U moet 'n klant kies voordat u 'n item byvoeg." @@ -60914,7 +60954,7 @@ msgstr "" msgid "Zero Rated" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:723 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:726 msgid "Zero quantity" msgstr "" @@ -60940,7 +60980,7 @@ msgstr "[Belangrik] [ERPNext] Herbestellingsfoute outomaties" msgid "`Allow Negative rates for Items`" msgstr "" -#: erpnext/stock/stock_ledger.py:2034 +#: erpnext/stock/stock_ledger.py:2023 msgid "after" msgstr "" @@ -60981,7 +61021,7 @@ msgid "cannot be greater than 100" msgstr "" #: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:341 -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1145 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1152 msgid "dated {0}" msgstr "" @@ -61034,10 +61074,6 @@ msgstr "" msgid "fieldname" msgstr "" -#: erpnext/public/js/utils/naming_series.js:97 -msgid "fieldname on the document e.g." -msgstr "" - #. Option for the 'Service Provider' (Select) field in DocType 'Currency #. Exchange Settings' #: erpnext/accounts/doctype/currency_exchange_settings/currency_exchange_settings.json @@ -61115,7 +61151,7 @@ msgstr "" msgid "paid to" msgstr "" -#: erpnext/public/js/utils.js:463 +#: erpnext/public/js/utils.js:480 msgid "payments app is not installed. Please install it from {0} or {1}" msgstr "" @@ -61135,7 +61171,7 @@ msgstr "" msgid "per hour" msgstr "" -#: erpnext/stock/stock_ledger.py:2035 +#: erpnext/stock/stock_ledger.py:2024 msgid "performing either one below:" msgstr "" @@ -61168,7 +61204,7 @@ msgstr "ontvang van" msgid "reconciled" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1516 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1523 msgid "returned" msgstr "" @@ -61203,7 +61239,7 @@ msgstr "" msgid "sandbox" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1516 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1523 msgid "sold" msgstr "" @@ -61211,8 +61247,8 @@ msgstr "" msgid "subscription is already cancelled." msgstr "" -#: erpnext/controllers/status_updater.py:492 -#: erpnext/controllers/status_updater.py:511 +#: erpnext/controllers/status_updater.py:503 +#: erpnext/controllers/status_updater.py:522 msgid "target_ref_field" msgstr "" @@ -61230,7 +61266,7 @@ msgstr "" msgid "to" msgstr "om" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:3239 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:3246 msgid "to unallocate the amount of this Return Invoice before cancelling it." msgstr "" @@ -61319,11 +61355,6 @@ msgstr "{0} Gebruikte koepon is {1}. Toegestane hoeveelheid is uitgeput" msgid "{0} Digest" msgstr "{0} Digest" -#: erpnext/public/js/utils/naming_series.js:263 -#: erpnext/public/js/utils/naming_series.js:403 -msgid "{0} Naming Series" -msgstr "" - #: erpnext/accounts/utils.py:1570 msgid "{0} Number {1} is already used in {2} {3}" msgstr "{0} Nommer {1} word reeds in {2} {3} gebruik" @@ -61474,7 +61505,7 @@ msgstr "" msgid "{0} in row {1}" msgstr "{0} in ry {1}" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:452 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:463 msgid "{0} is a child table and will be deleted automatically with its parent" msgstr "" @@ -61488,7 +61519,7 @@ msgstr "" msgid "{0} is added multiple times on rows: {1}" msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:628 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:639 msgid "{0} is already running for {1}" msgstr "" @@ -61500,7 +61531,7 @@ msgstr "{0} is geblokkeer, sodat hierdie transaksie nie kan voortgaan nie" msgid "{0} is in Draft. Submit it before creating the Asset." msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1171 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1178 msgid "{0} is mandatory for Item {1}" msgstr "{0} is verpligtend vir item {1}" @@ -61509,7 +61540,7 @@ msgstr "{0} is verpligtend vir item {1}" msgid "{0} is mandatory for account {1}" msgstr "" -#: erpnext/public/js/controllers/taxes_and_totals.js:131 +#: erpnext/public/js/controllers/taxes_and_totals.js:132 msgid "{0} is mandatory. Maybe Currency Exchange record is not created for {1} to {2}" msgstr "{0} is verpligtend. Miskien word valuta-rekord nie vir {1} tot {2} geskep nie" @@ -61521,7 +61552,7 @@ msgstr "{0} is verpligtend. Miskien is Geldwissel-rekord nie vir {1} tot {2} ges msgid "{0} is not a CSV file." msgstr "" -#: erpnext/selling/doctype/customer/customer.py:235 +#: erpnext/selling/doctype/customer/customer.py:236 msgid "{0} is not a company bank account" msgstr "{0} is nie 'n bankrekening nie" @@ -61529,7 +61560,7 @@ msgstr "{0} is nie 'n bankrekening nie" msgid "{0} is not a group node. Please select a group node as parent cost center" msgstr "{0} is nie 'n groepknoop nie. Kies 'n groepknoop as ouerkostesentrum" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:775 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:778 msgid "{0} is not a stock Item" msgstr "{0} is nie 'n voorraaditem nie" @@ -61553,7 +61584,7 @@ msgstr "{0} word nie in die tabel bygevoeg nie" msgid "{0} is not enabled in {1}" msgstr "{0} is nie geaktiveer in {1}" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:636 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:647 msgid "{0} is not running. Cannot trigger events for this Document" msgstr "" @@ -61597,7 +61628,7 @@ msgstr "" msgid "{0} must be negative in return document" msgstr "{0} moet negatief wees in ruil dokument" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2416 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2423 msgid "{0} not allowed to transact with {1}. Please change the Company or add the Company in the 'Allowed To Transact With'-Section in the Customer record." msgstr "" @@ -61613,7 +61644,7 @@ msgstr "{0} -parameter is ongeldig" msgid "{0} payment entries can not be filtered by {1}" msgstr "{0} betalingsinskrywings kan nie gefiltreer word deur {1}" -#: erpnext/controllers/stock_controller.py:1732 +#: erpnext/controllers/stock_controller.py:1779 msgid "{0} qty of Item {1} is being received into Warehouse {2} with capacity {3}." msgstr "" @@ -61626,7 +61657,7 @@ msgstr "" msgid "{0} transactions will be imported into the system. Please review the details below and click the 'Import' button to proceed." msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:727 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:730 msgid "{0} units are reserved for Item {1} in Warehouse {2}, please un-reserve the same to {3} the Stock Reconciliation." msgstr "" @@ -61642,16 +61673,16 @@ msgstr "" msgid "{0} units of {1} are required in {2} with the inventory dimension: {3} on {4} {5} for {6} to complete the transaction." msgstr "" -#: erpnext/stock/stock_ledger.py:1687 erpnext/stock/stock_ledger.py:2183 -#: erpnext/stock/stock_ledger.py:2197 +#: erpnext/stock/stock_ledger.py:1676 erpnext/stock/stock_ledger.py:2172 +#: erpnext/stock/stock_ledger.py:2186 msgid "{0} units of {1} needed in {2} on {3} {4} for {5} to complete this transaction." msgstr "{0} eenhede van {1} benodig in {2} op {3} {4} vir {5} om hierdie transaksie te voltooi." -#: erpnext/stock/stock_ledger.py:2284 erpnext/stock/stock_ledger.py:2329 +#: erpnext/stock/stock_ledger.py:2273 erpnext/stock/stock_ledger.py:2318 msgid "{0} units of {1} needed in {2} on {3} {4} to complete this transaction." msgstr "" -#: erpnext/stock/stock_ledger.py:1681 +#: erpnext/stock/stock_ledger.py:1670 msgid "{0} units of {1} needed in {2} to complete this transaction." msgstr "{0} eenhede van {1} benodig in {2} om hierdie transaksie te voltooi." @@ -61679,7 +61710,7 @@ msgstr "" msgid "{0} will be set as the {1} in subsequently scanned items" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1023 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1024 msgid "{0} {1}" msgstr "" @@ -61828,7 +61859,7 @@ msgstr "{0} {1}: Rekening {2} is onaktief" msgid "{0} {1}: Accounting Entry for {2} can only be made in currency: {3}" msgstr "{0} {1}: Rekeningkundige Inskrywing vir {2} kan slegs in valuta gemaak word: {3}" -#: erpnext/controllers/stock_controller.py:945 +#: erpnext/controllers/stock_controller.py:948 msgid "{0} {1}: Cost Center is mandatory for Item {2}" msgstr "{0} {1}: Koste sentrum is verpligtend vir item {2}" @@ -61877,8 +61908,8 @@ msgstr "" msgid "{0}'s {1} cannot be after {2}'s Expected End Date." msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1332 -#: erpnext/manufacturing/doctype/job_card/job_card.py:1340 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1350 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1358 msgid "{0}, complete the operation {1} before the operation {2}." msgstr "{0}, voltooi die bewerking {1} voor die bewerking {2}." @@ -61886,19 +61917,19 @@ msgstr "{0}, voltooi die bewerking {1} voor die bewerking {2}." msgid "{0}, {1} or {2} are the only allowed options." msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:523 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:534 msgid "{0}: Child table (auto-deleted with parent)" msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:518 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:529 msgid "{0}: Not found" msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:514 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:525 msgid "{0}: Protected DocType" msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:528 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:539 msgid "{0}: Virtual DocType (no database table)" msgstr "" @@ -61914,27 +61945,27 @@ msgstr "" msgid "{0}: {1} is a group account." msgstr "" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:977 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:986 msgid "{0}: {1} must be less than {2}" msgstr "{0}: {1} moet minder wees as {2}" -#: erpnext/controllers/buying_controller.py:1019 +#: erpnext/controllers/buying_controller.py:1082 msgid "{count} Assets created for {item_code}" msgstr "" -#: erpnext/controllers/buying_controller.py:917 +#: erpnext/controllers/buying_controller.py:980 msgid "{doctype} {name} is cancelled or closed." msgstr "" -#: erpnext/controllers/buying_controller.py:641 +#: erpnext/controllers/buying_controller.py:704 msgid "{field_label} is mandatory for sub-contracted {doctype}." msgstr "" -#: erpnext/controllers/stock_controller.py:2193 +#: erpnext/controllers/stock_controller.py:2240 msgid "{item_name}'s Sample Size ({sample_size}) cannot be greater than the Accepted Quantity ({accepted_quantity})" msgstr "" -#: erpnext/controllers/stock_controller.py:1958 +#: erpnext/controllers/stock_controller.py:2005 msgid "{ref_doctype} {ref_name} status is {status}." msgstr "" @@ -61942,7 +61973,7 @@ msgstr "" msgid "{}" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2182 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2189 msgid "{} can't be cancelled since the Loyalty Points earned has been redeemed. First cancel the {} No {}" msgstr "{} kan nie gekanselleer word nie omdat die verdienste van die Lojaliteitspunte afgelos is. Kanselleer eers die {} Nee {}" diff --git a/erpnext/locale/ar.po b/erpnext/locale/ar.po index 0119d1fb374..f9718935b3d 100644 --- a/erpnext/locale/ar.po +++ b/erpnext/locale/ar.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: frappe\n" "Report-Msgid-Bugs-To: hello@frappe.io\n" -"POT-Creation-Date: 2026-06-21 10:42+0000\n" -"PO-Revision-Date: 2026-06-09 12:47+0000\n" +"POT-Creation-Date: 2026-06-28 10:20+0000\n" +"PO-Revision-Date: 2026-06-29 11:40+0000\n" "Last-Translator: hello@frappe.io\n" "Language: ar_SA\n" "Language-Team: Arabic\n" @@ -996,7 +996,7 @@ msgstr "" msgid "A - C" msgstr "" -#: erpnext/selling/doctype/customer/customer.py:354 +#: erpnext/selling/doctype/customer/customer.py:355 msgid "A Customer Group exists with same name please change the Customer name or rename the Customer Group" msgstr "مجموعة الزبائن موجودة بنفس الاسم أرجو تغير اسم العميل أو اعادة تسمية مجموعة الزبائن\\n
\\nA Customer Group exists with same name please change the Customer name or rename the Customer Group" @@ -1235,7 +1235,7 @@ msgid "Accepted Qty in Stock UOM" msgstr "" #. Label of the qty (Float) field in DocType 'Purchase Receipt Item' -#: erpnext/public/js/controllers/transaction.js:2850 +#: erpnext/public/js/controllers/transaction.js:2864 #: erpnext/stock/doctype/purchase_receipt_item/purchase_receipt_item.json msgid "Accepted Quantity" msgstr "كمية مقبولة" @@ -1271,10 +1271,15 @@ msgstr "مفتاح الوصول مطلوب لموفر الخدمة: {0}" msgid "According to CEFACT/ICG/2010/IC013 or CEFACT/ICG/2010/IC010" msgstr "وفقًا لـ CEFACT/ICG/2010/IC013 أو CEFACT/ICG/2010/IC010" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1264 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1269 msgid "According to the BOM {0}, the Item '{1}' is missing in the stock entry." msgstr "وفقًا لقائمة المواد {0}، فإن العنصر '{1}' مفقود في إدخال المخزون." +#. Description of the 'Customer Numbers' (Table) field in DocType 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "Account / customer numbers assigned to your companies by this supplier (for reconciliation on their statements)" +msgstr "" + #. Name of a report #: erpnext/accounts/report/account_balance/account_balance.json msgid "Account Balance" @@ -1386,7 +1391,7 @@ msgstr "" msgid "Account Manager" msgstr "إدارة حساب المستخدم" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1050 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1057 #: erpnext/controllers/accounts_controller.py:2403 msgid "Account Missing" msgstr "الحساب مفقود" @@ -1887,16 +1892,16 @@ msgstr "القيود المحاسبة" #: erpnext/assets/doctype/asset/asset.py:937 #: erpnext/assets/doctype/asset/asset.py:952 -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:543 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:546 msgid "Accounting Entry for Asset" msgstr "المدخلات الحسابية للأصول" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:2262 -#: erpnext/stock/doctype/stock_entry/stock_entry.py:2282 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2320 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2340 msgid "Accounting Entry for LCV in Stock Entry {0}" msgstr "" -#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:912 +#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:918 msgid "Accounting Entry for Landed Cost Voucher for SCR {0}" msgstr "" @@ -1911,14 +1916,14 @@ msgstr "القيد المحاسبي للخدمة" #: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1127 #: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1155 #: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1267 -#: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1503 -#: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1525 -#: erpnext/controllers/stock_controller.py:725 -#: erpnext/controllers/stock_controller.py:742 -#: erpnext/stock/doctype/purchase_receipt/purchase_receipt.py:931 -#: erpnext/stock/doctype/stock_entry/stock_entry.py:2207 -#: erpnext/stock/doctype/stock_entry/stock_entry.py:2221 -#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:747 +#: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1506 +#: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1528 +#: erpnext/controllers/stock_controller.py:728 +#: erpnext/controllers/stock_controller.py:745 +#: erpnext/stock/doctype/purchase_receipt/purchase_receipt.py:935 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2265 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2279 +#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:753 msgid "Accounting Entry for Stock" msgstr "القيود المحاسبية للمخزون" @@ -1933,7 +1938,7 @@ msgstr "المدخل المحاسبي ل {0}: {1} يمكن أن يكون فقط #: erpnext/accounts/doctype/invoice_discounting/invoice_discounting.js:193 #: erpnext/assets/doctype/asset/asset.js:185 #: erpnext/assets/doctype/asset_repair/asset_repair.js:92 -#: erpnext/buying/doctype/supplier/supplier.js:98 +#: erpnext/buying/doctype/supplier/supplier.js:123 #: erpnext/public/js/controllers/stock_controller.js:88 #: erpnext/public/js/utils/ledger_preview.js:8 #: erpnext/selling/doctype/customer/customer.js:173 @@ -1960,7 +1965,11 @@ msgstr "" msgid "Accounting Period" msgstr "فترة المحاسبة" -#: erpnext/accounts/doctype/accounting_period/accounting_period.py:68 +#: erpnext/accounts/doctype/accounting_period/accounting_period.py:49 +msgid "Accounting Period cannot be created for a future date. End Date {0} is after today." +msgstr "" + +#: erpnext/accounts/doctype/accounting_period/accounting_period.py:81 msgid "Accounting Period overlaps with {0}" msgstr "فترة المحاسبة تتداخل مع {0}" @@ -1980,8 +1989,6 @@ msgstr "تم تجميد القيود المحاسبية حتى هذا التار #. Label of the section_break_2 (Section Break) field in DocType 'Asset #. Category' #. Label of the accounts (Table) field in DocType 'Asset Category' -#. Label of the accounts (Table) field in DocType 'Supplier' -#. Label of the accounts (Table) field in DocType 'Customer' #. Label of the accounts_tab (Tab Break) field in DocType 'Company' #. Label of the accounts (Table) field in DocType 'Customer Group' #. Label of the accounts (Section Break) field in DocType 'Email Digest' @@ -1993,8 +2000,6 @@ msgstr "تم تجميد القيود المحاسبية حتى هذا التار #: erpnext/accounts/doctype/payment_entry/payment_entry.json #: erpnext/accounts/doctype/tax_withholding_category/tax_withholding_category.json #: erpnext/assets/doctype/asset_category/asset_category.json -#: erpnext/buying/doctype/supplier/supplier.json -#: erpnext/selling/doctype/customer/customer.json #: erpnext/setup/doctype/company/company.json #: erpnext/setup/doctype/company/company.py:445 #: erpnext/setup/doctype/customer_group/customer_group.json @@ -2036,7 +2041,7 @@ msgstr "الحسابات المفقودة من التقرير" #: erpnext/accounts/doctype/journal_entry/journal_entry.json #: erpnext/accounts/report/accounts_payable/accounts_payable.json #: erpnext/accounts/report/accounts_payable_summary/accounts_payable_summary.js:124 -#: erpnext/buying/doctype/supplier/supplier.js:110 +#: erpnext/buying/doctype/supplier/supplier.js:135 #: erpnext/workspace_sidebar/financial_reports.json #: erpnext/workspace_sidebar/invoicing.json #: erpnext/workspace_sidebar/payments.json @@ -2551,8 +2556,8 @@ msgstr "الوقت الفعلي (بالساعات)" msgid "Actual qty in stock" msgstr "الكمية الفعلية في المخزون" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1529 -#: erpnext/public/js/controllers/accounts.js:197 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1538 +#: erpnext/public/js/controllers/accounts.js:194 msgid "Actual type tax cannot be included in Item rate in row {0}" msgstr "نوع الضريبة الفعلي لا يمكن تضمينه في معدل الصنف في الصف {0}" @@ -2710,10 +2715,6 @@ msgstr "" msgid "Add Serial / Batch No (Rejected Qty)" msgstr "" -#: erpnext/public/js/utils/naming_series.js:26 -msgid "Add Series Prefix" -msgstr "" - #: erpnext/manufacturing/doctype/plant_floor/plant_floor.js:200 msgid "Add Stock" msgstr "" @@ -2952,7 +2953,7 @@ msgstr "مبلغ الخصم الإضافي" msgid "Additional Discount Amount (Company Currency)" msgstr "مقدار الخصم الاضافي (بعملة الشركة)" -#: erpnext/controllers/taxes_and_totals.py:846 +#: erpnext/controllers/taxes_and_totals.py:849 msgid "Additional Discount Amount ({discount_amount}) cannot exceed the total before such discount ({total_before_discount})" msgstr "" @@ -3069,12 +3070,7 @@ msgid "" "\t\t\t\t\tin Manufacturing Settings." msgstr "" -#. Description of the 'Customer Details' (Text) field in DocType 'Customer' -#: erpnext/selling/doctype/customer/customer.json -msgid "Additional information regarding the customer." -msgstr "معلومات إضافية عن الزبون." - -#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:629 +#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:635 msgid "Additional {0} {1} of item {2} required as per BOM to complete this transaction" msgstr "" @@ -3331,7 +3327,7 @@ msgstr "" msgid "Advance amount" msgstr "المبلغ مقدما" -#: erpnext/controllers/taxes_and_totals.py:983 +#: erpnext/controllers/taxes_and_totals.py:986 msgid "Advance amount cannot be greater than {0} {1}" msgstr "قيمة الدفعة المقدمة لا يمكن أن تكون أكبر من {0} {1}" @@ -3413,7 +3409,7 @@ msgstr "مقابل الحساب" msgid "Against Blanket Order" msgstr "ضد بطانية النظام" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1143 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1150 msgid "Against Customer Order {0}" msgstr "مقابل طلب العميل {0}" @@ -3654,6 +3650,13 @@ msgstr "" msgid "Algorithm" msgstr "الخوارزمية" +#. Label of the alias (Data) field in DocType 'Supplier' +#. Label of the alias (Data) field in DocType 'Customer' +#: erpnext/buying/doctype/supplier/supplier.json +#: erpnext/selling/doctype/customer/customer.json +msgid "Alias" +msgstr "" + #: erpnext/accounts/doctype/chart_of_accounts_importer/chart_of_accounts_importer.js:165 #: erpnext/accounts/doctype/chart_of_accounts_importer/chart_of_accounts_importer.js:185 #: erpnext/accounts/doctype/chart_of_accounts_importer/chart_of_accounts_importer.py:169 @@ -3820,11 +3823,16 @@ msgstr "تمت تسوية جميع المخصصات بنجاح" msgid "All communications including and above this shall be moved into the new Issue" msgstr "يجب نقل جميع الاتصالات بما في ذلك وما فوقها إلى الإصدار الجديد" +#. Description of the 'Billing Currency' (Link) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "All invoices and orders for this customer will be created in this currency." +msgstr "" + #: erpnext/manufacturing/doctype/production_plan/production_plan.py:970 msgid "All items are already requested" msgstr "جميع العناصر مطلوبة مسبقاً" -#: erpnext/stock/doctype/purchase_receipt/purchase_receipt.py:1482 +#: erpnext/stock/doctype/purchase_receipt/purchase_receipt.py:1486 msgid "All items have already been Invoiced/Returned" msgstr "تم بالفعل تحرير / إرجاع جميع العناصر" @@ -3832,19 +3840,19 @@ msgstr "تم بالفعل تحرير / إرجاع جميع العناصر" msgid "All items have already been received" msgstr "تم استلام جميع العناصر مسبقاً" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:3594 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:3652 msgid "All items have already been transferred for this Work Order." msgstr "جميع الإصناف تم نقلها لأمر العمل" -#: erpnext/public/js/controllers/transaction.js:2979 +#: erpnext/public/js/controllers/transaction.js:2993 msgid "All items in this document already have a linked Quality Inspection." msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1279 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1286 msgid "All items must be linked to a Sales Order or Subcontracting Inward Order for this Sales Invoice." msgstr "يجب ربط جميع العناصر بطلب مبيعات أو طلب توريد فرعي لهذه الفاتورة." -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1290 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1297 msgid "All linked Sales Orders must be subcontracted." msgstr "" @@ -3858,7 +3866,7 @@ msgstr "" msgid "All the items have been already returned." msgstr "تم إرجاع جميع العناصر مسبقاً." -#: erpnext/manufacturing/doctype/work_order/work_order.js:1268 +#: erpnext/manufacturing/doctype/work_order/work_order.js:1275 msgid "All the required items (raw materials) will be fetched from BOM and populated in this table. Here you can also change the Source Warehouse for any item. And during the production, you can track transferred raw materials from this table." msgstr "" @@ -3880,7 +3888,13 @@ msgstr "تخصيص" msgid "Allocate Advances Automatically (FIFO)" msgstr "تخصيص السلف تلقائيا (الداخل أولا الخارج أولا)" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:919 +#. Label of the allocate_full_amount_to_stock_items (Check) field in DocType +#. 'Purchase Taxes and Charges' +#: erpnext/accounts/doctype/purchase_taxes_and_charges/purchase_taxes_and_charges.json +msgid "Allocate Full Amount to Stock Items" +msgstr "" + +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:928 msgid "Allocate Payment Amount" msgstr "تخصيص مبلغ الدفع" @@ -3890,7 +3904,7 @@ msgstr "تخصيص مبلغ الدفع" msgid "Allocate Payment Based On Payment Terms" msgstr "تخصيص الدفع على أساس شروط الدفع" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1719 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1728 msgid "Allocate Payment Request" msgstr "" @@ -3920,7 +3934,7 @@ msgstr "تخصيص" #. Payment Entries' #: erpnext/accounts/doctype/bank_transaction/bank_transaction.json #: erpnext/accounts/doctype/bank_transaction_payments/bank_transaction_payments.json -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1710 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1719 #: erpnext/accounts/doctype/payment_reconciliation_allocation/payment_reconciliation_allocation.json #: erpnext/accounts/doctype/process_payment_reconciliation_log_allocations/process_payment_reconciliation_log_allocations.json #: erpnext/accounts/doctype/purchase_invoice_advance/purchase_invoice_advance.json @@ -4097,18 +4111,6 @@ msgstr "السماح الإنتاج على عطلات" msgid "Allow Purchase" msgstr "السماح بالشراء" -#. Label of the allow_purchase_invoice_creation_without_purchase_order (Check) -#. field in DocType 'Supplier' -#: erpnext/buying/doctype/supplier/supplier.json -msgid "Allow Purchase Invoice Creation Without Purchase Order" -msgstr "السماح بإنشاء فاتورة الشراء بدون أمر شراء" - -#. Label of the allow_purchase_invoice_creation_without_purchase_receipt -#. (Check) field in DocType 'Supplier' -#: erpnext/buying/doctype/supplier/supplier.json -msgid "Allow Purchase Invoice Creation Without Purchase Receipt" -msgstr "السماح بإنشاء فاتورة الشراء بدون إيصال الشراء" - #. Label of the allow_zero_qty_in_purchase_order (Check) field in DocType #. 'Buying Settings' #: erpnext/buying/doctype/buying_settings/buying_settings.json @@ -4149,16 +4151,6 @@ msgstr "السماح بإعادة ضبط اتفاقية مستوى الخدمة msgid "Allow Sales" msgstr "السماح بالمبيعات" -#. Label of the dn_required (Check) field in DocType 'Customer' -#: erpnext/selling/doctype/customer/customer.json -msgid "Allow Sales Invoice Creation Without Delivery Note" -msgstr "السماح بإنشاء فاتورة المبيعات بدون إشعار التسليم" - -#. Label of the so_required (Check) field in DocType 'Customer' -#: erpnext/selling/doctype/customer/customer.json -msgid "Allow Sales Invoice Creation Without Sales Order" -msgstr "السماح بإنشاء فاتورة المبيعات بدون طلب مبيعات" - #. Label of the allow_sales_order_creation_for_expired_quotation (Check) field #. in DocType 'Selling Settings' #: erpnext/selling/doctype/selling_settings/selling_settings.json @@ -4300,6 +4292,28 @@ msgstr "" msgid "Allow partial reservation" msgstr "" +#. Label of the allow_purchase_invoice_creation_without_purchase_order (Check) +#. field in DocType 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "Allow purchase invoice creation without purchase order" +msgstr "" + +#. Label of the allow_purchase_invoice_creation_without_purchase_receipt +#. (Check) field in DocType 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "Allow purchase invoice creation without purchase receipt" +msgstr "" + +#. Label of the dn_required (Check) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Allow sales invoice creation without delivery note" +msgstr "" + +#. Label of the so_required (Check) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Allow sales invoice creation without sales order" +msgstr "" + #. Description of the 'Zero-Quantity Line Items' (Section Break) field in #. DocType 'Selling Settings' #: erpnext/selling/doctype/selling_settings/selling_settings.json @@ -4381,20 +4395,25 @@ msgid "Allowed Items" msgstr "الأصناف المسموح بها" #. Name of a DocType -#. Label of the companies (Table) field in DocType 'Supplier' -#. Label of the companies (Table) field in DocType 'Customer' #: erpnext/accounts/doctype/allowed_to_transact_with/allowed_to_transact_with.json -#: erpnext/buying/doctype/supplier/supplier.json -#: erpnext/selling/doctype/customer/customer.json msgid "Allowed To Transact With" msgstr "سمح للاعتماد مع" +#. Label of the allowed_users (Table MultiSelect) field in DocType 'CRM +#. Settings' +#: erpnext/crm/doctype/crm_settings/crm_settings.json +msgid "Allowed Users" +msgstr "" + #: erpnext/accounts/doctype/party_link/party_link.py:27 msgid "Allowed primary roles are 'Customer' and 'Supplier'. Please select one of these roles only." msgstr "" -#: erpnext/public/js/utils/naming_series.js:81 -msgid "Allowed special characters are '/' and '-'" +#. Label of the companies (Table) field in DocType 'Supplier' +#. Label of the companies (Table) field in DocType 'Customer' +#: erpnext/buying/doctype/supplier/supplier.json +#: erpnext/selling/doctype/customer/customer.json +msgid "Allowed to transact with" msgstr "" #. Description of the 'Enable stock reservation' (Check) field in DocType @@ -4452,12 +4471,12 @@ msgstr "" #: erpnext/manufacturing/doctype/bom/bom.js:291 #: erpnext/manufacturing/doctype/work_order/work_order.js:158 #: erpnext/manufacturing/doctype/work_order/work_order.js:173 -#: erpnext/public/js/utils.js:587 +#: erpnext/public/js/utils.js:604 #: erpnext/stock/doctype/stock_entry/stock_entry.js:339 msgid "Alternate Item" msgstr "صنف بديل" -#: erpnext/stock/report/item_where_used/item_where_used.py:427 +#: erpnext/stock/report/item_where_used/item_where_used.py:425 msgid "Alternative For Item" msgstr "" @@ -4648,7 +4667,7 @@ msgstr "" #: erpnext/manufacturing/doctype/bom_item/bom_item.json #: erpnext/manufacturing/doctype/work_order_additional_item/work_order_additional_item.json #: erpnext/manufacturing/doctype/work_order_item/work_order_item.json -#: erpnext/public/js/controllers/transaction.js:517 +#: erpnext/public/js/controllers/transaction.js:536 #: erpnext/selling/doctype/quotation/quotation.js:315 #: erpnext/selling/doctype/quotation_item/quotation_item.json #: erpnext/selling/doctype/sales_order_item/sales_order_item.json @@ -4869,7 +4888,7 @@ msgstr "مجموعة العناصر هي طريقة لتصنيف العناصر msgid "An email will be sent to notify the User with the role 'Purchase Manager' when an automatic Material Request is created." msgstr "" -#: erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py:578 +#: erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py:581 msgid "An error has been appeared while reposting item valuation via {0}" msgstr "حدث خطأ أثناء إعادة نشر تقييم العنصر عبر {0}" @@ -5847,7 +5866,7 @@ msgstr "لا يمكن إلغاء الأصل، لانه بالفعل {0}" msgid "Asset cannot be scrapped before the last depreciation entry." msgstr "لا يمكن التخلص من الأصل قبل آخر قيد استهلاك." -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:598 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:601 msgid "Asset capitalized after Asset Capitalization {0} was submitted" msgstr "تم رسملة الأصل بعد تقديم رسملة الأصل {0}" @@ -5879,11 +5898,11 @@ msgstr "تم استلام الأصل في الموقع {0} وتم إصداره msgid "Asset restored" msgstr "تم استعادة الأصل" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:606 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:609 msgid "Asset restored after Asset Capitalization {0} was cancelled" msgstr "تمت استعادة الأصل بعد إلغاء رسملة الأصل {0}" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1562 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1569 msgid "Asset returned" msgstr "تم إرجاع الأصل" @@ -5895,8 +5914,8 @@ msgstr "الأصول الملغاة" msgid "Asset scrapped via Journal Entry {0}" msgstr "ألغت الأصول عن طريق قيد اليومية {0}\\n
\\n Asset scrapped via Journal Entry {0}" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1562 -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1565 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1569 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1572 msgid "Asset sold" msgstr "تم بيع الأصل" @@ -5920,7 +5939,7 @@ msgstr "تم تحديث الأصل بسبب إصلاح الأصل {0} {1}." msgid "Asset {0} cannot be scrapped, as it is already {1}" msgstr "لا يمكن إلغاء الأصل {0} ، كما هو بالفعل {1}\\n
\\nAsset {0} cannot be scrapped, as it is already {1}" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:196 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:199 msgid "Asset {0} does not belong to Item {1}" msgstr "الأصل {0} لا ينتمي إلى العنصر {1}" @@ -5936,12 +5955,12 @@ msgstr "الأصل {0} لا ينتمي إلى الوصي {1}" msgid "Asset {0} does not belong to the location {1}" msgstr "الأصل {0} لا ينتمي إلى الموقع {1}" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:647 -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:740 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:650 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:743 msgid "Asset {0} does not exist" msgstr "الأصل {0} غير موجود" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:573 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:576 msgid "Asset {0} has been updated. Please set the depreciation details if any and submit it." msgstr "تم تحديث الأصل {0} . يرجى تحديد تفاصيل الاستهلاك إن وجدت وإرسالها." @@ -5961,7 +5980,7 @@ msgstr "لم يتم إرسال الأصل {0} . يرجى إرسال الأصل msgid "Asset {0} must be submitted" msgstr "الاصل {0} يجب تقديمه" -#: erpnext/controllers/buying_controller.py:1030 +#: erpnext/controllers/buying_controller.py:1093 msgid "Asset {assets_link} created for {item_code}" msgstr "تم إنشاء الأصل {assets_link} لـ {item_code}" @@ -5999,15 +6018,15 @@ msgstr "الأصول" msgid "Assets Setup" msgstr "" -#: erpnext/controllers/buying_controller.py:1048 +#: erpnext/controllers/buying_controller.py:1111 msgid "Assets not created for {item_code}. You will have to create asset manually." msgstr "لم يتم إنشاء الأصول لـ {item_code}. سيكون عليك إنشاء الأصل يدويًا." -#: erpnext/controllers/buying_controller.py:1035 +#: erpnext/controllers/buying_controller.py:1098 msgid "Assets {assets_link} created for {item_code}" msgstr "الأصول {assets_link} التي تم إنشاؤها لـ {item_code}" -#: erpnext/manufacturing/doctype/job_card/job_card.js:713 +#: erpnext/manufacturing/doctype/job_card/job_card.js:712 msgid "Assign Job to Employee" msgstr "إسناد الوظيفة إلى الموظف" @@ -6068,7 +6087,7 @@ msgstr "يجب اختيار واحدة على الأقل من الوحدات ا msgid "At least one of the Selling or Buying must be selected" msgstr "يجب اختيار واحد على الأقل من خياري البيع أو الشراء" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:414 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:417 msgid "At least one raw material item must be present in the stock entry for the type {0}" msgstr "" @@ -6076,11 +6095,11 @@ msgstr "" msgid "At least one row is required for a financial report template" msgstr "يلزم وجود صف واحد على الأقل في نموذج التقرير المالي" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:978 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:981 msgid "At least one warehouse is mandatory" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:881 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:884 msgid "At row #{0}: the Difference Account must not be a Stock type account, please change the Account Type for the account {1} or select a different account" msgstr "" @@ -6088,7 +6107,7 @@ msgstr "" msgid "At row #{0}: the sequence id {1} cannot be less than previous row sequence id {2}" msgstr "في الصف # {0}: لا يمكن أن يكون معرف التسلسل {1} أقل من معرف تسلسل الصف السابق {2}" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:892 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:895 msgid "At row #{0}: you have selected the Difference Account {1}, which is a Cost of Goods Sold type account. Please select a different account" msgstr "" @@ -6108,7 +6127,7 @@ msgstr "في الصف {0}: الكمية إلزامية للدفعة {1}" msgid "At row {0}: Serial No is mandatory for Item {1}" msgstr "في الصف {0}: الرقم التسلسلي إلزامي للعنصر {1}" -#: erpnext/controllers/stock_controller.py:673 +#: erpnext/controllers/stock_controller.py:676 msgid "At row {0}: Serial and Batch Bundle {1} has already created. Please remove the values from the serial no or batch no fields." msgstr "في الصف {0}: تم إنشاء حزمة الرقم التسلسلي وحزمة الدفعة {1} مسبقًا. يُرجى حذف القيم من حقلي الرقم التسلسلي أو رقم الدفعة." @@ -6331,7 +6350,7 @@ msgstr "تم تعطيل خاصية التسوية التلقائية للمدف msgid "Auto Repeat Detail" msgstr "تكرار تلقائي للتفاصيل" -#: erpnext/accounts/doctype/accounts_settings/accounts_settings.py:200 +#: erpnext/accounts/doctype/accounts_settings/accounts_settings.py:201 msgid "Auto Tax Settings Error" msgstr "خطأ في إعدادات الضريبة التلقائية" @@ -6517,7 +6536,7 @@ msgstr "متاح للاستخدام تاريخ" #: erpnext/manufacturing/doctype/workstation/workstation.js:505 #: erpnext/manufacturing/report/bom_stock_analysis/bom_stock_analysis.py:118 #: erpnext/manufacturing/report/bom_stock_analysis/bom_stock_analysis.py:175 -#: erpnext/public/js/utils.js:647 +#: erpnext/public/js/utils.js:664 #: erpnext/stock/doctype/delivery_note_item/delivery_note_item.json #: erpnext/stock/doctype/pick_list_item/pick_list_item.json #: erpnext/stock/report/stock_ageing/stock_ageing.py:214 @@ -6607,7 +6626,7 @@ msgstr "" msgid "Available for use date is required" msgstr "مطلوب تاريخ متاح للاستخدام" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1228 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1231 msgid "Available quantity is {0}, you need {1}" msgstr "الكمية المتاحة هي {0} ، تحتاج إلى {1}" @@ -6771,7 +6790,7 @@ msgstr "BOM 2" msgid "BOM Comparison Tool" msgstr "أداة مقارنة BOM" -#: erpnext/stock/report/item_where_used/item_where_used.py:178 +#: erpnext/stock/report/item_where_used/item_where_used.py:174 msgid "BOM Component" msgstr "" @@ -6907,7 +6926,7 @@ msgstr "عملية قائمة المواد" msgid "BOM Operations Time" msgstr "وقت عمليات BOM" -#: erpnext/stock/report/item_where_used/item_where_used.py:248 +#: erpnext/stock/report/item_where_used/item_where_used.py:244 msgid "BOM Output" msgstr "" @@ -6928,7 +6947,7 @@ msgstr "BOM البحث" #. Label of the bom_secondary_item (Data) field in DocType 'Stock Entry Detail' #: erpnext/manufacturing/doctype/bom_secondary_item/bom_secondary_item.json #: erpnext/stock/doctype/stock_entry_detail/stock_entry_detail.json -#: erpnext/stock/report/item_where_used/item_where_used.py:213 +#: erpnext/stock/report/item_where_used/item_where_used.py:209 msgid "BOM Secondary Item" msgstr "" @@ -6999,7 +7018,7 @@ msgstr "صنف الموقع الالكتروني بقائمة المواد" msgid "BOM Website Operation" msgstr "عملية الموقع الالكتروني بقائمة المواد" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:2700 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2758 msgid "BOM and Finished Good Quantity is mandatory for Disassembly" msgstr "يُعدّ كل من قائمة المواد وكمية المنتج النهائي شرطًا أساسيًا لعملية التفكيك." @@ -7886,7 +7905,7 @@ msgstr "" #: erpnext/manufacturing/doctype/job_card/job_card.json #: erpnext/manufacturing/report/cost_of_poor_quality_report/cost_of_poor_quality_report.js:89 #: erpnext/manufacturing/report/cost_of_poor_quality_report/cost_of_poor_quality_report.py:115 -#: erpnext/public/js/controllers/transaction.js:2876 +#: erpnext/public/js/controllers/transaction.js:2890 #: erpnext/public/js/utils/barcode_scanner.js:281 #: erpnext/public/js/utils/serial_no_batch_selector.js:449 #: erpnext/stock/doctype/delivery_note_item/delivery_note_item.json @@ -8021,12 +8040,12 @@ msgstr "الدفعة {0} والمستودع" msgid "Batch {0} is not available in warehouse {1}" msgstr "الدفعة {0} غير متوفرة في المستودع {1}" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:3778 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:3836 #: erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.py:290 msgid "Batch {0} of Item {1} has expired." msgstr "الدفعة {0} للعنصر {1} انتهت صلاحيتها\\n
\\nBatch {0} of Item {1} has expired." -#: erpnext/stock/doctype/stock_entry/stock_entry.py:3784 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:3842 msgid "Batch {0} of Item {1} is disabled." msgstr "تم تعطيل الدفعة {0} من الصنف {1}." @@ -8451,6 +8470,16 @@ msgstr "حظر الفاتورة" msgid "Block Supplier" msgstr "كتلة المورد" +#. Description of the 'Is Frozen' (Check) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Blocks all further accounting entries on this customer's account. Only users with the frozen-entries role can override.\n" +msgstr "" + +#. Description of the 'Disabled' (Check) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Blocks this customer from being used on any new transaction." +msgstr "" + #. Label of the blog_subscriber (Check) field in DocType 'Lead' #: erpnext/crm/doctype/lead/lead.json msgid "Blog Subscriber" @@ -8769,8 +8798,8 @@ msgid "Budget cannot be assigned against Group Account {0}" msgstr "لايمكن أسناد الميزانية للمجموعة Account {0}" #: erpnext/accounts/doctype/budget/budget.py:162 -msgid "Budget cannot be assigned against {0}, as it's not an Income or Expense account" -msgstr "لا يمكن تعيين الميزانية مقابل {0}، حيث إنها ليست حسابا للدخل أو للمصروفات" +msgid "Budget cannot be assigned against {0}, as its Root Type is not of Income or Expense" +msgstr "" #: erpnext/accounts/doctype/fiscal_year/fiscal_year_dashboard.py:9 msgid "Budgets" @@ -8966,16 +8995,16 @@ msgstr "" msgid "By-Product" msgstr "" -#. Label of the bypass_credit_limit_check (Check) field in DocType 'Customer -#. Credit Limit' -#: erpnext/selling/doctype/customer_credit_limit/customer_credit_limit.json -msgid "Bypass Credit Limit Check at Sales Order" -msgstr "تجاوز الحد الائتماني في طلب المبيعات" - #: erpnext/selling/report/customer_credit_balance/customer_credit_balance.py:68 msgid "Bypass credit check at Sales Order" msgstr "تجاوز فحص الائتمان عند طلب البيع" +#. Label of the bypass_credit_limit_check (Check) field in DocType 'Customer +#. Credit Limit' +#: erpnext/selling/doctype/customer_credit_limit/customer_credit_limit.json +msgid "Bypass credit limit check at sales order" +msgstr "" + #. Label of the cc_to (Table MultiSelect) field in DocType 'Process Statement #. Of Accounts' #: erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.json @@ -9279,7 +9308,7 @@ msgstr "" msgid "Can be approved by {0}" msgstr "يمكن الموافقة عليها بواسطة {0}" -#: erpnext/manufacturing/doctype/work_order/work_order.py:2735 +#: erpnext/manufacturing/doctype/work_order/work_order.py:2767 msgid "Can not close Work Order. Since {0} Job Cards are in Work In Progress state." msgstr "لا يمكن إغلاق أمر العمل. لأن {0} بطاقات العمل في حالة \"قيد التنفيذ\"." @@ -9312,9 +9341,9 @@ msgstr "لا يمكن الفلتره علي اساس (رقم الأيصال)، msgid "Can only make payment against unbilled {0}" msgstr "يمكن إجراء دفعة فقط مقابل فاتورة غير مدفوعة {0}" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1501 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1510 #: erpnext/controllers/accounts_controller.py:3196 -#: erpnext/public/js/controllers/accounts.js:103 +#: erpnext/public/js/controllers/accounts.js:100 msgid "Can refer row only if the charge type is 'On Previous Row Amount' or 'Previous Row Total'" msgstr "لا يمكن الرجوع إلى الصف إلا إذا كان نوع الرسوم هو \"مبلغ الصف السابق\" أو \"إجمالي الصف السابق\"." @@ -9351,7 +9380,7 @@ msgstr "إلغاء الاشتراك بعد فترة السماح" msgid "Cancelation Date" msgstr "تاريخ الإلغاء" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1490 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1508 msgid "Cancelled Job Card cannot be processed." msgstr "" @@ -9438,11 +9467,11 @@ msgstr "لا يمكن إلغاء إدخال مخزون التصنيع هذا ل msgid "Cannot cancel this document as it is linked with the submitted Asset Value Adjustment {0}. Please cancel the Asset Value Adjustment to continue." msgstr "" -#: erpnext/controllers/buying_controller.py:1137 +#: erpnext/controllers/buying_controller.py:1200 msgid "Cannot cancel this document as it is linked with the submitted asset {asset_link}. Please cancel the asset to continue." msgstr "لا يمكن إلغاء هذا المستند لأنه مرتبط بالأصل المُرسَل {asset_link}. يُرجى إلغاء الأصل للمتابعة." -#: erpnext/stock/doctype/stock_entry/stock_entry.py:656 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:659 msgid "Cannot cancel transaction for Completed Work Order." msgstr "لا يمكن إلغاء المعاملة لأمر العمل المكتمل." @@ -9486,11 +9515,11 @@ msgstr "لا يمكن التحويل إلى مجموعة لأن نوع الحس msgid "Cannot covert to Group because Account Type is selected." msgstr "لا يمكن تحويل الحساب إلى تصنيف مجموعة لأن نوع الحساب تم اختياره." -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2839 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2846 msgid "Cannot create Intercompany {0}. All items in the source {1} have already been fully invoiced. Please check the existing linked {2}s." msgstr "" -#: erpnext/stock/doctype/purchase_receipt/purchase_receipt.py:1012 +#: erpnext/stock/doctype/purchase_receipt/purchase_receipt.py:1016 msgid "Cannot create Stock Reservation Entries for future dated Purchase Receipts." msgstr "لا يمكن إنشاء إدخالات حجز المخزون لإيصالات الشراء ذات التواريخ المستقبلية." @@ -9520,7 +9549,7 @@ msgstr "لا يمكن ان تعلن بانها فقدت ، لأنه تم تقد msgid "Cannot deduct when category is for 'Valuation' or 'Valuation and Total'" msgstr "لا يمكن الخصم عندما تكون الفئة \"التقييم\" أو \"التقييم والإجمالي\"" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1845 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1854 msgid "Cannot delete Exchange Gain/Loss row" msgstr "لا يمكن حذف صف الربح/الخسارة في الصرف" @@ -9533,7 +9562,7 @@ msgid "Cannot delete an item which has been ordered" msgstr "لا يمكن حذف عنصر تم طلبه" #: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:197 -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:785 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:796 msgid "Cannot delete protected core DocType: {0}" msgstr "" @@ -9557,7 +9586,7 @@ msgstr "" msgid "Cannot disassemble more than produced quantity." msgstr "لا يمكن تفكيك كمية أكبر من الكمية المنتجة." -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1021 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1024 msgid "Cannot disassemble {0} qty against Stock Entry {1}. Only {2} qty available to disassemble." msgstr "" @@ -9565,7 +9594,7 @@ msgstr "" msgid "Cannot enable Item-wise Inventory Account, as there are existing Stock Ledger Entries for the company {0} with Warehouse-wise Inventory Account. Please cancel the stock transactions first and try again." msgstr "لا يمكن تفعيل حساب المخزون حسب الصنف، لوجود قيود دفترية للمخزون للشركة {0} مع حساب مخزون حسب المستودع. يرجى إلغاء معاملات المخزون أولاً ثم المحاولة مرة أخرى." -#: erpnext/crm/doctype/crm_settings/crm_settings.py:37 +#: erpnext/crm/doctype/crm_settings/crm_settings.py:43 msgid "Cannot enable Opportunity creation from Contact Us because the Contact Us form is disabled." msgstr "" @@ -9590,7 +9619,7 @@ msgstr "لا يمكن العثور على عنصر بهذا الرمز الشر msgid "Cannot find a default warehouse for item {0}. Please set one in the Item Master or in Stock Settings." msgstr "تعذر العثور على مستودع افتراضي للصنف {0}. يرجى تحديد مستودع في بيانات الصنف الرئيسية أو في إعدادات المخزون." -#: erpnext/accounts/party.py:1083 +#: erpnext/accounts/party.py:1092 msgid "Cannot merge {0} '{1}' into '{2}' as both have existing accounting entries in different currencies for company '{3}'." msgstr "لا يمكن دمج {0} '{1}' في '{2}' حيث أن لكليهما قيود محاسبية موجودة بعملات مختلفة للشركة '{3}'." @@ -9614,9 +9643,9 @@ msgstr "" msgid "Cannot reduce quantity than ordered or purchased quantity" msgstr "لا يمكن تقليل الكمية عن الكمية المطلوبة أو المشتراة" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1514 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1523 #: erpnext/controllers/accounts_controller.py:3211 -#: erpnext/public/js/controllers/accounts.js:120 +#: erpnext/public/js/controllers/accounts.js:117 msgid "Cannot refer row number greater than or equal to current row number for this Charge type" msgstr "لا يمكن أن يشير رقم الصف أكبر من أو يساوي رقم الصف الحالي لهذا النوع المسؤول" @@ -9628,16 +9657,16 @@ msgstr "تعذر استرداد رمز الرابط للتحديث. راجع س msgid "Cannot retrieve link token. Check Error Log for more information" msgstr "تعذر استرداد رمز الرابط. راجع سجل الأخطاء لمزيد من المعلومات." -#: erpnext/selling/doctype/customer/customer.py:367 +#: erpnext/selling/doctype/customer/customer.py:368 msgid "Cannot select a Group type Customer Group. Please select a non-group Customer Group." msgstr "" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1507 -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1685 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1516 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1694 #: erpnext/accounts/doctype/payment_entry/payment_entry.py:1848 #: erpnext/controllers/accounts_controller.py:3201 -#: erpnext/public/js/controllers/accounts.js:112 -#: erpnext/public/js/controllers/taxes_and_totals.js:552 +#: erpnext/public/js/controllers/accounts.js:109 +#: erpnext/public/js/controllers/taxes_and_totals.js:555 msgid "Cannot select charge type as 'On Previous Row Amount' or 'On Previous Row Total' for first row" msgstr "لا يمكن تحديد نوع التهمة باسم ' في الصف السابق المبلغ ' أو ' في السابق صف إجمالي \" ل لصف الأول" @@ -9669,7 +9698,7 @@ msgstr "لا يمكن تعيين الحقل {0} للنسخ في المت msgid "Cannot start deletion. Another deletion {0} is already queued/running. Please wait for it to complete." msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:873 +#: erpnext/manufacturing/doctype/job_card/job_card.py:874 msgid "Cannot submit Job Card {0} while it is On Hold. Please resume and complete the job before submission." msgstr "" @@ -10052,7 +10081,7 @@ msgstr "تغيير تاريخ الإصدار" msgid "Change in Stock Value" msgstr "التغير في قيمة السهم" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1069 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1076 msgid "Change the account type to Receivable or select a different account." msgstr "قم بتغيير نوع الحساب إلى "ذمم مدينة" أو حدد حسابًا مختلفًا." @@ -10062,7 +10091,7 @@ msgstr "قم بتغيير نوع الحساب إلى "ذمم مدينة&quo msgid "Change this date manually to setup the next synchronization start date" msgstr "قم بتغيير هذا التاريخ يدويًا لإعداد تاريخ بدء المزامنة التالي" -#: erpnext/selling/doctype/customer/customer.py:157 +#: erpnext/selling/doctype/customer/customer.py:158 msgid "Changed customer name to '{}' as '{}' already exists." msgstr "تم تغيير اسم العميل إلى '{}' لأن '{}' موجود بالفعل." @@ -10285,7 +10314,7 @@ msgstr "عرض الشيك" #. Label of the reference_date (Date) field in DocType 'Payment Entry' #: erpnext/accounts/doctype/payment_entry/payment_entry.json -#: erpnext/public/js/controllers/transaction.js:2787 +#: erpnext/public/js/controllers/transaction.js:2801 msgid "Cheque/Reference Date" msgstr "تاريخ الصك / السند المرجع" @@ -10343,7 +10372,7 @@ msgstr "اسم الطفل" #. Label of the child_row_reference (Data) field in DocType 'Quality #. Inspection' -#: erpnext/public/js/controllers/transaction.js:2882 +#: erpnext/public/js/controllers/transaction.js:2896 #: erpnext/stock/doctype/quality_inspection/quality_inspection.json msgid "Child Row Reference" msgstr "مرجع صف الطفل" @@ -10395,6 +10424,11 @@ msgstr "تصنيف العملاء حسب المنطقة" msgid "Classify As" msgstr "" +#. Description of the 'Market Segment' (Link) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Classify the type of market this customer belongs to, used for sales analysis and targeting." +msgstr "" + #. Label of the more_information (Text Editor) field in DocType 'Bank #. Guarantee' #: erpnext/accounts/doctype/bank_guarantee/bank_guarantee.json @@ -10527,7 +10561,7 @@ msgstr "إغلاق القرض" msgid "Close Replied Opportunity After Days" msgstr "تم إغلاق الفرصة بعد أيام" -#: erpnext/selling/page/point_of_sale/pos_controller.js:253 +#: erpnext/selling/page/point_of_sale/pos_controller.js:244 msgid "Close the POS" msgstr "أغلق POS" @@ -10541,7 +10575,7 @@ msgstr "وثيقة مغلقة" msgid "Closed Documents" msgstr "وثائق مغلقة" -#: erpnext/manufacturing/doctype/work_order/work_order.py:2658 +#: erpnext/manufacturing/doctype/work_order/work_order.py:2690 msgid "Closed Work Order can not be stopped or Re-opened" msgstr "لا يمكن إيقاف أمر العمل المغلق أو إعادة فتحه." @@ -10800,6 +10834,12 @@ msgstr "" msgid "Commission on Sales" msgstr "عمولة على المبيعات" +#. Description of the 'Sales Partner' (Section Break) field in DocType +#. 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Commission paid to the Sales Partner on transactions with this customer." +msgstr "" + #. Name of a DocType #. Label of the common_code (Data) field in DocType 'Common Code' #. Label of the common_code (Data) field in DocType 'UOM' @@ -11201,7 +11241,7 @@ msgstr "شركات" #: erpnext/selling/doctype/quotation/quotation.json #: erpnext/selling/doctype/sales_order/sales_order.json #: erpnext/selling/doctype/supplier_number_at_customer/supplier_number_at_customer.json -#: erpnext/selling/page/point_of_sale/pos_controller.js:72 +#: erpnext/selling/page/point_of_sale/pos_controller.js:63 #: erpnext/selling/page/sales_funnel/sales_funnel.js:36 #: erpnext/selling/report/customer_acquisition_and_loyalty/customer_acquisition_and_loyalty.js:16 #: erpnext/selling/report/customer_credit_balance/customer_credit_balance.js:8 @@ -11270,7 +11310,7 @@ msgstr "شركات" #: erpnext/stock/report/item_shortage_report/item_shortage_report.js:8 #: erpnext/stock/report/item_shortage_report/item_shortage_report.py:137 #: erpnext/stock/report/item_where_used/item_where_used.js:15 -#: erpnext/stock/report/item_where_used/item_where_used.py:95 +#: erpnext/stock/report/item_where_used/item_where_used.py:89 #: erpnext/stock/report/landed_cost_report/landed_cost_report.js:8 #: erpnext/stock/report/negative_batch_report/negative_batch_report.js:8 #: erpnext/stock/report/product_bundle_balance/product_bundle_balance.js:8 @@ -11310,10 +11350,6 @@ msgstr "شركة" msgid "Company Abbreviation" msgstr "اختصار الشركة" -#: erpnext/public/js/utils/naming_series.js:101 -msgid "Company Abbreviation (requires ERPNext to be installed)" -msgstr "" - #: erpnext/public/js/setup_wizard.js:174 msgid "Company Abbreviation cannot have more than 5 characters" msgstr "لا يمكن أن يحتوي اختصار الشركة على أكثر من 5 أحرف" @@ -11368,18 +11404,22 @@ msgstr "عرض عنوان الشركة" msgid "Company Address Name" msgstr "اسم عنوان الشركة" -#: erpnext/controllers/accounts_controller.py:4391 +#: erpnext/controllers/accounts_controller.py:4389 msgid "Company Address is missing. You don't have permission to create an Address. Please contact your System Manager." msgstr "" -#: erpnext/controllers/accounts_controller.py:4379 +#: erpnext/controllers/accounts_controller.py:4377 msgid "Company Address is missing. You don't have permission to update it. Please contact your System Manager." msgstr "عنوان الشركة غير موجود. ليس لديك صلاحية لتحديثه. يرجى الاتصال بمدير النظام." #. Label of the bank_account (Link) field in DocType 'Payment Entry' #. Label of the company_bank_account (Link) field in DocType 'Payment Order' +#. Label of the default_bank_account (Link) field in DocType 'Supplier' +#. Label of the default_bank_account (Link) field in DocType 'Customer' #: erpnext/accounts/doctype/payment_entry/payment_entry.json #: erpnext/accounts/doctype/payment_order/payment_order.json +#: erpnext/buying/doctype/supplier/supplier.json +#: erpnext/selling/doctype/customer/customer.json msgid "Company Bank Account" msgstr "حساب بنك الشركة" @@ -11469,7 +11509,7 @@ msgstr "رقم التعريف الضريبي للشركة" msgid "Company and Posting Date is mandatory" msgstr "اسم الشركة وتاريخ النشر إلزامي" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2630 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2637 msgid "Company currencies of both the companies should match for Inter Company Transactions." msgstr "يجب أن تتطابق عملات الشركة لكلتا الشركتين مع معاملات Inter Inter Company." @@ -11586,7 +11626,7 @@ msgstr "اسم المنافس" msgid "Competitors" msgstr "المنافسون" -#: erpnext/manufacturing/doctype/job_card/job_card.js:665 +#: erpnext/manufacturing/doctype/job_card/job_card.js:663 #: erpnext/manufacturing/doctype/workstation/workstation.js:151 msgid "Complete Job" msgstr "إنجاز العمل" @@ -11637,8 +11677,8 @@ msgstr "الكمية المكتملة" msgid "Completed Qty cannot be greater than 'Qty to Manufacture'" msgstr "لا يمكن أن تكون الكمية المكتملة أكبر من "الكمية إلى التصنيع"" -#: erpnext/manufacturing/doctype/job_card/job_card.js:259 -#: erpnext/manufacturing/doctype/job_card/job_card.js:393 +#: erpnext/manufacturing/doctype/job_card/job_card.js:258 +#: erpnext/manufacturing/doctype/job_card/job_card.js:392 #: erpnext/manufacturing/doctype/workstation/workstation.js:296 msgid "Completed Quantity" msgstr "الكمية المكتملة" @@ -12025,7 +12065,7 @@ msgstr "تكلفة المواد المستهلكة" msgid "Consumed Qty" msgstr "تستهلك الكمية" -#: erpnext/manufacturing/doctype/work_order/work_order.py:1834 +#: erpnext/manufacturing/doctype/work_order/work_order.py:1866 msgid "Consumed Qty cannot be greater than Reserved Qty for item {0}" msgstr "لا يمكن أن تتجاوز الكمية المستهلكة الكمية المحجوزة للصنف {0}" @@ -12044,7 +12084,7 @@ msgstr "الكمية المستهلكة" msgid "Consumed Stock Items" msgstr "الأصناف المستهلكة" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:286 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:289 msgid "Consumed Stock Items, Consumed Asset Items or Consumed Service Items is mandatory for Capitalization" msgstr "يُعدّ إدراج بنود المخزون المستهلكة، أو بنود الأصول المستهلكة، أو بنود الخدمات المستهلكة، شرطًا أساسيًا لعملية الرسملة." @@ -12308,6 +12348,11 @@ msgstr "مراقبة معاملات الأسهم التاريخية" msgid "Controls how raw materials are consumed during the ‘Manufacture’ stock entry." msgstr "" +#. Description of the 'Tax Category' (Link) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Controls which tax template is auto-applied when this customer is selected on a transaction." +msgstr "" + #. Label of the conversion_factor (Float) field in DocType 'Loyalty Program' #. Label of the conversion_factor (Float) field in DocType 'Purchase Order Item #. Supplied' @@ -12339,7 +12384,7 @@ msgstr "" #: erpnext/manufacturing/doctype/bom_item/bom_item.json #: erpnext/manufacturing/doctype/bom_secondary_item/bom_secondary_item.json #: erpnext/manufacturing/doctype/material_request_plan_item/material_request_plan_item.json -#: erpnext/public/js/utils.js:903 +#: erpnext/public/js/utils.js:920 #: erpnext/selling/doctype/delivery_schedule_item/delivery_schedule_item.json #: erpnext/stock/doctype/packed_item/packed_item.json #: erpnext/stock/doctype/purchase_receipt_item/purchase_receipt_item.json @@ -12369,7 +12414,7 @@ msgstr "معدل التحويل" msgid "Conversion factor for default Unit of Measure must be 1 in row {0}" msgstr "معامل التحويل الافتراضي لوحدة القياس يجب أن يكون 1 في الصف {0}" -#: erpnext/controllers/stock_controller.py:119 +#: erpnext/controllers/stock_controller.py:122 msgid "Conversion factor for item {0} has been reset to 1.0 as the uom {1} is same as stock uom {2}." msgstr "تمت إعادة تعيين عامل التحويل للعنصر {0} إلى 1.0 لأن وحدة القياس {1} هي نفسها وحدة قياس المخزون {2}." @@ -12432,7 +12477,7 @@ msgstr "تم نسخها من" #: banking/src/components/features/BankReconciliation/BankClearanceSummary.tsx:83 #: banking/src/components/features/BankReconciliation/BankReconciliationStatement.tsx:76 msgid "Copied to clipboard" -msgstr "" +msgstr "نسخ إلى الحافظة" #. Label of the copy_attachments_to_transaction (Check) field in DocType 'Terms #. and Conditions' @@ -12458,13 +12503,13 @@ msgstr "تصحيحي" msgid "Corrective Action" msgstr "اجراء تصحيحي" -#: erpnext/manufacturing/doctype/job_card/job_card.js:447 +#: erpnext/manufacturing/doctype/job_card/job_card.js:446 msgid "Corrective Job Card" msgstr "بطاقة عمل تصحيحية" #. Label of the corrective_operation_section (Tab Break) field in DocType 'Job #. Card' -#: erpnext/manufacturing/doctype/job_card/job_card.js:456 +#: erpnext/manufacturing/doctype/job_card/job_card.js:455 #: erpnext/manufacturing/doctype/job_card/job_card.json msgid "Corrective Operation" msgstr "عملية تصحيحية" @@ -12726,8 +12771,8 @@ msgstr "يُعد مركز التكلفة جزءًا من تخصيص مركز ا msgid "Cost Center is required" msgstr "" -#: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1468 -#: erpnext/stock/doctype/purchase_receipt/purchase_receipt.py:897 +#: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1472 +#: erpnext/stock/doctype/purchase_receipt/purchase_receipt.py:903 msgid "Cost Center is required in row {0} in Taxes table for type {1}" msgstr "مركز التكلفة مطلوب في الصف {0} في جدول الضرائب للنوع {1}\\n
\\nCost Center is required in row {0} in Taxes table for type {1}" @@ -12809,7 +12854,7 @@ msgstr "تكلفة السلع والمواد المسلمة" msgid "Cost of Goods Sold" msgstr "تكلفة البضاعة المباعة" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:895 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:898 msgid "Cost of Goods Sold Account in Items Table" msgstr "" @@ -13133,8 +13178,8 @@ msgstr "إنشاء زبائن محتملين" msgid "Create Ledger Entries for Change Amount" msgstr "إنشاء قيود دفتر الأستاذ لمبلغ الباقي" -#: erpnext/buying/doctype/supplier/supplier.js:216 -#: erpnext/selling/doctype/customer/customer.js:285 +#: erpnext/buying/doctype/supplier/supplier.js:257 +#: erpnext/selling/doctype/customer/customer.js:287 msgid "Create Link" msgstr "إنشاء رابط" @@ -13182,7 +13227,7 @@ msgstr "" msgid "Create Opportunity" msgstr "خلق الفرص" -#: erpnext/selling/page/point_of_sale/pos_controller.js:67 +#: erpnext/selling/page/point_of_sale/pos_controller.js:58 msgid "Create POS Opening Entry" msgstr "إنشاء مدخل فتح نقطة البيع" @@ -13197,7 +13242,7 @@ msgstr "إنشاء إدخال الدفع" msgid "Create Payment Entry for Consolidated POS Invoices." msgstr "إنشاء إدخال دفع لفواتير نقاط البيع المجمعة." -#: erpnext/public/js/controllers/transaction.js:524 +#: erpnext/public/js/controllers/transaction.js:543 msgid "Create Payment Request" msgstr "" @@ -13425,7 +13470,7 @@ msgstr "" msgid "Create a variant with the template image." msgstr "أنشئ نسخة بديلة باستخدام صورة القالب." -#: erpnext/stock/stock_ledger.py:2038 +#: erpnext/stock/stock_ledger.py:2027 msgid "Create an incoming stock transaction for the Item." msgstr "قم بإنشاء حركة مخزون واردة للصنف." @@ -13550,7 +13595,7 @@ msgstr "" msgid "Creating demo data" msgstr "" -#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:305 +#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:317 msgid "Creating {} out of {} {}" msgstr "إنشاء {} من {} {}" @@ -13690,16 +13735,10 @@ msgstr "الائتمان أيام" msgid "Credit Limit" msgstr "الحد الائتماني" -#: erpnext/selling/doctype/customer/customer.py:642 +#: erpnext/selling/doctype/customer/customer.py:643 msgid "Credit Limit Crossed" msgstr "تم تجاوز الحد الائتماني" -#. Label of the credit_limit_section (Section Break) field in DocType -#. 'Customer' -#: erpnext/selling/doctype/customer/customer.json -msgid "Credit Limit and Payment Terms" -msgstr "حدود الائتمان وشروط الدفع" - #: erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts_accounts_receivable.html:50 msgid "Credit Limit:" msgstr "الحد الائتماني:" @@ -13776,16 +13815,16 @@ msgstr "دائن الى" msgid "Credit in Company Currency" msgstr "المدين في عملة الشركة" -#: erpnext/selling/doctype/customer/customer.py:608 -#: erpnext/selling/doctype/customer/customer.py:663 +#: erpnext/selling/doctype/customer/customer.py:609 +#: erpnext/selling/doctype/customer/customer.py:664 msgid "Credit limit has been crossed for customer {0} ({1}/{2})" msgstr "تم تجاوز حد الائتمان للعميل {0} ({1} / {2})" -#: erpnext/selling/doctype/customer/customer.py:394 +#: erpnext/selling/doctype/customer/customer.py:395 msgid "Credit limit is already defined for the Company {0}" msgstr "تم تحديد حد الائتمان بالفعل للشركة {0}" -#: erpnext/selling/doctype/customer/customer.py:662 +#: erpnext/selling/doctype/customer/customer.py:663 msgid "Credit limit reached for customer {0}" msgstr "تم بلوغ حد الائتمان للعميل {0}" @@ -13844,7 +13883,7 @@ msgstr "معايير الوزن" msgid "Criteria weights must add up to 100%" msgstr "يجب أن يصل مجموع أوزان المعايير إلى 100%" -#: erpnext/accounts/doctype/accounts_settings/accounts_settings.py:187 +#: erpnext/accounts/doctype/accounts_settings/accounts_settings.py:188 msgid "Cron Interval should be between 1 and 59 Min" msgstr "يجب أن تكون فترة Cron بين 1 و 59 دقيقة" @@ -14088,10 +14127,6 @@ msgstr "حزمة الأرقام التسلسلية/الدفعات الحالية msgid "Current Serial No" msgstr "الرقم التسلسلي الحالي" -#: erpnext/public/js/utils/naming_series.js:223 -msgid "Current Series" -msgstr "" - #. Label of the current_state (Select) field in DocType 'Share Balance' #: erpnext/accounts/doctype/share_balance/share_balance.json msgid "Current State" @@ -14117,6 +14152,11 @@ msgstr "المخزون الحالية" msgid "Current Valuation Rate" msgstr "معدل التقييم الحالي" +#. Description of the 'Loyalty Program Tier' (Data) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Current tier based on accumulated points. Updated automatically on each invoice." +msgstr "" + #: erpnext/selling/report/sales_analytics/sales_analytics.js:90 msgid "Curves" msgstr "منحنيات" @@ -14261,7 +14301,7 @@ msgstr "محددات مخصصة" #: erpnext/accounts/report/sales_register/sales_register.py:187 #: erpnext/assets/doctype/asset/asset.json #: erpnext/buying/doctype/purchase_order/purchase_order.json -#: erpnext/buying/doctype/supplier/supplier.js:184 +#: erpnext/buying/doctype/supplier/supplier.js:225 #: erpnext/crm/doctype/contract/contract.json #: erpnext/crm/doctype/lead/lead.js:32 #: erpnext/crm/doctype/opportunity/opportunity.js:99 @@ -14801,7 +14841,7 @@ msgstr "عميل أو بند" msgid "Customer required for 'Customerwise Discount'" msgstr "الزبون مطلوب للخصم المعني بالزبائن" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1183 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1190 #: erpnext/selling/doctype/sales_order/sales_order.py:436 #: erpnext/stock/doctype/delivery_note/delivery_note.py:406 msgid "Customer {0} does not belong to project {1}" @@ -15060,10 +15100,6 @@ msgstr "مواعيد المعالجة" msgid "Day Of Week" msgstr "يوم من الأسبوع" -#: erpnext/public/js/utils/naming_series.js:94 -msgid "Day of month" -msgstr "" - #. Label of the day_to_send (Select) field in DocType 'Project' #: erpnext/projects/doctype/project/project.json msgid "Day to Send" @@ -15256,13 +15292,13 @@ msgstr "ستقوم مذكرة الخصم بتحديث المبلغ المستح #. Label of the debit_to (Link) field in DocType 'Sales Invoice' #: erpnext/accounts/doctype/pos_invoice/pos_invoice.json #: erpnext/accounts/doctype/sales_invoice/sales_invoice.json -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1054 -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1065 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1061 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1072 #: erpnext/controllers/accounts_controller.py:2383 msgid "Debit To" msgstr "الخصم ل" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1050 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1057 msgid "Debit To is required" msgstr "مدين الى مطلوب" @@ -15389,8 +15425,7 @@ msgstr "" #. Label of the default_accounts_section (Section Break) field in DocType #. 'Supplier' -#. Label of the default_receivable_accounts (Section Break) field in DocType -#. 'Customer' +#. Label of the accounts (Table) field in DocType 'Customer' #. Label of the default_settings (Section Break) field in DocType 'Company' #. Label of the default_receivable_account (Section Break) field in DocType #. 'Customer Group' @@ -15442,7 +15477,7 @@ msgstr "الافتراضي BOM" msgid "Default BOM ({0}) must be active for this item or its template" msgstr "يجب أن تكون قائمة المواد الافتراضية ({0}) نشطة لهذا الصنف أو قوالبه" -#: erpnext/manufacturing/doctype/work_order/work_order.py:2426 +#: erpnext/manufacturing/doctype/work_order/work_order.py:2458 msgid "Default BOM for {0} not found" msgstr "فاتورة المواد ل {0} غير موجودة\\n
\\nDefault BOM for {0} not found" @@ -15450,7 +15485,7 @@ msgstr "فاتورة المواد ل {0} غير موجودة\\n
\\nDefault BO msgid "Default BOM not found for FG Item {0}" msgstr "لم يتم العثور على قائمة مكونات افتراضية لعنصر المنتج النهائي {0}" -#: erpnext/manufacturing/doctype/work_order/work_order.py:2423 +#: erpnext/manufacturing/doctype/work_order/work_order.py:2455 msgid "Default BOM not found for Item {0} and Project {1}" msgstr "لم يتم العثور على قائمة المواد الافتراضية للمادة {0} والمشروع {1}" @@ -15502,13 +15537,6 @@ msgstr "الرمز المشترك الافتراضي" msgid "Default Company" msgstr "الشركة الافتراضية" -#. Label of the default_bank_account (Link) field in DocType 'Supplier' -#. Label of the default_bank_account (Link) field in DocType 'Customer' -#: erpnext/buying/doctype/supplier/supplier.json -#: erpnext/selling/doctype/customer/customer.json -msgid "Default Company Bank Account" -msgstr "الحساب البنكي الافتراضي للشركة" - #. Label of the cost_center (Link) field in DocType 'Project' #. Label of the cost_center (Link) field in DocType 'Company' #: erpnext/projects/doctype/project/project.json @@ -15655,24 +15683,18 @@ msgstr "حساب خصم الدفع الافتراضي" msgid "Default Payment Request Message" msgstr "رسالة 'طلب الدفع' الافتراضيه" -#. Label of the payment_terms (Link) field in DocType 'Supplier' -#. Label of the payment_terms (Link) field in DocType 'Customer' #. Label of the payment_terms (Link) field in DocType 'Company' #. Label of the payment_terms (Link) field in DocType 'Customer Group' #. Label of the payment_terms (Link) field in DocType 'Supplier Group' -#: erpnext/buying/doctype/supplier/supplier.json -#: erpnext/selling/doctype/customer/customer.json #: erpnext/setup/doctype/company/company.json #: erpnext/setup/doctype/customer_group/customer_group.json #: erpnext/setup/doctype/supplier_group/supplier_group.json msgid "Default Payment Terms Template" msgstr "نموذج شروط الدفع الافتراضية" -#. Label of the default_price_list (Link) field in DocType 'Customer' #. Label of the selling_price_list (Link) field in DocType 'Selling Settings' #. Label of the default_price_list (Link) field in DocType 'Customer Group' #. Label of the default_price_list (Link) field in DocType 'Item Default' -#: erpnext/selling/doctype/customer/customer.json #: erpnext/selling/doctype/selling_settings/selling_settings.json #: erpnext/setup/doctype/customer_group/customer_group.json #: erpnext/stock/doctype/item_default/item_default.json @@ -15944,6 +15966,12 @@ msgstr "تعريف نوع المشروع." msgid "Defines the date after which the item can no longer be used in transactions or manufacturing" msgstr "" +#. Description of the 'Payment Terms Template' (Link) field in DocType +#. 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Defines when payment is due (e.g. Net 30, 50% advance). Applied automatically on invoices for this customer." +msgstr "" + #. Name of a UOM #: erpnext/setup/setup_wizard/data/uom_data.json msgid "Dekagram/Litre" @@ -16014,7 +16042,7 @@ msgstr "حذف إدخالات دفتر الأستاذ الملغاة" msgid "Delete Demo Data" msgstr "" -#: erpnext/stock/doctype/inventory_dimension/inventory_dimension.js:66 +#: erpnext/stock/doctype/inventory_dimension/inventory_dimension.js:65 msgid "Delete Dimension" msgstr "" @@ -16052,8 +16080,8 @@ msgstr "" msgid "Deleting {0} and all associated Common Code documents..." msgstr "حذف {0} وجميع مستندات الكود المشترك المرتبطة بها..." -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1102 -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1121 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1113 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1132 msgid "Deletion in Progress!" msgstr "جارٍ الحذف!" @@ -16203,7 +16231,7 @@ msgstr "تسليم" #: erpnext/manufacturing/doctype/master_production_schedule_item/master_production_schedule_item.json #: erpnext/manufacturing/doctype/sales_forecast_item/sales_forecast_item.json #: erpnext/manufacturing/report/material_requirements_planning_report/material_requirements_planning_report.py:1069 -#: erpnext/public/js/utils.js:896 +#: erpnext/public/js/utils.js:913 #: erpnext/selling/doctype/delivery_schedule_item/delivery_schedule_item.json #: erpnext/selling/doctype/sales_order/sales_order.js:632 #: erpnext/selling/doctype/sales_order/sales_order.js:1533 @@ -16308,7 +16336,7 @@ msgstr "إشعار التسليم - المنتج المعبأ" msgid "Delivery Note Trends" msgstr "توجهات إشعارات التسليم" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1444 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1451 msgid "Delivery Note {0} is not submitted" msgstr "لم يتم اعتماد ملاحظه التسليم {0}\\n
\\nDelivery Note {0} is not submitted" @@ -16726,6 +16754,11 @@ msgstr "" msgid "Determine Address Tax Category from" msgstr "" +#. Description of the 'Tax Category' (Link) field in DocType 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "Determines which tax rules apply to this supplier" +msgstr "" + #. Option for the 'Fuel Type' (Select) field in DocType 'Vehicle' #: erpnext/setup/doctype/vehicle/vehicle.json msgid "Diesel" @@ -16772,15 +16805,15 @@ msgstr "الفرق ( المدين - الدائن )" msgid "Difference Account" msgstr "حساب الفرق" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:884 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:887 msgid "Difference Account in Items Table" msgstr "حساب الفرق في جدول البنود" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:873 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:876 msgid "Difference Account must be a Asset/Liability type account (Temporary Opening), since this Stock Entry is an Opening Entry" msgstr "يجب أن يكون حساب الفرق حسابًا من نوع الأصول/الخصوم (افتتاح مؤقت)، لأن قيد المخزون هذا هو قيد افتتاحي." -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:975 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:978 msgid "Difference Account must be a Asset/Liability type account, since this Stock Reconciliation is an Opening Entry" msgstr "حساب الفرق يجب أن يكون حساب الأصول / حساب نوع الالتزام، حيث يعتبر تسوية المخزون بمثابة مدخل افتتاح\\n
\\nDifference Account must be a Asset/Liability type account, since this Stock Reconciliation is an Opening Entry" @@ -17018,6 +17051,11 @@ msgstr "" msgid "Disabled pricing rules since this {} is an internal transfer" msgstr "تم تعطيل قواعد التسعير لأن هذا {} عبارة عن تحويل داخلي" +#. Description of the 'Disabled' (Check) field in DocType 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "Disabled suppliers are hidden from selection in new transactions but remain in historical records" +msgstr "" + #: erpnext/controllers/accounts_controller.py:925 msgid "Disabled tax included prices since this {} is an internal transfer" msgstr "الأسعار تشمل الضريبة المعطلة لأن هذا {} عبارة عن تحويل داخلي" @@ -17046,7 +17084,7 @@ msgstr "فكّك" msgid "Disassemble Order" msgstr "ترتيب التفكيك" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:2642 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2700 msgid "Disassemble Qty cannot be less than or equal to 0." msgstr "" @@ -17604,7 +17642,7 @@ msgid "DocType can be one of them {0}" msgstr "" #: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:182 -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:445 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:456 msgid "DocType {0} does not exist" msgstr "نوع المستند {0} غير موجود" @@ -17642,19 +17680,6 @@ msgstr "بحث المستندات" msgid "Document Count" msgstr "" -#. Label of the document_naming_tab (Tab Break) field in DocType 'Accounts -#. Settings' -#. Label of the document_naming_tab (Tab Break) field in DocType 'Buying -#. Label of the default_naming_tab (Tab Break) field in DocType 'Selling -#. Label of the document_naming_tab (Tab Break) field in DocType 'Stock -#: erpnext/accounts/doctype/accounts_settings/accounts_settings.json -#: erpnext/buying/doctype/buying_settings/buying_settings.json -#: erpnext/public/js/utils/naming_series.js:7 -#: erpnext/selling/doctype/selling_settings/selling_settings.json -#: erpnext/stock/doctype/stock_settings/stock_settings.json -msgid "Document Naming" -msgstr "" - #: erpnext/stock/report/negative_batch_report/negative_batch_report.py:78 msgid "Document No" msgstr "" @@ -18198,7 +18223,7 @@ msgstr "الكمية المستهدفة أو المبلغ المستهدف، أ msgid "Either target qty or target amount is mandatory." msgstr "الكمية المستهدفة أو المبلغ المستهدف، أحدهما إلزامي" -#: erpnext/manufacturing/doctype/job_card/job_card.js:679 +#: erpnext/manufacturing/doctype/job_card/job_card.js:677 msgid "Elapsed Time" msgstr "" @@ -18510,7 +18535,7 @@ msgstr "" msgid "Employee {0} does not belong to the company {1}" msgstr "الموظف {0} لا ينتمي إلى الشركة {1}" -#: erpnext/manufacturing/doctype/job_card/job_card.py:376 +#: erpnext/manufacturing/doctype/job_card/job_card.py:377 msgid "Employee {0} is currently working on another workstation. Please assign another employee." msgstr "الموظف {0} يعمل حاليًا على محطة عمل أخرى. يرجى تعيين موظف آخر." @@ -18526,7 +18551,7 @@ msgstr "" msgid "Empty" msgstr "فارغة" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:757 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:768 msgid "Empty To Delete List" msgstr "" @@ -18535,7 +18560,7 @@ msgstr "" msgid "Ems(Pica)" msgstr "إيمز (بيكا)" -#: erpnext/public/js/controllers/transaction.js:2951 +#: erpnext/public/js/controllers/transaction.js:2965 msgid "Enable {0} on the Item master to proceed with {1} inspection." msgstr "" @@ -18613,6 +18638,12 @@ msgstr "" msgid "Enable European Access" msgstr "تمكين الوصول الأوروبي" +#. Label of the enable_frappe_crm_data_synchronization (Check) field in DocType +#. 'CRM Settings' +#: erpnext/crm/doctype/crm_settings/crm_settings.json +msgid "Enable Frappe CRM Data Synchronization" +msgstr "" + #. Label of the enable_fuzzy_matching (Check) field in DocType 'Accounts #. Settings' #: erpnext/accounts/doctype/accounts_settings/accounts_settings.json @@ -18803,6 +18834,11 @@ msgstr "" msgid "Enable to apply SLA on every {0}" msgstr "تفعيل تطبيق اتفاقية مستوى الخدمة على كل {0}" +#. Description of the 'Is Transporter' (Check) field in DocType 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "Enable to make this supplier selectable as a transporter on Delivery Notes and Stock Entries" +msgstr "" + #. Description of the 'Retain Sample' (Check) field in DocType 'Item' #: erpnext/stock/doctype/item/item.json msgid "Enable to reserve a small sample from each batch for any analysis arising ahead" @@ -18873,8 +18909,8 @@ msgstr "لا يمكن أن يكون تاريخ الانتهاء قبل تاري #. Label of the end_time (Time) field in DocType 'Stock Reposting Settings' #. Label of the end_time (Time) field in DocType 'Service Day' #. Label of the end_time (Datetime) field in DocType 'Call Log' -#: erpnext/manufacturing/doctype/job_card/job_card.js:332 -#: erpnext/manufacturing/doctype/job_card/job_card.js:400 +#: erpnext/manufacturing/doctype/job_card/job_card.js:331 +#: erpnext/manufacturing/doctype/job_card/job_card.js:399 #: erpnext/manufacturing/doctype/workstation_working_hour/workstation_working_hour.json #: erpnext/stock/doctype/stock_reposting_settings/stock_reposting_settings.json #: erpnext/support/doctype/service_day/service_day.json @@ -18973,8 +19009,8 @@ msgstr "أدخل يدويًا" msgid "Enter Serial Nos" msgstr "أدخل الأرقام التسلسلية" -#: erpnext/manufacturing/doctype/job_card/job_card.js:361 -#: erpnext/manufacturing/doctype/job_card/job_card.js:423 +#: erpnext/manufacturing/doctype/job_card/job_card.js:360 +#: erpnext/manufacturing/doctype/job_card/job_card.js:422 #: erpnext/manufacturing/doctype/workstation/workstation.js:312 msgid "Enter Value" msgstr "أدخل القيمة" @@ -19067,7 +19103,7 @@ msgstr "أدخل وحدات المخزون الافتتاحي." msgid "Enter the quantity of the Item that will be manufactured from this Bill of Materials." msgstr "أدخل كمية المنتج الذي سيتم تصنيعه من قائمة المواد هذه." -#: erpnext/manufacturing/doctype/work_order/work_order.js:1230 +#: erpnext/manufacturing/doctype/work_order/work_order.js:1237 msgid "Enter the quantity to manufacture. Raw material Items will be fetched only when this is set." msgstr "أدخل الكمية المراد تصنيعها. سيتم جلب المواد الخام فقط عند تحديد هذا الخيار." @@ -19134,7 +19170,7 @@ msgstr "إرج" msgid "Error Description" msgstr "وصف خاطئ" -#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:295 +#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:307 msgid "Error Occurred" msgstr "حدث خطأ" @@ -19166,7 +19202,7 @@ msgstr "حدث خطأ أثناء ترحيل قيود الإهلاك" msgid "Error while processing deferred accounting for {0}" msgstr "حدث خطأ أثناء معالجة المحاسبة المؤجلة لـ {0}" -#: erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py:574 +#: erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py:577 msgid "Error while reposting item valuation" msgstr "حدث خطأ أثناء إعادة نشر تقييم السلعة" @@ -19180,7 +19216,7 @@ msgstr "" "\t\t\t\t\tيجب أن يكون تاريخ \"بدء الاستهلاك\" بعد {1} فترة على الأقل من تاريخ \"جاهز للاستخدام\".\n" "\t\t\t\t\tيرجى تصحيح التواريخ وفقًا لذلك." -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:971 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:980 msgid "Error: {0} is mandatory field" msgstr "الخطأ: {0} هو حقل إلزامي" @@ -19248,7 +19284,7 @@ msgstr "مثال: ABCD. #####. إذا تم ضبط المسلسل ولم يتم msgid "Example: If the transaction amount is 200, then this will be calculated as {} = {}" msgstr "" -#: erpnext/stock/stock_ledger.py:2301 +#: erpnext/stock/stock_ledger.py:2290 msgid "Example: Serial No {0} reserved in {1}." msgstr "مثال: الرقم التسلسلي {0} محجوز في {1}." @@ -19258,15 +19294,19 @@ msgstr "مثال: الرقم التسلسلي {0} محجوز في {1}." msgid "Exception Budget Approver Role" msgstr "دور الموافقة على الموازنة الاستثنائية" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1028 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1031 msgid "Excess Disassembly" msgstr "" +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1325 +msgid "Excess Material Transfer" +msgstr "" + #: erpnext/manufacturing/report/work_order_consumed_materials/work_order_consumed_materials.js:55 msgid "Excess Materials Consumed" msgstr "المواد الزائدة المستهلكة" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1153 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1154 msgid "Excess Transfer" msgstr "التحويل الزائد" @@ -19614,7 +19654,7 @@ msgstr "القيمة المتوقعة بعد حياة مفيدة" msgid "Expense" msgstr "نفقة" -#: erpnext/controllers/stock_controller.py:939 +#: erpnext/controllers/stock_controller.py:942 msgid "Expense / Difference account ({0}) must be a 'Profit or Loss' account" msgstr "حساب نفقات / قروق ({0}) يجب ان يكون حساب ارباح و خسائر" @@ -19660,7 +19700,7 @@ msgstr "حساب نفقات / قروق ({0}) يجب ان يكون حساب ار msgid "Expense Account" msgstr "حساب النفقات" -#: erpnext/controllers/stock_controller.py:919 +#: erpnext/controllers/stock_controller.py:922 msgid "Expense Account Missing" msgstr "حساب المصاريف مفقود" @@ -19785,7 +19825,7 @@ msgstr "سجل العمل الخارجي" msgid "Extra Consumed Qty" msgstr "كمية إضافية مستهلكة" -#: erpnext/manufacturing/doctype/job_card/job_card.py:263 +#: erpnext/manufacturing/doctype/job_card/job_card.py:264 msgid "Extra Job Card Quantity" msgstr "عدد بطاقات العمل الإضافية" @@ -20040,6 +20080,11 @@ msgstr "جلب BOM انفجرت (بما في ذلك المجالس الفرعي msgid "Fetch valuation rate for internal Transaction" msgstr "" +#. Description of the 'Price List' (Link) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Fetched automatically on sales orders and invoices for this customer." +msgstr "" + #: erpnext/selling/page/point_of_sale/pos_item_details.js:457 msgid "Fetched only {0} available serial numbers." msgstr "تم جلب {0} من الأرقام التسلسلية المتاحة فقط." @@ -20053,7 +20098,7 @@ msgid "Fetching Sales Orders..." msgstr "جلب طلبات المبيعات..." #: erpnext/accounts/doctype/dunning/dunning.js:135 -#: erpnext/public/js/controllers/transaction.js:1597 +#: erpnext/public/js/controllers/transaction.js:1611 msgid "Fetching exchange rates ..." msgstr "جلب أسعار الصرف ..." @@ -20091,15 +20136,15 @@ msgstr "" msgid "Fields will be copied over only at time of creation." msgstr "سيتم نسخ الحقول فقط في وقت الإنشاء." -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1069 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1080 msgid "File does not belong to this Transaction Deletion Record" msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1063 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1074 msgid "File not found" msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1077 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1088 msgid "File not found on server" msgstr "" @@ -20340,7 +20385,7 @@ msgstr "تم الانتهاء من المنتج بنجاح." #. Service Item' #. Label of the fg_item (Link) field in DocType 'Subcontracting Order Service #. Item' -#: erpnext/public/js/utils.js:922 +#: erpnext/public/js/utils.js:939 #: erpnext/subcontracting/doctype/subcontracting_inward_order_service_item/subcontracting_inward_order_service_item.json #: erpnext/subcontracting/doctype/subcontracting_order_service_item/subcontracting_order_service_item.json msgid "Finished Good Item" @@ -20353,7 +20398,7 @@ msgstr "منتج نهائي جيد" msgid "Finished Good Item Code" msgstr "انتهى رمز السلعة جيدة" -#: erpnext/public/js/utils.js:940 +#: erpnext/public/js/utils.js:957 msgid "Finished Good Item Qty" msgstr "الكمية من المنتج النهائي" @@ -20461,11 +20506,11 @@ msgstr "مستودع البضائع الجاهزة" msgid "Finished Goods based Operating Cost" msgstr "تكلفة التشغيل بناءً على المنتجات النهائية" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1968 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2026 msgid "Finished Item {0} does not match with Work Order {1}" msgstr "المنتج النهائي {0} لا يتطابق مع أمر العمل {1}" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1045 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1048 msgid "Finished good quantity being consumed ({0} in stock UOM) must equal the quantity to disassemble ({1}). Do not change the UOM, conversion factor or quantity of the finished good row." msgstr "" @@ -20560,10 +20605,6 @@ msgstr "النظام المالي إلزامي ، يرجى تعيين النظا msgid "Fiscal Year" msgstr "السنة المالية" -#: erpnext/public/js/utils/naming_series.js:100 -msgid "Fiscal Year (requires ERPNext to be installed)" -msgstr "" - #. Name of a DocType #: erpnext/accounts/doctype/fiscal_year_company/fiscal_year_company.json msgid "Fiscal Year Company" @@ -20718,7 +20759,7 @@ msgstr "اتبع التقويم الأشهر" msgid "Following Material Requests have been raised automatically based on Item's re-order level" msgstr "تم رفع طلبات المواد التالية تلقائيا بناء على مستوى اعادة الطلب للبنود" -#: erpnext/selling/doctype/customer/customer.py:833 +#: erpnext/selling/doctype/customer/customer.py:834 msgid "Following fields are mandatory to create address:" msgstr "الحقول التالية إلزامية لإنشاء العنوان:" @@ -20775,7 +20816,7 @@ msgstr "للشركة" msgid "For Item" msgstr "للمنتج" -#: erpnext/controllers/stock_controller.py:1598 +#: erpnext/controllers/stock_controller.py:1645 msgid "For Item {0} cannot be received more than {1} qty against the {2} {3}" msgstr "لا يمكن استلام أكثر من الكمية {1} من المنتج {0} مقابل الكمية {2} {3}" @@ -20785,14 +20826,14 @@ msgid "For Job Card" msgstr "للحصول على بطاقة العمل" #. Label of the for_operation (Link) field in DocType 'Job Card' -#: erpnext/manufacturing/doctype/job_card/job_card.js:465 +#: erpnext/manufacturing/doctype/job_card/job_card.js:464 #: erpnext/manufacturing/doctype/job_card/job_card.json msgid "For Operation" msgstr "للتشغيل" #: banking/src/pages/BankStatementImporter.tsx:172 msgid "For PDF statements, we auto-detect the tables on each page. You can then confirm each detected table, map its columns, and exclude anything that is not transactions (e.g. ads or summaries). Password-protected PDFs are supported - the password is saved on the bank account and reused." -msgstr "" +msgstr "بالنسبة لبيانات PDF، نقوم بالكشف التلقائي عن الجداول في كل صفحة. يمكنك بعد ذلك تأكيد كل جدول تم اكتشافه، وتعيين أعمدته، واستبعاد أي شيء لا يمثل معاملات (مثل الإعلانات أو الملخصات). يتم دعم ملفات PDF المحمية بكلمة مرور - يتم حفظ كلمة المرور في الحساب البنكي وإعادة استخدامها." #. Label of the for_price_list (Link) field in DocType 'Pricing Rule' #. Label of the for_price_list (Link) field in DocType 'Promotional Scheme @@ -20809,7 +20850,7 @@ msgstr "لائحة الأسعار" msgid "For Production" msgstr "للإنتاج" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:995 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:998 msgid "For Quantity (Manufactured Qty) is mandatory" msgstr "للكمية (الكمية المصنعة) إلزامية\\n
\\nFor Quantity (Manufactured Qty) is mandatory" @@ -20903,7 +20944,7 @@ msgstr "" msgid "For operation {0} at row {1}, please add raw materials or set a BOM against it." msgstr "" -#: erpnext/manufacturing/doctype/work_order/work_order.py:2805 +#: erpnext/manufacturing/doctype/work_order/work_order.py:2837 msgid "For operation {0}: Quantity ({1}) can not be greater than pending quantity({2})" msgstr "بالنسبة للعملية {0}: لا يمكن أن تكون الكمية ({1}) أكبر من الكمية المعلقة ({2})." @@ -20920,7 +20961,7 @@ msgstr "" msgid "For projected and forecast quantities, the system will consider all child warehouses under the selected parent warehouse." msgstr "بالنسبة للكميات المتوقعة والمتنبأ بها، سيأخذ النظام في الاعتبار جميع المستودعات الفرعية التابعة للمستودع الرئيسي المحدد." -#: erpnext/stock/doctype/stock_entry/stock_entry.py:2000 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2058 msgid "For quantity {0} should not be greater than allowed quantity {1}" msgstr "يجب ألا تتجاوز الكمية {0} الكمية المسموح بها {1}" @@ -20929,8 +20970,8 @@ msgstr "يجب ألا تتجاوز الكمية {0} الكمية المسموح msgid "For reference" msgstr "للرجوع إليها" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1536 -#: erpnext/public/js/controllers/accounts.js:204 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1545 +#: erpnext/public/js/controllers/accounts.js:201 msgid "For row {0} in {1}. To include {2} in Item rate, rows {3} must also be included" msgstr "بالنسبة للصف {0} في {1}، يجب تضمين الصف {2} في سعر الصنف. لإضافة الصف {3} إلى سعر الصنف، يجب أيضًا إضافة الصف {3}." @@ -20953,16 +20994,16 @@ msgstr "بالنسبة لشرط "تطبيق القاعدة على أخرى& msgid "For the convenience of customers, these codes can be used in print formats like Invoices and Delivery Notes" msgstr "لتسهيل الأمر على العملاء، يمكن استخدام هذه الرموز في نماذج الطباعة مثل الفواتير وإشعارات التسليم." -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1253 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1258 msgid "For the item {0}, the consumed quantity should be {1} according to the BOM {2}." msgstr "" -#: erpnext/public/js/controllers/transaction.js:1407 +#: erpnext/public/js/controllers/transaction.js:1421 msgctxt "Clear payment terms template and/or payment schedule when due date is changed" msgid "For the new {0} to take effect, would you like to clear the current {1}?" msgstr "" -#: erpnext/controllers/stock_controller.py:440 +#: erpnext/controllers/stock_controller.py:443 msgid "For the {0}, no stock is available for the return in the warehouse {1}." msgstr "بالنسبة لـ {0}، لا يوجد مخزون متاح للإرجاع في المستودع {1}." @@ -21045,6 +21086,21 @@ msgstr "مشاركات المنتدى" msgid "Forum URL" msgstr "رابط المنتدى" +#. Label of the frappe_crm_section (Section Break) field in DocType 'CRM +#. Settings' +#: erpnext/crm/doctype/crm_settings/crm_settings.json +msgid "Frappe CRM" +msgstr "" + +#. Name of a DocType +#: erpnext/crm/doctype/frappe_crm_allowed_user/frappe_crm_allowed_user.json +msgid "Frappe CRM Allowed User" +msgstr "" + +#: erpnext/crm/frappe_crm_api.py:169 +msgid "Frappe CRM data synchronization is not enabled on ERPNext. Contact System Manager of ERPNext." +msgstr "" + #: erpnext/setup/install.py:235 msgid "Frappe School" msgstr "مدرسة فرابيه" @@ -21414,9 +21470,15 @@ msgstr "(من القيمة) يجب أن تكون أقل من (الي القيم #. Label of the freeze_account (Select) field in DocType 'Account' #: erpnext/accounts/doctype/account/account.json +#: erpnext/buying/doctype/supplier/supplier_list.js:9 msgid "Frozen" msgstr "مجمد" +#. Description of the 'Is Frozen' (Check) field in DocType 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "Frozen suppliers block ledger entries until unfrozen. Use this to temporarily lock accounting activity without disabling the supplier." +msgstr "" + #. Label of the fuel_type (Select) field in DocType 'Vehicle' #: erpnext/setup/doctype/vehicle/vehicle.json msgid "Fuel Type" @@ -21719,6 +21781,11 @@ msgstr "مقارنة بين دفتر الأستاذ العام ودفتر الأ msgid "General and Payment Ledger mismatch" msgstr "عدم تطابق بين دفتر الأستاذ العام ودفتر الأستاذ الخاص بالمدفوعات" +#. Description of the 'Supplier Details' (Text) field in DocType 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "General information about your Supplier" +msgstr "" + #. Label of the generate_demand (Button) field in DocType 'Sales Forecast' #: erpnext/manufacturing/doctype/sales_forecast/sales_forecast.json msgid "Generate Demand" @@ -21757,7 +21824,7 @@ msgstr "إنشاء قيد إغلاق المخزون" msgid "Generate To Delete List" msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:472 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:483 msgid "Generate To Delete list first" msgstr "" @@ -21816,7 +21883,7 @@ msgstr "استعد توازنك" msgid "Get Current Stock" msgstr "الحصول على المخزون الحالي" -#: erpnext/selling/doctype/customer/customer.js:189 +#: erpnext/selling/doctype/customer/customer.js:190 msgid "Get Customer Group Details" msgstr "احصل على تفاصيل مجموعة العملاء" @@ -21998,6 +22065,10 @@ msgstr "احصل على الأسهم" msgid "Get Sub Assembly Items" msgstr "الحصول على عناصر التجميع الفرعية" +#: erpnext/buying/doctype/supplier/supplier.js:151 +msgid "Get Supplier Group Details" +msgstr "" + #: erpnext/buying/doctype/request_for_quotation/request_for_quotation.js:461 #: erpnext/buying/doctype/request_for_quotation/request_for_quotation.js:481 msgid "Get Suppliers" @@ -22094,7 +22165,7 @@ msgstr "البضائع في العبور" msgid "Goods Transferred" msgstr "نقل البضائع" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:2569 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2627 msgid "Goods are already received against the outward entry {0}" msgstr "تم استلام البضائع بالفعل مقابل الإدخال الخارجي {0}" @@ -22274,7 +22345,7 @@ msgstr "" msgid "Grant Commission" msgstr "لجنة المنح" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:890 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:899 msgid "Greater Than Amount" msgstr "أكبر من المبلغ" @@ -22715,7 +22786,7 @@ msgstr "يساعدك ذلك على توزيع الميزانية/الهدف عل msgid "Here are the error logs for the aforementioned failed depreciation entries: {0}" msgstr "فيما يلي سجلات الأخطاء الخاصة بإدخالات الإهلاك الفاشلة المذكورة أعلاه: {0}" -#: erpnext/stock/stock_ledger.py:2023 +#: erpnext/stock/stock_ledger.py:2012 msgid "Here are the options to proceed:" msgstr "فيما يلي الخيارات المتاحة للمتابعة:" @@ -22743,7 +22814,7 @@ msgstr "هنا، يتم ملء أيام إجازاتك الأسبوعية مسب msgid "Hertz" msgstr "هيرتز" -#: erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py:576 +#: erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py:579 msgid "Hi," msgstr "أهلاً،" @@ -22779,7 +22850,7 @@ msgstr "إخفاء إذا كان الصفر" msgid "Hide Images" msgstr "إخفاء الصور" -#: erpnext/selling/page/point_of_sale/pos_controller.js:270 +#: erpnext/selling/page/point_of_sale/pos_controller.js:261 msgid "Hide Recent Orders" msgstr "إخفاء الطلبات الأخيرة" @@ -23093,6 +23164,12 @@ msgstr "" msgid "If checked, picked qty won't automatically be fulfilled on submit of pick list." msgstr "في حال تم تحديد هذا الخيار، لن يتم تنفيذ الكمية المختارة تلقائيًا عند إرسال قائمة الاختيار." +#. Description of the 'Allocate Full Amount to Stock Items' (Check) field in +#. DocType 'Purchase Taxes and Charges' +#: erpnext/accounts/doctype/purchase_taxes_and_charges/purchase_taxes_and_charges.json +msgid "If checked, the entire amount (e.g. Freight) is allocated to the valuation of stock & asset items only. If unchecked, the amount is distributed across all items and the portion belonging to non-stock items is not added to valuation." +msgstr "" + #. Description of the 'Considered In Paid Amount' (Check) field in DocType #. 'Purchase Taxes and Charges' #. 'Sales Taxes and Charges' @@ -23354,15 +23431,15 @@ msgstr "" msgid "If no taxes are set, and Taxes and Charges Template is selected, the system will automatically apply the taxes from the chosen template." msgstr "إذا لم يتم تحديد أي ضرائب، وتم اختيار نموذج الضرائب والرسوم، فسيقوم النظام تلقائيًا بتطبيق الضرائب من النموذج المختار." -#: erpnext/stock/stock_ledger.py:2033 +#: erpnext/stock/stock_ledger.py:2022 msgid "If not, you can Cancel / Submit this entry" msgstr "وإلا يمكنك إلغاء / إرسال هذا الإدخال" -#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.js:197 +#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.js:194 msgid "If party does not exist, create it using the Customer Name field." msgstr "" -#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.js:198 +#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.js:195 msgid "If party does not exist, create it using the Supplier Name field." msgstr "" @@ -23380,13 +23457,18 @@ msgstr "" msgid "If selected Pricing Rule is made for 'Rate', it will overwrite Price List. Pricing Rule rate is the final rate, so no further discount should be applied. Hence, in transactions like Sales Order, Purchase Order etc, it will be fetched in 'Rate' field, rather than 'Price List Rate' field." msgstr "إذا تم تحديد قاعدة تسعير لحقل \"السعر\"، فسيتم استبدال قائمة الأسعار بها. سعر قاعدة التسعير هو السعر النهائي، لذا لا ينبغي تطبيق أي خصم إضافي. وبالتالي، في معاملات مثل أوامر البيع وأوامر الشراء، سيتم جلب السعر في حقل \"السعر\" بدلاً من حقل \"سعر قائمة الأسعار\"." +#. Description of the 'Default Accounts' (Table) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "If set, accounting entries for this customer will post to these accounts instead of the company default." +msgstr "" + #. Description of the 'Fixed Outgoing Email Account' (Link) field in DocType #. 'Buying Settings' #: erpnext/buying/doctype/buying_settings/buying_settings.json msgid "If set, the system does not use the user's Email or the standard outgoing Email account for sending request for quotations." msgstr "في حال تم ضبط هذا الخيار، فإن النظام لا يستخدم بريد المستخدم الإلكتروني أو حساب البريد الإلكتروني الصادر القياسي لإرسال طلبات عروض الأسعار." -#: erpnext/manufacturing/doctype/work_order/work_order.js:1263 +#: erpnext/manufacturing/doctype/work_order/work_order.js:1270 msgid "If the BOM results in Scrap material, the Scrap Warehouse needs to be selected." msgstr "إذا نتج عن قائمة المواد مواد خردة، فيجب تحديد مستودع الخردة." @@ -23395,7 +23477,7 @@ msgstr "إذا نتج عن قائمة المواد مواد خردة، فيجب msgid "If the account is frozen, entries are allowed to restricted users." msgstr "إذا الحساب مجمد، يسمح بالدخول إلى المستخدمين المحددين." -#: erpnext/stock/stock_ledger.py:2026 +#: erpnext/stock/stock_ledger.py:2015 msgid "If the item is transacting as a Zero Valuation Rate item in this entry, please enable 'Allow Zero Valuation Rate' in the {0} Item table." msgstr "إذا كان العنصر يتعامل كعنصر سعر تقييم صفري في هذا الإدخال ، فالرجاء تمكين "السماح بمعدل تقييم صفري" في جدول العناصر {0}." @@ -23405,7 +23487,7 @@ msgstr "إذا كان العنصر يتعامل كعنصر سعر تقييم ص msgid "If the reorder check is set at the Group warehouse level, the available quantity becomes the sum of the projected quantities of all its child warehouses." msgstr "إذا تم تعيين فحص إعادة الطلب على مستوى مستودع المجموعة، فإن الكمية المتاحة تصبح مجموع الكميات المتوقعة لجميع المستودعات الفرعية التابعة لها." -#: erpnext/manufacturing/doctype/work_order/work_order.js:1282 +#: erpnext/manufacturing/doctype/work_order/work_order.js:1289 msgid "If the selected BOM has Operations mentioned in it, the system will fetch all Operations from BOM, these values can be changed." msgstr "إذا كانت قائمة المواد المحددة تحتوي على عمليات مذكورة فيها، فسيقوم النظام بجلب جميع العمليات من قائمة المواد، ويمكن تغيير هذه القيم." @@ -23712,7 +23794,7 @@ msgstr "استيراد صيغة MT940" msgid "Import Successful" msgstr "استيراد ناجح" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:564 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:575 msgid "Import Summary" msgstr "" @@ -24295,7 +24377,7 @@ msgstr "تسجيل دخول غير صحيح (مجموعة) إلى مستودع msgid "Incorrect Company" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1260 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1265 msgid "Incorrect Component Quantity" msgstr "كمية المكونات غير صحيحة" @@ -24505,14 +24587,14 @@ msgstr "بدأت" msgid "Inspected By" msgstr "تفتيش من قبل" -#: erpnext/controllers/stock_controller.py:1492 -#: erpnext/manufacturing/doctype/job_card/job_card.py:833 +#: erpnext/controllers/stock_controller.py:1539 +#: erpnext/manufacturing/doctype/job_card/job_card.py:834 msgid "Inspection Rejected" msgstr "تم رفض التفتيش" #. Label of the inspection_required (Check) field in DocType 'Stock Entry' -#: erpnext/controllers/stock_controller.py:1462 -#: erpnext/controllers/stock_controller.py:1464 +#: erpnext/controllers/stock_controller.py:1509 +#: erpnext/controllers/stock_controller.py:1511 #: erpnext/stock/doctype/stock_entry/stock_entry.json msgid "Inspection Required" msgstr "التفتيش مطلوب" @@ -24529,8 +24611,8 @@ msgstr "التفتيش المطلوبة قبل تسليم" msgid "Inspection Required before Purchase" msgstr "التفتيش المطلوبة قبل الشراء" -#: erpnext/controllers/stock_controller.py:1477 -#: erpnext/manufacturing/doctype/job_card/job_card.py:814 +#: erpnext/controllers/stock_controller.py:1524 +#: erpnext/manufacturing/doctype/job_card/job_card.py:815 msgid "Inspection Submission" msgstr "طلب فحص" @@ -24601,9 +24683,9 @@ msgstr "سعة غير كافية" #: erpnext/controllers/accounts_controller.py:3879 #: erpnext/controllers/accounts_controller.py:3901 -#: erpnext/controllers/accounts_controller.py:4421 -#: erpnext/controllers/accounts_controller.py:4427 -#: erpnext/controllers/accounts_controller.py:4449 +#: erpnext/controllers/accounts_controller.py:4419 +#: erpnext/controllers/accounts_controller.py:4425 +#: erpnext/controllers/accounts_controller.py:4447 msgid "Insufficient Permissions" msgstr "أذونات غير كافية" @@ -24611,13 +24693,13 @@ msgstr "أذونات غير كافية" #: erpnext/stock/doctype/pick_list/pick_list.py:148 #: erpnext/stock/doctype/pick_list/pick_list.py:166 #: erpnext/stock/doctype/pick_list/pick_list.py:1093 -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1232 -#: erpnext/stock/serial_batch_bundle.py:1225 erpnext/stock/stock_ledger.py:1714 -#: erpnext/stock/stock_ledger.py:2192 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1235 +#: erpnext/stock/serial_batch_bundle.py:1225 erpnext/stock/stock_ledger.py:1703 +#: erpnext/stock/stock_ledger.py:2181 msgid "Insufficient Stock" msgstr "المالية غير كافية" -#: erpnext/stock/stock_ledger.py:2207 +#: erpnext/stock/stock_ledger.py:2196 msgid "Insufficient Stock for Batch" msgstr "المخزون غير كافٍ للدفعة" @@ -24770,7 +24852,7 @@ msgstr "داخلي" msgid "Internal Customer Accounting" msgstr "" -#: erpnext/selling/doctype/customer/customer.py:255 +#: erpnext/selling/doctype/customer/customer.py:256 msgid "Internal Customer for company {0} already exists" msgstr "يوجد بالفعل عميل داخلي للشركة {0}" @@ -24793,7 +24875,7 @@ msgstr "رقم مرجع المبيعات الداخلي مفقود" #. Label of the internal_supplier_section (Section Break) field in DocType #. 'Supplier' #: erpnext/buying/doctype/supplier/supplier.json -msgid "Internal Supplier Accounting" +msgid "Internal Supplier Details" msgstr "" #: erpnext/buying/doctype/supplier/supplier.py:181 @@ -24835,7 +24917,12 @@ msgstr "التحويلات الداخلية" msgid "Internal Work History" msgstr "سجل العمل الداخلي" -#: erpnext/controllers/stock_controller.py:1559 +#. Description of the 'Customer Details' (Text) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Internal notes about this customer. Not visible on transactions or the portal." +msgstr "" + +#: erpnext/controllers/stock_controller.py:1606 msgid "Internal transfers can only be done in company's default currency" msgstr "لا يمكن إجراء التحويلات الداخلية إلا بالعملة الافتراضية للشركة" @@ -24851,8 +24938,8 @@ msgstr "يجب أن تكون الفترة الزمنية بين 1 و 59 دقيق #: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:384 #: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:392 -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1060 -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1070 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1067 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1077 #: erpnext/assets/doctype/asset_category/asset_category.py:69 #: erpnext/assets/doctype/asset_category/asset_category.py:97 #: erpnext/controllers/accounts_controller.py:3225 @@ -24890,11 +24977,11 @@ msgstr "" msgid "Invalid Barcode. There is no Item attached to this barcode." msgstr "الباركود غير صالح. لا يوجد عنصر مرفق بهذا الرمز الشريطي." -#: erpnext/public/js/controllers/transaction.js:3163 +#: erpnext/public/js/controllers/transaction.js:3177 msgid "Invalid Blanket Order for the selected Customer and Item" msgstr "طلب فارغ غير صالح للعميل والعنصر المحدد" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:498 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:509 msgid "Invalid CSV format. Expected column: doctype_name" msgstr "" @@ -24906,7 +24993,7 @@ msgstr "إجراء الطفل غير صالح" msgid "Invalid Company Field" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2405 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2412 msgid "Invalid Company for Inter Company Transaction." msgstr "شركة غير صالحة للمعاملات بين الشركات." @@ -24916,7 +25003,7 @@ msgstr "شركة غير صالحة للمعاملات بين الشركات." msgid "Invalid Cost Center" msgstr "مركز تكلفة غير صالح" -#: erpnext/selling/doctype/customer/customer.py:368 +#: erpnext/selling/doctype/customer/customer.py:369 msgid "Invalid Customer Group" msgstr "" @@ -24924,12 +25011,12 @@ msgstr "" msgid "Invalid Delivery Date" msgstr "تاريخ تسليم غير صالح" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1084 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1087 msgid "Invalid Disassembly Item" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1050 -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1099 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1053 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1102 msgid "Invalid Disassembly Quantity" msgstr "" @@ -24937,7 +25024,7 @@ msgstr "" msgid "Invalid Discount" msgstr "خصم غير صالح" -#: erpnext/controllers/taxes_and_totals.py:853 +#: erpnext/controllers/taxes_and_totals.py:856 msgid "Invalid Discount Amount" msgstr "مبلغ الخصم غير صالح" @@ -25057,12 +25144,12 @@ msgstr "جدول غير صالح" msgid "Invalid Selling Price" msgstr "سعر البيع غير صالح" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:2043 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2101 msgid "Invalid Serial and Batch Bundle" msgstr "رقم تسلسلي وحزمة دفعات غير صالحة" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1294 -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1316 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1352 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1374 msgid "Invalid Source and Target Warehouse" msgstr "مصدر ومستودع هدف غير صالحين" @@ -25091,7 +25178,7 @@ msgstr "مبلغ غير صالح في القيود المحاسبية لـ {} {} msgid "Invalid condition expression" msgstr "تعبير شرط غير صالح" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1058 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1069 msgid "Invalid file URL" msgstr "" @@ -25146,7 +25233,7 @@ msgstr "قيمة غير صالحة {0} للحساب {1} مقابل الحساب msgid "Invalid {0}" msgstr "غير صالح {0}" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2403 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2410 msgid "Invalid {0} for Inter Company Transaction." msgstr "غير صالح {0} للمعاملات بين الشركات." @@ -25170,7 +25257,7 @@ msgstr "عملة حساب المخزون" #. Label of a Workspace Sidebar Item #: erpnext/patches/v15_0/refactor_closing_stock_balance.py:43 #: erpnext/stock/doctype/inventory_dimension/inventory_dimension.json -#: erpnext/stock/doctype/inventory_dimension/inventory_dimension.py:184 +#: erpnext/stock/doctype/inventory_dimension/inventory_dimension.py:178 #: erpnext/workspace_sidebar/stock.json msgid "Inventory Dimension" msgstr "بُعد المخزون" @@ -25381,7 +25468,7 @@ msgstr "الكمية المفوترة" #: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.json #: erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.json #: erpnext/accounts/doctype/pos_profile/pos_profile.json -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2454 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2461 #: erpnext/buying/doctype/supplier/supplier.json #: erpnext/selling/report/payment_terms_status_for_sales_order/payment_terms_status_for_sales_order.py:62 msgid "Invoices" @@ -26061,7 +26148,7 @@ msgstr "تاريخ الإصدار" msgid "It can take upto few hours for accurate stock values to be visible after merging items." msgstr "قد يستغرق الأمر بضع ساعات حتى تظهر قيم المخزون الدقيقة بعد دمج العناصر." -#: erpnext/public/js/controllers/transaction.js:2544 +#: erpnext/public/js/controllers/transaction.js:2558 msgid "It is needed to fetch Item Details." msgstr "هناك حاجة لجلب تفاصيل البند." @@ -26127,7 +26214,7 @@ msgstr "نص مائل للمجاميع الفرعية أو الملاحظات" #: erpnext/buying/report/supplier_quotation_comparison/supplier_quotation_comparison.js:33 #: erpnext/buying/report/supplier_quotation_comparison/supplier_quotation_comparison.py:204 #: erpnext/buying/workspace/buying/buying.json -#: erpnext/controllers/taxes_and_totals.py:1262 +#: erpnext/controllers/taxes_and_totals.py:1248 #: erpnext/manufacturing/doctype/blanket_order/blanket_order.json #: erpnext/manufacturing/doctype/bom/bom.js:1088 #: erpnext/manufacturing/doctype/plant_floor/plant_floor.js:109 @@ -26233,7 +26320,7 @@ msgstr "صنف رقم 5" #. Label of a Link in the Stock Workspace #. Label of a Workspace Sidebar Item #: erpnext/stock/doctype/item_alternative/item_alternative.json -#: erpnext/stock/report/item_where_used/item_where_used.py:410 +#: erpnext/stock/report/item_where_used/item_where_used.py:408 #: erpnext/stock/workspace/stock/stock.json #: erpnext/workspace_sidebar/stock.json msgid "Item Alternative" @@ -26431,10 +26518,10 @@ msgstr "سلة التسوق" #: erpnext/manufacturing/report/quality_inspection_summary/quality_inspection_summary.py:86 #: erpnext/manufacturing/report/work_order_stock_report/work_order_stock_report.py:119 #: erpnext/projects/doctype/timesheet/timesheet.js:214 -#: erpnext/public/js/controllers/transaction.js:2838 +#: erpnext/public/js/controllers/transaction.js:2852 #: erpnext/public/js/stock_reservation.js:112 -#: erpnext/public/js/stock_reservation.js:318 erpnext/public/js/utils.js:579 -#: erpnext/public/js/utils.js:736 +#: erpnext/public/js/stock_reservation.js:318 erpnext/public/js/utils.js:596 +#: erpnext/public/js/utils.js:753 #: erpnext/public/js/utils/serial_no_batch_selector.js:96 #: erpnext/regional/doctype/import_supplier_invoice/import_supplier_invoice.json #: erpnext/selling/doctype/delivery_schedule_item/delivery_schedule_item.json @@ -26530,7 +26617,7 @@ msgstr "لا يمكن تغيير رمز السلعة للرقم التسلسلي msgid "Item Code required at Row No {0}" msgstr "رمز العنصر المطلوب في الصف رقم {0}\\n
\\nItem Code required at Row No {0}" -#: erpnext/selling/page/point_of_sale/pos_controller.js:825 +#: erpnext/selling/page/point_of_sale/pos_controller.js:816 #: erpnext/selling/page/point_of_sale/pos_item_details.js:277 msgid "Item Code: {0} is not available under warehouse {1}." msgstr "رمز العنصر: {0} غير متوفر ضمن المستودع {1}." @@ -26907,8 +26994,8 @@ msgstr "مادة المصنع" #: erpnext/manufacturing/report/production_planning_report/production_planning_report.py:371 #: erpnext/manufacturing/report/quality_inspection_summary/quality_inspection_summary.py:92 #: erpnext/manufacturing/report/work_order_consumed_materials/work_order_consumed_materials.py:138 -#: erpnext/public/js/controllers/transaction.js:2844 -#: erpnext/public/js/utils.js:832 +#: erpnext/public/js/controllers/transaction.js:2858 +#: erpnext/public/js/utils.js:849 #: erpnext/selling/doctype/quotation_item/quotation_item.json #: erpnext/selling/doctype/sales_order/sales_order.js:1286 #: erpnext/selling/doctype/sales_order_item/sales_order_item.json @@ -27172,7 +27259,7 @@ msgstr "الصنف لتصنيع" #. Name of a DocType #: erpnext/stock/doctype/item_variant/item_variant.json -#: erpnext/stock/report/item_where_used/item_where_used.py:387 +#: erpnext/stock/report/item_where_used/item_where_used.py:385 msgid "Item Variant" msgstr "متغير الصنف" @@ -27285,7 +27372,7 @@ msgstr "تفصيل ضريبة وفقاً للصنف" msgid "Item Wise Tax Details" msgstr "تفاصيل الضرائب حسب الصنف" -#: erpnext/controllers/taxes_and_totals.py:560 +#: erpnext/controllers/taxes_and_totals.py:563 msgid "Item Wise Tax Details do not match with Taxes and Charges at the following rows:" msgstr "لا تتطابق تفاصيل الضرائب الخاصة بكل بند مع الضرائب والرسوم في الصفوف التالية:" @@ -27305,7 +27392,7 @@ msgstr "المنتج والمستودع" msgid "Item and Warranty Details" msgstr "البند والضمان تفاصيل" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:3757 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:3815 msgid "Item for row {0} does not match Material Request" msgstr "عنصر الصف {0} لا يتطابق مع طلب المواد" @@ -27339,7 +27426,7 @@ msgstr "عملية الصنف" msgid "Item qty can not be updated as raw materials are already processed." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1440 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1498 msgid "Item rate has been updated to zero as Allow Zero Valuation Rate is checked for item {0}" msgstr "تم تحديث سعر السلعة إلى الصفر حيث تم تحديد خيار \"السماح بسعر تقييم صفري\" للسلعة {0}" @@ -27387,7 +27474,7 @@ msgstr "العنصر {0} غير موجود\\n
\\nItem {0} does not exist" msgid "Item {0} does not exist in the system or has expired" msgstr "الصنف{0} غير موجود في النظام أو انتهت صلاحيته" -#: erpnext/controllers/stock_controller.py:554 +#: erpnext/controllers/stock_controller.py:557 msgid "Item {0} does not exist." msgstr "العنصر {0} غير موجود\\n
\\nItem {0} does not exist." @@ -27451,7 +27538,7 @@ msgstr "العنصر {0} ليس عنصرًا متعاقدًا عليه من ال msgid "Item {0} is not a template item." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:2481 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2539 msgid "Item {0} is not active or end of life has been reached" msgstr "البند {0} غير نشط أو تم التوصل إلى نهاية الحياة" @@ -27471,7 +27558,7 @@ msgstr "البند {0} يجب أن يكون عنصر التعاقد الفرعي msgid "Item {0} must be a non-stock item" msgstr "الصنف {0} يجب ألا يكون صنف مخزن
Item {0} must be a non-stock item" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1781 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1839 msgid "Item {0} not found in 'Raw Materials Supplied' table in {1} {2}" msgstr "العنصر {0} غير موجود في جدول \"المواد الخام الموردة\" في {1} {2}" @@ -27487,7 +27574,7 @@ msgstr "البند {0} الكمية المطلوبة {1} لا يمكن أن تك msgid "Item {0}: {1} qty produced. " msgstr "العنصر {0}: {1} الكمية المنتجة." -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:1218 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:1334 msgid "Item {} does not exist." msgstr "العنصر {} غير موجود." @@ -27581,11 +27668,11 @@ msgstr "اصناف يمكن طلبه" msgid "Items and Pricing" msgstr "السلع والتسعيرات" -#: erpnext/controllers/accounts_controller.py:4235 +#: erpnext/controllers/accounts_controller.py:4233 msgid "Items cannot be updated as Subcontracting Inward Order(s) exist against this Subcontracted Sales Order." msgstr "لا يمكن تحديث العناصر لوجود أوامر واردة من الباطن مرتبطة بأمر البيع هذا." -#: erpnext/controllers/accounts_controller.py:4228 +#: erpnext/controllers/accounts_controller.py:4226 msgid "Items cannot be updated as Subcontracting Order is created against the Purchase Order {0}." msgstr "لا يمكن تحديث العناصر لأن أمر التعاقد من الباطن يتم إنشاؤه مقابل أمر الشراء {0}." @@ -27597,7 +27684,7 @@ msgstr "عناصر لطلب المواد الخام" msgid "Items not found." msgstr "لم يتم العثور على العناصر." -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1436 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1494 msgid "Items rate has been updated to zero as Allow Zero Valuation Rate is checked for the following items: {0}" msgstr "تم تحديث سعر الأصناف إلى الصفر حيث تم تحديد خيار \"السماح بسعر تقييم صفري\" للأصناف التالية: {0}" @@ -27627,7 +27714,7 @@ msgstr "العناصر المراد حجزها" msgid "Items under this warehouse will be suggested" msgstr "وسيتم اقتراح العناصر الموجودة تحت هذا المستودع" -#: erpnext/controllers/stock_controller.py:163 +#: erpnext/controllers/stock_controller.py:166 msgid "Items {0} do not exist in the Item master." msgstr "العناصر {0} غير موجودة في قائمة العناصر الرئيسية." @@ -27672,7 +27759,7 @@ msgstr "القدرة الوظيفية" #: erpnext/buying/doctype/purchase_order_item/purchase_order_item.json #: erpnext/manufacturing/doctype/bom/bom.json #: erpnext/manufacturing/doctype/job_card/job_card.json -#: erpnext/manufacturing/doctype/job_card/job_card.py:1016 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1017 #: erpnext/manufacturing/doctype/operation/operation.json #: erpnext/manufacturing/doctype/work_order/work_order.js:408 #: erpnext/manufacturing/doctype/work_order/work_order.json @@ -27701,7 +27788,7 @@ msgstr "تحليل بطاقة العمل" msgid "Job Card Item" msgstr "صنف بطاقة العمل" -#: erpnext/manufacturing/doctype/job_card/job_card.py:876 +#: erpnext/manufacturing/doctype/job_card/job_card.py:877 msgid "Job Card On Hold" msgstr "" @@ -27740,7 +27827,7 @@ msgstr "سجل وقت بطاقة العمل" msgid "Job Card and Capacity Planning" msgstr "بطاقة العمل وتخطيط القدرات" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1530 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1548 msgid "Job Card {0} has been completed" msgstr "تم إكمال بطاقة العمل {0}" @@ -27815,7 +27902,7 @@ msgstr "اسم العامل" msgid "Job Worker Warehouse" msgstr "مستودع عامل التوظيف" -#: erpnext/manufacturing/doctype/work_order/work_order.py:2860 +#: erpnext/manufacturing/doctype/work_order/work_order.py:2892 msgid "Job card {0} created" msgstr "تم إنشاء بطاقة العمل {0}" @@ -28036,7 +28123,7 @@ msgstr "كيلوواط" msgid "Kilowatt-Hour" msgstr "كيلوواط ساعة" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1018 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1019 msgid "Kindly cancel the Manufacturing Entries first against the work order {0}." msgstr "يرجى إلغاء إدخالات التصنيع أولاً مقابل أمر العمل {0}." @@ -28283,7 +28370,7 @@ msgstr "خط العرض" msgid "Lead" msgstr "مبادرة البيع" -#: erpnext/crm/doctype/lead/lead.py:545 +#: erpnext/crm/doctype/lead/lead.py:546 msgid "Lead -> Prospect" msgstr "عميل محتمل -> عميل متوقع" @@ -28377,7 +28464,7 @@ msgstr "المهلة بالايام" msgid "Lead Type" msgstr "نوع الزبون المحتمل" -#: erpnext/crm/doctype/lead/lead.py:544 +#: erpnext/crm/doctype/lead/lead.py:545 msgid "Lead {0} has been added to prospect {1}." msgstr "تمت إضافة العميل المحتمل {0} إلى العميل المتوقع {1}." @@ -28516,7 +28603,7 @@ msgstr "أسطورة" msgid "Length (cm)" msgstr "الطول (سم)" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:895 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:904 msgid "Less Than Amount" msgstr "أقل من المبلغ" @@ -28575,7 +28662,7 @@ msgstr "رقم الرخصة" msgid "License Plate" msgstr "" -#: erpnext/controllers/status_updater.py:500 +#: erpnext/controllers/status_updater.py:511 msgid "Limit Crossed" msgstr "الحدود تجاوزت" @@ -28632,11 +28719,11 @@ msgstr "رابط لطلب المواد" msgid "Link to Material Requests" msgstr "رابط لطلبات المواد" -#: erpnext/buying/doctype/supplier/supplier.js:125 +#: erpnext/buying/doctype/supplier/supplier.js:164 msgid "Link with Customer" msgstr "التواصل مع العميل" -#: erpnext/selling/doctype/customer/customer.js:201 +#: erpnext/selling/doctype/customer/customer.js:203 msgid "Link with Supplier" msgstr "تواصل مع المورد" @@ -28661,16 +28748,16 @@ msgstr "الموقع المرتبط" msgid "Linked with submitted documents" msgstr "مرتبط بالوثائق المقدمة" -#: erpnext/buying/doctype/supplier/supplier.js:210 -#: erpnext/selling/doctype/customer/customer.js:279 +#: erpnext/buying/doctype/supplier/supplier.js:251 +#: erpnext/selling/doctype/customer/customer.js:281 msgid "Linking Failed" msgstr "فشل الربط" -#: erpnext/buying/doctype/supplier/supplier.js:209 +#: erpnext/buying/doctype/supplier/supplier.js:250 msgid "Linking to Customer Failed. Please try again." msgstr "فشل الاتصال بالعميل. يرجى المحاولة مرة أخرى." -#: erpnext/selling/doctype/customer/customer.js:278 +#: erpnext/selling/doctype/customer/customer.js:280 msgid "Linking to Supplier Failed. Please try again." msgstr "فشل الاتصال بالمورد. يرجى المحاولة مرة أخرى." @@ -28923,7 +29010,7 @@ msgstr "نقاط الولاء الفداء" msgid "Loyalty Points will be calculated from the spent done (via the Sales Invoice), based on collection factor mentioned." msgstr "سيتم احتساب نقاط الولاء من المبلغ المنفق (عبر فاتورة المبيعات)، بناءً على عامل التحصيل المذكور." -#: erpnext/public/js/utils.js:200 +#: erpnext/public/js/utils.js:208 msgid "Loyalty Points: {0}" msgstr "نقاط الولاء: {0}" @@ -28975,6 +29062,11 @@ msgstr "مستوى برنامج الولاء" msgid "Loyalty Program Type" msgstr "نوع برنامج الولاء" +#. Description of the 'Loyalty Program' (Link) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Loyalty scheme this customer earns points under. Auto-assigned if a matching program exists." +msgstr "" + #. Label of the mps (Link) field in DocType 'Purchase Order' #. Label of the mps (Link) field in DocType 'Work Order' #: erpnext/buying/doctype/purchase_order/purchase_order.json @@ -29262,7 +29354,7 @@ msgstr "المواد الرئيسية والاختيارية التي تم در #. Label of the make (Data) field in DocType 'Vehicle' #: erpnext/accounts/doctype/journal_entry/journal_entry.js:127 -#: erpnext/manufacturing/doctype/job_card/job_card.js:480 +#: erpnext/manufacturing/doctype/job_card/job_card.js:479 #: erpnext/manufacturing/doctype/work_order/work_order.js:851 #: erpnext/manufacturing/doctype/work_order/work_order.js:885 #: erpnext/setup/doctype/vehicle/vehicle.json @@ -29323,7 +29415,7 @@ msgstr "إنشاء رقم تسلسلي / دفعة من أمر العمل" msgid "Make Stock Entry" msgstr "جعل دخول الأسهم" -#: erpnext/manufacturing/doctype/job_card/job_card.js:369 +#: erpnext/manufacturing/doctype/job_card/job_card.js:368 msgid "Make Subcontracting PO" msgstr "إنشاء أمر شراء للتعاقد من الباطن" @@ -29382,7 +29474,13 @@ msgstr "المدير العام" msgid "Mandatory Accounting Dimension" msgstr "البعد المحاسبي الإلزامي" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1922 +#. Label of the mandatory_depends_on_backend (Small Text) field in DocType +#. 'Inventory Dimension' +#: erpnext/stock/doctype/inventory_dimension/inventory_dimension.json +msgid "Mandatory Depends On (Backend)" +msgstr "" + +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1929 msgid "Mandatory Field" msgstr "حقل إلزامي" @@ -29478,8 +29576,8 @@ msgstr "لا يمكن إنشاء الإدخال اليدوي! قم بتعطيل #: erpnext/stock/doctype/material_request_item/material_request_item.json #: erpnext/stock/doctype/purchase_receipt_item/purchase_receipt_item.json #: erpnext/stock/doctype/stock_entry/stock_entry.json -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1525 -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1541 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1583 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1599 #: erpnext/stock/doctype/stock_entry_type/stock_entry_type.json #: erpnext/subcontracting/doctype/subcontracting_order_item/subcontracting_order_item.json #: erpnext/subcontracting/doctype/subcontracting_receipt_item/subcontracting_receipt_item.json @@ -29623,7 +29721,7 @@ msgstr "تاريخ التصنيع" msgid "Manufacturing Manager" msgstr "مدير التصنيع" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:2839 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2897 msgid "Manufacturing Quantity is mandatory" msgstr "كمية التصنيع إلزامية\\n
\\nManufacturing Quantity is mandatory" @@ -29699,7 +29797,7 @@ msgstr "رسم خرائط طلبات الشراء الداخلية للتعاق msgid "Mapping Subcontracting Order ..." msgstr "تحديد ترتيب التعاقد من الباطن ..." -#: erpnext/public/js/utils.js:1067 +#: erpnext/public/js/utils.js:1084 msgid "Mapping {0} ..." msgstr "رسم الخرائط {0}..." @@ -29787,6 +29885,12 @@ msgstr "الحالة الإجتماعية" msgid "Mark As Closed" msgstr "تم إغلاق الملف" +#. Description of the 'Is Internal Customer' (Check) field in DocType +#. 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Mark if this customer represents an internal company. Enables inter-company transactions." +msgstr "" + #. Label of the market_segment (Link) field in DocType 'Lead' #. Name of a DocType #. Label of the market_segment (Data) field in DocType 'Market Segment' @@ -29866,10 +29970,6 @@ msgstr "" msgid "Matched" msgstr "" -#: erpnext/stock/report/item_where_used/item_where_used.py:57 -msgid "Matched Field" -msgstr "" - #. Label of the matched_transaction_rule (Link) field in DocType 'Bank #. Transaction' #: erpnext/accounts/doctype/bank_transaction/bank_transaction.json @@ -29896,7 +29996,7 @@ msgstr "اهلاك المواد" #. Option for the 'Purpose' (Select) field in DocType 'Stock Entry Type' #: erpnext/setup/setup_wizard/operations/install_fixtures.py:114 #: erpnext/stock/doctype/stock_entry/stock_entry.json -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1526 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1584 #: erpnext/stock/doctype/stock_entry_type/stock_entry_type.json msgid "Material Consumption for Manufacture" msgstr "اهلاك المواد للتصنيع" @@ -29972,7 +30072,7 @@ msgstr "أستلام مواد" #: erpnext/buying/report/requested_items_to_order_and_receive/requested_items_to_order_and_receive.js:33 #: erpnext/buying/report/requested_items_to_order_and_receive/requested_items_to_order_and_receive.py:184 #: erpnext/buying/workspace/buying/buying.json -#: erpnext/manufacturing/doctype/job_card/job_card.js:214 +#: erpnext/manufacturing/doctype/job_card/job_card.js:216 #: erpnext/manufacturing/doctype/production_plan/production_plan.js:159 #: erpnext/manufacturing/doctype/production_plan/production_plan.json #: erpnext/manufacturing/doctype/production_plan_item/production_plan_item.json @@ -30136,7 +30236,7 @@ msgstr "المواد المُعادة من العمل قيد التنفيذ" #. Option for the 'Purpose' (Select) field in DocType 'Pick List' #. Option for the 'Purpose' (Select) field in DocType 'Stock Entry' #. Option for the 'Purpose' (Select) field in DocType 'Stock Entry Type' -#: erpnext/manufacturing/doctype/job_card/job_card.js:225 +#: erpnext/manufacturing/doctype/job_card/job_card.js:224 #: erpnext/manufacturing/doctype/material_request_plan_item/material_request_plan_item.json #: erpnext/setup/setup_wizard/operations/install_fixtures.py:83 #: erpnext/stock/doctype/item/item.json @@ -30207,8 +30307,8 @@ msgstr "" msgid "Materials are already received against the {0} {1}" msgstr "تم استلام المواد بالفعل مقابل {0} {1}" -#: erpnext/manufacturing/doctype/job_card/job_card.py:184 -#: erpnext/manufacturing/doctype/job_card/job_card.py:854 +#: erpnext/manufacturing/doctype/job_card/job_card.py:185 +#: erpnext/manufacturing/doctype/job_card/job_card.py:855 msgid "Materials needs to be transferred to the work in progress warehouse for the job card {0}" msgstr "يجب نقل المواد إلى مستودع العمل الجاري لبطاقة العمل {0}" @@ -30309,11 +30409,11 @@ msgstr "الحد الأقصى لمبلغ الدفع" msgid "Maximum Producible Items" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:4370 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:4428 msgid "Maximum Samples - {0} can be retained for Batch {1} and Item {2}." msgstr "الحد الأقصى للعينات - {0} يمكن الاحتفاظ بالدفعة {1} والبند {2}." -#: erpnext/stock/doctype/stock_entry/stock_entry.py:4361 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:4419 msgid "Maximum Samples - {0} have already been retained for Batch {1} and Item {2} in Batch {3}." msgstr "الحد الأقصى للعينات - {0} تم الاحتفاظ به مسبقا للدفعة {1} و العنصر {2} في الدفعة {3}." @@ -30374,20 +30474,10 @@ msgstr "ميغا جول" msgid "Megawatt" msgstr "ميغاواط" -#: erpnext/stock/stock_ledger.py:2039 +#: erpnext/stock/stock_ledger.py:2028 msgid "Mention Valuation Rate in the Item master." msgstr "اذكر معدل التقييم في مدير السلعة." -#. Description of the 'Accounts' (Table) field in DocType 'Customer' -#: erpnext/selling/doctype/customer/customer.json -msgid "Mention if non-standard Receivable account" -msgstr "يرجى ذكر ما إذا كان حساب المستحقات غير قياسي" - -#. Description of the 'Accounts' (Table) field in DocType 'Supplier' -#: erpnext/buying/doctype/supplier/supplier.json -msgid "Mention if non-standard payable account" -msgstr "أذكر إذا كان الحساب غير القياسي مستحق الدفع" - #. Description of the 'Accounts' (Table) field in DocType 'Customer Group' #. Description of the 'Accounts' (Table) field in DocType 'Supplier Group' #: erpnext/setup/doctype/customer_group/customer_group.json @@ -30419,7 +30509,7 @@ msgstr "دمج التقدم" msgid "Merge similar Account Heads" msgstr "" -#: erpnext/public/js/utils.js:1099 +#: erpnext/public/js/utils.js:1116 msgid "Merge taxes from multiple documents" msgstr "دمج الضرائب من وثائق متعددة" @@ -30760,19 +30850,19 @@ msgstr "" msgid "Miscellaneous Expenses" msgstr "نفقات متنوعة" -#: erpnext/controllers/buying_controller.py:715 +#: erpnext/controllers/buying_controller.py:778 msgid "Mismatch" msgstr "عدم تطابق" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:1219 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:1335 msgid "Missing" msgstr "مفتقد" #: erpnext/accounts/doctype/pos_opening_entry/pos_opening_entry.py:97 #: erpnext/accounts/doctype/pos_profile/pos_profile.py:200 #: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:593 -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2471 -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:3087 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2478 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:3094 #: erpnext/assets/doctype/asset_category/asset_category.py:116 msgid "Missing Account" msgstr "حساب مفقود" @@ -30802,7 +30892,7 @@ msgstr "فلاتر مفقودة" msgid "Missing Finance Book" msgstr "كتاب التمويل المفقود" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1978 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2036 msgid "Missing Finished Good" msgstr "مفقود، تم الانتهاء منه، جيد" @@ -30810,7 +30900,7 @@ msgstr "مفقود، تم الانتهاء منه، جيد" msgid "Missing Formula" msgstr "الصيغة المفقودة" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1267 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1272 msgid "Missing Item" msgstr "العنصر المفقود" @@ -31088,11 +31178,11 @@ msgstr "" msgid "Multiple Accounts (Journal Template)" msgstr "" -#: erpnext/selling/doctype/customer/customer.py:439 +#: erpnext/selling/doctype/customer/customer.py:440 msgid "Multiple Loyalty Programs found for Customer {}. Please select manually." msgstr "تم العثور على عدة برامج ولاء للعميل {}. يرجى الاختيار يدويًا." -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1234 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1241 msgid "Multiple POS Opening Entry" msgstr "إدخال بيانات فتح نقاط البيع المتعددة" @@ -31118,7 +31208,7 @@ msgstr "" msgid "Multiple fiscal years exist for the date {0}. Please set company in Fiscal Year" msgstr "يوجد سنوات مالية متعددة لنفس التاريخ {0}. الرجاء تحديد الشركة لهذه السنة المالية\\n
\\nMultiple fiscal years exist for the date {0}. Please set company in Fiscal Year" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1985 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2043 msgid "Multiple items cannot be marked as finished item" msgstr "لا يمكن وضع علامة \"منتج نهائي\" على عدة عناصر" @@ -31130,7 +31220,7 @@ msgstr "موسيقى" #: erpnext/manufacturing/doctype/work_order/work_order.py:1510 #: erpnext/setup/doctype/uom/uom.json #: erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.py:267 -#: erpnext/utilities/transaction_base.py:634 +#: erpnext/utilities/transaction_base.py:631 msgid "Must be Whole Number" msgstr "يجب أن يكون عدد صحيح" @@ -31212,11 +31302,7 @@ msgstr "سلسلة التسمية إلزامية" msgid "Naming Series options" msgstr "" -#: erpnext/public/js/utils/naming_series.js:196 -msgid "Naming Series updated" -msgstr "" - -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:939 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:950 msgid "Naming series '{0}' for DocType '{1}' does not contain standard '.' or '{{' separator. Using fallback extraction." msgstr "" @@ -31260,7 +31346,7 @@ msgstr "تحليل الاحتياجات" msgid "Negative Batch Report" msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:628 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:631 msgid "Negative Quantity is not allowed" msgstr "الكمية السلبية غير مسموح بها\\n
\\nnegative Quantity is not allowed" @@ -31275,7 +31361,7 @@ msgstr "" msgid "Negative Stock Error" msgstr "خطأ في المخزون السالب" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:633 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:636 msgid "Negative Valuation Rate is not allowed" msgstr "معدل التقييم السلبي غير مسموح به\\n
\\nNegative Valuation Rate is not allowed" @@ -31654,7 +31740,7 @@ msgstr "" msgid "New Income" msgstr "دخل جديد" -#: erpnext/selling/page/point_of_sale/pos_controller.js:259 +#: erpnext/selling/page/point_of_sale/pos_controller.js:250 msgid "New Invoice" msgstr "فاتورة جديدة" @@ -31739,7 +31825,7 @@ msgstr "اسم المخزن الجديد" msgid "New Workplace" msgstr "مكان العمل الجديد" -#: erpnext/selling/doctype/customer/customer.py:404 +#: erpnext/selling/doctype/customer/customer.py:405 msgid "New credit limit is less than current outstanding amount for the customer. Credit limit has to be atleast {0}" msgstr "حد الائتمان الجديد أقل من المبلغ المستحق الحالي للعميل. حد الائتمان يجب أن يكون على الأقل {0}\\n
\\nNew credit limit is less than current outstanding amount for the customer. Credit limit has to be atleast {0}" @@ -31806,12 +31892,12 @@ msgstr "لا رد فعل" msgid "No Answer" msgstr "لا يوجد رد" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2576 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2583 msgid "No Customer found for Inter Company Transactions which represents company {0}" msgstr "لم يتم العثور على زبون للمعاملات بين الشركات التي تمثل الشركة {0}" #: erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.js:164 -#: erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py:431 +#: erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py:430 msgid "No Customers found with selected options." msgstr "لم يتم العثور على عملاء بالخيارات المحددة." @@ -31819,7 +31905,7 @@ msgstr "لم يتم العثور على عملاء بالخيارات المحد msgid "No Delivery Note selected for Customer {}" msgstr "لم يتم تحديد ملاحظة التسليم للعميل {}" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:756 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:767 msgid "No DocTypes in To Delete list. Please generate or import the list before submitting." msgstr "" @@ -31899,7 +31985,7 @@ msgstr "لا يوجد مخزون متوفر حالياً" msgid "No Summary" msgstr "لا يوجد ملخص" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2560 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2567 msgid "No Supplier found for Inter Company Transactions which represents company {0}" msgstr "لم يتم العثور على مورد للمعاملات بين الشركات التي تمثل الشركة {0}" @@ -31933,7 +32019,7 @@ msgid "No Work Orders were created" msgstr "لم يتم إنشاء أي أوامر عمل" #: erpnext/stock/doctype/purchase_receipt/purchase_receipt.py:827 -#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:899 +#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:905 msgid "No accounting entries for the following warehouses" msgstr "لا القيود المحاسبية للمستودعات التالية" @@ -31973,7 +32059,7 @@ msgstr "" msgid "No bank transactions found" msgstr "" -#: erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py:496 +#: erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py:495 msgid "No billing email found for customer: {0}" msgstr "لم يتم العثور على بريد إلكتروني للفواتير خاص بالعميل: {0}" @@ -32063,10 +32149,6 @@ msgstr "لا مزيد من الأطفال على اليسار" msgid "No more children on Right" msgstr "لا مزيد من الأطفال على اليمين" -#: erpnext/public/js/utils/naming_series.js:385 -msgid "No naming series defined" -msgstr "" - #: erpnext/selling/doctype/sales_order/sales_order.js:608 msgid "No of Deliveries" msgstr "عدد عمليات التسليم" @@ -32143,7 +32225,7 @@ msgstr "عدد محطات العمل" msgid "No open Material Requests found for the given criteria." msgstr "لم يتم العثور على أي طلبات مواد مفتوحة وفقًا للمعايير المحددة." -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1228 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1235 msgid "No open POS Opening Entry found for POS Profile {0}." msgstr "لم يتم العثور على إدخال فتح نقطة بيع مفتوح لملف تعريف نقطة البيع {0}." @@ -32175,7 +32257,7 @@ msgstr "" msgid "No pending Material Requests found to link for the given items." msgstr "لم يتم العثور على طلبات المواد المعلقة للربط للعناصر المحددة." -#: erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py:503 +#: erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py:502 msgid "No primary email found for customer: {0}" msgstr "لم يتم العثور على بريد إلكتروني أساسي للعميل: {0}" @@ -32238,7 +32320,7 @@ msgstr "" msgid "No stock available for this batch." msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:810 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:813 msgid "No stock ledger entries were created. Please set the quantity or valuation rate for the items properly and try again." msgstr "لم يتم إنشاء أي قيود في دفتر الأستاذ الخاص بالمخزون. يرجى تحديد الكمية أو سعر التقييم للأصناف بشكل صحيح والمحاولة مرة أخرى." @@ -32275,15 +32357,10 @@ msgstr "لا توجد قيم" msgid "No vouchers found for this transaction" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2624 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2631 msgid "No {0} found for Inter Company Transactions." msgstr "لم يتم العثور على {0} معاملات Inter Company." -#: erpnext/assets/doctype/asset/asset.js:377 -#: erpnext/stock/doctype/item/item_prices.html:80 -msgid "No." -msgstr "لا." - #. Label of the no_of_employees (Select) field in DocType 'Prospect' #: erpnext/crm/doctype/prospect/prospect.json msgid "No. of Employees" @@ -32335,7 +32412,7 @@ msgstr "غير الصفر" msgid "Non-phantom BOM cannot be created for non-stock item {0}." msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:559 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:562 msgid "None of the items have any change in quantity or value." msgstr "لا يوجد أي من البنود لديها أي تغيير في كمية أو قيمة.\\n
\\nNone of the items have any change in quantity or value." @@ -32361,8 +32438,8 @@ msgstr "لا" msgid "Not Applicable" msgstr "لا ينطبق" -#: erpnext/selling/page/point_of_sale/pos_controller.js:824 -#: erpnext/selling/page/point_of_sale/pos_controller.js:853 +#: erpnext/selling/page/point_of_sale/pos_controller.js:815 +#: erpnext/selling/page/point_of_sale/pos_controller.js:844 msgid "Not Available" msgstr "غير متوفرة" @@ -32445,10 +32522,6 @@ msgstr "غير مصرح به لأن {0} يتجاوز الحدود" msgid "Not authorized to edit frozen Account {0}" msgstr "غير مصرح له بتحرير الحساب المجمد {0}\\n
\\nNot authorized to edit frozen Account {0}" -#: erpnext/public/js/utils/naming_series.js:326 -msgid "Not configured" -msgstr "" - #: erpnext/templates/form_grid/stock_entry_grid.html:26 msgid "Not in Stock" msgstr "غير متوفر في المخزون" @@ -32673,6 +32746,11 @@ msgstr "عدد الحساب الجديد، سيتم تضمينه في اسم ا msgid "Number of new Cost Center, it will be included in the cost center name as a prefix" msgstr "عدد مركز التكلفة الجديد ، سيتم إدراجه في اسم مركز التكلفة كبادئة" +#. Description of the 'Supplier Numbers' (Table) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Numbers this customer uses to identify your company in their own system." +msgstr "" + #. Label of the numeric (Check) field in DocType 'Item Quality Inspection #. Parameter' #. Label of the numeric (Check) field in DocType 'Quality Inspection Reading' @@ -32910,7 +32988,7 @@ msgstr "لا يتم دعم سوى \"إدخالات الدفع\" التي تتم msgid "Only CSV and Excel files can be used to for importing data. Please check the file format you are trying to upload" msgstr "لا يمكن استخدام سوى ملفات CSV و Excel لاستيراد البيانات. يرجى التحقق من تنسيق الملف الذي تحاول تحميله." -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1072 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1083 msgid "Only CSV files are allowed" msgstr "" @@ -32970,7 +33048,7 @@ msgstr "يجب أن يكون أحد خياري الإيداع أو السحب ف msgid "Only one operation can have 'Is Final Finished Good' checked when 'Track Semi Finished Goods' is enabled." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1540 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1598 msgid "Only one {0} entry can be created against the Work Order {1}" msgstr "لا يمكن إنشاء سوى إدخال واحد {0} مقابل أمر العمل {1}" @@ -33039,7 +33117,7 @@ msgstr "فعالية مفتوحة" msgid "Open Events" msgstr "الفعاليات المفتوحة" -#: erpnext/selling/page/point_of_sale/pos_controller.js:252 +#: erpnext/selling/page/point_of_sale/pos_controller.js:243 msgid "Open Form View" msgstr "افتح طريقة عرض النموذج" @@ -33190,7 +33268,7 @@ msgstr "الرصيد الافتتاحي = بداية الفترة، الرصيد #. Label of the balance_details (Table) field in DocType 'POS Opening Entry' #: erpnext/accounts/doctype/pos_opening_entry/pos_opening_entry.json -#: erpnext/selling/page/point_of_sale/pos_controller.js:90 +#: erpnext/selling/page/point_of_sale/pos_controller.js:81 msgid "Opening Balance Details" msgstr "تفاصيل الرصيد الافتتاحي" @@ -33220,7 +33298,7 @@ msgstr "تاريخ الفتح" msgid "Opening Entry" msgstr "فتح مدخل" -#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:304 +#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:316 msgid "Opening Invoice Creation In Progress" msgstr "جاري إنشاء الفاتورة الافتتاحية" @@ -33248,8 +33326,8 @@ msgstr "فتح الفاتورة البند" msgid "Opening Invoice Tool" msgstr "" -#: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1683 -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2031 +#: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1686 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2038 msgid "Opening Invoice has rounding adjustment of {0}.

'{1}' account is required to post these values. Please set it in Company: {2}.

Or, '{3}' can be enabled to not post any rounding adjustment." msgstr "" @@ -33257,7 +33335,7 @@ msgstr "" msgid "Opening Invoices" msgstr "فتح الفواتير" -#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.js:142 +#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.js:139 msgid "Opening Invoices Summary" msgstr "ملخص الفواتير الافتتاحية" @@ -33437,11 +33515,11 @@ msgstr "اكتمال عملية لكيفية العديد من السلع تام msgid "Operation time does not depend on quantity to produce" msgstr "لا يعتمد وقت التشغيل على كمية الإنتاج" -#: erpnext/manufacturing/doctype/job_card/job_card.js:518 +#: erpnext/manufacturing/doctype/job_card/job_card.js:517 msgid "Operation {0} added multiple times in the work order {1}" msgstr "تمت إضافة العملية {0} عدة مرات في أمر العمل {1}" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1267 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1285 msgid "Operation {0} does not belong to the work order {1}" msgstr "العملية {0} لا تنتمي إلى أمر العمل {1}" @@ -33648,10 +33726,6 @@ msgstr "اختياري . سيتم استخدام هذا الإعداد لفلت msgid "Optional. Used with Financial Report Template" msgstr "اختياري. يُستخدم مع نموذج التقرير المالي" -#: erpnext/public/js/utils/naming_series.js:83 -msgid "Optionally, set the number of digits in the series using dot (.) followed by hashes (#). For example, '.####' means that the series will have four digits. Default is five digits." -msgstr "" - #: erpnext/selling/report/territory_wise_sales/territory_wise_sales.py:43 msgid "Order Amount" msgstr "كمية الطلب" @@ -33935,8 +34009,8 @@ msgstr "لا تغطيه الضمان" msgid "Out of stock" msgstr "إنتهى من المخزن" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1241 -#: erpnext/selling/page/point_of_sale/pos_controller.js:208 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1248 +#: erpnext/selling/page/point_of_sale/pos_controller.js:199 msgid "Outdated POS Opening Entry" msgstr "إدخال بيانات فتح نقاط البيع القديمة" @@ -33988,7 +34062,7 @@ msgstr "الرصيد المستحق (عملة الشركة)" #: erpnext/accounts/doctype/cashier_closing/cashier_closing.json #: erpnext/accounts/doctype/discounted_invoice/discounted_invoice.json #: erpnext/accounts/doctype/opening_invoice_creation_tool_item/opening_invoice_creation_tool_item.json -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:887 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:896 #: erpnext/accounts/doctype/payment_reconciliation_invoice/payment_reconciliation_invoice.json #: erpnext/accounts/doctype/payment_request/payment_request.json #: erpnext/accounts/doctype/pos_invoice/pos_invoice.js:300 @@ -34046,7 +34120,7 @@ msgstr "" msgid "Over Billing Allowance (%)" msgstr "نسبة السماح بالفواتير الزائدة (%)" -#: erpnext/stock/doctype/purchase_receipt/purchase_receipt.py:1339 +#: erpnext/stock/doctype/purchase_receipt/purchase_receipt.py:1343 msgid "Over Billing Allowance exceeded for Purchase Receipt Item {0} ({1}) by {2}%" msgstr "تم تجاوز حدّ السماح بالفواتير الزائدة لبند إيصال الشراء {0} ({1}) بنسبة {2}%" @@ -34069,11 +34143,11 @@ msgstr "" msgid "Over Picking Allowance (%)" msgstr "بدل الإفراط في الانتقاء (%)" -#: erpnext/controllers/stock_controller.py:1729 +#: erpnext/controllers/stock_controller.py:1776 msgid "Over Receipt" msgstr "إيصال زائد" -#: erpnext/controllers/status_updater.py:505 +#: erpnext/controllers/status_updater.py:516 msgid "Over Receipt/Delivery of {0} {1} ignored for item {2} because you have {3} role." msgstr "تم تجاهل استلام/تسليم {0} {1} للعنصر {2} لأن لديك الدور {3} ." @@ -34090,7 +34164,7 @@ msgstr "بدل التحويل الزائد (%)" msgid "Over Withheld" msgstr "مبالغ محجوزة" -#: erpnext/controllers/status_updater.py:507 +#: erpnext/controllers/status_updater.py:518 msgid "Overbilling of {0} {1} ignored for item {2} because you have {3} role." msgstr "تم تجاهل الفوترة الزائدة لـ {0} {1} للعنصر {2} لأن لديك الدور {3} ." @@ -34171,6 +34245,12 @@ msgstr "نسبة الإنتاج الزائد لأمر العمل" msgid "Overproduction for Sales and Work Order" msgstr "زيادة الإنتاج للمبيعات وطلب العمل" +#. Description of the 'Per-Company Accounts' (Table) field in DocType +#. 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "Override the default payable / advance accounts on a per-company basis. Leave blank to use each company's defaults from Company settings." +msgstr "" + #. Option for the 'Permanent Address Is' (Select) field in DocType 'Employee' #. Option for the 'Current Address Is' (Select) field in DocType 'Employee' #: erpnext/setup/doctype/employee/employee.json @@ -34208,6 +34288,11 @@ msgstr "PAN لا" msgid "PCV" msgstr "حجم الخلايا المكدسة" +#. Label of the pcv_job_timeout (Int) field in DocType 'Accounts Settings' +#: erpnext/accounts/doctype/accounts_settings/accounts_settings.json +msgid "PCV Job Timeout (seconds)" +msgstr "" + #: erpnext/accounts/doctype/process_period_closing_voucher/process_period_closing_voucher.js:35 msgid "PCV Paused" msgstr "تم إيقاف تشغيل نظام تهوية علبة المرافق" @@ -34255,7 +34340,7 @@ msgstr "نقطة البيع" msgid "POS Additional Fields" msgstr "حقول إضافية لنظام نقاط البيع" -#: erpnext/selling/page/point_of_sale/pos_controller.js:183 +#: erpnext/selling/page/point_of_sale/pos_controller.js:174 msgid "POS Closed" msgstr "تم إغلاق نقطة البيع" @@ -34405,7 +34490,7 @@ msgstr "" msgid "POS Opening Entry" msgstr "دخول فتح نقاط البيع" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1242 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1249 msgid "POS Opening Entry - {0} is outdated. Please close the POS and create a new POS Opening Entry." msgstr "إدخال فتح نقطة البيع - {0} قديم. يرجى إغلاق نقطة البيع وإنشاء إدخال فتح جديد." @@ -34413,7 +34498,7 @@ msgstr "إدخال فتح نقطة البيع - {0} قديم. يرجى إغلا msgid "POS Opening Entry Cancellation Error" msgstr "خطأ في إلغاء إدخال فتح نقطة البيع" -#: erpnext/selling/page/point_of_sale/pos_controller.js:183 +#: erpnext/selling/page/point_of_sale/pos_controller.js:174 msgid "POS Opening Entry Cancelled" msgstr "تم إلغاء إدخال فتح نقطة البيع" @@ -34426,7 +34511,7 @@ msgstr "تفاصيل دخول فتح نقاط البيع" msgid "POS Opening Entry Exists" msgstr "تم إنشاء مدخل فتح نقطة البيع" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1227 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1234 msgid "POS Opening Entry Missing" msgstr "بيانات فتح نقطة البيع مفقودة" @@ -34434,7 +34519,7 @@ msgstr "بيانات فتح نقطة البيع مفقودة" msgid "POS Opening Entry cannot be cancelled as unconsolidated Invoices exists." msgstr "لا يمكن إلغاء إدخال فتح نقطة البيع لوجود فواتير غير مجمعة." -#: erpnext/selling/page/point_of_sale/pos_controller.js:189 +#: erpnext/selling/page/point_of_sale/pos_controller.js:180 msgid "POS Opening Entry has been cancelled. Please refresh the page." msgstr "تم إلغاء عملية فتح نقطة البيع. يرجى تحديث الصفحة." @@ -34457,12 +34542,12 @@ msgstr "طريقة الدفع في نقاط البيع" #: erpnext/accounts/report/pos_register/pos_register.js:32 #: erpnext/accounts/report/pos_register/pos_register.py:117 #: erpnext/accounts/report/pos_register/pos_register.py:188 -#: erpnext/selling/page/point_of_sale/pos_controller.js:80 +#: erpnext/selling/page/point_of_sale/pos_controller.js:71 #: erpnext/workspace_sidebar/selling.json msgid "POS Profile" msgstr "الملف الشخصي لنقطة البيع" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1235 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1242 msgid "POS Profile - {0} has multiple open POS Opening Entries. Please close or cancel the existing entries before proceeding." msgstr "ملف تعريف نقطة البيع - {0} يحتوي على عدة إدخالات مفتوحة لفتح نقاط البيع. يرجى إغلاق أو إلغاء الإدخالات الحالية قبل المتابعة." @@ -34480,11 +34565,11 @@ msgstr "نقاط البيع الشخصية الملف الشخصي" msgid "POS Profile doesn't match {}" msgstr "ملف تعريف نقطة البيع لا يتطابق مع {}" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1195 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1202 msgid "POS Profile is mandatory to mark this invoice as POS Transaction." msgstr "ملف تعريف نقطة البيع إلزامي لتمييز هذه الفاتورة كمعاملة نقطة بيع." -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1424 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1431 msgid "POS Profile required to make POS Entry" msgstr "ملف نقطة البيع مطلوب للقيام بإدخال خاص بنقطة البيع" @@ -34535,11 +34620,11 @@ msgstr "إعدادات نقاط البيع" msgid "POS Transactions" msgstr "معاملات نقاط البيع" -#: erpnext/selling/page/point_of_sale/pos_controller.js:187 +#: erpnext/selling/page/point_of_sale/pos_controller.js:178 msgid "POS has been closed at {0}. Please refresh the page." msgstr "تم إغلاق نظام نقاط البيع في {0}. يرجى تحديث الصفحة." -#: erpnext/selling/page/point_of_sale/pos_controller.js:464 +#: erpnext/selling/page/point_of_sale/pos_controller.js:455 msgid "POS invoice {0} created successfully" msgstr "تم إنشاء فاتورة نقاط البيع {0} بنجاح" @@ -34590,7 +34675,7 @@ msgstr "عنصر معبأ" msgid "Packed Items" msgstr "عناصر معبأة" -#: erpnext/controllers/stock_controller.py:1563 +#: erpnext/controllers/stock_controller.py:1610 msgid "Packed Items cannot be transferred internally" msgstr "لا يمكن نقل العناصر المعبأة داخلياً" @@ -34738,7 +34823,7 @@ msgid "Paid To Account Type" msgstr "نوع الحساب المدفوع" #: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:334 -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1191 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1198 msgid "Paid amount + Write Off Amount can not be greater than Grand Total" msgstr "المبلغ المدفوع + المبلغ المشطوب لا يمكن ان يكون أكبر من المجموع الكلي\\n
\\nPaid amount + Write Off Amount can not be greater than Grand Total" @@ -34957,7 +35042,7 @@ msgstr "" msgid "Partial Material Transferred" msgstr "تم نقل جزء من المواد" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1214 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1221 msgid "Partial Payment in POS Transactions are not allowed." msgstr "لا يُسمح بالدفع الجزئي في معاملات نقاط البيع." @@ -35048,6 +35133,11 @@ msgstr "تم التوفيق جزئياً" msgid "Partially Reserved" msgstr "محجوز جزئياً" +#. Option for the 'Status' (Select) field in DocType 'Job Card' +#: erpnext/manufacturing/doctype/job_card/job_card.json +msgid "Partially Transferred" +msgstr "" + #. Option for the 'Status' (Select) field in DocType 'Stock Reservation Entry' #: erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.json msgid "Partially Used" @@ -35498,7 +35588,7 @@ msgstr "الأحداث السابقة" msgid "Pause" msgstr "وقفة" -#: erpnext/manufacturing/doctype/job_card/job_card.js:664 +#: erpnext/manufacturing/doctype/job_card/job_card.js:662 msgid "Pause Job" msgstr "إيقاف العمل مؤقتًا" @@ -35943,7 +36033,7 @@ msgstr "المراجع الدفع" #. Name of a DocType #. Label of a Workspace Sidebar Item #: erpnext/accounts/doctype/accounts_settings/accounts_settings.json -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1710 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1719 #: erpnext/accounts/doctype/payment_entry_reference/payment_entry_reference.json #: erpnext/accounts/doctype/payment_order/payment_order.js:19 #: erpnext/accounts/doctype/payment_order/payment_order.json @@ -36018,7 +36108,7 @@ msgstr "جدول الدفع" msgid "Payment Schedule based Payment Requests cannot be created because a Payment Entry already exists for this document." msgstr "" -#: erpnext/public/js/controllers/transaction.js:488 +#: erpnext/public/js/controllers/transaction.js:507 msgid "Payment Schedules" msgstr "" @@ -36040,7 +36130,7 @@ msgstr "" #: erpnext/accounts/report/accounts_receivable/accounts_receivable.py:1210 #: erpnext/accounts/report/gross_profit/gross_profit.py:449 #: erpnext/accounts/workspace/invoicing/invoicing.json -#: erpnext/public/js/controllers/transaction.js:503 +#: erpnext/public/js/controllers/transaction.js:522 #: erpnext/selling/report/payment_terms_status_for_sales_order/payment_terms_status_for_sales_order.py:30 #: erpnext/workspace_sidebar/accounts_setup.json msgid "Payment Term" @@ -36090,6 +36180,8 @@ msgstr "حالة شروط الدفع لأمر البيع" #. Invoice' #. Label of the payment_terms_template (Link) field in DocType 'Sales Invoice' #. Label of the payment_terms_template (Link) field in DocType 'Purchase Order' +#. Label of the payment_terms (Link) field in DocType 'Supplier' +#. Label of the payment_terms (Link) field in DocType 'Customer' #. Label of the payment_terms_template (Link) field in DocType 'Quotation' #. Label of the payment_terms_template (Link) field in DocType 'Sales Order' #: erpnext/accounts/doctype/payment_terms_template/payment_terms_template.json @@ -36104,6 +36196,8 @@ msgstr "حالة شروط الدفع لأمر البيع" #: erpnext/accounts/report/customer_ledger_summary/customer_ledger_summary.js:62 #: erpnext/accounts/report/supplier_ledger_summary/supplier_ledger_summary.js:61 #: erpnext/buying/doctype/purchase_order/purchase_order.json +#: erpnext/buying/doctype/supplier/supplier.json +#: erpnext/selling/doctype/customer/customer.json #: erpnext/selling/doctype/quotation/quotation.json #: erpnext/selling/doctype/sales_order/sales_order.json msgid "Payment Terms Template" @@ -36157,7 +36251,7 @@ msgstr "لا يمكن أن يكون مبلغ الدفعة أقل من أو يس msgid "Payment methods are mandatory. Please add at least one payment method." msgstr "طرق الدفع إلزامية. الرجاء إضافة طريقة دفع واحدة على الأقل." -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:3091 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:3098 msgid "Payment methods refreshed. Please review before proceeding." msgstr "" @@ -36295,7 +36389,7 @@ msgstr "الكمية التي قيد الانتظار" #: erpnext/buying/report/subcontracted_item_to_be_received/subcontracted_item_to_be_received.py:55 #: erpnext/buying/report/subcontracted_raw_materials_to_be_transferred/subcontracted_raw_materials_to_be_transferred.py:45 -#: erpnext/manufacturing/doctype/job_card/job_card.js:273 +#: erpnext/manufacturing/doctype/job_card/job_card.js:272 msgid "Pending Quantity" msgstr "في انتظار الكمية" @@ -36335,11 +36429,11 @@ msgstr "الأنشطة في انتظار لهذا اليوم" msgid "Pending processing" msgstr "في انتظار المعالجة" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1503 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1521 msgid "Pending quantity cannot be greater than the for quantity." msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1497 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1515 msgid "Pending quantity cannot be negative." msgstr "" @@ -36397,6 +36491,11 @@ msgstr "في الاسبوع" msgid "Per Year" msgstr "كل سنة" +#. Label of the accounts (Table) field in DocType 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "Per-Company Accounts" +msgstr "" + #. Description of the 'PDF Tables' (JSON) field in DocType 'Bank Statement #. Import Log' #: erpnext/accounts/doctype/bank_statement_import_log/bank_statement_import_log.json @@ -37051,11 +37150,11 @@ msgstr "الرجاء تحديد مورد" msgid "Please Set Priority" msgstr "يرجى تحديد الأولوية" -#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:171 +#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:182 msgid "Please Set Supplier Group in Buying Settings." msgstr "يرجى تعيين مجموعة الموردين في إعدادات الشراء." -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1910 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1919 msgid "Please Specify Account" msgstr "يرجى تحديد الحساب" @@ -37063,7 +37162,7 @@ msgstr "يرجى تحديد الحساب" msgid "Please add 'Supplier' role to user {0}." msgstr "يرجى إضافة دور \"المورد\" إلى المستخدم {0}." -#: erpnext/selling/page/point_of_sale/pos_controller.js:101 +#: erpnext/selling/page/point_of_sale/pos_controller.js:92 msgid "Please add Mode of payments and opening balance details." msgstr "الرجاء إضافة طريقة الدفع وتفاصيل الرصيد الافتتاحي." @@ -37079,7 +37178,7 @@ msgstr "يرجى إضافة \"طلب عرض أسعار\" إلى الشريط ا msgid "Please add Root Account for - {0}" msgstr "يرجى إضافة حساب الجذر لـ - {0}" -#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:320 +#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:332 msgid "Please add a Temporary Opening account in Chart of Accounts" msgstr "الرجاء إضافة حساب فتح مؤقت في مخطط الحسابات" @@ -37087,14 +37186,14 @@ msgstr "الرجاء إضافة حساب فتح مؤقت في مخطط الحس msgid "Please add an account for the Bank Entry rule." msgstr "" -#: erpnext/public/js/utils/naming_series.js:170 -msgid "Please add at least one naming series." -msgstr "" - #: erpnext/public/js/utils/serial_no_batch_selector.js:662 msgid "Please add atleast one Serial No / Batch No" msgstr "يرجى إضافة رقم تسلسلي واحد على الأقل / رقم دفعة واحد على الأقل" +#: erpnext/crm/doctype/crm_settings/crm_settings.py:51 +msgid "Please add atleast one user on Allowed Users to allow Data Synchronization from Frappe CRM site." +msgstr "" + #: erpnext/accounts/doctype/bank_statement_import/bank_statement_import.py:85 msgid "Please add the Bank Account column" msgstr "يرجى إضافة عمود الحساب المصرفي" @@ -37111,7 +37210,7 @@ msgstr "الرجاء إضافة الحساب إلى شركة على مستوى msgid "Please add {1} role to user {0}." msgstr "يرجى إضافة الدور {1} إلى المستخدم {0}." -#: erpnext/controllers/stock_controller.py:1740 +#: erpnext/controllers/stock_controller.py:1787 msgid "Please adjust the qty or edit {0} to proceed." msgstr "يرجى تعديل الكمية أو تحرير {0} للمتابعة." @@ -37119,7 +37218,7 @@ msgstr "يرجى تعديل الكمية أو تحرير {0} للمتابعة." msgid "Please attach CSV file" msgstr "يرجى إرفاق ملف CSV" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:3237 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:3244 msgid "Please cancel and amend the Payment Entry" msgstr "يرجى إلغاء وتعديل إدخال الدفع" @@ -37153,7 +37252,7 @@ msgstr "يرجى التحقق إما من قسم العمليات أو من قس msgid "Please check the 'Activate Serial and Batch No for Item' checkbox in the {0} to make Serial and Batch Bundle for the item." msgstr "" -#: erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py:582 +#: erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py:585 msgid "Please check the error message and take necessary actions to fix the error and then restart the reposting again." msgstr "يرجى مراجعة رسالة الخطأ واتخاذ الإجراءات اللازمة لإصلاح الخطأ ثم إعادة تشغيل عملية إعادة النشر مرة أخرى." @@ -37186,7 +37285,7 @@ msgstr "" msgid "Please configure accounts for the Bank Entry rule." msgstr "" -#: erpnext/selling/doctype/customer/customer.py:634 +#: erpnext/selling/doctype/customer/customer.py:635 msgid "Please contact any of the following users to extend the credit limits for {0}: {1}" msgstr "يرجى الاتصال بأي من المستخدمين التاليين لتمديد حدود الائتمان لـ {0}: {1}" @@ -37194,7 +37293,7 @@ msgstr "يرجى الاتصال بأي من المستخدمين التاليي msgid "Please contact any of the following users to {} this transaction." msgstr "يرجى الاتصال بأي من المستخدمين التاليين لإتمام هذه المعاملة." -#: erpnext/selling/doctype/customer/customer.py:627 +#: erpnext/selling/doctype/customer/customer.py:628 msgid "Please contact your administrator to extend the credit limits for {0}." msgstr "يرجى الاتصال بمسؤول النظام لتمديد حدود الائتمان لـ {0}." @@ -37270,20 +37369,20 @@ msgstr "يرجى التأكد من أن الحساب {0} هو حساب في ال msgid "Please ensure that the {0} account {1} is a Payable account. You can change the account type to Payable or select a different account." msgstr "يرجى التأكد من أن الحساب {0} {1} هو حساب قابل للدفع. يمكنك تغيير نوع الحساب إلى قابل للدفع أو اختيار حساب آخر." -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1054 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1061 msgid "Please ensure {} account is a Balance Sheet account." msgstr "يرجى التأكد من أن حساب {} هو حساب في الميزانية العمومية." -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1064 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1071 msgid "Please ensure {} account {} is a Receivable account." msgstr "يرجى التأكد من أن حساب {} هو حساب مستحق القبض." -#: erpnext/stock/doctype/stock_entry/stock_entry.py:859 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:862 msgid "Please enter Difference Account or set default Stock Adjustment Account for company {0}" msgstr "الرجاء إدخال حساب الفرق أو تعيين حساب تسوية المخزون الافتراضي للشركة {0}" #: erpnext/accounts/doctype/pos_invoice/pos_invoice.py:555 -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1326 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1333 msgid "Please enter Account for Change Amount" msgstr "الرجاء إدخال الحساب لمبلغ التغيير\\n
\\nPlease enter Account for Change Amount" @@ -37291,11 +37390,11 @@ msgstr "الرجاء إدخال الحساب لمبلغ التغيير\\n
\\ msgid "Please enter Approving Role or Approving User" msgstr "الرجاء إدخال صلاحية المخول بالتصديق أو المستخدم المخول بالتصديق" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:683 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:686 msgid "Please enter Batch No" msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:960 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:963 msgid "Please enter Cost Center" msgstr "يرجى إدخال مركز التكلفة\\n
\\nPlease enter Cost Center" @@ -37307,7 +37406,7 @@ msgstr "الرجاء إدخال تاريخ التسليم" msgid "Please enter Employee Id of this sales person" msgstr "الرجاء إدخال معرف الموظف الخاص بشخص المبيعات هذا" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:969 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:972 msgid "Please enter Expense Account" msgstr "الرجاء إدخال حساب النفقات\\n
\\nPlease enter Expense Account" @@ -37316,7 +37415,7 @@ msgstr "الرجاء إدخال حساب النفقات\\n
\\nPlease enter Ex msgid "Please enter Item Code to get Batch Number" msgstr "الرجاء إدخال رمز العنصر للحصول على رقم الدفعة\\n
\\nPlease enter Item Code to get Batch Number" -#: erpnext/public/js/controllers/transaction.js:3020 +#: erpnext/public/js/controllers/transaction.js:3034 msgid "Please enter Item Code to get batch no" msgstr "الرجاء إدخال كود البند للحصول على رقم الدفعة" @@ -37352,7 +37451,7 @@ msgstr "الرجاء إدخال تاريخ المرجع\\n
\\nPlease enter Re msgid "Please enter Root Type for account- {0}" msgstr "الرجاء إدخال نوع الجذر للحساب - {0}" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:685 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:688 msgid "Please enter Serial No" msgstr "" @@ -37369,7 +37468,7 @@ msgid "Please enter Warehouse and Date" msgstr "الرجاء إدخال المستودع والتاريخ" #: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:660 -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1322 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1329 msgid "Please enter Write Off Account" msgstr "الرجاء إدخال حساب الشطب" @@ -37437,7 +37536,7 @@ msgstr "يرجى إدخال تاريخ التسليم الأول" msgid "Please enter the phone number first" msgstr "الرجاء إدخال رقم الهاتف أولاً" -#: erpnext/controllers/buying_controller.py:1185 +#: erpnext/controllers/buying_controller.py:1248 msgid "Please enter the {schedule_date}." msgstr "الرجاء إدخال {schedule_date}." @@ -37551,8 +37650,8 @@ msgstr "يرجى حفظ أمر البيع قبل إضافة جدول التسل msgid "Please select Template Type to download template" msgstr "يرجى تحديد نوع القالب لتنزيل القالب" -#: erpnext/controllers/taxes_and_totals.py:859 -#: erpnext/public/js/controllers/taxes_and_totals.js:822 +#: erpnext/controllers/taxes_and_totals.py:862 +#: erpnext/public/js/controllers/taxes_and_totals.js:825 msgid "Please select Apply Discount On" msgstr "الرجاء اختيار (تطبيق تخفيض على)" @@ -37564,7 +37663,7 @@ msgstr "الرجاء اختيار بوم ضد العنصر {0}" msgid "Please select BOM for Item in Row {0}" msgstr "الرجاء تحديد قائمة المواد للبند في الصف {0}" -#: erpnext/controllers/buying_controller.py:649 +#: erpnext/controllers/buying_controller.py:712 msgid "Please select BOM in BOM field for Item {item_code}." msgstr "يرجى تحديد قائمة المواد في الحقل (قائمة المواد) للبند {item_code}." @@ -37576,9 +37675,9 @@ msgstr "يرجى اختيار الحساب المصرفي" msgid "Please select Category first" msgstr "الرجاء تحديد التصنيف أولا\\n
\\nPlease select Category first" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1492 -#: erpnext/public/js/controllers/accounts.js:94 -#: erpnext/public/js/controllers/accounts.js:145 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1501 +#: erpnext/public/js/controllers/accounts.js:91 +#: erpnext/public/js/controllers/accounts.js:142 msgid "Please select Charge Type first" msgstr "يرجى تحديد نوع الرسوم أولا" @@ -37668,7 +37767,7 @@ msgstr "الرجاء تحديد تاريخ البدء وتاريخ الانته msgid "Please select Stock Asset Account" msgstr "الرجاء تحديد حساب أصول الأسهم" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1904 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1962 msgid "Please select Subcontracting Order instead of Purchase Order {0}" msgstr "" @@ -37688,8 +37787,8 @@ msgstr "الرجاء اختيار الشركة" #: erpnext/accounts/doctype/payment_entry/payment_entry.js:268 #: erpnext/manufacturing/doctype/bom/bom.js:730 #: erpnext/manufacturing/doctype/bom/bom.py:279 -#: erpnext/public/js/controllers/accounts.js:277 -#: erpnext/public/js/controllers/transaction.js:3319 +#: erpnext/public/js/controllers/accounts.js:274 +#: erpnext/public/js/controllers/transaction.js:3333 msgid "Please select a Company first." msgstr "الرجاء تحديد شركة أولاً." @@ -37713,7 +37812,7 @@ msgstr "الرجاء اختيار مورد" msgid "Please select a Warehouse" msgstr "الرجاء اختيار مستودع" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1655 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1673 msgid "Please select a Work Order first." msgstr "يرجى اختيار أمر عمل أولاً." @@ -37770,10 +37869,6 @@ msgstr "الرجاء تحديد صف لإنشاء إدخال إعادة نشر" msgid "Please select a supplier for fetching payments." msgstr "يرجى اختيار مورد لتحصيل المدفوعات." -#: erpnext/public/js/utils/naming_series.js:165 -msgid "Please select a transaction." -msgstr "" - #: erpnext/subcontracting/doctype/subcontracting_order/subcontracting_order.py:142 msgid "Please select a valid Purchase Order that has Service Items." msgstr "" @@ -37810,7 +37905,7 @@ msgstr "يرجى تحديد صف واحد على الأقل لإصلاحه" msgid "Please select at least one row with difference value" msgstr "يرجى تحديد صف واحد على الأقل بقيمة مختلفة" -#: erpnext/public/js/controllers/transaction.js:531 +#: erpnext/public/js/controllers/transaction.js:550 msgid "Please select at least one schedule." msgstr "" @@ -37905,12 +38000,12 @@ msgstr "يرجى اختيار نوع مستند صالح." msgid "Please select weekly off day" msgstr "الرجاء اختيار يوم العطلة الاسبوعي" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1210 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1219 #: erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py:616 msgid "Please select {0} first" msgstr "الرجاء تحديد {0} أولا\\n
\\nPlease select {0} first" -#: erpnext/public/js/controllers/transaction.js:103 +#: erpnext/public/js/controllers/transaction.js:122 msgid "Please set 'Apply Additional Discount On'" msgstr "يرجى تحديد 'تطبيق خصم إضافي على'" @@ -37930,7 +38025,7 @@ msgstr "يرجى تعيين '{0}' في الشركة: {1}" msgid "Please set Account" msgstr "يرجى إنشاء حساب" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1922 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1929 msgid "Please set Account for Change Amount" msgstr "يرجى تحديد الحساب لمبلغ الباقي" @@ -38045,7 +38140,7 @@ msgstr "يرجى تحديد الطلب الفعلي أو توقعات المبي msgid "Please set an Address on the Company '%s'" msgstr "يرجى تحديد عنوان في الشركة '%s'" -#: erpnext/controllers/stock_controller.py:914 +#: erpnext/controllers/stock_controller.py:917 msgid "Please set an Expense Account in the Items table" msgstr "يرجى تحديد حساب مصروفات في جدول البنود" @@ -38061,19 +38156,19 @@ msgstr "يرجى ضبط صف واحد على الأقل في جدول الضرا msgid "Please set both the Tax ID and Fiscal Code on Company {0}" msgstr "يرجى تحديد كل من رقم التعريف الضريبي والرمز المالي للشركة {0}" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2468 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2475 msgid "Please set default Cash or Bank account in Mode of Payment {0}" msgstr "الرجاء تحديد الحساب البنكي أو النقدي الافتراضي في نوع الدفع\\n
\\nPlease set default Cash or Bank account in Mode of Payment {0}" #: erpnext/accounts/doctype/pos_opening_entry/pos_opening_entry.py:94 #: erpnext/accounts/doctype/pos_profile/pos_profile.py:197 -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:3084 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:3091 msgid "Please set default Cash or Bank account in Mode of Payment {}" msgstr "الرجاء تعيين حساب نقدي أو مصرفي افتراضي في طريقة الدفع {}" #: erpnext/accounts/doctype/pos_opening_entry/pos_opening_entry.py:96 #: erpnext/accounts/doctype/pos_profile/pos_profile.py:199 -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:3086 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:3093 msgid "Please set default Cash or Bank account in Mode of Payments {}" msgstr "الرجاء تعيين حساب نقدي أو مصرفي افتراضي في طريقة الدفع {}" @@ -38089,11 +38184,11 @@ msgstr "يرجى تعيين حساب المصروفات الافتراضي في msgid "Please set default UOM in Stock Settings" msgstr "يرجى تعيين الافتراضي UOM في إعدادات الأسهم" -#: erpnext/controllers/stock_controller.py:773 +#: erpnext/controllers/stock_controller.py:776 msgid "Please set default cost of goods sold account in company {0} for booking rounding gain and loss during stock transfer" msgstr "يرجى تحديد حساب تكلفة البضائع المباعة الافتراضي في الشركة {0} لتسجيل مكاسب وخسائر التقريب أثناء نقل المخزون" -#: erpnext/controllers/stock_controller.py:228 +#: erpnext/controllers/stock_controller.py:231 msgid "Please set default inventory account for item {0}, or their item group or brand." msgstr "يرجى تعيين حساب المخزون الافتراضي للعنصر {0}، أو مجموعة العناصر أو العلامة التجارية الخاصة به." @@ -38114,7 +38209,7 @@ msgstr "يرجى تحديد أحد الخيارات التالية:" msgid "Please set opening number of booked depreciations" msgstr "يرجى تحديد عدد الإهلاكات المحجوزة في بداية الفترة" -#: erpnext/public/js/controllers/transaction.js:2687 +#: erpnext/public/js/controllers/transaction.js:2701 msgid "Please set recurring after saving" msgstr "يرجى تحديد (تكرار) بعد الحفظ" @@ -38122,7 +38217,7 @@ msgstr "يرجى تحديد (تكرار) بعد الحفظ" msgid "Please set the Customer Address" msgstr "يرجى ضبط عنوان العميل" -#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:187 +#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:198 msgid "Please set the Default Cost Center in {0} company." msgstr "يرجى تعيين مركز التكلفة الافتراضي في الشركة {0}." @@ -38130,11 +38225,11 @@ msgstr "يرجى تعيين مركز التكلفة الافتراضي في ال msgid "Please set the Item Code first" msgstr "يرجى تعيين رمز العنصر أولا" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1718 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1736 msgid "Please set the Target Warehouse in the Job Card" msgstr "يرجى تحديد المستودع المستهدف في بطاقة الوظيفة" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1722 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1740 msgid "Please set the WIP Warehouse in the Job Card" msgstr "يرجى تحديد مستودع العمل قيد التنفيذ في بطاقة العمل" @@ -38196,7 +38291,7 @@ msgid "Please specify Company to proceed" msgstr "الرجاء تحديد الشركة للمضى قدما\\n
\\nPlease specify Company to proceed" #: erpnext/controllers/accounts_controller.py:3207 -#: erpnext/public/js/controllers/accounts.js:117 +#: erpnext/public/js/controllers/accounts.js:114 msgid "Please specify a valid Row ID for row {0} in table {1}" msgstr "يرجى تحديد هوية الصف صالحة لصف {0} في الجدول {1}" @@ -38208,7 +38303,7 @@ msgstr "يرجى تحديد {0} أولاً." msgid "Please specify at least one attribute in the Attributes table" msgstr "يرجى تحديد خاصية واحدة على الأقل في جدول (الخاصيات)" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:623 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:626 msgid "Please specify either Quantity or Valuation Rate or both" msgstr "يرجى تحديد الكمية أو التقييم إما قيم أو كليهما" @@ -38379,7 +38474,7 @@ msgstr "" #: erpnext/accounts/doctype/journal_entry/journal_entry.json #: erpnext/accounts/doctype/loyalty_point_entry/loyalty_point_entry.json #: erpnext/accounts/doctype/opening_invoice_creation_tool_item/opening_invoice_creation_tool_item.json -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:874 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:883 #: erpnext/accounts/doctype/payment_entry/payment_entry.json #: erpnext/accounts/doctype/payment_ledger_entry/payment_ledger_entry.json #: erpnext/accounts/doctype/payment_order/payment_order.json @@ -38456,7 +38551,7 @@ msgstr "لا يمكن أن يكون تاريخ النشر تاريخا مستق msgid "Posting Date inheritance for exchange gain / loss" msgstr "" -#: erpnext/public/js/controllers/transaction.js:1112 +#: erpnext/public/js/controllers/transaction.js:1131 msgid "Posting Date will change to today's date as Edit Posting Date and Time is unchecked. Are you sure want to proceed?" msgstr "سيتم تغيير تاريخ النشر إلى تاريخ اليوم لأن خيار \"تعديل تاريخ ووقت النشر\" غير مُفعّل. هل أنت متأكد من رغبتك في المتابعة؟" @@ -38517,7 +38612,7 @@ msgstr "تاريخ ووقت النشر" msgid "Posting Time" msgstr "نشر التوقيت" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:2789 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2847 msgid "Posting date and posting time is mandatory" msgstr "تاريخ النشر و وقت النشر الزامي\\n
\\nPosting date and posting time is mandatory" @@ -38594,6 +38689,11 @@ msgstr "مدعوم من {0}" msgid "Pre Sales" msgstr "قبل البيع" +#. Description of the 'Company Bank Account' (Link) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Pre-filled on payment entries for this customer. Must be a company account." +msgstr "" + #: erpnext/setup/setup_wizard/operations/install_fixtures.py:307 msgid "Preference" msgstr "تفضيل" @@ -38765,6 +38865,7 @@ msgstr "ألواح سعر الخصم" #. Option for the 'Rate Of Materials Based On' (Select) field in DocType 'BOM #. Creator' #. Label of the buying_price_list (Link) field in DocType 'BOM Creator' +#. Label of the default_price_list (Link) field in DocType 'Customer' #. Label of the selling_price_list (Link) field in DocType 'Quotation' #. Label of the selling_price_list (Link) field in DocType 'Sales Order' #. Label of a Link in the Selling Workspace @@ -38788,6 +38889,7 @@ msgstr "ألواح سعر الخصم" #: erpnext/buying/workspace/buying/buying.json #: erpnext/manufacturing/doctype/bom/bom.json #: erpnext/manufacturing/doctype/bom_creator/bom_creator.json +#: erpnext/selling/doctype/customer/customer.json #: erpnext/selling/doctype/quotation/quotation.json #: erpnext/selling/doctype/sales_order/sales_order.json #: erpnext/selling/report/customer_wise_item_price/customer_wise_item_price.py:44 @@ -38949,7 +39051,7 @@ msgstr "السعر لا يعتمد على UOM" msgid "Price Per Unit ({0})" msgstr "سعر الوحدة ({0})" -#: erpnext/selling/page/point_of_sale/pos_controller.js:696 +#: erpnext/selling/page/point_of_sale/pos_controller.js:687 msgid "Price is not set for the item." msgstr "لم يتم تحديد سعر للمنتج." @@ -39116,6 +39218,11 @@ msgstr "يتم تطبيق قواعد التسعير بشكل إضافي بناء msgid "Primary Address Details" msgstr "تفاصيل العنوان الرئيسي" +#. Label of the primary_address (Text Editor) field in DocType 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "Primary Address Preview" +msgstr "" + #. Label of the primary_address_and_contact_detail_section (Section Break) #. field in DocType 'Supplier' #. Label of the primary_address_and_contact_detail (Section Break) field in @@ -39350,7 +39457,7 @@ msgstr "لا يمكن أن تتجاوز نسبة الفاقد في العملي msgid "Process Loss Qty" msgstr "كمية الفاقد في العملية" -#: erpnext/manufacturing/doctype/job_card/job_card.js:289 +#: erpnext/manufacturing/doctype/job_card/job_card.js:288 msgid "Process Loss Quantity" msgstr "كمية الفاقد في العملية" @@ -39431,7 +39538,7 @@ msgstr "عملية الاشتراك" msgid "Process in Single Transaction" msgstr "معالجة في معاملة واحدة" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1500 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1518 msgid "Process loss quantity cannot be negative." msgstr "" @@ -39544,7 +39651,7 @@ msgstr "حزم المنتجات" msgid "Product Bundle Balance" msgstr "حزمة المنتج الرصيد" -#: erpnext/stock/report/item_where_used/item_where_used.py:278 +#: erpnext/stock/report/item_where_used/item_where_used.py:274 msgid "Product Bundle Component" msgstr "" @@ -39569,7 +39676,7 @@ msgstr "المنتج حزمة مساعدة" msgid "Product Bundle Item" msgstr "المنتج حزمة البند" -#: erpnext/stock/report/item_where_used/item_where_used.py:305 +#: erpnext/stock/report/item_where_used/item_where_used.py:303 msgid "Product Bundle Parent" msgstr "" @@ -40136,7 +40243,7 @@ msgid "Prospects Engaged But Not Converted" msgstr "آفاق تشارك ولكن لم تتحول" #: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:198 -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:786 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:797 msgid "Protected DocType" msgstr "" @@ -40390,7 +40497,7 @@ msgstr "لا يمكن إجراء فاتورة الشراء مقابل أصل م msgid "Purchase Invoice {0} is already submitted" msgstr "فاتورة الشراء {0} تم ترحيلها من قبل" -#: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1970 +#: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1973 msgid "Purchase Invoices" msgstr "فواتير الشراء" @@ -40431,7 +40538,7 @@ msgstr "فواتير الشراء" #: erpnext/buying/report/purchase_order_analysis/purchase_order_analysis.js:48 #: erpnext/buying/report/purchase_order_analysis/purchase_order_analysis.py:203 #: erpnext/buying/workspace/buying/buying.json -#: erpnext/controllers/buying_controller.py:918 +#: erpnext/controllers/buying_controller.py:981 #: erpnext/crm/doctype/contract/contract.json #: erpnext/manufacturing/doctype/blanket_order/blanket_order.js:54 #: erpnext/manufacturing/doctype/production_plan_sub_assembly_item/production_plan_sub_assembly_item.json @@ -40502,7 +40609,7 @@ msgstr "صنف امر الشراء" msgid "Purchase Order Item Supplied" msgstr "الأصناف المزوده بامر الشراء" -#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:1014 +#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:1020 msgid "Purchase Order Item reference is missing in Subcontracting Receipt {0}" msgstr "مرجع بند أمر الشراء مفقود في إيصال التعاقد من الباطن {0}" @@ -40691,7 +40798,7 @@ msgstr "شراء اتجاهات الإيصال " msgid "Purchase Receipt doesn't have any Item for which Retain Sample is enabled." msgstr "لا يحتوي إيصال الشراء على أي عنصر تم تمكين الاحتفاظ عينة به." -#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:1090 +#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:1096 msgid "Purchase Receipt {0} created." msgstr "تم إنشاء إيصال الشراء {0} ." @@ -40821,7 +40928,7 @@ msgstr "المشتريات" msgid "Purpose" msgstr "غرض" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:676 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:679 msgid "Purpose must be one of {0}" msgstr "الهدف يجب ان يكون واحد ل {0}\\n
\\nPurpose must be one of {0}" @@ -40847,6 +40954,12 @@ msgstr "قاعدة التخزين" msgid "Putaway Rule already exists for Item {0} in Warehouse {1}." msgstr "توجد بالفعل قاعدة التخزين للعنصر {0} في المستودع {1}." +#. Description of the 'Mandatory Depends On (Backend)' (Small Text) field in +#. DocType 'Inventory Dimension' +#: erpnext/stock/doctype/inventory_dimension/inventory_dimension.json +msgid "Python expression evaluated on the server. Use doc.fieldname for the row and parent.fieldname for the parent document. When it evaluates to true the dimension becomes mandatory. Example: doc.t_warehouse and doc.qty > 0" +msgstr "" + #: banking/src/components/features/BankReconciliation/BankRecDateFilter.tsx:41 msgid "Q1" msgstr "" @@ -40919,7 +41032,7 @@ msgstr "" #: erpnext/public/js/bom_configurator/bom_configurator.bundle.js:398 #: erpnext/public/js/bom_configurator/bom_configurator.bundle.js:499 #: erpnext/public/js/stock_reservation.js:134 -#: erpnext/public/js/stock_reservation.js:336 erpnext/public/js/utils.js:870 +#: erpnext/public/js/stock_reservation.js:336 erpnext/public/js/utils.js:887 #: erpnext/selling/doctype/delivery_schedule_item/delivery_schedule_item.json #: erpnext/selling/doctype/product_bundle_item/product_bundle_item.json #: erpnext/selling/doctype/sales_order/sales_order.js:398 @@ -40938,7 +41051,7 @@ msgstr "" #: erpnext/stock/doctype/stock_entry_detail/stock_entry_detail.json #: erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.json #: erpnext/stock/report/incorrect_serial_no_valuation/incorrect_serial_no_valuation.py:195 -#: erpnext/stock/report/item_where_used/item_where_used.py:69 +#: erpnext/stock/report/item_where_used/item_where_used.py:63 #: erpnext/stock/report/serial_no_ledger/serial_no_ledger.py:74 #: erpnext/subcontracting/doctype/subcontracting_order/subcontracting_order.js:271 #: erpnext/subcontracting/doctype/subcontracting_order/subcontracting_order.js:370 @@ -41043,7 +41156,7 @@ msgstr "الكمية للتصنيع" msgid "Qty To Manufacture ({0}) cannot be a fraction for the UOM {2}. To allow this, disable '{1}' in the UOM {2}." msgstr "لا يمكن أن تكون كمية التصنيع ({0}) كسرًا في وحدة القياس {2}. للسماح بذلك، عطّل '{1}' في وحدة القياس {2}." -#: erpnext/manufacturing/doctype/job_card/job_card.py:260 +#: erpnext/manufacturing/doctype/job_card/job_card.py:261 msgid "Qty To Manufacture in the job card cannot be greater than Qty To Manufacture in the work order for the operation {0}.

Solution: Either you can reduce the Qty To Manufacture in the job card or set the 'Overproduction Percentage For Work Order' in the {1}." msgstr "" @@ -41149,8 +41262,8 @@ msgstr "" msgid "Qty to Fetch" msgstr "الكمية المطلوب جلبها" -#: erpnext/manufacturing/doctype/job_card/job_card.js:247 -#: erpnext/manufacturing/doctype/job_card/job_card.py:905 +#: erpnext/manufacturing/doctype/job_card/job_card.js:246 +#: erpnext/manufacturing/doctype/job_card/job_card.py:906 msgid "Qty to Manufacture" msgstr "الكمية للتصنيع" @@ -41318,7 +41431,7 @@ msgstr "فحص الجودة" msgid "Quality Inspection Analysis" msgstr "تحليل فحص الجودة" -#: erpnext/public/js/controllers/transaction.js:2950 +#: erpnext/public/js/controllers/transaction.js:2964 msgid "Quality Inspection Not Configured" msgstr "" @@ -41383,21 +41496,21 @@ msgstr "قالب فحص الجودة" msgid "Quality Inspection Template Name" msgstr "قالب فحص الجودة اسم" -#: erpnext/manufacturing/doctype/job_card/job_card.py:799 +#: erpnext/manufacturing/doctype/job_card/job_card.py:800 msgid "Quality Inspection is required for the item {0} before completing the job card {1}" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:810 -#: erpnext/manufacturing/doctype/job_card/job_card.py:819 +#: erpnext/manufacturing/doctype/job_card/job_card.py:811 +#: erpnext/manufacturing/doctype/job_card/job_card.py:820 msgid "Quality Inspection {0} is not submitted for the item: {1}" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:829 -#: erpnext/manufacturing/doctype/job_card/job_card.py:838 +#: erpnext/manufacturing/doctype/job_card/job_card.py:830 +#: erpnext/manufacturing/doctype/job_card/job_card.py:839 msgid "Quality Inspection {0} is rejected for the item: {1}" msgstr "" -#: erpnext/public/js/controllers/transaction.js:384 +#: erpnext/public/js/controllers/transaction.js:403 #: erpnext/stock/doctype/stock_entry/stock_entry.js:208 msgid "Quality Inspection(s)" msgstr "فحص الجودة" @@ -41687,8 +41800,8 @@ msgid "Quantity required for Item {0} in row {1}" msgstr "الكمية مطلوبة للبند {0} في الصف {1}\\n
\\nQuantity required for Item {0} in row {1}" #: erpnext/manufacturing/doctype/bom/bom.py:717 -#: erpnext/manufacturing/doctype/job_card/job_card.js:342 -#: erpnext/manufacturing/doctype/job_card/job_card.js:410 +#: erpnext/manufacturing/doctype/job_card/job_card.js:341 +#: erpnext/manufacturing/doctype/job_card/job_card.js:409 #: erpnext/manufacturing/doctype/workstation/workstation.js:303 msgid "Quantity should be greater than 0" msgstr "الكمية يجب أن تكون أبر من 0\\n
\\nQuantity should be greater than 0" @@ -41697,7 +41810,7 @@ msgstr "الكمية يجب أن تكون أبر من 0\\n
\\nQuantity should msgid "Quantity to Manufacture" msgstr "كمية لتصنيع" -#: erpnext/manufacturing/doctype/work_order/work_order.py:2798 +#: erpnext/manufacturing/doctype/work_order/work_order.py:2830 msgid "Quantity to Manufacture can not be zero for the operation {0}" msgstr "لا يمكن أن تكون الكمية للتصنيع صفراً للتشغيل {0}" @@ -41734,7 +41847,7 @@ msgstr "الربع {0} {1}" msgid "Query Route String" msgstr "سلسلة مسار الاستعلام" -#: erpnext/accounts/doctype/accounts_settings/accounts_settings.py:191 +#: erpnext/accounts/doctype/accounts_settings/accounts_settings.py:192 msgid "Queue Size should be between 5 and 100" msgstr "يجب أن يتراوح حجم قائمة الانتظار بين 5 و 100" @@ -41973,7 +42086,7 @@ msgstr "التي أثارها (بريد إلكتروني)" #: erpnext/manufacturing/doctype/bom_secondary_item/bom_secondary_item.json #: erpnext/manufacturing/doctype/work_order_additional_item/work_order_additional_item.json #: erpnext/manufacturing/doctype/work_order_item/work_order_item.json -#: erpnext/public/js/utils.js:880 +#: erpnext/public/js/utils.js:897 #: erpnext/selling/doctype/product_bundle_item/product_bundle_item.json #: erpnext/selling/doctype/quotation_item/quotation_item.json #: erpnext/selling/doctype/sales_order_item/sales_order_item.json @@ -42309,7 +42422,7 @@ msgstr "المواد الخام المستهلكة" msgid "Raw Materials Consumption" msgstr "استهلاك المواد الخام" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:417 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:420 msgid "Raw Materials Missing" msgstr "" @@ -42704,8 +42817,8 @@ msgstr "قائمة المرسل اليهم فارغة. يرجى إنشاء قا msgid "Receiving" msgstr "يستلم" -#: erpnext/selling/page/point_of_sale/pos_controller.js:260 -#: erpnext/selling/page/point_of_sale/pos_controller.js:270 +#: erpnext/selling/page/point_of_sale/pos_controller.js:251 +#: erpnext/selling/page/point_of_sale/pos_controller.js:261 #: erpnext/selling/page/point_of_sale/pos_past_order_list.js:19 msgid "Recent Orders" msgstr "الطلبات الأخيرة" @@ -43000,13 +43113,13 @@ msgstr "" #: banking/src/components/features/BankReconciliation/BankReconciliationStatement.tsx:155 #: banking/src/components/features/BankReconciliation/BankTransactionList.tsx:82 msgid "Reference #" -msgstr "" +msgstr "مرجع #" #: erpnext/accounts/doctype/journal_entry/journal_entry.py:1039 msgid "Reference #{0} dated {1}" msgstr "المرجع # {0} بتاريخ {1}" -#: erpnext/public/js/controllers/transaction.js:2800 +#: erpnext/public/js/controllers/transaction.js:2814 msgid "Reference Date for Early Payment Discount" msgstr "تاريخ مرجعي لخصم الدفع المبكر" @@ -43229,7 +43342,7 @@ msgstr "تفاصيل التسجيل" msgid "Regular" msgstr "منتظم" -#: erpnext/stock/doctype/inventory_dimension/inventory_dimension.py:212 +#: erpnext/stock/doctype/inventory_dimension/inventory_dimension.py:199 msgid "Rejected " msgstr "مرفوض " @@ -43431,7 +43544,7 @@ msgstr "" msgid "Remove item if charges is not applicable to that item" msgstr "قم بإزالة المنتج إذا لم تكن الرسوم مطبقة عليه." -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:566 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:569 msgid "Removed items with no change in quantity or value." msgstr "العناصر إزالتها مع أي تغيير في كمية أو قيمة." @@ -43668,7 +43781,7 @@ msgstr "سجل أخطاء إعادة النشر" msgid "Repost Item Valuation" msgstr "إعادة تقييم العنصر" -#: erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py:374 +#: erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py:377 msgid "Repost Item Valuation restarted for selected failed records." msgstr "تمت إعادة تشغيل تقييم العناصر المعاد نشرها للسجلات الفاشلة المحددة." @@ -43798,7 +43911,7 @@ msgstr "تاريخ الاستحقاق" msgid "Reqd Qty (BOM)" msgstr "الكمية المطلوبة (قائمة المواد)" -#: erpnext/public/js/utils.js:896 +#: erpnext/public/js/utils.js:913 msgid "Reqd by date" msgstr "مطلوب بالتاريخ" @@ -44030,8 +44143,7 @@ msgstr "البحث و التطوير" msgid "Researcher" msgstr "الباحث" -#. Description of the 'Supplier Primary Address' (Link) field in DocType -#. 'Supplier' +#. Description of the 'Primary Address' (Link) field in DocType 'Supplier' #. Description of the 'Customer Primary Address' (Link) field in DocType #. 'Customer' #: erpnext/buying/doctype/supplier/supplier.json @@ -44039,8 +44151,7 @@ msgstr "الباحث" msgid "Reselect, if the chosen address is edited after save" msgstr "إعادة تحديد، إذا تم تحرير عنوان المختار بعد حفظ" -#. Description of the 'Supplier Primary Contact' (Link) field in DocType -#. 'Supplier' +#. Description of the 'Primary Contact' (Link) field in DocType 'Supplier' #. Description of the 'Customer Primary Contact' (Link) field in DocType #. 'Customer' #: erpnext/buying/doctype/supplier/supplier.json @@ -44112,7 +44223,7 @@ msgstr "مخصص للتجميع الفرعي" msgid "Reserved" msgstr "محجوز" -#: erpnext/controllers/stock_controller.py:1321 +#: erpnext/controllers/stock_controller.py:1368 msgid "Reserved Batch Conflict" msgstr "تعارض الدُفعات المحجوزة" @@ -44182,7 +44293,7 @@ msgstr "الكمية المحجوزة" msgid "Reserved Quantity for Production" msgstr "الكمية المحجوزة للإنتاج" -#: erpnext/stock/stock_ledger.py:2307 +#: erpnext/stock/stock_ledger.py:2296 msgid "Reserved Serial No." msgstr "رقم تسلسلي محجوز" @@ -44198,13 +44309,13 @@ msgstr "رقم تسلسلي محجوز" #: erpnext/stock/doctype/pick_list/pick_list.js:178 #: erpnext/stock/report/reserved_stock/reserved_stock.json #: erpnext/stock/report/stock_balance/stock_balance.py:569 -#: erpnext/stock/stock_ledger.py:2291 +#: erpnext/stock/stock_ledger.py:2280 #: erpnext/subcontracting/doctype/subcontracting_order/subcontracting_order.js:205 #: erpnext/subcontracting/doctype/subcontracting_order/subcontracting_order.js:333 msgid "Reserved Stock" msgstr "المخزون المحجوز" -#: erpnext/stock/stock_ledger.py:2336 +#: erpnext/stock/stock_ledger.py:2325 msgid "Reserved Stock for Batch" msgstr "المخزون المحجوز للدفعة" @@ -44216,7 +44327,7 @@ msgstr "مخزون مخصص للمواد الخام" msgid "Reserved Stock for Sub-assembly" msgstr "المخزون المحجوز للتجميع الفرعي" -#: erpnext/controllers/buying_controller.py:658 +#: erpnext/controllers/buying_controller.py:721 msgid "Reserved Warehouse is mandatory for the Item {item_code} in Raw Materials supplied." msgstr "" @@ -44474,7 +44585,7 @@ msgstr "النتيجة عنوان الحقل" msgid "Resume" msgstr "استئنف" -#: erpnext/manufacturing/doctype/job_card/job_card.js:663 +#: erpnext/manufacturing/doctype/job_card/job_card.js:661 msgid "Resume Job" msgstr "سيرة ذاتية للوظيفة" @@ -44611,7 +44722,7 @@ msgstr "كمية الإرجاع من المستودع المرفوض" msgid "Return Raw Material to Customer" msgstr "إعادة المواد الخام إلى العميل" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1565 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1572 msgid "Return invoice of asset cancelled" msgstr "تم إلغاء فاتورة إرجاع الأصل" @@ -45087,8 +45198,8 @@ msgstr "مخصص خسائر التقريب" msgid "Rounding Loss Allowance should be between 0 and 1" msgstr "يجب أن يكون بدل خسائر التقريب بين 0 و 1" -#: erpnext/controllers/stock_controller.py:785 -#: erpnext/controllers/stock_controller.py:800 +#: erpnext/controllers/stock_controller.py:788 +#: erpnext/controllers/stock_controller.py:803 msgid "Rounding gain/loss Entry for Stock Transfer" msgstr "قيد تقريب الربح/الخسارة لنقل الأسهم" @@ -45115,11 +45226,11 @@ msgstr "اسم التوجيه" msgid "Row # {0}: Cannot return more than {1} for Item {2}" msgstr "الصف # {0}: لا يمكن الارجاع أكثر من {1} للبند {2}" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:188 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:191 msgid "Row # {0}: Please add Serial and Batch Bundle for Item {1}" msgstr "الصف رقم {0}: يرجى إضافة الرقم التسلسلي وحزمة الدفعة للعنصر {1}" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:207 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:210 msgid "Row # {0}: Please enter quantity for Item {1} as it is not zero." msgstr "الصف رقم {0}: يرجى إدخال الكمية للعنصر {1} لأنها ليست صفرًا." @@ -45136,12 +45247,12 @@ msgid "Row #1: Sequence ID must be 1 for Operation {0}." msgstr "الصف رقم 1: يجب أن يكون معرف التسلسل 1 للعملية {0}." #: erpnext/accounts/doctype/pos_invoice/pos_invoice.py:564 -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2123 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2130 msgid "Row #{0} (Payment Table): Amount must be negative" msgstr "الصف # {0} (جدول الدفع): يجب أن يكون المبلغ سلبيًا" #: erpnext/accounts/doctype/pos_invoice/pos_invoice.py:562 -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2118 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2125 msgid "Row #{0} (Payment Table): Amount must be positive" msgstr "الصف رقم {0} (جدول الدفع): يجب أن يكون المبلغ موجبا" @@ -45158,11 +45269,11 @@ msgid "Row #{0}: Acceptance Criteria Formula is required." msgstr "الصف #{0}: صيغة معايير القبول مطلوبة." #: erpnext/controllers/subcontracting_controller.py:126 -#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:599 +#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:605 msgid "Row #{0}: Accepted Warehouse and Rejected Warehouse cannot be same" msgstr "الصف #{0}: لا يمكن أن يكون المستودع المقبول هو نفسه المستودع المرفوض" -#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:592 +#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:598 msgid "Row #{0}: Accepted Warehouse is mandatory for the accepted Item {1}" msgstr "الصف #{0}: المستودع المقبول إلزامي للصنف المقبول {1}" @@ -45183,7 +45294,7 @@ msgstr "الصف # {0}: المبلغ المخصص لا يمكن أن يكون أ msgid "Row #{0}: Allocated amount:{1} is greater than outstanding amount:{2} for Payment Term {3}" msgstr "الصف #{0}: المبلغ المخصص:{1} أكبر من المبلغ المستحق:{2} لفترة الدفع {3}" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:276 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:279 msgid "Row #{0}: Amount must be a positive number" msgstr "الصف #{0}: يجب أن يكون المبلغ عددًا موجبًا" @@ -45255,31 +45366,35 @@ msgstr "الصف #{0}: لا يمكن حذف العنصر {1} الذي تم طل msgid "Row #{0}: Cannot set Rate if the billed amount is greater than the amount for Item {1}." msgstr "الصف #{0}: لا يمكن تحديد السعر إذا كان المبلغ المطلوب دفعه أكبر من المبلغ الخاص بالعنصر {1}." -#: erpnext/manufacturing/doctype/job_card/job_card.py:1148 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1149 msgid "Row #{0}: Cannot transfer more than Required Qty {1} for Item {2} against Job Card {3}" msgstr "الصف #{0}: لا يمكن نقل أكثر من الكمية المطلوبة {1} للعنصر {2} مقابل بطاقة العمل {3}" +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1315 +msgid "Row #{0}: Cannot transfer {1} {2} of Item {3}. Maximum transferable quantity is {4} {2}." +msgstr "" + #: erpnext/selling/doctype/product_bundle/product_bundle.py:87 msgid "Row #{0}: Child Item should not be a Product Bundle. Please remove Item {1} and Save" msgstr "الصف رقم {0}: يجب ألا يكون العنصر الفرعي عبارة عن حزمة منتج. يرجى إزالة العنصر {1} وحفظه" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:251 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:254 msgid "Row #{0}: Consumed Asset {1} cannot be Draft" msgstr "الصف #{0}: لا يمكن أن يكون الأصل المستهلك {1} مسودة" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:254 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:257 msgid "Row #{0}: Consumed Asset {1} cannot be cancelled" msgstr "الصف #{0}: لا يمكن إلغاء الأصل المستهلك {1}" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:236 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:239 msgid "Row #{0}: Consumed Asset {1} cannot be the same as the Target Asset" msgstr "الصف #{0}: لا يمكن أن يكون الأصل المستهلك {1} هو نفسه الأصل المستهدف" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:245 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:248 msgid "Row #{0}: Consumed Asset {1} cannot be {2}" msgstr "الصف #{0}: لا يمكن أن يكون الأصل المستهلك {1} هو {2}" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:259 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:262 msgid "Row #{0}: Consumed Asset {1} does not belong to company {2}" msgstr "الصف #{0}: الأصل المستهلك {1} لا ينتمي إلى الشركة {2}" @@ -45350,7 +45465,7 @@ msgstr "الصف # {0}: إدخال مكرر في المراجع {1} {2}" msgid "Row #{0}: Expected Delivery Date cannot be before Purchase Order Date" msgstr "الصف # {0}: تاريخ التسليم المتوقع لا يمكن أن يكون قبل تاريخ أمر الشراء" -#: erpnext/controllers/stock_controller.py:916 +#: erpnext/controllers/stock_controller.py:919 msgid "Row #{0}: Expense Account not set for the Item {1}. {2}" msgstr "الصف #{0}: لم يتم تعيين حساب المصروفات للعنصر {1}. {2}" @@ -45377,11 +45492,11 @@ msgstr "" msgid "Row #{0}: Finished Good Item {1} must be a sub-contracted item" msgstr "الصف #{0}: يجب أن يكون المنتج النهائي {1} منتجًا تم التعاقد عليه من الباطن" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:632 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:635 msgid "Row #{0}: Finished Good must be {1}" msgstr "الصف #{0}: يجب أن يكون المنتج النهائي {1}" -#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:580 +#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:586 msgid "Row #{0}: Finished Good reference is mandatory for Secondary Item {1}." msgstr "" @@ -45406,7 +45521,7 @@ msgstr "الصف #{0}: يجب أن يكون معدل الاستهلاك أكبر msgid "Row #{0}: From Date cannot be before To Date" msgstr "الصف #{0}: لا يمكن أن يكون تاريخ البدء قبل تاريخ الانتهاء" -#: erpnext/manufacturing/doctype/job_card/job_card.py:893 +#: erpnext/manufacturing/doctype/job_card/job_card.py:894 msgid "Row #{0}: From Time and To Time fields are required" msgstr "الصف #{0}: حقلا \"من وقت\" و\"إلى وقت\" مطلوبان." @@ -45414,7 +45529,7 @@ msgstr "الصف #{0}: حقلا \"من وقت\" و\"إلى وقت\" مطلوبا msgid "Row #{0}: Item added" msgstr "الصف # {0}: تمت إضافة العنصر" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1835 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1893 msgid "Row #{0}: Item {1} cannot be transferred more than {2} against {3} {4}" msgstr "الصف #{0}: لا يمكن نقل العنصر {1} إلى أكثر من {2} مقابل {3} {4}" @@ -45430,7 +45545,7 @@ msgstr "الصف #{0}: تم اختيار العنصر {1} ، يرجى حجز ا msgid "Row #{0}: Item {1} has no stock in warehouse {2}." msgstr "الصف #{0}: العنصر {1} ليس لديه مخزون في المستودع {2}." -#: erpnext/controllers/stock_controller.py:145 +#: erpnext/controllers/stock_controller.py:148 msgid "Row #{0}: Item {1} has zero rate but '{2}' is not enabled." msgstr "" @@ -45442,7 +45557,7 @@ msgstr "الصف #{0}: العنصر {1} في المستودع {2}: متوفر {3 msgid "Row #{0}: Item {1} is not a Customer Provided Item." msgstr "الصف #{0}: العنصر {1} ليس عنصرًا مقدمًا من العميل." -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:766 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:769 msgid "Row #{0}: Item {1} is not a Serialized/Batched Item. It cannot have a Serial No/Batch No against it." msgstr "الصف # {0}: العنصر {1} ليس عنصرًا تسلسليًا / مُجمَّع. لا يمكن أن يكون له رقم مسلسل / لا دفعة ضده." @@ -45451,15 +45566,15 @@ msgstr "الصف # {0}: العنصر {1} ليس عنصرًا تسلسليًا / msgid "Row #{0}: Item {1} is not a part of Subcontracting Inward Order {2}" msgstr "الصف #{0}: العنصر {1} ليس جزءًا من أمر الشراء الداخلي للتعاقد من الباطن {2}" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:270 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:273 msgid "Row #{0}: Item {1} is not a service item" msgstr "الصف #{0}: العنصر {1} ليس عنصر خدمة" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:224 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:227 msgid "Row #{0}: Item {1} is not a stock item" msgstr "الصف #{0}: العنصر {1} ليس عنصرًا متوفرًا في المخزون" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1080 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1083 msgid "Row #{0}: Item {1} is not part of the source manufacture entry and cannot be added to this disassembly." msgstr "" @@ -45471,7 +45586,7 @@ msgstr "الصف #{0}: العنصر {1} غير متطابق. لا يُسمح ب msgid "Row #{0}: Item {1} mismatch. Changing of item code is not permitted." msgstr "الصف #{0}: عدم تطابق العنصر {1} . لا يُسمح بتغيير رمز العنصر." -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1089 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1092 msgid "Row #{0}: Item {1} quantity ({2} in stock UOM) does not match the quantity derived from the source ({3}). Do not change the UOM, conversion factor or quantity of disassembly rows." msgstr "" @@ -45499,7 +45614,7 @@ msgstr "الصف #{0}: الصف {1} فقط متاح للحجز للعنصر {2}" msgid "Row #{0}: Opening Accumulated Depreciation must be less than or equal to {1}" msgstr "الصف #{0}: يجب أن يكون الاستهلاك المتراكم الافتتاحي أقل من أو يساوي {1}" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1144 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1147 msgid "Row #{0}: Operation {1} is not completed for {2} qty of finished goods in Work Order {3}. Please update operation status via Job Card {4}." msgstr "الصف # {0}: العملية {1} لم تكتمل لـ {2} الكمية من السلع تامة الصنع في أمر العمل {3}. يرجى تحديث حالة التشغيل عبر بطاقة العمل {4}." @@ -45541,8 +45656,8 @@ msgstr "" msgid "Row #{0}: Qty increased by {1}" msgstr "الصف #{0}: زادت الكمية بمقدار {1}" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:227 -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:273 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:230 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:276 msgid "Row #{0}: Qty must be a positive number" msgstr "الصف #{0}: يجب أن تكون الكمية عددًا موجبًا" @@ -45550,15 +45665,15 @@ msgstr "الصف #{0}: يجب أن تكون الكمية عددًا موجبًا msgid "Row #{0}: Qty should be less than or equal to Available Qty to Reserve (Actual Qty - Reserved Qty) {1} for Iem {2} against Batch {3} in Warehouse {4}." msgstr "الصف #{0}: يجب أن تكون الكمية أقل من أو تساوي الكمية المتاحة للحجز (الكمية الفعلية - الكمية المحجوزة) {1} للصنف {2} مقابل الدفعة {3} في المستودع {4}." -#: erpnext/controllers/stock_controller.py:1458 +#: erpnext/controllers/stock_controller.py:1505 msgid "Row #{0}: Quality Inspection is required for Item {1}" msgstr "الصف #{0}: يلزم فحص الجودة للعنصر {1}" -#: erpnext/controllers/stock_controller.py:1473 +#: erpnext/controllers/stock_controller.py:1520 msgid "Row #{0}: Quality Inspection {1} is not submitted for the item: {2}" msgstr "الصف #{0}: لم يتم تقديم فحص الجودة {1} للعنصر: {2}" -#: erpnext/controllers/stock_controller.py:1488 +#: erpnext/controllers/stock_controller.py:1535 msgid "Row #{0}: Quality Inspection {1} was rejected for item {2}" msgstr "الصف #{0}: تم رفض فحص الجودة {1} للعنصر {2}" @@ -45585,15 +45700,15 @@ msgstr "الصف #{0}: يجب أن تكون الكمية المراد حجزها msgid "Row #{0}: Rate must be same as {1}: {2} ({3} / {4})" msgstr "الصف #{0}: يجب أن يكون المعدل هو نفسه {1}: {2} ({3} / {4})" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1242 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1251 msgid "Row #{0}: Reference Document Type must be one of Purchase Order, Purchase Invoice or Journal Entry" msgstr "الصف {0} : نوع المستند المرجع يجب أن يكون واحدة من طلب شراء ,فاتورة شراء أو قيد يومبة\\n
\\nRow #{0}: Reference Document Type must be one of Purchase Order, Purchase Invoice or Journal Entry" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1228 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1237 msgid "Row #{0}: Reference Document Type must be one of Sales Order, Sales Invoice, Journal Entry or Dunning" msgstr "الصف # {0}: يجب أن يكون نوع المستند المرجعي أحد أوامر المبيعات أو فاتورة المبيعات أو إدخال دفتر اليومية أو المطالبة" -#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:573 +#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:579 msgid "Row #{0}: Rejected Qty cannot be set for Secondary Item {1}." msgstr "" @@ -45617,7 +45732,7 @@ msgstr "الصف #{0}: لا يمكن أن تكون الكمية المُعادة msgid "Row #{0}: Returned quantity cannot be greater than available quantity to return for Item {1}" msgstr "الصف #{0}: لا يمكن أن تكون الكمية المُعادة أكبر من الكمية المتاحة للإرجاع للصنف {1}" -#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:568 +#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:574 msgid "Row #{0}: Secondary Item Qty cannot be zero" msgstr "" @@ -45633,7 +45748,7 @@ msgstr "" msgid "Row #{0}: Sequence ID must be {1} or {2} for Operation {3}." msgstr "الصف #{0}: يجب أن يكون معرف التسلسل {1} أو {2} للعملية {3}." -#: erpnext/controllers/stock_controller.py:300 +#: erpnext/controllers/stock_controller.py:303 msgid "Row #{0}: Serial No {1} does not belong to Batch {2}" msgstr "الصف # {0}: الرقم التسلسلي {1} لا ينتمي إلى الدُفعة {2}" @@ -45681,11 +45796,11 @@ msgstr "الصف #{0}: لا يمكن أن يكون مستودع المصدر {1} msgid "Row #{0}: Source Warehouse {1} for item {2} must be same as Source Warehouse {3} in the Work Order." msgstr "الصف #{0}: يجب أن يكون مستودع المصدر {1} للعنصر {2} هو نفسه مستودع المصدر {3} في أمر العمل." -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1291 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1349 msgid "Row #{0}: Source and Target Warehouse cannot be the same for Material Transfer" msgstr "الصف #{0}: لا يمكن أن يكون مستودع المصدر ومستودع الهدف متطابقين لنقل المواد" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1313 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1371 msgid "Row #{0}: Source, Target Warehouse and Inventory Dimensions cannot be the exact same for Material Transfer" msgstr "الصف #{0}: لا يمكن أن تكون أبعاد المستودع المصدر والمستودع الهدف والمخزون متطابقة تمامًا في عملية نقل المواد." @@ -45730,7 +45845,7 @@ msgstr "الصف #{0}: المخزون غير متاح للحجز للصنف {1} msgid "Row #{0}: Stock not available to reserve for the Item {1} in Warehouse {2}." msgstr "الصف #{0}: المخزون غير متاح للحجز للصنف {1} في المستودع {2}." -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1308 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1315 msgid "Row #{0}: Stock quantity {1} ({2}) for item {3} cannot exceed {4}" msgstr "الصف #{0}: كمية المخزون {1} ({2}) للصنف {3} لا يمكن أن تتجاوز {4}" @@ -45738,7 +45853,7 @@ msgstr "الصف #{0}: كمية المخزون {1} ({2}) للصنف {3} لا ي msgid "Row #{0}: Target Warehouse must be same as Customer Warehouse {1} from the linked Subcontracting Inward Order" msgstr "الصف #{0}: يجب أن يكون المستودع المستهدف هو نفسه مستودع العميل {1} من أمر الشراء الداخلي المرتبط بالتعاقد من الباطن" -#: erpnext/controllers/stock_controller.py:313 +#: erpnext/controllers/stock_controller.py:316 msgid "Row #{0}: The batch {1} has already expired." msgstr "الصف رقم {0}: انتهت صلاحية الدفعة {1} بالفعل." @@ -45758,7 +45873,7 @@ msgstr "الصف #{0}: لا يمكن أن يكون إجمالي عدد الإه msgid "Row #{0}: Total Number of Depreciations must be greater than zero" msgstr "الصف #{0}: يجب أن يكون إجمالي عدد الاستهلاكات أكبر من الصفر" -#: erpnext/controllers/stock_controller.py:97 +#: erpnext/controllers/stock_controller.py:100 msgid "Row #{0}: Warehouse {1} does not match with the warehouse {2} in Serial and Batch Bundle {3}." msgstr "" @@ -45770,7 +45885,7 @@ msgstr "الصف #{0}: مبلغ الاستقطاع {1} لا يتطابق مع ا msgid "Row #{0}: Work Order exists against full or partial quantity of Item {1}" msgstr "الصف #{0}: يوجد أمر عمل مقابل كمية كاملة أو جزئية من العنصر {1}" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:101 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:104 msgid "Row #{0}: You cannot use the inventory dimension '{1}' in Stock Reconciliation to modify the quantity or valuation rate. Stock reconciliation with inventory dimensions is intended solely for performing opening entries." msgstr "الصف #{0}: لا يمكنك استخدام بُعد المخزون '{1}' في مطابقة المخزون لتعديل الكمية أو معدل التقييم. تُستخدم مطابقة المخزون باستخدام أبعاد المخزون فقط لإجراء قيود افتتاحية." @@ -45778,10 +45893,18 @@ msgstr "الصف #{0}: لا يمكنك استخدام بُعد المخزون '{ msgid "Row #{0}: You must select an Asset for Item {1}." msgstr "الصف #{0}: يجب عليك تحديد أصل للعنصر {1}." +#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:142 +msgid "Row #{0}: {1} account is not of type {2}" +msgstr "" + #: erpnext/public/js/controllers/buying.js:265 msgid "Row #{0}: {1} can not be negative for item {2}" msgstr "الصف # {0}: {1} لا يمكن أن يكون سالبا للبند {2}" +#: erpnext/controllers/stock_controller.py:1183 +msgid "Row #{0}: {1} is mandatory for the Inventory Dimension {2}." +msgstr "" + #: erpnext/stock/doctype/quality_inspection/quality_inspection.py:322 msgid "Row #{0}: {1} is not a valid reading field. Please refer to the field description." msgstr "الصف #{0}: {1} ليس حقل قراءة صالحًا. يُرجى مراجعة وصف الحقل." @@ -45806,23 +45929,23 @@ msgstr "الصف #{1}: المستودع إلزامي لعنصر المخزون { msgid "Row #{idx}: Cannot select Supplier Warehouse while suppling raw materials to subcontractor." msgstr "الصف #{idx}: لا يمكن تحديد مستودع المورد أثناء توريد المواد الخام إلى المقاول من الباطن." -#: erpnext/controllers/buying_controller.py:589 +#: erpnext/controllers/buying_controller.py:652 msgid "Row #{idx}: Item rate has been updated as per valuation rate since its an internal stock transfer." msgstr "الصف #{idx}: تم تحديث سعر الصنف وفقًا لسعر التقييم نظرًا لأنه تحويل مخزون داخلي." -#: erpnext/controllers/buying_controller.py:1060 +#: erpnext/controllers/buying_controller.py:1123 msgid "Row #{idx}: Please enter a location for the asset item {item_code}." msgstr "الصف #{idx}: الرجاء إدخال موقع عنصر الأصل {item_code}." -#: erpnext/controllers/buying_controller.py:712 +#: erpnext/controllers/buying_controller.py:775 msgid "Row #{idx}: Received Qty must be equal to Accepted + Rejected Qty for Item {item_code}." msgstr "الصف #{idx}: يجب أن تكون الكمية المستلمة مساوية للكمية المقبولة + الكمية المرفوضة للعنصر {item_code}." -#: erpnext/controllers/buying_controller.py:725 +#: erpnext/controllers/buying_controller.py:788 msgid "Row #{idx}: {field_label} can not be negative for item {item_code}." msgstr "الصف #{idx}: {field_label} لا يمكن أن يكون سالباً بالنسبة للعنصر {item_code}." -#: erpnext/controllers/buying_controller.py:678 +#: erpnext/controllers/buying_controller.py:741 msgid "Row #{idx}: {field_label} is mandatory." msgstr "الصف #{idx}: {field_label} إلزامي." @@ -45830,7 +45953,7 @@ msgstr "الصف #{idx}: {field_label} إلزامي." msgid "Row #{idx}: {from_warehouse_field} and {to_warehouse_field} cannot be same." msgstr "الصف #{idx}: {from_warehouse_field} و {to_warehouse_field} لا يمكن أن يكونا متطابقين." -#: erpnext/controllers/buying_controller.py:1177 +#: erpnext/controllers/buying_controller.py:1240 msgid "Row #{idx}: {schedule_date} cannot be before {transaction_date}." msgstr "الصف #{idx}: {schedule_date} لا يمكن أن يكون قبل {transaction_date}." @@ -45903,7 +46026,7 @@ msgstr "الصف رقم {}: {} {} لا ينتمي إلى الشركة {}. يرج msgid "Row No {0}: Warehouse is required. Please set a Default Warehouse for Item {1} and Company {2}" msgstr "رقم الصف {0}: مطلوب تحديد مستودع. يُرجى تحديد مستودع افتراضي للصنف {1} والشركة {2}" -#: erpnext/manufacturing/doctype/job_card/job_card.py:747 +#: erpnext/manufacturing/doctype/job_card/job_card.py:748 msgid "Row {0} : Operation is required against the raw material item {1}" msgstr "الصف {0}: العملية مطلوبة مقابل عنصر المادة الخام {1}" @@ -45911,11 +46034,11 @@ msgstr "الصف {0}: العملية مطلوبة مقابل عنصر الماد msgid "Row {0} picked quantity is less than the required quantity, additional {1} {2} required." msgstr "الكمية المختارة من الصف {0} أقل من الكمية المطلوبة، يلزم كمية إضافية {1} {2} ." -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1859 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1917 msgid "Row {0}# Item {1} not found in 'Raw Materials Supplied' table in {2} {3}" msgstr "الصف {0}# العنصر {1} غير موجود في جدول \"المواد الخام الموردة\" في {2} {3}" -#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:272 +#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:278 msgid "Row {0}: Accepted Qty and Rejected Qty can't be zero at the same time." msgstr "الصف {0}: لا يمكن أن تكون الكمية المقبولة والكمية المرفوضة صفرًا في نفس الوقت." @@ -45943,7 +46066,7 @@ msgstr "الصف {0}: يجب أن يكون المبلغ المخصص {1} أقل msgid "Row {0}: Allocated amount {1} must be less than or equal to remaining payment amount {2}" msgstr "الصف {0}: يجب أن يكون المبلغ المخصص {1} أقل من أو يساوي مبلغ الدفعة المتبقية {2}" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1520 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1578 msgid "Row {0}: As {1} is enabled, raw materials cannot be added to {2} entry. Use {3} entry to consume raw materials." msgstr "الصف {0}: بما أن {1} مُفعّل، فلا يمكن إضافة المواد الخام إلى المدخل {2} . استخدم المدخل {3} لاستهلاك المواد الخام." @@ -46000,7 +46123,7 @@ msgid "Row {0}: Either Delivery Note Item or Packed Item reference is mandatory. msgstr "الصف {0}: يجب أن يكون مرجع عنصر إشعار التسليم أو العنصر المعبأ إلزاميًا." #: erpnext/accounts/doctype/journal_entry/journal_entry.py:1026 -#: erpnext/controllers/taxes_and_totals.py:1391 +#: erpnext/controllers/taxes_and_totals.py:1377 msgid "Row {0}: Exchange Rate is mandatory" msgstr "الصف {0}: سعر صرف إلزامي" @@ -46036,16 +46159,16 @@ msgstr "الصف {0}: للمورد {1} ، مطلوب عنوان البريد ا msgid "Row {0}: From Time and To Time is mandatory." msgstr "صف {0}: (من الوقت) و (إلى وقت) تكون إلزامية." -#: erpnext/manufacturing/doctype/job_card/job_card.py:325 +#: erpnext/manufacturing/doctype/job_card/job_card.py:326 #: erpnext/projects/doctype/timesheet/timesheet.py:225 msgid "Row {0}: From Time and To Time of {1} is overlapping with {2}" msgstr "الصف {0}: من وقت إلى وقت {1} يتداخل مع {2}" -#: erpnext/controllers/stock_controller.py:1554 +#: erpnext/controllers/stock_controller.py:1601 msgid "Row {0}: From Warehouse is mandatory for internal transfers" msgstr "الصف {0}: من المستودع إلزامي للتحويلات الداخلية" -#: erpnext/manufacturing/doctype/job_card/job_card.py:316 +#: erpnext/manufacturing/doctype/job_card/job_card.py:317 msgid "Row {0}: From time must be less than to time" msgstr "الصف {0}: من وقت يجب أن يكون أقل من الوقت" @@ -46057,7 +46180,7 @@ msgstr "صف {0}: يجب أن تكون قيمة الساعات أكبر من ا msgid "Row {0}: Invalid reference {1}" msgstr "الصف {0}: مرجع غير صالحة {1}" -#: erpnext/controllers/taxes_and_totals.py:134 +#: erpnext/controllers/taxes_and_totals.py:135 msgid "Row {0}: Item Tax template updated as per validity and rate applied" msgstr "الصف {0}: تم تحديث نموذج ضريبة الصنف وفقًا للصلاحية والسعر المطبق" @@ -46153,7 +46276,7 @@ msgstr "الصف {0}: فاتورة الشراء {1} ليس لها أي تأثي msgid "Row {0}: Qty cannot be greater than {1} for the Item {2}." msgstr "الصف {0}: لا يمكن أن تكون الكمية أكبر من {1} للعنصر {2}." -#: erpnext/stock/doctype/stock_entry/stock_entry.py:723 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:726 msgid "Row {0}: Qty in Stock UOM can not be zero." msgstr "الصف {0}: لا يمكن أن تكون الكمية في المخزون بوحدة القياس صفرًا." @@ -46165,15 +46288,15 @@ msgstr "الصف {0}: يجب أن تكون الكمية أكبر من 0." msgid "Row {0}: Quantity cannot be negative." msgstr "الصف {0}: لا يمكن أن تكون الكمية سالبة." -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1218 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1221 msgid "Row {0}: Quantity not available for {4} in warehouse {1} at posting time of the entry ({2} {3})" msgstr "الصف {0}: الكمية غير متوفرة {4} في المستودع {1} في وقت نشر الإدخال ({2} {3})" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:926 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:933 msgid "Row {0}: Sales Invoice {1} is already created for {2}" msgstr "الصف {0}: تم إنشاء فاتورة المبيعات {1} بالفعل لـ {2}" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:330 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:333 msgid "Row {0}: Serial/Batch has been reset to values linked with Work Order {1} because the previously selected serial/batch does not belong to this Work Order." msgstr "" @@ -46181,11 +46304,11 @@ msgstr "" msgid "Row {0}: Shift cannot be changed since the depreciation has already been processed" msgstr "الصف {0}: لا يمكن تغيير المناوبة لأن عملية الإهلاك قد تمت بالفعل" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1872 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1930 msgid "Row {0}: Subcontracted Item is mandatory for the raw material {1}" msgstr "الصف {0}: العنصر المتعاقد عليه من الباطن إلزامي للمادة الخام {1}" -#: erpnext/controllers/stock_controller.py:1545 +#: erpnext/controllers/stock_controller.py:1592 msgid "Row {0}: Target Warehouse is mandatory for internal transfers" msgstr "الصف {0}: المستودع المستهدف إلزامي للتحويلات الداخلية" @@ -46197,7 +46320,7 @@ msgstr "الصف {0}: المهمة {1} لا تنتمي إلى المشروع {2} msgid "Row {0}: The entire expense amount for account {1} in {2} has already been allocated." msgstr "الصف {0}: تم تخصيص مبلغ المصروفات بالكامل للحساب {1} في {2} بالفعل." -#: erpnext/stock/doctype/stock_entry/stock_entry.py:769 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:772 msgid "Row {0}: The item {1}, quantity must be positive number" msgstr "الصف {0}: العنصر {1} ، يجب أن تكون الكمية رقمًا موجبًا" @@ -46209,11 +46332,11 @@ msgstr "الصف {0}: الحساب {3} {1} لا ينتمي إلى الشركة { msgid "Row {0}: To set {1} periodicity, difference between from and to date must be greater than or equal to {2}" msgstr "الصف {0}: لتعيين دورية {1} ، يجب أن يكون الفرق بين تاريخي البداية والنهاية أكبر من أو يساوي {2}" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:3852 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:3910 msgid "Row {0}: Transferred quantity cannot be greater than the requested quantity." msgstr "الصف {0}: لا يمكن أن تكون الكمية المنقولة أكبر من الكمية المطلوبة." -#: erpnext/stock/doctype/stock_entry/stock_entry.py:717 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:720 msgid "Row {0}: UOM Conversion Factor is mandatory" msgstr "الصف {0}: عامل تحويل UOM إلزامي\\n
\\nRow {0}: UOM Conversion Factor is mandatory" @@ -46262,11 +46385,11 @@ msgstr "" msgid "Row {0}: {2} Item {1} does not exist in {2} {3}" msgstr "الصف {0}: {2} العنصر {1} غير موجود في {2} {3}" -#: erpnext/utilities/transaction_base.py:629 +#: erpnext/utilities/transaction_base.py:626 msgid "Row {1}: Quantity ({0}) cannot be a fraction. To allow this, disable '{2}' in UOM {3}." msgstr "الصف {1}: لا يمكن أن تكون الكمية ({0}) كسرًا. للسماح بذلك ، قم بتعطيل '{2}' في UOM {3}." -#: erpnext/controllers/buying_controller.py:1042 +#: erpnext/controllers/buying_controller.py:1105 msgid "Row {idx}: Asset Naming Series is mandatory for the auto creation of assets for item {item_code}." msgstr "الصف {idx}: سلسلة تسمية الأصول إلزامية لإنشاء الأصول تلقائيًا للعنصر {item_code}." @@ -46327,7 +46450,7 @@ msgstr "وصف القاعدة" #: banking/src/components/features/BankReconciliation/Rules/RuleForm.tsx:28 #: erpnext/accounts/doctype/bank_transaction_rule/bank_transaction_rule.json msgid "Rule Name" -msgstr "" +msgstr "اسم القاعدة" #: banking/src/components/features/BankReconciliation/Rules/CreateNewRule.tsx:41 msgid "Rule created successfully" @@ -46361,10 +46484,6 @@ msgstr "" msgid "Rules evaluation started" msgstr "" -#: erpnext/public/js/utils/naming_series.js:54 -msgid "Rules for configuring series" -msgstr "" - #: banking/src/components/features/BankReconciliation/Rules/RuleForm.tsx:189 msgid "Rules to match against the transaction description" msgstr "" @@ -46426,7 +46545,7 @@ msgstr "تم الوفاء باتفاقية مستوى الخدمة (SLA)" msgid "SLA Paused On" msgstr "تم إيقاف اتفاقية مستوى الخدمة مؤقتًا" -#: erpnext/public/js/utils.js:1260 +#: erpnext/public/js/utils.js:1277 msgid "SLA is on hold since {0}" msgstr "اتفاقية مستوى الخدمة معلقة منذ {0}" @@ -46940,7 +47059,7 @@ msgstr "يوجد بالفعل أمر بيع {0} مرتبط بأمر شراء ا msgid "Sales Order {0} is not available for production" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1438 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1445 msgid "Sales Order {0} is not submitted" msgstr "لا يتم اعتماد أمر التوريد {0}\\n
\\nSales Order {0} is not submitted" @@ -46987,6 +47106,7 @@ msgstr "أوامر المبيعات لتقديم" #. Label of the sales_partner (Table MultiSelect) field in DocType 'Promotional #. Label of the sales_partner (Link) field in DocType 'Sales Invoice' #. Label of the default_sales_partner (Link) field in DocType 'Customer' +#. Label of the sales_team_section (Section Break) field in DocType 'Customer' #. Label of the sales_partner (Link) field in DocType 'Sales Order' #. Label of the sales_partner (Link) field in DocType 'SMS Center' #. Label of a Link in the Selling Workspace @@ -47340,7 +47460,7 @@ msgstr "نفس البند" msgid "Same day" msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:605 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:608 msgid "Same item and warehouse combination already entered." msgstr "تم إدخال نفس المنتج ونفس تركيبة المستودع مسبقاً." @@ -47372,12 +47492,12 @@ msgstr "مستودع الاحتفاظ بالعينات" #. Label of the sample_size (Float) field in DocType 'Quality Inspection' #: erpnext/manufacturing/report/quality_inspection_summary/quality_inspection_summary.py:93 -#: erpnext/public/js/controllers/transaction.js:2857 +#: erpnext/public/js/controllers/transaction.js:2871 #: erpnext/stock/doctype/quality_inspection/quality_inspection.json msgid "Sample Size" msgstr "حجم العينة" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:4352 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:4410 msgid "Sample quantity {0} cannot be more than received quantity {1}" msgstr "كمية العينة {0} لا يمكن أن تكون أكثر من الكمية المستلمة {1}" @@ -47482,7 +47602,7 @@ msgstr "الكمية الممسوحة ضوئياً" msgid "Schedule Date" msgstr "جدول التسجيل" -#: erpnext/public/js/controllers/transaction.js:497 +#: erpnext/public/js/controllers/transaction.js:516 msgid "Schedule Name" msgstr "" @@ -47779,7 +47899,7 @@ msgstr "" msgid "Select Accounting Dimension." msgstr "حدد بُعد المحاسبة." -#: erpnext/public/js/utils.js:555 +#: erpnext/public/js/utils.js:572 msgid "Select Alternate Item" msgstr "اختر البند البديل" @@ -47829,7 +47949,7 @@ msgstr "حدد الشركة" msgid "Select Company Address" msgstr "حدد عنوان الشركة" -#: erpnext/manufacturing/doctype/job_card/job_card.js:477 +#: erpnext/manufacturing/doctype/job_card/job_card.js:476 msgid "Select Corrective Operation" msgstr "حدد العملية التصحيحية" @@ -47865,7 +47985,7 @@ msgstr "حدد الأبعاد" msgid "Select Dispatch Address " msgstr "حدد عنوان الإرسال " -#: erpnext/manufacturing/doctype/job_card/job_card.js:706 +#: erpnext/manufacturing/doctype/job_card/job_card.js:705 msgid "Select Employees" msgstr "حدد الموظفين" @@ -47890,7 +48010,7 @@ msgstr "اختيار العناصر" msgid "Select Items based on Delivery Date" msgstr "حدد العناصر بناءً على تاريخ التسليم" -#: erpnext/public/js/controllers/transaction.js:2898 +#: erpnext/public/js/controllers/transaction.js:2912 msgid "Select Items for Quality Inspection" msgstr "اختيار الأصناف لفحص الجودة" @@ -47920,7 +48040,7 @@ msgstr "حدد عنوان العامل" msgid "Select Loyalty Program" msgstr "اختر برنامج الولاء" -#: erpnext/public/js/controllers/transaction.js:483 +#: erpnext/public/js/controllers/transaction.js:502 msgid "Select Payment Schedule" msgstr "" @@ -47991,7 +48111,7 @@ msgstr "حدد شركة" msgid "Select a Company this Employee belongs to." msgstr "اختر الشركة التي ينتمي إليها هذا الموظف." -#: erpnext/buying/doctype/supplier/supplier.js:180 +#: erpnext/buying/doctype/supplier/supplier.js:221 msgid "Select a Customer" msgstr "اختر عميلاً" @@ -48003,7 +48123,7 @@ msgstr "حدد أولوية افتراضية." msgid "Select a Payment Method." msgstr "اختر طريقة الدفع." -#: erpnext/selling/doctype/customer/customer.js:249 +#: erpnext/selling/doctype/customer/customer.js:251 msgid "Select a Supplier" msgstr "حدد المورد" @@ -48092,7 +48212,7 @@ msgstr "حدد الحساب البنكي للتوفيق." msgid "Select the Default Workstation where the Operation will be performed. This will be fetched in BOMs and Work Orders." msgstr "حدد محطة العمل الافتراضية التي سيتم فيها تنفيذ العملية. سيتم جلب هذه المحطة من قوائم المواد وأوامر العمل." -#: erpnext/manufacturing/doctype/work_order/work_order.js:1218 +#: erpnext/manufacturing/doctype/work_order/work_order.js:1225 msgid "Select the Item to be manufactured." msgstr "حدد المنتج المراد تصنيعه." @@ -48117,6 +48237,12 @@ msgstr "حدد التاريخ" msgid "Select the date and your timezone" msgstr "حدد التاريخ والمنطقة الزمنية الخاصة بك" +#. Description of the 'Tax Withholding Group' (Link) field in DocType +#. 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Select the group first to filter the applicable withholding categories below." +msgstr "" + #: erpnext/manufacturing/doctype/bom/bom.js:1007 msgid "Select the raw materials (Items) required to manufacture the Item" msgstr "حدد المواد الخام (العناصر) المطلوبة لتصنيع العنصر" @@ -48145,7 +48271,7 @@ msgstr "حدد، لجعل العميل قابلا للبحث باستخدام ه msgid "Selected POS Opening Entry should be open." msgstr "يجب أن يكون الإدخال الافتتاحي المحدد لنقاط البيع مفتوحًا." -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2619 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2626 msgid "Selected Price List should have buying and selling fields checked." msgstr "قائمة الأسعار المختارة يجب أن يكون لديها حقول بيع وشراء محددة." @@ -48195,7 +48321,7 @@ msgstr "بيع الكمية" msgid "Sell quantity cannot exceed the asset quantity" msgstr "لا يمكن أن تتجاوز كمية البيع كمية الأصل" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1451 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1458 msgid "Sell quantity cannot exceed the asset quantity. Asset {0} has only {1} item(s)." msgstr "لا يمكن أن تتجاوز كمية البيع كمية الأصل. يحتوي الأصل {0} على {1} عنصر فقط." @@ -48311,7 +48437,7 @@ msgid "Send Emails to Suppliers" msgstr "إرسال رسائل البريد الإلكتروني إلى الموردين" #. Label of the send_sms (Button) field in DocType 'SMS Center' -#: erpnext/public/js/controllers/transaction.js:702 +#: erpnext/public/js/controllers/transaction.js:721 #: erpnext/selling/doctype/sms_center/sms_center.json msgid "Send SMS" msgstr "SMS أرسل رسالة" @@ -48395,7 +48521,7 @@ msgstr "حزمة البيانات التسلسلية/الدفعية مفقودة msgid "Serial / Batch No" msgstr "الرقم التسلسلي / رقم الدفعة" -#: erpnext/public/js/utils.js:217 +#: erpnext/public/js/utils.js:225 msgid "Serial / Batch Nos" msgstr "أرقام التسلسل / الدفعات" @@ -48447,7 +48573,7 @@ msgstr "" #: erpnext/manufacturing/doctype/job_card/job_card.json #: erpnext/manufacturing/report/cost_of_poor_quality_report/cost_of_poor_quality_report.js:74 #: erpnext/manufacturing/report/cost_of_poor_quality_report/cost_of_poor_quality_report.py:114 -#: erpnext/public/js/controllers/transaction.js:2870 +#: erpnext/public/js/controllers/transaction.js:2884 #: erpnext/public/js/utils/serial_no_batch_selector.js:432 #: erpnext/selling/doctype/installation_note_item/installation_note_item.json #: erpnext/stock/doctype/delivery_note_item/delivery_note_item.json @@ -48625,7 +48751,7 @@ msgstr "الرقم التسلسلي {0} تحت الضمان حتى {1}\\n
\\n msgid "Serial No {0} not found" msgstr "لم يتم العثور علي الرقم التسلسلي {0}\\n
\\nSerial No {0} not found" -#: erpnext/selling/page/point_of_sale/pos_controller.js:855 +#: erpnext/selling/page/point_of_sale/pos_controller.js:846 msgid "Serial No: {0} has already been transacted into another POS Invoice." msgstr "الرقم التسلسلي: تم بالفعل معاملة {0} في فاتورة نقطة بيع أخرى." @@ -48651,7 +48777,7 @@ msgstr "" msgid "Serial Nos are created successfully" msgstr "تم إنشاء الأرقام التسلسلية بنجاح" -#: erpnext/stock/stock_ledger.py:2297 +#: erpnext/stock/stock_ledger.py:2286 msgid "Serial Nos are reserved in Stock Reservation Entries, you need to unreserve them before proceeding." msgstr "يتم حجز الأرقام التسلسلية في إدخالات حجز المخزون، لذا عليك إلغاء حجزها قبل المتابعة." @@ -48735,7 +48861,7 @@ msgstr "تم إنشاء حزمة التسلسل والدفعة" msgid "Serial and Batch Bundle updated" msgstr "تم تحديث حزمة التسلسل والدفعة" -#: erpnext/controllers/stock_controller.py:193 +#: erpnext/controllers/stock_controller.py:196 msgid "Serial and Batch Bundle {0} is already used in {1} {2}." msgstr "تم استخدام حزمة Serial and Batch {0} بالفعل في {1} {2}." @@ -48803,116 +48929,6 @@ msgstr "الرقم التسلسلي {0} دخلت أكثر من مرة" msgid "Serial numbers unavailable for Item {0} under warehouse {1}. Please try changing warehouse." msgstr "الأرقام التسلسلية غير متوفرة للعنصر {0} الموجود في المستودع {1}. يرجى محاولة تغيير المستودع." -#. Label of the naming_series (Select) field in DocType 'Bank Transaction' -#. Label of the naming_series (Select) field in DocType 'Budget' -#. Label of the naming_series (Select) field in DocType 'Cashier Closing' -#. Label of the naming_series (Select) field in DocType 'Dunning' -#. Label of the naming_series (Select) field in DocType 'Journal Entry' -#. Label of the naming_series (Select) field in DocType 'Journal Entry -#. Template' -#. Label of the naming_series (Select) field in DocType 'Payment Entry' -#. Label of the naming_series (Select) field in DocType 'Payment Order' -#. Label of the naming_series (Select) field in DocType 'Payment Request' -#. Label of the naming_series (Select) field in DocType 'POS Invoice' -#. Label of the naming_series (Select) field in DocType 'Purchase Invoice' -#. Label of the naming_series (Select) field in DocType 'Sales Invoice' -#. Label of the naming_series (Select) field in DocType 'Asset' -#. Label of the naming_series (Select) field in DocType 'Asset Capitalization' -#. Label of the naming_series (Select) field in DocType 'Asset Maintenance Log' -#. Label of the naming_series (Select) field in DocType 'Asset Repair' -#. Label of the naming_series (Select) field in DocType 'Purchase Order' -#. Label of the naming_series (Select) field in DocType 'Request for Quotation' -#. Label of the naming_series (Select) field in DocType 'Supplier' -#. Label of the naming_series (Select) field in DocType 'Supplier Quotation' -#. Label of the naming_series (Select) field in DocType 'Lead' -#. Label of the naming_series (Select) field in DocType 'Opportunity' -#. Label of the naming_series (Select) field in DocType 'Maintenance Schedule' -#. Label of the naming_series (Select) field in DocType 'Maintenance Visit' -#. Label of the naming_series (Select) field in DocType 'Blanket Order' -#. Label of the naming_series (Select) field in DocType 'Work Order' -#. Label of the naming_series (Select) field in DocType 'Project' -#. Label of the naming_series (Data) field in DocType 'Project Update' -#. Label of the naming_series (Select) field in DocType 'Timesheet' -#. Label of the naming_series (Select) field in DocType 'Customer' -#. Label of the naming_series (Select) field in DocType 'Installation Note' -#. Label of the naming_series (Select) field in DocType 'Quotation' -#. Label of the naming_series (Select) field in DocType 'Sales Order' -#. Label of the naming_series (Select) field in DocType 'Driver' -#. Label of the naming_series (Select) field in DocType 'Employee' -#. Label of the naming_series (Select) field in DocType 'Delivery Note' -#. Label of the naming_series (Select) field in DocType 'Delivery Trip' -#. Label of the naming_series (Select) field in DocType 'Item' -#. Label of the naming_series (Select) field in DocType 'Landed Cost Voucher' -#. Label of the naming_series (Select) field in DocType 'Material Request' -#. Label of the naming_series (Select) field in DocType 'Packing Slip' -#. Label of the naming_series (Select) field in DocType 'Pick List' -#. Label of the naming_series (Select) field in DocType 'Purchase Receipt' -#. Label of the naming_series (Select) field in DocType 'Quality Inspection' -#. Label of the naming_series (Select) field in DocType 'Stock Entry' -#. Label of the naming_series (Select) field in DocType 'Stock Reconciliation' -#. Label of the naming_series (Select) field in DocType 'Subcontracting Inward -#. Order' -#. Label of the naming_series (Select) field in DocType 'Subcontracting Order' -#. Label of the naming_series (Select) field in DocType 'Subcontracting -#. Receipt' -#. Label of the naming_series (Select) field in DocType 'Issue' -#. Label of the naming_series (Select) field in DocType 'Warranty Claim' -#: erpnext/accounts/doctype/bank_transaction/bank_transaction.json -#: erpnext/accounts/doctype/budget/budget.json -#: erpnext/accounts/doctype/cashier_closing/cashier_closing.json -#: erpnext/accounts/doctype/dunning/dunning.json -#: erpnext/accounts/doctype/journal_entry/journal_entry.js:661 -#: erpnext/accounts/doctype/journal_entry/journal_entry.json -#: erpnext/accounts/doctype/journal_entry_template/journal_entry_template.json -#: erpnext/accounts/doctype/payment_entry/payment_entry.json -#: erpnext/accounts/doctype/payment_order/payment_order.json -#: erpnext/accounts/doctype/payment_request/payment_request.json -#: erpnext/accounts/doctype/pos_invoice/pos_invoice.json -#: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.json -#: erpnext/assets/doctype/asset/asset.json -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.json -#: erpnext/assets/doctype/asset_maintenance_log/asset_maintenance_log.json -#: erpnext/assets/doctype/asset_repair/asset_repair.json -#: erpnext/buying/doctype/purchase_order/purchase_order.json -#: erpnext/buying/doctype/request_for_quotation/request_for_quotation.json -#: erpnext/buying/doctype/supplier/supplier.json -#: erpnext/buying/doctype/supplier_quotation/supplier_quotation.json -#: erpnext/crm/doctype/lead/lead.json -#: erpnext/crm/doctype/opportunity/opportunity.json -#: erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.json -#: erpnext/maintenance/doctype/maintenance_visit/maintenance_visit.json -#: erpnext/manufacturing/doctype/blanket_order/blanket_order.json -#: erpnext/manufacturing/doctype/work_order/work_order.json -#: erpnext/projects/doctype/project/project.json -#: erpnext/projects/doctype/project_update/project_update.json -#: erpnext/projects/doctype/timesheet/timesheet.json -#: erpnext/public/js/utils/naming_series.js:34 -#: erpnext/selling/doctype/customer/customer.json -#: erpnext/selling/doctype/installation_note/installation_note.json -#: erpnext/selling/doctype/quotation/quotation.json -#: erpnext/selling/doctype/sales_order/sales_order.json -#: erpnext/setup/doctype/driver/driver.json -#: erpnext/setup/doctype/employee/employee.json -#: erpnext/stock/doctype/delivery_note/delivery_note.json -#: erpnext/stock/doctype/delivery_trip/delivery_trip.json -#: erpnext/stock/doctype/item/item.json -#: erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.json -#: erpnext/stock/doctype/material_request/material_request.json -#: erpnext/stock/doctype/packing_slip/packing_slip.json -#: erpnext/stock/doctype/pick_list/pick_list.json -#: erpnext/stock/doctype/purchase_receipt/purchase_receipt.json -#: erpnext/stock/doctype/quality_inspection/quality_inspection.json -#: erpnext/stock/doctype/stock_entry/stock_entry.json -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.json -#: erpnext/subcontracting/doctype/subcontracting_inward_order/subcontracting_inward_order.json -#: erpnext/subcontracting/doctype/subcontracting_order/subcontracting_order.json -#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.json -#: erpnext/support/doctype/issue/issue.json -#: erpnext/support/doctype/warranty_claim/warranty_claim.json -msgid "Series" -msgstr "سلسلة التسمية" - #. Label of the series_for_depreciation_entry (Data) field in DocType 'Company' #: erpnext/setup/doctype/company/company.json msgid "Series for Asset Depreciation Entry (Journal Entry)" @@ -49107,12 +49123,12 @@ msgid "Service Stop Date" msgstr "تاريخ توقف الخدمة" #: erpnext/accounts/deferred_revenue.py:45 -#: erpnext/public/js/controllers/transaction.js:1779 +#: erpnext/public/js/controllers/transaction.js:1793 msgid "Service Stop Date cannot be after Service End Date" msgstr "لا يمكن أن يكون تاريخ إيقاف الخدمة بعد تاريخ انتهاء الخدمة" #: erpnext/accounts/deferred_revenue.py:42 -#: erpnext/public/js/controllers/transaction.js:1776 +#: erpnext/public/js/controllers/transaction.js:1790 msgid "Service Stop Date cannot be before Service Start Date" msgstr "لا يمكن أن يكون تاريخ إيقاف الخدمة قبل تاريخ بدء الخدمة" @@ -49136,7 +49152,7 @@ msgstr "تعيين السلف والتخصيص (FIFO)" #. Label of the set_basic_rate_manually (Check) field in DocType 'Stock Entry #. Detail' -#: erpnext/stock/doctype/stock_entry/stock_entry.py:397 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:400 #: erpnext/stock/doctype/stock_entry_detail/stock_entry_detail.json msgid "Set Basic Rate Manually" msgstr "قم بتعيين السعر الأساسي يدويًا" @@ -49155,8 +49171,8 @@ msgstr "مستودع توصيل المجموعات" msgid "Set Dropship Items Delivered Quantity" msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.js:363 -#: erpnext/manufacturing/doctype/job_card/job_card.js:425 +#: erpnext/manufacturing/doctype/job_card/job_card.js:362 +#: erpnext/manufacturing/doctype/job_card/job_card.js:424 msgid "Set Finished Good Quantity" msgstr "مجموعة كاملة، كمية جيدة" @@ -49358,7 +49374,7 @@ msgstr "تعيين معدل عنصر التجميع الفرعي استنادا msgid "Set targets Item Group-wise for this Sales Person." msgstr "تحديد أهداف المجموعة السلعة الحكيم لهذا الشخص المبيعات." -#: erpnext/manufacturing/doctype/work_order/work_order.js:1275 +#: erpnext/manufacturing/doctype/work_order/work_order.js:1282 msgid "Set the Planned Start Date (an Estimated Date at which you want the Production to begin)" msgstr "حدد تاريخ البدء المخطط له (تاريخ تقديري ترغب في أن يبدأ فيه الإنتاج)" @@ -50192,7 +50208,7 @@ msgstr "" msgid "Simultaneous" msgstr "متزامن" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:847 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:850 msgid "Since there is a process loss of {0} units for the finished good {1}, you should reduce the quantity by {0} units for the finished good {1} in the Items Table." msgstr "بما أن هناك خسارة في العملية قدرها {0} وحدة للمنتج النهائي {1}، فيجب عليك تقليل الكمية بمقدار {0} وحدة للمنتج النهائي {1} في جدول العناصر." @@ -50253,7 +50269,7 @@ msgstr "تخطي نقل المواد إلى العمل قيد التنفيذ" msgid "Skip Material Transfer to WIP Warehouse" msgstr "تخطي نقل المواد إلى مستودع WIP" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:563 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:574 msgid "Skipped {0} DocType(s):
{1}" msgstr "" @@ -50304,7 +50320,7 @@ msgstr "يباع بواسطة" msgid "Solvency Ratios" msgstr "نسب الملاءة المالية" -#: erpnext/controllers/accounts_controller.py:4371 +#: erpnext/controllers/accounts_controller.py:4369 msgid "Some required Company details are missing. You don't have permission to update them. Please contact your System Manager." msgstr "بعض بيانات الشركة المطلوبة مفقودة. ليس لديك صلاحية لتحديثها. يرجى الاتصال بمدير النظام." @@ -50377,11 +50393,11 @@ msgstr "" msgid "Source Stock Entry (Manufacture)" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1009 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1012 msgid "Source Stock Entry {0} belongs to Work Order {1}, not {2}. Please use a manufacture entry from the same Work Order." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:2622 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2680 msgid "Source Stock Entry {0} has no finished goods quantity" msgstr "" @@ -50447,7 +50463,7 @@ msgstr "يجب أن يكون مستودع المصدر {0} هو نفسه مست msgid "Source and Target Location cannot be same" msgstr "لا يمكن أن يكون المصدر و الموقع الهدف نفسه" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:975 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:978 msgid "Source and target warehouse cannot be same for row {0}" msgstr "المصدر والمستودع المستهدف لا يمكن أن يكون نفس الصف {0}\\n
\\nSource and target warehouse cannot be same for row {0}" @@ -50460,9 +50476,9 @@ msgstr "ويجب أن تكون مصدر ومستودع الهدف مختلفة" msgid "Source of Funds (Liabilities)" msgstr "(مصدر الأموال (الخصوم" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:942 -#: erpnext/stock/doctype/stock_entry/stock_entry.py:958 -#: erpnext/stock/doctype/stock_entry/stock_entry.py:965 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:945 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:961 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:968 msgid "Source warehouse is mandatory for row {0}" msgstr "مستودع المصدر إلزامي للصف {0}\\n
\\nSource warehouse is mandatory for row {0}" @@ -50553,6 +50569,11 @@ msgstr "يجب أن تكون كمية التقسيم أقل من كمية الأ msgid "Split across {} accounts" msgstr "" +#. Description of the 'Sales Team' (Table) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Split commission credit across multiple sales persons." +msgstr "" + #: erpnext/accounts/doctype/payment_entry/payment_entry.py:2480 msgid "Splitting {0} {1} into {2} rows as per Payment Terms" msgstr "تقسيم {0} {1} إلى {2} صفوف وفقًا لشروط الدفع" @@ -50606,7 +50627,7 @@ msgstr "اسم المرحلة" msgid "Stale Days" msgstr "أيام قديمة" -#: erpnext/accounts/doctype/accounts_settings/accounts_settings.py:161 +#: erpnext/accounts/doctype/accounts_settings/accounts_settings.py:162 msgid "Stale Days should start from 1." msgstr "يجب أن تبدأ أيام الركود من 1." @@ -50675,6 +50696,10 @@ msgstr "اسم الدائمة" msgid "Start / Resume" msgstr "بدء / استئناف" +#: erpnext/accounts/doctype/accounting_period/accounting_period.py:45 +msgid "Start Date cannot be after End Date" +msgstr "" + #: erpnext/crm/doctype/email_campaign/email_campaign.py:40 msgid "Start Date cannot be before the current date" msgstr "لا يمكن أن يكون تاريخ البدء قبل التاريخ الحالي" @@ -50683,7 +50708,7 @@ msgstr "لا يمكن أن يكون تاريخ البدء قبل التاريخ msgid "Start Date should be lower than End Date" msgstr "يجب أن يكون تاريخ البدء أقل من تاريخ الانتهاء" -#: erpnext/manufacturing/doctype/job_card/job_card.js:662 +#: erpnext/manufacturing/doctype/job_card/job_card.js:660 #: erpnext/manufacturing/doctype/workstation/workstation.js:124 msgid "Start Job" msgstr "ابدأ العمل" @@ -50825,11 +50850,6 @@ msgstr "يجب أن تكون حالة واحدة من {0}" msgid "Status set to rejected as there are one or more rejected readings." msgstr "تم تعيين الحالة إلى مرفوض لوجود قراءة واحدة أو أكثر مرفوضة." -#. Description of the 'Supplier Details' (Text) field in DocType 'Supplier' -#: erpnext/buying/doctype/supplier/supplier.json -msgid "Statutory info and other general information about your Supplier" -msgstr "معلومات قانونية ومعلومات عامة أخرى عن بريدا" - #. Option for the 'Account Type' (Select) field in DocType 'Account' #. Label of a Desktop Icon #. Group in Incoterm's connections @@ -50961,7 +50981,7 @@ msgstr "سجل إغلاق المخزون" msgid "Stock Details" msgstr "تفاصيل المخزون" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1186 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1189 msgid "Stock Entries already created for Work Order {0}: {1}" msgstr "" @@ -51028,7 +51048,7 @@ msgstr "تم إنشاء إدخال الأسهم بالفعل مقابل قائم msgid "Stock Entry {0} created" msgstr "الأسهم الدخول {0} خلق" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1583 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1601 msgid "Stock Entry {0} has created" msgstr "تم إنشاء إدخال المخزون {0}" @@ -51196,7 +51216,7 @@ msgstr "كمية المخزون المتوقعة" #: erpnext/manufacturing/doctype/bom_secondary_item/bom_secondary_item.json #: erpnext/selling/doctype/delivery_schedule_item/delivery_schedule_item.json #: erpnext/stock/doctype/material_request_item/material_request_item.json -#: erpnext/stock/report/item_where_used/item_where_used.py:82 +#: erpnext/stock/report/item_where_used/item_where_used.py:76 #: erpnext/stock/report/stock_qty_vs_batch_qty/stock_qty_vs_batch_qty.py:34 #: erpnext/stock/report/stock_qty_vs_serial_no_count/stock_qty_vs_serial_no_count.py:34 msgid "Stock Qty" @@ -51279,7 +51299,7 @@ msgstr "إعدادات إعادة نشر المخزون" #: erpnext/stock/doctype/pick_list/pick_list.js:175 #: erpnext/stock/doctype/pick_list/pick_list.js:180 #: erpnext/stock/doctype/stock_entry/stock_entry_dashboard.py:12 -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:743 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:746 #: erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.py:674 #: erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.py:1237 #: erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.py:1644 @@ -51306,7 +51326,7 @@ msgstr "تم إلغاء إدخالات حجز المخزون" #: erpnext/controllers/subcontracting_inward_controller.py:1037 #: erpnext/manufacturing/doctype/production_plan/production_plan.py:2245 -#: erpnext/manufacturing/doctype/work_order/work_order.py:2306 +#: erpnext/manufacturing/doctype/work_order/work_order.py:2338 #: erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.py:1777 msgid "Stock Reservation Entries Created" msgstr "تم إنشاء قيود حجز المخزون" @@ -51476,7 +51496,7 @@ msgstr "قيود المخزون" #: erpnext/stock/doctype/stock_reconciliation_item/stock_reconciliation_item.json #: erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.json #: erpnext/stock/report/batch_item_expiry_status/batch_item_expiry_status.py:35 -#: erpnext/stock/report/item_where_used/item_where_used.py:88 +#: erpnext/stock/report/item_where_used/item_where_used.py:82 #: erpnext/stock/report/reserved_stock/reserved_stock.py:110 #: erpnext/stock/report/stock_balance/stock_balance.py:508 #: erpnext/stock/report/stock_ledger/stock_ledger.py:296 @@ -51608,11 +51628,11 @@ msgstr "لا يمكن حجز المخزون في مستودع المجموعة { msgid "Stock cannot be reserved in the group warehouse {0}." msgstr "لا يمكن حجز المخزون في مستودع المجموعة {0}." -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1266 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1273 msgid "Stock cannot be updated against the following Delivery Notes: {0}" msgstr "لا يمكن تحديث المخزون بناءً على إشعارات التسليم التالية: {0}" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1335 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1342 msgid "Stock cannot be updated because the invoice contains a drop shipping item. Please disable 'Update Stock' or remove the drop shipping item." msgstr "لا يمكن تحديث المخزون لأن الفاتورة تحتوي على منتج يتم شحنه مباشرة من المورد. يرجى تعطيل خيار \"تحديث المخزون\" أو إزالة المنتج الذي يتم شحنه مباشرة من المورد." @@ -51637,7 +51657,7 @@ msgstr "تم إلغاء حجز المخزون لأمر العمل {0}." msgid "Stock not available for Item {0} in Warehouse {1}." msgstr "المخزون غير متوفر للصنف {0} في المستودع {1}." -#: erpnext/selling/page/point_of_sale/pos_controller.js:835 +#: erpnext/selling/page/point_of_sale/pos_controller.js:826 msgid "Stock quantity not enough for Item Code: {0} under warehouse {1}. Available quantity {2} {3}." msgstr "الكمية المتوفرة من المنتج ذي الرمز {0} غير كافية في المستودع {1}. الكمية المتاحة {2} {3}." @@ -51736,7 +51756,7 @@ msgstr "مستودع التجميع الفرعي" #. Label of the operation (Link) field in DocType 'Job Card Time Log' #. Name of a DocType -#: erpnext/manufacturing/doctype/job_card/job_card.js:310 +#: erpnext/manufacturing/doctype/job_card/job_card.js:309 #: erpnext/manufacturing/doctype/job_card_time_log/job_card_time_log.json #: erpnext/manufacturing/doctype/sub_operation/sub_operation.json msgid "Sub Operation" @@ -51897,7 +51917,7 @@ msgstr "معامل تحويل التعاقد من الباطن" msgid "Subcontracting Delivery" msgstr "تسليم المشاريع عن طريق التعاقد من الباطن" -#: erpnext/stock/report/item_where_used/item_where_used.py:362 +#: erpnext/stock/report/item_where_used/item_where_used.py:360 msgid "Subcontracting Finished Good" msgstr "" @@ -52078,7 +52098,7 @@ msgstr "إرجاع عقود المقاولة الفرعية" msgid "Subcontracting Sales Order" msgstr "أمر بيع تعاقد من الباطن" -#: erpnext/stock/report/item_where_used/item_where_used.py:336 +#: erpnext/stock/report/item_where_used/item_where_used.py:334 msgid "Subcontracting Service Item" msgstr "" @@ -52098,7 +52118,7 @@ msgid "Subdivision" msgstr "تقسيم فرعي" #: erpnext/buying/doctype/purchase_order/purchase_order.py:972 -#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:1086 +#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:1092 msgid "Submit Action Failed" msgstr "فشل إرسال الإجراء" @@ -52126,7 +52146,7 @@ msgstr "أرسل طلب العمل هذا لمزيد من المعالجة." msgid "Submit your Quotation" msgstr "أرسل عرض الأسعار الخاص بك" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1493 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1511 msgid "Submitted Job Card cannot be processed." msgstr "" @@ -52294,11 +52314,11 @@ msgstr "تم استيراد {0} سجل بنجاح من أصل {1}. انقر عل msgid "Successfully imported {0} records." msgstr "تم استيراد السجلات {0} بنجاح." -#: erpnext/buying/doctype/supplier/supplier.js:202 +#: erpnext/buying/doctype/supplier/supplier.js:243 msgid "Successfully linked to Customer" msgstr "تم ربط العميل بنجاح" -#: erpnext/selling/doctype/customer/customer.js:271 +#: erpnext/selling/doctype/customer/customer.js:273 msgid "Successfully linked to Supplier" msgstr "تم الربط بنجاح مع المورد" @@ -52462,7 +52482,7 @@ msgstr "الموردة الكمية" #: erpnext/public/js/purchase_trends_filters.js:63 #: erpnext/regional/doctype/lower_deduction_certificate/lower_deduction_certificate.json #: erpnext/regional/report/irs_1099/irs_1099.py:77 -#: erpnext/selling/doctype/customer/customer.js:253 +#: erpnext/selling/doctype/customer/customer.js:255 #: erpnext/selling/doctype/party_specific_item/party_specific_item.json #: erpnext/selling/doctype/sales_order/sales_order.js:197 #: erpnext/selling/doctype/sales_order/sales_order.js:1703 @@ -52630,7 +52650,7 @@ msgstr "المورد فاتورة التسجيل" msgid "Supplier Invoice No" msgstr "رقم فاتورة المورد" -#: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1812 +#: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1815 msgid "Supplier Invoice No exists in Purchase Invoice {0}" msgstr "المورد فاتورة لا يوجد في شراء الفاتورة {0}" @@ -52703,8 +52723,6 @@ msgid "Supplier Number At Customer" msgstr "رقم المورد لدى العميل" #. Label of the supplier_numbers (Table) field in DocType 'Customer' -#. Label of the supplier_numbers_section (Section Break) field in DocType -#. 'Customer' #: erpnext/selling/doctype/customer/customer.json msgid "Supplier Numbers" msgstr "أرقام الموردين" @@ -52733,16 +52751,6 @@ msgstr "رقم قطعة المورد" msgid "Supplier Portal Users" msgstr "مستخدمو بوابة الموردين" -#. Label of the supplier_primary_address (Link) field in DocType 'Supplier' -#: erpnext/buying/doctype/supplier/supplier.json -msgid "Supplier Primary Address" -msgstr "العنوان الرئيسي للمورد" - -#. Label of the supplier_primary_contact (Link) field in DocType 'Supplier' -#: erpnext/buying/doctype/supplier/supplier.json -msgid "Supplier Primary Contact" -msgstr "جهة الاتصال الرئيسية للمورد" - #. Label of the ref_sq (Link) field in DocType 'Purchase Order' #. Label of the supplier_quotation (Link) field in DocType 'Purchase Order #. Item' @@ -52890,11 +52898,6 @@ msgstr "المورد يسلم للعميل" msgid "Supplier is required for all selected Items" msgstr "يُشترط وجود مورد لجميع الأصناف المختارة" -#. Description of the 'Supplier Numbers' (Table) field in DocType 'Customer' -#: erpnext/selling/doctype/customer/customer.json -msgid "Supplier numbers assigned by the customer" -msgstr "أرقام الموردين التي يحددها العميل" - #. Description of a DocType #: erpnext/buying/doctype/supplier/supplier.json msgid "Supplier of Goods or Services." @@ -52904,6 +52907,11 @@ msgstr "مورد السلع أو الخدمات." msgid "Supplier {0} not found in {1}" msgstr "المورد {0} غير موجود في {1}" +#. Description of the 'Tax ID' (Data) field in DocType 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "Supplier's tax identification number (e.g. PAN, VAT, GST)" +msgstr "" + #: erpnext/stock/report/item_wise_consumption/item_wise_consumption.py:67 msgid "Supplier(s)" msgstr "المورد (ق)" @@ -52969,10 +52977,6 @@ msgstr "فريق الدعم" msgid "Support Tickets" msgstr "تذاكر الدعم الفني" -#: erpnext/public/js/utils/naming_series.js:89 -msgid "Supported Variables:" -msgstr "" - #: erpnext/accounts/report/calculated_discount_mismatch/calculated_discount_mismatch.py:64 msgid "Suspected Discount Amount" msgstr "مبلغ الخصم المتوقع" @@ -53045,6 +53049,12 @@ msgstr "لن يتحقق النظام من الفواتير الزائدة لأن msgid "System will notify to increase or decrease quantity or amount " msgstr "سيُعلم النظام بزيادة أو تقليل الكمية أو الكمية" +#. Description of the 'Tax Withholding Category' (Link) field in DocType +#. 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "TDS / withholding tax category applied when paying this supplier" +msgstr "" + #. Name of a report #. Label of a Workspace Sidebar Item #: erpnext/accounts/report/tds_computation_summary/tds_computation_summary.json @@ -53052,7 +53062,7 @@ msgstr "سيُعلم النظام بزيادة أو تقليل الكمية أو msgid "TDS Computation Summary" msgstr "ملخص حساب TDS" -#: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1570 +#: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:1573 msgid "TDS Deducted" msgstr "تم خصم ضريبة الدخل المقتطعة" @@ -53060,6 +53070,12 @@ msgstr "تم خصم ضريبة الدخل المقتطعة" msgid "TDS Payable" msgstr "ضريبة الدخل المستحقة" +#. Description of the 'Tax Withholding Category' (Link) field in DocType +#. 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "TDS/TCS is calculated at the rate defined here on every payment from this customer." +msgstr "" + #. Description of a DocType #: erpnext/stock/doctype/item_website_specification/item_website_specification.json msgid "Table for Item that will be shown in Web Site" @@ -53090,23 +53106,23 @@ msgstr "استهداف ({})" msgid "Target Asset" msgstr "الأصل المستهدف" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:209 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:212 msgid "Target Asset {0} cannot be cancelled" msgstr "لا يمكن إلغاء الأصل المستهدف {0}" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:207 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:210 msgid "Target Asset {0} cannot be submitted" msgstr "لا يمكن إرسال الأصل المستهدف {0}" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:203 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:206 msgid "Target Asset {0} cannot be {1}" msgstr "لا يمكن أن يكون الأصل المستهدف {0} هو {1}" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:213 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:216 msgid "Target Asset {0} does not belong to company {1}" msgstr "الأصل المستهدف {0} لا ينتمي إلى الشركة {1}" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:192 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:195 msgid "Target Asset {0} needs to be composite asset" msgstr "يجب أن يكون الأصل المستهدف {0} أصلًا مركبًا" @@ -53152,7 +53168,7 @@ msgstr "معدل الوارد المستهدف" msgid "Target Item Code" msgstr "رمز المنتج المستهدف" -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:183 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:186 msgid "Target Item {0} must be a Fixed Asset item" msgstr "يجب أن يكون العنصر المستهدف {0} عنصرًا من الأصول الثابتة" @@ -53233,9 +53249,9 @@ msgstr "تم إعداد مستودع Target لبعض المنتجات، لكن msgid "Target Warehouse {0} must be same as Delivery Warehouse {1} in the Subcontracting Inward Order Item." msgstr "يجب أن يكون المستودع المستهدف {0} هو نفسه مستودع التسليم {1} في بند أمر التوريد الداخلي للتعاقد من الباطن." -#: erpnext/stock/doctype/stock_entry/stock_entry.py:948 -#: erpnext/stock/doctype/stock_entry/stock_entry.py:954 -#: erpnext/stock/doctype/stock_entry/stock_entry.py:969 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:951 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:957 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:972 msgid "Target warehouse is mandatory for row {0}" msgstr "المستودع المستهدف إلزامي للصف {0}\\n
\\nTarget warehouse is mandatory for row {0}" @@ -53463,6 +53479,11 @@ msgstr "الرقم الضريبي" msgid "Tax Id: {0}" msgstr "رقم التعريف الضريبي: {0}" +#. Label of the taxation_section (Section Break) field in DocType 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "Tax Identification" +msgstr "" + #. Label of a Card Break in the Invoicing Workspace #: erpnext/accounts/workspace/invoicing/invoicing.json msgid "Tax Masters" @@ -53683,7 +53704,7 @@ msgstr "يتم اقتطاع الضريبة فقط على المبلغ الذي #. Detail' #: erpnext/accounts/doctype/item_wise_tax_detail/item_wise_tax_detail.json #: erpnext/accounts/report/tax_withholding_details/tax_withholding_details.py:239 -#: erpnext/controllers/taxes_and_totals.py:1262 +#: erpnext/controllers/taxes_and_totals.py:1248 msgid "Taxable Amount" msgstr "المبلغ الخاضع للضريبة" @@ -54237,7 +54258,7 @@ msgstr "قد يكون مصطلح الدفع في الصف {0} مكررا." msgid "The Pick List having Stock Reservation Entries cannot be updated. If you need to make changes, we recommend canceling the existing Stock Reservation Entries before updating the Pick List." msgstr "لا يمكن تحديث قائمة الاختيار التي تحتوي على إدخالات حجز المخزون. إذا كنت ترغب في إجراء تغييرات، فننصحك بإلغاء إدخالات حجز المخزون الحالية قبل تحديث قائمة الاختيار." -#: erpnext/stock/doctype/stock_entry/stock_entry.py:3074 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:3132 msgid "The Process Loss Qty has reset as per job cards Process Loss Qty" msgstr "تمت إعادة ضبط كمية الفاقد في العملية وفقًا لبطاقات العمل." @@ -54253,7 +54274,7 @@ msgstr "الرقم التسلسلي في الصف #{0}: {1} غير متوفر ف msgid "The Serial No {0} is reserved against the {1} {2} and cannot be used for any other transaction." msgstr "الرقم التسلسلي {0} محجوز مقابل {1} {2} ولا يمكن استخدامه لأي معاملة أخرى." -#: erpnext/stock/doctype/stock_entry/stock_entry.py:2040 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2098 msgid "The Serial and Batch Bundle {0} is not valid for this transaction. The 'Type of Transaction' should be 'Outward' instead of 'Inward' in Serial and Batch Bundle {0}" msgstr "حزمة البيانات التسلسلية والدفعية {0} غير صالحة لهذه المعاملة. يجب أن يكون \"نوع المعاملة\" \"خارجي\" بدلاً من \"داخلي\" في حزمة البيانات التسلسلية والدفعية {0}" @@ -54289,7 +54310,7 @@ msgstr "" msgid "The bank account is not a company account. Please select a company account" msgstr "" -#: erpnext/controllers/stock_controller.py:1310 +#: erpnext/controllers/stock_controller.py:1357 msgid "The batch {0} is already reserved in {1} {2}. So, cannot proceed with the {3} {4}, which is created against the {5} {6}." msgstr "تم حجز الدفعة {0} بالفعل في {1} {2}. لذا، لا يمكن المتابعة مع {3} {4}، والتي تم إنشاؤها مقابل {5} {6}." @@ -54301,7 +54322,7 @@ msgstr "" msgid "The company {0} is not in United Arab Emirates. UAE VAT 201 report is only available for companies in United Arab Emirates." msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1348 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1366 msgid "The completed quantity {0} of an operation {1} cannot be greater than the completed quantity {2} of a previous operation {3}." msgstr "لا يمكن أن تكون الكمية المكتملة {0} لعملية {1} أكبر من الكمية المكتملة {2} لعملية سابقة {3}." @@ -54309,7 +54330,7 @@ msgstr "لا يمكن أن تكون الكمية المكتملة {0} لعملي msgid "The currency of invoice {} ({}) is different from the currency of this dunning ({})." msgstr "عملة الفاتورة {} ({}) تختلف عن عملة هذا الإشعار ({})." -#: erpnext/selling/page/point_of_sale/pos_controller.js:209 +#: erpnext/selling/page/point_of_sale/pos_controller.js:200 msgid "The current POS opening entry is outdated. Please close it and create a new one." msgstr "بيانات فتح نقطة البيع الحالية قديمة. يرجى إغلاقها وإنشاء بيانات جديدة." @@ -54321,7 +54342,7 @@ msgstr "" msgid "The date of the transaction" msgstr "" -#: erpnext/manufacturing/doctype/work_order/work_order.js:1223 +#: erpnext/manufacturing/doctype/work_order/work_order.js:1230 msgid "The default BOM for that item will be fetched by the system. You can also change the BOM." msgstr "سيقوم النظام بجلب قائمة مكونات المنتج الافتراضية لهذا المنتج. يمكنك أيضاً تغيير قائمة مكونات المنتج." @@ -54444,7 +54465,7 @@ msgstr "عطلة على {0} ليست بين من تاريخ وإلى تاريخ" msgid "The invoice is not fully allocated as there is a difference of {0}." msgstr "" -#: erpnext/controllers/buying_controller.py:1244 +#: erpnext/controllers/buying_controller.py:1307 msgid "The item {item} is not marked as {type_of} item. You can enable it as {type_of} item from its Item master." msgstr "العنصر {item} غير مُصنّف كعنصر {type_of} . يمكنك تفعيله كعنصر {type_of} من قائمة العناصر الرئيسية." @@ -54452,7 +54473,7 @@ msgstr "العنصر {item} غير مُصنّف كعنصر {type_of} . يمكن msgid "The items {0} and {1} are present in the following {2} :" msgstr "العنصران {0} و {1} موجودان في العنصر التالي {2} :" -#: erpnext/controllers/buying_controller.py:1237 +#: erpnext/controllers/buying_controller.py:1300 msgid "The items {items} are not marked as {type_of} item. You can enable them as {type_of} item from their Item masters." msgstr "العناصر {items} غير مصنفة كعناصر {type_of} . يمكنك تفعيلها كعناصر {type_of} من قائمة العناصر الرئيسية الخاصة بها." @@ -54557,7 +54578,7 @@ msgstr "" msgid "The reference number of the transaction" msgstr "" -#: erpnext/public/js/utils.js:968 +#: erpnext/public/js/utils.js:985 msgid "The reserved stock will be released when you update items. Are you certain you wish to proceed?" msgstr "سيتم تحرير المخزون المحجوز عند تحديث العناصر. هل أنت متأكد من رغبتك في المتابعة؟" @@ -54614,7 +54635,7 @@ msgstr "الأسهم غير موجودة مع {0}" msgid "The stock for the item {0} in the {1} warehouse was negative on the {2}. You should create a positive entry {3} before the date {4} and time {5} to post the correct valuation rate. For more details, please read the
documentation." msgstr "كان رصيد الصنف {0} في المستودع {1} سالبًا في {2}. يجب عليك إنشاء قيد موجب {3} قبل التاريخ {4} والوقت {5} لتسجيل معدل التقييم الصحيح. لمزيد من التفاصيل، يُرجى قراءة الوثائق ." -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:737 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:740 msgid "The stock has been reserved for the following Items and Warehouses, un-reserve the same to {0} the Stock Reconciliation:

{1}" msgstr "تم حجز المخزون للأصناف والمستودعات التالية، قم بإلغاء حجزها في {0} تسوية المخزون:

{1}" @@ -54636,11 +54657,11 @@ msgstr "" msgid "The system will create a Sales Invoice or a POS Invoice from the POS interface based on this setting. For high-volume transactions, it is recommended to use POS Invoice." msgstr "سيقوم النظام بإنشاء فاتورة مبيعات أو فاتورة نقاط بيع من واجهة نقاط البيع بناءً على هذا الإعداد. يُنصح باستخدام فاتورة نقاط البيع في حالة المعاملات ذات الحجم الكبير." -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:1011 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:1110 msgid "The task has been enqueued as a background job. In case there is any issue on processing in background, the system will add a comment about the error on this Stock Reconciliation and revert to the Draft stage" msgstr "وقد تم إرساء المهمة كعمل خلفية. في حالة وجود أي مشكلة في المعالجة في الخلفية ، سيقوم النظام بإضافة تعليق حول الخطأ في تسوية المخزون هذا والعودة إلى مرحلة المسودة" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:1022 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:1121 msgid "The task has been enqueued as a background job. In case there is any issue on processing in background, the system will add a comment about the error on this Stock Reconciliation and revert to the Submitted stage" msgstr "تمت إضافة المهمة إلى قائمة الانتظار كعملية خلفية. في حال وجود أي مشكلة أثناء المعالجة في الخلفية، سيضيف النظام تعليقًا حول الخطأ في عملية مطابقة المخزون هذه، ثم يعود إلى حالة \"تم الإرسال\"." @@ -54688,15 +54709,15 @@ msgstr "تختلف قيمة {0} بين العناصر {1} و {2}" msgid "The value {0} is already assigned to an existing Item {1}." msgstr "تم تعيين القيمة {0} بالفعل لعنصر موجود {1}." -#: erpnext/manufacturing/doctype/work_order/work_order.js:1251 +#: erpnext/manufacturing/doctype/work_order/work_order.js:1258 msgid "The warehouse where you store finished Items before they are shipped." msgstr "المستودع الذي يتم فيه تخزين المنتجات النهائية قبل شحنها." -#: erpnext/manufacturing/doctype/work_order/work_order.js:1244 +#: erpnext/manufacturing/doctype/work_order/work_order.js:1251 msgid "The warehouse where you store your raw materials. Each required item can have a separate source warehouse. Group warehouse also can be selected as source warehouse. On submission of the Work Order, the raw materials will be reserved in these warehouses for production usage." msgstr "المستودع الذي تُخزّن فيه المواد الخام. يمكن تخصيص مستودع مصدر منفصل لكل صنف مطلوب. كما يُمكن اختيار مستودع المجموعة كمستودع مصدر. عند تقديم أمر العمل، تُحجز المواد الخام في هذه المستودعات لاستخدامها في الإنتاج." -#: erpnext/manufacturing/doctype/work_order/work_order.js:1256 +#: erpnext/manufacturing/doctype/work_order/work_order.js:1263 msgid "The warehouse where your Items will be transferred when you begin production. Group Warehouse can also be selected as a Work in Progress warehouse." msgstr "المستودع الذي ستُنقل إليه منتجاتك عند بدء الإنتاج. يمكن أيضاً اختيار مستودع المجموعة كمستودع للمنتجات قيد التصنيع." @@ -54704,11 +54725,11 @@ msgstr "المستودع الذي ستُنقل إليه منتجاتك عند ب msgid "The withdrawal or deposit amounts - only required if there's no amount column." msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:908 +#: erpnext/manufacturing/doctype/job_card/job_card.py:909 msgid "The {0} ({1}) must be equal to {2} ({3})" msgstr "يجب أن يكون {0} ({1}) مساويًا لـ {2} ({3})" -#: erpnext/public/js/controllers/transaction.js:3359 +#: erpnext/public/js/controllers/transaction.js:3373 msgid "The {0} contains Unit Price Items." msgstr "يحتوي {0} على عناصر سعر الوحدة." @@ -54724,7 +54745,7 @@ msgstr "تم إنشاء {0} {1} بنجاح" msgid "The {0} {1} does not match with the {0} {2} in the {3} {4}" msgstr "لا يتطابق {0} {1} مع {0} {2} في {3} {4}" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1014 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1015 msgid "The {0} {1} is used to calculate the valuation cost for the finished good {2}." msgstr "يتم استخدام {0} {1} لحساب تكلفة التقييم للمنتج النهائي {2}." @@ -54809,7 +54830,7 @@ msgstr "لم يتم العثور على دفعة بالمقابلة مع {0}: {1 msgid "There is one unreconciled transaction before {0}." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1977 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2035 msgid "There must be atleast 1 Finished Good in this Stock Entry" msgstr "يجب أن يكون هناك منتج نهائي واحد على الأقل في هذا الإدخال المخزوني." @@ -54873,7 +54894,7 @@ msgstr "ملخص هذا الشهر" msgid "This PDF is password protected. Please set the correct statement password on the Bank Account and try again." msgstr "" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1745 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1754 msgid "This Payment Entry is reconciled with {0}. Cancelling will automatically unreconcile it. Do you want to proceed?" msgstr "" @@ -54921,7 +54942,7 @@ msgstr "" msgid "This covers all scorecards tied to this Setup" msgstr "وهذا يغطي جميع بطاقات الأداء مرتبطة بهذا الإعداد" -#: erpnext/controllers/status_updater.py:489 +#: erpnext/controllers/status_updater.py:500 msgid "This document is over limit by {0} {1} for item {4}. Are you making another {3} against the same {2}?" msgstr "هذه الوثيقة هي على حد كتبها {0} {1} لمادة {4}. وجعل لكم آخر {3} ضد نفسه {2}؟" @@ -55024,7 +55045,7 @@ msgstr "يُعتبر هذا الأمر خطيراً من وجهة نظر الم msgid "This is done to handle accounting for cases when Purchase Receipt is created after Purchase Invoice" msgstr "يتم إجراء ذلك للتعامل مع محاسبة الحالات التي يتم فيها إنشاء إيصال الشراء بعد فاتورة الشراء" -#: erpnext/manufacturing/doctype/work_order/work_order.js:1237 +#: erpnext/manufacturing/doctype/work_order/work_order.js:1244 msgid "This is enabled by default. If you want to plan materials for sub-assemblies of the Item you're manufacturing leave this enabled. If you plan and manufacture the sub-assemblies separately, you can disable this checkbox." msgstr "هذا الخيار مُفعّل افتراضيًا. إذا كنت ترغب في تخطيط المواد اللازمة لتجميعات فرعية للمنتج الذي تقوم بتصنيعه، فاترك هذا الخيار مُفعّلًا. أما إذا كنت تخطط وتُصنّع التجميعات الفرعية بشكل منفصل، فيمكنك تعطيل هذا الخيار." @@ -55099,7 +55120,7 @@ msgstr "" msgid "This schedule was created when Asset {0} was adjusted through Asset Value Adjustment {1}." msgstr "تم إنشاء هذا الجدول عندما تم تعديل الأصل {0} من خلال تعديل قيمة الأصل {1}." -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:476 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:479 msgid "This schedule was created when Asset {0} was consumed through Asset Capitalization {1}." msgstr "تم إنشاء هذا الجدول عندما تم استهلاك الأصل {0} من خلال رسملة الأصل {1}." @@ -55107,11 +55128,11 @@ msgstr "تم إنشاء هذا الجدول عندما تم استهلاك ال msgid "This schedule was created when Asset {0} was repaired through Asset Repair {1}." msgstr "تم إنشاء هذا الجدول عندما تم إصلاح الأصل {0} من خلال إصلاح الأصل {1}." -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1542 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1549 msgid "This schedule was created when Asset {0} was restored due to Sales Invoice {1} cancellation." msgstr "تم إنشاء هذا الجدول عندما تم استعادة الأصل {0} بسبب إلغاء فاتورة المبيعات {1} ." -#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:585 +#: erpnext/assets/doctype/asset_capitalization/asset_capitalization.py:588 msgid "This schedule was created when Asset {0} was restored on Asset Capitalization {1}'s cancellation." msgstr "تم إنشاء هذا الجدول عندما تمت استعادة الأصل {0} عند إلغاء رسملة الأصل {1}." @@ -55119,7 +55140,7 @@ msgstr "تم إنشاء هذا الجدول عندما تمت استعادة ا msgid "This schedule was created when Asset {0} was restored." msgstr "تم إنشاء هذا الجدول عند استعادة الأصل {0} ." -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1538 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1545 msgid "This schedule was created when Asset {0} was returned through Sales Invoice {1}." msgstr "تم إنشاء هذا الجدول عندما تم إرجاع الأصل {0} من خلال فاتورة المبيعات {1}." @@ -55131,7 +55152,7 @@ msgstr "تم إنشاء هذا الجدول عندما تم إلغاء الأص msgid "This schedule was created when Asset {0} was {1} into new Asset {2}." msgstr "تم إنشاء هذا الجدول عندما تم تحويل الأصل {0} إلى الأصل الجديد {2}{1} ." -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1514 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1521 msgid "This schedule was created when Asset {0} was {1} through Sales Invoice {2}." msgstr "تم إنشاء هذا الجدول عندما كان الأصل {0} هو {1} من خلال فاتورة المبيعات {2}." @@ -55324,7 +55345,7 @@ msgstr "الوقت بالدقائق" msgid "Time in mins." msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:885 +#: erpnext/manufacturing/doctype/job_card/job_card.py:886 msgid "Time logs are required for {0} {1}" msgstr "سجلات الوقت مطلوبة لـ {0} {1}" @@ -55343,6 +55364,12 @@ msgstr "الوقت (دقيقة)" msgid "Timeline" msgstr "" +#. Description of the 'PCV Job Timeout (seconds)' (Int) field in DocType +#. 'Accounts Settings' +#: erpnext/accounts/doctype/accounts_settings/accounts_settings.json +msgid "Timeout (in seconds) for each background job enqueued by Process Period Closing Voucher" +msgstr "" + #: erpnext/manufacturing/doctype/workstation/workstation_job_card.html:36 #: erpnext/public/js/projects/timer.js:5 msgid "Timer" @@ -55386,7 +55413,7 @@ msgstr "تفاصيل الجدول الزمني" msgid "Timesheet for tasks." msgstr "الجدول الزمني للمهام." -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:935 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:942 msgid "Timesheet {0} cannot be invoiced in its current state" msgstr "لا يمكن إصدار فاتورة لجدول الدوام {0} في حالته الحالية" @@ -55658,24 +55685,18 @@ msgstr "لإضافة عمليات، حدد خانة الاختيار \"مع ال msgid "To add subcontracted Item's raw materials if include exploded items is disabled." msgstr "لإضافة المواد الخام للعنصر المتعاقد عليه من الباطن في حالة تعطيل خيار تضمين العناصر المفككة." -#: erpnext/controllers/status_updater.py:482 +#: erpnext/controllers/status_updater.py:493 msgid "To allow over billing, update \"Over Billing Allowance\" in Accounts Settings or the Item." msgstr "للسماح بزيادة الفواتير ، حدّث "Over Billing Allowance" في إعدادات الحسابات أو العنصر." -#: erpnext/controllers/status_updater.py:476 +#: erpnext/controllers/status_updater.py:487 msgid "To allow over ordering, update \"Over Order Allowance\" in Buying Settings." msgstr "" -#: erpnext/controllers/status_updater.py:478 +#: erpnext/controllers/status_updater.py:489 msgid "To allow over receipt / delivery, update \"Over Receipt/Delivery Allowance\" in Stock Settings or the Item." msgstr "للسماح بوصول الاستلام / التسليم ، قم بتحديث "الإفراط في الاستلام / بدل التسليم" في إعدادات المخزون أو العنصر." -#. Description of the 'Mandatory Depends On' (Small Text) field in DocType -#. 'Inventory Dimension' -#: erpnext/stock/doctype/inventory_dimension/inventory_dimension.json -msgid "To apply condition on parent field use parent.field_name and to apply condition on child table use doc.field_name. Here field_name could be based on the actual column name of the respective field." -msgstr "لتطبيق شرط على الحقل الأصل، استخدم parent.field_name، ولتطبيق شرط على الجدول الفرعي، استخدم doc.field_name. يمكن أن يستند field_name هنا إلى اسم العمود الفعلي للحقل المعني." - #. Label of the delivered_by_supplier (Check) field in DocType 'Purchase Order #. Item' #: erpnext/buying/doctype/purchase_order_item/purchase_order_item.json @@ -55868,6 +55889,22 @@ msgstr "مجموع التكاليف الإضافية" msgid "Total Advance" msgstr "إجمالي المقدمة" +#: erpnext/public/js/utils.js:250 +msgid "Total Advance Paid" +msgstr "" + +#: erpnext/public/js/utils.js:195 +msgid "Total Advance Paid: {0}" +msgstr "" + +#: erpnext/public/js/utils.js:252 +msgid "Total Advance Received" +msgstr "" + +#: erpnext/public/js/utils.js:198 +msgid "Total Advance Received: {0}" +msgstr "" + #. Label of the total_allocated_amount (Currency) field in DocType 'Payment #. Entry' #: erpnext/accounts/doctype/payment_entry/payment_entry.json @@ -56000,12 +56037,12 @@ msgstr "مجموع العمولة" #. Label of the total_completed_qty (Float) field in DocType 'Job Card' #: erpnext/manufacturing/doctype/job_card/job_card.json -#: erpnext/manufacturing/doctype/job_card/job_card.py:904 +#: erpnext/manufacturing/doctype/job_card/job_card.py:905 #: erpnext/manufacturing/report/job_card_summary/job_card_summary.py:174 msgid "Total Completed Qty" msgstr "إجمالي الكمية المكتملة" -#: erpnext/manufacturing/doctype/job_card/job_card.py:191 +#: erpnext/manufacturing/doctype/job_card/job_card.py:192 msgid "Total Completed Qty is required for Job Card {0}, please start and complete the job card before submission" msgstr "" @@ -56510,7 +56547,11 @@ msgstr "الوقت الإجمالي (بالدقائق)" msgid "Total Time in Mins" msgstr "إجمالي الوقت بالدقائق" -#: erpnext/public/js/utils.js:193 +#: erpnext/public/js/utils.js:253 +msgid "Total Unpaid" +msgstr "" + +#: erpnext/public/js/utils.js:200 msgid "Total Unpaid: {0}" msgstr "عدد غير مدفوع: {0}" @@ -56589,7 +56630,7 @@ msgstr "إجمالي وقت العمل على محطة العمل (بالساع msgid "Total allocated percentage for sales team should be 100" msgstr "مجموع النسبة المئوية المخصصة ل فريق المبيعات يجب أن يكون 100" -#: erpnext/selling/doctype/customer/customer.py:193 +#: erpnext/selling/doctype/customer/customer.py:194 msgid "Total contribution percentage should be equal to 100" msgstr "يجب أن تكون نسبة المساهمة الإجمالية مساوية 100" @@ -56707,22 +56748,6 @@ msgstr "معلومات حالة التتبع" msgid "Tracking URL" msgstr "رابط التتبع" -#. Option for the 'Apply On' (Select) field in DocType 'Pricing Rule' -#. Option for the 'Apply On' (Select) field in DocType 'Promotional Scheme' -#. Label of the transaction_tab (Tab Break) field in DocType 'Selling Settings' -#. Label of the transaction (Select) field in DocType 'Authorization Rule' -#. Option for the 'Based On' (Select) field in DocType 'Repost Item Valuation' -#: erpnext/accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.py:1057 -#: erpnext/accounts/doctype/pricing_rule/pricing_rule.json -#: erpnext/accounts/doctype/promotional_scheme/promotional_scheme.json -#: erpnext/manufacturing/doctype/workstation/workstation_dashboard.py:10 -#: erpnext/public/js/utils/naming_series.js:219 -#: erpnext/selling/doctype/selling_settings/selling_settings.json -#: erpnext/setup/doctype/authorization_rule/authorization_rule.json -#: erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.json -msgid "Transaction" -msgstr "حركة" - #. Label of the transaction_currency (Link) field in DocType 'GL Entry' #. Label of the currency (Link) field in DocType 'Payment Request' #: erpnext/accounts/doctype/gl_entry/gl_entry.json @@ -56780,11 +56805,11 @@ msgstr "عنصر سجل حذف المعاملة" msgid "Transaction Deletion Record To Delete" msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1103 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1114 msgid "Transaction Deletion Record {0} is already running. {1}" msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1122 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:1133 msgid "Transaction Deletion Record {0} is currently deleting {1}. Cannot save documents until deletion completes." msgstr "" @@ -56889,7 +56914,7 @@ msgstr "المعاملة التي يتم اقتطاع الضريبة منها" msgid "Transaction from which tax is withheld" msgstr "المعاملة التي يتم اقتطاع الضريبة منها" -#: erpnext/manufacturing/doctype/job_card/job_card.py:862 +#: erpnext/manufacturing/doctype/job_card/job_card.py:863 msgid "Transaction not allowed against stopped Work Order {0}" msgstr "المعاملة غير مسموح بها في مقابل أمر العمل المتوقف {0}" @@ -56936,11 +56961,16 @@ msgstr "المعاملات السنوية التاريخ" msgid "Transactions against the Company already exist! Chart of Accounts can only be imported for a Company with no transactions." msgstr "توجد بالفعل معاملات مسجلة على الشركة! لا يمكن استيراد دليل الحسابات إلا لشركة ليس لديها أي معاملات." +#. Description of the 'Credit Limit' (Table) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Transactions are blocked or warned when outstanding balance exceeds this amount." +msgstr "" + #: banking/src/components/features/BankStatementImporter/CSV/StatementDetails.tsx:239 msgid "Transactions to be imported into the system" msgstr "" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1199 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1206 msgid "Transactions using Sales Invoice in POS are disabled." msgstr "تم تعطيل المعاملات التي تستخدم فاتورة المبيعات في نظام نقاط البيع." @@ -57375,7 +57405,7 @@ msgstr "إعدادات ضريبة القيمة المضافة في الإمار #: erpnext/manufacturing/doctype/workstation/workstation.js:480 #: erpnext/manufacturing/report/bom_explorer/bom_explorer.py:70 #: erpnext/manufacturing/report/bom_operations_time/bom_operations_time.py:110 -#: erpnext/public/js/stock_analytics.js:94 erpnext/public/js/utils.js:841 +#: erpnext/public/js/stock_analytics.js:94 erpnext/public/js/utils.js:858 #: erpnext/quality_management/doctype/quality_goal_objective/quality_goal_objective.json #: erpnext/quality_management/doctype/quality_review_objective/quality_review_objective.json #: erpnext/selling/doctype/delivery_schedule_item/delivery_schedule_item.json @@ -57405,7 +57435,7 @@ msgstr "إعدادات ضريبة القيمة المضافة في الإمار #: erpnext/stock/report/available_serial_no/available_serial_no.py:101 #: erpnext/stock/report/batch_wise_balance_history/batch_wise_balance_history.py:87 #: erpnext/stock/report/item_prices/item_prices.py:55 -#: erpnext/stock/report/item_where_used/item_where_used.py:75 +#: erpnext/stock/report/item_where_used/item_where_used.py:69 #: erpnext/stock/report/item_wise_consumption/item_wise_consumption.py:60 #: erpnext/stock/report/product_bundle_balance/product_bundle_balance.py:94 #: erpnext/stock/report/stock_ageing/stock_ageing.py:223 @@ -57485,7 +57515,7 @@ msgstr "" msgid "UOM Name" msgstr "اسم وحدة القايس" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:4274 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:4332 msgid "UOM conversion factor required for UOM: {0} in Item: {1}" msgstr "معامل تحويل وحدة القياس المطلوب لوحدة القياس: {0} في العنصر: {1}" @@ -57537,7 +57567,7 @@ msgstr "عدم المصالحة" msgid "UnReconcile Allocations" msgstr "تخصيصات غير متوافقة" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:466 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:477 msgid "Unable to fetch DocType details. Please contact system administrator." msgstr "" @@ -57641,7 +57671,7 @@ msgstr "" msgid "Undo {}?" msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:938 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:949 msgid "Unexpected Naming Series Pattern" msgstr "" @@ -57866,7 +57896,7 @@ msgstr "غير المجدولة" msgid "Unsecured Loans" msgstr "القروض غير المضمونة" -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1714 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:1723 msgid "Unset Matched Payment Request" msgstr "طلب دفع غير مطابق" @@ -58016,7 +58046,7 @@ msgstr "تحديث المخزون الحالي" #: erpnext/buying/doctype/purchase_order/purchase_order.js:324 #: erpnext/buying/doctype/supplier_quotation/supplier_quotation.js:43 -#: erpnext/public/js/utils.js:947 +#: erpnext/public/js/utils.js:964 #: erpnext/selling/doctype/quotation/quotation.js:136 #: erpnext/selling/doctype/sales_order/sales_order.js:90 #: erpnext/selling/doctype/sales_order/sales_order.js:946 @@ -58116,7 +58146,7 @@ msgstr "تحديث حقول التكاليف والفواتير لهذا الم msgid "Updating Variants..." msgstr "جارٍ تحديث المتغيرات ..." -#: erpnext/manufacturing/doctype/work_order/work_order.js:1199 +#: erpnext/manufacturing/doctype/work_order/work_order.js:1206 msgid "Updating Work Order status" msgstr "تحديث حالة أمر العمل" @@ -58126,7 +58156,7 @@ msgstr "جارٍ تحديث التفاصيل." #: banking/src/components/features/Settings/Rules/RuleList.tsx:114 msgid "Updating..." -msgstr "" +msgstr "يتم التحديث..." #: erpnext/accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.js:48 msgid "Upload Bank Statement" @@ -58338,6 +58368,12 @@ msgstr "مستخدم" msgid "Used for Production Plan" msgstr "تستخدم لخطة الإنتاج" +#. Description of the 'Is Internal Supplier' (Check) field in DocType +#. 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "Used for inter-company transactions" +msgstr "" + #. Description of the 'Purchase Expense Contra Account' (Link) field in DocType #. 'Item Default' #: erpnext/stock/doctype/item_default/item_default.json @@ -58349,6 +58385,12 @@ msgstr "" msgid "Used to create an opening Stock Entry with the Valuation Rate when the item is saved" msgstr "" +#. Description of the 'Tax Withholding Group' (Link) field in DocType +#. 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "Used to pick the correct rate row inside the Tax Withholding Category for this supplier (e.g. Company vs Individual rates)" +msgstr "" + #. Description of the 'Account Category' (Link) field in DocType 'Account' #: erpnext/accounts/doctype/account/account.json msgid "Used with Financial Report Template" @@ -58382,6 +58424,10 @@ msgstr "وقت قرار المستخدم" msgid "User has not applied rule on the invoice {0}" msgstr "لم يطبق المستخدم قاعدة على الفاتورة {0}" +#: erpnext/crm/frappe_crm_api.py:176 +msgid "User not allowed to synchronize data from Frappe CRM on ERPNext. Contact System Manager of ERPNext." +msgstr "" + #: erpnext/setup/doctype/employee/employee.py:298 msgid "User {0} does not exist" msgstr "المستخدم {0} غير موجود\\n
\\nUser {0} does not exist" @@ -58418,6 +58464,11 @@ msgstr "يمكن للمستخدمين تفعيل خانة الاختيار إذ msgid "Users can make manufacture entry against Job Cards" msgstr "" +#. Description of the 'Portal Users' (Tab Break) field in DocType 'Customer' +#: erpnext/selling/doctype/customer/customer.json +msgid "Users listed here can log into the customer portal to view their orders, invoices, and deliveries." +msgstr "" + #. Description of the 'Role Allowed to over bill ' (Link) field in DocType #. 'Accounts Settings' #: erpnext/accounts/doctype/accounts_settings/accounts_settings.json @@ -58691,11 +58742,11 @@ msgstr "سعر التقييم" msgid "Valuation Rate (In / Out)" msgstr "معدل التقييم (داخل / خارج)" -#: erpnext/stock/stock_ledger.py:2042 +#: erpnext/stock/stock_ledger.py:2031 msgid "Valuation Rate Missing" msgstr "معدل التقييم مفقود" -#: erpnext/stock/stock_ledger.py:2020 +#: erpnext/stock/stock_ledger.py:2009 msgid "Valuation Rate for the Item {0}, is required to do accounting entries for {1} {2}." msgstr "معدل التقييم للعنصر {0} ، مطلوب لإجراء إدخالات محاسبية لـ {1} {2}." @@ -58703,7 +58754,7 @@ msgstr "معدل التقييم للعنصر {0} ، مطلوب لإجراء إد msgid "Valuation Rate is mandatory if Opening Stock entered" msgstr "معدل التقييم إلزامي إذا ادخلت قيمة مبدئية للمخزون\\n
\\nValuation Rate is mandatory if Opening Stock entered" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:789 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:792 msgid "Valuation Rate required for Item {0} at row {1}" msgstr "معدل التقييم مطلوب للبند {0} في الصف {1}" @@ -58713,7 +58764,7 @@ msgstr "معدل التقييم مطلوب للبند {0} في الصف {1}" msgid "Valuation and Total" msgstr "التقييم والمجموع" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:993 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:996 msgid "Valuation rate for customer provided items has been set to zero." msgstr "تم تحديد معدل تقييم العناصر التي يقدمها العملاء عند الصفر." @@ -58730,7 +58781,7 @@ msgstr "معدل تقييم السلعة وفقًا لفاتورة المبيع msgid "Valuation type charges can not be marked as Inclusive" msgstr "لا يمكن تحديد رسوم نوع التقييم على أنها شاملة" -#: erpnext/public/js/controllers/accounts.js:231 +#: erpnext/public/js/controllers/accounts.js:228 msgid "Valuation type charges can not marked as Inclusive" msgstr "لا يمكن وضع علامة على رسوم التقييم على انها شاملة" @@ -58828,7 +58879,7 @@ msgstr "فارا" #. Column Map' #: erpnext/accounts/doctype/bank_statement_import_log_column_map/bank_statement_import_log_column_map.json msgid "Variable" -msgstr "" +msgstr "متغير" #. Label of the variable_label (Link) field in DocType 'Supplier Scorecard #. Scoring Variable' @@ -59552,7 +59603,7 @@ msgstr "" msgid "Warehouse not found against the account {0}" msgstr "لم يتم العثور على المستودع مقابل الحساب {0}" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1256 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1263 #: erpnext/stock/doctype/delivery_note/delivery_note.py:414 msgid "Warehouse required for stock Item {0}" msgstr "مستودع الأسهم المطلوبة لل تفاصيل {0}" @@ -59582,7 +59633,7 @@ msgstr "المستودع {0} غير موجود" msgid "Warehouse {0} is not allowed for Sales Order {1}, it should be {2}" msgstr "لا يُسمح باستخدام المستودع {0} في أمر البيع {1}، بل يجب أن يكون {2}" -#: erpnext/controllers/stock_controller.py:813 +#: erpnext/controllers/stock_controller.py:816 msgid "Warehouse {0} is not linked to any account, please mention the account in the warehouse record or set default inventory account in company {1}." msgstr "المستودع {0} غير مرتبط بأي حساب، يرجى ذكر الحساب في سجل المستودع أو تعيين حساب المخزون الافتراضي في الشركة {1}." @@ -59869,10 +59920,6 @@ msgstr "موقع المواصفات" msgid "Website:" msgstr "الموقع:" -#: erpnext/public/js/utils/naming_series.js:95 -msgid "Week of the year" -msgstr "" - #: erpnext/selling/report/sales_analytics/sales_analytics.py:457 #: erpnext/stock/report/stock_analytics/stock_analytics.py:121 msgid "Week {0} {1}" @@ -60011,7 +60058,12 @@ msgstr "عند إنشاء عنصر، سيؤدي إدخال قيمة لهذا ا msgid "When enabled, it adds a cutoff date filter to Delivery Notes created in bulk from Sales Orders. This allows you to process orders only with a transaction date up to the specified cutoff date, which is useful for period-end processing and batch fulfillment." msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:394 +#. Description of the 'Block Supplier' (Check) field in DocType 'Supplier' +#: erpnext/buying/doctype/supplier/supplier.json +msgid "When enabled, transactions with this supplier will be blocked based on the Hold Type below" +msgstr "" + +#: erpnext/stock/doctype/stock_entry/stock_entry.py:397 msgid "When there are multiple finished goods ({0}) in a Repack stock entry, the basic rate for all finished goods must be set manually. To set rate manually, enable the checkbox 'Set Basic Rate Manually' in the respective finished good row." msgstr "" @@ -60242,7 +60294,7 @@ msgstr "المواد المستهلكة في أمر العمل" msgid "Work Order Item" msgstr "بند أمر العمل" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1012 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1015 msgid "Work Order Mismatch" msgstr "" @@ -60291,8 +60343,8 @@ msgstr "لا يمكن إنشاء أمر العمل للسبب التالي:
msgid "Work Order cannot be raised against a Item Template" msgstr "لا يمكن رفع أمر العمل مقابل قالب العنصر" -#: erpnext/manufacturing/doctype/work_order/work_order.py:2662 -#: erpnext/manufacturing/doctype/work_order/work_order.py:2742 +#: erpnext/manufacturing/doctype/work_order/work_order.py:2694 +#: erpnext/manufacturing/doctype/work_order/work_order.py:2774 msgid "Work Order has been {0}" msgstr "تم عمل الطلب {0}" @@ -60304,11 +60356,11 @@ msgstr "أمر العمل لم يتم إنشاؤه" msgid "Work Order {0} created" msgstr "تم إنشاء أمر العمل {0}" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:2638 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:2696 msgid "Work Order {0} has no produced qty" msgstr "" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:1136 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:1139 msgid "Work Order {0}: Job Card not found for the operation {1}" msgstr "أمر العمل {0}: لم يتم العثور على بطاقة المهمة للعملية {1}" @@ -60620,14 +60672,6 @@ msgstr "اسم العام" msgid "Year Start Date" msgstr "تاريخ بدء العام" -#: erpnext/public/js/utils/naming_series.js:92 -msgid "Year in 2 digits" -msgstr "" - -#: erpnext/public/js/utils/naming_series.js:91 -msgid "Year in 4 digits" -msgstr "" - #. Label of the year_of_passing (Int) field in DocType 'Employee Education' #: erpnext/setup/doctype/employee_education/employee_education.json msgid "Year of Passing" @@ -60677,11 +60721,7 @@ msgstr "يمكنك أيضا نسخ - لصق هذا الرابط في متصفح msgid "You can also set default CWIP account in Company {}" msgstr "يمكنك أيضًا تعيين حساب CWIP الافتراضي في الشركة {}" -#: erpnext/public/js/utils/naming_series.js:87 -msgid "You can also use variables in the series name by putting them between (.) dots" -msgstr "" - -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1057 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1064 msgid "You can change the parent account to a Balance Sheet account or select a different account." msgstr "يمكنك تغيير الحساب الرئيسي إلى حساب الميزانية العمومية أو تحديد حساب مختلف." @@ -60722,7 +60762,7 @@ msgstr "" msgid "You can use {0} to reconcile against {1} later." msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1360 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1378 msgid "You can't make any changes to Job Card since Work Order is closed." msgstr "لا يمكنك إجراء أي تغييرات على بطاقة العمل لأن أمر العمل مغلق." @@ -60738,7 +60778,7 @@ msgstr "لا يمكنك استبدال نقاط الولاء التي تزيد msgid "You cannot change the rate if BOM is mentioned against any Item." msgstr "لا يمكنك تغيير السعر إذا تم ذكر قائمة المواد مقابل أي عنصر." -#: erpnext/accounts/doctype/accounting_period/accounting_period.py:136 +#: erpnext/accounts/doctype/accounting_period/accounting_period.py:149 msgid "You cannot create a {0} within the closed Accounting Period {1}" msgstr "لا يمكنك إنشاء {0} خلال الفترة المحاسبية المغلقة {1}" @@ -60762,7 +60802,7 @@ msgstr "لا يمكنك حذف مشروع من نوع 'خارجي'" msgid "You cannot edit root node." msgstr "لا يمكنك تحرير عقدة الجذر." -#: erpnext/accounts/doctype/accounts_settings/accounts_settings.py:196 +#: erpnext/accounts/doctype/accounts_settings/accounts_settings.py:197 msgid "You cannot enable both the settings '{0}' and '{1}'." msgstr "لا يمكنك تفعيل كل من الإعدادين '{0}' و '{1}'." @@ -60815,11 +60855,11 @@ msgstr "ليس لديك ما يكفي من نقاط الولاء لاستردا msgid "You don't have enough points to redeem." msgstr "ليس لديك ما يكفي من النقاط لاستردادها." -#: erpnext/controllers/accounts_controller.py:4446 +#: erpnext/controllers/accounts_controller.py:4444 msgid "You don't have permission to create a Company Address. Please contact your System Manager." msgstr "" -#: erpnext/controllers/accounts_controller.py:4426 +#: erpnext/controllers/accounts_controller.py:4424 msgid "You don't have permission to update Company details. Please contact your System Manager." msgstr "" @@ -60827,15 +60867,15 @@ msgstr "" msgid "You don't have permission to update Received Qty DocField for item {0}" msgstr "" -#: erpnext/controllers/accounts_controller.py:4420 +#: erpnext/controllers/accounts_controller.py:4418 msgid "You don't have permission to update this document. Please contact your System Manager." msgstr "" -#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:291 +#: erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:303 msgid "You had {} errors while creating opening invoices. Check {} for more details" msgstr "كان لديك {} من الأخطاء أثناء إنشاء الفواتير الافتتاحية. تحقق من {} لمزيد من التفاصيل" -#: erpnext/public/js/utils.js:1047 +#: erpnext/public/js/utils.js:1064 msgid "You have already selected items from {0} {1}" msgstr "لقد حددت العناصر من {0} {1}" @@ -60867,11 +60907,11 @@ msgstr "" msgid "You have to enable auto re-order in Stock Settings to maintain re-order levels." msgstr "يجب عليك تمكين الطلب التلقائي في إعدادات الأسهم للحفاظ على مستويات إعادة الطلب." -#: erpnext/selling/page/point_of_sale/pos_controller.js:281 +#: erpnext/selling/page/point_of_sale/pos_controller.js:272 msgid "You have unsaved changes. Do you want to save the invoice?" msgstr "لديك تغييرات غير محفوظة. هل تريد حفظ الفاتورة؟" -#: erpnext/selling/page/point_of_sale/pos_controller.js:743 +#: erpnext/selling/page/point_of_sale/pos_controller.js:734 msgid "You must select a customer before adding an item." msgstr "يجب عليك تحديد عميل قبل إضافة عنصر." @@ -60886,7 +60926,7 @@ msgstr "لقد اخترت مجموعة الحسابات {1} كحساب {2} في #. Option for the 'Provider' (Select) field in DocType 'Video' #: erpnext/utilities/doctype/video/video.json msgid "YouTube" -msgstr "" +msgstr "موقع YouTube" #. Name of a report #: erpnext/utilities/report/youtube_interactions/youtube_interactions.json @@ -60935,7 +60975,7 @@ msgstr "رصيد صفري" msgid "Zero Rated" msgstr "معدل صفري" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:723 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:726 msgid "Zero quantity" msgstr "الكمية صفر" @@ -60961,7 +61001,7 @@ msgstr "[هام] [ERPNext] إعادة ترتيب الأخطاء تلقائيًا msgid "`Allow Negative rates for Items`" msgstr "السماح بأسعار سلبية للعناصر" -#: erpnext/stock/stock_ledger.py:2034 +#: erpnext/stock/stock_ledger.py:2023 msgid "after" msgstr "بعد" @@ -61002,7 +61042,7 @@ msgid "cannot be greater than 100" msgstr "لا يمكن أن يكون أكبر من 100" #: erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py:341 -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1145 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1152 msgid "dated {0}" msgstr "مؤرخة {0}" @@ -61055,10 +61095,6 @@ msgstr "exchangerate.host" msgid "fieldname" msgstr "" -#: erpnext/public/js/utils/naming_series.js:97 -msgid "fieldname on the document e.g." -msgstr "" - #. Option for the 'Service Provider' (Select) field in DocType 'Currency #. Exchange Settings' #: erpnext/accounts/doctype/currency_exchange_settings/currency_exchange_settings.json @@ -61136,7 +61172,7 @@ msgstr "من أصل 5" msgid "paid to" msgstr "مدفوع لـ" -#: erpnext/public/js/utils.js:463 +#: erpnext/public/js/utils.js:480 msgid "payments app is not installed. Please install it from {0} or {1}" msgstr "تطبيق الدفع غير مثبت. يرجى تثبيته من {0} أو {1}" @@ -61156,7 +61192,7 @@ msgstr "تطبيق الدفع غير مثبت. يرجى تثبيته من {} أ msgid "per hour" msgstr "كل ساعة" -#: erpnext/stock/stock_ledger.py:2035 +#: erpnext/stock/stock_ledger.py:2024 msgid "performing either one below:" msgstr "أداء أحد الخيارين التاليين:" @@ -61187,9 +61223,9 @@ msgstr "مستلم من" #: banking/src/components/features/BankReconciliation/BankBalance.tsx:143 msgid "reconciled" -msgstr "" +msgstr "فرضت عليه" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1516 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1523 msgid "returned" msgstr "تم إرجاعه" @@ -61224,7 +61260,7 @@ msgstr "RGT" msgid "sandbox" msgstr "رمل" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1516 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1523 msgid "sold" msgstr "تم البيع" @@ -61232,8 +61268,8 @@ msgstr "تم البيع" msgid "subscription is already cancelled." msgstr "تم إلغاء الاشتراك بالفعل." -#: erpnext/controllers/status_updater.py:492 -#: erpnext/controllers/status_updater.py:511 +#: erpnext/controllers/status_updater.py:503 +#: erpnext/controllers/status_updater.py:522 msgid "target_ref_field" msgstr "حقل مرجع الهدف" @@ -61251,14 +61287,14 @@ msgstr "عنوان" msgid "to" msgstr "إلى" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:3239 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:3246 msgid "to unallocate the amount of this Return Invoice before cancelling it." msgstr "لإلغاء تخصيص مبلغ فاتورة الإرجاع هذه قبل إلغائها." #: banking/src/components/features/BankStatementImporter/CSV/StatementDetails.tsx:178 #: banking/src/components/features/BankStatementImporter/CSV/StatementDetails.tsx:182 msgid "transaction" -msgstr "" +msgstr "حركة" #: banking/src/components/features/BankReconciliation/MatchAndReconcile.tsx:458 msgid "transaction selected" @@ -61267,7 +61303,7 @@ msgstr "" #: banking/src/components/features/BankStatementImporter/CSV/StatementDetails.tsx:178 #: banking/src/components/features/BankStatementImporter/CSV/StatementDetails.tsx:182 msgid "transactions" -msgstr "" +msgstr "المعاملات" #: banking/src/components/features/BankReconciliation/MatchAndReconcile.tsx:458 msgid "transactions selected" @@ -61340,11 +61376,6 @@ msgstr "{0} القسيمة المستخدمة هي {1}. الكمية المسم msgid "{0} Digest" msgstr "{0} الملخص" -#: erpnext/public/js/utils/naming_series.js:263 -#: erpnext/public/js/utils/naming_series.js:403 -msgid "{0} Naming Series" -msgstr "" - #: erpnext/accounts/utils.py:1570 msgid "{0} Number {1} is already used in {2} {3}" msgstr "{0} الرقم {1} مستخدم بالفعل في {2} {3}" @@ -61495,7 +61526,7 @@ msgstr "{0} ساعات" msgid "{0} in row {1}" msgstr "{0} في الحقل {1}" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:452 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:463 msgid "{0} is a child table and will be deleted automatically with its parent" msgstr "" @@ -61509,7 +61540,7 @@ msgstr "{0} بُعد محاسبي إلزامي.
يُرجى تحديد قيم msgid "{0} is added multiple times on rows: {1}" msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:628 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:639 msgid "{0} is already running for {1}" msgstr "{0} قيد التشغيل بالفعل لـ {1}" @@ -61521,7 +61552,7 @@ msgstr "تم حظر {0} حتى لا تتم متابعة هذه المعاملة" msgid "{0} is in Draft. Submit it before creating the Asset." msgstr "{0} في وضع المسودة. يرجى إرساله قبل إنشاء الأصل." -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1171 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:1178 msgid "{0} is mandatory for Item {1}" msgstr "{0} إلزامي للصنف {1}\\n
\\n{0} is mandatory for Item {1}" @@ -61530,7 +61561,7 @@ msgstr "{0} إلزامي للصنف {1}\\n
\\n{0} is mandatory for Item {1}" msgid "{0} is mandatory for account {1}" msgstr "{0} إلزامي للحساب {1}" -#: erpnext/public/js/controllers/taxes_and_totals.js:131 +#: erpnext/public/js/controllers/taxes_and_totals.js:132 msgid "{0} is mandatory. Maybe Currency Exchange record is not created for {1} to {2}" msgstr "{0} إلزامي. ربما لم يتم إنشاء سجل صرف العملات من {1} إلى {2}" @@ -61542,7 +61573,7 @@ msgstr "{0} إلزامي. ربما لم يتم إنشاء سجل سعر صرف msgid "{0} is not a CSV file." msgstr "" -#: erpnext/selling/doctype/customer/customer.py:235 +#: erpnext/selling/doctype/customer/customer.py:236 msgid "{0} is not a company bank account" msgstr "{0} ليس حسابًا مصرفيًا للشركة" @@ -61550,7 +61581,7 @@ msgstr "{0} ليس حسابًا مصرفيًا للشركة" msgid "{0} is not a group node. Please select a group node as parent cost center" msgstr "{0} ليست عقدة مجموعة. يرجى تحديد عقدة المجموعة كمركز تكلفة الأصل" -#: erpnext/stock/doctype/stock_entry/stock_entry.py:775 +#: erpnext/stock/doctype/stock_entry/stock_entry.py:778 msgid "{0} is not a stock Item" msgstr "{0} ليس من نوع المخزون" @@ -61574,7 +61605,7 @@ msgstr "{0} لم تتم إضافته في الجدول" msgid "{0} is not enabled in {1}" msgstr "{0} غير ممكّن في {1}" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:636 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:647 msgid "{0} is not running. Cannot trigger events for this Document" msgstr "{0} لا يعمل. لا يمكن تشغيل الأحداث لهذا المستند." @@ -61618,7 +61649,7 @@ msgstr "" msgid "{0} must be negative in return document" msgstr "{0} يجب أن يكون سالبة في وثيقة الارجاع" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2416 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2423 msgid "{0} not allowed to transact with {1}. Please change the Company or add the Company in the 'Allowed To Transact With'-Section in the Customer record." msgstr "لا يُسمح لـ {0} بالتعامل مع {1}. يُرجى تغيير الشركة أو إضافتها في قسم \"مسموح بالتعامل معه\" في سجل العميل." @@ -61634,7 +61665,7 @@ msgstr "{0} المعلمة غير صالحة" msgid "{0} payment entries can not be filtered by {1}" msgstr "{0} لا يمكن فلترة المدفوعات المدخلة {1}" -#: erpnext/controllers/stock_controller.py:1732 +#: erpnext/controllers/stock_controller.py:1779 msgid "{0} qty of Item {1} is being received into Warehouse {2} with capacity {3}." msgstr "يتم استلام كمية {0} من الصنف {1} في المستودع {2} بسعة {3}." @@ -61647,7 +61678,7 @@ msgstr "" msgid "{0} transactions will be imported into the system. Please review the details below and click the 'Import' button to proceed." msgstr "" -#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:727 +#: erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py:730 msgid "{0} units are reserved for Item {1} in Warehouse {2}, please un-reserve the same to {3} the Stock Reconciliation." msgstr "تم حجز الوحدات {0} للصنف {1} في المستودع {2}، يرجى إلغاء حجزها لـ {3} في عملية مطابقة المخزون." @@ -61663,16 +61694,16 @@ msgstr "" msgid "{0} units of {1} are required in {2} with the inventory dimension: {3} on {4} {5} for {6} to complete the transaction." msgstr "يلزم {0} وحدة من {1} في {2} مع بُعد المخزون: {3} على {4} {5} لـ {6} لإكمال المعاملة." -#: erpnext/stock/stock_ledger.py:1687 erpnext/stock/stock_ledger.py:2183 -#: erpnext/stock/stock_ledger.py:2197 +#: erpnext/stock/stock_ledger.py:1676 erpnext/stock/stock_ledger.py:2172 +#: erpnext/stock/stock_ledger.py:2186 msgid "{0} units of {1} needed in {2} on {3} {4} for {5} to complete this transaction." msgstr "{0} وحدات من {1} لازمة ل {2} في {3} {4} ل {5} لإكمال هذه المعاملة." -#: erpnext/stock/stock_ledger.py:2284 erpnext/stock/stock_ledger.py:2329 +#: erpnext/stock/stock_ledger.py:2273 erpnext/stock/stock_ledger.py:2318 msgid "{0} units of {1} needed in {2} on {3} {4} to complete this transaction." msgstr "{0} وحدة من {1} مطلوبة في {2} على {3} {4} لإكمال هذه المعاملة." -#: erpnext/stock/stock_ledger.py:1681 +#: erpnext/stock/stock_ledger.py:1670 msgid "{0} units of {1} needed in {2} to complete this transaction." msgstr "{0} وحدات من {1} لازمة في {2} لإكمال هذه المعاملة." @@ -61700,7 +61731,7 @@ msgstr "سيتم منح الخصم {0} ." msgid "{0} will be set as the {1} in subsequently scanned items" msgstr "سيتم تعيين {0} كـ {1} في العناصر التي يتم مسحها ضوئيًا لاحقًا" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1023 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1024 msgid "{0} {1}" msgstr "{0} {1}" @@ -61849,7 +61880,7 @@ msgstr "{0} {1}: الحساب {2} غير فعال \\n
\\n{0} {1}: Account {2} msgid "{0} {1}: Accounting Entry for {2} can only be made in currency: {3}" msgstr "{0} {1}: قيد محاسبي ل {2} يمكن ان يتم فقط بالعملة : {3}" -#: erpnext/controllers/stock_controller.py:945 +#: erpnext/controllers/stock_controller.py:948 msgid "{0} {1}: Cost Center is mandatory for Item {2}" msgstr "{0} {1}: مركز التكلفة إلزامي للبند {2}" @@ -61898,8 +61929,8 @@ msgstr "" msgid "{0}'s {1} cannot be after {2}'s Expected End Date." msgstr "" -#: erpnext/manufacturing/doctype/job_card/job_card.py:1332 -#: erpnext/manufacturing/doctype/job_card/job_card.py:1340 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1350 +#: erpnext/manufacturing/doctype/job_card/job_card.py:1358 msgid "{0}, complete the operation {1} before the operation {2}." msgstr "{0} ، أكمل العملية {1} قبل العملية {2}." @@ -61907,19 +61938,19 @@ msgstr "{0} ، أكمل العملية {1} قبل العملية {2}." msgid "{0}, {1} or {2} are the only allowed options." msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:523 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:534 msgid "{0}: Child table (auto-deleted with parent)" msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:518 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:529 msgid "{0}: Not found" msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:514 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:525 msgid "{0}: Protected DocType" msgstr "" -#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:528 +#: erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py:539 msgid "{0}: Virtual DocType (no database table)" msgstr "" @@ -61935,27 +61966,27 @@ msgstr "" msgid "{0}: {1} is a group account." msgstr "{0}: {1} هو حساب جماعي." -#: erpnext/accounts/doctype/payment_entry/payment_entry.js:977 +#: erpnext/accounts/doctype/payment_entry/payment_entry.js:986 msgid "{0}: {1} must be less than {2}" msgstr "{0}: {1} يجب أن يكون أقل من {2}" -#: erpnext/controllers/buying_controller.py:1019 +#: erpnext/controllers/buying_controller.py:1082 msgid "{count} Assets created for {item_code}" msgstr "{count} الأصول التي تم إنشاؤها لـ {item_code}" -#: erpnext/controllers/buying_controller.py:917 +#: erpnext/controllers/buying_controller.py:980 msgid "{doctype} {name} is cancelled or closed." msgstr "{doctype} {name} تم إلغائه أو مغلق." -#: erpnext/controllers/buying_controller.py:641 +#: erpnext/controllers/buying_controller.py:704 msgid "{field_label} is mandatory for sub-contracted {doctype}." msgstr "" -#: erpnext/controllers/stock_controller.py:2193 +#: erpnext/controllers/stock_controller.py:2240 msgid "{item_name}'s Sample Size ({sample_size}) cannot be greater than the Accepted Quantity ({accepted_quantity})" msgstr "لا يمكن أن يكون حجم العينة {item_name}({sample_size}) أكبر من الكمية المقبولة ({accepted_quantity})" -#: erpnext/controllers/stock_controller.py:1958 +#: erpnext/controllers/stock_controller.py:2005 msgid "{ref_doctype} {ref_name} status is {status}." msgstr "{ref_doctype} {ref_name} الحالة {status}." @@ -61963,7 +61994,7 @@ msgstr "{ref_doctype} {ref_name} الحالة {status}." msgid "{}" msgstr "{}" -#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2182 +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:2189 msgid "{} can't be cancelled since the Loyalty Points earned has been redeemed. First cancel the {} No {}" msgstr "لا يمكن إلغاء {} نظرًا لاسترداد نقاط الولاء المكتسبة. قم أولاً بإلغاء {} لا {}" @@ -61973,7 +62004,7 @@ msgstr "قام {} بتقديم أصول مرتبطة به. تحتاج إلى إ #: banking/src/components/features/ActionLog/ActionLogDialogBody.tsx:236 msgid "{} invoices" -msgstr "" +msgstr "{} الفواتير" #: erpnext/accounts/doctype/chart_of_accounts_importer/chart_of_accounts_importer.py:66 msgid "{} is a child company." diff --git a/erpnext/locale/bg.po b/erpnext/locale/bg.po new file mode 100644 index 00000000000..3cc1c64420b --- /dev/null +++ b/erpnext/locale/bg.po @@ -0,0 +1,62002 @@ + +msgid "" +msgstr "" +"Project-Id-Version: frappe\n" +"Report-Msgid-Bugs-To: hello@frappe.io\n" +"POT-Creation-Date: 2026-06-28 10:20+0000\n" +"PO-Revision-Date: 2026-06-29 11:40+0000\n" +"Last-Translator: hello@frappe.io\n" +"Language: bg_BG\n" +"Language-Team: Bulgarian\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: erpnext/stock/doctype/serial_and_batch_bundle/serial_and_batch_bundle.py:1591 +msgid "" +"\n" +"\t\t\tThe Batch {0} of an item {1} has negative stock in the warehouse {2}{3}.\n" +"\t\t\tPlease add a stock quantity of {4} to proceed with this entry.\n" +"\t\t\tIf it is not possible to make an adjustment entry, please enable 'Allow Negative Stock for Batch' in the batch {0} or in the Stock Settings to proceed.\n" +"\t\t\tHowever, enabling this setting may lead to negative stock in the system.\n" +"\t\t\tSo please ensure the stock levels are adjusted as soon as possible to maintain the correct valuation rate." +msgstr "" + +#. Label of the column_break_32 (Column Break) field in DocType 'Email Digest' +#: erpnext/setup/doctype/email_digest/email_digest.json +msgid " " +msgstr "" + +#: erpnext/selling/doctype/quotation/quotation.js:82 +msgid " Address" +msgstr "" + +#: erpnext/accounts/report/item_wise_sales_register/item_wise_sales_register.py:611 +msgid " Amount" +msgstr "" + +#: erpnext/public/js/bom_configurator/bom_configurator.bundle.js:114 +msgid " BOM" +msgstr "" + +#. Label of the default_wip_warehouse (Link) field in DocType 'Company' +#: erpnext/setup/doctype/company/company.json +msgid " Default Work In Progress Warehouse " +msgstr "" + +#. Label of the istable (Check) field in DocType 'Inventory Dimension' +#: erpnext/stock/doctype/inventory_dimension/inventory_dimension.json +msgid " Is Child Table" +msgstr "" + +#. Label of the is_subcontracted (Check) field in DocType 'Job Card' +#: erpnext/manufacturing/doctype/job_card/job_card.json +msgid " Is Subcontracted" +msgstr "" + +#: erpnext/public/js/bom_configurator/bom_configurator.bundle.js:196 +msgid " Item" +msgstr "" + +#: erpnext/accounts/report/customer_ledger_summary/customer_ledger_summary.py:151 +#: erpnext/selling/report/sales_analytics/sales_analytics.py:128 +msgid " Name" +msgstr "" + +#: erpnext/public/js/bom_configurator/bom_configurator.bundle.js:144 +#: erpnext/public/js/bom_configurator/bom_configurator.bundle.js:185 +msgid " Phantom Item" +msgstr "" + +#: erpnext/accounts/report/item_wise_sales_register/item_wise_sales_register.py:602 +msgid " Rate" +msgstr "" + +#: erpnext/public/js/bom_configurator/bom_configurator.bundle.js:122 +msgid " Raw Material" +msgstr "" + +#. Label of the skip_material_transfer (Check) field in DocType 'BOM Operation' +#: erpnext/manufacturing/doctype/bom_operation/bom_operation.json +msgid " Skip Material Transfer" +msgstr "" + +#: erpnext/public/js/bom_configurator/bom_configurator.bundle.js:133 +#: erpnext/public/js/bom_configurator/bom_configurator.bundle.js:174 +msgid " Sub Assembly" +msgstr "" + +#: erpnext/projects/doctype/project_update/project_update.py:104 +msgid " Summary" +msgstr "" + +#: erpnext/stock/doctype/item/item.py:265 +msgid "\"Customer Provided Item\" cannot be Purchase Item also" +msgstr "" + +#: erpnext/stock/doctype/item/item.py:267 +msgid "\"Customer Provided Item\" cannot have Valuation Rate" +msgstr "" + +#: erpnext/stock/doctype/item/item.py:366 +msgid "\"Is Fixed Asset\" cannot be unchecked, as Asset record exists against the item" +msgstr "" + +#: erpnext/public/js/utils/serial_no_batch_selector.js:273 +msgid "\"SN-01::10\" for \"SN-01\" to \"SN-10\"" +msgstr "" + +#: erpnext/manufacturing/report/work_order_stock_report/work_order_stock_report.py:148 +msgid "# In Stock" +msgstr "" + +#: erpnext/manufacturing/report/work_order_stock_report/work_order_stock_report.py:141 +msgid "# Req'd Items" +msgstr "" + +#. Label of the per_delivered (Percent) field in DocType 'Sales Order' +#: erpnext/selling/doctype/sales_order/sales_order.json +msgid "% Delivered" +msgstr "" + +#. Label of the per_billed (Percent) field in DocType 'Timesheet' +#. Label of the per_billed (Percent) field in DocType 'Sales Order' +#. Label of the per_billed (Percent) field in DocType 'Delivery Note' +#. Label of the per_billed (Percent) field in DocType 'Purchase Receipt' +#: erpnext/projects/doctype/timesheet/timesheet.json +#: erpnext/selling/doctype/sales_order/sales_order.json +#: erpnext/stock/doctype/delivery_note/delivery_note.json +#: erpnext/stock/doctype/purchase_receipt/purchase_receipt.json +msgid "% Amount Billed" +msgstr "" + +#. Label of the per_billed (Percent) field in DocType 'Purchase Order' +#: erpnext/buying/doctype/purchase_order/purchase_order.json +msgid "% Billed" +msgstr "" + +#. Label of the percent_complete_method (Select) field in DocType 'Project' +#: erpnext/projects/doctype/project/project.json +msgid "% Complete Method" +msgstr "" + +#. Label of the percent_complete (Percent) field in DocType 'Project' +#: erpnext/projects/doctype/project/project.json +msgid "% Completed" +msgstr "" + +#. Label of the cost_allocation_per (Percent) field in DocType 'BOM' +#: erpnext/manufacturing/doctype/bom/bom.json +msgid "% Cost Allocation" +msgstr "" + +#. Label of the per_delivered (Percent) field in DocType 'Pick List' +#. Label of the per_delivered (Percent) field in DocType 'Subcontracting Inward +#. Order' +#: erpnext/stock/doctype/pick_list/pick_list.json +#: erpnext/subcontracting/doctype/subcontracting_inward_order/subcontracting_inward_order.json +msgid "% Delivered" +msgstr "" + +#: erpnext/manufacturing/doctype/bom/bom.js:1022 +#, python-format +msgid "% Finished Item Quantity" +msgstr "" + +#. Label of the per_installed (Percent) field in DocType 'Delivery Note' +#: erpnext/stock/doctype/delivery_note/delivery_note.json +msgid "% Installed" +msgstr "" + +#: erpnext/stock/page/warehouse_capacity_summary/warehouse_capacity_summary.js:70 +#: erpnext/stock/page/warehouse_capacity_summary/warehouse_capacity_summary_header.html:16 +msgid "% Occupied" +msgstr "" + +#: erpnext/accounts/report/item_wise_purchase_register/item_wise_purchase_register.py:283 +#: erpnext/accounts/report/item_wise_sales_register/item_wise_sales_register.py:337 +msgid "% Of Grand Total" +msgstr "" + +#. Label of the per_ordered (Percent) field in DocType 'Material Request' +#: erpnext/stock/doctype/material_request/material_request.json +msgid "% Ordered" +msgstr "" + +#. Label of the per_picked (Percent) field in DocType 'Sales Order' +#: erpnext/selling/doctype/sales_order/sales_order.json +msgid "% Picked" +msgstr "" + +#. Label of the process_loss_percentage (Percent) field in DocType 'BOM' +#. Label of the process_loss_percentage (Percent) field in DocType 'Stock +#. Entry' +#. Label of the per_process_loss (Percent) field in DocType 'Subcontracting +#. Inward Order' +#: erpnext/manufacturing/doctype/bom/bom.json +#: erpnext/stock/doctype/stock_entry/stock_entry.json +#: erpnext/subcontracting/doctype/subcontracting_inward_order/subcontracting_inward_order.json +msgid "% Process Loss" +msgstr "" + +#. Label of the per_produced (Percent) field in DocType 'Subcontracting Inward +#. Order' +#: erpnext/subcontracting/doctype/subcontracting_inward_order/subcontracting_inward_order.json +msgid "% Produced" +msgstr "" + +#. Label of the progress (Percent) field in DocType 'Task' +#: erpnext/projects/doctype/task/task.json +msgid "% Progress" +msgstr "" + +#. Label of the per_raw_material_received (Percent) field in DocType +#. 'Subcontracting Inward Order' +#: erpnext/subcontracting/doctype/subcontracting_inward_order/subcontracting_inward_order.json +msgid "% Raw Material Received" +msgstr "" + +#. Label of the per_raw_material_returned (Percent) field in DocType +#. 'Subcontracting Inward Order' +#: erpnext/subcontracting/doctype/subcontracting_inward_order/subcontracting_inward_order.json +msgid "% Raw Material Returned" +msgstr "" + +#. Label of the per_received (Percent) field in DocType 'Purchase Order' +#. Label of the per_received (Percent) field in DocType 'Material Request' +#. Label of the per_received (Percent) field in DocType 'Subcontracting Order' +#: erpnext/buying/doctype/purchase_order/purchase_order.json +#: erpnext/stock/doctype/material_request/material_request.json +#: erpnext/subcontracting/doctype/subcontracting_order/subcontracting_order.json +msgid "% Received" +msgstr "" + +#. Label of the per_returned (Percent) field in DocType 'Delivery Note' +#. Label of the per_returned (Percent) field in DocType 'Purchase Receipt' +#. Label of the per_returned (Percent) field in DocType 'Subcontracting Inward +#. Order' +#. Label of the per_returned (Percent) field in DocType 'Subcontracting +#. Receipt' +#: erpnext/stock/doctype/delivery_note/delivery_note.json +#: erpnext/stock/doctype/purchase_receipt/purchase_receipt.json +#: erpnext/subcontracting/doctype/subcontracting_inward_order/subcontracting_inward_order.json +#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.json +msgid "% Returned" +msgstr "" + +#. Description of the '% Amount Billed' (Percent) field in DocType 'Sales +#. Order' +#: erpnext/selling/doctype/sales_order/sales_order.json +#, python-format +msgid "% of materials billed against this Sales Order" +msgstr "" + +#. Description of the '% Delivered' (Percent) field in DocType 'Pick List' +#: erpnext/stock/doctype/pick_list/pick_list.json +#, python-format +msgid "% of materials delivered against this Pick List" +msgstr "" + +#. Description of the '% Delivered' (Percent) field in DocType 'Sales Order' +#: erpnext/selling/doctype/sales_order/sales_order.json +#, python-format +msgid "% of materials delivered against this Sales Order" +msgstr "" + +#: erpnext/controllers/accounts_controller.py:2394 +msgid "'Account' in the Accounting section of Customer {0}" +msgstr "" + +#: erpnext/selling/doctype/sales_order/sales_order.py:362 +msgid "'Allow Multiple Sales Orders Against a Customer's Purchase Order'" +msgstr "" + +#: erpnext/controllers/trends.py:62 +msgid "'Based On' and 'Group By' can not be same" +msgstr "" + +#: erpnext/selling/report/inactive_customers/inactive_customers.py:23 +msgid "'Days Since Last Order' must be greater than or equal to zero" +msgstr "" + +#: erpnext/controllers/accounts_controller.py:2399 +msgid "'Default {0} Account' in Company {1}" +msgstr "" + +#: erpnext/accounts/doctype/journal_entry/journal_entry.py:1234 +msgid "'Entries' cannot be empty" +msgstr "" + +#: erpnext/stock/report/batch_item_expiry_status/batch_item_expiry_status.py:24 +#: erpnext/stock/report/batch_wise_balance_history/batch_wise_balance_history.py:127 +#: erpnext/stock/report/stock_analytics/stock_analytics.py:322 +msgid "'From Date' is required" +msgstr "" + +#: erpnext/stock/report/itemwise_recommended_reorder_level/itemwise_recommended_reorder_level.py:18 +msgid "'From Date' must be after 'To Date'" +msgstr "" + +#: erpnext/stock/doctype/item/item.py:449 +msgid "'Has Serial No' can not be 'Yes' for non-stock item" +msgstr "" + +#: erpnext/stock/doctype/quality_inspection/quality_inspection.py:143 +msgid "'Inspection Required before Delivery' has disabled for the item {0}, no need to create the QI" +msgstr "" + +#: erpnext/stock/doctype/quality_inspection/quality_inspection.py:134 +msgid "'Inspection Required before Purchase' has disabled for the item {0}, no need to create the QI" +msgstr "" + +#: erpnext/stock/report/stock_ledger/stock_ledger.py:685 +#: erpnext/stock/report/stock_ledger/stock_ledger.py:726 +#: erpnext/stock/report/stock_ledger/stock_ledger.py:831 +msgid "'Opening'" +msgstr "" + +#: erpnext/stock/report/batch_item_expiry_status/batch_item_expiry_status.py:27 +#: erpnext/stock/report/batch_wise_balance_history/batch_wise_balance_history.py:129 +#: erpnext/stock/report/stock_analytics/stock_analytics.py:328 +msgid "'To Date' is required" +msgstr "" + +#: erpnext/stock/doctype/packing_slip/packing_slip.py:95 +msgid "'To Package No.' cannot be less than 'From Package No.'" +msgstr "" + +#: erpnext/controllers/sales_and_purchase_return.py:80 +msgid "'Update Stock' can not be checked because items are not delivered via {0}" +msgstr "" + +#: erpnext/accounts/doctype/sales_invoice/sales_invoice.py:434 +msgid "'Update Stock' cannot be checked for fixed asset sale" +msgstr "" + +#: erpnext/accounts/doctype/bank_account/bank_account.py:79 +msgid "'{0}' account is already used by {1}. Use another account." +msgstr "" + +#: erpnext/accounts/doctype/pos_settings/pos_settings.py:44 +msgid "'{0}' has been already added." +msgstr "" + +#: erpnext/setup/doctype/company/company.py:304 +#: erpnext/setup/doctype/company/company.py:315 +msgid "'{0}' should be in company currency {1}." +msgstr "" + +#: erpnext/stock/report/fifo_queue_vs_qty_after_transaction_comparison/fifo_queue_vs_qty_after_transaction_comparison.py:174 +#: erpnext/stock/report/stock_ledger_invariant_check/stock_ledger_invariant_check.py:203 +#: erpnext/stock/report/stock_ledger_variance/stock_ledger_variance.py:106 +msgid "(A) Qty After Transaction" +msgstr "" + +#: erpnext/stock/report/stock_ledger_invariant_check/stock_ledger_invariant_check.py:208 +#: erpnext/stock/report/stock_ledger_variance/stock_ledger_variance.py:111 +msgid "(B) Expected Qty After Transaction" +msgstr "" + +#: erpnext/stock/report/stock_ledger_invariant_check/stock_ledger_invariant_check.py:223 +#: erpnext/stock/report/stock_ledger_variance/stock_ledger_variance.py:126 +msgid "(C) Total Qty in Queue" +msgstr "" + +#: erpnext/stock/report/fifo_queue_vs_qty_after_transaction_comparison/fifo_queue_vs_qty_after_transaction_comparison.py:184 +msgid "(C) Total qty in queue" +msgstr "" + +#: erpnext/stock/report/fifo_queue_vs_qty_after_transaction_comparison/fifo_queue_vs_qty_after_transaction_comparison.py:194 +#: erpnext/stock/report/stock_ledger_invariant_check/stock_ledger_invariant_check.py:233 +#: erpnext/stock/report/stock_ledger_variance/stock_ledger_variance.py:136 +msgid "(D) Balance Stock Value" +msgstr "" + +#. Description of the 'Capacity' (Int) field in DocType 'Item Lead Time' +#: erpnext/stock/doctype/item_lead_time/item_lead_time.json +msgid "(Daily Yield * No of Units Produced) / 100" +msgstr "" + +#: erpnext/stock/report/fifo_queue_vs_qty_after_transaction_comparison/fifo_queue_vs_qty_after_transaction_comparison.py:199 +#: erpnext/stock/report/stock_ledger_invariant_check/stock_ledger_invariant_check.py:238 +#: erpnext/stock/report/stock_ledger_variance/stock_ledger_variance.py:141 +msgid "(E) Balance Stock Value in Queue" +msgstr "" + +#: erpnext/stock/report/stock_ledger_invariant_check/stock_ledger_invariant_check.py:248 +#: erpnext/stock/report/stock_ledger_variance/stock_ledger_variance.py:151 +msgid "(F) Change in Stock Value" +msgstr "" + +#: erpnext/manufacturing/report/exponential_smoothing_forecasting/exponential_smoothing_forecasting.py:192 +msgid "(Forecast)" +msgstr "" + +#: erpnext/stock/report/stock_ledger_invariant_check/stock_ledger_invariant_check.py:253 +#: erpnext/stock/report/stock_ledger_variance/stock_ledger_variance.py:156 +msgid "(G) Sum of Change in Stock Value" +msgstr "" + +#. Description of the 'Daily Yield (%)' (Percent) field in DocType 'Item Lead +#. Time' +#: erpnext/stock/doctype/item_lead_time/item_lead_time.json +msgid "(Good Units Produced / Total Units Produced) × 100" +msgstr "" + +#: erpnext/stock/report/stock_ledger_invariant_check/stock_ledger_invariant_check.py:263 +#: erpnext/stock/report/stock_ledger_variance/stock_ledger_variance.py:166 +msgid "(H) Change in Stock Value (FIFO Queue)" +msgstr "" + +#: erpnext/stock/report/fifo_queue_vs_qty_after_transaction_comparison/fifo_queue_vs_qty_after_transaction_comparison.py:209 +msgid "(H) Valuation Rate" +msgstr "" + +#. Description of the 'Actual Operating Cost' (Currency) field in DocType 'Work +#. Order Operation' +#: erpnext/manufacturing/doctype/work_order_operation/work_order_operation.json +msgid "(Hour Rate / 60) * Actual Operation Time" +msgstr "" + +#: erpnext/stock/report/stock_ledger_invariant_check/stock_ledger_invariant_check.py:273 +#: erpnext/stock/report/stock_ledger_variance/stock_ledger_variance.py:176 +msgid "(I) Valuation Rate" +msgstr "" + +#: erpnext/stock/report/stock_ledger_invariant_check/stock_ledger_invariant_check.py:278 +#: erpnext/stock/report/stock_ledger_variance/stock_ledger_variance.py:181 +msgid "(J) Valuation Rate as per FIFO" +msgstr "" + +#: erpnext/stock/report/stock_ledger_invariant_check/stock_ledger_invariant_check.py:288 +#: erpnext/stock/report/stock_ledger_variance/stock_ledger_variance.py:191 +msgid "(K) Valuation = Value (D) ÷ Qty (A)" +msgstr "" + +#. Description of the 'Applicable on Cumulative Expense' (Check) field in +#. DocType 'Budget' +#: erpnext/accounts/doctype/budget/budget.json +msgid "(Purchase Order + Material Request + Actual Expense)" +msgstr "" + +#. Description of the 'No of Units Produced' (Int) field in DocType 'Item Lead +#. Time' +#: erpnext/stock/doctype/item_lead_time/item_lead_time.json +msgid "(Total Workstation Time / Manufacturing Time) * 60" +msgstr "" + +#. Description of the 'From No' (Int) field in DocType 'Share Transfer' +#. Description of the 'To No' (Int) field in DocType 'Share Transfer' +#: erpnext/accounts/doctype/share_transfer/share_transfer.json +msgid "(including)" +msgstr "" + +#. Description of the 'Sales Taxes and Charges' (Table) field in DocType 'Sales +#. Taxes and Charges Template' +#: erpnext/accounts/doctype/sales_taxes_and_charges_template/sales_taxes_and_charges_template.json +msgid "* Will be calculated in the transaction." +msgstr "" + +#: erpnext/stock/doctype/item/item_prices.html:128 +#: erpnext/stock/doctype/item/item_prices.html:136 +msgid "+ Add Price" +msgstr "" + +#: erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.html:112 +#: erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts_accounts_receivable.html:360 +msgid "0 - 30 Days" +msgstr "" + +#: erpnext/accounts/report/payment_period_based_on_invoice_date/payment_period_based_on_invoice_date.py:114 +msgid "0-30" +msgstr "" + +#: erpnext/manufacturing/report/work_order_summary/work_order_summary.py:110 +msgid "0-30 Days" +msgstr "" + +#. Description of the 'Conversion Factor' (Float) field in DocType 'Loyalty +#. Program' +#: erpnext/accounts/doctype/loyalty_program/loyalty_program.json +msgid "1 Loyalty Points = How much base currency?" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Video Settings' +#: erpnext/utilities/doctype/video_settings/video_settings.json +msgid "1 hr" +msgstr "" + +#: banking/src/components/features/ActionLog/ActionLogDialogBody.tsx:236 +msgid "1 invoice" +msgstr "" + +#. Option for the 'No of Employees' (Select) field in DocType 'Lead' +#. Option for the 'No of Employees' (Select) field in DocType 'Opportunity' +#. Option for the 'No. of Employees' (Select) field in DocType 'Prospect' +#: erpnext/crm/doctype/lead/lead.json +#: erpnext/crm/doctype/opportunity/opportunity.json +#: erpnext/crm/doctype/prospect/prospect.json +msgid "1-10" +msgstr "" + +#. Option for the 'No of Employees' (Select) field in DocType 'Lead' +#. Option for the 'No of Employees' (Select) field in DocType 'Opportunity' +#. Option for the 'No. of Employees' (Select) field in DocType 'Prospect' +#: erpnext/crm/doctype/lead/lead.json +#: erpnext/crm/doctype/opportunity/opportunity.json +#: erpnext/crm/doctype/prospect/prospect.json +msgid "1000+" +msgstr "" + +#. Option for the 'No of Employees' (Select) field in DocType 'Lead' +#. Option for the 'No of Employees' (Select) field in DocType 'Opportunity' +#. Option for the 'No. of Employees' (Select) field in DocType 'Prospect' +#: erpnext/crm/doctype/lead/lead.json +#: erpnext/crm/doctype/opportunity/opportunity.json +#: erpnext/crm/doctype/prospect/prospect.json +msgid "11-50" +msgstr "" + +#: erpnext/regional/report/uae_vat_201/uae_vat_201.py:107 +#: erpnext/regional/report/uae_vat_201/uae_vat_201.py:113 +msgid "1{0}" +msgstr "" + +#. Option for the 'Periodicity' (Select) field in DocType 'Asset Maintenance +#. Task' +#: erpnext/assets/doctype/asset_maintenance_task/asset_maintenance_task.json +msgid "2 Yearly" +msgstr "" + +#. Option for the 'No of Employees' (Select) field in DocType 'Lead' +#. Option for the 'No of Employees' (Select) field in DocType 'Opportunity' +#. Option for the 'No. of Employees' (Select) field in DocType 'Prospect' +#: erpnext/crm/doctype/lead/lead.json +#: erpnext/crm/doctype/opportunity/opportunity.json +#: erpnext/crm/doctype/prospect/prospect.json +msgid "201-500" +msgstr "" + +#. Option for the 'Periodicity' (Select) field in DocType 'Asset Maintenance +#. Task' +#: erpnext/assets/doctype/asset_maintenance_task/asset_maintenance_task.json +msgid "3 Yearly" +msgstr "" + +#: erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.html:113 +#: erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts_accounts_receivable.html:361 +msgid "30 - 60 Days" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Video Settings' +#: erpnext/utilities/doctype/video_settings/video_settings.json +msgid "30 mins" +msgstr "" + +#: erpnext/accounts/report/payment_period_based_on_invoice_date/payment_period_based_on_invoice_date.py:115 +msgid "30-60" +msgstr "" + +#: erpnext/manufacturing/report/work_order_summary/work_order_summary.py:110 +msgid "30-60 Days" +msgstr "" + +#. Option for the 'No of Employees' (Select) field in DocType 'Lead' +#. Option for the 'No of Employees' (Select) field in DocType 'Opportunity' +#. Option for the 'No. of Employees' (Select) field in DocType 'Prospect' +#: erpnext/crm/doctype/lead/lead.json +#: erpnext/crm/doctype/opportunity/opportunity.json +#: erpnext/crm/doctype/prospect/prospect.json +msgid "501-1000" +msgstr "" + +#. Option for the 'No of Employees' (Select) field in DocType 'Lead' +#. Option for the 'No of Employees' (Select) field in DocType 'Opportunity' +#. Option for the 'No. of Employees' (Select) field in DocType 'Prospect' +#: erpnext/crm/doctype/lead/lead.json +#: erpnext/crm/doctype/opportunity/opportunity.json +#: erpnext/crm/doctype/prospect/prospect.json +msgid "51-200" +msgstr "" + +#. Option for the 'Frequency' (Select) field in DocType 'Video Settings' +#: erpnext/utilities/doctype/video_settings/video_settings.json +msgid "6 hrs" +msgstr "" + +#: erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.html:114 +#: erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts_accounts_receivable.html:362 +msgid "60 - 90 Days" +msgstr "" + +#: erpnext/accounts/report/payment_period_based_on_invoice_date/payment_period_based_on_invoice_date.py:116 +msgid "60-90" +msgstr "" + +#: erpnext/manufacturing/report/work_order_summary/work_order_summary.py:110 +msgid "60-90 Days" +msgstr "" + +#: erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.html:115 +#: erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts_accounts_receivable.html:363 +msgid "90 - 120 Days" +msgstr "" + +#: erpnext/accounts/report/payment_period_based_on_invoice_date/payment_period_based_on_invoice_date.py:117 +#: erpnext/manufacturing/report/work_order_summary/work_order_summary.py:110 +msgid "90 Above" +msgstr "" + +#: erpnext/accounts/report/accounts_receivable/accounts_receivable.py:1291 +#: erpnext/accounts/report/accounts_receivable/accounts_receivable.py:1292 +msgid "<0" +msgstr "" + +#: erpnext/assets/doctype/asset/asset.py:541 +msgid "Cannot create asset.

You're trying to create {0} asset(s) from {2} {3}.
However, only {1} item(s) were purchased and {4} asset(s) already exist against {5}." +msgstr "" + +#: erpnext/crm/doctype/appointment_booking_settings/appointment_booking_settings.py:59 +msgid "From Time cannot be later than To Time for {0}" +msgstr "" + +#: erpnext/accounts/doctype/pos_invoice/pos_invoice.py:433 +msgid "Row #{0}: Bundle {1} in warehouse {2} has insufficient packed items:
    {3}
" +msgstr "" + +#. Content of the 'Help Text' (HTML) field in DocType 'Process Statement Of +#. Accounts' +#: erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.json +#, python-format +msgid "" +"
\n" +"

Note

\n" +"
    \n" +"
  • \n" +"You can use Jinja tags in Subject and Body fields for dynamic values.\n" +"
  • \n" +" All fields in this doctype are available under the doc object and all fields for the customer to whom the mail will go to is available under the customer object.\n" +"
\n" +"

Examples

\n" +"\n" +"
    \n" +"
  • Subject:

    Statement Of Accounts for {{ customer.customer_name }}

  • \n" +"
  • Body:

    \n" +"
    Hello {{ customer.customer_name }},
    PFA your Statement Of Accounts from {{ doc.from_date }} to {{ doc.to_date }}.
  • \n" +"
\n" +"" +msgstr "" + +#. Content of the 'Other Details' (HTML) field in DocType 'Purchase Receipt' +#. Content of the 'Other Details' (HTML) field in DocType 'Subcontracting +#. Receipt' +#: erpnext/stock/doctype/purchase_receipt/purchase_receipt.json +#: erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.json +msgid "
Other Details
" +msgstr "" + +#. Content of the 'no_bank_transactions' (HTML) field in DocType 'Bank +#. Reconciliation Tool' +#: erpnext/accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.json +msgid "
No Matching Bank Transactions Found
" +msgstr "" + +#: erpnext/public/js/bank_reconciliation_tool/dialog_manager.js:262 +msgid "
{0}
" +msgstr "" + +#. Content of the 'Stock Levels HTML' (HTML) field in DocType 'Item' +#: erpnext/stock/doctype/item/item.json +msgid "
" +msgstr "" + +#. Content of the 'Prices HTML' (HTML) field in DocType 'Item' +#: erpnext/stock/doctype/item/item.json +msgid "
" +msgstr "" + +#. Content of the 'uom_help_html' (HTML) field in DocType 'Item' +#: erpnext/stock/doctype/item/item.json +msgid "
Define alternate units for this item. Eg: 1 Box = 12 Nos, set conversion factor as 12. (Will also apply for variants) Learn more →
" +msgstr "" + +#. Content of the 'settings' (HTML) field in DocType 'Cheque Print Template' +#: erpnext/accounts/doctype/cheque_print_template/cheque_print_template.json +msgid "" +"
\n" +"

All dimensions in centimeter only

\n" +"
" +msgstr "" + +#. Content of the 'about' (HTML) field in DocType 'Product Bundle' +#: erpnext/selling/doctype/product_bundle/product_bundle.json +msgid "" +"

About Product Bundle

\n" +"\n" +"

Aggregate group of Items into another Item. This is useful if you are bundling a certain Items into a package and you maintain stock of the packed Items and not the aggregate Item.

\n" +"

The package Item will have Is Stock Item as No and Is Sales Item as Yes.

\n" +"

Example:

\n" +"

If you are selling Laptops and Backpacks separately and have a special price if the customer buys both, then the Laptop + Backpack will be a new Product Bundle Item.

" +msgstr "" + +#. Content of the 'Help' (HTML) field in DocType 'Currency Exchange Settings' +#: erpnext/accounts/doctype/currency_exchange_settings/currency_exchange_settings.json +msgid "" +"

Currency Exchange Settings Help

\n" +"

There are 3 variables that could be used within the endpoint, result key and in values of the parameter.

\n" +"

Exchange rate between {from_currency} and {to_currency} on {transaction_date} is fetched by the API.

\n" +"

Example: If your endpoint is exchange.com/2021-08-01, then, you will have to input exchange.com/{transaction_date}

" +msgstr "" + +#. Content of the 'Body and Closing Text Help' (HTML) field in DocType 'Dunning +#. Letter Text' +#: erpnext/accounts/doctype/dunning_letter_text/dunning_letter_text.json +msgid "" +"

Body Text and Closing Text Example

\n" +"\n" +"
We have noticed that you have not yet paid invoice {{sales_invoice}} for {{frappe.db.get_value(\"Currency\", currency, \"symbol\")}} {{outstanding_amount}}. This is a friendly reminder that the invoice was due on {{due_date}}. Please pay the amount due immediately to avoid any further dunning cost.
\n" +"\n" +"

How to get fieldnames

\n" +"\n" +"

The fieldnames you can use in your template are the fields in the document. You can find out the fields of any documents via Setup > Customize Form View and selecting the document type (e.g. Sales Invoice)

\n" +"\n" +"

Templating

\n" +"\n" +"

Templates are compiled using the Jinja Templating Language. To learn more about Jinja, read this documentation.

" +msgstr "" + +#. Content of the 'Contract Template Help' (HTML) field in DocType 'Contract +#. Template' +#: erpnext/crm/doctype/contract_template/contract_template.json +msgid "" +"

Contract Template Example

\n" +"\n" +"
Contract for Customer {{ party_name }}\n"
+"\n"
+"-Valid From : {{ start_date }} \n"
+"-Valid To : {{ end_date }}\n"
+"
\n" +"\n" +"

How to get fieldnames

\n" +"\n" +"

The field names you can use in your Contract Template are the fields in the Contract for which you are creating the template. You can find out the fields of any documents via Setup > Customize Form View and selecting the document type (e.g. Contract)

\n" +"\n" +"

Templating

\n" +"\n" +"

Templates are compiled using the Jinja Templating Language. To learn more about Jinja, read this documentation.

" +msgstr "" + +#. Content of the 'Terms and Conditions Help' (HTML) field in DocType 'Terms +#. and Conditions' +#: erpnext/setup/doctype/terms_and_conditions/terms_and_conditions.json +msgid "" +"

Standard Terms and Conditions Example

\n" +"\n" +"
Delivery Terms for Order number {{ name }}\n"
+"\n"
+"-Order Date : {{ transaction_date }} \n"
+"-Expected Delivery Date : {{ delivery_date }}\n"
+"
\n" +"\n" +"

How to get fieldnames

\n" +"\n" +"

The fieldnames you can use in your email template are the fields in the document from which you are sending the email. You can find out the fields of any documents via Setup > Customize Form View and selecting the document type (e.g. Sales Invoice)

\n" +"\n" +"

Templating

\n" +"\n" +"

Templates are compiled using the Jinja Templating Language. To learn more about Jinja, read this documentation.

" +msgstr "" + +#. Content of the 'account_no_settings' (HTML) field in DocType 'Cheque Print +#. Template' +#: erpnext/accounts/doctype/cheque_print_template/cheque_print_template.json +msgid "" +msgstr "" + +#. Content of the 'html_19' (HTML) field in DocType 'Cheque Print Template' +#: erpnext/accounts/doctype/cheque_print_template/cheque_print_template.json +msgid "" +msgstr "" + +#. Content of the 'Date Settings' (HTML) field in DocType 'Cheque Print +#. Template' +#: erpnext/accounts/doctype/cheque_print_template/cheque_print_template.json +msgid "" +msgstr "" + +#: erpnext/accounts/doctype/bank_clearance/bank_clearance.py:126 +msgid "
  • Clearance date must be after cheque date for row(s): {0}
  • " +msgstr "" + +#: erpnext/controllers/accounts_controller.py:2277 +msgid "
  • Item {0} in row(s) {1} billed more than {2}
  • " +msgstr "" + +#: erpnext/accounts/doctype/pos_invoice/pos_invoice.py:424 +msgid "
  • Packed Item {0}: Required {1}, Available {2}
  • " +msgstr "" + +#: erpnext/accounts/doctype/bank_clearance/bank_clearance.py:121 +msgid "
  • Payment document required for row(s): {0}
  • " +msgstr "" + +#: erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py:164 +#: erpnext/utilities/bulk_transaction.py:35 +msgid "
  • {}
  • " +msgstr "" + +#: erpnext/controllers/accounts_controller.py:2274 +msgid "

    Cannot overbill for the following Items:

    " +msgstr "" + +#: erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py:158 +msgid "

    Following {0}s doesn't belong to Company {1} :

    " +msgstr "" + +#. Content of the 'html_llwp' (HTML) field in DocType 'Request for Quotation' +#: erpnext/buying/doctype/request_for_quotation/request_for_quotation.json +msgid "" +"

    In your Email Template, you can use the following special variables:\n" +"

    \n" +"
      \n" +"
    • \n" +" {{ update_password_link }}: A link where your supplier can set a new password to log into your portal.\n" +"
    • \n" +"
    • \n" +" {{ portal_link }}: A link to this RFQ in your supplier portal.\n" +"
    • \n" +"
    • \n" +" {{ supplier_name }}: The company name of your supplier.\n" +"
    • \n" +"
    • \n" +" {{ contact.salutation }} {{ contact.last_name }}: The contact person of your supplier.\n" +"
    • \n" +" {{ user_fullname }}: Your full name.\n" +"
    • \n" +"
    \n" +"

    \n" +"

    Apart from these, you can access all values in this RFQ, like {{ message_for_supplier }} or {{ terms }}.

    " +msgstr "" + +#: erpnext/accounts/doctype/bank_clearance/bank_clearance.py:119 +msgid "

    Please correct the following row(s):