Merge pull request #40325 from deepeshgarg007/psoa_sender_email
fix: Sender email in process statements of accounts
diff --git a/.github/helper/update_pot_file.sh b/.github/helper/update_pot_file.sh
new file mode 100644
index 0000000..80fa348
--- /dev/null
+++ b/.github/helper/update_pot_file.sh
@@ -0,0 +1,40 @@
+#!/bin/bash
+set -e
+cd ~ || exit
+
+echo "Setting Up Bench..."
+
+pip install frappe-bench
+bench -v init frappe-bench --skip-assets --skip-redis-config-generation --python "$(which python)"
+cd ./frappe-bench || exit
+
+echo "Get ERPNext..."
+bench get-app --skip-assets erpnext "${GITHUB_WORKSPACE}"
+
+echo "Generating POT file..."
+bench generate-pot-file --app erpnext
+
+cd ./apps/erpnext || exit
+
+echo "Configuring git user..."
+git config user.email "developers@erpnext.com"
+git config user.name "frappe-pr-bot"
+
+echo "Setting the correct git remote..."
+# Here, the git remote is a local file path by default. Let's change it to the upstream repo.
+git remote set-url upstream https://github.com/frappe/erpnext.git
+
+echo "Creating a new branch..."
+isodate=$(date -u +"%Y-%m-%d")
+branch_name="pot_${BASE_BRANCH}_${isodate}"
+git checkout -b "${branch_name}"
+
+echo "Commiting changes..."
+git add .
+git commit -m "chore: update POT file"
+
+gh auth setup-git
+git push -u upstream "${branch_name}"
+
+echo "Creating a PR..."
+gh pr create --fill --base "${BASE_BRANCH}" --head "${branch_name}" -R frappe/erpnext
diff --git a/.github/workflows/generate-pot-file.yml b/.github/workflows/generate-pot-file.yml
new file mode 100644
index 0000000..a4e7e3f
--- /dev/null
+++ b/.github/workflows/generate-pot-file.yml
@@ -0,0 +1,38 @@
+# This workflow is agnostic to branches. Only maintain on develop branch.
+# To add/remove branches just modify the matrix.
+
+name: Regenerate POT file (translatable strings)
+on:
+ schedule:
+ # 9:30 UTC => 3 PM IST Sunday
+ - cron: "30 9 * * 0"
+ workflow_dispatch:
+
+jobs:
+ regeneratee-pot-file:
+ name: Release
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ branch: ["develop"]
+ permissions:
+ contents: write
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ with:
+ ref: ${{ matrix.branch }}
+
+ - name: Setup Python
+ uses: actions/setup-python@v5
+ with:
+ python-version: "3.12"
+
+ - name: Run script to update POT file
+ run: |
+ bash ${GITHUB_WORKSPACE}/.github/helper/update_pot_file.sh
+ env:
+ GH_TOKEN: ${{ secrets.RELEASE_TOKEN }}
+ BASE_BRANCH: ${{ matrix.branch }}
diff --git a/crowdin.yml b/crowdin.yml
index 7baf064..84ece8d 100644
--- a/crowdin.yml
+++ b/crowdin.yml
@@ -1,3 +1,4 @@
files:
- source: /erpnext/locale/main.pot
translation: /erpnext/locale/%two_letters_code%.po
+pull_request_title: "chore: sync translations from crowdin"
diff --git a/erpnext/accounts/doctype/cost_center/cost_center.json b/erpnext/accounts/doctype/cost_center/cost_center.json
index 7cbb290..2e66db7 100644
--- a/erpnext/accounts/doctype/cost_center/cost_center.json
+++ b/erpnext/accounts/doctype/cost_center/cost_center.json
@@ -41,7 +41,7 @@
"in_list_view": 1,
"in_standard_filter": 1,
"label": "Cost Center Number",
- "read_only": 1
+ "read_only_depends_on": "eval:!doc.__islocal"
},
{
"fieldname": "parent_cost_center",
@@ -170,4 +170,4 @@
"sort_field": "modified",
"sort_order": "ASC",
"states": []
-}
\ No newline at end of file
+}
diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.py b/erpnext/accounts/doctype/payment_entry/payment_entry.py
index 77efe78..7970a3e 100644
--- a/erpnext/accounts/doctype/payment_entry/payment_entry.py
+++ b/erpnext/accounts/doctype/payment_entry/payment_entry.py
@@ -1271,7 +1271,13 @@
references = [x for x in self.get("references") if x.name == entry.name]
for ref in references:
- if ref.reference_doctype in ("Sales Invoice", "Purchase Invoice", "Journal Entry"):
+ if ref.reference_doctype in (
+ "Sales Invoice",
+ "Purchase Invoice",
+ "Journal Entry",
+ "Sales Order",
+ "Purchase Order",
+ ):
self.add_advance_gl_for_reference(gl_entries, ref)
def add_advance_gl_for_reference(self, gl_entries, invoice):
@@ -1285,14 +1291,15 @@
"voucher_detail_no": invoice.name,
}
- posting_date = frappe.db.get_value(
- invoice.reference_doctype, invoice.reference_name, "posting_date"
- )
+ date_field = "posting_date"
+ if invoice.reference_doctype in ["Sales Order", "Purchase Order"]:
+ date_field = "transaction_date"
+ posting_date = frappe.db.get_value(invoice.reference_doctype, invoice.reference_name, date_field)
if getdate(posting_date) < getdate(self.posting_date):
posting_date = self.posting_date
- dr_or_cr = "credit" if invoice.reference_doctype == "Sales Invoice" else "debit"
+ dr_or_cr = "credit" if invoice.reference_doctype in ["Sales Invoice", "Sales Order"] else "debit"
args_dict["account"] = invoice.account
args_dict[dr_or_cr] = invoice.allocated_amount
args_dict[dr_or_cr + "_in_account_currency"] = invoice.allocated_amount
@@ -2197,6 +2204,11 @@
else:
outstanding_amount = flt(total_amount) - flt(ref_doc.get("advance_paid"))
+ if reference_doctype in ["Sales Order", "Purchase Order"]:
+ party_type = "Customer" if reference_doctype == "Sales Order" else "Supplier"
+ party_field = "customer" if reference_doctype == "Sales Order" else "supplier"
+ party = ref_doc.get(party_field)
+ account = get_party_account(party_type, party, ref_doc.company)
else:
# Get the exchange rate based on the posting date of the ref doc.
exchange_rate = get_exchange_rate(party_account_currency, company_currency, ref_doc.posting_date)
diff --git a/erpnext/accounts/doctype/payment_entry/test_payment_entry.py b/erpnext/accounts/doctype/payment_entry/test_payment_entry.py
index 8a03dd7..5a014b8 100644
--- a/erpnext/accounts/doctype/payment_entry/test_payment_entry.py
+++ b/erpnext/accounts/doctype/payment_entry/test_payment_entry.py
@@ -1070,6 +1070,8 @@
self.assertRaises(frappe.ValidationError, pe_draft.submit)
def test_details_update_on_reference_table(self):
+ from erpnext.accounts.party import get_party_account
+
so = make_sales_order(
customer="_Test Customer USD", currency="USD", qty=1, rate=100, do_not_submit=True
)
@@ -1084,6 +1086,7 @@
ref_details = get_reference_details(so.doctype, so.name, pe.paid_from_account_currency)
expected_response = {
+ "account": get_party_account("Customer", so.customer, so.company),
"total_amount": 5000.0,
"outstanding_amount": 5000.0,
"exchange_rate": 1.0,
diff --git a/erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.py b/erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.py
index 72c50ed..2ef0275 100644
--- a/erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.py
+++ b/erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.py
@@ -2108,6 +2108,92 @@
return_pi.submit()
self.assertEqual(return_pi.docstatus, 1)
+ def test_purchase_invoice_with_use_serial_batch_field_for_rejected_qty(self):
+ from erpnext.stock.doctype.item.test_item import make_item
+ from erpnext.stock.doctype.warehouse.test_warehouse import create_warehouse
+
+ batch_item = make_item(
+ "_Test Purchase Invoice Batch Item For Rejected Qty",
+ properties={"has_batch_no": 1, "create_new_batch": 1, "is_stock_item": 1},
+ ).name
+
+ serial_item = make_item(
+ "_Test Purchase Invoice Serial Item for Rejected Qty",
+ properties={"has_serial_no": 1, "is_stock_item": 1},
+ ).name
+
+ rej_warehouse = create_warehouse("_Test Purchase INV Warehouse For Rejected Qty")
+
+ batch_no = "BATCH-PI-BNU-TPRBI-0001"
+ serial_nos = ["SNU-PI-TPRSI-0001", "SNU-PI-TPRSI-0002", "SNU-PI-TPRSI-0003"]
+
+ if not frappe.db.exists("Batch", batch_no):
+ frappe.get_doc(
+ {
+ "doctype": "Batch",
+ "batch_id": batch_no,
+ "item": batch_item,
+ }
+ ).insert()
+
+ for serial_no in serial_nos:
+ if not frappe.db.exists("Serial No", serial_no):
+ frappe.get_doc(
+ {
+ "doctype": "Serial No",
+ "item_code": serial_item,
+ "serial_no": serial_no,
+ }
+ ).insert()
+
+ pi = make_purchase_invoice(
+ item_code=batch_item,
+ received_qty=10,
+ qty=8,
+ rejected_qty=2,
+ update_stock=1,
+ rejected_warehouse=rej_warehouse,
+ use_serial_batch_fields=1,
+ batch_no=batch_no,
+ rate=100,
+ do_not_submit=1,
+ )
+
+ pi.append(
+ "items",
+ {
+ "item_code": serial_item,
+ "qty": 2,
+ "rate": 100,
+ "base_rate": 100,
+ "item_name": serial_item,
+ "uom": "Nos",
+ "stock_uom": "Nos",
+ "conversion_factor": 1,
+ "rejected_qty": 1,
+ "warehouse": pi.items[0].warehouse,
+ "rejected_warehouse": rej_warehouse,
+ "use_serial_batch_fields": 1,
+ "serial_no": "\n".join(serial_nos[:2]),
+ "rejected_serial_no": serial_nos[2],
+ },
+ )
+
+ pi.save()
+ pi.submit()
+
+ pi.reload()
+
+ for row in pi.items:
+ self.assertTrue(row.serial_and_batch_bundle)
+ self.assertTrue(row.rejected_serial_and_batch_bundle)
+
+ if row.item_code == batch_item:
+ self.assertEqual(row.batch_no, batch_no)
+ else:
+ self.assertEqual(row.serial_no, "\n".join(serial_nos[:2]))
+ self.assertEqual(row.rejected_serial_no, serial_nos[2])
+
def set_advance_flag(company, flag, default_account):
frappe.db.set_value(
@@ -2215,7 +2301,7 @@
pi.cost_center = args.parent_cost_center
bundle_id = None
- if args.get("batch_no") or args.get("serial_no"):
+ if not args.use_serial_batch_fields and ((args.get("batch_no") or args.get("serial_no"))):
batches = {}
qty = args.qty if args.qty is not None else 5
item_code = args.item or args.item_code or "_Test Item"
@@ -2262,6 +2348,9 @@
"rejected_warehouse": args.rejected_warehouse or "",
"asset_location": args.location or "",
"allow_zero_valuation_rate": args.get("allow_zero_valuation_rate") or 0,
+ "use_serial_batch_fields": args.get("use_serial_batch_fields") or 0,
+ "batch_no": args.get("batch_no") if args.get("use_serial_batch_fields") else "",
+ "serial_no": args.get("serial_no") if args.get("use_serial_batch_fields") else "",
},
)
diff --git a/erpnext/accounts/doctype/tax_withholding_category/tax_withholding_category.py b/erpnext/accounts/doctype/tax_withholding_category/tax_withholding_category.py
index c39a9db..405f587 100644
--- a/erpnext/accounts/doctype/tax_withholding_category/tax_withholding_category.py
+++ b/erpnext/accounts/doctype/tax_withholding_category/tax_withholding_category.py
@@ -546,6 +546,7 @@
"GL Entry",
{
"is_cancelled": 0,
+ "party_type": "Customer",
"party": ["in", parties],
"company": inv.company,
"voucher_no": ["in", vouchers],
@@ -560,6 +561,7 @@
conditions = []
conditions.append(ple.amount.lt(0))
conditions.append(ple.delinked == 0)
+ conditions.append(ple.party_type == "Customer")
conditions.append(ple.party.isin(parties))
conditions.append(ple.voucher_no == ple.against_voucher_no)
conditions.append(ple.company == inv.company)
@@ -579,6 +581,7 @@
{
"is_cancelled": 0,
"credit": [">", 0],
+ "party_type": "Customer",
"party": ["in", parties],
"posting_date": ["between", (tax_details.from_date, tax_details.to_date)],
"company": inv.company,
diff --git a/erpnext/accounts/utils.py b/erpnext/accounts/utils.py
index d4cb57b..0755f2e 100644
--- a/erpnext/accounts/utils.py
+++ b/erpnext/accounts/utils.py
@@ -490,7 +490,9 @@
# For payments with `Advance` in separate account feature enabled, only new ledger entries are posted for each reference.
# No need to cancel/delete payment ledger entries
- if not (voucher_type == "Payment Entry" and doc.book_advance_payments_in_separate_party_account):
+ if voucher_type == "Payment Entry" and doc.book_advance_payments_in_separate_party_account:
+ doc.make_advance_gl_entries(cancel=1)
+ else:
_delete_pl_entries(voucher_type, voucher_no)
for entry in entries:
@@ -501,14 +503,16 @@
# update ref in advance entry
if voucher_type == "Journal Entry":
- referenced_row = update_reference_in_journal_entry(entry, doc, do_not_save=False)
+ referenced_row, update_advance_paid = update_reference_in_journal_entry(
+ entry, doc, do_not_save=False
+ )
# advance section in sales/purchase invoice and reconciliation tool,both pass on exchange gain/loss
# amount and account in args
# referenced_row is used to deduplicate gain/loss journal
entry.update({"referenced_row": referenced_row})
doc.make_exchange_gain_loss_journal([entry], dimensions_dict)
else:
- referenced_row = update_reference_in_payment_entry(
+ referenced_row, update_advance_paid = update_reference_in_payment_entry(
entry,
doc,
do_not_save=True,
@@ -522,7 +526,8 @@
if voucher_type == "Payment Entry" and doc.book_advance_payments_in_separate_party_account:
# both ledgers must be posted to for `Advance` in separate account feature
- doc.make_advance_gl_entries(referenced_row, update_outstanding="No")
+ # TODO: find a more efficient way post only for the new linked vouchers
+ doc.make_advance_gl_entries()
else:
gl_map = doc.build_gl_map()
create_payment_ledger_entry(gl_map, update_outstanding="No", cancel=0, adv_adj=1)
@@ -532,6 +537,10 @@
update_voucher_outstanding(
entry.against_voucher_type, entry.against_voucher, entry.account, entry.party_type, entry.party
)
+ # update advance paid in Advance Receivable/Payable doctypes
+ if update_advance_paid:
+ for t, n in update_advance_paid:
+ frappe.get_doc(t, n).set_total_advance_paid()
frappe.flags.ignore_party_validation = False
@@ -621,11 +630,12 @@
jv_detail = journal_entry.get("accounts", {"name": d["voucher_detail_no"]})[0]
# Update Advance Paid in SO/PO since they might be getting unlinked
+ update_advance_paid = []
advance_payment_doctypes = frappe.get_hooks(
"advance_payment_receivable_doctypes"
) + frappe.get_hooks("advance_payment_payable_doctypes")
if jv_detail.get("reference_type") in advance_payment_doctypes:
- frappe.get_doc(jv_detail.reference_type, jv_detail.reference_name).set_total_advance_paid()
+ update_advance_paid.append((jv_detail.reference_type, jv_detail.reference_name))
if flt(d["unadjusted_amount"]) - flt(d["allocated_amount"]) != 0:
# adjust the unreconciled balance
@@ -674,7 +684,7 @@
if not do_not_save:
journal_entry.save(ignore_permissions=True)
- return new_row.name
+ return new_row.name, update_advance_paid
def update_reference_in_payment_entry(
@@ -693,6 +703,7 @@
"account": d.account,
"dimensions": d.dimensions,
}
+ update_advance_paid = []
if d.voucher_detail_no:
existing_row = payment_entry.get("references", {"name": d["voucher_detail_no"]})[0]
@@ -702,9 +713,7 @@
"advance_payment_receivable_doctypes"
) + frappe.get_hooks("advance_payment_payable_doctypes")
if existing_row.get("reference_doctype") in advance_payment_doctypes:
- frappe.get_doc(
- existing_row.reference_doctype, existing_row.reference_name
- ).set_total_advance_paid()
+ update_advance_paid.append((existing_row.reference_doctype, existing_row.reference_name))
if d.allocated_amount <= existing_row.allocated_amount:
existing_row.allocated_amount -= d.allocated_amount
@@ -734,7 +743,7 @@
if not do_not_save:
payment_entry.save(ignore_permissions=True)
- return row
+ return row, update_advance_paid
def cancel_exchange_gain_loss_journal(
diff --git a/erpnext/assets/doctype/asset_capitalization_service_item/asset_capitalization_service_item.json b/erpnext/assets/doctype/asset_capitalization_service_item/asset_capitalization_service_item.json
index 0ae1c14..31c9d52 100644
--- a/erpnext/assets/doctype/asset_capitalization_service_item/asset_capitalization_service_item.json
+++ b/erpnext/assets/doctype/asset_capitalization_service_item/asset_capitalization_service_item.json
@@ -63,7 +63,7 @@
},
{
"columns": 1,
- "fetch_from": "stock_item_code.stock_uom",
+ "fetch_from": "item_code.stock_uom",
"fieldname": "uom",
"fieldtype": "Link",
"in_list_view": 1,
@@ -110,7 +110,7 @@
"index_web_pages_for_search": 1,
"istable": 1,
"links": [],
- "modified": "2021-09-08 15:52:08.598100",
+ "modified": "2024-03-05 11:23:40.766844",
"modified_by": "Administrator",
"module": "Assets",
"name": "Asset Capitalization Service Item",
@@ -118,5 +118,6 @@
"permissions": [],
"sort_field": "modified",
"sort_order": "DESC",
+ "states": [],
"track_changes": 1
}
\ No newline at end of file
diff --git a/erpnext/assets/doctype/asset_capitalization_stock_item/asset_capitalization_stock_item.json b/erpnext/assets/doctype/asset_capitalization_stock_item/asset_capitalization_stock_item.json
index f79a848..c838f8b 100644
--- a/erpnext/assets/doctype/asset_capitalization_stock_item/asset_capitalization_stock_item.json
+++ b/erpnext/assets/doctype/asset_capitalization_stock_item/asset_capitalization_stock_item.json
@@ -65,7 +65,7 @@
},
{
"columns": 1,
- "fetch_from": "stock_item_code.stock_uom",
+ "fetch_from": "item_code.stock_uom",
"fieldname": "stock_uom",
"fieldtype": "Link",
"in_list_view": 1,
@@ -178,7 +178,7 @@
"index_web_pages_for_search": 1,
"istable": 1,
"links": [],
- "modified": "2024-02-25 15:57:35.007501",
+ "modified": "2024-03-05 11:22:57.346889",
"modified_by": "Administrator",
"module": "Assets",
"name": "Asset Capitalization Stock Item",
diff --git a/erpnext/buying/doctype/purchase_order/test_purchase_order.py b/erpnext/buying/doctype/purchase_order/test_purchase_order.py
index d262783..c667ee8 100644
--- a/erpnext/buying/doctype/purchase_order/test_purchase_order.py
+++ b/erpnext/buying/doctype/purchase_order/test_purchase_order.py
@@ -762,11 +762,94 @@
pe_doc = frappe.get_doc("Payment Entry", pe.name)
pe_doc.cancel()
+ def create_account(self, account_name, company, currency, parent):
+ if not frappe.db.get_value(
+ "Account", filters={"account_name": account_name, "company": company}
+ ):
+ account = frappe.get_doc(
+ {
+ "doctype": "Account",
+ "account_name": account_name,
+ "parent_account": parent,
+ "company": company,
+ "account_currency": currency,
+ "is_group": 0,
+ "account_type": "Payable",
+ }
+ ).insert()
+ else:
+ account = frappe.db.get_value(
+ "Account",
+ filters={"account_name": account_name, "company": company},
+ fieldname="name",
+ pluck=True,
+ )
+
+ return account
+
+ def test_advance_payment_with_separate_party_account_enabled(self):
+ """
+ Test "Advance Paid" on Purchase Order, when "Book Advance Payments in Separate Party Account" is enabled and
+ the payment entry linked to the Order is allocated to Purchase Invoice.
+ """
+ supplier = "_Test Supplier"
+ company = "_Test Company"
+
+ # Setup default 'Advance Paid' account
+ account = self.create_account(
+ "Advance Paid", company, "INR", "Application of Funds (Assets) - _TC"
+ )
+ company_doc = frappe.get_doc("Company", company)
+ company_doc.book_advance_payments_in_separate_party_account = True
+ company_doc.default_advance_paid_account = account.name
+ company_doc.save()
+
+ po_doc = create_purchase_order(supplier=supplier)
+
+ from erpnext.accounts.doctype.payment_entry.test_payment_entry import get_payment_entry
+
+ pe = get_payment_entry("Purchase Order", po_doc.name)
+ pe.save().submit()
+
+ po_doc.reload()
+ self.assertEqual(po_doc.advance_paid, 5000)
+
+ from erpnext.buying.doctype.purchase_order.purchase_order import make_purchase_invoice
+
+ pi = make_purchase_invoice(po_doc.name)
+ pi.append(
+ "advances",
+ {
+ "reference_type": pe.doctype,
+ "reference_name": pe.name,
+ "reference_row": pe.references[0].name,
+ "advance_amount": 5000,
+ "allocated_amount": 5000,
+ },
+ )
+ pi.save().submit()
+ pe.reload()
+ po_doc.reload()
+ self.assertEqual(po_doc.advance_paid, 0)
+
+ company_doc.book_advance_payments_in_separate_party_account = False
+ company_doc.save()
+
@change_settings("Accounts Settings", {"unlink_advance_payment_on_cancelation_of_order": 1})
def test_advance_paid_upon_payment_entry_cancellation(self):
from erpnext.accounts.doctype.payment_entry.test_payment_entry import get_payment_entry
- po_doc = create_purchase_order(supplier="_Test Supplier USD", currency="USD", do_not_submit=1)
+ supplier = "_Test Supplier USD"
+ company = "_Test Company"
+
+ # Setup default USD payable account for Supplier
+ account = self.create_account("Creditors USD", company, "USD", "Accounts Payable - _TC")
+ supplier_doc = frappe.get_doc("Supplier", supplier)
+ if not [x for x in supplier_doc.accounts if x.company == company]:
+ supplier_doc.append("accounts", {"company": company, "account": account.name})
+ supplier_doc.save()
+
+ po_doc = create_purchase_order(supplier=supplier, currency="USD", do_not_submit=1)
po_doc.conversion_rate = 80
po_doc.submit()
diff --git a/erpnext/controllers/accounts_controller.py b/erpnext/controllers/accounts_controller.py
index a3db196..c543dfc 100644
--- a/erpnext/controllers/accounts_controller.py
+++ b/erpnext/controllers/accounts_controller.py
@@ -1864,7 +1864,7 @@
(ple.against_voucher_type == self.doctype)
& (ple.against_voucher_no == self.name)
& (ple.party == party)
- & (ple.docstatus == 1)
+ & (ple.delinked == 0)
& (ple.company == self.company)
)
.run(as_dict=True)
@@ -1880,7 +1880,10 @@
advance_paid, precision=self.precision("advance_paid"), currency=advance.account_currency
)
- frappe.db.set_value(self.doctype, self.name, "party_account_currency", advance.account_currency)
+ if advance.account_currency:
+ frappe.db.set_value(
+ self.doctype, self.name, "party_account_currency", advance.account_currency
+ )
if advance.account_currency == self.currency:
order_total = self.get("rounded_total") or self.grand_total
diff --git a/erpnext/controllers/buying_controller.py b/erpnext/controllers/buying_controller.py
index 91ee53a..8211857 100644
--- a/erpnext/controllers/buying_controller.py
+++ b/erpnext/controllers/buying_controller.py
@@ -559,7 +559,7 @@
{
"incoming_rate": incoming_rate,
"recalculate_rate": 1
- if (self.is_subcontracted and (d.bom or d.fg_item)) or d.from_warehouse
+ if (self.is_subcontracted and (d.bom or d.get("fg_item"))) or d.from_warehouse
else 0,
}
)
diff --git a/erpnext/controllers/queries.py b/erpnext/controllers/queries.py
index c46ef50..0d64188 100644
--- a/erpnext/controllers/queries.py
+++ b/erpnext/controllers/queries.py
@@ -352,7 +352,9 @@
ifelse = CustomFunction("IF", ["condition", "then", "else"])
if filters and filters.get("customer"):
- qb_filter_and_conditions.append(proj.customer == filters.get("customer"))
+ qb_filter_and_conditions.append(
+ (proj.customer == filters.get("customer")) | proj.customer.isnull() | proj.customer == ""
+ )
qb_filter_and_conditions.append(proj.status.notin(["Completed", "Cancelled"]))
@@ -439,9 +441,21 @@
filtered_batches = get_filterd_batches(batches)
+ if filters.get("is_inward"):
+ filtered_batches.extend(get_empty_batches(filters))
+
return filtered_batches
+def get_empty_batches(filters):
+ return frappe.get_all(
+ "Batch",
+ fields=["name", "batch_qty"],
+ filters={"item": filters.get("item_code"), "batch_qty": 0.0},
+ as_list=1,
+ )
+
+
def get_filterd_batches(data):
batches = OrderedDict()
diff --git a/erpnext/controllers/stock_controller.py b/erpnext/controllers/stock_controller.py
index a67fbdc..a3fbdda 100644
--- a/erpnext/controllers/stock_controller.py
+++ b/erpnext/controllers/stock_controller.py
@@ -159,9 +159,6 @@
row.serial_no = clean_serial_no_string(row.serial_no)
def make_bundle_using_old_serial_batch_fields(self, table_name=None):
- from erpnext.stock.doctype.serial_no.serial_no import get_serial_nos
- from erpnext.stock.serial_batch_bundle import SerialBatchCreation
-
if self.get("_action") == "update_after_submit":
return
@@ -190,58 +187,78 @@
if row.use_serial_batch_fields and (
not row.serial_and_batch_bundle and not row.get("rejected_serial_and_batch_bundle")
):
- if self.doctype == "Stock Reconciliation":
- qty = row.qty
- type_of_transaction = "Inward"
- warehouse = row.warehouse
- elif table_name == "packed_items":
- qty = row.qty
- warehouse = row.warehouse
- type_of_transaction = "Outward"
- if self.is_return:
- type_of_transaction = "Inward"
- else:
- qty = row.stock_qty if self.doctype != "Stock Entry" else row.transfer_qty
- type_of_transaction = get_type_of_transaction(self, row)
- warehouse = (
- row.warehouse if self.doctype != "Stock Entry" else row.s_warehouse or row.t_warehouse
- )
+ bundle_details = {
+ "item_code": row.item_code,
+ "posting_date": self.posting_date,
+ "posting_time": self.posting_time,
+ "voucher_type": self.doctype,
+ "voucher_no": self.name,
+ "voucher_detail_no": row.name,
+ "company": self.company,
+ "is_rejected": 1 if row.get("rejected_warehouse") else 0,
+ "use_serial_batch_fields": row.use_serial_batch_fields,
+ "do_not_submit": True,
+ }
- sn_doc = SerialBatchCreation(
- {
- "item_code": row.item_code,
- "warehouse": warehouse,
- "posting_date": self.posting_date,
- "posting_time": self.posting_time,
- "voucher_type": self.doctype,
- "voucher_no": self.name,
- "voucher_detail_no": row.name,
- "qty": qty,
- "type_of_transaction": type_of_transaction,
- "company": self.company,
- "is_rejected": 1 if row.get("rejected_warehouse") else 0,
- "serial_nos": get_serial_nos(row.serial_no) if row.serial_no else None,
- "batches": frappe._dict({row.batch_no: qty}) if row.batch_no else None,
- "batch_no": row.batch_no,
- "use_serial_batch_fields": row.use_serial_batch_fields,
- "do_not_submit": True,
- }
- ).make_serial_and_batch_bundle()
+ if row.qty:
+ self.update_bundle_details(bundle_details, table_name, row)
+ self.create_serial_batch_bundle(bundle_details, row)
- if sn_doc.is_rejected:
- row.rejected_serial_and_batch_bundle = sn_doc.name
- row.db_set(
- {
- "rejected_serial_and_batch_bundle": sn_doc.name,
- }
- )
- else:
- row.serial_and_batch_bundle = sn_doc.name
- row.db_set(
- {
- "serial_and_batch_bundle": sn_doc.name,
- }
- )
+ if row.get("rejected_qty"):
+ self.update_bundle_details(bundle_details, table_name, row, is_rejected=True)
+ self.create_serial_batch_bundle(bundle_details, row)
+
+ def update_bundle_details(self, bundle_details, table_name, row, is_rejected=False):
+ from erpnext.stock.doctype.serial_no.serial_no import get_serial_nos
+
+ # Since qty field is different for different doctypes
+ qty = row.get("qty")
+ warehouse = row.get("warehouse")
+
+ if table_name == "packed_items":
+ type_of_transaction = "Inward"
+ if not self.is_return:
+ type_of_transaction = "Outward"
+ else:
+ type_of_transaction = get_type_of_transaction(self, row)
+
+ if hasattr(row, "stock_qty"):
+ qty = row.stock_qty
+
+ if self.doctype == "Stock Entry":
+ qty = row.transfer_qty
+ warehouse = row.s_warehouse or row.t_warehouse
+
+ serial_nos = row.serial_no
+ if is_rejected:
+ serial_nos = row.get("rejected_serial_no")
+ type_of_transaction = "Inward" if not self.is_return else "Outward"
+ qty = row.get("rejected_qty")
+ warehouse = row.get("rejected_warehouse")
+
+ bundle_details.update(
+ {
+ "qty": qty,
+ "is_rejected": is_rejected,
+ "type_of_transaction": type_of_transaction,
+ "warehouse": warehouse,
+ "batches": frappe._dict({row.batch_no: qty}) if row.batch_no else None,
+ "serial_nos": get_serial_nos(serial_nos) if serial_nos else None,
+ "batch_no": row.batch_no,
+ }
+ )
+
+ def create_serial_batch_bundle(self, bundle_details, row):
+ from erpnext.stock.serial_batch_bundle import SerialBatchCreation
+
+ sn_doc = SerialBatchCreation(bundle_details).make_serial_and_batch_bundle()
+
+ field = "serial_and_batch_bundle"
+ if bundle_details.get("is_rejected"):
+ field = "rejected_serial_and_batch_bundle"
+
+ row.set(field, sn_doc.name)
+ row.db_set({field: sn_doc.name})
def validate_serial_nos_and_batches_with_bundle(self, row):
from erpnext.stock.doctype.serial_no.serial_no import get_serial_nos
diff --git a/erpnext/controllers/subcontracting_controller.py b/erpnext/controllers/subcontracting_controller.py
index eac35b0..e66fe8b 100644
--- a/erpnext/controllers/subcontracting_controller.py
+++ b/erpnext/controllers/subcontracting_controller.py
@@ -859,6 +859,7 @@
item,
{
"warehouse": item.rejected_warehouse,
+ "serial_and_batch_bundle": item.get("rejected_serial_and_batch_bundle"),
"actual_qty": flt(item.rejected_qty) * flt(item.conversion_factor),
"incoming_rate": 0.0,
},
diff --git a/erpnext/crm/doctype/email_campaign/email_campaign.py b/erpnext/crm/doctype/email_campaign/email_campaign.py
index 17cf0e4..0ad19a4 100644
--- a/erpnext/crm/doctype/email_campaign/email_campaign.py
+++ b/erpnext/crm/doctype/email_campaign/email_campaign.py
@@ -144,3 +144,4 @@
for entry in email_campaigns:
email_campaign = frappe.get_doc("Email Campaign", entry.name)
email_campaign.update_status()
+ email_campaign.save()
diff --git a/erpnext/locale/de.po b/erpnext/locale/de.po
index e1be2f8..813c307 100644
--- a/erpnext/locale/de.po
+++ b/erpnext/locale/de.po
@@ -3,7 +3,7 @@
"Project-Id-Version: frappe\n"
"Report-Msgid-Bugs-To: info@erpnext.com\n"
"POT-Creation-Date: 2024-01-29 18:13+0053\n"
-"PO-Revision-Date: 2024-02-22 19:45\n"
+"PO-Revision-Date: 2024-03-06 14:36\n"
"Last-Translator: info@erpnext.com\n"
"Language-Team: German\n"
"MIME-Version: 1.0\n"
@@ -295,7 +295,12 @@
"- Issue of raw-material to shop material\n"
"- Progress on each Workstation via Job Card\n"
"- Manufactured Quantity against Work Order\n"
-msgstr ""
+msgstr "# Erstellen Sie einen Arbeitsauftrag\n\n"
+"Ein Arbeitsauftrag oder ein Job wird von der Produktionsleitung an die Fertigungsabteilung erteilt, um die Herstellung einer bestimmten Menge eines Artikels zu veranlassen. Ein Arbeitsauftrag enthält Details über den Produktionsartikel, seine Stückliste, die zu produzierenden Mengen und die Vorgänge.\n\n"
+"Über den Arbeitsauftrag können Sie verschiedene Produktionsstatus verfolgen, wie z. B.:\n\n"
+"- Ausgabe des Rohmaterials an das Fertigungsmaterial\n"
+"- Fortschritt an jedem Arbeitsplatz über die Jobkarte\n"
+"- Gefertigte Menge im Arbeitsauftrag\n"
#. Description of the Onboarding Step 'Create an Item'
#: setup/onboarding_step/create_an_item/create_an_item.json
@@ -336,7 +341,9 @@
msgid "# Financial Statements\n\n"
"In ERPNext, you can get crucial financial reports like [Balance Sheet] and [Profit and Loss] statements with a click of a button. You can run in the report for a different period and plot analytics charts premised on statement data. For more reports, check sections like Financial Statements, General Ledger, and Profitability reports.\n\n"
"<b>[Check Accounting reports](https://docs.erpnext.com/docs/v13/user/manual/en/accounts/accounting-reports)</b>"
-msgstr ""
+msgstr "# Finanzberichte\n\n"
+"In ERPNext können Sie mit einem Klick wichtige Finanzberichte wie [Bilanz] und [Gewinn- und Verlustrechnungen] abrufen. Sie können den Bericht für einen beliebigen Zeitraum ausführen und Diagramme basierend auf den Daten erstellen. Weitere Berichte finden Sie in den Abschnitten „Finanzberichte“, „Hauptbuch“ und „Rentabilitätsberichte“.\n\n"
+"<b>[Buchhaltungsberichte prüfen](https://docs.erpnext.com/docs/v13/user/manual/en/accounts/accounting-reports)</b>"
#. Description of the Onboarding Step 'Review Fixed Asset Accounts'
#: assets/onboarding_step/fixed_asset_accounts/fixed_asset_accounts.json
@@ -5489,7 +5496,7 @@
#: accounts/doctype/process_payment_reconciliation_log/process_payment_reconciliation_log.json
msgctxt "Process Payment Reconciliation Log"
msgid "All allocations have been successfully reconciled"
-msgstr ""
+msgstr "Alle Zuweisungen wurden erfolgreich abgeglichen"
#: support/doctype/issue/issue.js:97
msgid "All communications including and above this shall be moved into the new Issue"
@@ -5742,7 +5749,7 @@
#: manufacturing/doctype/manufacturing_settings/manufacturing_settings.json
msgctxt "Manufacturing Settings"
msgid "Allow Excess Material Transfer"
-msgstr ""
+msgstr "Transfer von überschüssigem Material zulassen"
#. Label of a Check field in DocType 'POS Payment Method'
#: accounts/doctype/pos_payment_method/pos_payment_method.json
@@ -5854,7 +5861,7 @@
#: buying/doctype/supplier/supplier.json
msgctxt "Supplier"
msgid "Allow Purchase Invoice Creation Without Purchase Receipt"
-msgstr ""
+msgstr "Erstellen von Eingangsrechnungen ohne Eingangsbeleg zulassen"
#. Label of a Check field in DocType 'Item Variant Settings'
#: stock/doctype/item_variant_settings/item_variant_settings.json
@@ -5998,7 +6005,7 @@
#: manufacturing/doctype/manufacturing_settings/manufacturing_settings.json
msgctxt "Manufacturing Settings"
msgid "Allow transferring raw materials even after the Required Quantity is fulfilled"
-msgstr ""
+msgstr "Rohstoffübertragung auch nach Erfüllung der erforderlichen Menge erlauben"
#. Label of a Check field in DocType 'Repost Allowed Types'
#: accounts/doctype/repost_allowed_types/repost_allowed_types.json
@@ -7562,7 +7569,7 @@
#: accounts/doctype/journal_entry/journal_entry.json
msgctxt "Journal Entry"
msgid "Apply Tax Withholding Amount "
-msgstr ""
+msgstr "Quellensteuerbetrag anwenden"
#. Label of a Check field in DocType 'Accounting Dimension Filter'
#: accounts/doctype/accounting_dimension_filter/accounting_dimension_filter.json
@@ -8748,7 +8755,7 @@
#: buying/doctype/buying_settings/buying_settings.json
msgctxt "Buying Settings"
msgid "Auto Create Subcontracting Order"
-msgstr ""
+msgstr "Unterauftrag automatisch erstellen"
#. Label of a Check field in DocType 'Fiscal Year'
#: accounts/doctype/fiscal_year/fiscal_year.json
@@ -10085,13 +10092,13 @@
#. Name of a DocType
#: accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.json
msgid "Bank Reconciliation Tool"
-msgstr ""
+msgstr "Bankabstimmungswerkzeug"
#. Label of a Link in the Accounting Workspace
#: accounts/workspace/accounting/accounting.json
msgctxt "Bank Reconciliation Tool"
msgid "Bank Reconciliation Tool"
-msgstr ""
+msgstr "Bankabstimmungswerkzeug"
#. Name of a DocType
#: accounts/doctype/bank_statement_import/bank_statement_import.json
@@ -11114,11 +11121,11 @@
#. Name of a DocType
#: accounts/doctype/bisect_accounting_statements/bisect_accounting_statements.json
msgid "Bisect Accounting Statements"
-msgstr ""
+msgstr "Buchhaltungsberichte teilen"
#: accounts/doctype/bisect_accounting_statements/bisect_accounting_statements.js:9
msgid "Bisect Left"
-msgstr ""
+msgstr "Links teilen"
#. Name of a DocType
#: accounts/doctype/bisect_nodes/bisect_nodes.json
@@ -11127,27 +11134,27 @@
#: accounts/doctype/bisect_accounting_statements/bisect_accounting_statements.js:13
msgid "Bisect Right"
-msgstr ""
+msgstr "Rechts teilen"
#. Label of a Heading field in DocType 'Bisect Accounting Statements'
#: accounts/doctype/bisect_accounting_statements/bisect_accounting_statements.json
msgctxt "Bisect Accounting Statements"
msgid "Bisecting From"
-msgstr ""
+msgstr "Teilen ab"
#: accounts/doctype/bisect_accounting_statements/bisect_accounting_statements.js:61
msgid "Bisecting Left ..."
-msgstr ""
+msgstr "Teile links ..."
#: accounts/doctype/bisect_accounting_statements/bisect_accounting_statements.js:71
msgid "Bisecting Right ..."
-msgstr ""
+msgstr "Teile rechts ..."
#. Label of a Heading field in DocType 'Bisect Accounting Statements'
#: accounts/doctype/bisect_accounting_statements/bisect_accounting_statements.json
msgctxt "Bisect Accounting Statements"
msgid "Bisecting To"
-msgstr ""
+msgstr "Teilen bis"
#: setup/setup_wizard/operations/install_fixtures.py:236
msgid "Black"
@@ -11688,7 +11695,7 @@
#: accounts/doctype/bisect_accounting_statements/bisect_accounting_statements.js:20
msgid "Build Tree"
-msgstr ""
+msgstr "Baum erstellen"
#: manufacturing/report/work_order_stock_report/work_order_stock_report.py:155
msgid "Buildable Qty"
@@ -12053,7 +12060,7 @@
#: telephony/doctype/call_log/call_log.js:8
msgid "Callback"
-msgstr ""
+msgstr "Rückruf"
#. Name of a DocType
#. Label of a Card Break in the CRM Workspace
@@ -16685,7 +16692,7 @@
#: stock/doctype/stock_settings/stock_settings.json
msgctxt "Stock Settings"
msgid "Control Historical Stock Transactions"
-msgstr ""
+msgstr "Historische Lagerbewegungen überprüfen"
#: public/js/utils.js:684
msgid "Conversion Factor"
@@ -16896,23 +16903,23 @@
#: manufacturing/doctype/job_card/job_card.js:146
msgid "Corrective Job Card"
-msgstr ""
+msgstr "Nacharbeitsauftrag"
#: manufacturing/doctype/job_card/job_card.js:151
msgid "Corrective Operation"
-msgstr ""
+msgstr "Nacharbeit"
#. Label of a Tab Break field in DocType 'Job Card'
#: manufacturing/doctype/job_card/job_card.json
msgctxt "Job Card"
msgid "Corrective Operation"
-msgstr ""
+msgstr "Nacharbeit"
#. Label of a Currency field in DocType 'Work Order'
#: manufacturing/doctype/work_order/work_order.json
msgctxt "Work Order"
msgid "Corrective Operation Cost"
-msgstr ""
+msgstr "Nacharbeitskosten"
#. Label of a Select field in DocType 'Quality Action'
#: quality_management/doctype/quality_action/quality_action.json
@@ -17540,7 +17547,7 @@
#: buying/doctype/supplier_scorecard_variable/supplier_scorecard_variable.py:46
#: buying/doctype/supplier_scorecard_variable/supplier_scorecard_variable.py:50
msgid "Could not find path for "
-msgstr ""
+msgstr "Konnte keinen Pfad finden für "
#: accounts/report/dimension_wise_accounts_balance_report/dimension_wise_accounts_balance_report.py:128
#: accounts/report/financial_statements.py:236
@@ -18267,7 +18274,7 @@
#: subcontracting/doctype/subcontracting_order/subcontracting_order.js:226
msgid "Creating Subcontracting Receipt ..."
-msgstr ""
+msgstr "Erstelle Unterauftragsbeleg ..."
#: setup/doctype/employee/employee.js:85
msgid "Creating User..."
@@ -21473,7 +21480,7 @@
#: stock/doctype/item/item.json
msgctxt "Item"
msgid "Default Purchase Unit of Measure"
-msgstr "Standard Maßeinheit Verkauf"
+msgstr "Standard Maßeinheit Einkauf"
#. Label of a Data field in DocType 'CRM Settings'
#: crm/doctype/crm_settings/crm_settings.json
@@ -27364,7 +27371,7 @@
#: stock/report/stock_ledger_invariant_check/stock_ledger_invariant_check.py:195
#: stock/report/stock_ledger_variance/stock_ledger_variance.py:119
msgid "FIFO/LIFO Queue"
-msgstr ""
+msgstr "FIFO/LIFO-Warteschlange"
#: erpnext_integrations/doctype/quickbooks_migrator/quickbooks_migrator.js:62
#: manufacturing/doctype/bom_creator/bom_creator_list.js:13
@@ -27752,13 +27759,13 @@
#: accounts/doctype/payment_reconciliation/payment_reconciliation.json
msgctxt "Payment Reconciliation"
msgid "Filter on Invoice"
-msgstr ""
+msgstr "Nach Rechnung filtern"
#. Label of a Data field in DocType 'Payment Reconciliation'
#: accounts/doctype/payment_reconciliation/payment_reconciliation.json
msgctxt "Payment Reconciliation"
msgid "Filter on Payment"
-msgstr ""
+msgstr "Nach Zahlung filtern"
#: accounts/doctype/payment_entry/payment_entry.js:696
#: public/js/bank_reconciliation_tool/dialog_manager.js:192
@@ -27811,7 +27818,7 @@
#: manufacturing/doctype/bom_creator/bom_creator.json
msgctxt "BOM Creator"
msgid "Final Product"
-msgstr ""
+msgstr "Endprodukt"
#. Name of a DocType
#: accounts/doctype/finance_book/finance_book.json
@@ -28103,7 +28110,7 @@
#. Title of an Onboarding Step
#: manufacturing/onboarding_step/create_product/create_product.json
msgid "Finished Items"
-msgstr ""
+msgstr "Fertigerzeugnisse"
#. Label of a Time field in DocType 'Project'
#: projects/doctype/project/project.json
@@ -30658,7 +30665,7 @@
#: selling/doctype/quotation_item/quotation_item.json
msgctxt "Quotation Item"
msgid "Has Alternative Item"
-msgstr ""
+msgstr "Hat alternativen Artikel"
#. Label of a Check field in DocType 'Item'
#: stock/doctype/item/item.json
@@ -30862,7 +30869,7 @@
#: stock/stock_ledger.py:1669
msgid "Here are the options to proceed:"
-msgstr ""
+msgstr "Hier sind die Optionen für das weitere Vorgehen:"
#. Description of the 'Family Background' (Small Text) field in DocType
#. 'Employee'
@@ -30879,7 +30886,7 @@
#: setup/doctype/employee/employee.js:122
msgid "Here, you can select a senior of this Employee. Based on this, Organization Chart will be populated."
-msgstr ""
+msgstr "Hier können Sie einen Vorgesetzten dieses Mitarbeiters auswählen. Auf dieser Grundlage wird das Organigramm erstellt."
#: setup/doctype/holiday_list/holiday_list.js:75
msgid "Here, your weekly offs are pre-populated based on the previous selections. You can add more rows to also add public and national holidays individually."
@@ -34107,7 +34114,7 @@
#: accounts/doctype/sales_invoice/sales_invoice.json
msgctxt "Sales Invoice"
msgid "Is Cash or Non Trade Discount"
-msgstr ""
+msgstr "Ist Skonto bzw. kein Handelsrabatt "
#. Label of a Check field in DocType 'Share Balance'
#: accounts/doctype/share_balance/share_balance.json
@@ -34155,7 +34162,7 @@
#: manufacturing/doctype/operation/operation.json
msgctxt "Operation"
msgid "Is Corrective Operation"
-msgstr ""
+msgstr "Ist Nacharbeit"
#. Label of a Check field in DocType 'Pricing Rule'
#: accounts/doctype/pricing_rule/pricing_rule.json
@@ -34375,7 +34382,7 @@
#: assets/doctype/asset/asset.json
msgctxt "Asset"
msgid "Is Fully Depreciated"
-msgstr ""
+msgstr "Ist vollständig abgeschrieben"
#: accounts/doctype/account/account_tree.js:110
#: accounts/doctype/cost_center/cost_center_tree.js:23
@@ -43332,7 +43339,7 @@
#: telephony/doctype/call_log/call_log.py:119
msgid "No employee was scheduled for call popup"
-msgstr ""
+msgstr "Es war kein Mitarbeiter für das Anruf-Popup eingeplant"
#: accounts/doctype/payment_entry/payment_entry.js:1064
msgid "No gain or loss in the exchange rate"
@@ -43458,7 +43465,7 @@
#: accounts/doctype/payment_reconciliation/payment_reconciliation.py:677
msgid "No records found in Allocation table"
-msgstr ""
+msgstr "Keine Datensätze in der Zuteilungstabelle gefunden"
#: accounts/doctype/payment_reconciliation/payment_reconciliation.py:579
msgid "No records found in the Invoices table"
@@ -43466,7 +43473,7 @@
#: accounts/doctype/payment_reconciliation/payment_reconciliation.py:582
msgid "No records found in the Payments table"
-msgstr ""
+msgstr "Keine Datensätze in der Zahlungstabelle gefunden"
#. Description of the 'Stock Frozen Up To' (Date) field in DocType 'Stock
#. Settings'
@@ -49463,7 +49470,7 @@
#: stock/doctype/stock_ledger_entry/stock_ledger_entry.py:321
msgid "Please contact any of the following users to {} this transaction."
-msgstr ""
+msgstr "Bitte kontaktieren Sie einen der folgenden Benutzer, um diese Transaktion zu {}."
#: selling/doctype/customer/customer.py:531
msgid "Please contact your administrator to extend the credit limits for {0}."
@@ -49529,7 +49536,7 @@
#: accounts/doctype/sales_invoice/sales_invoice.py:871
msgid "Please ensure {} account is a Balance Sheet account."
-msgstr ""
+msgstr "Bitte stellen Sie sicher, dass das Konto {} ein Bilanzkonto ist."
#: accounts/doctype/purchase_invoice/purchase_invoice.py:366
msgid "Please ensure {} account is a Balance Sheet account. You can change the parent account to a Balance Sheet account or select a different account."
@@ -50914,7 +50921,7 @@
#: buying/report/supplier_quotation_comparison/supplier_quotation_comparison.py:246
msgid "Price ({0})"
-msgstr ""
+msgstr "Preis ({0})"
#. Label of a Section Break field in DocType 'Pricing Rule'
#: accounts/doctype/pricing_rule/pricing_rule.json
@@ -51314,7 +51321,7 @@
#: buying/report/supplier_quotation_comparison/supplier_quotation_comparison.py:253
msgid "Price Per Unit ({0})"
-msgstr ""
+msgstr "Preis pro Einheit ({0})"
#: selling/page/point_of_sale/pos_controller.js:553
msgid "Price is not set for the item."
@@ -52110,7 +52117,7 @@
#: stock/doctype/putaway_rule/putaway_rule.py:60
msgid "Priority cannot be lesser than 1."
-msgstr ""
+msgstr "Die Priorität kann nicht kleiner als 1 sein."
#: support/doctype/service_level_agreement/service_level_agreement.py:755
msgid "Priority has been changed to {0}."
@@ -52668,7 +52675,7 @@
#. Title of an Onboarding Step
#: manufacturing/onboarding_step/production_planning/production_planning.json
msgid "Production Planning"
-msgstr ""
+msgstr "Produktionsplanung"
#. Name of a report
#. Label of a Link in the Manufacturing Workspace
@@ -52685,17 +52692,17 @@
#. Subtitle of the Module Onboarding 'Buying'
#: buying/module_onboarding/buying/buying.json
msgid "Products, Purchases, Analysis, and more."
-msgstr ""
+msgstr "Produkte, Einkäufe, Analysen und mehr."
#. Subtitle of the Module Onboarding 'Manufacturing'
#: manufacturing/module_onboarding/manufacturing/manufacturing.json
msgid "Products, Raw Materials, BOM, Work Order, and more."
-msgstr ""
+msgstr "Produkte, Rohmaterialien, Stücklisten, Arbeitsaufträge und mehr."
#. Subtitle of the Module Onboarding 'Selling'
#: selling/module_onboarding/selling/selling.json
msgid "Products, Sales, Analysis, and more."
-msgstr ""
+msgstr "Produkte, Vertrieb, Analyse und mehr."
#. Label of a Tab Break field in DocType 'Employee'
#: setup/doctype/employee/employee.json
@@ -52736,13 +52743,13 @@
#: accounts/doctype/bisect_accounting_statements/bisect_accounting_statements.json
msgctxt "Bisect Accounting Statements"
msgid "Profit and Loss Summary"
-msgstr ""
+msgstr "Gewinn und Verlust Zusammenfassung"
#. Label of a Float field in DocType 'Bisect Nodes'
#: accounts/doctype/bisect_nodes/bisect_nodes.json
msgctxt "Bisect Nodes"
msgid "Profit and Loss Summary"
-msgstr ""
+msgstr "Gewinn und Verlust Zusammenfassung"
#: accounts/report/profit_and_loss_statement/profit_and_loss_statement.py:132
#: accounts/report/profit_and_loss_statement/profit_and_loss_statement.py:133
@@ -52774,11 +52781,11 @@
#: projects/doctype/task/task.py:143
#, python-format
msgid "Progress % for a task cannot be more than 100."
-msgstr ""
+msgstr "Der prozentuale Fortschritt für eine Aufgabe darf nicht mehr als 100 betragen."
#: projects/report/delayed_tasks_summary/delayed_tasks_summary.py:94
msgid "Progress (%)"
-msgstr ""
+msgstr "Fortschritt (%)"
#. Name of a DocType
#: accounts/doctype/sales_invoice/sales_invoice.js:973
@@ -53142,7 +53149,7 @@
#: templates/pages/projects.html:114
msgid "Project Progress:"
-msgstr ""
+msgstr "Projektfortschritt:"
#: projects/report/project_wise_stock_tracking/project_wise_stock_tracking.py:47
msgid "Project Start Date"
@@ -56765,7 +56772,7 @@
#: accounts/doctype/bisect_accounting_statements/bisect_accounting_statements.py:226
msgid "Reached Root"
-msgstr ""
+msgstr "Oberste Ebene erreicht"
#. Label of a Check field in DocType 'POS Field'
#: accounts/doctype/pos_field/pos_field.json
@@ -56842,7 +56849,7 @@
#: stock/doctype/quality_inspection_reading/quality_inspection_reading.json
msgctxt "Quality Inspection Reading"
msgid "Reading Value"
-msgstr ""
+msgstr "Abgelesener Wert"
#. Label of a Table field in DocType 'Quality Inspection'
#: stock/doctype/quality_inspection/quality_inspection.json
@@ -57256,15 +57263,15 @@
#: accounts/doctype/process_payment_reconciliation_log/process_payment_reconciliation_log.json
msgctxt "Process Payment Reconciliation Log"
msgid "Reconciliation Error Log"
-msgstr ""
+msgstr "Abstimmungsfehlerprotokoll"
#: accounts/doctype/process_payment_reconciliation/process_payment_reconciliation_dashboard.py:9
msgid "Reconciliation Logs"
-msgstr ""
+msgstr "Abstimmungsprotokolle"
#: accounts/doctype/process_payment_reconciliation_log/process_payment_reconciliation_log.js:13
msgid "Reconciliation Progress"
-msgstr ""
+msgstr "Abstimmungsfortschritt"
#. Label of a HTML field in DocType 'Call Log'
#: telephony/doctype/call_log/call_log.json
@@ -58745,7 +58752,7 @@
#: accounts/doctype/currency_exchange_settings/currency_exchange_settings.json
msgctxt "Currency Exchange Settings"
msgid "Request Parameters"
-msgstr ""
+msgstr "Anfrageparameter"
#: accounts/doctype/pos_invoice/pos_invoice.js:269
msgid "Request Timeout"
@@ -59071,13 +59078,13 @@
#: stock/report/reserved_stock/reserved_stock.js:121
msgid "Reservation Based On"
-msgstr ""
+msgstr "Reservierung basierend auf"
#. Label of a Select field in DocType 'Stock Reservation Entry'
#: stock/doctype/stock_reservation_entry/stock_reservation_entry.json
msgctxt "Stock Reservation Entry"
msgid "Reservation Based On"
-msgstr ""
+msgstr "Reservierung basierend auf"
#: selling/doctype/sales_order/sales_order.js:68
#: stock/doctype/pick_list/pick_list.js:110
@@ -59086,19 +59093,19 @@
#: selling/doctype/sales_order/sales_order.js:322
msgid "Reserve Stock"
-msgstr ""
+msgstr "Reservierter Bestand"
#. Label of a Check field in DocType 'Sales Order'
#: selling/doctype/sales_order/sales_order.json
msgctxt "Sales Order"
msgid "Reserve Stock"
-msgstr ""
+msgstr "Reservierter Bestand"
#. Label of a Check field in DocType 'Sales Order Item'
#: selling/doctype/sales_order_item/sales_order_item.json
msgctxt "Sales Order Item"
msgid "Reserve Stock"
-msgstr ""
+msgstr "Reservierter Bestand"
#. Label of a Link field in DocType 'Purchase Order Item Supplied'
#: buying/doctype/purchase_order_item_supplied/purchase_order_item_supplied.json
@@ -59137,7 +59144,7 @@
#: stock/doctype/stock_reservation_entry/stock_reservation_entry.py:133
msgid "Reserved Qty ({0}) cannot be a fraction. To allow this, disable '{1}' in UOM {3}."
-msgstr ""
+msgstr "Die reservierte Menge ({0}) darf kein Bruchteil sein. Um dies zu ermöglichen, deaktivieren Sie '{1}' in UOM {3}."
#. Label of a Float field in DocType 'Bin'
#: stock/doctype/bin/bin.json
@@ -59155,17 +59162,17 @@
#: stock/doctype/bin/bin.json
msgctxt "Bin"
msgid "Reserved Qty for Production Plan"
-msgstr ""
+msgstr "Reservierte Menge für Produktionsplan"
#. Label of a Float field in DocType 'Bin'
#: stock/doctype/bin/bin.json
msgctxt "Bin"
msgid "Reserved Qty for Subcontract"
-msgstr ""
+msgstr "Reservierte Menge für Unterauftrag"
#: stock/doctype/stock_reservation_entry/stock_reservation_entry.py:497
msgid "Reserved Qty should be greater than Delivered Qty."
-msgstr ""
+msgstr "Die reservierte Menge sollte größer sein als die gelieferte Menge."
#: stock/report/item_shortage_report/item_shortage_report.py:116
msgid "Reserved Quantity"
@@ -59177,7 +59184,7 @@
#: stock/stock_ledger.py:1982
msgid "Reserved Serial No."
-msgstr ""
+msgstr "Reservierte Seriennr."
#. Name of a report
#: selling/doctype/sales_order/sales_order.js:79
@@ -59196,23 +59203,23 @@
#: stock/stock_ledger.py:2012
msgid "Reserved Stock for Batch"
-msgstr ""
+msgstr "Reservierter Bestand für Charge"
#: stock/report/stock_projected_qty/stock_projected_qty.py:192
msgid "Reserved for POS Transactions"
-msgstr ""
+msgstr "Für Kassentransaktionen reserviert"
#: stock/report/stock_projected_qty/stock_projected_qty.py:171
msgid "Reserved for Production"
-msgstr ""
+msgstr "Für die Produktion reserviert"
#: stock/report/stock_projected_qty/stock_projected_qty.py:178
msgid "Reserved for Production Plan"
-msgstr ""
+msgstr "Für Produktionsplan reserviert"
#: stock/report/stock_projected_qty/stock_projected_qty.py:185
msgid "Reserved for Sub Contracting"
-msgstr ""
+msgstr "Für Unteraufträge reserviert"
#: stock/page/stock_balance/stock_balance.js:53
msgid "Reserved for manufacturing"
@@ -59238,7 +59245,7 @@
#: erpnext_integrations/doctype/plaid_settings/plaid_settings.js:19
msgid "Reset Plaid Link"
-msgstr ""
+msgstr "Plaid-Link zurücksetzen"
#: support/doctype/issue/issue.js:39
msgid "Reset Service Level Agreement"
@@ -60274,11 +60281,11 @@
#: stock/doctype/stock_reconciliation/stock_reconciliation.py:428
msgid "Row #"
-msgstr ""
+msgstr "Zeile #"
#: stock/doctype/stock_reconciliation/stock_reconciliation.py:334
msgid "Row # {0}:"
-msgstr ""
+msgstr "Zeile # {0}:"
#: controllers/sales_and_purchase_return.py:181
msgid "Row # {0}: Cannot return more than {1} for Item {2}"
@@ -60304,15 +60311,15 @@
#: stock/doctype/item/item.py:480
msgid "Row #{0}: A reorder entry already exists for warehouse {1} with reorder type {2}."
-msgstr ""
+msgstr "Zeile #{0}: Für das Lager {1} mit dem Nachbestellungstyp {2} ist bereits ein Nachbestellungseintrag vorhanden."
#: stock/doctype/quality_inspection/quality_inspection.py:235
msgid "Row #{0}: Acceptance Criteria Formula is incorrect."
-msgstr ""
+msgstr "Zeile #{0}: Die Formel für die Akzeptanzkriterien ist falsch."
#: stock/doctype/quality_inspection/quality_inspection.py:215
msgid "Row #{0}: Acceptance Criteria Formula is required."
-msgstr ""
+msgstr "Zeile #{0}: Die Formel für die Akzeptanzkriterien ist erforderlich."
#: controllers/subcontracting_controller.py:72
#: subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:413
@@ -60446,7 +60453,7 @@
#: controllers/stock_controller.py:336
msgid "Row #{0}: Expense Account not set for the Item {1}. {2}"
-msgstr ""
+msgstr "Zeile #{0}: Aufwandskonto für den Artikel nicht festgelegt {1}. {2}"
#: buying/doctype/purchase_order/purchase_order.py:378
msgid "Row #{0}: Finished Good Item Qty can not be zero"
@@ -60474,7 +60481,7 @@
#: accounts/doctype/tax_withholding_category/tax_withholding_category.py:44
msgid "Row #{0}: From Date cannot be before To Date"
-msgstr ""
+msgstr "Zeile #{0}: Von-Datum kann nicht vor Bis-Datum liegen"
#: public/js/utils/barcode_scanner.js:489
msgid "Row #{0}: Item added"
@@ -60526,7 +60533,7 @@
#: manufacturing/doctype/production_plan/production_plan.py:892
msgid "Row #{0}: Please select Item Code in Assembly Items"
-msgstr ""
+msgstr "Zeile #{0}: Bitte wählen Sie den Artikelcode in den Baugruppenartikeln aus"
#: manufacturing/doctype/production_plan/production_plan.py:895
msgid "Row #{0}: Please select the BOM No in Assembly Items"
@@ -60546,7 +60553,7 @@
#: public/js/utils/barcode_scanner.js:487
msgid "Row #{0}: Qty increased by {1}"
-msgstr ""
+msgstr "Zeile #{0}: Menge erhöht um {1}"
#: assets/doctype/asset_capitalization/asset_capitalization.py:264
#: assets/doctype/asset_capitalization/asset_capitalization.py:306
@@ -60555,7 +60562,7 @@
#: stock/doctype/stock_reservation_entry/stock_reservation_entry.py:301
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 ""
+msgstr "Zeile #{0}: Die Menge sollte kleiner oder gleich der verfügbaren Menge zum Reservieren sein (Ist-Menge – reservierte Menge) {1} für Artikel {2} der Charge {3} im Lager {4}."
#: controllers/accounts_controller.py:1018
#: controllers/accounts_controller.py:3166
@@ -60564,15 +60571,15 @@
#: stock/doctype/stock_reservation_entry/stock_reservation_entry.py:1017
msgid "Row #{0}: Quantity to reserve for the Item {1} should be greater than 0."
-msgstr ""
+msgstr "Zeile #{0}: Die zu reservierende Menge für den Artikel {1} sollte größer als 0 sein."
#: utilities/transaction_base.py:113 utilities/transaction_base.py:119
msgid "Row #{0}: Rate must be same as {1}: {2} ({3} / {4})"
-msgstr ""
+msgstr "Zeile #{0}: Einzelpreis muss gleich sein wie {1}: {2} ({3} / {4})"
#: controllers/buying_controller.py:470
msgid "Row #{0}: Received Qty must be equal to Accepted + Rejected Qty for Item {1}"
-msgstr ""
+msgstr "Zeile #{0}: Die erhaltene Menge muss gleich der angenommenen + abgelehnten Menge für Artikel {1} sein"
#: accounts/doctype/payment_entry/payment_entry.js:1016
msgid "Row #{0}: Reference Document Type must be one of Purchase Order, Purchase Invoice or Journal Entry"
@@ -60588,7 +60595,7 @@
#: subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:387
msgid "Row #{0}: Rejected Qty cannot be set for Scrap Item {1}."
-msgstr ""
+msgstr "Zeile #{0}: Die abgelehnte Menge kann nicht für den Ausschussartikel {1} festgelegt werden."
#: controllers/subcontracting_controller.py:65
msgid "Row #{0}: Rejected Warehouse is mandatory for the rejected Item {1}"
@@ -60600,7 +60607,7 @@
#: subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:382
msgid "Row #{0}: Scrap Item Qty cannot be zero"
-msgstr ""
+msgstr "Zeile #{0}: Die Menge des Ausschussartikels darf nicht Null sein"
#: controllers/selling_controller.py:212
msgid "Row #{0}: Selling rate for item {1} is lower than its {2}.\n"
@@ -60619,7 +60626,7 @@
#: stock/doctype/stock_reservation_entry/stock_reservation_entry.py:264
msgid "Row #{0}: Serial No {1} is already selected."
-msgstr ""
+msgstr "Zeile #{0}: Die Seriennummer {1} ist bereits ausgewählt."
#: controllers/accounts_controller.py:395
msgid "Row #{0}: Service End Date cannot be before Invoice Posting Date"
@@ -60639,7 +60646,7 @@
#: stock/doctype/quality_inspection/quality_inspection.py:120
msgid "Row #{0}: Status is mandatory"
-msgstr ""
+msgstr "Zeile #{0}: Status ist obligatorisch"
#: accounts/doctype/journal_entry/journal_entry.py:381
msgid "Row #{0}: Status must be {1} for Invoice Discounting {2}"
@@ -60647,7 +60654,7 @@
#: stock/doctype/stock_reservation_entry/stock_reservation_entry.py:273
msgid "Row #{0}: Stock cannot be reserved for Item {1} against a disabled Batch {2}."
-msgstr ""
+msgstr "Zeile #{0}: Der Bestand kann nicht für Artikel {1} für eine deaktivierte Charge {2} reserviert werden."
#: stock/doctype/stock_reservation_entry/stock_reservation_entry.py:962
msgid "Row #{0}: Stock cannot be reserved for a non-stock Item {1}"
@@ -60655,23 +60662,23 @@
#: stock/doctype/stock_reservation_entry/stock_reservation_entry.py:975
msgid "Row #{0}: Stock cannot be reserved in group warehouse {1}."
-msgstr ""
+msgstr "Zeile #{0}: Bestand kann nicht im Gruppenlager {1} reserviert werden."
#: stock/doctype/stock_reservation_entry/stock_reservation_entry.py:989
msgid "Row #{0}: Stock is already reserved for the Item {1}."
-msgstr ""
+msgstr "Zeile #{0}: Für den Artikel {1} ist bereits ein Lagerbestand reserviert."
#: stock/doctype/delivery_note/delivery_note.py:605
msgid "Row #{0}: Stock is reserved for item {1} in warehouse {2}."
-msgstr ""
+msgstr "Zeile #{0}: Der Bestand ist für den Artikel {1} im Lager {2} reserviert."
#: stock/doctype/stock_reservation_entry/stock_reservation_entry.py:285
msgid "Row #{0}: Stock not available to reserve for Item {1} against Batch {2} in Warehouse {3}."
-msgstr ""
+msgstr "Zeile #{0}: Bestand nicht verfügbar für Artikel {1} von Charge {2} im Lager {3}."
#: stock/doctype/stock_reservation_entry/stock_reservation_entry.py:1003
msgid "Row #{0}: Stock not available to reserve for the Item {1} in Warehouse {2}."
-msgstr ""
+msgstr "Zeile #{0}: Kein Bestand für den Artikel {1} im Lager {2} verfügbar."
#: controllers/stock_controller.py:110
msgid "Row #{0}: The batch {1} has already expired."
@@ -60679,7 +60686,7 @@
#: accounts/doctype/sales_invoice/sales_invoice.py:1687
msgid "Row #{0}: The following Serial Nos are not present in Delivery Note {1}:"
-msgstr ""
+msgstr "Zeile #{0}: Die folgenden Seriennummern sind nicht im Lieferschein {1} enthalten:"
#: manufacturing/doctype/workstation/workstation.py:116
msgid "Row #{0}: Timings conflicts with row {1}"
@@ -60691,11 +60698,11 @@
#: accounts/doctype/sales_invoice/sales_invoice.py:1402
msgid "Row #{0}: You must select an Asset for Item {1}."
-msgstr ""
+msgstr "Zeile #{0}: Sie müssen einen Vermögensgegenstand für Artikel {1} auswählen."
#: accounts/doctype/sales_invoice/sales_invoice.py:1696
msgid "Row #{0}: {1} Serial numbers required for Item {2}. You have provided {3}."
-msgstr ""
+msgstr "Zeile #{0}: {1} Seriennummern erforderlich für Artikel {2}. Sie haben {3} angegeben."
#: controllers/buying_controller.py:483 public/js/controllers/buying.js:208
msgid "Row #{0}: {1} can not be negative for item {2}"
@@ -60715,7 +60722,7 @@
#: buying/utils.py:106
msgid "Row #{1}: Warehouse is mandatory for stock Item {0}"
-msgstr ""
+msgstr "Zeile #{1}: Lager ist obligatorisch für Artikel {0}"
#: assets/doctype/asset_category/asset_category.py:65
msgid "Row #{}: Currency of {} - {} doesn't matches company currency."
@@ -60735,7 +60742,7 @@
#: accounts/doctype/pos_invoice_merge_log/pos_invoice_merge_log.py:99
msgid "Row #{}: Original Invoice {} of return invoice {} is {}."
-msgstr ""
+msgstr "Zeile #{}: Originalrechnung {} der Rechnungskorrektur {} ist {}."
#: accounts/doctype/pos_invoice_merge_log/pos_invoice_merge_log.py:87
msgid "Row #{}: POS Invoice {} has been {}"
@@ -60787,7 +60794,7 @@
#: accounts/doctype/purchase_invoice/purchase_invoice.py:433
msgid "Row No {0}: Warehouse is required. Please set a Default Warehouse for Item {1} and Company {2}"
-msgstr ""
+msgstr "Zeile Nr. {0}: Lager ist erforderlich. Bitte legen Sie ein Standardlager für Artikel {1} und Unternehmen {2} fest"
#: manufacturing/doctype/job_card/job_card.py:599
msgid "Row {0} : Operation is required against the raw material item {1}"
@@ -60803,11 +60810,11 @@
#: stock/doctype/stock_entry/stock_entry.py:1159
msgid "Row {0}# Item {1} not found in 'Raw Materials Supplied' table in {2} {3}"
-msgstr ""
+msgstr "Zeile {0}# Artikel {1} wurde in der Tabelle „Gelieferte Rohstoffe“ in {2} {3} nicht gefunden"
#: subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py:190
msgid "Row {0}: Accepted Qty and Rejected Qty can't be zero at the same time."
-msgstr ""
+msgstr "Zeile {0}: Die akzeptierte Menge und die abgelehnte Menge können nicht gleichzeitig Null sein."
#: accounts/doctype/journal_entry/journal_entry.py:509
msgid "Row {0}: Account {1} and Party Type {2} have different account types"
@@ -60815,7 +60822,7 @@
#: controllers/accounts_controller.py:2536
msgid "Row {0}: Account {1} is a Group Account"
-msgstr ""
+msgstr "Zeile {0}: Konto {1} ist eine Kontogruppe"
#: projects/doctype/timesheet/timesheet.py:117
msgid "Row {0}: Activity Type is mandatory."
@@ -60851,7 +60858,7 @@
#: controllers/accounts_controller.py:2549
msgid "Row {0}: Cost Center {1} does not belong to Company {2}"
-msgstr ""
+msgstr "Zeile {0}: Die Kostenstelle {1} gehört nicht zum Unternehmen {2}"
#: stock/doctype/landed_cost_voucher/landed_cost_voucher.py:116
msgid "Row {0}: Cost center is required for an item {1}"
@@ -60945,11 +60952,11 @@
#: controllers/buying_controller.py:400 controllers/selling_controller.py:479
msgid "Row {0}: Item rate has been updated as per valuation rate since its an internal stock transfer"
-msgstr ""
+msgstr "Zeile {0}: Der Einzelpreis wurde gemäß dem Bewertungskurs aktualisiert, da es sich um eine interne Umlagerung handelt"
#: controllers/subcontracting_controller.py:98
msgid "Row {0}: Item {1} must be a stock item."
-msgstr ""
+msgstr "Zeile {0}: Artikel {1} muss ein Lagerartikel sein."
#: controllers/subcontracting_controller.py:103
msgid "Row {0}: Item {1} must be a subcontracted item."
@@ -60961,7 +60968,7 @@
#: stock/doctype/packing_slip/packing_slip.py:148
msgid "Row {0}: Packing Slip is already created for Item {1}."
-msgstr ""
+msgstr "Zeile {0}: Für den Artikel {1} wurde bereits ein Packzettel erstellt."
#: accounts/doctype/journal_entry/journal_entry.py:687
msgid "Row {0}: Party / Account does not match with {1} / {2} in {3} {4}"
@@ -60973,7 +60980,7 @@
#: accounts/doctype/payment_terms_template/payment_terms_template.py:47
msgid "Row {0}: Payment Term is mandatory"
-msgstr ""
+msgstr "Zeile {0}: Zahlungsbedingung ist obligatorisch"
#: accounts/doctype/journal_entry/journal_entry.py:554
msgid "Row {0}: Payment against Sales/Purchase Order should always be marked as advance"
@@ -60989,15 +60996,15 @@
#: controllers/subcontracting_controller.py:118
msgid "Row {0}: Please select a BOM for Item {1}."
-msgstr ""
+msgstr "Zeile {0}: Bitte wählen Sie eine Stückliste für Artikel {1}."
#: controllers/subcontracting_controller.py:111
msgid "Row {0}: Please select an active BOM for Item {1}."
-msgstr ""
+msgstr "Zeile {0}: Bitte wählen Sie eine aktive Stückliste für Artikel {1}."
#: controllers/subcontracting_controller.py:115
msgid "Row {0}: Please select an valid BOM for Item {1}."
-msgstr ""
+msgstr "Zeile {0}: Bitte wählen Sie eine gültige Stückliste für Artikel {1}."
#: regional/italy/utils.py:310
msgid "Row {0}: Please set at Tax Exemption Reason in Sales Taxes and Charges"
@@ -61017,19 +61024,19 @@
#: stock/doctype/landed_cost_voucher/landed_cost_voucher.py:93
msgid "Row {0}: Purchase Invoice {1} has no stock impact."
-msgstr ""
+msgstr "Zeile {0}: Eingangsrechnung {1} hat keine Auswirkungen auf den Bestand."
#: stock/doctype/packing_slip/packing_slip.py:154
msgid "Row {0}: Qty cannot be greater than {1} for the Item {2}."
-msgstr ""
+msgstr "Zeile {0}: Die Menge darf für den Artikel {2} nicht größer als {1} sein."
#: stock/doctype/stock_entry/stock_entry.py:407
msgid "Row {0}: Qty in Stock UOM can not be zero."
-msgstr ""
+msgstr "Zeile {0}: Menge in Lager-ME kann nicht Null sein."
#: stock/doctype/packing_slip/packing_slip.py:125
msgid "Row {0}: Qty must be greater than 0."
-msgstr ""
+msgstr "Zeile {0}: Menge muss größer als 0 sein."
#: stock/doctype/stock_entry/stock_entry.py:762
msgid "Row {0}: Quantity not available for {4} in warehouse {1} at posting time of the entry ({2} {3})"
@@ -61177,7 +61184,7 @@
#: stock/doctype/serial_and_batch_bundle/serial_and_batch_bundle.json
msgctxt "Serial and Batch Bundle"
msgid "SABB-.########"
-msgstr ""
+msgstr "SABB-.########"
#. Option for the 'Naming Series' (Select) field in DocType 'Campaign'
#: crm/doctype/campaign/campaign.json
@@ -61219,7 +61226,7 @@
#: support/doctype/service_level_agreement/service_level_agreement.json
msgctxt "Service Level Agreement"
msgid "SLA Fulfilled On"
-msgstr ""
+msgstr "SLA erfüllt am"
#. Name of a DocType
#: support/doctype/sla_fulfilled_on_status/sla_fulfilled_on_status.json
@@ -61230,7 +61237,7 @@
#: support/doctype/service_level_agreement/service_level_agreement.json
msgctxt "Service Level Agreement"
msgid "SLA Paused On"
-msgstr ""
+msgstr "SLA pausiert am"
#: public/js/utils.js:1015
msgid "SLA is on hold since {0}"
@@ -61242,7 +61249,7 @@
#: support/doctype/service_level_agreement/service_level_agreement.js:32
msgid "SLA will be applied on every {0}"
-msgstr ""
+msgstr "SLA wird alle {0} angewendet"
#. Name of a DocType
#: selling/doctype/sms_center/sms_center.json
@@ -62734,7 +62741,7 @@
#: public/js/utils/serial_no_batch_selector.js:151
msgid "Scan Batch No"
-msgstr ""
+msgstr "Chargennummer scannen"
#. Label of a Check field in DocType 'Pick List'
#: stock/doctype/pick_list/pick_list.json
@@ -62750,15 +62757,15 @@
#: public/js/utils/serial_no_batch_selector.js:136
msgid "Scan Serial No"
-msgstr ""
+msgstr "Seriennummer scannen"
#: public/js/utils/barcode_scanner.js:172
msgid "Scan barcode for item {0}"
-msgstr ""
+msgstr "Barcode für Artikel {0} scannen"
#: stock/doctype/stock_reconciliation/stock_reconciliation.js:94
msgid "Scan mode enabled, existing quantity will not be fetched."
-msgstr ""
+msgstr "Scanmodus aktiviert, vorhandene Menge wird nicht abgerufen."
#. Label of a Attach field in DocType 'Cheque Print Template'
#: accounts/doctype/cheque_print_template/cheque_print_template.json
@@ -62768,7 +62775,7 @@
#: public/js/utils/barcode_scanner.js:238
msgid "Scanned Quantity"
-msgstr ""
+msgstr "Gescannte Menge"
#. Label of a Section Break field in DocType 'Maintenance Schedule'
#: maintenance/doctype/maintenance_schedule/maintenance_schedule.json
@@ -62837,7 +62844,7 @@
#: manufacturing/doctype/job_card/job_card.json
msgctxt "Job Card"
msgid "Scheduled Time Logs"
-msgstr ""
+msgstr "Geplante Zeitprotokolle"
#: accounts/doctype/bank_statement_import/bank_statement_import.py:84
#: accounts/doctype/ledger_merge/ledger_merge.py:39
@@ -62856,7 +62863,7 @@
#: accounts/doctype/pos_invoice_merge_log/pos_invoice_merge_log.py:549
msgid "Scheduler is inactive. Cannot enqueue job."
-msgstr ""
+msgstr "Zeitplaner ist inaktiv. Aufgabe kann nicht eingereiht werden."
#: accounts/doctype/bank_statement_import/bank_statement_import.py:84
#: accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:232
@@ -62865,7 +62872,7 @@
#: accounts/doctype/ledger_merge/ledger_merge.py:39
msgid "Scheduler is inactive. Cannot merge accounts."
-msgstr ""
+msgstr "Zeitplaner ist inaktiv. Konten können nicht zusammengeführt werden."
#. Label of a Table field in DocType 'Maintenance Schedule'
#: maintenance/doctype/maintenance_schedule/maintenance_schedule.json
@@ -62877,7 +62884,7 @@
#: stock/doctype/stock_reposting_settings/stock_reposting_settings.json
msgctxt "Stock Reposting Settings"
msgid "Scheduling"
-msgstr ""
+msgstr "Zeitplan"
#. Label of a Small Text field in DocType 'Employee Education'
#: setup/doctype/employee_education/employee_education.json
@@ -63269,7 +63276,7 @@
#: public/js/bank_reconciliation_tool/dialog_manager.js:248
msgid "Select Vouchers to Match"
-msgstr ""
+msgstr "Passende Belege auswählen"
#: public/js/stock_analytics.js:46
msgid "Select Warehouse..."
@@ -63289,7 +63296,7 @@
#: buying/doctype/supplier/supplier.js:160
msgid "Select a Customer"
-msgstr ""
+msgstr "Wählen Sie einen Kunden"
#: support/doctype/service_level_agreement/service_level_agreement.py:111
msgid "Select a Default Priority."
@@ -63309,7 +63316,7 @@
#: stock/doctype/item/item.js:809
msgid "Select an Item Group."
-msgstr ""
+msgstr "Wählen Sie eine Artikelgruppe."
#: accounts/report/general_ledger/general_ledger.py:31
msgid "Select an account to print in account currency"
@@ -63358,16 +63365,16 @@
#: manufacturing/doctype/work_order/work_order.js:807
msgid "Select the Item to be manufactured."
-msgstr ""
+msgstr "Wählen Sie den Artikel, der hergestellt werden soll."
#: manufacturing/doctype/bom/bom.js:725
msgid "Select the Item to be manufactured. The Item name, UoM, Company, and Currency will be fetched automatically."
-msgstr ""
+msgstr "Wählen Sie den Artikel, der hergestellt werden soll. Der Name des Artikels, die ME, das Unternehmen und die Währung werden automatisch abgerufen."
#: manufacturing/doctype/production_plan/production_plan.js:294
#: manufacturing/doctype/production_plan/production_plan.js:305
msgid "Select the Warehouse"
-msgstr ""
+msgstr "Wählen Sie das Lager aus"
#: accounts/doctype/bank_guarantee/bank_guarantee.py:47
msgid "Select the customer or supplier."
@@ -63375,11 +63382,11 @@
#: www/book_appointment/index.html:16
msgid "Select the date and your timezone"
-msgstr ""
+msgstr "Wählen Sie das Datum und Ihre Zeitzone"
#: manufacturing/doctype/bom/bom.js:740
msgid "Select the raw materials (Items) required to manufacture the Item"
-msgstr ""
+msgstr "Wählen Sie die Rohstoffe (Artikel) aus, die zur Herstellung des Artikels benötigt werden"
#: manufacturing/doctype/bom/bom.js:338
msgid "Select variant item code for the template item {0}"
@@ -63546,13 +63553,13 @@
#: buying/doctype/request_for_quotation/request_for_quotation.json
msgctxt "Request for Quotation"
msgid "Send Attached Files"
-msgstr ""
+msgstr "Angehängte Dateien senden"
#. Label of a Check field in DocType 'Request for Quotation'
#: buying/doctype/request_for_quotation/request_for_quotation.json
msgctxt "Request for Quotation"
msgid "Send Document Print"
-msgstr ""
+msgstr "Ausdruck der Anfrage senden"
#. Label of a Check field in DocType 'Request for Quotation Supplier'
#: buying/doctype/request_for_quotation_supplier/request_for_quotation_supplier.json
@@ -63562,7 +63569,7 @@
#: accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.js:11
msgid "Send Emails"
-msgstr ""
+msgstr "E-Mails senden"
#: buying/doctype/request_for_quotation/request_for_quotation.js:46
msgid "Send Emails to Suppliers"
@@ -63661,19 +63668,19 @@
#: telephony/doctype/incoming_call_settings/incoming_call_settings.json
msgctxt "Incoming Call Settings"
msgid "Sequential"
-msgstr ""
+msgstr "Sequentiell"
#. Label of a Tab Break field in DocType 'Stock Settings'
#: stock/doctype/stock_settings/stock_settings.json
msgctxt "Stock Settings"
msgid "Serial & Batch Item"
-msgstr ""
+msgstr "Serien- und Chargenartikel"
#. Label of a Section Break field in DocType 'Stock Settings'
#: stock/doctype/stock_settings/stock_settings.json
msgctxt "Stock Settings"
msgid "Serial & Batch Item Settings"
-msgstr ""
+msgstr "Einstellungen für Serien- und Chargenartikel"
#. Label of a Link field in DocType 'Stock Reconciliation Item'
#: stock/doctype/stock_reconciliation_item/stock_reconciliation_item.json
@@ -63695,7 +63702,7 @@
#: stock/doctype/serial_and_batch_bundle/serial_and_batch_bundle.json
msgctxt "Serial and Batch Bundle"
msgid "Serial / Batch No"
-msgstr ""
+msgstr "Serien-/Chargennr"
#: public/js/utils.js:124
msgid "Serial / Batch Nos"
@@ -63918,7 +63925,7 @@
#: stock/doctype/serial_and_batch_bundle/serial_and_batch_bundle.py:577
msgid "Serial No is mandatory"
-msgstr ""
+msgstr "Seriennummer ist obligatorisch"
#: selling/doctype/installation_note/installation_note.py:76
msgid "Serial No is mandatory for Item {0}"
@@ -63926,11 +63933,11 @@
#: public/js/utils/serial_no_batch_selector.js:480
msgid "Serial No {0} already exists"
-msgstr ""
+msgstr "Die Seriennummer {0} existiert bereits"
#: public/js/utils/barcode_scanner.js:311
msgid "Serial No {0} already scanned"
-msgstr ""
+msgstr "Seriennummer {0} bereits gescannt"
#: selling/doctype/installation_note/installation_note.py:93
msgid "Serial No {0} does not belong to Delivery Note {1}"
@@ -63951,12 +63958,12 @@
#: public/js/utils/barcode_scanner.js:402
msgid "Serial No {0} has already scanned."
-msgstr ""
+msgstr "Seriennummer {0} wurde bereits gescannt."
#: public/js/utils/barcode_scanner.js:499
#: public/js/utils/barcode_scanner.js:506
msgid "Serial No {0} is already added"
-msgstr ""
+msgstr "Die Seriennummer {0} ist bereits hinzugefügt"
#: maintenance/doctype/maintenance_schedule/maintenance_schedule.py:341
msgid "Serial No {0} is under maintenance contract upto {1}"
@@ -63979,16 +63986,16 @@
#: public/js/utils/serial_no_batch_selector.js:178
#: stock/doctype/serial_and_batch_bundle/serial_and_batch_bundle.js:48
msgid "Serial Nos"
-msgstr ""
+msgstr "Seriennummern"
#: public/js/utils/serial_no_batch_selector.js:20
#: public/js/utils/serial_no_batch_selector.js:183
msgid "Serial Nos / Batch Nos"
-msgstr ""
+msgstr "Serien-/Chargennummern"
#: accounts/doctype/sales_invoice/sales_invoice.py:1692
msgid "Serial Nos Mismatch"
-msgstr ""
+msgstr "Seriennummern stimmen nicht überein"
#. Label of a Section Break field in DocType 'Item'
#: stock/doctype/item/item.json
@@ -63998,11 +64005,11 @@
#: stock/doctype/serial_and_batch_bundle/serial_and_batch_bundle.py:1074
msgid "Serial Nos are created successfully"
-msgstr ""
+msgstr "Seriennummern wurden erfolgreich erstellt"
#: stock/stock_ledger.py:1972
msgid "Serial Nos are reserved in Stock Reservation Entries, you need to unreserve them before proceeding."
-msgstr ""
+msgstr "Seriennummern sind bereits reserviert. Sie müssen die Reservierung aufheben, bevor Sie fortfahren."
#. Label of a Data field in DocType 'Item'
#: stock/doctype/item/item.json
@@ -64014,14 +64021,14 @@
#: stock/doctype/serial_and_batch_bundle/serial_and_batch_bundle.json
msgctxt "Serial and Batch Bundle"
msgid "Serial and Batch"
-msgstr ""
+msgstr "Seriennummer und Charge"
#. Option for the 'Reservation Based On' (Select) field in DocType 'Stock
#. Reservation Entry'
#: stock/doctype/stock_reservation_entry/stock_reservation_entry.json
msgctxt "Stock Reservation Entry"
msgid "Serial and Batch"
-msgstr ""
+msgstr "Seriennummer und Charge"
#. Name of a DocType
#: stock/doctype/serial_and_batch_bundle/serial_and_batch_bundle.json
@@ -64667,13 +64674,13 @@
#: accounts/doctype/currency_exchange_settings/currency_exchange_settings.json
msgctxt "Currency Exchange Settings"
msgid "Service Provider"
-msgstr ""
+msgstr "Anbieter"
#. Label of a Data field in DocType 'Shipment'
#: stock/doctype/shipment/shipment.json
msgctxt "Shipment"
msgid "Service Provider"
-msgstr ""
+msgstr "Anbieter"
#. Option for the 'Account Type' (Select) field in DocType 'Account'
#: accounts/doctype/account/account.json
@@ -64762,7 +64769,7 @@
#: buying/report/supplier_quotation_comparison/supplier_quotation_comparison.js:150
msgid "Set Default Supplier"
-msgstr ""
+msgstr "Standard-Lieferant festlegen"
#. Label of a Button field in DocType 'Payment Entry'
#: accounts/doctype/payment_entry/payment_entry.json
@@ -64835,7 +64842,7 @@
#: projects/doctype/project/project.js:118
#: projects/doctype/project/project.js:132
msgid "Set Project Status"
-msgstr ""
+msgstr "Projektstatus festlegen"
#: projects/doctype/project/project.js:154
msgid "Set Project and all Tasks to status {0}?"
@@ -64923,7 +64930,7 @@
#: selling/doctype/sales_order/sales_order.js:184
msgid "Set Warehouse"
-msgstr ""
+msgstr "Lager festlegen"
#: crm/doctype/opportunity/opportunity_list.js:17
#: support/doctype/issue/issue_list.js:12
@@ -65258,13 +65265,13 @@
#: stock/doctype/delivery_note/delivery_note.js:166
#: stock/doctype/shipment/shipment.json
msgid "Shipment"
-msgstr ""
+msgstr "Sendung"
#. Linked DocType in Incoterm's connections
#: setup/doctype/incoterm/incoterm.json
msgctxt "Incoterm"
msgid "Shipment"
-msgstr ""
+msgstr "Sendung"
#. Label of a Currency field in DocType 'Shipment'
#: stock/doctype/shipment/shipment.json
@@ -65275,53 +65282,53 @@
#. Name of a DocType
#: stock/doctype/shipment_delivery_note/shipment_delivery_note.json
msgid "Shipment Delivery Note"
-msgstr ""
+msgstr "Lieferschein für die Sendung"
#. Label of a Table field in DocType 'Shipment'
#: stock/doctype/shipment/shipment.json
msgctxt "Shipment"
msgid "Shipment Delivery Note"
-msgstr ""
+msgstr "Lieferschein für die Sendung"
#. Label of a Data field in DocType 'Shipment'
#: stock/doctype/shipment/shipment.json
msgctxt "Shipment"
msgid "Shipment ID"
-msgstr ""
+msgstr "Sendungs-ID"
#. Label of a Section Break field in DocType 'Shipment'
#: stock/doctype/shipment/shipment.json
msgctxt "Shipment"
msgid "Shipment Information"
-msgstr ""
+msgstr "Sendungsinformationen"
#. Name of a DocType
#: stock/doctype/shipment_parcel/shipment_parcel.json
msgid "Shipment Parcel"
-msgstr ""
+msgstr "Versandpaket"
#. Label of a Table field in DocType 'Shipment'
#: stock/doctype/shipment/shipment.json
msgctxt "Shipment"
msgid "Shipment Parcel"
-msgstr ""
+msgstr "Versandpaket"
#. Name of a DocType
#: stock/doctype/shipment_parcel_template/shipment_parcel_template.json
msgid "Shipment Parcel Template"
-msgstr ""
+msgstr "Versandpaketvorlage"
#. Label of a Select field in DocType 'Shipment'
#: stock/doctype/shipment/shipment.json
msgctxt "Shipment"
msgid "Shipment Type"
-msgstr ""
+msgstr "Sendungstyp"
#. Label of a Section Break field in DocType 'Shipment'
#: stock/doctype/shipment/shipment.json
msgctxt "Shipment"
msgid "Shipment details"
-msgstr ""
+msgstr "Sendungsdetails"
#: stock/doctype/delivery_note/delivery_note.py:846
msgid "Shipments"
@@ -65417,19 +65424,19 @@
#: buying/doctype/purchase_order/purchase_order.json
msgctxt "Purchase Order"
msgid "Shipping Address Details"
-msgstr ""
+msgstr "Lieferadressendetails"
#. Label of a Small Text field in DocType 'Subcontracting Order'
#: subcontracting/doctype/subcontracting_order/subcontracting_order.json
msgctxt "Subcontracting Order"
msgid "Shipping Address Details"
-msgstr ""
+msgstr "Lieferadressendetails"
#. Label of a Small Text field in DocType 'Supplier Quotation'
#: buying/doctype/supplier_quotation/supplier_quotation.json
msgctxt "Supplier Quotation"
msgid "Shipping Address Details"
-msgstr ""
+msgstr "Lieferadressendetails"
#. Label of a Link field in DocType 'POS Invoice'
#: accounts/doctype/pos_invoice/pos_invoice.json
@@ -65453,7 +65460,7 @@
#: stock/doctype/purchase_receipt/purchase_receipt.json
msgctxt "Purchase Receipt"
msgid "Shipping Address Template"
-msgstr ""
+msgstr "Vorlage Lieferadresse"
#: accounts/doctype/shipping_rule/shipping_rule.py:130
msgid "Shipping Address does not have country, which is required for this Shipping Rule"
@@ -65838,7 +65845,7 @@
#: stock/utils.py:588
msgid "Show pending entries"
-msgstr ""
+msgstr "Ausstehende Einträge anzeigen"
#: accounts/report/trial_balance/trial_balance.js:93
msgid "Show unclosed fiscal year's P&L balances"
@@ -66282,7 +66289,7 @@
#: accounts/doctype/dunning/dunning.json
msgctxt "Dunning"
msgid "Spacer"
-msgstr ""
+msgstr "Abstandshalter"
#: assets/doctype/asset/asset.js:467 stock/doctype/batch/batch.js:143
#: support/doctype/issue/issue.js:100
@@ -66295,7 +66302,7 @@
#: stock/doctype/batch/batch.js:142
msgid "Split Batch"
-msgstr ""
+msgstr "Charge aufteilen"
#. Description of the 'Book Tax Loss on Early Payment Discount' (Check) field
#. in DocType 'Accounts Settings'
@@ -68160,19 +68167,19 @@
#: manufacturing/doctype/production_plan_sub_assembly_item/production_plan_sub_assembly_item.json
msgctxt "Production Plan Sub Assembly Item"
msgid "Sub Assembly Item Code"
-msgstr ""
+msgstr "Artikelcode der Unterbaugruppe"
#. Label of a Section Break field in DocType 'Production Plan'
#: manufacturing/doctype/production_plan/production_plan.json
msgctxt "Production Plan"
msgid "Sub Assembly Items"
-msgstr ""
+msgstr "Artikel der Unterbaugruppe"
#. Label of a Link field in DocType 'Production Plan'
#: manufacturing/doctype/production_plan/production_plan.json
msgctxt "Production Plan"
msgid "Sub Assembly Warehouse"
-msgstr ""
+msgstr "Unterbaugruppe Lager"
#. Name of a DocType
#: manufacturing/doctype/sub_operation/sub_operation.json
@@ -68222,14 +68229,14 @@
#: stock/doctype/purchase_receipt_item/purchase_receipt_item.json
msgctxt "Purchase Receipt Item"
msgid "Subcontract BOM"
-msgstr ""
+msgstr "Stückliste für Unterauftragnehmer"
#: buying/report/subcontract_order_summary/subcontract_order_summary.js:37
#: buying/report/subcontract_order_summary/subcontract_order_summary.py:128
#: buying/report/subcontracted_item_to_be_received/subcontracted_item_to_be_received.py:22
#: buying/report/subcontracted_raw_materials_to_be_transferred/subcontracted_raw_materials_to_be_transferred.py:22
msgid "Subcontract Order"
-msgstr ""
+msgstr "Unterauftrag"
#. Name of a report
#: buying/report/subcontract_order_summary/subcontract_order_summary.json
@@ -68302,7 +68309,7 @@
#: buying/doctype/buying_settings/buying_settings.json
msgctxt "Buying Settings"
msgid "Subcontracting Order (Draft) will be auto-created on submission of Purchase Order."
-msgstr ""
+msgstr "Unterauftrag (Entwurf) wird automatisch bei der Buchung der Lieferantenbestellung erstellt."
#. Name of a DocType
#: subcontracting/doctype/subcontracting_order_item/subcontracting_order_item.json
@@ -68339,20 +68346,20 @@
#: subcontracting/doctype/subcontracting_order/subcontracting_order.js:188
#: subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.json
msgid "Subcontracting Receipt"
-msgstr ""
+msgstr "Unterauftragsbeleg"
#. Label of a Link field in DocType 'Purchase Receipt'
#: stock/doctype/purchase_receipt/purchase_receipt.json
msgctxt "Purchase Receipt"
msgid "Subcontracting Receipt"
-msgstr ""
+msgstr "Unterauftragsbeleg"
#. Option for the 'Reference Type' (Select) field in DocType 'Quality
#. Inspection'
#: stock/doctype/quality_inspection/quality_inspection.json
msgctxt "Quality Inspection"
msgid "Subcontracting Receipt"
-msgstr ""
+msgstr "Unterauftragsbeleg"
#. Name of a DocType
#: subcontracting/doctype/subcontracting_receipt_item/subcontracting_receipt_item.json
@@ -69580,7 +69587,7 @@
#: buying/doctype/supplier/supplier.json
msgctxt "Supplier"
msgid "Supplier Portal Users"
-msgstr ""
+msgstr "Benutzer des Lieferantenportals"
#. Label of a Link field in DocType 'Supplier'
#: buying/doctype/supplier/supplier.json
@@ -69820,7 +69827,7 @@
#: setup/setup_wizard/operations/install_fixtures.py:251
#: support/workspace/support/support.json
msgid "Support"
-msgstr ""
+msgstr "Hilfe"
#. Name of a report
#: support/report/support_hour_distribution/support_hour_distribution.json
@@ -69882,7 +69889,7 @@
#: erpnext_integrations/doctype/plaid_settings/plaid_settings.js:31
msgid "Sync Started"
-msgstr ""
+msgstr "Synchronisierung gestartet"
#. Label of a Check field in DocType 'Plaid Settings'
#: erpnext_integrations/doctype/plaid_settings/plaid_settings.json
@@ -71906,12 +71913,12 @@
#. Success message of the Module Onboarding 'Buying'
#: buying/module_onboarding/buying/buying.json
msgid "The Buying Module is all set up!"
-msgstr ""
+msgstr "Das Einkaufsmodul ist fertig eingerichtet!"
#. Success message of the Module Onboarding 'CRM'
#: crm/module_onboarding/crm/crm.json
msgid "The CRM Module is all set up!"
-msgstr ""
+msgstr "Das CRM-Modul ist fertig eingerichtet!"
#: crm/doctype/email_campaign/email_campaign.py:71
msgid "The Campaign '{0}' already exists for the {1} '{2}'"
@@ -71927,11 +71934,11 @@
#: accounts/doctype/period_closing_voucher/period_closing_voucher.py:70
msgid "The GL Entries will be cancelled in the background, it can take a few minutes."
-msgstr ""
+msgstr "Die Hauptbucheinträge werden im Hintergrund storniert, dies kann einige Minuten dauern."
#: accounts/doctype/period_closing_voucher/period_closing_voucher.py:176
msgid "The GL Entries will be processed in the background, it can take a few minutes."
-msgstr ""
+msgstr "Die Hauptbucheinträge werden im Hintergrund verarbeitet, dies kann einige Minuten dauern."
#: accounts/doctype/loyalty_program/loyalty_program.py:163
msgid "The Loyalty Program isn't valid for the selected company"
@@ -71956,7 +71963,7 @@
#. Success message of the Module Onboarding 'Selling'
#: selling/module_onboarding/selling/selling.json
msgid "The Selling Module is all set up!"
-msgstr ""
+msgstr "Das Vertriebsmodul ist fertig eingerichtet!"
#: manufacturing/doctype/manufacturing_settings/manufacturing_settings.js:16
msgid "The Stock Entry of type 'Manufacture' is known as backflush. Raw materials being consumed to manufacture finished goods is known as backflushing. <br><br> When creating Manufacture Entry, raw-material items are backflushed based on BOM of production item. If you want raw-material items to be backflushed based on Material Transfer entry made against that Work Order instead, then you can set it under this field."
@@ -71965,7 +71972,7 @@
#. Success message of the Module Onboarding 'Stock'
#: stock/module_onboarding/stock/stock.json
msgid "The Stock Module is all set up!"
-msgstr ""
+msgstr "Das Lagermodul ist fertig eingerichtet!"
#. Description of the 'Closing Account Head' (Link) field in DocType 'Period
#. Closing Voucher'
@@ -71987,11 +71994,11 @@
#: accounts/doctype/dunning/dunning.py:86
msgid "The currency of invoice {} ({}) is different from the currency of this dunning ({})."
-msgstr ""
+msgstr "Die Währung der Rechnung {} ({}) unterscheidet sich von der Währung dieser Mahnung ({})."
#: manufacturing/doctype/work_order/work_order.js:812
msgid "The default BOM for that item will be fetched by the system. You can also change the BOM."
-msgstr ""
+msgstr "Die Standardstückliste für diesen Artikel wird vom System abgerufen. Sie können die Stückliste auch ändern."
#: crm/doctype/appointment_booking_settings/appointment_booking_settings.py:69
msgid "The difference between from time and To Time must be a multiple of Appointment"
@@ -72024,7 +72031,7 @@
#: stock/doctype/putaway_rule/putaway_rule.py:292
msgid "The following Items, having Putaway Rules, could not be accomodated:"
-msgstr ""
+msgstr "Die folgenden Artikel, für die Einlagerungsregeln gelten, konnten nicht untergebracht werden:"
#: assets/doctype/asset/depreciation.py:414
msgid "The following assets have failed to automatically post depreciation entries: {0}"
@@ -75294,7 +75301,7 @@
#: assets/doctype/asset_movement/asset_movement.py:76
msgid "Transferring cannot be done to an Employee. Please enter location where Asset {0} has to be transferred"
-msgstr ""
+msgstr "Die Übertragung kann nicht an einen Mitarbeiter erfolgen. Bitte geben Sie den Ort ein, an den der Vermögensgegenstand {0} übertragen werden soll."
#. Label of a Section Break field in DocType 'Warehouse'
#: stock/doctype/warehouse/warehouse.json
@@ -76420,7 +76427,7 @@
#: accounts/doctype/bisect_accounting_statements/bisect_accounting_statements.js:17
msgid "Up"
-msgstr ""
+msgstr "Hoch"
#. Label of a Check field in DocType 'Email Digest'
#: setup/doctype/email_digest/email_digest.json
diff --git a/erpnext/locale/es.po b/erpnext/locale/es.po
index 17a7762..a99d9f5 100644
--- a/erpnext/locale/es.po
+++ b/erpnext/locale/es.po
@@ -3,7 +3,7 @@
"Project-Id-Version: frappe\n"
"Report-Msgid-Bugs-To: info@erpnext.com\n"
"POT-Creation-Date: 2024-01-29 18:13+0053\n"
-"PO-Revision-Date: 2024-02-02 12:58\n"
+"PO-Revision-Date: 2024-03-05 14:17\n"
"Last-Translator: info@erpnext.com\n"
"Language-Team: Spanish\n"
"MIME-Version: 1.0\n"
@@ -30,35 +30,35 @@
#: selling/doctype/quotation/quotation.js:76
msgid " Address"
-msgstr ""
+msgstr " Dirección"
#: accounts/report/item_wise_sales_register/item_wise_sales_register.py:612
msgid " Amount"
-msgstr ""
+msgstr " Importe"
#. Label of a Check field in DocType 'Inventory Dimension'
#: stock/doctype/inventory_dimension/inventory_dimension.json
msgctxt "Inventory Dimension"
msgid " Is Child Table"
-msgstr ""
+msgstr " Es una tabla secundaria"
#: accounts/report/tax_withholding_details/tax_withholding_details.py:186
#: accounts/report/tds_computation_summary/tds_computation_summary.py:107
#: selling/report/sales_analytics/sales_analytics.py:66
msgid " Name"
-msgstr ""
+msgstr " Nombre"
#: public/js/bom_configurator/bom_configurator.bundle.js:108
msgid " Qty"
-msgstr ""
+msgstr " Cant"
#: accounts/report/item_wise_sales_register/item_wise_sales_register.py:603
msgid " Rate"
-msgstr ""
+msgstr " Precio"
#: public/js/bom_configurator/bom_configurator.bundle.js:116
msgid " Raw Material"
-msgstr ""
+msgstr " Materia Prima"
#: public/js/bom_configurator/bom_configurator.bundle.js:127
#: public/js/bom_configurator/bom_configurator.bundle.js:157
@@ -67,7 +67,7 @@
#: projects/doctype/project_update/project_update.py:110
msgid " Summary"
-msgstr ""
+msgstr " Resumen"
#: stock/doctype/item/item.py:235
msgid "\"Customer Provided Item\" cannot be Purchase Item also"
@@ -154,7 +154,12 @@
"- Lead\n"
"- Opportunity\n"
"- Quotation"
-msgstr ""
+msgstr "# Configuración de CRM\n\n"
+"Las funciones del módulo CRM se pueden configurar según las necesidades de su negocio. Configuración de CRM es el lugar donde puede establecer sus preferencias para:\n"
+"- Campaña\n"
+"- Cliente potencial\n"
+"- Oportunidad\n"
+"- Cotización"
#. Description of the Onboarding Step 'Review Chart of Accounts'
#: accounts/onboarding_step/chart_of_accounts/chart_of_accounts.json
@@ -210,7 +215,12 @@
" - Customer’s multiple address and contacts\n"
" - Account Receivables\n"
" - Credit Limit and Credit Period\n"
-msgstr ""
+msgstr "# Crear un cliente\n\n"
+"El Maestro de Clientes es el corazón de sus transacciones de venta. Los Clientes están vinculados en Cotizaciones, Pedidos de Venta, Facturas y Pagos. Los Clientes pueden estar numerados o identificados por su nombre (normalmente lo hará en función del número de clientes que tenga).\n\n"
+"A través del Maestro de Clientes, usted puede rastrear efectivamente elementos esenciales como:\n"
+" - Dirección y contactos múltiples del cliente\n"
+" - Cuentas por cobrar\n"
+" - Límite de crédito y Período de crédito\n"
#. Description of the Onboarding Step 'Setup Your Letterhead'
#: setup/onboarding_step/letterhead/letterhead.json
@@ -268,7 +278,8 @@
#: buying/onboarding_step/create_your_first_purchase_order/create_your_first_purchase_order.json
msgid "# Create first Purchase Order\n\n"
"Purchase Order is at the heart of your buying transactions. In ERPNext, Purchase Order can can be created against a Purchase Material Request (indent) and Supplier Quotation as well. Purchase Orders is also linked to Purchase Receipt and Purchase Invoices, allowing you to keep a birds-eye view on your purchase deals.\n\n"
-msgstr ""
+msgstr "# Crear la primera Orden de Compra\n\n"
+"La Orden de Compra es el corazon de sus transacciones de compra. En ERPNext, la Orden de Compra se puede crear contra una Solicitud de Material de Compra (sangría) y también una Cotización del Proveedor. Las Órdenes de Compra también están vinculadas al Recibo de Compra y a las Facturas de Compra, lo que le permite tener una vista panorámica de sus ofertas de compra.\n\n"
#. Description of the Onboarding Step 'Create Your First Purchase Invoice '
#: accounts/onboarding_step/create_your_first_purchase_invoice/create_your_first_purchase_invoice.json
@@ -454,37 +465,37 @@
#: selling/doctype/sales_order/sales_order.json
msgctxt "Sales Order"
msgid "% Delivered"
-msgstr ""
+msgstr "% Entregado"
#. Label of a Percent field in DocType 'Delivery Note'
#: stock/doctype/delivery_note/delivery_note.json
msgctxt "Delivery Note"
msgid "% Amount Billed"
-msgstr ""
+msgstr "% Importe Facturado"
#. Label of a Percent field in DocType 'Purchase Receipt'
#: stock/doctype/purchase_receipt/purchase_receipt.json
msgctxt "Purchase Receipt"
msgid "% Amount Billed"
-msgstr ""
+msgstr "% Importe Facturado"
#. Label of a Percent field in DocType 'Sales Order'
#: selling/doctype/sales_order/sales_order.json
msgctxt "Sales Order"
msgid "% Amount Billed"
-msgstr ""
+msgstr "% Importe Facturado"
#. Label of a Percent field in DocType 'Timesheet'
#: projects/doctype/timesheet/timesheet.json
msgctxt "Timesheet"
msgid "% Amount Billed"
-msgstr ""
+msgstr "% Importe Facturado"
#. Label of a Percent field in DocType 'Purchase Order'
#: buying/doctype/purchase_order/purchase_order.json
msgctxt "Purchase Order"
msgid "% Billed"
-msgstr ""
+msgstr "% Facturado"
#. Label of a Select field in DocType 'Project'
#: projects/doctype/project/project.json
@@ -496,7 +507,7 @@
#: projects/doctype/project/project.json
msgctxt "Project"
msgid "% Completed"
-msgstr ""
+msgstr "% Completado"
#: manufacturing/doctype/bom/bom.js:755
#, python-format
@@ -932,7 +943,7 @@
#: manufacturing/report/work_order_summary/work_order_summary.py:110
msgid "60-90 Days"
-msgstr ""
+msgstr "60-90 días"
#: accounts/report/payment_period_based_on_invoice_date/payment_period_based_on_invoice_date.py:121
#: manufacturing/report/work_order_summary/work_order_summary.py:110
@@ -1063,7 +1074,7 @@
#: accounts/doctype/bank_statement_import/bank_statement_import.json
msgctxt "Bank Statement Import"
msgid "<h5 class=\"text-muted uppercase\">Or</h5>"
-msgstr ""
+msgstr "<h5 class=\"text-muted uppercase\">O</h5>"
#. Content of the 'account_no_settings' (HTML) field in DocType 'Cheque Print
#. Template'
@@ -1252,7 +1263,7 @@
#: accounts/doctype/cheque_print_template/cheque_print_template.json
msgctxt "Cheque Print Template"
msgid "A4"
-msgstr ""
+msgstr "A4"
#. Option for the 'Blood Group' (Select) field in DocType 'Employee'
#: setup/doctype/employee/employee.json
@@ -2071,7 +2082,7 @@
#: assets/doctype/asset/asset.py:677
msgid "Account not Found"
-msgstr ""
+msgstr "Cuenta no encontrada"
#: accounts/doctype/account/account.py:360
msgid "Account with child nodes cannot be converted to ledger"
@@ -2096,7 +2107,7 @@
#: accounts/doctype/tax_withholding_category/tax_withholding_category.py:54
msgid "Account {0} added multiple times"
-msgstr ""
+msgstr "Cuenta {0} agregada varias veces"
#: setup/doctype/company/company.py:187
msgid "Account {0} does not belong to company: {1}"
@@ -2168,7 +2179,7 @@
#: accounts/report/general_ledger/general_ledger.py:325
msgid "Account: {0} does not exist"
-msgstr ""
+msgstr "Cuenta {0} no existe"
#: accounts/doctype/payment_entry/payment_entry.py:2098
msgid "Account: {0} is not permitted under Payment Entry"
@@ -3123,12 +3134,12 @@
#: accounts/doctype/ledger_merge/ledger_merge.json
msgctxt "Ledger Merge"
msgid "Accounts to Merge"
-msgstr ""
+msgstr "Cuentas a fusionar"
#. Subtitle of the Module Onboarding 'Accounts'
#: accounts/module_onboarding/accounts/accounts.json
msgid "Accounts, Invoices, Taxation, and more."
-msgstr ""
+msgstr "Cuentas, Facturas, Impuestos y más."
#: accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts.py:33
#: accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts_with_account_number.py:46
@@ -3763,7 +3774,7 @@
#: accounts/doctype/repost_payment_ledger/repost_payment_ledger.json
msgctxt "Repost Payment Ledger"
msgid "Add Manually"
-msgstr ""
+msgstr "Añadir manualmente"
#: projects/doctype/task/task_tree.js:42
msgid "Add Multiple"
@@ -3777,7 +3788,7 @@
#: accounts/doctype/advance_taxes_and_charges/advance_taxes_and_charges.json
msgctxt "Advance Taxes and Charges"
msgid "Add Or Deduct"
-msgstr ""
+msgstr "Añadir o deducir"
#: selling/page/point_of_sale/pos_item_cart.js:269
msgid "Add Order Discount"
@@ -3802,31 +3813,31 @@
#: accounts/doctype/purchase_invoice_item/purchase_invoice_item.json
msgctxt "Purchase Invoice Item"
msgid "Add Serial / Batch No"
-msgstr ""
+msgstr "Añadir Nro Serie/Lote"
#. Label of a Button field in DocType 'Purchase Receipt Item'
#: stock/doctype/purchase_receipt_item/purchase_receipt_item.json
msgctxt "Purchase Receipt Item"
msgid "Add Serial / Batch No"
-msgstr ""
+msgstr "Añadir Nro Serie/Lote"
#. Label of a Button field in DocType 'Stock Entry Detail'
#: stock/doctype/stock_entry_detail/stock_entry_detail.json
msgctxt "Stock Entry Detail"
msgid "Add Serial / Batch No"
-msgstr ""
+msgstr "Añadir Nro Serie/Lote"
#. Label of a Button field in DocType 'Stock Reconciliation Item'
#: stock/doctype/stock_reconciliation_item/stock_reconciliation_item.json
msgctxt "Stock Reconciliation Item"
msgid "Add Serial / Batch No"
-msgstr ""
+msgstr "Añadir Nro Serie/Lote"
#. Label of a Button field in DocType 'Purchase Receipt Item'
#: stock/doctype/purchase_receipt_item/purchase_receipt_item.json
msgctxt "Purchase Receipt Item"
msgid "Add Serial / Batch No (Rejected Qty)"
-msgstr ""
+msgstr "Añadir Nro Serie/Lote (Cant Rechazada)"
#: public/js/utils.js:61
msgid "Add Serial No"
@@ -3860,7 +3871,7 @@
#: public/js/utils/crm_activities.js:140
msgid "Add a Note"
-msgstr ""
+msgstr "Añadir Nota"
#. Title of an Onboarding Step
#: assets/onboarding_step/existing_asset/existing_asset.json
@@ -3874,7 +3885,7 @@
#: www/book_appointment/index.html:42
msgid "Add details"
-msgstr ""
+msgstr "Añadir detalles"
#: stock/doctype/pick_list/pick_list.js:71
#: stock/doctype/pick_list/pick_list.py:614
@@ -3921,13 +3932,13 @@
#: crm/doctype/crm_note/crm_note.json
msgctxt "CRM Note"
msgid "Added By"
-msgstr ""
+msgstr "Añadido por"
#. Label of a Datetime field in DocType 'CRM Note'
#: crm/doctype/crm_note/crm_note.json
msgctxt "CRM Note"
msgid "Added On"
-msgstr ""
+msgstr "Añadido el"
#: buying/doctype/supplier/supplier.py:130
msgid "Added Supplier Role to User {0}."
@@ -4228,49 +4239,49 @@
#: stock/doctype/delivery_note/delivery_note.json
msgctxt "Delivery Note"
msgid "Additional Info"
-msgstr ""
+msgstr "Información Adicional"
#. Label of a Section Break field in DocType 'Purchase Invoice'
#: accounts/doctype/purchase_invoice/purchase_invoice.json
msgctxt "Purchase Invoice"
msgid "Additional Info"
-msgstr ""
+msgstr "Información Adicional"
#. Label of a Section Break field in DocType 'Purchase Order'
#: buying/doctype/purchase_order/purchase_order.json
msgctxt "Purchase Order"
msgid "Additional Info"
-msgstr ""
+msgstr "Información Adicional"
#. Label of a Section Break field in DocType 'Purchase Receipt'
#: stock/doctype/purchase_receipt/purchase_receipt.json
msgctxt "Purchase Receipt"
msgid "Additional Info"
-msgstr ""
+msgstr "Información Adicional"
#. Label of a Section Break field in DocType 'Quotation'
#: selling/doctype/quotation/quotation.json
msgctxt "Quotation"
msgid "Additional Info"
-msgstr ""
+msgstr "Información Adicional"
#. Label of a Section Break field in DocType 'Sales Invoice'
#: accounts/doctype/sales_invoice/sales_invoice.json
msgctxt "Sales Invoice"
msgid "Additional Info"
-msgstr ""
+msgstr "Información Adicional"
#. Label of a Section Break field in DocType 'Sales Order'
#: selling/doctype/sales_order/sales_order.json
msgctxt "Sales Order"
msgid "Additional Info"
-msgstr ""
+msgstr "Información Adicional"
#. Label of a Section Break field in DocType 'Supplier Quotation'
#: buying/doctype/supplier_quotation/supplier_quotation.json
msgctxt "Supplier Quotation"
msgid "Additional Info"
-msgstr ""
+msgstr "Información Adicional"
#. Label of a Section Break field in DocType 'Lead'
#: crm/doctype/lead/lead.json
@@ -4522,7 +4533,7 @@
#: accounts/workspace/financial_reports/financial_reports.json
#: selling/report/address_and_contacts/address_and_contacts.json
msgid "Address And Contacts"
-msgstr ""
+msgstr "Dirección y Contactos"
#. Label of a HTML field in DocType 'Sales Partner'
#: setup/doctype/sales_partner/sales_partner.json
@@ -5087,7 +5098,7 @@
#: stock/report/stock_ageing/stock_ageing.py:205
msgid "Age ({0})"
-msgstr ""
+msgstr "Edad ({0})"
#: accounts/report/accounts_payable/accounts_payable.js:58
#: accounts/report/accounts_payable_summary/accounts_payable_summary.js:21
@@ -5142,13 +5153,13 @@
#: quality_management/doctype/quality_meeting/quality_meeting.json
msgctxt "Quality Meeting"
msgid "Agenda"
-msgstr ""
+msgstr "Agenda"
#. Label of a Text Editor field in DocType 'Quality Meeting Agenda'
#: quality_management/doctype/quality_meeting_agenda/quality_meeting_agenda.json
msgctxt "Quality Meeting Agenda"
msgid "Agenda"
-msgstr ""
+msgstr "Agenda"
#. Label of a Data field in DocType 'Incoming Call Settings'
#: telephony/doctype/incoming_call_settings/incoming_call_settings.json
@@ -5206,7 +5217,7 @@
#: accounts/doctype/bisect_accounting_statements/bisect_accounting_statements.json
msgctxt "Bisect Accounting Statements"
msgid "Algorithm"
-msgstr ""
+msgstr "Algoritmo"
#. Name of a role
#: accounts/doctype/pos_invoice/pos_invoice.json
@@ -5234,19 +5245,19 @@
#: crm/doctype/lead/lead.json
msgctxt "Lead"
msgid "All Activities"
-msgstr ""
+msgstr "Todas las Actividades"
#. Label of a Section Break field in DocType 'Opportunity'
#: crm/doctype/opportunity/opportunity.json
msgctxt "Opportunity"
msgid "All Activities"
-msgstr ""
+msgstr "Todas las Actividades"
#. Label of a Section Break field in DocType 'Prospect'
#: crm/doctype/prospect/prospect.json
msgctxt "Prospect"
msgid "All Activities"
-msgstr ""
+msgstr "Todas las Actividades"
#. Label of a HTML field in DocType 'Lead'
#: crm/doctype/lead/lead.json
@@ -5737,7 +5748,7 @@
#: stock/doctype/item/item.json
msgctxt "Item"
msgid "Allow Purchase"
-msgstr ""
+msgstr "Permitir Compra"
#. Label of a Check field in DocType 'Supplier'
#: buying/doctype/supplier/supplier.json
@@ -5771,7 +5782,7 @@
#: stock/doctype/item/item.json
msgctxt "Item"
msgid "Allow Sales"
-msgstr ""
+msgstr "Permitir Ventas"
#. Label of a Check field in DocType 'Customer'
#: selling/doctype/customer/customer.json
@@ -5916,13 +5927,13 @@
#: selling/doctype/customer/customer.json
msgctxt "Customer"
msgid "Allowed Items"
-msgstr ""
+msgstr "Productos Permitidos"
#. Group in Supplier's connections
#: buying/doctype/supplier/supplier.json
msgctxt "Supplier"
msgid "Allowed Items"
-msgstr ""
+msgstr "Productos Permitidos"
#. Name of a DocType
#: accounts/doctype/allowed_to_transact_with/allowed_to_transact_with.json
@@ -7753,31 +7764,31 @@
#: assets/report/asset_activity/asset_activity.json
#: assets/workspace/assets/assets.json
msgid "Asset Activity"
-msgstr ""
+msgstr "Actividad de Activos"
#. Linked DocType in Asset's connections
#: assets/doctype/asset/asset.json
msgctxt "Asset"
msgid "Asset Activity"
-msgstr ""
+msgstr "Actividad de Activos"
#. Name of a DocType
#: assets/doctype/asset_capitalization/asset_capitalization.json
msgid "Asset Capitalization"
-msgstr ""
+msgstr "Capitalización de Activos"
#. Group in Asset's connections
#. Linked DocType in Asset's connections
#: assets/doctype/asset/asset.json
msgctxt "Asset"
msgid "Asset Capitalization"
-msgstr ""
+msgstr "Capitalización de Activos"
#. Label of a Link in the Assets Workspace
#: assets/workspace/assets/assets.json
msgctxt "Asset Capitalization"
msgid "Asset Capitalization"
-msgstr ""
+msgstr "Capitalización de Activos"
#. Name of a DocType
#: assets/doctype/asset_capitalization_asset_item/asset_capitalization_asset_item.json
@@ -8146,7 +8157,7 @@
#: accounts/doctype/accounts_settings/accounts_settings.json
msgctxt "Accounts Settings"
msgid "Asset Settings"
-msgstr ""
+msgstr "Configuración de Activos"
#. Name of a DocType
#: assets/doctype/asset_shift_allocation/asset_shift_allocation.json
@@ -8564,7 +8575,7 @@
#: accounts/doctype/purchase_invoice/purchase_invoice.json
#: regional/doctype/south_africa_vat_settings/south_africa_vat_settings.json
msgid "Auditor"
-msgstr ""
+msgstr "Auditor"
#: erpnext_integrations/doctype/plaid_settings/plaid_connector.py:68
#: erpnext_integrations/doctype/plaid_settings/plaid_connector.py:85
@@ -8954,7 +8965,7 @@
#: buying/doctype/purchase_order_item/purchase_order_item.json
msgctxt "Purchase Order Item"
msgid "Available Qty at Company"
-msgstr ""
+msgstr "Cant. disponible en Compañía"
#. Label of a Float field in DocType 'Delivery Note Item'
#: stock/doctype/delivery_note_item/delivery_note_item.json
@@ -9136,73 +9147,73 @@
#: stock/doctype/stock_entry/stock_entry.js:545
#: stock/report/bom_search/bom_search.py:38
msgid "BOM"
-msgstr ""
+msgstr "LdM"
#. Label of a shortcut in the Manufacturing Workspace
#: manufacturing/workspace/manufacturing/manufacturing.json
msgctxt "BOM"
msgid "BOM"
-msgstr ""
+msgstr "LdM"
#. Linked DocType in BOM Creator's connections
#: manufacturing/doctype/bom_creator/bom_creator.json
msgctxt "BOM Creator"
msgid "BOM"
-msgstr ""
+msgstr "LdM"
#. Option for the 'Backflush Raw Materials of Subcontract Based On' (Select)
#. field in DocType 'Buying Settings'
#: buying/doctype/buying_settings/buying_settings.json
msgctxt "Buying Settings"
msgid "BOM"
-msgstr ""
+msgstr "LdM"
#. Option for the 'Backflush Raw Materials Based On' (Select) field in DocType
#. 'Manufacturing Settings'
#: manufacturing/doctype/manufacturing_settings/manufacturing_settings.json
msgctxt "Manufacturing Settings"
msgid "BOM"
-msgstr ""
+msgstr "LdM"
#. Label of a Link field in DocType 'Purchase Invoice Item'
#: accounts/doctype/purchase_invoice_item/purchase_invoice_item.json
msgctxt "Purchase Invoice Item"
msgid "BOM"
-msgstr ""
+msgstr "LdM"
#. Label of a Link field in DocType 'Purchase Order Item'
#: buying/doctype/purchase_order_item/purchase_order_item.json
msgctxt "Purchase Order Item"
msgid "BOM"
-msgstr ""
+msgstr "LdM"
#. Label of a Link field in DocType 'Purchase Receipt Item'
#: stock/doctype/purchase_receipt_item/purchase_receipt_item.json
msgctxt "Purchase Receipt Item"
msgid "BOM"
-msgstr ""
+msgstr "LdM"
#. Label of a Link field in DocType 'Subcontracting Order Item'
#: subcontracting/doctype/subcontracting_order_item/subcontracting_order_item.json
msgctxt "Subcontracting Order Item"
msgid "BOM"
-msgstr ""
+msgstr "LdM"
#. Label of a Link field in DocType 'Subcontracting Receipt Item'
#: subcontracting/doctype/subcontracting_receipt_item/subcontracting_receipt_item.json
msgctxt "Subcontracting Receipt Item"
msgid "BOM"
-msgstr ""
+msgstr "LdM"
#. Label of a Link field in DocType 'Work Order Operation'
#: manufacturing/doctype/work_order_operation/work_order_operation.json
msgctxt "Work Order Operation"
msgid "BOM"
-msgstr ""
+msgstr "LdM"
#: manufacturing/page/bom_comparison_tool/bom_comparison_tool.js:21
msgid "BOM 1"
-msgstr ""
+msgstr "LdM 1"
#: manufacturing/doctype/bom/bom.py:1348
msgid "BOM 1 {0} and BOM 2 {1} should not be same"
@@ -9210,7 +9221,7 @@
#: manufacturing/page/bom_comparison_tool/bom_comparison_tool.js:38
msgid "BOM 2"
-msgstr ""
+msgstr "LdM 2"
#. Label of a Link in the Manufacturing Workspace
#: manufacturing/page/bom_comparison_tool/bom_comparison_tool.js:4
@@ -9222,24 +9233,24 @@
#: manufacturing/doctype/bom_creator_item/bom_creator_item.json
msgctxt "BOM Creator Item"
msgid "BOM Created"
-msgstr ""
+msgstr "LdM Creado"
#. Name of a DocType
#: manufacturing/doctype/bom_creator/bom_creator.json
msgid "BOM Creator"
-msgstr ""
+msgstr "Creador LdM"
#. Label of a Link field in DocType 'BOM'
#: manufacturing/doctype/bom/bom.json
msgctxt "BOM"
msgid "BOM Creator"
-msgstr ""
+msgstr "Creador LdM"
#. Label of a shortcut in the Manufacturing Workspace
#: manufacturing/workspace/manufacturing/manufacturing.json
msgctxt "BOM Creator"
msgid "BOM Creator"
-msgstr ""
+msgstr "Creador LdM"
#. Name of a DocType
#: manufacturing/doctype/bom_creator_item/bom_creator_item.json
@@ -9427,11 +9438,11 @@
#: manufacturing/doctype/bom_creator/bom_creator.json
msgctxt "BOM Creator"
msgid "BOM Tree"
-msgstr ""
+msgstr "Árbol LdM"
#: manufacturing/report/bom_stock_report/bom_stock_report.py:28
msgid "BOM UoM"
-msgstr ""
+msgstr "LdM UdM"
#. Name of a DocType
#: manufacturing/doctype/bom_update_batch/bom_update_batch.json
@@ -10531,7 +10542,7 @@
#: stock/doctype/serial_and_batch_bundle/serial_and_batch_bundle.py:2118
msgid "Batch No {0} does not exists"
-msgstr ""
+msgstr "Lote núm. {0} no existe"
#: stock/utils.py:643
msgid "Batch No {0} is linked with Item {1} which has serial no. Please scan serial no instead."
@@ -11724,7 +11735,7 @@
#: setup/doctype/company/company.json
msgctxt "Company"
msgid "Buying and Selling"
-msgstr ""
+msgstr "Compra y Venta"
#: accounts/doctype/pricing_rule/pricing_rule.py:211
msgid "Buying must be checked, if Applicable For is selected as {0}"
@@ -11776,7 +11787,7 @@
#. Label of a Card Break in the Home Workspace
#: crm/workspace/crm/crm.json setup/workspace/home/home.json
msgid "CRM"
-msgstr ""
+msgstr "CRM"
#. Name of a DocType
#: crm/doctype/crm_note/crm_note.json
@@ -11788,14 +11799,14 @@
#: crm/doctype/crm_settings/crm_settings.json
#: crm/onboarding_step/crm_settings/crm_settings.json
msgid "CRM Settings"
-msgstr ""
+msgstr "Configuración CRM"
#. Label of a Link in the CRM Workspace
#. Label of a Link in the Settings Workspace
#: crm/workspace/crm/crm.json setup/workspace/settings/settings.json
msgctxt "CRM Settings"
msgid "CRM Settings"
-msgstr ""
+msgstr "Configuración CRM"
#. Option for the 'Series' (Select) field in DocType 'Lead'
#: crm/doctype/lead/lead.json
@@ -11869,7 +11880,7 @@
#: telephony/doctype/call_log/call_log.js:8
msgid "Call Again"
-msgstr ""
+msgstr "Volver a llamar"
#: public/js/call_popup/call_popup.js:41
msgid "Call Connected"
@@ -11889,7 +11900,7 @@
#: public/js/call_popup/call_popup.js:48
msgid "Call Ended"
-msgstr ""
+msgstr "Llamada finalizada"
#. Label of a Table field in DocType 'Incoming Call Settings'
#: telephony/doctype/incoming_call_settings/incoming_call_settings.json
@@ -11948,7 +11959,7 @@
#: telephony/doctype/call_log/call_log.js:8
msgid "Callback"
-msgstr ""
+msgstr "Devolver Llamada"
#. Name of a DocType
#. Label of a Card Break in the CRM Workspace
@@ -12527,7 +12538,7 @@
#: projects/doctype/task/task.py:134
msgid "Cannot complete task {0} as its dependant task {1} are not completed / cancelled."
-msgstr ""
+msgstr "No se puede completar la tarea {0} porque su tarea dependiente {1} no está completada / cancelada."
#: accounts/doctype/cost_center/cost_center.py:63
msgid "Cannot convert Cost Center to ledger as it has child nodes"
@@ -13227,13 +13238,13 @@
#: setup/setup_wizard/operations/install_fixtures.py:205
msgid "Cheque"
-msgstr ""
+msgstr "Cheque"
#. Option for the 'Salary Mode' (Select) field in DocType 'Employee'
#: setup/doctype/employee/employee.json
msgctxt "Employee"
msgid "Cheque"
-msgstr ""
+msgstr "Cheque"
#. Label of a Date field in DocType 'Bank Clearance Detail'
#: accounts/doctype/bank_clearance_detail/bank_clearance_detail.json
@@ -13751,31 +13762,31 @@
#: setup/doctype/holiday_list/holiday_list.json
msgctxt "Holiday List"
msgid "Color"
-msgstr ""
+msgstr "Color"
#. Label of a Select field in DocType 'Supplier Scorecard Scoring Standing'
#: buying/doctype/supplier_scorecard_scoring_standing/supplier_scorecard_scoring_standing.json
msgctxt "Supplier Scorecard Scoring Standing"
msgid "Color"
-msgstr ""
+msgstr "Color"
#. Label of a Select field in DocType 'Supplier Scorecard Standing'
#: buying/doctype/supplier_scorecard_standing/supplier_scorecard_standing.json
msgctxt "Supplier Scorecard Standing"
msgid "Color"
-msgstr ""
+msgstr "Color"
#. Label of a Color field in DocType 'Task'
#: projects/doctype/task/task.json
msgctxt "Task"
msgid "Color"
-msgstr ""
+msgstr "Color"
#. Label of a Data field in DocType 'Vehicle'
#: setup/doctype/vehicle/vehicle.json
msgctxt "Vehicle"
msgid "Color"
-msgstr ""
+msgstr "Color"
#: setup/setup_wizard/operations/install_fixtures.py:231
msgid "Colour"
@@ -14990,7 +15001,7 @@
#: setup/doctype/employee/employee.json
msgctxt "Employee"
msgid "Company Details"
-msgstr ""
+msgstr "Detalles de la Compañía"
#. Option for the 'Preferred Contact Email' (Select) field in DocType
#. 'Employee'
@@ -15140,46 +15151,46 @@
#: crm/doctype/competitor/competitor.json
#: selling/report/lost_quotations/lost_quotations.py:24
msgid "Competitor"
-msgstr ""
+msgstr "Competidor"
#. Label of a Link field in DocType 'Competitor Detail'
#: crm/doctype/competitor_detail/competitor_detail.json
msgctxt "Competitor Detail"
msgid "Competitor"
-msgstr ""
+msgstr "Competidor"
#. Name of a DocType
#: crm/doctype/competitor_detail/competitor_detail.json
msgid "Competitor Detail"
-msgstr ""
+msgstr "Detalle del Competidor"
#. Linked DocType in Competitor's connections
#: crm/doctype/competitor/competitor.json
msgctxt "Competitor"
msgid "Competitor Detail"
-msgstr ""
+msgstr "Detalle del Competidor"
#. Label of a Data field in DocType 'Competitor'
#: crm/doctype/competitor/competitor.json
msgctxt "Competitor"
msgid "Competitor Name"
-msgstr ""
+msgstr "Nombre del Competidor"
#: public/js/utils/sales_common.js:417
msgid "Competitors"
-msgstr ""
+msgstr "Competidores"
#. Label of a Table MultiSelect field in DocType 'Opportunity'
#: crm/doctype/opportunity/opportunity.json
msgctxt "Opportunity"
msgid "Competitors"
-msgstr ""
+msgstr "Competidores"
#. Label of a Table MultiSelect field in DocType 'Quotation'
#: selling/doctype/quotation/quotation.json
msgctxt "Quotation"
msgid "Competitors"
-msgstr ""
+msgstr "Competidores"
#: erpnext_integrations/doctype/quickbooks_migrator/quickbooks_migrator.js:61
msgid "Complete"
@@ -15438,7 +15449,7 @@
#: projects/doctype/task/task.json
msgctxt "Task"
msgid "Completed On"
-msgstr ""
+msgstr "Completado el"
#: projects/doctype/task/task.py:168
msgid "Completed On cannot be greater than Today"
@@ -15482,7 +15493,7 @@
#: projects/report/project_summary/project_summary.py:130
msgid "Completed Tasks"
-msgstr ""
+msgstr "Tareas Completadas"
#. Label of a Data field in DocType 'Job Card Operation'
#: manufacturing/doctype/job_card_operation/job_card_operation.json
@@ -15562,13 +15573,13 @@
#: stock/doctype/inventory_dimension/inventory_dimension.json
msgctxt "Inventory Dimension"
msgid "Conditional Rule"
-msgstr ""
+msgstr "Regla condicional"
#. Label of a Section Break field in DocType 'Inventory Dimension'
#: stock/doctype/inventory_dimension/inventory_dimension.json
msgctxt "Inventory Dimension"
msgid "Conditional Rule Examples"
-msgstr ""
+msgstr "Ejemplos de reglas condicionales"
#. Description of the 'Mixed Conditions' (Check) field in DocType 'Pricing
#. Rule'
@@ -15581,13 +15592,13 @@
#: accounts/doctype/pos_profile/pos_profile.json
msgctxt "POS Profile"
msgid "Configuration"
-msgstr ""
+msgstr "Configuración"
#. Label of a Tab Break field in DocType 'Work Order'
#: manufacturing/doctype/work_order/work_order.json
msgctxt "Work Order"
msgid "Configuration"
-msgstr ""
+msgstr "Configuración"
#. Title of an Onboarding Step
#: accounts/onboarding_step/configure_account_settings/configure_account_settings.json
@@ -16081,19 +16092,19 @@
#: selling/doctype/customer/customer.json
msgctxt "Customer"
msgid "Contact & Address"
-msgstr ""
+msgstr "Contacto y Dirección"
#. Label of a Tab Break field in DocType 'Sales Invoice'
#: accounts/doctype/sales_invoice/sales_invoice.json
msgctxt "Sales Invoice"
msgid "Contact & Address"
-msgstr ""
+msgstr "Contacto y Dirección"
#. Label of a Tab Break field in DocType 'Supplier'
#: buying/doctype/supplier/supplier.json
msgctxt "Supplier"
msgid "Contact & Address"
-msgstr ""
+msgstr "Contacto y Dirección"
#. Label of a HTML field in DocType 'Sales Partner'
#: setup/doctype/sales_partner/sales_partner.json
@@ -16453,7 +16464,7 @@
#: crm/doctype/opportunity/opportunity.json
msgctxt "Opportunity"
msgid "Contacts"
-msgstr ""
+msgstr "Contactos"
#. Label of a Data field in DocType 'Issue'
#: support/doctype/issue/issue.json
@@ -16551,13 +16562,13 @@
#: selling/report/sales_person_commission_summary/sales_person_commission_summary.py:76
#: selling/report/sales_person_wise_transaction_summary/sales_person_wise_transaction_summary.py:121
msgid "Contribution %"
-msgstr ""
+msgstr "Contribución %"
#. Label of a Float field in DocType 'Sales Team'
#: selling/doctype/sales_team/sales_team.json
msgctxt "Sales Team"
msgid "Contribution (%)"
-msgstr ""
+msgstr "Contribución (%)"
#: selling/report/sales_person_commission_summary/sales_person_commission_summary.py:88
#: selling/report/sales_person_wise_transaction_summary/sales_person_wise_transaction_summary.py:123
@@ -16774,7 +16785,7 @@
#. Label of a Card Break in the Settings Workspace
#: setup/workspace/settings/settings.json
msgid "Core"
-msgstr ""
+msgstr "Núcleo"
#. Option for the 'Corrective/Preventive' (Select) field in DocType 'Quality
#. Action'
@@ -17964,20 +17975,20 @@
#. Title of an Onboarding Step
#: accounts/onboarding_step/create_your_first_purchase_invoice/create_your_first_purchase_invoice.json
msgid "Create Your First Purchase Invoice "
-msgstr ""
+msgstr "Crea tu primera Factura de Compra "
#. Title of an Onboarding Step
#: accounts/onboarding_step/create_your_first_sales_invoice/create_your_first_sales_invoice.json
#: setup/onboarding_step/create_your_first_sales_invoice/create_your_first_sales_invoice.json
msgid "Create Your First Sales Invoice "
-msgstr ""
+msgstr "Crea tu primera Factura de Ventas "
#. Title of an Onboarding Step
#: accounts/onboarding_step/create_a_customer/create_a_customer.json
#: selling/onboarding_step/create_a_customer/create_a_customer.json
#: setup/onboarding_step/create_a_customer/create_a_customer.json
msgid "Create a Customer"
-msgstr ""
+msgstr "Crear Cliente"
#. Title of an Onboarding Step
#: selling/onboarding_step/create_product/create_product.json
@@ -17999,12 +18010,12 @@
#: selling/onboarding_step/create_a_product/create_a_product.json
#: stock/onboarding_step/create_a_product/create_a_product.json
msgid "Create a Product"
-msgstr ""
+msgstr "Crear un Producto"
#. Title of an Onboarding Step
#: selling/onboarding_step/create_a_quotation/create_a_quotation.json
msgid "Create a Quotation"
-msgstr ""
+msgstr "Crear un Presupuesto"
#. Title of an Onboarding Step
#: accounts/onboarding_step/create_a_product/create_a_product.json
@@ -18022,17 +18033,17 @@
#: setup/onboarding_step/create_a_supplier/create_a_supplier.json
#: stock/onboarding_step/create_a_supplier/create_a_supplier.json
msgid "Create a Supplier"
-msgstr ""
+msgstr "Crear un Proveedor"
#. Title of an Onboarding Step
#: manufacturing/onboarding_step/warehouse/warehouse.json
msgid "Create a Warehouse"
-msgstr ""
+msgstr "Crear un Almacén"
#. Label of an action in the Onboarding Step 'Create an Item'
#: setup/onboarding_step/create_an_item/create_an_item.json
msgid "Create a new Item"
-msgstr ""
+msgstr "Crear un nuevo Producto"
#. Option for the 'Capitalization Method' (Select) field in DocType 'Asset
#. Capitalization'
@@ -18062,7 +18073,7 @@
#: setup/onboarding_step/create_an_item/create_an_item.json
#: stock/onboarding_step/create_an_item/create_an_item.json
msgid "Create an Item"
-msgstr ""
+msgstr "Crear Producto"
#: stock/stock_ledger.py:1684
msgid "Create an incoming stock transaction for the Item."
@@ -18071,7 +18082,7 @@
#. Title of an Onboarding Step
#: crm/onboarding_step/create_and_send_quotation/create_and_send_quotation.json
msgid "Create and Send Quotation"
-msgstr ""
+msgstr "Crear y Enviar Cotización"
#: utilities/activation.py:87
msgid "Create customer quotes"
@@ -18080,7 +18091,7 @@
#. Title of an Onboarding Step
#: buying/onboarding_step/create_your_first_purchase_order/create_your_first_purchase_order.json
msgid "Create first Purchase Order"
-msgstr ""
+msgstr "Crear primera Orden de Compra"
#. Description of the 'Create Missing Party' (Check) field in DocType 'Opening
#. Invoice Creation Tool'
@@ -18097,7 +18108,7 @@
#. Title of an Onboarding Step
#: setup/onboarding_step/create_a_quotation/create_a_quotation.json
msgid "Create your first Quotation"
-msgstr ""
+msgstr "Crea tu primera Cotización"
#. Title of an Onboarding Step
#: selling/onboarding_step/create_your_first_sales_order/create_your_first_sales_order.json
@@ -18180,7 +18191,7 @@
#: stock/report/stock_ledger_invariant_check/stock_ledger_invariant_check.py:131
#: stock/report/stock_ledger_variance/stock_ledger_variance.py:44
msgid "Creation"
-msgstr ""
+msgstr "Creación"
#. Label of a Data field in DocType 'Serial No'
#: stock/doctype/serial_no/serial_no.json
@@ -20594,7 +20605,7 @@
#: accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.html:25
msgid "Date: "
-msgstr ""
+msgstr "Fecha: "
#. Option for the 'Billing Interval' (Select) field in DocType 'Subscription
#. Plan'
@@ -22159,7 +22170,7 @@
#: setup/doctype/global_defaults/global_defaults.json
msgctxt "Global Defaults"
msgid "Demo Company"
-msgstr ""
+msgstr "Empresa de Demostración"
#: public/js/utils/demo.js:28
msgid "Demo data cleared"
@@ -23065,7 +23076,7 @@
#: setup/doctype/print_heading/print_heading.json stock/doctype/item/item.json
#: support/doctype/service_level_agreement/service_level_agreement.json
msgid "Desk User"
-msgstr ""
+msgstr "Usuario de Escritorio"
#: public/js/utils/sales_common.js:423
msgid "Detailed Reason"
@@ -23691,7 +23702,7 @@
#: selling/page/point_of_sale/pos_item_details.js:173
msgid "Discount (%)"
-msgstr ""
+msgstr "Descuento (%)"
#. Label of a Float field in DocType 'Delivery Note Item'
#: stock/doctype/delivery_note_item/delivery_note_item.json
@@ -24430,7 +24441,7 @@
#: public/js/utils/serial_no_batch_selector.js:237
msgid "Download CSV Template"
-msgstr ""
+msgstr "Descargar la plantilla CSV"
#. Label of a Button field in DocType 'Production Plan'
#: manufacturing/doctype/production_plan/production_plan.json
@@ -25085,19 +25096,19 @@
#: stock/doctype/item_barcode/item_barcode.json
msgctxt "Item Barcode"
msgid "EAN"
-msgstr ""
+msgstr "EAN"
#. Option for the 'Barcode Type' (Select) field in DocType 'Item Barcode'
#: stock/doctype/item_barcode/item_barcode.json
msgctxt "Item Barcode"
msgid "EAN-12"
-msgstr ""
+msgstr "EAN-12"
#. Option for the 'Barcode Type' (Select) field in DocType 'Item Barcode'
#: stock/doctype/item_barcode/item_barcode.json
msgctxt "Item Barcode"
msgid "EAN-8"
-msgstr ""
+msgstr "EAN-8"
#. Label of a Data field in DocType 'Tally Migration'
#: erpnext_integrations/doctype/tally_migration/tally_migration.json
@@ -25153,7 +25164,7 @@
#: public/js/utils/crm_activities.js:182
msgid "Edit Note"
-msgstr ""
+msgstr "Editar Nota"
#: stock/doctype/delivery_note/delivery_note.js:370
msgid "Edit Posting Date and Time"
@@ -27372,7 +27383,7 @@
#: bulk_transaction/doctype/bulk_transaction_log/bulk_transaction_log.js:9
msgid "Failed Entries"
-msgstr ""
+msgstr "Entradas fallidas"
#. Label of a HTML field in DocType 'Tally Migration'
#: erpnext_integrations/doctype/tally_migration/tally_migration.json
@@ -27423,7 +27434,7 @@
#: accounts/doctype/pos_closing_entry/pos_closing_entry.json
msgctxt "POS Closing Entry"
msgid "Failure Description"
-msgstr ""
+msgstr "Descripción del fallo"
#. Label of a Small Text field in DocType 'Employee'
#: setup/doctype/employee/employee.json
@@ -27839,7 +27850,7 @@
#. Name of a Workspace
#: accounts/workspace/financial_reports/financial_reports.json
msgid "Financial Reports"
-msgstr ""
+msgstr "Informes Financieros"
#. Title of an Onboarding Step
#. Label of a Card Break in the Financial Reports Workspace
@@ -28362,7 +28373,7 @@
#: public/js/utils/serial_no_batch_selector.js:116
msgid "For Work Order"
-msgstr ""
+msgstr "Para Orden de Trabajo"
#: controllers/status_updater.py:238
msgid "For an item {0}, quantity must be negative number"
@@ -29355,14 +29366,14 @@
#: buying/doctype/purchase_order/purchase_order.json
msgctxt "Purchase Order"
msgid "Fully Paid"
-msgstr ""
+msgstr "Totalmente pagado"
#. Option for the 'Advance Payment Status' (Select) field in DocType 'Sales
#. Order'
#: selling/doctype/sales_order/sales_order.json
msgctxt "Sales Order"
msgid "Fully Paid"
-msgstr ""
+msgstr "Totalmente pagado"
#: accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts.py:28
#: accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts_with_account_number.py:41
@@ -29503,7 +29514,7 @@
#: accounts/doctype/mode_of_payment/mode_of_payment.json
msgctxt "Mode of Payment"
msgid "General"
-msgstr ""
+msgstr "General"
#. Description of a report in the Onboarding Step 'Financial Statements'
#. Name of a report
@@ -29584,7 +29595,7 @@
#: accounts/doctype/repost_accounting_ledger/repost_accounting_ledger.js:30
msgid "Generating Preview"
-msgstr ""
+msgstr "Generando vista previa"
#. Label of a Button field in DocType 'Purchase Invoice'
#: accounts/doctype/purchase_invoice/purchase_invoice.json
@@ -31005,25 +31016,25 @@
#: accounts/doctype/bank_account/bank_account.json
msgctxt "Bank Account"
msgid "IBAN"
-msgstr ""
+msgstr "IBAN"
#. Label of a Data field in DocType 'Bank Guarantee'
#: accounts/doctype/bank_guarantee/bank_guarantee.json
msgctxt "Bank Guarantee"
msgid "IBAN"
-msgstr ""
+msgstr "IBAN"
#. Label of a Data field in DocType 'Employee'
#: setup/doctype/employee/employee.json
msgctxt "Employee"
msgid "IBAN"
-msgstr ""
+msgstr "IBAN"
#. Label of a Read Only field in DocType 'Payment Request'
#: accounts/doctype/payment_request/payment_request.json
msgctxt "Payment Request"
msgid "IBAN"
-msgstr ""
+msgstr "IBAN"
#: accounts/doctype/bank_account/bank_account.py:84
#: accounts/doctype/bank_account/bank_account.py:87
@@ -31050,25 +31061,25 @@
#. Name of a report
#: regional/report/irs_1099/irs_1099.json
msgid "IRS 1099"
-msgstr ""
+msgstr "IRS 1099"
#. Option for the 'Barcode Type' (Select) field in DocType 'Item Barcode'
#: stock/doctype/item_barcode/item_barcode.json
msgctxt "Item Barcode"
msgid "ISBN"
-msgstr ""
+msgstr "ISBN"
#. Option for the 'Barcode Type' (Select) field in DocType 'Item Barcode'
#: stock/doctype/item_barcode/item_barcode.json
msgctxt "Item Barcode"
msgid "ISBN-10"
-msgstr ""
+msgstr "ISBN-10"
#. Option for the 'Barcode Type' (Select) field in DocType 'Item Barcode'
#: stock/doctype/item_barcode/item_barcode.json
msgctxt "Item Barcode"
msgid "ISBN-13"
-msgstr ""
+msgstr "ISBN-13"
#. Option for the 'Series' (Select) field in DocType 'Issue'
#: support/doctype/issue/issue.json
@@ -31080,7 +31091,7 @@
#: stock/doctype/item_barcode/item_barcode.json
msgctxt "Item Barcode"
msgid "ISSN"
-msgstr ""
+msgstr "ISSN"
#: manufacturing/report/job_card_summary/job_card_summary.py:128
#: manufacturing/report/quality_inspection_summary/quality_inspection_summary.py:69
@@ -32770,67 +32781,67 @@
#. Name of a DocType
#: setup/doctype/incoterm/incoterm.json
msgid "Incoterm"
-msgstr ""
+msgstr "Incoterm"
#. Label of a Link field in DocType 'Delivery Note'
#: stock/doctype/delivery_note/delivery_note.json
msgctxt "Delivery Note"
msgid "Incoterm"
-msgstr ""
+msgstr "Incoterm"
#. Label of a Link field in DocType 'Purchase Invoice'
#: accounts/doctype/purchase_invoice/purchase_invoice.json
msgctxt "Purchase Invoice"
msgid "Incoterm"
-msgstr ""
+msgstr "Incoterm"
#. Label of a Link field in DocType 'Purchase Order'
#: buying/doctype/purchase_order/purchase_order.json
msgctxt "Purchase Order"
msgid "Incoterm"
-msgstr ""
+msgstr "Incoterm"
#. Label of a Link field in DocType 'Purchase Receipt'
#: stock/doctype/purchase_receipt/purchase_receipt.json
msgctxt "Purchase Receipt"
msgid "Incoterm"
-msgstr ""
+msgstr "Incoterm"
#. Label of a Link field in DocType 'Quotation'
#: selling/doctype/quotation/quotation.json
msgctxt "Quotation"
msgid "Incoterm"
-msgstr ""
+msgstr "Incoterm"
#. Label of a Link field in DocType 'Request for Quotation'
#: buying/doctype/request_for_quotation/request_for_quotation.json
msgctxt "Request for Quotation"
msgid "Incoterm"
-msgstr ""
+msgstr "Incoterm"
#. Label of a Link field in DocType 'Sales Invoice'
#: accounts/doctype/sales_invoice/sales_invoice.json
msgctxt "Sales Invoice"
msgid "Incoterm"
-msgstr ""
+msgstr "Incoterm"
#. Label of a Link field in DocType 'Sales Order'
#: selling/doctype/sales_order/sales_order.json
msgctxt "Sales Order"
msgid "Incoterm"
-msgstr ""
+msgstr "Incoterm"
#. Label of a Link field in DocType 'Shipment'
#: stock/doctype/shipment/shipment.json
msgctxt "Shipment"
msgid "Incoterm"
-msgstr ""
+msgstr "Incoterm"
#. Label of a Link field in DocType 'Supplier Quotation'
#: buying/doctype/supplier_quotation/supplier_quotation.json
msgctxt "Supplier Quotation"
msgid "Incoterm"
-msgstr ""
+msgstr "Incoterm"
#. Label of a Int field in DocType 'Asset Repair'
#: assets/doctype/asset_repair/asset_repair.json
@@ -33104,7 +33115,7 @@
#: setup/setup_wizard/setup_wizard.py:24
msgid "Installing presets"
-msgstr ""
+msgstr "Instalación de preajustes"
#. Label of a Small Text field in DocType 'BOM Creator Item'
#: manufacturing/doctype/bom_creator_item/bom_creator_item.json
@@ -33543,7 +33554,7 @@
#: assets/doctype/asset/asset.py:411 assets/doctype/asset/asset.py:417
#: assets/doctype/asset/asset.py:444
msgid "Invalid Schedule"
-msgstr ""
+msgstr "Programación no válida"
#: controllers/selling_controller.py:225
msgid "Invalid Selling Price"
@@ -33560,7 +33571,7 @@
#: stock/doctype/putaway_rule/putaway_rule.py:69
#: stock/doctype/stock_reservation_entry/stock_reservation_entry.py:126
msgid "Invalid Warehouse"
-msgstr ""
+msgstr "Almacén inválido"
#: accounts/doctype/pricing_rule/pricing_rule.py:304
msgid "Invalid condition expression"
@@ -33621,7 +33632,7 @@
#: stock/doctype/item/item.json
msgctxt "Item"
msgid "Inventory Settings"
-msgstr ""
+msgstr "Configuración de Inventario"
#. Subtitle of the Module Onboarding 'Stock'
#: stock/module_onboarding/stock/stock.json
@@ -33866,7 +33877,7 @@
#: accounts/workspace/payables/payables.json
#: accounts/workspace/receivables/receivables.json
msgid "Invoicing"
-msgstr ""
+msgstr "Facturación"
#. Label of a Section Break field in DocType 'Accounts Settings'
#: accounts/doctype/accounts_settings/accounts_settings.json
@@ -36002,349 +36013,349 @@
#: stock/report/supplier_wise_sales_analytics/supplier_wise_sales_analytics.py:59
#: stock/report/warehouse_wise_item_balance_age_and_value/warehouse_wise_item_balance_age_and_value.py:93
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Read Only field in DocType 'Asset'
#: assets/doctype/asset/asset.json
msgctxt "Asset"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'Asset Capitalization Asset Item'
#: assets/doctype/asset_capitalization_asset_item/asset_capitalization_asset_item.json
msgctxt "Asset Capitalization Asset Item"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'Asset Capitalization Service Item'
#: assets/doctype/asset_capitalization_service_item/asset_capitalization_service_item.json
msgctxt "Asset Capitalization Service Item"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'Asset Capitalization Stock Item'
#: assets/doctype/asset_capitalization_stock_item/asset_capitalization_stock_item.json
msgctxt "Asset Capitalization Stock Item"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Read Only field in DocType 'Asset Maintenance'
#: assets/doctype/asset_maintenance/asset_maintenance.json
msgctxt "Asset Maintenance"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Read Only field in DocType 'Asset Maintenance Log'
#: assets/doctype/asset_maintenance_log/asset_maintenance_log.json
msgctxt "Asset Maintenance Log"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'BOM'
#: manufacturing/doctype/bom/bom.json
msgctxt "BOM"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'BOM Creator'
#: manufacturing/doctype/bom_creator/bom_creator.json
msgctxt "BOM Creator"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'BOM Creator Item'
#: manufacturing/doctype/bom_creator_item/bom_creator_item.json
msgctxt "BOM Creator Item"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'BOM Explosion Item'
#: manufacturing/doctype/bom_explosion_item/bom_explosion_item.json
msgctxt "BOM Explosion Item"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'BOM Item'
#: manufacturing/doctype/bom_item/bom_item.json
msgctxt "BOM Item"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'BOM Scrap Item'
#: manufacturing/doctype/bom_scrap_item/bom_scrap_item.json
msgctxt "BOM Scrap Item"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'BOM Website Item'
#: manufacturing/doctype/bom_website_item/bom_website_item.json
msgctxt "BOM Website Item"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'Batch'
#: stock/doctype/batch/batch.json
msgctxt "Batch"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'Blanket Order Item'
#: manufacturing/doctype/blanket_order_item/blanket_order_item.json
msgctxt "Blanket Order Item"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'Delivery Note Item'
#: stock/doctype/delivery_note_item/delivery_note_item.json
msgctxt "Delivery Note Item"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'Item'
#: stock/doctype/item/item.json
msgctxt "Item"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Read Only field in DocType 'Item Alternative'
#: stock/doctype/item_alternative/item_alternative.json
msgctxt "Item Alternative"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'Item Manufacturer'
#: stock/doctype/item_manufacturer/item_manufacturer.json
msgctxt "Item Manufacturer"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'Item Price'
#: stock/doctype/item_price/item_price.json
msgctxt "Item Price"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Read Only field in DocType 'Job Card'
#: manufacturing/doctype/job_card/job_card.json
msgctxt "Job Card"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'Job Card Item'
#: manufacturing/doctype/job_card_item/job_card_item.json
msgctxt "Job Card Item"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'Maintenance Schedule Detail'
#: maintenance/doctype/maintenance_schedule_detail/maintenance_schedule_detail.json
msgctxt "Maintenance Schedule Detail"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'Maintenance Schedule Item'
#: maintenance/doctype/maintenance_schedule_item/maintenance_schedule_item.json
msgctxt "Maintenance Schedule Item"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'Maintenance Visit Purpose'
#: maintenance/doctype/maintenance_visit_purpose/maintenance_visit_purpose.json
msgctxt "Maintenance Visit Purpose"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'Material Request Item'
#: stock/doctype/material_request_item/material_request_item.json
msgctxt "Material Request Item"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'Material Request Plan Item'
#: manufacturing/doctype/material_request_plan_item/material_request_plan_item.json
msgctxt "Material Request Plan Item"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'Opening Invoice Creation Tool Item'
#: accounts/doctype/opening_invoice_creation_tool_item/opening_invoice_creation_tool_item.json
msgctxt "Opening Invoice Creation Tool Item"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'Opportunity Item'
#: crm/doctype/opportunity_item/opportunity_item.json
msgctxt "Opportunity Item"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'POS Invoice Item'
#: accounts/doctype/pos_invoice_item/pos_invoice_item.json
msgctxt "POS Invoice Item"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'Packed Item'
#: stock/doctype/packed_item/packed_item.json
msgctxt "Packed Item"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'Packing Slip Item'
#: stock/doctype/packing_slip_item/packing_slip_item.json
msgctxt "Packing Slip Item"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'Pick List Item'
#: stock/doctype/pick_list_item/pick_list_item.json
msgctxt "Pick List Item"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'Production Plan Sub Assembly Item'
#: manufacturing/doctype/production_plan_sub_assembly_item/production_plan_sub_assembly_item.json
msgctxt "Production Plan Sub Assembly Item"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'Purchase Invoice Item'
#: accounts/doctype/purchase_invoice_item/purchase_invoice_item.json
msgctxt "Purchase Invoice Item"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'Purchase Order Item'
#: buying/doctype/purchase_order_item/purchase_order_item.json
msgctxt "Purchase Order Item"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'Purchase Receipt Item'
#: stock/doctype/purchase_receipt_item/purchase_receipt_item.json
msgctxt "Purchase Receipt Item"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'Purchase Receipt Item Supplied'
#: buying/doctype/purchase_receipt_item_supplied/purchase_receipt_item_supplied.json
msgctxt "Purchase Receipt Item Supplied"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'Putaway Rule'
#: stock/doctype/putaway_rule/putaway_rule.json
msgctxt "Putaway Rule"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'Quality Inspection'
#: stock/doctype/quality_inspection/quality_inspection.json
msgctxt "Quality Inspection"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'Quick Stock Balance'
#: stock/doctype/quick_stock_balance/quick_stock_balance.json
msgctxt "Quick Stock Balance"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'Quotation Item'
#: selling/doctype/quotation_item/quotation_item.json
msgctxt "Quotation Item"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'Request for Quotation Item'
#: buying/doctype/request_for_quotation_item/request_for_quotation_item.json
msgctxt "Request for Quotation Item"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'Sales Invoice Item'
#: accounts/doctype/sales_invoice_item/sales_invoice_item.json
msgctxt "Sales Invoice Item"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'Sales Order Item'
#: selling/doctype/sales_order_item/sales_order_item.json
msgctxt "Sales Order Item"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'Serial No'
#: stock/doctype/serial_no/serial_no.json
msgctxt "Serial No"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'Serial and Batch Bundle'
#: stock/doctype/serial_and_batch_bundle/serial_and_batch_bundle.json
msgctxt "Serial and Batch Bundle"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'Stock Entry Detail'
#: stock/doctype/stock_entry_detail/stock_entry_detail.json
msgctxt "Stock Entry Detail"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'Stock Reconciliation Item'
#: stock/doctype/stock_reconciliation_item/stock_reconciliation_item.json
msgctxt "Stock Reconciliation Item"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'Subcontracting Order Item'
#: subcontracting/doctype/subcontracting_order_item/subcontracting_order_item.json
msgctxt "Subcontracting Order Item"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'Subcontracting Order Service Item'
#: subcontracting/doctype/subcontracting_order_service_item/subcontracting_order_service_item.json
msgctxt "Subcontracting Order Service Item"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'Subcontracting Receipt Item'
#: subcontracting/doctype/subcontracting_receipt_item/subcontracting_receipt_item.json
msgctxt "Subcontracting Receipt Item"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'Subcontracting Receipt Supplied Item'
#: subcontracting/doctype/subcontracting_receipt_supplied_item/subcontracting_receipt_supplied_item.json
msgctxt "Subcontracting Receipt Supplied Item"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'Supplier Quotation Item'
#: buying/doctype/supplier_quotation_item/supplier_quotation_item.json
msgctxt "Supplier Quotation Item"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'Warranty Claim'
#: support/doctype/warranty_claim/warranty_claim.json
msgctxt "Warranty Claim"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'Work Order'
#: manufacturing/doctype/work_order/work_order.json
msgctxt "Work Order"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Data field in DocType 'Work Order Item'
#: manufacturing/doctype/work_order_item/work_order_item.json
msgctxt "Work Order Item"
msgid "Item Name"
-msgstr "Nombre del árticulo"
+msgstr "Nombre del Producto"
#. Label of a Select field in DocType 'Stock Settings'
#: stock/doctype/stock_settings/stock_settings.json
@@ -36903,7 +36914,7 @@
#. Subtitle of the Module Onboarding 'Home'
#: setup/module_onboarding/home/home.json
msgid "Item, Customer, Supplier and Quotation"
-msgstr ""
+msgstr "Producto, Cliente, Proveedor y Cotización"
#. Name of a report
#: stock/report/item_wise_price_list_rate/item_wise_price_list_rate.json
@@ -37887,37 +37898,37 @@
#. Label of a shortcut in the Accounting Workspace
#: accounts/workspace/accounting/accounting.json
msgid "Learn Accounting"
-msgstr ""
+msgstr "Aprender Contabilidad"
#. Label of a shortcut in the Stock Workspace
#: stock/workspace/stock/stock.json
msgid "Learn Inventory Management"
-msgstr ""
+msgstr "Aprende la Gestión del Inventario"
#. Label of a shortcut in the Manufacturing Workspace
#: manufacturing/workspace/manufacturing/manufacturing.json
msgid "Learn Manufacturing"
-msgstr ""
+msgstr "Aprender Manufactura"
#. Label of a shortcut in the Buying Workspace
#: buying/workspace/buying/buying.json
msgid "Learn Procurement"
-msgstr ""
+msgstr "Aprender Compras"
#. Label of a shortcut in the Projects Workspace
#: projects/workspace/projects/projects.json
msgid "Learn Project Management"
-msgstr ""
+msgstr "Aprender Gestión de Proyecto"
#. Label of a shortcut in the Selling Workspace
#: selling/workspace/selling/selling.json
msgid "Learn Sales Management"
-msgstr ""
+msgstr "Aprender Gestión de Ventas"
#. Label of an action in the Onboarding Step 'How to Navigate in ERPNext'
#: setup/onboarding_step/navigation_help/navigation_help.json
msgid "Learn about Navigation options"
-msgstr ""
+msgstr "Aprende sobre las Opciones de Navegación"
#. Description of the 'Enable Common Party Accounting' (Check) field in DocType
#. 'Accounts Settings'
@@ -37930,22 +37941,22 @@
#. Label of an action in the Onboarding Step 'Updating Opening Balances'
#: accounts/onboarding_step/updating_opening_balances/updating_opening_balances.json
msgid "Learn how to update opening balances"
-msgstr ""
+msgstr "Aprenda cómo actualizar los saldos iniciales"
#. Label of an action in the Onboarding Step 'Review Chart of Accounts'
#: accounts/onboarding_step/chart_of_accounts/chart_of_accounts.json
msgid "Learn more about Chart of Accounts"
-msgstr ""
+msgstr "Aprender más sobre el Plan de Cuentas"
#. Label of an action in the Onboarding Step 'Production Planning'
#: manufacturing/onboarding_step/production_planning/production_planning.json
msgid "Learn more about Production Planning"
-msgstr ""
+msgstr "Aprender más sobre la Planificación de Producción"
#. Label of an action in the Onboarding Step 'Import Data from Spreadsheet'
#: setup/onboarding_step/data_import/data_import.json
msgid "Learn more about data migration"
-msgstr ""
+msgstr "Aprende más sobre Migración de Datos"
#. Label of a Select field in DocType 'Employee'
#: setup/doctype/employee/employee.json
@@ -38021,7 +38032,7 @@
#: setup/doctype/company/company.py:389
msgid "Legal"
-msgstr ""
+msgstr "Legal"
#: accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts.py:59
#: accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts_with_account_number.py:84
@@ -38116,7 +38127,7 @@
#. Label of an action in the Onboarding Step 'Set Up a Company'
#: setup/onboarding_step/company_set_up/company_set_up.json
msgid "Let's review your Company"
-msgstr ""
+msgstr "Revisemos su Empresa"
#. Label of an action in the Onboarding Step 'Review Fixed Asset Accounts'
#: assets/onboarding_step/fixed_asset_accounts/fixed_asset_accounts.json
@@ -38267,7 +38278,7 @@
#. Label of an action in the Onboarding Step 'Sales Order'
#: selling/onboarding_step/sales_order/sales_order.json
msgid "Let’s convert your first Sales Order against a Quotation"
-msgstr ""
+msgstr "Convirtamos su primer Pedido de Venta en una Cotización"
#. Label of an action in the Onboarding Step 'Workstation'
#: manufacturing/onboarding_step/workstation/workstation.json
@@ -38282,7 +38293,7 @@
#. Label of an action in the Onboarding Step 'Operation'
#: manufacturing/onboarding_step/operation/operation.json
msgid "Let’s create an Operation"
-msgstr ""
+msgstr "Vamos a crear una Operación"
#. Label of an action in the Onboarding Step 'Setup a Warehouse'
#: stock/onboarding_step/create_a_warehouse/create_a_warehouse.json
@@ -38292,7 +38303,7 @@
#. Label of an action in the Onboarding Step 'Create a Customer'
#: setup/onboarding_step/create_a_customer/create_a_customer.json
msgid "Let’s create your first Customer"
-msgstr ""
+msgstr "Creemos su primer Cliente"
#. Label of an action in the Onboarding Step 'Track Material Request'
#: buying/onboarding_step/create_a_material_request/create_a_material_request.json
@@ -38313,12 +38324,12 @@
#. Label of an action in the Onboarding Step 'Create your first Quotation'
#: setup/onboarding_step/create_a_quotation/create_a_quotation.json
msgid "Let’s create your first Quotation"
-msgstr ""
+msgstr "Creemos su primera Cotización"
#. Label of an action in the Onboarding Step 'Create a Supplier'
#: setup/onboarding_step/create_a_supplier/create_a_supplier.json
msgid "Let’s create your first Supplier"
-msgstr ""
+msgstr "Creemos su primer Proveedor"
#. Label of an action in the Onboarding Step 'Setup Your Letterhead'
#: setup/onboarding_step/letterhead/letterhead.json
@@ -38648,13 +38659,13 @@
#: stock/doctype/manufacturer/manufacturer.json
msgctxt "Manufacturer"
msgid "Logo"
-msgstr ""
+msgstr "Logo"
#. Label of a Attach field in DocType 'Sales Partner'
#: setup/doctype/sales_partner/sales_partner.json
msgctxt "Sales Partner"
msgid "Logo"
-msgstr ""
+msgstr "Logo"
#. Label of a Float field in DocType 'Delivery Stop'
#: stock/doctype/delivery_stop/delivery_stop.json
@@ -38710,11 +38721,11 @@
#: selling/report/lost_quotations/lost_quotations.json
#: selling/report/lost_quotations/lost_quotations.py:31
msgid "Lost Quotations"
-msgstr ""
+msgstr "Cotizaciones perdidas"
#: selling/report/lost_quotations/lost_quotations.py:37
msgid "Lost Quotations %"
-msgstr ""
+msgstr "Cotizaciones perdidas %"
#: crm/report/lost_opportunity/lost_opportunity.js:31
#: selling/report/lost_quotations/lost_quotations.py:24
@@ -39403,7 +39414,7 @@
#: stock/doctype/serial_and_batch_bundle/serial_and_batch_bundle.js:56
msgid "Make "
-msgstr ""
+msgstr "Crear "
#: assets/doctype/asset/asset_list.js:39
msgid "Make Asset Movement"
@@ -39433,7 +39444,7 @@
#: templates/pages/rfq.html:19
msgid "Make Quotation"
-msgstr ""
+msgstr "Hacer Cotización"
#: stock/doctype/purchase_receipt/purchase_receipt.js:287
msgid "Make Return Entry"
@@ -39474,7 +39485,7 @@
#: assets/doctype/asset/asset.js:124 assets/doctype/asset/asset.js:136
#: setup/doctype/company/company.js:112 setup/doctype/company/company.js:119
msgid "Manage"
-msgstr ""
+msgstr "Gestionar"
#. Label of an action in the Onboarding Step 'Setting up Taxes'
#: accounts/onboarding_step/setup_taxes/setup_taxes.json
@@ -41922,7 +41933,7 @@
#: assets/doctype/asset/asset_dashboard.py:7
msgid "Movement"
-msgstr ""
+msgstr "Movimiento"
#. Option for the 'Valuation Method' (Select) field in DocType 'Item'
#: stock/doctype/item/item.json
@@ -42907,7 +42918,7 @@
#: public/js/utils/crm_activities.js:63
msgid "New Task"
-msgstr ""
+msgstr "Nueva Tarea"
#: manufacturing/doctype/bom/bom.js:112
msgid "New Version"
@@ -43484,7 +43495,7 @@
#: buying/doctype/purchase_order/purchase_order.json
msgctxt "Purchase Order"
msgid "Not Initiated"
-msgstr ""
+msgstr "No iniciado"
#: buying/doctype/purchase_order/purchase_order.py:744
#: templates/pages/material_request_info.py:21 templates/pages/order.py:32
@@ -43497,7 +43508,7 @@
#: selling/doctype/sales_order/sales_order.json
msgctxt "Sales Order"
msgid "Not Requested"
-msgstr ""
+msgstr "No solicitado"
#: selling/report/lost_quotations/lost_quotations.py:86
#: support/report/issue_analytics/issue_analytics.py:208
@@ -50675,7 +50686,7 @@
#: setup/doctype/employee/employee.json
msgctxt "Employee"
msgid "Preferred Email"
-msgstr ""
+msgstr "Correo electrónico preferido"
#. Label of a Data field in DocType 'Packed Item'
#: stock/doctype/packed_item/packed_item.json
@@ -55756,7 +55767,7 @@
#: buying/doctype/supplier_quotation/supplier_quotation.json
msgctxt "Supplier Quotation"
msgid "Quotation Number"
-msgstr ""
+msgstr "Número de Cotización"
#. Label of a Link field in DocType 'Quotation'
#: selling/doctype/quotation/quotation.json
@@ -58424,7 +58435,7 @@
#: accounts/report/balance_sheet/balance_sheet.js:17
#: accounts/report/profit_and_loss_statement/profit_and_loss_statement.js:17
msgid "Report View"
-msgstr ""
+msgstr "Vista de Reporte"
#. Label of a Card Break in the Payables Workspace
#. Label of a Card Break in the Receivables Workspace
@@ -63156,7 +63167,7 @@
#: accounts/report/balance_sheet/balance_sheet.js:14
#: accounts/report/profit_and_loss_statement/profit_and_loss_statement.js:14
msgid "Select View"
-msgstr ""
+msgstr "Seleccione Vista"
#: public/js/bank_reconciliation_tool/dialog_manager.js:248
msgid "Select Vouchers to Match"
@@ -64804,7 +64815,7 @@
#. Title of an Onboarding Step
#: setup/onboarding_step/company_set_up/company_set_up.json
msgid "Set Up a Company"
-msgstr ""
+msgstr "Configurar una Compañía"
#. Label of a Check field in DocType 'BOM Creator'
#: manufacturing/doctype/bom_creator/bom_creator.json
@@ -65910,7 +65921,7 @@
#: accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts.py:32
#: accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts_with_account_number.py:45
msgid "Software"
-msgstr ""
+msgstr "Software"
#: assets/doctype/asset/asset_list.js:11
msgid "Sold"
@@ -67270,7 +67281,7 @@
#: stock/doctype/stock_settings/stock_settings.json
msgctxt "Stock Settings"
msgid "Stock Frozen Up To"
-msgstr ""
+msgstr "Existencias congeladas hasta"
#: accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts.py:20
#: accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts_with_account_number.py:31
@@ -70742,7 +70753,7 @@
#. Label of a Card Break in the Accounting Workspace
#: accounts/workspace/accounting/accounting.json
msgid "Tax Masters"
-msgstr ""
+msgstr "Maestros Fiscales"
#: accounts/doctype/account/account_tree.js:119
msgid "Tax Rate"
@@ -72059,7 +72070,7 @@
#: accounts/doctype/journal_entry/journal_entry.py:155
#: accounts/doctype/journal_entry/journal_entry.py:162
msgid "The task has been enqueued as a background job."
-msgstr ""
+msgstr "La tarea se ha puesto en cola como trabajo en segundo plano."
#: stock/doctype/stock_entry/stock_entry.py:244
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 Entry and revert to the Draft stage"
@@ -72118,7 +72129,7 @@
#: stock/doctype/material_request/material_request.py:779
msgid "The {0} {1} created successfully"
-msgstr ""
+msgstr "El {0} {1} creado exitosamente"
#: manufacturing/doctype/job_card/job_card.py:762
msgid "The {0} {1} is used to calculate the valuation cost for the finished good {2}."
@@ -73328,13 +73339,13 @@
#: buying/doctype/purchase_order/purchase_order_list.js:12
#: selling/doctype/sales_order/sales_order_list.js:14
msgid "To Pay"
-msgstr ""
+msgstr "A Pagar"
#. Option for the 'Status' (Select) field in DocType 'Sales Order'
#: selling/doctype/sales_order/sales_order.json
msgctxt "Sales Order"
msgid "To Pay"
-msgstr ""
+msgstr "A Pagar"
#. Label of a Date field in DocType 'Payment Reconciliation'
#: accounts/doctype/payment_reconciliation/payment_reconciliation.json
@@ -74678,13 +74689,13 @@
#: assets/doctype/asset_capitalization/asset_capitalization.json
msgctxt "Asset Capitalization"
msgid "Total Value"
-msgstr ""
+msgstr "Valor Total"
#. Label of a Currency field in DocType 'Asset Repair Consumed Item'
#: assets/doctype/asset_repair_consumed_item/asset_repair_consumed_item.json
msgctxt "Asset Repair Consumed Item"
msgid "Total Value"
-msgstr ""
+msgstr "Valor Total"
#. Label of a Currency field in DocType 'Stock Entry'
#: stock/doctype/stock_entry/stock_entry.json
@@ -74787,7 +74798,7 @@
#: accounts/report/financial_statements.py:339
#: accounts/report/financial_statements.py:340
msgid "Total {0} ({1})"
-msgstr ""
+msgstr "Total {0} ({1})"
#: stock/doctype/landed_cost_voucher/landed_cost_voucher.py:162
msgid "Total {0} for all items is zero, may be you should change 'Distribute Charges Based On'"
@@ -74902,7 +74913,7 @@
#: stock/doctype/shipment/shipment.json
msgctxt "Shipment"
msgid "Tracking URL"
-msgstr ""
+msgstr "URL de Seguimiento"
#: accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.py:435
#: manufacturing/doctype/workstation/workstation_dashboard.py:10
@@ -76055,7 +76066,7 @@
#: setup/workspace/home/home.json stock/workspace/stock/stock.json
msgctxt "UOM"
msgid "Unit of Measure (UOM)"
-msgstr ""
+msgstr "Unidad de Medida (UdM)"
#: stock/doctype/item/item.py:378
msgid "Unit of Measure {0} has been entered more than once in Conversion Factor Table"
@@ -76311,7 +76322,7 @@
#: accounts/doctype/bisect_accounting_statements/bisect_accounting_statements.js:17
msgid "Up"
-msgstr ""
+msgstr "Arriba"
#. Label of a Check field in DocType 'Email Digest'
#: setup/doctype/email_digest/email_digest.json
@@ -76579,7 +76590,7 @@
#: accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.js:44
msgid "Upload Bank Statement"
-msgstr ""
+msgstr "Cargar extracto bancario"
#. Label of a Section Break field in DocType 'Import Supplier Invoice'
#: regional/doctype/import_supplier_invoice/import_supplier_invoice.json
@@ -76881,7 +76892,7 @@
#. Name of a report
#: regional/report/vat_audit_report/vat_audit_report.json
msgid "VAT Audit Report"
-msgstr ""
+msgstr "Informe de auditoría del IVA"
#: regional/report/uae_vat_201/uae_vat_201.py:115
msgid "VAT on Expenses and All Other Inputs"
@@ -77631,7 +77642,7 @@
#: utilities/doctype/video/video.json
msgctxt "Video"
msgid "Vimeo"
-msgstr ""
+msgstr "Vimeo"
#: templates/pages/help.html:46
msgid "Visit the forums"
@@ -77930,7 +77941,7 @@
#: patches/v15_0/remove_exotel_integration.py:32
msgid "WARNING: Exotel app has been separated from ERPNext, please install the app to continue using Exotel integration."
-msgstr ""
+msgstr "ADVERTENCIA: La aplicación Exotel se ha separado de ERPNext; instale la aplicación para continuar usando la integración de Exotel."
#. Label of a Link field in DocType 'Material Request Item'
#: stock/doctype/material_request_item/material_request_item.json
@@ -78543,7 +78554,7 @@
#: accounts/doctype/cost_center_allocation/cost_center_allocation.py:116
msgid "Warning!"
-msgstr ""
+msgstr "¡Advertencia!"
#: accounts/doctype/journal_entry/journal_entry.py:1146
msgid "Warning: Another {0} # {1} exists against stock entry {2}"
@@ -78816,7 +78827,7 @@
#: selling/report/sales_analytics/sales_analytics.py:316
#: stock/report/stock_analytics/stock_analytics.py:115
msgid "Week {0} {1}"
-msgstr ""
+msgstr "Semana {0} {1}"
#. Label of a Select field in DocType 'Quality Goal'
#: quality_management/doctype/quality_goal/quality_goal.json
@@ -78914,13 +78925,13 @@
#: stock/doctype/shipment_parcel/shipment_parcel.json
msgctxt "Shipment Parcel"
msgid "Weight (kg)"
-msgstr ""
+msgstr "Peso (kg)"
#. Label of a Float field in DocType 'Shipment Parcel Template'
#: stock/doctype/shipment_parcel_template/shipment_parcel_template.json
msgctxt "Shipment Parcel Template"
msgid "Weight (kg)"
-msgstr ""
+msgstr "Peso (kg)"
#. Label of a Float field in DocType 'Delivery Note Item'
#: stock/doctype/delivery_note_item/delivery_note_item.json
@@ -79072,13 +79083,13 @@
#: crm/doctype/lead/lead.json
msgctxt "Lead"
msgid "WhatsApp"
-msgstr ""
+msgstr "WhatsApp"
#. Label of a Data field in DocType 'Opportunity'
#: crm/doctype/opportunity/opportunity.json
msgctxt "Opportunity"
msgid "WhatsApp"
-msgstr ""
+msgstr "WhatsApp"
#. Label of a Int field in DocType 'Vehicle'
#: setup/doctype/vehicle/vehicle.json
@@ -79725,7 +79736,7 @@
#: accounts/doctype/chart_of_accounts_importer/chart_of_accounts_importer.py:70
msgid "Wrong Company"
-msgstr ""
+msgstr "Compañía incorrecta"
#: setup/doctype/company/company.js:172
msgid "Wrong Password"
@@ -80221,7 +80232,7 @@
#: manufacturing/doctype/production_plan_sub_assembly_item/production_plan_sub_assembly_item.json
msgctxt "Production Plan Sub Assembly Item"
msgid "description"
-msgstr ""
+msgstr "descripción"
#. Option for the 'Plaid Environment' (Select) field in DocType 'Plaid
#. Settings'
@@ -80914,7 +80925,7 @@
#: manufacturing/doctype/job_card/job_card.py:773
msgid "{0} {1}"
-msgstr ""
+msgstr "{0} {1}"
#: public/js/utils/serial_no_batch_selector.js:203
msgid "{0} {1} Manually"
@@ -80922,7 +80933,7 @@
#: accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.py:433
msgid "{0} {1} Partially Reconciled"
-msgstr ""
+msgstr "{0} {1} Parcialmente reconciliado"
#: stock/doctype/stock_reservation_entry/stock_reservation_entry.py:417
msgid "{0} {1} cannot be updated. If you need to make changes, we recommend canceling the existing entry and creating a new one."
@@ -81091,20 +81102,20 @@
#: projects/doctype/project/project_list.js:6
msgid "{0}%"
-msgstr ""
+msgstr "{0}%"
#: controllers/website_list_for_contact.py:205
msgid "{0}% Billed"
-msgstr ""
+msgstr "{0}% Facturado"
#: controllers/website_list_for_contact.py:213
msgid "{0}% Delivered"
-msgstr ""
+msgstr "{0}% Enviado"
#: accounts/doctype/payment_term/payment_term.js:15
#, python-format
msgid "{0}% of total invoice value will be given as discount."
-msgstr ""
+msgstr "{0}% del valor total de la factura se otorgará como descuento."
#: projects/doctype/task/task.py:119
msgid "{0}'s {1} cannot be after {2}'s Expected End Date."
@@ -81136,7 +81147,7 @@
#: assets/report/fixed_asset_register/fixed_asset_register.py:372
msgid "{}"
-msgstr ""
+msgstr "{}"
#: controllers/buying_controller.py:712
msgid "{} Assets created for {}"
@@ -81157,7 +81168,7 @@
#: accounts/doctype/pos_closing_entry/pos_closing_entry.py:73
#: accounts/doctype/pos_invoice_merge_log/pos_invoice_merge_log.py:57
msgid "{} is added multiple times on rows: {}"
-msgstr ""
+msgstr "{} se agrega varias veces en las filas: {}"
#: erpnext_integrations/doctype/tally_migration/tally_migration.py:704
msgid "{} of {}"
@@ -81166,9 +81177,9 @@
#: accounts/doctype/party_link/party_link.py:50
#: accounts/doctype/party_link/party_link.py:60
msgid "{} {} is already linked with another {}"
-msgstr ""
+msgstr "{} {} ya está vinculado con otro {}"
#: accounts/doctype/party_link/party_link.py:40
msgid "{} {} is already linked with {} {}"
-msgstr ""
+msgstr "{} {} ya está vinculado con {} {}"
diff --git a/erpnext/locale/fa.po b/erpnext/locale/fa.po
index 99fd881..9c062ef 100644
--- a/erpnext/locale/fa.po
+++ b/erpnext/locale/fa.po
@@ -1,20 +1,22 @@
-# Translations template for ERPNext.
-# Copyright (C) 2024 Frappe Technologies Pvt. Ltd.
-# This file is distributed under the same license as the ERPNext project.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2024.
-#
msgid ""
msgstr ""
-"Project-Id-Version: ERPNext VERSION\n"
+"Project-Id-Version: frappe\n"
"Report-Msgid-Bugs-To: info@erpnext.com\n"
"POT-Creation-Date: 2024-01-29 18:13+0053\n"
-"PO-Revision-Date: 2024-01-29 18:13+0053\n"
+"PO-Revision-Date: 2024-03-04 11:36\n"
"Last-Translator: info@erpnext.com\n"
-"Language-Team: info@erpnext.com\n"
+"Language-Team: Persian\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.13.1\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Crowdin-Project: frappe\n"
+"X-Crowdin-Project-ID: 639578\n"
+"X-Crowdin-Language: fa\n"
+"X-Crowdin-File: /[frappe.erpnext] develop/erpnext/locale/main.pot\n"
+"X-Crowdin-File-ID: 46\n"
+"Language: fa_IR\n"
#: accounts/doctype/process_statement_of_accounts/process_statement_of_accounts_accounts_receivable.html:85
msgid " "
@@ -48,7 +50,7 @@
#: public/js/bom_configurator/bom_configurator.bundle.js:108
msgid " Qty"
-msgstr " تعداد"
+msgstr " مقدار"
#: accounts/report/item_wise_sales_register/item_wise_sales_register.py:603
msgid " Rate"
@@ -61,7 +63,7 @@
#: public/js/bom_configurator/bom_configurator.bundle.js:127
#: public/js/bom_configurator/bom_configurator.bundle.js:157
msgid " Sub Assembly"
-msgstr " مجمع فرعی"
+msgstr " زیر مونتاژ"
#: projects/doctype/project_update/project_update.py:110
msgid " Summary"
@@ -69,114 +71,93 @@
#: stock/doctype/item/item.py:235
msgid "\"Customer Provided Item\" cannot be Purchase Item also"
-msgstr ""
+msgstr "\"مورد ارائه شده توسط مشتری\" نمی تواند مورد خرید هم باشد"
#: stock/doctype/item/item.py:237
msgid "\"Customer Provided Item\" cannot have Valuation Rate"
-msgstr ""
+msgstr "\"مورد ارائه شده توسط مشتری\" نمی تواند دارای نرخ ارزیابی باشد"
#: stock/doctype/item/item.py:313
msgid "\"Is Fixed Asset\" cannot be unchecked, as Asset record exists against the item"
-msgstr ""
+msgstr "علامت \"دارایی ثابت است\" را نمی توان بردارید، زیرا سابقه دارایی در برابر آیتم وجود دارد"
#. Description of the Onboarding Step 'Accounts Settings'
#: accounts/onboarding_step/accounts_settings/accounts_settings.json
-msgid ""
-"# Account Settings\n"
-"\n"
-"In ERPNext, Accounting features are configurable as per your business needs. Accounts Settings is the place to define some of your accounting preferences like:\n"
-"\n"
+msgid "# Account Settings\n\n"
+"In ERPNext, Accounting features are configurable as per your business needs. Accounts Settings is the place to define some of your accounting preferences like:\n\n"
" - Credit Limit and over billing settings\n"
" - Taxation preferences\n"
" - Deferred accounting preferences\n"
-msgstr ""
+msgstr "# تنظیمات حساب\n\n"
+"در ERPNext، ویژگی های حسابداری بر اساس نیازهای کسب و کار شما قابل تنظیم هستند. تنظیمات حسابها مکانی برای تعریف برخی از اولویتهای حسابداری شما است مانند:\n\n"
+" - محدودیت اعتبار و تنظیمات بیش از صورتحساب\n"
+" - اولویتهای مالیاتی\n"
+" - اولویتهای حسابداری معوق\n"
#. Description of the Onboarding Step 'Configure Account Settings'
#: accounts/onboarding_step/configure_account_settings/configure_account_settings.json
-msgid ""
-"# Account Settings\n"
-"\n"
-"This is a crucial piece of configuration. There are various account settings in ERPNext to restrict and configure actions in the Accounting module.\n"
-"\n"
-"The following settings are avaialble for you to configure\n"
-"\n"
+msgid "# Account Settings\n\n"
+"This is a crucial piece of configuration. There are various account settings in ERPNext to restrict and configure actions in the Accounting module.\n\n"
+"The following settings are avaialble for you to configure\n\n"
"1. Account Freezing \n"
"2. Credit and Overbilling\n"
"3. Invoicing and Tax Automations\n"
-"4. Balance Sheet configurations\n"
-"\n"
+"4. Balance Sheet configurations\n\n"
"There's much more, you can check it all out in this step"
msgstr ""
#. Description of the Onboarding Step 'Add an Existing Asset'
#: assets/onboarding_step/existing_asset/existing_asset.json
-msgid ""
-"# Add an Existing Asset\n"
-"\n"
+msgid "# Add an Existing Asset\n\n"
"If you are just starting with ERPNext, you will need to enter Assets you already possess. You can add them as existing fixed assets in ERPNext. Please note that you will have to make a Journal Entry separately updating the opening balance in the fixed asset account."
msgstr ""
#. Description of the Onboarding Step 'Create Your First Sales Invoice '
#: setup/onboarding_step/create_your_first_sales_invoice/create_your_first_sales_invoice.json
-msgid ""
-"# All about sales invoice\n"
-"\n"
+msgid "# All about sales invoice\n\n"
"A Sales Invoice is a bill that you send to your Customers against which the Customer makes the payment. Sales Invoice is an accounting transaction. On submission of Sales Invoice, the system updates the receivable and books income against a Customer Account."
msgstr ""
#. Description of the Onboarding Step 'Create Your First Sales Invoice '
#: accounts/onboarding_step/create_your_first_sales_invoice/create_your_first_sales_invoice.json
-msgid ""
-"# All about sales invoice\n"
-"\n"
-"A Sales Invoice is a bill that you send to your Customers against which the Customer makes the payment. Sales Invoice is an accounting transaction. On submission of Sales Invoice, the system updates the receivable and books income against a Customer Account.\n"
-"\n"
-"Here's the flow of how a sales invoice is generally created\n"
-"\n"
-"\n"
+msgid "# All about sales invoice\n\n"
+"A Sales Invoice is a bill that you send to your Customers against which the Customer makes the payment. Sales Invoice is an accounting transaction. On submission of Sales Invoice, the system updates the receivable and books income against a Customer Account.\n\n"
+"Here's the flow of how a sales invoice is generally created\n\n\n"
"![Sales Flow](https://docs.erpnext.com/docs/assets/img/accounts/so-flow.png)"
msgstr ""
#. Description of the Onboarding Step 'Define Asset Category'
#: assets/onboarding_step/asset_category/asset_category.json
-msgid ""
-"# Asset Category\n"
-"\n"
-"An Asset Category classifies different assets of a Company.\n"
-"\n"
+msgid "# Asset Category\n\n"
+"An Asset Category classifies different assets of a Company.\n\n"
"You can create an Asset Category based on the type of assets. For example, all your desktops and laptops can be part of an Asset Category named \"Electronic Equipment\". Create a separate category for furniture. Also, you can update default properties for each category, like:\n"
" - Depreciation type and duration\n"
" - Fixed asset account\n"
" - Depreciation account\n"
-msgstr ""
+msgstr "# دسته دارایی\n\n"
+"یک دسته دارایی دارایی های مختلف یک شرکت را طبقه بندی می کند.\n\n"
+"شما می توانید یک دسته دارایی بر اساس نوع دارایی ایجاد کنید. به عنوان مثال، تمام رایانه های رومیزی و لپ تاپ های شما می توانند بخشی از یک دسته دارایی به نام «تجهیزات الکترونیکی» باشند. یک دسته بندی جداگانه برای مبلمان ایجاد کنید. همچنین، میتوانید ویژگیهای پیشفرض را برای هر دسته بهروزرسانی کنید، مانند:\n"
+" - نوع و مدت استهلاک\n"
+" - حساب دارایی ثابت\n"
+" - حساب استهلاک\n"
#. Description of the Onboarding Step 'Create an Asset Item'
#: assets/onboarding_step/asset_item/asset_item.json
-msgid ""
-"# Asset Item\n"
-"\n"
+msgid "# Asset Item\n\n"
"Asset items are created based on Asset Category. You can create one or multiple items against once Asset Category. The sales and purchase transaction for Asset is done via Asset Item. "
msgstr ""
#. Description of the Onboarding Step 'Buying Settings'
#: buying/onboarding_step/introduction_to_buying/introduction_to_buying.json
-msgid ""
-"# Buying Settings\n"
-"\n"
-"\n"
-"Buying module’s features are highly configurable as per your business needs. Buying Settings is the place where you can set your preferences for:\n"
-"\n"
+msgid "# Buying Settings\n\n\n"
+"Buying module’s features are highly configurable as per your business needs. Buying Settings is the place where you can set your preferences for:\n\n"
"- Supplier naming and default values\n"
-"- Billing and shipping preference in buying transactions\n"
-"\n"
-"\n"
+"- Billing and shipping preference in buying transactions\n\n\n"
msgstr ""
#. Description of the Onboarding Step 'CRM Settings'
#: crm/onboarding_step/crm_settings/crm_settings.json
-msgid ""
-"# CRM Settings\n"
-"\n"
+msgid "# CRM Settings\n\n"
"CRM module’s features are configurable as per your business needs. CRM Settings is the place where you can set your preferences for:\n"
"- Campaign\n"
"- Lead\n"
@@ -186,9 +167,7 @@
#. Description of the Onboarding Step 'Review Chart of Accounts'
#: accounts/onboarding_step/chart_of_accounts/chart_of_accounts.json
-msgid ""
-"# Chart Of Accounts\n"
-"\n"
+msgid "# Chart Of Accounts\n\n"
"ERPNext sets up a simple chart of accounts for each Company you create, but you can modify it according to business and legal requirements."
msgstr ""
@@ -196,62 +175,46 @@
#. Description of the Onboarding Step 'Check Stock Projected Qty'
#: stock/onboarding_step/check_stock_ledger_report/check_stock_ledger_report.json
#: stock/onboarding_step/view_stock_projected_qty/view_stock_projected_qty.json
-msgid ""
-"# Check Stock Reports\n"
+msgid "# Check Stock Reports\n"
"Based on the various stock transactions, you can get a host of one-click Stock Reports in ERPNext like Stock Ledger, Stock Balance, Projected Quantity, and Ageing analysis."
msgstr ""
#. Description of the Onboarding Step 'Cost Centers for Budgeting and Analysis'
#: accounts/onboarding_step/cost_centers_for_report_and_budgeting/cost_centers_for_report_and_budgeting.json
-msgid ""
-"# Cost Centers for Budgeting and Analysis\n"
-"\n"
-"While your Books of Accounts are framed to fulfill statutory requirements, you can set up Cost Center and Accounting Dimensions to address your companies reporting and budgeting requirements.\n"
-"\n"
+msgid "# Cost Centers for Budgeting and Analysis\n\n"
+"While your Books of Accounts are framed to fulfill statutory requirements, you can set up Cost Center and Accounting Dimensions to address your companies reporting and budgeting requirements.\n\n"
"Click here to learn more about how <b>[Cost Center](https://docs.erpnext.com/docs/v13/user/manual/en/accounts/cost-center)</b> and <b> [Dimensions](https://docs.erpnext.com/docs/v13/user/manual/en/accounts/accounting-dimensions)</b> allow you to get advanced financial analytics reports from ERPNext."
msgstr ""
#. Description of the Onboarding Step 'Finished Items'
#: manufacturing/onboarding_step/create_product/create_product.json
-msgid ""
-"# Create Items for Bill of Materials\n"
-"\n"
+msgid "# Create Items for Bill of Materials\n\n"
"One of the prerequisites of a BOM is the creation of raw materials, sub-assembly, and finished items. Once these items are created, you will be able to proceed to the Bill of Materials master, which is composed of items and routing.\n"
msgstr ""
#. Description of the Onboarding Step 'Operation'
#: manufacturing/onboarding_step/operation/operation.json
-msgid ""
-"# Create Operations\n"
-"\n"
+msgid "# Create Operations\n\n"
"An Operation refers to any manufacturing operation performed on the raw materials to process it further in the manufacturing path. As an example, if you are into garments manufacturing, you will create Operations like fabric cutting, stitching, and washing as some of the operations."
msgstr ""
#. Description of the Onboarding Step 'Workstation'
#: manufacturing/onboarding_step/workstation/workstation.json
-msgid ""
-"# Create Workstations\n"
-"\n"
+msgid "# Create Workstations\n\n"
"A Workstation stores information regarding the place where the workstation operations are performed. As an example, if you have ten sewing machines doing stitching jobs, each machine will be added as a workstation."
msgstr ""
#. Description of the Onboarding Step 'Bill of Materials'
#: manufacturing/onboarding_step/create_bom/create_bom.json
-msgid ""
-"# Create a Bill of Materials\n"
-"\n"
-"A Bill of Materials (BOM) is a list of items and sub-assemblies with quantities required to manufacture an Item.\n"
-"\n"
+msgid "# Create a Bill of Materials\n\n"
+"A Bill of Materials (BOM) is a list of items and sub-assemblies with quantities required to manufacture an Item.\n\n"
"BOM also provides cost estimation for the production of the item. It takes raw-materials cost based on valuation and operations to cost based on routing, which gives total costing for a BOM."
msgstr ""
#. Description of the Onboarding Step 'Create a Customer'
#: setup/onboarding_step/create_a_customer/create_a_customer.json
-msgid ""
-"# Create a Customer\n"
-"\n"
-"The Customer master is at the heart of your sales transactions. Customers are linked in Quotations, Sales Orders, Invoices, and Payments. Customers can be either numbered or identified by name (you would typically do this based on the number of customers you have).\n"
-"\n"
+msgid "# Create a Customer\n\n"
+"The Customer master is at the heart of your sales transactions. Customers are linked in Quotations, Sales Orders, Invoices, and Payments. Customers can be either numbered or identified by name (you would typically do this based on the number of customers you have).\n\n"
"Through Customer’s master, you can effectively track essentials like:\n"
" - Customer’s multiple address and contacts\n"
" - Account Receivables\n"
@@ -260,27 +223,20 @@
#. Description of the Onboarding Step 'Setup Your Letterhead'
#: setup/onboarding_step/letterhead/letterhead.json
-msgid ""
-"# Create a Letter Head\n"
-"\n"
+msgid "# Create a Letter Head\n\n"
"A Letter Head contains your organization's name, logo, address, etc which appears at the header and footer portion in documents. You can learn more about Setting up Letter Head in ERPNext here.\n"
msgstr ""
#. Description of the Onboarding Step 'Create your first Quotation'
#: setup/onboarding_step/create_a_quotation/create_a_quotation.json
-msgid ""
-"# Create a Quotation\n"
-"\n"
+msgid "# Create a Quotation\n\n"
"Let’s get started with business transactions by creating your first Quotation. You can create a Quotation for an existing customer or a prospect. It will be an approved document, with items you sell and the proposed price + taxes applied. After completing the instructions, you will get a Quotation in a ready to share print format."
msgstr ""
#. Description of the Onboarding Step 'Create a Supplier'
#: setup/onboarding_step/create_a_supplier/create_a_supplier.json
-msgid ""
-"# Create a Supplier\n"
-"\n"
-"Also known as Vendor, is a master at the center of your purchase transactions. Suppliers are linked in Request for Quotation, Purchase Orders, Receipts, and Payments. Suppliers can be either numbered or identified by name.\n"
-"\n"
+msgid "# Create a Supplier\n\n"
+"Also known as Vendor, is a master at the center of your purchase transactions. Suppliers are linked in Request for Quotation, Purchase Orders, Receipts, and Payments. Suppliers can be either numbered or identified by name.\n\n"
"Through Supplier’s master, you can effectively track essentials like:\n"
" - Supplier’s multiple address and contacts\n"
" - Account Receivables\n"
@@ -289,20 +245,15 @@
#. Description of the Onboarding Step 'Create a Supplier'
#: stock/onboarding_step/create_a_supplier/create_a_supplier.json
-msgid ""
-"# Create a Supplier\n"
+msgid "# Create a Supplier\n"
"In this step we will create a **Supplier**. If you have already created a **Supplier** you can skip this step."
msgstr ""
#. Description of the Onboarding Step 'Work Order'
#: manufacturing/onboarding_step/work_order/work_order.json
-msgid ""
-"# Create a Work Order\n"
-"\n"
-"A Work Order or a Job order is given to the manufacturing shop floor by the Production Manager to initiate the manufacturing of a certain quantity of an item. Work Order carriers details of production Item, its BOM, quantities to be manufactured, and operations.\n"
-"\n"
-"Through Work Order, you can track various production status like:\n"
-"\n"
+msgid "# Create a Work Order\n\n"
+"A Work Order or a Job order is given to the manufacturing shop floor by the Production Manager to initiate the manufacturing of a certain quantity of an item. Work Order carriers details of production Item, its BOM, quantities to be manufactured, and operations.\n\n"
+"Through Work Order, you can track various production status like:\n\n"
"- Issue of raw-material to shop material\n"
"- Progress on each Workstation via Job Card\n"
"- Manufactured Quantity against Work Order\n"
@@ -310,57 +261,41 @@
#. Description of the Onboarding Step 'Create an Item'
#: setup/onboarding_step/create_an_item/create_an_item.json
-msgid ""
-"# Create an Item\n"
-"\n"
-"Item is a product or a service offered by your company, or something you buy as a part of your supplies or raw materials.\n"
-"\n"
+msgid "# Create an Item\n\n"
+"Item is a product or a service offered by your company, or something you buy as a part of your supplies or raw materials.\n\n"
"Items are integral to everything you do in ERPNext - from billing, purchasing to managing inventory. Everything you buy or sell, whether it is a physical product or a service is an Item. Items can be stock, non-stock, variants, serialized, batched, assets, etc.\n"
msgstr ""
#. Description of the Onboarding Step 'Create an Item'
#: stock/onboarding_step/create_an_item/create_an_item.json
-msgid ""
-"# Create an Item\n"
-"The Stock module deals with the movement of items.\n"
-"\n"
+msgid "# Create an Item\n"
+"The Stock module deals with the movement of items.\n\n"
"In this step we will create an [**Item**](https://docs.erpnext.com/docs/user/manual/en/stock/item)."
msgstr ""
#. Description of the Onboarding Step 'Create first Purchase Order'
#: buying/onboarding_step/create_your_first_purchase_order/create_your_first_purchase_order.json
-msgid ""
-"# Create first Purchase Order\n"
-"\n"
-"Purchase Order is at the heart of your buying transactions. In ERPNext, Purchase Order can can be created against a Purchase Material Request (indent) and Supplier Quotation as well. Purchase Orders is also linked to Purchase Receipt and Purchase Invoices, allowing you to keep a birds-eye view on your purchase deals.\n"
-"\n"
+msgid "# Create first Purchase Order\n\n"
+"Purchase Order is at the heart of your buying transactions. In ERPNext, Purchase Order can can be created against a Purchase Material Request (indent) and Supplier Quotation as well. Purchase Orders is also linked to Purchase Receipt and Purchase Invoices, allowing you to keep a birds-eye view on your purchase deals.\n\n"
msgstr ""
#. Description of the Onboarding Step 'Create Your First Purchase Invoice '
#: accounts/onboarding_step/create_your_first_purchase_invoice/create_your_first_purchase_invoice.json
-msgid ""
-"# Create your first Purchase Invoice\n"
-"\n"
-"A Purchase Invoice is a bill received from a Supplier for a product(s) or service(s) delivery to your company. You can track payables through Purchase Invoice and process Payment Entries against it.\n"
-"\n"
+msgid "# Create your first Purchase Invoice\n\n"
+"A Purchase Invoice is a bill received from a Supplier for a product(s) or service(s) delivery to your company. You can track payables through Purchase Invoice and process Payment Entries against it.\n\n"
"Purchase Invoices can also be created against a Purchase Order or Purchase Receipt."
msgstr ""
#. Description of the Onboarding Step 'Financial Statements'
#: accounts/onboarding_step/financial_statements/financial_statements.json
-msgid ""
-"# Financial Statements\n"
-"\n"
-"In ERPNext, you can get crucial financial reports like [Balance Sheet] and [Profit and Loss] statements with a click of a button. You can run in the report for a different period and plot analytics charts premised on statement data. For more reports, check sections like Financial Statements, General Ledger, and Profitability reports.\n"
-"\n"
+msgid "# Financial Statements\n\n"
+"In ERPNext, you can get crucial financial reports like [Balance Sheet] and [Profit and Loss] statements with a click of a button. You can run in the report for a different period and plot analytics charts premised on statement data. For more reports, check sections like Financial Statements, General Ledger, and Profitability reports.\n\n"
"<b>[Check Accounting reports](https://docs.erpnext.com/docs/v13/user/manual/en/accounts/accounting-reports)</b>"
msgstr ""
#. Description of the Onboarding Step 'Review Fixed Asset Accounts'
#: assets/onboarding_step/fixed_asset_accounts/fixed_asset_accounts.json
-msgid ""
-"# Fixed Asset Accounts\n"
-"\n"
+msgid "# Fixed Asset Accounts\n\n"
"With the company, a host of fixed asset accounts are pre-configured. To ensure your asset transactions are leading to correct accounting entries, you can review and set up following asset accounts as per your business requirements.\n"
" - Fixed asset accounts (Asset account)\n"
" - Accumulated depreciation\n"
@@ -370,67 +305,54 @@
#. Description of the Onboarding Step 'Production Planning'
#: manufacturing/onboarding_step/production_planning/production_planning.json
-msgid ""
-"# How Production Planning Works\n"
-"\n"
+msgid "# How Production Planning Works\n\n"
"Production Plan helps in production and material planning for the Items planned for manufacturing. These production items can be committed via Sales Order (to Customers) or Material Requests (internally).\n"
-msgstr ""
+msgstr "# برنامه ریزی تولید چگونه کار می کند\n\n"
+"برنامه تولید به برنامه ریزی تولید و مواد برای آیتمهای برنامه ریزی شده برای ساخت کمک می کند. این آیتمهای تولیدی را می توان از طریق سفارش فروش (به مشتریان) یا درخواست مواد (داخلی) متعهد شد.\n"
#. Description of the Onboarding Step 'Import Data from Spreadsheet'
#: setup/onboarding_step/data_import/data_import.json
-msgid ""
-"# Import Data from Spreadsheet\n"
-"\n"
+msgid "# Import Data from Spreadsheet\n\n"
"In ERPNext, you can easily migrate your historical data using spreadsheets. You can use it for migrating not just masters (like Customer, Supplier, Items), but also for transactions like (outstanding invoices, opening stock and accounting entries, etc)."
msgstr ""
#: manufacturing/report/work_order_stock_report/work_order_stock_report.py:148
msgid "# In Stock"
-msgstr "# در انبار"
+msgstr "# در موجودی"
#. Description of the Onboarding Step 'Introduction to Stock Entry'
#: stock/onboarding_step/introduction_to_stock_entry/introduction_to_stock_entry.json
-msgid ""
-"# Introduction to Stock Entry\n"
+msgid "# Introduction to Stock Entry\n"
"This video will give a quick introduction to [**Stock Entry**](https://docs.erpnext.com/docs/user/manual/en/stock/stock-entry)."
msgstr ""
#. Description of the Onboarding Step 'Manage Stock Movements'
#: stock/onboarding_step/create_a_stock_entry/create_a_stock_entry.json
-msgid ""
-"# Manage Stock Movements\n"
-"Stock entry allows you to register the movement of stock for various purposes like transfer, received, issues, repacked, etc. To address issues related to theft and pilferages, you can always ensure that the movement of goods happens against a document reference Stock Entry in ERPNext.\n"
-"\n"
+msgid "# Manage Stock Movements\n"
+"Stock entry allows you to register the movement of stock for various purposes like transfer, received, issues, repacked, etc. To address issues related to theft and pilferages, you can always ensure that the movement of goods happens against a document reference Stock Entry in ERPNext.\n\n"
"Let’s get a quick walk-through on the various scenarios covered in Stock Entry by watching [*this video*](https://www.youtube.com/watch?v=Njt107hlY3I)."
msgstr ""
#. Description of the Onboarding Step 'How to Navigate in ERPNext'
#: setup/onboarding_step/navigation_help/navigation_help.json
-msgid ""
-"# Navigation in ERPNext\n"
-"\n"
+msgid "# Navigation in ERPNext\n\n"
"Ease of navigating and browsing around the ERPNext is one of our core strengths. In the following video, you will learn how to reach a specific feature in ERPNext via module page or AwesomeBar."
msgstr ""
#. Description of the Onboarding Step 'Purchase an Asset'
#: assets/onboarding_step/asset_purchase/asset_purchase.json
-msgid ""
-"# Purchase an Asset\n"
-"\n"
+msgid "# Purchase an Asset\n\n"
"Assets purchases process if done following the standard Purchase cycle. If capital work in progress is enabled in Asset Category, Asset will be created as soon as Purchase Receipt is created for it. You can quickly create a Purchase Receipt for Asset and see its impact on books of accounts."
msgstr ""
#: manufacturing/report/work_order_stock_report/work_order_stock_report.py:141
msgid "# Req'd Items"
-msgstr "# موارد درخواست شده"
+msgstr "# آیتمهای درخواست شده"
#. Description of the Onboarding Step 'Manufacturing Settings'
#: manufacturing/onboarding_step/explore_manufacturing_settings/explore_manufacturing_settings.json
-msgid ""
-"# Review Manufacturing Settings\n"
-"\n"
-"In ERPNext, the Manufacturing module’s features are configurable as per your business needs. Manufacturing Settings is the place where you can set your preferences for:\n"
-"\n"
+msgid "# Review Manufacturing Settings\n\n"
+"In ERPNext, the Manufacturing module’s features are configurable as per your business needs. Manufacturing Settings is the place where you can set your preferences for:\n\n"
"- Capacity planning for allocating jobs to workstations\n"
"- Raw-material consumption based on BOM or actual\n"
"- Default values and over-production allowance\n"
@@ -438,9 +360,7 @@
#. Description of the Onboarding Step 'Review Stock Settings'
#: stock/onboarding_step/stock_settings/stock_settings.json
-msgid ""
-"# Review Stock Settings\n"
-"\n"
+msgid "# Review Stock Settings\n\n"
"In ERPNext, the Stock module’s features are configurable as per your business needs. Stock Settings is the place where you can set your preferences for:\n"
"- Default values for Item and Pricing\n"
"- Default valuation method for inventory valuation\n"
@@ -450,19 +370,14 @@
#. Description of the Onboarding Step 'Sales Order'
#: selling/onboarding_step/sales_order/sales_order.json
-msgid ""
-"# Sales Order\n"
-"\n"
-"A Sales Order is a confirmation of an order from your customer. It is also referred to as Proforma Invoice.\n"
-"\n"
+msgid "# Sales Order\n\n"
+"A Sales Order is a confirmation of an order from your customer. It is also referred to as Proforma Invoice.\n\n"
"Sales Order at the heart of your sales and purchase transactions. Sales Orders are linked in Delivery Note, Sales Invoices, Material Request, and Maintenance transactions. Through Sales Order, you can track fulfillment of the overall deal towards the customer."
msgstr ""
#. Description of the Onboarding Step 'Selling Settings'
#: selling/onboarding_step/selling_settings/selling_settings.json
-msgid ""
-"# Selling Settings\n"
-"\n"
+msgid "# Selling Settings\n\n"
"CRM and Selling module’s features are configurable as per your business needs. Selling Settings is the place where you can set your preferences for:\n"
" - Customer naming and default values\n"
" - Billing and shipping preference in sales transactions\n"
@@ -470,109 +385,78 @@
#. Description of the Onboarding Step 'Set Up a Company'
#: setup/onboarding_step/company_set_up/company_set_up.json
-msgid ""
-"# Set Up a Company\n"
-"\n"
-"A company is a legal entity for which you will set up your books of account and create accounting transactions. In ERPNext, you can create multiple companies, and establish relationships (group/subsidiary) among them.\n"
-"\n"
+msgid "# Set Up a Company\n\n"
+"A company is a legal entity for which you will set up your books of account and create accounting transactions. In ERPNext, you can create multiple companies, and establish relationships (group/subsidiary) among them.\n\n"
"Within the company master, you can capture various default accounts for that Company and set crucial settings related to the accounting methodology followed for a company.\n"
msgstr ""
#. Description of the Onboarding Step 'Setting up Taxes'
#: accounts/onboarding_step/setup_taxes/setup_taxes.json
-msgid ""
-"# Setting up Taxes\n"
-"\n"
+msgid "# Setting up Taxes\n\n"
"ERPNext lets you configure your taxes so that they are automatically applied in your buying and selling transactions. You can configure them globally or even on Items. ERPNext taxes are pre-configured for most regions."
msgstr ""
#. Description of the Onboarding Step 'Routing'
#: manufacturing/onboarding_step/routing/routing.json
-msgid ""
-"# Setup Routing\n"
-"\n"
+msgid "# Setup Routing\n\n"
"A Routing stores all Operations along with the description, hourly rate, operation time, batch size, etc. Click below to learn how the Routing template can be created, for quick selection in the BOM."
msgstr ""
#. Description of the Onboarding Step 'Setup a Warehouse'
#: stock/onboarding_step/create_a_warehouse/create_a_warehouse.json
-msgid ""
-"# Setup a Warehouse\n"
-"The warehouse can be your location/godown/store where you maintain the item's inventory, and receive/deliver them to various parties.\n"
-"\n"
+msgid "# Setup a Warehouse\n"
+"The warehouse can be your location/godown/store where you maintain the item's inventory, and receive/deliver them to various parties.\n\n"
"In ERPNext, you can maintain a Warehouse in the tree structure, so that location and sub-location of an item can be tracked. Also, you can link a Warehouse to a specific Accounting ledger, where the real-time stock value of that warehouse’s item will be reflected."
msgstr ""
#. Description of the Onboarding Step 'Track Material Request'
#: buying/onboarding_step/create_a_material_request/create_a_material_request.json
-msgid ""
-"# Track Material Request\n"
-"\n"
-"\n"
-"Also known as Purchase Request or an Indent, is a document identifying a requirement of a set of items (products or services) for various purposes like procurement, transfer, issue, or manufacturing. Once the Material Request is validated, a purchase manager can take the next actions for purchasing items like requesting RFQ from a supplier or directly placing an order with an identified Supplier.\n"
-"\n"
+msgid "# Track Material Request\n\n\n"
+"Also known as Purchase Request or an Indent, is a document identifying a requirement of a set of items (products or services) for various purposes like procurement, transfer, issue, or manufacturing. Once the Material Request is validated, a purchase manager can take the next actions for purchasing items like requesting RFQ from a supplier or directly placing an order with an identified Supplier.\n\n"
msgstr ""
#. Description of the Onboarding Step 'Update Stock Opening Balance'
#: stock/onboarding_step/stock_opening_balance/stock_opening_balance.json
-msgid ""
-"# Update Stock Opening Balance\n"
-"It’s an entry to update the stock balance of an item, in a warehouse, on a date and time you are going live on ERPNext.\n"
-"\n"
+msgid "# Update Stock Opening Balance\n"
+"It’s an entry to update the stock balance of an item, in a warehouse, on a date and time you are going live on ERPNext.\n\n"
"Once opening stocks are updated, you can create transactions like manufacturing and stock deliveries, where this opening stock will be consumed."
msgstr ""
#. Description of the Onboarding Step 'Updating Opening Balances'
#: accounts/onboarding_step/updating_opening_balances/updating_opening_balances.json
-msgid ""
-"# Updating Opening Balances\n"
-"\n"
+msgid "# Updating Opening Balances\n\n"
"Once you close the financial statement in previous accounting software, you can update the same as opening in your ERPNext's Balance Sheet accounts. This will allow you to get complete financial statements from ERPNext in the coming years, and discontinue the parallel accounting system right away."
msgstr ""
#. Description of the Onboarding Step 'View Warehouses'
#: stock/onboarding_step/view_warehouses/view_warehouses.json
-msgid ""
-"# View Warehouse\n"
-"In ERPNext the term 'warehouse' can be thought of as a storage location.\n"
-"\n"
-"Warehouses are arranged in ERPNext in a tree like structure, where multiple sub-warehouses can be grouped under a single warehouse.\n"
-"\n"
+msgid "# View Warehouse\n"
+"In ERPNext the term 'warehouse' can be thought of as a storage location.\n\n"
+"Warehouses are arranged in ERPNext in a tree like structure, where multiple sub-warehouses can be grouped under a single warehouse.\n\n"
"In this step we will view the [**Warehouse Tree**](https://docs.erpnext.com/docs/user/manual/en/stock/warehouse#21-tree-view) to view the [**Warehouses**](https://docs.erpnext.com/docs/user/manual/en/stock/warehouse) that are set by default."
msgstr ""
#. Description of the Onboarding Step 'Create a Sales Item'
#: accounts/onboarding_step/create_a_product/create_a_product.json
-msgid ""
-"## Products and Services\n"
-"\n"
+msgid "## Products and Services\n\n"
"Depending on the nature of your business, you might be selling products or services to your clients or even both. \n"
-"ERPNext is optimized for itemized management of your sales and purchase.\n"
-"\n"
-"The **Item Master** is where you can add all your sales items. If you are in services, you can create an Item for each service that you offer. If you run a manufacturing business, the same master is used for keeping a record of raw materials, sub-assemblies etc.\n"
-"\n"
+"ERPNext is optimized for itemized management of your sales and purchase.\n\n"
+"The **Item Master** is where you can add all your sales items. If you are in services, you can create an Item for each service that you offer. If you run a manufacturing business, the same master is used for keeping a record of raw materials, sub-assemblies etc.\n\n"
"Completing the Item Master is very essential for the successful implementation of ERPNext. We have a brief video introducing the item master for you, you can watch it in the next step."
msgstr ""
#. Description of the Onboarding Step 'Create a Customer'
#: accounts/onboarding_step/create_a_customer/create_a_customer.json
-msgid ""
-"## Who is a Customer?\n"
-"\n"
-"A customer, who is sometimes known as a client, buyer, or purchaser is the one who receives goods, services, products, or ideas, from a seller for a monetary consideration.\n"
-"\n"
-"Every customer needs to be assigned a unique id. Customer name itself can be the id or you can set a naming series for ids to be generated in Selling Settings.\n"
-"\n"
+msgid "## Who is a Customer?\n\n"
+"A customer, who is sometimes known as a client, buyer, or purchaser is the one who receives goods, services, products, or ideas, from a seller for a monetary consideration.\n\n"
+"Every customer needs to be assigned a unique id. Customer name itself can be the id or you can set a naming series for ids to be generated in Selling Settings.\n\n"
"Just like the supplier, let's quickly create a customer."
msgstr ""
#. Description of the Onboarding Step 'Create a Supplier'
#: accounts/onboarding_step/create_a_supplier/create_a_supplier.json
-msgid ""
-"## Who is a Supplier?\n"
-"\n"
-"Suppliers are companies or individuals who provide you with products or services. ERPNext has comprehensive features for purchase cycles. \n"
-"\n"
+msgid "## Who is a Supplier?\n\n"
+"Suppliers are companies or individuals who provide you with products or services. ERPNext has comprehensive features for purchase cycles. \n\n"
"Let's quickly create a supplier with the minimal details required. You need the name of the supplier, assign the supplier to a group, and select the type of the supplier, viz. Company or Individual."
msgstr ""
@@ -739,7 +623,7 @@
#: stock/report/product_bundle_balance/product_bundle_balance.py:232
msgid "'Date' is required"
-msgstr "تاریخ الزامی است"
+msgstr "'تاریخ' الزامی است"
#: selling/report/inactive_customers/inactive_customers.py:18
msgid "'Days Since Last Order' must be greater than or equal to zero"
@@ -775,7 +659,7 @@
#: stock/report/batch_wise_balance_history/batch_wise_balance_history.py:101
#: stock/report/stock_analytics/stock_analytics.py:326
msgid "'To Date' is required"
-msgstr "تا به امروز مورد نیاز است"
+msgstr "«تا تاریخ» مورد نیاز است"
#: stock/doctype/packing_slip/packing_slip.py:96
msgid "'To Package No.' cannot be less than 'From Package No.'"
@@ -909,19 +793,19 @@
#: crm/doctype/lead/lead.json
msgctxt "Lead"
msgid "1-10"
-msgstr ""
+msgstr "1-10"
#. Option for the 'No of Employees' (Select) field in DocType 'Opportunity'
#: crm/doctype/opportunity/opportunity.json
msgctxt "Opportunity"
msgid "1-10"
-msgstr ""
+msgstr "1-10"
#. Option for the 'No. of Employees' (Select) field in DocType 'Prospect'
#: crm/doctype/prospect/prospect.json
msgctxt "Prospect"
msgid "1-10"
-msgstr ""
+msgstr "1-10"
#. Option for the 'No of Employees' (Select) field in DocType 'Lead'
#: crm/doctype/lead/lead.json
@@ -962,7 +846,7 @@
#: regional/report/uae_vat_201/uae_vat_201.py:99
#: regional/report/uae_vat_201/uae_vat_201.py:105
msgid "1{0}"
-msgstr "1{0}"
+msgstr ""
#. Option for the 'Periodicity' (Select) field in DocType 'Asset Maintenance
#. Task'
@@ -1004,7 +888,7 @@
#: accounts/report/payment_period_based_on_invoice_date/payment_period_based_on_invoice_date.py:119
msgid "30-60"
-msgstr "30-60"
+msgstr ""
#: manufacturing/report/work_order_summary/work_order_summary.py:110
msgid "30-60 Days"
@@ -1054,7 +938,7 @@
#: accounts/report/payment_period_based_on_invoice_date/payment_period_based_on_invoice_date.py:120
msgid "60-90"
-msgstr "60-90"
+msgstr ""
#: manufacturing/report/work_order_summary/work_order_summary.py:110
msgid "60-90 Days"
@@ -1074,8 +958,7 @@
#: accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.json
#, python-format
msgctxt "Process Statement Of Accounts"
-msgid ""
-"<br>\n"
+msgid "<br>\n"
"<h4>Note</h4>\n"
"<ul>\n"
"<li>\n"
@@ -1115,13 +998,12 @@
#: public/js/bank_reconciliation_tool/dialog_manager.js:258
msgid "<div class=\"text-muted text-center\">{0}</div>"
-msgstr "<div class=\"text-muted text-center\">{0}</div>"
+msgstr ""
#. Content of the 'settings' (HTML) field in DocType 'Cheque Print Template'
#: accounts/doctype/cheque_print_template/cheque_print_template.json
msgctxt "Cheque Print Template"
-msgid ""
-"<div>\n"
+msgid "<div>\n"
"<h3> All dimensions in centimeter only </h3>\n"
"</div>"
msgstr ""
@@ -1129,9 +1011,7 @@
#. Content of the 'about' (HTML) field in DocType 'Product Bundle'
#: selling/doctype/product_bundle/product_bundle.json
msgctxt "Product Bundle"
-msgid ""
-"<h3>About Product Bundle</h3>\n"
-"\n"
+msgid "<h3>About Product Bundle</h3>\n\n"
"<p>Aggregate group of <b>Items</b> into another <b>Item</b>. This is useful if you are bundling a certain <b>Items</b> into a package and you maintain stock of the packed <b>Items</b> and not the aggregate <b>Item</b>.</p>\n"
"<p>The package <b>Item</b> will have <code>Is Stock Item</code> as <b>No</b> and <code>Is Sales Item</code> as <b>Yes</b>.</p>\n"
"<h4>Example:</h4>\n"
@@ -1141,8 +1021,7 @@
#. Content of the 'Help' (HTML) field in DocType 'Currency Exchange Settings'
#: accounts/doctype/currency_exchange_settings/currency_exchange_settings.json
msgctxt "Currency Exchange Settings"
-msgid ""
-"<h3>Currency Exchange Settings Help</h3>\n"
+msgid "<h3>Currency Exchange Settings Help</h3>\n"
"<p>There are 3 variables that could be used within the endpoint, result key and in values of the parameter.</p>\n"
"<p>Exchange rate between {from_currency} and {to_currency} on {transaction_date} is fetched by the API.</p>\n"
"<p>Example: If your endpoint is exchange.com/2021-08-01, then, you will have to input exchange.com/{transaction_date}</p>"
@@ -1152,17 +1031,11 @@
#. Letter Text'
#: accounts/doctype/dunning_letter_text/dunning_letter_text.json
msgctxt "Dunning Letter Text"
-msgid ""
-"<h4>Body Text and Closing Text Example</h4>\n"
-"\n"
-"<div>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.</div>\n"
-"\n"
-"<h4>How to get fieldnames</h4>\n"
-"\n"
-"<p>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)</p>\n"
-"\n"
-"<h4>Templating</h4>\n"
-"\n"
+msgid "<h4>Body Text and Closing Text Example</h4>\n\n"
+"<div>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.</div>\n\n"
+"<h4>How to get fieldnames</h4>\n\n"
+"<p>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)</p>\n\n"
+"<h4>Templating</h4>\n\n"
"<p>Templates are compiled using the Jinja Templating Language. To learn more about Jinja, <a class=\"strong\" href=\"http://jinja.pocoo.org/docs/dev/templates/\">read this documentation.</a></p>"
msgstr ""
@@ -1170,21 +1043,14 @@
#. Template'
#: crm/doctype/contract_template/contract_template.json
msgctxt "Contract Template"
-msgid ""
-"<h4>Contract Template Example</h4>\n"
-"\n"
-"<pre>Contract for Customer {{ party_name }}\n"
-"\n"
+msgid "<h4>Contract Template Example</h4>\n\n"
+"<pre>Contract for Customer {{ party_name }}\n\n"
"-Valid From : {{ start_date }} \n"
"-Valid To : {{ end_date }}\n"
-"</pre>\n"
-"\n"
-"<h4>How to get fieldnames</h4>\n"
-"\n"
-"<p>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)</p>\n"
-"\n"
-"<h4>Templating</h4>\n"
-"\n"
+"</pre>\n\n"
+"<h4>How to get fieldnames</h4>\n\n"
+"<p>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)</p>\n\n"
+"<h4>Templating</h4>\n\n"
"<p>Templates are compiled using the Jinja Templating Language. To learn more about Jinja, <a class=\"strong\" href=\"http://jinja.pocoo.org/docs/dev/templates/\">read this documentation.</a></p>"
msgstr ""
@@ -1192,21 +1058,14 @@
#. and Conditions'
#: setup/doctype/terms_and_conditions/terms_and_conditions.json
msgctxt "Terms and Conditions"
-msgid ""
-"<h4>Standard Terms and Conditions Example</h4>\n"
-"\n"
-"<pre>Delivery Terms for Order number {{ name }}\n"
-"\n"
+msgid "<h4>Standard Terms and Conditions Example</h4>\n\n"
+"<pre>Delivery Terms for Order number {{ name }}\n\n"
"-Order Date : {{ transaction_date }} \n"
"-Expected Delivery Date : {{ delivery_date }}\n"
-"</pre>\n"
-"\n"
-"<h4>How to get fieldnames</h4>\n"
-"\n"
-"<p>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)</p>\n"
-"\n"
-"<h4>Templating</h4>\n"
-"\n"
+"</pre>\n\n"
+"<h4>How to get fieldnames</h4>\n\n"
+"<p>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)</p>\n\n"
+"<h4>Templating</h4>\n\n"
"<p>Templates are compiled using the Jinja Templating Language. To learn more about Jinja, <a class=\"strong\" href=\"http://jinja.pocoo.org/docs/dev/templates/\">read this documentation.</a></p>"
msgstr ""
@@ -1227,7 +1086,7 @@
#: accounts/doctype/cheque_print_template/cheque_print_template.json
msgctxt "Cheque Print Template"
msgid "<label class=\"control-label\" style=\"margin-bottom: 0px;\">Amount In Words</label>"
-msgstr "<label class=\"control-label\" style=\"margin-bottom: 0px;\">مقدار در کلمات</label>"
+msgstr "<label class=\"control-label\" style=\"margin-bottom: 0px;\">مقدار به حروف</label>"
#. Content of the 'Date Settings' (HTML) field in DocType 'Cheque Print
#. Template'
@@ -1239,8 +1098,7 @@
#. Content of the 'html_llwp' (HTML) field in DocType 'Request for Quotation'
#: buying/doctype/request_for_quotation/request_for_quotation.json
msgctxt "Request for Quotation"
-msgid ""
-"<p>In your <b>Email Template</b>, you can use the following special variables:\n"
+msgid "<p>In your <b>Email Template</b>, you can use the following special variables:\n"
"</p>\n"
"<ul>\n"
" <li>\n"
@@ -1266,40 +1124,28 @@
#. Account'
#: accounts/doctype/payment_gateway_account/payment_gateway_account.json
msgctxt "Payment Gateway Account"
-msgid ""
-"<pre><h5>Message Example</h5>\n"
-"\n"
-"<p> Thank You for being a part of {{ doc.company }}! We hope you are enjoying the service.</p>\n"
-"\n"
-"<p> Please find enclosed the E Bill statement. The outstanding amount is {{ doc.grand_total }}.</p>\n"
-"\n"
-"<p> We don't want you to be spending time running around in order to pay for your Bill.<br>After all, life is beautiful and the time you have in hand should be spent to enjoy it!<br>So here are our little ways to help you get more time for life! </p>\n"
-"\n"
-"<a href=\"{{ payment_url }}\"> click here to pay </a>\n"
-"\n"
+msgid "<pre><h5>Message Example</h5>\n\n"
+"<p> Thank You for being a part of {{ doc.company }}! We hope you are enjoying the service.</p>\n\n"
+"<p> Please find enclosed the E Bill statement. The outstanding amount is {{ doc.grand_total }}.</p>\n\n"
+"<p> We don't want you to be spending time running around in order to pay for your Bill.<br>After all, life is beautiful and the time you have in hand should be spent to enjoy it!<br>So here are our little ways to help you get more time for life! </p>\n\n"
+"<a href=\"{{ payment_url }}\"> click here to pay </a>\n\n"
"</pre>\n"
msgstr ""
#. Content of the 'Message Examples' (HTML) field in DocType 'Payment Request'
#: accounts/doctype/payment_request/payment_request.json
msgctxt "Payment Request"
-msgid ""
-"<pre><h5>Message Example</h5>\n"
-"\n"
-"<p>Dear {{ doc.contact_person }},</p>\n"
-"\n"
-"<p>Requesting payment for {{ doc.doctype }}, {{ doc.name }} for {{ doc.grand_total }}.</p>\n"
-"\n"
-"<a href=\"{{ payment_url }}\"> click here to pay </a>\n"
-"\n"
+msgid "<pre><h5>Message Example</h5>\n\n"
+"<p>Dear {{ doc.contact_person }},</p>\n\n"
+"<p>Requesting payment for {{ doc.doctype }}, {{ doc.name }} for {{ doc.grand_total }}.</p>\n\n"
+"<a href=\"{{ payment_url }}\"> click here to pay </a>\n\n"
"</pre>\n"
msgstr ""
#. Content of the 'html_19' (HTML) field in DocType 'Inventory Dimension'
#: stock/doctype/inventory_dimension/inventory_dimension.json
msgctxt "Inventory Dimension"
-msgid ""
-"<table class=\"table table-bordered table-condensed\">\n"
+msgid "<table class=\"table table-bordered table-condensed\">\n"
"<thead>\n"
" <tr>\n"
" <th class=\"table-sr\" style=\"width: 50%;\">Child Document</th>\n"
@@ -1309,8 +1155,7 @@
"<tbody>\n"
"<tr>\n"
" <td>\n"
-" <p> To access parent document field use parent.fieldname and to access child table document field use doc.fieldname </p>\n"
-"\n"
+" <p> To access parent document field use parent.fieldname and to access child table document field use doc.fieldname </p>\n\n"
" </td>\n"
" <td>\n"
" <p>To access document field use doc.fieldname </p>\n"
@@ -1318,22 +1163,14 @@
"</tr>\n"
"<tr>\n"
" <td>\n"
-" <p><b>Example: </b> parent.doctype == \"Stock Entry\" and doc.item_code == \"Test\" </p>\n"
-"\n"
+" <p><b>Example: </b> parent.doctype == \"Stock Entry\" and doc.item_code == \"Test\" </p>\n\n"
" </td>\n"
" <td>\n"
" <p><b>Example: </b> doc.doctype == \"Stock Entry\" and doc.purpose == \"Manufacture\"</p> \n"
" </td>\n"
-"</tr>\n"
-"\n"
+"</tr>\n\n"
"</tbody>\n"
-"</table>\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
+"</table>\n\n\n\n\n\n\n"
msgstr ""
#: stock/report/stock_ledger_invariant_check/stock_ledger_invariant_check.py:190
@@ -1373,19 +1210,17 @@
#. Description of the Onboarding Step 'Create a Sales Order'
#: selling/onboarding_step/create_a_sales_order/create_a_sales_order.json
-msgid ""
-"A Sales Order is a confirmation of an order from your customer. It is also referred to as Proforma Invoice.\n"
-"\n"
+msgid "A Sales Order is a confirmation of an order from your customer. It is also referred to as Proforma Invoice.\n\n"
"Sales Order at the heart of your sales and purchase transactions. Sales Orders are linked in Delivery Note, Sales Invoices, Material Request, and Maintenance transactions. Through Sales Order, you can track fulfillment of the overall deal towards the customer."
msgstr ""
#: setup/doctype/company/company.py:937
msgid "A Transaction Deletion Job is triggered for {0}"
-msgstr "یک کار حذف تراکنش برای {0} راه اندازی می شود"
+msgstr "یک کار حذف تراکنش برای {0} فعال می شود"
#: setup/doctype/company/company.py:914
msgid "A Transaction Deletion Job: {0} is already running for {1}"
-msgstr "یک کار حذف تراکنش: {0} از قبل برای {1} در حال اجرا است"
+msgstr "یک کار حذف تراکنش: {0} در حال حاضر برای {1} در حال اجرا است"
#. Description of the 'Send To Primary Contact' (Check) field in DocType
#. 'Process Statement Of Accounts'
@@ -1446,105 +1281,105 @@
#: assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.json
msgctxt "Asset Depreciation Schedule"
msgid "ACC-ADS-.YYYY.-"
-msgstr "ACC-ADS-.YYYY.-"
+msgstr ""
#. Option for the 'Series' (Select) field in DocType 'Asset Maintenance Log'
#: assets/doctype/asset_maintenance_log/asset_maintenance_log.json
msgctxt "Asset Maintenance Log"
msgid "ACC-AML-.YYYY.-"
-msgstr "ACC-AML-.YYYY.-"
+msgstr ""
#. Option for the 'Naming Series' (Select) field in DocType 'Asset Shift
#. Allocation'
#: assets/doctype/asset_shift_allocation/asset_shift_allocation.json
msgctxt "Asset Shift Allocation"
msgid "ACC-ASA-.YYYY.-"
-msgstr "ACC-ASA-.YYYY.-"
+msgstr ""
#. Option for the 'Series' (Select) field in DocType 'Asset Capitalization'
#: assets/doctype/asset_capitalization/asset_capitalization.json
msgctxt "Asset Capitalization"
msgid "ACC-ASC-.YYYY.-"
-msgstr "ACC-ASC-.YYYY.-"
+msgstr ""
#. Option for the 'Series' (Select) field in DocType 'Asset Repair'
#: assets/doctype/asset_repair/asset_repair.json
msgctxt "Asset Repair"
msgid "ACC-ASR-.YYYY.-"
-msgstr "ACC-ASR-.YYYY.-"
+msgstr ""
#. Option for the 'Naming Series' (Select) field in DocType 'Asset'
#: assets/doctype/asset/asset.json
msgctxt "Asset"
msgid "ACC-ASS-.YYYY.-"
-msgstr "ACC-ASS-.YYYY.-"
+msgstr ""
#. Option for the 'Series' (Select) field in DocType 'Bank Transaction'
#: accounts/doctype/bank_transaction/bank_transaction.json
msgctxt "Bank Transaction"
msgid "ACC-BTN-.YYYY.-"
-msgstr "ACC-BTN-.YYYY.-"
+msgstr ""
#. Option for the 'Series' (Select) field in DocType 'Journal Entry'
#: accounts/doctype/journal_entry/journal_entry.json
msgctxt "Journal Entry"
msgid "ACC-JV-.YYYY.-"
-msgstr "ACC-JV-.YYYY.-"
+msgstr ""
#. Option for the 'Series' (Select) field in DocType 'Payment Entry'
#: accounts/doctype/payment_entry/payment_entry.json
msgctxt "Payment Entry"
msgid "ACC-PAY-.YYYY.-"
-msgstr "ACC-PAY-.YYYY.-"
+msgstr ""
#. Option for the 'Invoice Series' (Select) field in DocType 'Import Supplier
#. Invoice'
#: regional/doctype/import_supplier_invoice/import_supplier_invoice.json
msgctxt "Import Supplier Invoice"
msgid "ACC-PINV-.YYYY.-"
-msgstr "ACC-PINV-.YYYY.-"
+msgstr ""
#. Option for the 'Series' (Select) field in DocType 'Purchase Invoice'
#: accounts/doctype/purchase_invoice/purchase_invoice.json
msgctxt "Purchase Invoice"
msgid "ACC-PINV-.YYYY.-"
-msgstr "ACC-PINV-.YYYY.-"
+msgstr ""
#. Option for the 'Series' (Select) field in DocType 'Purchase Invoice'
#: accounts/doctype/purchase_invoice/purchase_invoice.json
msgctxt "Purchase Invoice"
msgid "ACC-PINV-RET-.YYYY.-"
-msgstr "ACC-PINV-RET-.YYYY.-"
+msgstr ""
#. Option for the 'Series' (Select) field in DocType 'Payment Request'
#: accounts/doctype/payment_request/payment_request.json
msgctxt "Payment Request"
msgid "ACC-PRQ-.YYYY.-"
-msgstr "ACC-PRQ-.YYYY.-"
+msgstr ""
#. Option for the 'Series' (Select) field in DocType 'POS Invoice'
#: accounts/doctype/pos_invoice/pos_invoice.json
msgctxt "POS Invoice"
msgid "ACC-PSINV-.YYYY.-"
-msgstr "ACC-PSINV-.YYYY.-"
+msgstr ""
#. Option for the 'naming_series' (Select) field in DocType 'Shareholder'
#: accounts/doctype/shareholder/shareholder.json
msgctxt "Shareholder"
msgid "ACC-SH-.YYYY.-"
-msgstr "ACC-SH-.YYYY.-"
+msgstr ""
#. Option for the 'Series' (Select) field in DocType 'Sales Invoice'
#: accounts/doctype/sales_invoice/sales_invoice.json
msgctxt "Sales Invoice"
msgid "ACC-SINV-.YYYY.-"
-msgstr "ACC-SINV-.YYYY.-"
+msgstr ""
#. Option for the 'Series' (Select) field in DocType 'Sales Invoice'
#: accounts/doctype/sales_invoice/sales_invoice.json
msgctxt "Sales Invoice"
msgid "ACC-SINV-RET-.YYYY.-"
-msgstr "ACC-SINV-RET-.YYYY.-"
+msgstr ""
#. Label of a Date field in DocType 'Serial No'
#: stock/doctype/serial_no/serial_no.json
@@ -1588,7 +1423,7 @@
#: utilities/doctype/video_settings/video_settings.json
msgctxt "Video Settings"
msgid "API Key"
-msgstr "کلید ای پی ای"
+msgstr "کلید API"
#. Label of a Data field in DocType 'Shipment'
#: stock/doctype/shipment/shipment.json
@@ -1600,7 +1435,7 @@
#: setup/doctype/company/company.json
msgctxt "Company"
msgid "Abbr"
-msgstr "اببر"
+msgstr ""
#. Label of a Data field in DocType 'Item Attribute Value'
#: stock/doctype/item_attribute_value/item_attribute_value.json
@@ -3303,7 +3138,7 @@
#. Subtitle of the Module Onboarding 'Accounts'
#: accounts/module_onboarding/accounts/accounts.json
msgid "Accounts, Invoices, Taxation, and more."
-msgstr ""
+msgstr "حساب ها، فاکتورها، مالیات و موارد دیگر."
#: accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts.py:33
#: accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts_with_account_number.py:46
@@ -3779,7 +3614,7 @@
#: assets/doctype/asset_capitalization_stock_item/asset_capitalization_stock_item.json
msgctxt "Asset Capitalization Stock Item"
msgid "Actual Qty in Warehouse"
-msgstr "تعداد واقعی در انبار"
+msgstr "مقدار واقعی در انبار"
#: stock/doctype/stock_ledger_entry/stock_ledger_entry.py:185
msgid "Actual Qty is mandatory"
@@ -4946,13 +4781,13 @@
#: buying/doctype/purchase_order/purchase_order.json
msgctxt "Purchase Order"
msgid "Advance Payment Status"
-msgstr ""
+msgstr "وضعیت پیش پرداخت"
#. Label of a Select field in DocType 'Sales Order'
#: selling/doctype/sales_order/sales_order.json
msgctxt "Sales Order"
msgid "Advance Payment Status"
-msgstr ""
+msgstr "وضعیت پیش پرداخت"
#: controllers/accounts_controller.py:214
msgid "Advance Payments"
@@ -5381,7 +5216,7 @@
#: accounts/doctype/bisect_accounting_statements/bisect_accounting_statements.json
msgctxt "Bisect Accounting Statements"
msgid "Algorithm"
-msgstr ""
+msgstr "الگوریتم"
#. Name of a role
#: accounts/doctype/pos_invoice/pos_invoice.json
@@ -5818,7 +5653,7 @@
#: accounts/doctype/pos_payment_method/pos_payment_method.json
msgctxt "POS Payment Method"
msgid "Allow In Returns"
-msgstr "Allow In Returns"
+msgstr ""
#. Label of a Check field in DocType 'Buying Settings'
#: buying/doctype/buying_settings/buying_settings.json
@@ -6091,13 +5926,13 @@
#: selling/doctype/customer/customer.json
msgctxt "Customer"
msgid "Allowed Items"
-msgstr ""
+msgstr "آیتمهای مجاز"
#. Group in Supplier's connections
#: buying/doctype/supplier/supplier.json
msgctxt "Supplier"
msgid "Allowed Items"
-msgstr ""
+msgstr "آیتمهای مجاز"
#. Name of a DocType
#: accounts/doctype/allowed_to_transact_with/allowed_to_transact_with.json
@@ -7414,6 +7249,7 @@
#. Description of the 'Minimum Value' (Float) field in DocType 'Quality
#. Inspection Reading'
#. Description of the 'Maximum Value' (Float) field in DocType 'Quality
+#. Inspection Reading'
#: stock/doctype/quality_inspection_reading/quality_inspection_reading.json
msgctxt "Quality Inspection Reading"
msgid "Applied on each reading."
@@ -9283,7 +9119,7 @@
#: setup/doctype/employee/employee.json
msgctxt "Employee"
msgid "B-"
-msgstr "ب-"
+msgstr "B-"
#. Option for the 'Algorithm' (Select) field in DocType 'Bisect Accounting
#. Statements'
@@ -9296,7 +9132,7 @@
#: manufacturing/doctype/material_request_plan_item/material_request_plan_item.json
msgctxt "Material Request Plan Item"
msgid "BIN Qty"
-msgstr "BIN Qty"
+msgstr ""
#. Name of a DocType
#: manufacturing/doctype/bom/bom.json manufacturing/doctype/bom/bom_tree.js:8
@@ -9376,7 +9212,7 @@
#: manufacturing/page/bom_comparison_tool/bom_comparison_tool.js:21
msgid "BOM 1"
-msgstr "BOM 1"
+msgstr ""
#: manufacturing/doctype/bom/bom.py:1348
msgid "BOM 1 {0} and BOM 2 {1} should not be same"
@@ -9384,7 +9220,7 @@
#: manufacturing/page/bom_comparison_tool/bom_comparison_tool.js:38
msgid "BOM 2"
-msgstr "BOM 2"
+msgstr ""
#. Label of a Link in the Manufacturing Workspace
#: manufacturing/page/bom_comparison_tool/bom_comparison_tool.js:4
@@ -9453,7 +9289,7 @@
#. Name of a report
#: manufacturing/report/bom_explorer/bom_explorer.json
msgid "BOM Explorer"
-msgstr "BOM Explorer"
+msgstr ""
#. Name of a DocType
#: manufacturing/doctype/bom_explosion_item/bom_explosion_item.json
@@ -9566,7 +9402,7 @@
#: manufacturing/report/bom_stock_report/bom_stock_report.py:27
msgid "BOM Qty"
-msgstr "BOM Qty"
+msgstr ""
#: stock/report/item_prices/item_prices.py:60
msgid "BOM Rate"
@@ -9605,7 +9441,7 @@
#: manufacturing/report/bom_stock_report/bom_stock_report.py:28
msgid "BOM UoM"
-msgstr "BOM UoM"
+msgstr ""
#. Name of a DocType
#: manufacturing/doctype/bom_update_batch/bom_update_batch.json
@@ -9793,13 +9629,13 @@
#: accounts/doctype/bisect_accounting_statements/bisect_accounting_statements.json
msgctxt "Bisect Accounting Statements"
msgid "Balance Sheet Summary"
-msgstr ""
+msgstr "خلاصه ترازنامه"
#. Label of a Float field in DocType 'Bisect Nodes'
#: accounts/doctype/bisect_nodes/bisect_nodes.json
msgctxt "Bisect Nodes"
msgid "Balance Sheet Summary"
-msgstr ""
+msgstr "خلاصه ترازنامه"
#. Label of a Currency field in DocType 'Stock Ledger Entry'
#: stock/doctype/stock_ledger_entry/stock_ledger_entry.json
@@ -10705,7 +10541,7 @@
#: stock/doctype/serial_and_batch_bundle/serial_and_batch_bundle.py:2118
msgid "Batch No {0} does not exists"
-msgstr "شماره دسته {0} وجود ندارد"
+msgstr ""
#: stock/utils.py:643
msgid "Batch No {0} is linked with Item {1} which has serial no. Please scan serial no instead."
@@ -10834,7 +10670,7 @@
#: accounts/doctype/subscription/subscription.py:341
msgid "Below Subscription Plans are of different currency to the party default billing currency/Company currency: {0}"
-msgstr "طرحهای اشتراک زیر دارای واحد پولی متفاوت با ارز پیشفرض صورتحساب طرف/ارز شرکت هستند: {0}"
+msgstr ""
#: accounts/report/accounts_receivable/accounts_receivable.py:1061
#: accounts/report/purchase_register/purchase_register.py:214
@@ -11923,7 +11759,7 @@
#: stock/doctype/closing_stock_balance/closing_stock_balance.json
msgctxt "Closing Stock Balance"
msgid "CBAL-.#####"
-msgstr "CBAL-.#####"
+msgstr ""
#. Label of a Link field in DocType 'Process Statement Of Accounts'
#: accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.json
@@ -11944,13 +11780,13 @@
#: stock/report/cogs_by_item_group/cogs_by_item_group.py:45
msgid "COGS Debit"
-msgstr "COGS Debit"
+msgstr ""
#. Name of a Workspace
#. Label of a Card Break in the Home Workspace
#: crm/workspace/crm/crm.json setup/workspace/home/home.json
msgid "CRM"
-msgstr "CRM"
+msgstr ""
#. Name of a DocType
#: crm/doctype/crm_note/crm_note.json
@@ -11975,19 +11811,19 @@
#: crm/doctype/lead/lead.json
msgctxt "Lead"
msgid "CRM-LEAD-.YYYY.-"
-msgstr "CRM-LEAD-.YYYY.-"
+msgstr ""
#. Option for the 'Series' (Select) field in DocType 'Opportunity'
#: crm/doctype/opportunity/opportunity.json
msgctxt "Opportunity"
msgid "CRM-OPP-.YYYY.-"
-msgstr "CRM-OPP-.YYYY.-"
+msgstr ""
#. Option for the 'Series' (Select) field in DocType 'Customer'
#: selling/doctype/customer/customer.json
msgctxt "Customer"
msgid "CUST-.YYYY.-"
-msgstr "CUST-.YYYY.-"
+msgstr ""
#: accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts.py:34
#: accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts_with_account_number.py:50
@@ -12875,7 +12711,7 @@
#: accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts.py:26
#: accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts_with_account_number.py:39
msgid "Capital Equipment"
-msgstr ""
+msgstr "تجهیزات سرمایه ای"
#: accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts.py:103
#: accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts_with_account_number.py:151
@@ -17415,7 +17251,7 @@
#. Label of a Card Break in the Accounting Workspace
#: accounts/workspace/accounting/accounting.json
msgid "Cost Center and Budgeting"
-msgstr ""
+msgstr "مرکز هزینه و بودجه"
#: accounts/doctype/cost_center/cost_center.py:77
msgid "Cost Center is a part of Cost Center Allocation, hence cannot be converted to a group"
@@ -17768,7 +17604,7 @@
#: accounts/doctype/bank_clearance/bank_clearance.py:79
#: accounts/doctype/journal_entry/journal_entry.js:298
msgid "Cr"
-msgstr "Cr"
+msgstr ""
#: accounts/doctype/account/account_tree.js:148
#: accounts/doctype/account/account_tree.js:151
@@ -18088,7 +17924,7 @@
#: public/js/utils/serial_no_batch_selector.js:220
msgid "Create Serial Nos"
-msgstr "شماره های سریال ایجاد کنید"
+msgstr "ایجاد شمارههای سریال"
#: stock/dashboard/item_dashboard.js:271
#: stock/doctype/material_request/material_request.js:376
@@ -18138,13 +17974,13 @@
#. Title of an Onboarding Step
#: accounts/onboarding_step/create_your_first_purchase_invoice/create_your_first_purchase_invoice.json
msgid "Create Your First Purchase Invoice "
-msgstr ""
+msgstr "اولین فاکتور خرید خود را ایجاد کنید "
#. Title of an Onboarding Step
#: accounts/onboarding_step/create_your_first_sales_invoice/create_your_first_sales_invoice.json
#: setup/onboarding_step/create_your_first_sales_invoice/create_your_first_sales_invoice.json
msgid "Create Your First Sales Invoice "
-msgstr ""
+msgstr "اولین فاکتور فروش خود را ایجاد کنید "
#. Title of an Onboarding Step
#: accounts/onboarding_step/create_a_customer/create_a_customer.json
@@ -18196,12 +18032,12 @@
#: setup/onboarding_step/create_a_supplier/create_a_supplier.json
#: stock/onboarding_step/create_a_supplier/create_a_supplier.json
msgid "Create a Supplier"
-msgstr ""
+msgstr "یک تامین کننده ایجاد کنید"
#. Title of an Onboarding Step
#: manufacturing/onboarding_step/warehouse/warehouse.json
msgid "Create a Warehouse"
-msgstr ""
+msgstr "یک انبار ایجاد کنید"
#. Label of an action in the Onboarding Step 'Create an Item'
#: setup/onboarding_step/create_an_item/create_an_item.json
@@ -18367,14 +18203,12 @@
msgstr "ایجاد <b><a href='/app/{0}'>{1}(ها)</a></b> با موفقیت"
#: utilities/bulk_transaction.py:190
-msgid ""
-"Creation of {0} failed.\n"
+msgid "Creation of {0} failed.\n"
"\t\t\t\tCheck <b><a href=\"/app/bulk-transaction-log\">Bulk Transaction Log</a></b>"
msgstr ""
#: utilities/bulk_transaction.py:181
-msgid ""
-"Creation of {0} partially successful.\n"
+msgid "Creation of {0} partially successful.\n"
"\t\t\t\tCheck <b><a href=\"/app/bulk-transaction-log\">Bulk Transaction Log</a></b>"
msgstr ""
@@ -20358,13 +20192,13 @@
#: manufacturing/doctype/downtime_entry/downtime_entry.json
msgctxt "Downtime Entry"
msgid "DT-"
-msgstr "DT-"
+msgstr ""
#. Option for the 'Series' (Select) field in DocType 'Dunning'
#: accounts/doctype/dunning/dunning.json
msgctxt "Dunning"
msgid "DUNN-.MM.-.YY.-"
-msgstr "DUNN-.MM.-.YY.-"
+msgstr ""
#: public/js/stock_analytics.js:51
msgid "Daily"
@@ -20890,7 +20724,7 @@
#: accounts/doctype/payment_ledger_entry/payment_ledger_entry.json
msgctxt "Payment Ledger Entry"
msgid "DeLinked"
-msgstr "DeLinked"
+msgstr ""
#. Label of a Data field in DocType 'Prospect Opportunity'
#: crm/doctype/prospect_opportunity/prospect_opportunity.json
@@ -25194,7 +25028,7 @@
#: accounts/doctype/pos_profile/pos_profile.py:135
msgid "Duplicate customer group found in the customer group table"
-msgstr ""
+msgstr "گروه مشتری تکراری در جدول گروه مشتری یافت شد"
#: stock/doctype/item_manufacturer/item_manufacturer.py:44
msgid "Duplicate entry against the item code {0} and manufacturer {1}"
@@ -25261,19 +25095,19 @@
#: stock/doctype/item_barcode/item_barcode.json
msgctxt "Item Barcode"
msgid "EAN"
-msgstr "EAN"
+msgstr ""
#. Option for the 'Barcode Type' (Select) field in DocType 'Item Barcode'
#: stock/doctype/item_barcode/item_barcode.json
msgctxt "Item Barcode"
msgid "EAN-12"
-msgstr "EAN-12"
+msgstr ""
#. Option for the 'Barcode Type' (Select) field in DocType 'Item Barcode'
#: stock/doctype/item_barcode/item_barcode.json
msgctxt "Item Barcode"
msgid "EAN-8"
-msgstr "EAN-8"
+msgstr ""
#. Label of a Data field in DocType 'Tally Migration'
#: erpnext_integrations/doctype/tally_migration/tally_migration.json
@@ -25460,7 +25294,7 @@
#: accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts.py:27
#: accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts_with_account_number.py:40
msgid "Electronic Equipment"
-msgstr ""
+msgstr "تجهیزات الکترونیکی"
#. Name of a report
#: regional/report/electronic_invoice_register/electronic_invoice_register.json
@@ -26351,18 +26185,16 @@
#: accounts/doctype/bank_guarantee/bank_guarantee.py:51
msgid "Enter the Bank Guarantee Number before submitting."
-msgstr ""
+msgstr "قبل از ارسال، شماره ضمانت نامه بانکی را وارد کنید."
#: manufacturing/doctype/routing/routing.js:82
-msgid ""
-"Enter the Operation, the table will fetch the Operation details like Hourly Rate, Workstation automatically.\n"
-"\n"
+msgid "Enter the Operation, the table will fetch the Operation details like Hourly Rate, Workstation automatically.\n\n"
" After that, set the Operation Time in minutes and the table will calculate the Operation Costs based on the Hourly Rate and Operation Time."
msgstr ""
#: accounts/doctype/bank_guarantee/bank_guarantee.py:53
msgid "Enter the name of the Beneficiary before submitting."
-msgstr ""
+msgstr "قبل از ارسال نام ذینفع را وارد کنید."
#: accounts/doctype/bank_guarantee/bank_guarantee.py:55
msgid "Enter the name of the bank or lending institution before submitting."
@@ -26520,7 +26352,7 @@
#: accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py:273
msgid "Error Occurred"
-msgstr ""
+msgstr "خطا رخ داده است"
#: telephony/doctype/call_log/call_log.py:195
msgid "Error during caller information update"
@@ -26604,8 +26436,7 @@
#. Description of the 'Serial Number Series' (Data) field in DocType 'Item'
#: stock/doctype/item/item.json
msgctxt "Item"
-msgid ""
-"Example: ABCD.#####\n"
+msgid "Example: ABCD.#####\n"
"If series is set and Serial No is not mentioned in transactions, then automatic serial number will be created based on this series. If you always want to explicitly mention Serial Nos for this item. leave this blank."
msgstr ""
@@ -27402,7 +27233,7 @@
#: stock/doctype/item/item.json
msgctxt "Item"
msgid "FIFO"
-msgstr "FIFO"
+msgstr ""
#. Option for the 'Default Valuation Method' (Select) field in DocType 'Stock
#. Settings'
@@ -27411,7 +27242,7 @@
#: stock/doctype/stock_settings/stock_settings.json
msgctxt "Stock Settings"
msgid "FIFO"
-msgstr "FIFO"
+msgstr ""
#. Name of a report
#: stock/report/fifo_queue_vs_qty_after_transaction_comparison/fifo_queue_vs_qty_after_transaction_comparison.json
@@ -28018,7 +27849,7 @@
#. Name of a Workspace
#: accounts/workspace/financial_reports/financial_reports.json
msgid "Financial Reports"
-msgstr ""
+msgstr "گزارشهای مالی"
#. Title of an Onboarding Step
#. Label of a Card Break in the Financial Reports Workspace
@@ -28476,7 +28307,7 @@
#: controllers/stock_controller.py:770
msgid "For Item {0} cannot be received more than {1} qty against the {2} {3}"
-msgstr "برای مورد {0} نمی توان بیش از {1} تعداد در برابر {2} {3} دریافت کرد"
+msgstr ""
#. Label of a Link field in DocType 'Job Card'
#: manufacturing/doctype/job_card/job_card.json
@@ -28503,6 +28334,7 @@
#. Description of the 'Planned Quantity' (Float) field in DocType 'Sales Order
#. Item'
#. Description of the 'Produced Quantity' (Float) field in DocType 'Sales Order
+#. Item'
#: selling/doctype/sales_order_item/sales_order_item.json
msgctxt "Sales Order Item"
msgid "For Production"
@@ -29533,19 +29365,19 @@
#: buying/doctype/purchase_order/purchase_order.json
msgctxt "Purchase Order"
msgid "Fully Paid"
-msgstr ""
+msgstr "به طور کامل پرداخت شده"
#. Option for the 'Advance Payment Status' (Select) field in DocType 'Sales
#. Order'
#: selling/doctype/sales_order/sales_order.json
msgctxt "Sales Order"
msgid "Fully Paid"
-msgstr ""
+msgstr "به طور کامل پرداخت شده"
#: accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts.py:28
#: accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts_with_account_number.py:41
msgid "Furniture and Fixtures"
-msgstr ""
+msgstr "مبلمان و وسایل"
#: accounts/doctype/account/account_tree.js:111
msgid "Further accounts can be made under Groups, but entries can be made against non-Groups"
@@ -29577,7 +29409,7 @@
#: stock/report/stock_ledger_invariant_check/stock_ledger_invariant_check.py:235
#: stock/report/stock_ledger_variance/stock_ledger_variance.py:159
msgid "G - D"
-msgstr "G - D"
+msgstr ""
#: accounts/report/accounts_receivable_summary/accounts_receivable_summary.py:174
#: accounts/report/general_and_payment_ledger_comparison/general_and_payment_ledger_comparison.py:243
@@ -29606,13 +29438,13 @@
#: stock/doctype/item_barcode/item_barcode.json
msgctxt "Item Barcode"
msgid "GS1"
-msgstr "GS1"
+msgstr ""
#. Option for the 'Barcode Type' (Select) field in DocType 'Item Barcode'
#: stock/doctype/item_barcode/item_barcode.json
msgctxt "Item Barcode"
msgid "GTIN"
-msgstr "GTIN"
+msgstr ""
#. Label of a Currency field in DocType 'Exchange Rate Revaluation Account'
#: accounts/doctype/exchange_rate_revaluation_account/exchange_rate_revaluation_account.json
@@ -30662,7 +30494,7 @@
#: stock/report/stock_ledger_invariant_check/stock_ledger_invariant_check.py:245
#: stock/report/stock_ledger_variance/stock_ledger_variance.py:169
msgid "H - F"
-msgstr "H - F"
+msgstr ""
#. Name of a role
#: crm/doctype/appointment_booking_settings/appointment_booking_settings.json
@@ -30686,13 +30518,13 @@
#: setup/doctype/driver/driver.json
msgctxt "Driver"
msgid "HR-DRI-.YYYY.-"
-msgstr "HR-DRI-.YYYY.-"
+msgstr ""
#. Option for the 'Series' (Select) field in DocType 'Employee'
#: setup/doctype/employee/employee.json
msgctxt "Employee"
msgid "HR-EMP-"
-msgstr "HR-EMP-"
+msgstr ""
#. Option for the 'Periodicity' (Select) field in DocType 'Maintenance Schedule
#. Item'
@@ -31183,25 +31015,25 @@
#: accounts/doctype/bank_account/bank_account.json
msgctxt "Bank Account"
msgid "IBAN"
-msgstr "IBAN"
+msgstr ""
#. Label of a Data field in DocType 'Bank Guarantee'
#: accounts/doctype/bank_guarantee/bank_guarantee.json
msgctxt "Bank Guarantee"
msgid "IBAN"
-msgstr "IBAN"
+msgstr ""
#. Label of a Data field in DocType 'Employee'
#: setup/doctype/employee/employee.json
msgctxt "Employee"
msgid "IBAN"
-msgstr "IBAN"
+msgstr ""
#. Label of a Read Only field in DocType 'Payment Request'
#: accounts/doctype/payment_request/payment_request.json
msgctxt "Payment Request"
msgid "IBAN"
-msgstr "IBAN"
+msgstr ""
#: accounts/doctype/bank_account/bank_account.py:84
#: accounts/doctype/bank_account/bank_account.py:87
@@ -31228,7 +31060,7 @@
#. Name of a report
#: regional/report/irs_1099/irs_1099.json
msgid "IRS 1099"
-msgstr "IRS 1099"
+msgstr ""
#. Option for the 'Barcode Type' (Select) field in DocType 'Item Barcode'
#: stock/doctype/item_barcode/item_barcode.json
@@ -31240,25 +31072,25 @@
#: stock/doctype/item_barcode/item_barcode.json
msgctxt "Item Barcode"
msgid "ISBN-10"
-msgstr "ISBN-10"
+msgstr ""
#. Option for the 'Barcode Type' (Select) field in DocType 'Item Barcode'
#: stock/doctype/item_barcode/item_barcode.json
msgctxt "Item Barcode"
msgid "ISBN-13"
-msgstr "ISBN-13"
+msgstr ""
#. Option for the 'Series' (Select) field in DocType 'Issue'
#: support/doctype/issue/issue.json
msgctxt "Issue"
msgid "ISS-.YYYY.-"
-msgstr "ISS-.YYYY.-"
+msgstr ""
#. Option for the 'Barcode Type' (Select) field in DocType 'Item Barcode'
#: stock/doctype/item_barcode/item_barcode.json
msgctxt "Item Barcode"
msgid "ISSN"
-msgstr "ISSN"
+msgstr ""
#: manufacturing/report/job_card_summary/job_card_summary.py:128
#: manufacturing/report/quality_inspection_summary/quality_inspection_summary.py:69
@@ -31568,10 +31400,13 @@
#. Option for the 'Action if Accumulated Monthly Budget Exceeded on MR'
#. (Select) field in DocType 'Budget'
#. Option for the 'Action if Annual Budget Exceeded on PO' (Select) field in
+#. DocType 'Budget'
#. Option for the 'Action if Accumulated Monthly Budget Exceeded on PO'
+#. (Select) field in DocType 'Budget'
#. Option for the 'Action if Annual Budget Exceeded on Actual' (Select) field
#. in DocType 'Budget'
#. Option for the 'Action if Accumulated Monthly Budget Exceeded on Actual'
+#. (Select) field in DocType 'Budget'
#: accounts/doctype/budget/budget.json
msgctxt "Budget"
msgid "Ignore"
@@ -32021,7 +31856,7 @@
#: setup/workspace/home/home.json setup/workspace/settings/settings.json
msgctxt "Data Import"
msgid "Import Data"
-msgstr ""
+msgstr "وارد کردن دادهها"
#. Title of an Onboarding Step
#: setup/onboarding_step/data_import/data_import.json
@@ -33743,7 +33578,7 @@
#: selling/doctype/quotation/quotation.py:253
msgid "Invalid lost reason {0}, please create a new lost reason"
-msgstr "دلیل گمشده نامعتبر {0}، لطفاً یک دلیل گمشده جدید ایجاد کنید"
+msgstr "دلیل از دست رفتن نامعتبر {0}، لطفاً یک دلیل از دست رفتن جدید ایجاد کنید"
#: stock/doctype/item/item.py:402
msgid "Invalid naming series (. missing) for {0}"
@@ -37676,7 +37511,7 @@
#: stock/doctype/item/item.json
msgctxt "Item"
msgid "LIFO"
-msgstr "LIFO"
+msgstr ""
#. Option for the 'Default Valuation Method' (Select) field in DocType 'Stock
#. Settings'
@@ -37685,7 +37520,7 @@
#: stock/doctype/stock_settings/stock_settings.json
msgctxt "Stock Settings"
msgid "LIFO"
-msgstr "LIFO"
+msgstr ""
#. Label of a Data field in DocType 'Item Website Specification'
#: stock/doctype/item_website_specification/item_website_specification.json
@@ -38132,8 +37967,7 @@
#. 'Appointment Booking Settings'
#: crm/doctype/appointment_booking_settings/appointment_booking_settings.json
msgctxt "Appointment Booking Settings"
-msgid ""
-"Leave blank for home.\n"
+msgid "Leave blank for home.\n"
"This is relative to site URL, for example \"about\" will redirect to \"https://yoursitename.com/about\""
msgstr ""
@@ -38169,7 +38003,7 @@
#. Label of a Card Break in the Financial Reports Workspace
#: accounts/workspace/financial_reports/financial_reports.json
msgid "Ledgers"
-msgstr ""
+msgstr "دفتر کل"
#. Option for the 'Status' (Select) field in DocType 'Driver'
#: setup/doctype/driver/driver.json
@@ -38533,13 +38367,13 @@
#: accounts/doctype/account/account.json
msgctxt "Account"
msgid "Lft"
-msgstr "Lft"
+msgstr ""
#. Label of a Int field in DocType 'Company'
#: setup/doctype/company/company.json
msgctxt "Company"
msgid "Lft"
-msgstr "Lft"
+msgstr ""
#: accounts/report/balance_sheet/balance_sheet.py:240
msgid "Liabilities"
@@ -39132,115 +38966,115 @@
#: stock/doctype/delivery_note/delivery_note.json
msgctxt "Delivery Note"
msgid "MAT-DN-.YYYY.-"
-msgstr "MAT-DN-.YYYY.-"
+msgstr ""
#. Option for the 'Series' (Select) field in DocType 'Delivery Note'
#: stock/doctype/delivery_note/delivery_note.json
msgctxt "Delivery Note"
msgid "MAT-DN-RET-.YYYY.-"
-msgstr "MAT-DN-RET-.YYYY.-"
+msgstr ""
#. Option for the 'Series' (Select) field in DocType 'Delivery Trip'
#: stock/doctype/delivery_trip/delivery_trip.json
msgctxt "Delivery Trip"
msgid "MAT-DT-.YYYY.-"
-msgstr "MAT-DT-.YYYY.-"
+msgstr ""
#. Option for the 'Series' (Select) field in DocType 'Installation Note'
#: selling/doctype/installation_note/installation_note.json
msgctxt "Installation Note"
msgid "MAT-INS-.YYYY.-"
-msgstr "MAT-INS-.YYYY.-"
+msgstr ""
#. Option for the 'Series' (Select) field in DocType 'Landed Cost Voucher'
#: stock/doctype/landed_cost_voucher/landed_cost_voucher.json
msgctxt "Landed Cost Voucher"
msgid "MAT-LCV-.YYYY.-"
-msgstr "MAT-LCV-.YYYY.-"
+msgstr ""
#. Option for the 'Series' (Select) field in DocType 'Material Request'
#: stock/doctype/material_request/material_request.json
msgctxt "Material Request"
msgid "MAT-MR-.YYYY.-"
-msgstr "MAT-MR-.YYYY.-"
+msgstr ""
#. Option for the 'Series' (Select) field in DocType 'Maintenance Schedule'
#: maintenance/doctype/maintenance_schedule/maintenance_schedule.json
msgctxt "Maintenance Schedule"
msgid "MAT-MSH-.YYYY.-"
-msgstr "MAT-MSH-.YYYY.-"
+msgstr ""
#. Option for the 'Series' (Select) field in DocType 'Maintenance Visit'
#: maintenance/doctype/maintenance_visit/maintenance_visit.json
msgctxt "Maintenance Visit"
msgid "MAT-MVS-.YYYY.-"
-msgstr "MAT-MVS-.YYYY.-"
+msgstr ""
#. Option for the 'Series' (Select) field in DocType 'Packing Slip'
#: stock/doctype/packing_slip/packing_slip.json
msgctxt "Packing Slip"
msgid "MAT-PAC-.YYYY.-"
-msgstr "MAT-PAC-.YYYY.-"
+msgstr ""
#. Option for the 'Series' (Select) field in DocType 'Purchase Receipt'
#: stock/doctype/purchase_receipt/purchase_receipt.json
msgctxt "Purchase Receipt"
msgid "MAT-PR-RET-.YYYY.-"
-msgstr "MAT-PR-RET-.YYYY.-"
+msgstr ""
#. Option for the 'Series' (Select) field in DocType 'Purchase Receipt'
#: stock/doctype/purchase_receipt/purchase_receipt.json
msgctxt "Purchase Receipt"
msgid "MAT-PRE-.YYYY.-"
-msgstr "MAT-PRE-.YYYY.-"
+msgstr ""
#. Option for the 'Series' (Select) field in DocType 'Quality Inspection'
#: stock/doctype/quality_inspection/quality_inspection.json
msgctxt "Quality Inspection"
msgid "MAT-QA-.YYYY.-"
-msgstr "MAT-QA-.YYYY.-"
+msgstr ""
#. Option for the 'Series' (Select) field in DocType 'Stock Reconciliation'
#: stock/doctype/stock_reconciliation/stock_reconciliation.json
msgctxt "Stock Reconciliation"
msgid "MAT-RECO-.YYYY.-"
-msgstr "MAT-RECO-.YYYY.-"
+msgstr ""
#. Option for the 'Series' (Select) field in DocType 'Subcontracting Receipt'
#: subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.json
msgctxt "Subcontracting Receipt"
msgid "MAT-SCR-.YYYY.-"
-msgstr "MAT-SCR-.YYYY.-"
+msgstr ""
#. Option for the 'Series' (Select) field in DocType 'Subcontracting Receipt'
#: subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.json
msgctxt "Subcontracting Receipt"
msgid "MAT-SCR-RET-.YYYY.-"
-msgstr "MAT-SCR-RET-.YYYY.-"
+msgstr ""
#. Option for the 'Series' (Select) field in DocType 'Stock Entry'
#: stock/doctype/stock_entry/stock_entry.json
msgctxt "Stock Entry"
msgid "MAT-STE-.YYYY.-"
-msgstr "MAT-STE-.YYYY.-"
+msgstr ""
#. Option for the 'Series' (Select) field in DocType 'Blanket Order'
#: manufacturing/doctype/blanket_order/blanket_order.json
msgctxt "Blanket Order"
msgid "MFG-BLR-.YYYY.-"
-msgstr "MFG-BLR-.YYYY.-"
+msgstr ""
#. Option for the 'Naming Series' (Select) field in DocType 'Production Plan'
#: manufacturing/doctype/production_plan/production_plan.json
msgctxt "Production Plan"
msgid "MFG-PP-.YYYY.-"
-msgstr "MFG-PP-.YYYY.-"
+msgstr ""
#. Option for the 'Series' (Select) field in DocType 'Work Order'
#: manufacturing/doctype/work_order/work_order.json
msgctxt "Work Order"
msgid "MFG-WO-.YYYY.-"
-msgstr "MFG-WO-.YYYY.-"
+msgstr ""
#: manufacturing/report/downtime_analysis/downtime_analysis.js:22
#: manufacturing/report/downtime_analysis/downtime_analysis.py:78
@@ -40293,7 +40127,7 @@
#: accounts/report/profit_and_loss_statement/profit_and_loss_statement.js:19
msgid "Margin View"
-msgstr "نمای حاشیه"
+msgstr ""
#. Label of a Select field in DocType 'Employee'
#: setup/doctype/employee/employee.json
@@ -43673,7 +43507,7 @@
#: selling/doctype/sales_order/sales_order.json
msgctxt "Sales Order"
msgid "Not Requested"
-msgstr ""
+msgstr "درخواست نشده"
#: selling/report/lost_quotations/lost_quotations.py:86
#: support/report/issue_analytics/issue_analytics.py:208
@@ -44127,7 +43961,7 @@
#: accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts.py:29
#: accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts_with_account_number.py:42
msgid "Office Equipment"
-msgstr ""
+msgstr "تجهیزات اداری"
#: accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts.py:62
#: accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts_with_account_number.py:86
@@ -44406,8 +44240,7 @@
#. 'Exchange Rate Revaluation'
#: accounts/doctype/exchange_rate_revaluation/exchange_rate_revaluation.json
msgctxt "Exchange Rate Revaluation"
-msgid ""
-"Only values between [0,1) are allowed. Like {0.00, 0.04, 0.09, ...}\n"
+msgid "Only values between [0,1) are allowed. Like {0.00, 0.04, 0.09, ...}\n"
"Ex: If allowance is set at 0.07, accounts that have balance of 0.07 in either of the currencies will be considered as zero balance account"
msgstr ""
@@ -44423,116 +44256,116 @@
#: support/report/issue_summary/issue_summary.js:43
#: support/report/issue_summary/issue_summary.py:348
msgid "Open"
-msgstr "باز کن"
+msgstr "باز"
#. Option for the 'Status' (Select) field in DocType 'Appointment'
#: crm/doctype/appointment/appointment.json
msgctxt "Appointment"
msgid "Open"
-msgstr "باز کن"
+msgstr "باز"
#. Option for the 'Status' (Select) field in DocType 'Issue'
#: support/doctype/issue/issue.json
msgctxt "Issue"
msgid "Open"
-msgstr "باز کن"
+msgstr "باز"
#. Option for the 'Status' (Select) field in DocType 'Job Card'
#: manufacturing/doctype/job_card/job_card.json
msgctxt "Job Card"
msgid "Open"
-msgstr "باز کن"
+msgstr "باز"
#. Option for the 'Status' (Select) field in DocType 'Lead'
#: crm/doctype/lead/lead.json
msgctxt "Lead"
msgid "Open"
-msgstr "باز کن"
+msgstr "باز"
#. Option for the 'Status' (Select) field in DocType 'Non Conformance'
#: quality_management/doctype/non_conformance/non_conformance.json
msgctxt "Non Conformance"
msgid "Open"
-msgstr "باز کن"
+msgstr "باز"
#. Option for the 'Status' (Select) field in DocType 'Opportunity'
#: crm/doctype/opportunity/opportunity.json
msgctxt "Opportunity"
msgid "Open"
-msgstr "باز کن"
+msgstr "باز"
#. Option for the 'Status' (Select) field in DocType 'POS Opening Entry'
#: accounts/doctype/pos_opening_entry/pos_opening_entry.json
msgctxt "POS Opening Entry"
msgid "Open"
-msgstr "باز کن"
+msgstr "باز"
#. Option for the 'Status' (Select) field in DocType 'Pick List'
#: stock/doctype/pick_list/pick_list.json
msgctxt "Pick List"
msgid "Open"
-msgstr "باز کن"
+msgstr "باز"
#. Option for the 'Status' (Select) field in DocType 'Project'
#: projects/doctype/project/project.json
msgctxt "Project"
msgid "Open"
-msgstr "باز کن"
+msgstr "باز"
#. Option for the 'Status' (Select) field in DocType 'Quality Action'
#: quality_management/doctype/quality_action/quality_action.json
msgctxt "Quality Action"
msgid "Open"
-msgstr "باز کن"
+msgstr "باز"
#. Option for the 'Status' (Select) field in DocType 'Quality Action
#. Resolution'
#: quality_management/doctype/quality_action_resolution/quality_action_resolution.json
msgctxt "Quality Action Resolution"
msgid "Open"
-msgstr "باز کن"
+msgstr "باز"
#. Option for the 'Status' (Select) field in DocType 'Quality Meeting'
#: quality_management/doctype/quality_meeting/quality_meeting.json
msgctxt "Quality Meeting"
msgid "Open"
-msgstr "باز کن"
+msgstr "باز"
#. Option for the 'Status' (Select) field in DocType 'Quality Review'
#: quality_management/doctype/quality_review/quality_review.json
msgctxt "Quality Review"
msgid "Open"
-msgstr "باز کن"
+msgstr "باز"
#. Option for the 'Status' (Select) field in DocType 'Quality Review Objective'
#: quality_management/doctype/quality_review_objective/quality_review_objective.json
msgctxt "Quality Review Objective"
msgid "Open"
-msgstr "باز کن"
+msgstr "باز"
#. Option for the 'Status' (Select) field in DocType 'Quotation'
#: selling/doctype/quotation/quotation.json
msgctxt "Quotation"
msgid "Open"
-msgstr "باز کن"
+msgstr "باز"
#. Option for the 'Status' (Select) field in DocType 'Subcontracting Order'
#: subcontracting/doctype/subcontracting_order/subcontracting_order.json
msgctxt "Subcontracting Order"
msgid "Open"
-msgstr "باز کن"
+msgstr "باز"
#. Option for the 'Status' (Select) field in DocType 'Task'
#: projects/doctype/task/task.json
msgctxt "Task"
msgid "Open"
-msgstr "باز کن"
+msgstr "باز"
#. Option for the 'Status' (Select) field in DocType 'Warranty Claim'
#: support/doctype/warranty_claim/warranty_claim.json
msgctxt "Warranty Claim"
msgid "Open"
-msgstr "باز کن"
+msgstr "باز"
#. Label of a HTML field in DocType 'Lead'
#: crm/doctype/lead/lead.json
@@ -45942,7 +45775,7 @@
#: accounts/doctype/payment_order/payment_order.json
msgctxt "Payment Order"
msgid "PMO-"
-msgstr "PMO-"
+msgstr ""
#. Label of a Data field in DocType 'Stock Entry Detail'
#: stock/doctype/stock_entry_detail/stock_entry_detail.json
@@ -45954,13 +45787,13 @@
#: manufacturing/doctype/job_card/job_card.json
msgctxt "Job Card"
msgid "PO-JOB.#####"
-msgstr "PO-JOB.#####"
+msgstr ""
#. Label of a Tab Break field in DocType 'Accounts Settings'
#: accounts/doctype/accounts_settings/accounts_settings.json
msgctxt "Accounts Settings"
msgid "POS"
-msgstr "POS"
+msgstr ""
#. Name of a DocType
#: accounts/doctype/pos_closing_entry/pos_closing_entry.json
@@ -46251,19 +46084,19 @@
#: accounts/doctype/cashier_closing/cashier_closing.json
msgctxt "Cashier Closing"
msgid "POS-CLO-"
-msgstr "POS-CLO-"
+msgstr ""
#. Option for the 'Naming Series' (Select) field in DocType 'Pricing Rule'
#: accounts/doctype/pricing_rule/pricing_rule.json
msgctxt "Pricing Rule"
msgid "PRLE-.####"
-msgstr "PRLE-.####"
+msgstr ""
#. Option for the 'Series' (Select) field in DocType 'Project'
#: projects/doctype/project/project.json
msgctxt "Project"
msgid "PROJ-.####"
-msgstr "PROJ-.####"
+msgstr ""
#. Name of a DocType
#: accounts/doctype/psoa_cost_center/psoa_cost_center.json
@@ -46280,31 +46113,31 @@
#: buying/doctype/supplier_scorecard_period/supplier_scorecard_period.json
msgctxt "Supplier Scorecard Period"
msgid "PU-SSP-.YYYY.-"
-msgstr "PU-SSP-.YYYY.-"
+msgstr ""
#. Option for the 'Series' (Select) field in DocType 'Purchase Order'
#: buying/doctype/purchase_order/purchase_order.json
msgctxt "Purchase Order"
msgid "PUR-ORD-.YYYY.-"
-msgstr "PUR-ORD-.YYYY.-"
+msgstr ""
#. Option for the 'Series' (Select) field in DocType 'Request for Quotation'
#: buying/doctype/request_for_quotation/request_for_quotation.json
msgctxt "Request for Quotation"
msgid "PUR-RFQ-.YYYY.-"
-msgstr "PUR-RFQ-.YYYY.-"
+msgstr ""
#. Option for the 'Series' (Select) field in DocType 'Supplier Quotation'
#: buying/doctype/supplier_quotation/supplier_quotation.json
msgctxt "Supplier Quotation"
msgid "PUR-SQTN-.YYYY.-"
-msgstr "PUR-SQTN-.YYYY.-"
+msgstr ""
#. Option for the 'Barcode Type' (Select) field in DocType 'Item Barcode'
#: stock/doctype/item_barcode/item_barcode.json
msgctxt "Item Barcode"
msgid "PZN"
-msgstr "PZN"
+msgstr ""
#: stock/doctype/packing_slip/packing_slip.py:117
msgid "Package No(s) already in use. Try from Package No {0}"
@@ -50846,19 +50679,19 @@
#: setup/doctype/employee/employee.json
msgctxt "Employee"
msgid "Preferred Contact Email"
-msgstr ""
+msgstr "ایمیل تماس ترجیحی"
#. Label of a Data field in DocType 'Employee'
#: setup/doctype/employee/employee.json
msgctxt "Employee"
msgid "Preferred Email"
-msgstr ""
+msgstr "ایمیل ترجیحی"
#. Label of a Data field in DocType 'Packed Item'
#: stock/doctype/packed_item/packed_item.json
msgctxt "Packed Item"
msgid "Prevdoc DocType"
-msgstr "Prevdoc DocType"
+msgstr ""
#. Label of a Check field in DocType 'Supplier'
#: buying/doctype/supplier/supplier.json
@@ -54583,149 +54416,149 @@
#: stock/report/serial_no_ledger/serial_no_ledger.py:70
#: templates/generators/bom.html:50 templates/pages/rfq.html:40
msgid "Qty"
-msgstr "تعداد"
+msgstr "مقدار"
#. Label of a Float field in DocType 'Asset Capitalization Service Item'
#: assets/doctype/asset_capitalization_service_item/asset_capitalization_service_item.json
msgctxt "Asset Capitalization Service Item"
msgid "Qty"
-msgstr "تعداد"
+msgstr "مقدار"
#. Label of a Float field in DocType 'Asset Capitalization Stock Item'
#: assets/doctype/asset_capitalization_stock_item/asset_capitalization_stock_item.json
msgctxt "Asset Capitalization Stock Item"
msgid "Qty"
-msgstr "تعداد"
+msgstr "مقدار"
#. Label of a Float field in DocType 'BOM Creator Item'
#: manufacturing/doctype/bom_creator_item/bom_creator_item.json
msgctxt "BOM Creator Item"
msgid "Qty"
-msgstr "تعداد"
+msgstr "مقدار"
#. Label of a Float field in DocType 'BOM Item'
#: manufacturing/doctype/bom_item/bom_item.json
msgctxt "BOM Item"
msgid "Qty"
-msgstr "تعداد"
+msgstr "مقدار"
#. Label of a Float field in DocType 'BOM Scrap Item'
#: manufacturing/doctype/bom_scrap_item/bom_scrap_item.json
msgctxt "BOM Scrap Item"
msgid "Qty"
-msgstr "تعداد"
+msgstr "مقدار"
#. Label of a Float field in DocType 'BOM Website Item'
#: manufacturing/doctype/bom_website_item/bom_website_item.json
msgctxt "BOM Website Item"
msgid "Qty"
-msgstr "تعداد"
+msgstr "مقدار"
#. Label of a Section Break field in DocType 'Job Card Item'
#: manufacturing/doctype/job_card_item/job_card_item.json
msgctxt "Job Card Item"
msgid "Qty"
-msgstr "تعداد"
+msgstr "مقدار"
#. Label of a Float field in DocType 'Job Card Scrap Item'
#: manufacturing/doctype/job_card_scrap_item/job_card_scrap_item.json
msgctxt "Job Card Scrap Item"
msgid "Qty"
-msgstr "تعداد"
+msgstr "مقدار"
#. Label of a Float field in DocType 'Landed Cost Item'
#: stock/doctype/landed_cost_item/landed_cost_item.json
msgctxt "Landed Cost Item"
msgid "Qty"
-msgstr "تعداد"
+msgstr "مقدار"
#. Option for the 'Distribute Charges Based On' (Select) field in DocType
#. 'Landed Cost Voucher'
#: stock/doctype/landed_cost_voucher/landed_cost_voucher.json
msgctxt "Landed Cost Voucher"
msgid "Qty"
-msgstr "تعداد"
+msgstr "مقدار"
#. Label of a Float field in DocType 'Opportunity Item'
#: crm/doctype/opportunity_item/opportunity_item.json
msgctxt "Opportunity Item"
msgid "Qty"
-msgstr "تعداد"
+msgstr "مقدار"
#. Label of a Float field in DocType 'Packed Item'
#: stock/doctype/packed_item/packed_item.json
msgctxt "Packed Item"
msgid "Qty"
-msgstr "تعداد"
+msgstr "مقدار"
#. Label of a Float field in DocType 'Pick List Item'
#: stock/doctype/pick_list_item/pick_list_item.json
msgctxt "Pick List Item"
msgid "Qty"
-msgstr "تعداد"
+msgstr "مقدار"
#. Label of a Float field in DocType 'Pricing Rule'
#: accounts/doctype/pricing_rule/pricing_rule.json
msgctxt "Pricing Rule"
msgid "Qty"
-msgstr "تعداد"
+msgstr "مقدار"
#. Label of a Float field in DocType 'Product Bundle Item'
#: selling/doctype/product_bundle_item/product_bundle_item.json
msgctxt "Product Bundle Item"
msgid "Qty"
-msgstr "تعداد"
+msgstr "مقدار"
#. Label of a Data field in DocType 'Production Plan Item Reference'
#: manufacturing/doctype/production_plan_item_reference/production_plan_item_reference.json
msgctxt "Production Plan Item Reference"
msgid "Qty"
-msgstr "تعداد"
+msgstr "مقدار"
#. Label of a Float field in DocType 'Promotional Scheme Product Discount'
#: accounts/doctype/promotional_scheme_product_discount/promotional_scheme_product_discount.json
msgctxt "Promotional Scheme Product Discount"
msgid "Qty"
-msgstr "تعداد"
+msgstr "مقدار"
#. Label of a Float field in DocType 'Serial and Batch Entry'
#: stock/doctype/serial_and_batch_entry/serial_and_batch_entry.json
msgctxt "Serial and Batch Entry"
msgid "Qty"
-msgstr "تعداد"
+msgstr "مقدار"
#. Label of a Float field in DocType 'Stock Entry Detail'
#: stock/doctype/stock_entry_detail/stock_entry_detail.json
msgctxt "Stock Entry Detail"
msgid "Qty"
-msgstr "تعداد"
+msgstr "مقدار"
#. Option for the 'Reservation Based On' (Select) field in DocType 'Stock
#. Reservation Entry'
#: stock/doctype/stock_reservation_entry/stock_reservation_entry.json
msgctxt "Stock Reservation Entry"
msgid "Qty"
-msgstr "تعداد"
+msgstr "مقدار"
#. Option for the 'Distribute Additional Costs Based On ' (Select) field in
#. DocType 'Subcontracting Order'
#: subcontracting/doctype/subcontracting_order/subcontracting_order.json
msgctxt "Subcontracting Order"
msgid "Qty"
-msgstr "تعداد"
+msgstr "مقدار"
#. Option for the 'Distribute Additional Costs Based On ' (Select) field in
#. DocType 'Subcontracting Receipt'
#: subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.json
msgctxt "Subcontracting Receipt"
msgid "Qty"
-msgstr "تعداد"
+msgstr "مقدار"
#. Label of a Section Break field in DocType 'Work Order Item'
#: manufacturing/doctype/work_order_item/work_order_item.json
msgctxt "Work Order Item"
msgid "Qty"
-msgstr "تعداد"
+msgstr "مقدار"
#: templates/pages/order.html:167
msgid "Qty "
@@ -55276,7 +55109,7 @@
#: public/js/controllers/transaction.js:298
#: stock/doctype/stock_entry/stock_entry.js:143
msgid "Quality Inspection(s)"
-msgstr "بازرسی کیفیت"
+msgstr "بازرسی(های) کیفیت"
#: setup/doctype/company/company.py:377
msgid "Quality Management"
@@ -55815,7 +55648,7 @@
#. Name of a DocType
#: erpnext_integrations/doctype/quickbooks_migrator/quickbooks_migrator.json
msgid "QuickBooks Migrator"
-msgstr "QuickBooks Migrator"
+msgstr ""
#. Label of a Data field in DocType 'QuickBooks Migrator'
#: erpnext_integrations/doctype/quickbooks_migrator/quickbooks_migrator.json
@@ -55904,30 +55737,30 @@
#. Name of a DocType
#: setup/doctype/quotation_lost_reason/quotation_lost_reason.json
msgid "Quotation Lost Reason"
-msgstr "نقل قول دلیل گمشده"
+msgstr "دلیل از دست رفتن نقل قول"
#. Label of a Data field in DocType 'Quotation Lost Reason'
#: setup/doctype/quotation_lost_reason/quotation_lost_reason.json
msgctxt "Quotation Lost Reason"
msgid "Quotation Lost Reason"
-msgstr "نقل قول دلیل گمشده"
+msgstr "دلیل از دست رفتن نقل قول"
#. Label of a Link field in DocType 'Quotation Lost Reason Detail'
#: setup/doctype/quotation_lost_reason_detail/quotation_lost_reason_detail.json
msgctxt "Quotation Lost Reason Detail"
msgid "Quotation Lost Reason"
-msgstr "نقل قول دلیل گمشده"
+msgstr "دلیل از دست رفتن نقل قول"
#. Name of a DocType
#: setup/doctype/quotation_lost_reason_detail/quotation_lost_reason_detail.json
msgid "Quotation Lost Reason Detail"
-msgstr "نقل قول جزئیات دلیل گمشده"
+msgstr "جزئیات دلیل از دست رفتن نقل قول"
#. Linked DocType in Quotation Lost Reason's connections
#: setup/doctype/quotation_lost_reason/quotation_lost_reason.json
msgctxt "Quotation Lost Reason"
msgid "Quotation Lost Reason Detail"
-msgstr "نقل قول جزئیات دلیل گمشده"
+msgstr "جزئیات دلیل از دست رفتن نقل قول"
#. Label of a Data field in DocType 'Supplier Quotation'
#: buying/doctype/supplier_quotation/supplier_quotation.json
@@ -57627,7 +57460,7 @@
#: accounts/doctype/journal_entry/journal_entry.py:899
msgid "Reference #{0} dated {1}"
-msgstr "مرجع شماره {0} به تاریخ {1}"
+msgstr "مرجع #{0} به تاریخ {1}"
#: public/js/bank_reconciliation_tool/dialog_manager.js:112
msgid "Reference Date"
@@ -58057,7 +57890,7 @@
#: erpnext_integrations/doctype/quickbooks_migrator/quickbooks_migrator.json
msgctxt "QuickBooks Migrator"
msgid "Refresh Token"
-msgstr "Refresh Token"
+msgstr ""
#: stock/reorder_item.py:303
msgid "Regards,"
@@ -59908,13 +59741,13 @@
#: accounts/doctype/account/account.json
msgctxt "Account"
msgid "Rgt"
-msgstr "Rgt"
+msgstr ""
#. Label of a Int field in DocType 'Company'
#: setup/doctype/company/company.json
msgctxt "Company"
msgid "Rgt"
-msgstr "Rgt"
+msgstr ""
#. Label of a Link field in DocType 'Bisect Nodes'
#: accounts/doctype/bisect_nodes/bisect_nodes.json
@@ -60466,7 +60299,7 @@
#: accounts/doctype/bank_clearance/bank_clearance.py:97
msgid "Row #{0}: Clearance date {1} cannot be before Cheque Date {2}"
-msgstr "ردیف شماره {0}: تاریخ پاکسازی {1} نمی تواند قبل از تاریخ بررسی {2} باشد"
+msgstr "ردیف شماره #{0}: تاریخ پاکسازی {1} نمی تواند قبل از تاریخ بررسی {2} باشد"
#: assets/doctype/asset_capitalization/asset_capitalization.py:286
msgid "Row #{0}: Consumed Asset {1} cannot be Draft"
@@ -60570,7 +60403,7 @@
#: accounts/doctype/payment_entry/payment_entry.py:657
msgid "Row #{0}: Journal Entry {1} does not have account {2} or already matched against another voucher"
-msgstr "ردیف شماره {0}: ورودی مجله {1} دارای حساب {2} نیست یا قبلاً با کوپن دیگری مطابقت دارد"
+msgstr "ردیف #{0}: ورودی مجله {1} دارای حساب {2} نیست یا قبلاً با کوپن دیگری مطابقت دارد"
#: stock/doctype/item/item.py:351
msgid "Row #{0}: Maximum Net Rate cannot be greater than Minimum Net Rate"
@@ -60671,8 +60504,7 @@
msgstr "ردیف #{0}: تعداد مورد ضایعات نمی تواند صفر باشد"
#: controllers/selling_controller.py:212
-msgid ""
-"Row #{0}: Selling rate for item {1} is lower than its {2}.\n"
+msgid "Row #{0}: Selling rate for item {1} is lower than its {2}.\n"
"\t\t\t\t\tSelling {3} should be atleast {4}.<br><br>Alternatively,\n"
"\t\t\t\t\tyou can disable selling price validation in {5} to bypass\n"
"\t\t\t\t\tthis validation."
@@ -60712,7 +60544,7 @@
#: accounts/doctype/journal_entry/journal_entry.py:381
msgid "Row #{0}: Status must be {1} for Invoice Discounting {2}"
-msgstr "ردیف شماره {0}: وضعیت باید {1} برای تخفیف فاکتور {2} باشد"
+msgstr "ردیف #{0}: وضعیت باید {1} برای تخفیف فاکتور {2} باشد"
#: stock/doctype/stock_reservation_entry/stock_reservation_entry.py:273
msgid "Row #{0}: Stock cannot be reserved for Item {1} against a disabled Batch {2}."
@@ -60780,7 +60612,7 @@
#: assets/doctype/asset_category/asset_category.py:88
msgid "Row #{0}: {1} of {2} should be {3}. Please update the {1} or select a different account."
-msgstr "ردیف شماره {0}: {1} از {2} باید {3} باشد. لطفاً {1} را به روز کنید یا حساب دیگری را انتخاب کنید."
+msgstr "ردیف #{0}: {1} از {2} باید {3} باشد. لطفاً {1} را به روز کنید یا حساب دیگری را انتخاب کنید."
#: buying/utils.py:106
msgid "Row #{1}: Warehouse is mandatory for stock Item {0}"
@@ -60820,7 +60652,7 @@
#: assets/doctype/asset_maintenance/asset_maintenance.py:43
msgid "Row #{}: Please assign task to a member."
-msgstr ""
+msgstr "ردیف #{}: لطفاً کار را به یک عضو اختصاص دهید."
#: assets/doctype/asset/asset.py:300
msgid "Row #{}: Please use a different Finance Book."
@@ -60836,7 +60668,7 @@
#: accounts/doctype/pos_invoice/pos_invoice.py:371
msgid "Row #{}: You cannot add positive quantities in a return invoice. Please remove item {} to complete the return."
-msgstr ""
+msgstr "ردیف #{}: نمی توانید مقادیر مثبت را در فاکتور برگشتی اضافه کنید. لطفاً مورد {} را برای تکمیل بازگشت حذف کنید."
#: stock/doctype/pick_list/pick_list.py:83
msgid "Row #{}: item {} has been picked already."
@@ -61246,31 +61078,31 @@
#: stock/doctype/serial_and_batch_bundle/serial_and_batch_bundle.json
msgctxt "Serial and Batch Bundle"
msgid "SABB-.########"
-msgstr "SABB-.########"
+msgstr ""
#. Option for the 'Naming Series' (Select) field in DocType 'Campaign'
#: crm/doctype/campaign/campaign.json
msgctxt "Campaign"
msgid "SAL-CAM-.YYYY.-"
-msgstr "SAL-CAM-.YYYY.-"
+msgstr ""
#. Option for the 'Series' (Select) field in DocType 'Sales Order'
#: selling/doctype/sales_order/sales_order.json
msgctxt "Sales Order"
msgid "SAL-ORD-.YYYY.-"
-msgstr "SAL-ORD-.YYYY.-"
+msgstr ""
#. Option for the 'Series' (Select) field in DocType 'Quotation'
#: selling/doctype/quotation/quotation.json
msgctxt "Quotation"
msgid "SAL-QTN-.YYYY.-"
-msgstr "SAL-QTN-.YYYY.-"
+msgstr ""
#. Option for the 'Series' (Select) field in DocType 'Subcontracting Order'
#: subcontracting/doctype/subcontracting_order/subcontracting_order.json
msgctxt "Subcontracting Order"
msgid "SC-ORD-.YYYY.-"
-msgstr "SC-ORD-.YYYY.-"
+msgstr ""
#. Label of a Data field in DocType 'Stock Entry Detail'
#: stock/doctype/stock_entry_detail/stock_entry_detail.json
@@ -61282,7 +61114,7 @@
#: support/doctype/warranty_claim/warranty_claim.json
msgctxt "Warranty Claim"
msgid "SER-WRN-.YYYY.-"
-msgstr "SER-WRN-.YYYY.-"
+msgstr ""
#. Label of a Table field in DocType 'Service Level Agreement'
#: support/doctype/service_level_agreement/service_level_agreement.json
@@ -61338,7 +61170,7 @@
#: selling/report/pending_so_items_for_purchase_request/pending_so_items_for_purchase_request.py:43
msgid "SO Qty"
-msgstr "SO Qty"
+msgstr ""
#: accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.html:16
msgid "STATEMENTS OF ACCOUNTS"
@@ -61348,19 +61180,19 @@
#: stock/doctype/item/item.json
msgctxt "Item"
msgid "STO-ITEM-.YYYY.-"
-msgstr "STO-ITEM-.YYYY.-"
+msgstr ""
#. Option for the 'Series' (Select) field in DocType 'Pick List'
#: stock/doctype/pick_list/pick_list.json
msgctxt "Pick List"
msgid "STO-PICK-.YYYY.-"
-msgstr "STO-PICK-.YYYY.-"
+msgstr ""
#. Option for the 'Series' (Select) field in DocType 'Supplier'
#: buying/doctype/supplier/supplier.json
msgctxt "Supplier"
msgid "SUP-.YYYY.-"
-msgstr "SUP-.YYYY.-"
+msgstr ""
#. Label of a Read Only field in DocType 'Payment Request'
#: accounts/doctype/payment_request/payment_request.json
@@ -62976,8 +62808,7 @@
#. 'Supplier Scorecard'
#: buying/doctype/supplier_scorecard/supplier_scorecard.json
msgctxt "Supplier Scorecard"
-msgid ""
-"Scorecard variables can be used, as well as:\n"
+msgid "Scorecard variables can be used, as well as:\n"
"{total_score} (the total score from that period),\n"
"{period_number} (the number of periods to present day)\n"
msgstr ""
@@ -63335,7 +63166,7 @@
#: accounts/report/balance_sheet/balance_sheet.js:14
#: accounts/report/profit_and_loss_statement/profit_and_loss_statement.js:14
msgid "Select View"
-msgstr "View را انتخاب کنید"
+msgstr ""
#: public/js/bank_reconciliation_tool/dialog_manager.js:248
msgid "Select Vouchers to Match"
@@ -63456,8 +63287,7 @@
msgstr "کد نوع مورد را برای مورد الگو انتخاب کنید {0}"
#: manufacturing/doctype/production_plan/production_plan.js:525
-msgid ""
-"Select whether to get items from a Sales Order or a Material Request. For now select <b>Sales Order</b>.\n"
+msgid "Select whether to get items from a Sales Order or a Material Request. For now select <b>Sales Order</b>.\n"
" A Production Plan can also be created manually where you can select the Items to manufacture."
msgstr ""
@@ -64018,7 +63848,7 @@
#: stock/doctype/serial_and_batch_bundle/serial_and_batch_bundle.py:2112
msgid "Serial No {0} does not exists"
-msgstr "شماره سریال {0} وجود ندارد"
+msgstr ""
#: public/js/utils/barcode_scanner.js:402
msgid "Serial No {0} has already scanned."
@@ -65008,7 +64838,7 @@
#: public/js/utils/sales_common.js:406
#: selling/doctype/quotation/quotation.js:124
msgid "Set as Lost"
-msgstr "به عنوان گمشده تنظیم کنید"
+msgstr "به عنوان از دست رفته ست کنید"
#: crm/doctype/opportunity/opportunity_list.js:13
#: projects/doctype/task/task_list.js:8 support/doctype/issue/issue_list.js:8
@@ -65758,7 +65588,7 @@
#: accounts/doctype/bank_statement_import/bank_statement_import.json
msgctxt "Bank Statement Import"
msgid "Show Failed Logs"
-msgstr "نمایش گزارش های ناموفق"
+msgstr ""
#: accounts/report/accounts_payable/accounts_payable.js:144
#: accounts/report/accounts_receivable/accounts_receivable.js:161
@@ -65989,8 +65819,7 @@
#. 'Item Quality Inspection Parameter'
#: stock/doctype/item_quality_inspection_parameter/item_quality_inspection_parameter.json
msgctxt "Item Quality Inspection Parameter"
-msgid ""
-"Simple Python formula applied on Reading fields.<br> Numeric eg. 1: <b>reading_1 > 0.2 and reading_1 < 0.5</b><br>\n"
+msgid "Simple Python formula applied on Reading fields.<br> Numeric eg. 1: <b>reading_1 > 0.2 and reading_1 < 0.5</b><br>\n"
"Numeric eg. 2: <b>mean > 3.5</b> (mean of populated fields)<br>\n"
"Value based eg.: <b>reading_value in (\"A\", \"B\", \"C\")</b>"
msgstr ""
@@ -65999,8 +65828,7 @@
#. 'Quality Inspection Reading'
#: stock/doctype/quality_inspection_reading/quality_inspection_reading.json
msgctxt "Quality Inspection Reading"
-msgid ""
-"Simple Python formula applied on Reading fields.<br> Numeric eg. 1: <b>reading_1 > 0.2 and reading_1 < 0.5</b><br>\n"
+msgid "Simple Python formula applied on Reading fields.<br> Numeric eg. 1: <b>reading_1 > 0.2 and reading_1 < 0.5</b><br>\n"
"Numeric eg. 2: <b>mean > 3.5</b> (mean of populated fields)<br>\n"
"Value based eg.: <b>reading_value in (\"A\", \"B\", \"C\")</b>"
msgstr ""
@@ -68117,10 +67945,13 @@
#. Option for the 'Action if Accumulated Monthly Budget Exceeded on MR'
#. (Select) field in DocType 'Budget'
#. Option for the 'Action if Annual Budget Exceeded on PO' (Select) field in
+#. DocType 'Budget'
#. Option for the 'Action if Accumulated Monthly Budget Exceeded on PO'
+#. (Select) field in DocType 'Budget'
#. Option for the 'Action if Annual Budget Exceeded on Actual' (Select) field
#. in DocType 'Budget'
#. Option for the 'Action if Accumulated Monthly Budget Exceeded on Actual'
+#. (Select) field in DocType 'Budget'
#: accounts/doctype/budget/budget.json
msgctxt "Budget"
msgid "Stop"
@@ -70119,6 +69950,7 @@
#. Description of the 'Invoice Limit' (Int) field in DocType 'Payment
#. Reconciliation'
#. Description of the 'Payment Limit' (Int) field in DocType 'Payment
+#. Reconciliation'
#: accounts/doctype/payment_reconciliation/payment_reconciliation.json
msgctxt "Payment Reconciliation"
msgid "System will fetch all the entries if limit value is zero."
@@ -70158,7 +69990,7 @@
#: projects/doctype/timesheet/timesheet.json
msgctxt "Timesheet"
msgid "TS-.YYYY.-"
-msgstr "TS-.YYYY.-"
+msgstr ""
#: buying/doctype/request_for_quotation/request_for_quotation.js:427
msgid "Tag"
@@ -71101,8 +70933,7 @@
#. Item'
#: accounts/doctype/purchase_invoice_item/purchase_invoice_item.json
msgctxt "Purchase Invoice Item"
-msgid ""
-"Tax detail table fetched from item master as a string and stored in this field.\n"
+msgid "Tax detail table fetched from item master as a string and stored in this field.\n"
"Used for Taxes and Charges"
msgstr ""
@@ -71110,8 +70941,7 @@
#. Item'
#: buying/doctype/purchase_order_item/purchase_order_item.json
msgctxt "Purchase Order Item"
-msgid ""
-"Tax detail table fetched from item master as a string and stored in this field.\n"
+msgid "Tax detail table fetched from item master as a string and stored in this field.\n"
"Used for Taxes and Charges"
msgstr ""
@@ -71119,8 +70949,7 @@
#. Item'
#: stock/doctype/purchase_receipt_item/purchase_receipt_item.json
msgctxt "Purchase Receipt Item"
-msgid ""
-"Tax detail table fetched from item master as a string and stored in this field.\n"
+msgid "Tax detail table fetched from item master as a string and stored in this field.\n"
"Used for Taxes and Charges"
msgstr ""
@@ -71128,8 +70957,7 @@
#. Quotation Item'
#: buying/doctype/supplier_quotation_item/supplier_quotation_item.json
msgctxt "Supplier Quotation Item"
-msgid ""
-"Tax detail table fetched from item master as a string and stored in this field.\n"
+msgid "Tax detail table fetched from item master as a string and stored in this field.\n"
"Used for Taxes and Charges"
msgstr ""
@@ -72241,7 +72069,7 @@
#: accounts/doctype/journal_entry/journal_entry.py:155
#: accounts/doctype/journal_entry/journal_entry.py:162
msgid "The task has been enqueued as a background job."
-msgstr "وظیفه به عنوان یک کار پس زمینه در نوبت قرار گرفته است."
+msgstr ""
#: stock/doctype/stock_entry/stock_entry.py:244
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 Entry and revert to the Draft stage"
@@ -74981,7 +74809,7 @@
#: controllers/trends.py:23 controllers/trends.py:30
msgid "Total(Qty)"
-msgstr "مجموع تعداد)"
+msgstr "مجموع (مقدار)"
#: accounts/report/trial_balance_for_party/trial_balance_for_party.py:88
msgid "Totals"
@@ -75230,7 +75058,7 @@
#: accounts/doctype/bank_transaction/bank_transaction.py:64
msgid "Transaction currency: {0} cannot be different from Bank Account({1}) currency: {2}"
-msgstr "واحد پول تراکنش: {0} نمی تواند با واحد پول حساب بانکی ({1}) متفاوت باشد: {2}"
+msgstr ""
#: manufacturing/doctype/job_card/job_card.py:647
msgid "Transaction not allowed against stopped Work Order {0}"
@@ -75754,235 +75582,235 @@
#: templates/emails/reorder_item.html:11
#: templates/includes/rfq/rfq_items.html:17
msgid "UOM"
-msgstr "UOM"
+msgstr "واحد اندازه گیری"
#. Label of a Link field in DocType 'Asset Capitalization Service Item'
#: assets/doctype/asset_capitalization_service_item/asset_capitalization_service_item.json
msgctxt "Asset Capitalization Service Item"
msgid "UOM"
-msgstr "UOM"
+msgstr "واحد اندازه گیری"
#. Label of a Link field in DocType 'BOM Creator'
#: manufacturing/doctype/bom_creator/bom_creator.json
msgctxt "BOM Creator"
msgid "UOM"
-msgstr "UOM"
+msgstr "واحد اندازه گیری"
#. Label of a Link field in DocType 'BOM Creator Item'
#: manufacturing/doctype/bom_creator_item/bom_creator_item.json
msgctxt "BOM Creator Item"
msgid "UOM"
-msgstr "UOM"
+msgstr "واحد اندازه گیری"
#. Label of a Link field in DocType 'BOM Item'
#: manufacturing/doctype/bom_item/bom_item.json
msgctxt "BOM Item"
msgid "UOM"
-msgstr "UOM"
+msgstr "واحد اندازه گیری"
#. Label of a Link field in DocType 'Bin'
#: stock/doctype/bin/bin.json
msgctxt "Bin"
msgid "UOM"
-msgstr "UOM"
+msgstr "واحد اندازه گیری"
#. Label of a Link field in DocType 'Delivery Note Item'
#: stock/doctype/delivery_note_item/delivery_note_item.json
msgctxt "Delivery Note Item"
msgid "UOM"
-msgstr "UOM"
+msgstr "واحد اندازه گیری"
#. Label of a Link field in DocType 'Delivery Stop'
#: stock/doctype/delivery_stop/delivery_stop.json
msgctxt "Delivery Stop"
msgid "UOM"
-msgstr "UOM"
+msgstr "واحد اندازه گیری"
#. Label of a Link field in DocType 'Item Barcode'
#: stock/doctype/item_barcode/item_barcode.json
msgctxt "Item Barcode"
msgid "UOM"
-msgstr "UOM"
+msgstr "واحد اندازه گیری"
#. Label of a Link field in DocType 'Item Price'
#: stock/doctype/item_price/item_price.json
msgctxt "Item Price"
msgid "UOM"
-msgstr "UOM"
+msgstr "واحد اندازه گیری"
#. Label of a Link field in DocType 'Job Card Item'
#: manufacturing/doctype/job_card_item/job_card_item.json
msgctxt "Job Card Item"
msgid "UOM"
-msgstr "UOM"
+msgstr "واحد اندازه گیری"
#. Label of a Link field in DocType 'Material Request Item'
#: stock/doctype/material_request_item/material_request_item.json
msgctxt "Material Request Item"
msgid "UOM"
-msgstr "UOM"
+msgstr "واحد اندازه گیری"
#. Label of a Link field in DocType 'Material Request Plan Item'
#: manufacturing/doctype/material_request_plan_item/material_request_plan_item.json
msgctxt "Material Request Plan Item"
msgid "UOM"
-msgstr "UOM"
+msgstr "واحد اندازه گیری"
#. Label of a Link field in DocType 'Opportunity Item'
#: crm/doctype/opportunity_item/opportunity_item.json
msgctxt "Opportunity Item"
msgid "UOM"
-msgstr "UOM"
+msgstr "واحد اندازه گیری"
#. Label of a Link field in DocType 'POS Invoice Item'
#: accounts/doctype/pos_invoice_item/pos_invoice_item.json
msgctxt "POS Invoice Item"
msgid "UOM"
-msgstr "UOM"
+msgstr "واحد اندازه گیری"
#. Label of a Link field in DocType 'Packed Item'
#: stock/doctype/packed_item/packed_item.json
msgctxt "Packed Item"
msgid "UOM"
-msgstr "UOM"
+msgstr "واحد اندازه گیری"
#. Label of a Link field in DocType 'Packing Slip Item'
#: stock/doctype/packing_slip_item/packing_slip_item.json
msgctxt "Packing Slip Item"
msgid "UOM"
-msgstr "UOM"
+msgstr "واحد اندازه گیری"
#. Label of a Link field in DocType 'Pick List Item'
#: stock/doctype/pick_list_item/pick_list_item.json
msgctxt "Pick List Item"
msgid "UOM"
-msgstr "UOM"
+msgstr "واحد اندازه گیری"
#. Label of a Link field in DocType 'Pricing Rule'
#: accounts/doctype/pricing_rule/pricing_rule.json
msgctxt "Pricing Rule"
msgid "UOM"
-msgstr "UOM"
+msgstr "واحد اندازه گیری"
#. Label of a Link field in DocType 'Pricing Rule Brand'
#: accounts/doctype/pricing_rule_brand/pricing_rule_brand.json
msgctxt "Pricing Rule Brand"
msgid "UOM"
-msgstr "UOM"
+msgstr "واحد اندازه گیری"
#. Label of a Link field in DocType 'Pricing Rule Item Code'
#: accounts/doctype/pricing_rule_item_code/pricing_rule_item_code.json
msgctxt "Pricing Rule Item Code"
msgid "UOM"
-msgstr "UOM"
+msgstr "واحد اندازه گیری"
#. Label of a Link field in DocType 'Pricing Rule Item Group'
#: accounts/doctype/pricing_rule_item_group/pricing_rule_item_group.json
msgctxt "Pricing Rule Item Group"
msgid "UOM"
-msgstr "UOM"
+msgstr "واحد اندازه گیری"
#. Label of a Link field in DocType 'Product Bundle Item'
#: selling/doctype/product_bundle_item/product_bundle_item.json
msgctxt "Product Bundle Item"
msgid "UOM"
-msgstr "UOM"
+msgstr "واحد اندازه گیری"
#. Label of a Link field in DocType 'Production Plan Item'
#: manufacturing/doctype/production_plan_item/production_plan_item.json
msgctxt "Production Plan Item"
msgid "UOM"
-msgstr "UOM"
+msgstr "واحد اندازه گیری"
#. Label of a Link field in DocType 'Production Plan Sub Assembly Item'
#: manufacturing/doctype/production_plan_sub_assembly_item/production_plan_sub_assembly_item.json
msgctxt "Production Plan Sub Assembly Item"
msgid "UOM"
-msgstr "UOM"
+msgstr "واحد اندازه گیری"
#. Label of a Link field in DocType 'Promotional Scheme Product Discount'
#: accounts/doctype/promotional_scheme_product_discount/promotional_scheme_product_discount.json
msgctxt "Promotional Scheme Product Discount"
msgid "UOM"
-msgstr "UOM"
+msgstr "واحد اندازه گیری"
#. Label of a Link field in DocType 'Purchase Invoice Item'
#: accounts/doctype/purchase_invoice_item/purchase_invoice_item.json
msgctxt "Purchase Invoice Item"
msgid "UOM"
-msgstr "UOM"
+msgstr "واحد اندازه گیری"
#. Label of a Link field in DocType 'Purchase Order Item'
#: buying/doctype/purchase_order_item/purchase_order_item.json
msgctxt "Purchase Order Item"
msgid "UOM"
-msgstr "UOM"
+msgstr "واحد اندازه گیری"
#. Label of a Link field in DocType 'Purchase Receipt Item'
#: stock/doctype/purchase_receipt_item/purchase_receipt_item.json
msgctxt "Purchase Receipt Item"
msgid "UOM"
-msgstr "UOM"
+msgstr "واحد اندازه گیری"
#. Label of a Link field in DocType 'Putaway Rule'
#: stock/doctype/putaway_rule/putaway_rule.json
msgctxt "Putaway Rule"
msgid "UOM"
-msgstr "UOM"
+msgstr "واحد اندازه گیری"
#. Label of a Link field in DocType 'Quality Goal Objective'
#: quality_management/doctype/quality_goal_objective/quality_goal_objective.json
msgctxt "Quality Goal Objective"
msgid "UOM"
-msgstr "UOM"
+msgstr "واحد اندازه گیری"
#. Label of a Link field in DocType 'Quality Review Objective'
#: quality_management/doctype/quality_review_objective/quality_review_objective.json
msgctxt "Quality Review Objective"
msgid "UOM"
-msgstr "UOM"
+msgstr "واحد اندازه گیری"
#. Label of a Link field in DocType 'Quotation Item'
#: selling/doctype/quotation_item/quotation_item.json
msgctxt "Quotation Item"
msgid "UOM"
-msgstr "UOM"
+msgstr "واحد اندازه گیری"
#. Label of a Link field in DocType 'Request for Quotation Item'
#: buying/doctype/request_for_quotation_item/request_for_quotation_item.json
msgctxt "Request for Quotation Item"
msgid "UOM"
-msgstr "UOM"
+msgstr "واحد اندازه گیری"
#. Label of a Link field in DocType 'Sales Invoice Item'
#: accounts/doctype/sales_invoice_item/sales_invoice_item.json
msgctxt "Sales Invoice Item"
msgid "UOM"
-msgstr "UOM"
+msgstr "واحد اندازه گیری"
#. Label of a Link field in DocType 'Sales Order Item'
#: selling/doctype/sales_order_item/sales_order_item.json
msgctxt "Sales Order Item"
msgid "UOM"
-msgstr "UOM"
+msgstr "واحد اندازه گیری"
#. Label of a Link field in DocType 'Stock Entry Detail'
#: stock/doctype/stock_entry_detail/stock_entry_detail.json
msgctxt "Stock Entry Detail"
msgid "UOM"
-msgstr "UOM"
+msgstr "واحد اندازه گیری"
#. Label of a Link field in DocType 'Supplier Quotation Item'
#: buying/doctype/supplier_quotation_item/supplier_quotation_item.json
msgctxt "Supplier Quotation Item"
msgid "UOM"
-msgstr "UOM"
+msgstr "واحد اندازه گیری"
#. Label of a Link field in DocType 'UOM Conversion Detail'
#: stock/doctype/uom_conversion_detail/uom_conversion_detail.json
msgctxt "UOM Conversion Detail"
msgid "UOM"
-msgstr "UOM"
+msgstr "واحد اندازه گیری"
#. Name of a DocType
#: stock/doctype/uom_category/uom_category.json
@@ -76111,13 +75939,13 @@
#: stock/doctype/item_barcode/item_barcode.json
msgctxt "Item Barcode"
msgid "UPC"
-msgstr "UPC"
+msgstr ""
#. Option for the 'Barcode Type' (Select) field in DocType 'Item Barcode'
#: stock/doctype/item_barcode/item_barcode.json
msgctxt "Item Barcode"
msgid "UPC-A"
-msgstr "UPC-A"
+msgstr ""
#. Label of a Data field in DocType 'Video'
#: utilities/doctype/video/video.json
@@ -76493,7 +76321,7 @@
#: accounts/doctype/bisect_accounting_statements/bisect_accounting_statements.js:17
msgid "Up"
-msgstr ""
+msgstr "بالا"
#. Label of a Check field in DocType 'Email Digest'
#: setup/doctype/email_digest/email_digest.json
@@ -76736,6 +76564,7 @@
#. Description of the 'Actual End Time' (Datetime) field in DocType 'Work Order
#. Operation'
#. Description of the 'Actual Operation Time' (Float) field in DocType 'Work
+#. Order Operation'
#: manufacturing/doctype/work_order_operation/work_order_operation.json
msgctxt "Work Order Operation"
msgid "Updated via 'Time Log' (In Minutes)"
@@ -77812,7 +77641,7 @@
#: utilities/doctype/video/video.json
msgctxt "Video"
msgid "Vimeo"
-msgstr "Vimeo"
+msgstr ""
#: templates/pages/help.html:46
msgid "Visit the forums"
@@ -78435,7 +78264,7 @@
#: stock/page/warehouse_capacity_summary/warehouse_capacity_summary.js:4
msgid "Warehouse Capacity Summary"
-msgstr "خلاصه ظرفیت انبار"
+msgstr ""
#: stock/doctype/putaway_rule/putaway_rule.py:78
msgid "Warehouse Capacity for Item '{0}' must be greater than the existing stock level of {1} {2}."
@@ -78628,10 +78457,13 @@
#. Option for the 'Action if Accumulated Monthly Budget Exceeded on MR'
#. (Select) field in DocType 'Budget'
#. Option for the 'Action if Annual Budget Exceeded on PO' (Select) field in
+#. DocType 'Budget'
#. Option for the 'Action if Accumulated Monthly Budget Exceeded on PO'
+#. (Select) field in DocType 'Budget'
#. Option for the 'Action if Annual Budget Exceeded on Actual' (Select) field
#. in DocType 'Budget'
#. Option for the 'Action if Accumulated Monthly Budget Exceeded on Actual'
+#. (Select) field in DocType 'Budget'
#: accounts/doctype/budget/budget.json
msgctxt "Budget"
msgid "Warn"
@@ -80416,7 +80248,7 @@
#: selling/report/sales_partner_commission_summary/sales_partner_commission_summary.py:25
#: selling/report/sales_partner_transaction_summary/sales_partner_transaction_summary.py:25
msgid "doctype"
-msgstr "doctype"
+msgstr ""
#. Description of the 'Coupon Name' (Data) field in DocType 'Coupon Code'
#: accounts/doctype/coupon_code/coupon_code.json
@@ -80443,7 +80275,7 @@
#: accounts/doctype/currency_exchange_settings/currency_exchange_settings.json
msgctxt "Currency Exchange Settings"
msgid "frankfurter.app"
-msgstr "frankfurter.app"
+msgstr ""
#. Label of a Attach Image field in DocType 'Batch'
#: stock/doctype/batch/batch.json
@@ -80596,6 +80428,7 @@
#. Description of the 'Billing Rate' (Currency) field in DocType 'Activity
#. Cost'
#. Description of the 'Costing Rate' (Currency) field in DocType 'Activity
+#. Cost'
#: projects/doctype/activity_cost/activity_cost.json
msgctxt "Activity Cost"
msgid "per hour"
@@ -80604,6 +80437,7 @@
#. Description of the 'Electricity Cost' (Currency) field in DocType
#. 'Workstation'
#. Description of the 'Consumable Cost' (Currency) field in DocType
+#. 'Workstation'
#. Description of the 'Rent Cost' (Currency) field in DocType 'Workstation'
#. Description of the 'Net Hour Rate' (Currency) field in DocType 'Workstation'
#: manufacturing/doctype/workstation/workstation.json
@@ -80614,9 +80448,11 @@
#. Description of the 'Electricity Cost' (Currency) field in DocType
#. 'Workstation Type'
#. Description of the 'Consumable Cost' (Currency) field in DocType
+#. 'Workstation Type'
#. Description of the 'Rent Cost' (Currency) field in DocType 'Workstation
#. Type'
#. Description of the 'Net Hour Rate' (Currency) field in DocType 'Workstation
+#. Type'
#: manufacturing/doctype/workstation_type/workstation_type.json
msgctxt "Workstation Type"
msgid "per hour"
@@ -80644,7 +80480,7 @@
#: selling/doctype/sales_order_item/sales_order_item.json
msgctxt "Sales Order Item"
msgid "quotation_item"
-msgstr "quotation_item"
+msgstr ""
#: templates/includes/macros.html:202
msgid "ratings"
@@ -80658,67 +80494,67 @@
#: accounts/doctype/cost_center/cost_center.json
msgctxt "Cost Center"
msgid "rgt"
-msgstr "rgt"
+msgstr ""
#. Label of a Int field in DocType 'Customer Group'
#: setup/doctype/customer_group/customer_group.json
msgctxt "Customer Group"
msgid "rgt"
-msgstr "rgt"
+msgstr ""
#. Label of a Int field in DocType 'Department'
#: setup/doctype/department/department.json
msgctxt "Department"
msgid "rgt"
-msgstr "rgt"
+msgstr ""
#. Label of a Int field in DocType 'Employee'
#: setup/doctype/employee/employee.json
msgctxt "Employee"
msgid "rgt"
-msgstr "rgt"
+msgstr ""
#. Label of a Int field in DocType 'Item Group'
#: setup/doctype/item_group/item_group.json
msgctxt "Item Group"
msgid "rgt"
-msgstr "rgt"
+msgstr ""
#. Label of a Int field in DocType 'Location'
#: assets/doctype/location/location.json
msgctxt "Location"
msgid "rgt"
-msgstr "rgt"
+msgstr ""
#. Label of a Int field in DocType 'Sales Person'
#: setup/doctype/sales_person/sales_person.json
msgctxt "Sales Person"
msgid "rgt"
-msgstr "rgt"
+msgstr ""
#. Label of a Int field in DocType 'Supplier Group'
#: setup/doctype/supplier_group/supplier_group.json
msgctxt "Supplier Group"
msgid "rgt"
-msgstr "rgt"
+msgstr ""
#. Label of a Int field in DocType 'Task'
#: projects/doctype/task/task.json
msgctxt "Task"
msgid "rgt"
-msgstr "rgt"
+msgstr ""
#. Label of a Int field in DocType 'Territory'
#: setup/doctype/territory/territory.json
msgctxt "Territory"
msgid "rgt"
-msgstr "rgt"
+msgstr ""
#. Label of a Int field in DocType 'Warehouse'
#: stock/doctype/warehouse/warehouse.json
msgctxt "Warehouse"
msgid "rgt"
-msgstr "rgt"
+msgstr ""
#. Option for the 'Plaid Environment' (Select) field in DocType 'Plaid
#. Settings'
@@ -80737,7 +80573,7 @@
#: controllers/status_updater.py:353 controllers/status_updater.py:373
msgid "target_ref_field"
-msgstr "target_ref_field"
+msgstr ""
#. Label of a Data field in DocType 'Production Plan Item'
#: manufacturing/doctype/production_plan_item/production_plan_item.json
@@ -80790,7 +80626,7 @@
#: accounts/report/cash_flow/cash_flow.py:226
#: accounts/report/cash_flow/cash_flow.py:227
msgid "{0}"
-msgstr "{0}"
+msgstr ""
#: controllers/accounts_controller.py:878
msgid "{0} '{1}' is disabled"
@@ -80932,7 +80768,7 @@
#: accounts/doctype/payment_entry/payment_entry.py:364
msgid "{0} has Payment Term based allocation enabled. Select a Payment Term for Row #{1} in Payment References section"
-msgstr "{0} تخصیص مبتنی بر مدت پرداخت را فعال کرده است. در بخش مراجع پرداخت، یک شرایط پرداخت برای ردیف شماره {1} انتخاب کنید"
+msgstr "{0} تخصیص مبتنی بر مدت پرداخت را فعال کرده است. در بخش مراجع پرداخت، یک شرایط پرداخت برای ردیف #{1} انتخاب کنید"
#: setup/default_success_action.py:14
msgid "{0} has been submitted successfully"
@@ -81088,11 +80924,11 @@
#: manufacturing/doctype/job_card/job_card.py:773
msgid "{0} {1}"
-msgstr "{0} {1}"
+msgstr ""
#: public/js/utils/serial_no_batch_selector.js:203
msgid "{0} {1} Manually"
-msgstr "{0} {1} به صورت دستی"
+msgstr ""
#: accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.py:433
msgid "{0} {1} Partially Reconciled"
@@ -81310,7 +81146,7 @@
#: assets/report/fixed_asset_register/fixed_asset_register.py:372
msgid "{}"
-msgstr "{}"
+msgstr ""
#: controllers/buying_controller.py:712
msgid "{} Assets created for {}"
diff --git a/erpnext/manufacturing/doctype/work_order/test_work_order.py b/erpnext/manufacturing/doctype/work_order/test_work_order.py
index c72232a..e1c1069 100644
--- a/erpnext/manufacturing/doctype/work_order/test_work_order.py
+++ b/erpnext/manufacturing/doctype/work_order/test_work_order.py
@@ -1383,8 +1383,9 @@
# Inward raw materials in Stores warehouse
ste_doc.submit()
+ ste_doc.reload()
- serial_nos_list = sorted(get_serial_nos(ste_doc.items[0].serial_no))
+ serial_nos_list = sorted(get_serial_nos_from_bundle(ste_doc.items[0].serial_and_batch_bundle))
wo_doc = make_wo_order_test_record(production_item=fg_item, qty=4)
transferred_ste_doc = frappe.get_doc(
@@ -1396,19 +1397,22 @@
# First Manufacture stock entry
manufacture_ste_doc1 = frappe.get_doc(make_stock_entry(wo_doc.name, "Manufacture", 1))
+ manufacture_ste_doc1.submit()
+ manufacture_ste_doc1.reload()
# Serial nos should be same as transferred Serial nos
- self.assertEqual(get_serial_nos(manufacture_ste_doc1.items[0].serial_no), serial_nos_list[0:1])
+ self.assertEqual(
+ sorted(get_serial_nos_from_bundle(manufacture_ste_doc1.items[0].serial_and_batch_bundle)),
+ serial_nos_list[0:1],
+ )
self.assertEqual(manufacture_ste_doc1.items[0].qty, 1)
- manufacture_ste_doc1.submit()
-
# Second Manufacture stock entry
- manufacture_ste_doc2 = frappe.get_doc(make_stock_entry(wo_doc.name, "Manufacture", 2))
+ manufacture_ste_doc2 = frappe.get_doc(make_stock_entry(wo_doc.name, "Manufacture", 3))
# Serial nos should be same as transferred Serial nos
- self.assertEqual(get_serial_nos(manufacture_ste_doc2.items[0].serial_no), serial_nos_list[1:3])
- self.assertEqual(manufacture_ste_doc2.items[0].qty, 2)
+ self.assertEqual(get_serial_nos(manufacture_ste_doc2.items[0].serial_no), serial_nos_list[1:4])
+ self.assertEqual(manufacture_ste_doc2.items[0].qty, 3)
def test_backflushed_serial_no_batch_raw_materials_based_on_transferred(self):
frappe.db.set_single_value(
@@ -1542,19 +1546,9 @@
row.qty -= 2
row.transfer_qty -= 2
- if not row.serial_and_batch_bundle:
- continue
-
- bundle_id = row.serial_and_batch_bundle
- bundle_doc = frappe.get_doc("Serial and Batch Bundle", bundle_id)
- if bundle_doc.has_serial_no:
- bundle_doc.set("entries", bundle_doc.entries[0:5])
- else:
- for bundle_row in bundle_doc.entries:
- bundle_row.qty += 2
-
- bundle_doc.save()
- bundle_doc.load_from_db()
+ if row.serial_no:
+ serial_nos = get_serial_nos(row.serial_no)
+ row.serial_no = "\n".join(serial_nos[:5])
ste_doc.save()
ste_doc.submit()
@@ -1897,6 +1891,71 @@
"Manufacturing Settings", {"disable_capacity_planning": 1, "mins_between_operations": 0}
)
+ def test_partial_material_consumption_with_batch(self):
+ from erpnext.stock.doctype.stock_entry.test_stock_entry import (
+ make_stock_entry as make_stock_entry_test_record,
+ )
+
+ frappe.db.set_single_value("Manufacturing Settings", "material_consumption", 1)
+ frappe.db.set_single_value(
+ "Manufacturing Settings",
+ "backflush_raw_materials_based_on",
+ "Material Transferred for Manufacture",
+ )
+
+ fg_item = make_item(
+ "Test FG Item For Partial Material Consumption",
+ {"is_stock_item": 1},
+ ).name
+
+ rm_item = make_item(
+ "Test RM Item For Partial Material Consumption",
+ {
+ "is_stock_item": 1,
+ "has_batch_no": 1,
+ "create_new_batch": 1,
+ "batch_number_series": "TST-BATCH-PMCC-.####",
+ },
+ ).name
+
+ make_bom(
+ item=fg_item,
+ source_warehouse="Stores - _TC",
+ raw_materials=[rm_item],
+ )
+
+ make_stock_entry_test_record(
+ purpose="Material Receipt",
+ item_code=rm_item,
+ target="Stores - _TC",
+ qty=10,
+ basic_rate=100,
+ )
+
+ wo_order = make_wo_order_test_record(item=fg_item, qty=10)
+
+ stock_entry = frappe.get_doc(
+ make_stock_entry(wo_order.name, "Material Transfer for Manufacture", 10)
+ )
+ stock_entry.submit()
+ stock_entry.reload()
+
+ batch_no = get_batch_from_bundle(stock_entry.items[0].serial_and_batch_bundle)
+
+ stock_entry = frappe.get_doc(
+ make_stock_entry(wo_order.name, "Material Consumption for Manufacture", 10)
+ )
+
+ self.assertEqual(stock_entry.items[0].batch_no, batch_no)
+ self.assertEqual(stock_entry.items[0].use_serial_batch_fields, 1)
+
+ frappe.db.set_single_value("Manufacturing Settings", "material_consumption", 0)
+ frappe.db.set_single_value(
+ "Manufacturing Settings",
+ "backflush_raw_materials_based_on",
+ "BOM",
+ )
+
def make_operation(**kwargs):
kwargs = frappe._dict(kwargs)
diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js
index 7739110..f43e3e7 100644
--- a/erpnext/public/js/controllers/transaction.js
+++ b/erpnext/public/js/controllers/transaction.js
@@ -17,7 +17,7 @@
frappe.model.round_floats_in(item, ["rate", "price_list_rate"]);
- if(item.price_list_rate) {
+ if(item.price_list_rate && !item.blanket_order_rate) {
if(item.rate > item.price_list_rate && has_margin_field) {
// if rate is greater than price_list_rate, set margin
// or set discount
diff --git a/erpnext/public/js/utils/serial_no_batch_selector.js b/erpnext/public/js/utils/serial_no_batch_selector.js
index fccaf88..d0064b3 100644
--- a/erpnext/public/js/utils/serial_no_batch_selector.js
+++ b/erpnext/public/js/utils/serial_no_batch_selector.js
@@ -371,11 +371,18 @@
label: __('Batch No'),
in_list_view: 1,
get_query: () => {
+ let is_inward = false;
+ if ((["Purchase Receipt", "Purchase Invoice"].includes(this.frm.doc.doctype) && !this.frm.doc.is_return)
+ || (this.frm.doc.doctype === 'Stock Entry' && this.frm.doc.purpose === 'Material Receipt')) {
+ is_inward = true;
+ }
+
return {
query : "erpnext.controllers.queries.get_batch_no",
filters: {
'item_code': this.item.item_code,
- 'warehouse': this.item.s_warehouse || this.item.t_warehouse,
+ 'warehouse': this.item.s_warehouse || this.item.t_warehouse || this.item.warehouse,
+ 'is_inward': is_inward
}
}
},
diff --git a/erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.js b/erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.js
index 6a50ef8..a7b0709 100644
--- a/erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.js
+++ b/erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.js
@@ -29,7 +29,7 @@
});
function populate_doctypes_to_be_ignored(doctypes_to_be_ignored_array, frm) {
- if (!(frm.doc.doctypes_to_be_ignored)) {
+ if (frm.doc.doctypes_to_be_ignored.length === 0) {
var i;
for (i = 0; i < doctypes_to_be_ignored_array.length; i++) {
frm.add_child('doctypes_to_be_ignored', {
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 7182201..88c4b07 100644
--- a/erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py
+++ b/erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py
@@ -286,6 +286,7 @@
"Bank Account",
"Item Tax Template",
"Mode of Payment",
+ "Mode of Payment Account",
"Item Default",
"Customer",
"Supplier",
diff --git a/erpnext/stock/deprecated_serial_batch.py b/erpnext/stock/deprecated_serial_batch.py
index ab38c15..7be1418 100644
--- a/erpnext/stock/deprecated_serial_batch.py
+++ b/erpnext/stock/deprecated_serial_batch.py
@@ -13,7 +13,9 @@
):
return
- serial_nos = self.get_serial_nos()
+ serial_nos = self.get_filterd_serial_nos()
+ if not serial_nos:
+ return
actual_qty = flt(self.sle.actual_qty)
@@ -25,8 +27,21 @@
self.stock_value_change += stock_value_change
+ def get_filterd_serial_nos(self):
+ serial_nos = []
+ non_filtered_serial_nos = self.get_serial_nos()
+
+ # If the serial no inwarded using the Serial and Batch Bundle, then the serial no should not be considered
+ for serial_no in non_filtered_serial_nos:
+ if serial_no and serial_no not in self.serial_no_incoming_rate:
+ serial_nos.append(serial_no)
+
+ return serial_nos
+
@deprecated
def get_incoming_value_for_serial_nos(self, serial_nos):
+ from erpnext.stock.utils import get_combine_datetime
+
# get rate from serial nos within same company
incoming_values = 0.0
for serial_no in serial_nos:
@@ -42,18 +57,19 @@
| (table.serial_no.like("%\n" + serial_no + "\n%"))
)
& (table.company == self.sle.company)
+ & (table.warehouse == self.sle.warehouse)
& (table.serial_and_batch_bundle.isnull())
+ & (table.actual_qty > 0)
& (table.is_cancelled == 0)
+ & table.posting_datetime
+ <= get_combine_datetime(self.sle.posting_date, self.sle.posting_time)
)
.orderby(table.posting_datetime, order=Order.desc)
+ .limit(1)
).run(as_dict=1)
for sle in stock_ledgers:
- self.serial_no_incoming_rate[serial_no] += (
- flt(sle.incoming_rate)
- if sle.actual_qty > 0
- else (sle.stock_value_difference / sle.actual_qty) * -1
- )
+ self.serial_no_incoming_rate[serial_no] += flt(sle.incoming_rate)
incoming_values += self.serial_no_incoming_rate[serial_no]
return incoming_values
diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.json b/erpnext/stock/doctype/delivery_note/delivery_note.json
index 7873d3e..d07a825 100644
--- a/erpnext/stock/doctype/delivery_note/delivery_note.json
+++ b/erpnext/stock/doctype/delivery_note/delivery_note.json
@@ -28,7 +28,6 @@
"column_break_18",
"project",
"dimension_col_break",
- "custom_dimensions_section",
"currency_and_price_list",
"currency",
"conversion_rate",
@@ -927,7 +926,7 @@
"width": "50%"
},
{
- "fetch_from": "transporter.name",
+ "fetch_from": "transporter.supplier_name",
"fieldname": "transporter_name",
"fieldtype": "Data",
"label": "Transporter Name",
@@ -1356,10 +1355,6 @@
"fieldtype": "Column Break"
},
{
- "fieldname": "custom_dimensions_section",
- "fieldtype": "Section Break"
- },
- {
"fieldname": "shipping_address_section",
"fieldtype": "Section Break",
"label": "Shipping Address"
@@ -1402,7 +1397,7 @@
"idx": 146,
"is_submittable": 1,
"links": [],
- "modified": "2023-12-18 17:19:39.368239",
+ "modified": "2024-03-05 11:58:47.784349",
"modified_by": "Administrator",
"module": "Stock",
"name": "Delivery Note",
diff --git a/erpnext/stock/doctype/item/item_list.js b/erpnext/stock/doctype/item/item_list.js
index 1b57102..67dc86c 100644
--- a/erpnext/stock/doctype/item/item_list.js
+++ b/erpnext/stock/doctype/item/item_list.js
@@ -18,8 +18,7 @@
reports: [
{
name: 'Stock Summary',
- report_type: 'Page',
- route: 'stock-balance'
+ route: '/app/stock-balance'
},
{
name: 'Stock Ledger',
diff --git a/erpnext/stock/doctype/landed_cost_voucher/test_landed_cost_voucher.py b/erpnext/stock/doctype/landed_cost_voucher/test_landed_cost_voucher.py
index 257f263..4058aa8 100644
--- a/erpnext/stock/doctype/landed_cost_voucher/test_landed_cost_voucher.py
+++ b/erpnext/stock/doctype/landed_cost_voucher/test_landed_cost_voucher.py
@@ -415,23 +415,6 @@
create_landed_cost_voucher("Purchase Receipt", pr.name, pr.company, charges=charges)
new_purchase_rate = serial_no_rate + charges
- sn_obj = SerialNoValuation(
- sle=frappe._dict(
- {
- "posting_date": today(),
- "posting_time": nowtime(),
- "item_code": "_Test Serialized Item",
- "warehouse": "Stores - TCP1",
- "serial_nos": [serial_no],
- }
- )
- )
-
- new_serial_no_rate = sn_obj.get_incoming_rate_of_serial_no(serial_no)
-
- # Since the serial no is already delivered the rate must be zero
- self.assertFalse(new_serial_no_rate)
-
stock_value_difference = frappe.db.get_value(
"Stock Ledger Entry",
filters={
diff --git a/erpnext/stock/doctype/material_request/material_request.py b/erpnext/stock/doctype/material_request/material_request.py
index 02fbd3d..ace84f8 100644
--- a/erpnext/stock/doctype/material_request/material_request.py
+++ b/erpnext/stock/doctype/material_request/material_request.py
@@ -595,17 +595,28 @@
for d in doc.items:
item_list.append(d.item_code)
- return frappe.db.sql(
- """select default_supplier
- from `tabItem Default`
- where parent in ({0}) and
- default_supplier IS NOT NULL
- """.format(
- ", ".join(["%s"] * len(item_list))
- ),
- tuple(item_list),
+ supplier = frappe.qb.DocType("Supplier")
+ item_default = frappe.qb.DocType("Item Default")
+ query = (
+ frappe.qb.from_(supplier)
+ .left_join(item_default)
+ .on(supplier.name == item_default.default_supplier)
+ .select(item_default.default_supplier)
+ .where(
+ (item_default.parent.isin(item_list))
+ & (item_default.default_supplier.notnull())
+ & (supplier[searchfield].like(f"%{txt}%"))
+ )
+ .offset(start)
+ .limit(page_len)
)
+ meta = frappe.get_meta("Supplier")
+ if meta.show_title_field_in_link and meta.title_field:
+ query = query.select(supplier[meta.title_field])
+
+ return query.run(as_dict=False)
+
@frappe.whitelist()
def make_supplier_quotation(source_name, target_doc=None):
diff --git a/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py
index aa17ab4..fa2c21f 100644
--- a/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py
+++ b/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py
@@ -2477,6 +2477,88 @@
pr.reload()
self.assertEqual(pr.per_billed, 100)
+ def test_purchase_receipt_with_use_serial_batch_field_for_rejected_qty(self):
+ batch_item = make_item(
+ "_Test Purchase Receipt Batch Item For Rejected Qty",
+ properties={"has_batch_no": 1, "create_new_batch": 1, "is_stock_item": 1},
+ ).name
+
+ serial_item = make_item(
+ "_Test Purchase Receipt Serial Item for Rejected Qty",
+ properties={"has_serial_no": 1, "is_stock_item": 1},
+ ).name
+
+ rej_warehouse = create_warehouse("_Test Purchase Warehouse For Rejected Qty")
+
+ batch_no = "BATCH-BNU-TPRBI-0001"
+ serial_nos = ["SNU-TPRSI-0001", "SNU-TPRSI-0002", "SNU-TPRSI-0003"]
+
+ if not frappe.db.exists("Batch", batch_no):
+ frappe.get_doc(
+ {
+ "doctype": "Batch",
+ "batch_id": batch_no,
+ "item": batch_item,
+ }
+ ).insert()
+
+ for serial_no in serial_nos:
+ if not frappe.db.exists("Serial No", serial_no):
+ frappe.get_doc(
+ {
+ "doctype": "Serial No",
+ "item_code": serial_item,
+ "serial_no": serial_no,
+ }
+ ).insert()
+
+ pr = make_purchase_receipt(
+ item_code=batch_item,
+ received_qty=10,
+ qty=8,
+ rejected_qty=2,
+ rejected_warehouse=rej_warehouse,
+ use_serial_batch_fields=1,
+ batch_no=batch_no,
+ rate=100,
+ do_not_submit=1,
+ )
+
+ pr.append(
+ "items",
+ {
+ "item_code": serial_item,
+ "qty": 2,
+ "rate": 100,
+ "base_rate": 100,
+ "item_name": serial_item,
+ "uom": "Nos",
+ "stock_uom": "Nos",
+ "conversion_factor": 1,
+ "rejected_qty": 1,
+ "warehouse": pr.items[0].warehouse,
+ "rejected_warehouse": rej_warehouse,
+ "use_serial_batch_fields": 1,
+ "serial_no": "\n".join(serial_nos[:2]),
+ "rejected_serial_no": serial_nos[2],
+ },
+ )
+
+ pr.save()
+ pr.submit()
+
+ pr.reload()
+
+ for row in pr.items:
+ self.assertTrue(row.serial_and_batch_bundle)
+ self.assertTrue(row.rejected_serial_and_batch_bundle)
+
+ if row.item_code == batch_item:
+ self.assertEqual(row.batch_no, batch_no)
+ else:
+ self.assertEqual(row.serial_no, "\n".join(serial_nos[:2]))
+ self.assertEqual(row.rejected_serial_no, serial_nos[2])
+
def prepare_data_for_internal_transfer():
from erpnext.accounts.doctype.sales_invoice.test_sales_invoice import create_internal_supplier
diff --git a/erpnext/stock/doctype/putaway_rule/putaway_rule_list.js b/erpnext/stock/doctype/putaway_rule/putaway_rule_list.js
index 725e91e..753569c 100644
--- a/erpnext/stock/doctype/putaway_rule/putaway_rule_list.js
+++ b/erpnext/stock/doctype/putaway_rule/putaway_rule_list.js
@@ -11,8 +11,7 @@
reports: [
{
name: 'Warehouse Capacity Summary',
- report_type: 'Page',
- route: 'warehouse-capacity-summary'
+ route: '/app/warehouse-capacity-summary'
}
]
};
diff --git a/erpnext/stock/doctype/serial_and_batch_bundle/serial_and_batch_bundle.py b/erpnext/stock/doctype/serial_and_batch_bundle/serial_and_batch_bundle.py
index 33f0dce..08cb3ca 100644
--- a/erpnext/stock/doctype/serial_and_batch_bundle/serial_and_batch_bundle.py
+++ b/erpnext/stock/doctype/serial_and_batch_bundle/serial_and_batch_bundle.py
@@ -332,13 +332,8 @@
rate = frappe.db.get_value(child_table, self.voucher_detail_no, valuation_field)
for d in self.entries:
- if not rate or (
- flt(rate, precision) == flt(d.incoming_rate, precision) and d.stock_value_difference
- ):
- continue
-
d.incoming_rate = flt(rate, precision)
- if self.has_batch_no:
+ if d.qty:
d.stock_value_difference = flt(d.qty) * flt(d.incoming_rate)
if save:
@@ -852,7 +847,7 @@
available_batches = get_available_batches_qty(available_batches)
for batch_no in batches:
- if batch_no not in available_batches or available_batches[batch_no] < 0:
+ if batch_no in available_batches and available_batches[batch_no] < 0:
if flt(available_batches.get(batch_no)) < 0:
self.validate_negative_batch(batch_no, available_batches[batch_no])
@@ -1268,6 +1263,13 @@
if parent_doc.get("is_return"):
type_of_transaction = "Inward" if type_of_transaction == "Outward" else "Outward"
+ if parent_doc.get("doctype") == "Subcontracting Receipt":
+ type_of_transaction = "Outward"
+ if child_row.get("doctype") == "Subcontracting Receipt Item":
+ type_of_transaction = "Inward"
+ elif parent_doc.get("doctype") == "Stock Reconciliation":
+ type_of_transaction = "Inward"
+
return type_of_transaction
diff --git a/erpnext/stock/doctype/shipment_parcel/shipment_parcel.json b/erpnext/stock/doctype/shipment_parcel/shipment_parcel.json
index 6943edc..0dc4fd1 100644
--- a/erpnext/stock/doctype/shipment_parcel/shipment_parcel.json
+++ b/erpnext/stock/doctype/shipment_parcel/shipment_parcel.json
@@ -16,22 +16,19 @@
"fieldname": "length",
"fieldtype": "Int",
"in_list_view": 1,
- "label": "Length (cm)",
- "reqd": 1
+ "label": "Length (cm)"
},
{
"fieldname": "width",
"fieldtype": "Int",
"in_list_view": 1,
- "label": "Width (cm)",
- "reqd": 1
+ "label": "Width (cm)"
},
{
"fieldname": "height",
"fieldtype": "Int",
"in_list_view": 1,
- "label": "Height (cm)",
- "reqd": 1
+ "label": "Height (cm)"
},
{
"fieldname": "weight",
@@ -52,7 +49,7 @@
],
"istable": 1,
"links": [],
- "modified": "2020-07-09 12:54:14.847170",
+ "modified": "2024-03-06 16:48:57.355757",
"modified_by": "Administrator",
"module": "Stock",
"name": "Shipment Parcel",
@@ -61,5 +58,6 @@
"quick_entry": 1,
"sort_field": "modified",
"sort_order": "DESC",
+ "states": [],
"track_changes": 1
}
\ No newline at end of file
diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py
index 399e698..f79803c 100644
--- a/erpnext/stock/doctype/stock_entry/stock_entry.py
+++ b/erpnext/stock/doctype/stock_entry/stock_entry.py
@@ -10,17 +10,7 @@
from frappe import _
from frappe.model.mapper import get_mapped_doc
from frappe.query_builder.functions import Sum
-from frappe.utils import (
- cint,
- comma_or,
- cstr,
- flt,
- format_time,
- formatdate,
- getdate,
- month_diff,
- nowdate,
-)
+from frappe.utils import cint, comma_or, cstr, flt, format_time, formatdate, getdate, nowdate
import erpnext
from erpnext.accounts.general_ledger import process_gl_map
@@ -237,41 +227,6 @@
self.reset_default_field_value("from_warehouse", "items", "s_warehouse")
self.reset_default_field_value("to_warehouse", "items", "t_warehouse")
- def submit(self):
- if self.is_enqueue_action():
- frappe.msgprint(
- _(
- "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 Entry and revert to the Draft stage"
- )
- )
- self.queue_action("submit", timeout=2000)
- else:
- self._submit()
-
- def cancel(self):
- if self.is_enqueue_action():
- frappe.msgprint(
- _(
- "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 Entry and revert to the Submitted stage"
- )
- )
- self.queue_action("cancel", timeout=2000)
- else:
- self._cancel()
-
- def is_enqueue_action(self, force=False) -> bool:
- if force:
- return True
-
- if frappe.flags.in_test:
- return False
-
- # If line items are more than 100 or record is older than 6 months
- if len(self.items) > 50 or month_diff(nowdate(), self.posting_date) > 6:
- return True
-
- return False
-
def on_submit(self):
self.validate_closed_subcontracting_order()
self.make_bundle_using_old_serial_batch_fields()
@@ -2168,23 +2123,42 @@
if not qty:
return
+ use_serial_batch_fields = frappe.db.get_single_value("Stock Settings", "use_serial_batch_fields")
+
ste_item_details = {
"from_warehouse": item.warehouse,
"to_warehouse": "",
"qty": qty,
"item_name": item.item_name,
- "serial_and_batch_bundle": create_serial_and_batch_bundle(self, row, item, "Outward"),
+ "serial_and_batch_bundle": create_serial_and_batch_bundle(self, row, item, "Outward")
+ if not use_serial_batch_fields
+ else "",
"description": item.description,
"stock_uom": item.stock_uom,
"expense_account": item.expense_account,
"cost_center": item.buying_cost_center,
"original_item": item.original_item,
+ "serial_no": "\n".join(row.serial_nos)
+ if row.serial_nos and not row.batches_to_be_consume
+ else "",
+ "use_serial_batch_fields": use_serial_batch_fields,
}
if self.is_return:
ste_item_details["to_warehouse"] = item.s_warehouse
- self.add_to_stock_entry_detail({item.item_code: ste_item_details})
+ if use_serial_batch_fields and not row.serial_no and row.batches_to_be_consume:
+ for batch_no, batch_qty in row.batches_to_be_consume.items():
+ ste_item_details.update(
+ {
+ "batch_no": batch_no,
+ "qty": batch_qty,
+ }
+ )
+
+ self.add_to_stock_entry_detail({item.item_code: ste_item_details})
+ else:
+ self.add_to_stock_entry_detail({item.item_code: ste_item_details})
@staticmethod
def get_serial_nos_based_on_transferred_batch(batch_no, serial_nos) -> list:
@@ -2335,6 +2309,9 @@
"item_name",
"serial_and_batch_bundle",
"allow_zero_valuation_rate",
+ "use_serial_batch_fields",
+ "batch_no",
+ "serial_no",
]:
if item_row.get(field):
se_child.set(field, item_row.get(field))
@@ -2983,7 +2960,7 @@
if row.batch_no:
item_data.batch_details[row.batch_no] += row.qty
- if row.batch_nos:
+ elif row.batch_nos:
for batch_no, qty in row.batch_nos.items():
item_data.batch_details[batch_no] += qty
@@ -2991,7 +2968,7 @@
item_data.serial_nos.extend(get_serial_nos(row.serial_no))
item_data.serial_nos.sort()
- if row.serial_nos:
+ elif row.serial_nos:
item_data.serial_nos.extend(get_serial_nos(row.serial_nos))
item_data.serial_nos.sort()
else:
@@ -3001,7 +2978,7 @@
if row.batch_no:
item_data.batch_details[row.batch_no] -= row.qty
- if row.batch_nos:
+ elif row.batch_nos:
for batch_no, qty in row.batch_nos.items():
item_data.batch_details[batch_no] += qty
@@ -3009,7 +2986,7 @@
for serial_no in get_serial_nos(row.serial_no):
item_data.serial_nos.remove(serial_no)
- if row.serial_nos:
+ elif row.serial_nos:
for serial_no in get_serial_nos(row.serial_nos):
item_data.serial_nos.remove(serial_no)
diff --git a/erpnext/stock/doctype/stock_entry/test_stock_entry.py b/erpnext/stock/doctype/stock_entry/test_stock_entry.py
index 9d1a3f7..39166e2 100644
--- a/erpnext/stock/doctype/stock_entry/test_stock_entry.py
+++ b/erpnext/stock/doctype/stock_entry/test_stock_entry.py
@@ -1642,36 +1642,6 @@
self.assertRaises(frappe.ValidationError, sr_doc.submit)
- def test_enqueue_action(self):
- frappe.flags.in_test = False
- item_code = "Test Enqueue Item - 001"
- create_item(item_code=item_code, is_stock_item=1, valuation_rate=10)
-
- doc = make_stock_entry(
- item_code=item_code,
- posting_date=add_to_date(today(), months=-7),
- posting_time="00:00:00",
- purpose="Material Receipt",
- qty=10,
- to_warehouse="_Test Warehouse - _TC",
- do_not_submit=True,
- )
-
- self.assertTrue(doc.is_enqueue_action())
-
- doc = make_stock_entry(
- item_code=item_code,
- posting_date=today(),
- posting_time="00:00:00",
- purpose="Material Receipt",
- qty=10,
- to_warehouse="_Test Warehouse - _TC",
- do_not_submit=True,
- )
-
- self.assertFalse(doc.is_enqueue_action())
- frappe.flags.in_test = True
-
def test_negative_batch(self):
item_code = "Test Negative Batch Item - 001"
make_item(
diff --git a/erpnext/stock/report/stock_ledger/stock_ledger.js b/erpnext/stock/report/stock_ledger/stock_ledger.js
index 2ec757b..baccd55 100644
--- a/erpnext/stock/report/stock_ledger/stock_ledger.js
+++ b/erpnext/stock/report/stock_ledger/stock_ledger.js
@@ -58,7 +58,15 @@
"fieldname":"batch_no",
"label": __("Batch No"),
"fieldtype": "Link",
- "options": "Batch"
+ "options": "Batch",
+ on_change() {
+ const batch_no = frappe.query_report.get_filter_value('batch_no');
+ if (batch_no) {
+ frappe.query_report.set_filter_value('segregate_serial_batch_bundle', 1);
+ } else {
+ frappe.query_report.set_filter_value('segregate_serial_batch_bundle', 0);
+ }
+ }
},
{
"fieldname":"brand",
diff --git a/erpnext/stock/report/stock_ledger/stock_ledger.py b/erpnext/stock/report/stock_ledger/stock_ledger.py
index d859f4e..2e4b08c 100644
--- a/erpnext/stock/report/stock_ledger/stock_ledger.py
+++ b/erpnext/stock/report/stock_ledger/stock_ledger.py
@@ -3,6 +3,7 @@
import copy
+from collections import defaultdict
import frappe
from frappe import _
@@ -31,7 +32,7 @@
bundle_details = {}
if filters.get("segregate_serial_batch_bundle"):
- bundle_details = get_serial_batch_bundle_details(sl_entries)
+ bundle_details = get_serial_batch_bundle_details(sl_entries, filters)
data = []
conversion_factors = []
@@ -47,12 +48,13 @@
available_serial_nos = {}
inventory_dimension_filters_applied = check_inventory_dimension_filters_applied(filters)
+ batch_balance_dict = defaultdict(float)
for sle in sl_entries:
item_detail = item_details[sle.item_code]
sle.update(item_detail)
if bundle_info := bundle_details.get(sle.serial_and_batch_bundle):
- data.extend(get_segregated_bundle_entries(sle, bundle_info))
+ data.extend(get_segregated_bundle_entries(sle, bundle_info, batch_balance_dict))
continue
if filters.get("batch_no") or inventory_dimension_filters_applied:
@@ -85,7 +87,7 @@
return columns, data
-def get_segregated_bundle_entries(sle, bundle_details):
+def get_segregated_bundle_entries(sle, bundle_details, batch_balance_dict):
segregated_entries = []
qty_before_transaction = sle.qty_after_transaction - sle.actual_qty
stock_value_before_transaction = sle.stock_value - sle.stock_value_difference
@@ -93,7 +95,6 @@
for row in bundle_details:
new_sle = copy.deepcopy(sle)
new_sle.update(row)
-
new_sle.update(
{
"in_out_rate": flt(new_sle.stock_value_difference / row.qty) if row.qty else 0,
@@ -105,6 +106,10 @@
}
)
+ if row.batch_no:
+ batch_balance_dict[row.batch_no] += row.qty
+ new_sle.update({"qty_after_transaction": batch_balance_dict[row.batch_no]})
+
qty_before_transaction += row.qty
stock_value_before_transaction += new_sle.stock_value_difference
@@ -117,7 +122,7 @@
return segregated_entries
-def get_serial_batch_bundle_details(sl_entries):
+def get_serial_batch_bundle_details(sl_entries, filters=None):
bundle_details = []
for sle in sl_entries:
if sle.serial_and_batch_bundle:
@@ -126,10 +131,14 @@
if not bundle_details:
return frappe._dict({})
+ query_filers = {"parent": ("in", bundle_details)}
+ if filters.get("batch_no"):
+ query_filers["batch_no"] = filters.batch_no
+
_bundle_details = frappe._dict({})
batch_entries = frappe.get_all(
"Serial and Batch Entry",
- filters={"parent": ("in", bundle_details)},
+ filters=query_filers,
fields=["parent", "qty", "incoming_rate", "stock_value_difference", "batch_no", "serial_no"],
order_by="parent, idx",
)
diff --git a/erpnext/stock/serial_batch_bundle.py b/erpnext/stock/serial_batch_bundle.py
index 24dd9d1..12df0fab 100644
--- a/erpnext/stock/serial_batch_bundle.py
+++ b/erpnext/stock/serial_batch_bundle.py
@@ -4,8 +4,9 @@
import frappe
from frappe import _, bold
from frappe.model.naming import make_autoname
-from frappe.query_builder.functions import CombineDatetime, Sum
+from frappe.query_builder.functions import CombineDatetime, Sum, Timestamp
from frappe.utils import cint, cstr, flt, get_link_to_form, now, nowtime, today
+from pypika import Order
from erpnext.stock.deprecated_serial_batch import (
DeprecatedBatchNoValuation,
@@ -324,9 +325,7 @@
batches = frappe._dict({self.sle.batch_no: self.sle.actual_qty})
batches_qty = get_available_batches(
- frappe._dict(
- {"item_code": self.item_code, "warehouse": self.warehouse, "batch_no": list(batches.keys())}
- )
+ frappe._dict({"item_code": self.item_code, "batch_no": list(batches.keys())})
)
for batch_no in batches:
@@ -424,19 +423,21 @@
)
else:
- entries = self.get_serial_no_ledgers()
-
self.serial_no_incoming_rate = defaultdict(float)
self.stock_value_change = 0.0
- for ledger in entries:
- self.stock_value_change += ledger.incoming_rate
- self.serial_no_incoming_rate[ledger.serial_no] += ledger.incoming_rate
+ serial_nos = self.get_serial_nos()
+ for serial_no in serial_nos:
+ incoming_rate = self.get_incoming_rate_from_bundle(serial_no)
+ if not incoming_rate:
+ continue
+
+ self.stock_value_change += incoming_rate
+ self.serial_no_incoming_rate[serial_no] += incoming_rate
self.calculate_stock_value_from_deprecarated_ledgers()
- def get_serial_no_ledgers(self):
- serial_nos = self.get_serial_nos()
+ def get_incoming_rate_from_bundle(self, serial_no) -> float:
bundle = frappe.qb.DocType("Serial and Batch Bundle")
bundle_child = frappe.qb.DocType("Serial and Batch Entry")
@@ -444,20 +445,18 @@
frappe.qb.from_(bundle)
.inner_join(bundle_child)
.on(bundle.name == bundle_child.parent)
- .select(
- bundle.name,
- bundle_child.serial_no,
- (bundle_child.incoming_rate * bundle_child.qty).as_("incoming_rate"),
- )
+ .select((bundle_child.incoming_rate * bundle_child.qty).as_("incoming_rate"))
.where(
(bundle.is_cancelled == 0)
& (bundle.docstatus == 1)
- & (bundle_child.serial_no.isin(serial_nos))
- & (bundle.type_of_transaction.isin(["Inward", "Outward"]))
+ & (bundle_child.serial_no == serial_no)
+ & (bundle.type_of_transaction == "Inward")
+ & (bundle_child.qty > 0)
& (bundle.item_code == self.sle.item_code)
& (bundle_child.warehouse == self.sle.warehouse)
)
- .orderby(bundle.posting_date, bundle.posting_time, bundle.creation)
+ .orderby(Timestamp(bundle.posting_date, bundle.posting_time), order=Order.desc)
+ .limit(1)
)
# Important to exclude the current voucher to calculate correct the stock value difference
@@ -474,7 +473,8 @@
query = query.where(timestamp_condition)
- return query.run(as_dict=True)
+ incoming_rate = query.run()
+ return flt(incoming_rate[0][0]) if incoming_rate else 0.0
def get_serial_nos(self):
if self.sle.get("serial_nos"):
diff --git a/erpnext/stock/stock_ledger.py b/erpnext/stock/stock_ledger.py
index 2ae6c19..60053aa 100644
--- a/erpnext/stock/stock_ledger.py
+++ b/erpnext/stock/stock_ledger.py
@@ -893,6 +893,9 @@
query.run()
def calculate_valuation_for_serial_batch_bundle(self, sle):
+ if not frappe.db.exists("Serial and Batch Bundle", sle.serial_and_batch_bundle):
+ return
+
doc = frappe.get_cached_doc("Serial and Batch Bundle", sle.serial_and_batch_bundle)
doc.set_incoming_rate(save=True, allow_negative_stock=self.allow_negative_stock)
@@ -952,7 +955,12 @@
get_rate_for_return, # don't move this import to top
)
- if self.valuation_method == "Moving Average":
+ if (
+ self.valuation_method == "Moving Average"
+ and not sle.get("serial_no")
+ and not sle.get("batch_no")
+ and not sle.get("serial_and_batch_bundle")
+ ):
rate = get_incoming_rate(
{
"item_code": sle.item_code,
@@ -979,6 +987,18 @@
voucher_detail_no=sle.voucher_detail_no,
sle=sle,
)
+
+ if (
+ sle.get("serial_and_batch_bundle")
+ and rate > 0
+ and sle.voucher_type in ["Delivery Note", "Sales Invoice"]
+ ):
+ frappe.db.set_value(
+ sle.voucher_type + " Item",
+ sle.voucher_detail_no,
+ "incoming_rate",
+ rate,
+ )
elif (
sle.voucher_type in ["Purchase Receipt", "Purchase Invoice"]
and sle.voucher_detail_no
diff --git a/erpnext/subcontracting/doctype/subcontracting_receipt/test_subcontracting_receipt.py b/erpnext/subcontracting/doctype/subcontracting_receipt/test_subcontracting_receipt.py
index 0450038..3e74ac9 100644
--- a/erpnext/subcontracting/doctype/subcontracting_receipt/test_subcontracting_receipt.py
+++ b/erpnext/subcontracting/doctype/subcontracting_receipt/test_subcontracting_receipt.py
@@ -1061,6 +1061,157 @@
self.assertTrue(frappe.db.get_value("Purchase Receipt", {"subcontracting_receipt": scr.name}))
+ def test_use_serial_batch_fields_for_subcontracting_receipt(self):
+ fg_item = make_item(
+ "Test Subcontracted Item With Batch No",
+ properties={
+ "is_stock_item": 1,
+ "has_batch_no": 1,
+ "create_new_batch": 1,
+ "batch_number_series": "BATCH-BNGS-.####",
+ "is_sub_contracted_item": 1,
+ },
+ ).name
+
+ make_item(
+ "Test Subcontracted Item With Batch No Service Item 1",
+ properties={"is_stock_item": 0},
+ )
+
+ make_bom(
+ item=fg_item,
+ raw_materials=[
+ make_item(
+ "Test Subcontracted Item With Batch No RM Item 1",
+ properties={
+ "is_stock_item": 1,
+ "has_batch_no": 1,
+ "create_new_batch": 1,
+ "batch_number_series": "BATCH-RM-BNGS-.####",
+ },
+ ).name
+ ],
+ )
+
+ service_items = [
+ {
+ "warehouse": "_Test Warehouse - _TC",
+ "item_code": "Test Subcontracted Item With Batch No Service Item 1",
+ "qty": 1,
+ "rate": 100,
+ "fg_item": fg_item,
+ "fg_item_qty": 1,
+ },
+ ]
+ sco = get_subcontracting_order(service_items=service_items)
+ rm_items = get_rm_items(sco.supplied_items)
+ itemwise_details = make_stock_in_entry(rm_items=rm_items)
+ make_stock_transfer_entry(
+ sco_no=sco.name,
+ rm_items=rm_items,
+ itemwise_details=copy.deepcopy(itemwise_details),
+ )
+
+ batch_no = "BATCH-BNGS-0001"
+ if not frappe.db.exists("Batch", batch_no):
+ frappe.get_doc(
+ {
+ "doctype": "Batch",
+ "batch_id": batch_no,
+ "item": fg_item,
+ }
+ ).insert()
+
+ scr = make_subcontracting_receipt(sco.name)
+ self.assertFalse(scr.items[0].serial_and_batch_bundle)
+ scr.items[0].use_serial_batch_fields = 1
+ scr.items[0].batch_no = batch_no
+
+ scr.save()
+ scr.submit()
+ scr.reload()
+ self.assertTrue(scr.items[0].serial_and_batch_bundle)
+
+ def test_use_serial_batch_fields_for_subcontracting_receipt_with_rejected_qty(self):
+ from erpnext.stock.doctype.warehouse.test_warehouse import create_warehouse
+
+ fg_item = make_item(
+ "Test Subcontracted Item With Batch No for Rejected Qty",
+ properties={
+ "is_stock_item": 1,
+ "has_batch_no": 1,
+ "create_new_batch": 1,
+ "batch_number_series": "BATCH-REJ-BNGS-.####",
+ "is_sub_contracted_item": 1,
+ },
+ ).name
+
+ make_item(
+ "Test Subcontracted Item With Batch No Service Item 2",
+ properties={"is_stock_item": 0},
+ )
+
+ make_bom(
+ item=fg_item,
+ raw_materials=[
+ make_item(
+ "Test Subcontracted Item With Batch No RM Item 2",
+ properties={
+ "is_stock_item": 1,
+ "has_batch_no": 1,
+ "create_new_batch": 1,
+ "batch_number_series": "BATCH-REJ-RM-BNGS-.####",
+ },
+ ).name
+ ],
+ )
+
+ service_items = [
+ {
+ "warehouse": "_Test Warehouse - _TC",
+ "item_code": "Test Subcontracted Item With Batch No Service Item 2",
+ "qty": 10,
+ "rate": 100,
+ "fg_item": fg_item,
+ "fg_item_qty": 10,
+ },
+ ]
+ sco = get_subcontracting_order(service_items=service_items)
+ rm_items = get_rm_items(sco.supplied_items)
+ itemwise_details = make_stock_in_entry(rm_items=rm_items)
+ make_stock_transfer_entry(
+ sco_no=sco.name,
+ rm_items=rm_items,
+ itemwise_details=copy.deepcopy(itemwise_details),
+ )
+
+ batch_no = "BATCH-REJ-BNGS-0001"
+ if not frappe.db.exists("Batch", batch_no):
+ frappe.get_doc(
+ {
+ "doctype": "Batch",
+ "batch_id": batch_no,
+ "item": fg_item,
+ }
+ ).insert()
+
+ rej_warehouse = create_warehouse("_Test Subcontract Warehouse For Rejected Qty")
+
+ scr = make_subcontracting_receipt(sco.name)
+ self.assertFalse(scr.items[0].serial_and_batch_bundle)
+ scr.items[0].use_serial_batch_fields = 1
+ scr.items[0].batch_no = batch_no
+ scr.items[0].received_qty = 10
+ scr.items[0].rejected_qty = 2
+ scr.items[0].qty = 8
+ scr.items[0].rejected_warehouse = rej_warehouse
+
+ scr.save()
+ scr.submit()
+ scr.reload()
+ self.assertTrue(scr.items[0].serial_and_batch_bundle)
+ self.assertTrue(scr.items[0].rejected_serial_and_batch_bundle)
+
def make_return_subcontracting_receipt(**args):
args = frappe._dict(args)
diff --git a/erpnext/subcontracting/doctype/subcontracting_receipt_item/subcontracting_receipt_item.json b/erpnext/subcontracting/doctype/subcontracting_receipt_item/subcontracting_receipt_item.json
index f9e0a0b..ca14f09 100644
--- a/erpnext/subcontracting/doctype/subcontracting_receipt_item/subcontracting_receipt_item.json
+++ b/erpnext/subcontracting/doctype/subcontracting_receipt_item/subcontracting_receipt_item.json
@@ -335,8 +335,7 @@
"fieldtype": "Small Text",
"label": "Rejected Serial No",
"no_copy": 1,
- "print_hide": 1,
- "read_only": 1
+ "print_hide": 1
},
{
"fieldname": "subcontracting_order_item",
@@ -569,7 +568,7 @@
"idx": 1,
"istable": 1,
"links": [],
- "modified": "2024-02-04 16:23:30.374865",
+ "modified": "2024-03-07 11:43:38.954262",
"modified_by": "Administrator",
"module": "Subcontracting",
"name": "Subcontracting Receipt Item",