diff --git a/CODEOWNERS b/CODEOWNERS
index e406f8f..c4ea163 100644
--- a/CODEOWNERS
+++ b/CODEOWNERS
@@ -4,7 +4,7 @@
 # the repo. Unless a later match takes precedence,
 
 erpnext/accounts/               @nextchamp-saqib @deepeshgarg007 @ruthra-kumar
-erpnext/assets/                 @nextchamp-saqib @deepeshgarg007 @ruthra-kumar
+erpnext/assets/                 @anandbaburajan @deepeshgarg007
 erpnext/loan_management/        @nextchamp-saqib @deepeshgarg007
 erpnext/regional                @nextchamp-saqib @deepeshgarg007 @ruthra-kumar
 erpnext/selling                 @nextchamp-saqib @deepeshgarg007 @ruthra-kumar
@@ -16,6 +16,7 @@
 erpnext/manufacturing/          @rohitwaghchaure @s-aga-r
 erpnext/quality_management/     @rohitwaghchaure @s-aga-r
 erpnext/stock/                  @rohitwaghchaure @s-aga-r
+erpnext/subcontracting          @rohitwaghchaure @s-aga-r
 
 erpnext/crm/                    @NagariaHussain
 erpnext/education/              @rutwikhdev
diff --git a/README.md b/README.md
index 0708266..44bd729 100644
--- a/README.md
+++ b/README.md
@@ -65,7 +65,7 @@
 1. [Frappe School](https://frappe.school) - Learn Frappe Framework and ERPNext from the various courses by the maintainers or from the community.
 2. [Official documentation](https://docs.erpnext.com/) - Extensive documentation for ERPNext.
 3. [Discussion Forum](https://discuss.erpnext.com/) - Engage with community of ERPNext users and service providers.
-4. [Telegram Group](https://t.me/erpnexthelp) - Get instant help from huge community of users.
+4. [Telegram Group](https://erpnext_public.t.me) - Get instant help from huge community of users.
 
 
 ## Contributing
diff --git a/erpnext/accounts/doctype/bank/bank.js b/erpnext/accounts/doctype/bank/bank.js
index 059e1d3..35d606b 100644
--- a/erpnext/accounts/doctype/bank/bank.js
+++ b/erpnext/accounts/doctype/bank/bank.js
@@ -118,6 +118,10 @@
 	}
 
 	plaid_success(token, response) {
-		frappe.show_alert({ message: __('Plaid Link Updated'), indicator: 'green' });
+		frappe.xcall('erpnext.erpnext_integrations.doctype.plaid_settings.plaid_settings.update_bank_account_ids', {
+			response: response,
+		}).then(() => {
+			frappe.show_alert({ message: __('Plaid Link Updated'), indicator: 'green' });
+		});
 	}
 };
diff --git a/erpnext/accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.js b/erpnext/accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.js
index c083189..ae84154 100644
--- a/erpnext/accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.js
+++ b/erpnext/accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.js
@@ -155,7 +155,7 @@
 		}
 	},
 
-	render_chart: frappe.utils.debounce((frm) => {
+	render_chart(frm) {
 		frm.cards_manager = new erpnext.accounts.bank_reconciliation.NumberCardManager(
 			{
 				$reconciliation_tool_cards: frm.get_field(
@@ -167,7 +167,7 @@
 				currency: frm.currency,
 			}
 		);
-	}, 500),
+	},
 
 	render(frm) {
 		if (frm.doc.bank_account) {
diff --git a/erpnext/accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.py b/erpnext/accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.py
index 4ba6146..c4a23a6 100644
--- a/erpnext/accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.py
+++ b/erpnext/accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.py
@@ -10,7 +10,7 @@
 from frappe.query_builder.custom import ConstantColumn
 from frappe.utils import cint, flt
 
-from erpnext.accounts.doctype.bank_transaction.bank_transaction import get_paid_amount
+from erpnext.accounts.doctype.bank_transaction.bank_transaction import get_total_allocated_amount
 from erpnext.accounts.report.bank_reconciliation_statement.bank_reconciliation_statement import (
 	get_amounts_not_reflected_in_system,
 	get_entries,
@@ -28,7 +28,7 @@
 	filters = []
 	filters.append(["bank_account", "=", bank_account])
 	filters.append(["docstatus", "=", 1])
-	filters.append(["unallocated_amount", ">", 0])
+	filters.append(["unallocated_amount", ">", 0.0])
 	if to_date:
 		filters.append(["date", "<=", to_date])
 	if from_date:
@@ -58,7 +58,7 @@
 @frappe.whitelist()
 def get_account_balance(bank_account, till_date):
 	# returns account balance till the specified date
-	account = frappe.get_cached_value("Bank Account", bank_account, "account")
+	account = frappe.db.get_value("Bank Account", bank_account, "account")
 	filters = frappe._dict(
 		{"account": account, "report_date": till_date, "include_pos_transactions": 1}
 	)
@@ -66,7 +66,7 @@
 
 	balance_as_per_system = get_balance_on(filters["account"], filters["report_date"])
 
-	total_debit, total_credit = 0, 0
+	total_debit, total_credit = 0.0, 0.0
 	for d in data:
 		total_debit += flt(d.debit)
 		total_credit += flt(d.credit)
@@ -131,10 +131,8 @@
 		fieldname=["name", "deposit", "withdrawal", "bank_account"],
 		as_dict=True,
 	)[0]
-	company_account = frappe.get_cached_value(
-		"Bank Account", bank_transaction.bank_account, "account"
-	)
-	account_type = frappe.get_cached_value("Account", second_account, "account_type")
+	company_account = frappe.get_value("Bank Account", bank_transaction.bank_account, "account")
+	account_type = frappe.db.get_value("Account", second_account, "account_type")
 	if account_type in ["Receivable", "Payable"]:
 		if not (party_type and party):
 			frappe.throw(
@@ -147,10 +145,8 @@
 	accounts.append(
 		{
 			"account": second_account,
-			"credit_in_account_currency": bank_transaction.deposit if bank_transaction.deposit > 0 else 0,
-			"debit_in_account_currency": bank_transaction.withdrawal
-			if bank_transaction.withdrawal > 0
-			else 0,
+			"credit_in_account_currency": bank_transaction.deposit,
+			"debit_in_account_currency": bank_transaction.withdrawal,
 			"party_type": party_type,
 			"party": party,
 		}
@@ -160,14 +156,12 @@
 		{
 			"account": company_account,
 			"bank_account": bank_transaction.bank_account,
-			"credit_in_account_currency": bank_transaction.withdrawal
-			if bank_transaction.withdrawal > 0
-			else 0,
-			"debit_in_account_currency": bank_transaction.deposit if bank_transaction.deposit > 0 else 0,
+			"credit_in_account_currency": bank_transaction.withdrawal,
+			"debit_in_account_currency": bank_transaction.deposit,
 		}
 	)
 
-	company = frappe.get_cached_value("Account", company_account, "company")
+	company = frappe.get_value("Account", company_account, "company")
 
 	journal_entry_dict = {
 		"voucher_type": entry_type,
@@ -187,16 +181,22 @@
 	journal_entry.insert()
 	journal_entry.submit()
 
-	if bank_transaction.deposit > 0:
+	if bank_transaction.deposit > 0.0:
 		paid_amount = bank_transaction.deposit
 	else:
 		paid_amount = bank_transaction.withdrawal
 
 	vouchers = json.dumps(
-		[{"payment_doctype": "Journal Entry", "payment_name": journal_entry.name, "amount": paid_amount}]
+		[
+			{
+				"payment_doctype": "Journal Entry",
+				"payment_name": journal_entry.name,
+				"amount": paid_amount,
+			}
+		]
 	)
 
-	return reconcile_vouchers(bank_transaction.name, vouchers)
+	return reconcile_vouchers(bank_transaction_name, vouchers)
 
 
 @frappe.whitelist()
@@ -220,12 +220,10 @@
 		as_dict=True,
 	)[0]
 	paid_amount = bank_transaction.unallocated_amount
-	payment_type = "Receive" if bank_transaction.deposit > 0 else "Pay"
+	payment_type = "Receive" if bank_transaction.deposit > 0.0 else "Pay"
 
-	company_account = frappe.get_cached_value(
-		"Bank Account", bank_transaction.bank_account, "account"
-	)
-	company = frappe.get_cached_value("Account", company_account, "company")
+	company_account = frappe.get_value("Bank Account", bank_transaction.bank_account, "account")
+	company = frappe.get_value("Account", company_account, "company")
 	payment_entry_dict = {
 		"company": company,
 		"payment_type": payment_type,
@@ -261,9 +259,15 @@
 
 	payment_entry.submit()
 	vouchers = json.dumps(
-		[{"payment_doctype": "Payment Entry", "payment_name": payment_entry.name, "amount": paid_amount}]
+		[
+			{
+				"payment_doctype": "Payment Entry",
+				"payment_name": payment_entry.name,
+				"amount": paid_amount,
+			}
+		]
 	)
-	return reconcile_vouchers(bank_transaction.name, vouchers)
+	return reconcile_vouchers(bank_transaction_name, vouchers)
 
 
 @frappe.whitelist()
@@ -345,59 +349,7 @@
 	# updated clear date of all the vouchers based on the bank transaction
 	vouchers = json.loads(vouchers)
 	transaction = frappe.get_doc("Bank Transaction", bank_transaction_name)
-	company_account = frappe.get_cached_value("Bank Account", transaction.bank_account, "account")
-
-	if transaction.unallocated_amount == 0:
-		frappe.throw(_("This bank transaction is already fully reconciled"))
-	total_amount = 0
-	for voucher in vouchers:
-		voucher["payment_entry"] = frappe.get_doc(voucher["payment_doctype"], voucher["payment_name"])
-		total_amount += get_paid_amount(
-			frappe._dict(
-				{
-					"payment_document": voucher["payment_doctype"],
-					"payment_entry": voucher["payment_name"],
-				}
-			),
-			transaction.currency,
-			company_account,
-		)
-
-	if total_amount > transaction.unallocated_amount:
-		frappe.throw(
-			_(
-				"The sum total of amounts of all selected vouchers should be less than the unallocated amount of the bank transaction"
-			)
-		)
-	account = frappe.get_cached_value("Bank Account", transaction.bank_account, "account")
-
-	for voucher in vouchers:
-		gl_entry = frappe.db.get_value(
-			"GL Entry",
-			dict(
-				account=account, voucher_type=voucher["payment_doctype"], voucher_no=voucher["payment_name"]
-			),
-			["credit_in_account_currency as credit", "debit_in_account_currency as debit"],
-			as_dict=1,
-		)
-		gl_amount, transaction_amount = (
-			(gl_entry.credit, transaction.deposit)
-			if gl_entry.credit > 0
-			else (gl_entry.debit, transaction.withdrawal)
-		)
-		allocated_amount = gl_amount if gl_amount >= transaction_amount else transaction_amount
-
-		transaction.append(
-			"payment_entries",
-			{
-				"payment_document": voucher["payment_entry"].doctype,
-				"payment_entry": voucher["payment_entry"].name,
-				"allocated_amount": allocated_amount,
-			},
-		)
-
-	transaction.save()
-	transaction.update_allocations()
+	transaction.add_payment_entries(vouchers)
 	return frappe.get_doc("Bank Transaction", bank_transaction_name)
 
 
@@ -416,9 +368,9 @@
 	bank_account = frappe.db.get_values(
 		"Bank Account", transaction.bank_account, ["account", "company"], as_dict=True
 	)[0]
-	(account, company) = (bank_account.account, bank_account.company)
+	(gl_account, company) = (bank_account.account, bank_account.company)
 	matching = check_matching(
-		account,
+		gl_account,
 		company,
 		transaction,
 		document_types,
@@ -428,7 +380,27 @@
 		from_reference_date,
 		to_reference_date,
 	)
-	return matching
+	return subtract_allocations(gl_account, matching)
+
+
+def subtract_allocations(gl_account, vouchers):
+	"Look up & subtract any existing Bank Transaction allocations"
+	copied = []
+	for voucher in vouchers:
+		rows = get_total_allocated_amount(voucher[1], voucher[2])
+		amount = None
+		for row in rows:
+			if row["gl_account"] == gl_account:
+				amount = row["total"]
+				break
+
+		if amount:
+			l = list(voucher)
+			l[3] -= amount
+			copied.append(tuple(l))
+		else:
+			copied.append(voucher)
+	return copied
 
 
 def check_matching(
@@ -442,6 +414,7 @@
 	from_reference_date,
 	to_reference_date,
 ):
+	exact_match = True if "exact_match" in document_types else False
 	# combine all types of vouchers
 	subquery = get_queries(
 		bank_account,
@@ -453,10 +426,11 @@
 		filter_by_reference_date,
 		from_reference_date,
 		to_reference_date,
+		exact_match,
 	)
 	filters = {
 		"amount": transaction.unallocated_amount,
-		"payment_type": "Receive" if transaction.deposit > 0 else "Pay",
+		"payment_type": "Receive" if transaction.deposit > 0.0 else "Pay",
 		"reference_no": transaction.reference_number,
 		"party_type": transaction.party_type,
 		"party": transaction.party,
@@ -465,7 +439,9 @@
 
 	matching_vouchers = []
 
-	matching_vouchers.extend(get_loan_vouchers(bank_account, transaction, document_types, filters))
+	matching_vouchers.extend(
+		get_loan_vouchers(bank_account, transaction, document_types, filters, exact_match)
+	)
 
 	for query in subquery:
 		matching_vouchers.extend(
@@ -487,10 +463,10 @@
 	filter_by_reference_date,
 	from_reference_date,
 	to_reference_date,
+	exact_match,
 ):
 	# get queries to get matching vouchers
-	amount_condition = "=" if "exact_match" in document_types else "<="
-	account_from_to = "paid_to" if transaction.deposit > 0 else "paid_from"
+	account_from_to = "paid_to" if transaction.deposit > 0.0 else "paid_from"
 	queries = []
 
 	# get matching queries from all the apps
@@ -501,7 +477,7 @@
 				company,
 				transaction,
 				document_types,
-				amount_condition,
+				exact_match,
 				account_from_to,
 				from_date,
 				to_date,
@@ -520,7 +496,7 @@
 	company,
 	transaction,
 	document_types,
-	amount_condition,
+	exact_match,
 	account_from_to,
 	from_date,
 	to_date,
@@ -530,8 +506,8 @@
 ):
 	queries = []
 	if "payment_entry" in document_types:
-		pe_amount_matching = get_pe_matching_query(
-			amount_condition,
+		query = get_pe_matching_query(
+			exact_match,
 			account_from_to,
 			transaction,
 			from_date,
@@ -540,11 +516,11 @@
 			from_reference_date,
 			to_reference_date,
 		)
-		queries.extend([pe_amount_matching])
+		queries.append(query)
 
 	if "journal_entry" in document_types:
-		je_amount_matching = get_je_matching_query(
-			amount_condition,
+		query = get_je_matching_query(
+			exact_match,
 			transaction,
 			from_date,
 			to_date,
@@ -552,34 +528,70 @@
 			from_reference_date,
 			to_reference_date,
 		)
-		queries.extend([je_amount_matching])
+		queries.append(query)
 
-	if transaction.deposit > 0 and "sales_invoice" in document_types:
-		si_amount_matching = get_si_matching_query(amount_condition)
-		queries.extend([si_amount_matching])
+	if transaction.deposit > 0.0 and "sales_invoice" in document_types:
+		query = get_si_matching_query(exact_match)
+		queries.append(query)
 
-	if transaction.withdrawal > 0:
+	if transaction.withdrawal > 0.0:
 		if "purchase_invoice" in document_types:
-			pi_amount_matching = get_pi_matching_query(amount_condition)
-			queries.extend([pi_amount_matching])
+			query = get_pi_matching_query(exact_match)
+			queries.append(query)
+
+	if "bank_transaction" in document_types:
+		query = get_bt_matching_query(exact_match, transaction)
+		queries.append(query)
 
 	return queries
 
 
-def get_loan_vouchers(bank_account, transaction, document_types, filters):
+def get_loan_vouchers(bank_account, transaction, document_types, filters, exact_match):
 	vouchers = []
-	amount_condition = True if "exact_match" in document_types else False
 
-	if transaction.withdrawal > 0 and "loan_disbursement" in document_types:
-		vouchers.extend(get_ld_matching_query(bank_account, amount_condition, filters))
+	if transaction.withdrawal > 0.0 and "loan_disbursement" in document_types:
+		vouchers.extend(get_ld_matching_query(bank_account, exact_match, filters))
 
-	if transaction.deposit > 0 and "loan_repayment" in document_types:
-		vouchers.extend(get_lr_matching_query(bank_account, amount_condition, filters))
+	if transaction.deposit > 0.0 and "loan_repayment" in document_types:
+		vouchers.extend(get_lr_matching_query(bank_account, exact_match, filters))
 
 	return vouchers
 
 
-def get_ld_matching_query(bank_account, amount_condition, filters):
+def get_bt_matching_query(exact_match, transaction):
+	# get matching bank transaction query
+	# find bank transactions in the same bank account with opposite sign
+	# same bank account must have same company and currency
+	field = "deposit" if transaction.withdrawal > 0.0 else "withdrawal"
+
+	return f"""
+
+		SELECT
+			(CASE WHEN reference_number = %(reference_no)s THEN 1 ELSE 0 END
+			+ CASE WHEN {field} = %(amount)s THEN 1 ELSE 0 END
+			+ CASE WHEN ( party_type = %(party_type)s AND party = %(party)s ) THEN 1 ELSE 0 END
+			+ CASE WHEN unallocated_amount = %(amount)s THEN 1 ELSE 0 END
+			+ 1) AS rank,
+			'Bank Transaction' AS doctype,
+			name,
+			unallocated_amount AS paid_amount,
+			reference_number AS reference_no,
+			date AS reference_date,
+			party,
+			party_type,
+			date AS posting_date,
+			currency
+		FROM
+			`tabBank Transaction`
+		WHERE
+			status != 'Reconciled'
+			AND name != '{transaction.name}'
+			AND bank_account = '{transaction.bank_account}'
+			AND {field} {'= %(amount)s' if exact_match else '> 0.0'}
+	"""
+
+
+def get_ld_matching_query(bank_account, exact_match, filters):
 	loan_disbursement = frappe.qb.DocType("Loan Disbursement")
 	matching_reference = loan_disbursement.reference_number == filters.get("reference_number")
 	matching_party = loan_disbursement.applicant_type == filters.get(
@@ -607,17 +619,17 @@
 		.where(loan_disbursement.disbursement_account == bank_account)
 	)
 
-	if amount_condition:
+	if exact_match:
 		query.where(loan_disbursement.disbursed_amount == filters.get("amount"))
 	else:
-		query.where(loan_disbursement.disbursed_amount <= filters.get("amount"))
+		query.where(loan_disbursement.disbursed_amount > 0.0)
 
 	vouchers = query.run(as_list=True)
 
 	return vouchers
 
 
-def get_lr_matching_query(bank_account, amount_condition, filters):
+def get_lr_matching_query(bank_account, exact_match, filters):
 	loan_repayment = frappe.qb.DocType("Loan Repayment")
 	matching_reference = loan_repayment.reference_number == filters.get("reference_number")
 	matching_party = loan_repayment.applicant_type == filters.get(
@@ -648,10 +660,10 @@
 	if frappe.db.has_column("Loan Repayment", "repay_from_salary"):
 		query = query.where((loan_repayment.repay_from_salary == 0))
 
-	if amount_condition:
+	if exact_match:
 		query.where(loan_repayment.amount_paid == filters.get("amount"))
 	else:
-		query.where(loan_repayment.amount_paid <= filters.get("amount"))
+		query.where(loan_repayment.amount_paid > 0.0)
 
 	vouchers = query.run()
 
@@ -659,7 +671,7 @@
 
 
 def get_pe_matching_query(
-	amount_condition,
+	exact_match,
 	account_from_to,
 	transaction,
 	from_date,
@@ -669,7 +681,7 @@
 	to_reference_date,
 ):
 	# get matching payment entries query
-	if transaction.deposit > 0:
+	if transaction.deposit > 0.0:
 		currency_field = "paid_to_account_currency as currency"
 	else:
 		currency_field = "paid_from_account_currency as currency"
@@ -684,7 +696,8 @@
 	return f"""
 		SELECT
 			(CASE WHEN reference_no=%(reference_no)s THEN 1 ELSE 0 END
-			+ CASE WHEN (party_type = %(party_type)s AND party = %(party)s ) THEN 1 ELSE 0  END
+			+ CASE WHEN (party_type = %(party_type)s AND party = %(party)s ) THEN 1 ELSE 0 END
+			+ CASE WHEN paid_amount = %(amount)s THEN 1 ELSE 0 END
 			+ 1 ) AS rank,
 			'Payment Entry' as doctype,
 			name,
@@ -698,20 +711,19 @@
 		FROM
 			`tabPayment Entry`
 		WHERE
-			paid_amount {amount_condition} %(amount)s
-			AND docstatus = 1
+			docstatus = 1
 			AND payment_type IN (%(payment_type)s, 'Internal Transfer')
 			AND ifnull(clearance_date, '') = ""
 			AND {account_from_to} = %(bank_account)s
+			AND paid_amount {'= %(amount)s' if exact_match else '> 0.0'}
 			{filter_by_date}
 			{filter_by_reference_no}
 		order by{order_by}
-
 	"""
 
 
 def get_je_matching_query(
-	amount_condition,
+	exact_match,
 	transaction,
 	from_date,
 	to_date,
@@ -723,7 +735,7 @@
 	# We have mapping at the bank level
 	# So one bank could have both types of bank accounts like asset and liability
 	# So cr_or_dr should be judged only on basis of withdrawal and deposit and not account type
-	cr_or_dr = "credit" if transaction.withdrawal > 0 else "debit"
+	cr_or_dr = "credit" if transaction.withdrawal > 0.0 else "debit"
 	filter_by_date = f"AND je.posting_date between '{from_date}' and '{to_date}'"
 	order_by = " je.posting_date"
 	filter_by_reference_no = ""
@@ -735,26 +747,29 @@
 	return f"""
 		SELECT
 			(CASE WHEN je.cheque_no=%(reference_no)s THEN 1 ELSE 0 END
+			+ CASE WHEN jea.{cr_or_dr}_in_account_currency = %(amount)s THEN 1 ELSE 0 END
 			+ 1) AS rank ,
-			'Journal Entry' as doctype,
+			'Journal Entry' AS doctype,
 			je.name,
-			jea.{cr_or_dr}_in_account_currency as paid_amount,
-			je.cheque_no as reference_no,
-			je.cheque_date as reference_date,
-			je.pay_to_recd_from as party,
+			jea.{cr_or_dr}_in_account_currency AS paid_amount,
+			je.cheque_no AS reference_no,
+			je.cheque_date AS reference_date,
+			je.pay_to_recd_from AS party,
 			jea.party_type,
 			je.posting_date,
-			jea.account_currency as currency
+			jea.account_currency AS currency
 		FROM
-			`tabJournal Entry Account` as jea
+			`tabJournal Entry Account` AS jea
 		JOIN
-			`tabJournal Entry` as je
+			`tabJournal Entry` AS je
 		ON
 			jea.parent = je.name
 		WHERE
-			(je.clearance_date is null or je.clearance_date='0000-00-00')
+			je.docstatus = 1
+			AND je.voucher_type NOT IN ('Opening Entry')
+			AND (je.clearance_date IS NULL OR je.clearance_date='0000-00-00')
 			AND jea.account = %(bank_account)s
-			AND jea.{cr_or_dr}_in_account_currency {amount_condition} %(amount)s
+			AND jea.{cr_or_dr}_in_account_currency {'= %(amount)s' if exact_match else '> 0.0'}
 			AND je.docstatus = 1
 			{filter_by_date}
 			{filter_by_reference_no}
@@ -762,11 +777,12 @@
 	"""
 
 
-def get_si_matching_query(amount_condition):
-	# get matchin sales invoice query
+def get_si_matching_query(exact_match):
+	# get matching sales invoice query
 	return f"""
 		SELECT
-			( CASE WHEN si.customer = %(party)s  THEN 1 ELSE 0  END
+			( CASE WHEN si.customer = %(party)s  THEN 1 ELSE 0 END
+			+ CASE WHEN sip.amount = %(amount)s THEN 1 ELSE 0 END
 			+ 1 ) AS rank,
 			'Sales Invoice' as doctype,
 			si.name,
@@ -784,18 +800,20 @@
 			`tabSales Invoice` as si
 		ON
 			sip.parent = si.name
-		WHERE (sip.clearance_date is null or sip.clearance_date='0000-00-00')
+		WHERE
+			si.docstatus = 1
+			AND (sip.clearance_date is null or sip.clearance_date='0000-00-00')
 			AND sip.account = %(bank_account)s
-			AND sip.amount {amount_condition} %(amount)s
-			AND si.docstatus = 1
+			AND sip.amount {'= %(amount)s' if exact_match else '> 0.0'}
 	"""
 
 
-def get_pi_matching_query(amount_condition):
-	# get matching purchase invoice query
+def get_pi_matching_query(exact_match):
+	# get matching purchase invoice query when they are also used as payment entries (is_paid)
 	return f"""
 		SELECT
 			( CASE WHEN supplier = %(party)s THEN 1 ELSE 0 END
+			+ CASE WHEN paid_amount = %(amount)s THEN 1 ELSE 0 END
 			+ 1 ) AS rank,
 			'Purchase Invoice' as doctype,
 			name,
@@ -809,9 +827,9 @@
 		FROM
 			`tabPurchase Invoice`
 		WHERE
-			paid_amount {amount_condition} %(amount)s
-			AND docstatus = 1
+			docstatus = 1
 			AND is_paid = 1
 			AND ifnull(clearance_date, '') = ""
-			AND cash_bank_account  = %(bank_account)s
+			AND cash_bank_account = %(bank_account)s
+			AND paid_amount {'= %(amount)s' if exact_match else '> 0.0'}
 	"""
diff --git a/erpnext/accounts/doctype/bank_transaction/bank_transaction.js b/erpnext/accounts/doctype/bank_transaction/bank_transaction.js
index 6f2900a..e548b4c 100644
--- a/erpnext/accounts/doctype/bank_transaction/bank_transaction.js
+++ b/erpnext/accounts/doctype/bank_transaction/bank_transaction.js
@@ -12,8 +12,13 @@
 			};
 		});
 	},
-
-	bank_account: function(frm) {
+	refresh(frm) {
+		frm.add_custom_button(__('Unreconcile Transaction'), () => {
+			frm.call('remove_payment_entries')
+			.then( () => frm.refresh() );
+		});
+	},
+	bank_account: function (frm) {
 		set_bank_statement_filter(frm);
 	},
 
@@ -34,6 +39,7 @@
 			"Journal Entry",
 			"Sales Invoice",
 			"Purchase Invoice",
+			"Bank Transaction",
 		];
 	}
 });
@@ -49,7 +55,7 @@
 		frappe
 			.xcall(
 				"erpnext.accounts.doctype.bank_transaction.bank_transaction.unclear_reference_payment",
-				{ doctype: cdt, docname: cdn }
+				{ doctype: cdt, docname: cdn, bt_name: frm.doc.name }
 			)
 			.then((e) => {
 				if (e == "success") {
diff --git a/erpnext/accounts/doctype/bank_transaction/bank_transaction.json b/erpnext/accounts/doctype/bank_transaction/bank_transaction.json
index 2bdaa10..768d2f0 100644
--- a/erpnext/accounts/doctype/bank_transaction/bank_transaction.json
+++ b/erpnext/accounts/doctype/bank_transaction/bank_transaction.json
@@ -20,9 +20,11 @@
   "currency",
   "section_break_10",
   "description",
-  "section_break_14",
   "reference_number",
+  "column_break_10",
   "transaction_id",
+  "transaction_type",
+  "section_break_14",
   "payment_entries",
   "section_break_18",
   "allocated_amount",
@@ -190,11 +192,21 @@
    "label": "Withdrawal",
    "oldfieldname": "credit",
    "options": "currency"
+  },
+  {
+   "fieldname": "column_break_10",
+   "fieldtype": "Column Break"
+  },
+  {
+   "fieldname": "transaction_type",
+   "fieldtype": "Data",
+   "label": "Transaction Type",
+   "length": 50
   }
  ],
  "is_submittable": 1,
  "links": [],
- "modified": "2022-03-21 19:05:04.208222",
+ "modified": "2022-05-29 18:36:50.475964",
  "modified_by": "Administrator",
  "module": "Accounts",
  "name": "Bank Transaction",
@@ -248,4 +260,4 @@
  "states": [],
  "title_field": "bank_account",
  "track_changes": 1
-}
\ No newline at end of file
+}
diff --git a/erpnext/accounts/doctype/bank_transaction/bank_transaction.py b/erpnext/accounts/doctype/bank_transaction/bank_transaction.py
index 9b36c93..1516237 100644
--- a/erpnext/accounts/doctype/bank_transaction/bank_transaction.py
+++ b/erpnext/accounts/doctype/bank_transaction/bank_transaction.py
@@ -1,9 +1,6 @@
 # Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors
 # For license information, please see license.txt
 
-
-from functools import reduce
-
 import frappe
 from frappe.utils import flt
 
@@ -18,72 +15,137 @@
 		self.clear_linked_payment_entries()
 		self.set_status()
 
+	_saving_flag = False
+
+	# nosemgrep: frappe-semgrep-rules.rules.frappe-modifying-but-not-comitting
 	def on_update_after_submit(self):
-		self.update_allocations()
-		self.clear_linked_payment_entries()
-		self.set_status(update=True)
+		"Run on save(). Avoid recursion caused by multiple saves"
+		if not self._saving_flag:
+			self._saving_flag = True
+			self.clear_linked_payment_entries()
+			self.update_allocations()
+			self._saving_flag = False
 
 	def on_cancel(self):
 		self.clear_linked_payment_entries(for_cancel=True)
 		self.set_status(update=True)
 
 	def update_allocations(self):
+		"The doctype does not allow modifications after submission, so write to the db direct"
 		if self.payment_entries:
-			allocated_amount = reduce(
-				lambda x, y: flt(x) + flt(y), [x.allocated_amount for x in self.payment_entries]
-			)
+			allocated_amount = sum(p.allocated_amount for p in self.payment_entries)
 		else:
-			allocated_amount = 0
+			allocated_amount = 0.0
 
-		if allocated_amount:
-			frappe.db.set_value(self.doctype, self.name, "allocated_amount", flt(allocated_amount))
-			frappe.db.set_value(
-				self.doctype,
-				self.name,
-				"unallocated_amount",
-				abs(flt(self.withdrawal) - flt(self.deposit)) - flt(allocated_amount),
-			)
+		amount = abs(flt(self.withdrawal) - flt(self.deposit))
+		self.db_set("allocated_amount", flt(allocated_amount))
+		self.db_set("unallocated_amount", amount - flt(allocated_amount))
+		self.reload()
+		self.set_status(update=True)
 
-		else:
-			frappe.db.set_value(self.doctype, self.name, "allocated_amount", 0)
-			frappe.db.set_value(
-				self.doctype, self.name, "unallocated_amount", abs(flt(self.withdrawal) - flt(self.deposit))
-			)
+	def add_payment_entries(self, vouchers):
+		"Add the vouchers with zero allocation. Save() will perform the allocations and clearance"
+		if 0.0 >= self.unallocated_amount:
+			frappe.throw(frappe._(f"Bank Transaction {self.name} is already fully reconciled"))
 
-		amount = self.deposit or self.withdrawal
-		if amount == self.allocated_amount:
-			frappe.db.set_value(self.doctype, self.name, "status", "Reconciled")
+		added = False
+		for voucher in vouchers:
+			# Can't add same voucher twice
+			found = False
+			for pe in self.payment_entries:
+				if (
+					pe.payment_document == voucher["payment_doctype"]
+					and pe.payment_entry == voucher["payment_name"]
+				):
+					found = True
+
+			if not found:
+				pe = {
+					"payment_document": voucher["payment_doctype"],
+					"payment_entry": voucher["payment_name"],
+					"allocated_amount": 0.0,  # Temporary
+				}
+				child = self.append("payment_entries", pe)
+				added = True
+
+		# runs on_update_after_submit
+		if added:
+			self.save()
+
+	def allocate_payment_entries(self):
+		"""Refactored from bank reconciliation tool.
+		Non-zero allocations must be amended/cleared manually
+		Get the bank transaction amount (b) and remove as we allocate
+		For each payment_entry if allocated_amount == 0:
+		- get the amount already allocated against all transactions (t), need latest date
+		- get the voucher amount (from gl) (v)
+		- allocate (a = v - t)
+		    - a = 0: should already be cleared, so clear & remove payment_entry
+		    - 0 < a <= u: allocate a & clear
+		    - 0 < a, a > u: allocate u
+		    - 0 > a: Error: already over-allocated
+		- clear means: set the latest transaction date as clearance date
+		"""
+		gl_bank_account = frappe.db.get_value("Bank Account", self.bank_account, "account")
+		remaining_amount = self.unallocated_amount
+		for payment_entry in self.payment_entries:
+			if payment_entry.allocated_amount == 0.0:
+				unallocated_amount, should_clear, latest_transaction = get_clearance_details(
+					self, payment_entry
+				)
+
+				if 0.0 == unallocated_amount:
+					if should_clear:
+						latest_transaction.clear_linked_payment_entry(payment_entry)
+					self.db_delete_payment_entry(payment_entry)
+
+				elif remaining_amount <= 0.0:
+					self.db_delete_payment_entry(payment_entry)
+
+				elif 0.0 < unallocated_amount and unallocated_amount <= remaining_amount:
+					payment_entry.db_set("allocated_amount", unallocated_amount)
+					remaining_amount -= unallocated_amount
+					if should_clear:
+						latest_transaction.clear_linked_payment_entry(payment_entry)
+
+				elif 0.0 < unallocated_amount and unallocated_amount > remaining_amount:
+					payment_entry.db_set("allocated_amount", remaining_amount)
+					remaining_amount = 0.0
+
+				elif 0.0 > unallocated_amount:
+					self.db_delete_payment_entry(payment_entry)
+					frappe.throw(
+						frappe._(f"Voucher {payment_entry.payment_entry} is over-allocated by {unallocated_amount}")
+					)
 
 		self.reload()
 
-	def clear_linked_payment_entries(self, for_cancel=False):
+	def db_delete_payment_entry(self, payment_entry):
+		frappe.db.delete("Bank Transaction Payments", {"name": payment_entry.name})
+
+	@frappe.whitelist()
+	def remove_payment_entries(self):
 		for payment_entry in self.payment_entries:
-			if payment_entry.payment_document == "Sales Invoice":
-				self.clear_sales_invoice(payment_entry, for_cancel=for_cancel)
-			elif payment_entry.payment_document in get_doctypes_for_bank_reconciliation():
-				self.clear_simple_entry(payment_entry, for_cancel=for_cancel)
+			self.remove_payment_entry(payment_entry)
+		# runs on_update_after_submit
+		self.save()
 
-	def clear_simple_entry(self, payment_entry, for_cancel=False):
-		if payment_entry.payment_document == "Payment Entry":
-			if (
-				frappe.db.get_value("Payment Entry", payment_entry.payment_entry, "payment_type")
-				== "Internal Transfer"
-			):
-				if len(get_reconciled_bank_transactions(payment_entry)) < 2:
-					return
+	def remove_payment_entry(self, payment_entry):
+		"Clear payment entry and clearance"
+		self.clear_linked_payment_entry(payment_entry, for_cancel=True)
+		self.remove(payment_entry)
 
-		clearance_date = self.date if not for_cancel else None
-		frappe.db.set_value(
-			payment_entry.payment_document, payment_entry.payment_entry, "clearance_date", clearance_date
-		)
+	def clear_linked_payment_entries(self, for_cancel=False):
+		if for_cancel:
+			for payment_entry in self.payment_entries:
+				self.clear_linked_payment_entry(payment_entry, for_cancel)
+		else:
+			self.allocate_payment_entries()
 
-	def clear_sales_invoice(self, payment_entry, for_cancel=False):
-		clearance_date = self.date if not for_cancel else None
-		frappe.db.set_value(
-			"Sales Invoice Payment",
-			dict(parenttype=payment_entry.payment_document, parent=payment_entry.payment_entry),
-			"clearance_date",
-			clearance_date,
+	def clear_linked_payment_entry(self, payment_entry, for_cancel=False):
+		clearance_date = None if for_cancel else self.date
+		set_voucher_clearance(
+			payment_entry.payment_document, payment_entry.payment_entry, clearance_date, self
 		)
 
 
@@ -93,38 +155,112 @@
 	return frappe.get_hooks("bank_reconciliation_doctypes")
 
 
-def get_reconciled_bank_transactions(payment_entry):
-	reconciled_bank_transactions = frappe.get_all(
-		"Bank Transaction Payments",
-		filters={"payment_entry": payment_entry.payment_entry},
-		fields=["parent"],
+def get_clearance_details(transaction, payment_entry):
+	"""
+	There should only be one bank gle for a voucher.
+	Could be none for a Bank Transaction.
+	But if a JE, could affect two banks.
+	Should only clear the voucher if all bank gles are allocated.
+	"""
+	gl_bank_account = frappe.db.get_value("Bank Account", transaction.bank_account, "account")
+	gles = get_related_bank_gl_entries(payment_entry.payment_document, payment_entry.payment_entry)
+	bt_allocations = get_total_allocated_amount(
+		payment_entry.payment_document, payment_entry.payment_entry
 	)
 
-	return reconciled_bank_transactions
+	unallocated_amount = min(
+		transaction.unallocated_amount,
+		get_paid_amount(payment_entry, transaction.currency, gl_bank_account),
+	)
+	unmatched_gles = len(gles)
+	latest_transaction = transaction
+	for gle in gles:
+		if gle["gl_account"] == gl_bank_account:
+			if gle["amount"] <= 0.0:
+				frappe.throw(
+					frappe._(f"Voucher {payment_entry.payment_entry} value is broken: {gle['amount']}")
+				)
+
+			unmatched_gles -= 1
+			unallocated_amount = gle["amount"]
+			for a in bt_allocations:
+				if a["gl_account"] == gle["gl_account"]:
+					unallocated_amount = gle["amount"] - a["total"]
+					if frappe.utils.getdate(transaction.date) < a["latest_date"]:
+						latest_transaction = frappe.get_doc("Bank Transaction", a["latest_name"])
+		else:
+			# Must be a Journal Entry affecting more than one bank
+			for a in bt_allocations:
+				if a["gl_account"] == gle["gl_account"] and a["total"] == gle["amount"]:
+					unmatched_gles -= 1
+
+	return unallocated_amount, unmatched_gles == 0, latest_transaction
 
 
-def get_total_allocated_amount(payment_entry):
-	return frappe.db.sql(
+def get_related_bank_gl_entries(doctype, docname):
+	# nosemgrep: frappe-semgrep-rules.rules.frappe-using-db-sql
+	result = frappe.db.sql(
 		"""
 		SELECT
-			SUM(btp.allocated_amount) as allocated_amount,
-			bt.name
+			ABS(gle.credit_in_account_currency - gle.debit_in_account_currency) AS amount,
+			gle.account AS gl_account
 		FROM
-			`tabBank Transaction Payments` as btp
+			`tabGL Entry` gle
 		LEFT JOIN
-			`tabBank Transaction` bt ON bt.name=btp.parent
+			`tabAccount` ac ON ac.name=gle.account
 		WHERE
-			btp.payment_document = %s
-		AND
-			btp.payment_entry = %s
-		AND
-			bt.docstatus = 1""",
-		(payment_entry.payment_document, payment_entry.payment_entry),
+			ac.account_type = 'Bank'
+			AND gle.voucher_type = %(doctype)s
+			AND gle.voucher_no = %(docname)s
+			AND is_cancelled = 0
+		""",
+		dict(doctype=doctype, docname=docname),
 		as_dict=True,
 	)
+	return result
 
 
-def get_paid_amount(payment_entry, currency, bank_account):
+def get_total_allocated_amount(doctype, docname):
+	"""
+	Gets the sum of allocations for a voucher on each bank GL account
+	along with the latest bank transaction name & date
+	NOTE: query may also include just saved vouchers/payments but with zero allocated_amount
+	"""
+	# nosemgrep: frappe-semgrep-rules.rules.frappe-using-db-sql
+	result = frappe.db.sql(
+		"""
+		SELECT total, latest_name, latest_date, gl_account FROM (
+			SELECT
+				ROW_NUMBER() OVER w AS rownum,
+				SUM(btp.allocated_amount) OVER(PARTITION BY ba.account) AS total,
+				FIRST_VALUE(bt.name) OVER w AS latest_name,
+				FIRST_VALUE(bt.date) OVER w AS latest_date,
+				ba.account AS gl_account
+			FROM
+				`tabBank Transaction Payments` btp
+			LEFT JOIN `tabBank Transaction` bt ON bt.name=btp.parent
+			LEFT JOIN `tabBank Account` ba ON ba.name=bt.bank_account
+			WHERE
+				btp.payment_document = %(doctype)s
+				AND btp.payment_entry = %(docname)s
+				AND bt.docstatus = 1
+			WINDOW w AS (PARTITION BY ba.account ORDER BY bt.date desc)
+		) temp
+		WHERE
+			rownum = 1
+		""",
+		dict(doctype=doctype, docname=docname),
+		as_dict=True,
+	)
+	for row in result:
+		# Why is this *sometimes* a byte string?
+		if isinstance(row["latest_name"], bytes):
+			row["latest_name"] = row["latest_name"].decode()
+		row["latest_date"] = frappe.utils.getdate(row["latest_date"])
+	return result
+
+
+def get_paid_amount(payment_entry, currency, gl_bank_account):
 	if payment_entry.payment_document in ["Payment Entry", "Sales Invoice", "Purchase Invoice"]:
 
 		paid_amount_field = "paid_amount"
@@ -147,7 +283,7 @@
 	elif payment_entry.payment_document == "Journal Entry":
 		return frappe.db.get_value(
 			"Journal Entry Account",
-			{"parent": payment_entry.payment_entry, "account": bank_account},
+			{"parent": payment_entry.payment_entry, "account": gl_bank_account},
 			"sum(credit_in_account_currency)",
 		)
 
@@ -166,6 +302,12 @@
 			payment_entry.payment_document, payment_entry.payment_entry, "amount_paid"
 		)
 
+	elif payment_entry.payment_document == "Bank Transaction":
+		dep, wth = frappe.db.get_value(
+			"Bank Transaction", payment_entry.payment_entry, ("deposit", "withdrawal")
+		)
+		return abs(flt(wth) - flt(dep))
+
 	else:
 		frappe.throw(
 			"Please reconcile {0}: {1} manually".format(
@@ -174,18 +316,55 @@
 		)
 
 
-@frappe.whitelist()
-def unclear_reference_payment(doctype, docname):
-	if frappe.db.exists(doctype, docname):
-		doc = frappe.get_doc(doctype, docname)
-		if doctype == "Sales Invoice":
-			frappe.db.set_value(
-				"Sales Invoice Payment",
-				dict(parenttype=doc.payment_document, parent=doc.payment_entry),
-				"clearance_date",
-				None,
-			)
-		else:
-			frappe.db.set_value(doc.payment_document, doc.payment_entry, "clearance_date", None)
+def set_voucher_clearance(doctype, docname, clearance_date, self):
+	if doctype in [
+		"Payment Entry",
+		"Journal Entry",
+		"Purchase Invoice",
+		"Expense Claim",
+		"Loan Repayment",
+		"Loan Disbursement",
+	]:
+		if (
+			doctype == "Payment Entry"
+			and frappe.db.get_value("Payment Entry", docname, "payment_type") == "Internal Transfer"
+			and len(get_reconciled_bank_transactions(doctype, docname)) < 2
+		):
+			return
+		frappe.db.set_value(doctype, docname, "clearance_date", clearance_date)
 
-		return doc.payment_entry
+	elif doctype == "Sales Invoice":
+		frappe.db.set_value(
+			"Sales Invoice Payment",
+			dict(parenttype=doctype, parent=docname),
+			"clearance_date",
+			clearance_date,
+		)
+
+	elif doctype == "Bank Transaction":
+		# For when a second bank transaction has fixed another, e.g. refund
+		bt = frappe.get_doc(doctype, docname)
+		if clearance_date:
+			vouchers = [{"payment_doctype": "Bank Transaction", "payment_name": self.name}]
+			bt.add_payment_entries(vouchers)
+		else:
+			for pe in bt.payment_entries:
+				if pe.payment_document == self.doctype and pe.payment_entry == self.name:
+					bt.remove(pe)
+					bt.save()
+					break
+
+
+def get_reconciled_bank_transactions(doctype, docname):
+	return frappe.get_all(
+		"Bank Transaction Payments",
+		filters={"payment_document": doctype, "payment_entry": docname},
+		pluck="parent",
+	)
+
+
+@frappe.whitelist()
+def unclear_reference_payment(doctype, docname, bt_name):
+	bt = frappe.get_doc("Bank Transaction", bt_name)
+	set_voucher_clearance(doctype, docname, None, bt)
+	return docname
diff --git a/erpnext/accounts/doctype/dunning/dunning.py b/erpnext/accounts/doctype/dunning/dunning.py
index 331adb4..b4df0a5 100644
--- a/erpnext/accounts/doctype/dunning/dunning.py
+++ b/erpnext/accounts/doctype/dunning/dunning.py
@@ -40,7 +40,7 @@
 
 	def on_cancel(self):
 		if self.dunning_amount:
-			self.ignore_linked_doctypes = ("GL Entry", "Stock Ledger Entry")
+			self.ignore_linked_doctypes = ("GL Entry", "Stock Ledger Entry", "Payment Ledger Entry")
 			make_reverse_gl_entries(voucher_type=self.doctype, voucher_no=self.name)
 
 	def make_gl_entries(self):
diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.js b/erpnext/accounts/doctype/journal_entry/journal_entry.js
index 21f27ae..089f20b 100644
--- a/erpnext/accounts/doctype/journal_entry/journal_entry.js
+++ b/erpnext/accounts/doctype/journal_entry/journal_entry.js
@@ -8,7 +8,7 @@
 frappe.ui.form.on("Journal Entry", {
 	setup: function(frm) {
 		frm.add_fetch("bank_account", "account", "account");
-		frm.ignore_doctypes_on_cancel_all = ['Sales Invoice', 'Purchase Invoice', 'Journal Entry'];
+		frm.ignore_doctypes_on_cancel_all = ['Sales Invoice', 'Purchase Invoice', 'Journal Entry', "Repost Payment Ledger"];
 	},
 
 	refresh: function(frm) {
diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.py b/erpnext/accounts/doctype/journal_entry/journal_entry.py
index 5b0322a..db399b7 100644
--- a/erpnext/accounts/doctype/journal_entry/journal_entry.py
+++ b/erpnext/accounts/doctype/journal_entry/journal_entry.py
@@ -89,7 +89,13 @@
 		from erpnext.accounts.utils import unlink_ref_doc_from_payment_entries
 
 		unlink_ref_doc_from_payment_entries(self)
-		self.ignore_linked_doctypes = ("GL Entry", "Stock Ledger Entry", "Payment Ledger Entry")
+		self.ignore_linked_doctypes = (
+			"GL Entry",
+			"Stock Ledger Entry",
+			"Payment Ledger Entry",
+			"Repost Payment Ledger",
+			"Repost Payment Ledger Items",
+		)
 		self.make_gl_entries(1)
 		self.update_advance_paid()
 		self.unlink_advance_entry_reference()
@@ -238,21 +244,16 @@
 			):
 				processed_assets.append(d.reference_name)
 
-				asset = frappe.db.get_value(
-					"Asset", d.reference_name, ["calculate_depreciation", "value_after_depreciation"], as_dict=1
-				)
+				asset = frappe.get_doc("Asset", d.reference_name)
 
 				if asset.calculate_depreciation:
 					continue
 
 				depr_value = d.debit or d.credit
 
-				frappe.db.set_value(
-					"Asset",
-					d.reference_name,
-					"value_after_depreciation",
-					asset.value_after_depreciation - depr_value,
-				)
+				asset.db_set("value_after_depreciation", asset.value_after_depreciation - depr_value)
+
+				asset.set_status()
 
 	def update_inter_company_jv(self):
 		if (
@@ -348,12 +349,9 @@
 				else:
 					depr_value = d.debit or d.credit
 
-					frappe.db.set_value(
-						"Asset",
-						d.reference_name,
-						"value_after_depreciation",
-						asset.value_after_depreciation + depr_value,
-					)
+					asset.db_set("value_after_depreciation", asset.value_after_depreciation + depr_value)
+
+					asset.set_status()
 
 	def unlink_inter_company_jv(self):
 		if (
diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.js b/erpnext/accounts/doctype/payment_entry/payment_entry.js
index 6039bdf..91374ae 100644
--- a/erpnext/accounts/doctype/payment_entry/payment_entry.js
+++ b/erpnext/accounts/doctype/payment_entry/payment_entry.js
@@ -7,7 +7,7 @@
 
 frappe.ui.form.on('Payment Entry', {
 	onload: function(frm) {
-		frm.ignore_doctypes_on_cancel_all = ['Sales Invoice', 'Purchase Invoice'];
+		frm.ignore_doctypes_on_cancel_all = ['Sales Invoice', 'Purchase Invoice', "Repost Payment Ledger"];
 
 		if(frm.doc.__islocal) {
 			if (!frm.doc.paid_from) frm.set_value("paid_from_account_currency", null);
diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.json b/erpnext/accounts/doctype/payment_entry/payment_entry.json
index 4a7a57b..3927eca 100644
--- a/erpnext/accounts/doctype/payment_entry/payment_entry.json
+++ b/erpnext/accounts/doctype/payment_entry/payment_entry.json
@@ -239,7 +239,7 @@
    "depends_on": "paid_from",
    "fieldname": "paid_from_account_currency",
    "fieldtype": "Link",
-   "label": "Account Currency",
+   "label": "Account Currency (From)",
    "options": "Currency",
    "print_hide": 1,
    "read_only": 1,
@@ -249,7 +249,7 @@
    "depends_on": "paid_from",
    "fieldname": "paid_from_account_balance",
    "fieldtype": "Currency",
-   "label": "Account Balance",
+   "label": "Account Balance (From)",
    "options": "paid_from_account_currency",
    "print_hide": 1,
    "read_only": 1
@@ -272,7 +272,7 @@
    "depends_on": "paid_to",
    "fieldname": "paid_to_account_currency",
    "fieldtype": "Link",
-   "label": "Account Currency",
+   "label": "Account Currency (To)",
    "options": "Currency",
    "print_hide": 1,
    "read_only": 1,
@@ -282,7 +282,7 @@
    "depends_on": "paid_to",
    "fieldname": "paid_to_account_balance",
    "fieldtype": "Currency",
-   "label": "Account Balance",
+   "label": "Account Balance (To)",
    "options": "paid_to_account_currency",
    "print_hide": 1,
    "read_only": 1
@@ -304,7 +304,7 @@
   {
    "fieldname": "source_exchange_rate",
    "fieldtype": "Float",
-   "label": "Exchange Rate",
+   "label": "Source Exchange Rate",
    "precision": "9",
    "print_hide": 1,
    "reqd": 1
@@ -334,7 +334,7 @@
   {
    "fieldname": "target_exchange_rate",
    "fieldtype": "Float",
-   "label": "Exchange Rate",
+   "label": "Target Exchange Rate",
    "precision": "9",
    "print_hide": 1,
    "reqd": 1
@@ -633,14 +633,14 @@
    "depends_on": "eval:doc.party_type == 'Supplier'",
    "fieldname": "purchase_taxes_and_charges_template",
    "fieldtype": "Link",
-   "label": "Taxes and Charges Template",
+   "label": "Purchase Taxes and Charges Template",
    "options": "Purchase Taxes and Charges Template"
   },
   {
    "depends_on": "eval: doc.party_type == 'Customer'",
    "fieldname": "sales_taxes_and_charges_template",
    "fieldtype": "Link",
-   "label": "Taxes and Charges Template",
+   "label": "Sales Taxes and Charges Template",
    "options": "Sales Taxes and Charges Template"
   },
   {
@@ -733,7 +733,7 @@
  "index_web_pages_for_search": 1,
  "is_submittable": 1,
  "links": [],
- "modified": "2022-12-08 16:25:43.824051",
+ "modified": "2023-02-14 04:52:30.478523",
  "modified_by": "Administrator",
  "module": "Accounts",
  "name": "Payment Entry",
diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.py b/erpnext/accounts/doctype/payment_entry/payment_entry.py
index 1cccbd9..cd5b6d5 100644
--- a/erpnext/accounts/doctype/payment_entry/payment_entry.py
+++ b/erpnext/accounts/doctype/payment_entry/payment_entry.py
@@ -92,7 +92,13 @@
 		self.set_status()
 
 	def on_cancel(self):
-		self.ignore_linked_doctypes = ("GL Entry", "Stock Ledger Entry", "Payment Ledger Entry")
+		self.ignore_linked_doctypes = (
+			"GL Entry",
+			"Stock Ledger Entry",
+			"Payment Ledger Entry",
+			"Repost Payment Ledger",
+			"Repost Payment Ledger Items",
+		)
 		self.make_gl_entries(cancel=1)
 		self.update_outstanding_amounts()
 		self.update_advance_paid()
diff --git a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py
index 154fdc0..e3d9c26 100644
--- a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py
+++ b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py
@@ -234,7 +234,7 @@
 	def allocate_entries(self, args):
 		self.validate_entries()
 
-		invoice_exchange_map = self.get_invoice_exchange_map(args.get("invoices"))
+		invoice_exchange_map = self.get_invoice_exchange_map(args.get("invoices"), args.get("payments"))
 		default_exchange_gain_loss_account = frappe.get_cached_value(
 			"Company", self.company, "exchange_gain_loss_account"
 		)
@@ -253,6 +253,9 @@
 					pay["amount"] = 0
 
 				inv["exchange_rate"] = invoice_exchange_map.get(inv.get("invoice_number"))
+				if pay.get("reference_type") in ["Sales Invoice", "Purchase Invoice"]:
+					pay["exchange_rate"] = invoice_exchange_map.get(pay.get("reference_name"))
+
 				res.difference_amount = self.get_difference_amount(pay, inv, res["allocated_amount"])
 				res.difference_account = default_exchange_gain_loss_account
 				res.exchange_rate = inv.get("exchange_rate")
@@ -365,6 +368,7 @@
 				"exchange_rate": 1,
 				"cost_center": erpnext.get_default_cost_center(self.company),
 				reverse_dr_or_cr + "_in_account_currency": flt(row.difference_amount),
+				reverse_dr_or_cr: flt(row.difference_amount),
 			}
 		)
 
@@ -407,13 +411,21 @@
 		if not self.get("payments"):
 			frappe.throw(_("No records found in the Payments table"))
 
-	def get_invoice_exchange_map(self, invoices):
+	def get_invoice_exchange_map(self, invoices, payments):
 		sales_invoices = [
 			d.get("invoice_number") for d in invoices if d.get("invoice_type") == "Sales Invoice"
 		]
+
+		sales_invoices.extend(
+			[d.get("reference_name") for d in payments if d.get("reference_type") == "Sales Invoice"]
+		)
 		purchase_invoices = [
 			d.get("invoice_number") for d in invoices if d.get("invoice_type") == "Purchase Invoice"
 		]
+		purchase_invoices.extend(
+			[d.get("reference_name") for d in payments if d.get("reference_type") == "Purchase Invoice"]
+		)
+
 		invoice_exchange_map = frappe._dict()
 
 		if sales_invoices:
diff --git a/erpnext/accounts/doctype/payment_reconciliation/test_payment_reconciliation.py b/erpnext/accounts/doctype/payment_reconciliation/test_payment_reconciliation.py
index 00e3934..f9dda05 100644
--- a/erpnext/accounts/doctype/payment_reconciliation/test_payment_reconciliation.py
+++ b/erpnext/accounts/doctype/payment_reconciliation/test_payment_reconciliation.py
@@ -473,6 +473,11 @@
 		invoices = [x.as_dict() for x in pr.get("invoices")]
 		payments = [x.as_dict() for x in pr.get("payments")]
 		pr.allocate_entries(frappe._dict({"invoices": invoices, "payments": payments}))
+
+		# Cr Note and Invoice are of the same currency. There shouldn't any difference amount.
+		for row in pr.allocation:
+			self.assertEqual(flt(row.get("difference_amount")), 0.0)
+
 		pr.reconcile()
 
 		pr.get_unreconciled_entries()
@@ -506,6 +511,11 @@
 		payments = [x.as_dict() for x in pr.get("payments")]
 		pr.allocate_entries(frappe._dict({"invoices": invoices, "payments": payments}))
 		pr.allocation[0].allocated_amount = allocated_amount
+
+		# Cr Note and Invoice are of the same currency. There shouldn't any difference amount.
+		for row in pr.allocation:
+			self.assertEqual(flt(row.get("difference_amount")), 0.0)
+
 		pr.reconcile()
 
 		# assert outstanding
diff --git a/erpnext/accounts/doctype/payment_request/payment_request.py b/erpnext/accounts/doctype/payment_request/payment_request.py
index fc837c7..2f43914 100644
--- a/erpnext/accounts/doctype/payment_request/payment_request.py
+++ b/erpnext/accounts/doctype/payment_request/payment_request.py
@@ -45,21 +45,20 @@
 			frappe.throw(_("To create a Payment Request reference document is required"))
 
 	def validate_payment_request_amount(self):
-		existing_payment_request_amount = get_existing_payment_request_amount(
-			self.reference_doctype, self.reference_name
+		existing_payment_request_amount = flt(
+			get_existing_payment_request_amount(self.reference_doctype, self.reference_name)
 		)
 
-		if existing_payment_request_amount:
-			ref_doc = frappe.get_doc(self.reference_doctype, self.reference_name)
-			if not hasattr(ref_doc, "order_type") or getattr(ref_doc, "order_type") != "Shopping Cart":
-				ref_amount = get_amount(ref_doc, self.payment_account)
+		ref_doc = frappe.get_doc(self.reference_doctype, self.reference_name)
+		if not hasattr(ref_doc, "order_type") or getattr(ref_doc, "order_type") != "Shopping Cart":
+			ref_amount = get_amount(ref_doc, self.payment_account)
 
-				if existing_payment_request_amount + flt(self.grand_total) > ref_amount:
-					frappe.throw(
-						_("Total Payment Request amount cannot be greater than {0} amount").format(
-							self.reference_doctype
-						)
+			if existing_payment_request_amount + flt(self.grand_total) > ref_amount:
+				frappe.throw(
+					_("Total Payment Request amount cannot be greater than {0} amount").format(
+						self.reference_doctype
 					)
+				)
 
 	def validate_currency(self):
 		ref_doc = frappe.get_doc(self.reference_doctype, self.reference_name)
@@ -496,7 +495,7 @@
 	"""get amount based on doctype"""
 	dt = ref_doc.doctype
 	if dt in ["Sales Order", "Purchase Order"]:
-		grand_total = flt(ref_doc.grand_total) - flt(ref_doc.advance_paid)
+		grand_total = flt(ref_doc.rounded_total) - flt(ref_doc.advance_paid)
 
 	elif dt in ["Sales Invoice", "Purchase Invoice"]:
 		if ref_doc.party_account_currency == ref_doc.currency:
diff --git a/erpnext/accounts/doctype/pos_closing_entry/pos_closing_entry.py b/erpnext/accounts/doctype/pos_closing_entry/pos_closing_entry.py
index 655c4ec..115b415 100644
--- a/erpnext/accounts/doctype/pos_closing_entry/pos_closing_entry.py
+++ b/erpnext/accounts/doctype/pos_closing_entry/pos_closing_entry.py
@@ -21,8 +21,24 @@
 		if frappe.db.get_value("POS Opening Entry", self.pos_opening_entry, "status") != "Open":
 			frappe.throw(_("Selected POS Opening Entry should be open."), title=_("Invalid Opening Entry"))
 
+		self.validate_duplicate_pos_invoices()
 		self.validate_pos_invoices()
 
+	def validate_duplicate_pos_invoices(self):
+		pos_occurences = {}
+		for idx, inv in enumerate(self.pos_transactions, 1):
+			pos_occurences.setdefault(inv.pos_invoice, []).append(idx)
+
+		error_list = []
+		for key, value in pos_occurences.items():
+			if len(value) > 1:
+				error_list.append(
+					_("{} is added multiple times on rows: {}".format(frappe.bold(key), frappe.bold(value)))
+				)
+
+		if error_list:
+			frappe.throw(error_list, title=_("Duplicate POS Invoices found"), as_list=True)
+
 	def validate_pos_invoices(self):
 		invalid_rows = []
 		for d in self.pos_transactions:
diff --git a/erpnext/accounts/doctype/pos_invoice_merge_log/pos_invoice_merge_log.py b/erpnext/accounts/doctype/pos_invoice_merge_log/pos_invoice_merge_log.py
index 3a237a4..b1e2208 100644
--- a/erpnext/accounts/doctype/pos_invoice_merge_log/pos_invoice_merge_log.py
+++ b/erpnext/accounts/doctype/pos_invoice_merge_log/pos_invoice_merge_log.py
@@ -17,6 +17,22 @@
 	def validate(self):
 		self.validate_customer()
 		self.validate_pos_invoice_status()
+		self.validate_duplicate_pos_invoices()
+
+	def validate_duplicate_pos_invoices(self):
+		pos_occurences = {}
+		for idx, inv in enumerate(self.pos_invoices, 1):
+			pos_occurences.setdefault(inv.pos_invoice, []).append(idx)
+
+		error_list = []
+		for key, value in pos_occurences.items():
+			if len(value) > 1:
+				error_list.append(
+					_("{} is added multiple times on rows: {}".format(frappe.bold(key), frappe.bold(value)))
+				)
+
+		if error_list:
+			frappe.throw(error_list, title=_("Duplicate POS Invoices found"), as_list=True)
 
 	def validate_customer(self):
 		if self.merge_invoices_based_on == "Customer Group":
@@ -425,6 +441,8 @@
 
 		if closing_entry:
 			closing_entry.set_status(update=True, status="Failed")
+			if type(error_message) == list:
+				error_message = frappe.json.dumps(error_message)
 			closing_entry.db_set("error_message", error_message)
 		raise
 
diff --git a/erpnext/accounts/doctype/pricing_rule/pricing_rule.json b/erpnext/accounts/doctype/pricing_rule/pricing_rule.json
index ce9ce64..a63039e 100644
--- a/erpnext/accounts/doctype/pricing_rule/pricing_rule.json
+++ b/erpnext/accounts/doctype/pricing_rule/pricing_rule.json
@@ -472,7 +472,7 @@
    "description": "If rate is zero them item will be treated as \"Free Item\"",
    "fieldname": "free_item_rate",
    "fieldtype": "Currency",
-   "label": "Rate"
+   "label": "Free Item Rate"
   },
   {
    "collapsible": 1,
@@ -608,7 +608,7 @@
  "icon": "fa fa-gift",
  "idx": 1,
  "links": [],
- "modified": "2022-10-13 19:05:35.056304",
+ "modified": "2023-02-14 04:53:34.887358",
  "modified_by": "Administrator",
  "module": "Accounts",
  "name": "Pricing Rule",
diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
index a098e8d..e2b4a1a 100644
--- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
+++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
@@ -31,7 +31,7 @@
 		super.onload();
 
 		// Ignore linked advances
-		this.frm.ignore_doctypes_on_cancel_all = ['Journal Entry', 'Payment Entry', 'Purchase Invoice'];
+		this.frm.ignore_doctypes_on_cancel_all = ['Journal Entry', 'Payment Entry', 'Purchase Invoice', "Repost Payment Ledger"];
 
 		if(!this.frm.doc.__islocal) {
 			// show credit_to in print format
diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py
index 0e9f976..21addab 100644
--- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py
+++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py
@@ -5,6 +5,7 @@
 import frappe
 from frappe import _, throw
 from frappe.model.mapper import get_mapped_doc
+from frappe.query_builder.functions import Sum
 from frappe.utils import cint, cstr, flt, formatdate, get_link_to_form, getdate, nowdate
 
 import erpnext
@@ -1416,6 +1417,8 @@
 			"GL Entry",
 			"Stock Ledger Entry",
 			"Repost Item Valuation",
+			"Repost Payment Ledger",
+			"Repost Payment Ledger Items",
 			"Payment Ledger Entry",
 			"Tax Withheld Vouchers",
 		)
@@ -1463,19 +1466,16 @@
 	def update_billing_status_in_pr(self, update_modified=True):
 		updated_pr = []
 		po_details = []
+
+		pr_details_billed_amt = self.get_pr_details_billed_amt()
+
 		for d in self.get("items"):
 			if d.pr_detail:
-				billed_amt = frappe.db.sql(
-					"""select sum(amount) from `tabPurchase Invoice Item`
-					where pr_detail=%s and docstatus=1""",
-					d.pr_detail,
-				)
-				billed_amt = billed_amt and billed_amt[0][0] or 0
 				frappe.db.set_value(
 					"Purchase Receipt Item",
 					d.pr_detail,
 					"billed_amt",
-					billed_amt,
+					flt(pr_details_billed_amt.get(d.pr_detail)),
 					update_modified=update_modified,
 				)
 				updated_pr.append(d.purchase_receipt)
@@ -1491,6 +1491,24 @@
 			pr_doc = frappe.get_doc("Purchase Receipt", pr)
 			update_billing_percentage(pr_doc, update_modified=update_modified)
 
+	def get_pr_details_billed_amt(self):
+		# Get billed amount based on purchase receipt item reference (pr_detail) in purchase invoice
+
+		pr_details_billed_amt = {}
+		pr_details = [d.get("pr_detail") for d in self.get("items") if d.get("pr_detail")]
+		if pr_details:
+			doctype = frappe.qb.DocType("Purchase Invoice Item")
+			query = (
+				frappe.qb.from_(doctype)
+				.select(doctype.pr_detail, Sum(doctype.amount))
+				.where(doctype.pr_detail.isin(pr_details) & doctype.docstatus == 1)
+				.groupby(doctype.pr_detail)
+			)
+
+			pr_details_billed_amt = frappe._dict(query.run(as_list=1))
+
+		return pr_details_billed_amt
+
 	def on_recurring(self, reference_doc, auto_repeat_doc):
 		self.due_date = None
 
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
index 7abf3f3..47e3f9b 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
@@ -34,7 +34,7 @@
 		super.onload();
 
 		this.frm.ignore_doctypes_on_cancel_all = ['POS Invoice', 'Timesheet', 'POS Invoice Merge Log',
-			'POS Closing Entry', 'Journal Entry', 'Payment Entry'];
+							  'POS Closing Entry', 'Journal Entry', 'Payment Entry', "Repost Payment Ledger"];
 
 		if(!this.frm.doc.__islocal && !this.frm.doc.customer && this.frm.doc.debit_to) {
 			// show debit_to in print format
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
index 31cf120..5cda276 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
@@ -397,6 +397,8 @@
 			"GL Entry",
 			"Stock Ledger Entry",
 			"Repost Item Valuation",
+			"Repost Payment Ledger",
+			"Repost Payment Ledger Items",
 			"Payment Ledger Entry",
 		)
 
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 2c829b2..f0146ea 100644
--- a/erpnext/accounts/doctype/tax_withholding_category/tax_withholding_category.py
+++ b/erpnext/accounts/doctype/tax_withholding_category/tax_withholding_category.py
@@ -278,7 +278,7 @@
 			tax_amount = get_tcs_amount(parties, inv, tax_details, vouchers, advance_vouchers)
 
 	if cint(tax_details.round_off_tax_amount):
-		tax_amount = round(tax_amount)
+		tax_amount = normal_round(tax_amount)
 
 	return tax_amount, tax_deducted, tax_deducted_on_advances, voucher_wise_amount
 
@@ -603,3 +603,20 @@
 		valid = True
 
 	return valid
+
+
+def normal_round(number):
+	"""
+	Rounds a number to the nearest integer.
+	:param number: The number to round.
+	"""
+	decimal_part = number - int(number)
+
+	if decimal_part >= 0.5:
+		decimal_part = 1
+	else:
+		decimal_part = 0
+
+	number = int(number) + decimal_part
+
+	return number
diff --git a/erpnext/accounts/report/asset_depreciations_and_balances/asset_depreciations_and_balances.py b/erpnext/accounts/report/asset_depreciations_and_balances/asset_depreciations_and_balances.py
index 43b95dc..5827697 100644
--- a/erpnext/accounts/report/asset_depreciations_and_balances/asset_depreciations_and_balances.py
+++ b/erpnext/accounts/report/asset_depreciations_and_balances/asset_depreciations_and_balances.py
@@ -136,6 +136,34 @@
 			group by a.asset_category
 			union
 			SELECT a.asset_category,
+				   ifnull(sum(case when gle.posting_date < %(from_date)s and (ifnull(a.disposal_date, 0) = 0 or a.disposal_date >= %(from_date)s) then
+								   gle.debit
+							  else
+								   0
+							  end), 0) as accumulated_depreciation_as_on_from_date,
+				   ifnull(sum(case when ifnull(a.disposal_date, 0) != 0 and a.disposal_date >= %(from_date)s
+										and a.disposal_date <= %(to_date)s and gle.posting_date <= a.disposal_date then
+								   gle.debit
+							  else
+								   0
+							  end), 0) as depreciation_eliminated_during_the_period,
+				   ifnull(sum(case when gle.posting_date >= %(from_date)s and gle.posting_date <= %(to_date)s
+										and (ifnull(a.disposal_date, 0) = 0 or gle.posting_date <= a.disposal_date) then
+								   gle.debit
+							  else
+								   0
+							  end), 0) as depreciation_amount_during_the_period
+			from `tabGL Entry` gle
+			join `tabAsset` a on
+				gle.against_voucher = a.name
+			join `tabAsset Category Account` aca on
+				aca.parent = a.asset_category and aca.company_name = %(company)s
+			join `tabCompany` company on
+				company.name = %(company)s
+			where a.docstatus=1 and a.company=%(company)s and a.calculate_depreciation=0 and a.purchase_date <= %(to_date)s and gle.debit != 0 and gle.is_cancelled = 0 and gle.account = ifnull(aca.depreciation_expense_account, company.depreciation_expense_account)
+			group by a.asset_category
+			union
+			SELECT a.asset_category,
 				   ifnull(sum(case when ifnull(a.disposal_date, 0) != 0 and (a.disposal_date < %(from_date)s or a.disposal_date > %(to_date)s) then
 									0
 							   else
diff --git a/erpnext/accounts/utils.py b/erpnext/accounts/utils.py
index a03de9e..2608c03 100644
--- a/erpnext/accounts/utils.py
+++ b/erpnext/accounts/utils.py
@@ -1512,9 +1512,12 @@
 		ref_doc = frappe.get_doc(voucher_type, voucher_no)
 
 		# Didn't use db_set for optimisation purpose
-		ref_doc.outstanding_amount = outstanding["outstanding_in_account_currency"]
+		ref_doc.outstanding_amount = outstanding["outstanding_in_account_currency"] or 0.0
 		frappe.db.set_value(
-			voucher_type, voucher_no, "outstanding_amount", outstanding["outstanding_in_account_currency"]
+			voucher_type,
+			voucher_no,
+			"outstanding_amount",
+			outstanding["outstanding_in_account_currency"] or 0.0,
 		)
 
 		ref_doc.set_status(update=True)
diff --git a/erpnext/assets/doctype/asset/asset.js b/erpnext/assets/doctype/asset/asset.js
index 4ed99f7..4951385 100644
--- a/erpnext/assets/doctype/asset/asset.js
+++ b/erpnext/assets/doctype/asset/asset.js
@@ -209,62 +209,62 @@
 			return
 		}
 
-		var x_intervals = [frm.doc.purchase_date];
+		var x_intervals = [frappe.format(frm.doc.purchase_date, { fieldtype: 'Date' })];
 		var asset_values = [frm.doc.gross_purchase_amount];
-		var last_depreciation_date = frm.doc.purchase_date;
 
-		if(frm.doc.opening_accumulated_depreciation) {
-			last_depreciation_date = frappe.datetime.add_months(frm.doc.next_depreciation_date,
-				-1*frm.doc.frequency_of_depreciation);
-
-			x_intervals.push(last_depreciation_date);
-			asset_values.push(flt(frm.doc.gross_purchase_amount) -
-				flt(frm.doc.opening_accumulated_depreciation));
-		}
 		if(frm.doc.calculate_depreciation) {
-			if (frm.doc.finance_books.length == 1) {
-				let depr_schedule = (await frappe.call(
-					"erpnext.assets.doctype.asset_depreciation_schedule.asset_depreciation_schedule.get_depr_schedule",
-					{
-						asset_name: frm.doc.name,
-						status: frm.doc.docstatus ? "Active" : "Draft",
-						finance_book: frm.doc.finance_books[0].finance_book || null
-					}
-				)).message;
-
-				$.each(depr_schedule || [], function(i, v) {
-					x_intervals.push(v.schedule_date);
-					var asset_value = flt(frm.doc.gross_purchase_amount) - flt(v.accumulated_depreciation_amount);
-					if(v.journal_entry) {
-						last_depreciation_date = v.schedule_date;
-						asset_values.push(asset_value);
-					} else {
-						if (in_list(["Scrapped", "Sold"], frm.doc.status)) {
-							asset_values.push(null);
-						} else {
-							asset_values.push(asset_value)
-						}
-					}
-				});
+			if(frm.doc.opening_accumulated_depreciation) {
+				var depreciation_date = frappe.datetime.add_months(
+					frm.doc.finance_books[0].depreciation_start_date,
+					-1 * frm.doc.finance_books[0].frequency_of_depreciation
+				);
+				x_intervals.push(frappe.format(depreciation_date, { fieldtype: 'Date' }));
+				asset_values.push(flt(frm.doc.gross_purchase_amount - frm.doc.opening_accumulated_depreciation, precision('gross_purchase_amount')));
 			}
+
+			let depr_schedule = (await frappe.call(
+				"erpnext.assets.doctype.asset_depreciation_schedule.asset_depreciation_schedule.get_depr_schedule",
+				{
+					asset_name: frm.doc.name,
+					status: frm.doc.docstatus ? "Active" : "Draft",
+					finance_book: frm.doc.finance_books[0].finance_book || null
+				}
+			)).message;
+
+			$.each(depr_schedule || [], function(i, v) {
+				x_intervals.push(frappe.format(v.schedule_date, { fieldtype: 'Date' }));
+				var asset_value = flt(frm.doc.gross_purchase_amount - v.accumulated_depreciation_amount, precision('gross_purchase_amount'));
+				if(v.journal_entry) {
+					asset_values.push(asset_value);
+				} else {
+					if (in_list(["Scrapped", "Sold"], frm.doc.status)) {
+						asset_values.push(null);
+					} else {
+						asset_values.push(asset_value)
+					}
+				}
+			});
 		} else {
+			if(frm.doc.opening_accumulated_depreciation) {
+				x_intervals.push(frappe.format(frm.doc.creation.split(" ")[0], { fieldtype: 'Date' }));
+				asset_values.push(flt(frm.doc.gross_purchase_amount - frm.doc.opening_accumulated_depreciation, precision('gross_purchase_amount')));
+			}
+
 			let depr_entries = (await frappe.call({
 				method: "get_manual_depreciation_entries",
 				doc: frm.doc,
 			})).message;
 
 			$.each(depr_entries || [], function(i, v) {
-				x_intervals.push(v.posting_date);
-				last_depreciation_date = v.posting_date;
+				x_intervals.push(frappe.format(v.posting_date, { fieldtype: 'Date' }));
 				let last_asset_value = asset_values[asset_values.length - 1]
-				asset_values.push(last_asset_value - v.value);
+				asset_values.push(flt(last_asset_value - v.value, precision('gross_purchase_amount')));
 			});
 		}
 
 		if(in_list(["Scrapped", "Sold"], frm.doc.status)) {
-			x_intervals.push(frm.doc.disposal_date);
+			x_intervals.push(frappe.format(frm.doc.disposal_date, { fieldtype: 'Date' }));
 			asset_values.push(0);
-			last_depreciation_date = frm.doc.disposal_date;
 		}
 
 		frm.dashboard.render_graph({
diff --git a/erpnext/assets/doctype/asset/asset.py b/erpnext/assets/doctype/asset/asset.py
index 4f1caca..e1d58a0 100644
--- a/erpnext/assets/doctype/asset/asset.py
+++ b/erpnext/assets/doctype/asset/asset.py
@@ -413,11 +413,14 @@
 
 			if self.journal_entry_for_scrap:
 				status = "Scrapped"
-			elif self.finance_books:
-				idx = self.get_default_finance_book_idx() or 0
+			else:
+				expected_value_after_useful_life = 0
+				value_after_depreciation = self.value_after_depreciation
 
-				expected_value_after_useful_life = self.finance_books[idx].expected_value_after_useful_life
-				value_after_depreciation = self.finance_books[idx].value_after_depreciation
+				if self.calculate_depreciation:
+					idx = self.get_default_finance_book_idx() or 0
+					expected_value_after_useful_life = self.finance_books[idx].expected_value_after_useful_life
+					value_after_depreciation = self.finance_books[idx].value_after_depreciation
 
 				if flt(value_after_depreciation) <= expected_value_after_useful_life:
 					status = "Fully Depreciated"
@@ -429,25 +432,16 @@
 
 	def get_value_after_depreciation(self, finance_book=None):
 		if not self.calculate_depreciation:
-			return self.value_after_depreciation
+			return flt(self.value_after_depreciation, self.precision("gross_purchase_amount"))
 
 		if not finance_book:
-			return self.get("finance_books")[0].value_after_depreciation
+			return flt(
+				self.get("finance_books")[0].value_after_depreciation, self.precision("gross_purchase_amount")
+			)
 
 		for row in self.get("finance_books"):
 			if finance_book == row.finance_book:
-				return row.value_after_depreciation
-
-	def _get_value_after_depreciation_for_making_schedule(self, fb_row):
-		# value_after_depreciation - current Asset value
-		if self.docstatus == 1 and fb_row.value_after_depreciation:
-			value_after_depreciation = flt(fb_row.value_after_depreciation)
-		else:
-			value_after_depreciation = flt(self.gross_purchase_amount) - flt(
-				self.opening_accumulated_depreciation
-			)
-
-		return value_after_depreciation
+				return flt(row.value_after_depreciation, self.precision("gross_purchase_amount"))
 
 	def get_default_finance_book_idx(self):
 		if not self.get("default_finance_book") and self.company:
@@ -472,6 +466,7 @@
 			.where(gle.debit != 0)
 			.where(gle.is_cancelled == 0)
 			.orderby(gle.posting_date)
+			.orderby(gle.creation)
 		).run(as_dict=True)
 
 		return records
diff --git a/erpnext/assets/doctype/asset/depreciation.py b/erpnext/assets/doctype/asset/depreciation.py
index e7a2532..fb6e174 100644
--- a/erpnext/assets/doctype/asset/depreciation.py
+++ b/erpnext/assets/doctype/asset/depreciation.py
@@ -168,7 +168,7 @@
 			row.value_after_depreciation -= d.depreciation_amount
 			row.db_update()
 
-	frappe.db.set_value("Asset", asset_name, "depr_entry_posting_status", "Successful")
+	asset.db_set("depr_entry_posting_status", "Successful")
 
 	asset.set_status()
 
diff --git a/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.py b/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.py
index 7615fbc..6f02662 100644
--- a/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.py
+++ b/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.py
@@ -134,7 +134,7 @@
 	):
 		asset_doc.validate_asset_finance_books(row)
 
-		value_after_depreciation = asset_doc._get_value_after_depreciation_for_making_schedule(row)
+		value_after_depreciation = _get_value_after_depreciation_for_making_schedule(asset_doc, row)
 		row.value_after_depreciation = value_after_depreciation
 
 		if update_asset_finance_book_row:
@@ -325,6 +325,17 @@
 			)
 
 
+def _get_value_after_depreciation_for_making_schedule(asset_doc, fb_row):
+	if asset_doc.docstatus == 1 and fb_row.value_after_depreciation:
+		value_after_depreciation = flt(fb_row.value_after_depreciation)
+	else:
+		value_after_depreciation = flt(asset_doc.gross_purchase_amount) - flt(
+			asset_doc.opening_accumulated_depreciation
+		)
+
+	return value_after_depreciation
+
+
 def make_draft_asset_depr_schedules_if_not_present(asset_doc):
 	for row in asset_doc.get("finance_books"):
 		draft_asset_depr_schedule_name = get_asset_depr_schedule_name(
diff --git a/erpnext/assets/doctype/asset_repair/asset_repair.py b/erpnext/assets/doctype/asset_repair/asset_repair.py
index 9a05a74..a7172a7 100644
--- a/erpnext/assets/doctype/asset_repair/asset_repair.py
+++ b/erpnext/assets/doctype/asset_repair/asset_repair.py
@@ -91,6 +91,9 @@
 		make_new_active_asset_depr_schedules_and_cancel_current_ones(self.asset_doc, notes)
 		self.asset_doc.save()
 
+	def after_delete(self):
+		frappe.get_doc("Asset", self.asset).set_status()
+
 	def check_repair_status(self):
 		if self.repair_status == "Pending":
 			frappe.throw(_("Please update Repair Status."))
diff --git a/erpnext/assets/report/fixed_asset_register/fixed_asset_register.py b/erpnext/assets/report/fixed_asset_register/fixed_asset_register.py
index cead72e..59d43b1 100644
--- a/erpnext/assets/report/fixed_asset_register/fixed_asset_register.py
+++ b/erpnext/assets/report/fixed_asset_register/fixed_asset_register.py
@@ -5,7 +5,7 @@
 import frappe
 from frappe import _
 from frappe.query_builder.functions import Sum
-from frappe.utils import cstr, formatdate, getdate
+from frappe.utils import cstr, flt, formatdate, getdate
 
 from erpnext.accounts.report.financial_statements import (
 	get_fiscal_year_data,
@@ -102,13 +102,9 @@
 		]
 		assets_record = frappe.db.get_all("Asset", filters=conditions, fields=fields)
 
-	finance_book_filter = ("is", "not set")
-	if filters.finance_book:
-		finance_book_filter = ("=", filters.finance_book)
-
 	assets_linked_to_fb = frappe.db.get_all(
 		doctype="Asset Finance Book",
-		filters={"finance_book": finance_book_filter},
+		filters={"finance_book": filters.finance_book or ("is", "not set")},
 		pluck="parent",
 	)
 
@@ -155,6 +151,7 @@
 		filters.filter_based_on,
 		"Monthly",
 		company=filters.company,
+		ignore_fiscal_year=True,
 	)
 
 	for d in period_list:
@@ -194,7 +191,7 @@
 	else:
 		depr_amount = get_manual_depreciation_amount_of_asset(asset, filters)
 
-	return depr_amount
+	return flt(depr_amount, 2)
 
 
 def get_finance_book_value_map(filters):
diff --git a/erpnext/buying/doctype/buying_settings/buying_settings.json b/erpnext/buying/doctype/buying_settings/buying_settings.json
index 34417f7..652dcf0 100644
--- a/erpnext/buying/doctype/buying_settings/buying_settings.json
+++ b/erpnext/buying/doctype/buying_settings/buying_settings.json
@@ -21,6 +21,7 @@
   "allow_multiple_items",
   "bill_for_rejected_quantity_in_purchase_invoice",
   "disable_last_purchase_rate",
+  "show_pay_button",
   "subcontract",
   "backflush_raw_materials_of_subcontract_based_on",
   "column_break_11",
@@ -140,6 +141,12 @@
    "fieldname": "disable_last_purchase_rate",
    "fieldtype": "Check",
    "label": "Disable Last Purchase Rate"
+  },
+  {
+   "default": "1",
+   "fieldname": "show_pay_button",
+   "fieldtype": "Check",
+   "label": "Show Pay Button in Purchase Order Portal"
   }
  ],
  "icon": "fa fa-cog",
@@ -147,7 +154,7 @@
  "index_web_pages_for_search": 1,
  "issingle": 1,
  "links": [],
- "modified": "2023-01-09 17:08:28.828173",
+ "modified": "2023-02-15 14:42:10.200679",
  "modified_by": "Administrator",
  "module": "Buying",
  "name": "Buying Settings",
diff --git a/erpnext/buying/doctype/request_for_quotation/request_for_quotation.js b/erpnext/buying/doctype/request_for_quotation/request_for_quotation.js
index a9f5afb..2f0b786 100644
--- a/erpnext/buying/doctype/request_for_quotation/request_for_quotation.js
+++ b/erpnext/buying/doctype/request_for_quotation/request_for_quotation.js
@@ -124,12 +124,11 @@
 								frappe.urllib.get_full_url(
 									"/api/method/erpnext.buying.doctype.request_for_quotation.request_for_quotation.get_pdf?" +
 									new URLSearchParams({
-										doctype: frm.doc.doctype,
 										name: frm.doc.name,
 										supplier: data.supplier,
 										print_format: data.print_format || "Standard",
 										language: data.language || frappe.boot.lang,
-										letter_head: data.letter_head || frm.doc.letter_head || "",
+										letterhead: data.letter_head || frm.doc.letter_head || "",
 									}).toString()
 								)
 							);
diff --git a/erpnext/buying/doctype/request_for_quotation/request_for_quotation.py b/erpnext/buying/doctype/request_for_quotation/request_for_quotation.py
index 8e9ded9..7927beb 100644
--- a/erpnext/buying/doctype/request_for_quotation/request_for_quotation.py
+++ b/erpnext/buying/doctype/request_for_quotation/request_for_quotation.py
@@ -3,6 +3,7 @@
 
 
 import json
+from typing import Optional
 
 import frappe
 from frappe import _
@@ -388,24 +389,26 @@
 
 
 @frappe.whitelist()
-def get_pdf(doctype, name, supplier, print_format=None, language=None, letter_head=None):
-	# permissions get checked in `download_pdf`
-	if doc := get_rfq_doc(doctype, name, supplier):
-		download_pdf(
-			doctype,
-			name,
-			print_format,
-			doc=doc,
-			language=language,
-			letter_head=letter_head or None,
-		)
-
-
-def get_rfq_doc(doctype, name, supplier):
+def get_pdf(
+	name: str,
+	supplier: str,
+	print_format: Optional[str] = None,
+	language: Optional[str] = None,
+	letterhead: Optional[str] = None,
+):
+	doc = frappe.get_doc("Request for Quotation", name)
 	if supplier:
-		doc = frappe.get_doc(doctype, name)
 		doc.update_supplier_part_no(supplier)
-		return doc
+
+	# permissions get checked in `download_pdf`
+	download_pdf(
+		doc.doctype,
+		doc.name,
+		print_format,
+		doc=doc,
+		language=language,
+		letterhead=letterhead or None,
+	)
 
 
 @frappe.whitelist()
diff --git a/erpnext/buying/doctype/request_for_quotation/test_request_for_quotation.py b/erpnext/buying/doctype/request_for_quotation/test_request_for_quotation.py
index 064b806..d250e6f 100644
--- a/erpnext/buying/doctype/request_for_quotation/test_request_for_quotation.py
+++ b/erpnext/buying/doctype/request_for_quotation/test_request_for_quotation.py
@@ -8,6 +8,7 @@
 
 from erpnext.buying.doctype.request_for_quotation.request_for_quotation import (
 	create_supplier_quotation,
+	get_pdf,
 	make_supplier_quotation_from_rfq,
 )
 from erpnext.crm.doctype.opportunity.opportunity import make_request_for_quotation as make_rfq
@@ -124,6 +125,11 @@
 		rfq.status = "Draft"
 		rfq.submit()
 
+	def test_get_pdf(self):
+		rfq = make_request_for_quotation()
+		get_pdf(rfq.name, rfq.get("suppliers")[0].supplier)
+		self.assertEqual(frappe.local.response.type, "pdf")
+
 
 def make_request_for_quotation(**args):
 	"""
diff --git a/erpnext/buying/doctype/supplier/supplier.json b/erpnext/buying/doctype/supplier/supplier.json
index 66eafe9..1bf7f58 100644
--- a/erpnext/buying/doctype/supplier/supplier.json
+++ b/erpnext/buying/doctype/supplier/supplier.json
@@ -23,7 +23,6 @@
   "default_bank_account",
   "column_break_10",
   "default_price_list",
-  "payment_terms",
   "internal_supplier_section",
   "is_internal_supplier",
   "represents_company",
@@ -53,6 +52,7 @@
   "supplier_primary_address",
   "primary_address",
   "accounting_tab",
+  "payment_terms",
   "accounts",
   "settings_tab",
   "allow_purchase_invoice_creation_without_purchase_order",
@@ -457,11 +457,10 @@
    "link_fieldname": "party"
   }
  ],
- "modified": "2022-11-09 18:02:59.075203",
+ "modified": "2023-02-18 11:05:50.592270",
  "modified_by": "Administrator",
  "module": "Buying",
  "name": "Supplier",
- "name_case": "Title Case",
  "naming_rule": "By \"Naming Series\" field",
  "owner": "Administrator",
  "permissions": [
diff --git a/erpnext/controllers/accounts_controller.py b/erpnext/controllers/accounts_controller.py
index 6fa44c9..3705fcf 100644
--- a/erpnext/controllers/accounts_controller.py
+++ b/erpnext/controllers/accounts_controller.py
@@ -204,6 +204,12 @@
 		validate_einvoice_fields(self)
 
 	def on_trash(self):
+		# delete references in 'Repost Payment Ledger'
+		rpi = frappe.qb.DocType("Repost Payment Ledger Items")
+		frappe.qb.from_(rpi).delete().where(
+			(rpi.voucher_type == self.doctype) & (rpi.voucher_no == self.name)
+		).run()
+
 		# delete sl and gl entries on deletion of transaction
 		if frappe.db.get_single_value("Accounts Settings", "delete_linked_ledger_entries"):
 			ple = frappe.qb.DocType("Payment Ledger Entry")
diff --git a/erpnext/controllers/sales_and_purchase_return.py b/erpnext/controllers/sales_and_purchase_return.py
index 9fcb769..fc6793a 100644
--- a/erpnext/controllers/sales_and_purchase_return.py
+++ b/erpnext/controllers/sales_and_purchase_return.py
@@ -252,6 +252,7 @@
 			child.parent = par.name and par.docstatus = 1
 			and par.is_return = 1 and par.return_against = %s
 		group by item_code
+		for update
 	""".format(
 			column, doc.doctype, doc.doctype
 		),
diff --git a/erpnext/controllers/subcontracting_controller.py b/erpnext/controllers/subcontracting_controller.py
index a9561fe..cc80f6c 100644
--- a/erpnext/controllers/subcontracting_controller.py
+++ b/erpnext/controllers/subcontracting_controller.py
@@ -409,7 +409,14 @@
 		if self.available_materials.get(key) and self.available_materials[key]["batch_no"]:
 			new_rm_obj = None
 			for batch_no, batch_qty in self.available_materials[key]["batch_no"].items():
-				if batch_qty >= qty:
+				if batch_qty >= qty or (
+					rm_obj.consumed_qty == 0
+					and self.backflush_based_on == "BOM"
+					and len(self.available_materials[key]["batch_no"]) == 1
+				):
+					if rm_obj.consumed_qty == 0:
+						self.__set_consumed_qty(rm_obj, qty)
+
 					self.__set_batch_no_as_per_qty(item_row, rm_obj, batch_no, qty)
 					self.available_materials[key]["batch_no"][batch_no] -= qty
 					return
diff --git a/erpnext/crm/doctype/lead_source/lead_source.json b/erpnext/crm/doctype/lead_source/lead_source.json
index 723c6d9..c3cedcc 100644
--- a/erpnext/crm/doctype/lead_source/lead_source.json
+++ b/erpnext/crm/doctype/lead_source/lead_source.json
@@ -26,10 +26,11 @@
   }
  ],
  "links": [],
- "modified": "2021-02-08 12:51:48.971517",
+ "modified": "2023-02-10 00:51:44.973957",
  "modified_by": "Administrator",
  "module": "CRM",
  "name": "Lead Source",
+ "naming_rule": "By fieldname",
  "owner": "Administrator",
  "permissions": [
   {
@@ -58,5 +59,7 @@
  ],
  "quick_entry": 1,
  "sort_field": "modified",
- "sort_order": "DESC"
+ "sort_order": "DESC",
+ "states": [],
+ "translated_doctype": 1
 }
\ No newline at end of file
diff --git a/erpnext/crm/doctype/sales_stage/sales_stage.json b/erpnext/crm/doctype/sales_stage/sales_stage.json
index 77aa559..caf8ff5 100644
--- a/erpnext/crm/doctype/sales_stage/sales_stage.json
+++ b/erpnext/crm/doctype/sales_stage/sales_stage.json
@@ -18,10 +18,11 @@
   }
  ],
  "links": [],
- "modified": "2020-05-20 12:22:01.866472",
+ "modified": "2023-02-10 01:40:23.713390",
  "modified_by": "Administrator",
  "module": "CRM",
  "name": "Sales Stage",
+ "naming_rule": "By fieldname",
  "owner": "Administrator",
  "permissions": [
   {
@@ -40,5 +41,7 @@
  "quick_entry": 1,
  "sort_field": "modified",
  "sort_order": "DESC",
- "track_changes": 1
+ "states": [],
+ "track_changes": 1,
+ "translated_doctype": 1
 }
\ No newline at end of file
diff --git a/erpnext/erpnext_integrations/doctype/plaid_settings/plaid_connector.py b/erpnext/erpnext_integrations/doctype/plaid_settings/plaid_connector.py
index 38d6993..f44fad3 100644
--- a/erpnext/erpnext_integrations/doctype/plaid_settings/plaid_connector.py
+++ b/erpnext/erpnext_integrations/doctype/plaid_settings/plaid_connector.py
@@ -12,7 +12,7 @@
 	def __init__(self, access_token=None):
 		self.access_token = access_token
 		self.settings = frappe.get_single("Plaid Settings")
-		self.products = ["auth", "transactions"]
+		self.products = ["transactions"]
 		self.client_name = frappe.local.site
 		self.client = plaid.Client(
 			client_id=self.settings.plaid_client_id,
diff --git a/erpnext/erpnext_integrations/doctype/plaid_settings/plaid_settings.js b/erpnext/erpnext_integrations/doctype/plaid_settings/plaid_settings.js
index 3740d04..3ba6bb9 100644
--- a/erpnext/erpnext_integrations/doctype/plaid_settings/plaid_settings.js
+++ b/erpnext/erpnext_integrations/doctype/plaid_settings/plaid_settings.js
@@ -47,7 +47,7 @@
 	}
 
 	async init_config() {
-		this.product = ["auth", "transactions"];
+		this.product = ["transactions"];
 		this.plaid_env = this.frm.doc.plaid_env;
 		this.client_name = frappe.boot.sitename;
 		this.token = await this.get_link_token();
diff --git a/erpnext/erpnext_integrations/doctype/plaid_settings/plaid_settings.py b/erpnext/erpnext_integrations/doctype/plaid_settings/plaid_settings.py
index 62ea85f..f3aa6a3 100644
--- a/erpnext/erpnext_integrations/doctype/plaid_settings/plaid_settings.py
+++ b/erpnext/erpnext_integrations/doctype/plaid_settings/plaid_settings.py
@@ -70,7 +70,8 @@
 	except TypeError:
 		pass
 
-	bank = json.loads(bank)
+	if isinstance(bank, str):
+		bank = json.loads(bank)
 	result = []
 
 	default_gl_account = get_default_bank_cash_account(company, "Bank")
@@ -177,16 +178,15 @@
 		)
 
 		result = []
-		for transaction in reversed(transactions):
-			result += new_bank_transaction(transaction)
+		if transactions:
+			for transaction in reversed(transactions):
+				result += new_bank_transaction(transaction)
 
 		if result:
 			last_transaction_date = frappe.db.get_value("Bank Transaction", result.pop(), "date")
 
 			frappe.logger().info(
-				"Plaid added {} new Bank Transactions from '{}' between {} and {}".format(
-					len(result), bank_account, start_date, end_date
-				)
+				f"Plaid added {len(result)} new Bank Transactions from '{bank_account}' between {start_date} and {end_date}"
 			)
 
 			frappe.db.set_value(
@@ -230,19 +230,20 @@
 
 	bank_account = frappe.db.get_value("Bank Account", dict(integration_id=transaction["account_id"]))
 
-	if float(transaction["amount"]) >= 0:
-		debit = 0
-		credit = float(transaction["amount"])
+	amount = float(transaction["amount"])
+	if amount >= 0.0:
+		deposit = 0.0
+		withdrawal = amount
 	else:
-		debit = abs(float(transaction["amount"]))
-		credit = 0
+		deposit = abs(amount)
+		withdrawal = 0.0
 
 	status = "Pending" if transaction["pending"] == "True" else "Settled"
 
 	tags = []
 	try:
 		tags += transaction["category"]
-		tags += ["Plaid Cat. {}".format(transaction["category_id"])]
+		tags += [f'Plaid Cat. {transaction["category_id"]}']
 	except KeyError:
 		pass
 
@@ -254,11 +255,18 @@
 					"date": getdate(transaction["date"]),
 					"status": status,
 					"bank_account": bank_account,
-					"deposit": debit,
-					"withdrawal": credit,
+					"deposit": deposit,
+					"withdrawal": withdrawal,
 					"currency": transaction["iso_currency_code"],
 					"transaction_id": transaction["transaction_id"],
-					"reference_number": transaction["payment_meta"]["reference_number"],
+					"transaction_type": (
+						transaction["transaction_code"] or transaction["payment_meta"]["payment_method"]
+					),
+					"reference_number": (
+						transaction["check_number"]
+						or transaction["payment_meta"]["reference_number"]
+						or transaction["name"]
+					),
 					"description": transaction["name"],
 				}
 			)
@@ -271,7 +279,7 @@
 			result.append(new_transaction.name)
 
 		except Exception:
-			frappe.throw(title=_("Bank transaction creation error"))
+			frappe.throw(_("Bank transaction creation error"))
 
 	return result
 
@@ -300,3 +308,26 @@
 def get_link_token_for_update(access_token):
 	plaid = PlaidConnector(access_token)
 	return plaid.get_link_token(update_mode=True)
+
+
+def get_company(bank_account_name):
+	from frappe.defaults import get_user_default
+
+	company_names = frappe.db.get_all("Company", pluck="name")
+	if len(company_names) == 1:
+		return company_names[0]
+	if frappe.db.exists("Bank Account", bank_account_name):
+		return frappe.db.get_value("Bank Account", bank_account_name, "company")
+	company_default = get_user_default("Company")
+	if company_default:
+		return company_default
+	frappe.throw(_("Could not detect the Company for updating Bank Accounts"))
+
+
+@frappe.whitelist()
+def update_bank_account_ids(response):
+	data = json.loads(response)
+	institution_name = data["institution"]["name"]
+	bank = frappe.get_doc("Bank", institution_name).as_dict()
+	bank_account_name = f"{data['account']['name']} - {institution_name}"
+	return add_bank_accounts(response, bank, get_company(bank_account_name))
diff --git a/erpnext/erpnext_integrations/doctype/plaid_settings/test_plaid_settings.py b/erpnext/erpnext_integrations/doctype/plaid_settings/test_plaid_settings.py
index e8dc3e2..6d34a20 100644
--- a/erpnext/erpnext_integrations/doctype/plaid_settings/test_plaid_settings.py
+++ b/erpnext/erpnext_integrations/doctype/plaid_settings/test_plaid_settings.py
@@ -125,6 +125,8 @@
 			"unofficial_currency_code": None,
 			"name": "INTRST PYMNT",
 			"transaction_type": "place",
+			"transaction_code": "direct debit",
+			"check_number": "3456789",
 			"amount": -4.22,
 			"location": {
 				"city": None,
diff --git a/erpnext/hooks.py b/erpnext/hooks.py
index fd19d25..fba886c 100644
--- a/erpnext/hooks.py
+++ b/erpnext/hooks.py
@@ -311,15 +311,10 @@
 		"on_submit": [
 			"erpnext.regional.create_transaction_log",
 			"erpnext.regional.italy.utils.sales_invoice_on_submit",
-			"erpnext.regional.saudi_arabia.utils.create_qr_code",
 		],
-		"on_cancel": [
-			"erpnext.regional.italy.utils.sales_invoice_on_cancel",
-			"erpnext.regional.saudi_arabia.utils.delete_qr_code_file",
-		],
+		"on_cancel": ["erpnext.regional.italy.utils.sales_invoice_on_cancel"],
 		"on_trash": "erpnext.regional.check_deletion_permission",
 	},
-	"POS Invoice": {"on_submit": ["erpnext.regional.saudi_arabia.utils.create_qr_code"]},
 	"Purchase Invoice": {
 		"validate": [
 			"erpnext.regional.united_arab_emirates.utils.update_grand_total_for_rcm",
@@ -347,7 +342,6 @@
 	"Email Unsubscribe": {
 		"after_insert": "erpnext.crm.doctype.email_campaign.email_campaign.unsubscribe_recipient"
 	},
-	"Company": {"on_trash": ["erpnext.regional.saudi_arabia.utils.delete_vat_settings_for_company"]},
 	"Integration Request": {
 		"validate": "erpnext.accounts.doctype.payment_request.payment_request.validate_payment"
 	},
diff --git a/erpnext/manufacturing/doctype/bom/bom.json b/erpnext/manufacturing/doctype/bom/bom.json
index c2b331f..db699b9 100644
--- a/erpnext/manufacturing/doctype/bom/bom.json
+++ b/erpnext/manufacturing/doctype/bom/bom.json
@@ -289,7 +289,7 @@
   {
    "fieldname": "scrap_items",
    "fieldtype": "Table",
-   "label": "Items",
+   "label": "Scrap Items",
    "options": "BOM Scrap Item"
   },
   {
@@ -605,7 +605,7 @@
  "image_field": "image",
  "is_submittable": 1,
  "links": [],
- "modified": "2023-01-10 07:47:08.652616",
+ "modified": "2023-02-13 17:31:37.504565",
  "modified_by": "Administrator",
  "module": "Manufacturing",
  "name": "BOM",
diff --git a/erpnext/manufacturing/report/bom_stock_report/bom_stock_report.js b/erpnext/manufacturing/report/bom_stock_report/bom_stock_report.js
index 7beecac..e7f67ca 100644
--- a/erpnext/manufacturing/report/bom_stock_report/bom_stock_report.js
+++ b/erpnext/manufacturing/report/bom_stock_report/bom_stock_report.js
@@ -25,8 +25,9 @@
 	],
 	"formatter": function(value, row, column, data, default_formatter) {
 		value = default_formatter(value, row, column, data);
+
 		if (column.id == "item") {
-			if (data["enough_parts_to_build"] > 0) {
+			if (data["in_stock_qty"] >= data["required_qty"]) {
 				value = `<a style='color:green' href="/app/item/${data['item']}" data-doctype="Item">${data['item']}</a>`;
 			} else {
 				value = `<a style='color:red' href="/app/item/${data['item']}" data-doctype="Item">${data['item']}</a>`;
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index 211f074..2abd65b 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -250,18 +250,14 @@
 erpnext.patches.v13_0.update_category_in_ltds_certificate
 erpnext.patches.v13_0.fetch_thumbnail_in_website_items
 erpnext.patches.v13_0.update_maintenance_schedule_field_in_visit
-erpnext.patches.v13_0.create_ksa_vat_custom_fields # 07-01-2022
 erpnext.patches.v14_0.migrate_crm_settings
-erpnext.patches.v13_0.rename_ksa_qr_field
 erpnext.patches.v13_0.wipe_serial_no_field_for_0_qty
-erpnext.patches.v13_0.disable_ksa_print_format_for_others # 16-12-2021
 erpnext.patches.v13_0.agriculture_deprecation_warning
 erpnext.patches.v13_0.hospitality_deprecation_warning
 erpnext.patches.v13_0.update_asset_quantity_field
 erpnext.patches.v13_0.delete_bank_reconciliation_detail
 erpnext.patches.v13_0.enable_provisional_accounting
 erpnext.patches.v13_0.non_profit_deprecation_warning
-erpnext.patches.v13_0.enable_ksa_vat_docs #1
 erpnext.patches.v13_0.show_india_localisation_deprecation_warning
 erpnext.patches.v13_0.show_hr_payroll_deprecation_warning
 erpnext.patches.v13_0.reset_corrupt_defaults
@@ -269,6 +265,8 @@
 erpnext.patches.v15_0.delete_taxjar_doctypes
 erpnext.patches.v15_0.create_asset_depreciation_schedules_from_assets
 erpnext.patches.v14_0.update_reference_due_date_in_journal_entry
+erpnext.patches.v15_0.saudi_depreciation_warning
+erpnext.patches.v15_0.delete_saudi_doctypes
 
 [post_model_sync]
 execute:frappe.delete_doc_if_exists('Workspace', 'ERPNext Integrations Settings')
@@ -306,7 +304,6 @@
 execute:frappe.delete_doc("DocType", "Naming Series")
 erpnext.patches.v13_0.job_card_status_on_hold
 erpnext.patches.v14_0.copy_is_subcontracted_value_to_is_old_subcontracting_flow
-erpnext.patches.v14_0.migrate_gl_to_payment_ledger
 erpnext.patches.v14_0.crm_ux_cleanup
 erpnext.patches.v14_0.migrate_existing_lead_notes_as_per_the_new_format
 erpnext.patches.v14_0.remove_india_localisation # 14-07-2022
@@ -315,7 +312,6 @@
 erpnext.patches.v14_0.fix_crm_no_of_employees
 erpnext.patches.v14_0.create_accounting_dimensions_in_subcontracting_doctypes
 erpnext.patches.v14_0.fix_subcontracting_receipt_gl_entries
-erpnext.patches.v14_0.migrate_remarks_from_gl_to_payment_ledger
 erpnext.patches.v13_0.update_schedule_type_in_loans
 erpnext.patches.v13_0.drop_unused_sle_index_parts
 erpnext.patches.v14_0.create_accounting_dimensions_for_asset_capitalization
@@ -327,3 +323,6 @@
 erpnext.patches.v14_0.change_autoname_for_tax_withheld_vouchers
 erpnext.patches.v14_0.set_pick_list_status
 erpnext.patches.v15_0.update_asset_value_for_manual_depr_entries
+# below 2 migration patches should always run last
+erpnext.patches.v14_0.migrate_gl_to_payment_ledger
+erpnext.patches.v14_0.migrate_remarks_from_gl_to_payment_ledger
diff --git a/erpnext/patches/v11_0/update_sales_partner_type.py b/erpnext/patches/v11_0/update_sales_partner_type.py
index 2d37fd6..72fd424 100644
--- a/erpnext/patches/v11_0/update_sales_partner_type.py
+++ b/erpnext/patches/v11_0/update_sales_partner_type.py
@@ -1,16 +1,17 @@
 import frappe
-from frappe import _
 
 
 def execute():
-	from erpnext.setup.setup_wizard.operations.install_fixtures import default_sales_partner_type
+	from erpnext.setup.setup_wizard.operations.install_fixtures import read_lines
 
 	frappe.reload_doc("selling", "doctype", "sales_partner_type")
 
 	frappe.local.lang = frappe.db.get_default("lang") or "en"
 
+	default_sales_partner_type = read_lines("sales_partner_type.txt")
+
 	for s in default_sales_partner_type:
-		insert_sales_partner_type(_(s))
+		insert_sales_partner_type(s)
 
 	# get partner type in existing forms (customized)
 	# and create a document if not created
diff --git a/erpnext/patches/v13_0/create_ksa_vat_custom_fields.py b/erpnext/patches/v13_0/create_ksa_vat_custom_fields.py
deleted file mode 100644
index 093463a..0000000
--- a/erpnext/patches/v13_0/create_ksa_vat_custom_fields.py
+++ /dev/null
@@ -1,11 +0,0 @@
-import frappe
-
-from erpnext.regional.saudi_arabia.setup import make_custom_fields
-
-
-def execute():
-	company = frappe.get_all("Company", filters={"country": "Saudi Arabia"})
-	if not company:
-		return
-
-	make_custom_fields()
diff --git a/erpnext/patches/v13_0/delete_old_purchase_reports.py b/erpnext/patches/v13_0/delete_old_purchase_reports.py
index 987f53f..60621fb 100644
--- a/erpnext/patches/v13_0/delete_old_purchase_reports.py
+++ b/erpnext/patches/v13_0/delete_old_purchase_reports.py
@@ -17,10 +17,11 @@
 
 	for report in reports_to_delete:
 		if frappe.db.exists("Report", report):
+			delete_links_from_desktop_icons(report)
 			delete_auto_email_reports(report)
 			check_and_delete_linked_reports(report)
 
-			frappe.delete_doc("Report", report)
+			frappe.delete_doc("Report", report, force=True)
 
 
 def delete_auto_email_reports(report):
@@ -28,3 +29,10 @@
 	auto_email_reports = frappe.db.get_values("Auto Email Report", {"report": report}, ["name"])
 	for auto_email_report in auto_email_reports:
 		frappe.delete_doc("Auto Email Report", auto_email_report[0])
+
+
+def delete_links_from_desktop_icons(report):
+	"""Check for one or multiple Desktop Icons and delete"""
+	desktop_icons = frappe.db.get_values("Desktop Icon", {"_report": report}, ["name"])
+	for desktop_icon in desktop_icons:
+		frappe.delete_doc("Desktop Icon", desktop_icon[0], force=True)
diff --git a/erpnext/patches/v13_0/disable_ksa_print_format_for_others.py b/erpnext/patches/v13_0/disable_ksa_print_format_for_others.py
deleted file mode 100644
index 84b6c37..0000000
--- a/erpnext/patches/v13_0/disable_ksa_print_format_for_others.py
+++ /dev/null
@@ -1,19 +0,0 @@
-# Copyright (c) 2020, Wahni Green Technologies and Contributors
-# License: GNU General Public License v3. See license.txt
-
-import frappe
-
-from erpnext.regional.saudi_arabia.setup import add_print_formats
-
-
-def execute():
-	company = frappe.get_all("Company", filters={"country": "Saudi Arabia"})
-	if company:
-		add_print_formats()
-		return
-
-	if frappe.db.exists("DocType", "Print Format"):
-		frappe.reload_doc("regional", "print_format", "ksa_vat_invoice", force=True)
-		frappe.reload_doc("regional", "print_format", "ksa_pos_invoice", force=True)
-		for d in ("KSA VAT Invoice", "KSA POS Invoice"):
-			frappe.db.set_value("Print Format", d, "disabled", 1)
diff --git a/erpnext/patches/v13_0/enable_ksa_vat_docs.py b/erpnext/patches/v13_0/enable_ksa_vat_docs.py
deleted file mode 100644
index 4adf4d7..0000000
--- a/erpnext/patches/v13_0/enable_ksa_vat_docs.py
+++ /dev/null
@@ -1,12 +0,0 @@
-import frappe
-
-from erpnext.regional.saudi_arabia.setup import add_permissions, add_print_formats
-
-
-def execute():
-	company = frappe.get_all("Company", filters={"country": "Saudi Arabia"})
-	if not company:
-		return
-
-	add_print_formats()
-	add_permissions()
diff --git a/erpnext/patches/v13_0/rename_ksa_qr_field.py b/erpnext/patches/v13_0/rename_ksa_qr_field.py
deleted file mode 100644
index e4b9141..0000000
--- a/erpnext/patches/v13_0/rename_ksa_qr_field.py
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright (c) 2020, Wahni Green Technologies and Contributors
-# License: GNU General Public License v3. See license.txt
-
-import frappe
-from frappe.custom.doctype.custom_field.custom_field import create_custom_fields
-from frappe.model.utils.rename_field import rename_field
-
-
-def execute():
-	company = frappe.get_all("Company", filters={"country": "Saudi Arabia"})
-	if not company:
-		return
-
-	if frappe.db.exists("DocType", "Sales Invoice"):
-		frappe.reload_doc("accounts", "doctype", "sales_invoice", force=True)
-
-		# rename_field method assumes that the field already exists or the doc is synced
-		if not frappe.db.has_column("Sales Invoice", "ksa_einv_qr"):
-			create_custom_fields(
-				{
-					"Sales Invoice": [
-						dict(
-							fieldname="ksa_einv_qr",
-							label="KSA E-Invoicing QR",
-							fieldtype="Attach Image",
-							read_only=1,
-							no_copy=1,
-							hidden=1,
-						)
-					]
-				}
-			)
-
-		if frappe.db.has_column("Sales Invoice", "qr_code"):
-			rename_field("Sales Invoice", "qr_code", "ksa_einv_qr")
-			frappe.delete_doc_if_exists("Custom Field", "Sales Invoice-qr_code")
diff --git a/erpnext/patches/v15_0/delete_saudi_doctypes.py b/erpnext/patches/v15_0/delete_saudi_doctypes.py
new file mode 100644
index 0000000..371e335
--- /dev/null
+++ b/erpnext/patches/v15_0/delete_saudi_doctypes.py
@@ -0,0 +1,25 @@
+import click
+import frappe
+
+
+def execute():
+	if "ksa" in frappe.get_installed_apps():
+		return
+
+	doctypes = ["KSA VAT Setting", "KSA VAT Purchase Account", "KSA VAT Sales Account"]
+	for doctype in doctypes:
+		frappe.delete_doc("DocType", doctype, ignore_missing=True)
+
+	print_formats = ["KSA POS Invoice", "KSA VAT Invoice"]
+	for print_format in print_formats:
+		frappe.delete_doc("Print Format", print_format, ignore_missing=True, force=True)
+
+	reports = ["KSA VAT"]
+	for report in reports:
+		frappe.delete_doc("Report", report, ignore_missing=True, force=True)
+
+	click.secho(
+		"Region Saudi Arabia(KSA) is moved to a separate app"
+		"Please install the app to continue using the module: https://github.com/8848digital/KSA",
+		fg="yellow",
+	)
diff --git a/erpnext/patches/v15_0/saudi_depreciation_warning.py b/erpnext/patches/v15_0/saudi_depreciation_warning.py
new file mode 100644
index 0000000..6af8efe
--- /dev/null
+++ b/erpnext/patches/v15_0/saudi_depreciation_warning.py
@@ -0,0 +1,12 @@
+import click
+import frappe
+
+
+def execute():
+	if "ksa" in frappe.get_installed_apps():
+		return
+	click.secho(
+		"Region Saudi Arabia(KSA) is moved to a separate app\n"
+		"Please install the app to continue using the KSA Features: https://github.com/8848digital/KSA",
+		fg="yellow",
+	)
diff --git a/erpnext/projects/doctype/project/project.json b/erpnext/projects/doctype/project/project.json
index 37d98ad..ba7aa85 100644
--- a/erpnext/projects/doctype/project/project.json
+++ b/erpnext/projects/doctype/project/project.json
@@ -408,7 +408,7 @@
    "depends_on": "eval:(doc.frequency == \"Daily\" && doc.collect_progress == true)",
    "fieldname": "daily_time_to_send",
    "fieldtype": "Time",
-   "label": "Time to send"
+   "label": "Daily Time to send"
   },
   {
    "depends_on": "eval:(doc.frequency == \"Weekly\" && doc.collect_progress == true)",
@@ -421,7 +421,7 @@
    "depends_on": "eval:(doc.frequency == \"Weekly\" && doc.collect_progress == true)",
    "fieldname": "weekly_time_to_send",
    "fieldtype": "Time",
-   "label": "Time to send"
+   "label": "Weekly Time to send"
   },
   {
    "fieldname": "column_break_45",
@@ -451,7 +451,7 @@
  "index_web_pages_for_search": 1,
  "links": [],
  "max_attachments": 4,
- "modified": "2022-06-23 16:45:06.108499",
+ "modified": "2023-02-14 04:54:25.819620",
  "modified_by": "Administrator",
  "module": "Projects",
  "name": "Project",
@@ -497,4 +497,4 @@
  "timeline_field": "customer",
  "title_field": "project_name",
  "track_seen": 1
-}
+}
\ No newline at end of file
diff --git a/erpnext/projects/doctype/timesheet/timesheet.json b/erpnext/projects/doctype/timesheet/timesheet.json
index 0cce129..4683006 100644
--- a/erpnext/projects/doctype/timesheet/timesheet.json
+++ b/erpnext/projects/doctype/timesheet/timesheet.json
@@ -282,21 +282,21 @@
   {
    "fieldname": "base_total_costing_amount",
    "fieldtype": "Currency",
-   "label": "Total Costing Amount",
+   "label": "Base Total Costing Amount",
    "print_hide": 1,
    "read_only": 1
   },
   {
    "fieldname": "base_total_billable_amount",
    "fieldtype": "Currency",
-   "label": "Total Billable Amount",
+   "label": "Base Total Billable Amount",
    "print_hide": 1,
    "read_only": 1
   },
   {
    "fieldname": "base_total_billed_amount",
    "fieldtype": "Currency",
-   "label": "Total Billed Amount",
+   "label": "Base Total Billed Amount",
    "print_hide": 1,
    "read_only": 1
   },
@@ -311,10 +311,11 @@
  "idx": 1,
  "is_submittable": 1,
  "links": [],
- "modified": "2022-06-15 22:08:53.930200",
+ "modified": "2023-02-14 04:55:41.735991",
  "modified_by": "Administrator",
  "module": "Projects",
  "name": "Timesheet",
+ "naming_rule": "By \"Naming Series\" field",
  "owner": "Administrator",
  "permissions": [
   {
@@ -388,5 +389,6 @@
  ],
  "sort_field": "modified",
  "sort_order": "ASC",
+ "states": [],
  "title_field": "title"
 }
\ No newline at end of file
diff --git a/erpnext/public/js/bank_reconciliation_tool/data_table_manager.js b/erpnext/public/js/bank_reconciliation_tool/data_table_manager.js
index f7c19a1..0cda938 100644
--- a/erpnext/public/js/bank_reconciliation_tool/data_table_manager.js
+++ b/erpnext/public/js/bank_reconciliation_tool/data_table_manager.js
@@ -182,6 +182,9 @@
 			);
 		} else {
 			this.transactions.splice(transaction_index, 1);
+			for (const [k, v] of Object.entries(this.transaction_dt_map)) {
+				if (v > transaction_index) this.transaction_dt_map[k] = v - 1;
+			}
 		}
 		this.datatable.refresh(this.transactions, this.columns);
 
diff --git a/erpnext/public/js/bank_reconciliation_tool/dialog_manager.js b/erpnext/public/js/bank_reconciliation_tool/dialog_manager.js
index 911343d..321b812 100644
--- a/erpnext/public/js/bank_reconciliation_tool/dialog_manager.js
+++ b/erpnext/public/js/bank_reconciliation_tool/dialog_manager.js
@@ -20,7 +20,7 @@
 				doctype: "Bank Transaction",
 				filters: { name: this.bank_transaction_name },
 				fieldname: [
-					"date as reference_date",
+					"date",
 					"deposit",
 					"withdrawal",
 					"currency",
@@ -33,6 +33,7 @@
 					"party",
 					"unallocated_amount",
 					"allocated_amount",
+					"transaction_type",
 				],
 			},
 			callback: (r) => {
@@ -41,11 +42,23 @@
 					r.message.payment_entry = 1;
 					r.message.journal_entry = 1;
 					this.dialog.set_values(r.message);
+					this.copy_data_to_voucher();
 					this.dialog.show();
 				}
 			},
 		});
 	}
+
+	copy_data_to_voucher() {
+		let copied = {
+			reference_number: this.bank_transaction.reference_number || this.bank_transaction.description,
+			posting_date: this.bank_transaction.date,
+			reference_date: this.bank_transaction.date,
+			mode_of_payment: this.bank_transaction.transaction_type,
+		};
+		this.dialog.set_values(copied);
+	}
+
 	get_linked_vouchers(document_types) {
 		frappe.call({
 			method:
@@ -75,10 +88,9 @@
 							row[1],
 							row[2],
 							reference_date,
-							row[8],
 							format_currency(row[3], row[9]),
-							row[6],
 							row[4],
+							row[6],
 						]);
 					});
 					this.get_dt_columns();
@@ -104,7 +116,7 @@
 			{
 				name: __("Document Name"),
 				editable: false,
-				width: 150,
+				width: 1,
 			},
 			{
 				name: __("Reference Date"),
@@ -112,25 +124,19 @@
 				width: 120,
 			},
 			{
-				name: "Posting Date",
-				editable: false,
-				width: 120,
-			},
-			{
-				name: __("Amount"),
+				name: __("Remaining"),
 				editable: false,
 				width: 100,
 			},
 			{
-				name: __("Party"),
-				editable: false,
-				width: 120,
-			},
-
-			{
 				name: __("Reference Number"),
 				editable: false,
-				width: 140,
+				width: 200,
+			},
+			{
+				name: __("Party"),
+				editable: false,
+				width: 100,
 			},
 		];
 	}
@@ -225,6 +231,16 @@
 				onchange: () => this.update_options(),
 			},
 			{
+				fieldname: "column_break_5",
+				fieldtype: "Column Break",
+			},
+			{
+				fieldtype: "Check",
+				label: "Bank Transaction",
+				fieldname: "bank_transaction",
+				onchange: () => this.update_options(),
+			},
+			{
 				fieldtype: "Section Break",
 				fieldname: "section_break_1",
 				label: __("Select Vouchers to Match"),
@@ -289,7 +305,7 @@
 				fieldtype: "Column Break",
 			},
 			{
-				default: "Journal Entry Type",
+				default: "Bank Entry",
 				fieldname: "journal_entry_type",
 				fieldtype: "Select",
 				label: "Journal Entry Type",
@@ -364,7 +380,12 @@
 				fieldtype: "Section Break",
 				fieldname: "details_section",
 				label: "Transaction Details",
-				collapsible: 1,
+			},
+			{
+				fieldname: "date",
+				fieldtype: "Date",
+				label: "Date",
+				read_only: 1,
 			},
 			{
 				fieldname: "deposit",
@@ -381,14 +402,14 @@
 				read_only: 1,
 			},
 			{
-				fieldname: "description",
-				fieldtype: "Small Text",
-				label: "Description",
+				fieldname: "column_break_17",
+				fieldtype: "Column Break",
 				read_only: 1,
 			},
 			{
-				fieldname: "column_break_17",
-				fieldtype: "Column Break",
+				fieldname: "description",
+				fieldtype: "Small Text",
+				label: "Description",
 				read_only: 1,
 			},
 			{
@@ -398,7 +419,6 @@
 				options: "Currency",
 				read_only: 1,
 			},
-
 			{
 				fieldname: "unallocated_amount",
 				fieldtype: "Currency",
@@ -593,4 +613,4 @@
 		}
 	}
 
-};
\ No newline at end of file
+};
diff --git a/erpnext/public/js/utils.js b/erpnext/public/js/utils.js
index 51dcd64..58aa8d7 100755
--- a/erpnext/public/js/utils.js
+++ b/erpnext/public/js/utils.js
@@ -221,9 +221,9 @@
 			callback: function(r) {
 				if (r.message && r.message.length) {
 					r.message.forEach((dimension) => {
-						let found = filters.some(el => el.fieldname === dimension['fieldname']);
+						let existing_filter = filters.filter(el => el.fieldname === dimension['fieldname']);
 
-						if (!found) {
+						if (!existing_filter.length) {
 							filters.splice(index, 0, {
 								"fieldname": dimension["fieldname"],
 								"label": __(dimension["doctype"]),
@@ -232,6 +232,11 @@
 									return frappe.db.get_link_options(dimension["doctype"], txt);
 								},
 							});
+						} else {
+							existing_filter[0]['fieldtype'] = "MultiSelectList";
+							existing_filter[0]['get_data'] = function(txt) {
+								return frappe.db.get_link_options(dimension["doctype"], txt);
+							}
 						}
 					});
 				}
diff --git a/erpnext/regional/doctype/ksa_vat_purchase_account/__init__.py b/erpnext/regional/doctype/ksa_vat_purchase_account/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/regional/doctype/ksa_vat_purchase_account/__init__.py
+++ /dev/null
diff --git a/erpnext/regional/doctype/ksa_vat_purchase_account/ksa_vat_purchase_account.json b/erpnext/regional/doctype/ksa_vat_purchase_account/ksa_vat_purchase_account.json
deleted file mode 100644
index 89ba3e9..0000000
--- a/erpnext/regional/doctype/ksa_vat_purchase_account/ksa_vat_purchase_account.json
+++ /dev/null
@@ -1,49 +0,0 @@
-{
- "actions": [],
- "creation": "2021-07-13 09:17:09.862163",
- "doctype": "DocType",
- "editable_grid": 1,
- "engine": "InnoDB",
- "field_order": [
-  "title",
-  "item_tax_template",
-  "account"
- ],
- "fields": [
-  {
-   "fieldname": "account",
-   "fieldtype": "Link",
-   "in_list_view": 1,
-   "label": "Account",
-   "options": "Account",
-   "reqd": 1
-  },
-  {
-   "fieldname": "title",
-   "fieldtype": "Data",
-   "in_list_view": 1,
-   "label": "Title",
-   "reqd": 1
-  },
-  {
-   "fieldname": "item_tax_template",
-   "fieldtype": "Link",
-   "in_list_view": 1,
-   "label": "Item Tax Template",
-   "options": "Item Tax Template",
-   "reqd": 1
-  }
- ],
- "index_web_pages_for_search": 1,
- "istable": 1,
- "links": [],
- "modified": "2021-08-04 06:42:38.205597",
- "modified_by": "Administrator",
- "module": "Regional",
- "name": "KSA VAT Purchase Account",
- "owner": "Administrator",
- "permissions": [],
- "sort_field": "modified",
- "sort_order": "DESC",
- "track_changes": 1
-}
\ No newline at end of file
diff --git a/erpnext/regional/doctype/ksa_vat_purchase_account/ksa_vat_purchase_account.py b/erpnext/regional/doctype/ksa_vat_purchase_account/ksa_vat_purchase_account.py
deleted file mode 100644
index 3920bc5..0000000
--- a/erpnext/regional/doctype/ksa_vat_purchase_account/ksa_vat_purchase_account.py
+++ /dev/null
@@ -1,9 +0,0 @@
-# Copyright (c) 2021, Havenir Solutions and contributors
-# For license information, please see license.txt
-
-# import frappe
-from frappe.model.document import Document
-
-
-class KSAVATPurchaseAccount(Document):
-	pass
diff --git a/erpnext/regional/doctype/ksa_vat_sales_account/__init__.py b/erpnext/regional/doctype/ksa_vat_sales_account/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/regional/doctype/ksa_vat_sales_account/__init__.py
+++ /dev/null
diff --git a/erpnext/regional/doctype/ksa_vat_sales_account/ksa_vat_sales_account.js b/erpnext/regional/doctype/ksa_vat_sales_account/ksa_vat_sales_account.js
deleted file mode 100644
index 72613f4..0000000
--- a/erpnext/regional/doctype/ksa_vat_sales_account/ksa_vat_sales_account.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// Copyright (c) 2021, Havenir Solutions and contributors
-// For license information, please see license.txt
-
-frappe.ui.form.on('KSA VAT Sales Account', {
-	// refresh: function(frm) {
-
-	// }
-});
diff --git a/erpnext/regional/doctype/ksa_vat_sales_account/ksa_vat_sales_account.json b/erpnext/regional/doctype/ksa_vat_sales_account/ksa_vat_sales_account.json
deleted file mode 100644
index df27478..0000000
--- a/erpnext/regional/doctype/ksa_vat_sales_account/ksa_vat_sales_account.json
+++ /dev/null
@@ -1,49 +0,0 @@
-{
- "actions": [],
- "creation": "2021-07-13 08:46:33.820968",
- "doctype": "DocType",
- "editable_grid": 1,
- "engine": "InnoDB",
- "field_order": [
-  "title",
-  "item_tax_template",
-  "account"
- ],
- "fields": [
-  {
-   "fieldname": "account",
-   "fieldtype": "Link",
-   "in_list_view": 1,
-   "label": "Account",
-   "options": "Account",
-   "reqd": 1
-  },
-  {
-   "fieldname": "title",
-   "fieldtype": "Data",
-   "in_list_view": 1,
-   "label": "Title",
-   "reqd": 1
-  },
-  {
-   "fieldname": "item_tax_template",
-   "fieldtype": "Link",
-   "in_list_view": 1,
-   "label": "Item Tax Template",
-   "options": "Item Tax Template",
-   "reqd": 1
-  }
- ],
- "index_web_pages_for_search": 1,
- "istable": 1,
- "links": [],
- "modified": "2021-08-04 06:42:00.081407",
- "modified_by": "Administrator",
- "module": "Regional",
- "name": "KSA VAT Sales Account",
- "owner": "Administrator",
- "permissions": [],
- "sort_field": "modified",
- "sort_order": "DESC",
- "track_changes": 1
-}
\ No newline at end of file
diff --git a/erpnext/regional/doctype/ksa_vat_sales_account/ksa_vat_sales_account.py b/erpnext/regional/doctype/ksa_vat_sales_account/ksa_vat_sales_account.py
deleted file mode 100644
index 7c2689f..0000000
--- a/erpnext/regional/doctype/ksa_vat_sales_account/ksa_vat_sales_account.py
+++ /dev/null
@@ -1,9 +0,0 @@
-# Copyright (c) 2021, Havenir Solutions and contributors
-# For license information, please see license.txt
-
-# import frappe
-from frappe.model.document import Document
-
-
-class KSAVATSalesAccount(Document):
-	pass
diff --git a/erpnext/regional/doctype/ksa_vat_sales_account/test_ksa_vat_sales_account.py b/erpnext/regional/doctype/ksa_vat_sales_account/test_ksa_vat_sales_account.py
deleted file mode 100644
index 1d6a6a7..0000000
--- a/erpnext/regional/doctype/ksa_vat_sales_account/test_ksa_vat_sales_account.py
+++ /dev/null
@@ -1,9 +0,0 @@
-# Copyright (c) 2021, Havenir Solutions and Contributors
-# See license.txt
-
-# import frappe
-import unittest
-
-
-class TestKSAVATSalesAccount(unittest.TestCase):
-	pass
diff --git a/erpnext/regional/doctype/ksa_vat_setting/__init__.py b/erpnext/regional/doctype/ksa_vat_setting/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/regional/doctype/ksa_vat_setting/__init__.py
+++ /dev/null
diff --git a/erpnext/regional/doctype/ksa_vat_setting/ksa_vat_setting.js b/erpnext/regional/doctype/ksa_vat_setting/ksa_vat_setting.js
deleted file mode 100644
index 00b62b9..0000000
--- a/erpnext/regional/doctype/ksa_vat_setting/ksa_vat_setting.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// Copyright (c) 2021, Havenir Solutions and contributors
-// For license information, please see license.txt
-
-frappe.ui.form.on('KSA VAT Setting', {
-	onload: function () {
-		frappe.breadcrumbs.add('Accounts', 'KSA VAT Setting');
-	}
-});
diff --git a/erpnext/regional/doctype/ksa_vat_setting/ksa_vat_setting.json b/erpnext/regional/doctype/ksa_vat_setting/ksa_vat_setting.json
deleted file mode 100644
index 3361946..0000000
--- a/erpnext/regional/doctype/ksa_vat_setting/ksa_vat_setting.json
+++ /dev/null
@@ -1,49 +0,0 @@
-{
- "actions": [],
- "autoname": "field:company",
- "creation": "2021-07-13 08:49:01.100356",
- "doctype": "DocType",
- "editable_grid": 1,
- "engine": "InnoDB",
- "field_order": [
-  "company",
-  "ksa_vat_sales_accounts",
-  "ksa_vat_purchase_accounts"
- ],
- "fields": [
-  {
-   "fieldname": "company",
-   "fieldtype": "Link",
-   "in_list_view": 1,
-   "label": "Company",
-   "options": "Company",
-   "reqd": 1,
-   "unique": 1
-  },
-  {
-   "fieldname": "ksa_vat_sales_accounts",
-   "fieldtype": "Table",
-   "label": "KSA VAT Sales Accounts",
-   "options": "KSA VAT Sales Account",
-   "reqd": 1
-  },
-  {
-   "fieldname": "ksa_vat_purchase_accounts",
-   "fieldtype": "Table",
-   "label": "KSA VAT Purchase Accounts",
-   "options": "KSA VAT Purchase Account",
-   "reqd": 1
-  }
- ],
- "links": [],
- "modified": "2021-08-26 04:29:06.499378",
- "modified_by": "Administrator",
- "module": "Regional",
- "name": "KSA VAT Setting",
- "owner": "Administrator",
- "permissions": [],
- "sort_field": "modified",
- "sort_order": "DESC",
- "title_field": "company",
- "track_changes": 1
-}
\ No newline at end of file
diff --git a/erpnext/regional/doctype/ksa_vat_setting/ksa_vat_setting.py b/erpnext/regional/doctype/ksa_vat_setting/ksa_vat_setting.py
deleted file mode 100644
index bdae116..0000000
--- a/erpnext/regional/doctype/ksa_vat_setting/ksa_vat_setting.py
+++ /dev/null
@@ -1,9 +0,0 @@
-# Copyright (c) 2021, Havenir Solutions and contributors
-# For license information, please see license.txt
-
-# import frappe
-from frappe.model.document import Document
-
-
-class KSAVATSetting(Document):
-	pass
diff --git a/erpnext/regional/doctype/ksa_vat_setting/ksa_vat_setting_list.js b/erpnext/regional/doctype/ksa_vat_setting/ksa_vat_setting_list.js
deleted file mode 100644
index 269cbec..0000000
--- a/erpnext/regional/doctype/ksa_vat_setting/ksa_vat_setting_list.js
+++ /dev/null
@@ -1,5 +0,0 @@
-frappe.listview_settings['KSA VAT Setting'] = {
-	onload () {
-		frappe.breadcrumbs.add('Accounts');
-	}
-}
\ No newline at end of file
diff --git a/erpnext/regional/doctype/ksa_vat_setting/test_ksa_vat_setting.py b/erpnext/regional/doctype/ksa_vat_setting/test_ksa_vat_setting.py
deleted file mode 100644
index 7207901..0000000
--- a/erpnext/regional/doctype/ksa_vat_setting/test_ksa_vat_setting.py
+++ /dev/null
@@ -1,9 +0,0 @@
-# Copyright (c) 2021, Havenir Solutions and Contributors
-# See license.txt
-
-# import frappe
-import unittest
-
-
-class TestKSAVATSetting(unittest.TestCase):
-	pass
diff --git a/erpnext/regional/print_format/ksa_pos_invoice/__init__.py b/erpnext/regional/print_format/ksa_pos_invoice/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/regional/print_format/ksa_pos_invoice/__init__.py
+++ /dev/null
diff --git a/erpnext/regional/print_format/ksa_pos_invoice/ksa_pos_invoice.json b/erpnext/regional/print_format/ksa_pos_invoice/ksa_pos_invoice.json
deleted file mode 100644
index c2a3092..0000000
--- a/erpnext/regional/print_format/ksa_pos_invoice/ksa_pos_invoice.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- "absolute_value": 0,
- "align_labels_right": 0,
- "creation": "2021-12-07 13:25:05.424827",
- "css": "",
- "custom_format": 1,
- "default_print_language": "en",
- "disabled": 1,
- "doc_type": "POS Invoice",
- "docstatus": 0,
- "doctype": "Print Format",
- "font_size": 0,
- "html": "<style>\n\t.print-format table, .print-format tr, \n\t.print-format td, .print-format div, .print-format p {\n\t\tline-height: 150%;\n\t\tvertical-align: middle;\n\t}\n\t@media screen {\n\t\t.print-format {\n\t\t\twidth: 4in;\n\t\t\tpadding: 0.25in;\n\t\t\tmin-height: 8in;\n\t\t}\n\t}\n</style>\n\n{% if letter_head %}\n    {{ letter_head }}\n{% endif %}\n\n<p class=\"text-center\" style=\"margin-bottom: 1rem\">\n\t{{ doc.company }}<br>\n\t<b>{{ doc.select_print_heading or _(\"Invoice\") }}</b><br>\n\t<img src={{doc.ksa_einv_qr}}>\n</p>\n<p>\n\t<b>{{ _(\"Receipt No\") }}:</b> {{ doc.name }}<br>\n\t<b>{{ _(\"Cashier\") }}:</b> {{ doc.owner }}<br>\n\t<b>{{ _(\"Customer\") }}:</b> {{ doc.customer_name }}<br>\n\t<b>{{ _(\"Date\") }}:</b> {{ doc.get_formatted(\"posting_date\") }}<br>\n\t<b>{{ _(\"Time\") }}:</b> {{  doc.get_formatted(\"posting_time\") }}<br>\n</p>\n\n<hr>\n<table class=\"table table-condensed\">\n\t<thead>\n\t\t<tr>\n\t\t\t<th width=\"40%\">{{ _(\"Item\") }}</th>\n\t\t\t<th width=\"25%\" class=\"text-right\">{{ _(\"Qty\") }}</th>\n\t\t\t<th width=\"35%\" class=\"text-right\">{{ _(\"Amount\") }}</th>\n\t\t</tr>\n\t</thead>\n\t<tbody>\n\t\t{%- for item in doc.items -%}\n\t\t<tr>\n\t\t\t<td>\n\t\t\t\t{{ item.item_code }}\n\t\t\t\t{%- if item.item_name != item.item_code -%}\n\t\t\t\t\t<br>{{ item.item_name }}\n\t\t\t\t{%- endif -%}\n\t\t\t\t{%- if item.serial_no -%}\n\t\t\t\t\t<br><b>{{ _(\"SR.No\") }}:</b><br>\n\t\t\t\t\t{{ item.serial_no | replace(\"\\n\", \", \") }}\n\t\t\t\t{%- endif -%}\n\t\t\t</td>\n\t\t\t<td class=\"text-right\">{{ item.qty }}</td>\n\t\t\t<td class=\"text-right\">{{ item.get_formatted(\"net_amount\") }}</td>\n\t\t</tr>\n\t\t{%- endfor -%}\n\t</tbody>\n</table>\n<table class=\"table table-condensed no-border\">\n\t<tbody>\n\t\t<tr>\n\t\t\t<td class=\"text-right\" style=\"width: 60%\">\n\t\t\t\t{{ _(\"Total Excl. Tax\") }}\n\t\t\t</td>\n\t\t\t<td class=\"text-right\">\n\t\t\t\t{{ doc.get_formatted(\"net_total\", doc) }}\n\t\t\t</td>\n\t\t</tr>\n\t\t{%- for row in doc.taxes -%}\n\t\t\t<tr>\n\t\t\t\t<td class=\"text-right\" style=\"width: 60%\">\n\t\t\t\t    {% if '%' in row.description %}\n\t\t\t\t\t    {{ row.description }}\n\t\t\t\t\t{% else %}\n\t\t\t\t\t    {{ row.description }}@{{ row.rate }}%\n\t\t\t\t\t{% endif %}\n\t\t\t\t</td>\n\t\t\t\t<td class=\"text-right\">\n\t\t\t\t\t{{ row.get_formatted(\"tax_amount\", doc) }}\n\t\t\t\t</td>\n\t\t\t<tr>\n\t\t{%- endfor -%}\n\n\t\t{%- if doc.discount_amount -%}\n\t\t<tr>\n\t\t\t<td class=\"text-right\" style=\"width: 60%\">\n\t\t\t\t{{ _(\"Discount\") }}\n\t\t\t</td>\n\t\t\t<td class=\"text-right\">\n\t\t\t\t{{ doc.get_formatted(\"discount_amount\") }}\n\t\t\t</td>\n\t\t</tr>\n\t\t{%- endif -%}\n\t\t<tr>\n\t\t\t<td class=\"text-right\" style=\"width: 60%\">\n\t\t\t\t<b>{{ _(\"Grand Total\") }}</b>\n\t\t\t</td>\n\t\t\t<td class=\"text-right\">\n\t\t\t\t{{ doc.get_formatted(\"grand_total\") }}\n\t\t\t</td>\n\t\t</tr>\n\t\t{%- if doc.rounded_total -%}\n\t\t<tr>\n\t\t\t<td class=\"text-right\" style=\"width: 60%\">\n\t\t\t\t<b>{{ _(\"Rounded Total\") }}</b>\n\t\t\t</td>\n\t\t\t<td class=\"text-right\">\n\t\t\t\t{{ doc.get_formatted(\"rounded_total\") }}\n\t\t\t</td>\n\t\t</tr>\n\t\t{%- endif -%}\n\t\t<tr>\n\t\t\t<td class=\"text-right\" style=\"width: 60%\">\n\t\t\t\t<b>{{ _(\"Paid Amount\") }}</b>\n\t\t\t</td>\n\t\t\t<td class=\"text-right\">\n\t\t\t\t{{ doc.get_formatted(\"paid_amount\") }}\n\t\t\t</td>\n\t\t</tr>\n\t\t{%- if doc.change_amount -%}\n\t\t\t<tr>\n\t\t\t\t<td class=\"text-right\" style=\"width: 60%\">\n\t\t\t\t\t<b>{{ _(\"Change Amount\") }}</b>\n\t\t\t\t</td>\n\t\t\t\t<td class=\"text-right\">\n\t\t\t\t\t{{ doc.get_formatted(\"change_amount\") }}\n\t\t\t\t</td>\n\t\t\t</tr>\n\t\t{%- endif -%}\n\t</tbody>\n</table>\n<hr>\n<p>{{ doc.terms or \"\" }}</p>\n<p class=\"text-center\">{{ _(\"Thank you, please visit again.\") }}</p>",
- "idx": 0,
- "line_breaks": 0,
- "margin_bottom": 0.0,
- "margin_left": 0.0,
- "margin_right": 0.0,
- "margin_top": 0.0,
- "modified": "2021-12-08 10:25:01.930885",
- "modified_by": "Administrator",
- "module": "Regional",
- "name": "KSA POS Invoice",
- "owner": "Administrator",
- "page_number": "Hide",
- "print_format_builder": 0,
- "print_format_builder_beta": 0,
- "print_format_type": "Jinja",
- "raw_printing": 0,
- "show_section_headings": 0,
- "standard": "Yes"
-}
\ No newline at end of file
diff --git a/erpnext/regional/print_format/ksa_vat_invoice/__init__.py b/erpnext/regional/print_format/ksa_vat_invoice/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/regional/print_format/ksa_vat_invoice/__init__.py
+++ /dev/null
diff --git a/erpnext/regional/print_format/ksa_vat_invoice/ksa_vat_invoice.json b/erpnext/regional/print_format/ksa_vat_invoice/ksa_vat_invoice.json
deleted file mode 100644
index 6b64d47..0000000
--- a/erpnext/regional/print_format/ksa_vat_invoice/ksa_vat_invoice.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- "absolute_value": 0,
- "align_labels_right": 0,
- "creation": "2021-10-29 22:46:26.039023",
- "css": ".qr-code{\n    float:right;\n}\n\n.invoice-heading {\n  margin: 0;\n}\n\n.ksa-invoice-table {\n  border: 1px solid #888a8e;\n  border-collapse: collapse;\n  width: 100%;\n  margin: 20px 0;\n  font-size: 16px;\n}\n\n.ksa-invoice-table.two-columns td:nth-child(2) {\n  direction: rtl;\n}\n\n.ksa-invoice-table th {\n  border: 1px solid #888a8e;\n  max-width: 50%;\n  padding: 8px;\n}\n\n.ksa-invoice-table td {\n  padding: 5px;\n  border: 1px solid #888a8e;\n  max-width: 50%;\n}\n\n.ksa-invoice-table thead,\n.ksa-invoice-table tfoot {\n  text-transform: uppercase;\n}\n\n.qr-rtl {\n  direction: rtl;\n}\n\n.qr-flex{\n    display: flex;\n    justify-content: space-between;\n}",
- "custom_format": 1,
- "default_print_language": "en",
- "disabled": 1,
- "doc_type": "Sales Invoice",
- "docstatus": 0,
- "doctype": "Print Format",
- "font_size": 14,
- "html": "<div class=\"ksa-vat-format\">\n    <div class=\"qr-flex\">\n        <div style=\"qr-flex: 1\">\n            <h2 class=\"invoice-heading\">TAX INVOICE</h2>\n            <h2 class=\"invoice-heading\">\u0641\u0627\u062a\u0648\u0631\u0629 \u0636\u0631\u064a\u0628\u064a\u0629</h2>\n        </div>\n        \n        <img class=\"qr-code\" src={{doc.ksa_einv_qr}}>\n    </div>\n    {% set company = frappe.get_doc(\"Company\", doc.company)%}\n    {% if (doc.company_address) %}\n        {% set supplier_address_doc = frappe.get_doc('Address', doc.company_address) %}\n    {% endif %}\n    \n    {% if(doc.customer_address) %}\n        {% set customer_address = frappe.get_doc('Address', doc.customer_address ) %}\n    {% endif %}\n    \n    {% if(doc.shipping_address_name) %}\n        {% set customer_shipping_address = frappe.get_doc('Address', doc.shipping_address_name ) %}\n    {% endif %}  \n        \n    <table class=\"ksa-invoice-table two-columns\">\n      <thead>\n        <tr>\n          <th>{{ company.name }}</th>\n          <th style=\"text-align: right;\">{{ company.company_name_in_arabic }}</th>\n        </tr>\n      </thead>\n\n      <tbody>\n        <!-- Invoice Info -->\n        <tr>\n          <td>Invoice#: {{doc.name}}</td>\n          <td>\u0631\u0642\u0645 \u0627\u0644\u0641\u0627\u062a\u0648\u0631\u0629: {{doc.name}}</td>\n        </tr>\n        <tr>\n          <td>Invoice Date: {{doc.posting_date}}</td>\n          <td>\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0641\u0627\u062a\u0648\u0631\u0629: {{doc.posting_date}}</td>\n        </tr>\n        <tr>\n          <td>Date of Supply:{{doc.posting_date}}</td>\n          <td>\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u062a\u0648\u0631\u064a\u062f: {{doc.posting_date}}</td>\n        </tr>\n        \n        <!--Supplier Info -->\n        <tr>\n          <td>Supplier:</td>\n          <td>\u0627\u0644\u0645\u0648\u0631\u062f:</td>\n        </tr>\n\t\t{% if (company.tax_id) %}\n        <tr>\n          <td>Supplier Tax Identification Number:</td>\n          <td>\u0631\u0642\u0645 \u0627\u0644\u062a\u0639\u0631\u064a\u0641 \u0627\u0644\u0636\u0631\u064a\u0628\u064a \u0644\u0644\u0645\u0648\u0631\u062f:</td>\n        </tr>\n        <tr>\n          <td>{{ company.tax_id }}</td>\n          <td>{{ company.tax_id }}</td>\n        </tr>\n        {% endif %}\n        <tr>\n          <td>{{ company.name }}</td>\n          <td>{{ company.company_name_in_arabic }} </td>\n        </tr>\n        \n        \n        {% if(supplier_address_doc) %}\n        <tr>\n          <td>{{ supplier_address_doc.address_line1}} </td>\n          <td>{{ supplier_address_doc.address_in_arabic}} </td>\n        </tr>\n        <tr>\n          <td>Phone: {{ supplier_address_doc.phone }}</td>\n          <td>\u0647\u0627\u062a\u0641: {{ supplier_address_doc.phone }}</td>\n        </tr>\n        <tr>\n          <td>Email: {{ supplier_address_doc.email_id }}</td>\n          <td>\u0628\u0631\u064a\u062f \u0627\u0644\u0643\u062a\u0631\u0648\u0646\u064a: {{ supplier_address_doc.email_id }}</td>\n        </tr>\n        {% endif %}\n        \n        <!-- Customer Info -->\n        <tr>\n          <td>CUSTOMER:</td>\n          <td>\u0639\u0645\u064a\u0644:</td>\n        </tr>\n\t\t{% set customer_tax_id = frappe.db.get_value('Customer', doc.customer, 'tax_id') %}\n\t\t{% if customer_tax_id %}\n        <tr>\n          <td>Customer Tax Identification Number:</td>\n          <td>\u0631\u0642\u0645 \u0627\u0644\u062a\u0639\u0631\u064a\u0641 \u0627\u0644\u0636\u0631\u064a\u0628\u064a \u0644\u0644\u0639\u0645\u064a\u0644:</td>\n        </tr>\n        <tr>\n          <td>{{ customer_tax_id }}</td>\n          <td>{{ customer_tax_id }}</td>\n        </tr>\n        {% endif %}\n        <tr>\n          <td> {{ doc.customer }}</td>\n          <td> {{ doc.customer_name_in_arabic }} </td>\n        </tr>\n        \n        {% if(customer_address) %}\n        <tr>\n          <td>{{ customer_address.address_line1}} </td>\n          <td>{{ customer_address.address_in_arabic}} </td>\n        </tr>\n        {% endif %}\n        \n        {% if(customer_shipping_address) %}\n        <tr>\n          <td>SHIPPING ADDRESS:</td>\n          <td>\u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0634\u062d\u0646:</td>\n        </tr>\n        \n        <tr>\n          <td>{{ customer_shipping_address.address_line1}} </td>\n          <td>{{ customer_shipping_address.address_in_arabic}} </td>\n        </tr>\n        {% endif %}\n        \n\t\t{% if(doc.po_no) %}\n        <tr>\n          <td>OTHER INFORMATION</td>\n          <td>\u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0623\u062e\u0631\u0649</td>\n        </tr>\n        \n        <tr>\n          <td>Purchase Order Number: {{ doc.po_no }}</td>\n          <td>\u0631\u0642\u0645 \u0623\u0645\u0631 \u0627\u0644\u0634\u0631\u0627\u0621: {{ doc.po_no }}</td>\n        </tr>\n        {% endif %}\n        \n        <tr>\n          <td>Payment Due Date: {{  doc.due_date}} </td>\n          <td>\u062a\u0627\u0631\u064a\u062e \u0627\u0633\u062a\u062d\u0642\u0627\u0642 \u0627\u0644\u062f\u0641\u0639: {{  doc.due_date}}</td>\n        </tr>\n      </tbody>\n    </table>\n\n    <!--Dynamic Colspan for total row columns-->\n    {% set col = namespace(one = 2, two = 1) %}\n    {% set length = doc.taxes | length %}\n    {% set length = length / 2 | round %}\n    {% set col.one = col.one + length %}\n    {% set col.two = col.two + length %}\n  \n    {%- if(doc.taxes | length % 2 > 0 ) -%}\n      {% set col.two = col.two + 1 %}\n    {% endif %}\n    \n    <!-- Items -->\n    {% set total = namespace(amount = 0) %}\n    <table class=\"ksa-invoice-table\">\n      <thead>\n        <tr>\n          <th>Nature of goods or services <br />\u0637\u0628\u064a\u0639\u0629 \u0627\u0644\u0633\u0644\u0639 \u0623\u0648 \u0627\u0644\u062e\u062f\u0645\u0627\u062a</th>\n          <th>\n            Unit price <br />\n            \u0633\u0639\u0631 \u0627\u0644\u0648\u062d\u062f\u0629\n          </th>\n          <th>\n            Quantity <br />\n            \u0627\u0644\u0643\u0645\u064a\u0629\n          </th>\n          <th>\n            Taxable Amount <br />\n            \u0627\u0644\u0645\u0628\u0644\u063a \u0627\u0644\u062e\u0627\u0636\u0639 \u0644\u0644\u0636\u0631\u064a\u0628\u0629\n          </th>\n          \n          {% for row in doc.taxes %}\n            <th style=\"min-width: 130px\">{{row.description}}</th>\n          {% endfor %}\n          \n          <th>\n            Total <br />\n            \u0627\u0644\u0645\u062c\u0645\u0648\u0639\n          </th>\n        </tr>\n      </thead>\n      <tbody>\n        {%- for item in doc.items -%}\n        {% set total.amount = item.amount %}\n        <tr>\n          <td>{{ item.item_code or item.item_name }}</td>\n          <td>{{ item.get_formatted(\"rate\") }}</td>\n          <td>{{ item.qty }}</td>\n          <td>{{ item.get_formatted(\"amount\") }}</td>\n           {% for row in doc.taxes %}\n                {% set data_object = json.loads(row.item_wise_tax_detail) %}\n                {% set key = item.item_code or item.item_name %}\n                {% set tax_amount = frappe.utils.flt(data_object[key][1]/doc.conversion_rate, row.precision('tax_amount')) %}\n                <td>\n                   <div class=\"qr-flex\">\n                    {%- if(data_object[key][0])-%}\n                    <span>{{ frappe.format(data_object[key][0], {'fieldtype': 'Percent'}) }}</span>\n                    {%- endif -%}\n                    <span>\n                    {%- if(data_object[key][1])-%}\n                        {{ frappe.format_value(tax_amount, currency=doc.currency) }}</span>\n                        {% set total.amount = total.amount + tax_amount %}\n                    {%- endif -%}\n                    </div>\n                </td>\n            {% endfor %}\n          <td>{{  frappe.format_value(frappe.utils.flt(total.amount, doc.precision('total_taxes_and_charges')), currency=doc.currency) }}</td>\n        </tr>\n        {%- endfor -%}\n      </tbody>\n      <tfoot>\n        <tr>\n          <td>\n            {{ doc.get_formatted(\"total\") }} <br />\n            {{ doc.get_formatted(\"total_taxes_and_charges\") }}\n          </td>\n          \n          <td colspan={{ col.one }} class=\"qr-rtl\">\n            \u0627\u0644\u0625\u062c\u0645\u0627\u0644\u064a \u0628\u0627\u0633\u062a\u062b\u0646\u0627\u0621 \u0636\u0631\u064a\u0628\u0629 \u0627\u0644\u0642\u064a\u0645\u0629 \u0627\u0644\u0645\u0636\u0627\u0641\u0629\n            <br />\n            \u0625\u062c\u0645\u0627\u0644\u064a \u0636\u0631\u064a\u0628\u0629 \u0627\u0644\u0642\u064a\u0645\u0629 \u0627\u0644\u0645\u0636\u0627\u0641\u0629\n          </td>\n          <td colspan={{ col.two }}>\n            Total (Excluding VAT)\n            <br />\n            Total VAT\n          </td>\n          <td>\n            {{ doc.get_formatted(\"total\") }} <br />\n            {{ doc.get_formatted(\"total_taxes_and_charges\") }}\n          </td>\n        </tr>\n        <tr>\n          <td>{{ doc.get_formatted(\"grand_total\") }}</td>\n          <td  colspan={{  col.one }} class=\"qr-rtl\">\n              \u0625\u062c\u0645\u0627\u0644\u064a \u0627\u0644\u0645\u0628\u0644\u063a \u0627\u0644\u0645\u0633\u062a\u062d\u0642</td>\n          <td  colspan={{  col.two }}>Total Amount Due</td>\n          <td>{{ doc.get_formatted(\"grand_total\") }}</td>\n        </tr>\n      </tfoot>\n    </table>\n\n\t{%- if doc.terms -%}\n    <p>\n      {{doc.terms}}\n    </p>\n\t{%- endif -%}\n</div>\n",
- "idx": 0,
- "line_breaks": 0,
- "margin_bottom": 15.0,
- "margin_left": 15.0,
- "margin_right": 15.0,
- "margin_top": 15.0,
- "modified": "2021-12-07 13:43:38.018593",
- "modified_by": "Administrator",
- "module": "Regional",
- "name": "KSA VAT Invoice",
- "owner": "Administrator",
- "page_number": "Hide",
- "print_format_builder": 0,
- "print_format_builder_beta": 0,
- "print_format_type": "Jinja",
- "raw_printing": 0,
- "show_section_headings": 0,
- "standard": "Yes"
-}
\ No newline at end of file
diff --git a/erpnext/regional/report/ksa_vat/__init__.py b/erpnext/regional/report/ksa_vat/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/regional/report/ksa_vat/__init__.py
+++ /dev/null
diff --git a/erpnext/regional/report/ksa_vat/ksa_vat.js b/erpnext/regional/report/ksa_vat/ksa_vat.js
deleted file mode 100644
index 59e72c3..0000000
--- a/erpnext/regional/report/ksa_vat/ksa_vat.js
+++ /dev/null
@@ -1,59 +0,0 @@
-// Copyright (c) 2016, Havenir Solutions and contributors
-// For license information, please see license.txt
-/* eslint-disable */
-
-frappe.query_reports["KSA VAT"] = {
-	onload() {
-		frappe.breadcrumbs.add('Accounts');
-	},
-	"filters": [
-		{
-			"fieldname": "company",
-			"label": __("Company"),
-			"fieldtype": "Link",
-			"options": "Company",
-			"reqd": 1,
-			"default": frappe.defaults.get_user_default("Company")
-		},
-		{
-			"fieldname": "from_date",
-			"label": __("From Date"),
-			"fieldtype": "Date",
-			"reqd": 1,
-			"default": frappe.datetime.add_months(frappe.datetime.get_today(), -1),
-		},
-		{
-			"fieldname": "to_date",
-			"label": __("To Date"),
-			"fieldtype": "Date",
-			"reqd": 1,
-			"default": frappe.datetime.get_today()
-		}
-	],
-	"formatter": function(value, row, column, data, default_formatter) {
-		if (data
-			&& (data.title=='VAT on Sales' || data.title=='VAT on Purchases')
-			&& data.title==value) {
-			value = $(`<span>${value}</span>`);
-			var $value = $(value).css("font-weight", "bold");
-			value = $value.wrap("<p></p>").parent().html();
-			return value
-		}else if (data.title=='Grand Total'){
-			if (data.title==value) {
-				value = $(`<span>${value}</span>`);
-				var $value = $(value).css("font-weight", "bold");
-				value = $value.wrap("<p></p>").parent().html();
-				return value
-			}else{
-				value = default_formatter(value, row, column, data);
-				value = $(`<span>${value}</span>`);
-				var $value = $(value).css("font-weight", "bold");
-				value = $value.wrap("<p></p>").parent().html();
-				return value
-			}
-		}else{
-			value = default_formatter(value, row, column, data);
-			return value;
-		}
-	},
-};
diff --git a/erpnext/regional/report/ksa_vat/ksa_vat.json b/erpnext/regional/report/ksa_vat/ksa_vat.json
deleted file mode 100644
index 036e260..0000000
--- a/erpnext/regional/report/ksa_vat/ksa_vat.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- "add_total_row": 0,
- "columns": [],
- "creation": "2021-07-13 08:54:38.000949",
- "disable_prepared_report": 1,
- "disabled": 1,
- "docstatus": 0,
- "doctype": "Report",
- "filters": [],
- "idx": 0,
- "is_standard": "Yes",
- "modified": "2021-08-26 04:14:37.202594",
- "modified_by": "Administrator",
- "module": "Regional",
- "name": "KSA VAT",
- "owner": "Administrator",
- "prepared_report": 1,
- "ref_doctype": "GL Entry",
- "report_name": "KSA VAT",
- "report_type": "Script Report",
- "roles": [
-  {
-   "role": "System Manager"
-  },
-  {
-   "role": "Accounts Manager"
-  },
-  {
-   "role": "Accounts User"
-  }
- ]
-}
\ No newline at end of file
diff --git a/erpnext/regional/report/ksa_vat/ksa_vat.py b/erpnext/regional/report/ksa_vat/ksa_vat.py
deleted file mode 100644
index 15996d2..0000000
--- a/erpnext/regional/report/ksa_vat/ksa_vat.py
+++ /dev/null
@@ -1,231 +0,0 @@
-# Copyright (c) 2013, Havenir Solutions and contributors
-# For license information, please see license.txt
-
-
-import json
-
-import frappe
-from frappe import _
-from frappe.utils import get_url_to_list
-
-
-def execute(filters=None):
-	columns = columns = get_columns()
-	data = get_data(filters)
-	return columns, data
-
-
-def get_columns():
-	return [
-		{
-			"fieldname": "title",
-			"label": _("Title"),
-			"fieldtype": "Data",
-			"width": 300,
-		},
-		{
-			"fieldname": "amount",
-			"label": _("Amount (SAR)"),
-			"fieldtype": "Currency",
-			"options": "currency",
-			"width": 150,
-		},
-		{
-			"fieldname": "adjustment_amount",
-			"label": _("Adjustment (SAR)"),
-			"fieldtype": "Currency",
-			"options": "currency",
-			"width": 150,
-		},
-		{
-			"fieldname": "vat_amount",
-			"label": _("VAT Amount (SAR)"),
-			"fieldtype": "Currency",
-			"options": "currency",
-			"width": 150,
-		},
-		{
-			"fieldname": "currency",
-			"label": _("Currency"),
-			"fieldtype": "Currency",
-			"width": 150,
-			"hidden": 1,
-		},
-	]
-
-
-def get_data(filters):
-	data = []
-
-	# Validate if vat settings exist
-	company = filters.get("company")
-	company_currency = frappe.get_cached_value("Company", company, "default_currency")
-
-	if frappe.db.exists("KSA VAT Setting", company) is None:
-		url = get_url_to_list("KSA VAT Setting")
-		frappe.msgprint(_('Create <a href="{}">KSA VAT Setting</a> for this company').format(url))
-		return data
-
-	ksa_vat_setting = frappe.get_doc("KSA VAT Setting", company)
-
-	# Sales Heading
-	append_data(data, "VAT on Sales", "", "", "", company_currency)
-
-	grand_total_taxable_amount = 0
-	grand_total_taxable_adjustment_amount = 0
-	grand_total_tax = 0
-
-	for vat_setting in ksa_vat_setting.ksa_vat_sales_accounts:
-		(
-			total_taxable_amount,
-			total_taxable_adjustment_amount,
-			total_tax,
-		) = get_tax_data_for_each_vat_setting(vat_setting, filters, "Sales Invoice")
-
-		# Adding results to data
-		append_data(
-			data,
-			vat_setting.title,
-			total_taxable_amount,
-			total_taxable_adjustment_amount,
-			total_tax,
-			company_currency,
-		)
-
-		grand_total_taxable_amount += total_taxable_amount
-		grand_total_taxable_adjustment_amount += total_taxable_adjustment_amount
-		grand_total_tax += total_tax
-
-	# Sales Grand Total
-	append_data(
-		data,
-		"Grand Total",
-		grand_total_taxable_amount,
-		grand_total_taxable_adjustment_amount,
-		grand_total_tax,
-		company_currency,
-	)
-
-	# Blank Line
-	append_data(data, "", "", "", "", company_currency)
-
-	# Purchase Heading
-	append_data(data, "VAT on Purchases", "", "", "", company_currency)
-
-	grand_total_taxable_amount = 0
-	grand_total_taxable_adjustment_amount = 0
-	grand_total_tax = 0
-
-	for vat_setting in ksa_vat_setting.ksa_vat_purchase_accounts:
-		(
-			total_taxable_amount,
-			total_taxable_adjustment_amount,
-			total_tax,
-		) = get_tax_data_for_each_vat_setting(vat_setting, filters, "Purchase Invoice")
-
-		# Adding results to data
-		append_data(
-			data,
-			vat_setting.title,
-			total_taxable_amount,
-			total_taxable_adjustment_amount,
-			total_tax,
-			company_currency,
-		)
-
-		grand_total_taxable_amount += total_taxable_amount
-		grand_total_taxable_adjustment_amount += total_taxable_adjustment_amount
-		grand_total_tax += total_tax
-
-	# Purchase Grand Total
-	append_data(
-		data,
-		"Grand Total",
-		grand_total_taxable_amount,
-		grand_total_taxable_adjustment_amount,
-		grand_total_tax,
-		company_currency,
-	)
-
-	return data
-
-
-def get_tax_data_for_each_vat_setting(vat_setting, filters, doctype):
-	"""
-	(KSA, {filters}, 'Sales Invoice') => 500, 153, 10 \n
-	calculates and returns \n
-	total_taxable_amount, total_taxable_adjustment_amount, total_tax"""
-	from_date = filters.get("from_date")
-	to_date = filters.get("to_date")
-
-	# Initiate variables
-	total_taxable_amount = 0
-	total_taxable_adjustment_amount = 0
-	total_tax = 0
-	# Fetch All Invoices
-	invoices = frappe.get_all(
-		doctype,
-		filters={"docstatus": 1, "posting_date": ["between", [from_date, to_date]]},
-		fields=["name", "is_return"],
-	)
-
-	for invoice in invoices:
-		invoice_items = frappe.get_all(
-			f"{doctype} Item",
-			filters={
-				"docstatus": 1,
-				"parent": invoice.name,
-				"item_tax_template": vat_setting.item_tax_template,
-			},
-			fields=["item_code", "net_amount"],
-		)
-
-		for item in invoice_items:
-			# Summing up total taxable amount
-			if invoice.is_return == 0:
-				total_taxable_amount += item.net_amount
-
-			if invoice.is_return == 1:
-				total_taxable_adjustment_amount += item.net_amount
-
-			# Summing up total tax
-			total_tax += get_tax_amount(item.item_code, vat_setting.account, doctype, invoice.name)
-
-	return total_taxable_amount, total_taxable_adjustment_amount, total_tax
-
-
-def append_data(data, title, amount, adjustment_amount, vat_amount, company_currency):
-	"""Returns data with appended value."""
-	data.append(
-		{
-			"title": _(title),
-			"amount": amount,
-			"adjustment_amount": adjustment_amount,
-			"vat_amount": vat_amount,
-			"currency": company_currency,
-		}
-	)
-
-
-def get_tax_amount(item_code, account_head, doctype, parent):
-	if doctype == "Sales Invoice":
-		tax_doctype = "Sales Taxes and Charges"
-
-	elif doctype == "Purchase Invoice":
-		tax_doctype = "Purchase Taxes and Charges"
-
-	item_wise_tax_detail = frappe.get_value(
-		tax_doctype,
-		{"docstatus": 1, "parent": parent, "account_head": account_head},
-		"item_wise_tax_detail",
-	)
-
-	tax_amount = 0
-	if item_wise_tax_detail and len(item_wise_tax_detail) > 0:
-		item_wise_tax_detail = json.loads(item_wise_tax_detail)
-		for key, value in item_wise_tax_detail.items():
-			if key == item_code:
-				tax_amount = value[1]
-				break
-
-	return tax_amount
diff --git a/erpnext/regional/saudi_arabia/__init__.py b/erpnext/regional/saudi_arabia/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/regional/saudi_arabia/__init__.py
+++ /dev/null
diff --git a/erpnext/regional/saudi_arabia/setup.py b/erpnext/regional/saudi_arabia/setup.py
deleted file mode 100644
index 7f41c46..0000000
--- a/erpnext/regional/saudi_arabia/setup.py
+++ /dev/null
@@ -1,173 +0,0 @@
-# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
-# License: GNU General Public License v3. See license.txt
-
-import frappe
-from frappe.permissions import add_permission, update_permission_property
-from erpnext.regional.saudi_arabia.wizard.operations.setup_ksa_vat_setting import (
-	create_ksa_vat_setting,
-)
-from frappe.custom.doctype.custom_field.custom_field import create_custom_fields
-
-
-def setup(company=None, patch=True):
-	add_print_formats()
-	add_permissions()
-	make_custom_fields()
-
-
-def add_print_formats():
-	frappe.reload_doc("regional", "print_format", "detailed_tax_invoice", force=True)
-	frappe.reload_doc("regional", "print_format", "simplified_tax_invoice", force=True)
-	frappe.reload_doc("regional", "print_format", "tax_invoice", force=True)
-	frappe.reload_doc("regional", "print_format", "ksa_vat_invoice", force=True)
-	frappe.reload_doc("regional", "print_format", "ksa_pos_invoice", force=True)
-
-	for d in (
-		"Simplified Tax Invoice",
-		"Detailed Tax Invoice",
-		"Tax Invoice",
-		"KSA VAT Invoice",
-		"KSA POS Invoice",
-	):
-		frappe.db.set_value("Print Format", d, "disabled", 0)
-
-
-def add_permissions():
-	"""Add Permissions for KSA VAT Setting."""
-	add_permission("KSA VAT Setting", "All", 0)
-	for role in ("Accounts Manager", "Accounts User", "System Manager"):
-		add_permission("KSA VAT Setting", role, 0)
-		update_permission_property("KSA VAT Setting", role, 0, "write", 1)
-		update_permission_property("KSA VAT Setting", role, 0, "create", 1)
-
-	"""Enable KSA VAT Report"""
-	frappe.db.set_value("Report", "KSA VAT", "disabled", 0)
-
-
-def make_custom_fields():
-	"""Create Custom fields
-	- QR code Image file
-	- Company Name in Arabic
-	- Address in Arabic
-	"""
-	is_zero_rated = dict(
-		fieldname="is_zero_rated",
-		label="Is Zero Rated",
-		fieldtype="Check",
-		fetch_from="item_code.is_zero_rated",
-		insert_after="description",
-		print_hide=1,
-	)
-
-	is_exempt = dict(
-		fieldname="is_exempt",
-		label="Is Exempt",
-		fieldtype="Check",
-		fetch_from="item_code.is_exempt",
-		insert_after="is_zero_rated",
-		print_hide=1,
-	)
-
-	purchase_invoice_fields = [
-		dict(
-			fieldname="company_trn",
-			label="Company TRN",
-			fieldtype="Read Only",
-			insert_after="shipping_address",
-			fetch_from="company.tax_id",
-			print_hide=1,
-		),
-		dict(
-			fieldname="supplier_name_in_arabic",
-			label="Supplier Name in Arabic",
-			fieldtype="Read Only",
-			insert_after="supplier_name",
-			fetch_from="supplier.supplier_name_in_arabic",
-			print_hide=1,
-		),
-	]
-
-	sales_invoice_fields = [
-		dict(
-			fieldname="company_trn",
-			label="Company TRN",
-			fieldtype="Read Only",
-			insert_after="company_address",
-			fetch_from="company.tax_id",
-			print_hide=1,
-		),
-		dict(
-			fieldname="customer_name_in_arabic",
-			label="Customer Name in Arabic",
-			fieldtype="Read Only",
-			insert_after="customer_name",
-			fetch_from="customer.customer_name_in_arabic",
-			print_hide=1,
-		),
-		dict(
-			fieldname="ksa_einv_qr",
-			label="KSA E-Invoicing QR",
-			fieldtype="Attach Image",
-			read_only=1,
-			no_copy=1,
-			hidden=1,
-		),
-	]
-
-	custom_fields = {
-		"Item": [is_zero_rated, is_exempt],
-		"Customer": [
-			dict(
-				fieldname="customer_name_in_arabic",
-				label="Customer Name in Arabic",
-				fieldtype="Data",
-				insert_after="customer_name",
-			),
-		],
-		"Supplier": [
-			dict(
-				fieldname="supplier_name_in_arabic",
-				label="Supplier Name in Arabic",
-				fieldtype="Data",
-				insert_after="supplier_name",
-			),
-		],
-		"Purchase Invoice": purchase_invoice_fields,
-		"Purchase Order": purchase_invoice_fields,
-		"Purchase Receipt": purchase_invoice_fields,
-		"Sales Invoice": sales_invoice_fields,
-		"POS Invoice": sales_invoice_fields,
-		"Sales Order": sales_invoice_fields,
-		"Delivery Note": sales_invoice_fields,
-		"Sales Invoice Item": [is_zero_rated, is_exempt],
-		"POS Invoice Item": [is_zero_rated, is_exempt],
-		"Purchase Invoice Item": [is_zero_rated, is_exempt],
-		"Sales Order Item": [is_zero_rated, is_exempt],
-		"Delivery Note Item": [is_zero_rated, is_exempt],
-		"Quotation Item": [is_zero_rated, is_exempt],
-		"Purchase Order Item": [is_zero_rated, is_exempt],
-		"Purchase Receipt Item": [is_zero_rated, is_exempt],
-		"Supplier Quotation Item": [is_zero_rated, is_exempt],
-		"Address": [
-			dict(
-				fieldname="address_in_arabic",
-				label="Address in Arabic",
-				fieldtype="Data",
-				insert_after="address_line2",
-			)
-		],
-		"Company": [
-			dict(
-				fieldname="company_name_in_arabic",
-				label="Company Name In Arabic",
-				fieldtype="Data",
-				insert_after="company_name",
-			)
-		],
-	}
-
-	create_custom_fields(custom_fields, ignore_validate=True, update=True)
-
-
-def update_regional_tax_settings(country, company):
-	create_ksa_vat_setting(company)
diff --git a/erpnext/regional/saudi_arabia/utils.py b/erpnext/regional/saudi_arabia/utils.py
deleted file mode 100644
index cac5ec1..0000000
--- a/erpnext/regional/saudi_arabia/utils.py
+++ /dev/null
@@ -1,169 +0,0 @@
-import io
-import os
-from base64 import b64encode
-
-import frappe
-from frappe import _
-from frappe.custom.doctype.custom_field.custom_field import create_custom_fields
-from frappe.utils.data import add_to_date, get_time, getdate
-from pyqrcode import create as qr_create
-
-from erpnext import get_region
-
-
-def create_qr_code(doc, method=None):
-	region = get_region(doc.company)
-	if region not in ["Saudi Arabia"]:
-		return
-
-	# if QR Code field not present, create it. Invoices without QR are invalid as per law.
-	if not hasattr(doc, "ksa_einv_qr"):
-		create_custom_fields(
-			{
-				doc.doctype: [
-					dict(
-						fieldname="ksa_einv_qr",
-						label="KSA E-Invoicing QR",
-						fieldtype="Attach Image",
-						read_only=1,
-						no_copy=1,
-						hidden=1,
-					)
-				]
-			}
-		)
-
-	# Don't create QR Code if it already exists
-	qr_code = doc.get("ksa_einv_qr")
-	if qr_code and frappe.db.exists({"doctype": "File", "file_url": qr_code}):
-		return
-
-	meta = frappe.get_meta(doc.doctype)
-
-	if "ksa_einv_qr" in [d.fieldname for d in meta.get_image_fields()]:
-		"""TLV conversion for
-		1. Seller's Name
-		2. VAT Number
-		3. Time Stamp
-		4. Invoice Amount
-		5. VAT Amount
-		"""
-		tlv_array = []
-		# Sellers Name
-
-		seller_name = frappe.db.get_value("Company", doc.company, "company_name_in_arabic")
-
-		if not seller_name:
-			frappe.throw(_("Arabic name missing for {} in the company document").format(doc.company))
-
-		tag = bytes([1]).hex()
-		length = bytes([len(seller_name.encode("utf-8"))]).hex()
-		value = seller_name.encode("utf-8").hex()
-		tlv_array.append("".join([tag, length, value]))
-
-		# VAT Number
-		tax_id = frappe.db.get_value("Company", doc.company, "tax_id")
-		if not tax_id:
-			frappe.throw(_("Tax ID missing for {} in the company document").format(doc.company))
-
-		tag = bytes([2]).hex()
-		length = bytes([len(tax_id)]).hex()
-		value = tax_id.encode("utf-8").hex()
-		tlv_array.append("".join([tag, length, value]))
-
-		# Time Stamp
-		posting_date = getdate(doc.posting_date)
-		time = get_time(doc.posting_time)
-		seconds = time.hour * 60 * 60 + time.minute * 60 + time.second
-		time_stamp = add_to_date(posting_date, seconds=seconds)
-		time_stamp = time_stamp.strftime("%Y-%m-%dT%H:%M:%SZ")
-
-		tag = bytes([3]).hex()
-		length = bytes([len(time_stamp)]).hex()
-		value = time_stamp.encode("utf-8").hex()
-		tlv_array.append("".join([tag, length, value]))
-
-		# Invoice Amount
-		invoice_amount = str(doc.base_grand_total)
-		tag = bytes([4]).hex()
-		length = bytes([len(invoice_amount)]).hex()
-		value = invoice_amount.encode("utf-8").hex()
-		tlv_array.append("".join([tag, length, value]))
-
-		# VAT Amount
-		vat_amount = str(get_vat_amount(doc))
-
-		tag = bytes([5]).hex()
-		length = bytes([len(vat_amount)]).hex()
-		value = vat_amount.encode("utf-8").hex()
-		tlv_array.append("".join([tag, length, value]))
-
-		# Joining bytes into one
-		tlv_buff = "".join(tlv_array)
-
-		# base64 conversion for QR Code
-		base64_string = b64encode(bytes.fromhex(tlv_buff)).decode()
-
-		qr_image = io.BytesIO()
-		url = qr_create(base64_string, error="L")
-		url.png(qr_image, scale=2, quiet_zone=1)
-
-		name = frappe.generate_hash(doc.name, 5)
-
-		# making file
-		filename = f"QRCode-{name}.png".replace(os.path.sep, "__")
-		_file = frappe.get_doc(
-			{
-				"doctype": "File",
-				"file_name": filename,
-				"is_private": 0,
-				"content": qr_image.getvalue(),
-				"attached_to_doctype": doc.get("doctype"),
-				"attached_to_name": doc.get("name"),
-				"attached_to_field": "ksa_einv_qr",
-			}
-		)
-
-		_file.save()
-
-		# assigning to document
-		doc.db_set("ksa_einv_qr", _file.file_url)
-		doc.notify_update()
-
-
-def get_vat_amount(doc):
-	vat_settings = frappe.db.get_value("KSA VAT Setting", {"company": doc.company})
-	vat_accounts = []
-	vat_amount = 0
-
-	if vat_settings:
-		vat_settings_doc = frappe.get_cached_doc("KSA VAT Setting", vat_settings)
-
-		for row in vat_settings_doc.get("ksa_vat_sales_accounts"):
-			vat_accounts.append(row.account)
-
-	for tax in doc.get("taxes"):
-		if tax.account_head in vat_accounts:
-			vat_amount += tax.base_tax_amount
-
-	return vat_amount
-
-
-def delete_qr_code_file(doc, method=None):
-	region = get_region(doc.company)
-	if region not in ["Saudi Arabia"]:
-		return
-
-	if hasattr(doc, "ksa_einv_qr"):
-		if doc.get("ksa_einv_qr"):
-			file_doc = frappe.get_list("File", {"file_url": doc.get("ksa_einv_qr")})
-			if len(file_doc):
-				frappe.delete_doc("File", file_doc[0].name)
-
-
-def delete_vat_settings_for_company(doc, method=None):
-	if doc.country != "Saudi Arabia":
-		return
-
-	if frappe.db.exists("KSA VAT Setting", doc.name):
-		frappe.delete_doc("KSA VAT Setting", doc.name)
diff --git a/erpnext/regional/saudi_arabia/wizard/__init__.py b/erpnext/regional/saudi_arabia/wizard/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/regional/saudi_arabia/wizard/__init__.py
+++ /dev/null
diff --git a/erpnext/regional/saudi_arabia/wizard/data/__init__.py b/erpnext/regional/saudi_arabia/wizard/data/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/regional/saudi_arabia/wizard/data/__init__.py
+++ /dev/null
diff --git a/erpnext/regional/saudi_arabia/wizard/data/ksa_vat_settings.json b/erpnext/regional/saudi_arabia/wizard/data/ksa_vat_settings.json
deleted file mode 100644
index 60951a9..0000000
--- a/erpnext/regional/saudi_arabia/wizard/data/ksa_vat_settings.json
+++ /dev/null
@@ -1,47 +0,0 @@
-[
-    {
-        "type": "Sales Account",
-        "accounts": [
-            {
-                "title": "Standard rated Sales",
-                "item_tax_template": "KSA VAT 5%",
-                "account": "VAT 5%"
-            },
-            {
-                "title": "Zero rated domestic sales",
-                "item_tax_template": "KSA VAT Zero",
-                "account": "VAT Zero"
-            },
-            {
-                "title": "Exempted sales",
-                "item_tax_template": "KSA VAT Exempted",
-                "account": "VAT Exempted"
-            }
-        ]
-    },
-    {
-        "type": "Purchase Account",
-        "accounts": [
-            {
-                "title": "Standard rated domestic purchases",
-                "item_tax_template": "KSA VAT 5%",
-                "account": "VAT 5%"
-            },
-            {
-                "title": "Imports subject to VAT paid at customs",
-                "item_tax_template": "KSA Excise 50%",
-                "account": "Excise 50%"
-            },
-            {
-                "title": "Zero rated purchases",
-                "item_tax_template": "KSA VAT Zero",
-                "account": "VAT Zero"
-            },
-            {
-                "title": "Exempted purchases",
-                "item_tax_template": "KSA VAT Exempted",
-                "account": "VAT Exempted"
-            }
-        ]
-    }
-]
\ No newline at end of file
diff --git a/erpnext/regional/saudi_arabia/wizard/operations/__init__.py b/erpnext/regional/saudi_arabia/wizard/operations/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/regional/saudi_arabia/wizard/operations/__init__.py
+++ /dev/null
diff --git a/erpnext/regional/saudi_arabia/wizard/operations/setup_ksa_vat_setting.py b/erpnext/regional/saudi_arabia/wizard/operations/setup_ksa_vat_setting.py
deleted file mode 100644
index 66d9df2..0000000
--- a/erpnext/regional/saudi_arabia/wizard/operations/setup_ksa_vat_setting.py
+++ /dev/null
@@ -1,46 +0,0 @@
-import json
-import os
-
-import frappe
-
-
-def create_ksa_vat_setting(company):
-	"""On creation of first company. Creates KSA VAT Setting"""
-
-	company = frappe.get_doc("Company", company)
-
-	file_path = os.path.join(os.path.dirname(__file__), "..", "data", "ksa_vat_settings.json")
-	with open(file_path, "r") as json_file:
-		account_data = json.load(json_file)
-
-	# Creating KSA VAT Setting
-	ksa_vat_setting = frappe.get_doc({"doctype": "KSA VAT Setting", "company": company.name})
-
-	for data in account_data:
-		if data["type"] == "Sales Account":
-			for row in data["accounts"]:
-				item_tax_template = row["item_tax_template"]
-				account = row["account"]
-				ksa_vat_setting.append(
-					"ksa_vat_sales_accounts",
-					{
-						"title": row["title"],
-						"item_tax_template": f"{item_tax_template} - {company.abbr}",
-						"account": f"{account} - {company.abbr}",
-					},
-				)
-
-		elif data["type"] == "Purchase Account":
-			for row in data["accounts"]:
-				item_tax_template = row["item_tax_template"]
-				account = row["account"]
-				ksa_vat_setting.append(
-					"ksa_vat_purchase_accounts",
-					{
-						"title": row["title"],
-						"item_tax_template": f"{item_tax_template} - {company.abbr}",
-						"account": f"{account} - {company.abbr}",
-					},
-				)
-
-	ksa_vat_setting.save()
diff --git a/erpnext/selling/doctype/customer/customer.json b/erpnext/selling/doctype/customer/customer.json
index 7482a33..c133cd3 100644
--- a/erpnext/selling/doctype/customer/customer.json
+++ b/erpnext/selling/doctype/customer/customer.json
@@ -24,10 +24,10 @@
   "account_manager",
   "image",
   "defaults_tab",
-  "default_price_list",
+  "default_currency",
   "default_bank_account",
   "column_break_14",
-  "default_currency",
+  "default_price_list",
   "internal_customer_section",
   "is_internal_customer",
   "represents_company",
@@ -568,11 +568,10 @@
    "link_fieldname": "party"
   }
  ],
- "modified": "2022-11-08 15:52:34.462657",
+ "modified": "2023-02-18 11:04:46.343527",
  "modified_by": "Administrator",
  "module": "Selling",
  "name": "Customer",
- "name_case": "Title Case",
  "naming_rule": "By \"Naming Series\" field",
  "owner": "Administrator",
  "permissions": [
diff --git a/erpnext/selling/doctype/industry_type/industry_type.json b/erpnext/selling/doctype/industry_type/industry_type.json
index 6c49f0f..3c8ab8e 100644
--- a/erpnext/selling/doctype/industry_type/industry_type.json
+++ b/erpnext/selling/doctype/industry_type/industry_type.json
@@ -1,123 +1,68 @@
 {
- "allow_copy": 0, 
- "allow_import": 1, 
- "allow_rename": 1, 
- "autoname": "field:industry", 
- "beta": 0, 
- "creation": "2012-03-27 14:36:09", 
- "custom": 0, 
- "docstatus": 0, 
- "doctype": "DocType", 
- "document_type": "Setup", 
- "editable_grid": 0, 
+ "actions": [],
+ "allow_import": 1,
+ "allow_rename": 1,
+ "autoname": "field:industry",
+ "creation": "2012-03-27 14:36:09",
+ "doctype": "DocType",
+ "document_type": "Setup",
+ "engine": "InnoDB",
+ "field_order": [
+  "industry"
+ ],
  "fields": [
   {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "fieldname": "industry", 
-   "fieldtype": "Data", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_list_view": 0, 
-   "label": "Industry", 
-   "length": 0, 
-   "no_copy": 0, 
-   "oldfieldname": "industry", 
-   "oldfieldtype": "Data", 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 1, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
+   "fieldname": "industry",
+   "fieldtype": "Data",
+   "in_list_view": 1,
+   "label": "Industry",
+   "oldfieldname": "industry",
+   "oldfieldtype": "Data",
+   "reqd": 1,
+   "unique": 1
   }
- ], 
- "hide_heading": 0, 
- "hide_toolbar": 0, 
- "icon": "fa fa-flag", 
- "idx": 1, 
- "image_view": 0, 
- "in_create": 0, 
-
- "is_submittable": 0, 
- "issingle": 0, 
- "istable": 0, 
- "max_attachments": 0, 
- "modified": "2020-09-18 17:26:09.703215", 
- "modified_by": "Administrator", 
- "module": "Selling", 
- "name": "Industry Type", 
- "owner": "Administrator", 
+ ],
+ "icon": "fa fa-flag",
+ "idx": 1,
+ "links": [],
+ "modified": "2023-02-10 03:14:40.735763",
+ "modified_by": "Administrator",
+ "module": "Selling",
+ "name": "Industry Type",
+ "naming_rule": "By fieldname",
+ "owner": "Administrator",
  "permissions": [
   {
-   "amend": 0, 
-   "apply_user_permissions": 0, 
-   "cancel": 0, 
-   "create": 1, 
-   "delete": 0, 
-   "email": 1, 
-   "export": 0, 
-   "if_owner": 0, 
-   "import": 0, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
-   "role": "Sales Manager", 
-   "set_user_permissions": 0, 
-   "share": 1, 
-   "submit": 0, 
+   "create": 1,
+   "email": 1,
+   "print": 1,
+   "read": 1,
+   "report": 1,
+   "role": "Sales Manager",
+   "share": 1,
    "write": 1
-  }, 
+  },
   {
-   "amend": 0, 
-   "apply_user_permissions": 0, 
-   "cancel": 0, 
-   "create": 0, 
-   "delete": 0, 
-   "email": 1, 
-   "export": 0, 
-   "if_owner": 0, 
-   "import": 0, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
-   "role": "Sales User", 
-   "set_user_permissions": 0, 
-   "share": 0, 
-   "submit": 0, 
-   "write": 0
-  }, 
+   "email": 1,
+   "print": 1,
+   "read": 1,
+   "report": 1,
+   "role": "Sales User"
+  },
   {
-   "amend": 0, 
-   "apply_user_permissions": 0, 
-   "cancel": 0, 
-   "create": 1, 
-   "delete": 0, 
-   "email": 1, 
-   "export": 0, 
-   "if_owner": 0, 
-   "import": 0, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
-   "role": "Sales Master Manager", 
-   "set_user_permissions": 0, 
-   "share": 1, 
-   "submit": 0, 
+   "create": 1,
+   "email": 1,
+   "print": 1,
+   "read": 1,
+   "report": 1,
+   "role": "Sales Master Manager",
+   "share": 1,
    "write": 1
   }
- ], 
- "quick_entry": 1, 
- "read_only": 0, 
- "read_only_onload": 0, 
- "track_seen": 0
+ ],
+ "quick_entry": 1,
+ "sort_field": "modified",
+ "sort_order": "DESC",
+ "states": [],
+ "translated_doctype": 1
 }
\ No newline at end of file
diff --git a/erpnext/selling/doctype/party_specific_item/party_specific_item.json b/erpnext/selling/doctype/party_specific_item/party_specific_item.json
index 32b5d47..a1f9902 100644
--- a/erpnext/selling/doctype/party_specific_item/party_specific_item.json
+++ b/erpnext/selling/doctype/party_specific_item/party_specific_item.json
@@ -1,5 +1,6 @@
 {
  "actions": [],
+ "allow_import": 1,
  "creation": "2021-08-27 19:28:07.559978",
  "doctype": "DocType",
  "editable_grid": 1,
@@ -51,7 +52,7 @@
  ],
  "index_web_pages_for_search": 1,
  "links": [],
- "modified": "2021-09-14 13:27:58.612334",
+ "modified": "2023-02-15 13:00:50.379713",
  "modified_by": "Administrator",
  "module": "Selling",
  "name": "Party Specific Item",
@@ -72,6 +73,7 @@
  ],
  "sort_field": "modified",
  "sort_order": "DESC",
+ "states": [],
  "title_field": "party",
  "track_changes": 1
 }
\ No newline at end of file
diff --git a/erpnext/selling/doctype/quotation/quotation.js b/erpnext/selling/doctype/quotation/quotation.js
index 6b42e4d..b348bd3 100644
--- a/erpnext/selling/doctype/quotation/quotation.js
+++ b/erpnext/selling/doctype/quotation/quotation.js
@@ -85,11 +85,15 @@
 		}
 
 		if (doc.docstatus == 1 && !["Lost", "Ordered"].includes(doc.status)) {
-			this.frm.add_custom_button(
-				__("Sales Order"),
-				this.frm.cscript["Make Sales Order"],
-				__("Create")
-			);
+			if (frappe.boot.sysdefaults.allow_sales_order_creation_for_expired_quotation
+				|| (!doc.valid_till)
+				|| frappe.datetime.get_diff(doc.valid_till, frappe.datetime.get_today()) >= 0) {
+					this.frm.add_custom_button(
+						__("Sales Order"),
+						this.frm.cscript["Make Sales Order"],
+						__("Create")
+					);
+				}
 
 			if(doc.status!=="Ordered") {
 				this.frm.add_custom_button(__('Set as Lost'), () => {
diff --git a/erpnext/selling/doctype/quotation/quotation.py b/erpnext/selling/doctype/quotation/quotation.py
index 6836d56..063813b 100644
--- a/erpnext/selling/doctype/quotation/quotation.py
+++ b/erpnext/selling/doctype/quotation/quotation.py
@@ -195,6 +195,17 @@
 
 @frappe.whitelist()
 def make_sales_order(source_name: str, target_doc=None):
+	if not frappe.db.get_singles_value(
+		"Selling Settings", "allow_sales_order_creation_for_expired_quotation"
+	):
+		quotation = frappe.db.get_value(
+			"Quotation", source_name, ["transaction_date", "valid_till"], as_dict=1
+		)
+		if quotation.valid_till and (
+			quotation.valid_till < quotation.transaction_date or quotation.valid_till < getdate(nowdate())
+		):
+			frappe.throw(_("Validity period of this quotation has ended."))
+
 	return _make_sales_order(source_name, target_doc)
 
 
diff --git a/erpnext/selling/doctype/quotation/test_quotation.py b/erpnext/selling/doctype/quotation/test_quotation.py
index 5aaba4f..cdf5f5d 100644
--- a/erpnext/selling/doctype/quotation/test_quotation.py
+++ b/erpnext/selling/doctype/quotation/test_quotation.py
@@ -144,11 +144,21 @@
 	def test_so_from_expired_quotation(self):
 		from erpnext.selling.doctype.quotation.quotation import make_sales_order
 
+		frappe.db.set_single_value(
+			"Selling Settings", "allow_sales_order_creation_for_expired_quotation", 0
+		)
+
 		quotation = frappe.copy_doc(test_records[0])
 		quotation.valid_till = add_days(nowdate(), -1)
 		quotation.insert()
 		quotation.submit()
 
+		self.assertRaises(frappe.ValidationError, make_sales_order, quotation.name)
+
+		frappe.db.set_single_value(
+			"Selling Settings", "allow_sales_order_creation_for_expired_quotation", 1
+		)
+
 		make_sales_order(quotation.name)
 
 	def test_shopping_cart_without_website_item(self):
diff --git a/erpnext/selling/doctype/sales_partner_type/sales_partner_type.json b/erpnext/selling/doctype/sales_partner_type/sales_partner_type.json
index e7dd0d8..a9b500a 100644
--- a/erpnext/selling/doctype/sales_partner_type/sales_partner_type.json
+++ b/erpnext/selling/doctype/sales_partner_type/sales_partner_type.json
@@ -1,94 +1,47 @@
 {
- "allow_copy": 0, 
- "allow_guest_to_view": 0, 
- "allow_import": 0, 
- "allow_rename": 0, 
- "autoname": "field:sales_partner_type", 
- "beta": 0, 
- "creation": "2018-06-11 13:15:57.404716", 
- "custom": 0, 
- "docstatus": 0, 
- "doctype": "DocType", 
- "document_type": "", 
- "editable_grid": 1, 
- "engine": "InnoDB", 
+ "actions": [],
+ "autoname": "field:sales_partner_type",
+ "creation": "2018-06-11 13:15:57.404716",
+ "doctype": "DocType",
+ "editable_grid": 1,
+ "engine": "InnoDB",
+ "field_order": [
+  "sales_partner_type"
+ ],
  "fields": [
   {
-   "allow_bulk_edit": 0, 
-   "allow_in_quick_entry": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "sales_partner_type", 
-   "fieldtype": "Data", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 1, 
-   "in_standard_filter": 0, 
-   "label": "Sales Partner Type", 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 0, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 1, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "translatable": 0, 
-   "unique": 0
+   "fieldname": "sales_partner_type",
+   "fieldtype": "Data",
+   "in_list_view": 1,
+   "label": "Sales Partner Type",
+   "reqd": 1,
+   "unique": 1
   }
- ], 
- "has_web_view": 0, 
- "hide_heading": 0, 
- "hide_toolbar": 0, 
- "idx": 0, 
- "image_view": 0, 
- "in_create": 0, 
- "is_submittable": 0, 
- "issingle": 0, 
- "istable": 0, 
- "max_attachments": 0, 
- "modified": "2018-06-11 13:45:13.554307", 
- "modified_by": "Administrator", 
- "module": "Selling", 
- "name": "Sales Partner Type", 
- "name_case": "", 
- "owner": "Administrator", 
+ ],
+ "links": [],
+ "modified": "2023-02-10 01:00:20.110800",
+ "modified_by": "Administrator",
+ "module": "Selling",
+ "name": "Sales Partner Type",
+ "naming_rule": "By fieldname",
+ "owner": "Administrator",
  "permissions": [
   {
-   "amend": 0, 
-   "cancel": 0, 
-   "create": 1, 
-   "delete": 1, 
-   "email": 1, 
-   "export": 1, 
-   "if_owner": 0, 
-   "import": 0, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
-   "role": "System Manager", 
-   "set_user_permissions": 0, 
-   "share": 1, 
-   "submit": 0, 
+   "create": 1,
+   "delete": 1,
+   "email": 1,
+   "export": 1,
+   "print": 1,
+   "read": 1,
+   "report": 1,
+   "role": "System Manager",
+   "share": 1,
    "write": 1
   }
- ], 
- "quick_entry": 1, 
- "read_only": 0, 
- "read_only_onload": 0, 
- "show_name_in_global_search": 0, 
- "sort_field": "modified", 
- "sort_order": "DESC", 
- "track_changes": 0, 
- "track_seen": 0
+ ],
+ "quick_entry": 1,
+ "sort_field": "modified",
+ "sort_order": "DESC",
+ "states": [],
+ "translated_doctype": 1
 }
\ No newline at end of file
diff --git a/erpnext/selling/doctype/selling_settings/selling_settings.json b/erpnext/selling/doctype/selling_settings/selling_settings.json
index 2abb169..6ea66a0 100644
--- a/erpnext/selling/doctype/selling_settings/selling_settings.json
+++ b/erpnext/selling/doctype/selling_settings/selling_settings.json
@@ -27,6 +27,7 @@
   "column_break_5",
   "allow_multiple_items",
   "allow_against_multiple_purchase_orders",
+  "allow_sales_order_creation_for_expired_quotation",
   "hide_tax_id",
   "enable_discount_accounting"
  ],
@@ -172,6 +173,12 @@
    "fieldname": "enable_discount_accounting",
    "fieldtype": "Check",
    "label": "Enable Discount Accounting for Selling"
+  },
+  {
+   "default": "0",
+   "fieldname": "allow_sales_order_creation_for_expired_quotation",
+   "fieldtype": "Check",
+   "label": "Allow Sales Order Creation For Expired Quotation"
   }
  ],
  "icon": "fa fa-cog",
@@ -179,7 +186,7 @@
  "index_web_pages_for_search": 1,
  "issingle": 1,
  "links": [],
- "modified": "2022-05-31 19:39:48.398738",
+ "modified": "2023-02-04 12:37:53.380857",
  "modified_by": "Administrator",
  "module": "Selling",
  "name": "Selling Settings",
diff --git a/erpnext/selling/report/item_wise_sales_history/item_wise_sales_history.py b/erpnext/selling/report/item_wise_sales_history/item_wise_sales_history.py
index 44c4d54..2624db3 100644
--- a/erpnext/selling/report/item_wise_sales_history/item_wise_sales_history.py
+++ b/erpnext/selling/report/item_wise_sales_history/item_wise_sales_history.py
@@ -216,7 +216,7 @@
 	)
 
 	if filters.get("item_group"):
-		query = query.where(db_so_item.item_group == frappe.db.escape(filters.item_group))
+		query = query.where(db_so_item.item_group == filters.item_group)
 
 	if filters.get("from_date"):
 		query = query.where(db_so.transaction_date >= filters.from_date)
@@ -225,7 +225,7 @@
 		query = query.where(db_so.transaction_date <= filters.to_date)
 
 	if filters.get("item_code"):
-		query = query.where(db_so_item.item_group == frappe.db.escape(filters.item_code))
+		query = query.where(db_so_item.item_code == filters.item_code)
 
 	if filters.get("customer"):
 		query = query.where(db_so.customer == filters.customer)
diff --git a/erpnext/selling/report/payment_terms_status_for_sales_order/payment_terms_status_for_sales_order.js b/erpnext/selling/report/payment_terms_status_for_sales_order/payment_terms_status_for_sales_order.js
index 991ac71..990d736 100644
--- a/erpnext/selling/report/payment_terms_status_for_sales_order/payment_terms_status_for_sales_order.js
+++ b/erpnext/selling/report/payment_terms_status_for_sales_order/payment_terms_status_for_sales_order.js
@@ -103,6 +103,11 @@
 				return options
 			}
 		},
+		{
+			"fieldname":"only_immediate_upcoming_term",
+			"label": __("Show only the Immediate Upcoming Term"),
+			"fieldtype": "Check",
+		},
 	]
 	return filters;
 }
diff --git a/erpnext/selling/report/payment_terms_status_for_sales_order/payment_terms_status_for_sales_order.py b/erpnext/selling/report/payment_terms_status_for_sales_order/payment_terms_status_for_sales_order.py
index 8bf5686..3682c5f 100644
--- a/erpnext/selling/report/payment_terms_status_for_sales_order/payment_terms_status_for_sales_order.py
+++ b/erpnext/selling/report/payment_terms_status_for_sales_order/payment_terms_status_for_sales_order.py
@@ -4,6 +4,7 @@
 import frappe
 from frappe import _, qb, query_builder
 from frappe.query_builder import Criterion, functions
+from frappe.utils.dateutils import getdate
 
 
 def get_columns():
@@ -208,6 +209,7 @@
 		)
 		.where(
 			(so.docstatus == 1)
+			& (so.status.isin(["To Deliver and Bill", "To Bill"]))
 			& (so.payment_terms_template != "NULL")
 			& (so.company == conditions.company)
 			& (so.transaction_date[conditions.start_date : conditions.end_date])
@@ -291,6 +293,18 @@
 	return sales_orders
 
 
+def filter_for_immediate_upcoming_term(filters, sales_orders):
+	if filters.only_immediate_upcoming_term and sales_orders:
+		immediate_term_found = set()
+		filtered_data = []
+		for order in sales_orders:
+			if order.name not in immediate_term_found and order.due_date > getdate():
+				filtered_data.append(order)
+				immediate_term_found.add(order.name)
+		return filtered_data
+	return sales_orders
+
+
 def execute(filters=None):
 	columns = get_columns()
 	sales_orders, so_invoices = get_so_with_invoices(filters)
@@ -298,6 +312,8 @@
 
 	sales_orders = filter_on_calculated_status(filters, sales_orders)
 
+	sales_orders = filter_for_immediate_upcoming_term(filters, sales_orders)
+
 	prepare_chart(sales_orders)
 
 	data = sales_orders
diff --git a/erpnext/selling/report/sales_order_analysis/sales_order_analysis.py b/erpnext/selling/report/sales_order_analysis/sales_order_analysis.py
index 63d339a..2969123 100644
--- a/erpnext/selling/report/sales_order_analysis/sales_order_analysis.py
+++ b/erpnext/selling/report/sales_order_analysis/sales_order_analysis.py
@@ -175,7 +175,9 @@
 				# update existing entry
 				so_row = sales_order_map[so_name]
 				so_row["required_date"] = max(getdate(so_row["delivery_date"]), getdate(row["delivery_date"]))
-				so_row["delay"] = min(so_row["delay"], row["delay"])
+				so_row["delay"] = (
+					min(so_row["delay"], row["delay"]) if row["delay"] and so_row["delay"] else so_row["delay"]
+				)
 
 				# sum numeric columns
 				fields = [
diff --git a/erpnext/setup/doctype/designation/designation.json b/erpnext/setup/doctype/designation/designation.json
index 2cbbb04..a5b2ac9 100644
--- a/erpnext/setup/doctype/designation/designation.json
+++ b/erpnext/setup/doctype/designation/designation.json
@@ -31,7 +31,7 @@
  "icon": "fa fa-bookmark",
  "idx": 1,
  "links": [],
- "modified": "2022-06-28 17:10:26.853753",
+ "modified": "2023-02-10 01:53:41.319386",
  "modified_by": "Administrator",
  "module": "Setup",
  "name": "Designation",
@@ -58,5 +58,6 @@
  "show_name_in_global_search": 1,
  "sort_field": "modified",
  "sort_order": "ASC",
- "states": []
+ "states": [],
+ "translated_doctype": 1
 }
\ No newline at end of file
diff --git a/erpnext/setup/doctype/employee/employee.py b/erpnext/setup/doctype/employee/employee.py
index facefa3..ece5a7d 100755
--- a/erpnext/setup/doctype/employee/employee.py
+++ b/erpnext/setup/doctype/employee/employee.py
@@ -8,7 +8,6 @@
 	get_doc_permissions,
 	has_permission,
 	remove_user_permission,
-	set_user_permission_if_allowed,
 )
 from frappe.utils import cstr, getdate, today, validate_email_address
 from frappe.utils.nestedset import NestedSet
@@ -96,7 +95,7 @@
 			return
 
 		add_user_permission("Employee", self.name, self.user_id)
-		set_user_permission_if_allowed("Company", self.company, self.user_id)
+		add_user_permission("Company", self.company, self.user_id)
 
 	def update_user(self):
 		# add employee role if missing
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 4256a7d..481a3a5 100644
--- a/erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py
+++ b/erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py
@@ -3,13 +3,17 @@
 
 
 import frappe
-from frappe import _
+from frappe import _, qb
 from frappe.desk.notifications import clear_notifications
 from frappe.model.document import Document
-from frappe.utils import cint
+from frappe.utils import cint, create_batch
 
 
 class TransactionDeletionRecord(Document):
+	def __init__(self, *args, **kwargs):
+		super(TransactionDeletionRecord, self).__init__(*args, **kwargs)
+		self.batch_size = 5000
+
 	def validate(self):
 		frappe.only_for("System Manager")
 		self.validate_doctypes_to_be_ignored()
@@ -155,8 +159,9 @@
 			"DocField", filters={"fieldtype": "Table", "parent": doctype}, pluck="options"
 		)
 
-		for table in child_tables:
-			frappe.db.delete(table, {"parent": ["in", parent_docs_to_be_deleted]})
+		for batch in create_batch(parent_docs_to_be_deleted, self.batch_size):
+			for table in child_tables:
+				frappe.db.delete(table, {"parent": ["in", batch]})
 
 	def delete_docs_linked_with_specified_company(self, doctype, company_fieldname):
 		frappe.db.delete(doctype, {company_fieldname: self.company})
@@ -181,13 +186,16 @@
 		frappe.db.sql("""update `tabSeries` set current = %s where name=%s""", (last, prefix))
 
 	def delete_version_log(self, doctype, company_fieldname):
-		frappe.db.sql(
-			"""delete from `tabVersion` where ref_doctype=%s and docname in
-			(select name from `tab{0}` where `{1}`=%s)""".format(
-				doctype, company_fieldname
-			),
-			(doctype, self.company),
-		)
+		dt = qb.DocType(doctype)
+		names = qb.from_(dt).select(dt.name).where(dt[company_fieldname] == self.company).run(as_list=1)
+		names = [x[0] for x in names]
+
+		if names:
+			versions = qb.DocType("Version")
+			for batch in create_batch(names, self.batch_size):
+				qb.from_(versions).delete().where(
+					(versions.ref_doctype == doctype) & (versions.docname.isin(batch))
+				).run()
 
 	def delete_communications(self, doctype, company_fieldname):
 		reference_docs = frappe.get_all(doctype, filters={company_fieldname: self.company})
@@ -199,7 +207,8 @@
 		)
 		communication_names = [c.name for c in communications]
 
-		frappe.delete_doc("Communication", communication_names, ignore_permissions=True)
+		for batch in create_batch(communication_names, self.batch_size):
+			frappe.delete_doc("Communication", batch, ignore_permissions=True)
 
 
 @frappe.whitelist()
diff --git a/erpnext/setup/setup_wizard/data/country_wise_tax.json b/erpnext/setup/setup_wizard/data/country_wise_tax.json
index 45e39c5..5750914 100644
--- a/erpnext/setup/setup_wizard/data/country_wise_tax.json
+++ b/erpnext/setup/setup_wizard/data/country_wise_tax.json
@@ -4015,34 +4015,6 @@
 			"tax_rate": 18.00
 		}
 	},
-
-	"Saudi Arabia": {
-		"KSA VAT 15%": {
-			"account_name": "VAT 15%",
-			"tax_rate": 15.00
-		},
-		"KSA VAT 5%": {
-			"account_name": "VAT 5%",
-			"tax_rate": 5.00
-		},
-		"KSA VAT Zero": {
-			"account_name": "VAT Zero",
-			"tax_rate": 0.00
-		},
-		"KSA VAT Exempted": {
-			"account_name": "VAT Exempted",
-			"tax_rate": 0.00
-		},
-		"KSA Excise 50%": {
-			"account_name": "Excise 50%",
-			"tax_rate": 50.00
-		},
-		"KSA Excise 100%": {
-			"account_name": "Excise 100%",
-			"tax_rate": 100.00
-		}
-	},
-
 	"Serbia": {
 		"Serbia Tax": {
 			"account_name": "VAT",
diff --git a/erpnext/setup/setup_wizard/data/designation.txt b/erpnext/setup/setup_wizard/data/designation.txt
new file mode 100644
index 0000000..4c6d7bd
--- /dev/null
+++ b/erpnext/setup/setup_wizard/data/designation.txt
@@ -0,0 +1,31 @@
+Accountant
+Administrative Assistant
+Administrative Officer
+Analyst
+Associate
+Business Analyst
+Business Development Manager
+Consultant
+Chief Executive Officer
+Chief Financial Officer
+Chief Operating Officer
+Chief Technology Officer
+Customer Service Representative
+Designer
+Engineer
+Executive Assistant
+Finance Manager
+HR Manager
+Head of Marketing and Sales
+Manager
+Managing Director
+Marketing Manager
+Marketing Specialist
+President
+Product Manager
+Project Manager
+Researcher
+Sales Representative
+Secretary
+Software Developer
+Vice President
diff --git a/erpnext/setup/setup_wizard/data/industry_type.py b/erpnext/setup/setup_wizard/data/industry_type.py
deleted file mode 100644
index 0bc3f32..0000000
--- a/erpnext/setup/setup_wizard/data/industry_type.py
+++ /dev/null
@@ -1,57 +0,0 @@
-from frappe import _
-
-
-def get_industry_types():
-	return [
-		_("Accounting"),
-		_("Advertising"),
-		_("Aerospace"),
-		_("Agriculture"),
-		_("Airline"),
-		_("Apparel & Accessories"),
-		_("Automotive"),
-		_("Banking"),
-		_("Biotechnology"),
-		_("Broadcasting"),
-		_("Brokerage"),
-		_("Chemical"),
-		_("Computer"),
-		_("Consulting"),
-		_("Consumer Products"),
-		_("Cosmetics"),
-		_("Defense"),
-		_("Department Stores"),
-		_("Education"),
-		_("Electronics"),
-		_("Energy"),
-		_("Entertainment & Leisure"),
-		_("Executive Search"),
-		_("Financial Services"),
-		_("Food, Beverage & Tobacco"),
-		_("Grocery"),
-		_("Health Care"),
-		_("Internet Publishing"),
-		_("Investment Banking"),
-		_("Legal"),
-		_("Manufacturing"),
-		_("Motion Picture & Video"),
-		_("Music"),
-		_("Newspaper Publishers"),
-		_("Online Auctions"),
-		_("Pension Funds"),
-		_("Pharmaceuticals"),
-		_("Private Equity"),
-		_("Publishing"),
-		_("Real Estate"),
-		_("Retail & Wholesale"),
-		_("Securities & Commodity Exchanges"),
-		_("Service"),
-		_("Soap & Detergent"),
-		_("Software"),
-		_("Sports"),
-		_("Technology"),
-		_("Telecommunications"),
-		_("Television"),
-		_("Transportation"),
-		_("Venture Capital"),
-	]
diff --git a/erpnext/setup/setup_wizard/data/industry_type.txt b/erpnext/setup/setup_wizard/data/industry_type.txt
new file mode 100644
index 0000000..eadc689
--- /dev/null
+++ b/erpnext/setup/setup_wizard/data/industry_type.txt
@@ -0,0 +1,51 @@
+Accounting
+Advertising
+Aerospace
+Agriculture
+Airline
+Apparel & Accessories
+Automotive
+Banking
+Biotechnology
+Broadcasting
+Brokerage
+Chemical
+Computer
+Consulting
+Consumer Products
+Cosmetics
+Defense
+Department Stores
+Education
+Electronics
+Energy
+Entertainment & Leisure
+Executive Search
+Financial Services
+Food, Beverage & Tobacco
+Grocery
+Health Care
+Internet Publishing
+Investment Banking
+Legal
+Manufacturing
+Motion Picture & Video
+Music
+Newspaper Publishers
+Online Auctions
+Pension Funds
+Pharmaceuticals
+Private Equity
+Publishing
+Real Estate
+Retail & Wholesale
+Securities & Commodity Exchanges
+Service
+Soap & Detergent
+Software
+Sports
+Technology
+Telecommunications
+Television
+Transportation
+Venture Capital
diff --git a/erpnext/setup/setup_wizard/data/lead_source.txt b/erpnext/setup/setup_wizard/data/lead_source.txt
new file mode 100644
index 0000000..00ca180
--- /dev/null
+++ b/erpnext/setup/setup_wizard/data/lead_source.txt
@@ -0,0 +1,10 @@
+Existing Customer
+Reference
+Advertisement
+Cold Calling
+Exhibition
+Supplier Reference
+Mass Mailing
+Customer's Vendor
+Campaign
+Walk In
diff --git a/erpnext/setup/setup_wizard/data/sales_partner_type.txt b/erpnext/setup/setup_wizard/data/sales_partner_type.txt
new file mode 100644
index 0000000..68e9b9a
--- /dev/null
+++ b/erpnext/setup/setup_wizard/data/sales_partner_type.txt
@@ -0,0 +1,7 @@
+Channel Partner
+Distributor
+Dealer
+Agent
+Retailer
+Implementation Partner
+Reseller
diff --git a/erpnext/setup/setup_wizard/data/sales_stage.txt b/erpnext/setup/setup_wizard/data/sales_stage.txt
new file mode 100644
index 0000000..2808ce7
--- /dev/null
+++ b/erpnext/setup/setup_wizard/data/sales_stage.txt
@@ -0,0 +1,8 @@
+Prospecting
+Qualification
+Needs Analysis
+Value Proposition
+Identifying Decision Makers
+Perception Analysis
+Proposal/Price Quote
+Negotiation/Review
diff --git a/erpnext/setup/setup_wizard/operations/install_fixtures.py b/erpnext/setup/setup_wizard/operations/install_fixtures.py
index 1f8c0d6..6bc1771 100644
--- a/erpnext/setup/setup_wizard/operations/install_fixtures.py
+++ b/erpnext/setup/setup_wizard/operations/install_fixtures.py
@@ -4,6 +4,7 @@
 
 import json
 import os
+from pathlib import Path
 
 import frappe
 from frappe import _
@@ -16,28 +17,10 @@
 from erpnext.accounts.doctype.account.account import RootNotEditable
 from erpnext.regional.address_template.setup import set_up_address_templates
 
-default_lead_sources = [
-	"Existing Customer",
-	"Reference",
-	"Advertisement",
-	"Cold Calling",
-	"Exhibition",
-	"Supplier Reference",
-	"Mass Mailing",
-	"Customer's Vendor",
-	"Campaign",
-	"Walk In",
-]
 
-default_sales_partner_type = [
-	"Channel Partner",
-	"Distributor",
-	"Dealer",
-	"Agent",
-	"Retailer",
-	"Implementation Partner",
-	"Reseller",
-]
+def read_lines(filename: str) -> list[str]:
+	"""Return a list of lines from a file in the data directory."""
+	return (Path(__file__).parent.parent / "data" / filename).read_text().splitlines()
 
 
 def install(country=None):
@@ -85,7 +68,11 @@
 		# Stock Entry Type
 		{"doctype": "Stock Entry Type", "name": "Material Issue", "purpose": "Material Issue"},
 		{"doctype": "Stock Entry Type", "name": "Material Receipt", "purpose": "Material Receipt"},
-		{"doctype": "Stock Entry Type", "name": "Material Transfer", "purpose": "Material Transfer"},
+		{
+			"doctype": "Stock Entry Type",
+			"name": "Material Transfer",
+			"purpose": "Material Transfer",
+		},
 		{"doctype": "Stock Entry Type", "name": "Manufacture", "purpose": "Manufacture"},
 		{"doctype": "Stock Entry Type", "name": "Repack", "purpose": "Repack"},
 		{
@@ -103,22 +90,6 @@
 			"name": "Material Consumption for Manufacture",
 			"purpose": "Material Consumption for Manufacture",
 		},
-		# Designation
-		{"doctype": "Designation", "designation_name": _("CEO")},
-		{"doctype": "Designation", "designation_name": _("Manager")},
-		{"doctype": "Designation", "designation_name": _("Analyst")},
-		{"doctype": "Designation", "designation_name": _("Engineer")},
-		{"doctype": "Designation", "designation_name": _("Accountant")},
-		{"doctype": "Designation", "designation_name": _("Secretary")},
-		{"doctype": "Designation", "designation_name": _("Associate")},
-		{"doctype": "Designation", "designation_name": _("Administrative Officer")},
-		{"doctype": "Designation", "designation_name": _("Business Development Manager")},
-		{"doctype": "Designation", "designation_name": _("HR Manager")},
-		{"doctype": "Designation", "designation_name": _("Project Manager")},
-		{"doctype": "Designation", "designation_name": _("Head of Marketing and Sales")},
-		{"doctype": "Designation", "designation_name": _("Software Developer")},
-		{"doctype": "Designation", "designation_name": _("Designer")},
-		{"doctype": "Designation", "designation_name": _("Researcher")},
 		# territory: with two default territories, one for home country and one named Rest of the World
 		{
 			"doctype": "Territory",
@@ -291,28 +262,18 @@
 		{"doctype": "Market Segment", "market_segment": _("Lower Income")},
 		{"doctype": "Market Segment", "market_segment": _("Middle Income")},
 		{"doctype": "Market Segment", "market_segment": _("Upper Income")},
-		# Sales Stages
-		{"doctype": "Sales Stage", "stage_name": _("Prospecting")},
-		{"doctype": "Sales Stage", "stage_name": _("Qualification")},
-		{"doctype": "Sales Stage", "stage_name": _("Needs Analysis")},
-		{"doctype": "Sales Stage", "stage_name": _("Value Proposition")},
-		{"doctype": "Sales Stage", "stage_name": _("Identifying Decision Makers")},
-		{"doctype": "Sales Stage", "stage_name": _("Perception Analysis")},
-		{"doctype": "Sales Stage", "stage_name": _("Proposal/Price Quote")},
-		{"doctype": "Sales Stage", "stage_name": _("Negotiation/Review")},
 		# Warehouse Type
 		{"doctype": "Warehouse Type", "name": "Transit"},
 	]
 
-	from erpnext.setup.setup_wizard.data.industry_type import get_industry_types
-
-	records += [{"doctype": "Industry Type", "industry": d} for d in get_industry_types()]
-	# records += [{"doctype":"Operation", "operation": d} for d in get_operations()]
-	records += [{"doctype": "Lead Source", "source_name": _(d)} for d in default_lead_sources]
-
-	records += [
-		{"doctype": "Sales Partner Type", "sales_partner_type": _(d)} for d in default_sales_partner_type
-	]
+	for doctype, title_field, filename in (
+		("Designation", "designation_name", "designation.txt"),
+		("Sales Stage", "stage_name", "sales_stage.txt"),
+		("Industry Type", "industry", "industry_type.txt"),
+		("Lead Source", "source_name", "lead_source.txt"),
+		("Sales Partner Type", "sales_partner_type", "sales_partner_type.txt"),
+	):
+		records += [{"doctype": doctype, title_field: title} for title in read_lines(filename)]
 
 	base_path = frappe.get_app_path("erpnext", "stock", "doctype")
 	response = frappe.read_file(
@@ -397,7 +358,8 @@
 			frappe.get_doc({"doctype": "UOM Category", "category_name": _(d.get("category"))}).db_insert()
 
 		if not frappe.db.exists(
-			"UOM Conversion Factor", {"from_uom": _(d.get("from_uom")), "to_uom": _(d.get("to_uom"))}
+			"UOM Conversion Factor",
+			{"from_uom": _(d.get("from_uom")), "to_uom": _(d.get("to_uom"))},
 		):
 			frappe.get_doc(
 				{
@@ -535,7 +497,8 @@
 
 	company_name = args.get("company_name")
 	bank_account_group = frappe.db.get_value(
-		"Account", {"account_type": "Bank", "is_group": 1, "root_type": "Asset", "company": company_name}
+		"Account",
+		{"account_type": "Bank", "is_group": 1, "root_type": "Asset", "company": company_name},
 	)
 	if bank_account_group:
 		bank_account = frappe.get_doc(
diff --git a/erpnext/startup/boot.py b/erpnext/startup/boot.py
index bb120ea..62936fc 100644
--- a/erpnext/startup/boot.py
+++ b/erpnext/startup/boot.py
@@ -25,6 +25,12 @@
 			frappe.db.get_single_value("CRM Settings", "default_valid_till")
 		)
 
+		bootinfo.sysdefaults.allow_sales_order_creation_for_expired_quotation = cint(
+			frappe.db.get_single_value(
+				"Selling Settings", "allow_sales_order_creation_for_expired_quotation"
+			)
+		)
+
 		# if no company, show a dialog box to create a new company
 		bootinfo.customer_count = frappe.db.sql("""SELECT count(*) FROM `tabCustomer`""")[0][0]
 
diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.js b/erpnext/stock/doctype/delivery_note/delivery_note.js
index ea3cf19..ae56645 100644
--- a/erpnext/stock/doctype/delivery_note/delivery_note.js
+++ b/erpnext/stock/doctype/delivery_note/delivery_note.js
@@ -97,12 +97,12 @@
 		}
 
 		if (frm.doc.docstatus == 1 && !frm.doc.inter_company_reference) {
-			let internal = me.frm.doc.is_internal_customer;
+			let internal = frm.doc.is_internal_customer;
 			if (internal) {
-				let button_label = (me.frm.doc.company === me.frm.doc.represents_company) ? "Internal Purchase Receipt" :
+				let button_label = (frm.doc.company === frm.doc.represents_company) ? "Internal Purchase Receipt" :
 					"Inter Company Purchase Receipt";
 
-				me.frm.add_custom_button(button_label, function() {
+				frm.add_custom_button(__(button_label), function() {
 					frappe.model.open_mapped_doc({
 						method: 'erpnext.stock.doctype.delivery_note.delivery_note.make_inter_company_purchase_receipt',
 						frm: frm,
diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.json b/erpnext/stock/doctype/delivery_note/delivery_note.json
index 165a56b..0c1f820 100644
--- a/erpnext/stock/doctype/delivery_note/delivery_note.json
+++ b/erpnext/stock/doctype/delivery_note/delivery_note.json
@@ -521,6 +521,7 @@
    "allow_bulk_edit": 1,
    "fieldname": "items",
    "fieldtype": "Table",
+   "label": "Delivery Note Item",
    "oldfieldname": "delivery_note_details",
    "oldfieldtype": "Table",
    "options": "Delivery Note Item",
@@ -666,6 +667,7 @@
   {
    "fieldname": "taxes",
    "fieldtype": "Table",
+   "label": "Sales Taxes and Charges",
    "oldfieldname": "other_charges",
    "oldfieldtype": "Table",
    "options": "Sales Taxes and Charges"
@@ -1401,7 +1403,7 @@
  "idx": 146,
  "is_submittable": 1,
  "links": [],
- "modified": "2022-12-12 18:38:53.067799",
+ "modified": "2023-02-14 04:45:44.179670",
  "modified_by": "Administrator",
  "module": "Stock",
  "name": "Delivery Note",
diff --git a/erpnext/stock/doctype/delivery_note/delivery_note_list.js b/erpnext/stock/doctype/delivery_note/delivery_note_list.js
index 9e6f3bc..6ff3ed3 100644
--- a/erpnext/stock/doctype/delivery_note/delivery_note_list.js
+++ b/erpnext/stock/doctype/delivery_note/delivery_note_list.js
@@ -14,7 +14,7 @@
 			return [__("Completed"), "green", "per_billed,=,100"];
 		}
 	},
-	onload: function (listview) {
+	onload: function (doclist) {
 		const action = () => {
 			const selected_docs = doclist.get_checked_items();
 			const docnames = doclist.get_checked_items(true);
@@ -56,14 +56,14 @@
 
 		// doclist.page.add_actions_menu_item(__('Create Delivery Trip'), action, false);
 
-		listview.page.add_action_item(__('Create Delivery Trip'), action);
+		doclist.page.add_action_item(__('Create Delivery Trip'), action);
 
-		listview.page.add_action_item(__("Sales Invoice"), ()=>{
-			erpnext.bulk_transaction_processing.create(listview, "Delivery Note", "Sales Invoice");
+		doclist.page.add_action_item(__("Sales Invoice"), ()=>{
+			erpnext.bulk_transaction_processing.create(doclist, "Delivery Note", "Sales Invoice");
 		});
 
-		listview.page.add_action_item(__("Packaging Slip From Delivery Note"), ()=>{
-			erpnext.bulk_transaction_processing.create(listview, "Delivery Note", "Packing Slip");
+		doclist.page.add_action_item(__("Packaging Slip From Delivery Note"), ()=>{
+			erpnext.bulk_transaction_processing.create(doclist, "Delivery Note", "Packing Slip");
 		});
 	}
 };
diff --git a/erpnext/stock/doctype/item/item.json b/erpnext/stock/doctype/item/item.json
index 629e50e..34adbeb 100644
--- a/erpnext/stock/doctype/item/item.json
+++ b/erpnext/stock/doctype/item/item.json
@@ -706,7 +706,7 @@
    "depends_on": "enable_deferred_expense",
    "fieldname": "no_of_months_exp",
    "fieldtype": "Int",
-   "label": "No of Months"
+   "label": "No of Months (Expense)"
   },
   {
    "collapsible": 1,
@@ -911,7 +911,7 @@
  "index_web_pages_for_search": 1,
  "links": [],
  "make_attachments_public": 1,
- "modified": "2023-01-07 22:45:00.341745",
+ "modified": "2023-02-14 04:48:26.343620",
  "modified_by": "Administrator",
  "module": "Stock",
  "name": "Item",
diff --git a/erpnext/stock/doctype/item/item.py b/erpnext/stock/doctype/item/item.py
index 686e6cb..c06700a 100644
--- a/erpnext/stock/doctype/item/item.py
+++ b/erpnext/stock/doctype/item/item.py
@@ -358,7 +358,7 @@
 					check_list.append(d.item_tax_template)
 
 	def validate_barcode(self):
-		from stdnum import ean
+		import barcodenumber
 
 		if len(self.barcodes) > 0:
 			for item_barcode in self.barcodes:
@@ -376,19 +376,16 @@
 					item_barcode.barcode_type = (
 						"" if item_barcode.barcode_type not in options else item_barcode.barcode_type
 					)
-					if item_barcode.barcode_type and item_barcode.barcode_type.upper() in (
-						"EAN",
-						"UPC-A",
-						"EAN-13",
-						"EAN-8",
-					):
-						if not ean.is_valid(item_barcode.barcode):
-							frappe.throw(
-								_("Barcode {0} is not a valid {1} code").format(
-									item_barcode.barcode, item_barcode.barcode_type
-								),
-								InvalidBarcode,
-							)
+					if item_barcode.barcode_type:
+						barcode_type = convert_erpnext_to_barcodenumber(item_barcode.barcode_type.upper())
+						if barcode_type in barcodenumber.barcodes():
+							if not barcodenumber.check_code(barcode_type, item_barcode.barcode):
+								frappe.throw(
+									_("Barcode {0} is not a valid {1} code").format(
+										item_barcode.barcode, item_barcode.barcode_type
+									),
+									InvalidBarcode,
+								)
 
 	def validate_warehouse_for_reorder(self):
 		"""Validate Reorder level table for duplicate and conditional mandatory"""
@@ -985,6 +982,22 @@
 				)
 
 
+def convert_erpnext_to_barcodenumber(erpnext_number):
+	convert = {
+		"UPC-A": "UPCA",
+		"CODE-39": "CODE39",
+		"EAN": "EAN13",
+		"EAN-12": "EAN",
+		"EAN-8": "EAN8",
+		"ISBN-10": "ISBN10",
+		"ISBN-13": "ISBN13",
+	}
+	if erpnext_number in convert:
+		return convert[erpnext_number]
+	else:
+		return erpnext_number
+
+
 def make_item_price(item, price_list_name, item_price):
 	frappe.get_doc(
 		{
diff --git a/erpnext/stock/doctype/item/test_item.py b/erpnext/stock/doctype/item/test_item.py
index 53f6b7f..67ed90d 100644
--- a/erpnext/stock/doctype/item/test_item.py
+++ b/erpnext/stock/doctype/item/test_item.py
@@ -579,6 +579,19 @@
 			{
 				"barcode": "ARBITRARY_TEXT",
 			},
+			{"barcode": "72527273070", "barcode_type": "UPC-A"},
+			{"barcode": "123456", "barcode_type": "CODE-39"},
+			{"barcode": "401268452363", "barcode_type": "EAN-12"},
+			{"barcode": "90311017", "barcode_type": "EAN-8"},
+			{"barcode": "0123456789012", "barcode_type": "GS1"},
+			{"barcode": "2211564566668", "barcode_type": "GTIN"},
+			{"barcode": "0256480249", "barcode_type": "ISBN"},
+			{"barcode": "0192552570", "barcode_type": "ISBN-10"},
+			{"barcode": "9781234567897", "barcode_type": "ISBN-13"},
+			{"barcode": "9771234567898", "barcode_type": "ISSN"},
+			{"barcode": "4581171967072", "barcode_type": "JAN"},
+			{"barcode": "12345678", "barcode_type": "PZN"},
+			{"barcode": "725272730706", "barcode_type": "UPC"},
 		]
 		create_item(item_code)
 		for barcode_properties in barcode_properties_list:
diff --git a/erpnext/stock/doctype/item_barcode/item_barcode.json b/erpnext/stock/doctype/item_barcode/item_barcode.json
index bda1218..d9a8347 100644
--- a/erpnext/stock/doctype/item_barcode/item_barcode.json
+++ b/erpnext/stock/doctype/item_barcode/item_barcode.json
@@ -25,7 +25,7 @@
    "fieldtype": "Select",
    "in_list_view": 1,
    "label": "Barcode Type",
-   "options": "\nEAN\nUPC-A"
+   "options": "\nEAN\nUPC-A\nCODE-39\nEAN-12\nEAN-8\nGS1\nGTIN\nISBN\nISBN-10\nISBN-13\nISSN\nJAN\nPZN\nUPC"
   },
   {
    "fieldname": "uom",
diff --git a/erpnext/stock/doctype/item_price/test_records.json b/erpnext/stock/doctype/item_price/test_records.json
index 0a3d7e8..afe5ad6 100644
--- a/erpnext/stock/doctype/item_price/test_records.json
+++ b/erpnext/stock/doctype/item_price/test_records.json
@@ -38,5 +38,19 @@
   "price_list_rate": 1000,
   "valid_from": "2017-04-10",
   "valid_upto": "2017-04-17"
+ },
+ {
+  "doctype": "Item Price",
+  "item_code": "_Test Item",
+  "price_list": "_Test Buying Price List",
+  "price_list_rate": 100,
+  "supplier": "_Test Supplier"
+ },
+ {
+  "doctype": "Item Price",
+  "item_code": "_Test Item",
+  "price_list": "_Test Selling Price List",
+  "price_list_rate": 200,
+  "customer": "_Test Customer"
  }
 ]
diff --git a/erpnext/stock/doctype/material_request/material_request.js b/erpnext/stock/doctype/material_request/material_request.js
index 156e591..c1f1b0d 100644
--- a/erpnext/stock/doctype/material_request/material_request.js
+++ b/erpnext/stock/doctype/material_request/material_request.js
@@ -110,8 +110,11 @@
 
 				if (frm.doc.material_request_type === "Material Transfer") {
 					add_create_pick_list_button();
-					frm.add_custom_button(__("Transfer Material"),
+					frm.add_custom_button(__("Material Transfer"),
 						() => frm.events.make_stock_entry(frm), __('Create'));
+
+					frm.add_custom_button(__("Material Transfer (In Transit)"),
+						() => frm.events.make_in_transit_stock_entry(frm), __('Create'));
 				}
 
 				if (frm.doc.material_request_type === "Material Issue") {
@@ -333,6 +336,46 @@
 		});
 	},
 
+	make_in_transit_stock_entry(frm) {
+		frappe.prompt(
+			[
+				{
+					label: __('In Transit Warehouse'),
+					fieldname: 'in_transit_warehouse',
+					fieldtype: 'Link',
+					options: 'Warehouse',
+					reqd: 1,
+					get_query: () => {
+						return{
+							filters: {
+								'company': frm.doc.company,
+								'is_group': 0,
+								'warehouse_type': 'Transit'
+							}
+						}
+					}
+				}
+			],
+			(values) => {
+				frappe.call({
+					method: "erpnext.stock.doctype.material_request.material_request.make_in_transit_stock_entry",
+					args: {
+						source_name: frm.doc.name,
+						in_transit_warehouse: values.in_transit_warehouse
+					},
+					callback: function(r) {
+						if (r.message) {
+							let doc = frappe.model.sync(r.message);
+							frappe.set_route('Form', doc[0].doctype, doc[0].name);
+						}
+					}
+				})
+			},
+			__('In Transit Transfer'),
+			__("Create Stock Entry")
+		)
+	},
+
 	create_pick_list: (frm) => {
 		frappe.model.open_mapped_doc({
 			method: "erpnext.stock.doctype.material_request.material_request.create_pick_list",
diff --git a/erpnext/stock/doctype/material_request/material_request.py b/erpnext/stock/doctype/material_request/material_request.py
index 94f63a5..6426fe8 100644
--- a/erpnext/stock/doctype/material_request/material_request.py
+++ b/erpnext/stock/doctype/material_request/material_request.py
@@ -716,3 +716,14 @@
 	doc.set_item_locations()
 
 	return doc
+
+
+@frappe.whitelist()
+def make_in_transit_stock_entry(source_name, in_transit_warehouse):
+	ste_doc = make_stock_entry(source_name)
+	ste_doc.add_to_transit = 1
+
+	for row in ste_doc.items:
+		row.t_warehouse = in_transit_warehouse
+
+	return ste_doc
diff --git a/erpnext/stock/doctype/material_request/test_material_request.py b/erpnext/stock/doctype/material_request/test_material_request.py
index f0a9499..a707c74 100644
--- a/erpnext/stock/doctype/material_request/test_material_request.py
+++ b/erpnext/stock/doctype/material_request/test_material_request.py
@@ -11,6 +11,7 @@
 
 from erpnext.stock.doctype.item.test_item import create_item
 from erpnext.stock.doctype.material_request.material_request import (
+	make_in_transit_stock_entry,
 	make_purchase_order,
 	make_stock_entry,
 	make_supplier_quotation,
@@ -56,6 +57,22 @@
 		self.assertEqual(se.doctype, "Stock Entry")
 		self.assertEqual(len(se.get("items")), len(mr.get("items")))
 
+	def test_in_transit_make_stock_entry(self):
+		mr = frappe.copy_doc(test_records[0]).insert()
+
+		self.assertRaises(frappe.ValidationError, make_stock_entry, mr.name)
+
+		mr = frappe.get_doc("Material Request", mr.name)
+		mr.material_request_type = "Material Transfer"
+		mr.submit()
+
+		in_transit_warehouse = get_in_transit_warehouse(mr.company)
+		se = make_in_transit_stock_entry(mr.name, in_transit_warehouse)
+
+		self.assertEqual(se.doctype, "Stock Entry")
+		for row in se.get("items"):
+			self.assertEqual(row.t_warehouse, in_transit_warehouse)
+
 	def _insert_stock_entry(self, qty1, qty2, warehouse=None):
 		se = frappe.get_doc(
 			{
@@ -742,6 +759,36 @@
 		self.assertEqual(existing_requested_qty, current_requested_qty)
 
 
+def get_in_transit_warehouse(company):
+	if not frappe.db.exists("Warehouse Type", "Transit"):
+		frappe.get_doc(
+			{
+				"doctype": "Warehouse Type",
+				"name": "Transit",
+			}
+		).insert()
+
+	in_transit_warehouse = frappe.db.exists(
+		"Warehouse", {"warehouse_type": "Transit", "company": company}
+	)
+
+	if not in_transit_warehouse:
+		in_transit_warehouse = (
+			frappe.get_doc(
+				{
+					"doctype": "Warehouse",
+					"warehouse_name": "Transit",
+					"warehouse_type": "Transit",
+					"company": company,
+				}
+			)
+			.insert()
+			.name
+		)
+
+	return in_transit_warehouse
+
+
 def make_material_request(**args):
 	args = frappe._dict(args)
 	mr = frappe.new_doc("Material Request")
diff --git a/erpnext/stock/doctype/price_list/test_records.json b/erpnext/stock/doctype/price_list/test_records.json
index 7ca949c..e02a7ad 100644
--- a/erpnext/stock/doctype/price_list/test_records.json
+++ b/erpnext/stock/doctype/price_list/test_records.json
@@ -31,5 +31,21 @@
         "enabled": 1,
         "price_list_name": "_Test Price List Rest of the World",
         "selling": 1
+    },
+    {
+        "buying": 0,
+        "currency": "USD",
+        "doctype": "Price List",
+        "enabled": 1,
+        "price_list_name": "_Test Selling Price List",
+        "selling": 1
+    },
+    {
+        "buying": 1,
+        "currency": "USD",
+        "doctype": "Price List",
+        "enabled": 1,
+        "price_list_name": "_Test Buying Price List",
+        "selling": 0
     }
 ]
diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py
index af0d148..e6025ab 100644
--- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py
+++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py
@@ -887,18 +887,10 @@
 
 	# Update Billing % based on pending accepted qty
 	total_amount, total_billed_amount = 0, 0
-	for item in pr_doc.items:
-		return_data = frappe.get_all(
-			"Purchase Receipt",
-			fields=["sum(abs(`tabPurchase Receipt Item`.qty)) as qty"],
-			filters=[
-				["Purchase Receipt", "docstatus", "=", 1],
-				["Purchase Receipt", "is_return", "=", 1],
-				["Purchase Receipt Item", "purchase_receipt_item", "=", item.name],
-			],
-		)
+	item_wise_returned_qty = get_item_wise_returned_qty(pr_doc)
 
-		returned_qty = return_data[0].qty if return_data else 0
+	for item in pr_doc.items:
+		returned_qty = flt(item_wise_returned_qty.get(item.name))
 		returned_amount = flt(returned_qty) * flt(item.rate)
 		pending_amount = flt(item.amount) - returned_amount
 		total_billable_amount = pending_amount if item.billed_amt <= pending_amount else item.billed_amt
@@ -915,6 +907,27 @@
 		pr_doc.notify_update()
 
 
+def get_item_wise_returned_qty(pr_doc):
+	items = [d.name for d in pr_doc.items]
+
+	return frappe._dict(
+		frappe.get_all(
+			"Purchase Receipt",
+			fields=[
+				"`tabPurchase Receipt Item`.purchase_receipt_item",
+				"sum(abs(`tabPurchase Receipt Item`.qty)) as qty",
+			],
+			filters=[
+				["Purchase Receipt", "docstatus", "=", 1],
+				["Purchase Receipt", "is_return", "=", 1],
+				["Purchase Receipt Item", "purchase_receipt_item", "in", items],
+			],
+			group_by="`tabPurchase Receipt Item`.purchase_receipt_item",
+			as_list=1,
+		)
+	)
+
+
 @frappe.whitelist()
 def make_purchase_invoice(source_name, target_doc=None):
 	from erpnext.accounts.party import get_payment_terms_template
diff --git a/erpnext/stock/doctype/purchase_receipt_item/purchase_receipt_item.json b/erpnext/stock/doctype/purchase_receipt_item/purchase_receipt_item.json
index 557bb59..7a350b9 100644
--- a/erpnext/stock/doctype/purchase_receipt_item/purchase_receipt_item.json
+++ b/erpnext/stock/doctype/purchase_receipt_item/purchase_receipt_item.json
@@ -859,7 +859,8 @@
    "label": "Purchase Receipt Item",
    "no_copy": 1,
    "print_hide": 1,
-   "read_only": 1
+   "read_only": 1,
+   "search_index": 1
   },
   {
    "collapsible": 1,
@@ -974,7 +975,8 @@
    "label": "Purchase Invoice Item",
    "no_copy": 1,
    "print_hide": 1,
-   "read_only": 1
+   "read_only": 1,
+   "search_index": 1
   },
   {
    "fieldname": "product_bundle",
@@ -1010,7 +1012,7 @@
  "idx": 1,
  "istable": 1,
  "links": [],
- "modified": "2022-11-02 12:49:28.746701",
+ "modified": "2023-01-18 15:48:58.114923",
  "modified_by": "Administrator",
  "module": "Stock",
  "name": "Purchase Receipt Item",
diff --git a/erpnext/stock/doctype/stock_reposting_settings/stock_reposting_settings.js b/erpnext/stock/doctype/stock_reposting_settings/stock_reposting_settings.js
index 42d0723..5f81679 100644
--- a/erpnext/stock/doctype/stock_reposting_settings/stock_reposting_settings.js
+++ b/erpnext/stock/doctype/stock_reposting_settings/stock_reposting_settings.js
@@ -2,7 +2,22 @@
 // For license information, please see license.txt
 
 frappe.ui.form.on('Stock Reposting Settings', {
-	// refresh: function(frm) {
+	refresh: function(frm) {
+		frm.trigger('convert_to_item_based_reposting');
+	},
 
-	// }
+	convert_to_item_based_reposting: function(frm) {
+		frm.add_custom_button(__('Convert to Item Based Reposting'), function() {
+			frm.call({
+				method: 'convert_to_item_wh_reposting',
+				frezz: true,
+				doc: frm.doc,
+				callback: function(r) {
+					if (!r.exc) {
+						frm.reload_doc();
+					}
+				}
+			})
+		})
+	}
 });
diff --git a/erpnext/stock/doctype/stock_reposting_settings/stock_reposting_settings.py b/erpnext/stock/doctype/stock_reposting_settings/stock_reposting_settings.py
index e0c8ed1..51fb5ac 100644
--- a/erpnext/stock/doctype/stock_reposting_settings/stock_reposting_settings.py
+++ b/erpnext/stock/doctype/stock_reposting_settings/stock_reposting_settings.py
@@ -1,6 +1,8 @@
 # Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and contributors
 # For license information, please see license.txt
 
+import frappe
+from frappe import _
 from frappe.model.document import Document
 from frappe.utils import add_to_date, get_datetime, get_time_str, time_diff_in_hours
 
@@ -24,3 +26,62 @@
 
 		if diff < 10:
 			self.end_time = get_time_str(add_to_date(self.start_time, hours=10, as_datetime=True))
+
+	@frappe.whitelist()
+	def convert_to_item_wh_reposting(self):
+		"""Convert Transaction reposting to Item Warehouse based reposting if Item Based Reposting has enabled."""
+
+		reposting_data = get_reposting_entries()
+
+		vouchers = [d.voucher_no for d in reposting_data]
+
+		item_warehouses = {}
+
+		for ledger in get_stock_ledgers(vouchers):
+			key = (ledger.item_code, ledger.warehouse)
+			if key not in item_warehouses:
+				item_warehouses[key] = ledger.posting_date
+			elif frappe.utils.getdate(item_warehouses.get(key)) > frappe.utils.getdate(ledger.posting_date):
+				item_warehouses[key] = ledger.posting_date
+
+		for key, posting_date in item_warehouses.items():
+			item_code, warehouse = key
+			create_repost_item_valuation(item_code, warehouse, posting_date)
+
+		for row in reposting_data:
+			frappe.db.set_value("Repost Item Valuation", row.name, "status", "Skipped")
+
+		self.db_set("item_based_reposting", 1)
+		frappe.msgprint(_("Item Warehouse based reposting has been enabled."))
+
+
+def get_reposting_entries():
+	return frappe.get_all(
+		"Repost Item Valuation",
+		fields=["voucher_no", "name"],
+		filters={"status": ("in", ["Queued", "In Progress"]), "docstatus": 1, "based_on": "Transaction"},
+	)
+
+
+def get_stock_ledgers(vouchers):
+	return frappe.get_all(
+		"Stock Ledger Entry",
+		fields=["item_code", "warehouse", "posting_date"],
+		filters={"voucher_no": ("in", vouchers)},
+	)
+
+
+def create_repost_item_valuation(item_code, warehouse, posting_date):
+	frappe.get_doc(
+		{
+			"doctype": "Repost Item Valuation",
+			"company": frappe.get_cached_value("Warehouse", warehouse, "company"),
+			"posting_date": posting_date,
+			"based_on": "Item and Warehouse",
+			"posting_time": "00:00:01",
+			"item_code": item_code,
+			"warehouse": warehouse,
+			"allow_negative_stock": True,
+			"status": "Queued",
+		}
+	).submit()
diff --git a/erpnext/stock/get_item_details.py b/erpnext/stock/get_item_details.py
index 5af1441..b53f429 100644
--- a/erpnext/stock/get_item_details.py
+++ b/erpnext/stock/get_item_details.py
@@ -88,8 +88,15 @@
 
 	update_party_blanket_order(args, out)
 
+	# Never try to find a customer price if customer is set in these Doctype
+	current_customer = args.customer
+	if args.get("doctype") in ["Purchase Order", "Purchase Receipt", "Purchase Invoice"]:
+		args.customer = None
+
 	out.update(get_price_list_rate(args, item))
 
+	args.customer = current_customer
+
 	if args.customer and cint(args.is_pos):
 		out.update(get_pos_profile_item_details(args.company, args, update_data=True))
 
diff --git a/erpnext/stock/report/stock_ledger/stock_ledger.py b/erpnext/stock/report/stock_ledger/stock_ledger.py
index 8b63c0f..da17cde 100644
--- a/erpnext/stock/report/stock_ledger/stock_ledger.py
+++ b/erpnext/stock/report/stock_ledger/stock_ledger.py
@@ -306,7 +306,7 @@
 		query = query.where(sle.item_code.isin(items))
 
 	for field in ["voucher_no", "batch_no", "project", "company"]:
-		if filters.get(field):
+		if filters.get(field) and field not in inventory_dimension_fields:
 			query = query.where(sle[field] == filters.get(field))
 
 	query = apply_warehouse_filter(query, sle, filters)
diff --git a/erpnext/stock/stock_balance.py b/erpnext/stock/stock_balance.py
index 14cedd2..439ed7a 100644
--- a/erpnext/stock/stock_balance.py
+++ b/erpnext/stock/stock_balance.py
@@ -121,7 +121,7 @@
 					and parenttype='Sales Order'
 					and item_code != parent_item
 					and exists (select * from `tabSales Order` so
-					where name = dnpi_in.parent and docstatus = 1 and status != 'Closed')
+					where name = dnpi_in.parent and docstatus = 1 and status not in ('On Hold', 'Closed'))
 				) dnpi)
 			union
 				(select stock_qty as dnpi_qty, qty as so_item_qty,
@@ -131,7 +131,7 @@
 				and (so_item.delivered_by_supplier is null or so_item.delivered_by_supplier = 0)
 				and exists(select * from `tabSales Order` so
 					where so.name = so_item.parent and so.docstatus = 1
-					and so.status != 'Closed'))
+					and so.status not in ('On Hold', 'Closed')))
 			) tab
 		where
 			so_item_qty >= so_item_delivered_qty
diff --git a/erpnext/stock/tests/test_get_item_details.py b/erpnext/stock/tests/test_get_item_details.py
new file mode 100644
index 0000000..b53e29e
--- /dev/null
+++ b/erpnext/stock/tests/test_get_item_details.py
@@ -0,0 +1,40 @@
+import json
+
+import frappe
+from frappe.test_runner import make_test_records
+from frappe.tests.utils import FrappeTestCase
+
+from erpnext.stock.get_item_details import get_item_details
+
+test_ignore = ["BOM"]
+test_dependencies = ["Customer", "Supplier", "Item", "Price List", "Item Price"]
+
+
+class TestGetItemDetail(FrappeTestCase):
+	def setUp(self):
+		make_test_records("Price List")
+		super().setUp()
+
+	def test_get_item_detail_purchase_order(self):
+
+		args = frappe._dict(
+			{
+				"item_code": "_Test Item",
+				"company": "_Test Company",
+				"customer": "_Test Customer",
+				"conversion_rate": 1.0,
+				"price_list_currency": "USD",
+				"plc_conversion_rate": 1.0,
+				"doctype": "Purchase Order",
+				"name": None,
+				"supplier": "_Test Supplier",
+				"transaction_date": None,
+				"conversion_rate": 1.0,
+				"price_list": "_Test Buying Price List",
+				"is_subcontracted": 0,
+				"ignore_pricing_rule": 1,
+				"qty": 1,
+			}
+		)
+		details = get_item_details(args)
+		self.assertEqual(details.get("price_list_rate"), 100)
diff --git a/erpnext/subcontracting/doctype/subcontracting_order/test_subcontracting_order.py b/erpnext/subcontracting/doctype/subcontracting_order/test_subcontracting_order.py
index d054ce0..6a2983f 100644
--- a/erpnext/subcontracting/doctype/subcontracting_order/test_subcontracting_order.py
+++ b/erpnext/subcontracting/doctype/subcontracting_order/test_subcontracting_order.py
@@ -2,6 +2,7 @@
 # See license.txt
 
 import copy
+from collections import defaultdict
 
 import frappe
 from frappe.tests.utils import FrappeTestCase
@@ -186,6 +187,40 @@
 		)
 		self.assertEqual(len(ste.items), len(rm_items))
 
+	def test_make_rm_stock_entry_for_batch_items_with_less_transfer(self):
+		set_backflush_based_on("BOM")
+
+		service_items = [
+			{
+				"warehouse": "_Test Warehouse - _TC",
+				"item_code": "Subcontracted Service Item 4",
+				"qty": 5,
+				"rate": 100,
+				"fg_item": "Subcontracted Item SA4",
+				"fg_item_qty": 5,
+			}
+		]
+
+		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)
+
+		itemwise_transfer_qty = defaultdict(int)
+		for item in rm_items:
+			item["qty"] -= 1
+			itemwise_transfer_qty[item["item_code"]] += item["qty"]
+
+		ste = make_stock_transfer_entry(
+			sco_no=sco.name,
+			rm_items=rm_items,
+			itemwise_details=copy.deepcopy(itemwise_details),
+		)
+
+		scr = make_subcontracting_receipt(sco.name)
+
+		for row in scr.supplied_items:
+			self.assertEqual(row.consumed_qty, itemwise_transfer_qty.get(row.rm_item_code) + 1)
+
 	def test_update_reserved_qty_for_subcontracting(self):
 		# Create RM Material Receipt
 		make_stock_entry(target="_Test Warehouse - _TC", item_code="_Test Item", qty=10, basic_rate=100)
diff --git a/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.js b/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.js
index b6bef8c..3a2c53f 100644
--- a/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.js
+++ b/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.js
@@ -51,13 +51,31 @@
 			}
 		}));
 
-		frm.set_query("expense_account", "items", function () {
+		frm.set_query('expense_account', 'items', function () {
 			return {
-				query: "erpnext.controllers.queries.get_expense_account",
+				query: 'erpnext.controllers.queries.get_expense_account',
 				filters: { 'company': frm.doc.company }
 			};
 		});
 
+		frm.set_query('batch_no', 'items', function(doc, cdt, cdn) {
+			var row = locals[cdt][cdn];
+			return {
+				filters: {
+					item: row.item_code
+				}
+			}
+		});
+
+		let batch_no_field = frm.get_docfield("items", "batch_no");
+		if (batch_no_field) {
+			batch_no_field.get_route_options_for_new_doc = function(row) {
+				return {
+					"item": row.doc.item_code
+				}
+			};
+		}
+
 		frappe.db.get_single_value('Buying Settings', 'backflush_raw_materials_of_subcontract_based_on').then(val => {
 			if (val == 'Material Transferred for Subcontract') {
 				frm.fields_dict['supplied_items'].grid.grid_rows.forEach((grid_row) => {
@@ -73,7 +91,7 @@
 
 	refresh: (frm) => {
 		if (frm.doc.docstatus > 0) {
-			frm.add_custom_button(__("Stock Ledger"), function () {
+			frm.add_custom_button(__('Stock Ledger'), function () {
 				frappe.route_options = {
 					voucher_no: frm.doc.name,
 					from_date: frm.doc.posting_date,
@@ -81,8 +99,8 @@
 					company: frm.doc.company,
 					show_cancelled_entries: frm.doc.docstatus === 2
 				};
-				frappe.set_route("query-report", "Stock Ledger");
-			}, __("View"));
+				frappe.set_route('query-report', 'Stock Ledger');
+			}, __('View'));
 
 			frm.add_custom_button(__('Accounting Ledger'), function () {
 				frappe.route_options = {
@@ -90,11 +108,11 @@
 					from_date: frm.doc.posting_date,
 					to_date: moment(frm.doc.modified).format('YYYY-MM-DD'),
 					company: frm.doc.company,
-					group_by: "Group by Voucher (Consolidated)",
+					group_by: 'Group by Voucher (Consolidated)',
 					show_cancelled_entries: frm.doc.docstatus === 2
 				};
-				frappe.set_route("query-report", "General Ledger");
-			}, __("View"));
+				frappe.set_route('query-report', 'General Ledger');
+			}, __('View'));
 		}
 
 		if (!frm.doc.is_return && frm.doc.docstatus == 1 && frm.doc.per_returned < 100) {
@@ -111,25 +129,25 @@
 			frm.add_custom_button(__('Subcontracting Order'), function () {
 				if (!frm.doc.supplier) {
 					frappe.throw({
-						title: __("Mandatory"),
-						message: __("Please Select a Supplier")
+						title: __('Mandatory'),
+						message: __('Please Select a Supplier')
 					});
 				}
 
 				erpnext.utils.map_current_doc({
 					method: 'erpnext.subcontracting.doctype.subcontracting_order.subcontracting_order.make_subcontracting_receipt',
-					source_doctype: "Subcontracting Order",
+					source_doctype: 'Subcontracting Order',
 					target: frm,
 					setters: {
 						supplier: frm.doc.supplier,
 					},
 					get_query_filters: {
 						docstatus: 1,
-						per_received: ["<", 100],
+						per_received: ['<', 100],
 						company: frm.doc.company
 					}
 				});
-			}, __("Get Items From"));
+			}, __('Get Items From'));
 		}
 	},
 
diff --git a/erpnext/templates/pages/order.html b/erpnext/templates/pages/order.html
index 6b354b2..bc34ad5 100644
--- a/erpnext/templates/pages/order.html
+++ b/erpnext/templates/pages/order.html
@@ -34,16 +34,18 @@
 				</a>
 			</ul>
 		</div>
-		<div class="form-column col-sm-6">
-			<div class="page-header-actions-block" data-html-block="header-actions">
-				<p>
-					<a href="/api/method/erpnext.accounts.doctype.payment_request.payment_request.make_payment_request?dn={{ doc.name }}&dt={{ doc.doctype }}&submit_doc=1&order_type=Shopping Cart"
-						class="btn btn-primary btn-sm" id="pay-for-order">
-						{{ _("Pay") }} {{doc.get_formatted("grand_total") }}
-					</a>
-				</p>
+		{% if show_pay_button %}
+			<div class="form-column col-sm-6">
+				<div class="page-header-actions-block" data-html-block="header-actions">
+					<p>
+						<a href="/api/method/erpnext.accounts.doctype.payment_request.payment_request.make_payment_request?dn={{ doc.name }}&dt={{ doc.doctype }}&submit_doc=1&order_type=Shopping Cart"
+							class="btn btn-primary btn-sm" id="pay-for-order">
+							{{ _("Pay") }} {{doc.get_formatted("grand_total") }}
+						</a>
+					</p>
+				</div>
 			</div>
-		</div>
+		{% endif %}
 	</div>
 {% endblock %}
 
diff --git a/erpnext/templates/pages/order.py b/erpnext/templates/pages/order.py
index 185ec66..13772d3 100644
--- a/erpnext/templates/pages/order.py
+++ b/erpnext/templates/pages/order.py
@@ -55,6 +55,7 @@
 			)
 			context.available_loyalty_points = int(loyalty_program_details.get("loyalty_points"))
 
+	context.show_pay_button = frappe.db.get_single_value("Buying Settings", "show_pay_button")
 	context.show_make_pi_button = False
 	if context.doc.get("supplier"):
 		# show Make Purchase Invoice button based on permission
diff --git a/erpnext/translations/tr.csv b/erpnext/translations/tr.csv
index c891b97..b65494c 100644
--- a/erpnext/translations/tr.csv
+++ b/erpnext/translations/tr.csv
@@ -7,10 +7,10 @@
 'From Date' is required,'Tarihten itibaren' gereklidir,
 'From Date' must be after 'To Date','Tarihine Kadar' 'Tarihinden itibaren' den sonra olmalıdır,
 'Has Serial No' can not be 'Yes' for non-stock item,Stokta olmayan ürünün 'Seri Nosu Var' 'Evet' olamaz,
-'Opening','Açılış',
+'Opening',&#39;Açılış&#39;,
 'To Case No.' cannot be less than 'From Case No.','Son Olay No' 'İlk Olay No'  dan küçük olamaz.,
 'To Date' is required,'Tarihine Kadar' gereklidir,
-'Total','Toplam',
+'Total',&#39;Toplam&#39;,
 'Update Stock' can not be checked because items are not delivered via {0},'Stok Güncelle' seçilemez çünkü ürünler {0} ile teslim edilmemiş.,
 'Update Stock' cannot be checked for fixed asset sale,'Stoğu Güncelle' sabit varlık satışları için kullanılamaz,
 ) for {0},) {0} için,
@@ -35,17 +35,17 @@
 Above,yukarıdaki,
 Absent,Eksik,
 Academic Term,Akademik Dönem,
-Academic Term: ,Akademik Dönem: ,
-Academic Year,Akademik Yıl,
-Academic Year: ,Akademik Yıl: ,
+Academic Term: ,Akademik Dönem:,
+Academic Year,Akademik yıl,
+Academic Year: ,Akademik yıl:,
 Accepted + Rejected Qty must be equal to Received quantity for Item {0},Onaylanan ve reddedilen miktarların toplamı alınan ürün miktarına eşit olmak zorundadır. {0},
 Access Token,Erişim Anahtarı,
 Accessable Value,Erişilebilir Değer,
-Account,Hesap,
+Account,hesap,
 Account Number,Hesap numarası,
 Account Number {0} already used in account {1},{1} hesapta {0} hesap numarası zaten kullanıldı,
 Account Pay Only,Hesabı yalnızca öde,
-Account Type,Hesap Türü,
+Account Type,hesap tipi,
 Account Type for {0} must be {1},{0} için hesap türü {1} olmalı,
 "Account balance already in Credit, you are not allowed to set 'Balance Must Be' as 'Debit'",Bakiye alacaklı durumdaysa borçlu duruma çevrilemez.,
 "Account balance already in Debit, you are not allowed to set 'Balance Must Be' as 'Credit'",Bakiye borçlu durumdaysa alacaklı duruma çevrilemez.,
@@ -79,11 +79,11 @@
 Accounting journal entries.,Muhasebe günlük girişleri.,
 Accounts,Hesaplar,
 Accounts Manager,Hesap Yöneticisi,
-Accounts Payable,Borç Hesabı,
-Accounts Payable Summary,Borç Hesabı Özeti,
-Accounts Receivable,Alacak Hesabı,
-Accounts Receivable Summary,Alacak Hesabı Özeti,
-Accounts User,Muhasebe Kullanıcısı,
+Accounts Payable,Vadesi gelmiş hesaplar,
+Accounts Payable Summary,Ödeme Hesabı Özeti,
+Accounts Receivable,Alacak hesapları,
+Accounts Receivable Summary,Alacak Hesapları Özeti,
+Accounts User,Muhasebe Kullanıcıları,
 Accounts table cannot be blank.,Hesap Tablosu boş olamaz.,
 Accrual Journal Entry for salaries from {0} to {1},{0} - {1} tarihleri arasında maaşlar için Günlük Tahakkuk  Girişi,
 Accumulated Depreciation,Birikmiş Amortisman,
@@ -91,47 +91,47 @@
 Accumulated Depreciation as on,Tarihinde olduğu gibi birikmiş amortisman,
 Accumulated Monthly,Aylık Birikim,
 Accumulated Values,Birikmiş Değerler,
-Accumulated Values in Group Company,Grup Şirketi'nde Birikmiş Değerler,
+Accumulated Values in Group Company,Grup Şirketi&#39;nde Birikmiş Değerler,
 Achieved ({}),Elde Edildi ({}),
-Action,İşlem,
-Action Initialised,İşlem Başlatıldı,
-Actions,İşlemler,
+Action,Eylem,
+Action Initialised,Eylem Başlatıldı,
+Actions,Eylemler,
 Active,Etkin,
 Activity Cost exists for Employee {0} against Activity Type - {1},Çalışan {0} için Etkinlik Türü  - {1} karşılığında Etkinlik Maliyeti var,
 Activity Cost per Employee,Çalışan Başına Etkinlik Maliyeti,
 Activity Type,Faaliyet Türü,
-Actual Cost,Fiili Maliyet,
+Actual Cost,Asıl maliyet,
 Actual Delivery Date,Gerçek teslim tarihi,
-Actual Qty,Fiili Miktar,
-Actual Qty is mandatory,Fiili Miktar zorunludur,
-Actual Qty {0} / Waiting Qty {1},Fiili Miktar {0} / Bekleyen Miktar {1},
-Actual Qty: Quantity available in the warehouse.,Gerçek Adet: Depoda Fiili miktar.,
+Actual Qty,Gerçek Adet,
+Actual Qty is mandatory,Gerçek Adet zorunludur,
+Actual Qty {0} / Waiting Qty {1},Gerçekleşen Miktar {0} / Bekleyen Miktar {1},
+Actual Qty: Quantity available in the warehouse.,Gerçek Adet: Depoda mevcut miktar.,
 Actual qty in stock,Güncel stok miktarı,
 Actual type tax cannot be included in Item rate in row {0},Gerçek tip vergi satırda Öğe fiyatına dahil edilemez {0},
 Add,Ekle,
 Add / Edit Prices,Fiyatları Ekle / Düzenle,
 Add Comment,Yorum Ekle,
-Add Customers,Müşteri Ekle,
-Add Employees,Çalışan Ekle,
+Add Customers,Müşteri(ler) Ekle,
+Add Employees,Çalışan ekle,
 Add Item,Ürün Ekle,
 Add Items,Ürünler Ekle,
 Add Leads,Teklif Ekle,
 Add Multiple Tasks,Birden Fazla Görev Ekle,
-Add Row,Satır Ekle,
+Add Row,Satır ekle,
 Add Sales Partners,Satış Ortakları Ekleyin,
 Add Serial No,Seri No Ekle,
-Add Students,Öğrenci Ekle,
-Add Suppliers,Tedarikçi Ekle,
-Add Time Slots,Zaman Dilimleri Ekle,
+Add Students,Öğrenci ekle,
+Add Suppliers,Tedarikçi ekle,
+Add Time Slots,Zaman Dilimleri Ekleme,
 Add Timesheets,Zaman Çizelgesi Ekle,
 Add Timeslots,Zaman Dilimi Ekle,
-Add Users to Marketplace,Kullanıcıları Pazaryerine Ekle,
+Add Users to Marketplace,Kullanıcıları Pazara Eklemek,
 Add a new address,yeni bir adres ekleyin,
 Add cards or custom sections on homepage,Ana sayfaya kart veya özel bölüm ekleme,
 Add more items or open full form,Daha fazla ürün ekle veya Tam formu aç,
-Add notes,Not Ekle,
+Add notes,Not ekle,
 Add the rest of your organization as your users. You can also add invite Customers to your portal by adding them from Contacts,Kuruluşunuzun geri kalanını kullanıcı olarak ekleyin. Ayrıca Müşterilerinizi Rehbere ekleyerek onları portala  davet edebilirsiniz,
-Add to Details,Ayrıntılara Ekle,
+Add to Details,Ayrıntılara ekle,
 Add/Remove Recipients,Alıcı Ekle/Kaldır,
 Added,Eklendi,
 Added to details,Ayrıntılara eklendi,
@@ -139,10 +139,10 @@
 Additional Salary Component Exists.,Ek Maaş Bileşeni Vardır.,
 Address,Adres,
 Address Line 2,Adres Satırı 2,
-Address Name,Adres Adı,
+Address Name,Adres adı,
 Address Title,Adres Başlığı,
 Address Type,Adres Tipi,
-Administrative Expenses,Yönetim Giderleri,
+Administrative Expenses,Yönetim giderleri,
 Administrative Officer,İdari Memur,
 Administrator,Yönetici,
 Admission,Başvuru,
@@ -157,7 +157,7 @@
 Advertising,Reklamcılık,
 Aerospace,Havacılık ve Uzay;,
 Against,Karşı,
-Against Account,Hesap Karşılığı,
+Against Account,Hesap karşılığı,
 Against Journal Entry {0} does not have any unmatched {1} entry,Journal Karşı giriş {0} herhangi eşsiz {1} girişi yok,
 Against Journal Entry {0} is already adjusted against some other voucher,Journal Karşı giriş {0} zaten başka çeki karşı ayarlanır,
 Against Supplier Invoice {0} dated {1},{1} tarihli {0} Tedarikçi Faturası karşılığı,
@@ -172,32 +172,32 @@
 Agriculture,Tarım,
 Agriculture (beta),Tarım (beta),
 Airline,Havayolu,
-All Accounts,Tüm Hesaplar,
+All Accounts,Bütün hesaplar,
 All Addresses.,Tüm adresler.,
-All Assessment Groups,Tüm Değerlendirme Grupları,
+All Assessment Groups,Bütün Değerlendirme Grupları,
 All BOMs,Tüm malzeme listeleri,
 All Contacts.,Tüm Kişiler.,
-All Customer Groups,Tüm Müşteri Grupları,
-All Day,Tüm Gün,
-All Departments,Tüm bölümler,
+All Customer Groups,Bütün Müşteri Grupları,
+All Day,Bütün Gün,
+All Departments,Bütün bölümler,
 All Healthcare Service Units,Tüm Sağlık Hizmeti Birimleri,
-All Item Groups,Tüm Ürün Grupları,
+All Item Groups,Bütün Ürün Grupları,
 All Jobs,Tüm işler,
 All Products,Tüm ürünler,
-All Products or Services.,Tüm Ürünler veya Hizmetler.,
+All Products or Services.,Bütün Ürünler veya Hizmetler.,
 All Student Admissions,Tüm Öğrenci Kabulleri,
 All Supplier Groups,Tüm Tedarikçi Grupları,
 All Supplier scorecards.,Tüm Tedarikçi puan kartları.,
-All Territories,Tüm Bölgeler,
+All Territories,Bütün Bölgeler,
 All Warehouses,Tüm Depolar,
 All communications including and above this shall be moved into the new Issue,"Bunları içeren ve bunun üstündeki tüm iletişim, yeni sayıya taşınacaktır.",
 All items have already been transferred for this Work Order.,Bu İş Emri için tüm öğeler zaten aktarıldı.,
 All other ITC,Diğer tüm ITC,
 All the mandatory Task for employee creation hasn't been done yet.,Çalışan yaratmak için tüm zorunlu görev henüz yapılmamış.,
 Allocate Payment Amount,Ödeme Tutarı ayır,
-Allocated Amount,Ayrılan Miktar,
-Allocated Leaves,Ayrılmış İzinler,
-Allocating leaves...,İzinler tahsis ediliyor ...,
+Allocated Amount,Ayrılan miktar,
+Allocated Leaves,Ayrılmış Yapraklar,
+Allocating leaves...,Yaprakları tahsis ...,
 Already record exists for the item {0},Zaten {0} öğesi için kayıt var,
 "Already set default in pos profile {0} for user {1}, kindly disabled default","{1} kullanıcısı için {0} pos profilinde varsayılan olarak varsayılan değer ayarladınız, varsayılan olarak lütfen devre dışı bırakıldı",
 Alternate Item,Alternatif Öğe,
@@ -206,26 +206,24 @@
 Amount,Tutar,
 Amount After Depreciation,Değer kaybı sonrası miktar,
 Amount of Integrated Tax,Entegre Vergi Miktarı,
-Amount of TDS Deducted,TDS'den Düşülen Tutar,
+Amount of TDS Deducted,TDS&#39;den Düşülen Tutar,
 Amount should not be less than zero.,Miktar sıfırdan daha az olmamalıdır.,
 Amount to Bill,Faturalanacak Tutar,
 Amount {0} {1} against {2} {3},Miktar {0} {2} karşılığı {1} {3},
 Amount {0} {1} deducted against {2},{2}'ye karşılık düşülecek miktar {0} {1},
 Amount {0} {1} transferred from {2} to {3},{0} {1} miktarı {2}'den {3}'e aktarılacak,
 Amount {0} {1} {2} {3},Miktar {0} {1} {2} {3},
-Amount Eligible for Commission,Komisyona Uygun Tutar,
-Amt,Tutar,
+Amt,Amt,
 "An Item Group exists with same name, please change the item name or rename the item group","Bir Ürün grubu aynı isimle bulunuyorsa, lütfen Ürün veya Ürün grubu adını değiştirin",
-An academic term with this 'Academic Year' {0} and 'Term Name' {1} already exists. Please modify these entries and try again.,Bu 'Akademik Yılı' ile akademik bir terim {0} ve 'Vadeli Adı' {1} zaten var. Bu girişleri değiştirmek ve tekrar deneyin.,
+An academic term with this 'Academic Year' {0} and 'Term Name' {1} already exists. Please modify these entries and try again.,Bu &#39;Akademik Yılı&#39; ile akademik bir terim {0} ve &#39;Vadeli Adı&#39; {1} zaten var. Bu girişleri değiştirmek ve tekrar deneyin.,
 An error occurred during the update process,Güncelleme işlemi sırasında bir hata oluştu,
 "An item exists with same name ({0}), please change the item group name or rename the item","Bir Ürün aynı isimle bulunuyorsa ({0}), lütfen madde grubunun veya maddenin adını değiştirin",
 Analyst,analist,
 Analytics,Analitikler,
-Annual Revenue,Yıllık Gelir,
 Annual Billing: {0},Yıllık Fatura: {0},
 Annual Salary,Yıllık gelir,
 Anonymous,Anonim,
-Another Budget record '{0}' already exists against {1} '{2}' and account '{3}' for fiscal year {4},{1} '{2}' a karşı bir başka Bütçe kaydı '{0}' zaten var ve {4} mali yılı için '{3}' hesabı var,
+Another Budget record '{0}' already exists against {1} '{2}' and account '{3}' for fiscal year {4},{1} &#39;{2}&#39; a karşı bir başka Bütçe kaydı &#39;{0}&#39; zaten var ve {4} mali yılı için &#39;{3}&#39; hesabı var,
 Another Period Closing Entry {0} has been made after {1},{1} den sonra başka bir dönem kapatma girdisi {0} yapılmıştır,
 Another Sales Person {0} exists with the same Employee id,Başka Satış Kişi {0} aynı Çalışan kimliği ile var,
 Antibiotic,Antibiyotik,
@@ -257,19 +255,19 @@
 "Apps using current key won't be able to access, are you sure?","Geçerli anahtarı kullanan uygulamalar erişemez, emin misiniz?",
 Are you sure you want to cancel this appointment?,Bu randevuyu iptal etmek istediğinize emin misiniz?,
 Arrear,bakiye,
-As Examiner,Müfettiş olarak,
-As On Date,Tarihe göre,
+As Examiner,Müfettiş Olarak,
+As On Date,Tarihinde gibi,
 As Supervisor,Süpervizör olarak,
 As per rules 42 & 43 of CGST Rules,CGST Kurallarının 42 ve 43 numaralı kuralları uyarınca,
-As per section 17(5),Bölüm 17'ye göre (5),
+As per section 17(5),Bölüm 17&#39;ye göre (5),
 As per your assigned Salary Structure you cannot apply for benefits,"Atanan Maaş Yapınıza göre, faydalar için başvuruda bulunamazsınız.",
-Assessment,Değerlendirme,
+Assessment,değerlendirme,
 Assessment Criteria,Değerlendirme Kriterleri,
 Assessment Group,Değerlendirme Grubu,
-Assessment Group: ,Değerlendirme Grubu: ,
+Assessment Group: ,Değerlendirme Grubu:,
 Assessment Plan,Değerlendirme Planı,
 Assessment Plan Name,Değerlendirme Planı Adı,
-Assessment Report,Değerlendirme Raporu,
+Assessment Report,Değerlendirme raporu,
 Assessment Reports,Değerlendirme Raporları,
 Assessment Result,Değerlendirme Sonucu,
 Assessment Result record {0} already exists.,Değerlendirme Sonuç kaydı {0} zaten var.,
@@ -283,25 +281,25 @@
 Asset Received But Not Billed,Alınan ancak Faturalandırılmayan Öğe,
 Asset Value Adjustment,Varlık Değeri Ayarlaması,
 "Asset cannot be cancelled, as it is already {0}","Varlık iptal edilemez, hala  {0}",
-Asset scrapped via Journal Entry {0},"Varlık, Yevmiye Kaydı {0} ile hurda edildi",
+Asset scrapped via Journal Entry {0},"Varlık, Kayıt Girdisi {0} ile hurda edildi",
 "Asset {0} cannot be scrapped, as it is already {1}","{0} varlığı hurda edilemez, {1} da var olarak gözüküyor",
 Asset {0} does not belong to company {1},"Varlık {0}, {1} firmasına ait değil",
 Asset {0} must be submitted,{0} ın varlığı onaylanmalı,
 Assets,Varlıklar,
-Assign,Ata,
+Assign,Atamak,
 Assign Salary Structure,Maaş Yapısı Atama,
 Assign To,Ata,
 Assign to Employees,Çalışanlara ata,
-Assigning Structures...,Yapılar atanıyor...,
-Associate,Ortak,
+Assigning Structures...,Yapılara ata...,
+Associate,ortak,
 At least one mode of payment is required for POS invoice.,Ödeme en az bir mod POS fatura için gereklidir.,
 Atleast one item should be entered with negative quantity in return document,En az bir öğe dönüş belgesinde negatif miktar ile girilmelidir,
 Atleast one of the Selling or Buying must be selected,Satış veya Alıştan en az biri seçilmelidir,
 Atleast one warehouse is mandatory,En az bir depo zorunludur,
-Attach Logo,Logo Ekle,
-Attachment,Ek dosya,
-Attachments,Ek dosyalar,
-Attendance,Puantaj,
+Attach Logo,Logo Ekleyin,
+Attachment,Haciz,
+Attachments,Eklentiler,
+Attendance,katılım,
 Attendance From Date and Attendance To Date is mandatory,tarihinden  Tarihine kadar katılım zorunludur,
 Attendance can not be marked for future dates,İlerideki tarihler için katılım işaretlenemez,
 Attendance date can not be less than employee's joining date,Seyirci tarih çalışanın katılmadan tarihten daha az olamaz,
@@ -319,22 +317,22 @@
 Auto repeat document updated,Otomatik tekrar dokümanı güncellendi,
 Automotive,Otomotiv,
 Available,Mevcut,
-Available Leaves,Mevcut İzinler,
+Available Leaves,Mevcut yaprakları,
 Available Qty,Mevcut Miktar,
-Available Selling,Mevcut Satış,
+Available Selling,Mevcut satış,
 Available for use date is required,Kullanılabilir olacağı tarih gereklidir,
 Available slots,Kullanılabilir alanlar,
 Available {0},Mevcut {0},
-Available-for-use Date should be after purchase date,"Kullanıma hazır tarih, Satınalma tarihinden sonra olmalıdır.",
-Average Age,Ortalama Yaş,
-Average Rate,Ortalama Oran,
+Available-for-use Date should be after purchase date,"Kullanıma hazır tarih, satın alma tarihinden sonra olmalıdır.",
+Average Age,Ortalama yaş,
+Average Rate,Ortalama oran,
 Avg Daily Outgoing,Ort. Günlük Giden,
 Avg. Buying Price List Rate,Ort. Alış Fiyatı Liste Oranı,
 Avg. Selling Price List Rate,Ort. Satış Fiyatı Liste Oranı,
-Avg. Selling Rate,Ort. Satış Oranı,
+Avg. Selling Rate,Ort. Satış oranı,
 BOM,Ürün Ağacı,
 BOM Browser,Ürün Ağacı Tarayıcı,
-BOM No,BOM Numarası,
+BOM No,BOM numarası,
 BOM Rate,Ürün Ağacı Oranı,
 BOM Stock Report,Ürün Ağacı Stok Raporu,
 BOM and Manufacturing Quantity are required,Ürün Ağacı ve Üretim Miktarı gereklidir,
@@ -347,18 +345,18 @@
 Balance ({0}),Bakiye ({0}),
 Balance Qty,Denge Adet,
 Balance Sheet,Bilanço,
-Balance Value,Mevcut Maliyet,
+Balance Value,Denge Değeri,
 Balance for Account {0} must always be {1},Hesap {0} her zaman dengede olmalı {1},
 Bank,Banka,
-Bank Account,Banka Hesabı,
+Bank Account,Banka hesabı,
 Bank Accounts,Banka Hesapları,
 Bank Draft,Banka Havalesi,
 Bank Entries,Banka Girişleri,
-Bank Name,Banka Adı,
+Bank Name,Banka adı,
 Bank Overdraft Account,Banka Kredili Mevduat Hesabı,
-Bank Reconciliation,Banka Mutabakatı,
+Bank Reconciliation,Banka Uzlaşma,
 Bank Reconciliation Statement,Banka Mutabakat Kaydı,
-Bank Statement,Banka Ekstresi,
+Bank Statement,Hesap durumu,
 Bank Statement Settings,Banka Ekstre Ayarları,
 Bank Statement balance as per General Ledger,Genel Muhasebe uyarınca Banka Hesap bakiyesi,
 Bank account cannot be named as {0},Banka hesabı adı {0} olamaz,
@@ -367,13 +365,13 @@
 Banking and Payments,Bankacılık ve Ödemeler,
 Barcode {0} already used in Item {1},{0} barkodu zaten {1} ürününde kullanılmış,
 Barcode {0} is not a valid {1} code,"Barkod {0}, geçerli bir {1} kodu değil",
-Base,Baz,
+Base,baz,
 Base URL,Temel URL,
 Based On,Göre,
-Based On Payment Terms,Ödeme Vadesine Göre,
+Based On Payment Terms,Ödeme Koşullarına Göre,
 Basic,Temel,
-Batch,Parti,
-Batch Entries,Parti Girişleri,
+Batch,yığın,
+Batch Entries,Toplu Girişler,
 Batch ID is mandatory,Parti numarası zorunludur,
 Batch Inventory,Parti Envanteri,
 Batch Name,Parti Adı,
@@ -381,20 +379,20 @@
 Batch number is mandatory for Item {0},{0} ürünü için parti numarası zorunludur,
 Batch {0} of Item {1} has expired.,{0} partisindeki {1} ürününün ömrü doldu,
 Batch {0} of Item {1} is disabled.,Öğe {1} öğesinin {0} tanesi devre dışı bırakıldı.,
-Batch: ,Parti: ,
+Batch: ,Toplu:,
 Batches,Partiler,
 Become a Seller,Satıcı Ol,
 Beginner,Acemi,
-Bill,Fatura,
-Bill Date,Fatura Tarihi,
+Bill,fatura,
+Bill Date,Fatura tarihi,
 Bill No,Fatura No,
-Bill of Materials,Ürün Ağacı / Reçete,
-Bill of Materials (BOM),Ürün Ağacı (BOM),
+Bill of Materials,Malzeme Listesi,
+Bill of Materials (BOM),Malzeme Listesi (BOM),
 Billable Hours,Faturalandırılabilir Saatler,
-Billed,Faturalanan,
-Billed Amount,Faturalanan Tutar,
+Billed,Faturalanmış,
+Billed Amount,Faturalı Tutar,
 Billing,Faturalama,
-Billing Address,Fatura Adresi,
+Billing Address,Faturalama  Adresi,
 Billing Address is same as Shipping Address,"Fatura Adresi, Teslimat Adresiyle aynı",
 Billing Amount,Fatura Tutarı,
 Billing Status,Fatura Durumu,
@@ -404,26 +402,26 @@
 Biotechnology,Biyoteknoloji,
 Birthday Reminder,Doğum Günü Hatırlatıcısı,
 Black,Siyah,
-Blanket Orders from Costumers.,Müşterilerden gelen Açık Siparişler,
+Blanket Orders from Costumers.,Müşterilerden Battaniye Siparişleri.,
 Block Invoice,Faturayı Engelle,
 Boms,Ürün Ağaçları,
 Bonus Payment Date cannot be a past date,Bonus Ödeme Tarihi bir tarih olamaz,
 Both Trial Period Start Date and Trial Period End Date must be set,Her iki Deneme Süresi Başlangıç Tarihi ve Deneme Dönemi Bitiş Tarihi ayarlanmalıdır,
 Both Warehouse must belong to same Company,Her iki Depo da aynı Şirkete ait olmalıdır,
-Branch,Şube,
-Broadcasting,Yayın,
-Brokerage,Komisyonculuk,
-Browse BOM,BOMa Gözat,
-Budget Against,Bütçe Karşılığı,
+Branch,şube,
+Broadcasting,yayın,
+Brokerage,komisyonculuk,
+Browse BOM,BOM Araştır,
+Budget Against,bütçe Karşı,
 Budget List,Bütçe Listesi,
 Budget Variance Report,Bütçe Fark Raporu,
 Budget cannot be assigned against Group Account {0},Bütçe Grubu Hesabı karşı atanamayan {0},
 "Budget cannot be assigned against {0}, as it's not an Income or Expense account","Bir gelir ya da gider hesabı değil gibi Bütçe, karşı {0} atanamaz",
 Buildings,Binalar,
 Bundle items at time of sale.,Satış zamanı toplam Ürünler.,
-Business Development Manager,İş Geliştirme Yöneticisi,
+Business Development Manager,İş Geliştirme Müdürü,
 Buy,Satın al,
-Buying,Satınalma,
+Buying,Satın alma,
 Buying Amount,Alım Miktarı,
 Buying Price List,Alış Fiyatı Listesi,
 Buying Rate,Alış oranı,
@@ -456,7 +454,7 @@
 Canceled,İptal edildi,
 "Cannot Submit, Employees left to mark attendance","Gönderilemiyor, Çalışanlar katılım için ayrıldı",
 Cannot be a fixed asset item as Stock Ledger is created.,Stok Defteri oluşturulduğunda sabit bir varlık kalemi olamaz.,
-Cannot cancel because submitted Stock Entry {0} exists,Gönderilen {0} Stok Kaydı mevcut olduğundan iptal edilemiyor,
+Cannot cancel because submitted Stock Entry {0} exists,Sunulan Stok Giriş {0} varolduğundan iptal edilemiyor,
 Cannot cancel transaction for Completed Work Order.,Tamamlanmış İş Emri için işlem iptal edilemez.,
 Cannot cancel {0} {1} because Serial No {2} does not belong to the warehouse {3},"{0} {1} tarihinde iptal edilemedi, çünkü Seri No {2} depoya {3} ait değil.",
 Cannot change Attributes after stock transaction. Make a new Item and transfer stock to the new Item,Hisse senedi işleminden sonra nitelikleri değiştiremezsiniz. Yeni Bir Öğe Yapın ve Stokları Yeni Öğe Taşı,
@@ -472,7 +470,7 @@
 Cannot deactivate or cancel BOM as it is linked with other BOMs,Devre dışı bırakmak veya diğer ürün ağaçları ile bağlantılı olarak BOM iptal edilemiyor,
 "Cannot declare as lost, because Quotation has been made.","Kayıp olarak Kotasyon yapılmış çünkü, ilan edemez.",
 Cannot deduct when category is for 'Valuation' or 'Valuation and Total',Kategori 'Değerleme' veya 'Toplam ve Değerleme' olduğu zaman çıkarılamaz,
-Cannot deduct when category is for 'Valuation' or 'Vaulation and Total',kategori 'Değerleme' veya 'Vaulation ve Toplam' için ne zaman tenzil edemez,
+Cannot deduct when category is for 'Valuation' or 'Vaulation and Total',kategori &#39;Değerleme&#39; veya &#39;Vaulation ve Toplam&#39; için ne zaman tenzil edemez,
 "Cannot delete Serial No {0}, as it is used in stock transactions","Silinemiyor Seri No {0}, hisse senedi işlemlerinde kullanıldığı gibi",
 Cannot enroll more than {0} students for this student group.,Bu öğrenci grubu için {0} öğrencilere göre daha kayıt olamaz.,
 Cannot find active Leave Period,Aktif İzin Dönemi bulunamıyor,
@@ -506,69 +504,69 @@
 Category,Kategori,
 Category Name,Kategori Adı,
 Caution,Dikkat,
-Central Tax,Merkezi Vergi,
-Certification,Belgeleme,
+Central Tax,Merkez vergisi,
+Certification,belgeleme,
 Cess,Cess,
 Change Amount,Değişim Miktarı,
 Change Item Code,Öğe Kodunu Değiştir,
 Change Release Date,Yayın Tarihi Değiştir,
 Change Template Code,Şablon Kodunu Değiştir,
 Changing Customer Group for the selected Customer is not allowed.,Seçilen Müşteri için Müşteri Grubunu değiştirmeye izin verilmiyor.,
-Chapter,Bölüm,
+Chapter,bölüm,
 Chapter information.,Bölüm bilgileri.,
 Charge of type 'Actual' in row {0} cannot be included in Item Rate,Satır {0}'daki 'Gerçek' ücret biçimi Ürün Br.Fiyatına dahil edilemez,
-Chargeble,Masrafa tabi,
+Chargeble,chargeble,
 Charges are updated in Purchase Receipt against each item,Ücretler her öğenin karşı Satınalma Fiş güncellenir,
 "Charges will be distributed proportionately based on item qty or amount, as per your selection","Masraflar orantılı seçiminize göre, madde qty veya miktarına göre dağıtılmış olacak",
 Chart of Cost Centers,Maliyet Merkezlerinin Grafikleri,
 Check all,Tümünü kontrol,
-Checkout,Çıkış yap,
+Checkout,Çıkış yapmak,
 Chemical,Kimyasal,
 Cheque,Çek,
 Cheque/Reference No,Çek / Referans No,
 Cheques Required,Çekler Gerekli,
 Cheques and Deposits incorrectly cleared,Çekler ve Mevduat yanlış temizlenir,
 Child Task exists for this Task. You can not delete this Task.,Bu Görev için Alt Görev var. Bu Görevi silemezsiniz.,
-Child nodes can be only created under 'Group' type nodes,Çocuk düğümleri sadece 'Grup' tür düğüm altında oluşturulabilir,
+Child nodes can be only created under 'Group' type nodes,Çocuk düğümleri sadece &#39;Grup&#39; tür düğüm altında oluşturulabilir,
 Child warehouse exists for this warehouse. You can not delete this warehouse.,Bu depoya ait alt depo bulunmaktadır. Bu depoyu silemezsiniz.,
 Circular Reference Error,Dairesel Referans Hatası,
 City,İl,
 City/Town,İl / İlçe,
-Claimed Amount,Talep Edilen Tutar,
+Claimed Amount,İddia Edilen Tutar,
 Clay,Kil,
 Clear filters,Filtreleri temizle,
 Clear values,Değerleri temizle,
 Clearance Date,Gümrükleme Tarih,
 Clearance Date not mentioned,Gümrükleme Tarih belirtilmeyen,
 Clearance Date updated,Gümrükleme Tarihi güncellendi,
-Client,Client,
-Client ID,Client ID,
-Client Secret,Client Secret,
+Client,Müşteri:,
+Client ID,Müşteri Kimliği,
+Client Secret,Müşteri Gizliliği,
 Clinical Procedure,Klinik Prosedür,
 Clinical Procedure Template,Klinik Prosedür Şablonu,
 Close Balance Sheet and book Profit or Loss.,Bilançoyu Kapat ve Kar veya Zararı ayır.,
 Close Loan,Krediyi Kapat,
-Close the POS,POSu kapat,
+Close the POS,POS&#39;u kapat,
 Closed,Kapalı,
 Closed order cannot be cancelled. Unclose to cancel.,Kapalı sipariş iptal edilemez. iptal etmek için açıklamak.,
-Closing (Cr),Kapanış (Alacak),
-Closing (Dr),Kapanış (Borç),
+Closing (Cr),Kapanış (Cr),
+Closing (Dr),Kapanış (Dr),
 Closing (Opening + Total),Kapanış (Açılış + Toplam),
 Closing Account {0} must be of type Liability / Equity,Hesap {0} Kapanış tipi Sorumluluk / Özkaynak olmalıdır,
 Closing Balance,Kapanış bakiyesi,
 Code,Kod,
-Collapse All,Tümünü Daralt,
+Collapse All,Tüm daraltmak,
 Color,Renk,
 Colour,Renk,
-Combined invoice portion must equal 100%,Birleşik fatura kısmı %100'e eşit olmalıdır,
+Combined invoice portion must equal 100%,Kombine fatura payı% 100&#39;e eşit olmalıdır,
 Commercial,Ticari,
-Commission,Komisyon,
-Commission Rate %,Komisyon Oranı %,
+Commission,komisyon,
+Commission Rate %,Komisyon oranı %,
 Commission on Sales,Satış Komisyonu,
 Commission rate cannot be greater than 100,Komisyon oranı 100'den fazla olamaz,
-Community Forum,Topluluk Forumu,
+Community Forum,Forum,
 Company (not Customer or Supplier) master.,Şirket (değil Müşteri veya alanı) usta.,
-Company Abbreviation,Şirket Kısaltması,
+Company Abbreviation,Şirket kısaltma,
 Company Abbreviation cannot have more than 5 characters,Şirket Kısaltması 5 karakterden uzun olamaz,
 Company Name,Firma Adı,
 Company Name cannot be Company,Şirket Adı olamaz,
@@ -578,41 +576,41 @@
 Company {0} does not exist,Şirket {0} yok,
 Compensatory Off,Telafi İzni,
 Compensatory leave request days not in valid holidays,Telafi izin isteme günleri geçerli tatil günlerinde geçerli değildir,
-Complaint,Şikâyet,
+Complaint,şikâyet,
 Completion Date,Bitiş Tarihi,
 Computer,Bilgisayar,
 Condition,Koşul,
 Configure,Yapılandır,
-Configure {0},{0} Yapılandır,
+Configure {0},{0} yapılandırın,
 Confirmed orders from Customers.,Müşteriler Siparişi Onaylandı.,
-Connect Amazon with ERPNext,Amazon'u ERPNext ile bağlayın,
-Connect Shopify with ERPNext,ERPNext ile Shopify'ı bağlayın,
-Connect to Quickbooks,Quickbooks'a bağlan,
+Connect Amazon with ERPNext,Amazon&#39;u ERPNext ile bağlayın,
+Connect Shopify with ERPNext,ERPNext ile Shopify&#39;ı bağlayın,
+Connect to Quickbooks,Quickbooks&#39;a bağlan,
 Connected to QuickBooks,QuickBooks’a bağlandı,
-Connecting to QuickBooks,QuickBooks'a Bağlanma,
-Consultation,İstişare,
-Consultations,İstişareler,
+Connecting to QuickBooks,QuickBooks&#39;a Bağlanma,
+Consultation,konsültasyon,
+Consultations,istişareler,
 Consulting,Danışmanlık,
-Consumable,Tüketilir,
-Consumed,Tüketilen,
+Consumable,tüketilir,
+Consumed,tüketilen,
 Consumed Amount,Tüketilen Tutar,
-Consumed Qty,Tüketilen Miktar,
-Consumer Products,Tüketici Ürünleri,
-Contact,İlgili Kişiler,
+Consumed Qty,Tüketilen Adet,
+Consumer Products,Tüketici ürünleri,
+Contact,İrtibat,
 Contact Details,İletişim Bilgileri,
-Contact Number,İletişim Numarası,
-Contact Us,Bize ulaşın,
+Contact Number,İletişim numarası,
+Contact Us,Bizimle iletişime geçin,
 Content,İçerik,
 Content Masters,İçerik Masters,
 Content Type,İçerik Türü,
-Continue Configuration,Yapılandırmaya Devam et,
-Contract,Sözleşme,
+Continue Configuration,Yapılandırmaya Devam Et,
+Contract,sözleşme,
 Contract End Date must be greater than Date of Joining,Sözleşme Bitiş tarihi Katılma tarihinden büyük olmalıdır,
 Contribution %,Katkı%,
 Contribution Amount,Katkı Tutarı,
 Conversion factor for default Unit of Measure must be 1 in row {0},Tedbir varsayılan Birimi için dönüşüm faktörü satırda 1 olmalıdır {0},
 Conversion rate cannot be 0 or 1,Dönüşüm oranı 0 veya 1 olamaz,
-Convert to Group,Gruba Dönüştür,
+Convert to Group,Gruba Dönüştürmek,
 Convert to Non-Group,Olmayan gruba dönüştürme,
 Cosmetics,Bakım ürünleri,
 Cost Center,Maliyet Merkezi,
@@ -627,12 +625,12 @@
 Cost of Delivered Items,Teslim Öğeler Maliyeti,
 Cost of Goods Sold,Satışların Maliyeti,
 Cost of Issued Items,İhraç Öğeler Maliyeti,
-Cost of New Purchase,Yeni Satınalma Maliyeti,
+Cost of New Purchase,Yeni Satın Alma Maliyeti,
 Cost of Purchased Items,Satın Öğeler Maliyeti,
 Cost of Scrapped Asset,Hurdaya Varlığın Maliyeti,
 Cost of Sold Asset,Satılan Varlığın Maliyeti,
 Cost of various activities,Çeşitli faaliyetler Maliyeti,
-"Could not create Credit Note automatically, please uncheck 'Issue Credit Note' and submit again","Otomatik olarak Kredi Notu oluşturulamadı, lütfen 'Kredi Notunu Ver' seçeneğinin işaretini kaldırın ve tekrar gönderin",
+"Could not create Credit Note automatically, please uncheck 'Issue Credit Note' and submit again","Otomatik olarak Kredi Notu oluşturulamadı, lütfen &#39;Kredi Notunu Ver&#39; seçeneğinin işaretini kaldırın ve tekrar gönderin",
 Could not generate Secret,Gizli oluşturulamadı,
 Could not retrieve information for {0}.,{0} için bilgi alınamadı.,
 Could not solve criteria score function for {0}. Make sure the formula is valid.,{0} için ölçüt puanı işlevi çözülemedi. Formülün geçerli olduğundan emin olun.,
@@ -640,79 +638,79 @@
 Could not submit some Salary Slips,Bazı Maaş Fişleri gönderilemedi,
 "Could not update stock, invoice contains drop shipping item.","Stok güncelleme olamazdı, fatura damla nakliye öğe içeriyor.",
 Country wise default Address Templates,Ülke bilgisi varsayılan adres şablonları,
-Course,Kurs,
-Course Code: ,Kurs Kodu: ,
+Course,kurs,
+Course Code: ,Kurs kodu:,
 Course Enrollment {0} does not exists,{0} ders kaydı mevcut değil,
 Course Schedule,Kurs programı,
-Course: ,Ders: ,
-Cr,Alacak,
+Course: ,Ders:,
+Cr,Cr,
 Create,Oluştur,
 Create BOM,Malzeme Listesi Oluştur,
 Create Delivery Trip,Teslimat Gezisi Oluştur,
-Create Disbursement Entry,Harcama Girişi Oluştur,
-Create Employee,Personel Oluştur,
-Create Employee Records,Personel Kayıtları Oluştur,
-"Create Employee records to manage leaves, expense claims and payroll","İzinleri, harcama talepleri ve bordro yönetmek için Çalışan kaydı oluşturma",
-Create Fee Schedule,Ücret Tarifesi Oluştur,
-Create Fees,Ücret Oluştur,
-Create Inter Company Journal Entry,Şirketler Arası Yevmiye Kaydı Oluştur,
-Create Invoice,Fatura Oluştur,
-Create Invoices,Fatura Oluştur,
+Create Disbursement Entry,Ödeme Girişi Oluştur,
+Create Employee,Çalışan Oluştur,
+Create Employee Records,Çalışan Kayıtları Oluşturma,
+"Create Employee records to manage leaves, expense claims and payroll","Yaprakları, harcama talepleri ve bordro yönetmek için Çalışan kaydı oluşturma",
+Create Fee Schedule,Ücret Tarifesi Yarat,
+Create Fees,Ücret Yarat,
+Create Inter Company Journal Entry,Şirketler Arası Dergi Girişi Oluşturma,
+Create Invoice,Fatura oluşturmak,
+Create Invoices,Fatura Yaratın,
 Create Job Card,İş kartı oluştur,
-Create Journal Entry,Yevmiye Kaydı Oluştur,
-Create Lead,Aday Oluştur,
-Create Leads,Adayları Oluştur,
-Create Maintenance Visit,Bakım Ziyareti Oluştur,
-Create Material Request,Malzeme Talebi Oluştur,
-Create Multiple,Çoklu Oluştur,
-Create Opening Sales and Purchase Invoices,Açılış Satış ve Satınalma Faturası Oluştur,
+Create Journal Entry,Dergi Girişi Oluştur,
+Create Lead,Kurşun Yarat,
+Create Leads,İlanlar oluştur,
+Create Maintenance Visit,Bakım Ziyareti Yaratın,
+Create Material Request,Malzeme Talebi Yaratın,
+Create Multiple,Çoklu oluştur,
+Create Opening Sales and Purchase Invoices,Açılış Satışları ve Satınalma Faturaları Yaratın,
 Create Payment Entries,Ödeme Girişleri Oluştur,
 Create Payment Entry,Ödeme Girişi Oluştur,
 Create Print Format,Baskı Biçimi Oluştur,
-Create Purchase Order,Satınalma Siparişi Oluştur,
-Create Purchase Orders,Satınalma Siparişleri Oluştur,
-Create Quotation,Teklif Oluştur,
-Create Salary Slip,Maaş Bordrosu Oluştur,
-Create Salary Slips,Maaş Bordroları Oluştur,
-Create Sales Invoice,Satış Faturası Oluştur,
-Create Sales Order,Satış Siparişi Oluştur,
-Create Sales Orders to help you plan your work and deliver on-time,İşinizi planlamanıza ve zamanında teslim etmenize yardımcı olacak Satış Siparişleri oluşturun,
-Create Sample Retention Stock Entry,Numune Saklama Stok Kaydı Oluştur,
-Create Student,Öğrenci Oluştur,
+Create Purchase Order,Satınalma Siparişi Yaratın,
+Create Purchase Orders,Satınalma Siparişleri oluşturun,
+Create Quotation,Teklif oluşturma,
+Create Salary Slip,Maaş Makbuzu Oluştur,
+Create Salary Slips,Maaş Fişleri Oluştur,
+Create Sales Invoice,Satış Faturası Yaratın,
+Create Sales Order,Müşteri Siparişi Yaratın,
+Create Sales Orders to help you plan your work and deliver on-time,Çalışmanızı planlamanıza ve zamanında teslim etmenize yardımcı olacak Satış Siparişleri oluşturun,
+Create Sample Retention Stock Entry,Örnek Tutma Stok Girişi,
+Create Student,Öğrenci Yarat,
 Create Student Batch,Öğrenci Grubu Oluştur,
 Create Student Groups,Öğrenci Grupları Oluşturma,
-Create Supplier Quotation,Tedarikçi Teklifi Oluştur,
+Create Supplier Quotation,Tedarikçi Teklifi Yarat,
 Create Tax Template,Vergi Şablonu Oluştur,
 Create Timesheet,Zaman Çizelgesi Oluştur,
-Create User,Kullanıcı Oluştur,
-Create Users,Kullanıcıları Oluştur,
+Create User,Kullanıcı oluştur,
+Create Users,Kullanıcılar oluştur,
 Create Variant,Varyant Oluştur,
 Create Variants,Varyantları Oluştur,
 "Create and manage daily, weekly and monthly email digests.","Günlük, haftalık ve aylık e-posta özetleri oluştur.",
-Create customer quotes,Müşteri Teklifi Oluştur,
+Create customer quotes,Müşteri tırnak oluşturun,
 Create rules to restrict transactions based on values.,Değerlere dayalı işlemleri kısıtlamak için kurallar oluşturun.,
 Created {0} scorecards for {1} between: ,{1} için {0} puan kartını şu aralıklarla oluşturdu:,
 Creating Company and Importing Chart of Accounts,Şirket Kurmak ve Hesap Çizelgesi Alma,
-Creating Fees,Ücret Oluştur,
-Creating Payment Entries......,Ödeme Girişleri Oluşturuluyor...,
-Creating Salary Slips...,Maaş Fişleri Oluşturuluyor...,
-Creating student groups,Öğrenci grupları oluşturuluyor,
-Creating {0} Invoice,{0} Fatura Oluşturuluyor,
-Credit,Alacak,
-Credit ({0}),Alacak ({0}),
-Credit Account,Alacak Hesabı,
-Credit Balance,Alacak Bakiyesi,
-Credit Card,Kredi Kartı,
+Creating Fees,Ücret Yaratmak,
+Creating Payment Entries......,Ödeme Girişleri Oluşturma ......,
+Creating Salary Slips...,Maaş Fişleri Oluşturma ...,
+Creating student groups,Öğrenci grupları oluşturma,
+Creating {0} Invoice,{0} Fatura Oluşturma,
+Credit,Kredi,
+Credit ({0}),Kredi ({0}),
+Credit Account,Kredi hesabı,
+Credit Balance,Alacak bakiyesi,
+Credit Card,Kredi kartı,
 Credit Days cannot be a negative number,Kredi Günleri negatif sayı olamaz,
-Credit Limit,Kredi Limiti,
-Credit Note,Alacak Dekontu,
-Credit Note Amount,Alacak Dekontu Tutarı,
-Credit Note Issued,Alacak Dekontu Düzenlendi,
+Credit Limit,Kredi limiti,
+Credit Note,Kredi mektubu,
+Credit Note Amount,Kredi Not Tutarı,
+Credit Note Issued,Kredi Notu İhraç,
 Credit Note {0} has been created automatically,Kredi Notu {0} otomatik olarak oluşturuldu,
 Credit limit has been crossed for customer {0} ({1}/{2}),Müşteri {0} için ({1} / {2}) kredi limiti geçti.,
 Creditors,Alacaklılar,
-Criteria weights must add up to 100%,Ölçüt ağırlıkları% 100'e varmalıdır,
-Crop Cycle,Mahsul Döngüsü,
+Criteria weights must add up to 100%,Ölçüt ağırlıkları% 100&#39;e varmalıdır,
+Crop Cycle,Mahsul Çevrimi,
 Crops & Lands,Mahsuller ve Arsalar,
 Currency Exchange must be applicable for Buying or for Selling.,Döviz Alış Alış veya Satış için geçerli olmalıdır.,
 Currency can not be changed after making entries using some other currency,Para başka bir para birimini kullanarak girdileri yaptıktan sonra değiştirilemez,
@@ -722,12 +720,12 @@
 Currency of the Closing Account must be {0},Kapanış Hesap Para olmalıdır {0},
 Currency of the price list {0} must be {1} or {2},{0} fiyat listesinin para birimi {1} veya {2} olmalıdır.,
 Currency should be same as Price List Currency: {0},"Para birimi, Fiyat Listesi Para Birimi ile aynı olmalıdır: {0}",
-Current,Mevcut,
-Current Assets,Dönen Varlıklar,
+Current,şimdiki,
+Current Assets,Mevcut Varlıklar,
 Current BOM and New BOM can not be same,Cari BOM ve Yeni BOM aynı olamaz,
-Current Job Openings,Mevcut Açık Pozisyonlar,
+Current Job Openings,Güncel İş Olanakları,
 Current Liabilities,Kısa Vadeli Borçlar,
-Current Qty,Güncel Miktar,
+Current Qty,Güncel Adet,
 Current invoice {0} is missing,Şu fatura {0} eksik,
 Custom HTML,Özel HTML,
 Custom?,Özel?,
@@ -735,15 +733,15 @@
 Customer Addresses And Contacts,Müşteri Adresleri Ve İrtibatları,
 Customer Contact,Müşteri İrtibatı,
 Customer Database.,Müşteri veritabanı.,
-Customer Group,Müşteri Grubu,
-Customer LPO,Müşteri LPO'sı,
+Customer Group,müşteri grubu,
+Customer LPO,Müşteri LPO&#39;sı,
 Customer LPO No.,Müşteri LPO No.,
-Customer Name,Müşteri Adı,
+Customer Name,müşteri adı,
 Customer POS Id,Müşteri POS Kimliği,
 Customer Service,Müşteri Hizmetleri,
 Customer and Supplier,Müşteri ve tedarikçi,
 Customer is required,Müşteri gereklidir,
-Customer isn't enrolled in any Loyalty Program,Müşteri herhangi bir Sadakat Programına kayıtlı değil,
+Customer isn't enrolled in any Loyalty Program,Müşteri herhangi bir Bağlılık Programına kayıtlı değil,
 Customer required for 'Customerwise Discount','Müşteri indirimi' için gereken müşteri,
 Customer {0} does not belong to project {1},Müşteri {0} projeye ait değil {1},
 Customer {0} is created.,Müşteri {0} oluşturuldu.,
@@ -756,7 +754,7 @@
 Daily Work Summary Group,Günlük Çalışma Özet Grubu,
 Data Import and Export,İçeri/Dışarı Aktar,
 Data Import and Settings,Veri Alma ve Ayarlar,
-Database of potential customers.,Potansiyel Müşteri Veritabanı.,
+Database of potential customers.,Potansiyel müşterilerin Veritabanı.,
 Date Format,Tarih Biçimi,
 Date Of Retirement must be greater than Date of Joining,Emeklilik Tarihi katılım tarihinden büyük olmalıdır,
 Date is repeated,Tarih tekrarlanır,
@@ -765,30 +763,30 @@
 Date of Commencement should be greater than Date of Incorporation,Başlangıç tarihi kuruluş tarihinden daha büyük olmalıdır.,
 Date of Joining,Katılma Tarihi,
 Date of Joining must be greater than Date of Birth,Katılım Tarihi Doğum Tarihinden büyük olmalıdır,
-Date of Transaction,İşlemin Tarihi,
+Date of Transaction,İşlem tarihi,
 Datetime,Tarihzaman,
 Day,Gün,
-Debit,Borç,
-Debit ({0}),Borç ({0}),
-Debit A/C Number,Borç A/C Numarası,
-Debit Account,Borç Hesabı,
-Debit Note,Borç Dekontu,
-Debit Note Amount,Borç Dekont Tutarı,
-Debit Note Issued,Borç Senedi Düzenlendi,
+Debit,borç,
+Debit ({0}),Borçlanma ({0}),
+Debit A/C Number,Borç A / C Numarası,
+Debit Account,Borç hesabı,
+Debit Note,Borç dekontu,
+Debit Note Amount,Borç Not Tutarı,
+Debit Note Issued,Borç Dekontu İhraç,
 Debit To is required,Bankamatik To gereklidir,
 Debit and Credit not equal for {0} #{1}. Difference is {2}.,Borç ve Kredi {0} # için eşit değil {1}. Fark {2}.,
 Debtors,Borçlular,
 Debtors ({0}),Borçlular ({0}),
 Declare Lost,Kayıp Beyanı,
-Deduction,Kesinti,
+Deduction,kesinti,
 Default Activity Cost exists for Activity Type - {0},Standart Etkinliği Maliyet Etkinlik Türü için var - {0},
 Default BOM ({0}) must be active for this item or its template,Standart BOM ({0}) Bu öğe veya şablon için aktif olmalıdır,
 Default BOM for {0} not found,{0} bulunamadı için varsayılan BOM,
 Default BOM not found for Item {0} and Project {1},Öğe {0} ve Proje {1} için varsayılan BOM bulunamadı,
-Default Letter Head,Varsayılan Yazı Başlığı,
+Default Letter Head,Mektubu Başkanı Standart,
 Default Tax Template,Varsayılan Vergi Şablonu,
 Default Unit of Measure for Item {0} cannot be changed directly because you have already made some transaction(s) with another UOM. You will need to create a new Item to use a different Default UOM.,Zaten başka Ölçü Birimi bazı işlem (ler) yaptık çünkü Öğe için Ölçü Varsayılan Birim {0} doğrudan değiştirilemez. Farklı Standart Ölçü Birimi kullanmak için yeni bir öğe oluşturmanız gerekecektir.,
-Default Unit of Measure for Variant '{0}' must be same as in Template '{1}',Variant için Ölçü Varsayılan Birim '{0}' Şablon aynı olmalıdır '{1}',
+Default Unit of Measure for Variant '{0}' must be same as in Template '{1}',Variant için Ölçü Varsayılan Birim &#39;{0}&#39; Şablon aynı olmalıdır &#39;{1}&#39;,
 Default settings for buying transactions.,Alış İşlemleri için varsayılan ayarlar.,
 Default settings for selling transactions.,Satış İşlemleri için  varsayılan ayarlar.,
 Default tax templates for sales and purchase are created.,Satışlar ve satın alımlar için varsayılan vergi şablonları oluşturulmuştur.,
@@ -797,19 +795,17 @@
 Define Project type.,Proje türünü tanımlayın.,
 Define budget for a financial year.,Bir mali yıl için bütçeyi tanımlayın.,
 Define various loan types,Çeşitli kredi türlerini tanımlama,
-Del,Sil,
+Del,Del,
 Delay in payment (Days),Ödeme Gecikme (Gün),
-Delete Transactions,İşlemleri Sil,
 Delete all the Transactions for this Company,Bu şirket için bütün İşlemleri sil,
-Delete Accounting and Stock Ledger Entries on deletion of Transaction,İşlem Silindiğinde Muhasebe ve Stok Girişlerini Sil,
 Deletion is not permitted for country {0},{0} ülke için silme işlemine izin verilmiyor,
 Delivered,Teslim Edildi,
-Delivered Amount,Teslim Edilen Tutar,
+Delivered Amount,Teslim Tutar,
 Delivered Qty,Teslim Edilen Miktar,
 Delivered: {0},Teslim: {0},
 Delivery,İrsaliye,
 Delivery Date,İrsaliye Tarihi,
-Delivery Note,Satış İrsaliyesi,
+Delivery Note,İrsaliye,
 Delivery Note {0} is not submitted,İrsaliye {0} teslim edilmedi,
 Delivery Note {0} must not be submitted,İrsaliye {0} teslim edilmemelidir,
 Delivery Notes {0} must be cancelled before cancelling this Sales Order,Satış Emri iptal edilmeden önce İrsaliyeler {0} iptal edilmelidir,
@@ -818,26 +814,26 @@
 Delivery Trip,Teslimat Gezisi,
 Delivery warehouse required for stock item {0},Teslim depo stok kalemi için gerekli {0},
 Department,Departman,
-Department Stores,Alışveriş Mağazaları,
+Department Stores,Departman mağazaları,
 Depreciation,Amortisman,
 Depreciation Amount,Amortisman Tutarı,
 Depreciation Amount during the period,döneminde Amortisman Tutarı,
 Depreciation Date,Amortisman Tarihi,
 Depreciation Eliminated due to disposal of assets,Amortisman nedeniyle varlıkların elden çıkarılması elendi,
-Depreciation Entry,Amortisman Kaydı,
+Depreciation Entry,Amortisman kayıt,
 Depreciation Method,Amortisman Yöntemi,
 Depreciation Row {0}: Depreciation Start Date is entered as past date,Amortisman Satırı {0}: Amortisman Başlangıç Tarihi geçmiş olarak girildi,
 Depreciation Row {0}: Expected value after useful life must be greater than or equal to {1},"Amortisör Satırı {0}: Faydalı ömür sonrasında beklenen değer, {1} değerinden büyük veya ona eşit olmalıdır.",
-Depreciation Row {0}: Next Depreciation Date cannot be before Available-for-use Date,"Amortisör Satırı {0}: Sonraki Amortisman Tarihi, Kullanıma hazır Tarih'ten önce olamaz",
-Depreciation Row {0}: Next Depreciation Date cannot be before Purchase Date,"Amortisör Satırı {0}: Sonraki Amortisman Tarihi, Satınalma Tarihinden önce olamaz",
-Designer,Tasarımcı,
+Depreciation Row {0}: Next Depreciation Date cannot be before Available-for-use Date,"Amortisör Satırı {0}: Sonraki Amortisman Tarihi, Kullanıma hazır Tarih&#39;ten önce olamaz",
+Depreciation Row {0}: Next Depreciation Date cannot be before Purchase Date,"Amortisör Satırı {0}: Sonraki Amortisman Tarihi, Satın Alma Tarihinden önce olamaz",
+Designer,tasarımcı,
 Detailed Reason,Ayrıntılı Sebep,
-Details,Ayrıntılar,
+Details,ayrıntılar,
 Details of Outward Supplies and inward supplies liable to reverse charge,Dışa Sarf Malzemelerinin ve geri beslemeden sorumlu olan iç sarf malzemelerinin ayrıntıları,
 Details of the operations carried out.,Operasyonların detayları gerçekleştirdi.,
 Diagnosis,tanı,
 Did not find any item called {0},{0} kalemi bulunamadı,
-Diff Qty,Fark Miktarı,
+Diff Qty,Diff Adet,
 Difference Account,Fark Hesabı,
 "Difference Account must be a Asset/Liability type account, since this Stock Reconciliation is an Opening Entry",Bu Stok Mutabakatı bir Hesap Açılış Kaydı olduğundan fark hesabının aktif ya da pasif bir hesap tipi olması gerekmektedir,
 Difference Amount,Fark tutarı,
@@ -879,31 +875,31 @@
 Donor Type information.,Donör Türü bilgileri.,
 Donor information.,Bağışçı bilgileri.,
 Download JSON,JSON indir,
-Draft,Taslak,
-Drop Ship,Drop Ship,
+Draft,taslak,
+Drop Ship,Bırak Gemi,
 Drug,İlaç,
 Due / Reference Date cannot be after {0},Due / Referans Tarihi sonra olamaz {0},
-Due Date cannot be before Posting / Supplier Invoice Date,Son Ödeme Tarihi Gönderim / Tedarikçi Fatura Tarihi'nden önce olamaz,
+Due Date cannot be before Posting / Supplier Invoice Date,Son Ödeme Tarihi Gönderim / Tedarikçi Fatura Tarihi&#39;nden önce olamaz,
 Due Date is mandatory,Due Date zorunludur,
 Duplicate Entry. Please check Authorization Rule {0},Girişi çoğaltın. Yetkilendirme Kuralı kontrol edin {0},
 Duplicate Serial No entered for Item {0},Çoğaltın Seri No Ürün için girilen {0},
 Duplicate customer group found in the cutomer group table,cutomer grubu tablosunda bulunan yinelenen müşteri grubu,
-Duplicate entry,Kaydı Kopyala,
+Duplicate entry,Girdiyi Kopyala,
 Duplicate item group found in the item group table,öğe grubu tablosunda bulunan yinelenen öğe grubu,
 Duplicate roll number for student {0},{0} öğrencisi için yinelenen rulo numarası,
 Duplicate row {0} with same {1},Satır {0} ı  {1} ile aynı biçimde kopyala,
 Duplicate {0} found in the table,Tabloda {0} yinelenen kopya,
-Duration in Days,Süre gün,
+Duration in Days,Günlerde Süre,
 Duties and Taxes,Harç ve Vergiler,
 E-Invoicing Information Missing,E-Faturalama Bilgisi Eksik,
 ERPNext Demo,ERPNext Demosu,
 ERPNext Settings,ERPNext Ayarları,
-Earliest,En erken,
+Earliest,en erken,
 Earnest Money,Kaparo,
 Earning,Kazanma,
 Edit,Düzenle,
 Edit Publishing Details,Yayınlama Ayrıntılarını Düzenle,
-"Edit in full page for more options like assets, serial nos, batches etc.","Öğeler, seri no'lar, gruplar vb. Gibi daha fazla seçenek için tam sayfayı düzenleyin.",
+"Edit in full page for more options like assets, serial nos, batches etc.","Öğeler, seri no&#39;lar, gruplar vb. Gibi daha fazla seçenek için tam sayfayı düzenleyin.",
 Education,Eğitim,
 Either location or employee must be required,Yer veya çalışan gerekli olmalıdır,
 Either target qty or target amount is mandatory,Hedef miktarı veya hedef tutarı zorunludur,
@@ -913,24 +909,24 @@
 Electronics,Elektronik,
 Eligible ITC,Uygun ITC,
 Email Account,E-posta Hesabı,
-Email Address,E-posta Adresi,
+Email Address,E,
 "Email Address must be unique, already exists for {0}","{0} E-posta adresi zaten var, benzersiz olmalıdır.",
-Email Digest: ,E-posta Digest: ,
+Email Digest: ,Digest e-posta:,
 Email Reminders will be sent to all parties with email contacts,E-posta Hatırlatıcıları e-posta ile tüm taraflara gönderilecektir,
 Email Sent,E-posta Gönderilmiş,
-Email Template,E-posta Şablonu,
+Email Template,E-posta şablonu,
 Email not found in default contact,Varsayılan iletişimde e-posta bulunamadı,
 Email sent to {0},E-posta gönderildi {0},
-Employee,Personel,
-Employee A/C Number,Personel A/C Numarası,
-Employee Advances,Personel Avansları,
-Employee Benefits,Personele sağlanan faydalar,
-Employee Grade,Personel notu,
-Employee ID,Personel kimliği,
-Employee Lifecycle,Personel Yaşam Döngüsü,
-Employee Name,Personel Adı,
+Employee,Çalışan,
+Employee A/C Number,Çalışan A / C Numarası,
+Employee Advances,Çalışan Gelişmeleri,
+Employee Benefits,Çalışanlara sağlanan faydalar,
+Employee Grade,Çalışan notu,
+Employee ID,Çalışan kimliği,
+Employee Lifecycle,Çalışan Yaşam Döngüsü,
+Employee Name,Çalışan Adı,
 Employee Promotion cannot be submitted before Promotion Date ,Çalışan Promosyonu Promosyon Tarihinden önce gönderilemez,
-Employee Referral,Personel başvurusu,
+Employee Referral,İşçi başvurusu,
 Employee Transfer cannot be submitted before Transfer Date ,Devir tarihinden önce çalışan transferi yapılamaz.,
 Employee cannot report to himself.,Çalışan kendi kendine rapor olamaz.,
 Employee relieved on {0} must be set as 'Left',"{0} üzerinde bırakılan işçi 'ayrılı' olarak ayarlanmalıdır""",
@@ -944,19 +940,19 @@
 Enable,Etkinleştir,
 Enable / disable currencies.,/ Para birimlerini etkinleştir/devre dışı bırak.,
 Enabled,Etkin,
-"Enabling 'Use for Shopping Cart', as Shopping Cart is enabled and there should be at least one Tax Rule for Shopping Cart","Etkinleştirme Alışveriş Sepeti etkin olarak, 'Alışveriş Sepeti için kullan' ve Alışveriş Sepeti için en az bir vergi Kural olmalıdır",
-End Date,Bitiş Tarihi,
+"Enabling 'Use for Shopping Cart', as Shopping Cart is enabled and there should be at least one Tax Rule for Shopping Cart","Etkinleştirme Alışveriş Sepeti etkin olarak, &#39;Alışveriş Sepeti için kullan&#39; ve Alışveriş Sepeti için en az bir vergi Kural olmalıdır",
+End Date,Bitiş tarihi,
 End Date can not be less than Start Date,"Bitiş Tarihi, Başlangıç Tarihinden az olamaz",
-End Date cannot be before Start Date.,"Bitiş Tarihi, Başlangıç Tarihi'nden önce olamaz.",
-End Year,Bitiş Yılı,
+End Date cannot be before Start Date.,"Bitiş Tarihi, Başlangıç Tarihi&#39;nden önce olamaz.",
+End Year,bitiş yılı,
 End Year cannot be before Start Year,Yıl Sonu Başlangıç Yıl önce olamaz,
-End on,Bitiş Tarihi,
+End on,Bitiş tarihi,
 End time cannot be before start time,Bitiş saati başlangıç saatinden önce olamaz,
-Ends On date cannot be before Next Contact Date.,"Bitiş Tarihi, Sonraki İletişim Tarihi'nden önce olamaz.",
+Ends On date cannot be before Next Contact Date.,"Bitiş Tarihi, Sonraki İletişim Tarihi&#39;nden önce olamaz.",
 Energy,Enerji,
 Engineer,Mühendis,
 Enough Parts to Build,Yeter Parçaları Build,
-Enroll,Kaydet,
+Enroll,kaydetmek,
 Enrolling student,kaydolunan öğrenci,
 Enrolling students,Öğrencileri kaydettirme,
 Enter depreciation details,Amortisman bilgilerini girin,
@@ -967,7 +963,7 @@
 Entertainment & Leisure,Eğlence ve Boş Zaman,
 Entertainment Expenses,Eğlence giderleri,
 Equity,Özkaynak,
-Error Log,Hata Günlüğü,
+Error Log,hata Günlüğü,
 Error evaluating the criteria formula,Kriter formülünü değerlendirirken hata oluştu,
 Error in formula or condition: {0},Formül ya da durumun hata: {0},
 Error: Not a valid id?,Hata: Geçerli bir kimliği?,
@@ -977,7 +973,7 @@
 Event,Faaliyet,
 Event Location,Etkinlik Yeri,
 Event Name,Etkinlik Adı,
-Exchange Gain/Loss,Kambiyo Kâr ve Zararı,
+Exchange Gain/Loss,Kambiyo Kâr / Zarar,
 Exchange Rate Revaluation master.,Döviz Kuru Yeniden Değerleme ana.,
 Exchange Rate must be same as {0} {1} ({2}),Döviz Kuru aynı olmalıdır {0} {1} ({2}),
 Excise Invoice,Tüketim Fatura,
@@ -988,21 +984,21 @@
 Expected Delivery Date should be after Sales Order Date,"Beklenen Teslim Tarihi, Satış Sipariş Tarihinden sonra olmalıdır",
 Expected End Date,Beklenen Bitiş Tarihi,
 Expected Hrs,Beklenen Saat,
-Expected Start Date,Beklenen Baş. Tarihi,
-Expense,Gider,
-"Expense / Difference account ({0}) must be a 'Profit or Loss' account","Gider / Fark hesabı({0}), bir 'Kar veya Zarar' hesabı olmalıdır",
+Expected Start Date,Beklenen BaşlangıçTarihi,
+Expense,gider,
+Expense / Difference account ({0}) must be a 'Profit or Loss' account,"Gider / Fark hesabı({0}), bir 'Kar veya Zarar' hesabı olmalıdır",
 Expense Account,Gider Hesabı,
-Expense Claim,Masraf Talebi,
-Expense Claim for Vehicle Log {0},Araç giriş için Masraf Talebi {0},
-Expense Claim {0} already exists for the Vehicle Log,Masraf Talep {0} zaten Araç giriş için var,
-Expense Claims,Masraf Talepleri,
+Expense Claim,Gider Talebi,
+Expense Claim for Vehicle Log {0},Araç giriş için Gider Talep {0},
+Expense Claim {0} already exists for the Vehicle Log,Gider Talep {0} zaten Araç giriş için var,
+Expense Claims,Gider İddiaları,
 Expense account is mandatory for item {0},Ürün {0} için gider hesabı zorunludur,
-Expenses,Giderler,
+Expenses,giderler,
 Expenses Included In Asset Valuation,Varlık Değerlemesine Dahil Olan Giderler,
-Expenses Included In Valuation,Değerlemeye dahil Giderler,
-Expired Batches,Süresi Biten Partiler,
+Expenses Included In Valuation,Değerlemeye dahil giderler,
+Expired Batches,Süresi dolan Toplu İşler,
 Expires On,Tarihinde sona eriyor,
-Expiring On,Sona erme tarihi,
+Expiring On,Süresi doldu,
 Expiry (In Days),(Gün) Son Kullanma,
 Explore,Keşfet!,
 Export E-Invoices,E-Faturaları Dışa Aktar,
@@ -1034,47 +1030,48 @@
 Fields,Alanlar,
 Fill the form and save it,Formu doldurun ve kaydedin,
 Filter Employees By (Optional),Çalışanları ... ile Filtrele (Opsiyonel),
+"Filter Fields Row #{0}: Fieldname <b>{1}</b> must be of type ""Link"" or ""Table MultiSelect""",Filtre Alanları Satırı # {0}: <b>{1} alan adı</b> &quot;Link&quot; veya &quot;Table MultiSelect&quot; tipinde olmalıdır,
 Filter Total Zero Qty,Toplam Sıfır Miktar Filtresi,
 Finance Book,Finans Kitabı,
 Financial / accounting year.,Mali / muhasebe yılı.,
 Financial Services,Finansal hizmetler,
 Financial Statements,Finansal Tablolar,
-Financial Year,Mali Yıl,
+Financial Year,Mali yıl,
 Finish,Bitiş,
 Finished Good,İyi bitti,
 Finished Good Item Code,Bitmiş iyi ürün kodu,
 Finished Goods,Mamüller,
 Finished Item {0} must be entered for Manufacture type entry,Öğe bitirdi {0} imalatı tipi giriş için girilmelidir,
 Finished product quantity <b>{0}</b> and For Quantity <b>{1}</b> cannot be different,Bitmiş ürün miktarı <b>{0}</b> ve Miktar <b>{1}</b> için farklı olamaz,
-First Name,Adı,
+First Name,Ad,
 "Fiscal Regime is mandatory, kindly set the fiscal regime in the company {0}","Mali rejim zorunludur, lütfen {0} şirketindeki mali rejimi ayarlayın.",
-Fiscal Year,Mali Yıl,
-Fiscal Year End Date should be one year after Fiscal Year Start Date,"Mali Yıl Sonu Tarihi, Mali Yıl Başlama Tarihi'nden bir yıl sonra olmalıdır",
+Fiscal Year,Mali yıl,
+Fiscal Year End Date should be one year after Fiscal Year Start Date,"Mali Yıl Sonu Tarihi, Mali Yıl Başlama Tarihi&#39;nden bir yıl sonra olmalıdır",
 Fiscal Year Start Date and Fiscal Year End Date are already set in Fiscal Year {0},Mali Yıl {0} da Mali Yıl Başlangıç Tarihi ve Mali Yıl Bitiş Tarihi zaten ayarlanmış,
 Fiscal Year Start Date should be one year earlier than Fiscal Year End Date,Mali Yıl Başlangıç Tarihi Mali Yıl Bitiş Tarihinden bir yıl önce olmalıdır.,
-Fiscal Year {0} does not exist,Mali Yıl {0} yok,
-Fiscal Year {0} is required,Mali Yıl {0} gereklidir,
+Fiscal Year {0} does not exist,Mali yıl {0} yok,
+Fiscal Year {0} is required,Mali yıl {0} gereklidir,
 Fiscal Year {0} not found,bulunamadı Mali Yılı {0},
 Fixed Asset,Sabit Varlık,
 Fixed Asset Item must be a non-stock item.,Sabit Kıymet Öğe olmayan bir stok kalemi olmalıdır.,
 Fixed Assets,Duran Varlıklar,
 Following Material Requests have been raised automatically based on Item's re-order level,Malzeme İstekleri ardından öğesinin yeniden sipariş seviyesine göre otomatik olarak gündeme gelmiş,
-Following accounts might be selected in GST Settings:,GST Ayarları'nda aşağıdaki hesaplar seçilebilir:,
+Following accounts might be selected in GST Settings:,GST Ayarları&#39;nda aşağıdaki hesaplar seçilebilir:,
 Following course schedules were created,Aşağıdaki ders programları oluşturuldu,
 Following item {0} is not marked as {1} item. You can enable them as {1} item from its Item master,"Aşağıdaki {0} öğesi, {1} öğesi olarak işaretlenmemiş. Öğeleri ana öğesinden {1} öğe olarak etkinleştirebilirsiniz",
 Following items {0} are not marked as {1} item. You can enable them as {1} item from its Item master,"Aşağıdaki {0} öğeler, {1} öğe olarak işaretlenmemiş. Öğeleri ana öğesinden {1} öğe olarak etkinleştirebilirsiniz",
 Food,Yiyecek Grupları,
 "Food, Beverage & Tobacco","Gıda, İçecek ve Tütün",
 For,İçin,
-"For 'Product Bundle' items, Warehouse, Serial No and Batch No will be considered from the 'Packing List' table. If Warehouse and Batch No are same for all packing items for any 'Product Bundle' item, those values can be entered in the main Item table, values will be copied to 'Packing List' table.","'Ürün Bundle' öğeler, Depo, Seri No ve Toplu No 'Ambalaj Listesi' tablodan kabul edilecektir. Depo ve Toplu Hayır herhangi bir 'Ürün Bundle' öğe için tüm ambalaj öğeler için aynı ise, bu değerler ana Öğe tabloda girilebilir, değerler tablosu 'Listesi Ambalaj' kopyalanacaktır.",
-For Employee,Personel için,
+"For 'Product Bundle' items, Warehouse, Serial No and Batch No will be considered from the 'Packing List' table. If Warehouse and Batch No are same for all packing items for any 'Product Bundle' item, those values can be entered in the main Item table, values will be copied to 'Packing List' table.","&#39;Ürün Bundle&#39; öğeler, Depo, Seri No ve Toplu No &#39;Ambalaj Listesi&#39; tablodan kabul edilecektir. Depo ve Toplu Hayır herhangi bir &#39;Ürün Bundle&#39; öğe için tüm ambalaj öğeler için aynı ise, bu değerler ana Öğe tabloda girilebilir, değerler tablosu &#39;Listesi Ambalaj&#39; kopyalanacaktır.",
+For Employee,Çalışanlara,
 For Quantity (Manufactured Qty) is mandatory,Miktar (Adet Üretilen) zorunludur,
-For Supplier,Tedarikçi için,
+For Supplier,Tedarikçi İçin,
 For Warehouse,Depo için,
 For Warehouse is required before Submit,Sunulmadan önce gerekli depo için,
 "For an item {0}, quantity must be negative number","{0} öğesinde, miktar negatif sayı olmalıdır",
 "For an item {0}, quantity must be positive number","Bir öğe için {0}, miktar pozitif sayı olmalıdır",
-"For job card {0}, you can only make the 'Material Transfer for Manufacture' type stock entry","{0} kartvizitinde, yalnızca 'Üretim İçin Malzeme Transferi' tipi stok girişini yapabilirsiniz.",
+"For job card {0}, you can only make the 'Material Transfer for Manufacture' type stock entry","{0} kartvizitinde, yalnızca &#39;Üretim İçin Malzeme Transferi&#39; tipi stok girişini yapabilirsiniz.",
 "For row {0} in {1}. To include {2} in Item rate, rows {3} must also be included","Satırdaki {0} içinde {1}. Ürün fiyatına {2} eklemek için, satır {3} de dahil edilmelidir",
 For row {0}: Enter Planned Qty,{0} satırı için: Planlanan Miktarı Girin,
 "For {0}, only credit accounts can be linked against another debit entry","{0}, sadece kredi hesapları başka bir ödeme girişine karşı bağlantılı olabilir için",
@@ -1084,9 +1081,9 @@
 Freight and Forwarding Charges,Navlun ve Sevkiyat Ücretleri,
 Frequency,frekans,
 Friday,Cuma,
-From,Başlama,
-From Address 1,Adresden,
-From Address 2,Adresden,
+From,Itibaren,
+From Address 1,Adres 1&#39;den,
+From Address 2,Adres 2&#39;den,
 From Currency and To Currency cannot be same,Para biriminden ve para birimine aynı olamaz,
 From Date and To Date lie in different Fiscal Year,Tarihten ve Tarihe kadar farklı Mali Yılda yalan,
 From Date cannot be greater than To Date,Tarihten itibaren tarihe kadardan ileride olamaz,
@@ -1094,16 +1091,16 @@
 From Date should be within the Fiscal Year. Assuming From Date = {0},Tarihten itibaren Mali yıl içinde olmalıdır Tarihten itibaren  = {0} varsayılır,
 From Date {0} cannot be after employee's relieving Date {1},{0} tarihinden itibaren çalışanın işten ayrılmasından sonra tarih {1} olamaz,
 From Date {0} cannot be before employee's joining Date {1},{0} tarihinden itibaren çalışanın {1} tarihine katılmadan önce olamaz.,
-From Datetime,Başlama Zamanı,
-From Delivery Note,Baş. Satış İrsaliyesi,
-From Fiscal Year,Baş. Mali Yılı,
-From GSTIN,GSTIN'den,
-From Party Name,Baş. Parti Adı,
-From Pin Code,Baş. Pin Kodu,
-From Place,Baş. Yeri,
+From Datetime,DateTime Gönderen,
+From Delivery Note,İrsaliyeden,
+From Fiscal Year,Mali Yıldan,
+From GSTIN,GSTIN&#39;den,
+From Party Name,Parti isminden,
+From Pin Code,Pin Kodundan,
+From Place,Yerden,
 From Range has to be less than To Range,Menzil az olmak zorundadır Kimden daha Range için,
-From State,Başlangıç Durumu,
-From Time,Başlama Tarihi,
+From State,Devletten,
+From Time,Zamandan,
 From Time Should Be Less Than To Time,Zaman Zamandan Daha Az Olmalı,
 From Time cannot be greater than To Time.,Zaman zaman daha büyük olamaz.,
 "From a supplier under composition scheme, Exempt and Nil rated","Kompozisyon şeması altındaki bir tedarikçiden, Muaf ve Nil Puanı",
@@ -1112,8 +1109,8 @@
 From value must be less than to value in row {0},"Değerden, {0} satırındaki değerden az olmalıdır",
 From {0} | {1} {2},Gönderen {0} | {1} {2},
 Fuel Price,Yakıt Fiyatı,
-Fuel Qty,Yakıt Miktarı,
-Fulfillment,Yerine getirme,
+Fuel Qty,Yakıt Adet,
+Fulfillment,yerine getirme,
 Full,Tam,
 Full Name,Tam Adı,
 Full-time,Tam zamanlı,
@@ -1144,10 +1141,10 @@
 Get Items from Product Bundle,Ürün Bundle Öğeleri alın,
 Get Suppliers,Tedarikçiler Al,
 Get Suppliers By,Tarafından Satıcı Alın,
-Get Updates,Güncellemeleri Alın,
+Get Updates,Güncellemeler Alın,
 Get customers from,Müşterileri şu adresten alın:,
 Get from Patient Encounter,Hasta Envanterinden Alın,
-Getting Started,Başla,
+Getting Started,Başlamak,
 GitHub Sync ID,GitHub Senkronizasyon Kimliği,
 Global settings for all manufacturing processes.,Tüm üretim süreçleri için genel ayarlar.,
 Go to the Desktop and start using ERPNext,Masaüstüne gidip ERPNext 'i kullanmaya başlayabilirsiniz,
@@ -1161,16 +1158,16 @@
 Goods are already received against the outward entry {0},{0} dış girişine karşı ürünler zaten alındı,
 Government,Devlet,
 Grand Total,Genel Toplam,
-Grant,Hibe,
-Grant Application,Hibe Başvurusu,
-Grant Leaves,Hibe İzinleri,
+Grant,hibe,
+Grant Application,Hibe başvurusu,
+Grant Leaves,Hibe Yaprakları,
 Grant information.,Bilgi verin.,
 Grocery,Bakkal,
-Gross Pay,Brüt Ödeme,
-Gross Profit,Brüt Kar,
+Gross Pay,Brüt ödeme,
+Gross Profit,Brüt kar,
 Gross Profit %,Brüt Kazanç%,
 Gross Profit / Loss,Brüt Kar / Zarar,
-Gross Purchase Amount,Brüt Sipariş Tutarı,
+Gross Purchase Amount,Brüt sipariş tutarı,
 Gross Purchase Amount is mandatory,Brüt sipariş tutarı zorunludur,
 Group by Account,Hesap Grubu,
 Group by Party,Partiye Göre Grup,
@@ -1198,9 +1195,9 @@
 Half day date should be in between from date and to date,Yarım gün tarih ile bugünden itibaren arasında olmalıdır,
 Half-Yearly,Yarı Yıllık,
 Hardware,Donanım,
-Head of Marketing and Sales,Satış ve Pazarlama Yöneticisi,
-Health Care,Sağlık Hizmeti,
-Healthcare,Sağlık Hizmeti,
+Head of Marketing and Sales,Satış ve Pazarlama Müdürü,
+Health Care,Sağlık hizmeti,
+Healthcare,Sağlık hizmeti,
 Healthcare (beta),Sağlık (beta),
 Healthcare Practitioner,Sağlık Uygulayıcısı,
 Healthcare Practitioner not available on {0},Sağlık Uygulayıcısı {0} tarihinde mevcut değil,
@@ -1221,24 +1218,24 @@
 Hotel Rooms of type {0} are unavailable on {1},"{1} türündeki Otel Odaları, {1}",
 Hotels,Oteller,
 Hourly,Saatlik,
-Hours,Saat,
+Hours,Saatler,
 House rent paid days overlapping with {0},Konut kirası {0} ile örtüşen günler ödedi,
 House rented dates required for exemption calculation,Muafiyet hesaplaması için gerekli ev kiralama tarihleri,
 House rented dates should be atleast 15 days apart,Kiralanan kiralık evlerin en az 15 gün ara olması gerekmektedir.,
 How Pricing Rule is applied?,Fiyatlandırma Kuralı Nasıl Uygulanır?,
 Hub Category,Hub Kategorisi,
 Hub Sync ID,Hub Senkronizasyon Kimliği,
-Human Resource,İnsan Kaynakları,
-Human Resources,İnsan Kaynakları,
+Human Resource,İnsan kaynakları,
+Human Resources,İnsan kaynakları,
 IFSC Code,IFSC Kodu,
 IGST Amount,IGST Tutarı,
 IP Address,IP adresi,
 ITC Available (whether in full op part),ITC Available (tam bölümlerinde olsun),
 ITC Reversed,ITC Tersine Döndü,
-Identifying Decision Makers,Karar Vericileri Tanımla,
-"If Auto Opt In is checked, then the customers will be automatically linked with the concerned Loyalty Program (on save)","Otomatik Yanıtlama seçeneği işaretliyse, müşteriler ilgili Sadakat Programı ile otomatik olarak ilişkilendirilecektir (kaydetme sırasında).",
+Identifying Decision Makers,Karar Vericileri Tanımlamak,
+"If Auto Opt In is checked, then the customers will be automatically linked with the concerned Loyalty Program (on save)","Otomatik Yanıtlama seçeneği işaretliyse, müşteriler ilgili Bağlılık Programı ile otomatik olarak ilişkilendirilecektir (kaydetme sırasında).",
 "If multiple Pricing Rules continue to prevail, users are asked to set Priority manually to resolve conflict.","Birden fazla fiyatlandırma Kuralo hakimse, kullanıcılardan zorunu çözmek için Önceliği elle ayarlamaları istenir",
-"If selected Pricing Rule is made for 'Rate', it will overwrite Price List. Pricing Rule rate is the final rate, so no further discount should be applied. Hence, in transactions like Sales Order, Purchase Order etc, it will be fetched in 'Rate' field, rather than 'Price List Rate' field.","Seçilen Fiyatlandırma Kuralları 'Oran' için yapılmışsa, Ücret Listesinin üzerine yazacaktır. Fiyatlandırma Kuralı oranı son oran, dolayısıyla daha fazla indirim uygulanmamalıdır. Bu nedenle, Satış Siparişi, Satınalma Siparişi gibi işlemlerde, 'Fiyat Listesi Oranı' alanından ziyade 'Oran' alanına getirilir.",
+"If selected Pricing Rule is made for 'Rate', it will overwrite Price List. Pricing Rule rate is the final rate, so no further discount should be applied. Hence, in transactions like Sales Order, Purchase Order etc, it will be fetched in 'Rate' field, rather than 'Price List Rate' field.","Seçilen Fiyatlandırma Kuralları &#39;Oran&#39; için yapılmışsa, Ücret Listesinin üzerine yazacaktır. Fiyatlandırma Kuralı oranı son oran, dolayısıyla daha fazla indirim uygulanmamalıdır. Bu nedenle, Satış Siparişi, Satın Alma Siparişi gibi işlemlerde, &#39;Fiyat Listesi Oranı&#39; alanından ziyade &#39;Oran&#39; alanına getirilir.",
 "If two or more Pricing Rules are found based on the above conditions, Priority is applied. Priority is a number between 0 to 20 while default value is zero (blank). Higher number means it will take precedence if there are multiple Pricing Rules with same conditions.","İki ya da daha fazla Fiyatlandırma Kuralları yukarıdaki koşullara dayalı bulundu ise, Öncelik uygulanır. Varsayılan değer sıfır (boş) ise Öncelik 0 ile 20 arasında bir sayıdır. Yüksek numarası aynı koşullarda birden Fiyatlandırma Kuralları varsa o öncelik alacak demektir.",
 "If unlimited expiry for the Loyalty Points, keep the Expiry Duration empty or 0.","Sadakat Puanı için sınırsız süre dolduğunda, Son Kullanım Süresini boş veya 0 olarak tutun.",
 "If you have any questions, please get back to us.","Herhangi bir sorunuz varsa, bize geri almak lütfen.",
@@ -1252,59 +1249,59 @@
 Import in Bulk,Toplu İçe Aktar,
 Import of goods,Mal ithalatı,
 Import of services,Hizmet alımı,
-Importing Items and UOMs,Öğeleri ve UOM'leri İçe Aktarma,
+Importing Items and UOMs,Öğeleri ve UOM&#39;leri İçe Aktarma,
 Importing Parties and Addresses,Tarafları ve Adresleri İçe Aktarma,
 In Maintenance,Bakımda,
 In Production,Üretimde,
-In Qty,Giriş Miktarı,
-In Stock Qty,Stok Miktarı,
-In Stock: ,Stokta var: ,
-In Value,Giriş Maliyeti,
+In Qty,Miktarında,
+In Stock Qty,Stok adet,
+In Stock: ,Stokta var:,
+In Value,Değer,
 "In the case of multi-tier program, Customers will be auto assigned to the concerned tier as per their spent","Çok katmanlı program söz konusu olduğunda, Müşteriler harcanan esasa göre ilgili kademeye otomatik olarak atanacaktır.",
 Inactive,etkisiz,
 Incentives,Teşvikler,
 Include Default Book Entries,Varsayılan Kitap Girişlerini Dahil Et,
 Include Exploded Items,Patlatılmış Öğeleri Dahil Et,
 Include POS Transactions,POS İşlemlerini Dahil Et,
-Include UOM,Birimi dahil et,
+Include UOM,UOM&#39;yi dahil et,
 Included in Gross Profit,Brüt Kâr Dahil,
 Income,Gelir,
 Income Account,Gelir Hesabı,
-Income Tax,Gelir Vergisi,
-Incoming,Gelen,
-Incoming Rate,Gelen Oran,
+Income Tax,Gelir vergisi,
+Incoming,Alınan,
+Incoming Rate,Gelen oranı,
 Incorrect number of General Ledger Entries found. You might have selected a wrong Account in the transaction.,Yanlış Genel Defter Girdileri bulundu. İşlemde yanlış bir hesap seçmiş olabilirsiniz.,
 Increment cannot be 0,Artım 0 olamaz,
 Increment for Attribute {0} cannot be 0,Attribute için Artım {0} 0 olamaz,
 Indirect Expenses,Dolaylı Giderler,
 Indirect Income,Dolaylı Gelir,
-Individual,Bireysel,
+Individual,bireysel,
 Ineligible ITC,Uygun olmayan ITC,
 Initiated,Başlatılan,
 Inpatient Record,Yatan Kayıt,
 Insert,Ekle,
-Installation Note,Kurulum Notları,
-Installation Note {0} has already been submitted,Kurulum Notu {0} zaten gönderildi,
+Installation Note,Kurulum Not,
+Installation Note {0} has already been submitted,Kurulum Not {0} zaten gönderildi,
 Installation date cannot be before delivery date for Item {0},Kurulum tarih Ürün için teslim tarihinden önce olamaz {0},
-Installing presets,Önayarları yükleniyor,
+Installing presets,Önayarları yükleme,
 Institute Abbreviation,Enstitü Kısaltma,
 Institute Name,Kurum İsmi,
 Instructor,Eğitmen,
-Insufficient Stock,Yetersiz Stok,
+Insufficient Stock,Yetersiz stok,
 Insurance Start date should be less than Insurance End date,Sigorta Başlangıç tarihi Bitiş tarihi Sigortası daha az olmalıdır,
 Integrated Tax,Entegre Vergi,
-Inter-State Supplies,Ülkeler arası Tedarik,
-Interest Amount,Faiz Tutarı,
-Interests,İlgi Alanları,
+Inter-State Supplies,Devletlerarası Tedarikler,
+Interest Amount,Faiz tutarı,
+Interests,İlgi,
 Intern,Stajyer,
 Internet Publishing,İnternet Yayıncılığı,
-Intra-State Supplies,Devlet İçi Malzemeler,
+Intra-State Supplies,Devlet İçi Malzemeleri,
 Introduction,Giriş,
 Invalid Attribute,Geçersiz Özellik,
-Invalid Blanket Order for the selected Customer and Item,Seçilen Müşteri ve Ürün için Geçersiz Açık Sipariş,
+Invalid Blanket Order for the selected Customer and Item,Seçilen Müşteri ve Öğe için Geçersiz Battaniye Siparişi,
 Invalid Company for Inter Company Transaction.,Şirketler Arası İşlem için Geçersiz Şirket.,
 Invalid GSTIN! A GSTIN must have 15 characters.,Geçersiz GSTIN! Bir GSTIN 15 karakterden oluşmalıdır.,
-Invalid GSTIN! First 2 digits of GSTIN should match with State number {0}.,Geçersiz GSTIN! GSTIN'in ilk 2 hanesi {0} durum numarası ile eşleşmelidir.,
+Invalid GSTIN! First 2 digits of GSTIN should match with State number {0}.,Geçersiz GSTIN! GSTIN&#39;in ilk 2 hanesi {0} durum numarası ile eşleşmelidir.,
 Invalid GSTIN! The input you've entered doesn't match the format of GSTIN.,Geçersiz GSTIN! Girdiğiniz giriş GSTIN biçimiyle eşleşmiyor.,
 Invalid Posting Time,Geçersiz Gönderme Süresi,
 Invalid attribute {0} {1},Geçersiz özellik {0} {1},
@@ -1329,19 +1326,18 @@
 Invoiced Amount,Faturalanan Tutar,
 Invoices,Faturalar,
 Invoices for Costumers.,Müşteri Faturaları.,
-Inward supplies from ISD,ISD'den ithal malzemeler,
+Inward supplies from ISD,ISD&#39;den ithal malzemeler,
 Inward supplies liable to reverse charge (other than 1 & 2 above),Ters sarj yapmakla yükümlü iç sarf malzemeleri (yukarıdaki 1 ve 2 hariç),
 Is Active,Aktif,
 Is Default,Standart,
 Is Existing Asset,Varlık Mevcut mı,
-Is Frozen,Dondurulmuş mu,
+Is Frozen,Donmuş,
 Is Group,Grup,
 Issue,Sorun,
 Issue Material,Sayı Malzeme,
 Issued,Veriliş,
 Issues,Sorunlar,
 It is needed to fetch Item Details.,Bu Ürün Detayları getirmesi için gereklidir.,
-Inventory Settings,Envanter Ayarları,
 Item,Ürün,
 Item 1,Madde 1,
 Item 2,Madde 2,
@@ -1356,11 +1352,11 @@
 Item Group,Ürün Grubu,
 Item Group Tree,Ürün Grubu Ağacı,
 Item Group not mentioned in item master for item {0},Ürün {0} içim Ürün alanında Ürün grubu belirtilmemiş,
-Item Name,Ürün Adı,
+Item Name,Öğe adı,
 Item Price added for {0} in Price List {1},{0} için fiyat kartı oluşturuldu (Fiyat Listesi {1}),
 "Item Price appears multiple times based on Price List, Supplier/Customer, Currency, Item, UOM, Qty and Dates.","Ürün Fiyatı, Fiyat Listesi, Tedarikçi / Müşteri, Para Birimi, Öğe, UOM, Miktar ve Tarihlere göre birden çok kez görüntülenir.",
 Item Price updated for {0} in Price List {1},Ürün Fiyatı {0} Fiyat Listesi için güncellenmiş {1},
-Item Row {0}: {1} {2} does not exist in above '{1}' table,"Öğe Satırı {0}: {1} {2}, yukarıdaki '{1}' tablosunda mevcut değil",
+Item Row {0}: {1} {2} does not exist in above '{1}' table,"Öğe Satırı {0}: {1} {2}, yukarıdaki &#39;{1}&#39; tablosunda mevcut değil",
 Item Tax Row {0} must have account of type Tax or Income or Expense or Chargeable,Ürün Vergi Satırı {0} Vergi Gelir Gider veya Ödenebilir türde hesabı olmalıdır.,
 Item Template,Öğe Şablonu,
 Item Variant Settings,Öğe Varyant Ayarları,
@@ -1368,7 +1364,7 @@
 Item Variants,Öğe Türevleri,
 Item Variants updated,Öğe Varyantları güncellendi,
 Item has variants.,Öğe varyantları vardır.,
-Item must be added using 'Get Items from Purchase Receipts' button,Ürün düğmesi 'Satınalma makbuzlarını Öğeleri alın' kullanılarak eklenmelidir,
+Item must be added using 'Get Items from Purchase Receipts' button,Ürün düğmesi 'satın alma makbuzlarını Öğeleri alın' kullanılarak eklenmelidir,
 Item valuation rate is recalculated considering landed cost voucher amount,Ürün değerlemesi bindirilmiş maliyetlerle tekrar hesaplandı,
 Item variant {0} exists with same attributes,Ürün çeşidi {0} aynı özelliklere sahip bulunmaktadır,
 Item {0} does not exist,Ürün {0} yoktur,
@@ -1390,23 +1386,23 @@
 Item {0} must be a non-stock item,{0} stok korunmayan ürün olmalıdır,
 Item {0} must be a stock Item,Ürün {0} bir stok ürünü olmalıdır,
 Item {0} not found,Ürün {0} bulunamadı,
-Item {0} not found in 'Raw Materials Supplied' table in Purchase Order {1},Satınalma Siparişi 'Hammadde Tedarik' tablosunda bulunamadı Item {0} {1},
+Item {0} not found in 'Raw Materials Supplied' table in Purchase Order {1},Satın Alma Emri &#39;Hammadde Tedarik&#39; tablosunda bulunamadı Item {0} {1},
 Item {0}: Ordered qty {1} cannot be less than minimum order qty {2} (defined in Item).,Öğe {0}: Sıralı qty {1} minimum sipariş qty {2} (Öğe tanımlanan) daha az olamaz.,
 Item: {0} does not exist in the system,Ürün: {0} sistemde mevcut değil,
 Items,Ürünler,
 Items Filter,Öğeler Filtre,
-Items and Pricing,Ürünler ve Fiyatlandırma,
+Items and Pricing,Öğeler ve Fiyatlandırma,
 Items for Raw Material Request,Hammadde Talebi için Öğeler,
-Job Card,İş Kartı,
-Job Description,İş Tanımı,
-Job Offer,İş Teklifi,
+Job Card,İş kartı,
+Job Description,İş tanımı,
+Job Offer,İş teklifi,
 Job card {0} created,İş kartı {0} oluşturuldu,
 Jobs,İşler,
 Join,Birleştir,
-Journal Entries {0} are un-linked,Yevmiye Kaydının {0} bağlantısı kaldırıldı,
-Journal Entry,Yevmiye Kaydı,
-Journal Entry {0} does not have account {1} or already matched against other voucher,Yevmiye Kaydı {0} {1} ya da zaten başka bir çeki karşı eşleşen hesabınız yok,
-Kanban Board,Kanboard,
+Journal Entries {0} are un-linked,Dergi Girişler {0}-un bağlı olduğu,
+Journal Entry,Kayıt Girdisi,
+Journal Entry {0} does not have account {1} or already matched against other voucher,Günlük girdisi {0} {1} ya da zaten başka bir çeki karşı eşleşen hesabınız yok,
+Kanban Board,Kanban Kurulu,
 Key Reports,Anahtar Raporlar,
 LMS Activity,LMS Etkinliği,
 Lab Test,Laboratuvar testi,
@@ -1426,43 +1422,42 @@
 Last Name,Soyadı,
 Last Order Amount,Son Sipariş Miktarı,
 Last Order Date,Son Sipariş Tarihi,
-Last Purchase Price,Son Satınalma Fiyatı,
+Last Purchase Price,Son Satın Alma Fiyatı,
 Last Purchase Rate,Son Satış Fiyatı,
-Latest,Son,
-Latest price updated in all BOMs,Tüm BOM'larda güncellenen son fiyat,
-Leads,Adaylar,
-Lead,Müşteri Adayı,
+Latest,son,
+Latest price updated in all BOMs,Tüm BOM&#39;larda güncellenen son fiyat,
+Lead,Potansiyel Müşteri,
 Lead Count,Müşteri Adayı Sayısı,
-Lead Owner,Müşteri Adayı Sahibi,
+Lead Owner,Potansiyel Müşteri Sahibi,
 Lead Owner cannot be same as the Lead,Müşteri Aday Kaydı Sahibi Müşteri Adayı olamaz,
 Lead Time Days,Teslim zamanı Günü,
-Lead to Quotation,Müşteri Adayından Teklif Oluştur,
-"Leads help you get business, add all your contacts and more as your leads","Potansiyel müşteriler iş almanıza, tüm kişilerinizi ve daha fazlasını potansiyel müşteri adayı olarak eklemenize yardımcı olur",
-Learn,Öğren,
-Leave Approval Notification,İzin Onay Bildirimi,
-Leave Blocked,İzin Engellendi,
-Leave Encashment,İzin Paraya çevirme,
-Leave Management,İzin Yönetimi,
-Leave Status Notification,İzin Durum Bildirimi,
-Leave Type,İzin Türü,
-Leave Type is madatory,İzin Türü zorunludur,
+Lead to Quotation,Teklif yol,
+"Leads help you get business, add all your contacts and more as your leads","İlanlar iş, tüm kişileri ve daha fazla potansiyel müşteri olarak eklemek yardımcı",
+Learn,Öğrenin,
+Leave Approval Notification,Onay Bildirimini Bırak,
+Leave Blocked,İzin engellendi,
+Leave Encashment,Tahsil bırakın,
+Leave Management,Yönetim bırakın,
+Leave Status Notification,Durum Bildirimini Bırak,
+Leave Type,İzin Tipi,
+Leave Type is madatory,İzin Türü madatory,
 Leave Type {0} cannot be allocated since it is leave without pay,o ödeme olmadan terk beri Türü {0} tahsis edilemez bırakın,
 Leave Type {0} cannot be carry-forwarded,{0} carry-iletilmesine olamaz Type bırakın,
 Leave Type {0} is not encashable,{0} Türü Ayrılma özelliği değiştirilemez,
 Leave Without Pay,Ücretsiz İzin,
-Leave and Attendance,Puantaj ve İzinler,
+Leave and Attendance,Bırakın ve Seyirci,
 Leave application {0} already exists against the student {1},{1} öğrencisine karşı {0} uygulamasını zaten bırakın,
 "Leave cannot be allocated before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}","Önce tahsis edilemez bırakın {0}, izin dengesi zaten carry iletilen gelecek izin tahsisi kayıtlarında olduğu gibi {1}",
 "Leave cannot be applied/cancelled before {0}, as leave balance has already been carry-forwarded in the future leave allocation record {1}","Izin dengesi zaten carry iletilen gelecek izin tahsisi kayıtlarında olduğu gibi, daha önce {0} iptal / tatbik edilemez bırakın {1}",
 Leave of type {0} cannot be longer than {1},Tip{0} izin  {1}'den uzun olamaz,
-Leaves,İzinler,
+Leaves,Yapraklar,
 Leaves Allocated Successfully for {0},İzinler {0} için başarıyla tahsis edildi,
-Leaves has been granted sucessfully,İzinler başarıyla verildi,
+Leaves has been granted sucessfully,Yapraklar başarıyla verildi,
 Leaves must be allocated in multiples of 0.5,İzinler 0.5 katlanarak tahsis edilmelidir,
-Leaves per Year,Yıllık İzin,
-Ledger,Defteri Kebir,
+Leaves per Year,Yıl başına bırakır,
+Ledger,defteri kebir,
 Legal,Yasal,
-Legal Expenses,Yasal Giderler,
+Legal Expenses,Yasal giderler,
 Letter Head,Antetli Kağıt,
 Letter Heads for print templates.,Baskı şablonları için antetli kağıtlar,
 Level,Seviye,
@@ -1475,110 +1470,82 @@
 List of all share transactions,Tüm hisse senedi işlemlerinin listesi,
 List of available Shareholders with folio numbers,Folio numaraları ile mevcut Hissedarların listesi,
 Loading Payment System,Ödeme Sistemi Yükleniyor,
-Loan,Kredi,
-Loan Write Off,Kredi İptali,
+Loan,borç,
 Loan Amount cannot exceed Maximum Loan Amount of {0},Kredi Miktarı Maksimum Kredi Tutarı geçemez {0},
-Loan Application,Kredi Başvurusu,
+Loan Application,Kredi başvurusu,
 Loan Management,Kredi Yönetimi,
-Loan Repayment,Kredi Geri Ödemesi,
+Loan Repayment,Kredi geri ödeme,
 Loan Start Date and Loan Period are mandatory to save the Invoice Discounting,Fatura İndirimi’nin kaydedilmesi için Kredi Başlangıç Tarihi ve Kredi Süresi zorunludur,
 Loans (Liabilities),Krediler (Yükümlülükler),
 Loans and Advances (Assets),Krediler ve Avanslar (Varlıklar),
 Local,Yerel,
-Log,Log,
+Log,Giriş,
 Logs for maintaining sms delivery status,Sms teslim durumunu korumak için günlükleri,
 Lost,Kayıp,
-Lost Reasons,Kayıp Nedenleri,
+Lost Reasons,Kayıp Sebepler,
 Low,Düşük,
 Low Sensitivity,Düşük Hassasiyet,
 Lower Income,Alt Gelir,
-Loyalty Amount,Sadakat Tutarı,
-Loyalty Point Entry,Sadakat Puanı Girişi,
-Loyalty Points,Sadakat Puanları,
+Loyalty Amount,Bağlılık Tutarı,
+Loyalty Point Entry,Bağlılık Noktası Girişi,
+Loyalty Points,Sadakat puanları,
 "Loyalty Points will be calculated from the spent done (via the Sales Invoice), based on collection factor mentioned.","Sadakat Puanları, belirtilen tahsilat faktörüne göre harcanan tutardan (Satış Faturası aracılığıyla) hesaplanacaktır.",
 Loyalty Points: {0},Sadakat Puanları: {0},
-Loyalty Program,Sadakat Programı,
-Reports & Masters,Raporlar ve Masterlar,
-Settings & Configurations,Ayarlar ve Yapılandırmalar,
-Let's Set Up the Selling Module.,Haydi Satış Modülünü Kuralım.,
-"Ürünler, Satış, Analiz ve daha fazlası.","Products, Sales, Analysis, and more.",
-Opening & Closing,Açılış & Kapanış,
-Quick Access,Hızlı Erişim,
-Your Shortcuts,Kısa Yollarım,
-Items & Pricing,Ürünler & Fiyatlandırma,
-Let's Set Up the Stock Module,Haydi Stok Modülünü Kuralım,
-Set up your Warehouse,Deponuzu kurun,
-Create a Product, Bir Ürün Oluşturun,
-Create a Supplier,Bir Tedarikçi Oluşturun,
-Let's Set Up Your Accounts and Taxes.,Hesaplarınızı ve Vergilerinizi Ayarlayalım.,
-"Accounts, Invoices, Taxation, and more.","Hesaplar, Faturalar, Vergilendirme ve daha fazlası.",
-Review Chart of Accounts,Hesap Planını İncele,
-Cost Centers for Budgeting and Analysis,Bütçeleme ve Analiz için Maliyet Merkezleri,
-Create Your First Purchase Invoice,İlk Satınalma Faturanızı Oluşturun,
-Updating Opening Balances,Açılış Bakiyelerini Güncelleme,
-Finansal Tablolar,Finansal Tablolar,
-Let's Set Up the Stock Module.,Haydi Stok Modülünü Kuralım.,
-"Inventory, Warehouses, Analysis, and more.","Envanter, Depolar, Analiz ve daha fazlası.",
-Review Stock Settings,Stok Ayarlarını İnceleyin,
-Setup a Warehouse,Bir Depo Kur,
-Warehouse wise Stock Value,Depo bazında Stok Değeri,
-Manage Stock Movements,Stok Hareketlerini Yönetin,
-Update Stock Opening Balance,Stok Açılış Bakiyesini Güncelle,
-Check Stock Projected Qty,Öngörülen Stok Miktarını Kontrol et,
+Loyalty Program,Sadakat programı,
 Main,Ana,
 Maintenance,Bakım,
 Maintenance Log,Bakım Günlüğü,
-Maintenance Manager,Bakım Yöneticisi,
-Maintenance Schedule,Bakım Programı,
+Maintenance Manager,Bakım Müdürü,
+Maintenance Schedule,Bakım programı,
 Maintenance Schedule is not generated for all the items. Please click on 'Generate Schedule',Bakım Programı bütün Ürünler için oluşturulmamıştır. Lütfen 'Program Oluştura' tıklayın,
 Maintenance Schedule {0} exists against {1},{1} ile ilgili Bakım Çizelgesi {0} var,
 Maintenance Schedule {0} must be cancelled before cancelling this Sales Order,Bakım Programı {0} bu Satış Emri iptal edilmeden önce iptal edilmelidir,
 Maintenance Status has to be Cancelled or Completed to Submit,Bakım Durumu İptal Edildi veya Gönderilmesi Tamamlandı,
 Maintenance User,Bakımcı Kullanıcı,
-Maintenance Visit,Bakım Ziyareti,
+Maintenance Visit,Bakım ziyareti,
 Maintenance Visit {0} must be cancelled before cancelling this Sales Order,Bakım Ziyareti {0} bu Satış Emri iptal edilmeden önce iptal edilmelidir,
 Maintenance start date can not be before delivery date for Serial No {0},Seri No {0} için bakım başlangıç tarihi teslim tarihinden önce olamaz,
 Make,Oluştur,
-Make Payment,Ödeme Yap,
+Make Payment,Ödeme yapmak,
 Make project from a template.,Bir şablondan proje yapın.,
-Making Stock Entries,Stok Girişi Yapma,
+Making Stock Entries,Stok Girişleri Yapımı,
 Male,Erkek,
 Manage Customer Group Tree.,Müşteri Grupbu Ağacını Yönetin.,
 Manage Sales Partners.,Satış Ortaklarını Yönetin.,
 Manage Sales Person Tree.,Satış Elemanı Ağacını Yönetin.,
 Manage Territory Tree.,Bölge Ağacını Yönetin.,
-Manage your orders,Siparişlerinizi Yönetin,
-Management,Yönetim,
-Manager,Yönetici,
-Managing Projects,Proje Yönetimi,
-Managing Subcontracting,Taşeron Yönetimi,
+Manage your orders,Siparişlerinizi yönetin,
+Management,yönetim,
+Manager,yönetici,
+Managing Projects,Projeleri Yönetme,
+Managing Subcontracting,Yönetme Taşeronluk,
 Mandatory,Zorunlu,
 Mandatory field - Academic Year,Zorunlu alan - Akademik Yıl,
-Mandatory field - Get Students From,Zorunlu alan - Öğrencileri Al,
+Mandatory field - Get Students From,Zorunlu alan - Öğrencileri Alın,
 Mandatory field - Program,Zorunlu alan - Program,
-Manufacture,Üretim,
+Manufacture,üretim,
 Manufacturer,Üretici,
 Manufacturer Part Number,Üretici kısım numarası,
 Manufacturing,Üretim,
 Manufacturing Quantity is mandatory,Üretim Miktarı zorunludur,
-Mapping,Eşleme,
+Mapping,haritalama,
 Mapping Type,Eşleme Türü,
-Mark Absent,Yok olarak İşaretle,
-Mark Attendance,Katılım olarak İşaretle,
-Mark Half Day,Yarım Gün olarak İşaretle,
-Mark Present,Mevcut olarak İşaretle,
+Mark Absent,Gelmedi işaretle,
+Mark Attendance,Seyirci İzleme,
+Mark Half Day,Yarım Gün İşaretle,
+Mark Present,Mevcut İşaretle,
 Marketing,Pazarlama,
 Marketing Expenses,Pazarlama giderleri,
 Marketplace,Pazaryeri,
-Marketplace Error,Pazaryeri Hatası,
+Marketplace Error,Marketplace Hatası,
 Masters,Alanlar,
-Match Payments with Invoices,Faturalar ile Ödemeleri Eşle,
+Match Payments with Invoices,Faturalar ile maç Ödemeleri,
 Match non-linked Invoices and Payments.,Bağlantısız Faturaları ve Ödemeleri eşleştirin.,
 Material,Malzeme,
-Material Consumption,Malzeme Tüketimi,
-Material Consumption is not set in Manufacturing Settings.,Malzeme Ayarları Üretim Ayarları'nda ayarlanmamıştır.,
-Material Receipt,Malzeme Girişi,
-Material Request,Malzeme Talebi,
+Material Consumption,Malzeme tüketimi,
+Material Consumption is not set in Manufacturing Settings.,Malzeme Ayarları Üretim Ayarları&#39;nda ayarlanmamıştır.,
+Material Receipt,Malzeme Alındısı,
+Material Request,Malzeme talebi,
 Material Request Date,Malzeme Talep Tarihi,
 Material Request No,Malzeme Talebi No,
 "Material Request not created, as quantity for Raw Materials already available.","Zaten mevcut olan Hammadde miktarı olarak, Malzeme Talebi yaratılmadı.",
@@ -1601,7 +1568,7 @@
 Maximum discount for Item {0} is {1}%,{0} Öğesi için maksimum indirim {1}%,
 Maximum leave allowed in the leave type {0} is {1},{0} izin türünde izin verilen maksimum izin {1},
 Medical,Tıbbi,
-Medical Code,Tıbbi Kod,
+Medical Code,Tıbbi kod,
 Medical Code Standard,Tıbbi Kod Standardı,
 Medical Department,Tıp Departmanı,
 Medical Record,Tıbbi kayıt,
@@ -1617,29 +1584,29 @@
 Membership Type,üyelik tipi,
 Memebership Details,Memebership Detayları,
 Memebership Type Details,Memebership Türü Ayrıntılar,
-Merge,Birleştir,
+Merge,birleşmek,
 Merge Account,Hesabı Birleştir,
 Merge with Existing Account,Mevcut Hesapla Birleştir,
 "Merging is only possible if following properties are same in both records. Is Group, Root Type, Company","Aşağıdaki özelliklerin her ikisi, kayıtlarında aynı ise birleştirme mümkündür. Grup, Kök tipi, Şirket",
 Message Examples,Mesaj Örnekleri,
 Message Sent,Gönderilen Mesaj,
 Method,Yöntem,
-Middle Income,Orta Gelir,
-Middle Name,İkinci Adı,
-Middle Name (Optional),İkinci İsim (İsteğe bağlı),
-Min Amt can not be greater than Max Amt,"Min Amt, Max Amt'tan büyük olamaz",
+Middle Income,Orta gelir,
+Middle Name,İkinci ad,
+Middle Name (Optional),İkinci ad (İsteğe bağlı),
+Min Amt can not be greater than Max Amt,"Min Amt, Max Amt&#39;tan büyük olamaz",
 Min Qty can not be greater than Max Qty,Minimum Miktar Maksimum Miktardan Fazla olamaz,
 Minimum Lead Age (Days),Minimum Müşteri Aday Kaydı Yaşı (Gün),
 Miscellaneous Expenses,Çeşitli Giderler,
 Missing Currency Exchange Rates for {0},Eksik Döviz Kurları {0},
-Missing email template for dispatch. Please set one in Delivery Settings.,Sevk için e-posta şablonu eksik. Lütfen Teslimat Ayarları'nda bir tane ayarlayın.,
+Missing email template for dispatch. Please set one in Delivery Settings.,Sevk için e-posta şablonu eksik. Lütfen Teslimat Ayarları&#39;nda bir tane ayarlayın.,
 "Missing value for Password, API Key or Shopify URL","Şifre, API Anahtarı veya Shopify URL için eksik değer",
-Mode of Payment,Ödeme Biçimi,
-Mode of Payments,Ödemeler Biçimi,
-Mode of Transport,Ulaşım Biçimi,
-Mode of Transportation,Ulaşım Biçimi,
-Mode of payment is required to make a payment,Ödeme Biçimi ödeme yapmak için gereklidir,
-Model,Model,
+Mode of Payment,Ödeme şekli,
+Mode of Payments,Ödemeler Modu,
+Mode of Transport,Ulaşım modu,
+Mode of Transportation,Ulaşım Şekli,
+Mode of payment is required to make a payment,Ödeme Modu ödeme yapmak için gereklidir,
+Model,model,
 Moderate Sensitivity,Orta hassasiyet,
 Monday,Pazartesi,
 Monthly,Aylık,
@@ -1648,27 +1615,27 @@
 More,Daha fazla,
 More Information,Daha fazla bilgi,
 More than one selection for {0} not allowed,{0} için birden fazla seçime izin verilmiyor,
-More...,Daha fazla...,
+More...,Daha...,
 Motion Picture & Video,Motion Picture & Video,
-Move,Taşı,
-Move Item,Ürün Taşı,
+Move,Hareket,
+Move Item,Taşı Öğe,
 Multi Currency,Çoklu Para Birimi,
 Multiple Item prices.,Çoklu Ürün fiyatları.,
-Multiple Loyalty Program found for the Customer. Please select manually.,Müşteri için Çoklu Sadakat Programı bulundu. Lütfen manuel olarak seçiniz.,
+Multiple Loyalty Program found for the Customer. Please select manually.,Müşteri için Çoklu Bağlılık Programı bulundu. Lütfen manuel olarak seçiniz.,
 "Multiple Price Rules exists with same criteria, please resolve conflict by assigning priority. Price Rules: {0}","Çoklu Fiyat Kuralları aynı kriterler ile var, öncelik atayarak çatışma çözmek lütfen. Fiyat Kuralları: {0}",
 Multiple Variants,Çoklu Varyantlar,
 Multiple fiscal years exist for the date {0}. Please set company in Fiscal Year,{0} tarihi için birden fazla mali yıl bulunuyor. Lütfen firma için mali yıl tanımlayınız.,
 Music,Müzik,
 My Account,Hesabım,
 Name error: {0},Adı hatası: {0},
-Name of new Account. Note: Please don't create accounts for Customers and Suppliers,Yeni Hesabın Adı. Lütfen Müşteriler ve Tedarikçiler için hesap oluşturmayın,
+Name of new Account. Note: Please don't create accounts for Customers and Suppliers,Yeni Hesabın Adı. Not: Müşteriler ve Tedarikçiler için hesap oluşturmayın,
 Name or Email is mandatory,Adı veya E-posta zorunludur,
 Nature Of Supplies,Malzemelerin Doğası,
-Navigating,Gezinme,
+Navigating,gezinme,
 Needs Analysis,İhtiyaç Analizi,
 Negative Quantity is not allowed,Negatif Miktara izin verilmez,
 Negative Valuation Rate is not allowed,Negatif Değerleme Br.Fiyatına izin verilmez,
-Negotiation/Review,Pazarlık/Gözden Geçirme,
+Negotiation/Review,Müzakere / İnceleme,
 Net Asset value as on,Net Aktif değeri olarak,
 Net Cash from Financing,Finansman Sağlanan Net Nakit,
 Net Cash from Investing,Yatırım Kaynaklanan Net Nakit,
@@ -1680,41 +1647,41 @@
 Net Change in Fixed Asset,Sabit Varlık Net Değişim,
 Net Change in Inventory,Envanter Net Değişim,
 Net ITC Available(A) - (B),Net ITC Mevcut (A) - (B),
-Net Pay,Net Ödeme,
-Net Pay cannot be less than 0,Net Ücret 0 dan az olamaz,
-Net Profit,Net Kazanç,
+Net Pay,Net ödeme,
+Net Pay cannot be less than 0,Net Ücret az 0 olamaz,
+Net Profit,Net kazanç,
 Net Salary Amount,Net Maaş Tutarı,
-Net Total,Net Toplam,
+Net Total,Net toplam,
 Net pay cannot be negative,Net ödeme negatif olamaz,
 New Account Name,Yeni Hesap Adı,
-New Address,Yeni Adres,
+New Address,Yeni adres,
 New BOM,Yeni BOM,
-New Batch ID (Optional),Yeni Toplu İşlem ID (Opsiyonel),
+New Batch ID (Optional),Yeni Toplu İşlem Kimliği (İsteğe Bağlı),
 New Batch Qty,Yeni Toplu İşlem Miktarı,
-New Company,Yeni Şirket,
+New Company,Yeni şirket,
 New Cost Center Name,Yeni Maliyet Merkezi Adı,
 New Customer Revenue,Yeni Müşteri Gelir,
-New Customers,Yeni Müşteri,
-New Department,Yeni Departman,
-New Employee,Yeni Çalışan,
-New Location,Yeni Konum,
+New Customers,yeni müşteriler,
+New Department,Yeni bölüm,
+New Employee,Yeni çalışan,
+New Location,Yeni konum,
 New Quality Procedure,Yeni Kalite Prosedürü,
 New Sales Invoice,Yeni Satış Faturası,
 New Sales Person Name,Yeni Satış Kişi Adı,
-New Serial No cannot have Warehouse. Warehouse must be set by Stock Entry or Purchase Receipt,Yeni Seri No Warehouse olamaz. Depo Stok Hareketi veya Alış İrsaliyesi ayarlanmalıdır,
+New Serial No cannot have Warehouse. Warehouse must be set by Stock Entry or Purchase Receipt,Yeni Seri No Warehouse olamaz. Depo Stok girişiyle veya alım makbuzuyla ayarlanmalıdır,
 New Warehouse Name,Yeni Depo Adı,
 New credit limit is less than current outstanding amount for the customer. Credit limit has to be atleast {0},Yeni kredi limiti müşteri için geçerli kalan miktar daha azdır. Kredi limiti en az olmak zorundadır {0},
 New task,Yeni görev,
 New {0} pricing rules are created,Yeni {0} fiyatlandırma kuralları oluşturuldu,
 Newsletters,Haber bültenleri,
 Newspaper Publishers,Gazete Yayıncıları,
-Next,Sonraki,
+Next,İleri,
 Next Contact By cannot be same as the Lead Email Address,Sonraki İletişim Sorumlusu Müşteri Aday Kaydının E-posta Adresi ile aynı olamaz,
 Next Contact Date cannot be in the past,Sonraki İletişim Tarih geçmişte olamaz,
-Next Steps,Sonraki Adımlar,
-No Action,Hiç işlem yok,
+Next Steps,Sonraki adımlar,
+No Action,Hiçbir eylem,
 No Customers yet!,Henüz müşteri yok!,
-No Data,Hiç veri yok,
+No Data,Hiçbir veri,
 No Delivery Note selected for Customer {},Müşteri için {} dağıtım Notu seçilmedi,
 No Employee Found,Çalışan Bulunamadı,
 No Item with Barcode {0},Barkodlu Ürün Yok {0},
@@ -1722,10 +1689,10 @@
 No Items available for transfer,Hayır Öğeler transfer için kullanılabilir,
 No Items selected for transfer,Transfer için hiçbir öğe seçilmedi,
 No Items to pack,Ambalajlanacak Ürün Yok,
-No Items with Bill of Materials to Manufacture,Üretim işlemi için ürün ağacı girilmiş malzeme yok,
+No Items with Bill of Materials to Manufacture,Malzeme Listesine Öğe Yok İmalat için,
 No Items with Bill of Materials.,Malzeme Listesi ile Öğe Yok.,
 No Permission,İzin yok,
-No Remarks,Hiç Açıklama yok,
+No Remarks,Hiçbir Açıklamalar,
 No Result to submit,Gönderilecek Sonuç Yok,
 No Salary Structure assigned for Employee {0} on given date {1},{1} belirli bir tarihte Çalışana {0} atanan Maaş Yapısı yok,
 No Staffing Plans found for this Designation,Bu tayin için hiçbir personel planı bulunamadı,
@@ -1742,9 +1709,9 @@
 No gain or loss in the exchange rate,Döviz kurunda kazanç veya kayıp yok,
 No items listed,Listelenen öğe yok,
 No items to be received are overdue,Alınacak hiçbir öğe gecikmedi,
-No material request created,Malzeme talebi oluşturulmadı,
-No more updates,Başka güncelleme yok,
-No of Interactions,Etkileşim Yok,
+No material request created,Malzeme isteği oluşturulmadı,
+No more updates,Artık güncelleme,
+No of Interactions,Etkileşimler Yok,
 No of Shares,Pay Sayısı,
 No pending Material Requests found to link for the given items.,Verilen öğeler için bağlantı bekleyen herhangi bir Malzeme Talebi bulunamadı.,
 No products found,Ürün bulunamadı,
@@ -1755,7 +1722,7 @@
 No replies from,dan cevap yok,
 No salary slip found to submit for the above selected criteria OR salary slip already submitted,Yukarıdaki kriterlere göre maaş fişi bulunamadı VEYA maaş fişi zaten gönderildi,
 No tasks,Görev yok,
-No time sheets,Hiçbir zaman çizegesi yok,
+No time sheets,Hiçbir zaman çarşaf,
 No values,Değer yok,
 No {0} found for Inter Company Transactions.,Inter Şirket İşlemleri için {0} bulunamadı.,
 Non GST Inward Supplies,GST İç İçe Olmayan Sarf Malzemeleri,
@@ -1763,9 +1730,9 @@
 Non Profit (beta),Kar Olmayan (beta),
 Non-GST outward supplies,GST dışı dış sarf malzemeleri,
 Non-Group to Group,Grup grup dışı,
-None,Hiçbiri,
+None,Yok,
 None of the items have any change in quantity or value.,Öğelerin hiçbiri miktar veya değer bir değişiklik var.,
-Nos,Nos,
+Nos,nos,
 Not Available,Mevcut değil,
 Not Marked,İşaretli değil,
 Not Paid and Not Delivered,Değil Ücretli ve Teslim Edilmedi,
@@ -1798,61 +1765,60 @@
 Number of Order,Sipariş Sayısı,
 "Number of new Account, it will be included in the account name as a prefix","Yeni Hesap numarası, hesap adına bir ön ek olarak eklenecektir",
 "Number of new Cost Center, it will be included in the cost center name as a prefix","Yeni Maliyet Merkezi sayısı, maliyet merkezi adına önek olarak eklenecektir",
-Number of root accounts cannot be less than 4,Kök hesap sayısı 4'ten az olamaz,
+Number of root accounts cannot be less than 4,Kök hesap sayısı 4&#39;ten az olamaz,
 Odometer,Kilometre sayacı,
 Office Equipments,Ofis Gereçleri,
 Office Maintenance Expenses,Ofis Bakım Giderleri,
 Office Rent,Ofis Kiraları,
 On Hold,Beklemede,
-On Net Total,Net Toplam,
-One customer can be part of only single Loyalty Program.,Bir müşteri sadece tek bir Sadakat Programının parçası olabilir.,
+On Net Total,Net toplam,
+One customer can be part of only single Loyalty Program.,Bir müşteri sadece tek bir Bağlılık Programının parçası olabilir.,
 Online Auctions,Online Müzayede,
-Only Leave Applications with status 'Approved' and 'Rejected' can be submitted,Sadece sunulabilir 'Reddedildi' 'Onaylandı' ve statülü Uygulamaları bırakın,
-"Only the Student Applicant with the status ""Approved"" will be selected in the table below.",Aşağıdaki tabloda yalnızca 'Onaylandı' durumuna sahip Öğrenci Başvurusu seçilecektir.,
-Only users with {0} role can register on Marketplace,Yalnızca {0} rolü olan kullanıcılar Marketplace'e kayıt olabilir,
+Only Leave Applications with status 'Approved' and 'Rejected' can be submitted,Sadece sunulabilir &#39;Reddedildi&#39; &#39;Onaylandı&#39; ve statülü Uygulamaları bırakın,
+"Only the Student Applicant with the status ""Approved"" will be selected in the table below.",Aşağıdaki tabloda yalnızca &quot;Onaylandı&quot; durumuna sahip Öğrenci Başvurusu seçilecektir.,
+Only users with {0} role can register on Marketplace,Yalnızca {0} rolü olan kullanıcılar Marketplace&#39;e kayıt olabilir,
 Open BOM {0},Açık BOM {0},
 Open Item {0},Açık Öğe {0},
 Open Notifications,Açık Bildirimler,
 Open Orders,Açık siparişler,
 Open a new ticket,Yeni bir bilet aç,
-Opening,Açılış,
-Opening (Cr),Açılış (Alacak),
-Opening (Dr),Açılış (Borç),
-Opening Accounting Balance,Açılış Muhasebe Bakiyesi,
-Opening Accumulated Depreciation,Açılış Birikmiş Amortisman,
-Opening Accumulated Depreciation must be less than equal to {0},Açılış Birikmiş Amortismanı {0} değerinden küçük olmalı,
-Opening Balance,Açılış Bakiyesi,
-Opening Balance Equity,Açılış Bakiyesi Özkaynak,
-Opening Date and Closing Date should be within same Fiscal Year,Açılış Tarihi ve Kapanış Tarihinin aynı Mali Yıl içinde olmalı,
-Opening Date should be before Closing Date,Açılış Tarihi Kapanış Tarihinden önce olmalı,
-Opening Entry Journal,Açılış Kaydı Yevmiyesi,
-Opening Invoice Creation Tool,Açılış Faturası Oluşturma Aracı,
+Opening,açılış,
+Opening (Cr),Açılış (Cr),
+Opening (Dr),Açılış (Dr),
+Opening Accounting Balance,Açılış Muhasebe Dengesi,
+Opening Accumulated Depreciation,Birikmiş Amortisman Açılış,
+Opening Accumulated Depreciation must be less than equal to {0},Birikmiş Amortisman Açılış eşit az olmalıdır {0},
+Opening Balance,Açılış bilançosu,
+Opening Balance Equity,Açılış Bakiyesi Hisse,
+Opening Date and Closing Date should be within same Fiscal Year,Tarih ve Kapanış Tarihi Açılış aynı Mali Yılı içinde olmalıdır,
+Opening Date should be before Closing Date,Tarih Açılış Tarihi Kapanış önce olmalıdır,
+Opening Entry Journal,Açılış Giriş Dergisi,
+Opening Invoice Creation Tool,Fatura Yaratma Aracını Açma,
 Opening Invoice Item,Fatura Öğesini Açma,
 Opening Invoices,Faturaları Açma,
 Opening Invoices Summary,Faturaları Açma Özeti,
 Opening Qty,Açılış Miktarı,
-Opening Stock,Açılış Stok Miktarı,
-Opening Stock Balance,Açılış Stok Bakiyesi,
-Opening Value,Açılış Değeri,
-Opening {0} Invoice created,Açılış {0} Faturası oluşturuldu,
+Opening Stock,Açılış Stok,
+Opening Stock Balance,Açılış Stok Dengesi,
+Opening Value,Açılış değeri,
+Opening {0} Invoice created,Açılış {0} Fatura oluşturuldu,
 Operation,Operasyon,
-Operation Time must be greater than 0 for Operation {0},Çalışma Süresi Çalışma için 0'dan büyük olmalıdır {0},
+Operation Time must be greater than 0 for Operation {0},Çalışma Süresi Çalışma için 0&#39;dan büyük olmalıdır {0},
 "Operation {0} longer than any available working hours in workstation {1}, break down the operation into multiple operations","Çalışma {0} iş istasyonunda herhangi bir mevcut çalışma saatleri daha uzun {1}, birden operasyonlarına operasyon yıkmak",
 Operations,Operasyonlar,
 Operations cannot be left blank,Operasyon boş bırakılamaz,
-Opp Count,Fırsat Sayısı,
-Opp/Lead %,Satış Fırsatı/Aday %,
+Opp Count,Opp Sayısı,
+Opp/Lead %,Satış Fırsatı/Müşteri Adayı yüzdesi,
 Opportunities,Fırsatlar,
-Opportunities by lead source,Aday kaynağına göre fırsatlar,
-Opportunity,Fırsat,
+Opportunities by lead source,Başlıca kaynak olan fırsatlar,
+Opportunity,fırsat,
 Opportunity Amount,Fırsat Tutarı,
-Opportunity Summary by Sales Stage,Satış Aşamasına göre Fırsat Özeti,
 Optional Holiday List not set for leave period {0},"İsteğe bağlı Tatil Listesi, {0} izin dönemi için ayarlanmamış",
 "Optional. Sets company's default currency, if not specified.","İsteğe bağlı. Eğer belirtilmemişse, şirketin varsayılan para birimini belirler.",
 Optional. This setting will be used to filter in various transactions.,İsteğe bağlı. Bu ayar çeşitli işlemlerde filtreleme yapmak için kullanılacaktır,
 Options,Seçenekler,
-Order Count,Sipariş Sayısı,
-Order Entry,Sipariş Girişi,
+Order Count,Sipariş sayısı,
+Order Entry,Sipariş girişi,
 Order Value,Sipariş Değeri,
 Order rescheduled for sync,Senkronizasyon için sipariş yeniden planlandı,
 Order/Quot %,Sipariş / Teklif%,
@@ -1861,23 +1827,23 @@
 "Ordered Qty: Quantity ordered for purchase, but not received.","Sipariş Edilen  Miktar: Satın alınmak için sipariş edilmiş, ancak teslim alınmamış miktar",
 Orders,Siparişler,
 Orders released for production.,Üretim için verilen emirler.,
-Organization,Kuruluş,
+Organization,organizasyon,
 Organization Name,Kuruluş Adı,
 Other,Diğer,
-Other Reports,Diğer Raporlar,
+Other Reports,Diğer raporlar,
 "Other outward supplies(Nil rated,Exempted)","Diğer dış sarf malzemeleri (Nil puan, Muaf)",
 Others,Diğer,
 Out Qty,Çıkış Miktarı,
 Out Value,Out Değeri,
 Out of Order,Bozuk,
 Outgoing,Giden,
-Outstanding,Ödenmemiş,
-Outstanding Amount,Ödenmemiş Tutar,
-Outstanding Amt,Ödenmemiş tutarı,
+Outstanding,ödenmemiş,
+Outstanding Amount,Bekleyen Tutar,
+Outstanding Amt,Alacak tutarı,
 Outstanding Cheques and Deposits to clear,Üstün Çekler ve temizlemek için Mevduat,
 Outstanding for {0} cannot be less than zero ({1}),{0} için bekleyen sıfırdan az olamaz ({1}),
 Outward taxable supplies(zero rated),Dışa dönük vergilendirilebilir malzemeler,
-Overdue,Gecikmiş,
+Overdue,vadesi geçmiş,
 Overlap in scoring between {0} and {1},{0} ile {1} arasındaki skorlamanın üst üste gelmesi,
 Overlapping conditions found between:,Şunların arasında çakışan koşullar bulundu:,
 Owner,Sahibi,
@@ -1888,21 +1854,21 @@
 POS Profile required to make POS Entry,POS Profil POS Girişi yapmak için gerekli,
 POS Settings,POS Ayarları,
 Packed quantity must equal quantity for Item {0} in row {1},{1} Paketli miktar satır {1} deki Ürün {0} a eşit olmalıdır,
-Packing Slip,Paketleme Fişi,
-Packing Slip(s) cancelled,Paketleme Fişi iptal edildi,
+Packing Slip,Ambalaj Makbuzu,
+Packing Slip(s) cancelled,Ambalaj Makbuzları İptal Edildi,
 Paid,Ücretli,
 Paid Amount,Ödenen Tutar,
 Paid Amount cannot be greater than total negative outstanding amount {0},"Ödenen Tutar, toplam negatif ödenmemiş miktardan daha fazla olamaz {0}",
 Paid amount + Write Off Amount can not be greater than Grand Total,Ödenen Tutar ve Şüpheli Alacak Tutarı toplamı Genel Toplamdan fazla olamaz,
 Paid and Not Delivered,Ödendi ancak Teslim Edilmedi,
 Parameter,Parametre,
-Parent Item {0} must not be a Stock Item,Ana Ürün {0} Stok Ürünü olmamalıdır,
+Parent Item {0} must not be a Stock Item,Veli Öğe {0} Stok Öğe olmamalıdır,
 Parents Teacher Meeting Attendance,Ebeveynler Öğretmen Toplantısı Katılımı,
 Part-time,Yarı zamanlı,
 Partially Depreciated,Kısmen Değer Kaybına Uğramış,
 Partially Received,Kısmen Alındı,
 Party,Taraf,
-Party Name,Taraf Adı,
+Party Name,parti Adı,
 Party Type,Taraf Türü,
 Party Type and Party is mandatory for {0} account,{0} hesabı için Parti Türü ve Parti zorunludur,
 Party Type is mandatory,Parti Tipi zorunludur,
@@ -1916,35 +1882,35 @@
 Patient not found,Hasta bulunamadı,
 Pay Remaining,Kalan Öde,
 Pay {0} {1},{0} {1} öde,
-Payable,Ödenecek Borç,
+Payable,Borç,
 Payable Account,Ödenecek Hesap,
-Payable Amount,Ödenecek Tutar,
+Payable Amount,Ödenebilir miktar,
 Payment,Tahsilat,
 Payment Cancelled. Please check your GoCardless Account for more details,Ödeme iptal edildi. Daha fazla bilgi için lütfen GoCardless Hesabınızı kontrol edin,
-Payment Confirmation,Ödeme Onaylama,
-Payment Date,Ödeme Tarihi,
+Payment Confirmation,Ödeme onaylama,
+Payment Date,Ödeme tarihi,
 Payment Days,Ödeme Günleri,
 Payment Document,Ödeme Belgesi,
-Payment Due Date,Son Ödeme Tarihi,
-Payment Entries {0} are un-linked,Ödeme Kayıtlarının bağlantısı kaldırıldı,
-Payment Entry,Ödeme Kaydı,
-Payment Entry already exists,Ödeme Kaydı zaten var,
+Payment Due Date,Son ödeme tarihi,
+Payment Entries {0} are un-linked,Ödeme Girişler {0}-un bağlantılıdır,
+Payment Entry,Ödeme girişi,
+Payment Entry already exists,Ödeme giriş zaten var,
 Payment Entry has been modified after you pulled it. Please pull it again.,Bunu çekti sonra Ödeme Giriş modifiye edilmiştir. Tekrar çekin lütfen.,
-Payment Entry is already created,Ödeme girişi zaten oluşturulmuş,
+Payment Entry is already created,Ödeme giriş zaten yaratılır,
 Payment Failed. Please check your GoCardless Account for more details,Ödeme başarısız. Daha fazla bilgi için lütfen GoCardless Hesabınızı kontrol edin,
-Payment Gateway,Ödeme Ağ Geçidi,
-"Payment Gateway Account not created, please create one manually.","Ödeme Ağ Geçidi Hesabı oluşturulmaz, bir tane oluşturun lütfen.",
+Payment Gateway,Ödeme Gateway,
+"Payment Gateway Account not created, please create one manually.","Ödeme Gateway Hesabı oluşturulmaz, el bir tane oluşturun lütfen.",
 Payment Gateway Name,Ödeme Ağ Geçidi Adı,
 Payment Mode,Ödeme Modu,
-Payment Receipt Note,Ödeme Makbuzu Dekontu,
-Payment Request,Ödeme Talebi,
+Payment Receipt Note,Ödeme Makbuzu Not,
+Payment Request,Ödeme isteği,
 Payment Request for {0},{0} için Ödeme İsteği,
-Payment Tems,Ödeme Yöntemleri,
-Payment Term,Ödeme Vadesi,
-Payment Terms,Ödeme Vadeleri,
-Payment Terms Template,Ödeme Vadesi Şablonu,
-Payment Terms based on conditions,Koşullara göre Ödeme Vadesi,
-Payment Type,Ödeme Tipi,
+Payment Tems,Ödeme yöntemleri,
+Payment Term,Ödeme koşulu,
+Payment Terms,Ödeme şartları,
+Payment Terms Template,Ödeme Koşulları Şablonu,
+Payment Terms based on conditions,Koşullara göre Ödeme Koşulları,
+Payment Type,Ödeme Şekli,
 "Payment Type must be one of Receive, Pay and Internal Transfer","Ödeme Şekli, Alma biri Öde ve İç Transferi gerekir",
 Payment against {0} {1} cannot be greater than Outstanding Amount {2},Karşı Ödeme {0} {1} Üstün Tutar daha büyük olamaz {2},
 Payment of {0} from {1} to {2},{1} ile {2} arasındaki {0} ödemesi,
@@ -1956,7 +1922,7 @@
 Payslip,maaş bordrosu,
 Pending Activities,Bekleyen Etkinlikleri,
 Pending Amount,Bekleyen Tutar,
-Pending Leaves,Bekleyen İzinler,
+Pending Leaves,Bekleyen Yapraklar,
 Pending Qty,Bekleyen Adet,
 Pending Quantity,Bekleyen Miktar,
 Pending Review,Bekleyen İnceleme,
@@ -1969,8 +1935,8 @@
 Period Closing Voucher,Dönem Kapanış Makbuzu,
 Periodicity,periyodik olarak tekrarlanma,
 Personal Details,Kişisel Bilgiler,
-Pharmaceutical,İlaç,
-Pharmaceuticals,İlaçlar,
+Pharmaceutical,Ecza,
+Pharmaceuticals,Ecza,
 Physician,Doktor,
 Piecework,parça başı iş,
 Pincode,Pinkodu,
@@ -1979,10 +1945,10 @@
 Plan Name,Plan Adı,
 Plan for maintenance visits.,Bakım ziyaretleri planı,
 Planned Qty,Planlanan Miktar,
-"Planned Qty: Quantity, for which, Work Order has been raised, but is pending to be manufactured.","Planlanan Miktar: İş Emri'nin yükseltildiği, ancak üretilmeyi beklediği miktar.",
+"Planned Qty: Quantity, for which, Work Order has been raised, but is pending to be manufactured.","Planlanan Miktar: İş Emri&#39;nin yükseltildiği, ancak üretilmeyi beklediği miktar.",
 Planning,Planlama,
 Plants and Machineries,Bitkiler ve Makinaları,
-Please Set Supplier Group in Buying Settings.,Lütfen Satınalma Ayarlarında Tedarikçi Grubunu Ayarlayın.,
+Please Set Supplier Group in Buying Settings.,Lütfen Satın Alma Ayarlarında Tedarikçi Grubunu Ayarlayın.,
 Please add a Temporary Opening account in Chart of Accounts,Lütfen Hesap Planında bir Geçici Açılış hesabı ekleyin,
 Please add the account to root level Company - ,Lütfen hesabı root seviyesine ekleyin.,
 Please add the remaining benefits {0} to any of the existing component,Lütfen mevcut bileşenlerden herhangi birine {0} kalan faydaları ekleyin,
@@ -1991,15 +1957,15 @@
 Please click on 'Generate Schedule' to fetch Serial No added for Item {0},Ürün {0} seri numarası eklemek için 'Program Ekle' ye tıklayınız,
 Please click on 'Generate Schedule' to get schedule,Programı almak için 'Program Oluştura' tıklayınız,
 Please confirm once you have completed your training,Lütfen eğitiminizi tamamladığınızda onaylayın,
-Please create purchase receipt or purchase invoice for the item {0},Lütfen {0} öğesi için Satınalma makbuzu veya fatura satın alın,
+Please create purchase receipt or purchase invoice for the item {0},Lütfen {0} öğesi için satın alma makbuzu veya fatura satın alın,
 Please define grade for Threshold 0%,Lütfen eşiği% 0 eşik için tanımlayın,
 Please enable Applicable on Booking Actual Expenses,Rezervasyon Gerçekleşen Masraflar için Geçerli Olunur Lütfen,
-Please enable Applicable on Purchase Order and Applicable on Booking Actual Expenses,Lütfen Satınalma Siparişinde Uygulanabilirliği Etkinleştirin ve Gerçekleşen Rezervasyonlara Uygulanabilir,
+Please enable Applicable on Purchase Order and Applicable on Booking Actual Expenses,Lütfen Satın Alma Siparişinde Uygulanabilirliği Etkinleştirin ve Gerçekleşen Rezervasyonlara Uygulanabilir,
 Please enable default incoming account before creating Daily Work Summary Group,Günlük İş Özet Grubunu oluşturmadan önce varsayılan gelen hesabı etkinleştirin,
 Please enable pop-ups,Pop-up etkinleştirin,
 Please enter 'Is Subcontracted' as Yes or No,'Taşeron var mı' alanına Evet veya Hayır giriniz,
-Please enter API Consumer Key,Lütfen API Consumer Keyi girin,
-Please enter API Consumer Secret,Lütfen API Consumer Secreti girin,
+Please enter API Consumer Key,Lütfen API Tüketici Anahtarını girin,
+Please enter API Consumer Secret,Lütfen API Tüketici Sırrı girin,
 Please enter Account for Change Amount,Değişim Miktarı Hesabı giriniz,
 Please enter Approving Role or Approving User,Onaylayıcı Rol veya Onaylayıcı Kullanıcı Giriniz,
 Please enter Cost Center,Maliyet Merkezi giriniz,
@@ -2017,8 +1983,8 @@
 Please enter Receipt Document,Makbuz Belge giriniz,
 Please enter Reference date,Referrans tarihi girin,
 Please enter Repayment Periods,Geri Ödeme Süreleri giriniz,
-Please enter Reqd by Date,Lütfen Reqd'yi Tarihe Göre Girin,
-Please enter Woocommerce Server URL,Lütfen Woocommerce Sunucusu URL'sini girin,
+Please enter Reqd by Date,Lütfen Reqd&#39;yi Tarihe Göre Girin,
+Please enter Woocommerce Server URL,Lütfen Woocommerce Sunucusu URL&#39;sini girin,
 Please enter Write Off Account,Lütfen Şüpheli Alacak Hesabını Girin,
 Please enter atleast 1 invoice in the table,Tabloya en az 1 fatura girin,
 Please enter company first,Lütfen ilk önce şirketi girin,
@@ -2035,13 +2001,13 @@
 Please fill in all the details to generate Assessment Result.,Değerlendirme Sonucunu oluşturmak için lütfen tüm detayları doldurunuz.,
 Please identify/create Account (Group) for type - {0},Lütfen tür - {0} türü için Hesap (Grup) tanımlayın / oluşturun,
 Please identify/create Account (Ledger) for type - {0},Lütfen tür - {0} türü için Hesap (Muhasebe) tanımlayın / oluşturun,
-Please login as another user to register on Marketplace,Lütfen Marketplace'e kayıt olmak için başka bir kullanıcı olarak giriş yapın,
+Please login as another user to register on Marketplace,Lütfen Marketplace&#39;e kayıt olmak için başka bir kullanıcı olarak giriş yapın,
 Please make sure you really want to delete all the transactions for this company. Your master data will remain as it is. This action cannot be undone.,Bu şirkete ait bütün işlemleri silmek istediğinizden emin olun. Ana veriler olduğu gibi kalacaktır. Bu işlem geri alınamaz.,
-Please mention Basic and HRA component in Company,Lütfen Şirket'te Basic ve HRA bileşenini belirtin,
+Please mention Basic and HRA component in Company,Lütfen Şirket&#39;te Basic ve HRA bileşenini belirtin,
 Please mention Round Off Account in Company,Şirket Yuvarlak Kapalı Hesabı belirtin,
-Please mention Round Off Cost Center in Company,Şirket Yuvarlak Off Maliyet Merkezi'ni belirtiniz,
+Please mention Round Off Cost Center in Company,Şirket Yuvarlak Off Maliyet Merkezi&#39;ni belirtiniz,
 Please mention no of visits required,Lütfen gerekli ziyaretlerin sayısını belirtin,
-Please mention the Lead Name in Lead {0},Lütfen Aday Adını {0} Adaydan belirtin,
+Please mention the Lead Name in Lead {0},Lütfen Kurşun Adını {0} Kurşun&#39;dan belirtin,
 Please pull items from Delivery Note,İrsaliyeden Ürünleri çekin,
 Please register the SIREN number in the company information file,Lütfen SİREN numarasını şirket bilgi dosyasına kaydettirin,
 Please remove this Invoice {0} from C-Form {1},C-Form bu Fatura {0} kaldırın lütfen {1},
@@ -2049,33 +2015,33 @@
 Please save the report again to rebuild or update,Yeniden oluşturmak veya güncellemek için lütfen raporu tekrar kaydedin,
 "Please select Allocated Amount, Invoice Type and Invoice Number in atleast one row","En az bir satırda Tahsis Tutar, Fatura Türü ve Fatura Numarası seçiniz",
 Please select Apply Discount On,İndirim Açık Uygula seçiniz,
-Please select BOM against item {0},Lütfen {0} öğesine karşı BOM'u seçin,
+Please select BOM against item {0},Lütfen {0} öğesine karşı BOM&#39;u seçin,
 Please select BOM for Item in Row {0},Satır Öğe için BOM seçiniz {0},
 Please select BOM in BOM field for Item {0},Ürün için BOM BOM alanında seçiniz {0},
 Please select Category first,İlk Kategori seçiniz,
 Please select Charge Type first,İlk şarj türünü seçiniz,
 Please select Company,Firma seçiniz,
-Please select Company and Designation,Lütfen Şirket ve Atama'yı seçiniz,
-Please select Company and Posting Date to getting entries,Giriş almak için lütfen Şirket ve Gönderme Tarihi'ni seçin.,
+Please select Company and Designation,Lütfen Şirket ve Atama&#39;yı seçiniz,
+Please select Company and Posting Date to getting entries,Giriş almak için lütfen Şirket ve Gönderme Tarihi&#39;ni seçin.,
 Please select Company first,İlk Şirket seçiniz,
-Please select Completion Date for Completed Asset Maintenance Log,Tamamlanan Varlık Bakım Günlüğü için Tamamlanma Tarihi'ni seçin,
+Please select Completion Date for Completed Asset Maintenance Log,Tamamlanan Varlık Bakım Günlüğü için Tamamlanma Tarihi&#39;ni seçin,
 Please select Completion Date for Completed Repair,Tamamlanan Onarım için Bitiş Tarihi seçin,
 Please select Course,Lütfen Kursu seçin,
 Please select Drug,Lütfen Uyuşturucu Seçiniz,
 Please select Employee,Lütfen Çalışan seçin,
 Please select Existing Company for creating Chart of Accounts,Hesap tablosu oluşturmak için Varolan Firma seçiniz,
 Please select Healthcare Service,Lütfen Sağlık Hizmeti Seçiniz,
-"Please select Item where ""Is Stock Item"" is ""No"" and ""Is Sales Item"" is ""Yes"" and there is no other Product Bundle",'Hayır' ve 'Satış Öğe mı' 'Stok Öğe mı' nerede 'Evet' ise Birimini seçmek ve başka hiçbir Ürün Paketi var Lütfen,
+"Please select Item where ""Is Stock Item"" is ""No"" and ""Is Sales Item"" is ""Yes"" and there is no other Product Bundle",&quot;Hayır&quot; ve &quot;Satış Öğe mı&quot; &quot;Stok Öğe mı&quot; nerede &quot;Evet&quot; ise Birimini seçmek ve başka hiçbir Ürün Paketi var Lütfen,
 Please select Maintenance Status as Completed or remove Completion Date,Lütfen Bakım Durumunu Tamamlandı olarak seçin veya Bitiş Tarihi kaldırın,
 Please select Party Type first,İlk Parti Türünü seçiniz,
 Please select Patient,Lütfen hastayı seçin,
-Please select Patient to get Lab Tests,Lab Testleri almak için lütfen Hasta'yı seçin,
+Please select Patient to get Lab Tests,Lab Testleri almak için lütfen Hasta&#39;yı seçin,
 Please select Posting Date before selecting Party,Partiyi seçmeden önce Gönderme Tarihi seçiniz,
 Please select Posting Date first,İlk Gönderme Tarihi seçiniz,
 Please select Price List,Fiyat Listesi seçiniz,
 Please select Program,Lütfen program seçiniz,
 Please select Qty against item {0},Lütfen {0} öğesine karşı Miktar seçin,
-Please select Sample Retention Warehouse in Stock Settings first,"Lütfen önce Stok Ayarlarında Numune Alma Deposu'nu seçin,",
+Please select Sample Retention Warehouse in Stock Settings first,"Lütfen önce Stok Ayarlarında Numune Alma Deposu&#39;nu seçin,",
 Please select Start Date and End Date for Item {0},Ürün {0} için Başlangıç ve Bitiş tarihi seçiniz,
 Please select Student Admission which is mandatory for the paid student applicant,Lütfen ödenen öğrenci başvurusu için zorunlu Öğrenci Kabulünü seçin,
 Please select a BOM,Lütfen bir BOM seçin,
@@ -2083,7 +2049,7 @@
 Please select a Company,Bir Şirket seçiniz,
 Please select a batch,Lütfen bir parti seçin,
 Please select a csv file,Bir csv dosyası seçiniz,
-Please select a field to edit from numpad,Lütfen numpad'den düzenlemek için bir alan seçin,
+Please select a field to edit from numpad,Lütfen numpad&#39;den düzenlemek için bir alan seçin,
 Please select a table,Lütfen bir tablo seçin,
 Please select a valid Date,Lütfen geçerli bir tarih seçiniz,
 Please select a value for {0} quotation_to {1},{0} - {1} teklifi için bir değer seçiniz,
@@ -2096,52 +2062,52 @@
 Please select prefix first,Önce Ön ek seçiniz,
 Please select the Company,Lütfen Şirketi Seçiniz,
 Please select the Multiple Tier Program type for more than one collection rules.,Birden fazla koleksiyon kuralları için lütfen Birden Çok Katmanlı Program türü seçin.,
-Please select the assessment group other than 'All Assessment Groups',Lütfen 'Tüm Değerlendirme Grupları' dışındaki değerlendirme grubunu seçin.,
+Please select the assessment group other than 'All Assessment Groups',Lütfen &#39;Tüm Değerlendirme Grupları&#39; dışındaki değerlendirme grubunu seçin.,
 Please select the document type first,Önce belge türünü seçiniz,
 Please select weekly off day,Haftalık izin gününü seçiniz,
 Please select {0},Lütfen  {0} seçiniz,
 Please select {0} first,Önce {0} seçiniz,
-Please set 'Apply Additional Discount On',Set 'On İlave İndirim Uygula' Lütfen,
+Please set 'Apply Additional Discount On',Set &#39;On İlave İndirim Uygula&#39; Lütfen,
 Please set 'Asset Depreciation Cost Center' in Company {0},Lütfen firma {0} için 'Varlık Değer Kaybı Maliyet Merkezi' tanımlayın,
 Please set 'Gain/Loss Account on Asset Disposal' in Company {0},Lütfen 'Varlık Elden Çıkarılmasına İlişkin Kâr / Zarar Hesabı''nı {0} şirketi için ayarlayın,
 Please set Account in Warehouse {0} or Default Inventory Account in Company {1},Lütfen Hesap {0} Deposunda veya Şirket {1} Şirketinde Varsayılan Envanter Hesabı olarak ayarlayın.,
 Please set B2C Limit in GST Settings.,Lütfen GST Ayarlarında B2C Sınırı ayarlayın.,
 Please set Company,Lütfen şirket ayarlayın,
-Please set Company filter blank if Group By is 'Company',Gruplandırılmış 'Şirket' ise lütfen şirket filtresini boş olarak ayarlayın.,
+Please set Company filter blank if Group By is 'Company',Gruplandırılmış &#39;Şirket&#39; ise lütfen şirket filtresini boş olarak ayarlayın.,
 Please set Default Payroll Payable Account in Company {0},Şirket Standart Bordro Ödenecek Hesap ayarlayın {0},
 Please set Depreciation related Accounts in Asset Category {0} or Company {1},"Lütfen Değer Kaybı ile ilgili Hesapları, Varlık Kategori {0} veya Firma {1} içinde belirleyin",
 Please set Email Address,E-posta Adresini ayarlayın,
 Please set GST Accounts in GST Settings,Lütfen GST Ayarlarını GST Ayarlarında Ayarlayın,
-Please set Hotel Room Rate on {},Otel Oda Fiyatı'nı {} olarak ayarlayın.,
+Please set Hotel Room Rate on {},Otel Oda Fiyatı&#39;nı {} olarak ayarlayın.,
 Please set Number of Depreciations Booked,Amortisman Sayısı rezervasyonu ayarlayın,
 Please set Unrealized Exchange Gain/Loss Account in Company {0},Lütfen {0} Şirketindeki Gerçekleşmemiş Döviz Kazası / Zarar Hesabını ayarlayın,
 Please set User ID field in an Employee record to set Employee Role,Çalışan Rolü ayarlamak için Çalışan kaydındaki Kullanıcı Kimliği alanını Lütfen,
 Please set a default Holiday List for Employee {0} or Company {1},Çalışan bir varsayılan Tatil Listesi set Lütfen {0} veya Şirket {1},
-Please set account in Warehouse {0},Lütfen deposunu {0} 'da hesaba koy,
+Please set account in Warehouse {0},Lütfen deposunu {0} &#39;da hesaba koy,
 Please set an active menu for Restaurant {0},Lütfen restoran {0} için etkin bir menü ayarlayın.,
 Please set associated account in Tax Withholding Category {0} against Company {1},Lütfen ilgili hesabı {1} Şirketine Karşı Vergi Stopaj Kategorisinde {1} ayarlayın,
 Please set at least one row in the Taxes and Charges Table,Lütfen Vergiler ve Ücretler Tablosunda en az bir satır belirtin,
 Please set default Cash or Bank account in Mode of Payment {0},{0} Ödeme şeklinde varsayılan nakit veya banka hesabı ayarlayınız,
 Please set default account in Salary Component {0},Maaş Bileşeni varsayılan hesabı ayarlamak Lütfen {0},
-Please set default customer in Restaurant Settings,Lütfen Restoran Ayarları'nda varsayılan müşteriyi ayarlayın,
-Please set default template for Leave Approval Notification in HR Settings.,Lütfen HR Ayarları'nda Onay Onay Bildirimi için varsayılan şablonu ayarlayın.,
-Please set default template for Leave Status Notification in HR Settings.,Lütfen HR Ayarlarında Durum Bildirimi Bırakma için varsayılan şablonu ayarlayın.,
-Please set default {0} in Company {1},Lütfen {1} Şirketinde varsayılan {0} olarak ayarlayın,
+Please set default customer in Restaurant Settings,Lütfen Restoran Ayarları&#39;nda varsayılan müşteriyi ayarlayın,
+Please set default template for Leave Approval Notification in HR Settings.,Lütfen HR Ayarları&#39;nda Onay Onay Bildirimi için varsayılan şablonu ayarlayın.,
+Please set default template for Leave Status Notification in HR Settings.,Lütfen HR Ayarları&#39;nda Durum Bildirimi Bırakma için varsayılan şablonu ayarlayın.,
+Please set default {0} in Company {1},Şirket varsayılan {0} set Lütfen {1},
 Please set filter based on Item or Warehouse,Madde veya Depo dayalı filtre ayarlayın,
 Please set leave policy for employee {0} in Employee / Grade record,Lütfen Çalışan / Not kaydındaki {0} çalışanı için izin politikası ayarlayın,
 Please set recurring after saving,kaydettikten sonra yinelenen ayarlayın,
 Please set the Company,Lütfen şirketi ayarlayın.,
 Please set the Customer Address,Lütfen Müşteri Adresinizi ayarlayın,
-Please set the Date Of Joining for employee {0},Lütfen çalışan {0} için Katılma Tarihi'ni ayarlayın.,
-Please set the Default Cost Center in {0} company.,Lütfen {0} şirketindeki Varsayılan Maliyet Merkezi'ni ayarlayın.,
-Please set the Email ID for the Student to send the Payment Request,Lütfen Ödeme İsteğini göndermek için Öğrencinin E-posta Kimliği'ni ayarlayın.,
+Please set the Date Of Joining for employee {0},Lütfen çalışan {0} için Katılma Tarihi&#39;ni ayarlayın.,
+Please set the Default Cost Center in {0} company.,Lütfen {0} şirketindeki Varsayılan Maliyet Merkezi&#39;ni ayarlayın.,
+Please set the Email ID for the Student to send the Payment Request,Lütfen Ödeme İsteğini göndermek için Öğrencinin E-posta Kimliği&#39;ni ayarlayın.,
 Please set the Item Code first,Lütfen önce Öğe Kodunu ayarlayın,
 Please set the Payment Schedule,Lütfen Ödeme Planını ayarlayın,
 Please set the series to be used.,Lütfen kullanılacak serileri ayarlayın.,
 Please set {0} for address {1},Lütfen {1} adresi için {0} ayarını yapınız,
 Please setup Students under Student Groups,Lütfen Öğrencileri Öğrenci Grupları Altına Kurun,
-Please share your feedback to the training by clicking on 'Training Feedback' and then 'New',Eğitime geribildiriminizi 'Eğitim Geri Bildirimi' ve ardından 'Yeni',
-Please specify Company,Lütfen Firma belirtin,
+Please share your feedback to the training by clicking on 'Training Feedback' and then 'New',Eğitime geribildiriminizi &#39;Eğitim Geri Bildirimi&#39; ve ardından &#39;Yeni&#39;,
+Please specify Company,Şirket belirtiniz,
 Please specify Company to proceed,Devam etmek için Firma belirtin,
 Please specify a valid 'From Case No.',Lütfen geçerlli bir 'durum nodan başlayarak' belirtiniz,
 Please specify a valid Row ID for row {0} in table {1},Tablodaki satır {0} için geçerli Satır kimliği belirtiniz {1},
@@ -2152,34 +2118,34 @@
 Please supply the specified items at the best possible rates,Lütfen belirtilen ürünleri mümkün olan en rekabetçi fiyatlarla sununuz,
 Please update your status for this training event,Lütfen bu eğitim olayına ilişkin durumunuzu güncelleyin,
 Please wait 3 days before resending the reminder.,Hatırlatıcıyı tekrar göndermeden önce lütfen 3 gün bekleyin.,
-Point of Sale,POS Satış Noktası,
-Point-of-Sale,POS Satış Noktası,
+Point of Sale,Satış noktası,
+Point-of-Sale,Satış noktası,
 Point-of-Sale Profile,Satış Noktası Profili,
 Portal,Portal,
 Portal Settings,Portal Ayarları,
 Possible Supplier,Olası Tedarikçi,
 Postal Expenses,Posta Giderleri,
-Posting Date,Gönderim Tarihi,
-Posting Date cannot be future date,Gönderim Tarihi gelecek tarih olamaz,
-Posting Time,Gönderim Saati,
+Posting Date,Gönderme Tarihi,
+Posting Date cannot be future date,Gönderme Tarihi gelecek tarih olamaz,
+Posting Time,Gönderme Zamanı,
 Posting date and posting time is mandatory,Gönderme tarihi ve gönderme zamanı zorunludur,
 Posting timestamp must be after {0},Gönderme zamanı damgası {0}'dan sonra olmalıdır,
 Potential opportunities for selling.,Satış için potansiyel fırsatlar.,
 Practitioner Schedule,Uygulayıcı Takvimi,
-Pre Sales,Ön Satış,
-Preference,Tercihler,
+Pre Sales,Ön satış,
+Preference,Tercih,
 Prescribed Procedures,Öngörülen Prosedürler,
-Prescription,Reçete,
+Prescription,reçete,
 Prescription Dosage,Reçeteli Dozaj,
 Prescription Duration,Reçete Süresi,
-Prescriptions,Reçeteler,
+Prescriptions,reçeteler,
 Present,Mevcut,
 Prev,Önceki,
 Preview,Önizleme,
-Preview Salary Slip,Maaş Bordrosu Önizleme,
+Preview Salary Slip,Önizleme Maaş Kayma,
 Previous Financial Year is not closed,Geçmiş Mali Yıl kapatılmamış,
 Price,Fiyat,
-Price List,Fiyat Listesi,
+Price List,Fiyat listesi,
 Price List Currency not selected,Fiyat Listesi para birimi seçilmemiş,
 Price List Rate,Fiyat Listesi Oranı,
 Price List master.,Fiyat Listesi alanı,
@@ -2189,18 +2155,18 @@
 Pricing,Fiyatlandırma,
 Pricing Rule,Fiyatlandırma Kuralı,
 "Pricing Rule is first selected based on 'Apply On' field, which can be Item, Item Group or Brand.","Fiyatlandırma Kuralı ilk olarak 'Uygula' alanı üzerinde seçilir, bu bir Ürün, Grup veya Marka olabilir.",
-"Pricing Rule is made to overwrite Price List / define discount percentage, based on some criteria.","Fiyatlandırma Kuralı Fiyat Listesini/belirtilen indirim yüzdesini belli kriterlere dayalı olarak geçersiz kılmak için yapılmıştır.",
+"Pricing Rule is made to overwrite Price List / define discount percentage, based on some criteria.",Fiyatlandırma Kuralı Fiyat Listesini/belirtilen indirim yüzdesini belli kriterlere dayalı olarak geçersiz kılmak için yapılmıştır.,
 Pricing Rule {0} is updated,{0} Fiyatlandırma Kuralı güncellendi,
 Pricing Rules are further filtered based on quantity.,Fiyatlandırma Kuralları miktara dayalı olarak tekrar filtrelenir.,
 Primary Address Details,Birincil Adres Ayrıntıları,
 Primary Contact Details,Birincil İletişim Bilgileri,
 Principal Amount,Anapara tutarı,
-Print Format,Baskı Formatı,
+Print Format,Yazdırma Formatı,
 Print IRS 1099 Forms,IRS 1099 Formlarını Yazdır,
 Print Report Card,Rapor Kartı Yazdır,
-Print Settings,Baskı Ayarları,
+Print Settings,Yazdırma Ayarları,
 Print and Stationery,Baskı ve Kırtasiye,
-Print settings updated in respective print format,İlgili baskı formatında güncellenen baskı ayarları,
+Print settings updated in respective print format,"Yazdırma ayarları, ilgili baskı biçiminde güncellendi",
 Print taxes with zero amount,Sıfır tutarlı vergileri yazdırın,
 Printing and Branding,Baskı ve Markalaşma,
 Private Equity,Özel sermaye,
@@ -2211,27 +2177,27 @@
 Process Day Book Data,İşlem Günü Defteri Verileri,
 Process Master Data,Ana Verileri İşle,
 Processing Chart of Accounts and Parties,Hesapların ve Tarafların İşleme Tablosu,
-Processing Items and UOMs,Ürünleri ve Birimleri İşleme,
-Processing Party Addresses,Parti Adreslerini İşleme,
+Processing Items and UOMs,Öğeleri ve UOM&#39;leri İşleme,
+Processing Party Addresses,Parti Adreslerinin İşlenmesi,
 Processing Vouchers,Fiş İşleme,
-Procurement,Tedarik,
-Produced Qty,Üretilen Miktar,
+Procurement,tedarik,
+Produced Qty,Üretilen Adet,
 Product,Ürün,
 Product Bundle,Ürün Paketi,
 Product Search,Ürün Arama,
 Production,Üretim,
-Production Item,Üretim Kalemi,
+Production Item,Üretim Öğe,
 Products,Ürünler,
-Profit and Loss,Kar ve Zarar,
+Profit and Loss,Kar ve zarar,
 Profit for the year,Yılın karı,
-Program,Program,
+Program,program,
 Program in the Fee Structure and Student Group {0} are different.,Ücret Yapısı ve Öğrenci Grubu {0} içindeki program farklıdır.,
 Program {0} does not exist.,{0} programı mevcut değil.,
-Program: ,Programı: ,
-Progress % for a task cannot be more than 100.,"Bir görev için ilerleme %100'den fazla olamaz.",
+Program: ,Programı:,
+Progress % for a task cannot be more than 100.,Bir görev için ilerleme% 100&#39;den fazla olamaz.,
 Project Collaboration Invitation,Proje Ortak Çalışma Daveti,
 Project Id,Proje Kimliği,
-Project Manager,Proje Yöneticisi,
+Project Manager,Proje Müdürü,
 Project Name,proje Adı,
 Project Start Date,Proje Başlangıç Tarihi,
 Project Status,Proje durumu,
@@ -2241,30 +2207,28 @@
 Project activity / task.,Proje faaliyeti / görev.,
 Project master.,Proje alanı.,
 Project-wise data is not available for Quotation,Proje bilgisi verileri Teklifimiz için mevcut değildir,
-Projected,Öngörülen,
-Projected Qty,Öngörülen Miktar,
+Projected,öngörülen,
+Projected Qty,Öngörülen Adet,
 Projected Quantity Formula,Öngörülen Miktar Formülü,
 Projects,Projeler,
 Property,Özellik,
 Property already added,Özellik zaten eklendi,
 Proposal Writing,Teklifi Yazma,
 Proposal/Price Quote,Teklif / Fiyat Teklifi,
-Prospecting,Bilgi Toplama,
-Prospect,Potansiyel Müşteri,
-Prospect Owner,Potansiyel Sahibi,
+Prospecting,Maden,
 Provisional Profit / Loss (Credit),Geçici Kar / Zarar (Kredi),
 Publications,Yayınlar,
 Publish Items on Website,Web sitesinde Ürünleri yayınlayın,
 Published,Yayınlandı,
-Publishing,Yayıncılık,
-Purchase,Satınalma,
-Purchase Amount,Satınalma Miktarı,
-Purchase Date,Satınalma Tarihi,
+Publishing,yayıncılık,
+Purchase,Satın Alım,
+Purchase Amount,Satın alma miktarı,
+Purchase Date,Satınalma tarihi,
 Purchase Invoice,Alış Faturası,
-Purchase Invoice {0} is already submitted,Satınalma Faturası {0} zaten gönderildi,
+Purchase Invoice {0} is already submitted,Satın alma Faturası {0} zaten teslim edildi,
 Purchase Manager,Satınalma Yöneticisi,
-Purchase Master Manager,Satınalma Master Yöneticisi,
-Purchase Order,Satınalma Siparişi,
+Purchase Master Manager,Satınalma Usta Müdürü,
+Purchase Order,Satın alma emri,
 Purchase Order Amount,Satınalma Siparişi Tutarı,
 Purchase Order Amount(Company Currency),Satınalma Siparişi Tutarı (Şirket Para Birimi),
 Purchase Order Date,Satınalma Sipariş Tarihi,
@@ -2272,52 +2236,46 @@
 Purchase Order number required for Item {0},Ürüni {0} için Satınalma Siparişi numarası gerekli,
 Purchase Order to Payment,Ödeme Satınalma Siparişi,
 Purchase Order {0} is not submitted,Satınalma Siparişi {0} teslim edilmedi,
-Purchase Orders are not allowed for {0} due to a scorecard standing of {1}.,{1} hesap kartının puan durumu nedeniyle {0} için Satınalma Siparişlerine izin verilmiyor.,
-Purchase Orders given to Suppliers.,Tedarikçilere verilen Satınalma Siparişleri.,
+Purchase Orders are not allowed for {0} due to a scorecard standing of {1}.,{1} hesap kartının puan durumu nedeniyle {0} için Satın Alma Siparişlerine izin verilmiyor.,
+Purchase Orders given to Suppliers.,Tedarikçilere verilen Satın alma Siparişleri.,
 Purchase Price List,Satınalma Fiyat Listesi,
-Purchase Receipt,Satınalma İrsaliyesi,
-Purchase Receipt {0} is not submitted,Satınalma makbuzu {0} teslim edilmedi,
+Purchase Receipt,Satın Alma İrsaliyesi,
+Purchase Receipt {0} is not submitted,Satın alma makbuzu {0} teslim edilmedi,
 Purchase Tax Template,Vergi Şablon Satınalma,
-Purchase User,Satınalma Kullanıcısı,
-Purchase orders help you plan and follow up on your purchases,Satınalma siparişleri planı ve alışverişlerinizi takip,
+Purchase User,Satınalma Kullanıcı,
+Purchase orders help you plan and follow up on your purchases,Satın alma siparişleri planı ve alışverişlerinizi takip,
 Purchasing,Satınalma,
 Purpose must be one of {0},Amaç şunlardan biri olmalıdır: {0},
 Qty,Miktar,
 Qty To Manufacture,Üretilecek Miktar,
-Qty Total,Miktar Toplamı,
-Qty for {0},{0} için Miktar,
-Qty As Per BOM,BOMa göre Mik,
-Qualification,Yeterlilik,
-Qualification Status,Yeterlilik Durumu,
-Qualified,Nitelikli,
-Unqualified,Niteliksiz,
-Qualified By,Yeterlilik Veren,
-Qualified on,Yeterlilik Tarihi,
+Qty Total,Adet Toplam,
+Qty for {0},Için Adet {0},
+Qualification,{0}Yeterlilik{/0} {1} {/1},
 Quality,Kalite,
-Quality Action,Kalite İşlemleri,
-Quality Goal.,Kalite Hedefi,
-Quality Inspection,Kalite Kontrol,
+Quality Action,Kaliteli eylem,
+Quality Goal.,Kalite Hedef,
+Quality Inspection,Kalite kontrol,
 Quality Inspection: {0} is not submitted for the item: {1} in row {2},"Kalite Denetimi: {0}, {2} satırındaki öğeye gönderilmez: {2}",
 Quality Management,Kalite Yönetimi,
 Quality Meeting,Kalite Toplantısı,
-Quality Procedure,Kalite Prosedürü,
-Quality Procedure.,Kalite Prosedürü.,
-Quality Review,Kalite İncelemesi,
-Quantity,Miktar,
+Quality Procedure,Kalite prosedürü,
+Quality Procedure.,Kalite Prosedürü,
+Quality Review,Kalite incelemesi,
+Quantity,miktar,
 Quantity for Item {0} must be less than {1},Ürün {0} için miktar{1} den az olmalıdır,
 Quantity in row {0} ({1}) must be same as manufactured quantity {2},Satır {0} ({1}) deki miktar üretilen miktar {2} ile aynı olmalıdır,
 Quantity must be less than or equal to {0},Miktara göre daha az veya ona eşit olmalıdır {0},
 Quantity must not be more than {0},Miktar fazla olmamalıdır {0},
 Quantity required for Item {0} in row {1},Satır {1} deki Ürün {0} için gereken miktar,
-Quantity should be greater than 0,Miktar 0'dan büyük olmalıdır,
-Quantity to Make,Yapılması Gereken Miktar,
-Quantity to Manufacture must be greater than 0.,Üretim Miktar 0'dan büyük olmalıdır.,
+Quantity should be greater than 0,Miktar 0&#39;dan büyük olmalıdır,
+Quantity to Make,Miktarı,
+Quantity to Manufacture must be greater than 0.,Üretim Miktar 0&#39;dan büyük olmalıdır.,
 Quantity to Produce,Üretilecek Miktar,
 Quantity to Produce can not be less than Zero,Üretilecek Miktar Sıfırdan Az olamaz,
 Query Options,Sorgu Seçenekleri,
-Queued for replacing the BOM. It may take a few minutes.,BOM'u değiştirmek için sıraya alındı. Birkaç dakika sürebilir.,
-Queued for updating latest price in all Bill of Materials. It may take a few minutes.,Tüm Malzeme Listesi'nde en son fiyatı güncellemek için bekletildi. Birkaç dakika sürebilir.,
-Quick Journal Entry,Hızlı Yevmiye Kaydı,
+Queued for replacing the BOM. It may take a few minutes.,BOM&#39;u değiştirmek için sıraya alındı. Birkaç dakika sürebilir.,
+Queued for updating latest price in all Bill of Materials. It may take a few minutes.,Tüm Malzeme Listesi&#39;nde en son fiyatı güncellemek için bekletildi. Birkaç dakika sürebilir.,
+Quick Journal Entry,Hızlı Kayıt Girdisi,
 Quot Count,Kontör Sayısı,
 Quot/Lead %,Teklif/Müşteri Adayı yüzdesi,
 Quotation,Fiyat Teklifi,
@@ -2329,25 +2287,24 @@
 Quotations: ,Fiyat Teklifleri,
 Quotes to Leads or Customers.,Müşterilere veya Taleplere verilen fiyatlar.,
 RFQs are not allowed for {0} due to a scorecard standing of {1},{1} puan kartının statüsü nedeniyle {0} için tekliflere izin verilmiyor.,
-Plan to Request Qty,Talep Miktarını Planla,
 Range,Aralık,
 Rate,Birim Fiyat,
 Rate:,Puan:,
 Rating,Değerlendirme,
 Raw Material,Hammadde,
-Raw Materials,Hammaddeler,
+Raw Materials,İşlenmemiş içerikler,
 Raw Materials cannot be blank.,Hammaddeler boş olamaz.,
-Re-open,Yeniden aç,
+Re-open,Yeniden açın,
 Read blog,Blogu oku,
 Read the ERPNext Manual,ERPNext kitapçığını okuyun,
-Reading Uploaded File,Yüklenen Dosyayı Okuma,
+Reading Uploaded File,Yüklenen Dosyayı Okumak,
 Real Estate,Gayrimenkul,
 Reason For Putting On Hold,Beklemeye Alma Nedeni,
 Reason for Hold,Bekletme Nedeni,
 Reason for hold: ,Bekletme nedeni:,
 Receipt,Makbuz,
 Receipt document must be submitted,Makbuz belge teslim edilmelidir,
-Receivable,Alacak,
+Receivable,alacak,
 Receivable Account,Alacak Hesabı,
 Received,Alındı,
 Received On,Açık Alınan,
@@ -2355,9 +2312,9 @@
 Received Stock Entries,Alınan Stok Girişleri,
 Receiver List is empty. Please create Receiver List,Alıcı listesi boş. Alıcı listesi oluşturunuz,
 Recipients,Alıcılar,
-Reconcile,Uzlaştır,
+Reconcile,uzlaştırmak,
 "Record of all communications of type email, phone, chat, visit, etc.","Tip e-posta, telefon, chat, ziyaretin, vb her iletişimin Kayıt",
-Records,Kayıtlar,
+Records,kayıtlar,
 Redirect URL,Yönlendirme URL,
 Ref,Ref,
 Ref Date,Ref Tarihi,
@@ -2378,26 +2335,26 @@
 References,Kaynaklar,
 Refresh Token,Yenile Jetonu,
 Region,Bölge,
-Register,Kayıt ol,
-Reject,Reddet,
+Register,Kayıt olmak,
+Reject,reddetmek,
 Rejected,Reddedildi,
-Related,Bağlantılı,
+Related,İlgili,
 Relation with Guardian1,Guardian1 ile İlişkisi,
 Relation with Guardian2,Guardian2 ile İlişkisi,
-Release Date,Yayın Tarihi,
+Release Date,Yayın tarihi,
 Reload Linked Analysis,Bağlantılı Analizi Yeniden Yükle,
 Remaining,Kalan,
 Remaining Balance,Kalan Bakiye,
 Remarks,Açıklamalar,
-Reminder to update GSTIN Sent,GSTIN'in güncellenmesi için hatırlatıcı gönderildi,
+Reminder to update GSTIN Sent,GSTIN&#39;in güncellenmesi için hatırlatıcı gönderildi,
 Remove item if charges is not applicable to that item,Ücretleri bu öğeye geçerli değilse öğeyi çıkar,
 Removed items with no change in quantity or value.,Miktar veya değer hiçbir değişiklik ile kaldırıldı öğeler.,
-Reopen,Yeniden aç,
-Reorder Level,Yeniden Sipariş Seviyesi,
-Reorder Qty,Yeniden Sipariş Miktarı,
+Reopen,Yeniden açmak,
+Reorder Level,Yeniden sipariş seviyesi,
+Reorder Qty,Yeniden Sipariş Adet,
 Repeat Customer Revenue,Tekrar Müşteri Gelir,
 Repeat Customers,Tekrar Müşteriler,
-Replace BOM and update latest price in all BOMs,Tüm BOM'larda BOM'u değiştirin ve en son fiyatı güncelleyin.,
+Replace BOM and update latest price in all BOMs,Tüm BOM&#39;larda BOM&#39;u değiştirin ve en son fiyatı güncelleyin.,
 Replied,Cevaplandı,
 Replies,Cevaplar,
 Report,Rapor,
@@ -2405,26 +2362,26 @@
 Report Type,Rapor Türü,
 Report Type is mandatory,Rapor Tipi zorunludur,
 Reports,Raporlar,
-Reqd By Date,Talep Tarihi,
-Reqd Qty,Talep Miktarı,
+Reqd By Date,Teslim Tarihi,
+Reqd Qty,Reqd Adet,
 Request for Quotation,Fiyat Teklif İsteği,
 Request for Quotations,Fiyat Teklif Talepleri,
 Request for Raw Materials,Hammadde Talebi,
-Request for purchase.,Satınalma talebi,
+Request for purchase.,Satın alma talebi,
 Request for quotation.,Fiyat Teklif Talebi.,
-Requested Qty,İstenen Miktar,
+Requested Qty,İstenen miktar,
 "Requested Qty: Quantity requested for purchase, but not ordered.","İstenen Miktar: Satın almak için istenen, ancak sipariş edilmeyen miktar",
 Requesting Site,Site İsteği,
 Requesting payment against {0} {1} for amount {2},"karşı ödeme talep {0}, {1} miktarda {2}",
 Requestor,Talep eden,
 Required On,Gerekli Açık,
-Required Qty,Gerekli Miktar,
-Required Quantity,Gerekli Miktar,
+Required Qty,Gerekli Adet,
+Required Quantity,Gerekli miktar,
 Reschedule,Yeniden Planlama,
 Research,Araştırma,
 Research & Development,Araştırma ve Geliştirme,
 Researcher,Araştırmacı,
-Resend Payment Email,Ödeme E-postasını Tekrar Gönder,
+Resend Payment Email,Ödeme E-posta tekrar gönder,
 Reserve Warehouse,Depo Deposu,
 Reserved Qty,Ayrılmış Miktar,
 Reserved Qty for Production,Üretim için Miktar saklıdır,
@@ -2433,7 +2390,7 @@
 Reserved Warehouse is mandatory for Item {0} in Raw Materials supplied,Teslim Edilen Hammaddelerde {0} Öğe için Ayrılmış Depo zorunlu,
 Reserved for manufacturing,üretim için ayrılmış,
 Reserved for sale,İkinci saklıdır,
-Reserved for sub contracting,Fason Miktarı,
+Reserved for sub contracting,Alt müteahhitlik için ayrılmıştır.,
 Resistant,dayanıklı,
 Resolve error and upload again.,Hatayı çözün ve tekrar yükleyin.,
 Responsibilities,Sorumluluklar,
@@ -2447,17 +2404,16 @@
 Retail & Wholesale,Toptan ve Perakende Satış,
 Retail Operations,Perakende İşlemleri,
 Retained Earnings,Dağıtılmamış karlar,
-Retention Stock Entry,Saklama Stok Hareketi,
-Retention Stock Entry already created or Sample Quantity not provided,Saklama Stok Hareketi zaten oluşturulmuş veya Örnek Miktarı sağlanmadı,
-Returns,İadeler,
-Return,İade,
-Return / Credit Note,İade / Alacak Dekontu,
+Retention Stock Entry,Stok Saklama Stokları,
+Retention Stock Entry already created or Sample Quantity not provided,Elde edilen stok tutarı girişi veya Numune Miktarı mevcut değil,
+Return,Dönüş,
+Return / Credit Note,İade / Kredi Notu,
 Return / Debit Note,İade / Borç Dekontu,
-Return Issued,İade verildi,
+Returns,İade,
 Reverse Journal Entry,Ters Günlük Girişi,
 Review Invitation Sent,Gönderilen Davetiyeyi İnceleme,
 Review and Action,İnceleme ve İşlem,
-Role,Rol,
+Role,rol,
 Rooms Booked,Rezervasyonlu Odalar,
 Root Company,Kök Şirketi,
 Root Type,Kök Tipi,
@@ -2470,7 +2426,7 @@
 Row # {0}: ,Satır # {0}:,
 Row # {0}: Batch No must be same as {1} {2},Satır # {0}: Toplu Hayır aynı olmalıdır {1} {2},
 Row # {0}: Cannot return more than {1} for Item {2},Satır # {0}: daha geri olamaz {1} Öğe için {2},
-Row # {0}: Rate cannot be greater than the rate used in {1} {2},"Sıra # {0}: Oran, {1} {2} 'de kullanılan hızdan daha büyük olamaz",
+Row # {0}: Rate cannot be greater than the rate used in {1} {2},"Sıra # {0}: Oran, {1} {2} &#39;de kullanılan hızdan daha büyük olamaz",
 Row # {0}: Serial No is mandatory,Satır # {0}: Seri No zorunludur,
 Row # {0}: Serial No {1} does not match with {2} {3},Satır # {0}: Seri No {1} ile eşleşmiyor {2} {3},
 Row #{0} (Payment Table): Amount must be negative,Satır # {0} (Ödeme Tablosu): Tutar negatif olmalı,
@@ -2481,20 +2437,20 @@
 Row #{0}: Cannot set Rate if amount is greater than billed amount for Item {1}.,Satır # {0}: Öğe {1} için faturalanan tutardan daha büyükse Oran ayarlanamaz.,
 Row #{0}: Clearance date {1} cannot be before Cheque Date {2},Satır # {0}: Boşluk tarihi {1} Çek tarihinden önce olamaz {2},
 Row #{0}: Duplicate entry in References {1} {2},Satır # {0}: Referanslarda çoğaltılmış girdi {1} {2},
-Row #{0}: Expected Delivery Date cannot be before Purchase Order Date,"Sıra # {0}: Beklenen Teslim Tarihi, Satınalma Siparişi Tarihinden önce olamaz",
+Row #{0}: Expected Delivery Date cannot be before Purchase Order Date,"Sıra # {0}: Beklenen Teslim Tarihi, Satın Alma Siparişi Tarihinden önce olamaz",
 Row #{0}: Item added,Satır # {0}: Öğe eklendi,
-Row #{0}: Journal Entry {1} does not have account {2} or already matched against another voucher,Satır # {0}: Yevmiye Kaydı {1} hesabı yok {2} ya da zaten başka bir çeki karşı eşleşti,
+Row #{0}: Journal Entry {1} does not have account {2} or already matched against another voucher,Satır # {0}: günlük girdisi {1} hesabı yok {2} ya da zaten başka bir çeki karşı eşleşti,
 Row #{0}: Not allowed to change Supplier as Purchase Order already exists,Satır # {0}: Sipariş zaten var olduğu Tedarikçi değiştirmek için izin verilmez,
 Row #{0}: Please set reorder quantity,Satır # {0}: yeniden sipariş miktarını ayarlamak Lütfen,
 Row #{0}: Please specify Serial No for Item {1},Satır # {0}: Ürün{1} için seri no belirtiniz,
 Row #{0}: Qty increased by 1,Satır # {0}: Adet 1 arttı,
 Row #{0}: Rate must be same as {1}: {2} ({3} / {4}) ,Satır # {0}: Puan aynı olmalıdır {1}: {2} ({3} / {4}),
-Row #{0}: Reference Document Type must be one of Expense Claim or Journal Entry,"Sıra # {0}: Referans Belge Türü, Masraf Talebi veya Günlük Girişi olmalıdır",
-"Row #{0}: Reference Document Type must be one of Purchase Order, Purchase Invoice or Journal Entry","Satır # {0}: Referans Belge Tipi Satınalma Siparişi, Satınalma Faturası veya Yevmiye kaydı olmalıdır",
-Row #{0}: Rejected Qty can not be entered in Purchase Return,Satır # {0}: Reddedilen Miktar Satınalma İadesine girilemez,
+Row #{0}: Reference Document Type must be one of Expense Claim or Journal Entry,"Sıra # {0}: Referans Belge Türü, Gider Talebi veya Günlük Girişi olmalıdır",
+"Row #{0}: Reference Document Type must be one of Purchase Order, Purchase Invoice or Journal Entry","Satır # {0}: Referans Doküman Tipi Satın Alma Emri biri, Satın Alma Fatura veya günlük girdisi olmalıdır",
+Row #{0}: Rejected Qty can not be entered in Purchase Return,Satır # {0}: Miktar Satınalma Return girilemez Reddedildi,
 Row #{0}: Rejected Warehouse is mandatory against rejected Item {1},Satır # {0}: Depo Reddedildi reddedilen Öğe karşı zorunludur {1},
 Row #{0}: Reqd by Date cannot be before Transaction Date,"Sıra # {0}: Reqd by Date, İşlem Tarihinden önce olamaz",
-Row #{0}: Set Supplier for item {1},Satır # {0}: {1} ürünü için Tedarikçi ayarla,
+Row #{0}: Set Supplier for item {1},Satır # {0}: öğe için Set Tedarikçi {1},
 Row #{0}: Status must be {1} for Invoice Discounting {2},Satır # {0}: Fatura İndirimi {2} için durum {1} olmalı,
 "Row #{0}: The batch {1} has only {2} qty. Please select another batch which has {3} qty available or split the row into multiple rows, to deliver/issue from multiple batches",Sıra # {0}: Toplu işlem {1} yalnızca {2} adetlik bir miktara sahip. Lütfen {3} adet mevcut olan başka bir partiyi seçin veya satırı birden çok partiye dağıtmak / yayınlamak için satırı birden çok satıra bölün.,
 Row #{0}: Timings conflicts with row {1},Satır # {0}: satır ile Gecikme çatışmalar {1},
@@ -2502,7 +2458,7 @@
 Row No {0}: Amount cannot be greater than Pending Amount against Expense Claim {1}. Pending Amount is {2},Sıra Hayır {0}: Tutar Gider İstem {1} karşı Tutar Bekleyen daha büyük olamaz. Bekleyen Tutar {2},
 Row {0} : Operation is required against the raw material item {1},{0} Satırı: {1} hammadde öğesine karşı işlem yapılması gerekiyor,
 Row {0}# Allocated amount {1} cannot be greater than unclaimed amount {2},"Satır {0} # Tahsis edilen tutar {1}, talep edilmeyen tutardan {2} daha büyük olamaz",
-Row {0}# Item {1} cannot be transferred more than {2} against Purchase Order {3},"{0} Satırı # Ürün {1}, Satınalma Siparişi {3} 'den {2}' den fazla transfer edilemiyor",
+Row {0}# Item {1} cannot be transferred more than {2} against Purchase Order {3},"{0} Satırı # Ürün {1}, Satın Alma Siparişi {3} &#39;den {2}&#39; den fazla transfer edilemiyor",
 Row {0}# Paid Amount cannot be greater than requested advance amount,Satır {0} # Ödenen Miktar istenen avans tutarı kadar büyük olamaz,
 Row {0}: Activity Type is mandatory.,Satır {0}: Etkinlik Türü zorunludur.,
 Row {0}: Advance against Customer must be credit,Satır {0}: Müşteriye karşı Advance kredi olmalı,
@@ -2510,7 +2466,7 @@
 Row {0}: Allocated amount {1} must be less than or equals to Payment Entry amount {2},Satır {0}: Ayrılan miktarı {1} daha az olması veya Ödeme giriş miktarı eşittir gerekir {2},
 Row {0}: Allocated amount {1} must be less than or equals to invoice outstanding amount {2},Satır {0}: Tahsis miktar {1} daha az ya da olağanüstü miktarda fatura eşit olmalıdır {2},
 Row {0}: An Reorder entry already exists for this warehouse {1},Satır {0}: Bir Yeniden Sipariş girişi zaten bu depo için var {1},
-Row {0}: Bill of Materials not found for the Item {1},Satır {0}:Ürün {1} için ürün ağacı bulunamadı,
+Row {0}: Bill of Materials not found for the Item {1},Satır {0}: Malzeme Listesi Öğe için bulunamadı {1},
 Row {0}: Conversion Factor is mandatory,Satır {0}: Dönüşüm katsayısı zorunludur,
 Row {0}: Cost center is required for an item {1},{0} Satırı: {1} öğesi için maliyet merkezi gerekiyor,
 Row {0}: Credit entry can not be linked with a {1},Satır {0}: Kredi giriş ile bağlantılı edilemez bir {1},
@@ -2537,7 +2493,7 @@
 Row {0}: UOM Conversion Factor is mandatory,Satır {0}: Ölçü Birimi Dönüşüm Faktörü zorunludur,
 Row {0}: select the workstation against the operation {1},{0} satırı: {1} işlemine karşı iş istasyonunu seçin,
 Row {0}: {1} Serial numbers required for Item {2}. You have provided {3}.,{0} Satırı: {1} {2} Numarası için seri numarası gerekli. {3} adresini verdiniz.,
-Row {0}: {1} must be greater than 0,{0} satırı: {1} 0'dan büyük olmalı,
+Row {0}: {1} must be greater than 0,{0} satırı: {1} 0&#39;dan büyük olmalı,
 Row {0}: {1} {2} does not match with {3},Satır {0}: {1} {2} ile eşleşmiyor {3},
 Row {0}:Start Date must be before End Date,Satır {0}: Başlangıç tarihi bitiş tarihinden önce olmalıdır,
 Rows with duplicate due dates in other rows were found: {0},Diğer satırlardaki yinelenen teslim tarihlerine sahip satırlar bulundu: {0},
@@ -2548,45 +2504,44 @@
 SO Qty,SO Adet,
 Safety Stock,Emniyet Stoğu,
 Salary,Maaş,
-Salary Slip ID,Maaş Bordrosu Kimliği,
+Salary Slip ID,Maaş Kayma kimliği,
 Salary Slip of employee {0} already created for this period,çalışanın maaş Kuponu {0} zaten bu dönem için oluşturulan,
 Salary Slip of employee {0} already created for time sheet {1},çalışanın maaş Kuponu {0} zaten zaman çizelgesi için oluşturulan {1},
-Salary Slip submitted for period from {0} to {1},{0} 'dan {1}' e kadar dönem için gönderilen maaş kaydı,
+Salary Slip submitted for period from {0} to {1},{0} &#39;dan {1}&#39; e kadar dönem için gönderilen maaş kaydı,
 Salary Structure Assignment for Employee already exists,Çalışan için Maaş Yapısı Ataması zaten var,
 Salary Structure Missing,Maaş Yapısı Eksik,
 Salary Structure must be submitted before submission of Tax Ememption Declaration,Vergi İstisnası Beyannamesi sunulmadan önce Maaş Yapısı ibraz edilmelidir,
 Salary Structure not found for employee {0} and date {1},{0} çalışanı ve {1} tarihi için Maaş Yapısı bulunamadı,
 Salary Structure should have flexible benefit component(s) to dispense benefit amount,"Maaş Yapısı, fayda miktarını dağıtmak için esnek fayda bileşenlerine sahip olmalıdır.",
 "Salary already processed for period between {0} and {1}, Leave application period cannot be between this date range.","Maaş zaten {0} ve {1}, bu tarih aralığında olamaz başvuru süresini bırakın arasındaki dönem için işlenmiş.",
-Sales,Satış,
-Sales Account,Satış Hesabı,
+Sales,Satışlar,
+Sales Account,Satış hesabı,
 Sales Expenses,Satış Giderleri,
-Sales Funnel,Satış Hunisi,
-Sales Invoice,Satış Faturası,
+Sales Funnel,Satış Yolu,
+Sales Invoice,Satış faturası,
 Sales Invoice {0} has already been submitted,Satış Faturası {0} zaten gönderildi,
 Sales Invoice {0} must be cancelled before cancelling this Sales Order,Satış Faturası {0} bu Satış Siparişi iptal edilmeden önce iptal edilmelidir,
-Sales Manager,Satış Yöneticisi,
-Sales Master Manager,Satış Master Yöneticisi,
+Sales Manager,Satış Müdürü,
+Sales Master Manager,Satış Master Müdürü,
 Sales Order,Satış Siparişi,
 Sales Order Item,Satış Sipariş Ürünü,
-Sales Order required for Item {0},Ürün {0}için Satış Siparişi gerekli,
-Sales Order to Payment,Satış Siparişinden Ödemeye,
+Sales Order required for Item {0},Ürün {0}için Satış Sipariş  gerekli,
+Sales Order to Payment,Ödeme Satış Sipariş,
 Sales Order {0} is not submitted,Satış Sipariş {0} teslim edilmedi,
 Sales Order {0} is not valid,Satış Sipariş {0} geçerli değildir,
 Sales Order {0} is {1},Satış Sipariş {0} {1},
 Sales Orders,Satış Siparişleri,
 Sales Partner,Satış Ortağı,
-Sales Pipeline,Satış Süreci,
+Sales Pipeline,Ön Satış Süreci,
 Sales Price List,Satış Fiyat Listesi,
-Sales Return,Satış İadesi,
-Sales Summary,Satış Özeti,
-Sales Tax Template,Satış Vergisi Şablonu,
-Sales Team,Satış Ekibi,
-Sales User,Satış Kullanıcısı,
+Sales Return,Satış İade,
+Sales Summary,Satış özeti,
+Sales Tax Template,Satış Vergisi Şablon,
+Sales Team,Satış ekibi,
+Sales User,Satış Kullanıcı,
 Sales and Returns,Satışlar ve İadeler,
 Sales campaigns.,Satış kampanyaları.,
 Sales orders are not available for production,Satış siparişleri üretim için mevcut değildir,
-Sales Pipeline Analytics,Satış Süreci Analitiği,
 Salutation,Hitap,
 Same Company is entered more than once,Aynı şirket birden fazla girilir,
 Same item cannot be entered multiple times.,Aynı madde birden çok kez girilemez.,
@@ -2594,15 +2549,15 @@
 Sample,Numune,
 Sample Collection,Örnek koleksiyon,
 Sample quantity {0} cannot be more than received quantity {1},"Örnek miktarı {0}, alınan miktardan {1} fazla olamaz.",
-Sanctioned,Onaylandı,
-Sanctioned Amount,Onaylanan Tutarı,
-Sanctioned Amount cannot be greater than Claim Amount in Row {0}.,Onaylanan Tutarı, {0} Satırdaki Talep Tutarından büyük olamaz.,
+Sanctioned,onaylanmış,
+Sanctioned Amount,tasdik edilmiş tutar,
+Sanctioned Amount cannot be greater than Claim Amount in Row {0}.,Yaptırıma Tutar Satır talep miktarı daha büyük olamaz {0}.,
 Sand,Kum,
 Saturday,Cumartesi,
-Saved,Kaydedildi,
+Saved,Kaydedilmiş,
 Saving {0},{0} kaydediliyor,
 Scan Barcode,Barkod Tara,
-Schedule,Planla,
+Schedule,program,
 Schedule Admission,Program Kabulü,
 Schedule Course,Program Ders,
 Schedule Date,Program Tarihi,
@@ -2635,8 +2590,8 @@
 Select BOM,seç BOM,
 Select BOM and Qty for Production,Üretim için BOM ve Miktar seçin,
 "Select BOM, Qty and For Warehouse","Malzeme Listesini, Miktarı ve Depoyu Seçin",
-Select Batch,Parti / Lot Seç,
-Select Batch Numbers,Parti Numaralarını Seç,
+Select Batch,Toplu iş seç,
+Select Batch Numbers,Toplu Numaraları Seç,
 Select Brand...,Marka Seçiniz ...,
 Select Company,Şirket Seç,
 Select Company...,Firma Seçin ...,
@@ -2646,15 +2601,15 @@
 Select DocType,Belge Tipi seçine,
 Select Fiscal Year...,Mali Yıl Seçin ...,
 Select Item (optional),Öğe seçin (isteğe bağlı),
-Select Items based on Delivery Date,Teslimat Tarihine göre Öğe Seç,
-Select Items to Manufacture,Üretilecek Öğeleri Seçin,
-Select Loyalty Program,Sadakat Programı Seç,
+Select Items based on Delivery Date,Teslimat Tarihine Göre Öğe Seç,
+Select Items to Manufacture,İmalat Öğe seç,
+Select Loyalty Program,Bağlılık Programı Seç,
 Select Patient,Hastayı seçin,
 Select Possible Supplier,Olası Tedarikçi Seçin,
 Select Property,Emlak Seç,
 Select Quantity,",Miktar Seç",
 Select Serial Numbers,Seri Numaralarını Seçin,
-Select Target Warehouse,Hedef Ambarı'nı seçin,
+Select Target Warehouse,Hedef Ambarı&#39;nı seçin,
 Select Warehouse...,Warehouse Seçiniz ...,
 Select an account to print in account currency,Hesap para birimi cinsinden yazdırılacak bir hesap seçin,
 Select an employee to get the employee advance.,Çalışan avansını elde etmek için bir çalışan seçin.,
@@ -2668,7 +2623,7 @@
 Select to add Serial Number.,Seri Numarası eklemek için seçin.,
 Select your Domains,Çalışma alanlarınızı seçin,
 Selected Price List should have buying and selling fields checked.,Seçilen Fiyat Listesi alım satım alanlarına sahip olmalıdır.,
-Sell,Sat,
+Sell,Satmak,
 Selling,Satış,
 Selling Amount,Satış Tutarı,
 Selling Price List,Satış Fiyatı Listesi,
@@ -2680,9 +2635,9 @@
 Send mass SMS to your contacts,Kişilerinize toplu SMS Gönder,
 Sensitivity,Duyarlılık,
 Sent,Gönderilen,
-Serial No and Batch,Seri No ve Lot,
+Serial No and Batch,Seri no ve toplu,
 Serial No is mandatory for Item {0},Ürün {0} için Seri no zorunludur,
-Serial No {0} does not belong to Batch {1},"{0} Seri Numarası, {1} Batch'a ait değil",
+Serial No {0} does not belong to Batch {1},"{0} Seri Numarası, {1} Batch&#39;a ait değil",
 Serial No {0} does not belong to Delivery Note {1},Seri No {0} İrsaliye  {1} e ait değil,
 Serial No {0} does not belong to Item {1},Seri No {0} Ürün {1} e ait değil,
 Serial No {0} does not belong to Warehouse {1},Seri No {0} Depo  {1} e ait değil,
@@ -2697,7 +2652,7 @@
 Serial Nos Required for Serialized Item {0},Seri Ürün{0} için Seri numaraları gereklidir,
 Serial Number: {0} is already referenced in Sales Invoice: {1},"Seri Numarası: {0}, Satış Faturasında zaten atıfta bulunuldu: {1}",
 Serial Numbers,Seri numaraları,
-Serial Numbers in row {0} does not match with Delivery Note,{0} satırındaki seri numaraları İrsaliye ile eşleşmiyor,
+Serial Numbers in row {0} does not match with Delivery Note,{0} satırındaki seri numaraları Teslimat Notu ile eşleşmiyor,
 Serial no {0} has been already returned,{0} seri numarası zaten gönderildi,
 Serial number {0} entered more than once,Seri numarası {0} birden çok girilmiş,
 Serialized Inventory,Serileştirilmiş Envanteri,
@@ -2705,13 +2660,13 @@
 Series Updated Successfully,Seri başarıyla güncellendi,
 Series is mandatory,Seri zorunludur,
 Series {0} already used in {1},Seriler {0} {1} de zaten kullanılmıştır,
-Service,Hizmet,
-Service Expense,Hizmet Masrafı,
-Service Level Agreement,Hizmet Seviyesi Anlaşması,
-Service Level Agreement.,Hizmet Seviyesi Anlaşması.,
-Service Level.,Hizmet Seviyesi.,
+Service,Servis,
+Service Expense,Hizmet gideri,
+Service Level Agreement,Hizmet düzeyi anlaşması,
+Service Level Agreement.,Hizmet düzeyi anlaşması.,
+Service Level.,Servis seviyesi.,
 Service Stop Date cannot be after Service End Date,Hizmet Bitiş Tarihi Servis Sonu Tarihinden sonra olamaz,
-Service Stop Date cannot be before Service Start Date,"Hizmet Durdurma Tarihi, Hizmet Başlangıç Tarihi'nden önce olamaz",
+Service Stop Date cannot be before Service Start Date,"Hizmet Durdurma Tarihi, Hizmet Başlangıç Tarihi&#39;nden önce olamaz",
 Services,Servisler,
 "Set Default Values like Company, Currency, Current Fiscal Year, etc.","Şirket, Para Birimi, Mali yıl vb gibi standart değerleri ayarlayın",
 Set Details,Ayrıntıları Ayarla,
@@ -2729,40 +2684,40 @@
 Set {0} in asset category {1} or company {2},{1} varlık kategorisinde veya {2} şirkette {0} ayarlayın,
 "Setting Events to {0}, since the Employee attached to the below Sales Persons does not have a User ID{1}","Olaylar ayarlanması {0}, Satış Kişilerin altına bağlı çalışan bir kullanıcı kimliğine sahip olmadığından {1}",
 Setting defaults,Varsayılanları ayarlama,
-Setting up Email,E-posta Kurulumu,
+Setting up Email,E-posta kurma,
 Setting up Email Account,E-posta Hesabı Oluşturma,
-Setting up Employees,Personel Oluşturma,
-Setting up Taxes,Vergileri Ayarla,
-Setting up company,Şirket Kurulumu,
+Setting up Employees,Çalışanlar kurma,
+Setting up Taxes,Vergiler kurma,
+Setting up company,Şirket kurma,
 Settings,Ayarlar,
 "Settings for online shopping cart such as shipping rules, price list etc.","Böyle nakliye kuralları, fiyat listesi vb gibi online alışveriş sepeti için Ayarlar",
 Settings for website homepage,Web sitesi ana sayfası için ayarlar,
 Settings for website product listing,Web sitesi ürün listeleme ayarları,
-Settled,Yerleşik,
+Settled,yerleşik,
 Setup Gateway accounts.,Kur Gateway hesapları.,
 Setup SMS gateway settings,Kurulum SMS ağ geçidi ayarları,
 Setup cheque dimensions for printing,Baskı için Kurulum onay boyutları,
 Setup default values for POS Invoices,POS Faturaları için varsayılan değerleri ayarlayın,
-Setup mode of POS (Online / Offline),POS'un kurulum modu (Çevrimiçi / Çevrimdışı),
-Setup your Institute in ERPNext,Enstitünüzü ERPNext'de Kurun,
-Share Balance,Hisse Bakiyesi,
-Share Ledger,Hisse Defteri,
-Share Management,Hisse Yönetimi,
-Share Transfer,Hisse Transferi,
-Share Type,Hisse Türü,
+Setup mode of POS (Online / Offline),POS&#39;un kurulum modu (Çevrimiçi / Çevrimdışı),
+Setup your Institute in ERPNext,Enstitünüzü ERPNext&#39;de Kurun,
+Share Balance,Bakiye Paylaş,
+Share Ledger,Defteri Birlikte Paylaş,
+Share Management,Paylaşım Yönetimi,
+Share Transfer,Paylaşım Transferi,
+Share Type,Paylaşım Türü,
 Shareholder,Hissedar,
-Ship To State,Eyalete Sevket,
+Ship To State,Devlete Gemi,
 Shipments,Gönderiler,
-Shipping,Teslimat,
-Shipping Address,Teslimat Adresi,
+Shipping,Nakliye,
+Shipping Address,teslimat adresi,
 "Shipping Address does not have country, which is required for this Shipping Rule","Nakliye Adresi, bu Nakliye Kuralı için gerekli olan ülke içermiyor",
 Shipping rule only applicable for Buying,Nakliye kuralı yalnızca Alış için geçerlidir,
 Shipping rule only applicable for Selling,Nakliye kuralı yalnızca Satış için geçerlidir,
-Shopify Supplier,Shopify Tedarikçisi,
+Shopify Supplier,Shopify Tedarikçi,
 Shopping Cart,Alışveriş Sepeti,
 Shopping Cart Settings,Alışveriş Sepeti Ayarları,
 Short Name,Kısa Adı,
-Shortage Qty,Eksik Miktar,
+Shortage Qty,Yetersizlik adeti,
 Show Completed,Tamamlananları Göster,
 Show Cumulative Amount,Kümülatif Tutarı Göster,
 Show Employee,Çalışanı Göster,
@@ -2770,16 +2725,16 @@
 Show Opening Entries,Açılış Girişlerini Göster,
 Show Payment Details,Ödeme Ayrıntılarını Göster,
 Show Return Entries,İade Girişlerini Göster,
-Show Salary Slip,Maaş Bordrosunu Göster,
+Show Salary Slip,Göster Maaş Kayma,
 Show Variant Attributes,Varyant Özelliklerini Göster,
-Show Variants,Varyantları Göster,
+Show Variants,Göster Varyantlar,
 Show closed,Kapalı olanları göster,
 Show exploded view,Genişletilmiş görünümü göster,
-Show only POS,Sadece POSu göster,
-Show unclosed fiscal year's P&L balances,Kapanmamış Mali yılın Kar ve Zarar Bakiyesini göster,
+Show only POS,Sadece POS göster,
+Show unclosed fiscal year's P&L balances,kapanmamış mali yılın P &amp; L dengeleri göster,
 Show zero values,Sıfır değerleri göster,
 Sick Leave,Hastalık izni,
-Silt,Silt,
+Silt,alüvyon,
 Single Variant,Tek Çeşit,
 Single unit of an Item.,Bir Ürünün tek birimi,
 "Skipping Leave Allocation for the following employees, as Leave Allocation records already exists against them. {0}","Atlama Ayrıştırma kayıtları zaten onlara karşı olduğundan, aşağıdaki çalışanlar için Ayrılmayı Bırakma. {0}",
@@ -2789,9 +2744,9 @@
 Small,Küçük,
 Soap & Detergent,Sabun ve Deterjan,
 Software,Yazılım,
-Software Developer,Yazılım Geliştirici,
+Software Developer,Yazılım geliştirici,
 Softwares,Yazılımlar,
-Soil compositions do not add up to 100,Zemin kompozisyonları 100'e kadar eklemez,
+Soil compositions do not add up to 100,Zemin kompozisyonları 100&#39;e kadar eklemez,
 Sold,Satıldı,
 Some emails are invalid,Bazı e-postalar geçersiz,
 Some information is missing,Bazı bilgiler eksik,
@@ -2806,15 +2761,15 @@
 Source of Funds (Liabilities),Fon kaynakları (Yükümlülükler),
 Source warehouse is mandatory for row {0},Satır {0} Kaynak depo zorunludur,
 Specified BOM {0} does not exist for Item {1},Ürün için yok Belirtilen BOM {0} {1},
-Split,Böl,
-Split Batch,Lotu Böl,
-Split Issue,Sorunu Böl,
+Split,Bölünmüş,
+Split Batch,Bölme Bölmesi,
+Split Issue,Bölünmüş Sorun,
 Sports,Spor,
 Staffing Plan {0} already exist for designation {1},{1} atanması için {0} Personel Planı zaten mevcut,
 Standard,Standart,
-Standard Buying,Standart Satınalma,
+Standard Buying,Standart Satın Alma,
 Standard Selling,Standart satış,
-Standard contract terms for Sales or Purchase.,Satış veya Satınalma için standart sözleşme şartları.,
+Standard contract terms for Sales or Purchase.,Satış veya Satın Alma için standart sözleşme şartları.,
 Start Date,Başlangıç Tarihi,
 Start Date of Agreement can't be greater than or equal to End Date.,"Anlaşmanın Başlangıç Tarihi, Bitiş Tarihinden büyük veya ona eşit olamaz.",
 Start Year,Başlangıç yılı,
@@ -2822,28 +2777,28 @@
 "Start and end dates not in a valid Payroll Period, cannot calculate {0}.","Başlangıç ve bitiş tarihleri geçerli bir Bordro Döneminde değil, {0} değerini hesaplayamaz.",
 Start date should be less than end date for Item {0},Başlangıç tarihi Ürün {0} için bitiş tarihinden daha az olmalıdır,
 Start date should be less than end date for task {0},{0} görevi için başlangıç tarihi bitiş tarihinden daha az olmalı,
-Start day is greater than end day in task '{0}',"Başlangıç günü, '{0}' görevi bitiş günden daha büyük",
-Start on,Başlama tarihi,
-State,Eyalet,
+Start day is greater than end day in task '{0}',"Başlangıç günü, &#39;{0}&#39; görevi bitiş günden daha büyük",
+Start on,Başla,
+State,"Belirtmek, bildirmek",
 State/UT Tax,Devlet / UT Vergisi,
 Statement of Account,Hesap Beyanı,
 Status must be one of {0},Durum şunlardan biri olmalıdır {0},
 Stock,Stok,
 Stock Adjustment,Stok Ayarı,
 Stock Analytics,Stok Analizi,
-Stock Assets,Stok Varlıklar,
+Stock Assets,Hazır Varlıklar,
 Stock Available,Stok mevcut,
-Stock Balance,Stok Bakiyesi,
+Stock Balance,Stok Bakiye,
 Stock Entries already created for Work Order ,İş Emri için önceden hazırlanmış Stok Girişleri,
-Stock Entry,Stok Hareketi,
-Stock Entry {0} created,Stok Hareketi {0} oluşturuldu,
-Stock Entry {0} is not submitted,Stok Hareketi {0} gönderilemez,
+Stock Entry,Stok Girişleri,
+Stock Entry {0} created,Stok Giriş {0} oluşturuldu,
+Stock Entry {0} is not submitted,Stok Giriş {0} teslim edilmez,
 Stock Expenses,Stok Giderleri,
-Stock In Hand,Eldeki Stok,
-Stock Items,Stok Öğeleri,
-Stock Ledger,Stok Defteri,
+Stock In Hand,Elde Edilen Stoklar,
+Stock Items,Stok Öğeler,
+Stock Ledger,Stok defteri,
 Stock Ledger Entries and GL Entries are reposted for the selected Purchase Receipts,Stok Ledger Girişler ve GL Girişler seçilen Satınalma Makbuzlar için yayınlanırsa edilir,
-Stock Levels,Stok Seviyeleri,
+Stock Levels,Stok seviyeleri,
 Stock Liabilities,Stok Yükümlülükleri,
 Stock Options,Stok Seçenekleri,
 Stock Qty,Stok Miktarı,
@@ -2855,10 +2810,10 @@
 Stock Value,Stok Değeri,
 Stock balance in Batch {0} will become negative {1} for Item {2} at Warehouse {3},Toplu stok bakiyesi {0} olacak olumsuz {1} Warehouse Ürün {2} için {3},
 Stock cannot be updated against Delivery Note {0},Stok İrsaliye {0} karşısı güncellenmez,
-Stock cannot be updated against Purchase Receipt {0},Stok Satınalma Makbuzu karşı güncellenmiş edilemez {0},
+Stock cannot be updated against Purchase Receipt {0},Stok Satın Alma Makbuzu karşı güncellenmiş edilemez {0},
 Stock cannot exist for Item {0} since has variants,Ürün için var olamaz Stok {0} yana varyantları vardır,
 Stock transactions before {0} are frozen,{0} dan önceki stok işlemleri dondurulmuştur,
-Stop,Dur,
+Stop,dur,
 Stopped,Durduruldu,
 "Stopped Work Order cannot be cancelled, Unstop it first to cancel","Durdurulan İş Emri iptal edilemez, İptal etmeden önce kaldır",
 Stores,Mağazalar,
@@ -2888,20 +2843,20 @@
 Student {0} exist against student applicant {1},Öğrenci {0} öğrenci başvuru karşı mevcut {1},
 "Students are at the heart of the system, add all your students","Öğrenciler sisteminin kalbi, tüm öğrenci ekleyebilir edilir",
 Sub Assemblies,Alt Kurullar,
-Sub Type,Alt Tür,
-Sub-contracting,Alt sözleşme,
-Subcontract,Taşeronluk,
-Subject,Konu,
+Sub Type,Alt türü,
+Sub-contracting,Taşeronluk,
+Subcontract,alt sözleşme,
+Subject,konu,
 Submit,Gönder,
 Submit Proof,Kanıt Gönder,
 Submit Salary Slip,Bordro Gönder,
 Submit this Work Order for further processing.,Daha fazla işlem için bu İş Emrini gönderin.,
 Submit this to create the Employee record,Çalışan kaydını oluşturmak için bunu gönderin,
-Submitting Salary Slips...,Maaş Fişleri Gönderiliyor ...,
-Subscription,Abonelik,
+Submitting Salary Slips...,Maaş Fişlerini Göndermek ...,
+Subscription,abone,
 Subscription Management,Abonelik Yönetimi,
 Subscriptions,Abonelikler,
-Subtotal,Ara toplam,
+Subtotal,ara toplam,
 Successful,Başarılı,
 Successfully Reconciled,Başarıyla Uzlaştırıldı,
 Successfully Set Supplier,Tedarikçi Başarıyla Ayarlandı,
@@ -2913,8 +2868,8 @@
 Summary for this month and pending activities,Bu ay ve bekleyen aktiviteler için Özet,
 Summary for this week and pending activities,Bu hafta ve bekleyen aktiviteler için Özet,
 Sunday,Pazar,
-Suplier,Tedarikçi,
-Supplier,Tedarikçi,
+Suplier,suplier,
+Supplier,satıcı,
 Supplier Group,Tedarikçi Grubu,
 Supplier Group master.,Tedarikçi Grubu yöneticisi.,
 Supplier Id,Tedarikçi kimliği,
@@ -2925,18 +2880,18 @@
 Supplier Part No,Tedarikçi Parça No,
 Supplier Quotation,Tedarikçi Teklifi,
 Supplier Scorecard,Tedarikçi Puan Kartı,
-Supplier Warehouse mandatory for sub-contracted Purchase Receipt,Taşerona bağlı Alış Fişi için Tedarikçi deposu zorunludur,
+Supplier Warehouse mandatory for sub-contracted Purchase Receipt,Alt Sözleşmeye bağlı Alım makbuzu için Tedarikçi deposu zorunludur,
 Supplier database.,Tedarikçi veritabanı.,
 Supplier {0} not found in {1},Tedarikçi {0} {1} konumunda bulunamadı,
-Supplier(s),Tedarikçi(ler),
+Supplier(s),Tedarikçi (ler),
 Supplies made to UIN holders,UIN sahiplerine yapılan sarf malzemeleri,
 Supplies made to Unregistered Persons,Kayıt Dışı Kişilere Yapılan Malzemeler,
 Suppliies made to Composition Taxable Persons,Vergilendirilebilir Kişilerin Bileşimine Yapılan Tedarikler,
-Supply Type,Tedarik Türü,
+Supply Type,Tedarik türü,
 Support,Destek,
 Support Analytics,Destek Analizi,
-Support Settings,Destek Ayarları,
-Support Tickets,Destek Biletleri,
+Support Settings,Destek ayarları,
+Support Tickets,destek biletleri,
 Support queries from customers.,Müşterilerden gelen destek sorguları.,
 Susceptible,Duyarlı,
 Sync has been temporarily disabled because maximum retries have been exceeded,Maksimum deneme sayısı aşıldığı için senkronizasyon geçici olarak devre dışı bırakıldı,
@@ -2957,10 +2912,10 @@
 Tax Assets,Vergi Varlıkları,
 Tax Category,Vergi Kategorisi,
 Tax Category for overriding tax rates.,Vergi oranlarını geçersiz kılmak için Vergi Kategorisi.,
-"Tax Category has been changed to ""Total"" because all the Items are non-stock items","Tüm Maddeler stokta bulunmayan maddeler olduğundan, Vergi Kategorisi 'Toplam' olarak değiştirildi",
+"Tax Category has been changed to ""Total"" because all the Items are non-stock items","Tüm Maddeler stokta bulunmayan maddeler olduğundan, Vergi Kategorisi &quot;Toplam&quot; olarak değiştirildi",
 Tax ID,Vergi Numarası,
-Tax Id: ,Vergi Numarası:,
-Tax Rate,Vergi Oranı,
+Tax Id: ,Vergi numarası:,
+Tax Rate,Vergi oranı,
 Tax Rule Conflicts with {0},Vergi Kural Çatışmalar {0},
 Tax Rule for transactions.,Işlemler için vergi hesaplama kuralı.,
 Tax Template is mandatory.,Vergi şablonu zorunludur.,
@@ -2971,29 +2926,29 @@
 Taxable Amount,Vergilendirilebilir Tutar,
 Taxes,Vergiler,
 Team Updates,Ekip Güncellemeleri,
-Technology,Teknoloji,
+Technology,teknoloji,
 Telecommunications,Telekomünikasyon,
 Telephone Expenses,Telefon Giderleri,
 Television,Televizyon,
 Template Name,Şablon adı,
-Template of terms or contract.,Şartlar veya sözleşme şablonu.,
+Template of terms or contract.,Şart veya sözleşmeler şablonu.,
 Templates of supplier scorecard criteria.,Tedarikçi puan kartı kriterlerinin şablonları.,
 Templates of supplier scorecard variables.,Tedarikçi puan kartı değişkenlerinin şablonları.,
 Templates of supplier standings.,Tedarikçi sıralamaları şablonları.,
 Temporarily on Hold,Geçici olarak Beklemede,
 Temporary,Geçici,
 Temporary Accounts,Geçici Hesaplar,
-Temporary Opening,Geçici Açılış,
+Temporary Opening,Geçici Açma,
 Terms and Conditions,Şartlar ve koşullar,
-Terms and Conditions Template,Şartlar ve Koşullar Şablonu,
-Territory,Bölge,
+Terms and Conditions Template,Şartlar ve Koşullar Şablon,
+Territory,bölge,
 Test,Test,
 Thank you,Teşekkürler,
 Thank you for your business!,İşiniz için teşekkür ederim!,
-The 'From Package No.' field must neither be empty nor it's value less than 1.,'Paketten Numara' alanı ne boş ne de 1'den küçük bir değer olmalıdır.,
+The 'From Package No.' field must neither be empty nor it's value less than 1.,&#39;Paketten Numara&#39; alanı ne boş ne de 1&#39;den küçük bir değer olmalıdır.,
 The Brand,Marka,
 The Item {0} cannot have Batch,Öğe {0} Toplu olamaz,
-The Loyalty Program isn't valid for the selected company,Sadakat Programı seçilen şirket için geçerli değil,
+The Loyalty Program isn't valid for the selected company,Bağlılık Programı seçilen şirket için geçerli değil,
 The Payment Term at row {0} is possibly a duplicate.,"{0} Satırındaki Ödeme Süresi, muhtemelen bir kopyadır.",
 The Term End Date cannot be earlier than the Term Start Date. Please correct the dates and try again.,Terim Bitiş Tarihi Dönem Başlangıç Tarihi daha önce olamaz. tarihleri düzeltmek ve tekrar deneyin.,
 The Term End Date cannot be later than the Year End Date of the Academic Year to which the term is linked (Academic Year {}). Please correct the dates and try again.,Dönem Bitiş Tarihi sonradan terim bağlantılı olduğu için Akademik Yılı Yıl Sonu tarihi daha olamaz (Akademik Yılı {}). tarihleri düzeltmek ve tekrar deneyin.,
@@ -3021,7 +2976,7 @@
 "There are inconsistencies between the rate, no of shares and the amount calculated","Oran, pay sayısı ve hesaplanan tutar arasında tutarsızlıklar vardır",
 There are more holidays than working days this month.,Bu ayda çalışma günlerinden daha fazla tatil vardır.,
 There can be multiple tiered collection factor based on the total spent. But the conversion factor for redemption will always be same for all the tier.,"Toplam harcanan toplamı baz alarak çok katmanlı toplama faktörü olabilir. Ancak, itfa için dönüşüm faktörü, tüm katmanlar için her zaman aynı olacaktır.",
-There can only be 1 Account per Company in {0} {1},Sadece Şirket'in başına 1 Hesap olabilir {0} {1},
+There can only be 1 Account per Company in {0} {1},Sadece Şirket&#39;in başına 1 Hesap olabilir {0} {1},
 "There can only be one Shipping Rule Condition with 0 or blank value for ""To Value""","Sadece ""değerini"" için 0 veya boş değere sahip bir Nakliye Kural Durumu olabilir",
 There is no leave period in between {0} and {1},{0} ile {1} tarihleri arasında izin süresi yoktur,
 There is not enough leave balance for Leave Type {0},İzin tipi{0} için yeterli izin bakiyesi yok,
@@ -3063,19 +3018,19 @@
 "Time slot skiped, the slot {0} to {1} overlap exisiting slot {2} to {3}","Zaman aralığı atlandı, {0} - {1} arasındaki yuva {2} çıkış yuvasına {3} uzanıyor",
 Time slots added,Zaman aralıkları eklendi,
 Time(in mins),(Dakika cinsinden) Zaman,
-Timer,Kronometre,
+Timer,kronometre,
 Timer exceeded the given hours.,Zamanlayıcı verilen saatleri aştı.,
-Timesheet,Zaman Çizelgesi,
+Timesheet,Zaman çizelgesi,
 Timesheet for tasks.,Görevler için mesai kartı.,
 Timesheet {0} is already completed or cancelled,Mesai Kartı {0} tamamlanmış veya iptal edilmiş,
 Timesheets,Mesai kartları,
 "Timesheets help keep track of time, cost and billing for activites done by your team","Zaman çizelgeleri ekip tarafından yapılan aktiviteler için zaman, maliyet ve fatura izlemenize yardımcı",
 Titles for print templates e.g. Proforma Invoice.,"Baskı Şablonları için başlıklar, örneğin Proforma Fatura",
-To,Kime,
-To Address 1,Adres 1'e,
-To Address 2,Adres 2'ye,
-To Bill,Faturalandır,
-To Date,Bitiş Tarihi,
+To,için,
+To Address 1,Adrese 1,
+To Address 2,Adres 2&#39;ye,
+To Bill,Faturala,
+To Date,Tarihine kadar,
 To Date cannot be before From Date,Bitiş tarihi başlangıç tarihinden önce olmamalıdır,
 To Date cannot be less than From Date,"Tarihe, Başlangıç Tarihinden daha az olamaz",
 To Date must be greater than From Date,"Tarihe, Tarihten büyük olmalıdır",
@@ -3083,14 +3038,14 @@
 To Datetime,DateTime için,
 To Deliver,Teslim edilecek,
 To Deliver and Bill,Teslim edilecek ve Faturalanacak,
-To Fiscal Year,Mali Yıl Bitişi,
-To GSTIN,GSTIN'e,
-To Party Name,Parti Adı Bitişi,
-To Pin Code,PIN Kodu'na,
-To Place,Yerleştirilecek,
-To Receive,Alınacak,
+To Fiscal Year,Mali Yıla,
+To GSTIN,GSTIN&#39;e,
+To Party Name,Parti adına,
+To Pin Code,PIN Kodu&#39;na,
+To Place,Yerleştirmek,
+To Receive,Almak,
 To Receive and Bill,Teslimat ve Ödeme,
-To State,Hedef Eyalet,
+To State,Devlete,
 To Warehouse,Depoya,
 To create a Payment Request reference document is required,Bir Ödeme Talebi oluşturmak için referans belgesi gerekiyor,
 To date can not be equal or less than from date,Bugüne kadar aynı tarihte eşit veya daha az olamaz,
@@ -3103,7 +3058,7 @@
 "To merge, following properties must be same for both items","Birleştirmek için, aşağıdaki özellikler her iki Ürün için de aynı olmalıdır",
 "To not apply Pricing Rule in a particular transaction, all applicable Pricing Rules should be disabled.",Belli bir işlemde Fiyatlandırma kuralını uygulamamak için bütün mevcut Fiyatlandırma Kuralları devre dışı bırakılmalıdır.,
 "To set this Fiscal Year as Default, click on 'Set as Default'","Varsayılan olarak bu Mali Yılı ayarlamak için, 'Varsayılan olarak ayarla' seçeneğini tıklayın",
-To view logs of Loyalty Points assigned to a Customer.,Bir Müşteriye atanan Sadakat Puanlarının günlüklerini görmek için.,
+To view logs of Loyalty Points assigned to a Customer.,Bir Müşteriye atanan Bağlılık Puanlarının günlüklerini görmek için.,
 To {0},Şu kişiye {0},
 To {0} | {1} {2},Şu kişi(lere) {0} | {1} {2},
 Toggle Filters,Geçiş Filtreleri,
@@ -3111,34 +3066,34 @@
 Tools,Araçlar,
 Total (Credit),Toplam (Kredi),
 Total (Without Tax),Toplam (Vergisiz),
-Total Absent,Toplam Devamsızlık,
-Total Achieved,Toplam Eldeki,
+Total Absent,Toplam Yok,
+Total Achieved,Toplam Elde,
 Total Actual,Gerçek Toplam,
-Total Allocated Leaves,Toplam Tahsis Edilen İzinler,
+Total Allocated Leaves,Toplam Tahsis Edilen Yapraklar,
 Total Amount,Toplam tutar,
 Total Amount Credited,Kredili Toplam Tutar,
-Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,Satınalma Makbuzu Öğeler tablosundaki toplam Uygulanabilir Masraflar Toplam Vergi ve Masraflar aynı olmalıdır,
+Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,Satın Alma Makbuzu Öğeler tablosundaki toplam Uygulanabilir Masraflar Toplam Vergi ve Masraflar aynı olmalıdır,
 Total Budget,Toplam bütçe,
 Total Collected: {0},Toplanan Toplam: {0},
 Total Commission,Toplam Komisyon,
 Total Contribution Amount: {0},Toplam Katkı Payı: {0},
-Total Credit/ Debit Amount should be same as linked Journal Entry,"Toplam Kredi / Borç Tutarı, Bağlantılı Yevmiye Kaydı ile aynı olmalıdır",
+Total Credit/ Debit Amount should be same as linked Journal Entry,"Toplam Kredi / Borç Tutarı, Bağlantılı Dergi Girişi ile aynı olmalıdır",
 Total Debit must be equal to Total Credit. The difference is {0},"Toplam Borç Toplam Krediye eşit olmalıdırr. Aradaki fark, {0}",
 Total Deduction,Toplam kesinti,
 Total Invoiced Amount,Toplam Faturalanmış Tutar,
-Total Leaves,Toplam İzinler,
+Total Leaves,Toplam Yapraklar,
 Total Order Considered,Dikkat Toplam Sipariş,
 Total Order Value,Toplam Sipariş Miktarı,
 Total Outgoing,Toplam Giden,
-Total Outstanding,Toplam Ödenmemiş,
-Total Outstanding Amount,Toplam Ödenmemiş Tutar,
-Total Outstanding: {0},Toplam Ödenmemiş: {0},
+Total Outstanding,Toplam Üstün,
+Total Outstanding Amount,Toplam Alacakların Tutarı,
+Total Outstanding: {0},Toplam Üstün: {0},
 Total Paid Amount,Toplam Ödenen Tutar,
-Total Payment Amount in Payment Schedule must be equal to Grand / Rounded Total,Ödeme Planındaki Toplam Ödeme Tutarı Grand / Rounded Total'e eşit olmalıdır.,
-Total Payments,Toplam Ödeme,
+Total Payment Amount in Payment Schedule must be equal to Grand / Rounded Total,Ödeme Planındaki Toplam Ödeme Tutarı Grand / Rounded Total&#39;e eşit olmalıdır.,
+Total Payments,Toplam tutar,
 Total Present,Toplam Mevcut,
-Total Qty,Toplam Miktar,
-Total Quantity,Toplam Miktar,
+Total Qty,Toplam Adet,
+Total Quantity,Toplam miktar,
 Total Revenue,Toplam gelir,
 Total Student,Toplam Öğrenci,
 Total Target,Toplam Hedef,
@@ -3151,17 +3106,17 @@
 Total advance ({0}) against Order {1} cannot be greater than the Grand Total ({2}),Toplam avans ({0}) Sipariş karşı {1} Genel Toplam den büyük olamaz ({2}),
 Total advance amount cannot be greater than total claimed amount,"Toplam avans miktarı, talep edilen toplam tutar kadar olamaz",
 Total advance amount cannot be greater than total sanctioned amount,"Toplam avans miktarı, toplam onaylanan tutardan fazla olamaz",
-Total allocated leaves are more days than maximum allocation of {0} leave type for employee {1} in the period,"Toplam ayrılan İzinler, dönemdeki {1} çalışan için maksimum {1} izin türünden daha fazla gündür.",
-Total allocated leaves are more than days in the period,Toplam ayrılan İzinler dönemde gün daha vardır,
+Total allocated leaves are more days than maximum allocation of {0} leave type for employee {1} in the period,"Toplam ayrılan yapraklar, dönemdeki {1} çalışan için maksimum {1} izin türünden daha fazla gündür.",
+Total allocated leaves are more than days in the period,Toplam ayrılan yapraklar dönemde gün daha vardır,
 Total allocated percentage for sales team should be 100,Satış ekibi için ayrılan toplam yüzde 100 olmalıdır,
 Total cannot be zero,Toplam sıfır olamaz,
-Total contribution percentage should be equal to 100,Toplam katkı yüzdesi 100'e eşit olmalıdır,
+Total contribution percentage should be equal to 100,Toplam katkı yüzdesi 100&#39;e eşit olmalıdır,
 Total flexible benefit component amount {0} should not be less than max benefits {1},"Toplam esnek fayda bileşeni {0} tutarı, maksimum yarardan {1} daha az olmamalıdır",
 Total hours: {0},Toplam saat: {0},
 Total leaves allocated is mandatory for Leave Type {0},{0} İzin Türü için ayrılan toplam izinler zorunludur,
 Total working hours should not be greater than max working hours {0},Toplam çalışma süresi maksimum çalışma saatleri fazla olmamalıdır {0},
 Total {0} ({1}),Toplam {0} ({1}),
-"Total {0} for all items is zero, may be you should change 'Distribute Charges Based On'",Toplam {0} tüm öğeler için size 'Dayalı Suçlamaları dağıtın' değişmelidir olabilir sıfırdır,
+"Total {0} for all items is zero, may be you should change 'Distribute Charges Based On'",Toplam {0} tüm öğeler için size &#39;Dayalı Suçlamaları dağıtın&#39; değişmelidir olabilir sıfırdır,
 Total(Amt),Toplam (AMT),
 Total(Qty),Toplam (Adet),
 Traceability,İzlenebilirlik,
@@ -3179,7 +3134,7 @@
 Transaction not allowed against stopped Work Order {0},İşlem durdurulmuş iş emrine karşı izin verilmiyor {0},
 Transaction reference no {0} dated {1},İşlem referans yok {0} tarihli {1},
 Transactions,işlemler,
-Transactions can only be deleted by the creator of the Company,İşlemler sadece Şirket'in yaratıcısı tarafından silinebilir,
+Transactions can only be deleted by the creator of the Company,İşlemler sadece Şirket&#39;in yaratıcısı tarafından silinebilir,
 Transfer,Transfer,
 Transfer Material,Transfer Malzemesi,
 Transfer Type,Aktarım Türü,
@@ -3194,7 +3149,7 @@
 Travel,Gezi,
 Travel Expenses,Seyahat Giderleri,
 Tree Type,Ağaç Tipi,
-Tree of Bill of Materials,Ürün Ağacı / Reçete,
+Tree of Bill of Materials,Malzeme Listesi Ağacı,
 Tree of Item Groups.,Ürün Grupları Ağacı,
 Tree of Procedures,Prosedürler Ağacı,
 Tree of Quality Procedures.,Kalite Ağacı Prosedürleri.,
@@ -3211,52 +3166,51 @@
 URL,URL,
 Unable to find DocType {0},DocType {0} bulunamadı,
 Unable to find exchange rate for {0} to {1} for key date {2}. Please create a Currency Exchange record manually,Anahtar tarih {2} için {0} ila {1} arası döviz kuru bulunamadı. Lütfen bir Döviz Değiştirme kaydı el ile oluşturun,
-Unable to find score starting at {0}. You need to have standing scores covering 0 to 100,{0} 'da başlayan skor bulunamadı. 0'dan 100'e kadar olan ayakta puanlara sahip olmanız gerekir,
+Unable to find score starting at {0}. You need to have standing scores covering 0 to 100,{0} &#39;da başlayan skor bulunamadı. 0&#39;dan 100&#39;e kadar olan ayakta puanlara sahip olmanız gerekir,
 Unable to find variable: ,Değişken bulunamadı:,
 Unblock Invoice,Faturanın Engellenmesini Kaldır,
 Uncheck all,Tümünü işaretleme,
 Unclosed Fiscal Years Profit / Loss (Credit),Kapanmamış Mali Yıl Kâr / Zarar (Kredi),
 Unit,birim,
 Unit of Measure,Ölçü birimi,
-Unit of Measure (UOM),Ölçü Birimleri,
 Unit of Measure {0} has been entered more than once in Conversion Factor Table,Ölçü Birimi {0} Dönüşüm katsayısı tablosunda birden fazla kez girildi.,
-Unknown,Bilinmiyor,
-Unpaid,Ödenmemiş,
+Unknown,Bilinmeyen,
+Unpaid,ödenmemiş,
 Unsecured Loans,Teminatsız Krediler,
-Unsubscribe from this Email Digest,Bu E-posta Özeti aboneliğinden çık,
-Unsubscribed,Abonelikten çıktı,
+Unsubscribe from this Email Digest,Bu e-posta Digest aboneliğinden çık,
+Unsubscribed,Kaydolmamış,
 Until,Kadar,
 Unverified Webhook Data,Doğrulanmamış Web Kanalı Verileri,
 Update Account Name / Number,Hesap Adını / Numarasını Güncelle,
 Update Account Number / Name,Hesap Numarasını / Adını Güncelle,
-Update Cost,Maliyeti Güncelle,
-Update Items,Ürünleri Güncelle,
-Update Print Format,Yazıcı Formatını Güncelle,
-Update Response,Yanıtı Güncelle,
+Update Cost,Güncelleme Maliyeti,
+Update Items,Öğeleri Güncelle,
+Update Print Format,Update Yazıcı Formatı,
+Update Response,Yanıt Güncelle,
 Update bank payment dates with journals.,Günlüklerle ödeme tarihlerini güncelle.,
 Update in progress. It might take a while.,Güncelleme devam ediyor. Bu biraz zaman alabilir.,
-Update rate as per last purchase,Son Satınalma oranına göre güncelleme oranı,
+Update rate as per last purchase,Son satın alma oranına göre güncelleme oranı,
 Update stock must be enable for the purchase invoice {0},Satınalma faturası {0} satın alım faturası için etkinleştirilmelidir,
 Updating Variants...,Varyantlar Güncelleniyor ...,
 Upload your letter head and logo. (you can edit them later).,Mektup baş ve logosu yükleyin. (Daha sonra bunları düzenleyebilirsiniz).,
-Upper Income,Üst Gelir,
+Upper Income,Üst gelir,
 Use Sandbox,Kullanım Sandbox,
-Used Leaves,Kullanılan İzinler,
-User,Kullanıcı,
-User ID,Kullanıcı ID,
+Used Leaves,Kullanılan yapraklar,
+User,kullanıcı,
+User ID,Kullanıcı kimliği,
 User ID not set for Employee {0},Çalışan {0} için kullanıcı kimliği ayarlanmamış,
 User Remark,Kullanıcı Açıklaması,
 User has not applied rule on the invoice {0},Kullanıcı {0} faturasına kural uygulamadı,
 User {0} already exists,{0} kullanıcısı zaten mevcut,
 User {0} created,{0} kullanıcısı oluşturuldu,
 User {0} does not exist,Kullanıcı {0} yok,
-User {0} doesn't have any default POS Profile. Check Default at Row {1} for this User.,{0} kullanıcısının varsayılan POS Profili yok. Bu Kullanıcı için Satır {1} 'te Varsayılan'ı işaretleyin.,
+User {0} doesn't have any default POS Profile. Check Default at Row {1} for this User.,{0} kullanıcısının varsayılan POS Profili yok. Bu Kullanıcı için Satır {1} &#39;te Varsayılan&#39;ı işaretleyin.,
 User {0} is already assigned to Employee {1},Kullanıcı {0} zaten Çalışan {1} e atanmış,
 User {0} is already assigned to Healthcare Practitioner {1},"{0} kullanıcısı, Sağlık Uzmanına {1} atandı",
 Users,Kullanıcılar,
 Utility Expenses,Yardımcı Giderleri,
 Valid From Date must be lesser than Valid Upto Date.,"Tarihten Geçerli Tarih, Geçerlie Kadar Geçerli olandan daha az olmalıdır.",
-Valid Till,Geçerlilik Tarihi,
+Valid Till,Kadar geçerli,
 Valid from and valid upto fields are mandatory for the cumulative,Kümülatif alanlar için geçerli ve geçerli alanlar zorunludur,
 Valid from date must be less than valid upto date,Tarihten itibaren geçerli olan tarih geçerli olandan az olmalıdır,
 Valid till date cannot be before transaction date,Geçerli tarihe kadar işlem tarihi öncesi olamaz,
@@ -3274,12 +3228,12 @@
 Variable,Değişken,
 Variance,Varyans,
 Variance ({}),Varyans ({}),
-Variant,Varyant,
+Variant,varyant,
 Variant Attributes,Varyant Nitelikler,
 Variant Based On cannot be changed,Temel Varyant değiştirilemez,
 Variant Details Report,Varyant Detayları Raporu,
 Variant creation has been queued.,Varyant oluşturma işlemi sıraya alındı.,
-Vehicle Expenses,Araç Giderleri,
+Vehicle Expenses,araç Giderleri,
 Vehicle No,Araç No,
 Vehicle Type,araç tipi,
 Vehicle/Bus Number,Araç / Otobüs Numarası,
@@ -3302,7 +3256,7 @@
 Voucher #,Föy #,
 Voucher No,Föy No,
 Voucher Type,Föy Türü,
-WIP Warehouse,Üretim Deposu,
+WIP Warehouse,WIP Depo,
 Walk In,Rezervasyonsuz Müşteri,
 Warehouse can not be deleted as stock ledger entry exists for this warehouse.,Bu depo için defter girdisi mevcutken depo silinemez.,
 Warehouse cannot be changed for Serial No.,Depo Seri No için değiştirilemez,
@@ -3324,12 +3278,12 @@
 Warning: Invalid attachment {0},Uyarı: Geçersiz Eklenti {0},
 Warning: Leave application contains following block dates,Uyarı: İzin uygulamasında aşağıdaki engel tarihleri bulunmaktadır,
 Warning: Material Requested Qty is less than Minimum Order Qty,Uyarı: İstenen Ürün Miktarı Minimum Sipariş Miktarından az,
-Warning: Sales Order {0} already exists against Customer's Purchase Order {1},Uyarı: Satış Sipariş {0} zaten Müşterinin Satınalma Emri karşı var {1},
+Warning: Sales Order {0} already exists against Customer's Purchase Order {1},Uyarı: Satış Sipariş {0} zaten Müşterinin Satın Alma Emri karşı var {1},
 Warning: System will not check overbilling since amount for Item {0} in {1} is zero,Uyarı: {1} deki {0} ürünü miktarı sıfır olduğu için sistem fazla faturalamayı kontrol etmeyecektir,
 Warranty,Garanti,
-Warranty Claim,Garanti Talebi,
+Warranty Claim,Garanti talebi,
 Warranty Claim against Serial No.,Seri No. karşı Garanti İddiası,
-Website,Websitesi,
+Website,Web sitesi,
 Website Image should be a public file or website URL,Web Sitesi Resim kamu dosya veya web sitesi URL olmalıdır,
 Website Image {0} attached to Item {1} cannot be found,Öğe {1} bağlı Web Sitesi Resmi {0} bulunamıyor,
 Website Listing,Web Sitesi Listesi,
@@ -3346,10 +3300,10 @@
 What does it do?,Ne yapar?,
 Where manufacturing operations are carried.,Üretim operasyonları nerede yapılmaktadır.,
 White,Beyaz,
-Wire Transfer,Elektronik Transfer,
+Wire Transfer,Elektronik transfer,
 WooCommerce Products,WooCommerce Ürünleri,
-Work In Progress,Devam ediyor,
-Work Order,İş Emri,
+Work In Progress,Devam eden iş,
+Work Order,İş emri,
 Work Order already created for all items with BOM,BOM ile tüm öğeler için önceden oluşturulmuş olan İş Emri,
 Work Order cannot be raised against a Item Template,"İş Emri, Öğe Şablonuna karşı yükseltilemez",
 Work Order has been {0},İş Emri {0} olmuştur,
@@ -3358,10 +3312,10 @@
 Work Order {0} must be submitted,İş emri {0} sunulmalıdır,
 Work Orders Created: {0},Oluşturulan İş Emirleri: {0},
 Work Summary for {0},{0} İçin İş Özeti,
-Work-in-Progress Warehouse is required before Submit,Göndermeden önce Work-in-Progress Deposu gereklidir,
-Workflow,Workflow,
+Work-in-Progress Warehouse is required before Submit,Devam eden depo işi teslimden önce gereklidir,
+Workflow,İş Akışı,
 Working,Çalışıyor,
-Working Hours,Çalışma Saatleri,
+Working Hours,Iş saatleri,
 Workstation,İş İstasyonu,
 Workstation is closed on the following dates as per Holiday List: {0},İş İstasyonu Tatil List göre aşağıdaki tarihlerde kapalı: {0},
 Wrapping up,Sarma,
@@ -3378,10 +3332,10 @@
 You can only renew if your membership expires within 30 days,Üyeliğinizin süresi 30 gün içinde dolarsa yenileyebilirsiniz,
 You can only select a maximum of one option from the list of check boxes.,Onay kutuları listesinden yalnızca en fazla bir seçenek seçebilirsiniz.,
 You can only submit Leave Encashment for a valid encashment amount,İzin Depozitini geçerli bir nakit miktarı için gönderebilirsiniz.,
-You can't redeem Loyalty Points having more value than the Grand Total.,Büyük Toplam'dan daha fazla değeri olan Sadakat Puanlarını kullanamazsınız.,
+You can't redeem Loyalty Points having more value than the Grand Total.,Büyük Toplam&#39;dan daha fazla değeri olan Bağlılık Puanlarını kullanamazsınız.,
 You cannot credit and debit same account at the same time,Aynı hesabı aynı anda kredilendirip borçlandıramazsınız,
 You cannot delete Fiscal Year {0}. Fiscal Year {0} is set as default in Global Settings,Silemezsiniz Mali Yılı {0}. Mali yıl {0} Genel ayarlar varsayılan olarak ayarlanır,
-You cannot delete Project Type 'External','Dış' Proje Türünü silemezsiniz.,
+You cannot delete Project Type 'External',&#39;Dış&#39; Proje Türünü silemezsiniz.,
 You cannot edit root node.,Kök düğümünü düzenleyemezsiniz.,
 You cannot restart a Subscription that is not cancelled.,İptal edilmeyen bir Aboneliği başlatamazsınız.,
 You don't have enought Loyalty Points to redeem,Kullanılması gereken sadakat puanlarına sahip değilsiniz,
@@ -3389,9 +3343,9 @@
 You have already selected items from {0} {1},Zaten öğeleri seçtiniz {0} {1},
 You have been invited to collaborate on the project: {0},{0} projesine katkıda bulunmak için davet edildiniz,
 You have entered duplicate items. Please rectify and try again.,Yinelenen Ürünler girdiniz. Lütfen düzeltip yeniden deneyin.,
-You need to be a user other than Administrator with System Manager and Item Manager roles to register on Marketplace.,Marketplace'e kayıt olmak için Sistem Yöneticisi ve Ürün Yöneticisi rolleriyle Yönetici dışında bir kullanıcı olmanız gerekir.,
-You need to be a user with System Manager and Item Manager roles to add users to Marketplace.,Kullanıcıları Marketplace'e eklemek için Sistem Yöneticisi ve Ürün Yöneticisi rolleri olan bir kullanıcı olmanız gerekir.,
-You need to be a user with System Manager and Item Manager roles to register on Marketplace.,Marketplace'e kayıt olmak için Sistem Yöneticisi ve Ürün Yöneticisi rolleri olan bir kullanıcı olmanız gerekir.,
+You need to be a user other than Administrator with System Manager and Item Manager roles to register on Marketplace.,Marketplace&#39;e kayıt olmak için Sistem Yöneticisi ve Ürün Yöneticisi rolleriyle Yönetici dışında bir kullanıcı olmanız gerekir.,
+You need to be a user with System Manager and Item Manager roles to add users to Marketplace.,Kullanıcıları Marketplace&#39;e eklemek için Sistem Yöneticisi ve Ürün Yöneticisi rolleri olan bir kullanıcı olmanız gerekir.,
+You need to be a user with System Manager and Item Manager roles to register on Marketplace.,Marketplace&#39;e kayıt olmak için Sistem Yöneticisi ve Ürün Yöneticisi rolleri olan bir kullanıcı olmanız gerekir.,
 You need to be logged in to access this page,Bu sayfaya erişmek için giriş yapmış olmanız gerekmektedir,
 You need to enable Shopping Cart,Alışveriş sepetini etkinleştirmeniz gereklidir,
 You will lose records of previously generated invoices. Are you sure you want to restart this subscription?,Önceden oluşturulan faturaların kayıtlarını kaybedersiniz. Bu aboneliği tekrar başlatmak istediğinizden emin misiniz?,
@@ -3408,7 +3362,7 @@
 cannot be greater than 100,100 'den daha büyük olamaz,
 disabled user,engelli kullanıcı,
 "e.g. ""Build tools for builders""","örneğin: ""Yazılım Çözümleri""",
-"e.g. ""Primary School"" or ""University""","örneğin, 'İlköğretim Okulu' ya da 'Üniversite'",
+"e.g. ""Primary School"" or ""University""","örneğin, &quot;İlköğretim Okulu&quot; ya da &quot;Üniversite&quot;",
 "e.g. Bank, Cash, Credit Card","Örneğin: Banka, Nakit, Kredi Kartı",
 hidden,gizli,
 modified,değiştirilmiş,
@@ -3418,7 +3372,7 @@
 {0} '{1}' not in Fiscal Year {2},{0} '{1}' mali yıl {2} içinde değil,
 {0} ({1}) cannot be greater than planned quantity ({2}) in Work Order {3},"{0} ({1}), İş Emrinde {3} planlanan miktardan ({2}) fazla olamaz",
 {0} - {1} is inactive student,{0} - {1} öğrencisi aktif değildir,
-{0} - {1} is not enrolled in the Batch {2},{0} - {1} Küme {2} 'ye kayıtlı değil,
+{0} - {1} is not enrolled in the Batch {2},{0} - {1} Küme {2} &#39;ye kayıtlı değil,
 {0} - {1} is not enrolled in the Course {2},"{0} - {1}, {2} Kursuna kayıtlı değil",
 {0} Budget for Account {1} against {2} {3} is {4}. It will exceed by {5},{0} {2} {3} için {1} bütçe hesabı {4} tanımlıdır. Bütçe {5} kadar aşılacaktır.,
 {0} Digest,{0} Özet,
@@ -3436,8 +3390,8 @@
 {0} asset cannot be transferred,{0} varlığı transfer edilemez,
 {0} can not be negative,{0} negatif olamaz,
 {0} created,{0} oluşturuldu,
-"{0} currently has a {1} Supplier Scorecard standing, and Purchase Orders to this supplier should be issued with caution.",{0} şu anda bir {1} Tedarikçi Puan Kartı'na sahip ve bu tedarikçiye Satınalma Siparişleri dikkatle verilmelidir.,
-"{0} currently has a {1} Supplier Scorecard standing, and RFQs to this supplier should be issued with caution.",{0} şu anda bir {1} Tedarikçi Puan Kartı'na sahip ve bu tedarikçinin RFQ'ları dikkatli bir şekilde verilmelidir.,
+"{0} currently has a {1} Supplier Scorecard standing, and Purchase Orders to this supplier should be issued with caution.",{0} şu anda bir {1} Tedarikçi Puan Kartı&#39;na sahip ve bu tedarikçiye Satın Alma Siparişleri dikkatle verilmelidir.,
+"{0} currently has a {1} Supplier Scorecard standing, and RFQs to this supplier should be issued with caution.",{0} şu anda bir {1} Tedarikçi Puan Kartı&#39;na sahip ve bu tedarikçinin RFQ&#39;ları dikkatli bir şekilde verilmelidir.,
 {0} does not belong to Company {1},{0} Şirket {1}E ait değildir,
 {0} does not have a Healthcare Practitioner Schedule. Add it in Healthcare Practitioner master,"{0}, bir Sağlık Hizmeti Uygulayıcısı Programına sahip değil. Sağlık Uygulayıcısı ana bölümüne ekle",
 {0} entered twice in Item Tax,{0} iki kere ürün vergisi girildi,
@@ -3494,13 +3448,13 @@
 {0} {1} must be submitted,{0} {1} teslim edilmelidir,
 {0} {1} not in any active Fiscal Year.,{0} {1} Aktif mali dönem içinde değil.,
 {0} {1} status is {2},{0} {1} durum {2} olduğu,
-{0} {1}: 'Profit and Loss' type account {2} not allowed in Opening Entry,{0} {1}: 'Kar ve Zarar' türü hesabı {2} Entry Açılış izin verilmez,
-{0} {1}: Account {2} does not belong to Company {3},{0} {1}: Hesap {2} Şirket'e ait olmayan {3},
+{0} {1}: 'Profit and Loss' type account {2} not allowed in Opening Entry,{0} {1}: &#39;Kar ve Zarar&#39; türü hesabı {2} Entry Açılış izin verilmez,
+{0} {1}: Account {2} does not belong to Company {3},{0} {1}: Hesap {2} Şirket&#39;e ait olmayan {3},
 {0} {1}: Account {2} is inactive,{0} {1}: Hesap {2} etkin değil,
 {0} {1}: Accounting Entry for {2} can only be made in currency: {3},{0} {1}: {2} için muhasebe kaydı yalnızca bu para birimi ile yapılabilir: {3},
 {0} {1}: Cost Center is mandatory for Item {2},Ürün{2} için {0} {1}: Maliyert Merkezi zorunludur,
 {0} {1}: Cost Center is required for 'Profit and Loss' account {2}. Please set up a default Cost Center for the Company.,{0} {1}: Kar/zarar hesabı {2} için Masraf Merkezi tanımlanmalıdır. Lütfen aktif şirket için varsayılan bir Masraf Merkezi tanımlayın.,
-{0} {1}: Cost Center {2} does not belong to Company {3},{0} {1}: Maliyet Merkezi {2} Şirket'e ait olmayan {3},
+{0} {1}: Cost Center {2} does not belong to Company {3},{0} {1}: Maliyet Merkezi {2} Şirket&#39;e ait olmayan {3},
 {0} {1}: Customer is required against Receivable account {2},{0} {1}: Alacak hesabı {2} için müşteri tanımlanmalıdır.,
 {0} {1}: Either debit or credit amount is required for {2},{0} {1}: {2} için borç ya da alacak tutarı girilmelidir,
 {0} {1}: Supplier is required against Payable account {2},{0} {1}: Borç hesabı {2} için tedarikçi tanımlanmalıdır,
@@ -3516,7 +3470,7 @@
 Chat,Sohbet,
 Completed By,Tarafından tamamlanmıştır,
 Conditions,Koşullar,
-County,Şehir,
+County,Kontluk,
 Day of Week,Haftanın günü,
 "Dear System Manager,","Sevgili Sistem Yöneticisi,",
 Default Value,Varsayılan Değer,
@@ -3526,34 +3480,33 @@
 Error Message,Hata mesajı,
 Fieldtype,FIELDTYPE,
 Help Articles,Yardım Makaleleri,
-ID,ID,
+ID,İD,
 Images,Görüntüler,
-Import,İçe Aktar,
+Import,İçe aktar,
 Language,Dil,
 Likes,Beğeniler,
-Merge with existing,Var olanla Birleştir,
+Merge with existing,Mevcut Birleştirme,
 Office,Ofis,
 Orientation,Oryantasyon,
 Parent,Ana Kalem,
 Passive,Pasif,
-Payment Failed,Ödeme Başarısız,
+Payment Failed,Ödeme başarısız,
 Percent,Yüzde,
-Permanent,Kalıcı,
+Permanent,kalıcı,
 Personal,Kişisel,
 Plant,Tesis,
 Post,Gönder,
 Postal,Posta,
 Postal Code,Posta Kodu,
 Previous,Önceki,
-Provider,Sağlayıcı,
+Provider,sağlayan,
 Read Only,Salt Okunur,
 Recipient,Alıcı,
-Reviews,Yorumlar,
+Reviews,yorumlar,
 Sender,Gönderici,
 Shop,Mağaza,
 Sign Up,Kaydol,
 Subsidiary,Yardımcı,
-Set all private,Tümünü özel olarak ayarla,
 There is some problem with the file url: {0},Dosya url ile bazı sorun var: {0},
 There were errors while sending email. Please try again.,E-posta gönderirken hatalar vardı. Lütfen tekrar deneyin.,
 Values Changed,Değerler Değişti,
@@ -3561,13 +3514,13 @@
 Ageing Range 4,4 Yaşlanma Aralığı,
 Allocated amount cannot be greater than unadjusted amount,"Tahsis edilen tutar, düzeltilmemiş tutardan büyük olamaz",
 Allocated amount cannot be negative,Tahsis edilen miktar negatif olamaz,
-"Difference Account must be a Asset/Liability type account, since this Stock Entry is an Opening Entry","Fark Hesabı, Duran Varlık / Yükümlülük türü bir hesap olmalıdır, çünkü bu Stok Hareketi bir Açılış Kaydıdır",
+"Difference Account must be a Asset/Liability type account, since this Stock Entry is an Opening Entry","Fark Hesabı, Duran Varlık / Yükümlülük türü bir hesap olmalıdır, çünkü bu Stok Girişi bir Açılış Girişidir",
 Error in some rows,Bazı satırlarda hata,
 Import Successful,Başarılı İçe Aktar,
 Please save first,Lütfen önce kaydet,
 Price not found for item {0} in price list {1},{0} kaleminde {1} fiyat listesinde fiyat bulunamadı,
 Warehouse Type,Depo türü,
-'Date' is required,'Tarih' gerekli,
+'Date' is required,&#39;Tarih&#39; gerekli,
 Benefit,Yarar,
 Budgets,Bütçeler,
 Bundle Qty,Paket Adet,
@@ -3578,44 +3531,42 @@
 Invalid GSTIN! The input you've entered doesn't match the GSTIN format for UIN Holders or Non-Resident OIDAR Service Providers,"Geçersiz GSTIN! Girdiğiniz giriş, UIN Sahipleri veya Yerleşik Olmayan OIDAR Servis Sağlayıcıları için GSTIN biçimiyle eşleşmiyor",
 Invoice Grand Total,Fatura Genel Toplamı,
 Last carbon check date cannot be a future date,Son karbon kontrol tarihi gelecekteki bir tarih olamaz,
-Make Stock Entry,Stok Kaydı Yap,
-Quality Feedback,Kalite Geribildirimi,
+Make Stock Entry,Stok Girişi Yap,
+Quality Feedback,Kalite geribildirim,
 Quality Feedback Template,Kalite Geribildirim Şablonu,
 Rules for applying different promotional schemes.,Farklı promosyon programlarını uygulama kuralları.,
 Shift,vardiya,
 Show {0},{0} göster,
-"Special Characters except ""-"", ""#"", ""."", ""/"", ""{"" and ""}"" not allowed in naming series","'-', '#', '.', '/', '{' Ve '}' dışındaki Özel Karakterler, seri dizisine izin verilmez",
+"Special Characters except '-', '#', '.', '/', '{{' and '}}' not allowed in naming series {0}","&quot;-&quot;, &quot;#&quot;, &quot;.&quot;, &quot;/&quot;, &quot;{{&quot; Ve &quot;}}&quot; dışındaki Özel Karakterler, seri dizisine izin verilmez {0}",
 Target Details,Hedef Detayları,
 {0} already has a Parent Procedure {1}.,{0} zaten bir {1} veli prosedürüne sahip.,
 API,API,
-Allow Purchase,Satınalmaya izin ver,
-Allow Sales,Satışa izin ver,
 Annual,Yıllık,
 Approved,Onaylandı,
 Change,Değişiklik,
 Contact Email,İletişim E-Posta,
 Export Type,İhracat Şekli,
-From Date,Başlangıç Tarihi,
+From Date,Tarihinden itibaren,
 Group By,Gruplama Ölçütü,
 Importing {0} of {1},{1} içinden {0} içe aktar,
 Invalid URL,Geçersiz URL,
 Landscape,peyzaj,
 Last Sync On,Son Senkronizasyon Açık,
-Naming Series,Adlandırma Serisi,
+Naming Series,Seri Adlandırma,
 No data to export,Verilecek veri yok,
 Portrait,Portre,
 Print Heading,Baskı Başlığı,
 Scheduler Inactive,Zamanlayıcı Etkin Değil,
 Scheduler is inactive. Cannot import data.,Zamanlayıcı etkin değil. Veri alınamıyor.,
 Show Document,Belgeyi Göster,
-Show Traceback,Geri Takibi Göster,
+Show Traceback,Geri İzlemeyi Göster,
 Video,Video,
 Webhook Secret,Webhook Sırrı,
-% Of Grand Total,Genel Toplamın% 'si,
-'employee_field_value' and 'timestamp' are required.,'worker_field_value' ve 'zaman damgası' gereklidir.,
+% Of Grand Total,Genel Toplamın% &#39;si,
+'employee_field_value' and 'timestamp' are required.,&#39;worker_field_value&#39; ve &#39;zaman damgası&#39; gereklidir.,
 <b>Company</b> is a mandatory filter.,<b>Şirket</b> zorunlu bir filtredir.,
 <b>From Date</b> is a mandatory filter.,<b>Başlangıç Tarihi</b> zorunlu bir filtredir.,
-<b>From Time</b> cannot be later than <b>To Time</b> for {0},"{0} için <b>From Time</b> , <b>To Time'dan</b> daha geç olamaz",
+<b>From Time</b> cannot be later than <b>To Time</b> for {0},"{0} için <b>From Time</b> , <b>To Time&#39;dan</b> daha geç olamaz",
 <b>To Date</b> is a mandatory filter.,<b>Bugüne kadar</b> zorunlu bir filtredir.,
 A new appointment has been created for you with {0},{0} ile sizin için yeni bir randevu oluşturuldu,
 Account Value,Hesap değeri,
@@ -3625,9 +3576,9 @@
 Account {0} does not exists in the dashboard chart {1},"{0} hesabı, {1} gösterge tablosunda yok",
 Account: <b>{0}</b> is capital Work in progress and can not be updated by Journal Entry,Hesap: <b>{0}</b> sermayedir Devam etmekte olan iş ve Journal Entry tarafından güncellenemez,
 Account: {0} is not permitted under Payment Entry,Hesap: {0} Ödeme Girişi altında izin verilmiyor,
-Accounting Dimension <b>{0}</b> is required for 'Balance Sheet' account {1}.,<b>{1}</b> 'Bilanço' hesabı için <b>{0}</b> Muhasebe Boyutu gerekiyor.,
-Accounting Dimension <b>{0}</b> is required for 'Profit and Loss' account {1}.,<b>{1}</b> 'Kâr ve Zarar' hesabı için <b>{0}</b> Muhasebe Boyutu gereklidir.,
-Accounting Masters,Muhasebe Ana Verileri,
+Accounting Dimension <b>{0}</b> is required for 'Balance Sheet' account {1}.,<b>{1}</b> &#39;Bilanço&#39; hesabı için <b>{0}</b> Muhasebe Boyutu gerekiyor.,
+Accounting Dimension <b>{0}</b> is required for 'Profit and Loss' account {1}.,<b>{1}</b> &#39;Kâr ve Zarar&#39; hesabı için <b>{0}</b> Muhasebe Boyutu gereklidir.,
+Accounting Masters,Muhasebe Ustaları,
 Accounting Period overlaps with {0},Muhasebe Dönemi {0} ile örtüşüyor,
 Activity,Aktivite,
 Add / Manage Email Accounts.,E-posta Hesaplarını Ekle / Yönet.,
@@ -3658,7 +3609,7 @@
 "As there are existing transactions against item {0}, you can not change the value of {1}","öğe {0} karşı varolan işlemler vardır gibi, değerini değiştiremezsiniz {1}",
 Asset Id,Varlık Kimliği,
 Asset Value,Varlık değeri,
-Asset Value Adjustment cannot be posted before Asset's purchase date <b>{0}</b>.,"Varlık Değer Ayarlaması, Varlığın Satınalma tarihinden önce <b>{0} yayınlanamaz</b> .",
+Asset Value Adjustment cannot be posted before Asset's purchase date <b>{0}</b>.,"Varlık Değer Ayarlaması, Varlığın satın alma tarihinden önce <b>{0} yayınlanamaz</b> .",
 Asset {0} does not belongs to the custodian {1},"{0} varlık, {1} saklama kuruluşuna ait değil",
 Asset {0} does not belongs to the location {1},"{0} öğesi, {1} konumuna ait değil",
 At least one of the Applicable Modules should be selected,Uygulanabilir Modüllerden en az biri seçilmelidir,
@@ -3675,17 +3626,16 @@
 BOM Comparison Tool,BOM Karşılaştırma Aracı,
 BOM recursion: {0} cannot be child of {1},"BOM özyineleme: {0}, {1} öğesinin alt öğesi olamaz",
 BOM recursion: {0} cannot be parent or child of {1},"BOM özyinelemesi: {0}, {1} öğesinin ebeveyni veya çocuğu olamaz",
-BOM Info,Ürün Ağacı / BOM Bilgisi,
 Back to Home,Eve geri dön,
 Back to Messages,Mesajlara Geri Dön,
 Bank Data mapper doesn't exist,Banka Verileri eşleştiricisi mevcut değil,
 Bank Details,Banka detayları,
-Bank account '{0}' has been synchronized,'{0}' banka hesabı senkronize edildi,
+Bank account '{0}' has been synchronized,&#39;{0}&#39; banka hesabı senkronize edildi,
 Bank account {0} already exists and could not be created again,{0} banka hesabı zaten var ve tekrar oluşturulamadı,
 Bank accounts added,Banka hesapları eklendi,
 Batch no is required for batched item {0},Toplu iş {0} toplu öğesi için gerekli,
 Billing Date,Fatura tarihi,
-Billing Interval Count cannot be less than 1,Faturalama Aralığı Sayısı 1'den az olamaz,
+Billing Interval Count cannot be less than 1,Faturalama Aralığı Sayısı 1&#39;den az olamaz,
 Blue,Mavi,
 Book,Kitap,
 Book Appointment,Kitap randevusu,
@@ -3702,33 +3652,33 @@
 Cannot complete task {0} as its dependant task {1} are not ccompleted / cancelled.,{0} görevi tamamlanamıyor çünkü bağımlı görevi {1} tamamlanmadı / iptal edilmedi.,
 Cannot create loan until application is approved,Başvuru onaylanana kadar kredi oluşturulamaz,
 Cannot find a matching Item. Please select some other value for {0}.,Eşleşen bir öğe bulunamıyor. Için {0} diğer bazı değer seçiniz.,
-"Cannot overbill for Item {0} in row {1} more than {2}. To allow over-billing, please set allowance in Accounts Settings","{1} satırındaki {0} öğesi için {2} 'den fazla öğe fazla faturalandırılamıyor. Fazla faturalandırmaya izin vermek için, lütfen Hesap Ayarlarında ödenek ayarlayın.",
+"Cannot overbill for Item {0} in row {1} more than {2}. To allow over-billing, please set allowance in Accounts Settings","{1} satırındaki {0} öğesi için {2} &#39;den fazla öğe fazla faturalandırılamıyor. Fazla faturalandırmaya izin vermek için, lütfen Hesap Ayarlarında ödenek ayarlayın.",
 "Capacity Planning Error, planned start time can not be same as end time","Kapasite Planlama Hatası, planlanan başlangıç zamanı bitiş zamanı ile aynı olamaz",
 Categories,Kategoriler,
-Changes in {0},{0} 'daki değişiklikler,
+Changes in {0},{0} &#39;daki değişiklikler,
 Chart,Grafik,
 Choose a corresponding payment,Uygun bir ödeme seçin,
 Click on the link below to verify your email and confirm the appointment,E-postanızı doğrulamak ve randevuyu onaylamak için aşağıdaki bağlantıyı tıklayın,
 Close,Kapat,
 Communication,İletişim,
 Compact Item Print,Kompakt Öğe Yazdır,
-Company,Şirket,
-Company of asset {0} and purchase document {1} doesn't matches.,{0} Şirketin varlığı ile {1} satınalma belgesi eşleşmiyor.,
+Company,şirket,
+Company of asset {0} and purchase document {1} doesn't matches.,{0} varlık varlığı ve {1} satın alma belgesi eşleşmiyor.,
 Compare BOMs for changes in Raw Materials and Operations,Hammadde ve İşlemlerdeki değişiklikler için Malzeme Listesini karşılaştırın,
 Compare List function takes on list arguments,Karşılaştırma Listesi işlevi liste değişkenlerini alır,
 Complete,Komple,
-Completed,Tamamlanmış,
+Completed,Tamamlandı,
 Completed Quantity,Tamamlanan Miktar,
-Connect your Exotel Account to ERPNext and track call logs,Exotel Hesabınızı ERPNext'e bağlayın ve çağrı kayıtlarını takip edin,
-Connect your bank accounts to ERPNext,Banka hesaplarınızı ERPNext'e bağlayın,
+Connect your Exotel Account to ERPNext and track call logs,Exotel Hesabınızı ERPNext&#39;e bağlayın ve çağrı kayıtlarını takip edin,
+Connect your bank accounts to ERPNext,Banka hesaplarınızı ERPNext&#39;e bağlayın,
 Contact Seller,Satıcıyla iletişime geç,
-Continue,Devam et,
+Continue,Devam etmek,
 Cost Center: {0} does not exist,Maliyet Merkezi: {0} mevcut değil,
 Couldn't Set Service Level Agreement {0}.,{0} Hizmet Seviyesi Sözleşmesi Ayarlanamadı.,
-Country,Ülke,
+Country,ülke,
 Country Code in File does not match with country code set up in the system,"Dosyadaki Ülke Kodu, sistemde ayarlanan ülke koduyla eşleşmiyor",
-Create New Contact,Yeni Kişi Oluştur,
-Create New Lead,Yeni Müşteri Adayı Oluştur,
+Create New Contact,Yeni kişi yarat,
+Create New Lead,Yeni Müşteri Adayı Yarat,
 Create Pick List,Seçim Listesi Oluştur,
 Create Quality Inspection for Item {0},{0} Maddesi için Kalite Denetimi Yaratın,
 Creating Accounts...,Hesaplar oluşturuluyor ...,
@@ -3739,7 +3689,7 @@
 Currency,Para birimi,
 Current Status,Şu anki durum,
 Customer PO,Müşteri PO,
-Customize,Özelleştir,
+Customize,Özelleştirme,
 Daily,Günlük,
 Date,Tarih,
 Date Range,Tarih aralığı,
@@ -3758,13 +3708,13 @@
 Dimension Filter,Boyut Filtresi,
 Disabled,Devredışı,
 Disbursement and Repayment,Ödeme ve Geri Ödeme,
-Distance cannot be greater than 4000 kms,Mesafe 4000 km'den büyük olamaz,
+Distance cannot be greater than 4000 kms,Mesafe 4000 km&#39;den büyük olamaz,
 Do you want to submit the material request,Malzeme talebini göndermek ister misiniz,
 Doctype,DOCTYPE,
 Document {0} successfully uncleared,{0} dokümanı başarıyla temizlendi,
 Download Template,Şablonu İndir,
 Dr,Dr,
-Due Date,Bitiş Tarihi,
+Due Date,Bitiş tarihi,
 Duplicate,Kopyala,
 Duplicate Project with Tasks,Görevlerle Çoğaltılmış Proje,
 Duplicate project has been created,Yinelenen proje oluşturuldu,
@@ -3776,7 +3726,7 @@
 Edit Details,Detayları düzenle,
 Edit Profile,Profili Düzenle,
 Either GST Transporter ID or Vehicle No is required if Mode of Transport is Road,Ulaştırma Modu Yol ise GST Transporter ID ya da Araç No gereklidir.,
-Email,Email,
+Email,EPosta,
 Email Campaigns,E-posta Kampanyaları,
 Employee ID is linked with another instructor,Çalışan kimliği başka bir eğitmenle bağlantılı,
 Employee Tax and Benefits,Çalışan Vergi ve Yardımları,
@@ -3798,7 +3748,7 @@
 Expected and Discharge dates cannot be less than Admission Schedule date,Beklenen ve Deşarj tarihleri Kabul Zamanlama tarihinden daha az olamaz,
 Expire Allocation,Tahsisin Sona Ermesi,
 Expired,Süresi Doldu,
-Export,Dışarı Aktar,
+Export,Dışarı aktar,
 Export not allowed. You need {0} role to export.,İhracat izin verilmiyor. Vermek {0} rol gerekir.,
 Failed to add Domain,Etki Alanı eklenemedi,
 Fetch Items from Warehouse,Depodan Eşya Al,
@@ -3807,7 +3757,7 @@
 File Manager,Dosya Yöneticisi,
 Filters,Filtreler,
 Finding linked payments,Bağlantılı ödemeleri bulma,
-Fleet Management,Filo Yönetimi,
+Fleet Management,Filo yönetimi,
 Following fields are mandatory to create address:,Adres oluşturmak için aşağıdaki alanların doldurulması zorunludur:,
 For Month,Aylık,
 "For item {0} at row {1}, count of serial numbers does not match with the picked quantity","{1} satırındaki {0} öğesi için, seri numaralarının sayısı toplanan miktarla eşleşmiyor",
@@ -3827,10 +3777,10 @@
 Goal,Hedef,
 Greater Than Amount,Tutardan Büyük,
 Green,Yeşil,
-Group,Grup,
+Group,grup,
 Group By Customer,Müşteriye Göre Grupla,
 Group By Supplier,Tedarikçiye Göre Grupla,
-Group Node,Grup Düğümü,
+Group Node,Grup Düğüm,
 Group Warehouses cannot be used in transactions. Please change the value of {0},Grup Depoları işlemlerde kullanılamaz. Lütfen {0} değerini değiştirin,
 Help,Yardım,
 Help Article,Yardım Madde,
@@ -3859,13 +3809,13 @@
 Last Issue,Son Konu,
 Latest Age,Son Yaş,
 Leave application is linked with leave allocations {0}. Leave application cannot be set as leave without pay,"İzin başvurusu, {0} izin tahsisleri ile bağlantılı. İzinsiz bırakılma başvurusu, izinsiz izinsiz yapılamaz",
-Leaves Taken,Alınan İzinler,
+Leaves Taken,Alınan Yapraklar,
 Less Than Amount,Tutardan Az,
 Liabilities,Yükümlülükler,
 Loading...,Yükleniyor...,
 Loan Amount exceeds maximum loan amount of {0} as per proposed securities,"Kredi Tutarı, önerilen menkul kıymetlere göre maksimum {0} kredi tutarını aşıyor",
 Loan Applications from customers and employees.,Müşterilerden ve çalışanlardan kredi uygulamaları.,
-Loan Disbursement,Kredi Kullanımı,
+Loan Disbursement,Kredi kullanımı,
 Loan Processes,Kredi Süreçleri,
 Loan Security,Kredi Güvenliği,
 Loan Security Pledge,Kredi Güvenliği Taahhüdü,
@@ -3875,17 +3825,17 @@
 Loan Security Unpledge,Kredi Güvenliği Bilgisizliği,
 Loan Security Value,Kredi Güvenliği Değeri,
 Loan Type for interest and penalty rates,Faiz ve ceza oranları için Kredi Türü,
-Loan amount cannot be greater than {0},Kredi tutarı {0} 'dan fazla olamaz,
+Loan amount cannot be greater than {0},Kredi tutarı {0} &#39;dan fazla olamaz,
 Loan is mandatory,Kredi zorunludur,
 Loans,Krediler,
 Loans provided to customers and employees.,Müşterilere ve çalışanlara verilen krediler.,
 Location,Konum,
 Log Type is required for check-ins falling in the shift: {0}.,Vardiyaya giren check-in işlemleri için Günlük Tipi gereklidir: {0}.,
-Looks like someone sent you to an incomplete URL. Please ask them to look into it.,Birisi eksik URL'ye gönderdi benziyor. içine bakmak için isteyin.,
-Make Journal Entry,Yevmiye Kaydı Yap,
-Make Purchase Invoice,Satınalma Faturası Oluştur,
-Manufactured,Üretilmiş,
-Mark Work From Home,Evden İş olarak İşaretle,
+Looks like someone sent you to an incomplete URL. Please ask them to look into it.,Birisi eksik URL&#39;ye gönderdi benziyor. içine bakmak için isteyin.,
+Make Journal Entry,Kayıt Girdisi Yap,
+Make Purchase Invoice,Satın Alma Faturası Oluştur,
+Manufactured,üretilmiş,
+Mark Work From Home,İşi Evden İşaretle,
 Master,Ana Kaynak,
 Max strength cannot be less than zero.,Maksimum güç sıfırdan az olamaz.,
 Maximum attempts for this quiz reached!,Bu sınav için maksimum deneme yapıldı!,
@@ -3896,14 +3846,14 @@
 Month,Ay,
 Name,İsim,
 Near you,Sana yakın,
-Net Profit/Loss,Net Kâr / Zarar,
+Net Profit/Loss,Net kâr (zarar,
 New Expense,Yeni Gider,
-New Invoice,Yeni Fatura,
+New Invoice,Yeni fatura,
 New Payment,Yeni Ödeme,
 New release date should be in the future,Yeni çıkış tarihi gelecekte olmalı,
 Newsletter,Bülten,
 No Account matched these filters: {},Bu filtrelerle eşleşen Hesap yok: {},
-No Employee found for the given employee field value. '{}': {},Verilen çalışanın saha değeri için çalışan bulunamadı. '{}': {},
+No Employee found for the given employee field value. '{}': {},Verilen çalışanın saha değeri için çalışan bulunamadı. &#39;{}&#39;: {},
 No Leaves Allocated to Employee: {0} for Leave Type: {1},Çalışana Ayrılan Yaprak Yok: {0} İzin Türü için: {1},
 No communication found.,İletişim bulunamadı.,
 No correct answer is set for {0},{0} için doğru cevap ayarlanmadı,
@@ -3931,34 +3881,34 @@
 Only users with the {0} role can create backdated leave applications,"Yalnızca {0} rolüne sahip kullanıcılar, geriye dönük izin uygulamaları oluşturabilir",
 Open,Açık,
 Open Contact,Kişiyi Aç,
-Open Lead,Açık Aday,
-Opening and Closing,Açılış ve Kapanış,
-Operating Cost as per Work Order / BOM,İş Emri / Ürün Ağacına göre Operasyon Maliyeti,
+Open Lead,Açık Kurşun,
+Opening and Closing,Açılış ve kapanış,
+Operating Cost as per Work Order / BOM,İş Emri / Ürün Ağacı&#39;na göre İşletme Maliyeti,
 Order Amount,Sipariş miktarı,
 Page {0} of {1},{1} Sayfadan {0}.,
-Paid amount cannot be less than {0},Ücretli tutar {0} 'dan az olamaz,
+Paid amount cannot be less than {0},Ücretli tutar {0} &#39;dan az olamaz,
 Parent Company must be a group company,Ana Şirket bir grup şirketi olmalıdır,
 Passing Score value should be between 0 and 100,Geçen puan değeri 0 ile 100 arasında olmalıdır,
 Password policy cannot contain spaces or simultaneous hyphens. The format will be restructured automatically,Parola politikası boşluk veya eşzamanlı tire içeremez. Format otomatik olarak yeniden yapılandırılacak,
-Patient History,Hasta Geçmişi,
-Pause,Durdur,
-Pay,Öde,
+Patient History,Hasta Öyküsü,
+Pause,durma,
+Pay,Ödeme,
 Payment Document Type,Ödeme Belgesi Türü,
 Payment Name,Ödeme Adı,
 Penalty Amount,Ceza Miktarı,
 Pending,Bekliyor,
-Performance,Performans,
-Period based On,Tarihine göre Dönem,
+Performance,performans,
+Period based On,Tarihine Göre Dönem,
 Perpetual inventory required for the company {0} to view this report.,{0} şirketinin bu raporu görüntülemesi için sürekli envanter gerekiyor.,
 Phone,Telefon,
-Pick List,Seçim Listesi,
+Pick List,Seçim listesi,
 Plaid authentication error,Ekose kimlik doğrulama hatası,
 Plaid public token error,Ekose genel belirteç hatası,
 Plaid transactions sync error,Ekose işlemler senkronizasyon hatası,
 Please check the error log for details about the import errors,Lütfen içe aktarma hatalarıyla ilgili ayrıntılar için hata günlüğünü kontrol edin,
 Please create <b>DATEV Settings</b> for Company <b>{}</b>.,Lütfen <b>{}</b> Şirketi için <b>DATEV Ayarları</b> oluşturun.,
-Please create adjustment Journal Entry for amount {0} ,Lütfen {0} tutarı için Yevmiye Kaydı ayarlamasını oluşturun,
-Please do not create more than 500 items at a time,Lütfen bir kerede 500'den fazla öğe oluşturmayın,
+Please create adjustment Journal Entry for amount {0} ,Lütfen {0} tutarı için Dergi Girişi ayarlamasını oluşturun,
+Please do not create more than 500 items at a time,Lütfen bir kerede 500&#39;den fazla öğe oluşturmayın,
 Please enter <b>Difference Account</b> or set default <b>Stock Adjustment Account</b> for company {0},Lütfen <b>Fark Hesabı</b> girin veya {0} şirketi için varsayılan <b>Stok Ayarlama Hesabını</b> ayarlayın,
 Please enter GSTIN and state for the Company Address {0},Lütfen GSTIN girin ve {0} Şirket Adresini girin.,
 Please enter Item Code to get item taxes,Ürün vergileri almak için lütfen Ürün Kodunu girin,
@@ -3966,29 +3916,29 @@
 Please enter the designation,Lütfen belirtime giriniz,
 Please login as a Marketplace User to edit this item.,Bu öğeyi düzenlemek için lütfen Marketplace Kullanıcısı olarak giriş yapın.,
 Please login as a Marketplace User to report this item.,Bu öğeyi bildirmek için lütfen bir Marketplace Kullanıcısı olarak giriş yapın.,
-Please select <b>Template Type</b> to download template,<b>Şablonu</b> indirmek için lütfen <b>Şablon Türü'nü</b> seçin,
-Please select Applicant Type first,Lütfen önce Başvuru Türü'nü seçin,
-Please select Customer first,Lütfen önce Müşteri'yi seçin,
+Please select <b>Template Type</b> to download template,<b>Şablonu</b> indirmek için lütfen <b>Şablon Türü&#39;nü</b> seçin,
+Please select Applicant Type first,Lütfen önce Başvuru Türü&#39;nü seçin,
+Please select Customer first,Lütfen önce Müşteri&#39;yi seçin,
 Please select Item Code first,Lütfen önce Ürün Kodunu seçin,
-Please select Loan Type for company {0},Lütfen {0} şirketi için Kredi Türü'nü seçin,
-Please select a Delivery Note,Lütfen bir İrsaliye seçin,
+Please select Loan Type for company {0},Lütfen {0} şirketi için Kredi Türü&#39;nü seçin,
+Please select a Delivery Note,Lütfen bir Teslimat Notu seçin,
 Please select a Sales Person for item: {0},Lütfen öğe için bir Satış Sorumlusu seçin: {0},
-Please select another payment method. Stripe does not support transactions in currency '{0}',"Lütfen başka bir ödeme yöntemi seçin. Şerit, '{0}' para birimi işlemlerini desteklemez",
+Please select another payment method. Stripe does not support transactions in currency '{0}',"Lütfen başka bir ödeme yöntemi seçin. Şerit, &#39;{0}&#39; para birimi işlemlerini desteklemez",
 Please select the customer.,Lütfen müşteriyi seçiniz.,
 Please set a Supplier against the Items to be considered in the Purchase Order.,Lütfen Satınalma Siparişinde dikkate alınacak Öğelere karşı bir Tedarikçi ayarlayın.,
 Please set account heads in GST Settings for Compnay {0},Lütfen {0} Compnay için GST Ayarlarında hesap kafalarını ayarlayın,
 Please set an email id for the Lead {0},Lütfen Lider {0} için bir e-posta kimliği belirleyin,
-Please set default UOM in Stock Settings,Lütfen Stok Ayarları'ndan varsayılan Birimi ayarlayın,
-Please set filter based on Item or Warehouse due to a large amount of entries.,Lütfen büyük miktarda girdi nedeniyle filtreyi Öğe veya Depo'ya göre ayarlayın.,
+Please set default UOM in Stock Settings,Lütfen Stok Ayarları&#39;ndan varsayılan UOM&#39;yi ayarlayın,
+Please set filter based on Item or Warehouse due to a large amount of entries.,Lütfen büyük miktarda girdi nedeniyle filtreyi Öğe veya Depo&#39;ya göre ayarlayın.,
 Please set up the Campaign Schedule in the Campaign {0},Lütfen {0} Kampanyasında Kampanya Zamanlamasını ayarlayın,
 Please set valid GSTIN No. in Company Address for company {0},Lütfen {0} şirketi için Şirket Adresinde geçerli GSTIN No.,
-Please set {0},Lütfen {0} ayarlayın,
+Please set {0},Lütfen {0} ayarlayın,customer
 Please setup a default bank account for company {0},Lütfen {0} şirketi için varsayılan bir banka hesabı kurun,
 Please specify,Lütfen belirtiniz,
-Please specify a {0},Lütfen bir {0} belirtin,
+Please specify a {0},Lütfen bir {0} belirtin,lead
 Pledge Status,Rehin Durumu,
 Pledge Time,Rehin Zamanı,
-Printing,Yazdırma,
+Printing,Baskı,
 Priority,Öncelik,
 Priority has been changed to {0}.,Öncelik {0} olarak değiştirildi.,
 Priority {0} has been repeated.,{0} önceliği tekrar edildi.,
@@ -3998,18 +3948,18 @@
 Proposed Pledges are mandatory for secured Loans,Teminatlı Krediler için önerilen rehinlerin verilmesi zorunludur,
 Provide the academic year and set the starting and ending date.,Akademik yılı sağlayın ve başlangıç ve bitiş tarihini ayarlayın.,
 Public token is missing for this bank,Bu banka için genel belirteç eksik,
-Publish,Yayınla,
+Publish,yayınlamak,
 Publish 1 Item,1 Öğe Yayınla,
 Publish Items,Öğeleri Yayınla,
 Publish More Items,Daha Fazla Ürün Yayınla,
 Publish Your First Items,İlk Ürününüzü Yayınlayın,
 Publish {0} Items,{0} Öğeyi Yayımla,
 Published Items,Yayınlanan Öğeler,
-Purchase Invoice cannot be made against an existing asset {0},Mevcut bir öğeye karşı {0} Satınalma faturası yapılamaz,
+Purchase Invoice cannot be made against an existing asset {0},Mevcut bir öğeye karşı {0} satın alma faturası yapılamaz,
 Purchase Invoices,Satınalma Faturaları,
-Purchase Orders,Satınalma siparişleri,
-Purchase Receipt doesn't have any Item for which Retain Sample is enabled.,"Satınalma Fişinde, Örneği Tut'un etkinleştirildiği bir Öğe yoktur.",
-Purchase Return,Satınalma iadesi,
+Purchase Orders,Satın alma siparişleri,
+Purchase Receipt doesn't have any Item for which Retain Sample is enabled.,"Satın Alma Fişinde, Örneği Tut&#39;un etkinleştirildiği bir Öğe yoktur.",
+Purchase Return,Satın alma iadesi,
 Qty of Finished Goods Item,Mamul Mal Miktarı,
 Qty or Amount is mandatroy for loan security,Miktar veya Miktar kredi güvenliği için mandatroy,
 Quality Inspection required for Item {0} to submit,{0} Ürününün göndermesi için Kalite Kontrol gerekli,
@@ -4036,14 +3986,14 @@
 Repayment Start Date is mandatory for term loans,Vadeli krediler için geri ödeme başlangıç tarihi zorunludur,
 Report Item,Öğe Bildir,
 Report this Item,Bu öğeyi bildir,
-Reserved Qty for Subcontract: Raw materials quantity to make subcontracted items.,Fason Miktarı: Fason üretim yapmak için hammadde miktarı.,
+Reserved Qty for Subcontract: Raw materials quantity to make subcontracted items.,Fason Üretim için Ayrılmış Adet: Fason üretim yapmak için hammadde miktarı.,
 Reset,Sıfırla,
 Reset Service Level Agreement,Servis Seviyesi Sözleşmesini Sıfırla,
 Resetting Service Level Agreement.,Servis Seviyesi Sözleşmesini Sıfırlama.,
 Return amount cannot be greater unclaimed amount,İade tutarı talep edilmemiş tutardan fazla olamaz,
-Review,Gözden geçir,
-Room,Oda,
-Room Type,Oda Tipi,
+Review,gözden geçirmek,
+Room,oda,
+Room Type,Oda tipi,
 Row # ,Satır #,
 Row #{0}: Accepted Warehouse and Supplier Warehouse cannot be same,Satır # {0}: Kabul Edilen Depo ve Tedarikçi Deposu aynı olamaz,
 Row #{0}: Cannot delete item {1} which has already been billed.,Satır # {0}: Faturalandırılan {1} öğesi silinemiyor.,
@@ -4053,9 +4003,9 @@
 Row #{0}: Cannot delete item {1} which is assigned to customer's purchase order.,Satır # {0}: Müşterinin satınalma siparişine atanan {1} öğesi silinemiyor.,
 Row #{0}: Cannot select Supplier Warehouse while suppling raw materials to subcontractor,Satır # {0}: Taşerona hammadde tedarik ederken Tedarikçi Deposu seçilemiyor,
 Row #{0}: Cost Center {1} does not belong to company {2},"Satır # {0}: Maliyet Merkezi {1}, {2} şirketine ait değil",
-Row #{0}: Operation {1} is not completed for {2} qty of finished goods in Work Order {3}. Please update operation status via Job Card {4}.,Satır # {0}: {3} İş Emri'nde {2} işlenmiş ürün adedi için {1} işlemi tamamlanmadı. Lütfen çalışma durumunu {4} Job Card ile güncelleyin.,
+Row #{0}: Operation {1} is not completed for {2} qty of finished goods in Work Order {3}. Please update operation status via Job Card {4}.,Satır # {0}: {3} İş Emri&#39;nde {2} işlenmiş ürün adedi için {1} işlemi tamamlanmadı. Lütfen çalışma durumunu {4} Job Card ile güncelleyin.,
 Row #{0}: Payment document is required to complete the transaction,Satır # {0}: İşlemi tamamlamak için ödeme belgesi gereklidir,
-Row #{0}: Serial No {1} does not belong to Batch {2},"Satır # {0}: Seri No {1}, Parti {2} 'ye ait değil",
+Row #{0}: Serial No {1} does not belong to Batch {2},"Satır # {0}: Seri No {1}, Parti {2} &#39;ye ait değil",
 Row #{0}: Service End Date cannot be before Invoice Posting Date,"Satır # {0}: Hizmet Bitiş Tarihi, Fatura Kayıt Tarihinden önce olamaz",
 Row #{0}: Service Start Date cannot be greater than Service End Date,"Satır # {0}: Hizmet Başlangıç Tarihi, Hizmet Bitiş Tarihinden fazla olamaz",
 Row #{0}: Service Start and End Date is required for deferred accounting,Satır # {0}: Ertelenmiş muhasebe için Hizmet Başlangıç ve Bitiş Tarihi gerekiyor,
@@ -4083,14 +4033,14 @@
 Select only one Priority as Default.,Varsayılan olarak sadece bir Öncelik seçin.,
 Seller Information,Satıcı bilgisi,
 Send,Gönder,
-Send a message,Bir mesaj gönder,
+Send a message,Bir mesaj göndermek,
 Sending,Gönderme,
 Sends Mails to lead or contact based on a Campaign schedule,Bir Kampanya programına dayalı olarak postaları yönlendirmesi veya irtibat kurması,
 Serial Number Created,Seri Numarası Oluşturuldu,
 Serial Numbers Created,Oluşturulan Seri Numaraları,
 Serial no(s) required for serialized item {0},{0} serileştirilmiş öğesi için seri numarası gerekli,
-Series,Seri No,
-Server Error,Sunucu Hatası,
+Series,Seriler,
+Server Error,Server hatası,
 Service Level Agreement has been changed to {0}.,Hizmet Seviyesi Sözleşmesi {0} olarak değiştirildi.,
 Service Level Agreement was reset.,Hizmet Seviyesi Anlaşması sıfırlandı.,
 Service Level Agreement with Entity Type {0} and Entity {1} already exists.,{0} Varlığı ve {1} Varlığı ile Hizmet Seviyesi Anlaşması zaten var.,
@@ -4113,15 +4063,15 @@
 Start Time,Başlangıç Zamanı,
 Status,Durum,
 Status must be Cancelled or Completed,Durum İptal Edilmeli veya Tamamlandı,
-Stock Balance Report,Stock Bakiyesi Raporu,
-Stock Entry has been already created against this Pick List,Bu Seçim Listesi'ne karşı Stok Kaydı zaten oluşturuldu,
-Stock Ledger ID,Stok Defteri Kimliği,
+Stock Balance Report,Borsa Dengesi Raporu,
+Stock Entry has been already created against this Pick List,Bu Seçim Listesi&#39;ne karşı Stok Girişi zaten oluşturuldu,
+Stock Ledger ID,Stok Defteri Defteri Kimliği,
 Stock Value ({0}) and Account Balance ({1}) are out of sync for account {2} and it's linked warehouses.,"Stok Değeri ({0}) ve Hesap Bakiyesi ({1}), {2} hesabı için senkronize değil ve bağlı depolar.",
 Stores - {0},Mağazalar - {0},
 Student with email {0} does not exist,{0} e-posta adresine sahip öğrenci mevcut değil,
 Submit Review,İnceleme Gönder,
 Submitted,Tanzim Edildi,
-Supplier Addresses And Contacts,Tedarikçi Adresleri ve Kişileri,
+Supplier Addresses And Contacts,Tedarikçi Adresler ve İletişim,
 Synchronize this account,Bu hesabı senkronize et,
 Tag,Etiket,
 Target Location is required while receiving Asset {0} from an employee,Bir çalışandan {0} Varlığı alınırken Hedef Konum gerekli,
@@ -4132,7 +4082,7 @@
 Tax Account not specified for Shopify Tax {0},Shopify Vergisi için Vergi Hesabı belirtilmedi {0},
 Tax Total,Vergi Toplamı,
 Template,Şablon,
-The Campaign '{0}' already exists for the {1} '{2}',"'{0}' Kampanyası, {1} '{2}' için zaten var",
+The Campaign '{0}' already exists for the {1} '{2}',"&#39;{0}&#39; Kampanyası, {1} &#39;{2}&#39; için zaten var",
 The difference between from time and To Time must be a multiple of Appointment,Zaman ve Zaman arasındaki fark Randevunun katları olmalıdır,
 The field Asset Account cannot be blank,Duran Varlık Hesabı alanı boş bırakılamaz,
 The field Equity/Liability Account cannot be blank,Varlık / Borç Hesabı alanı boş bırakılamaz,
@@ -4144,7 +4094,7 @@
 The total allocated amount ({0}) is greated than the paid amount ({1}).,"Tahsis edilen toplam tutar ({0}), ödenen tutardan ({1}) elde edilir.",
 There are no vacancies under staffing plan {0},{0} kadro planında boş yer yok,
 This Service Level Agreement is specific to Customer {0},"Bu Servis Seviyesi Sözleşmesi, {0} Müşterisine özel",
-This action will unlink this account from any external service integrating ERPNext with your bank accounts. It cannot be undone. Are you certain ?,"Bu işlem, bu hesabın, ERPNext'i banka hesaplarınızla entegre eden herhangi bir harici hizmetle bağlantısını kesecektir. Geri alınamaz. Emin misin ?",
+This action will unlink this account from any external service integrating ERPNext with your bank accounts. It cannot be undone. Are you certain ?,"Bu işlem, bu hesabın, ERPNext&#39;i banka hesaplarınızla entegre eden herhangi bir harici hizmetle bağlantısını kesecektir. Geri alınamaz. Emin misin ?",
 This bank account is already synchronized,Bu banka hesabı zaten senkronize edildi,
 This bank transaction is already fully reconciled,Bu banka işlemi zaten tamamen mutabık kılındı,
 This employee already has a log with the same timestamp.{0},Bu çalışanın zaten aynı zaman damgasına sahip bir günlüğü var. {0},
@@ -4153,8 +4103,8 @@
 Thursday,Perşembe,
 Timing,Zamanlama,
 Title,Başlık,
-"To allow over billing, update ""Over Billing Allowance"" in Accounts Settings or the Item.","Fazla faturalandırmaya izin vermek için, Hesap Ayarları veya Öğesinde 'Fatura Ödeneği' nı güncelleyin.",
-"To allow over receipt / delivery, update ""Over Receipt/Delivery Allowance"" in Stock Settings or the Item.","Alınan / teslimin aşırı yapılmasına izin vermek için, Stok Ayarları veya Öğe'deki 'Aşırı Alındı / Teslimat Ödeneği' ni güncelleyin.",
+"To allow over billing, update ""Over Billing Allowance"" in Accounts Settings or the Item.","Fazla faturalandırmaya izin vermek için, Hesap Ayarları veya Öğesinde &quot;Fatura Ödeneği&quot; nı güncelleyin.",
+"To allow over receipt / delivery, update ""Over Receipt/Delivery Allowance"" in Stock Settings or the Item.","Alınan / teslimin aşırı yapılmasına izin vermek için, Stok Ayarları veya Öğe&#39;deki &quot;Aşırı Alındı / Teslimat Ödeneği&quot; ni güncelleyin.",
 To date needs to be before from date,Bugüne kadar tarihten önce olması gerekiyor,
 Total,Toplam,
 Total Early Exits,Toplam Erken Çıkış,
@@ -4177,8 +4127,8 @@
 Unpublish Item,Yayından kaldır,
 Unreconciled,uzlaşmamış,
 Unsupported GST Category for E-Way Bill JSON generation,E-Way Bill JSON nesli için desteklenmeyen GST Kategorisi,
-Update,Güncelle,
-Update Details,Ayrıntıları Güncelle,
+Update,Güncelleme,
+Update Details,Güncelleme Ayrıntıları,
 Update Taxes for Items,Öğeler için Vergileri Güncelle,
 "Upload a bank statement, link or reconcile a bank account","Bir banka ekstresi yükleyin, bir banka hesabını bağlayın veya mutabakat yapın",
 Upload a statement,Bir ifade yükle,
@@ -4186,18 +4136,15 @@
 User {0} is disabled,Kullanıcı {0} devre dışı,
 Users and Permissions,Kullanıcılar ve İzinler,
 Vacancies cannot be lower than the current openings,Boş pozisyonlar mevcut açılışlardan daha düşük olamaz,
-Valid From Time must be lesser than Valid Upto Time.,"Geçerlilik Süresi, Geçerlilik Süresi'nden daha az olmalıdır.",
+Valid From Time must be lesser than Valid Upto Time.,"Geçerlilik Süresi, Geçerlilik Süresi&#39;nden daha az olmalıdır.",
 Valuation Rate required for Item {0} at row {1},{1} satırındaki {0} Maddesi için Değerleme Oranı gerekli,
 Values Out Of Sync,Senkronizasyon Dışı Değerler,
 Vehicle Type is required if Mode of Transport is Road,Ulaşım Şekli Karayolu ise Araç Tipi gereklidir,
 Vendor Name,Satıcı adı,
-Verify Email,E-mail doğrula,
+Verify Email,E-mail&#39;i doğrula,
 View,Görünüm,
-View all issues from {0},{0} 'daki tüm sorunları görüntüle,
+View all issues from {0},{0} &#39;daki tüm sorunları görüntüle,
 View call log,Arama günlüğünü görüntüle,
-Manage,Yönet,
-Buying & Selling Settings,Alış ve Satış Ayarları,
-Enable Provisional Accounting For Non Stock Items,Stokta Olmayan Kalemler İçin Geçici Muhasebeyi Etkinleştir,
 Warehouse,Depo,
 Warehouse not found against the account {0},{0} hesabına karşı depo bulunamadı,
 Welcome to {0},Hoşgeldiniz {0},
@@ -4212,13 +4159,13 @@
 You are not enrolled in program {0},{0} programına kaydolmadınız,
 You can Feature upto 8 items.,8 öğeye kadar Featuring yapabilirsiniz.,
 You can also copy-paste this link in your browser,Ayrıca bu linki kopyalayıp tarayıcınıza yapıştırabilirsiniz,
-You can publish upto 200 items.,200'e kadar öğe yayınlayabilirsiniz.,
+You can publish upto 200 items.,200&#39;e kadar öğe yayınlayabilirsiniz.,
 You have to enable auto re-order in Stock Settings to maintain re-order levels.,Yeniden sipariş seviyelerini korumak için Stok Ayarlarında otomatik yeniden siparişi etkinleştirmeniz gerekir.,
-You must be a registered supplier to generate e-Way Bill,E-Way Bill'i oluşturmak için tescilli bir tedarikçi olmalısınız,
+You must be a registered supplier to generate e-Way Bill,E-Way Bill&#39;i oluşturmak için tescilli bir tedarikçi olmalısınız,
 You need to login as a Marketplace User before you can add any reviews.,Herhangi bir inceleme ekleyebilmeniz için önce bir Marketplace Kullanıcısı olarak giriş yapmanız gerekir.,
 Your Featured Items,Seçtiğiniz Öğeler,
 Your Items,Öğeleriniz,
-Your Profile,Senin profilin,
+Your Profile,Senin profil,
 Your rating:,Sizin dereceniz:,
 and,ve,
 e-Way Bill already exists for this document,e-Way Bill bu belge için zaten var,
@@ -4228,15 +4175,15 @@
 {0} Operations: {1},{0} İşlemler: {1},
 {0} bank transaction(s) created,{0} banka işlemi yaratıldı,
 {0} bank transaction(s) created and {1} errors,{0} banka işlemi yaratıldı ve {1} hataları,
-{0} can not be greater than {1},"{0}, {1} 'den büyük olamaz",
+{0} can not be greater than {1},"{0}, {1} &#39;den büyük olamaz",
 {0} conversations,{0} ileti dizisi,
 {0} is not a company bank account,{0} bir şirket banka hesabı değil,
 {0} is not a group node. Please select a group node as parent cost center,{0} bir grup düğümü değil. Lütfen ana maliyet merkezi olarak bir grup düğümü seçin,
 {0} is not the default supplier for any items.,"{0}, hiçbir ürün için varsayılan tedarikçi değildir.",
 {0} is required,{0} gereklidir,
-{0}: {1} must be less than {2},{0}: {1} {2} 'den küçük olmalı,
+{0}: {1} must be less than {2},{0}: {1} {2} &#39;den küçük olmalı,
 {} is an invalid Attendance Status.,{} geçersiz Seyirci Durumu.,
-{} is required to generate E-Way Bill JSON,e-Way Bill JSON'u oluşturmak için {} gereklidir,
+{} is required to generate E-Way Bill JSON,e-Way Bill JSON&#39;u oluşturmak için {} gereklidir,
 "Invalid lost reason {0}, please create a new lost reason","Geçersiz kayıp neden {0}, lütfen yeni bir kayıp neden oluşturun",
 Profit This Year,Bu Yıl Kâr,
 Total Expense,Toplam Gider,
@@ -4244,25 +4191,25 @@
 Total Income,Toplam gelir,
 Total Income This Year,Bu Yıl Toplam Gelir,
 Barcode,Barkod,
-Bold,Kalın,
+Bold,cesur,
 Center,Merkez,
 Clear,Açık,
 Comment,Yorum Yap,
 Comments,Yorumlar,
-DocType,Belge Türü,
+DocType,DocType,
 Download,İndir,
-Left,Left,
-Link,Link,
+Left,Bırakmak,
+Link,bağlantı,
 New,Yeni,
 Not Found,Bulunamadı,
 Print,Yazdır,
-Reference Name,Referans adı,
+Reference Name,referans adı,
 Refresh,Yenile,
-Success,Başarılı,
-Time,Süre/Zaman,
-Value,Değer,
+Success,başarı,
+Time,zaman,
+Value,değer,
 Actual,Gerçek,
-Add to Cart,Sepete Ekle,
+Add to Cart,Sepete ekle,
 Days Since Last Order,Son Siparişten Beri Geçen Gün Sayısı,
 In Stock,Stokta var,
 Loan Amount is mandatory,Kredi Tutarı zorunludur,
@@ -4271,20 +4218,20 @@
 Not in Stock,Stokta yok,
 Please select a Customer,Lütfen bir müşteri seçin,
 Printed On,Baskılı Açık,
-Received From,Bundan Alındı,
-Sales Person,Satış Elemanı,
+Received From,Dan alındı,
+Sales Person,Satis elemani,
 To date cannot be before From date,Bitiş tarihi başlangıç tarihinden önce olmamalıdır,
 Write Off,Şüpheli Alacak,
 {0} Created,{0} Oluşturuldu,
 Email Id,E-posta kimliği,
-No,Hayır,
-Reference Doctype,Referans Belge Türü,
+No,Hiç,
+Reference Doctype,Referans DocType,
 User Id,Kullanıcı kimliği,
 Yes,Evet,
-Actual,Mevcut,
+Actual ,Gerçek,
 Add to cart,Sepete ekle,
 Budget,Bütçe,
-Chart of Accounts,Hesap Planı,
+Chart of Accounts,Hesap tablosu,
 Customer database.,Müşteri veritabanı.,
 Days Since Last order,Son siparişten bu yana geçen günler,
 Download as JSON,JSON olarak indir,
@@ -4303,9 +4250,9 @@
 No students found,Hiçbir öğrenci Bulundu,
 Not in stock,Stokta yok,
 Not permitted,İzin verilmedi,
-Open Issues ,Açık sorunlar ,
-Open Projects,Açık Projeler,
-Open To Do ,Yapılacakları Aç,
+Open Issues ,Açık sorunlar,
+Open Projects ,Açık Projeler,
+Open To Do ,To Do Aç,
 Operation Id,Operasyon Kimliği,
 Partially ordered,kısmen Sıralı,
 Please select company first,İlk Şirket seçiniz,
@@ -4315,8 +4262,8 @@
 Sales person,Satış Personeli,
 Serial No {0} Created,Seri No {0} Oluşturuldu,
 Source Location is required for the Asset {0},{0} varlığına ait Kaynak Konumu gerekli,
-Tax Id,Vergi Numarası,
-To Time,Bitiş Tarihi,
+Tax Id,Vergi numarası,
+To Time,Zamana,
 To date cannot be before from date,Tarihe Tarihten Önce olamaz,
 Total Taxable value,Toplam Vergilendirilebilir Değer,
 Upcoming Calendar Events ,Yaklaşan Takvim Olayları,
@@ -4330,22 +4277,22 @@
 Cards,Kartlar,
 Percentage,Yüzde,
 Failed to setup defaults for country {0}. Please contact support@erpnext.com,{0} ülkesi için varsayılanlar ayarlanamadı. Lütfen support@erpnext.com ile iletişime geçin,
-Row #{0}: Item {1} is not a Serialized/Batched Item. It cannot have a Serial No/Batch No against it.,Satır # {0}: {1} öğesi bir Seri / Toplu İş Öğesi değil. Seri No / Parti No'ya karşı olamaz.,
+Row #{0}: Item {1} is not a Serialized/Batched Item. It cannot have a Serial No/Batch No against it.,Satır # {0}: {1} öğesi bir Seri / Toplu İş Öğesi değil. Seri No / Parti No&#39;ya karşı olamaz.,
 Please set {0},Lütfen {0} ayarlayınız,
-Please set {0},Lütfen {0} ayarlayın,
-Draft,Taslak,
-Cancelled,İptal edildi,
-Please setup Instructor Naming System in Education > Education Settings,"Lütfen Eğitim&gt; Eğitim Ayarları bölümünde Eğitmen Adlandırma Sistemini kurun",
-Please set Naming Series for {0} via Setup > Settings > Naming Series,"Lütfen Kurulum&gt; Ayarlar&gt; Adlandırma Serisi aracılığıyla {0} için Adlandırma Serisini ayarlayın",
-UOM Conversion factor ({0} -> {1}) not found for item: {2},"{2} öğesi için UOM Dönüşüm faktörü ({0} -&gt; {1}) bulunamadı.",
-Item Code > Item Group > Brand,"Ürün Kodu&gt; Ürün Grubu&gt; Marka",
-Customer > Customer Group > Territory,"Müşteri&gt; Müşteri Grubu&gt; Bölge",
-Supplier > Supplier Type,"Tedarikçi&gt; Tedarikçi Türü",
-Please setup Employee Naming System in Human Resource > HR Settings,"Lütfen İnsan Kaynakları&gt; İK Ayarları bölümünde Çalışan Adlandırma Sistemini kurun",
-Please setup numbering series for Attendance via Setup > Numbering Series,"Lütfen Katılım&gt; Numaralandırma Serisi aracılığıyla Katılım için numaralandırma serilerini ayarlayın",
+Please set {0},Lütfen {0} ayarlayın,supplier
+Draft,taslak,"docstatus,=,0"
+Cancelled,İptal edildi,"docstatus,=,2"
+Please setup Instructor Naming System in Education > Education Settings,Lütfen Eğitim&gt; Eğitim Ayarları bölümünde Eğitmen Adlandırma Sistemini kurun,
+Please set Naming Series for {0} via Setup > Settings > Naming Series,Lütfen Kurulum&gt; Ayarlar&gt; Adlandırma Serisi aracılığıyla {0} için Adlandırma Serisini ayarlayın,
+UOM Conversion factor ({0} -> {1}) not found for item: {2},{2} öğesi için UOM Dönüşüm faktörü ({0} -&gt; {1}) bulunamadı.,
+Item Code > Item Group > Brand,Ürün Kodu&gt; Ürün Grubu&gt; Marka,
+Customer > Customer Group > Territory,Müşteri&gt; Müşteri Grubu&gt; Bölge,
+Supplier > Supplier Type,Tedarikçi&gt; Tedarikçi Türü,
+Please setup Employee Naming System in Human Resource > HR Settings,Lütfen İnsan Kaynakları&gt; İK Ayarları bölümünde Çalışan Adlandırma Sistemini kurun,
+Please setup numbering series for Attendance via Setup > Numbering Series,Lütfen Katılım&gt; Numaralandırma Serisi aracılığıyla Katılım için numaralandırma serilerini ayarlayın,
 The value of {0} differs between Items {1} and {2},"{0} değeri, Öğeler {1} ve {2} arasında farklılık gösterir",
 Auto Fetch,Otomatik Getirme,
-Fetch Serial Numbers based on FIFO,FIFO'ya göre Seri Numaralarını getir,
+Fetch Serial Numbers based on FIFO,FIFO&#39;ya göre Seri Numaralarını getir,
 "Outward taxable supplies(other than zero rated, nil rated and exempted)","Hariç vergiye tabi tedarikler (sıfır oranlı, sıfır oranlı ve muaf tutulmuş hariç)",
 "To allow different rates, disable the {0} checkbox in {1}.","Farklı oranlara izin vermek için, {1} içindeki {0} onay kutusunu devre dışı bırakın.",
 Current Odometer Value should be greater than Last Odometer Value {0},"Mevcut Kilometre Sayacı Değeri, Son Yolölçer Değerinden büyük olmalıdır {0}",
@@ -4355,14 +4302,14 @@
 Assets not created for {0}. You will have to create asset manually.,{0} için varlıklar oluşturulmadı. Varlığı manuel olarak oluşturmanız gerekecektir.,
 {0} {1} has accounting entries in currency {2} for company {3}. Please select a receivable or payable account with currency {2}.,"{0} {1}, {3} şirketi için {2} para biriminde muhasebe girişlerine sahip. Lütfen para birimi {2} olan bir alacak veya borç hesabı seçin.",
 Invalid Account,Geçersiz hesap,
-Purchase Order Required,gerekli Satınalma Siparişi,
-Purchase Receipt Required,Gerekli Satınalma makbuzu,
+Purchase Order Required,gerekli Satın alma Siparişi,
+Purchase Receipt Required,Gerekli Satın alma makbuzu,
 Account Missing,Hesap Eksik,
 Requested,Talep,
 Partially Paid,Kısmen ödenmiş,
 Invalid Account Currency,Geçersiz Hesap Para Birimi,
 "Row {0}: The item {1}, quantity must be positive number","Satır {0}: {1} öğesi, miktar pozitif sayı olmalıdır",
-"Please set {0} for Batched Item {1}, which is used to set {2} on Submit.",Lütfen Gönderimde {2} 'yi ayarlamak için kullanılan Toplu Öğe {1} için {0} ayarlayın.,
+"Please set {0} for Batched Item {1}, which is used to set {2} on Submit.",Lütfen Gönderimde {2} &#39;yi ayarlamak için kullanılan Toplu Öğe {1} için {0} ayarlayın.,
 Expiry Date Mandatory,Son Kullanma Tarihi Zorunlu,
 Variant Item,Varyant Öğe,
 BOM 1 {0} and BOM 2 {1} should not be same,BOM 1 {0} ve BOM 2 {1} aynı olmamalıdır,
@@ -4380,9 +4327,9 @@
 Reqd by date,Tarihe göre talep,
 Manufacturer Part Number <b>{0}</b> is invalid,Üretici Parça Numarası <b>{0}</b> geçersiz,
 Invalid Part Number,Geçersiz Parça Numarası,
-Select atleast one Social Media from Share on.,Share on'dan en az bir Sosyal Medya seçin.,
+Select atleast one Social Media from Share on.,Share on&#39;dan en az bir Sosyal Medya seçin.,
 Invalid Scheduled Time,Geçersiz Planlanmış Zaman,
-Length Must be less than 280.,Uzunluk 280'den az olmalıdır.,
+Length Must be less than 280.,Uzunluk 280&#39;den az olmalıdır.,
 Error while POSTING {0},{0} YAYINLANMA sırasında hata,
 "Session not valid, Do you want to login?","Oturum geçerli değil, Giriş yapmak istiyor musunuz?",
 Session Active,Oturum Etkin,
@@ -4392,22 +4339,22 @@
 Error! Failed to get access token.,Hata! Erişim belirteci alınamadı.,
 Invalid Consumer Key or Consumer Secret Key,Geçersiz Tüketici Anahtarı veya Tüketici Gizli Anahtarı,
 Your Session will be expire in ,Oturumunuzun süresi içinde dolacak,
-days.,gün.,
+ days.,günler.,
 Session is expired. Save doc to login.,Oturumun süresi doldu. Giriş yapmak için dokümanı kaydedin.,
 Error While Uploading Image,Görüntü Yüklenirken Hata,
-You Didn't have permission to access this API,Bu API'ye erişim izniniz yoktu,
+You Didn't have permission to access this API,Bu API&#39;ye erişim izniniz yoktu,
 Valid Upto date cannot be before Valid From date,"Geçerli Güncel tarih, Geçerlilik Başlangıç tarihinden önce olamaz",
 Valid From date not in Fiscal Year {0},Geçerlilik Başlangıcı tarihi Mali Yıl değil {0},
 Valid Upto date not in Fiscal Year {0},Geçerli Tarih {0} Mali Yıl değil,
 Group Roll No,Grup Rulo Hayır,
 Maintain Same Rate Throughout Sales Cycle,Satış döngüsü boyunca aynı oranı koruyun,
-"Row {1}: Quantity ({0}) cannot be a fraction. To allow this, disable '{2}' in UOM {3}.","Satır {1}: Miktar ({0}) kesir olamaz. Buna izin vermek için, UOM {3} 'de' {2} 'devre dışı bırakın.",
+"Row {1}: Quantity ({0}) cannot be a fraction. To allow this, disable '{2}' in UOM {3}.","Satır {1}: Miktar ({0}) kesir olamaz. Buna izin vermek için, UOM {3} &#39;de&#39; {2} &#39;devre dışı bırakın.",
 Must be Whole Number,Tam Numara olmalı,
 Please setup Razorpay Plan ID,Lütfen Razorpay Plan Kimliğini ayarlayın,
 Contact Creation Failed,Kişi Oluşturulamadı,
 {0} already exists for employee {1} and period {2},"{0}, {1} çalışanı ve {2} dönemi için zaten mevcut",
 Leaves Allocated,Ayrılan İzinler,
-Leaves Expired,İzinlerin Süresi Doldu,
+Leaves Expired,Yaprakların Süresi Doldu,
 Leave Without Pay does not match with approved {} records,"Ödemesiz Bırak, onaylı {} kayıtlarıyla eşleşmiyor",
 Income Tax Slab not set in Salary Structure Assignment: {0},"Gelir Vergisi Levhası, Maaş Yapısı Atamasında belirlenmemiş: {0}",
 Income Tax Slab: {0} is disabled,Gelir Vergisi Levhası: {0} devre dışı bırakıldı,
@@ -4422,14 +4369,14 @@
 Row #{}: Please asign task to a member.,Satır # {}: Lütfen bir üyeye görev atayın.,
 Process Failed,İşlem Başarısız,
 Tally Migration Error,Tally Taşıma Hatası,
-Please set Warehouse in Woocommerce Settings,Lütfen Depoyu Woocommerce Ayarlarında ayarlayın,
+Please set Warehouse in Woocommerce Settings,Lütfen Warehouse&#39;u Woocommerce Ayarlarında ayarlayın,
 Row {0}: Delivery Warehouse ({1}) and Customer Warehouse ({2}) can not be same,Satır {0}: Teslimat Deposu ({1}) ve Müşteri Deposu ({2}) aynı olamaz,
 Row {0}: Due Date in the Payment Terms table cannot be before Posting Date,Satır {0}: Ödeme Koşulları tablosundaki Son Tarih Kayıt Tarihinden önce olamaz,
 Cannot find {} for item {}. Please set the same in Item Master or Stock Settings.,{} Öğesi için {} bulunamıyor. Lütfen aynı öğeyi Ana Öğe veya Stok Ayarlarında ayarlayın.,
 Row #{0}: The batch {1} has already expired.,Satır # {0}: {1} grubunun süresi zaten doldu.,
 Start Year and End Year are mandatory,Başlangıç Yılı ve Bitiş Yılı zorunludur,
 GL Entry,GL Girdisi,
-Cannot allocate more than {0} against payment term {1},Ödeme şartına {1} karşı {0} 'den fazla tahsis edemezsiniz,
+Cannot allocate more than {0} against payment term {1},Ödeme şartına {1} karşı {0} &#39;den fazla tahsis edemezsiniz,
 The root account {0} must be a group,Kök hesap {0} bir grup olmalıdır,
 Shipping rule not applicable for country {0} in Shipping Address,Gönderim Adresindeki {0} ülkesi için gönderim kuralı geçerli değil,
 Get Payments from,Ödemeleri şuradan alın,
@@ -4455,7 +4402,7 @@
 Work Order cannot be created for following reason: <br> {0},İş Emri aşağıdaki nedenle oluşturulamaz:<br> {0},
 Add items in the Item Locations table,Öğe Konumları tablosuna öğe ekleyin,
 Update Current Stock,Mevcut Stoku Güncelle,
-"{0} Retain Sample is based on batch, please check Has Batch No to retain sample of item","{0} Numuneyi Tutma seriye dayalıdır, öğenin örneğini saklamak için Parti Numarası Var'ı işaretleyin",
+"{0} Retain Sample is based on batch, please check Has Batch No to retain sample of item","{0} Numuneyi Tutma seriye dayalıdır, öğenin örneğini saklamak için Parti Numarası Var&#39;ı işaretleyin",
 Empty,Boş,
 Currently no stock available in any warehouse,Şu anda herhangi bir depoda stok yok,
 BOM Qty,BOM Adet,
@@ -4518,13 +4465,12 @@
 Practitioner Schedule Not Found,Uygulayıcı Programı Bulunamadı,
 {0} is on a Half day Leave on {1},"{0}, {1} Yarım Gün İzinde",
 {0} is on Leave on {1},"{0}, {1} tarihinde Ayrılmada",
-{0} does not have a Healthcare Practitioner Schedule. Add it in Healthcare Practitioner,{0} bir Sağlık Hizmetleri Uygulayıcı Programı'na sahip değil. Sağlık Uzmanına Ekle,
-Add a comment,Yorum Ekle,
+{0} does not have a Healthcare Practitioner Schedule. Add it in Healthcare Practitioner,{0} bir Sağlık Hizmetleri Uygulayıcı Programı&#39;na sahip değil. Sağlık Uzmanına Ekle,
 Healthcare Service Units,Sağlık Hizmet Birimleri,
 Complete and Consume,Tamamla ve Tüket,
 Complete {0} and Consume Stock?,{0} Tamamlanıp Stok Tüketilsin mi?,
 Complete {0}?,{0} tamamlandı mı?,
-Stock quantity to start the Procedure is not available in the Warehouse {0}. Do you want to record a Stock Entry?,Prosedürü başlatacak stok miktarı Depo {0} 'da mevcut değil. Bir Stok Kaydı yapmak istiyor musunuz?,
+Stock quantity to start the Procedure is not available in the Warehouse {0}. Do you want to record a Stock Entry?,Prosedürü başlatacak stok miktarı Depo {0} &#39;da mevcut değil. Bir Stok Girişi kaydetmek istiyor musunuz?,
 {0} as on {1},"{0}, {1}",
 Clinical Procedure ({0}):,Klinik Prosedür ({0}):,
 Please set Customer in Patient {0},Lütfen Müşteriyi Hasta olarak ayarlayın {0},
@@ -4565,35 +4511,15 @@
 Accounting Period,Muhasebe Dönemi,
 Period Name,Dönem Adı,
 Closed Documents,Kapalı Belgeler,
-Accounts Settings,Hesap Ayarları,
-Invoice and Billing,Fatura ve Faturalandırma,
-Accounts Closing,Hesap Kapatma,
-Chart Of Accounts,Hesap Tablosu,
-Credit Limit Settings,Kredi Limiti Ayarları,
-Period Closing Settings,Dönem Kapanış Ayarları,
-Asset Settings,Varlık Ayarları,
-POS Setting,POS Ayarları,
-Create Ledger Entries for Change Amount,Değişim Miktarı için Defter Girişleri Oluşturun,
-"If enabled, ledger entries will be posted for change amount in POS transactions","Etkinleştirilirse, POS hareketlerinde değişiklik tutarı için defter girişleri nakledilir",
-Role Allowed to Over Bill,Fatura Üzerinde İzin Verilen Rol,
-Users with this role are allowed to over bill above the allowance percentage,Bu role sahip kullanıcıların ödenek yüzdesinin üzerinde fazla fatura kesmesine izin verilir,
-Role allowed to bypass Credit Limit,Kredi Limitini atlamak için izin verilen rol,
-Automatically Fetch Payment Terms from Order,Ödeme Koşullarını Siparişten Otomatik Olarak Getir,
-Allow multi-currency invoices against single party account,Tek taraf hesabına karşı çok para birimli faturalara izin ver,
-Enable Common Party Accounting,Ortak Taraf Hesabını Etkinleştir,
-Learn about Common Party,{0} hakkında bilgi edinin,
-Enabling ensure each Purchase Invoice has a unique value in Supplier Invoice No. field,Tedarikçi Fatura No. alanında her Satınalma Faturasının benzersiz bir değere sahip olmasını sağlamanın etkinleştirilmesi,
-Enabling this will allow creation of multi-currency invoices against single party account in company currency,Bunun etkinleştirilmesi şirket para biriminde tek taraf hesabına karşı çok para birimli faturaların oluşturulmasına izin verecektir.,
-Show Balances in Chart Of Accounts,Hesap Planında Bakiyeleri Göster,
-Enable Custom Cash Flow Format,Özel Nakit Akışı Biçimini Etkinleştir,
+Accounts Settings,Hesap ayarları,
 Settings for Accounts,Hesaplar için Ayarlar,
 Make Accounting Entry For Every Stock Movement,Her Stok Hareketi için Muhasebe kaydı oluştur,
 Users with this role are allowed to set frozen accounts and create / modify accounting entries against frozen accounts,Bu role sahip kullanıcıların dondurulmuş hesapları ayarlama ve dondurulmuş hesaplara karşı muhasebe girdileri oluşturma/düzenleme yetkileri vardır,
 Determine Address Tax Category From,Adres Vergi Kategorisini Kimden Belirle,
 Over Billing Allowance (%),Fazla Fatura Ödeneği (%),
-Credit Controller,Kredi Denetleyicisi,
+Credit Controller,Kredi Kontrolü,
 Check Supplier Invoice Number Uniqueness,Benzersiz Tedarikçi Fatura Numarasını Kontrol Edin,
-Make Payment via Journal Entry,Yevmiye Kaydı aracılığıyla Ödeme Yap,
+Make Payment via Journal Entry,Dergi Giriş aracılığıyla Ödeme Yap,
 Unlink Payment on Cancellation of Invoice,Fatura İptaline İlişkin Ödeme bağlantısını kaldır,
 Book Asset Depreciation Entry Automatically,Varlık Amortisman Kayıtını Otomatik Olarak Kaydedin,
 Automatically Add Taxes and Charges from Item Tax Template,Öğe Vergisi Şablonundan Otomatik Olarak Vergi ve Masraf Ekleme,
@@ -4607,8 +4533,7 @@
 Allowed To Transact With,İle Taşınmaya İzin Verildi,
 SWIFT number,SWIFT numarası,
 Branch Code,Şube Kodu,
-Contact & Address,Kontakt ve Adres,
-Address and Contact,Adres ve İletişim,
+Address and Contact,Adresler ve Kontaklar,
 Address HTML,Adres HTML,
 Contact HTML,İletişim HTML,
 Data Import Configuration,Veri Alma Yapılandırması,
@@ -4626,7 +4551,7 @@
 Integration ID,Entegrasyon kimliği,
 Last Integration Date,Son Entegrasyon Tarihi,
 Change this date manually to setup the next synchronization start date,Bir sonraki senkronizasyon başlangıç tarihini ayarlamak için bu tarihi el ile değiştirin.,
-Mask,Maskele,
+Mask,maskelemek,
 Bank Account Subtype,Banka Hesabı Alt Türü,
 Bank Account Type,Banka Hesap Türü,
 Bank Guarantee,Banka Garantisi,
@@ -4647,8 +4572,8 @@
 Select the Bank Account to reconcile.,Mutabakata varılacak Banka Hesabını seçin.,
 Include Reconciled Entries,Mutabık girdileri dahil edin,
 Get Payment Entries,Ödeme Girişleri alın,
-Payment Entries,Ödeme Girişleri,
-Update Clearance Date,Gümrükleme Tarihini Güncelle,
+Payment Entries,Ödeme Girişler,
+Update Clearance Date,Güncelleme Alma Tarihi,
 Bank Reconciliation Detail,Banka Mutabakat Ayrıntısı,
 Cheque Number,Çek Numarası,
 Cheque Date,Çek Tarih,
@@ -4689,7 +4614,7 @@
 Control Action,Kontrol eylem,
 Applicable on Material Request,Malzeme Talebi Uygulanabilir,
 Action if Annual Budget Exceeded on MR,MR üzerinde Yıllık Bütçe Aşıldıysa Eylem,
-Warn,Uyar,
+Warn,Uyarmak,
 Ignore,Yoksay,
 Action if Accumulated Monthly Budget Exceeded on MR,MR Üzerinde Aylık Bütçe Aşıldıysa Yapılacak İşlem,
 Applicable on Purchase Order,Satınalma Siparişinde Geçerli,
@@ -4721,23 +4646,23 @@
 Section Footer,Bölüm Altbilgisi,
 Position,pozisyon,
 Cash Flow Mapping,Nakit Akışı Eşleme,
-Select Maximum Of 1,Maksimum 1'i seçin,
+Select Maximum Of 1,Maksimum 1&#39;i seçin,
 Is Finance Cost,Mali Maliyet mi,
 Is Working Capital,İşletme Sermayesi mi,
 Is Finance Cost Adjustment,Mali Maliyet Ayarı Var mı,
 Is Income Tax Liability,Gelir Vergisi Yükümlülüğü Var mı,
 Is Income Tax Expense,Gelir Vergisi Gideridir?,
 Cash Flow Mapping Accounts,Nakit Akışı Eşleme Hesapları,
-account,hesap,
+account,Hesap,
 Cash Flow Mapping Template,Nakit Akışı Eşleme Şablonu,
 Cash Flow Mapping Template Details,Nakit Akışı Eşleme Şablonu Ayrıntıları,
 POS-CLO-,POS-ClO-,
 Custody,gözaltı,
 Net Amount,Net Miktar,
-Cashier Closing Payments,Kasiyer Kapanış Ödemesi,
-Chart of Accounts Importer,Hesap Planı Aktarıcı,
+Cashier Closing Payments,Kasiyer Ödemeleri Kapatma,
+Chart of Accounts Importer,Hesap Planı İthalatçısı,
 Import Chart of Accounts from a csv file,Bir csv dosyasından Hesap Planını İçe Aktar,
-Attach custom Chart of Accounts file,Özel Hesap Planı dosyasını ekle,
+Attach custom Chart of Accounts file,Özel Hesap Planı dosyasını ekleyin,
 Chart Preview,Grafik Önizlemesi,
 Chart Tree,Grafik Ağacı,
 Cheque Print Template,Çek Baskı Şablon,
@@ -4745,14 +4670,14 @@
 Primary Settings,İlköğretim Ayarlar,
 Cheque Size,Çek Boyutu,
 Regular,Düzenli,
-Starting position from top edge,Üst kenardan başlama pozisyonu,
+Starting position from top edge,üst kenardan başlama pozisyonu,
 Cheque Width,Çek Genişliği,
 Cheque Height,Çek Yükseklik,
 Scanned Cheque,taranan Çek,
 Is Account Payable,Ödenecek Hesap mı,
 Distance from top edge,üst kenarından uzaklık,
 Distance from left edge,sol kenarından olan uzaklık,
-Message to show,Gösterilecek mesaj,
+Message to show,Mesaj göstermek,
 Date Settings,Tarih Ayarları,
 Starting location from left edge,sol kenarından yerini başlayan,
 Payer Settings,ödeyici Ayarları,
@@ -4768,29 +4693,29 @@
 rgt,rgt,
 Coupon Code,Kupon Kodu,
 Coupon Name,Kupon Adı,
-"e.g. ""Summer Holiday 2019 Offer 20""",ör. 'Yaz Tatili 2019 Teklifi 20',
+"e.g. ""Summer Holiday 2019 Offer 20""",ör. &quot;Yaz Tatili 2019 Teklifi 20&quot;,
 Coupon Type,Kupon Türü,
 Promotional,Promosyon,
 Gift Card,Hediye kartı,
 unique e.g. SAVE20  To be used to get discount,benzersiz örneğin SAVE20 İndirim almak için kullanılacak,
 Validity and Usage,Geçerlilik ve Kullanım,
-Valid From,Geçerlilik Başlangıcı,
-Valid Upto,Geçerlilik Bitişi,
+Valid From,Kadar geçerli,
+Valid Upto,Şimdiye Kadar Geçerli,
 Maximum Use,Maksimum kullanım,
 Used,Kullanılmış,
-Coupon Description,Kupon Açıklaması,
+Coupon Description,Kupon açıklaması,
 Discounted Invoice,İndirimli Fatura,
-Debit to,Borç kime,
+Debit to,Borç,
 Exchange Rate Revaluation,Döviz Kuru Yeniden Değerleme,
-Get Entries,Girişleri Al,
+Get Entries,Girişleri Alın,
 Exchange Rate Revaluation Account,Döviz Kuru Yeniden Değerleme Hesabı,
 Total Gain/Loss,Toplam Kazanç / Zarar,
-Balance In Account Currency,Hesap Para Biriminde Bakiye,
+Balance In Account Currency,Hesap Para Birimi Dengesi,
 Current Exchange Rate,Mevcut Döviz Kuru,
-Balance In Base Currency,Temel Döviz Cinsinden Bakiye,
+Balance In Base Currency,Temel Para Birimi Dengesi,
 New Exchange Rate,Yeni Döviz Kuru,
-New Balance In Base Currency,Temel Döviz Cinsinden Yeni Bakiye,
-Gain/Loss,Kazanç / Zarar,
+New Balance In Base Currency,Baz Dövizinde Yeni Bakiye,
+Gain/Loss,Kazanç / Kayıp,
 **Fiscal Year** represents a Financial Year. All accounting entries and other major transactions are tracked against **Fiscal Year**.,** Mali Yılı ** Mali Yılı temsil eder. Tüm muhasebe kayıtları ve diğer önemli işlemler ** ** Mali Yılı karşı izlenir.,
 Year Name,Yıl Adı,
 "For e.g. 2012, 2012-13","Örneğin 2012 için, 2012-13",
@@ -4801,13 +4726,13 @@
 Stock User,Hisse Senedi Kullanıcı,
 Fiscal Year Company,Mali Yıl Şirketi,
 Debit Amount,Borç Tutarı,
-Credit Amount,Alacak Tutarı,
-Debit Amount in Account Currency,Hesabın Para Biriminde Borç Tutarı,
-Credit Amount in Account Currency,Hesabın Para Biriminde Alacak Tutarı,
-Voucher Detail No,Fiş Detayı No,
-Is Opening,Açılış mı,
-Is Advance,Avans mı,
-To Rename,Yeniden Adlandırılacak,
+Credit Amount,Kredi miktarı,
+Debit Amount in Account Currency,Hesap Para Bankamatik Tutar,
+Credit Amount in Account Currency,Hesap Para Birimi Kredi Tutarı,
+Voucher Detail No,Föy Detay no,
+Is Opening,Açılır,
+Is Advance,Avans,
+To Rename,Yeniden adlandırmak için,
 GST Account,GST Hesabı,
 CGST Account,CGST Hesabı,
 SGST Account,SGST Hesabı,
@@ -4816,14 +4741,14 @@
 Loan Start Date,Kredi Başlangıç Tarihi,
 Loan Period (Days),Kredi Süresi (Günler),
 Loan End Date,Kredi Bitiş Tarihi,
-Bank Charges,Banka Masrafları,
+Bank Charges,Banka masrafları,
 Short Term Loan Account,Kısa Vadeli Kredi Hesabı,
-Bank Charges Account,Banka Masrafları Hesabı,
-Accounts Receivable Credit Account,Alacak Hesapları Alacak Hesabı,
-Accounts Receivable Discounted Account,Alacak Hesapları İskonto Hesabı,
-Accounts Receivable Unpaid Account,Alacak Hesapları Ödenmemiş Hesap,
+Bank Charges Account,Banka Ücretleri Hesabı,
+Accounts Receivable Credit Account,Alacak Alacak Hesabı,
+Accounts Receivable Discounted Account,Alacak Hesapları,
+Accounts Receivable Unpaid Account,Alacaksız Alacak Hesabı,
 Item Tax Template,Öğe Vergisi Şablonu,
-Tax Rates,Vergi Oranları,
+Tax Rates,Vergi oranları,
 Item Tax Template Detail,Öğe Vergisi Şablon Ayrıntısı,
 Entry Type,Girdi Türü,
 Inter Company Journal Entry,Inter Şirket Dergisi Giriş,
@@ -4832,14 +4757,14 @@
 Credit Card Entry,Kredi Kartı Girişi,
 Contra Entry,Hesaba Alacak Girişi,
 Excise Entry,Tüketim Girişi,
-Write Off Entry,Şüpheli Alacak Kaydı,
-Opening Entry,Açılış Kaydı,
+Write Off Entry,Şüpheli Alacak Girdisi,
+Opening Entry,Açılış Girdisi,
 ACC-JV-.YYYY.-,ACC-JV-.YYYY.-,
 Accounting Entries,Muhasebe Girişler,
 Total Debit,Toplam Borç,
 Total Credit,Toplam Kredi,
 Difference (Dr - Cr),Fark (Dr - Cr),
-Make Difference Entry,Fark Girişi yap,
+Make Difference Entry,Fark Girişi yapın,
 Total Amount Currency,Toplam Tutar Para Birimi,
 Total Amount in Words,Sözlü Toplam Tutar,
 Remark,Dikkat,
@@ -4852,7 +4777,7 @@
 Pay To / Recd From,Gönderen/Alınan,
 Payment Order,Ödeme talimatı,
 Subscription Section,Abonelik Bölümü,
-Journal Entry Account,Yevmiye Kaydı Hesabı,
+Journal Entry Account,Kayıt Girdisi Hesabı,
 Account Balance,Hesap Bakiyesi,
 Party Balance,Parti Dengesi,
 Accounting Dimensions,Muhasebe Boyutları,
@@ -4861,7 +4786,7 @@
 Debit in Company Currency,Şirket Para Birimi Bankamatik,
 Credit in Company Currency,Şirket Para Kredi,
 Payroll Entry,Bordro Girişi,
-Employee Advance,Personel Avansı,
+Employee Advance,Çalışan Avansı,
 Reference Due Date,Referans Sona Erme Tarihi,
 Loyalty Program Tier,Sadakat Programı Katmanı,
 Redeem Against,Karşı Kullanılan,
@@ -4869,8 +4794,8 @@
 Loyalty Point Entry Redemption,Sadakat Nokta Giriş Redemption,
 Redemption Date,Kefalet Tarihi,
 Redeemed Points,İtfa Edilen Puanlar,
-Loyalty Program Name,Sadakat Programı Adı,
-Loyalty Program Type,Sadakat Programı Türü,
+Loyalty Program Name,Bağlılık Programı Adı,
+Loyalty Program Type,Bağlılık Programı Türü,
 Single Tier Program,Tek Katmanlı Program,
 Multiple Tier Program,Çok Katmanlı Program,
 Customer Territory,Müşteri bölge,
@@ -4882,7 +4807,7 @@
 1 Loyalty Points = How much base currency?,1 Sadakat Puanı = Ne kadar para birimi?,
 Expiry Duration (in days),Sona Erme Süresi (gün içinde),
 Help Section,Yardım Bölümü,
-Loyalty Program Help,Sadakat Programı Yardımı,
+Loyalty Program Help,Bağlılık Programı Yardımı,
 Loyalty Program Collection,Sadakat Programı Koleksiyonu,
 Tier Name,Katman Adı,
 Minimum Total Spent,Minimum Toplam Harcama,
@@ -4890,7 +4815,7 @@
 For how much spent = 1 Loyalty Point,Ne kadar harcadı = 1 Sadakat Noktası,
 Mode of Payment Account,Ödeme Şekli Hesabı,
 Default Account,Varsayılan Hesap,
-Default account will be automatically updated in POS Invoice when this mode is selected.,"Bu mod seçildiğinde, POS Fatura'da varsayılan hesap otomatik olarak güncellenecektir.",
+Default account will be automatically updated in POS Invoice when this mode is selected.,"Bu mod seçildiğinde, POS Fatura&#39;da varsayılan hesap otomatik olarak güncellenecektir.",
 **Monthly Distribution** helps you distribute the Budget/Target across months if you have seasonality in your business.,İşinizde sezonluk değişkenlik varsa **Aylık Dağılım** Bütçe/Hedef'i aylara dağıtmanıza yardımcı olur.,
 Distribution Name,Dağıtım Adı,
 Name of the Monthly Distribution,Aylık Dağıtım Adı,
@@ -4918,7 +4843,7 @@
 Received Amount (Company Currency),Alınan Tutar (Şirket Para Birimi),
 Get Outstanding Invoice,Ödenmemiş Fatura Alın,
 Payment References,Ödeme Referansları,
-Writeoff,Hurdaya çıkar,
+Writeoff,Hurdaya çıkarmak,
 Total Allocated Amount,Toplam Ayrılan Tutar,
 Total Allocated Amount (Company Currency),Toplam Ayrılan Tutar (Şirket Para Birimi),
 Set Exchange Gain / Loss,Değişim Kazanç Set / Zarar,
@@ -4928,7 +4853,7 @@
 Payment Deductions or Loss,Ödeme Kesintiler veya Zararı,
 Cheque/Reference Date,Çek / Referans Tarihi,
 Payment Entry Deduction,Ödeme Giriş Kesintisi,
-Payment Entry Reference,Ödeme Giriş Referans,
+Payment Entry Reference,Ödeme giriş Referans,
 Allocated,Ayrılan,
 Payment Gateway Account,Ödeme Gateway Hesabı,
 Payment Account,Ödeme Hesabı,
@@ -4937,63 +4862,59 @@
 Payment Order Type,Ödeme Emri Türü,
 Payment Order Reference,Ödeme Siparişi Referansı,
 Bank Account Details,Banka hesabı detayları,
-Payment Reconciliation,Ödeme Mutabakatı,
-Receivable / Payable Account,Borç / Alacak Hesabı,
+Payment Reconciliation,Ödeme Mutabakat,
+Receivable / Payable Account,Alacak / Borç Hesap,
 Bank / Cash Account,Banka / Kasa Hesabı,
-From Invoice Date,Baş. Fatura Tarihi,
-To Invoice Date,Bitiş Fatura Tarihi,
-From Payment Date,Baş. Ödeme Tarihi,
-To Payment Date,Bitiş Ödeme Tarihi,
-Minimum Payment Amount,Asgari Ödeme Tutarı,
-Maximum Payment Amount,Maximum Ödeme Tutarı,
+From Invoice Date,Fatura Tarihinden İtibaren,
+To Invoice Date,Tarihi Faturaya,
 Minimum Invoice Amount,Asgari Fatura Tutarı,
 Maximum Invoice Amount,Maksimum Fatura Tutarı,
 System will fetch all the entries if limit value is zero.,"Eğer limit değeri sıfırsa, sistem tüm kayıtları alır.",
-Get Unreconciled Entries,Mutabakatsız Kayıtları Al,
+Get Unreconciled Entries,Mutabık olmayan girdileri alın,
 Unreconciled Payment Details,Mutabakatı Yapılmamış Ödeme Ayrıntıları,
-Invoice/Journal Entry Details,Fatura / Yevmiye Kaydı Detayları,
+Invoice/Journal Entry Details,Fatura / günlük girdisi Detayları,
 Payment Reconciliation Invoice,Ödeme Mutabakat Faturası,
 Invoice Number,Fatura Numarası,
 Payment Reconciliation Payment,Ödeme Mutabakat Ödemesi,
-Reference Row,Referans Satır,
+Reference Row,referans Satır,
 Allocated amount,Ayrılan miktar,
-Payment Request Type,Ödeme Talebi Türü,
-Outward,Dışa doğru,
-Inward,İçe doğru,
+Payment Request Type,Ödeme İsteği Türü,
+Outward,dışa doğru,
+Inward,içe doğru,
 ACC-PRQ-.YYYY.-,ACC-PRQ-.YYYY.-,
 Transaction Details,ödeme detayları,
 Amount in customer's currency,Müşterinin para miktarı,
 Is a Subscription,Bir Abonelik mi,
-Transaction Currency,İşlem Dövizi,
+Transaction Currency,İşlem Döviz,
 Subscription Plans,Abonelik Planları,
-SWIFT Number,SWIFT Numarası,
+SWIFT Number,SWIFT numarası,
 Recipient Message And Payment Details,Alıcı Mesaj Ve Ödeme Ayrıntıları,
 Make Sales Invoice,Satış Faturası Oluştur,
 Mute Email,E-postayı Sessize Al,
 payment_url,payment_url,
-Payment Gateway Details,Ödeme Ağ Geçiti Detayı,
-Payment Schedule,Ödeme Planı,
+Payment Gateway Details,Ödeme Gateway Detayları,
+Payment Schedule,Ödeme PLANI,
 Invoice Portion,Fatura Porsiyonu,
 Payment Amount,Ödeme Tutarı,
 Payment Term Name,Ödeme Süresi Adı,
-Due Date Based On,Vade Tarihine göre,
-Day(s) after invoice date,Fatura tarihinden sonraki gün(ler),
-Day(s) after the end of the invoice month,Fatura ayının bitiminden sonraki gün(ler),
-Month(s) after the end of the invoice month,Fatura ayının bitiminden sonraki ay(lar),
-Credit Days,Kredi Günü,
-Credit Months,Kredi Ayı,
+Due Date Based On,Tarihli Vade Tarihi,
+Day(s) after invoice date,Fatura tarihinden sonraki günler,
+Day(s) after the end of the invoice month,Fatura ayının bitiminden sonraki gün (leri),
+Month(s) after the end of the invoice month,Fatura ayının bitiminden sonraki aylar,
+Credit Days,Kredi Günleri,
+Credit Months,Kredi Ayları,
 Allocate Payment Based On Payment Terms,Ödeme Koşullarına Göre Ödemeyi Tahsis Et,
 "If this checkbox is checked, paid amount will be splitted and allocated as per the amounts in payment schedule against each payment term","Bu onay kutusu işaretlenirse, ödenen tutar bölünecek ve her ödeme dönemine göre ödeme planındaki tutarlara göre tahsis edilecektir.",
 Payment Terms Template Detail,Ödeme Koşulları Şablon Ayrıntısı,
-Closing Fiscal Year,Mali Yıl Kapanışı,
-Closing Account Head,Kapanış Hesap Başlığı,
+Closing Fiscal Year,Mali Yılı Kapanış,
+Closing Account Head,Kapanış Hesap Başkanı,
 "The account head under Liability or Equity, in which Profit/Loss will be booked","Kar / Zarar rezerve edileceği Sorumluluk veya Özkaynak altında hesap kafa,",
 POS Customer Group,POS Müşteri Grubu,
 POS Field,POS Alanı,
 POS Item Group,POS Ürün Grubu,
-Company Address,Şirket Adresi,
-Update Stock,Stok Güncelle,
-Ignore Pricing Rule,Fiyatlandırma Kuralını Yoksay,
+Company Address,şirket adresi,
+Update Stock,Stok güncelle,
+Ignore Pricing Rule,Fiyatlandırma Kuralı Yoksay,
 Applicable for Users,Kullanıcılar için geçerlidir,
 Sales Invoice Payment,Satış Fatura Ödeme,
 Item Groups,Öğe Grupları,
@@ -5021,20 +4942,20 @@
 Quantity and Amount,Miktar ve Miktar,
 Min Qty,Minimum Miktar,
 Max Qty,En fazla miktar,
-Min Amt,Min Tutar,
-Max Amt,Max Tutar,
-Period Settings,Dönem Ayarları,
+Min Amt,Min Amt,
+Max Amt,Max Amt,
+Period Settings,Periyot Ayarları,
 Margin,Kar Marjı,
-Margin Type,Kar Türü,
-Margin Rate or Amount,Kar Oranı veya Tutarı,
+Margin Type,Kar türü,
+Margin Rate or Amount,Kar oranı veya tutarı,
 Price Discount Scheme,Fiyat İndirim Şeması,
 Rate or Discount,Oran veya İndirim,
 Discount Percentage,İndirim Yüzdesi,
 Discount Amount,İndirim Tutarı,
 For Price List,Fiyat Listesi İçin,
 Product Discount Scheme,Ürün İndirim Şeması,
-Same Item,Aynı Ürün,
-Free Item,Bedava Ürün,
+Same Item,Aynı ürün,
+Free Item,Ücretsiz ürün,
 Threshold for Suggestion,Öneri için Eşik,
 System will notify to increase or decrease quantity or amount ,Sistem miktarı veya miktarı artırma veya azaltma bildirimi,
 "Higher the number, higher the priority","Yüksek sayı, yüksek öncelikli",
@@ -5055,23 +4976,23 @@
 Promotional Scheme Price Discount,Promosyon Şeması Fiyat İndirimi,
 Product Discount Slabs,Ürün İndirimli Döşeme,
 Promotional Scheme Product Discount,Promosyon Programı Ürün İndirimi,
-Min Amount,Min Tutar,
+Min Amount,Min Miktarı,
 Max Amount,Maksimum Tutar,
-Discount Type,İndirim Türü,
+Discount Type,İndirim türü,
 ACC-PINV-.YYYY.-,ACC-PINV-.YYYY.-,
 Tax Withholding Category,Vergi Stopajı Kategorisi,
-Edit Posting Date and Time,Gönderim Tarihini ve Saatini Düzenle,
+Edit Posting Date and Time,Düzenleme Gönderme Tarihi ve Saati,
 Is Paid,Ücretli mi,
-Is Return (Debit Note),İade (borç dekontu),
+Is Return (Debit Note),Iade (banka notu),
 Apply Tax Withholding Amount,Vergi Stopaj Tutarını Uygula,
-Accounting Dimensions,Muhasebe Boyutları,
+Accounting Dimensions ,Muhasebe Boyutları,
 Supplier Invoice Details,Tedarikçi Fatura Ayrıntıları,
 Supplier Invoice Date,Tedarikçi Fatura Tarihi,
-Return Against Purchase Invoice,Satınalma Faturasına karşın İade,
+Return Against Purchase Invoice,Karşı Satınalma Fatura Dönüş,
 Select Supplier Address,Seç Tedarikçi Adresi,
 Contact Person,İrtibat Kişi,
 Select Shipping Address,Seç Teslimat Adresi,
-Currency and Price List,Para Birimi ve Fiyat Listesi,
+Currency and Price List,Döviz ve Fiyat Listesi,
 Price List Currency,Fiyat Listesi Para Birimi,
 Price List Exchange Rate,Fiyat Listesi Döviz Kuru,
 Set Accepted Warehouse,Kabul Edilen Depoyu Ayarla,
@@ -5081,105 +5002,100 @@
 Supplier Warehouse,Tedarikçi Deposu,
 Pricing Rules,Fiyatlandırma Kuralları,
 Supplied Items,Verilen Öğeler,
-Total (Company Currency),Toplam (Firma Para birimi),
-Net Total (Company Currency),Net Toplam (Firma para birimi),
-Total Net Weight,Toplam Net Ağırlık,
+Total (Company Currency),Toplam (Şirket Para),
+Net Total (Company Currency),Net Toplam (Şirket para birimi),
+Total Net Weight,Toplam net ağırlık,
 Shipping Rule,Sevkiyat Kuralı,
-Purchase Taxes and Charges Template,Satınalma Vergileri ve Ücretleri Şablonu,
+Purchase Taxes and Charges Template,Vergiler ve Harçlar Şablon Satınalma,
 Purchase Taxes and Charges,Alım Vergi ve Harçları,
-Tax Breakup,Vergi Dağılımı,
-Taxes and Charges Calculation,Vergi ve Ücret Hesaplama,
-Taxes and Charges Added (Company Currency),Eklenen Vergi ve Harçlar (Firma Para Birimi),
-Taxes and Charges Deducted (Company Currency),Mahsup Vergi ve Harçlar (Firma Para Birimi),
-Total Taxes and Charges (Company Currency),Toplam Vergi ve Harçlar (Firma Para Birimi),
+Tax Breakup,Vergi dağılımı,
+Taxes and Charges Calculation,Vergiler ve Ücretleri Hesaplama,
+Taxes and Charges Added (Company Currency),Eklenen Vergi ve Harçlar (Şirket Para Birimi),
+Taxes and Charges Deducted (Company Currency),Mahsup Vergi ve Harçlar (Şirket Para Biriminde),
+Total Taxes and Charges (Company Currency),Toplam Vergi ve Harçlar (Şirket Para Birimi),
 Taxes and Charges Added,Eklenen Vergi ve Harçlar,
 Taxes and Charges Deducted,Mahsup Vergi ve Harçlar,
 Total Taxes and Charges,Toplam Vergi ve Harçlar,
 Additional Discount,Ek İndirim,
-Apply Additional Discount On,Ek İndirim Uygula şuna göre,
-Additional Discount Amount (Company Currency),Ek İndirim Tutarı (Firma Para Birimi),
+Apply Additional Discount On,Ek İndirim On Uygula,
+Additional Discount Amount (Company Currency),Ek İndirim Tutarı (Şirket Para Birimi),
 Additional Discount Percentage,Ek İndirim Yüzdesi,
 Additional Discount Amount,Ek İndirim Tutarı,
-Grand Total (Company Currency),Genel Toplam (Firma para birimi),
-Rounding Adjustment (Company Currency),Yuvarlama Ayarı (Firma Kuru),
-Rounded Total (Company Currency),Yuvarlanmış Toplam (Firma Kuru),
+Grand Total (Company Currency),Genel Toplam (Şirket para birimi),
+Rounding Adjustment (Company Currency),Yuvarlama Ayarı (Şirket Kuru),
+Rounded Total (Company Currency),Yuvarlanmış Toplam (Şirket Kuru),
 In Words (Company Currency),Sözlü (Firma para birimi) olarak,
 Rounding Adjustment,Yuvarlama Ayarı,
-In Words,Yazıyla,
-Total Advance,Toplam Avans,
-Disable Rounded Total,Yuvarlanan Toplamı Devre Dışı Bırak,
+In Words,Kelimelerle,
+Total Advance,Toplam Advance,
+Disable Rounded Total,Yuvarlak toplam devre dışı,
 Cash/Bank Account,Kasa / Banka Hesabı,
-Write Off Amount (Company Currency),Şüpheli Alacak Tutarı (Firma Para Birimi),
+Write Off Amount (Company Currency),Şüpheli Alacak Miktarı (Şirketin Kurunda),
 Set Advances and Allocate (FIFO),Avansları ve Tahsisleri Ayarla (FIFO),
 Get Advances Paid,Avansları Öde,
 Advances,Avanslar,
-Terms,Ödeme Vadesi ve Şartlar,
-Terms & Conditions,Şartlar & Koşullar,
+Terms,Şartlar,
 Terms and Conditions1,Şartlar ve Koşullar 1,
-Group same items,Aynı öğeleri gruplandır,
-Print Language,Baskı Dili,
+Group same items,Grup aynı öğeleri,
+Print Language,baskı Dili,
 "Once set, this invoice will be on hold till the set date","Ayarlandıktan sonra, bu fatura belirlenen tarihe kadar beklemeye alınır.",
-Credit To,Alacak Yeri,
-Party Account Currency,Parti Hesap Dövizi,
+Credit To,Kredi için,
+Party Account Currency,Parti Hesap Döviz,
 Against Expense Account,Karşılık Gider Hesabı,
 Inter Company Invoice Reference,Şirket İçi Fatura Referansı,
 Is Internal Supplier,İç Tedarikçi mi,
 Start date of current invoice's period,Cari fatura döneminin Başlangıç tarihi,
 End date of current invoice's period,Cari fatura döneminin bitiş tarihi,
 Update Auto Repeat Reference,Otomatik Tekrar Referansı Güncelle,
-Purchase Invoice Advance,Satınalma Faturası Peşinatı,
-Purchase Invoice Item,Satınalma Faturası Kalemi,
+Purchase Invoice Advance,Fatura peşin alım,
+Purchase Invoice Item,Satın alma Faturası Ürünleri,
 Quantity and Rate,Miktarı ve Oranı,
 Received Qty,Alınan Miktar,
 Accepted Qty,Kabul edilen Miktar,
-Rejected Qty,Reddedilen Miktar,
+Rejected Qty,reddedilen Adet,
 UOM Conversion Factor,Ölçü Birimi Dönüşüm Katsayısı,
 Discount on Price List Rate (%),Fiyat Listesi Puan İndirim (%),
-Price List Rate (Company Currency),Fiyat Listesi Oranı (Firma para birimi),
-Rate ,Birim Fiyat ,
-Rate (Company Currency),Oranı (Firma para birimi),
-Amount (Company Currency),Tutar (Firma Para Birimi),
-Is Free Item,Bedava Ürün,
-Net Rate,Net Oran,
-Net Rate (Company Currency),Net Oran (Firma Para birimi),
-Net Amount (Company Currency),Net Tutar (Firma Para birimi),
+Price List Rate (Company Currency),Fiyat Listesi Oranı (Şirket para birimi),
+Rate ,Birim Fiyat,
+Rate (Company Currency),Oranı (Şirket para birimi),
+Amount (Company Currency),Tutar (Şirket Para Birimi),
+Is Free Item,Ücretsiz Öğe,
+Net Rate,Net Hızı,
+Net Rate (Company Currency),Net Oranı (Şirket Para),
+Net Amount (Company Currency),Net Tutar (Şirket Para),
 Item Tax Amount Included in Value,Değere Dahil Edilen Öğe Vergisi Tutarı,
 Landed Cost Voucher Amount,Bindirilmiş Maliyet Tutarı,
 Raw Materials Supplied Cost,Tedarik edilen Hammadde  Maliyeti,
-Accepted Warehouse,Kabul edilen Depo,
+Accepted Warehouse,Kabul edilen depo,
 Serial No,Seri No,
-Invoice Limit,Fatura Limiti,
-Payment Limit,Ödeme Limiti,
 Rejected Serial No,Seri No Reddedildi,
 Expense Head,Gider Başlığı,
 Is Fixed Asset,Sabit Varlık,
-This filter will be applied to Journal Entry.,Bu filtre Günlük Girişine uygulanacaktır.,
-Asset Location,Varlık Konumu,
+Asset Location,Öğe Konumu,
 Deferred Expense,Ertelenmiş Gider,
 Deferred Expense Account,Ertelenmiş Gider Hesabı,
 Service Stop Date,Servis Durdurma Tarihi,
-Enable Deferred Expense,Ertelenmiş Gideri Etkinleştir,
+Enable Deferred Expense,Ertelenmiş Gider&#39;i Etkinleştir,
 Service Start Date,Servis Başlangıç Tarihi,
 Service End Date,Servis Bitiş Tarihi,
 Allow Zero Valuation Rate,Sıfır Değerleme Oranına izin ver,
 Item Tax Rate,Ürün Vergi Oranı,
-Tax Detail,Vergi Detayı,
 Tax detail table fetched from item master as a string and stored in this field.\nUsed for Taxes and Charges,Bir dize olarak madde ustadan getirilen ve bu alanda depolanan vergi detay tablo.\n Vergi ve Ücretleri için kullanılır,
 Purchase Order Item,Satınalma Siparişi Ürünleri,
-Purchase Receipt Detail,Satınalma Makbuzu Ayrıntısı,
-Item Weight Details,Ürün Ağırlık Detayı,
+Purchase Receipt Detail,Satın Alma Makbuzu Ayrıntısı,
+Item Weight Details,Öğe Ağırlık Ayrıntılar,
 Weight Per Unit,Birim Ağırlığı,
-Total Weight,Toplam Ağırlık,
+Total Weight,Toplam ağırlık,
 Weight UOM,Ağırlık Ölçü Birimi,
 Page Break,Sayfa Sonu,
 Consider Tax or Charge for,Vergi veya Ücret,
 Valuation and Total,Değerleme ve Toplam,
 Valuation,Değerleme,
-Add or Deduct,Ekle veya Çıkar,
-Deduct,Çıkar,
+Add or Deduct,Ekle ya da Çıkar,
+Deduct,Düşmek,
 On Previous Row Amount,Önceki satır toplamı,
 On Previous Row Total,Önceki satır toplamı,
-On Item Quantity,Ürün Miktarı,
+On Item Quantity,Öğe Miktarı,
 Reference Row #,Referans Satırı #,
 Is this Tax included in Basic Rate?,Vergi Birim Fiyata dahil mi?,
 "If checked, the tax amount will be considered as already included in the Print Rate / Print Amount","İşaretli ise, vergi miktarının hali hazırda Basım Oranında/Basım Miktarında dahil olduğu düşünülecektir",
@@ -5192,54 +5108,49 @@
 ACC-SINV-.YYYY.-,ACC-SINV-.YYYY.-,
 Include Payment (POS),Ödeme Dahil (POS),
 Offline POS Name,Çevrimdışı POS Adı,
-Is Return (Credit Note),İade mi (İade Faturası),
-Is Rate Adjustment Entry (Debit Note),Kur Ayarlama Girişi (Borç Senedi),
-Issue a debit note with 0 qty against an existing Sales Invoice,Mevcut bir Satış Faturasına karşılık 0 adet borç dekontu düzenle,
-Is Cash or Non Trade Discount,Nakit veya Ticari Olmayan İndirim,
-Dispatch Address Name,Sevk Adresi Adı,
-Return Against Sales Invoice,Satış Faturası Karşılığında İade,
+Is Return (Credit Note),Dönüşü (Kredi Notu),
+Return Against Sales Invoice,Karşı Satış Fatura Dönüş,
 Update Billed Amount in Sales Order,Satış Siparişindeki Fatura Tutarını Güncelle,
 Customer PO Details,Müşteri PO Ayrıntıları,
-Customer's Purchase Order,Müşterinin Satınalma Siparişi,
-Customer's Purchase Order Date,Müşterinin Satınalma Sipariş Tarihi,
+Customer's Purchase Order,Müşterinin Sipariş,
+Customer's Purchase Order Date,Müşterinin Sipariş Tarihi,
 Customer Address,Müşteri Adresi,
-Shipping Address Name,Teslimat Adresi Adı,
+Shipping Address Name,Teslimat Adresi İsmi,
 Company Address Name,Şirket Adresi Adı,
 Rate at which Customer Currency is converted to customer's base currency,Müşteri Para Biriminin Müşterinin temel birimine dönüştürülme oranı,
 Rate at which Price list currency is converted to customer's base currency,Fiyat listesi para biriminin müşterinin temel para birimine dönüştürülme oranı,
-Set Source Warehouse,Stok Çıkış Deposu,
+Set Source Warehouse,Ürün Çıkış Deposu,
 Packing List,Paket listesi,
 Packed Items,Paketli Ürünler,
 Product Bundle Help,Ürün Paketi Yardımı,
 Time Sheet List,Mesai Kartı Listesi,
 Time Sheets,Mesai Kartları,
 Total Billing Amount,Toplam Fatura Tutarı,
-Sales Taxes and Charges Template,Satış Vergisi ve Harç Şablonu,
-Sales Taxes and Charges,Satış Vergisi ve Harçlar,
-Loyalty Points Redemption,Sadakat Puanlarının Kullanılması,
-Redeem Loyalty Points,Sadakat Puanlarını Kullan,
+Sales Taxes and Charges Template,Satış Vergi ve Harçlar Şablon,
+Sales Taxes and Charges,Satış Vergi ve Harçlar,
+Loyalty Points Redemption,Sadakat Puanları Redemption,
+Redeem Loyalty Points,Bağlılık Puanlarını Kullan,
 Redemption Account,Kefaret Hesabı,
 Redemption Cost Center,Kefaret Maliyet Merkezi,
 In Words will be visible once you save the Sales Invoice.,Satış faturasını kaydettiğinizde görünür olacaktır.,
 Allocate Advances Automatically (FIFO),Otomatik Olarak Avans Verme (FIFO),
 Get Advances Received,Avansların alınmasını sağla,
 Base Change Amount (Company Currency),Baz Değişim Miktarı (Şirket Para Birimi),
-Write Off Outstanding Amount,Vadesi dolmuş Şüpheli Alacak Tutarı,
-Terms and Conditions Details,Şartlar ve Koşullar Detayı,
-Is Internal Customer,Dahili Müşteri mi,
+Write Off Outstanding Amount,Vadesi Dolmuş Şüpheli Alacak Miktarı,
+Terms and Conditions Details,Şartlar ve Koşullar Detayları,
+Is Internal Customer,İç Müşteri mi,
 Is Discounted,İndirimli,
-Internal Customer,Dahili Müşteri,
 Unpaid and Discounted,Ödenmemiş ve İndirimli,
 Overdue and Discounted,Gecikmiş ve İndirimli,
 Accounting Details,Muhasebe Detayları,
-Debit To,Borç Yeri,
-Is Opening Entry,Açılış Kaydı mı,
+Debit To,Borç,
+Is Opening Entry,Açılış Girdisi,
 C-Form Applicable,Uygulanabilir C-Formu,
 Commission Rate (%),Komisyon Oranı (%),
 Sales Team1,Satış Ekibi1,
 Against Income Account,Karşılık Gelir Hesabı,
 Sales Invoice Advance,Satış Fatura Avansı,
-Advance amount,Avans Tutarı,
+Advance amount,Avans miktarı,
 Sales Invoice Item,Satış Faturası Ürünü,
 Customer's Item Code,Müşterinin Ürün Kodu,
 Brand Name,Marka Adı,
@@ -5260,36 +5171,36 @@
 Base Amount (Company Currency),Esas Tutar (Şirket Para Birimi),
 Sales Invoice Timesheet,Satış Faturası Çizelgesi,
 Time Sheet,Mesai Kartı,
-Billing Hours,Saati Faturalandır,
-Timesheet Detail,Zaman çizelgesi Detayı,
+Billing Hours,Fatura Saatleri,
+Timesheet Detail,Zaman çizelgesi Detay,
 Tax Amount After Discount Amount (Company Currency),İndirim Tutarından sonraki Vergi Tutarı (Şirket Para Biriminde),
 Item Wise Tax Detail,Ürün Vergi Detayları,
 Parenttype,Ana Tip,
 "Standard tax template that can be applied to all Sales Transactions. This template can contain list of tax heads and also other expense / income heads like ""Shipping"", ""Insurance"", ""Handling"" etc.\n\n#### Note\n\nThe tax rate you define here will be the standard tax rate for all **Items**. If there are **Items** that have different rates, they must be added in the **Item Tax** table in the **Item** master.\n\n#### Description of Columns\n\n1. Calculation Type: \n    - This can be on **Net Total** (that is the sum of basic amount).\n    - **On Previous Row Total / Amount** (for cumulative taxes or charges). If you select this option, the tax will be applied as a percentage of the previous row (in the tax table) amount or total.\n    - **Actual** (as mentioned).\n2. Account Head: The Account ledger under which this tax will be booked\n3. Cost Center: If the tax / charge is an income (like shipping) or expense it needs to be booked against a Cost Center.\n4. Description: Description of the tax (that will be printed in invoices / quotes).\n5. Rate: Tax rate.\n6. Amount: Tax amount.\n7. Total: Cumulative total to this point.\n8. Enter Row: If based on ""Previous Row Total"" you can select the row number which will be taken as a base for this calculation (default is the previous row).\n9. Is this Tax included in Basic Rate?: If you check this, it means that this tax will not be shown below the item table, but will be included in the Basic Rate in your main item table. This is useful where you want give a flat price (inclusive of all taxes) price to customers.","Tüm Satış İşlemlerine uygulanabilir standart vergi şablonu. Bu şablon \n\n vergi oranını size Not #### \n\n vb ""Handling"", vergi başkanları ve ""Denizcilik"", ""Sigorta"" gibi diğer gider / gelir başkanları listesini içerebilir ** Tüm ** Öğeler için standart vergi oranı olacaktır burada tanımlayın. Farklı fiyat bilgisi ** ** Ürünleri varsa, bunlar ** Ürün Vergisinde eklenmesi gerekir ** ** ** Ürün ana tablo.\n\n #### Kolonların \n\n 1 Açıklaması. Hesaplama Türü: \n - Bu üzerinde olabilir ** Net (yani temel miktarın toplamı) ** Toplam.\n - ** Önceki Satır Toplam / Tutar ** On (kümülatif vergi ya da harç için). Bu seçeneği seçerseniz, vergi miktarı veya toplam (vergi tablosunda) önceki satırın bir yüzdesi olarak uygulanacaktır.\n - ** ** Gerçek (belirtildiği gibi).\n 2. Hesap Başkanı: Bu vergi \n 3 rezerve edileceği altında Hesap defteri. Maliyet Merkezi: Vergi / şarj (nakliye gibi) bir gelir veya gider ise bir Maliyet Merkezi karşı rezervasyonu gerekmektedir.\n 4. Açıklama: Vergi Açıklaması (Bu faturalar / tırnak içinde basılacaktır).\n 5. Puan: Vergi oranı.\n 6. Tutar: Vergi miktarı.\n 7. Toplam: Bu noktaya Toplu toplam.\n 8. Enter Satır: ""Önceki Satır Toplam"" dayalı Eğer bu hesaplama için bir üs (varsayılan bir önceki satır olduğu) olarak alınacaktır satır numarasını seçebilirsiniz.\n 9. Temel Puan dahil bu vergi ?: size bu işaretlerseniz, bu vergi kalemi aşağıdaki tabloda gösterilen olmayacak, ama ana öğe tabloda Temel Oranı dahil olacağı anlamına gelir. Eğer müşterilere düz (tüm vergiler dahil) fiyat fiyat vermek istediğiniz yararlıdır.",
 * Will be calculated in the transaction.,* İşlemde hesaplanacaktır.,
-From No,Baş. No,
-To No,Bitiş No,
-Is Company,Şirket mi,
-Current State,Mevcut Durum,
-Purchased,Satın alındı,
-From Shareholder,Baş. Hissedar,
-From Folio No,Baş. Folio No,
-To Shareholder,Bitiş Hissedar,
-To Folio No,Bitiş Folio No,
+From No,Hayır&#39;dan,
+To No,Hayır için,
+Is Company,Şirket midir,
+Current State,Mevcut durum,
+Purchased,satın alındı,
+From Shareholder,Hissedarlardan,
+From Folio No,Folio No&#39;dan,
+To Shareholder,Hissedarya,
+To Folio No,Folio No&#39;ya,
 Equity/Liability Account,Özkaynak / Sorumluluk Hesabı,
 Asset Account,Öğe Hesabı,
 (including),(dahildir),
 ACC-SH-.YYYY.-,ACC-SH-.YYYY.-,
 Folio no.,Folyo numarası.,
 Address and Contacts,Adres ve Kişiler,
-Contact List,Kişi Listesi,
+Contact List,Kişi listesi,
 Hidden list maintaining the list of contacts linked to Shareholder,Hissedar ile bağlantılı kişilerin listesini koruyan gizli liste,
 Specify conditions to calculate shipping amount,Nakliye miktarını hesaplamak için koşulları belirtin,
 Shipping Rule Label,Kargo Kural Etiketi,
 example: Next Day Shipping,Örnek: Bir sonraki gün sevkiyat,
 Shipping Rule Type,Nakliye Kuralı Türü,
 Shipping Account,Nakliye Hesap,
-Calculate Based On,Şuna Göre Hesapla,
+Calculate Based On,Tabanlı hesaplayın,
 Fixed,Sabit,
 Net Weight,Net Ağırlık,
 Shipping Amount,Kargo Tutarı,
@@ -5298,8 +5209,8 @@
 Valid for Countries,Ülkeler için geçerli,
 Shipping Rule Condition,Kargo Kural Şartları,
 A condition for a Shipping Rule,Nakliye Kuralı için koşul,
-From Value,Baş. Değeri,
-To Value,Bitiş Değeri,
+From Value,Değerden,
+To Value,Değer Vermek,
 Shipping Rule Country,Nakliye Kural Ülke,
 Subscription Period,Abonelik Süresi,
 Subscription Start Date,Abonelik Başlangıç Tarihi,
@@ -5310,8 +5221,8 @@
 Current Invoice End Date,Mevcut Fatura Bitiş Tarihi,
 Days Until Due,Sona Ertelenen Günler,
 Number of days that the subscriber has to pay invoices generated by this subscription,Abonenin bu abonelik tarafından oluşturulan faturaları ödemek zorunda olduğu gün sayısı,
-Cancel At End Of Period,Dönem Sonunda İptal et,
-Generate Invoice At Beginning Of Period,Dönem Başında Fatura Oluştur,
+Cancel At End Of Period,Dönem Sonunda İptal,
+Generate Invoice At Beginning Of Period,Dönem Başında Fatura Yaratın,
 Plans,Planlar,
 Discounts,İndirimler,
 Additional DIscount Percentage,Ek iskonto yüzdesi,
@@ -5321,27 +5232,27 @@
 Cost,Maliyet,
 Billing Interval,Faturalama Aralığı,
 Billing Interval Count,Faturalama Aralığı Sayısı,
-"Number of intervals for the interval field e.g if Interval is 'Days' and Billing Interval Count is 3, invoices will be generated every 3 days","Aralık alanı için aralıkların sayısı, örneğin 'Günler' ve Faturalama Aralığı 3 ise, faturalar her 3 günde bir oluşturulur.",
+"Number of intervals for the interval field e.g if Interval is 'Days' and Billing Interval Count is 3, invoices will be generated every 3 days","Aralık alanı için aralıkların sayısı, örneğin &#39;Günler&#39; ve Faturalama Aralığı 3 ise, faturalar her 3 günde bir oluşturulur.",
 Payment Plan,Ödeme planı,
 Subscription Plan Detail,Abonelik Planı Ayrıntısı,
 Plan,Plan,
-Subscription Settings,Abonelik Ayarları,
+Subscription Settings,Abonelik ayarları,
 Grace Period,Grace dönemi,
 Number of days after invoice date has elapsed before canceling subscription or marking subscription as unpaid,Aboneliği iptal etmeden veya aboneliği ücretsiz olarak işaretlemeden önce fatura tarihinden sonraki gün sayısı geçmiştir.,
-Prorate,Eşit olarak dağıt,
+Prorate,eşit olarak dağıtmak,
 Tax Rule,Vergi Kuralı,
 Tax Type,Vergi Türü,
 Use for Shopping Cart,Alışveriş Sepeti kullanın,
 Billing City,Fatura Şehri,
 Billing County,Fatura İlçesi,
-Billing State,Fatura Eyaleti,
-Billing Zipcode,Fatura Posta kodu,
+Billing State,Fatura Kamu,
+Billing Zipcode,Fatura posta kodu,
 Billing Country,Fatura Ülkesi,
-Shipping City,Teslimat Şehri,
-Shipping County,Teslimat İlçesi,
-Shipping State,Teslimat Eyaleti,
-Shipping Zipcode,Teslimat Posta kodu,
-Shipping Country,Teslimat Ülke,
+Shipping City,Nakliye Şehri,
+Shipping County,Kargo İlçe,
+Shipping State,Nakliye Devlet,
+Shipping Zipcode,Posta kodu,
+Shipping Country,Nakliye Ülke,
 Tax Withholding Account,Vergi Stopaj Hesabı,
 Tax Withholding Rates,Vergi Stopaj Oranları,
 Rates,Oranlar,
@@ -5356,8 +5267,8 @@
 Fertilizer,Gübre,
 Soil Texture,Toprak dokusu,
 Weather,Hava,
-Agriculture Manager,Tarım Yöneticisi,
-Agriculture User,Tarım Kullanıcısı,
+Agriculture Manager,Tarım Müdürü,
+Agriculture User,Tarım Kullanıcı,
 Agriculture Task,Tarım Görevi,
 Task Name,Görev Adı,
 Start Day,Başlangıç Günü,
@@ -5367,24 +5278,23 @@
 Previous Business Day,Önceki İş Günü,
 Next Business Day,Bir sonraki iş günü,
 Urgent,Acil,
-Crop,Bitki,
+Crop,ekin,
 Crop Name,Bitki Adı,
 Scientific Name,Bilimsel ad,
-"You can define all the tasks which need to carried out for this crop here. The day field is used to mention the day on which the task needs to be carried out, 1 being the 1st day, etc.. ","Burada bu bitki için yapılması gereken tüm görevleri tanımlayabilirsiniz. Gün alanı, görevin yerine getirilmesi gereken günü, 1'i 1. gün olmak üzere belirtmek için kullanılır.",
+"You can define all the tasks which need to carried out for this crop here. The day field is used to mention the day on which the task needs to be carried out, 1 being the 1st day, etc.. ","Burada bu bitki için yapılması gereken tüm görevleri tanımlayabilirsiniz. Gün alanı, görevin yerine getirilmesi gereken günü, 1&#39;i 1. gün olmak üzere belirtmek için kullanılır.",
 Crop Spacing,Kırpma Aralığı,
 Crop Spacing UOM,Kırpma Aralığı UOM,
 Row Spacing,Satır Aralığı,
 Row Spacing UOM,Satır Aralığı UOM,
-Perennial,Uzun ömürlü,
+Perennial,uzun ömürlü,
 Biennial,iki yıllık,
-Planting UOM,Dikim Birimi,
+Planting UOM,Dikim UOM,
 Planting Area,Dikim Alanı,
-Yield UOM,Verim Birimi,
+Yield UOM,Verim UOM,
 Materials Required,Gerekli malzemeler,
-Materials & Operations,Malzemeler ve Operasyonlar,
 Produced Items,Üretilen Ürünler,
-Produce,Üret,
-Byproducts,Yan Ürünler,
+Produce,Üretmek,
+Byproducts,Yan ürünler,
 Linked Location,Bağlantılı Konum,
 A link to all the Locations in which the Crop is growing,Mahsulün büyüdüğü tüm Yerlerin bağlantısı,
 This will be day 1 of the crop cycle,"Bu, mahsul döngüsü 1. gündür",
@@ -5397,7 +5307,7 @@
 List of diseases detected on the field. When selected it'll automatically add a list of tasks to deal with the disease ,"Sahada tespit edilen hastalıkların listesi. Seçildiğinde, hastalıkla başa çıkmak için görevlerin bir listesi otomatik olarak eklenir.",
 Detected Disease,Algılanan Hastalık,
 LInked Analysis,Soluk Analiz,
-Disease,Hastalık,
+Disease,hastalık,
 Tasks Created,Oluşturulan Görevler,
 Common Name,Yaygın isim,
 Treatment Task,Tedavi Görevi,
@@ -5425,13 +5335,13 @@
 Soil Analysis Criteria,Toprak Analiz Kriterleri,
 Soil Type,Toprak tipi,
 Loamy Sand,Loanty Sand,
-Sandy Loam,Verimli Toprak,
-Loam,Balçık,
+Sandy Loam,Kumlu kumlu,
+Loam,verimli toprak,
 Silt Loam,Silt kumu,
 Sandy Clay Loam,Kumlu killi balçık,
-Clay Loam,Killi Toprak,
-Silty Clay Loam,Silty Killi balçık,
-Sandy Clay,Kumlu Kil,
+Clay Loam,Killi toprak,
+Silty Clay Loam,Silty Clay Loam,
+Sandy Clay,Kumlu kil,
 Silty Clay,Silty Clay,
 Clay Composition (%),Kil Kompozisyonu (%),
 Sand Composition (%),Kum Bileşimi (%),
@@ -5439,7 +5349,7 @@
 Ternary Plot,Üç parsel,
 Soil Texture Criteria,Toprak Doku Kriterleri,
 Type of Sample,Numune Türü,
-Container,Konteyner,
+Container,konteyner,
 Origin,Menşei,
 Collection Temperature ,Toplama Sıcaklığı,
 Storage Temperature,Depolama sıcaklığı,
@@ -5450,7 +5360,7 @@
 ACC-ASS-.YYYY.-,ACC-ASS-.YYYY.-,
 Asset Owner,Varlık Sahibi,
 Asset Owner Company,Varlık Sahibi Firma,
-Custodian,Bekçi,
+Custodian,bekçi,
 Disposal Date,Bertaraf tarihi,
 Journal Entry for Scrap,Hurda için kayıt girişi,
 Available-for-use Date,Kullanılabileceği Tarih,
@@ -5469,7 +5379,7 @@
 Depreciation Schedules,Amortisman Çizelgeleri,
 Insurance details,Sigorta ayrıntıları,
 Policy number,Poliçe numarası,
-Insurer,Sigortacı,
+Insurer,sigortacı,
 Insured value,Sigortalanmış değeri,
 Insurance Start Date,Sigorta Başlangıç Tarihi,
 Insurance End Date,Sigorta Bitiş Tarihi,
@@ -5479,7 +5389,7 @@
 Booked Fixed Asset,Rezerve Edilmiş Duran Varlık,
 Purchase Receipt Amount,Satınalma Tutarı Tutarı,
 Default Finance Book,Varsayılan Finans Kitabı,
-Quality Manager,Kalite Yöneticisi,
+Quality Manager,Kalite Müdürü,
 Asset Category Name,Varlık Kategorisi,
 Depreciation Options,Amortisman Seçenekleri,
 Enable Capital Work in Progress Accounting,Devam Eden Muhasebede Sermaye Çalışmasını Etkinleştir,
@@ -5494,22 +5404,22 @@
 Expected Value After Useful Life,Kullanım süresi sonunda beklenen değer,
 Rate of Depreciation,Amortisman Oranı,
 In Percentage,Yüzde olarak,
-Maintenance Team,Bakım Ekibi,
+Maintenance Team,Bakım ekibi,
 Maintenance Manager Name,Bakım Yöneticisi Adı,
 Maintenance Tasks,Bakım Görevleri,
-Manufacturing User,Üretim Kullanıcısı,
+Manufacturing User,Üretim Kullanıcı,
 Asset Maintenance Log,Varlık Bakım Günlüğü,
 ACC-AML-.YYYY.-,ACC-AML-.YYYY.-,
 Maintenance Type,Bakım Türü,
 Maintenance Status,Bakım Durumu,
-Planned,Planlı,
-Has Certificate,Sertifikalı,
+Planned,planlı,
+Has Certificate ,Sertifikalı,
 Certificate,Sertifika,
 Actions performed,Yapılan eylemler,
 Asset Maintenance Task,Varlık Bakımı Görevi,
 Maintenance Task,Bakım Görevi,
 Preventive Maintenance,Koruyucu Bakım,
-Calibration,Kalibrasyon,
+Calibration,ayarlama,
 2 Yearly,2 Yıllık,
 Certificate Required,Sertifika Gerekli,
 Assign to Name,İsme Ata,
@@ -5519,12 +5429,12 @@
 Maintenance Team Name,Bakım Takım Adı,
 Maintenance Team Members,Bakım Ekibi Üyeleri,
 Purpose,Amaç,
-Stock Manager,Stok Yöneticisi,
+Stock Manager,Stok Müdürü,
 Asset Movement Item,Varlık Hareketi Öğesi,
 Source Location,Kaynak Konum,
-From Employee,Baş. Personel,
+From Employee,Çalışanlardan,
 Target Location,Hedef konum,
-To Employee,Bitiş Personel,
+To Employee,Çalışanlara,
 Asset Repair,Varlık Tamiri,
 ACC-ASR-.YYYY.-,ACC-ASR-.YYYY.-,
 Failure Date,Başarısızlık Tarihi,
@@ -5533,7 +5443,7 @@
 Error Description,Hata tanımlaması,
 Downtime,Kesinti,
 Repair Cost,Tamir Ücreti,
-Manufacturing Manager,Üretim Yöneticisi,
+Manufacturing Manager,Üretim Müdürü,
 Current Asset Value,Mevcut Varlık Değeri,
 New Asset Value,Yeni Varlık Değeri,
 Make Depreciation Entry,Amortisman kaydı yap,
@@ -5549,21 +5459,17 @@
 Area UOM,Alan UOM,
 Tree Details,ağaç Detayları,
 Maintenance Team Member,Bakım Ekibi Üyesi,
-Team Member,Takım Üyesi,
+Team Member,Takım üyesi,
 Maintenance Role,Bakım Rolü,
-Let's Set Up the Buying Module.,Haydi Satınalma Modülünü Kuralım.,
-"Products, Purchases, Analysis, and more.","Ürünler, Satın Almalar, Analizler ve daha fazlası.",
 Buying Settings,Satınalma Ayarları,
-Track Material Request,Malzeme Talebini Takip Et,
-Create first Purchase Order,İlk Satınalma Siparişini oluşturun,
-Settings for Buying Module,Satınalma Modülü için Ayarlar,
+Settings for Buying Module,Modülü satın almak için Ayarlar,
 Supplier Naming By,Tedarikçi İsimlendirme,
 Default Supplier Group,Varsayılan Tedarikçi Grubu,
 Default Buying Price List,Standart Alış Fiyat Listesi,
 Backflush Raw Materials of Subcontract Based On,Alt Yüklenmeye Dayalı Backflush Hammaddeleri,
 Material Transferred for Subcontract,Taşeron için Malzeme Transferi,
 Over Transfer Allowance (%),Aşırı Transfer Ödeneği (%),
-Percentage you are allowed to transfer more against the quantity ordered. For example: If you have ordered 100 units. and your Allowance is 10% then you are allowed to transfer 110 units.,"Yüzde, sipariş edilen miktara karşı daha fazla transfer yapmanıza izin verilir. Örneğin: 100 birim sipariş ettiyseniz. Harcırahınız% 10'dur ve 110 birim aktarmanıza izin verilir.",
+Percentage you are allowed to transfer more against the quantity ordered. For example: If you have ordered 100 units. and your Allowance is 10% then you are allowed to transfer 110 units.,"Yüzde, sipariş edilen miktara karşı daha fazla transfer yapmanıza izin verilir. Örneğin: 100 birim sipariş ettiyseniz. Harcırahınız% 10&#39;dur ve 110 birim aktarmanıza izin verilir.",
 PUR-ORD-.YYYY.-,PUR-ORD-.YYYY.-,
 Get Items from Open Material Requests,Açık Malzeme Talepleri Öğeleri alın,
 Fetch items based on Default Supplier.,Varsayılan Tedarikçiye göre öğeleri getir.,
@@ -5573,35 +5479,33 @@
 Customer Mobile No,Müşteri Mobil Hayır,
 Customer Contact Email,Müşteri İletişim E-mail,
 Set Target Warehouse,Hedef Deposunu Ayarla,
-Sets 'Warehouse' in each row of the Items table.,Kalemler tablosunun her satırında 'Depo' ayarlar.,
+Sets 'Warehouse' in each row of the Items table.,Kalemler tablosunun her satırında &#39;Depo&#39; ayarlar.,
 Supply Raw Materials,Tedarik Hammaddeler,
 Purchase Order Pricing Rule,Satınalma Siparişi Fiyatlandırma Kuralı,
 Set Reserve Warehouse,Rezerv Deposunu Ayarla,
 In Words will be visible once you save the Purchase Order.,Sözlü Alım belgesini kaydettiğinizde görünür olacaktır.,
-Advance Paid,Ödenen Peşinat,
+Advance Paid,Peşin Ödenen,
 Tracking,Takip,
 % Billed,% Faturalanan,
 % Received,% Alındı,
 Ref SQ,Ref SQ,
 Inter Company Order Reference,Şirketler Arası Sipariş Referansı,
 Supplier Part Number,Tedarikçi Parti Numarası,
-Billed Amt,Fatura Tutarı,
+Billed Amt,Faturalı Tutarı,
 Warehouse and Reference,Depo ve Referans,
 To be delivered to customer,Müşteriye teslim edilmek üzere,
 Material Request Item,Malzeme Talebi Kalemi,
 Supplier Quotation Item,Tedarikçi Teklif ürünü,
-Against Blanket Order,Açık Siparişe Karşı,
-Inter Transfer Reference,Transferler Arası Referans,
-Picked Qty (in Stock UOM),Alınan Miktar (Stok Birimi),
-Blanket Order,Açık Sipariş,
-Blanket Order Rate,Açık Sipariş Hızı,
-Returned Qty,İade Miktarı,
+Against Blanket Order,Battaniye Siparişine Karşı,
+Blanket Order,Battaniye siparişi,
+Blanket Order Rate,Battaniye Sipariş Hızı,
+Returned Qty,İade edilen Adet,
 Purchase Order Item Supplied,Tedarik edilen Satınalma Siparişi Ürünü,
 BOM Detail No,BOM Detay yok,
 Stock Uom,Stok Ölçü Birimi,
 Raw Material Item Code,Hammadde Malzeme Kodu,
-Supplied Qty,Verilen Miktar,
-Purchase Receipt Item Supplied,Tedarik edilen Satınalma Fişi Ürünü,
+Supplied Qty,Verilen Adet,
+Purchase Receipt Item Supplied,Tedarik edilen satın alma makbuzu ürünü,
 Current Stock,Güncel Stok,
 PUR-RFQ-.YYYY.-,PUR-TT-.YYYY.-,
 For individual supplier,Bireysel tedarikçi,
@@ -5618,16 +5522,16 @@
 SUP-.YYYY.-,SUP-.YYYY.-,
 Default Bank Account,Varsayılan Banka Hesabı,
 Is Transporter,Taşıyıcı,
-Represents Company,Şirketi Temsil eder,
+Represents Company,Şirketi temsil eder,
 Supplier Type,Tedarikçi Türü,
-Allow Purchase Invoice Creation Without Purchase Order,Satınalma Siparişi olmadan Satınalma Faturası oluşturmaya izin ver,
-Allow Purchase Invoice Creation Without Purchase Receipt,Satınalma Fişi olmadan Satınalma Faturası oluşturmaya izin ver,
-Warn RFQs,RFQları uyar,
-Warn POs,POları Uyar,
-Prevent RFQs,RFQları önle,
-Prevent POs,POları önle,
+Allow Purchase Invoice Creation Without Purchase Order,Satın Alma Siparişi Olmadan Satın Alma Faturası Oluşturmaya İzin Ver,
+Allow Purchase Invoice Creation Without Purchase Receipt,Satın Alma Makbuzu Olmadan Satın Alma Faturası Oluşturmaya İzin Ver,
+Warn RFQs,RFQ&#39;ları uyar,
+Warn POs,Dikkatli Uyarılar Uyar,
+Prevent RFQs,RFQ&#39;ları önle,
+Prevent POs,PO&#39;ları önle,
 Billing Currency,Fatura Para Birimi,
-Default Payment Terms Template,Varsayılan Ödeme Vadesi Şablonu,
+Default Payment Terms Template,Varsayılan Ödeme Koşulları Şablonu,
 Block Supplier,Tedarikçi,
 Hold Type,Tutma Tipi,
 Leave blank if the Supplier is blocked indefinitely,Tedarikçi süresiz olarak engellendiyse boş bırak,
@@ -5642,7 +5546,7 @@
 Rounding Adjustment (Company Currency,Yuvarlama Ayarı (Şirket Kuru,
 Auto Repeat Section,Otomatik Tekrar Bölümü,
 Is Subcontracted,Taşerona verilmiş,
-Lead Time in days,Teslim Süresi (gün),
+Lead Time in days,Teslim Zamanı gün olarak,
 Supplier Score,Tedarikçi Puanı,
 Indicator Color,Gösterge Rengi,
 Evaluation Period,Değerlendirme Süresi,
@@ -5658,7 +5562,7 @@
 Scoring Criteria,Puanlama Kriterleri,
 Scorecard Actions,Kart Kartı İşlemleri,
 Warn for new Request for Quotations,Teklifler için yeni İstek uyarısı yapın,
-Warn for new Purchase Orders,Yeni Satınalma Siparişi için Uyarı,
+Warn for new Purchase Orders,Yeni Satın Alma Siparişi için Uyarı,
 Notify Supplier,Tedarikçiye bildir,
 Notify Employee,Çalışana bildir,
 Supplier Scorecard Criteria,Tedarikçi Puan Kartı Kriterleri,
@@ -5678,13 +5582,13 @@
 Supplier Scorecard Scoring Standing,Tedarikçi Puan Kartı Puanlama,
 Standing Name,Daimi Adı,
 Purple,Mor,
-Yellow,Sarı,
+Yellow,sarı,
 Orange,Portakal,
-Min Grade,Min Sınıf,
+Min Grade,Min Grade,
 Max Grade,Maksimum Sınıf,
 Warn Purchase Orders,Satınalma Siparişlerini Uyarın,
 Prevent Purchase Orders,Satınalma Siparişlerini Önleme,
-Employee,Personel,
+Employee ,Çalışan,
 Supplier Scorecard Scoring Variable,Tedarikçi Puan Kartı Değişken Skorlama,
 Variable Name,Değişken Adı,
 Parameter Name,Parametre Adı,
@@ -5695,9 +5599,9 @@
 Received By,Tarafından alındı,
 Caller Information,Arayan bilgisi,
 Contact Name,İrtibat İsmi,
-Lead ,Öncülük et,
-Lead Name,Müşteri Adayı Adı,
-Ringing,Çalıyor,
+Lead ,Öncülük etmek,
+Lead Name,Potansiyel Müşteri Adı,
+Ringing,çınlama,
 Missed,Kaçırılan,
 Call Duration in seconds,Saniye cinsinden Çağrı Süresi,
 Recording URL,URL kaydetme,
@@ -5708,16 +5612,15 @@
 "If there is no assigned timeslot, then communication will be handled by this group","Atanan zaman dilimi yoksa, iletişim bu grup tarafından gerçekleştirilecektir.",
 Timeslots,Zaman dilimleri,
 Communication Medium Timeslot,İletişim Orta Zaman Çizelgesi,
-Employee Group,Personel Grubu,
+Employee Group,Çalışan Grubu,
 Appointment,Randevu,
-Scheduled Time,Planlanmış Zaman,
-Unverified,Doğrulanmamış,
+Scheduled Time,Planlanmış zaman,
+Unverified,doğrulanmamış,
 Customer Details,Müşteri Detayları,
 Phone Number,Telefon numarası,
-Phone Ext.,Dahili Telefon,
 Skype ID,Skype kullanıcı adı,
 Linked Documents,Bağlantılı Belgeler,
-Appointment With,ile Randevu,
+Appointment With,İle randevu,
 Calendar Event,Takvim Etkinliği,
 Appointment Booking Settings,Randevu Rezervasyon Ayarları,
 Enable Appointment Scheduling,Randevu Zamanlamayı Etkinleştir,
@@ -5731,8 +5634,8 @@
 Notify customer and agent via email on the day of the appointment.,Randevu günü e-posta yoluyla müşteriyi ve acenteyi bilgilendirin.,
 Number of days appointments can be booked in advance,Randevuların önceden alınabileceği gün sayısı,
 Success Settings,Başarı Ayarları,
-Success Redirect URL,Başarı Yönlendirme URL'si,
-"Leave blank for home.\nThis is relative to site URL, for example ""about"" will redirect to ""https://yoursitename.com/about""","Ev için boş bırakın. Bu site URL'sine göredir, örneğin 'yaklaşık', 'https://alanadiniz.com.tr/about' adresine yönlendirir",
+Success Redirect URL,Başarı Yönlendirme URL&#39;si,
+"Leave blank for home.\nThis is relative to site URL, for example ""about"" will redirect to ""https://yoursitename.com/about""","Ev için boş bırakın. Bu site URL&#39;sine göredir, örneğin &quot;yaklaşık&quot;, &quot;https://alanadiniz.com.tr/about&quot; adresine yönlendirir",
 Appointment Booking Slots,Randevu Rezervasyon Slotları,
 Day Of Week,Haftanın günü,
 From Time ,Zamandan,
@@ -5743,14 +5646,14 @@
 Unsigned,imzasız,
 Fulfilment Status,Yerine Getirilme Durumu,
 N/A,N / A,
-Unfulfilled,Yerine getirilmemiş,
+Unfulfilled,yerine getirilmemiş,
 Partially Fulfilled,Kısmen Yerine Getirildi,
 Fulfilled,Karşılanan,
-Lapsed,Geçti,
-Contract Period,Sözleşme Dönemi,
-Signee Details,İmza Detayları,
-Signee,İmza atan,
-Signed On,İmzalanma tarihi,
+Lapsed,Sona,
+Contract Period,Sözleşme süresi,
+Signee Details,Signee Detayları,
+Signee,altına imza atanları,
+Signed On,İmzalandı,
 Contract Details,Sözleşme Detayları,
 Contract Template,Sözleşme Şablonu,
 Contract Terms,Anlaşma koşulları,
@@ -5759,19 +5662,19 @@
 Fulfilment Deadline,Son teslim tarihi,
 Fulfilment Terms,Yerine Getirme Koşulları,
 Contract Fulfilment Checklist,Sözleşme Yerine Getirilmesi Kontrol Listesi,
-Requirement,Gereklilik,
+Requirement,gereklilik,
 Contract Terms and Conditions,Sözleşme Hüküm ve Koşulları,
 Fulfilment Terms and Conditions,Yerine Getirme Koşulları ve Koşulları,
 Contract Template Fulfilment Terms,Sözleşme Şablonu Yerine Getirilmesi Şartları,
 Email Campaign,E-posta Kampanyası,
 Email Campaign For ,E-posta Kampanyası,
-Lead is an Organization,Aday bir Firmadı,
-CRM-LEAD-.YYYY.-,CRM-ADAY-.YYYY.-,
+Lead is an Organization,Kurşun bir Teşkilattır,
+CRM-LEAD-.YYYY.-,CRM-KURŞUN-.YYYY.-,
 Person Name,Kişi Adı,
-Lost Quotation,Teklif Kaybedildi,
+Lost Quotation,Kayıp Teklif,
 Interested,İlgili,
 Converted,Dönüştürülmüş,
-Do Not Contact,İletişime Geçme,
+Do Not Contact,İrtibata Geçmeyin,
 From Customer,Müşteriden,
 Campaign Name,Kampanya Adı,
 Follow Up,Takip et,
@@ -5780,57 +5683,46 @@
 Ends On,Bitiş Tarihi,
 Address & Contact,Adres ve İrtibat,
 Mobile No.,Cep No,
-Lead Type,Aday Türü,
+Lead Type,Potansiyel Müşteri Tipi,
 Channel Partner,Kanal Ortağı,
 Consultant,Danışman,
 Market Segment,Pazar Segmenti,
-Industry,Endüstri,
-Request Type,Talep Türü,
+Industry,Sanayi,
+Request Type,İstek Türü,
 Product Enquiry,Ürün Sorgulama,
 Request for Information,Bilgi İsteği,
 Suggestions,Öneriler,
-Blog Subscriber,Blog Abonesi,
+Blog Subscriber,Blog Abone,
 LinkedIn Settings,LinkedIn Ayarları,
 Company ID,Şirket Kimliği,
 OAuth Credentials,OAuth Kimlik Bilgileri,
-Consumer Key,Consumer Key,
-Consumer Secret,Consumer Secret,
-User Details,Kullanıcı Detayları,
-Roles & Permissions,Roller & İzinler,
-Connections,Bağlantılar,
-Basic Info,Temel Bilgiler,
+Consumer Key,Tüketici anahtarı,
+Consumer Secret,tüketici mahremiyeti,
+User Details,Kullanıcı detayları,
 Person URN,Kişi URN,
 Session Status,Oturum Durumu,
 Lost Reason Detail,Sebep Ayrıntısı,
 Opportunity Lost Reason,Fırsat Kayıp Sebep,
 Potential Sales Deal,Potansiyel Satış Fırsat,
 CRM-OPP-.YYYY.-,CRM-OPP-.YYYY.-,
-Opportunity From,Fırsat Nerden,
-Opportunity Owner,Fırsat Sahibi,
-Opportunity Value,Fırsat Değeri,
-Customer / Lead Name,Müşteri / Aday Adı,
+Opportunity From,Fırsattan itibaren,
+Customer / Lead Name,Müşteri/ İlk isim,
 Opportunity Type,Fırsat Türü,
-Converted By,Dönüştüren,
-Sales Stage,Satış Aşaması,
+Converted By,Tarafından Dönüştürüldü,
+Sales Stage,Satış aşaması,
 Lost Reason,Kayıp Nedeni,
 Expected Closing Date,Beklenen Kapanış Tarihi,
 To Discuss,Görüşülecek,
 With Items,Öğeler ile,
-Closing,Kapanış,
-Overview,Genel Bakış,
-Probability,Olasılık,
 Probability (%),Olasılık (%),
 Contact Info,İletişim Bilgileri,
 Customer / Lead Address,Müşteri Adresi,
 Contact Mobile No,İrtibat Mobil No,
-Contact Mobile,İrtibat Cep,
 Enter name of campaign if source of enquiry is campaign,Sorgu kaynağı kampanya ise kampanya adı girin,
-Opportunity Date,Fırsat Tarihi,
+Opportunity Date,Fırsat tarihi,
 Opportunity Item,Fırsat Ürünü,
 Basic Rate,Temel Oran,
-Stage Name,Aşama Adı,
-Stage,Aşama,
-Deal Owner,Anlaşma Sahibi,
+Stage Name,Sahne adı,
 Social Media Post,Sosyal Medya Gönderisi,
 Post Status,Gönderi Durumu,
 Posted,Gönderildi,
@@ -5839,9 +5731,8 @@
 LinkedIn,LinkedIn,
 Twitter Post Id,Twitter Gönderi Kimliği,
 LinkedIn Post Id,LinkedIn Gönderi Kimliği,
-Tweet,Tweet,
+Tweet,Cıvıldamak,
 Twitter Settings,Twitter Ayarları,
-CRM Settings,CRM Ayarları,
 API Secret Key,API Gizli Anahtarı,
 Term Name,Dönem Adı,
 Term Start Date,Dönem Başlangıç Tarihi,
@@ -5859,7 +5750,7 @@
 Examiner Name,sınav Adı,
 Supervisor,supervisor,
 Supervisor Name,Süpervizör Adı,
-Evaluate,Değerlendir,
+Evaluate,Değerlendirmek,
 Maximum Assessment Score,Maksimum Değerlendirme Puanı,
 Assessment Plan Criteria,Değerlendirme Planı Kriterleri,
 Maximum Score,Maksimum Skor,
@@ -5877,7 +5768,7 @@
 Topics,Başlıklar,
 Hero Image,Kahraman Resmi,
 Default Grading Scale,Varsayılan Derecelendirme Ölçeği,
-Education Manager,Eğitim Yöneticisi,
+Education Manager,Eğitim Müdürü,
 Course Activity,Kurs Etkinliği,
 Course Enrollment,Kurs Kayıt,
 Activity Date,Faaliyet Tarihi,
@@ -5901,11 +5792,11 @@
 Current Academic Term,Mevcut Akademik Dönem,
 Attendance Freeze Date,Seyirci Dondurma Tarihi,
 Validate Batch for Students in Student Group,Öğrenci Topluluğundaki Öğrenciler İçin Toplu İşi Doğrula,
-"For Batch based Student Group, the Student Batch will be validated for every Student from the Program Enrollment.","Toplu İş Tabanlı Öğrenci Grubu için, Öğrenci Toplu işlemi, Program Kayıt'tan her Öğrenci için geçerliliğini alacaktır.",
+"For Batch based Student Group, the Student Batch will be validated for every Student from the Program Enrollment.","Toplu İş Tabanlı Öğrenci Grubu için, Öğrenci Toplu işlemi, Program Kayıt&#39;tan her Öğrenci için geçerliliğini alacaktır.",
 Validate Enrolled Course for Students in Student Group,Kayıtlı Dersi Öğrenci Grubu Öğrencileri için Doğrula,
 "For Course based Student Group, the Course will be validated for every Student from the enrolled Courses in Program Enrollment.","Kurs Tabanlı Öğrenci Grubu için, Kurs, Kayıt Edilen Program Kayıt Kurslarından her öğrenci için geçerli olacak.",
 Make Academic Term Mandatory,Akademik Şartı Zorunlu Yap,
-"If enabled, field Academic Term will be Mandatory in Program Enrollment Tool.","Etkinleştirilmişse, Program Kayıt Aracı'nda alan Akademik Şartı Zorunlu olacaktır.",
+"If enabled, field Academic Term will be Mandatory in Program Enrollment Tool.","Etkinleştirilmişse, Program Kayıt Aracı&#39;nda alan Akademik Şartı Zorunlu olacaktır.",
 Skip User creation for new Student,Yeni Öğrenci için Kullanıcı oluşturmayı atla,
 "By default, a new User is created for every new Student. If enabled, no new User will be created when a new Student is created.","Varsayılan olarak, her yeni Öğrenci için yeni bir Kullanıcı oluşturulur. Etkinleştirilirse, yeni bir Öğrenci oluşturulduğunda yeni Kullanıcı oluşturulmayacaktır.",
 Instructor Records to be created by,Öğretmen Kayıtları tarafından oluşturulacak,
@@ -5917,8 +5808,8 @@
 Fee Structure,ücret Yapısı,
 EDU-FSH-.YYYY.-,EDU-FSH .YYYY.-,
 Fee Creation Status,Ücret Oluşturma Durumu,
-In Process,İşlemde,
-Send Payment Request Email,Ödeme Talebi E-postası Gönder,
+In Process,Süreci,
+Send Payment Request Email,Ödeme Talebi E-postasını Gönder,
 Student Category,Öğrenci Kategorisi,
 Fee Breakup for each student,Her öğrenci için Ücret Ayrılması,
 Total Amount per Student,Öğrenci Başına Toplam Tutar,
@@ -5968,8 +5859,8 @@
 Boarding Student,Yatılı Öğrenci,
 Check this if the Student is residing at the Institute's Hostel.,Öğrenci Enstitü Pansiyonunda ikamet ediyorsa bunu kontrol edin.,
 Walking,Yürüme,
-Institute's Bus,Enstitü Otobüsü,
-Public Transport,Toplu Taşıma,
+Institute's Bus,Enstitü Otobüs,
+Public Transport,Toplu taşıma,
 Self-Driving Vehicle,Kendinden Sürüşlü Araç,
 Pick/Drop by Guardian,Koruyucu tarafından Pick / Bırak,
 Enrolled courses,Kayıtlı kurslar,
@@ -6036,7 +5927,7 @@
 Student Admission,Öğrenci Kabulü,
 Admission Start Date,Kabul Başlangıç Tarihi,
 Admission End Date,Kabul Bitiş Tarihi,
-Publish on website,Web sitesinde yayınla,
+Publish on website,Web sitesinde yayımlamak,
 Eligibility and Details,Uygunluk ve Ayrıntılar,
 Student Admission Program,Öğrenci Kabul Programı,
 Minimum Age,Asgari yaş,
@@ -6055,7 +5946,6 @@
 Max Strength,Maksimum Güç,
 Set 0 for no limit,hiçbir sınırı 0 olarak ayarlayın,
 Instructors,Ders,
-Is IRS 1099 reporting required for supplier?,Tedarikçi için IRS 1099 raporlaması gerekli midir?,
 Student Group Creation Tool,Öğrenci Grubu Oluşturma Aracı,
 Leave blank if you make students groups per year,Öğrenci gruplarını yılda bir kere yaparsanız boş bırakın.,
 Get Courses,Kursları alın,
@@ -6092,7 +5982,7 @@
 Topic Content,Konu İçeriği,
 Amazon MWS Settings,Amazon MWS Ayarları,
 ERPNext Integrations,ERPNext Entegrasyonları,
-Enable Amazon,Amazon'u etkinleştir,
+Enable Amazon,Amazon&#39;u etkinleştir,
 MWS Credentials,MWS Kimlik Bilgileri,
 Seller ID,Satıcı Kimliği,
 AWS Access Key ID,AWS Erişim Anahtarı Kimliği,
@@ -6112,16 +6002,16 @@
 MX,MX,
 UK,UK,
 US,BİZE,
-Customer Type,Müşteri Türü,
+Customer Type,müşteri tipi,
 Market Place Account Group,Market Place Hesap Grubu,
 After Date,Tarihten sonra,
 Amazon will synch data updated after this date,Amazon bu tarihten sonra güncellenen verileri senkronize edecek,
 Sync Taxes and Charges,Vergileri ve Ücretleri Senkronize Etme,
-Get financial breakup of Taxes and charges data by Amazon ,Vergi'nin mali ayrılığını al ve Amazon tarafından veri topla,
+Get financial breakup of Taxes and charges data by Amazon ,Vergi&#39;nin mali ayrılığını al ve Amazon tarafından veri topla,
 Sync Products,Ürünleri Senkronize Et,
-Always sync your products from Amazon MWS before synching the Orders details,Siparişler ayrıntılarını eşitlemeden önce her zaman ürünlerinizi Amazon MWS'den eşitleyin,
+Always sync your products from Amazon MWS before synching the Orders details,Siparişler ayrıntılarını eşitlemeden önce her zaman ürünlerinizi Amazon MWS&#39;den eşitleyin,
 Sync Orders,Senkronizasyon Siparişleri,
-Click this button to pull your Sales Order data from Amazon MWS.,Amazon SMM'den Satış Siparişi verilerinizi çekmek için bu düğmeyi tıklayın.,
+Click this button to pull your Sales Order data from Amazon MWS.,Amazon SMM&#39;den Satış Siparişi verilerinizi çekmek için bu düğmeyi tıklayın.,
 Enable Scheduled Sync,Zamanlanmış Senkronizasyonu Etkinleştir,
 Check this to enable a scheduled Daily synchronization routine via scheduler,Zamanlayıcı ile programlanmış Günlük senkronizasyon rutinini etkinleştirmek için bunu kontrol edin.,
 Max Retry Limit,Maksimum Yeniden Deneme Sınırı,
@@ -6147,7 +6037,7 @@
 Scope,kapsam,
 Authorization Settings,Yetkilendirme Ayarları,
 Authorization Endpoint,Yetkilendirme Bitiş Noktası,
-Authorization URL,Yetkilendirme URL'si,
+Authorization URL,Yetkilendirme URL&#39;si,
 Quickbooks Company ID,Quickbooks Şirket Kimliği,
 Company Settings,Firma Ayarları,
 Default Shipping Account,Varsayılan Kargo Hesabı,
@@ -6158,25 +6048,25 @@
 Request Data,Veri İste,
 Shopify Settings,Shopify Ayarları,
 status html,durum html,
-Enable Shopify,Shopify'ı etkinleştir,
+Enable Shopify,Shopify&#39;ı etkinleştir,
 App Type,Uygulama Türü,
 Last Sync Datetime,Son Senkronizasyon Tarihi,
-Shop URL,Mağaza URL'si,
+Shop URL,Mağaza URL&#39;si,
 eg: frappe.myshopify.com,örneğin: frappe.myshopify.com,
 Shared secret,Paylaşılan sır,
 Webhooks Details,Webhooks Ayrıntılar,
 Webhooks,Webhooks,
 Customer Settings,Müşteri ayarları,
 Default Customer,Varsayılan Müşteri,
-Customer Group will set to selected group while syncing customers from Shopify,"Müşteri Grubu, Shopify'tan müşterileri senkronize ederken seçilen gruba ayarlanacak",
+Customer Group will set to selected group while syncing customers from Shopify,"Müşteri Grubu, Shopify&#39;tan müşterileri senkronize ederken seçilen gruba ayarlanacak",
 For Company,Şirket için,
 Cash Account will used for Sales Invoice creation,Satış Faturası oluşturma için Nakit Hesabı kullanılacaktır,
-Update Price from Shopify To ERPNext Price List,ERPNext Fiyat Listesinden Shopify'a Güncelleme Fiyatı,
-Default Warehouse to to create Sales Order and Delivery Note,Satış Siparişi ve İrsaliye Oluşturmak İçin Varsayılan Depo,
+Update Price from Shopify To ERPNext Price List,ERPNext Fiyat Listesinden Shopify&#39;a Güncelleme Fiyatı,
+Default Warehouse to to create Sales Order and Delivery Note,Satış Siparişi ve Teslimat Notu Oluşturmak İçin Varsayılan Depo,
 Sales Order Series,Satış Siparişi Serisi,
-Import Delivery Notes from Shopify on Shipment,Gönderide Shopify'tan Teslim Alma Notları,
-Delivery Note Series,İrsaliye Serisi,
-Import Sales Invoice from Shopify if Payment is marked,Ödeme işaretliyse Satış Faturasını Shopify'dan içe aktarın,
+Import Delivery Notes from Shopify on Shipment,Gönderide Shopify&#39;tan Teslim Alma Notları,
+Delivery Note Series,Teslimat Notu Serisi,
+Import Sales Invoice from Shopify if Payment is marked,Ödeme işaretliyse Satış Faturasını Shopify&#39;dan içe aktarın,
 Sales Invoice Series,Satış Faturası Serisi,
 Shopify Tax Account,Vergi Hesabı Shopify,
 Shopify Tax/Shipping Title,Vergi / Kargo Başlığı,
@@ -6185,44 +6075,44 @@
 Webhook ID,Webhook Kimliği,
 Tally Migration,Tally Göç,
 Master Data,Ana veriler,
-"Data exported from Tally that consists of the Chart of Accounts, Customers, Suppliers, Addresses, Items and UOMs","Hesap Planı, Müşteriler, Tedarikçiler, Adresler, Kalemler ve UOM'lardan oluşan Tally'den dışa aktarılan veriler",
+"Data exported from Tally that consists of the Chart of Accounts, Customers, Suppliers, Addresses, Items and UOMs","Hesap Planı, Müşteriler, Tedarikçiler, Adresler, Kalemler ve UOM&#39;lardan oluşan Tally&#39;den dışa aktarılan veriler",
 Is Master Data Processed,Ana Veriler İşleniyor,
 Is Master Data Imported,Ana Veriler Alındı mı,
 Tally Creditors Account,Tally Alacaklılar Hesabı,
-Creditors Account set in Tally,Alacaklılar Hesabı Tally'de belirlendi,
+Creditors Account set in Tally,Alacaklılar Hesabı Tally&#39;de belirlendi,
 Tally Debtors Account,Tally Borçlular Hesabı,
-Debtors Account set in Tally,Borçlu Hesabı Tally'de ayarlandı,
+Debtors Account set in Tally,Borçlu Hesabı Tally&#39;de ayarlandı,
 Tally Company,Tally Şirketi,
 Company Name as per Imported Tally Data,İçe Aktarılan Tally Verilerine göre Şirket Adı,
 Default UOM,Varsayılan UOM,
 UOM in case unspecified in imported data,İçe aktarılan verilerde belirtilmemiş olması durumunda UOM,
 ERPNext Company,ERPNext Şirketi,
-Your Company set in ERPNext,Şirketiniz ERPNext'te ayarlandı,
+Your Company set in ERPNext,Şirketiniz ERPNext&#39;te ayarlandı,
 Processed Files,İşlenmiş Dosyalar,
 Parties,Taraflar,
 UOMs,Ölçü Birimleri,
-Vouchers,Kuponlar,
+Vouchers,kuponları,
 Round Off Account,Yuvarlama Hesabı,
 Day Book Data,Günlük Kitap Verileri,
-Day Book Data exported from Tally that consists of all historic transactions,Tally'den dışa aktarılan ve tüm geçmiş işlemlerden oluşan Gün Defteri Verileri,
+Day Book Data exported from Tally that consists of all historic transactions,Tally&#39;den dışa aktarılan ve tüm geçmiş işlemlerden oluşan Gün Defteri Verileri,
 Is Day Book Data Processed,Günlük Kitap Verileri İşleniyor mu?,
 Is Day Book Data Imported,Günlük Kitap Verileri Alındı mı,
 Woocommerce Settings,Woocommerce Ayarları,
 Enable Sync,Senkronizasyonu Etkinleştir,
-Woocommerce Server URL,Woocommerce Sunucusu URL'si,
+Woocommerce Server URL,Woocommerce Sunucusu URL&#39;si,
 Secret,Gizli,
 API consumer key,API tüketici anahtarı,
 API consumer secret,API tüketici sırrı,
 Tax Account,Vergi Hesabı,
-Freight and Forwarding Account,Navlun ve Nakliye Hesabı,
-Creation User,Oluşturma Kullanıcısı,
+Freight and Forwarding Account,Yük ve Nakliyat Hesabı,
+Creation User,Yaratılış Kullanıcısı,
 "The user that will be used to create Customers, Items and Sales Orders. This user should have the relevant permissions.","Müşteriler, Öğeler ve Satış Siparişleri oluşturmak için kullanılacak kullanıcı. Bu kullanıcı ilgili izinlere sahip olmalıdır.",
-"This warehouse will be used to create Sales Orders. The fallback warehouse is ""Stores"".",Bu depo Müşteri Siparişleri oluşturmak için kullanılacaktır. Yedek depo 'Mağazalar' dır.,
-"The fallback series is ""SO-WOO-"".",Geri dönüş serisi 'SO-WOO-'.,
+"This warehouse will be used to create Sales Orders. The fallback warehouse is ""Stores"".",Bu depo Müşteri Siparişleri oluşturmak için kullanılacaktır. Yedek depo &quot;Mağazalar&quot; dır.,
+"The fallback series is ""SO-WOO-"".",Geri dönüş serisi &quot;SO-WOO-&quot;.,
 This company will be used to create Sales Orders.,Bu şirket Satış Siparişleri oluşturmak için kullanılacaktır.,
 Delivery After (Days),Teslimat Sonrası (Gün),
 This is the default offset (days) for the Delivery Date in Sales Orders. The fallback offset is 7 days from the order placement date.,"Bu, Müşteri Siparişlerindeki Teslim Tarihi için varsayılan ofsettir (gün). Yedek ofset, sipariş yerleşim tarihinden itibaren 7 gündür.",
-"This is the default UOM used for items and Sales orders. The fallback UOM is ""Nos"".","Bu, öğeler ve Satış siparişleri için kullanılan varsayılan UOM'dir. Geri dönüş UOM'si 'Nos'.",
+"This is the default UOM used for items and Sales orders. The fallback UOM is ""Nos"".","Bu, öğeler ve Satış siparişleri için kullanılan varsayılan UOM&#39;dir. Geri dönüş UOM&#39;si &quot;Nos&quot;.",
 Endpoints,Endpoints,
 Endpoint,Son nokta,
 Antibiotic Name,Antibiyotik adı,
@@ -6237,7 +6127,7 @@
 Procedure Prescription,Prosedür Reçete,
 Service Unit,Servis Ünitesi,
 Consumables,Sarf,
-Consume Stock,Stok Tüket,
+Consume Stock,Stok tüketmek,
 Invoice Consumables Separately,Fatura Sarf Malzemelerini Ayrı Ayrı,
 Consumption Invoiced,Faturalandırılan Tüketim,
 Consumable Total Amount,Sarf Malzemesi Toplam Miktarı,
@@ -6261,10 +6151,10 @@
 Dosage,Dozaj,
 Dosage by Time Interval,Zaman aralığına göre dozaj,
 Interval,Aralık,
-Interval UOM,Aralık UOM'sı,
+Interval UOM,Aralık UOM&#39;sı,
 Hour,Saat,
 Update Schedule,Programı Güncelle,
-Exercise,Egzersiz yap,
+Exercise,Egzersiz yapmak,
 Difficulty Level,Zorluk seviyesi,
 Counts Target,Hedefi Sayar,
 Counts Completed,Tamamlanan Sayımlar,
@@ -6281,7 +6171,7 @@
 Max number of visit,Maks Ziyaret Sayısı,
 Visited yet,Henüz ziyaret edilmedi,
 Reference Appointments,Referans Randevuları,
-Valid till,Geçerlilik tarihi,
+Valid till,Kadar geçerli,
 Fee Validity Reference,Ücret Geçerlilik Referansı,
 Basic Details,Temel Ayrıntılar,
 HLC-PRAC-.YYYY.-,HLC-PRAC-.YYYY.-,
@@ -6312,7 +6202,7 @@
 Patient Name By,Hasta Adı Tarafından,
 Patient Name,Hasta adı,
 Link Customer to Patient,Müşteriyi Hastaya Bağla,
-"If checked, a customer will be created, mapped to Patient.\nPatient Invoices will be created against this Customer. You can also select existing Customer while creating Patient.","İşaretlenirse, Hasta ile eşleştirilen bir müşteri oluşturulur. Bu Müşteri'ye karşı hasta faturaları oluşturulacaktır. Hasta oluşturulurken mevcut Müşteri'yi seçebilirsiniz.",
+"If checked, a customer will be created, mapped to Patient.\nPatient Invoices will be created against this Customer. You can also select existing Customer while creating Patient.","İşaretlenirse, Hasta ile eşleştirilen bir müşteri oluşturulur. Bu Müşteri&#39;ye karşı hasta faturaları oluşturulacaktır. Hasta oluşturulurken mevcut Müşteri&#39;yi seçebilirsiniz.",
 Default Medical Code Standard,Varsayılan Tıbbi Kod Standardı,
 Collect Fee for Patient Registration,Hasta Kayıt için Toplama Ücreti,
 Checking this will create new Patients with a Disabled status by default and will only be enabled after invoicing the Registration Fee.,"Bunun işaretlenmesi, varsayılan olarak Devre Dışı durumuna sahip yeni Hastalar oluşturacak ve yalnızca Kayıt Ücreti fatura edildikten sonra etkinleştirilecektir.",
@@ -6329,10 +6219,7 @@
 Clinical Procedure Consumable Item,Klinik Prosedür Sarf Malzemesi,
 Default Accounts,Varsayılan Hesaplar,
 Default income accounts to be used if not set in Healthcare Practitioner to book Appointment charges.,Randevu ücretleri için Sağlık Uygulayıcısında belirtilmemişse kullanılacak varsayılan gelir hesapları.,
-Receivable Accounts,Alacak Hesapları,
-Default Receivable Accounts,Temerrüt Alacak Hesapları,
 Default receivable accounts to be used to book Appointment charges.,Randevu ücretlerini ayırmak için kullanılacak varsayılan alacak hesapları.,
-Mention if a non-standard receivable account,Standart dışı bir alacak hesabı varsa belirtiniz,
 Out Patient SMS Alerts,Out Hasta SMS Uyarıları,
 Patient Registration,Hasta Kayıt,
 Registration Message,Kayıt Mesajı,
@@ -6355,8 +6242,8 @@
 Laboratory SMS Alerts,Laboratuar SMS Uyarıları,
 Result Printed Message,Sonuç Yazdırılan Mesaj,
 Result Emailed Message,Sonuç E-postayla Gönderilen Mesaj,
-Check In,Giriş yap,
-Check Out,Çıkış yap,
+Check In,Giriş,
+Check Out,Çıkış yapmak,
 HLC-INP-.YYYY.-,HLC-INP-.YYYY.-,
 A Positive,A Pozitif,
 A Negative,A Negatif,
@@ -6404,7 +6291,7 @@
 HLC-PAT-.YYYY.-,HLC-PAT-.YYYY.-,
 Middle Name (optional),İkinci İsim (isteğe bağlı),
 Inpatient Status,Yatan Hasta Durumu,
-"If ""Link Customer to Patient"" is checked in Healthcare Settings and an existing Customer is not selected then, a Customer will be created for this Patient for recording transactions in Accounts module.","Sağlık Ayarlarında 'Müşteriyi Hastaya Bağla' işaretlenmişse ve mevcut bir Müşteri seçilmediyse, Hesaplar modülünde işlemlerin kaydedilmesi için bu Hasta için bir Müşteri oluşturulacaktır.",
+"If ""Link Customer to Patient"" is checked in Healthcare Settings and an existing Customer is not selected then, a Customer will be created for this Patient for recording transactions in Accounts module.","Sağlık Ayarlarında &quot;Müşteriyi Hastaya Bağla&quot; işaretlenmişse ve mevcut bir Müşteri seçilmediyse, Hesaplar modülünde işlemlerin kaydedilmesi için bu Hasta için bir Müşteri oluşturulacaktır.",
 Personal and Social History,Kişisel ve Sosyal Tarih,
 Marital Status,Medeni durum,
 Married,Evli,
@@ -6490,11 +6377,11 @@
 Therapy For,Terapi İçin,
 Add Exercises,Egzersiz Ekle,
 Body Temperature,Vücut Sıcaklığı,
-"Presence of a fever (temp &gt; 38.5 °C/101.3 °F or sustained temp &gt; 38 °C/100.4 °F)","Ateşin varlığı (sıcaklık&gt; 38.5 ° C / 101.3 ° F veya sürekli&gt; 38 ° C / 100.4 ° F)",
+Presence of a fever (temp &gt; 38.5 °C/101.3 °F or sustained temp &gt; 38 °C/100.4 °F),Ateşin varlığı (sıcaklık&gt; 38.5 ° C / 101.3 ° F veya sürekli&gt; 38 ° C / 100.4 ° F),
 Heart Rate / Pulse,Nabız / Darbe,
 Adults' pulse rate is anywhere between 50 and 80 beats per minute.,Yetişkinlerin nabız sayısı dakikada 50 ila 80 atım arasında bir yerde bulunur.,
 Respiratory rate,Solunum hızı,
-Normal reference range for an adult is 16–20 breaths/minute (RCP 2012),Bir yetişkin için normal referans aralığı 16-20 nefes / dakika'dır (RCP 2012),
+Normal reference range for an adult is 16–20 breaths/minute (RCP 2012),Bir yetişkin için normal referans aralığı 16-20 nefes / dakika&#39;dır (RCP 2012),
 Tongue,Dil,
 Coated,Kaplanmış,
 Very Coated,Çok Kaplamalı,
@@ -6512,7 +6399,7 @@
 Blood Pressure (systolic),Kan Basıncı (sistolik),
 Blood Pressure (diastolic),Kan Basıncı (diyastolik),
 Blood Pressure,Kan basıncı,
-"Normal resting blood pressure in an adult is approximately 120 mmHg systolic, and 80 mmHg diastolic, abbreviated ""120/80 mmHg""",Yetişkinlerde normal istirahat tansiyonu sistolik olarak yaklaşık 120 mmHg ve '120/80 mmHg' olarak kısaltılan 80 mmHg diastoliktir,
+"Normal resting blood pressure in an adult is approximately 120 mmHg systolic, and 80 mmHg diastolic, abbreviated ""120/80 mmHg""",Yetişkinlerde normal istirahat tansiyonu sistolik olarak yaklaşık 120 mmHg ve &quot;120/80 mmHg&quot; olarak kısaltılan 80 mmHg diastoliktir,
 Nutrition Values,Beslenme Değerleri,
 Height (In Meter),Yükseklik (Metrede),
 Weight (In Kilogram),Ağırlık (Kilogram cinsinden),
@@ -6557,7 +6444,7 @@
 Body,Vücut,
 Closing Notes,Kapanış Notları,
 Appointment Letter content,Randevu Mektubu içeriği,
-Appraisal,Değerlendirme,
+Appraisal,Appraisal:Değerlendirme,
 HR-APR-.YY.-.MM.,HR-APR-.YY.-.MM.,
 Appraisal Template,Değerlendirme Şablonu,
 For Employee Name,Çalışan Adına,
@@ -6575,38 +6462,38 @@
 Key Performance Area,Kilit Performans Alanı,
 HR-ATT-.YYYY.-,HR-ATT-.YYYY.-,
 On Leave,İzinli,
-Work From Home,Evden Çalış,
-Leave Application,İzin Uygulaması,
-Attendance Date,Puantaj Tarihi,
-Attendance Request,Puantaj Talebi,
-Late Entry,Geç Giriş,
+Work From Home,Evden çalışmak,
+Leave Application,İzin uygulaması,
+Attendance Date,Katılım Tarihi,
+Attendance Request,Katılım Talebi,
+Late Entry,Geç giriş,
 Early Exit,Erken Çıkış,
 Half Day Date,Yarım Gün Tarih,
 On Duty,Görevde,
 Explanation,açıklama,
-Compensatory Leave Request,Telafi İzin Talebi,
+Compensatory Leave Request,Telafi Bırakma Talebi,
 Leave Allocation,İzin Tahsisi,
 Worked On Holiday,Tatilde Çalıştı,
 Work From Date,Tarihten Çalışma,
 Work End Date,İş Bitiş Tarihi,
 Email Sent To,E-posta Gönderildi,
 Select Users,Kullanıcıları Seç,
-Send Emails At,E-posta Gönderim,
-Reminder,Hatırlat,
+Send Emails At,At e-postalar gönderin,
+Reminder,Hatırlatma,
 Daily Work Summary Group User,Günlük Çalışma Özet Grubu Kullanıcı,
 email,e-posta,
 Parent Department,Ana Bölüm,
-Leave Block List,İzin Engel Listesi,
+Leave Block List,İzin engel listesi,
 Days for which Holidays are blocked for this department.,Bu departman için tatillerin kaldırıldığı günler.,
 Leave Approver,İzin Onaylayan,
-Expense Approver,Masraf Onaycısı,
+Expense Approver,Gider Approver,
 Department Approver,Bölüm Onaycısı,
 Approver,Onaylayan,
-Required Skills,İstenen Yetenekler,
-Skills,Yetenekler,
+Required Skills,İstenen yetenekler,
+Skills,Beceri,
 Designation Skill,Atama Becerisi,
-Skill,Yetenek,
-Driver,Şoför,
+Skill,Beceri,
+Driver,sürücü,
 HR-DRI-.YYYY.-,HR-DRI-.YYYY.-,
 Suspended,Askıya alındı,
 Transporter,Taşıyıcı,
@@ -6636,7 +6523,7 @@
 Date Of Retirement,Emeklilik Tarihiniz,
 Department and Grade,Bölüm ve sınıf,
 Reports to,Raporlar,
-Attendance and Leave Details,Puantaj ve İzin Ayrıntıları,
+Attendance and Leave Details,Katılım ve Ayrıntı Ayrıntıları,
 Leave Policy,Politikadan Ayrıl,
 Attendance Device ID (Biometric/RF tag ID),Seyirci Cihaz Kimliği (Biyometrik / RF etiketi numarası),
 Applicable Holiday List,Uygulanabilir Tatil Listesi,
@@ -6671,27 +6558,27 @@
 "Here you can maintain height, weight, allergies, medical concerns etc","Burada boy, kilo, alerji, tıbbi endişeler vb  muhafaza edebilirsiniz",
 Educational Qualification,Eğitim Yeterliliği,
 Previous Work Experience,Önceki İş Deneyimi,
-External Work History,Dış Personel Geçmişi,
+External Work History,Dış Çalışma Geçmişi,
 History In Company,Şirketteki Geçmişi,
-Internal Work History,İç Personel Geçmişi,
+Internal Work History,İç Çalışma Geçmişi,
 Resignation Letter Date,İstifa Mektubu Tarihi,
 Relieving Date,Ayrılma Tarihi,
 Reason for Leaving,Ayrılma Nedeni,
 Leave Encashed?,İzin Tahsil Edilmiş mi?,
-Encashment Date,Paraya Çevirme Tarihi,
+Encashment Date,Nakit Çekim Tarihi,
 New Workplace,Yeni İş Yeri,
 HR-EAD-.YYYY.-,HR-EAD-.YYYY.-,
 Returned Amount,İade Edilen Tutar,
-Claimed,Talep Edilen,
+Claimed,İddia Edilen,
 Advance Account,Peşin Hesap,
-Employee Attendance Tool,Personel Puantaj Aracı,
-Unmarked Attendance,İşaretsiz Puantaj,
-Employees HTML,Personel HTML,
+Employee Attendance Tool,Çalışan Seyirci Aracı,
+Unmarked Attendance,Işaretsiz Seyirci,
+Employees HTML,"Çalışanlar, HTML",
 Marked Attendance,İşaretlenmiş Devamlılık,
 Marked Attendance HTML,İşaretlenmiş Devamlılık HTML,
 Employee Benefit Application,Çalışanlara Sağlanan Fayda,
-Max Benefits (Yearly),Maksimum Fayda (Yıllık),
-Remaining Benefits (Yearly),Kalan Fayda (Yıllık),
+Max Benefits (Yearly),Maksimum Faydalar (Yıllık),
+Remaining Benefits (Yearly),Kalan Faydalar (Yıllık),
 Payroll Period,Bordro Dönemi,
 Benefits Applied,Uygulanan Faydalar,
 Dispensed Amount (Pro-rated),Dağıtım Miktarı (Pro dereceli),
@@ -6705,12 +6592,12 @@
 Claim Benefit For,Için hak talebi,
 Max Amount Eligible,Maksimum Tutar,
 Expense Proof,Gider kanıtı,
-Employee Boarding Activity,Personel Yatılı Etkinliği,
+Employee Boarding Activity,Çalışan Yatılı Etkinliği,
 Activity Name,Etkinlik adı,
 Task Weight,görev Ağırlığı,
 Required for Employee Creation,Çalışan Yaratma için Gerekli,
 Applicable in the case of Employee Onboarding,Çalışan Onboarding durumunda uygulanabilir,
-Employee Checkin,Personel Giriş,
+Employee Checkin,Çalışan Checkin,
 Log Type,Günlük Tipi,
 OUT,DIŞARI,
 Location / Device ID,Konum / Cihaz Kimliği,
@@ -6727,75 +6614,75 @@
 Year of Passing,Geçiş Yılı,
 Class / Percentage,Sınıf / Yüzde,
 Major/Optional Subjects,Ana / Opsiyonel Konular,
-Employee External Work History,Personel Harici İş Geçmişi,
+Employee External Work History,Çalışan Harici İş Geçmişi,
 Total Experience,Toplam Deneyim,
 Default Leave Policy,Varsayılan Ayrılma Politikası,
 Default Salary Structure,Varsayılan Maaş Yapısı,
-Employee Group Table,Personel Grup Masası,
+Employee Group Table,Çalışan Grup Masası,
 ERPNext User ID,ERPNext Kullanıcı Kimliği,
-Employee Health Insurance,Personel Sağlık Sigortası,
+Employee Health Insurance,Çalışan Sağlık Sigortası,
 Health Insurance Name,Sağlık Sigortası Adı,
-Employee Incentive,Personel Teşviki,
+Employee Incentive,Çalışan Teşviki,
 Incentive Amount,Teşvik Tutarı,
-Employee Internal Work History,Personel Dahili İş Geçmişi,
-Employee Onboarding,Personel İşe Alım,
+Employee Internal Work History,Çalışan Dahili İş Geçmişi,
+Employee Onboarding,Çalışan Onboard,
 Notify users by email,Kullanıcıları e-postayla bilgilendir,
-Employee Onboarding Template,Personel İşe Alım Şablonu,
+Employee Onboarding Template,Çalışan Onboard Şablonu,
 Activities,Faaliyetler,
-Employee Onboarding Activity,Personel İşe Alım Etkinliği,
-Employee Other Income,Personel Diğer Gelir,
-Employee Promotion,Personel Terfi İşlemleri,
-Promotion Date,Terfi Tarihi,
-Employee Promotion Details,Personel Terfi İşlem Detayları,
-Employee Promotion Detail,Personel Terfi İşlem Detayı,
-Employee Property History,Personel Mülkiyet Tarihi,
-Employee Separation,Personel Çıkış İşlemleri,
-Employee Separation Template,Personel Çıkış Şablonu,
+Employee Onboarding Activity,Çalışan Katılımı Etkinliği,
+Employee Other Income,Çalışan Diğer Gelir,
+Employee Promotion,Çalışan Tanıtımı,
+Promotion Date,Tanıtım Tarihi,
+Employee Promotion Details,Çalışan Tanıtım Detayları,
+Employee Promotion Detail,Çalışan Promosyonu Detayı,
+Employee Property History,Çalışan Mülkiyet Tarihi,
+Employee Separation,Çalışan Ayrılığı,
+Employee Separation Template,Çalışan Ayırma Şablonu,
 Exit Interview Summary,Çıkış Mülakatı Özeti,
-Employee Skill,Personel Yetenekleri,
+Employee Skill,Çalışan Beceri,
 Proficiency,yeterlik,
 Evaluation Date,Değerlendirme tarihi,
-Employee Skill Map,Personel Beceri Haritası,
-Employee Skills,Personel Yetenekleri,
+Employee Skill Map,Çalışan Beceri Haritası,
+Employee Skills,Çalışan Becerileri,
 Trainings,Eğitimler,
-Employee Tax Exemption Category,Personel Vergisi İstisnası Kategorisi,
+Employee Tax Exemption Category,Çalışan Vergisi İstisnası Kategorisi,
 Max Exemption Amount,Maksimum Muafiyet Tutarı,
-Employee Tax Exemption Declaration,Personel Vergisi İstisnası Beyanı,
+Employee Tax Exemption Declaration,Çalışan Vergisi İstisnası Beyanı,
 Declarations,Beyannameler,
 Total Declared Amount,Toplam Beyan Tutar,
 Total Exemption Amount,Toplam Muafiyet Tutarı,
-Employee Tax Exemption Declaration Category,Personel Vergisi İstisna Beyannamesi Kategorisi,
+Employee Tax Exemption Declaration Category,Çalışan Vergisi İstisna Beyannamesi Kategorisi,
 Exemption Sub Category,Exemption Alt Kategorisi,
 Exemption Category,Muafiyet Kategorisi,
 Maximum Exempted Amount,Maksimum Muaf Tutar,
 Declared Amount,Beyan Edilen Tutar,
-Employee Tax Exemption Proof Submission,Personel Vergi Muafiyeti Proof Sunumu,
+Employee Tax Exemption Proof Submission,Çalışan Vergi Muafiyeti Proof Sunumu,
 Submission Date,Teslim tarihi,
 Tax Exemption Proofs,Vergi Muafiyet İspatları,
 Total Actual Amount,Toplam Gerçek Tutar,
-Employee Tax Exemption Proof Submission Detail,Personel Vergi Muafiyeti Proof Gönderme Detayı,
+Employee Tax Exemption Proof Submission Detail,Çalışan Vergi Muafiyeti Proof Gönderme Detayı,
 Maximum Exemption Amount,Maksimum Muafiyet Tutarı,
 Type of Proof,Kanıt Türü,
 Actual Amount,Gerçek Tutar,
-Employee Tax Exemption Sub Category,Personel Vergi Muafiyeti Alt Kategorisi,
+Employee Tax Exemption Sub Category,Çalışan Vergi Muafiyeti Alt Kategorisi,
 Tax Exemption Category,Vergi Muafiyet Kategorisi,
-Employee Training,Personel Eğitimi,
-Training Date,Eğitim Tarihi,
-Employee Transfer,Personel Transferi,
+Employee Training,Çalışan eğitimi,
+Training Date,Eğitim tarihi,
+Employee Transfer,Çalışan Transferi,
 Transfer Date,Transfer tarihi,
-Employee Transfer Details,Personel Transfer Detayları,
-Employee Transfer Detail,Personel Transfer Detayı,
-Re-allocate Leaves,İzinleri yeniden ayır,
-Create New Employee Id,Yeni Personel Kimliği Oluşturun,
-New Employee ID,Yeni Personel Kimliği,
-Employee Transfer Property,Personel Transfer Mülkiyeti,
+Employee Transfer Details,Çalışan Transfer Detayları,
+Employee Transfer Detail,Çalışan Transfer Detayı,
+Re-allocate Leaves,Yaprakları yeniden ayır,
+Create New Employee Id,Yeni Çalışan Kimliği Oluşturun,
+New Employee ID,Yeni Çalışan Kimliği,
+Employee Transfer Property,Çalışan Transfer Mülkiyeti,
 HR-EXP-.YYYY.-,HR-EXP-.YYYY.-,
 Expense Taxes and Charges,Gider Vergileri ve Masrafları,
 Total Sanctioned Amount,Toplam Tasdiklenmiş Tutar,
 Total Advance Amount,Toplam Avans Tutarı,
 Total Claimed Amount,Toplam İade edilen Tutar,
 Total Amount Reimbursed,Toplam Tutar Geri ödenen,
-Vehicle Log,Araç Kaydı,
+Vehicle Log,araç Giriş,
 Employees Email Id,Çalışanların e-posta adresleri,
 More Details,Daha fazla detay,
 Expense Claim Account,Gider Talep Hesabı,
@@ -6812,13 +6699,13 @@
 Holidays,Bayram,
 Clear Table,Temizle Tablo,
 HR Settings,İK Ayarları,
-Employee Settings,Personel Ayarları,
+Employee Settings,Çalışan Ayarları,
 Retirement Age,Emeklilik yaşı,
 Enter retirement age in years,yıllarda emeklilik yaşı girin,
 Stop Birthday Reminders,Doğum günü hatırlatıcılarını durdur,
-Expense Approver Mandatory In Expense Claim,Gider Talebi'nde Harcama Uygunluğu,
+Expense Approver Mandatory In Expense Claim,Gider Talebi&#39;nde Harcama Uygunluğu,
 Payroll Settings,Bordro Ayarları,
-Leave,Ayrıl,
+Leave,Ayrılmak,
 Max working hours against Timesheet,Max Çizelgesi karşı çalışma saatleri,
 Include holidays in Total no. of Working Days,Çalışma günlerinin toplam sayısı ile tatilleri dahil edin,
 "If checked, Total no. of Working Days will include holidays, and this will reduce the value of Salary Per Day","Seçili ise,toplam çalışma günleri sayısı tatilleri içerecektir ve bu da Günlük ücreti düşürecektir",
@@ -6830,14 +6717,13 @@
 "The salary slip emailed to the employee will be password protected, the password will be generated based on the password policy.","Çalışana gönderilecek maaş bordrosu şifre korumalı olacak, şifre şifre politikasına göre üretilecektir.",
 Password Policy,Şifre politikası,
 <b>Example:</b> SAL-{first_name}-{date_of_birth.year} <br>This will generate a password like SAL-Jane-1972,<b>Örnek:</b> SAL- {first_name} - {date_of_birth.year} <br> Bu SAL-Jane-1972 gibi bir şifre üretecek,
-Leave Policy Assignment,İzin Politika Ataması
-Leave Settings,İzin Ayarları,
-Leave Approval Notification Template,İzin Onay Bildirim Şablonunu,
-Leave Status Notification Template,İzin Durum Bildirimi Şablonunu,
+Leave Settings,Ayarları Bırak,
+Leave Approval Notification Template,Onay Bildirim Şablonunu Bırak,
+Leave Status Notification Template,Durum Bildirimi Şablonunu Bırak,
 Role Allowed to Create Backdated Leave Application,Gecikmeli İzin Başvurusu Oluşturma Rolüne İzin Verildi,
 Leave Approver Mandatory In Leave Application,İzin Verme Başvurusunu Tamamlama Zorunlu Bırakın,
-Show Leaves Of All Department Members In Calendar,Takvimde Tüm Bölüm Üyelerinin İzinlerini Göster,
-Auto Leave Encashment,Otomatik İzin Eklemesi,
+Show Leaves Of All Department Members In Calendar,Takvimde Tüm Bölüm Üyelerinin Yapraklarını Göster,
+Auto Leave Encashment,Otomatik Ayrılma Eklemesi,
 Hiring Settings,Kiralama Ayarları,
 Check Vacancies On Job Offer Creation,İş Teklifi Oluşturma İşleminde Boşlukları Kontrol Edin,
 Identification Document Type,Kimlik Belge Türü,
@@ -6851,7 +6737,7 @@
 Income Tax Slab Other Charges,Gelir Vergisi Levhası Diğer Masraflar,
 Min Taxable Income,Minimum Vergiye Tabi Gelir,
 Max Taxable Income,Maksimum Vergilendirilebilir Gelir,
-Applicant for a Job,İş için başvuru,
+Applicant for a Job,İş için aday,
 Accepted,Kabul Edilmiş,
 Job Opening,İş Açılışı,
 Cover Letter,Ön yazı,
@@ -6874,12 +6760,12 @@
 Allocation,Tahsis,
 New Leaves Allocated,Tahsis Edilen Yeni İzinler,
 Add unused leaves from previous allocations,Önceki tahsislerden kullanılmayan izinleri ekle,
-Unused leaves,Kullanılmayan İzinler,
+Unused leaves,Kullanılmayan yapraklar,
 Total Leaves Allocated,Ayrılan toplam izinler,
-Total Leaves Encashed,Toplam İzinler Encashed,
+Total Leaves Encashed,Toplam Yapraklar Encashed,
 Leave Period,Dönme Süresi,
-Carry Forwarded Leaves,Yönlendirilen İzinler Carry,
-Apply / Approve Leaves,İzinleri Onayla / Uygula,
+Carry Forwarded Leaves,Yönlendirilen Yapraklar Carry,
+Apply / Approve Leaves,Yapraklar Onayla / Uygula,
 HR-LAP-.YYYY.-,HR-LAP-.YYYY.-,
 Leave Balance Before Application,Uygulamadan Önce Kalan İzin,
 Total Leave Days,Toplam bırak Günler,
@@ -6907,8 +6793,8 @@
 Designation (optional),Atama (isteğe bağlı),
 Employee Grade (optional),Çalışan Sınıfı (isteğe bağlı),
 Employee (optional),Çalışan (isteğe bağlı),
-Allocate Leaves,İzin Tahsisi,
-Carry Forward,Nakletme,
+Allocate Leaves,Yaprakları Tahsis,
+Carry Forward,Nakletmek,
 Please select Carry Forward if you also want to include previous fiscal year's balance leaves to this fiscal year,Geçen mali yılın bakiyelerini bu mali yıla dahil etmek isterseniz Lütfen İleri Taşıyı seçin,
 New Leaves Allocated (In Days),Tahsis Edilen Yeni İzinler (Günler),
 Allocate,Atama yap,
@@ -6931,10 +6817,10 @@
 Maximum Continuous Days Applicable,Maksimum Sürekli Günler Uygulanabilir,
 Is Optional Leave,İsteğe Bağlı Bırakılıyor,
 Allow Negative Balance,Negatif bakiyeye izin ver,
-Include holidays within leaves as leaves,İzin olarak İzinler içinde tatil dahil,
+Include holidays within leaves as leaves,Yapraklar gibi yaprakları içinde tatil dahil,
 Is Compensatory,Telafi Edicidir,
-Maximum Carry Forwarded Leaves,Maksimum Taşıma Yönlendirilmiş İzinler,
-Expire Carry Forwarded Leaves (Days),Carry Forwarded İzinler Süresi (Gün),
+Maximum Carry Forwarded Leaves,Maksimum Taşıma Yönlendirilmiş Yapraklar,
+Expire Carry Forwarded Leaves (Days),Carry Forwarded Yapraklar Süresi (Gün),
 Calculated in days,Gün içinde hesaplanır,
 Encashment,paraya çevirme,
 Allow Encashment,Muhafazaya İzin Ver,
@@ -6948,10 +6834,10 @@
 Fortnightly,iki haftada bir,
 Bimonthly,İki ayda bir,
 Employees,Çalışanlar,
-Number Of Employees,Personel Sayısı,
-Employee Details,Personel Bilgileri,
-Validate Attendance,Puantajı Doğrula,
-Salary Slip Based on Timesheet,Çizelgeye bağlı Maaş Bordrosu,
+Number Of Employees,Çalışan Sayısı,
+Employee Details,Çalışan Bilgileri,
+Validate Attendance,Katılımı Doğrula,
+Salary Slip Based on Timesheet,Çizelgesi dayanarak maaş Kayma,
 Select Payroll Period,Bordro Dönemi seçin,
 Deduct Tax For Unclaimed Employee Benefits,Sahipsiz Çalışanlara Sağlanan Faydalar İçin Vergi İndirimi,
 Deduct Tax For Unsubmitted Tax Exemption Proof,Gönderilmemiş Vergi İstisnası Kanıtı için Vergi İndirimi,
@@ -6997,7 +6883,7 @@
 Earning & Deduction,Kazanma & Kesintisi,
 Earnings,Kazanç,
 Deductions,Kesintiler,
-Loan repayment,Kredi Geri Ödemesi,
+Loan repayment,Kredi geri ödeme,
 Employee Loan,Çalışan Kredi,
 Total Principal Amount,Toplam Anapara Tutarı,
 Total Interest Amount,Toplam Faiz Tutarı,
@@ -7016,16 +6902,16 @@
 Shift Type,Vardiya Türü,
 Shift Request,Vardiya İsteği,
 Enable Auto Attendance,Otomatik Katılımı Etkinleştir,
-Mark attendance based on 'Employee Checkin' for Employees assigned to this shift.,Bu vardiyaya atanan çalışanlar için 'Çalışan Checkin'i'ne dayalı katılım.,
+Mark attendance based on 'Employee Checkin' for Employees assigned to this shift.,Bu vardiyaya atanan çalışanlar için &#39;Çalışan Checkin&#39;i&#39;ne dayalı katılım.,
 Auto Attendance Settings,Otomatik Devam Ayarları,
 Determine Check-in and Check-out,Giriş ve Çıkış Belirleme,
 Alternating entries as IN and OUT during the same shift,Aynı vardiyada alternatif girişler ve girişler,
-Strictly based on Log Type in Employee Checkin,Kesinlikle Çalışan Checkin'de Günlük Tipine Göre,
+Strictly based on Log Type in Employee Checkin,Kesinlikle Çalışan Checkin&#39;de Günlük Tipine Göre,
 Working Hours Calculation Based On,Mesai Saatine Göre Hesaplama,
 First Check-in and Last Check-out,İlk Check-in ve Son Check-out,
 Every Valid Check-in and Check-out,Her Geçerli Giriş ve Çıkış,
 Begin check-in before shift start time (in minutes),Vardiya başlama zamanından önce check-ine başlayın (dakika olarak),
-The time before the shift start time during which Employee Check-in is considered for attendance.,Çalışan Check-in'in katılım için dikkate alındığı vardiya başlama saatinden önceki zaman.,
+The time before the shift start time during which Employee Check-in is considered for attendance.,Çalışan Check-in&#39;in katılım için dikkate alındığı vardiya başlama saatinden önceki zaman.,
 Allow check-out after shift end time (in minutes),Vardiya bitiş zamanından sonra check-out yapılmasına izin ver (dakika olarak),
 Time after the end of shift during which check-out is considered for attendance.,Check-out sırasındaki katılım için vardiya sonundan sonraki zaman.,
 Working Hours Threshold for Half Day,Yarım Gün Çalışma Saatleri Eşiği,
@@ -7035,7 +6921,7 @@
 Process Attendance After,İşlem Sonrasına Devam Etme,
 Attendance will be marked automatically only after this date.,Katılım bu tarihten sonra otomatik olarak işaretlenecektir.,
 Last Sync of Checkin,Son Checkin Senkronizasyonu,
-Last Known Successful Sync of Employee Checkin. Reset this only if you are sure that all Logs are synced from all the locations. Please don't modify this if you are unsure.,"Çalışan Checkin'in En Son Başarılı Başarılı Senkronizasyonu. Bunu, yalnızca Kayıtların tüm konumlardan senkronize edildiğinden eminseniz sıfırlayın. Emin değilseniz lütfen bunu değiştirmeyin.",
+Last Known Successful Sync of Employee Checkin. Reset this only if you are sure that all Logs are synced from all the locations. Please don't modify this if you are unsure.,"Çalışan Checkin&#39;in En Son Başarılı Başarılı Senkronizasyonu. Bunu, yalnızca Kayıtların tüm konumlardan senkronize edildiğinden eminseniz sıfırlayın. Emin değilseniz lütfen bunu değiştirmeyin.",
 Grace Period Settings For Auto Attendance,Otomatik Seyirci için Grace Dönemi Ayarları,
 Enable Entry Grace Period,Giriş Graceini Etkinleştir,
 Late Entry Grace Period,Geç Giriş Grace Dönemi,
@@ -7054,29 +6940,29 @@
 Current Openings,Mevcut Açıklıklar,
 Number Of Positions,Pozisyon Sayısı,
 Taxable Salary Slab,Vergilendirilebilir Maaş Slab,
-From Amount,Baş. Tutarı,
-To Amount,Bitiş Tutarı,
-Percent Deduction,Kesinti Yüzdesi,
-Training Program,Eğitim Programı,
+From Amount,Miktardan,
+To Amount,Tutarına,
+Percent Deduction,Yüzde kesinti,
+Training Program,Eğitim programı,
 Event Status,Etkinlik Durumu,
 Has Certificate,Sertifikalı,
-Seminar,Seminer,
-Theory,Teori,
+Seminar,seminer,
+Theory,teori,
 Workshop,Atölye,
 Conference,Konferans,
-Exam,Sınav,
-Internet,İnternet,
+Exam,sınav,
+Internet,Internet,
 Self-Study,Bireysel çalışma,
-Advance,İlerleme,
-Trainer Name,Eğitmen Adı,
-Trainer Email,Eğitmen E-posta,
+Advance,İlerlemek,
+Trainer Name,eğitmen Adı,
+Trainer Email,eğitmen E-posta,
 Attendees,katılımcılar,
-Employee Emails,Personel E-postaları,
-Training Event Employee,Personel Eğitim Etkinliği,
+Employee Emails,Çalışan E-postaları,
+Training Event Employee,Eğitim Etkinlik Çalışan,
 Invited,davetli,
 Feedback Submitted,Geri Bildirim Ekleyen,
 Optional,İsteğe bağlı,
-Training Result Employee,Personel Eğitim Sonucu,
+Training Result Employee,Eğitim Sonucu Çalışan,
 Travel Itinerary,Seyahat güzergahı,
 Travel From,Seyahat,
 Travel To,Seyahat,
@@ -7118,13 +7004,13 @@
 Expense Type,Gider Türü,
 Sponsored Amount,Sponsorlu Tutar,
 Funded Amount,Fonlanan Tutar,
-Upload Attendance,Puantajı Güncelle,
-Attendance From Date,Puantaj Başlangıç Tarihi,
-Attendance To Date,Puantaj Bitiş Tarihi,
-Get Template,Şablonu Al,
-Import Attendance,Puantajı İçe Aktar,
+Upload Attendance,Devamlılığı Güncelle,
+Attendance From Date,Tarihten itibaren katılım,
+Attendance To Date,Tarihine kadar katılım,
+Get Template,Şablon alın,
+Import Attendance,Yoklamayı İçe Aktar,
 Upload HTML,HTML Yükle,
-Vehicle,Araç,
+Vehicle,araç,
 License Plate,Plaka,
 Odometer Value (Last),Sayaç Değeri (Son),
 Acquisition Date,Edinme tarihi,
@@ -7168,8 +7054,8 @@
 Hub Password,Hub Parolası,
 Hub Users,Hub Kullanıcıları,
 Marketplace Settings,Marketplace Ayarları,
-Disable Marketplace,Marketplace'i Devre Dışı Bırak,
-Marketplace URL (to hide and update label),Pazar yeri URL'si (etiketi gizlemek ve güncellemek için),
+Disable Marketplace,Marketplace&#39;i Devre Dışı Bırak,
+Marketplace URL (to hide and update label),Pazar yeri URL&#39;si (etiketi gizlemek ve güncellemek için),
 Registered,Kayıtlı,
 Sync in Progress,İlerleme devam ediyor,
 Hub Seller Name,Hub Satıcı Adı,
@@ -7177,9 +7063,9 @@
 Member,üye,
 Partially Disbursed,Kısmen dönemlerde toplanan,
 Loan Closure Requested,Kredi Kapanışı İstendi,
-Repay From Salary,Maaşdan öde,
+Repay From Salary,Maaş dan ödemek,
 Loan Details,kredi Detayları,
-Loan Type,Kredi Türü,
+Loan Type,kredi Türü,
 Loan Amount,Kredi miktarı,
 Is Secured Loan,Teminatlı Kredi,
 Rate of Interest (%) / Year,İlgi (%) / Yılın Oranı,
@@ -7203,7 +7089,7 @@
 Total Principal Paid,Ödenen Toplam Anapara,
 Total Interest Payable,Ödenecek Toplam Faiz,
 Total Amount Paid,Toplamda ödenen miktar,
-Loan Manager,Kredi Yöneticisi,
+Loan Manager,Kredi Müdürü,
 Loan Info,kredi Bilgisi,
 Rate of Interest,Faiz oranı,
 Proposed Pledges,Önerilen Rehinler,
@@ -7239,7 +7125,7 @@
 Securities,senetler,
 Total Security Value,Toplam Güvenlik Değeri,
 Loan Security Shortfall,Kredi Güvenliği Eksikliği,
-Loan ,Kredi ,
+Loan ,borç,
 Shortfall Time,Eksik Zaman,
 America/New_York,Amerika / New_York,
 Shortfall Amount,Eksiklik Tutarı,
@@ -7296,30 +7182,24 @@
 Ordered Quantity,Sipariş Edilen Miktar,
 Item to be manufactured or repacked,Üretilecek veya yeniden paketlenecek Ürün,
 Quantity of item obtained after manufacturing / repacking from given quantities of raw materials,Üretimden sonra elde edilen Ürün miktarı/ ham maddelerin belli miktarlarında yeniden ambalajlama,
-Set rate of sub-assembly item based on BOM,BOM'a dayalı alt montaj malzemesinin oranını ayarla,
-Cost Configuration,Maliyet Yapılandırması,
-Operations & Materials,Operasyonlar ve Malzemeler,
-Scrap & Process Loss,Hurda & Süreç Kaybı,
-Process Loss,Süreç Kaybı,
-% Process Loss,% Süreç Kaybı,
-FG based Operating Cost,Mamül bazlı Operasyon Maliyeti,
-Allow Alternative Item,Alternatif Ürüne İzin Ver,
+Set rate of sub-assembly item based on BOM,BOM&#39;a dayalı alt montaj malzemesinin oranını ayarlama,
+Allow Alternative Item,Alternatif Öğeye İzin Ver,
 Item UOM,Ürün Ölçü Birimi,
 Conversion Rate,Dönüşüm oranı,
-Rate Of Materials Based On,Malzeme Oranına Göre,
+Rate Of Materials Based On,Dayalı Ürün Br. Fiyatı,
 With Operations,Operasyon ile,
-Manage cost of operations,Operasyon Maliyetlerini Yönet,
-Transfer Material Against,Transfer Malzemesine Karşın,
+Manage cost of operations,İşlem Maliyetlerini Yönetin,
+Transfer Material Against,Karşı Malzemeyi Aktar,
 Routing,Yönlendirme,
 Materials,Materyaller,
-Quality Inspection Required,Kalite Kontrol Gerekli,
+Quality Inspection Required,Kalite Denetimi Gerekli,
 Quality Inspection Template,Kalite Kontrol Şablonu,
 Scrap,Hurda,
-Scrap Items,Hurda Ögeleri,
-Operating Cost,Operasyon Maliyeti,
+Scrap Items,hurda Ürünleri,
+Operating Cost,İşletme Maliyeti,
 Raw Material Cost,Hammadde Maliyeti,
 Scrap Material Cost,Hurda Malzeme Maliyet,
-Operating Cost (Company Currency),Operasyon Maliyeti (Şirket Para Birimi),
+Operating Cost (Company Currency),İşletme Maliyeti (Şirket Para Birimi),
 Raw Material Cost (Company Currency),Hammadde Maliyeti (Şirket Para Birimi),
 Scrap Material Cost(Company Currency),Hurda Malzeme Maliyeti (Şirket Para Birimi),
 Total Cost,Toplam Maliyet,
@@ -7335,29 +7215,29 @@
 Website Description,Web Sitesi Açıklaması,
 BOM Explosion Item,Ürün Ağacı Patlatılmış Malzemeler,
 Qty Consumed Per Unit,Birim Başına Tüketilen Miktar,
-Include Item In Manufacturing,Ürünü Üretime Dahil et,
-BOM Item,BOM Ürünü,
-Item operation,Ürün operasyonu,
+Include Item In Manufacturing,İmalattaki Ürünü Dahil Et,
+BOM Item,BOM Ürün,
+Item operation,Öğe operasyonu,
 Rate & Amount,Oran ve Miktar,
 Basic Rate (Company Currency),Temel oran (Şirket para birimi),
 Scrap %,Hurda %,
 Original Item,Orijinal öğe,
 BOM Operation,BOM Operasyonu,
-Operation Time ,Operasyon Süresi,
-In minutes,Dakika,
-Batch Size,Parti Boyutu,
+Operation Time ,Operasyon zamanı,
+In minutes,Dakikalar içinde,
+Batch Size,Parti boyutu,
 Base Hour Rate(Company Currency),Baz Saat Hızı (Şirket Para Birimi),
-Operating Cost(Company Currency),Operasyon Maliyeti (Şirket Para Birimi),
+Operating Cost(Company Currency),İşletme Maliyeti (Şirket Para Birimi),
 BOM Scrap Item,Ürün Ağacı Hurda Kalemi,
 Basic Amount (Company Currency),Temel Tutar (Şirket Para Birimi),
 BOM Update Tool,BOM Güncelleme Aracı,
-"Replace a particular BOM in all other BOMs where it is used. It will replace the old BOM link, update cost and regenerate ""BOM Explosion Item"" table as per new BOM.\nIt also updates latest price in all the BOMs.","Kullanılan diğer BOM'larda belirli bir BOM'u değiştirin. Eski BOM bağlantısının yerini alacak, maliyeti güncelleyecek ve 'BOM Patlama Maddesi' tablosunu yeni BOM'ya göre yenileyecektir. Ayrıca tüm BOM'larda en son fiyatı günceller.",
+"Replace a particular BOM in all other BOMs where it is used. It will replace the old BOM link, update cost and regenerate ""BOM Explosion Item"" table as per new BOM.\nIt also updates latest price in all the BOMs.","Kullanılan diğer BOM&#39;larda belirli bir BOM&#39;u değiştirin. Eski BOM bağlantısının yerini alacak, maliyeti güncelleyecek ve &quot;BOM Patlama Maddesi&quot; tablosunu yeni BOM&#39;ya göre yenileyecektir. Ayrıca tüm BOM&#39;larda en son fiyatı günceller.",
 Replace BOM,BOM değiştirme,
 Current BOM,Güncel BOM,
 The BOM which will be replaced,Değiştirilecek BOM,
 The new BOM after replacement,Değiştirilmesinden sonra yeni BOM,
 Replace,Değiştir,
-Update latest price in all BOMs,Tüm BOM'larda en son fiyatı güncelleyin,
+Update latest price in all BOMs,Tüm BOM&#39;larda en son fiyatı güncelleyin,
 BOM Website Item,Ürün Ağacı Web Sitesi kalemi,
 BOM Website Operation,Ürün Ağacı Web Sitesi Operasyonu,
 Operation Time,Çalışma Süresi,
@@ -7370,7 +7250,6 @@
 Job Started,İşe Başladı,
 Started Time,Başlangıç zamanı,
 Current Time,Şimdiki zaman,
-FG Warehouse,Mamul Deposu,
 Job Card Item,İş Kartı Öğesi,
 Job Card Time Log,İş kartı zaman günlüğü,
 Time In Mins,Dakikalarda Zaman,
@@ -7379,63 +7258,46 @@
 Raw Materials Consumption,Hammadde Tüketimi,
 Allow Multiple Material Consumption,Çoklu Malzeme Tüketimine İzin Ver,
 Backflush Raw Materials Based On,Backflush Hammaddeleri Dayalı,
-Material Transferred for Manufacture,Üretim için Malzeme Transferi,
+Material Transferred for Manufacture,Üretim için Materyal Transfer,
 Capacity Planning,Kapasite Planlama,
 Disable Capacity Planning,Kapasite Planlamasını Devre Dışı Bırak,
 Allow Overtime,Fazla mesaiye izin ver,
 Allow Production on Holidays,Holidays Üretim izin ver,
 Capacity Planning For (Days),(Gün) için Kapasite Planlama,
 Default Warehouses for Production,Varsayılan Üretim Depoları,
-Default Work In Progress Warehouse,WIP Depoda Varsayılan Çalışma,
-Default Finished Goods Warehouse,Varsayılan Mamul Deposu,
+Default Work In Progress Warehouse,İlerleme Ambarlar&#39;da Standart Çalışma,
+Default Finished Goods Warehouse,Standart bitirdi Eşya Depo,
 Default Scrap Warehouse,Varsayılan Hurda Deposu,
 Overproduction Percentage For Sales Order,Satış Siparişi İçin Aşırı Üretim Yüzdesi,
 Overproduction Percentage For Work Order,İş Emri İçin Aşırı Üretim Yüzdesi,
 Other Settings,Diğer Ayarlar,
 Update BOM Cost Automatically,BOM Maliyetini Otomatik Olarak Güncelleyin,
-Material Request Plan Item,Malzeme Talep Planı Öğe,
-Material Request Type,Malzeme Talep Türü,
-Material Issue,Malzeme Çıkışı,
-Customer Provided,Müşteri Tarafından Sağlandı,
-Minimum Order Quantity,Minimum Sipariş Miktarı,
+Material Request Plan Item,Malzeme İstek Planı Öğe,
+Material Request Type,Malzeme İstek Türü,
+Material Issue,Malzeme Verilişi,
+Customer Provided,Müşteri Tarafından Tedarikli,
+Minimum Order Quantity,minimum sipariş miktarı,
 Default Workstation,Standart İstasyonu,
 Production Plan,Üretim Planı,
-Production Plan Item Reference,Üretim Planı Kalem Referansı,
-Item Reference,Öğe Referansı,
-Sales Order Reference,Satış Siparişi Referansı,
-qty,Miktar,
-Bom No,BOM No,
-Level (BOM),Seviye (BOM),
-Manufacturing Type,İmalat Tipi,
-Include Safety Stock in Required Qty Calculation,Emniyet Stokunu Gerekli Miktar Hesaplamasına Dahil Et,
-Raw Materials Warehouse,Hammadde Deposu,
-Get Raw Materials for Purchase,Satınalma için Hammaddeleri Getir,
-Get Raw Materials for Transfer,Transfer için Hammaddeleri Getir,
-Assembly Items,Montaj Öğeleri,
-Get Sub Assembly Items,Alt Montaj Öğelerini Alın,
-Please select Item Code in Assembly Items,Lütfen Montaj Öğelerinde Ürün Kodu'nu seçin,
-Consolidate Sub Assembly Items,Alt Montaj Öğelerini Birleştirin,
-Sub Assembly Item Code,Alt Montaj Ürün Kodu,
 MFG-PP-.YYYY.-,MFG-PP-.YYYY.-,
-Get Items From,Ürünleri Burdan Al,
-Get Sales Orders,Satış Şiparişlerini Al,
-Transit Entry,Transit Girişi,
-Material Request Detail,Malzeme Talep Ayrıntısı,
-Get Material Request,Malzeme Talebi Alın,
-Material Requests,Malzeme Talepleri,
-Get Items For Work Order,İş Emri İçin Ürünleri Al,
-Material Request Planning,Malzeme Talep Planlaması,
+Get Items From,Öğeleri alın,
+Get Sales Orders,Satış Şiparişlerini alın,
+Material Request Detail,Malzeme İstek Ayrıntısı,
+Get Material Request,Malzeme İsteği alın,
+Material Requests,Malzeme İstekler,
+Get Items For Work Order,İş Emri İçin Öğeleri Alın,
+Material Request Planning,Malzeme İstek Planlaması,
 Include Non Stock Items,Stokta Olmayan Ürünleri Dahil Et,
-Include Subcontracted Items,Taşerona verilmiş Ürünleri Dahil et,
+Include Subcontracted Items,Taahhütlü Öğeleri Dahil Et,
 Ignore Existing Projected Quantity,Mevcut Öngörülen Miktarı Yoksay,
 "To know more about projected quantity, <a href=""https://erpnext.com/docs/user/manual/en/stock/projected-quantity"" style=""text-decoration: underline;"" target=""_blank"">click here</a>.","Tahmini miktar hakkında daha fazla bilgi için, <a href=""https://erpnext.com/docs/user/manual/en/stock/projected-quantity"" style=""text-decoration: underline;"" target=""_blank"">buraya tıklayın</a> .",
 Download Required Materials,Gerekli Malzemeleri İndirin,
-Get Raw Materials For Production,Üretim için Hammaddeleri Al,
-Total Planned Qty,Toplam Planlanan Miktar,
+Get Raw Materials For Production,Üretim İçin Hammaddeleri Alın,
+Total Planned Qty,Toplam Planlanan Adet,
 Total Produced Qty,Toplam Üretilen Miktar,
-Material Requested,Talep edilen Malzeme,
-Production Plan Item,Üretim Planı Ögesi,
-Make Work Order for Sub Assembly Items,Yarı mamul ürünler için ayrı üretim emri oluştur,
+Material Requested,İstenen Malzeme,
+Production Plan Item,Üretim Planı nesnesi,
+Make Work Order for Sub Assembly Items,Alt Montaj Ürünleri İçin İş Emri Yap,
 "If enabled, system will create the work order for the exploded items against which BOM is available.","Etkinleştirildiğinde, sistem, malzeme listesinin uygun olduğu patlamış ürünler için iş emri oluşturur.",
 Planned Start Date,Planlanan Başlangıç Tarihi,
 Quantity and Description,Miktar ve Açıklama,
@@ -7447,38 +7309,38 @@
 Routing Name,Yönlendirme Adı,
 MFG-WO-.YYYY.-,MFG-WO-.YYYY.-,
 Item To Manufacture,Üretilecek Ürün,
-Material Transferred for Manufacturing,Üretim için Transfer edilen Malzeme,
+Material Transferred for Manufacturing,Üretim için Transfer edilen Materyal,
 Manufactured Qty,Üretilen Miktar,
-Use Multi-Level BOM,Çok Seviyeli BOM Kullan,
-Plan material for sub-assemblies,Alt-montaj için malzeme planla,
-Skip Material Transfer to WIP Warehouse,WIP Deposuna Malzeme Transferini Atla,
-Check if material transfer entry is not required,Malzeme transfer girişinin gerekli olup olmadığını kontrol edin,
-Backflush Raw Materials From Work-in-Progress Warehouse,WIP depodaki hammaddelerin geri akışı,
+Use Multi-Level BOM,Çok Seviyeli BOM kullan,
+Plan material for sub-assemblies,Alt-montajlar Plan malzeme,
+Skip Material Transfer to WIP Warehouse,WIP Deposuna Malzeme Aktarımını Atla,
+Check if material transfer entry is not required,Malzeme aktarım girişi gerekli değil mi kontrol edin,
+Backflush Raw Materials From Work-in-Progress Warehouse,Devam eden depodaki hammaddelerin geri akışı,
 Update Consumed Material Cost In Project,Projede Tüketilen Malzeme Maliyetini Güncelle,
 Warehouses,Depolar,
-This is a location where raw materials are available.,Burası hammaddelerin bulunduğu bir konum.,
+This is a location where raw materials are available.,Burası hammaddelerin bulunduğu bir yer.,
 Work-in-Progress Warehouse,Devam eden depo işi,
 This is a location where operations are executed.,"Bu, işlemlerin yürütüldüğü bir konumdur.",
 This is a location where final product stored.,"Bu, nihai ürünün depolandığı bir konumdur.",
 Scrap Warehouse,hurda Depo,
-This is a location where scraped materials are stored.,"Bu, ıskartaya çıkan malzemelerin depolandığı bir yerdir.",
-Required Items,Gerekli Ürünler,
-Planned End Date,Planlanan Bitiş Tarihi,
+This is a location where scraped materials are stored.,"Bu, kazınmış malzemelerin depolandığı bir yerdir.",
+Required Items,gerekli Öğeler,
 Actual Start Date,Fiili Başlangıç Tarihi,
+Planned End Date,Planlanan Bitiş Tarihi,
 Actual End Date,Fiili Bitiş Tarihi,
 Operation Cost,Operasyon Maliyeti,
-Planned Operating Cost,Planlı Operasyon Maliyeti,
-Actual Operating Cost,Fiili Operasyon Maliyeti,
-Additional Operating Cost,Ek Operasyon Maliyeti,
-Total Operating Cost,Toplam Operasyon Maliyeti,
-Manufacture against Material Request,Malzeme Talebine karşı Üret,
+Planned Operating Cost,Planlı İşletme Maliyeti,
+Actual Operating Cost,Gerçek İşletme Maliyeti,
+Additional Operating Cost,Ek İşletme Maliyeti,
+Total Operating Cost,Toplam İşletme Maliyeti,
+Manufacture against Material Request,Malzeme Talebi karşı imalatı,
 Work Order Item,İş Emri Öğesi,
 Available Qty at Source Warehouse,Kaynak Depodaki Mevcut Miktar,
 Available Qty at WIP Warehouse,WIP Ambarında Mevcut Miktar,
 Work Order Operation,İş Emri Operasyonu,
-Operation Description,Operasyon Tanımı,
-Operation completed for how many finished goods?,Kaç mamul için operasyon tamamlandı?,
-Work in Progress,Devam ediyor,
+Operation Description,İşletme Tanımı,
+Operation completed for how many finished goods?,Operasyon kaç mamul tamamlandı?,
+Work in Progress,Devam eden iş,
 Estimated Time and Cost,Tahmini Süre ve Maliyet,
 Planned Start Time,Planlanan Başlangıç Zamanı,
 Planned End Time,Planlanan Bitiş Zamanı,
@@ -7486,18 +7348,16 @@
 Actual Time and Cost,Gerçek Zaman ve Maliyet,
 Actual Start Time,Gerçek Başlangıç Zamanı,
 Actual End Time,Gerçek Bitiş Zamanı,
-Updated via 'Time Log','Zaman Logu' aracılığıyla Güncellendi,
+Updated via 'Time Log','Zaman Log' aracılığıyla Güncelleme,
 Actual Operation Time,Gerçek Çalışma Süresi,
 in Minutes\nUpdated via 'Time Log',Dakika \n 'Zaman Log' aracılığıyla Güncelleme,
 (Hour Rate / 60) * Actual Operation Time,(Saat Hızı / 60) * Gerçek Çalışma Süresi,
 Workstation Name,İş İstasyonu Adı,
-Workstation Type,İş İstasyonu Türü,
-Work Order Consumed Materials,İş Emri Sarf Malzemeleri,
-Production Capacity,Üretim Kapasitesi,
-Operating Costs,Operasyon Maliyetleri,
+Production Capacity,Üretim kapasitesi,
+Operating Costs,İşletim Maliyetleri,
 Electricity Cost,Elektrik Maliyeti,
 per hour,saat başına,
-Consumable Cost,Sarf Malzemesi Maliyeti,
+Consumable Cost,Sarf Maliyeti,
 Rent Cost,Kira Bedeli,
 Wages,Ücret,
 Wages per hour,Saatlik ücret,
@@ -7506,17 +7366,17 @@
 Certification Application,Sertifika Başvurusu,
 Name of Applicant,Başvuru sahibinin adı,
 Certification Status,Sertifika Durumu,
-Yet to appear,Henüz görünmedi,
+Yet to appear,Henüz görünmek,
 Certified,onaylı,
 Not Certified,Sertifikalı değil,
 USD,Amerikan Doları,
 INR,INR,
 Certified Consultant,Sertifikalı Danışman,
-Name of Consultant,Danışmanın Adı,
-Certification Validity,Belgelendirme Geçerliliği,
-Discuss ID,Discuss ID,
+Name of Consultant,Danışmanın adı,
+Certification Validity,Belgelendirme geçerliliği,
+Discuss ID,Kimliği tartış,
 GitHub ID,GitHub Kimliği,
-Non Profit Manager,Kâr Amacı Gütmeyen Yönetici,
+Non Profit Manager,Kâr Dışı Müdür,
 Chapter Head,Bölüm Başkanı,
 Meetup Embed HTML,Tanışma HTML Göm,
 chapters/chapter_name\nleave blank automatically set after saving chapter.,bölüm kaydedildikten sonra bölüm otomatik olarak ayarlanır.,
@@ -7527,29 +7387,29 @@
 Leave Reason,Nedenini Bırak,
 Donor Name,Donör Adı,
 Donor Type,Donör Türü,
-Withdrawn,Çekilmiş,
-Grant Application Details,Hibe Başvurusu Ayrıntıları,
-Grant Description,Hibe Açıklaması,
+Withdrawn,çekilmiş,
+Grant Application Details ,Hibe Başvurusu Ayrıntıları,
+Grant Description,Grant Açıklama,
 Requested Amount,Talep edilen miktar,
 Has any past Grant Record,Geçmiş Hibe Kayıtları var mı,
-Show on Website,Web sitesinde Göster,
-Assessment Mark (Out of 10),Değerlendirme Markası (10 üzerinden),
-Assessment Manager,Değerlendirme Müdürü,
-Email Notification Sent,E-posta Bildirimi Gönderildi,
+Show on Website,Web sitesinde göster,
+Assessment  Mark (Out of 10),Değerlendirme Markası (10 üzerinden),
+Assessment  Manager,Değerlendirme Müdürü,
+Email Notification Sent,Gönderilen E-posta Bildirimi,
 NPO-MEM-.YYYY.-,NPO-MEM-.YYYY.-,
 Membership Expiry Date,Üyelik Sona Erme Tarihi,
 Razorpay Details,Razorpay Ayrıntıları,
-Subscription ID,Abonelik ID,
-Customer ID,Müşteri ID,
+Subscription ID,Abonelik Kimliği,
+Customer ID,Müşteri Kimliği,
 Subscription Activated,Abonelik Etkinleştirildi,
-Subscription Start,Abonelik Başlangıcı,
+Subscription Start ,Abonelik Başlangıcı,
 Subscription End,Abonelik Sonu,
 Non Profit Member,Kâr Amacı Olmayan Üye,
 Membership Status,Üyelik Durumu,
 Member Since,Den beri üye,
 Payment ID,Ödeme Kimliği,
 Membership Settings,Üyelik Ayarları,
-Enable RazorPay For Memberships,Üyelikler İçin RazorPay'i Etkinleştir,
+Enable RazorPay For Memberships,Üyelikler İçin RazorPay&#39;i Etkinleştir,
 RazorPay Settings,RazorPay Ayarları,
 Billing Cycle,Fatura döngüsü,
 Billing Frequency,Fatura Sıklığı,
@@ -7575,7 +7435,7 @@
 Company Tagline for website homepage,web sitesinin ana Company Slogan,
 Company Description for website homepage,web sitesinin ana Firma Açıklaması,
 Homepage Slideshow,Anasayfa Slayt Gösterisi,
-"URL for ""All Products""",'Tüm Ürünler' URL,
+"URL for ""All Products""",&quot;Tüm Ürünler&quot; URL,
 Products to be shown on website homepage,Ürünler web sitesi ana sayfasında gösterilecek,
 Homepage Featured Product,Anasayfa Özel Ürün,
 route,rota,
@@ -7584,7 +7444,7 @@
 Number of Columns,Sütun sayısı,
 Number of columns for this section. 3 cards will be shown per row if you select 3 columns.,Bu bölüm için sütun sayısı. 3 sütun seçerseniz her satırda 3 kart gösterilecektir.,
 Section HTML,Bölüm HTML,
-Use this field to render any custom HTML in the section.,Bölümdeki herhangi bir özel HTML'yi oluşturmak için bu alanı kullanın.,
+Use this field to render any custom HTML in the section.,Bölümdeki herhangi bir özel HTML&#39;yi oluşturmak için bu alanı kullanın.,
 Section Order,Bölüm Siparişi,
 "Order in which sections should appear. 0 is first, 1 is second and so on.","Hangi bölümlerin görünmesi gerektiğini sıralayın. 0 birinci, 1 ikinci ve benzeri.",
 Homepage Section Card,Anasayfa Bölüm Kartı,
@@ -7623,12 +7483,12 @@
 Actual Time (in Hours),Gerçek Zaman (Saat olarak),
 Costing and Billing,Maliyet ve Faturalandırma,
 Total Costing Amount (via Timesheets),Toplam Maliyetleme Tutarı (Çalışma Sayfası Tablosu Üzerinden),
-Total Expense Claim (via Expense Claims),Toplam Gider Talepi (Gider Talepleri yoluyla),
-Total Purchase Cost (via Purchase Invoice),Toplam Satınalma Maliyeti (Satınalma Fatura üzerinden),
+Total Expense Claim (via Expense Claims),Toplam Gider İddiası (Gider Talepleri yoluyla),
+Total Purchase Cost (via Purchase Invoice),Toplam Satınalma Maliyeti (Satın Alma Fatura üzerinden),
 Total Sales Amount (via Sales Order),Toplam Satış Tutarı (Satış Siparişi Yoluyla),
 Total Billable Amount (via Timesheets),Toplam Faturalandırılabilir Tutar (Çalışma Sayfası Tablosu ile),
 Total Billed Amount (via Sales Invoices),Toplam Faturalandırılan Tutar (Satış Faturaları ile),
-Total Consumed Material Cost  (via Stock Entry),Toplam Tüketim Maliyeti Maliyeti (Stok Hareketi ile),
+Total Consumed Material Cost  (via Stock Entry),Toplam Tüketim Maliyeti Maliyeti (Stok Girişi ile),
 Gross Margin,Brüt Marj,
 Gross Margin %,Brüt Kar Marjı%,
 Monitor Progress,İzleme İlerlemesi,
@@ -7666,7 +7526,7 @@
 Actual Time (in hours),Gerçek Zaman (Saat olarak),
 Actual End Date (via Time Sheet),Gerçek tamamlanma tarihi (Zaman Tablosu'ndan),
 Total Costing Amount (via Time Sheet),(Zaman Formu aracılığıyla) Toplam Maliyet Tutarı,
-Total Expense Claim (via Expense Claim),(Gider İstem aracılığıyla) Toplam Gider Talepi,
+Total Expense Claim (via Expense Claim),(Gider İstem aracılığıyla) Toplam Gider İddiası,
 Total Billing Amount (via Time Sheet),Toplam Fatura Tutarı (Zaman Sheet yoluyla),
 Review Date,İnceleme tarihi,
 Closing Date,Kapanış Tarihi,
@@ -7685,34 +7545,33 @@
 Costing Amount,Maliyet Tutarı,
 Corrective/Preventive,Önleyici / Düzeltici,
 Corrective,Düzeltici,
-Preventive,Önleyici,
-Resolution,Çözüm,
-Resolutions,Çözümler,
+Preventive,önleyici,
+Resolution,Karar,
+Resolutions,kararlar,
 Quality Action Resolution,Kalite Eylem Çözünürlüğü,
 Quality Feedback Parameter,Kalite Geribildirim Parametresi,
 Quality Feedback Template Parameter,Kalite Geribildirim Şablon Parametresi,
-Quality Goal,Kalite Hedefi,
+Quality Goal,Kalite hedefi,
 Monitoring Frequency,Frekans İzleme,
-Weekday,Çalışma günü,
+Weekday,çalışma günü,
 Objectives,Hedefler,
 Quality Goal Objective,Kalite Hedef Amaç,
 Objective,Amaç,
-Agenda,Ajanda,
+Agenda,Gündem,
 Minutes,Dakika,
 Quality Meeting Agenda,Kalite Toplantı Gündemi,
 Quality Meeting Minutes,Kalite Toplantı Tutanakları,
 Minute,Dakika,
 Parent Procedure,Ebeveyn Prosedürü,
 Processes,Süreçler,
-Quality Procedure Process,Kalite Prosedür Süreci,
-Process Description,Süreç Açıklaması,
+Quality Procedure Process,Kalite Prosedürü Süreci,
+Process Description,Süreç açıklaması,
 Link existing Quality Procedure.,Mevcut Kalite Prosedürünü bağlayın.,
-Additional Information,Ek Bilgi,
-Additional Info,Ek Bilgi,
+Additional Information,ek bilgi,
 Quality Review Objective,Kalite İnceleme Amaç,
 DATEV Settings,DATEV Ayarları,
 Regional,Bölgesel,
-Consultant ID,Danışman ID,
+Consultant ID,Danışman Kimliği,
 GST HSN Code,GST HSN Kodu,
 HSN Code,HSN Kodu,
 GST Settings,GST Ayarları,
@@ -7753,8 +7612,8 @@
 194LA,194LA,
 194LBB,194LBB,
 194LBC,194LBC,
-Certificate No,Sertifika No,
-Deductee Details,Mahsup Ayrıntıları,
+Certificate No,sertifika numarası,
+Deductee Details,Deductee Ayrıntıları,
 PAN No,PAN Hayır,
 Validity Details,Geçerlilik Ayrıntıları,
 Rate Of TDS As Per Certificate,Sertifikaya Göre TDS Oranı,
@@ -7763,19 +7622,19 @@
 Active Menu,Aktif Menü,
 Restaurant Menu,Restaurant Menü,
 Price List (Auto created),Fiyat Listesi (Otomatik oluşturuldu),
-Restaurant Manager,Restaurant Yöneticisi,
+Restaurant Manager,Restaurant yöneticisi,
 Restaurant Menu Item,Restaurant Menü Öğesi,
 Restaurant Order Entry,Restoran Siparişi Girişi,
 Restaurant Table,Restaurant Masası,
-Click Enter To Add,Ekle Gir'i tıklayın,
+Click Enter To Add,Ekle Gir&#39;i tıklayın,
 Last Sales Invoice,Son Satış Faturası,
 Current Order,Geçerli Sipariş,
 Restaurant Order Entry Item,Restaurant Sipariş Girişi Maddesi,
-Served,Sunulan,
+Served,sunulan,
 Restaurant Reservation,Restaurant Rezervasyonu,
-Waitlisted,Bekleme listesinde,
+Waitlisted,Bekleme listesindeki,
 No Show,Gösterim Yok,
-No of People,Kişi Sayısı,
+No of People,İnsanlar Sayısı,
 Reservation Time,Rezervasyon Süresi,
 Reservation End Time,Rezervasyon Bitiş Saati,
 No of Seats,Koltuk Sayısı,
@@ -7786,36 +7645,34 @@
 Buyer of Goods and Services.,Mal ve Hizmet Alıcı.,
 CUST-.YYYY.-,CUST-.YYYY.-,
 Default Company Bank Account,Varsayılan Şirket Banka Hesabı,
-From Lead,Bu Müşteri Adayından,
-From Opportunity,Bu Fırsattan,
-Account Manager,Muhasebe Yöneticisi,
+From Lead,Baştan,
+Account Manager,Muhasebe Müdürü,
 Allow Sales Invoice Creation Without Sales Order,Satış Siparişi Olmadan Satış Faturası Oluşturmaya İzin Ver,
-Allow Sales Invoice Creation Without Delivery Note,İrsaliye olmadan Satış Faturası Oluşturmaya İzin Ver,
+Allow Sales Invoice Creation Without Delivery Note,Teslimat Notu Olmadan Satış Faturası Oluşturmaya İzin Ver,
 Default Price List,Standart Fiyat Listesi,
-Primary Address and Contact,Birincil Adres ve İletişim,
 Primary Address and Contact Detail,Birincil Adres ve İletişim Ayrıntısı,
 "Select, to make the customer searchable with these fields",Müşteriyi bu alanlarla aranabilir yapmak için seçin,
-Customer Primary Contact,Müşteri Birincil İletişim,
+Customer Primary Contact,Müşteri Birincil Temas,
 "Reselect, if the chosen contact is edited after save",Kaydedildikten sonra seçilen kişi düzenlenirse yeniden seç,
 Customer Primary Address,Müşteri Birincil Adres,
 "Reselect, if the chosen address is edited after save",Seçilen adres kaydedildikten sonra değiştirilirse yeniden seç,
 Primary Address,Birincil Adres,
 Mention if non-standard receivable account,Mansiyon standart dışı alacak hesabı varsa,
-Credit Limit and Payment Terms,Kredi Limiti ve Ödeme Vadesi,
-Additional information regarding the customer.,Müşteri ile ilgili ek bilgiler girin,
+Credit Limit and Payment Terms,Kredi Limiti ve Ödeme Koşulları,
+Additional information regarding the customer.,Müşteri ile ilgili ek bilgi.,
 Sales Partner and Commission,Satış Ortağı ve Komisyon,
 Commission Rate,Komisyon Oranı,
 Sales Team Details,Satış Ekibi Ayrıntıları,
 Customer POS id,Müşteri POS kimliği,
 Customer Credit Limit,Müşteri Kredi Limiti,
-Bypass Credit Limit Check at Sales Order,Siparişte Kredi Limit Kontrolünü Atla,
-Industry Type,Endüstri Türü,
+Bypass Credit Limit Check at Sales Order,Satış Siparişinde kontör limitini atla,
+Industry Type,Sanayi Tipi,
 MAT-INS-.YYYY.-,MAT-INS-.YYYY.-,
 Installation Date,Kurulum Tarihi,
 Installation Time,Kurulum Zaman,
 Installation Note Item,Kurulum Notu Maddesi,
 Installed Qty,Kurulan Miktar,
-Lead Source,Aday Kaynağı,
+Lead Source,Potansiyel Müşteri Kaynağı,
 Period Start Date,Dönem Başlangıç Tarihi,
 Period End Date,Dönem Sonu Tarihi,
 Cashier,kasiyer,
@@ -7831,7 +7688,7 @@
 Parent Item,Ana Kalem,
 List items that form the package.,Ambalajı oluşturan Ürünleri listeleyin,
 SAL-QTN-.YYYY.-,SAL-QTN-.YYYY.-,
-Quotation To,Teklif Kime,
+Quotation To,Teklif Etmek,
 Rate at which customer's currency is converted to company's base currency,Müşterinin para biriminin şirketin temel para birimine dönüştürülme oranı,
 Rate at which Price list currency is converted to company's base currency,Fiyat listesi para biriminin şirketin temel para birimine dönüştürülme oranı,
 Additional Discount and Coupon Code,Ek İndirim ve Kupon Kodu,
@@ -7843,7 +7700,7 @@
 Against Docname,Belge adı karşılığı,
 Additional Notes,ek Notlar,
 SAL-ORD-.YYYY.-,SAL-ORD-.YYYY.-,
-Skip Delivery Note,Satış İrsaliyesini Atla,
+Skip Delivery Note,Teslim Notunu Atla,
 In Words will be visible once you save the Sales Order.,Satış emrini kaydettiğinizde görünür olacaktır.,
 Track this Sales Order against any Project,Bu satış emrini bütün Projelere karşı takip et,
 Billing and Delivery Status,Fatura ve Teslimat Durumu,
@@ -7857,14 +7714,14 @@
 Not Billed,Faturalanmamış,
 Fully Billed,Tam Faturalı,
 Partly Billed,Kısmen Faturalandı,
-Ensure Delivery Based on Produced Serial No,Üretilen Seri Numaraya göre Teslimat yap,
-Supplier delivers to Customer,Tedarikçi Müşteriye teslim eder,
-Delivery Warehouse,Teslimat Deposu,
+Ensure Delivery Based on Produced Serial No,Üretilen Seri No&#39;ya Göre Teslimatı Sağlayın,
+Supplier delivers to Customer,Tedarikçi Müşteriye teslim,
+Delivery Warehouse,Teslim Depo,
 Planned Quantity,Planlanan Miktar,
 For Production,Üretim için,
-Work Order Qty,İş Emri Miktarı,
+Work Order Qty,Iş emri adet,
 Produced Quantity,Üretilen Miktar,
-Used for Production Plan,Üretim Planı için Kullanılır,
+Used for Production Plan,Üretim Planı için kullanılan,
 Sales Partner Type,Satış Ortağı Türü,
 Contact No.,İletişim No,
 Contribution (%),Katkı Payı (%),
@@ -7912,15 +7769,16 @@
 Change Abbreviation,Değişim Kısaltma,
 Parent Company,Ana Şirket,
 Default Values,Varsayılan Değerler,
-Default Holiday List,Varsayılan Tatil Listesi,
+Default Holiday List,Tatil Listesini Standart,
 Default Selling Terms,Varsayılan Satış Koşulları,
-Default Buying Terms,Varsayılan Satınalma Koşulları,
-Create Chart Of Accounts Based On,Buna Dayalı Hesap Planı Oluştur,
-Standard Template,Standart Şablon,
+Default Buying Terms,Varsayılan Satın Alma Koşulları,
+Create Chart Of Accounts Based On,Hesaplar Tabanlı On Of grafik oluşturma,
+Standard Template,standart Şablon,
 Existing Company,Mevcut Şirket,
-Chart Of Accounts Template,Hesap Planı Şablonu,
+Chart Of Accounts Template,Hesaplar Şablon Grafik,
+Existing Company ,mevcut Şirket,
 Date of Establishment,Kuruluş tarihi,
-Sales Settings,Satış Ayarları,
+Sales Settings,Satış ayarları,
 Monthly Sales Target,Aylık Satış Hedefi,
 Sales Monthly History,Satış Aylık Tarihi,
 Transactions Annual History,İşlemler Yıllık Geçmişi,
@@ -7931,11 +7789,7 @@
 Discount Allowed Account,İndirim İzinli Hesap,
 Discount Received Account,İndirim Alınan Hesap,
 Exchange Gain / Loss Account,Kambiyo Kâr / Zarar Hesabı,
-Unrealized Profit / Loss Account,Gerçekleşmemiş Kâr / Zarar Hesabı,
-Default Provisional Account,Varsayılan Geçici Hesap,
-Default In-Transit Warehouse,Varsayılan Transit Depo,
-Fixed Asset Defaults,Sabit Kıymet Varsayılanları,
-Unrealized Exchange Gain/Loss Account,Gerçekleşmemiş Döviz Kâr / Zarar Hesabı,
+Unrealized Exchange Gain/Loss Account,Gerçekleşmemiş Döviz Kazası / Zarar Hesabı,
 Allow Account Creation Against Child Company,Alt Şirkete Karşı Hesap Oluşturmaya İzin Verin,
 Default Payable Account,Standart Ödenecek Hesap,
 Default Employee Advance Account,Varsayılan Çalışan Vadeli Hesap,
@@ -7950,8 +7804,8 @@
 Default Inventory Account,Varsayılan Envanter Hesabı,
 Stock Adjustment Account,Stok Düzeltme Hesabı,
 Fixed Asset Depreciation Settings,Sabit Varlık Değer Kaybı Ayarları,
-Series for Asset Depreciation Entry (Journal Entry),Varlık Amortismanı Girişi Dizisi (Yevmiye Kaydı),
-Gain/Loss Account on Asset Disposal,Varlık Elden Çıkarma Kâr/Zarar Hesabı,
+Series for Asset Depreciation Entry (Journal Entry),Varlık Amortismanı Girişi Dizisi (Dergi Girişi),
+Gain/Loss Account on Asset Disposal,Varlık Bertaraf karı / Zarar Hesabı,
 Asset Depreciation Cost Center,Varlık Değer Kaybı Maliyet Merkezi,
 Budget Detail,Bütçe Detay,
 Exception Budget Approver Role,İstisna Bütçe Onaylayan Rolü,
@@ -7991,10 +7845,10 @@
 Bank Credit Balance,Banka Kredi Bakiyesi,
 Receivables,Alacaklar,
 Payables,Borçlar,
-Sales Orders to Bill,Bill'e Satış Siparişleri,
+Sales Orders to Bill,Bill&#39;e Satış Siparişleri,
 Purchase Orders to Bill,Siparişleri Faturaya Alın,
 New Sales Orders,Yeni Satış Emirleri,
-New Purchase Orders,Yeni Satınalma Siparişleri,
+New Purchase Orders,Yeni Satın alma Siparişleri,
 Sales Orders to Deliver,Teslim Satış Siparişleri,
 Purchase Orders to Receive,Almak için Emir Al,
 New Purchase Invoice,Yeni Satınalma Fatura,
@@ -8014,7 +7868,7 @@
 Do not show any symbol like $ etc next to currencies.,Para birimlerinin yanında $ vb semboller kullanmayın.,
 "If disable, 'Rounded Total' field will not be visible in any transaction","Devre dışıysa, 'Yuvarlanmış Toplam' alanı hiçbir işlemde görünmeyecektir.",
 Disable In Words,Words devre dışı bırak,
-"If disable, 'In Words' field will not be visible in any transaction","devre dışı ise, bu alanda 'sözleriyle' herhangi bir işlem görünür olmayacak",
+"If disable, 'In Words' field will not be visible in any transaction","devre dışı ise, bu alanda &#39;sözleriyle&#39; herhangi bir işlem görünür olmayacak",
 Item Classification,Ürün Sınıflandırması,
 General Settings,Genel Ayarlar,
 Item Group Name,Ürün Grup Adı,
@@ -8048,7 +7902,7 @@
 Targets,Hedefler,
 Show In Website,Web sitesinde Göster,
 Referral Code,Yönlendirme Kodu,
-To Track inbound purchase,Gelen alımları takip et,
+To Track inbound purchase,Gelen alımları takip etmek,
 Logo,Logo,
 Partner website,Ortak web sitesi,
 All Sales Transactions can be tagged against multiple **Sales Persons** so that you can set and monitor targets.,Ayarlamak ve hedefleri izleyebilirsiniz böylece tüm satış işlemleri birden ** Satış Kişilerin ** karşı etiketlenmiş olabilir.,
@@ -8070,14 +7924,14 @@
 Classification of Customers by region,Bölgelere göre Müşteriler sınıflandırılması,
 Territory Name,Bölge Adı,
 Parent Territory,Ana Bölge,
-Territory Manager,Bölge Yöneticisi,
+Territory Manager,Bölge Müdürü,
 For reference,Referans için,
 Territory Targets,Bölge Hedefleri,
 Set Item Group-wise budgets on this Territory. You can also include seasonality by setting the Distribution.,Bu bölgede Ürün grubu bütçeleri ayarlayın. Dağıtımı ayarlayarak dönemsellik de ekleyebilirsiniz.,
 UOM Name,Ölçü Birimi,
-Check this to disallow fractions. (for Nos),Kesirlere izin vermemek için bunu işaretleyin (Numaralar için),
+Check this to disallow fractions. (for Nos),Kesirlere izin vermemek için işaretleyin (Numaralar için),
 Website Item Group,Web Sitesi Ürün Grubu,
-Cross Listing of Item in multiple groups,Birden çok grupta çapraz ürün listesi,
+Cross Listing of Item in multiple groups,Çoklu gruplarda Ürün Cross İlanı,
 Default settings for Shopping Cart,Alışveriş Sepeti Varsayılan ayarları,
 Enable Shopping Cart,Alışveriş Sepeti etkinleştirin,
 Display Settings,Görüntü Ayarları,
@@ -8086,7 +7940,7 @@
 Show Stock Availability,Stok Uygunluğunu Göster,
 Show Contact Us Button,Bize Ulaşın Düğmesini Göster,
 Show Stock Quantity,Hisse Miktarını Göster,
-Show Apply Coupon Code,Kupon Kodunu Uygula'yı göster,
+Show Apply Coupon Code,Kupon Kodunu Uygula&#39;yı göster,
 Allow items not in stock to be added to cart,Stokta olmayan öğelerin sepete eklenmesine izin ver,
 Prices will not be shown if Price List is not set,Fiyat Listesi ayarlı değilse fiyatları gösterilmeyecektir,
 Quotation Series,Teklif Serisi,
@@ -8094,31 +7948,31 @@
 Enable Checkout,Ödeme etkinleştirme,
 Payment Success Url,Ödeme Başarı URL,
 After payment completion redirect user to selected page.,Ödeme tamamlandıktan sonra kullanıcıyı seçilen sayfaya yönlendir.,
-Batch Details,Parti/LOT Ayrıntıları,
-Batch ID,Parti/Lot ID,
+Batch Details,Toplu İş Ayrıntıları,
+Batch ID,Parti numarası,
 image,görüntü,
-Parent Batch,Ana Parti/Lot,
+Parent Batch,Ana Parti,
 Manufacturing Date,Üretim tarihi,
-Batch Quantity,Parti/Lot Miktarı,
-Batch UOM,Parti/Lot Birim,
+Batch Quantity,Parti Miktarı,
+Batch UOM,Toplu UOM,
 Source Document Type,Kaynak Belge Türü,
 Source Document Name,Kaynak Belge Adı,
-Batch Description,Parti/Lot Açıklaması,
-Bin,Stok yeri,
+Batch Description,Parti Açıklaması,
+Bin,Kutu,
 Reserved Quantity,Ayrılan Miktar,
 Actual Quantity,Gerçek Miktar,
 Requested Quantity,istenen Miktar,
 Reserved Qty for sub contract,Ayrılmış Alt sözleşme için mahsup miktarı,
 Moving Average Rate,Hareketli Ortalama Kuru,
 FCFS Rate,FCFS Oranı,
-Customs Tariff Number,Gümrük Tarife Numarası,
+Customs Tariff Number,Gümrük Tarife numarası,
 Tariff Number,Tarife Numarası,
 Delivery To,Teslim,
 MAT-DN-.YYYY.-,MAT-DN-.YYYY.-,
 Is Return,İade mi,
 Issue Credit Note,Sayı kredi notu,
-Return Against Delivery Note,Satış İrsaliyesi Karşılığı İade,
-Customer's Purchase Order No,Müşterinin Satınalma Sipariş No,
+Return Against Delivery Note,İrsaliye Karşılığı İade,
+Customer's Purchase Order No,Müşterinin Sipariş numarası,
 Billing Address Name,Fatura Adresi Adı,
 Required only for sample item.,Sadece örnek Ürün için gereklidir.,
 "If you have created a standard template in Sales Taxes and Charges Template, select one and click on the button below.","Satış Vergi ve Harçlar Şablon standart bir şablon oluşturdu varsa, birini seçin ve aşağıdaki butona tıklayın.",
@@ -8128,13 +7982,13 @@
 Driver Name,Sürücü adı,
 Track this Delivery Note against any Project,Bu irsaliyeyi bütün Projelere karşı takip et,
 Inter Company Reference,Şirketler Arası Referans,
-Print Without Amount,Tutar olmadan Yazdır,
+Print Without Amount,Tutarı olmadan yazdır,
 % Installed,% Montajlanan,
 % of materials delivered against this Delivery Note,% malzeme bu İrsaliye karşılığında teslim edildi,
 Installation Status,Kurulum Durumu,
 Excise Page Number,Tüketim Sayfa Numarası,
 Instructions,Talimatlar,
-From Warehouse,Atölyesi'nden,
+From Warehouse,Atölyesi&#39;nden,
 Against Sales Order,Satış Emri Karşılığı,
 Against Sales Order Item,Satış Sipariş Kalemi karşılığı,
 Against Sales Invoice,Satış Faturası Karşılığı,
@@ -8166,40 +8020,40 @@
 Departure Time,Hareket saati,
 Delivery Stops,Teslimat Durakları,
 Calculate Estimated Arrival Times,Tahmini Varış Sürelerini Hesaplayın,
-Use Google Maps Direction API to calculate estimated arrival times,Tahmini varış saatlerini hesaplamak için Google Haritalar Yönü API'sini kullanın,
+Use Google Maps Direction API to calculate estimated arrival times,Tahmini varış saatlerini hesaplamak için Google Haritalar Yönü API&#39;sini kullanın,
 Optimize Route,Rotayı Optimize Et,
-Use Google Maps Direction API to optimize route,Rotayı optimize etmek için Google Haritalar Yönü API'sini kullanın,
+Use Google Maps Direction API to optimize route,Rotayı optimize etmek için Google Haritalar Yönü API&#39;sini kullanın,
 In Transit,Transit olarak,
 Fulfillment User,Yerine getirme kullanıcısı,
 "A Product or a Service that is bought, sold or kept in stock.","Bir Ürün veya satın alınan, satılan veya stokta tutulan bir hizmet.",
 STO-ITEM-.YYYY.-,STO-MADDE-.YYYY.-,
 Variant Of,Varyantı,
 "If item is a variant of another item then description, image, pricing, taxes etc will be set from the template unless explicitly specified","Açıkça belirtilmediği sürece madde daha sonra açıklama, resim, fiyatlandırma, vergiler şablondan kurulacak vb başka bir öğe bir varyantı ise",
-Is Item from Hub,Ürün Hub'dan mı,
+Is Item from Hub,Hub&#39;dan Öğe Var mı,
 Default Unit of Measure,Varsayılan Ölçü Birimi,
-Maintain Stock,Stok Takibi Yap,
-Standard Selling Rate,Standart Satış Fiyatı,
-Auto Create Assets on Purchase,Satınalmada Varlıkları Otomatik Oluştur,
+Maintain Stock,Stok koruyun,
+Standard Selling Rate,Standart Satış Oranı,
+Auto Create Assets on Purchase,Satın Almada Varlıkları Otomatik Oluştur,
 Asset Naming Series,Öğe Adlandırma Dizisi,
-Over Delivery/Receipt Allowance (%),Fazla Alış/Satış İrsaliyesi Ödeneği (%),
-Barcodes,Barkodlar,
-Shelf Life In Days,Raf Ömrü (gün),
-End of Life,Kullanım Süresi Sonu,
-Default Material Request Type,Varsayılan Malzeme Talep Türü,
+Over Delivery/Receipt Allowance (%),Fazla Teslimat / Makbuz Ödeneği (%),
+Barcodes,barkodlar,
+Shelf Life In Days,Gün Raf Ömrü,
+End of Life,Kullanım süresi Sonu,
+Default Material Request Type,Standart Malzeme Talebi Tipi,
 Valuation Method,Değerleme Yöntemi,
 FIFO,FIFO,
 Moving Average,Hareketli Ortalama,
-Warranty Period (in days),Garanti Süresi (gün),
-Auto re-order,Otomatik Yeniden Sipariş,
-Reorder level based on Warehouse,Depoya göre yeniden sipariş seviyesi,
-Will also apply for variants unless overrridden,Geçersiz kılınmadıkça varyantlar için de geçerli olacak,
-Units of Measure,Ölçü Birimleri,
-Will also apply for variants,Ayrıca varyantlar için geçerli olacak,
-Serial Nos and Batches,Seri Numaralar ve Lotlar,
+Warranty Period (in days),(Gün) Garanti Süresi,
+Auto re-order,Otomatik yeniden sipariş,
+Reorder level based on Warehouse,Depo dayalı Yeniden Sipariş seviyeli,
+Will also apply for variants unless overrridden,Overrridden sürece de varyantları için geçerli olacaktır,
+Units of Measure,Ölçü birimleri,
+Will also apply for variants,Ayrıca varyantları için geçerli olacaktır,
+Serial Nos and Batches,Seri No ve Katlar,
 Has Batch No,Parti No Var,
 Automatically Create New Batch,Otomatik Olarak Yeni Toplu İş Oluşturma,
 Batch Number Series,Parti Numarası Serisi,
-"Example: ABCD.#####. If series is set and Batch No is not mentioned in transactions, then automatic batch number will be created based on this series. If you always want to explicitly mention Batch No for this item, leave this blank. Note: this setting will take priority over the Naming Series Prefix in Stock Settings.","Örnek: ABCD. #####. İşlemler için seri ayarlanmış ve Parti Numarası belirtilmediyse, bu seriye göre otomatik parti numarası oluşturulacaktır. Bu öğe için her zaman Batch No'dan açıkça bahsetmek isterseniz, bunu boş bırakın. Not: Bu ayar, Stok Ayarları'nda Adlandırma Serisi Önekine göre öncelikli olacaktır.",
+"Example: ABCD.#####. If series is set and Batch No is not mentioned in transactions, then automatic batch number will be created based on this series. If you always want to explicitly mention Batch No for this item, leave this blank. Note: this setting will take priority over the Naming Series Prefix in Stock Settings.","Örnek: ABCD. #####. İşlemler için seri ayarlanmış ve Parti Numarası belirtilmediyse, bu seriye göre otomatik parti numarası oluşturulacaktır. Bu öğe için her zaman Batch No&#39;dan açıkça bahsetmek isterseniz, bunu boş bırakın. Not: Bu ayar, Stok Ayarları&#39;nda Adlandırma Serisi Önekine göre öncelikli olacaktır.",
 Has Expiry Date,Vade Sonu Var,
 Retain Sample,Numune Alın,
 Max Sample Quantity,Maksimum Numune Miktarı,
@@ -8208,91 +8062,69 @@
 Serial Number Series,Seri Numarası Serisi,
 "Example: ABCD.#####\nIf 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.","Örnek:. Serisi ayarlanır ve Seri No işlemlerinde belirtilen değilse ABCD ##### \n, daha sonra otomatik seri numarası bu serisine dayanan oluşturulur. Her zaman açıkça bu öğe için seri No. bahsetmek istiyorum. Bu boş bırakın.",
 Variants,Varyantlar,
-Has Variants,Varyantları Var,
+Has Variants,Varyasyoları var,
 "If this item has variants, then it cannot be selected in sales orders etc.","Bu öğeyi varyantları varsa, o zaman satış siparişleri vb seçilemez",
-Variant Based On,Varyanta Dayalı,
-Item Attribute,Ürün Öznitelikleri,
+Variant Based On,Varyant Dayalı,
+Item Attribute,Ürün Özellik,
 "Sales, Purchase, Accounting Defaults","Satış, Satınalma, Muhasebe Varsayılanları",
-Item Defaults,Ürün Varsayılanları,
-Price List Defaults,Fiyat Listesi Varsayılanları,
-Auto Insert Item Price If Missing,Eksikse Öğe Fiyatını Otomatik Ekle,
-Update Existing Price List Rate,Mevcut Fiyat Listesi Oranını Güncelle,
-Stock Validations,Stok Validasyonları,
-Stock Transactions Settings,Stok İşlem Ayarları,
-Role Allowed to Over Deliver/Receive,Aşırı Teslim Etmeye/Almaya İzin Verilen Rol,
-Users with this role are allowed to over deliver/receive against orders above the allowance percentage,Bu role sahip kullanıcıların, ödenek yüzdesinin üzerindeki siparişlere karşı fazla teslim/alma yapmasına izin verilir,
-Show Barcode Field in Stock Transactions,Stok İşlemlerinde Barkod Alanı Göster,
-Convert Item Description to Clean HTML in Transactions,İşlemlerde Öğe Açıklamasını Temiz HTML'ye Dönüştür,
-Quality Inspection Settings,Kalite Kontrol Ayarları,
-Action If Quality Inspection Is Rejected,Kalite Muayenesi Reddedilirse Yapılacak İşlem,
-Over Transfer Allowance,Fazla Aktarım Ödeneği,
-"The percentage you are allowed to transfer more against the quantity ordered. For example, if you have ordered 100 units, and your Allowance is 10%, then you are allowed transfer 110 units.","Sipariş edilen miktara göre daha fazla transfer etmenize izin verilen yüzde. Örneğin, 100 birim sipariş ettiyseniz ve Ödeneğiniz %10 ise, 110 birim transfer etmenize izin verilir.",
-Serial & Batch Item,Seri ve Parti Öğesi,
-Stock Planning,Stok Planlama,
-Stock Closing,Stok Kapanış,
-Serial & Batch Item Settings,Seri ve Toplu Öğe Ayarları,
-Have Default Naming Series for Batch ID?,Parti Kimliği için Varsayılan Adlandırma Serisi Var mı?,
-"Purchase, Replenishment Details","Satınalma, Yenileme Detayları",
-Is Purchase Item,Satınalma Malzemesi,
-Default Purchase Unit of Measure,Varsayılan Satınalma Önlemi Birimi,
+Item Defaults,Öğe Varsayılanları,
+"Purchase, Replenishment Details","Satın Alma, Yenileme Detayları",
+Is Purchase Item,Satın Alma Maddesi,
+Default Purchase Unit of Measure,Varsayılan Satın Alma Önlemi Birimi,
 Minimum Order Qty,Minimum Sipariş Miktarı,
-Minimum quantity should be as per Stock UOM,Minimum miktar Stok Birimine göre olmalı,
+Minimum quantity should be as per Stock UOM,Minimum miktar Stok UOM&#39;sine göre olmalıdır,
 Average time taken by the supplier to deliver,Tedarikçinin ortalama teslim süresi,
-Is Customer Provided Item,Müşteri Tarafından Sağlanan Ürün,
-Delivered by Supplier (Drop Ship),Tedarikçi Tarafından Teslim Edilir (Drop Ship),
-Supplier Items,Tedarikçi Ürünleri,
+Is Customer Provided Item,Müşteri Temin Edildi mi?,
+Delivered by Supplier (Drop Ship),Yüklenici tarafından teslim (Bırak Gemi),
+Supplier Items,Tedarikçi Öğeler,
 Foreign Trade Details,Dış Ticaret Detayları,
 Country of Origin,Menşei ülke,
 Sales Details,Satış Ayrıntılar,
-Default Sales Unit of Measure,Varsayılan Ürün Satış Birimi,
-Is Sales Item,Satış Ürünü,
-Grant Commission,Hibe Komisyonu,
-Minimum Net Rate,Minimum Net Oran,
-Maximum Net Rate,Maximum Net Oran,
-Max Discount (%),Maks İndirim (%),
-No of Months,Ay Sayısı,
-Customer Items,Müşteri Ürünleri,
+Default Sales Unit of Measure,Varsayılan Öğe Satış Birimi,
+Is Sales Item,Satış Maddesi,
+Max Discount (%),En fazla İndirim (%,
+No of Months,Ayların Sayısı,
+Customer Items,Müşteri Öğeler,
 Inspection Criteria,Muayene Kriterleri,
-Inspection Required before Purchase,Satınalma öncesi Muayene Gerekli,
-Inspection Required before Delivery,Teslimat öncesi Muayene Gerekli,
-Default BOM,Varsayılan BOM,
-Supply Raw Materials for Purchase,Satınalma için Hammadde Temini,
-If subcontracted to a vendor,Bir satıcıya taşeron edildiyse,
+Inspection Required before Purchase,Muayene Satın Alma önce Gerekli,
+Inspection Required before Delivery,Muayene Teslim önce Gerekli,
+Default BOM,Standart BOM,
+Supply Raw Materials for Purchase,Tedarik Hammadde Satın Alma için,
+If subcontracted to a vendor,Bir satıcıya taşeron durumunda,
 Customer Code,Müşteri Kodu,
-Default Item Manufacturer,Varsayılan Ürün Üreticisi,
+Default Item Manufacturer,Varsayılan Öğe Üreticisi,
 Default Manufacturer Part No,Varsayılan Üretici Parça Numarası,
 Show in Website (Variant),Web Sitesi göster (Varyant),
 Items with higher weightage will be shown higher,Yüksek weightage Öğeler yüksek gösterilir,
 Show a slideshow at the top of the page,Sayfanın üstünde bir slayt gösterisi göster,
-Website Image,Websitesi Resmi,
-Website Warehouse,Websitesi Deposu,
+Website Image,Web sitesi resmi,
+Website Warehouse,Web Sitesi Depo,
 "Show ""In Stock"" or ""Not in Stock"" based on stock available in this warehouse.","Depodaki mevcut stok durumuna göre ""Stokta"" veya ""Stokta değil"" olarak göster",
 Website Item Groups,Web Sitesi Ürün Grupları,
 List this Item in multiple groups on the website.,Bu Ürünü web sitesinde gruplar halinde listeleyin,
 Copy From Item Group,Ürün Grubundan kopyalayın,
-Website Content,Websitesi içeriği,
+Website Content,Web sitesi içeriği,
 You can use any valid Bootstrap 4 markup in this field. It will be shown on your Item Page.,Bu alanda geçerli bir Bootstrap 4 işaretlemesi kullanabilirsiniz. Öğe Sayfanızda gösterilecektir.,
 Total Projected Qty,Tahmini toplam Adet,
-Other Info,Diğer Bilgiler,
 Hub Publishing Details,Hub Yayınlama Ayrıntıları,
-Publish in Hub,Hubda Yayınla,
-Publish Item to hub.erpnext.com,Ürünü hub.erpnext.com'da yayınla,
+Publish in Hub,Hub Yayınla,
+Publish Item to hub.erpnext.com,Hub.erpnext.com için Öğe Yayınla,
 Hub Category to Publish,Yayınlanacak Hub Kategorisi,
 Hub Warehouse,Hub Ambarları,
-"Publish ""In Stock"" or ""Not in Stock"" on Hub based on stock available in this warehouse.",Bu depodaki stoklara göre Hub'da 'Stokta' veya 'Stokta Yok' diye yayınlayın,
-Synced With Hub,Hub ile Senkronize edildi,
-Item Alternative,Ürün Alternatifleri,
+"Publish ""In Stock"" or ""Not in Stock"" on Hub based on stock available in this warehouse.",Yayın için &quot;Stokta&quot; ya da &quot;Stokta Bulunmadı&quot; on Hub bu stokta mevcut bulunan stokları esas alın.,
+Synced With Hub,Hub ile Senkronize,
+Item Alternative,Öğe alternatif,
 Alternative Item Code,Alternatif Ürün Kodu,
 Two-way,Çift yönlü,
-Alternative Item Name,Alternatif Ürün adı,
+Alternative Item Name,Alternatif öğe adı,
 Attribute Name,Öznitelik Adı,
 Numeric Values,Sayısal Değerler,
-From Range,Başlangıç Aralığı,
+From Range,Sınıfımızda,
 Increment,Artım,
-To Range,Bitiş Aralığı,
+To Range,Range,
 Item Attribute Values,Ürün Özellik Değerler,
 Item Attribute Value,Ürün Özellik Değeri,
-Attribute Value,Özellik Değeri,
+Attribute Value,Değer Özellik,
 Abbreviation,Kısaltma,
 "This will be appended to the Item Code of the variant. For example, if your abbreviation is ""SM"", and the item code is ""T-SHIRT"", the item code of the variant will be ""T-SHIRT-SM""","Bu varyant Ürün Kodu eklenecektir. Senin kısaltması ""SM"", ve eğer, örneğin, ürün kodu ""T-Shirt"", ""T-Shirt-SM"" olacak varyantın madde kodu",
 Item Barcode,Ürün Barkodu,
@@ -8303,7 +8135,7 @@
 "For the convenience of customers, these codes can be used in print formats like Invoices and Delivery Notes","Müşterilerinin rahatlığı için, bu kodlar faturalarda ve irsaliyelerde olduğu gibi basılı formatta kullanılabilir.",
 Ref Code,Referans Kodu,
 Item Default,Öğe varsayılan,
-Purchase Defaults,Satınalma Varsayılanları,
+Purchase Defaults,Satın Alma Varsayılanları,
 Default Buying Cost Center,Standart Alış Maliyet Merkezi,
 Default Supplier,Standart Tedarikçi,
 Default Expense Account,Standart Gider Hesabı,
@@ -8316,49 +8148,49 @@
 Item Quality Inspection Parameter,Ürün Kalite Kontrol Parametreleri,
 Acceptance Criteria,Kabul Kriterleri,
 Item Reorder,Ürün Yeniden Sipariş,
-Check in (group),Giriş (grup),
-Request for,Talep bunun için,
-Re-order Level,Yeniden Sipariş Seviyesi,
-Re-order Qty,Yeniden Sipariş Miktarı,
+Check in (group),(Grup) kontrol,
+Request for,Talebi,
+Re-order Level,Yeniden sipariş seviyesi,
+Re-order Qty,Yeniden sipariş Adet,
 Item Supplier,Ürün Tedarikçisi,
-Item Variant,Ürün Varyantı,
-Item Variant Attribute,Ürün Varyant Özelliği,
-Do not update variants on save,Kaydederken varyantları güncelleme,
+Item Variant,Öğe Varyant,
+Item Variant Attribute,Öğe Varyant Özellik,
+Do not update variants on save,Kaydetme türevlerini güncelleme,
 Fields will be copied over only at time of creation.,Alanlar yalnızca oluşturulma anında kopyalanır.,
 Allow Rename Attribute Value,Öznitelik Değerini Yeniden Adlandırmaya İzin Ver,
 Rename Attribute Value in Item Attribute.,Öğe Özniteliğinde Öznitelik Değerini Yeniden Adlandır.,
 Copy Fields to Variant,Alanları Varyanta Kopyala,
 Item Website Specification,Ürün Web Sitesi Özellikleri,
 Table for Item that will be shown in Web Site,Web Sitesi gösterilir Öğe için Tablo,
-Landed Cost Item,Yüklenen Maliyet Kalemi,
-Receipt Document Type,Fiş Belge Türü,
-Receipt Document,Fiş Belgesi,
+Landed Cost Item,İnen Maliyet Kalemi,
+Receipt Document Type,Makbuz Belge Türü,
+Receipt Document,makbuz Belgesi,
 Applicable Charges,Uygulanabilir Ücretler,
-Purchase Receipt Item,Satınalma makbuzu Ürünleri,
-Landed Cost Purchase Receipt,Yüklenen Maliyet Alış Fişi,
-Landed Cost Taxes and Charges,Yüklenen Maliyet Vergiler ve Ücretler,
-Landed Cost Voucher,Yüklenen Maliyet Çeki,
+Purchase Receipt Item,Satın Alma makbuzu Ürünleri,
+Landed Cost Purchase Receipt,İnen Maliyet Alım Makbuzu,
+Landed Cost Taxes and Charges,Indi Maliyet Vergiler ve Ücretler,
+Landed Cost Voucher,Indi Maliyet Çeki,
 MAT-LCV-.YYYY.-,MAT-LCV-.YYYY.-,
-Purchase Receipts,Satınalma İrsaliyeleri,
-Purchase Receipt Items,Satınalma Fişi Ürünleri,
-Get Items From Purchase Receipts,Satınalma Fişinden Ürünleri Al,
-Distribute Charges Based On,Masrafları Şuna Göre Dağıt,
+Purchase Receipts,Satın Alma İrsaliyeleri,
+Purchase Receipt Items,Satın alma makbuzu Ürünleri,
+Get Items From Purchase Receipts,Satınalma Makbuzlar Gönderen Ürünleri alın,
+Distribute Charges Based On,Dağıt Masraflar Dayalı,
 Landed Cost Help,Indi Maliyet Yardım,
-Manufacturers used in Items,Ürünlerde kullanılan Üreticileri,
+Manufacturers used in Items,Öğeler kullanılan Üreticileri,
 Limited to 12 characters,12 karakter ile sınırlıdır,
 MAT-MR-.YYYY.-,MAT-MR-.YYYY.-,
 Partially Ordered,Kısmen Sipariş Edildi,
-Transferred,Aktarılan,
+Transferred,aktarılan,
 % Ordered,% Sipariş edildi,
 Terms and Conditions Content,Şartlar ve Koşullar İçeriği,
 Quantity and Warehouse,Miktar ve Depo,
 Lead Time Date,Teslim Zamanı Tarihi,
-Min Order Qty,Minimum Sipariş Miktarı,
+Min Order Qty,Minimum sipariş miktarı,
 Packed Item,Paketli Ürün,
 To Warehouse (Optional),Depo (İsteğe bağlı),
 Actual Batch Quantity,Gerçek Parti Miktarı,
 Prevdoc DocType,Prevdoc Doctype,
-Parent Detail docname,Ana Detay belge adı,
+Parent Detail docname,Ana Detay belgesi adı,
 "Generate packing slips for packages to be delivered. Used to notify package number, package contents and its weight.","Paketleri teslim edilmek üzere fişleri ambalaj oluşturun. Paket numarası, paket içeriğini ve ağırlığını bildirmek için kullanılır.",
 Indicates that the package is a part of this delivery (Only Draft),Paketin bu teslimatın bir parçası olduğunu gösterir (Sadece Taslak),
 MAT-PAC-.YYYY.-,MAT-PAC-.YYYY.-,
@@ -8375,26 +8207,26 @@
 Packing Slip Item,Ambalaj Makbuzu Ürünleri,
 DN Detail,DN Detay,
 STO-PICK-.YYYY.-,STO SEÇME-.YYYY.-,
-Material Transfer for Manufacture,Üretim için Malzeme Transferi,
+Material Transfer for Manufacture,Üretim için Materyal Transfer,
 Qty of raw materials will be decided based on the qty of the Finished Goods Item,"Hammadde miktarına, Mamul Madde miktarına göre karar verilecektir.",
 Parent Warehouse,Ana Depo,
 Items under this warehouse will be suggested,Bu depo altındaki ürünler önerilecektir,
 Get Item Locations,Öğe Konumlarını Alın,
-Item Locations,Ürün Konumları,
-Pick List Item,Pick List Ürünü,
-Picked Qty,Toplanan Miktar,
-Price List Master,Ana Fiyat Listesi,
+Item Locations,Öğe Konumları,
+Pick List Item,Liste Öğesini Seç,
+Picked Qty,Alınan Miktar,
+Price List Master,Fiyat Listesi Ana,
 Price List Name,Fiyat Listesi Adı,
-Price Not UOM Dependent,Fiyat Birime Bağlı değil,
+Price Not UOM Dependent,Fiyat UOM Bağımlı Değil,
 Applicable for Countries,Ülkeler için geçerlidir,
 Price List Country,Fiyat Listesi Ülke,
 MAT-PRE-.YYYY.-,MAT-ÖN .YYYY.-,
-Supplier Delivery Note,Tedarikçi İrsaliyesi,
+Supplier Delivery Note,Tedarikçi Teslim Notu,
 Time at which materials were received,Malzemelerin alındığı zaman,
-Return Against Purchase Receipt,Satınalma İrsaliyesine karşın İade,
+Return Against Purchase Receipt,Satınalma Makbuzu Karşı dön,
 Rate at which supplier's currency is converted to company's base currency,Tedarikçinin para biriminin şirketin temel para birimine dönüştürülme oranı,
-Sets 'Accepted Warehouse' in each row of the items table.,Kalemler tablosunun her satırında 'Kabul Edilen Depo' ayarlar.,
-Sets 'Rejected Warehouse' in each row of the items table.,Kalemler tablosunun her satırında 'Reddedilen Depo' ayarlar.,
+Sets 'Accepted Warehouse' in each row of the items table.,Kalemler tablosunun her satırında &#39;Kabul Edilen Depo&#39; ayarlar.,
+Sets 'Rejected Warehouse' in each row of the items table.,Kalemler tablosunun her satırında &#39;Reddedilen Depo&#39; ayarlar.,
 Raw Materials Consumed,Tüketilen Hammaddeler,
 Get Current Stock,Cari Stok alın,
 Consumed Items,Tüketilen Ürünler,
@@ -8406,7 +8238,7 @@
 Received and Accepted,Alındı ve Kabul edildi,
 Accepted Quantity,Kabul edilen Miktar,
 Rejected Quantity,Reddedilen Miktar,
-Accepted Qty as per Stock UOM,Stok UOM'ye göre Kabul Edilen Miktar,
+Accepted Qty as per Stock UOM,Stok UOM&#39;ye göre Kabul Edilen Miktar,
 Sample Quantity,Numune Miktarı,
 Rate and Amount,Oran ve Miktar,
 MAT-QA-.YYYY.-,MAT-QA .YYYY.-,
@@ -8431,8 +8263,8 @@
 Quick Stock Balance,Hızlı Stok Bakiyesi,
 Available Quantity,Mevcut Miktarı,
 Distinct unit of an Item,Bir Öğe Farklı birim,
-Warehouse can only be changed via Stock Entry / Delivery Note / Purchase Receipt,Depo yalnızca Stok Hareketi / Alış / Satış İrsaliyesi üzerinden değiştirilebilir,
-Purchase / Manufacture Details,Satınalma / Üretim Detayları,
+Warehouse can only be changed via Stock Entry / Delivery Note / Purchase Receipt,Depo yalnızca Stok Girdisi / İrsaliye / Satın Alım Makbuzu üzerinden değiştirilebilir,
+Purchase / Manufacture Details,Satın alma / Üretim Detayları,
 Creation Document Type,Oluşturulan Belge Türü,
 Creation Document No,Oluşturulan Belge Tarihi,
 Creation Date,Oluşturulma Tarihi,
@@ -8453,49 +8285,49 @@
 Warranty Period (Days),Garanti Süresi (Gün),
 Serial No Details,Seri No Detayları,
 MAT-STE-.YYYY.-,MAT-STE-.YYYY.-,
-Stock Entry Type,Stok Hareket Türü,
-Stock Entry (Outward GIT),Stok Hareketi (Dışa GIT),
+Stock Entry Type,Stok girişi türü,
+Stock Entry (Outward GIT),Stok Girişi (Dışa GIT),
 Material Consumption for Manufacture,Üretimde Malzeme Tüketimi,
-Repack,Yeniden Paketleme,
-Send to Subcontractor,Taşerona Gönder,
+Repack,Yeniden paketlemek,
+Send to Subcontractor,Taşeron&#39;a Gönder,
 Delivery Note No,İrsaliye No,
 Sales Invoice No,Satış Fatura No,
-Purchase Receipt No,Satınalma makbuzu numarası,
+Purchase Receipt No,Satın alma makbuzu numarası,
 Inspection Required,Muayene Gerekli,
-From BOM,BOM'dan,
+From BOM,BOM Gönderen,
 For Quantity,Miktar,
-As per Stock UOM,Stok Birimine göre,
+As per Stock UOM,Stok Ölçü Birimi gereğince,
 Including items for sub assemblies,Alt montajlar için öğeleri içeren,
 Default Source Warehouse,Varsayılan Kaynak Deposu,
 Source Warehouse Address,Kaynak Depo Adresi,
 Default Target Warehouse,Standart Hedef Depo,
 Target Warehouse Address,Hedef Depo Adresi,
-Update Rate and Availability,Oranı ve Kullanılabilirliği Güncelle,
+Update Rate and Availability,Güncelleme Oranı ve Kullanılabilirlik,
 Total Incoming Value,Toplam Gelen Değeri,
 Total Outgoing Value,Toplam Giden Değeri,
-Total Value Difference (Out - In),Toplam Değer Farkı (Çıkış - Giriş),
-Additional Costs,Ek Maliyetler,
+Total Value Difference (Out - In),Toplam Değer Farkı (Out - In),
+Additional Costs,Ek maliyetler,
 Total Additional Costs,Toplam Ek Maliyetler,
 Customer or Supplier Details,Müşteri ya da Tedarikçi Detayları,
 Per Transferred,Transfer başına,
-Stock Entry Detail,Stok Hareket Detayı,
-Basic Rate (as per Stock UOM),Temel Oran (Stok Birimine göre),
+Stock Entry Detail,Stok Girdisi Detayı,
+Basic Rate (as per Stock UOM),Temel Oranı (Stok Ölçü Birimi göre),
 Basic Amount,Temel Tutar,
-Additional Cost,Ek Maliyet,
+Additional Cost,Ek maliyet,
 Serial No / Batch,Seri No / Parti,
 BOM No. for a Finished Good Item,Biten İyi Ürün için BOM numarası,
-Material Request used to make this Stock Entry,Bu Stok Hareketi yapmak için kullanılan Malzeme Talebi,
-Subcontracted Item,Fason Ürün,
-Against Stock Entry,Stok Hareketine karşın,
-Stock Entry Child,Stok Hareketi Alt,
-PO Supplied Item,PO Tedarik Edilen Ürün,
-Reference Purchase Receipt,Referans Satınalma Fişi,
+Material Request used to make this Stock Entry,Bu stok girdisini yapmak için kullanılan Malzeme Talebi,
+Subcontracted Item,Taşeronluk kalemi,
+Against Stock Entry,Stok girişine karşı,
+Stock Entry Child,Stok girişi,
+PO Supplied Item,PO Tedarik Edilen Öğe,
+Reference Purchase Receipt,Referans Satın Alma Fişi,
 Stock Ledger Entry,Stok Defter Girdisi,
 Outgoing Rate,Giden Oranı,
-Actual Qty After Transaction,İşlem sonrası Mevcut Miktar,
+Actual Qty After Transaction,İşlem sonrası gerçek Adet,
 Stock Value Difference,Stok Değer Farkı,
 Stock Queue (FIFO),Stok Kuyruğu (FIFO),
-Is Cancelled,İptal edildi,
+Is Cancelled,İptal edilmiş,
 Stock Reconciliation,Stok Mutabakatı,
 This tool helps you to update or fix the quantity and valuation of stock in the system. It is typically used to synchronise the system values and what actually exists in your warehouses.,"Bu araç, güncellemek veya sistemde stok miktarı ve değerleme düzeltmek için yardımcı olur. Genellikle sistem değerlerini ve ne aslında depolarda var eşitlemek için kullanılır.",
 MAT-RECO-.YYYY.-,MAT-Reco-.YYYY.-,
@@ -8506,42 +8338,37 @@
 Current Valuation Rate,Güncel Değerleme Oranı,
 Current Amount,Güncel Tutar,
 Quantity Difference,Miktar Farkı,
-Amount Difference,Tutar Farkı,
-Item Naming By,Ürün Adlandırma,
+Amount Difference,tutar Farkı,
+Item Naming By,Ürün adlandırma,
 Default Item Group,Standart Ürün Grubu,
 Default Stock UOM,Varsayılan Stok Ölçü Birimi,
 Sample Retention Warehouse,Numune Alma Deposu,
 Default Valuation Method,Standart Değerleme Yöntemi,
-Show Barcode Field,Barkod Alanını Göster,
-Convert Item Description to Clean HTML,Öğe Açıklamaunu Temiz HTML'ye Dönüştür,
+Show Barcode Field,Göster Barkod Alanı,
+Convert Item Description to Clean HTML,Öğe Açıklamaunu Temiz HTML&#39;ye Dönüştür,
 Allow Negative Stock,Negatif stok seviyesine izin ver,
 Automatically Set Serial Nos based on FIFO,FIFO ya Göre Seri Numaraları Otomatik Olarak Ayarla,
 Auto Material Request,Otomatik Malzeme Talebi,
-Inter Warehouse Transfer Settings,Depolar arası Transfer Ayarları,
-Freeze Stock Entries,Stok Girişlerini Dondur,
-Stock Frozen Upto,Bu tarihe kadar Stoğu Dondur,
+Inter Warehouse Transfer Settings,Depolar Arası Transfer Ayarları,
+Freeze Stock Entries,Donmuş Stok Girdileri,
+Stock Frozen Upto,Stok Dondurulmuş,
 Batch Identification,Toplu Tanımlama,
 Use Naming Series,Adlandırma Dizisini Kullan,
 Naming Series Prefix,Seri Öneki Adlandırma,
-UOM Category,Birim Kategorisi,
-UOM Conversion Detail,Birim Dönüşüm Detayı,
+UOM Category,UOM Kategorisi,
+UOM Conversion Detail,Ölçü Birimi Dönüşüm Detayı,
 Variant Field,Varyant Alanı,
-Control Historical Stock Transactions,Geçmiş Stok İşlemlerini Kontrol Et,
-Disable Serial No And Batch Selector,Seri No ve Lot Seçiciyi Devre Dışı Bırak,
-Role Allowed to Create/Edit Back-dated Transactions,Geriye Dönük İşlemleri Oluşturma / Düzenleme İzni Rolü,
 A logical Warehouse against which stock entries are made.,Stok girişleri mantıksal Depoya karşı yapıldı,
-No stock transactions can be created or modified before this date,Bu tarihten önce hiçbir Stok işlemi oluşturulamaz veya değiştirilemez.,
-Stock transactions that are older than the mentioned days cannot be modified,Belirtilen günlerden daha eski olan hisse senedi işlemleri değiştirilemez,
 Warehouse Detail,Depo Detayı,
 Warehouse Name,Depo Adı,
 Warehouse Contact Info,Depo İletişim Bilgileri,
-PIN,PIN,
+PIN,TOPLU İĞNE,
 ISS-.YYYY.-,ISS-.YYYY.-,
-Raised By (Email),(Email) ile talep eden,
+Raised By (Email),(Email)  ile talep eden,
 Issue Type,Sorun Tipi,
 Issue Split From,Sayıdan Böl,
-Service Level,Servis Seviyesi,
-Response By,Yanıtlayan,
+Service Level,Servis seviyesi,
+Response By,Yanıtla,
 Response By Variance,Varyans Yanıtı,
 Ongoing,Devam eden,
 Resolution By,Çözünürlük,
@@ -8550,27 +8377,27 @@
 First Responded On,İlk cevap verilen,
 Resolution Details,Karar Detayları,
 Opening Date,Açılış Tarihi,
-Opening Time,Açılış Süresi,
+Opening Time,Açılış Zamanı,
 Resolution Date,Karar Tarihi,
 Via Customer Portal,Müşteri Portalı üzerinden,
 Support Team,Destek Ekibi,
 Issue Priority,Sorun Önceliği,
-Service Day,Hizmet Günü,
-Workday,İş günü,
+Service Day,Hizmet günü,
+Workday,iş günü,
 Default Priority,Varsayılan Öncelik,
 Priorities,Öncelikleri,
 Support Hours,Destek Saatleri,
-Support and Resolution,Destek ve Çözüm,
-Default Service Level Agreement,Varsayılan Hizmet Seviyesi Sözleşmesi,
-Entity,Varlık,
+Support and Resolution,Destek ve Çözünürlük,
+Default Service Level Agreement,Varsayılan Servis Seviyesi Sözleşmesi,
+Entity,varlık,
 Agreement Details,Anlaşma Detayları,
-Response and Resolution Time,Tepki ve Çözüm Süresi,
+Response and Resolution Time,Tepki ve Çözünürlük Zamanı,
 Service Level Priority,Servis Seviyesi Önceliği,
-Resolution Time,Çözüm Süresi,
+Resolution Time,Çözünürlük zaman,
 Support Search Source,Arama Kaynağı Desteği,
-Source Type,Kaynak Tipi,
+Source Type,kaynak tipi,
 Query Route String,Sorgu Rota Dizesi,
-Search Term Param Name,Arama Terimi Parametre Adı,
+Search Term Param Name,Arama Dönem Param Adı,
 Response Options,Yanıt Seçenekleri,
 Response Result Key Path,Yanıt Sonuç Anahtar Yolu,
 Post Route String,Rota Dizesi Gönder,
@@ -8591,11 +8418,11 @@
 Get Started Sections,Başlarken Bölümleri,
 Show Latest Forum Posts,Son Forum Mesajlarını Göster,
 Forum Posts,Forum Mesajları,
-Forum URL,Forum URL'si,
+Forum URL,Forum URL&#39;si,
 Get Latest Query,Son Sorguyu Al,
 Response Key List,Yanıt Anahtar Listesi,
 Post Route Key,Rota Yolu Sonrası,
-Search APIs,Arama API'ları,
+Search APIs,Arama API&#39;ları,
 SER-WRN-.YYYY.-,SER-UYR-.YYYY.-,
 Issue Date,Veriliş tarihi,
 Item and Warranty Details,Ürün ve Garanti Detayları,
@@ -8625,113 +8452,110 @@
 Available Stock for Packing Items,Ambalajlama Ürünleri İçin Kullanılabilir Stok,
 Bank Clearance Summary,Banka Gümrükleme Özet,
 Bank Remittance,Banka havalesi,
-Batch Item Expiry Status,Parti Ürün Son Kullanma Durumu,
+Batch Item Expiry Status,Toplu Öğe Bitiş Durumu,
 Batch-Wise Balance History,Parti Geneli Bakiye Geçmişi,
 BOM Explorer,BOM Gezgini,
 BOM Search,Ürün Ağacı Arama,
-BOM Stock Calculated,BOM Stoğu Hesaplandı,
+BOM Stock Calculated,BOM Hisse Senedi Hesaplanan,
 BOM Variance Report,BOM Varyans Raporu,
 Campaign Efficiency,Kampanya Verimliliği,
 Cash Flow,Nakit Akışı,
 Completed Work Orders,Tamamlanmış İş Emri,
 To Produce,Üretilecek,
-Produced,Üretilen,
-Consolidated Financial Statement,Konsolide Mali Tablo,
+Produced,Üretilmiş,
+Consolidated Financial Statement,Konsolide finansal tablolar,
 Course wise Assessment Report,Akıllıca Hazırlanan Değerlendirme Raporu,
 Customer Acquisition and Loyalty,Müşteri Edinme ve Sadakat,
-Customer Credit Balance,Müşteri Alacak Bakiyesi,
+Customer Credit Balance,Müşteri Kredi Bakiyesi,
 Customer Ledger Summary,Müşteri Muhasebe Özeti,
-Customer-wise Item Price,Müşteri Bazında Ürün Fiyatı,
+Customer-wise Item Price,Müşteri-bilge Öğe Fiyat,
 Customers Without Any Sales Transactions,Satış İşlemleri Olmayan Müşteriler,
 Daily Timesheet Summary,Günlük Zaman Çizelgesi Özeti,
-Daily Work Summary Replies,Günlük Çalışma Özeti Cevapları,
+Daily Work Summary Replies,Günlük İş Özeti Cevapları,
 DATEV,DATEV,
 Delayed Item Report,Gecikmeli Ürün Raporu,
 Delayed Order Report,Gecikmeli Sipariş Raporu,
 Delivered Items To Be Billed,Faturalanacak Teslim edilen Ürünler,
 Delivery Note Trends,Teslimat Analizi,
 Electronic Invoice Register,Elektronik Fatura Kaydı,
-Employee Advance Summary,Personel Avans Özeti,
-Employee Billing Summary,Personel Fatura Özeti,
-Employee Birthday,Personel Doğum Günü,
-Employee Information,Personel Bilgileri,
-Employee Leave Balance,Personel Kalan İzni,
-Employee Leave Balance Summary,Personel İzin Bakiyesi Özeti,
-Employees Working on a Holiday,Tatilde çalışan Personeller,
+Employee Advance Summary,Çalışan Advance Özeti,
+Employee Billing Summary,Çalışan Fatura Özeti,
+Employee Birthday,Çalışan Doğum Günü,
+Employee Information,Çalışan Bilgileri,
+Employee Leave Balance,Çalışanın Kalan İzni,
+Employee Leave Balance Summary,Çalışan İzin Bakiyesi Özeti,
+Employees working on a holiday,tatil çalışanlar,
 Eway Bill,Eway Bill,
-Expiring Memberships,Üyeliklerin Süresi Doluyor,
+Expiring Memberships,Süregelen Üyelikler,
 Fichier des Ecritures Comptables [FEC],Fichier des Ecritures Comptables [FEC],
 Final Assessment Grades,Final Değerlendirme Notları,
 Fixed Asset Register,Sabit Varlık Kaydı,
 Gross and Net Profit Report,Brüt ve Net Kar Raporu,
-GST Itemised Purchase Register,GST'ye göre Satın Alınan Kayıt,
+GST Itemised Purchase Register,GST&#39;ye göre Satın Alınan Kayıt,
 GST Itemised Sales Register,GST Madde Numaralı Satış Kaydı,
-GST Purchase Register,GST Satınalma Kaydı,
+GST Purchase Register,GST Satın Alma Kaydı,
 GST Sales Register,GST Satış Kaydı,
 GSTR-1,GSTR-1,
 GSTR-2,GSTR-2,
 Hotel Room Occupancy,Otel Odasının Kullanımı,
-HSN-wise-summary of outward supplies,Dışa açık malzemelerin HSN bazında özeti,
-Inactive Customers,Pasif Müşteriler,
-Inactive Sales Items,Pasif Satış Ürünleri,
+HSN-wise-summary of outward supplies,Dışa açık malzemelerin HSN-bilge özeti,
+Inactive Customers,Etkin olmayan müşteriler,
+Inactive Sales Items,Etkin Olmayan Satış Öğeleri,
 IRS 1099,IRS 1099,
-Issued Items Against Work Order,İş Emrine karşın Verilmiş Ürünler,
-Projected Quantity as Source,Kaynak olarak Öngörülen Miktar,
-Warehouse Wise Stock Balance,Depo bazında Stok Bakiyesi,
+Issued Items Against Work Order,İş Emrine Karşı Verilmiş Ürünler,
+Projected Quantity as Source,Kaynak olarak Öngörülen Miktarı,
 Item Balance (Simple),Öğe Dengesi (Basit),
-Item Price Stock,Ürün Fiyat Stok,
+Item Price Stock,Öğe Fiyat Stok,
 Item Prices,Ürün Fiyatları,
-Item Shortage Report,Ürün Yetersizlik Raporu,
-Item Variant Details,Ürün Varyant Detayları,
-Item-wise Price List Rate,Ürün bazında Fiyat Listesi Oranı,
-Item-wise Purchase History,Ürün bazında Satınalma Geçmişi,
-Item-wise Purchase Register,Ürün bazında Alım Kaydı,
-Item-wise Sales History,Ürün bazında Satış Geçmişi,
-Item-wise Sales Register,Ürün bazında Satış Kaydı,
-Item-wise Annual Sales,Ürün bazında Yıllık Satış
-Items To Be Requested,Talep Edilecek Ürünler,
+Item Shortage Report,Ürün Yetersizliği Raporu,
+Item Variant Details,Öğe Varyant Detayları,
+Item-wise Price List Rate,Ürün bilgisi Fiyat Listesi Oranı,
+Item-wise Purchase History,Ürün bilgisi Satın Alma Geçmişi,
+Item-wise Purchase Register,Ürün bilgisi Alım Kaydı,
+Item-wise Sales History,Ürün bilgisi Satış Geçmişi,
+Item-wise Sales Register,Ürün bilgisi Satış Kaydı,
+Items To Be Requested,İstenecek Ürünler,
 Reserved,Ayrılmış,
-Itemwise Recommended Reorder Level,Ürün bazlı Önerilen Yeniden Sipariş Seviyesi,
-Lead Details,Müşteri Aday Detayları,
-Lead Owner Efficiency,Aday Sahibi Verimliliği,
+Itemwise Recommended Reorder Level,Ürünnin Önerilen Yeniden Sipariş Düzeyi,
+Lead Details,Potansiyel Müşteri Detayları,
+Lead Owner Efficiency,Kurşun Sahibi Verimliliği,
 Loan Repayment and Closure,Kredi Geri Ödeme ve Kapanışı,
 Loan Security Status,Kredi Güvenlik Durumu,
-Lost Opportunity,Fırsat Kaybedildi,
-Modules,Modüller,
+Lost Opportunity,Fırsat Kayıp,
 Maintenance Schedules,Bakım Programları,
-Material Requests for which Supplier Quotations are not created,Tedarikçi Teklifleri için oluşturulmayan Malzeme Talepleri,
-Monthly Attendance Sheet,Aylık Puantaj Cetveli,
+Material Requests for which Supplier Quotations are not created,Kendisi için tedarikçi fiyat teklifi oluşturulmamış Malzeme Talepleri,
+Monthly Attendance Sheet,Aylık Katılım Cetveli,
 Open Work Orders,İş Emirlerini Aç,
 Qty to Deliver,Teslim Edilecek Miktar,
 Patient Appointment Analytics,Hasta Randevu Analizi,
-Payment Period Based On Invoice Date,Fatura Tarihine dayalı Ödeme Süresi,
-Pending SO Items For Purchase Request,Satınalma Talebi bekleyen PO Ürünleri,
+Payment Period Based On Invoice Date,Fatura Tarihine Dayalı Ödeme Süresi,
+Pending SO Items For Purchase Request,Satın Alma Talebi bekleyen PO Ürünleri,
 Procurement Tracker,Tedarik Takibi,
 Product Bundle Balance,Ürün Paketi Dengesi,
-Production Analytics,Üretim Analizi,
+Production Analytics,Üretim Analytics,
 Profit and Loss Statement,Kar ve Zarar Tablosu,
-Profitability Analysis,Karlılık Analizi,
+Profitability Analysis,karlılık Analizi,
 Project Billing Summary,Proje Fatura Özeti,
-Project wise Stock Tracking,Proje bazlı Stok Takibi,
-Prospects Engaged But Not Converted,İlgilenilen Potansiyel Müşteriler,
-Purchase Analytics,Satınalma Analizleri,
-Purchase Invoice Trends,Satınalma Fatura Analizi,
+Project wise Stock Tracking,Proje bilge Stok Takibi,
+Project wise Stock Tracking ,Proje bilgisi Stok Takibi,
+Prospects Engaged But Not Converted,"Etkilenen, ancak Dönüştürülmeyen Beklentiler",
+Purchase Analytics,Satın alma analizleri,
+Purchase Invoice Trends,Satın Alma Fatura Analizi,
 Qty to Receive,Alınacak Miktar,
 Received Qty Amount,Alınan Miktar Miktarı,
 Billed Qty,Faturalı Miktar,
-Delayed Tasks Summary,Gecikmiş Görevler Özeti,
-Purchase Order Trends,Satınalma Siparişi Analizi,
-Purchase Receipt Trends,Satınalma İrsaliyesi Analizi,
-Purchase Register,Satınalma Kaydı,
+Purchase Order Trends,Satın Alma Sipariş Analizi,
+Purchase Receipt Trends,Satın Alma Teslim Alma Analizi,
+Purchase Register,Satın alma kaydı,
 Quotation Trends,Teklif Trendleri,
-Received Items To Be Billed,Faturalanacak Alınan Malzemeler,
+Received Items To Be Billed,Faturalanacak  Alınan Malzemeler,
 Qty to Order,Sipariş Miktarı,
-Requested Items To Be Transferred,Transfer Edilmesi İstenen Ürünler,
+Requested Items To Be Transferred,Transfer edilmesi istenen Ürünler,
 Qty to Transfer,Transfer edilecek Miktar,
-Salary Register,Maaş Kaydı,
+Salary Register,Maaş Kayıt,
 Sales Analytics,Satış Analizleri,
-Sales Invoice Trends,Satış Faturası Trendleri,
-Sales Order Trends,Satış Siparişi Trendleri,
+Sales Invoice Trends,Satış Faturası Trendler,
+Sales Order Trends,Satış Sipariş Trendler,
 Sales Partner Commission Summary,Satış Ortağı Komisyonu Özeti,
 Sales Partner Target Variance based on Item Group,Ürün Grubuna Göre Satış Ortağı Hedef Varyansı,
 Sales Partner Transaction Summary,Satış Ortağı İşlem Özeti,
@@ -8740,21 +8564,21 @@
 Average Commission Rate,Ortalama Komisyon Oranı,
 Sales Payment Summary,Satış Ödeme Özeti,
 Sales Person Commission Summary,Satış Personeli Komisyon Özeti,
-Sales Person Target Variance Based On Item Group,Ürün Grubuna Göre Satış Personeli Hedef Varyansı,
-Sales Person-wise Transaction Summary,Satış Personeli bazlı İşlem Özeti,
-Sales Register,Satış Kaydı,
+Sales Person Target Variance Based On Item Group,Satış Grubu Bazında Ürün Grubu Bazında Hedef Varyansı,
+Sales Person-wise Transaction Summary,Satış Personeli bilgisi İşlem Özeti,
+Sales Register,Satış Kayıt,
 Serial No Service Contract Expiry,Seri No Hizmet Sözleşmesi Vadesi,
 Serial No Status,Seri No Durumu,
-Serial No Warranty Expiry,Seri No Garanti Bitiş Tarihi,
+Serial No Warranty Expiry,Seri No Garanti Bitiş tarihi,
 Stock Ageing,Stok Yaşlanması,
 Stock and Account Value Comparison,Stok ve Hesap Değeri Karşılaştırması,
 Stock Projected Qty,Öngörülen Stok Miktarı,
 Student and Guardian Contact Details,Öğrenci ve Guardian İletişim Bilgileri,
-Student Batch-Wise Attendance,Öğrenci Toplu Katılım,
+Student Batch-Wise Attendance,Öğrenci Toplu Wise Seyirci,
 Student Fee Collection,Öğrenci Ücret Toplama,
 Student Monthly Attendance Sheet,Öğrenci Aylık Hazirun Cetveli,
-Subcontracted Item To Be Received,Alınacak Fason Ürünler,
-Subcontracted Raw Materials To Be Transferred,Transfer Edilecek Fason Hammaddeler,
+Subcontracted Item To Be Received,Alınacak Taşeron Madde,
+Subcontracted Raw Materials To Be Transferred,Taşınacak Hammadde Aktarılacak,
 Supplier Ledger Summary,Tedarikçi Defterinin Özeti,
 Supplier-Wise Sales Analytics,Tedarikçi Satış Analizi,
 Support Hour Distribution,Destek Saat Dağılımı,
@@ -8764,18 +8588,18 @@
 Territory-wise Sales,Bölge Satışları,
 Total Stock Summary,Toplam Stok Özeti,
 Trial Balance,Mizan,
-Trial Balance (Simple),Mizan (Basit),
-Trial Balance for Party,Parti için Mizan,
-Unpaid Expense Claim,Ödenmemiş Masraf Talebi,
+Trial Balance (Simple),Deneme Dengesi (Basit),
+Trial Balance for Party,Parti için Deneme Dengesi,
+Unpaid Expense Claim,Ödenmemiş Gider Talebi,
 Warehouse wise Item Balance Age and Value,Depo bilge Öğe Bakiye Yaş ve Değer,
 Work Order Stock Report,İş Emri Stok Raporu,
-Work Orders in Progress,Devam eden İş Emirleri,
+Work Orders in Progress,Devam Eden İş Emirleri,
 Validation Error,Doğrulama Hatası,
 Automatically Process Deferred Accounting Entry,Ertelenmiş Muhasebe Girişini Otomatik Olarak İşle,
 Bank Clearance,Banka Havalesi,
 Bank Clearance Detail,Banka Gümrükleme Detayı,
 Update Cost Center Name / Number,Maliyet Merkezi Adını / Numarasını Güncelleme,
-Journal Entry Template,Yevmiye Kaydı Şablonu,
+Journal Entry Template,Dergi Giriş Şablonu,
 Template Title,Şablon Başlığı,
 Journal Entry Type,Yevmiye Kayıt Türü,
 Journal Entry Template Account,Yevmiye Kayıt Şablon Hesabı,
@@ -8792,10 +8616,10 @@
 Select warehouse for material requests,Malzeme talepleri için depo seçin,
 Transfer Materials For Warehouse {0},Depo İçin Transfer Malzemeleri {0},
 Production Plan Material Request Warehouse,Üretim Planı Malzeme Talebi Depo,
-Sets 'Source Warehouse' in each row of the items table.,Ürün tablosunun her satırında 'Kaynak Ambarı'nı ayarlar.,
-Sets 'Target Warehouse' in each row of the items table.,Ürün tablosunun her satırında 'Hedef Ambarı'nı ayarlar.,
-Show Cancelled Entries,İptal Edilen Kayıtları Göster,
-Backdated Stock Entry,Geriye Dönük Stok Kaydı,
+Sets 'Source Warehouse' in each row of the items table.,Kalemler tablosunun her satırında &#39;Kaynak Depo&#39; ayarlar.,
+Sets 'Target Warehouse' in each row of the items table.,Kalem tablosunun her satırında &#39;Hedef Depo&#39; ayarlar.,
+Show Cancelled Entries,İptal Edilen Girişleri Göster,
+Backdated Stock Entry,Geriye Dönük Stok Girişi,
 Row #{}: Currency of {} - {} doesn't matches company currency.,Satır # {}: {} - {} para birimi şirket para birimiyle eşleşmiyor.,
 {} Assets created for {},{} İçin oluşturulan {} varlıklar,
 {0} Number {1} is already used in {2} {3},{0} {1} sayısı zaten {2} {3} içinde kullanılıyor,
@@ -8851,30 +8675,26 @@
 Published on,yayınlandı,
 Service Received But Not Billed,Hizmet Alındı Ama Faturalandırılmadı,
 Deferred Accounting Settings,Ertelenmiş Hesap Ayarları,
-Invoice Cancellation,Fatura İptali,
-Invoicing Features,Faturalandırma Özellikleri,
-Report Setting,Rapor Ayarları,
-Tax Settings,Vergi Ayarları
 Book Deferred Entries Based On,Defterin Ertelenmiş Girişlerine Dayalı,
 Days,Günler,
 Months,Aylar,
 Book Deferred Entries Via Journal Entry,Yevmiye Kaydıyla Ertelenen Girişleri Ayırtın,
-Submit Journal Entries,Yevmiye Kayıtlarını Gönderin,
-If this is unchecked Journal Entries will be saved in a Draft state and will have to be submitted manually,"Bu işaretlenmemişse, Yevmiye Kayıtları Taslak durumunda kaydedilecek ve manuel olarak gönderilmeleri gerekecektir.",
+Submit Journal Entries,Dergi Girişlerini Gönderin,
+If this is unchecked Journal Entries will be saved in a Draft state and will have to be submitted manually,"Bu işaretlenmemişse, Dergi Girişleri Taslak durumunda kaydedilecek ve manuel olarak gönderilmeleri gerekecektir.",
 Enable Distributed Cost Center,Dağıtılmış Maliyet Merkezini Etkinleştir,
 Distributed Cost Center,Dağıtılmış Maliyet Merkezi,
 Dunning,ihtar,
 DUNN-.MM.-.YY.-,DUNN-.MM .-. YY.-,
 Overdue Days,Gecikmiş Günler,
-Dunning Type,İhtar Türü,
-Dunning Fee,İhtar Ücreti,
+Dunning Type,İhtar türü,
+Dunning Fee,İhtar ücreti,
 Dunning Amount,İhtar Tutarı,
 Resolved,Çözüldü,
-Unresolved,Çözülmedi,
+Unresolved,Çözülmemiş,
 Printing Setting,Baskı Ayarı,
 Body Text,Gövde metni,
 Closing Text,Kapanış Metni,
-Resolve,Çöz,
+Resolve,çözmek,
 Dunning Letter Text,İhtar Mektubu Metni,
 Is Default Language,Varsayılan Dil,
 Letter or Email Body Text,Mektup veya E-posta Gövde Metni,
@@ -8887,8 +8707,8 @@
 Custom Remarks,Özel Açıklamalar,
 Please select a Company first.,Lütfen önce bir Şirket seçin.,
 "Row #{0}: Reference Document Type must be one of Sales Order, Sales Invoice, Journal Entry or Dunning","Satır # {0}: Referans Belge Türü, Satış Siparişi, Satış Faturası, Yevmiye Kaydı veya İhtarlardan biri olmalıdır",
-POS Closing Entry,POS Kapanış Kaydı,
-POS Opening Entry,POS Açılış Kaydı,
+POS Closing Entry,POS Kapanış Girişi,
+POS Opening Entry,POS Açılış Girişi,
 POS Transactions,POS İşlemleri,
 POS Closing Entry Detail,POS Kapanış Giriş Detayı,
 Opening Amount,Açılış Tutarı,
@@ -8906,17 +8726,17 @@
 POS Invoice Reference,POS Fatura Referansı,
 Set Posting Date,Kayıt Tarihini Ayarla,
 Opening Balance Details,Bakiye Ayrıntılarını Açma,
-POS Opening Entry Detail,POS Açılış Kaydı Detayı,
+POS Opening Entry Detail,POS Açılış Giriş Detayı,
 POS Payment Method,POS Ödeme Yöntemi,
-Payment Methods,Ödeme Metodları,
+Payment Methods,Ödeme metodları,
 Process Statement Of Accounts,Hesapların İşlem Bildirimi,
 General Ledger Filters,Genel Muhasebe Filtreleri,
 Customers,Müşteriler,
-Select Customers By,Şuna Göre Müşteri Seç,
+Select Customers By,Müşterileri Seçin,
 Fetch Customers,Müşterileri Getir,
 Send To Primary Contact,Birincil Kişiye Gönder,
 Print Preferences,Baskı Tercihleri,
-Include Ageing Summary,Yaşlanma Özetini Dahil et,
+Include Ageing Summary,Yaşlanma Özetini Dahil Et,
 Enable Auto Email,Otomatik E-postayı Etkinleştir,
 Filter Duration (Months),Filtre Süresi (Ay),
 CC To,CC için,
@@ -8924,7 +8744,6 @@
 Emails Queued,Sıraya Alınan E-postalar,
 Process Statement Of Accounts Customer,Müşteri Hesaplarının İşlem Beyanı,
 Billing Email,Fatura E-postası,
-Primary Contact,Birincil İletişim,
 Primary Contact Email,Birincil İletişim E-postası,
 PSOA Cost Center,PSOA Maliyet Merkezi,
 PSOA Project,PSOA Projesi,
@@ -8956,7 +8775,7 @@
 02-Post Sale Discount,02-Sonradan Satış İndirimi,
 03-Deficiency in services,03-Hizmetlerde Eksiklik,
 04-Correction in Invoice,04-Faturada Düzeltme,
-05-Change in POS,05-POS'ta Değişim,
+05-Change in POS,05-POS&#39;ta Değişim,
 06-Finalization of Provisional assessment,06-Geçici değerlendirmenin sonuçlandırılması,
 07-Others,07-Diğerleri,
 Eligibility For ITC,ITC için Uygunluk,
@@ -9005,10 +8824,10 @@
 Purchase Details,Satınalma detayları,
 Depreciation Posting Date,Amortisman Kaydı Tarihi,
 "By default, the Supplier Name is set as per the Supplier Name entered. If you want Suppliers to be named by a  ","Varsayılan olarak, Tedarikçi Adı girilen Tedarikçi Adına göre ayarlanır. Tedarikçilerin bir",
- choose the 'Naming Series' option.,'Adlandırma Serisi' seçeneğini seçin.,
-Configure the default Price List when creating a new Purchase transaction. Item prices will be fetched from this Price List.,Yeni bir Satınalma işlemi oluştururken varsayılan Fiyat Listesini yapılandırın. Ürün fiyatları bu Fiyat Listesinden alınacaktır.,
-"If this option is configured 'Yes', ERPNext will prevent you from creating a Purchase Invoice or Receipt without creating a Purchase Order first. This configuration can be overridden for a particular supplier by enabling the 'Allow Purchase Invoice Creation Without Purchase Order' checkbox in the Supplier master.","Bu seçenek 'Evet' olarak yapılandırılırsa, ERPNext, önce bir Satınalma Siparişi oluşturmadan bir Satınalma Faturası veya Fiş oluşturmanızı engeller. Bu yapılandırma, belirli bir tedarikçi için, Tedarikçi ana sayfasındaki 'Satınalma Siparişi Olmadan Satınalma Faturası Oluşturmaya İzin Ver' onay kutusu etkinleştirilerek geçersiz kılınabilir.",
-"If this option is configured 'Yes', ERPNext will prevent you from creating a Purchase Invoice without creating a Purchase Receipt first. This configuration can be overridden for a particular supplier by enabling the 'Allow Purchase Invoice Creation Without Purchase Receipt' checkbox in the Supplier master.","Bu seçenek 'Evet' olarak yapılandırılırsa, ERPNext, önce bir Satınalma Fişi oluşturmadan bir Satınalma Faturası oluşturmanızı engeller. Bu yapılandırma, belirli bir tedarikçi için Tedarikçi ana sayfasındaki 'Satınalma Fişi Olmadan Satınalma Faturası Oluşturmaya İzin Ver' onay kutusu etkinleştirilerek geçersiz kılınabilir.",
+ choose the 'Naming Series' option.,&#39;Adlandırma Serisi&#39; seçeneğini seçin.,
+Configure the default Price List when creating a new Purchase transaction. Item prices will be fetched from this Price List.,Yeni bir Satın Alma işlemi oluştururken varsayılan Fiyat Listesini yapılandırın. Ürün fiyatları bu Fiyat Listesinden alınacaktır.,
+"If this option is configured 'Yes', ERPNext will prevent you from creating a Purchase Invoice or Receipt without creating a Purchase Order first. This configuration can be overridden for a particular supplier by enabling the 'Allow Purchase Invoice Creation Without Purchase Order' checkbox in the Supplier master.","Bu seçenek &#39;Evet&#39; olarak yapılandırılırsa, ERPNext, önce bir Satın Alma Siparişi oluşturmadan bir Satın Alma Faturası veya Fiş oluşturmanızı engeller. Bu yapılandırma, belirli bir tedarikçi için, Tedarikçi ana sayfasındaki &#39;Satın Alma Siparişi Olmadan Satın Alma Faturası Oluşturmaya İzin Ver&#39; onay kutusu etkinleştirilerek geçersiz kılınabilir.",
+"If this option is configured 'Yes', ERPNext will prevent you from creating a Purchase Invoice without creating a Purchase Receipt first. This configuration can be overridden for a particular supplier by enabling the 'Allow Purchase Invoice Creation Without Purchase Receipt' checkbox in the Supplier master.","Bu seçenek &#39;Evet&#39; olarak yapılandırılırsa, ERPNext, önce bir Satın Alma Fişi oluşturmadan bir Satın Alma Faturası oluşturmanızı engeller. Bu yapılandırma, belirli bir tedarikçi için Tedarikçi ana sayfasındaki &#39;Satın Alma Fişi Olmadan Satın Alma Faturası Oluşturmaya İzin Ver&#39; onay kutusu etkinleştirilerek geçersiz kılınabilir.",
 Quantity & Stock,Miktar ve Stok,
 Call Details,Çağrı Ayrıntıları,
 Authorised By,Tarafından yetkilendirildi,
@@ -9043,7 +8862,7 @@
 ...Adding Topic to Courses,... Derslere Konu Ekleniyor,
 Add Topic to Courses,Derslere Konu Ekle,
 This topic is already added to the existing courses,Bu konu zaten mevcut kurslara eklendi,
-"If Shopify does not have a customer in the order, then while syncing the orders, the system will consider the default customer for the order",Shopify'ın siparişte bir müşterisi yoksa siparişleri senkronize ederken sistem sipariş için varsayılan müşteriyi dikkate alır.,
+"If Shopify does not have a customer in the order, then while syncing the orders, the system will consider the default customer for the order",Shopify&#39;ın siparişte bir müşterisi yoksa siparişleri senkronize ederken sistem sipariş için varsayılan müşteriyi dikkate alır.,
 The accounts are set by the system automatically but do confirm these defaults,"Hesaplar sistem tarafından otomatik olarak belirlenir, ancak bu varsayılanları onaylar",
 Default Round Off Account,Varsayılan Yuvarlama Hesabı,
 Failed Import Log,Günlüğü İçe Aktarma Başarısız,
@@ -9070,7 +8889,7 @@
 Clinical Procedure Rate,Klinik Prosedür Oranı,
 Check this if the Clinical Procedure is billable and also set the rate.,Klinik Prosedürün faturalandırılabilir olup olmadığını kontrol edin ve ücreti de ayarlayın.,
 Check this if the Clinical Procedure utilises consumables. Click ,Klinik Prosedür sarf malzemeleri kullanıyorsa bunu kontrol edin. Tıklayın,
- to know more,daha fazlasını bil,
+ to know more,daha fazlasını bilmek,
 "You can also set the Medical Department for the template. After saving the document, an Item will automatically be created for billing this Clinical Procedure. You can then use this template while creating Clinical Procedures for Patients. Templates save you from filling up redundant data every single time. You can also create templates for other operations like Lab Tests, Therapy Sessions, etc.","Ayrıca şablon için Tıp Departmanını da ayarlayabilirsiniz. Belgeyi kaydettikten sonra, bu Klinik Prosedürün faturalandırılması için otomatik olarak bir Öğe oluşturulacaktır. Daha sonra Hastalar için Klinik Prosedürler oluştururken bu şablonu kullanabilirsiniz. Şablonlar sizi her seferinde gereksiz verileri doldurmaktan kurtarır. Ayrıca Laboratuar Testleri, Terapi Oturumları vb. Gibi diğer işlemler için şablonlar oluşturabilirsiniz.",
 Descriptive Test Result,Tanımlayıcı Test Sonucu,
 Allow Blank,Boşluğa İzin Ver,
@@ -9148,7 +8967,7 @@
 Normal Test Result,Normal Test Sonucu,
 Secondary UOM Result,İkincil UOM Sonucu,
 Italic,İtalik,
-Underline,Altını çiz,
+Underline,Altını çizmek,
 Organism,Organizma,
 Organism Test Item,Organizma Test Öğesi,
 Colony Population,Koloni Popülasyonu,
@@ -9165,8 +8984,6 @@
 Order Discharge,Sipariş Tahliyesi,
 Sample Details,Örnek Ayrıntılar,
 Collected On,Toplanma Tarihi,
-No of Employees,Çalışan Sayısı,
-No. of Employees,Personel Sayısı,
 No. of prints,Baskı sayısı,
 Number of prints required for labelling the samples,Örnekleri etiketlemek için gereken baskı sayısı,
 HLC-VTS-.YYYY.-,HLC-VTS-.YYYY.-,
@@ -9181,7 +8998,7 @@
 MICR Code,MICR Kodu,
 Repay unclaimed amount from salary,Talep edilmeyen tutarı maaştan geri ödeyin,
 Deduction from salary,Maaştan kesinti,
-Expired Leaves,Süresi Dolan İzinler,
+Expired Leaves,Süresi Dolan Yapraklar,
 Reference No,Referans Numarası,
 Haircut percentage is the percentage difference between market value of the Loan Security and the value ascribed to that Loan Security when used as collateral for that loan.,"Kesinti yüzdesi, Kredi Teminatının piyasa değeri ile o kredi için teminat olarak kullanıldığında o Kredi Güvencesine atfedilen değer arasındaki yüzde farkıdır.",
 Loan To Value Ratio expresses the ratio of the loan amount to the value of the security pledged. A loan security shortfall will be triggered if this falls below the specified value for any loan ,"Kredi Değere Oranı, kredi tutarının taahhüt edilen menkul kıymetin değerine oranını ifade eder. Herhangi bir kredi için belirtilen değerin altına düşerse bir kredi güvenlik açığı tetiklenir",
@@ -9211,34 +9028,34 @@
 Operation {0} added multiple times in the work order {1},"İşlem {0}, iş emrine birden çok kez eklendi {1}",
 "If ticked, multiple materials can be used for a single Work Order. This is useful if one or more time consuming products are being manufactured.","İşaretliyse, tek bir İş Emri için birden fazla malzeme kullanılabilir. Bu, bir veya daha fazla zaman alan ürün üretiliyorsa kullanışlıdır.",
 Backflush Raw Materials,Ters Yıkamalı Hammaddeler,
-"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.","'Üretim' türündeki Stok Girişi, ters yıkama olarak bilinir. Mamul malları üretmek için tüketilen hammaddeler, ters yıkama olarak bilinir.<br><br> Üretim Girişi yaratılırken, hammadde kalemleri, üretim kaleminin ürün reçetesine göre ters yıkanır. Hammadde kalemlerinin bunun yerine o İş Emrine karşı yapılan Malzeme Transferi girişine göre ters yıkanmasını istiyorsanız bu alan altında ayarlayabilirsiniz.",
+"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.","&#39;Üretim&#39; türündeki Stok Girişi, ters yıkama olarak bilinir. Mamul malları üretmek için tüketilen hammaddeler, ters yıkama olarak bilinir.<br><br> Üretim Girişi yaratılırken, hammadde kalemleri, üretim kaleminin ürün reçetesine göre ters yıkanır. Hammadde kalemlerinin bunun yerine o İş Emrine karşı yapılan Malzeme Transferi girişine göre ters yıkanmasını istiyorsanız bu alan altında ayarlayabilirsiniz.",
 Work In Progress Warehouse,Devam Eden Çalışma Deposu,
 This Warehouse will be auto-updated in the Work In Progress Warehouse field of Work Orders.,"Bu Depo, İş Emirlerinin Devam Eden İşler Deposu alanında otomatik olarak güncellenecektir.",
 Finished Goods Warehouse,Mamul Mal Deposu,
 This Warehouse will be auto-updated in the Target Warehouse field of Work Order.,"Bu Depo, İş Emrinin Hedef Depo alanında otomatik olarak güncellenecektir.",
-"If ticked, the BOM cost will be automatically updated based on Valuation Rate / Price List Rate / last purchase rate of raw materials.","İşaretlenirse, ürün reçetesi maliyeti, Değerleme Oranı / Fiyat Listesi Oranı / hammaddelerin son Satınalma oranına göre otomatik olarak güncellenecektir.",
+"If ticked, the BOM cost will be automatically updated based on Valuation Rate / Price List Rate / last purchase rate of raw materials.","İşaretlenirse, ürün reçetesi maliyeti, Değerleme Oranı / Fiyat Listesi Oranı / hammaddelerin son satın alma oranına göre otomatik olarak güncellenecektir.",
 Source Warehouses (Optional),Kaynak Depolar (Opsiyonel),
-"System will pickup the materials from the selected warehouses. If not specified, system will create material request for purchase.","Sistem, malzemeleri seçilen depolardan alacaktır. Belirtilmezse, sistem Satınalma için malzeme talebi oluşturacaktır.",
+"System will pickup the materials from the selected warehouses. If not specified, system will create material request for purchase.","Sistem, malzemeleri seçilen depolardan alacaktır. Belirtilmezse, sistem satın alma için malzeme talebi oluşturacaktır.",
 Lead Time,Teslim süresi,
 PAN Details,PAN Detayları,
-Create Customer,Müşteri Oluştur,
+Create Customer,Müşteri Yaratın,
 Invoicing,Faturalama,
 Enable Auto Invoicing,Otomatik Faturalandırmayı Etkinleştir,
 Send Membership Acknowledgement,Üyelik Onayını Gönder,
 Send Invoice with Email,E-posta ile Fatura Gönderin,
 Membership Print Format,Üyelik Baskı Formatı,
 Invoice Print Format,Fatura Yazdırma Formatı,
-Revoke <Key></Key>,İptal et <Key></Key>,
+Revoke <Key></Key>,İptal et&lt;Key&gt;&lt;/Key&gt;,
 You can learn more about memberships in the manual. ,Kılavuzda üyelikler hakkında daha fazla bilgi edinebilirsiniz.,
 ERPNext Docs,ERPNext Dokümanlar,
 Regenerate Webhook Secret,Webhook Sırrını Yeniden Oluştur,
 Generate Webhook Secret,Webhook Sırrı Oluştur,
-Copy Webhook URL,Webhook URL'sini kopyala,
+Copy Webhook URL,Webhook URL&#39;sini kopyala,
 Linked Item,Bağlantılı Öğe,
 Is Recurring,Yineleniyor,
 HRA Exemption,İHD Muafiyeti,
 Monthly House Rent,Aylık Ev Kirası,
-Rented in Metro City,Metro City'de Kiralandı,
+Rented in Metro City,Metro City&#39;de Kiralandı,
 HRA as per Salary Structure,Maaş Yapısına Göre İHD,
 Annual HRA Exemption,Yıllık İHD Muafiyeti,
 Monthly HRA Exemption,Aylık İHD Muafiyeti,
@@ -9265,10 +9082,10 @@
 Conditions and Formula variable and example,Koşullar ve Formül değişkeni ve örnek,
 Feedback By,Geri Bildirim Gönderen,
 Manufacturing Section,Üretim Bölümü,
-"By default, the Customer Name is set as per the Full Name entered. If you want Customers to be named by a ","Varsayılan olarak, Müşteri Adı girilen Tam Ad'a göre ayarlanır. Müşterilerin bir tarafından adlandırılmasını istiyorsanız",
+"By default, the Customer Name is set as per the Full Name entered. If you want Customers to be named by a ","Varsayılan olarak, Müşteri Adı girilen Tam Ad&#39;a göre ayarlanır. Müşterilerin bir tarafından adlandırılmasını istiyorsanız",
 Configure the default Price List when creating a new Sales transaction. Item prices will be fetched from this Price List.,Yeni bir Satış işlemi oluştururken varsayılan Fiyat Listesini yapılandırın. Ürün fiyatları bu Fiyat Listesinden alınacaktır.,
-"If this option is configured 'Yes', ERPNext will prevent you from creating a Sales Invoice or Delivery Note without creating a Sales Order first. This configuration can be overridden for a particular Customer by enabling the 'Allow Sales Invoice Creation Without Sales Order' checkbox in the Customer master.","Bu seçenek 'Evet' olarak yapılandırılırsa, ERPNext, önce Satış Siparişi oluşturmadan Satış Faturası veya İrsaliye oluşturmanızı engeller. Bu yapılandırma, Müşteri ana sayfasındaki 'Satış Siparişi Olmadan Satış Faturası Oluşturmaya İzin Ver' onay kutusu etkinleştirilerek belirli bir Müşteri için geçersiz kılınabilir.",
-"If this option is configured 'Yes', ERPNext will prevent you from creating a Sales Invoice without creating a Delivery Note first. This configuration can be overridden for a particular Customer by enabling the 'Allow Sales Invoice Creation Without Delivery Note' checkbox in the Customer master.","Bu seçenek 'Evet' olarak yapılandırılırsa, ERPNext önce bir İrsaliye oluşturmadan Satış Faturası oluşturmanızı engeller. Bu yapılandırma, Müşteri ana sayfasındaki 'İrsaliye olmadan Satış Faturası Oluşturmaya İzin Ver' onay kutusu etkinleştirilerek belirli bir Müşteri için geçersiz kılınabilir.",
+"If this option is configured 'Yes', ERPNext will prevent you from creating a Sales Invoice or Delivery Note without creating a Sales Order first. This configuration can be overridden for a particular Customer by enabling the 'Allow Sales Invoice Creation Without Sales Order' checkbox in the Customer master.","Bu seçenek &#39;Evet&#39; olarak yapılandırılırsa, ERPNext, önce Satış Siparişi oluşturmadan Satış Faturası veya Teslimat Notu oluşturmanızı engeller. Bu yapılandırma, Müşteri ana sayfasındaki &#39;Satış Siparişi Olmadan Satış Faturası Oluşturmaya İzin Ver&#39; onay kutusu etkinleştirilerek belirli bir Müşteri için geçersiz kılınabilir.",
+"If this option is configured 'Yes', ERPNext will prevent you from creating a Sales Invoice without creating a Delivery Note first. This configuration can be overridden for a particular Customer by enabling the 'Allow Sales Invoice Creation Without Delivery Note' checkbox in the Customer master.","Bu seçenek &#39;Evet&#39; olarak yapılandırılırsa, ERPNext önce bir Teslimat Notu oluşturmadan Satış Faturası oluşturmanızı engeller. Bu yapılandırma, Müşteri ana sayfasındaki &#39;Teslimat Notu Olmadan Satış Faturası Oluşturmaya İzin Ver&#39; onay kutusu etkinleştirilerek belirli bir Müşteri için geçersiz kılınabilir.",
 Default Warehouse for Sales Return,Satış İadesi için Varsayılan Depo,
 Default In Transit Warehouse,Transit Depoda Temerrüt,
 Enable Perpetual Inventory For Non Stock Items,Stok Dışı Kalemler İçin Sürekli Envanteri Etkinleştir,
@@ -9287,18 +9104,18 @@
 Image Description,Görüntü açıklaması,
 Transfer Status,Transfer durumu,
 MAT-PR-RET-.YYYY.-,MAT-PR-RET-.YYYY.-,
-Track this Purchase Receipt against any Project,Herhangi bir Projeye karşı bu Satınalma Makbuzunu takip edin,
+Track this Purchase Receipt against any Project,Herhangi bir Projeye karşı bu Satın Alma Makbuzunu takip edin,
 Please Select a Supplier,Lütfen Bir Tedarikçi Seçin,
 Add to Transit,Transite Ekle,
 Set Basic Rate Manually,Temel Hızı Manuel Olarak Ayarlayın,
-"By default, the Item Name is set as per the Item Code entered. If you want Items to be named by a ","Varsayılan olarak, Ürün Adı, girilen Ürün Koduna göre ayarlanır. Ürünlerin bir tarafından adlandırılmasını istiyorsanız",
-Set a Default Warehouse for Inventory Transactions. This will be fetched into the Default Warehouse in the Item master.,"Stok İşlemleri için Varsayılan Depo Ayarlayın. Bu, Öğe ana sayfasındaki Varsayılan Depo'ya getirilecektir.",
+"By default, the Item Name is set as per the Item Code entered. If you want Items to be named by a ","Varsayılan olarak, Öğe Adı, girilen Öğe Koduna göre ayarlanır. Öğelerin bir tarafından adlandırılmasını istiyorsanız",
+Set a Default Warehouse for Inventory Transactions. This will be fetched into the Default Warehouse in the Item master.,"Stok İşlemleri için Varsayılan Depo Ayarlayın. Bu, Öğe ana sayfasındaki Varsayılan Depo&#39;ya getirilecektir.",
 "This will allow stock items to be displayed in negative values. Using this option depends on your use case. With this option unchecked, the system warns before obstructing a transaction that is causing negative stock.","Bu, stok kalemlerinin negatif değerlerle görüntülenmesine izin verecektir. Bu seçeneği kullanmak, kullanım durumunuza bağlıdır. Bu seçenek işaretlenmediğinde, sistem negatif stoka neden olan bir işlemi engellemeden önce uyarır.",
 Choose between FIFO and Moving Average Valuation Methods. Click ,FIFO ve Hareketli Ortalama Değerleme Yöntemleri arasında seçim yapın. Tıklayın,
  to know more about them.,onlar hakkında daha fazla bilgi edinmek için.,
-Show 'Scan Barcode' field above every child table to insert Items with ease.,Öğeleri kolaylıkla eklemek için her alt tablonun üzerinde 'Barkod Tara' alanını gösterin.,
-"Serial numbers for stock will be set automatically based on the Items entered based on first in first out in transactions like Purchase/Sales Invoices, Delivery Notes, etc.","Stok seri numaraları, Satınalma / Satış Faturaları, Sevk irsaliyeleri vb. İşlemlerde ilk giren ilk çıkar esas alınarak girilen Kalemlere göre otomatik olarak ayarlanacaktır.",
-"If blank, parent Warehouse Account or company default will be considered in transactions","Boş ise, işlemlerde ana Depo Hesabı veya şirket varsayılanı dikkate alınacaktır",
+Show 'Scan Barcode' field above every child table to insert Items with ease.,Öğeleri kolaylıkla eklemek için her alt tablonun üzerinde &#39;Barkod Tara&#39; alanını gösterin.,
+"Serial numbers for stock will be set automatically based on the Items entered based on first in first out in transactions like Purchase/Sales Invoices, Delivery Notes, etc.","Stok seri numaraları, Satın Alma / Satış Faturaları, Sevk irsaliyeleri vb. İşlemlerde ilk giren ilk çıkar esas alınarak girilen Kalemlere göre otomatik olarak ayarlanacaktır.",
+"If blank, parent Warehouse Account or company default will be considered in transactions","Boş ise, işlemlerde ana Depo Hesabı veya şirket temerrüdü dikkate alınacaktır",
 Service Level Agreement Details,Hizmet Seviyesi Sözleşme Ayrıntıları,
 Service Level Agreement Status,Hizmet Seviyesi Sözleşme Durumu,
 On Hold Since,O zamandan beri beklemede,
@@ -9307,8 +9124,8 @@
 Average Response Time,Ortalama Yanıt Süresi,
 User Resolution Time,Kullanıcı Çözüm Süresi,
 SLA is on hold since {0},"SLA, {0} tarihinden beri beklemede",
-Pause SLA On Status,Durum Açıkken SLA'yı Duraklat,
-Pause SLA On,SLA'yı Duraklat,
+Pause SLA On Status,Durum Açıkken SLA&#39;yı Duraklat,
+Pause SLA On,SLA&#39;yı Duraklat,
 Greetings Section,Selamlar Bölümü,
 Greeting Title,Tebrik Başlığı,
 Greeting Subtitle,Karşılama Altyazısı,
@@ -9343,7 +9160,7 @@
 No items found. Scan barcode again.,Hiç bir öğe bulunamadı. Barkodu tekrar tarayın.,
 "Search by customer name, phone, email.","Müşteri adı, telefon, e-posta ile arayın.",
 Enter discount percentage.,İndirim yüzdesini girin.,
-Discount cannot be greater than 100%,İndirim% 100'den fazla olamaz,
+Discount cannot be greater than 100%,İndirim% 100&#39;den fazla olamaz,
 Enter customer's email,Müşterinin e-postasını girin,
 Enter customer's phone number,Müşterinin telefon numarasını girin,
 Customer contact updated successfully.,Müşteri iletişim bilgileri başarıyla güncellendi.,
@@ -9362,22 +9179,21 @@
 Please Select a Company,Lütfen Firma Seçiniz,
 Active Leads,Aktif Olası Satışlar,
 Please Select a Company.,Lütfen Bir Firma Seçiniz.,
-BOM Operations Time,BOM Operasyon Süresi,
+BOM Operations Time,BOM İşlemleri Süresi,
 BOM ID,BOM ID,
 BOM Item Code,BOM Ürün Kodu,
-Time (In Mins),Süre (dakika),
+Time (In Mins),Zaman (Dakika Olarak),
 Sub-assembly BOM Count,Alt montaj ürün reçetesi sayısı,
 View Type,Görünüm Türü,
 Total Delivered Amount,Toplam Teslim Tutarı,
 Downtime Analysis,Kesinti Analizi,
 Machine,Makine,
-Downtime (In Hours),Arıza Süresi (saat),
+Downtime (In Hours),Arıza Süresi (Saat Olarak),
 Employee Analytics,Çalışan Analitiği,
-"""From date"" can not be greater than or equal to ""To date""","'Başlangıç tarihi', 'Son tarih' e eşit veya ondan büyük olamaz",
-Exponential Smoothing Forecasting,Üstel Düzleştirme Öngörüsü,
-Forecasting,Tahmin,
+"""From date"" can not be greater than or equal to ""To date""","&quot;Başlangıç tarihi&quot;, &quot;Son tarih&quot; e eşit veya ondan büyük olamaz",
+Exponential Smoothing Forecasting,Üstel Düzeltme Tahmini,
 First Response Time for Issues,Sorunlar için İlk Yanıt Süresi,
-First Response Time for Opportunity,Fırsat için İlk Yanıt Süresi,
+First Response Time for Opportunity,Fırsat için İlk Müdahale Süresi,
 Depreciatied Amount,Amortisman Tutarı,
 Period Based On,Dayalı Dönem,
 Date Based On,Dayalı Tarih,
@@ -9388,14 +9204,14 @@
 Income Tax Amount,Gelir Vergisi Tutarı,
 Reserved Quantity for Production,Üretim için Ayrılmış Miktar,
 Projected Quantity,Öngörülen Miktar,
-Total Sales Amount,Toplam Satış Tutarı,
+ Total Sales Amount,Toplam Satış Tutarı,
 Job Card Summary,İş Kartı Özeti,
-Id,ID,
+Id,İD,
 Time Required (In Mins),Gereken Zaman (Dakika Olarak),
 From Posting Date,Gönderme Tarihinden,
 To Posting Date,İlan Tarihine,
 No records found,kayıt bulunamadı,
-Customer/Lead Name,Müşteri / Aday Adı,
+Customer/Lead Name,Müşteri / Kurşun Adı,
 Unmarked Days,İşaretlenmemiş Günler,
 Jan,Oca,
 Feb,Şubat,
@@ -9420,7 +9236,7 @@
 Professional Tax Deductions,Profesyonel Vergi İndirimleri,
 Program wise Fee Collection,Program bazlı Ücret Toplama,
 Fees Collected,Toplanan Ücretler,
-Project Summary,Proje Özeti,
+Project Summary,Proje özeti,
 Total Tasks,Toplam Görev,
 Tasks Completed,Tamamlanan Görevler,
 Tasks Overdue,Gecikmiş Görevler,
@@ -9430,11 +9246,11 @@
 From and To Dates are required.,Başlangıç ve Bitiş Tarihleri gereklidir.,
 To Date cannot be before From Date.,"Bitiş Tarihi, Başlangıç Tarihinden önce olamaz.",
 Qty to Bill,Faturalandırılacak Miktar,
-Group by Purchase Order,Satınalma Siparişine Göre Gruplama,
-Purchase Value,Alım Değeri,
+Group by Purchase Order,Satın Alma Siparişine Göre Gruplama,
+ Purchase Value,Alım değeri,
 Total Received Amount,Toplam Alınan Tutar,
 Quality Inspection Summary,Kalite Muayene Özeti,
-Quoted Amount,Teklif Edilen Tutar,
+ Quoted Amount,Teklif Edilen Tutar,
 Lead Time (Days),Teslim Süresi (Gün),
 Include Expired,Süresi Dolan,
 Recruitment Analytics,İşe Alım Analitiği,
@@ -9442,7 +9258,6 @@
 Job Offer status,İş Teklifi durumu,
 On Date,Tarihinde,
 Requested Items to Order and Receive,Sipariş Edilmesi ve Teslim Alınması İstenen Ürünler,
-Items to Order and Receive,Sipariş Edilecek ve Alınacak Ürünler,
 Salary Payments Based On Payment Mode,Ödeme Moduna Göre Maaş Ödemeleri,
 Salary Payments via ECS,ECS ile Maaş Ödemeleri,
 Account No,Hesap No,
@@ -9452,17 +9267,16 @@
 Amount Delivered,Teslim Edilen Miktar,
 Delay (in Days),Gecikme (Gün olarak),
 Group by Sales Order,Satış Siparişine Göre Gruplama,
-Sales Value,Satış Değeri,
-Stock Qty vs Serial No Count,Stok Miktarı vs Seri No Sayısı,
+ Sales Value,Satış Değeri,
+Stock Qty vs Serial No Count,Stok Miktarı - Seri Sayısız,
 Serial No Count,Seri Sayısız,
 Work Order Summary,İş Emri Özeti,
-Produce Qty,Adet Üret,
-Lead Time (in mins),Teslim Süresi (dakika),
+Produce Qty,Adet üret,
+Lead Time (in mins),Teslim Süresi (dakika cinsinden),
 Charts Based On,Dayalı Grafikler,
 YouTube Interactions,YouTube Etkileşimleri,
-Published Date,Yayınlanma tarihi,
+Published Date,yayınlanma tarihi,
 Barnch,Barnch,
-Branch,Şube,
 Select a Company,Şirket Seçin,
 Opportunity {0} created,{0} fırsatı oluşturuldu,
 Kindly select the company first,Lütfen önce şirketi seçin,
@@ -9501,7 +9315,7 @@
 No customer linked to member {},{} Üyesine bağlı müşteri yok,
 You need to set <b>Debit Account</b> in Membership Settings,Üyelik Ayarlarında <b>Borç Hesabı</b> ayarlamanız gerekiyor,
 You need to set <b>Default Company</b> for invoicing in Membership Settings,Üyelik Ayarlarında faturalandırma için <b>Varsayılan Şirket</b> ayarlamanız gerekir,
-You need to enable <b>Send Acknowledge Email</b> in Membership Settings,Üyelik Ayarlarında <b>Onay E-postası Gönder'i</b> etkinleştirmeniz gerekir,
+You need to enable <b>Send Acknowledge Email</b> in Membership Settings,Üyelik Ayarlarında <b>Onay E-postası Gönder&#39;i</b> etkinleştirmeniz gerekir,
 Error creating membership entry for {0},{0} için üyelik girişi oluşturulurken hata meydana geldi,
 A customer is already linked to this Member,Bir müşteri bu Üyeye zaten bağlı,
 End Date must not be lesser than Start Date,"Bitiş Tarihi, Başlangıç Tarihinden küçük olmamalıdır",
@@ -9513,7 +9327,7 @@
 To Date should be greater than From Date,"Bitiş Tarihi, Başlangıç Tarihinden büyük olmalıdır",
 Employee Onboarding: {0} is already for Job Applicant: {1},Çalışan İlk Katılımı: {0} zaten İş Başvurusu Sahibi için: {1},
 Job Offer: {0} is already for Job Applicant: {1},"İş Teklifi: {0}, İş Başvurusu Sahibi için zaten: {1}",
-Only Shift Request with status 'Approved' and 'Rejected' can be submitted,Yalnızca 'Onaylandı' ve 'Reddedildi' durumundaki Vardiya İsteği gönderilebilir,
+Only Shift Request with status 'Approved' and 'Rejected' can be submitted,Yalnızca &#39;Onaylandı&#39; ve &#39;Reddedildi&#39; durumundaki Vardiya İsteği gönderilebilir,
 Shift Assignment: {0} created for Employee: {1},Vardiya Ataması: {0} Çalışan için oluşturuldu: {1},
 You can not request for your Default Shift: {0},Varsayılan Vardiyanızı talep edemezsiniz: {0},
 Only Approvers can Approve this Request.,Bu İsteği Yalnızca Onaylayanlar Onaylayabilir.,
@@ -9523,7 +9337,7 @@
 New Assets (This Year),Yeni Varlıklar (Bu Yıl),
 Row #{}: Depreciation Posting Date should not be equal to Available for Use Date.,"Satır # {}: Amortisman Kayıt Tarihi, Kullanıma Hazır Tarihi ile eşit olmamalıdır.",
 Incorrect Date,Yanlış Tarih,
-Invalid Gross Purchase Amount,Geçersiz Brüt Satınalma Tutarı,
+Invalid Gross Purchase Amount,Geçersiz Brüt Satın Alma Tutarı,
 There are active maintenance or repairs against the asset. You must complete all of them before cancelling the asset.,Varlığa karşı aktif bakım veya onarımlar var. Varlığı iptal etmeden önce hepsini tamamlamanız gerekir.,
 % Complete,% Tamamlayınız,
 Back to Course,Kursa dönüş,
@@ -9549,14 +9363,14 @@
 Valuation type charges can not be marked as Inclusive,"Değerleme türü ücretler, Kapsayıcı olarak işaretlenemez",
 You do not have permissions to {} items in a {}.,Bir {} içindeki {} öğe için izniniz yok.,
 Insufficient Permissions,Yetersiz yetkiler,
-You are not allowed to update as per the conditions set in {} Workflow.,{} İş Akışı'nda belirlenen koşullara göre güncelleme yapmanıza izin verilmiyor.,
+You are not allowed to update as per the conditions set in {} Workflow.,{} İş Akışı&#39;nda belirlenen koşullara göre güncelleme yapmanıza izin verilmiyor.,
 Expense Account Missing,Gider Hesabı Eksik,
 {0} is not a valid Value for Attribute {1} of Item {2}.,"{0}, {2} Öğesinin {1} Özniteliği için geçerli bir Değer değil.",
 Invalid Value,Geçersiz değer,
 The value {0} is already assigned to an existing Item {1}.,{0} değeri zaten mevcut bir Öğeye {1} atandı.,
-"To still proceed with editing this Attribute Value, enable {0} in Item Variant Settings.","Bu Öznitelik Değerini düzenlemeye devam etmek için, Öğe Varyantı Ayarlarında {0} 'yı etkinleştirin.",
+"To still proceed with editing this Attribute Value, enable {0} in Item Variant Settings.","Bu Öznitelik Değerini düzenlemeye devam etmek için, Öğe Varyantı Ayarlarında {0} &#39;yı etkinleştirin.",
 Edit Not Allowed,Düzenlemeye İzin Verilmiyor,
-Row #{0}: Item {1} is already fully received in Purchase Order {2},"Satır # {0}: Öğe {1}, {2} Satınalma Siparişinde zaten tamamen alındı",
+Row #{0}: Item {1} is already fully received in Purchase Order {2},"Satır # {0}: Öğe {1}, {2} Satın Alma Siparişinde zaten tamamen alındı",
 You cannot create or cancel any accounting entries with in the closed Accounting Period {0},Kapalı Hesap Döneminde herhangi bir muhasebe girişi oluşturamaz veya iptal edemezsiniz {0},
 POS Invoice should have {} field checked.,POS Faturasında {} alanı işaretlenmiş olmalıdır.,
 Invalid Item,Geçersiz Öğe,
@@ -9571,7 +9385,7 @@
 Statement of Accounts,Hesap Bildirimi,
 Ageing Report Based On ,Dayalı Yaşlanma Raporu,
 Please enter distributed cost center,Lütfen dağıtılmış maliyet merkezini girin,
-Total percentage allocation for distributed cost center should be equal to 100,Dağıtılmış maliyet merkezi için toplam yüzde tahsisi 100'e eşit olmalıdır,
+Total percentage allocation for distributed cost center should be equal to 100,Dağıtılmış maliyet merkezi için toplam yüzde tahsisi 100&#39;e eşit olmalıdır,
 Cannot enable Distributed Cost Center for a Cost Center already allocated in another Distributed Cost Center,Halihazırda başka bir Dağıtılmış Maliyet Merkezinde tahsis edilmiş bir Maliyet Merkezi için Dağıtılmış Maliyet Merkezi etkinleştirilemez,
 Parent Cost Center cannot be added in Distributed Cost Center,"Üst Maliyet Merkezi, Dağıtılmış Maliyet Merkezine eklenemez",
 A Distributed Cost Center cannot be added in the Distributed Cost Center allocation table.,Dağıtılmış Maliyet Merkezi tahsis tablosuna Dağıtılmış Maliyet Merkezi eklenemez.,
@@ -9592,7 +9406,7 @@
 "Sorry, this coupon code's validity has not started","Üzgünüz, bu kupon kodunun geçerliliği başlamadı",
 "Sorry, this coupon code's validity has expired","Üzgünüz, bu kupon kodunun geçerliliği sona erdi",
 "Sorry, this coupon code is no longer valid","Üzgünüz, bu kupon kodu artık geçerli değil",
-For the 'Apply Rule On Other' condition the field {0} is mandatory,'Kuralı Diğerine Uygula' koşulu için {0} alanı zorunludur,
+For the 'Apply Rule On Other' condition the field {0} is mandatory,&quot;Kuralı Diğerine Uygula&quot; koşulu için {0} alanı zorunludur,
 {1} Not in Stock,{1} Stokta Yok,
 Only {0} in Stock for item {1},{1} öğesi için yalnızca {0} Stokta,
 Please enter a coupon code,Lütfen bir kupon kodu girin,
@@ -9601,7 +9415,7 @@
 Import Italian Supplier Invoice.,İtalyan Tedarikçi Faturasını İçe Aktar.,
 "Valuation Rate for the Item {0}, is required to do accounting entries for {1} {2}.","{0} Öğesi için Değerleme Oranı, {1} {2} için muhasebe girişleri yapmak için gereklidir.",
  Here are the options to proceed:,Devam etmek için seçenekler şunlardır:,
-"If the item is transacting as a Zero Valuation Rate item in this entry, please enable 'Allow Zero Valuation Rate' in the {0} Item table.","Öğe, bu girişte Sıfır Değerleme Oranı öğesi olarak işlem görüyorsa, lütfen {0} Öğe tablosundaki 'Sıfır Değerleme Oranına İzin Ver'i etkinleştirin.",
+"If the item is transacting as a Zero Valuation Rate item in this entry, please enable 'Allow Zero Valuation Rate' in the {0} Item table.","Öğe, bu girişte Sıfır Değerleme Oranı öğesi olarak işlem görüyorsa, lütfen {0} Öğe tablosundaki &#39;Sıfır Değerleme Oranına İzin Ver&#39;i etkinleştirin.",
 "If not, you can Cancel / Submit this entry ","Değilse, bu girişi İptal edebilir / Gönderebilirsiniz",
  performing either one below:,aşağıdakilerden birini gerçekleştirmek:,
 Create an incoming stock transaction for the Item.,Öğe için gelen bir stok işlemi oluşturun.,
@@ -9702,12 +9516,12 @@
 Supplier Quotation {0} Created,Tedarikçi Teklifi {0} Oluşturuldu,
 Valid till Date cannot be before Transaction Date,Tarihe kadar geçerli İşlem Tarihinden önce olamaz,
 Unlink Advance Payment on Cancellation of Order,Sipariş İptali Üzerine Peşin Ödeme Bağlantısını Kaldır,
-"Simple Python Expression, Example: territory != 'All Territories'","Basit Python İfadesi, Örnek: bölge! = 'Tüm Bölgeler'",
+"Simple Python Expression, Example: territory != 'All Territories'","Basit Python İfadesi, Örnek: bölge! = &#39;Tüm Bölgeler&#39;",
 Sales Contributions and Incentives,Satış Katkıları ve Teşvikler,
 Sourced by Supplier,Tedarikçi Kaynaklı,
 Total weightage assigned should be 100%.<br>It is {0},Atanan toplam ağırlık% 100 olmalıdır.<br> {0},
 Account {0} exists in parent company {1}.,"{0} hesabı, {1} ana şirkette var.",
-"To overrule this, enable '{0}' in company {1}","Bunu geçersiz kılmak için, {1} şirketinde '{0}' özelliğini etkinleştirin",
+"To overrule this, enable '{0}' in company {1}","Bunu geçersiz kılmak için, {1} şirketinde &quot;{0}&quot; özelliğini etkinleştirin",
 Invalid condition expression,Geçersiz koşul ifadesi,
 Please Select a Company First,Lütfen Önce Bir Şirket Seçin,
 Please Select Both Company and Party Type First,Lütfen Önce Şirket ve Parti Türünü Seçin,
@@ -9721,13 +9535,13 @@
 "Home, Work, etc.","Ev, İş vb.",
 Exit Interview Held On,Yapılan Görüşmeden Çık,
 Condition and formula,Durum ve formül,
-Sets 'Target Warehouse' in each row of the Items table.,Kalemler tablosunun her satırında 'Hedef Depo' ayarlar.,
-Sets 'Source Warehouse' in each row of the Items table.,Kalemler tablosunun her satırında 'Kaynak Depo' ayarlar.,
+Sets 'Target Warehouse' in each row of the Items table.,Kalemler tablosunun her satırında &#39;Hedef Depo&#39; ayarlar.,
+Sets 'Source Warehouse' in each row of the Items table.,Kalemler tablosunun her satırında &#39;Kaynak Depo&#39; ayarlar.,
 POS Register,POS Kaydı,
 "Can not filter based on POS Profile, if grouped by POS Profile","POS Profiline göre gruplandırılmışsa, POS Profiline göre filtreleme yapılamaz",
 "Can not filter based on Customer, if grouped by Customer","Müşteriye göre gruplandırılmışsa, Müşteriye göre filtreleme yapılamaz",
 "Can not filter based on Cashier, if grouped by Cashier",Kasiyere göre gruplandırılmışsa Kasiyere göre filtre edilemez,
-Payment Method,Ödeme Şekli,
+Payment Method,Ödeme şekli,
 "Can not filter based on Payment Method, if grouped by Payment Method",Ödeme Yöntemine göre gruplandırılmışsa Ödeme Yöntemine göre filtreleme yapılamaz,
 Supplier Quotation Comparison,Tedarikçi Teklif Karşılaştırması,
 Price per Unit (Stock UOM),Birim Fiyat (Stok UOM),
@@ -9751,29 +9565,29 @@
 Address needs to be linked to a Company. Please add a row for Company in the Links table.,Adresin bir Şirkete bağlanması gerekir. Lütfen Bağlantılar tablosuna Şirket için bir satır ekleyin.,
 Company Not Linked,Şirket Bağlı Değil,
 Import Chart of Accounts from CSV / Excel files,Hesap Planını CSV / Excel dosyalarından içe aktarın,
-Completed Qty cannot be greater than 'Qty to Manufacture',Tamamlanan Miktar 'Üretilecek Miktar'dan büyük olamaz,
+Completed Qty cannot be greater than 'Qty to Manufacture',Tamamlanan Miktar &quot;Üretilecek Miktar&quot; dan büyük olamaz,
 "Row {0}: For Supplier {1}, Email Address is Required to send an email","Satır {0}: Tedarikçi {1} için, e-posta göndermek için E-posta Adresi Gereklidir",
 "If enabled, the system will post accounting entries for inventory automatically","Etkinleştirilirse, sistem envanter için muhasebe girişlerini otomatik olarak kaydeder",
 Accounts Frozen Till Date,Tarihe Kadar Dondurulan Hesaplar,
 Accounting entries are frozen up to this date. Nobody can create or modify entries except users with the role specified below,Muhasebe girişleri bu tarihe kadar dondurulmuştur. Aşağıda belirtilen role sahip kullanıcılar dışında hiç kimse girdi oluşturamaz veya değiştiremez,
 Role Allowed to Set Frozen Accounts and Edit Frozen Entries,Dondurulmuş Hesapları Ayarlama ve Dondurulmuş Girişleri Düzenleme Rolü,
 Address used to determine Tax Category in transactions,İşlemlerde Vergi Kategorisini belirlemek için kullanılan adres,
-"The percentage you are allowed to bill more against the amount ordered. For example, if the order value is $100 for an item and tolerance is set as 10%, then you are allowed to bill up to $110 ","Sipariş edilen tutara göre daha fazla faturalandırma izninizin olduğu yüzde. Örneğin, bir öğe için sipariş değeri 100 $ ise ve tolerans% 10 olarak ayarlanmışsa, 110 $ 'a kadar faturalandırmanıza izin verilir",
+"The percentage you are allowed to bill more against the amount ordered. For example, if the order value is $100 for an item and tolerance is set as 10%, then you are allowed to bill up to $110 ","Sipariş edilen tutara göre daha fazla faturalandırma izninizin olduğu yüzde. Örneğin, bir öğe için sipariş değeri 100 $ ise ve tolerans% 10 olarak ayarlanmışsa, 110 $ &#39;a kadar faturalandırmanıza izin verilir",
 This role is allowed to submit transactions that exceed credit limits,"Bu rolün, kredi limitlerini aşan işlemleri göndermesine izin verilir",
-"If ""Months"" is selected, a fixed amount will be booked as deferred revenue or expense for each month irrespective of the number of days in a month. It will be prorated if deferred revenue or expense is not booked for an entire month"," ""Aylar"" seçilirse, bir aydaki gün sayısına bakılmaksızın her ay için ertelenmiş gelir veya gider olarak sabit bir tutar kaydedilir. Ertelenmiş gelir veya gider tüm bir ay için rezerve edilmemişse, orantılı olacaktır.",
+"If ""Months"" is selected, a fixed amount will be booked as deferred revenue or expense for each month irrespective of the number of days in a month. It will be prorated if deferred revenue or expense is not booked for an entire month","&quot;Aylar&quot; seçilirse, bir aydaki gün sayısına bakılmaksızın her ay için ertelenmiş gelir veya gider olarak sabit bir tutar kaydedilir. Ertelenmiş gelir veya gider tüm bir ay için rezerve edilmemişse, orantılı olacaktır.",
 "If this is unchecked, direct GL entries will be created to book deferred revenue or expense","Bu işaretlenmemişse, ertelenmiş gelir veya giderleri ayırmak için doğrudan GL girişleri oluşturulacaktır.",
 Show Inclusive Tax in Print,Baskıda Kapsayıcı Vergiyi Göster,
 Only select this if you have set up the Cash Flow Mapper documents,Bunu yalnızca Nakit Akışı Eşleştiricisi belgelerini kurduysanız seçin,
 Payment Channel,Ödeme Kanalı,
-Is Purchase Order Required for Purchase Invoice & Receipt Creation?,Satınalma Faturası ve Fiş Oluşturma İçin Satınalma Siparişi Gerekiyor mu?,
-Is Purchase Receipt Required for Purchase Invoice Creation?,Satınalma Faturası Oluşturmak İçin Satınalma Fişi Gerekli mi?,
-Maintain Same Rate Throughout the Purchase Cycle,Satınalma Döngüsü Boyunca Aynı Oranı Koruyun,
+Is Purchase Order Required for Purchase Invoice & Receipt Creation?,Satın Alma Faturası ve Fiş Oluşturma İçin Satın Alma Siparişi Gerekiyor mu?,
+Is Purchase Receipt Required for Purchase Invoice Creation?,Satın Alma Faturası Oluşturmak İçin Satın Alma Fişi Gerekli mi?,
+Maintain Same Rate Throughout the Purchase Cycle,Satın Alma Döngüsü Boyunca Aynı Oranı Koruyun,
 Allow Item To Be Added Multiple Times in a Transaction,Bir İşlemde Öğenin Birden Fazla Kez Eklenmesine İzin Ver,
 Suppliers,Tedarikçiler,
 Send Emails to Suppliers,Tedarikçilere E-posta Gönderin,
 Select a Supplier,Bir Tedarikçi Seçin,
 Cannot mark attendance for future dates.,Gelecek tarihler için katılım işaretlenemez.,
-Do you want to update attendance? <br> Present: {0} <br> Absent: {1},Puantajı güncellemek istiyor musunuz?<br> Şu an: {0}<br> Yok: {1},
+Do you want to update attendance? <br> Present: {0} <br> Absent: {1},Katılımı güncellemek istiyor musunuz?<br> Şu an: {0}<br> Yok: {1},
 Mpesa Settings,Mpesa Ayarları,
 Initiator Name,Başlatıcı Adı,
 Till Number,Numaraya Kadar,
@@ -9819,32 +9633,29 @@
 Time Between Operations (Mins),İşlemler Arası Süre (Dakika),
 Default: 10 mins,Varsayılan: 10 dakika,
 Overproduction for Sales and Work Order,Satış ve İş Emri için Fazla Üretim,
-"Update BOM cost automatically via scheduler, based on the latest Valuation Rate/Price List Rate/Last Purchase Rate of raw materials",Hammaddelerin en son Değerleme Oranı / Fiyat Listesi Oranı / Son Satınalma Oranına göre ürün reçetesi maliyetini otomatik olarak planlayıcı aracılığıyla güncelleyin,
+"Update BOM cost automatically via scheduler, based on the latest Valuation Rate/Price List Rate/Last Purchase Rate of raw materials",Hammaddelerin en son Değerleme Oranı / Fiyat Listesi Oranı / Son Satın Alma Oranına göre ürün reçetesi maliyetini otomatik olarak planlayıcı aracılığıyla güncelleyin,
 Purchase Order already created for all Sales Order items,Satınalma Siparişi tüm Satış Siparişi kalemleri için zaten oluşturulmuş,
 Select Items,Eşyaları seç,
 Against Default Supplier,Varsayılan Tedarikçiye Karşı,
-Auto close Opportunity after the no. of days mentioned above,No'dan sonra Otomatik Kapanma Fırsatı yukarıda belirtilen günlerin,
+Auto close Opportunity after the no. of days mentioned above,No&#39;dan sonra Otomatik Kapanma Fırsatı yukarıda belirtilen günlerin,
 Is Sales Order Required for Sales Invoice & Delivery Note Creation?,Satış Faturası ve İrsaliye Oluşturulması İçin Satış Siparişi Gerekiyor mu?,
 Is Delivery Note Required for Sales Invoice Creation?,Satış Faturası Oluşturmak İçin İrsaliye Gerekli mi?,
 How often should Project and Company be updated based on Sales Transactions?,Satış İşlemlerine göre Proje ve Şirket ne sıklıkla güncellenmelidir?,
 Allow User to Edit Price List Rate in Transactions,Kullanıcının İşlemlerde Fiyat Listesi Oranını Düzenlemesine İzin Ver,
 Allow Item to Be Added Multiple Times in a Transaction,Bir İşlemde Öğenin Birden Fazla Kez Eklenmesine İzin Ver,
-Allow Multiple Sales Orders Against a Customer's Purchase Order,Müşterinin Satınalma Siparişine Karşı Birden Fazla Satış Siparişine İzin Verme,
-Validate Selling Price for Item Against Purchase Rate or Valuation Rate,Satınalma Oranına veya Değerleme Oranına Karşı Ürün için Satış Fiyatını Doğrulama,
+Allow Multiple Sales Orders Against a Customer's Purchase Order,Müşterinin Satın Alma Siparişine Karşı Birden Fazla Satış Siparişine İzin Verme,
+Validate Selling Price for Item Against Purchase Rate or Valuation Rate,Satın Alma Oranına veya Değerleme Oranına Karşı Ürün için Satış Fiyatını Doğrulama,
 Hide Customer's Tax ID from Sales Transactions,Müşterinin Vergi Numarasını Satış İşlemlerinden Gizle,
-"The percentage you are allowed to receive or deliver more against the quantity ordered. For example, if you have ordered 100 units, and your Allowance is 10%, then you are allowed to receive 110 units.","Sipariş edilen miktara göre daha fazla alma veya teslimat yapmanıza izin verilen yüzde. Örneğin, 100 birim sipariş ettiyseniz ve Ödeneğiniz %10 ise, 110 birim almanıza izin verilir.",
+"The percentage you are allowed to receive or deliver more against the quantity ordered. For example, if you have ordered 100 units, and your Allowance is 10%, then you are allowed to receive 110 units.","Sipariş edilen miktara göre daha fazla alma veya teslimat yapmanıza izin verilen yüzde. Örneğin, 100 birim sipariş ettiyseniz ve Ödeneğiniz% 10 ise, 110 birim almanıza izin verilir.",
 Action If Quality Inspection Is Not Submitted,Kalite Denetimi Gönderilmezse Yapılacak İşlem,
 Auto Insert Price List Rate If Missing,Eksikse Otomatik Fiyat Listesi Oranı Ekleme,
-Automatically Set Serial Nos Based on FIFO,FIFO'ya Göre Seri Numaralarını Otomatik Olarak Ayarla,
+Automatically Set Serial Nos Based on FIFO,FIFO&#39;ya Göre Seri Numaralarını Otomatik Olarak Ayarlama,
 Set Qty in Transactions Based on Serial No Input,Seri No Girişine Dayalı İşlemlerde Miktarı Ayarla,
-Raise Material Request When Stock Reaches Re-order Level,Stok Yeniden Sipariş Düzeyine ulaştığında Malzeme Talebini Artır,
+Raise Material Request When Stock Reaches Re-order Level,Stok Yeniden Sipariş Düzeyine Ulaştığında Malzeme Talebini Artırın,
 Notify by Email on Creation of Automatic Material Request,Otomatik Malzeme Talebi Oluşturulduğunda E-posta ile Bildir,
-Allow Material Transfer from Delivery Note to Sales Invoice,İrsaliyeden Satış Faturasına Malzeme Transferine İzin Ver,
-Allow Material Transfer from Purchase Receipt to Purchase Invoice,Satınalma İrsaliyesinden Satınalma Faturasına Malzeme Transferine İzin Ver,
-No stock transactions can be created or modified before this date.,Bu tarihten önce hisse senedi hareketleri oluşturulamaz veya değiştirilemez.,
-Stock transactions that are older than the mentioned days cannot be modified.,Belirtilen günlerden daha eski olan hisse senedi işlemleri değiştirilemez.,
-"If mentioned, the system will allow only the users with this Role to create or modify any stock transaction earlier than the latest stock transaction for a specific item and warehouse. If set as blank, it allows all users to create/edit back-dated transactions.","Belirtilirse, sistem yalnızca bu Role sahip kullanıcıların belirli bir kalem ve depo için en son stok işleminden önceki herhangi bir stok işlemini oluşturmasına veya değiştirmesine izin verecektir. Boş olarak ayarlanırsa, tüm kullanıcıların geçmiş tarihli oluşturmasına/düzenlemesine izin verir. işlemler.",
-Freeze Stocks Older Than (Days),Daha Eski Stokları Dondur (Gün),
+Allow Material Transfer from Delivery Note to Sales Invoice,Teslimat Notundan Satış Faturasına Malzeme Transferine İzin Ver,
+Allow Material Transfer from Purchase Receipt to Purchase Invoice,Satın Alma Faturasından Satın Alma Faturasına Malzeme Transferine İzin Ver,
+Freeze Stocks Older Than (Days),(Günden Daha Eski) Stokları Dondur,
 Role Allowed to Edit Frozen Stock,Dondurulmuş Stoku Düzenlemede İzin Verilen Rol,
 The unallocated amount of Payment Entry {0} is greater than the Bank Transaction's unallocated amount,"Ayrılmamış Ödeme Giriş tutarı {0}, Banka İşleminin ayrılmamış tutarından daha büyük",
 Payment Received,Ödeme alındı,
@@ -9852,11 +9663,11 @@
 Student is already enrolled via Course Enrollment {0},"Öğrenci, Kurs Kaydı aracılığıyla zaten kayıtlı {0}",
 Attendance cannot be marked for future dates.,Katılım gelecek tarihler için işaretlenemez.,
 Please add programs to enable admission application.,Lütfen kabul başvurusunu etkinleştirmek için programlar ekleyin.,
-The following employees are currently still reporting to {0}:,Aşağıdaki çalışanlar şu anda hâlâ {0} 'a rapor veriyor:,
+The following employees are currently still reporting to {0}:,Aşağıdaki çalışanlar şu anda hâlâ {0} &#39;a rapor veriyor:,
 Please make sure the employees above report to another Active employee.,Lütfen yukarıdaki çalışanların başka bir Aktif çalışana rapor verdiğinden emin olun.,
 Cannot Relieve Employee,Çalışanı Rahatlatamaz,
 Please enter {0},Lütfen {0} girin,
-Please select another payment method. Mpesa does not support transactions in currency '{0}',"Lütfen başka bir ödeme yöntemi seçin. Mpesa, '{0}' para birimindeki işlemleri desteklemiyor",
+Please select another payment method. Mpesa does not support transactions in currency '{0}',"Lütfen başka bir ödeme yöntemi seçin. Mpesa, &#39;{0}&#39; para birimindeki işlemleri desteklemiyor",
 Transaction Error,İşlem Hatası,
 Mpesa Express Transaction Error,Mpesa Express İşlem Hatası,
 "Issue detected with Mpesa configuration, check the error logs for more details","Mpesa yapılandırmasında sorun algılandı, daha fazla ayrıntı için hata günlüklerini kontrol edin",
@@ -9875,7 +9686,7 @@
 Row #{}: Please select a serial no and batch against item: {} or remove it to complete transaction.,Satır # {}: Lütfen bir seri numarası ve ürüne karşı parti seçin: {} veya işlemi tamamlamak için bunu kaldırın.,
 Row #{}: No serial number selected against item: {}. Please select one or remove it to complete transaction.,Satır # {}: {} öğeye karşı seri numarası seçilmedi. İşlemi tamamlamak için lütfen birini seçin veya kaldırın.,
 Row #{}: No batch selected against item: {}. Please select a batch or remove it to complete transaction.,Satır # {}: Öğeye karşı parti seçilmedi: {}. İşlemi tamamlamak için lütfen bir grup seçin veya kaldırın.,
-Payment amount cannot be less than or equal to 0,Ödeme tutarı 0'dan küçük veya 0'a eşit olamaz,
+Payment amount cannot be less than or equal to 0,Ödeme tutarı 0&#39;dan küçük veya 0&#39;a eşit olamaz,
 Please enter the phone number first,Lütfen önce telefon numarasını girin,
 Row #{}: {} {} does not exist.,Satır # {}: {} {} mevcut değil.,
 Row #{0}: {1} is required to create the Opening {2} Invoices,Satır # {0}: {1} Açılış {2} Faturalarını oluşturmak için gereklidir,
@@ -9893,20 +9704,20 @@
 At row #{0}: the sequence id {1} cannot be less than previous row sequence id {2},"{0}. Satırda: {1} sıra kimliği, önceki satır dizisi kimliğinden {2} küçük olamaz",
 The {0} ({1}) must be equal to {2} ({3}),"{0} ({1}), {2} ({3}) değerine eşit olmalıdır",
 "{0}, complete the operation {1} before the operation {2}.","{0}, işlemi {1} işlemden önce tamamlayın {2}.",
-Cannot ensure delivery by Serial No as Item {0} is added with and without Ensure Delivery by Serial No.,"Öğe {0}, Seri No.'ya göre Teslimat ile veya Olmadan eklendiği için Seri No ile teslimat garanti edilemiyor.",
-Item {0} has no Serial No. Only serilialized items can have delivery based on Serial No,Öğe {0} Seri No.'ya sahip değil Yalnızca serili ürünlerde Seri No.'ya göre teslimat yapılabilir,
+Cannot ensure delivery by Serial No as Item {0} is added with and without Ensure Delivery by Serial No.,"Öğe {0}, Seri No.&#39;ya göre Teslimat ile veya Olmadan eklendiği için Seri No ile teslimat garanti edilemiyor.",
+Item {0} has no Serial No. Only serilialized items can have delivery based on Serial No,Öğe {0} Seri No.&#39;ya sahip değil Yalnızca serili ürünlerde Seri No.&#39;ya göre teslimat yapılabilir,
 No active BOM found for item {0}. Delivery by Serial No cannot be ensured,{0} öğesi için etkin ürün reçetesi bulunamadı. Seri No ile teslimat garanti edilemez,
 No pending medication orders found for selected criteria,Seçilen kriterler için bekleyen ilaç siparişi bulunamadı,
 From Date cannot be after the current date.,"Başlangıç Tarihi, geçerli tarihten sonra olamaz.",
 To Date cannot be after the current date.,"Bitiş Tarihi, geçerli tarihten sonra olamaz.",
 From Time cannot be after the current time.,From Time şimdiki zamandan sonra olamaz.,
 To Time cannot be after the current time.,To Time şimdiki zamandan sonra olamaz.,
-Stock Entry {0} created and ,{0} Stok Kaydı oluşturuldu ve,
+Stock Entry {0} created and ,{0} Stok Girişi oluşturuldu ve,
 Inpatient Medication Orders updated successfully,Yatan Hasta İlaç Tedbirleri başarıyla güncellendi,
 Row {0}: Cannot create Inpatient Medication Entry against cancelled Inpatient Medication Order {1},Satır {0}: İptal edilen Yatarak İlaç Emri {1} için Yatan Hasta İlaç Girişi yaratılamıyor,
 Row {0}: This Medication Order is already marked as completed,Satır {0}: Bu İlaç Tedavisi Siparişi zaten tamamlandı olarak işaretlendi,
 Quantity not available for {0} in warehouse {1},{1} deposunda {0} için miktar mevcut değil,
-Please enable Allow Negative Stock in Stock Settings or create Stock Entry to proceed.,Devam etmek için lütfen Stok Ayarlarında Negatif Stoka İzin Ver'i etkinleştirin veya Stok Kaydı oluşturun.,
+Please enable Allow Negative Stock in Stock Settings or create Stock Entry to proceed.,Devam etmek için lütfen Stok Ayarlarında Negatif Stoka İzin Ver&#39;i etkinleştirin veya Stok Girişi oluşturun.,
 No Inpatient Record found against patient {0},Hastaya karşı Yatan Hasta Kaydı bulunamadı {0},
 An Inpatient Medication Order {0} against Patient Encounter {1} already exists.,Hasta Karşılaşmasına karşı {0} Yatarak Tedavi Emri {1} zaten mevcut.,
 Allow In Returns,İadelere İzin Ver,
@@ -9958,30 +9769,30 @@
 "For transfer from source, selected quantity cannot be greater than available quantity","Kaynaktan transfer için, seçilen miktar mevcut miktardan büyük olamaz",
 Cannot find Item with this Barcode,Bu Barkoda Sahip Öğe Bulunamıyor,
 {0} is mandatory. Maybe Currency Exchange record is not created for {1} to {2},{0} zorunludur. {1} - {2} için Para Birimi Değişimi kaydı oluşturulmamış olabilir,
-{} has submitted assets linked to it. You need to cancel the assets to create purchase return.,{} kendisine bağlı varlıklar gönderdi. Satınalma iadesi oluşturmak için varlıkları iptal etmeniz gerekir.,
+{} has submitted assets linked to it. You need to cancel the assets to create purchase return.,{} kendisine bağlı varlıklar gönderdi. Satın alma iadesi oluşturmak için varlıkları iptal etmeniz gerekir.,
 Cannot cancel this document as it is linked with submitted asset {0}. Please cancel it to continue.,Gönderilen {0} varlığıyla bağlantılı olduğu için bu belge iptal edilemez. Devam etmek için lütfen iptal edin.,
 Row #{}: Serial No. {} has already been transacted into another POS Invoice. Please select valid serial no.,Satır # {}: Seri No. {} zaten başka bir POS Faturasına dönüştürüldü. Lütfen geçerli bir seri numarası seçin.,
 Row #{}: Serial Nos. {} has already been transacted into another POS Invoice. Please select valid serial no.,Satır # {}: Seri Numaraları {} zaten başka bir POS Faturasına dönüştürüldü. Lütfen geçerli bir seri numarası seçin.,
 Item Unavailable,Öğe Mevcut Değil,
 Row #{}: Serial No {} cannot be returned since it was not transacted in original invoice {},Satır # {}: Orijinal faturada işlem görmediğinden Seri Numarası {} iade edilemez {},
 Please set default Cash or Bank account in Mode of Payment {},Lütfen Ödeme Modunda varsayılan Nakit veya Banka hesabını ayarlayın {},
-Please set default Cash or Bank account in Mode of Payments {},Lütfen Ödeme Modu'nda varsayılan Nakit veya Banka hesabını ayarlayın {},
+Please set default Cash or Bank account in Mode of Payments {},Lütfen Ödeme Modu&#39;nda varsayılan Nakit veya Banka hesabını ayarlayın {},
 Please ensure {} account is a Balance Sheet account. You can change the parent account to a Balance Sheet account or select a different account.,Lütfen {} hesabının bir Bilanço hesabı olduğundan emin olun. Ana hesabı bir Bilanço hesabı olarak değiştirebilir veya farklı bir hesap seçebilirsiniz.,
 Please ensure {} account is a Payable account. Change the account type to Payable or select a different account.,Lütfen {} hesabının Alacaklı bir hesap olduğundan emin olun. Hesap türünü Borçlu olarak değiştirin veya farklı bir hesap seçin.,
 Row {}: Expense Head changed to {} ,Satır {}: Gider Başlığı {} olarak değiştirildi,
 because account {} is not linked to warehouse {} ,çünkü {} hesabı {} deposuna bağlı değil,
 or it is not the default inventory account,veya varsayılan envanter hesabı değil,
 Expense Head Changed,Gider Başlığı Değiştirildi,
-because expense is booked against this account in Purchase Receipt {},çünkü Satınalma Makbuzunda bu hesap için gider ayrılmıştır {},
-as no Purchase Receipt is created against Item {}. ,Öğe {} karşılığında Satınalma Fişi oluşturulmadığından.,
-This is done to handle accounting for cases when Purchase Receipt is created after Purchase Invoice,"Bu, Satınalma Faturasından sonra Satınalma Makbuzunun oluşturulduğu durumlarda muhasebeyi işlemek için yapılır.",
-Purchase Order Required for item {},{} Öğesi için Satınalma Siparişi Gerekli,
-To submit the invoice without purchase order please set {} ,Faturayı Satınalma siparişi olmadan göndermek için lütfen {} ayarlayın,
+because expense is booked against this account in Purchase Receipt {},çünkü Satın Alma Makbuzunda bu hesap için gider ayrılmıştır {},
+as no Purchase Receipt is created against Item {}. ,Öğe {} karşılığında Satın Alma Fişi oluşturulmadığından.,
+This is done to handle accounting for cases when Purchase Receipt is created after Purchase Invoice,"Bu, Satın Alma Faturasından sonra Satın Alma Makbuzunun oluşturulduğu durumlarda muhasebeyi işlemek için yapılır.",
+Purchase Order Required for item {},{} Öğesi için Satın Alma Siparişi Gerekli,
+To submit the invoice without purchase order please set {} ,Faturayı satın alma siparişi olmadan göndermek için lütfen {} ayarlayın,
 as {} in {},de olduğu gibi {},
-Mandatory Purchase Order,Zorunlu Satınalma Siparişi,
-Purchase Receipt Required for item {},{} Öğesi için Satınalma Fişi Gerekli,
-To submit the invoice without purchase receipt please set {} ,Faturayı Satınalma makbuzu olmadan göndermek için lütfen {},
-Mandatory Purchase Receipt,Zorunlu Satınalma Fişi,
+Mandatory Purchase Order,Zorunlu Satın Alma Siparişi,
+Purchase Receipt Required for item {},{} Öğesi için Satın Alma Fişi Gerekli,
+To submit the invoice without purchase receipt please set {} ,Faturayı satın alma makbuzu olmadan göndermek için lütfen {},
+Mandatory Purchase Receipt,Zorunlu Satın Alma Fişi,
 POS Profile {} does not belongs to company {},"POS Profili {}, {} şirketine ait değil",
 User {} is disabled. Please select valid user/cashier,Kullanıcı {} devre dışı bırakıldı. Lütfen geçerli kullanıcı / kasiyer seçin,
 Row #{}: Original Invoice {} of return invoice {} is {}. ,Satır # {}: İade faturasının {} Orijinal Faturası {}.,
@@ -9991,7 +9802,7 @@
 You can change the parent account to a Balance Sheet account or select a different account.,Ana hesabı bir Bilanço hesabı olarak değiştirebilir veya farklı bir hesap seçebilirsiniz.,
 Please ensure {} account is a Receivable account. ,Lütfen {} hesabının bir Alacak hesabı olduğundan emin olun.,
 Change the account type to Receivable or select a different account.,Hesap türünü Alacak olarak değiştirin veya farklı bir hesap seçin.,
-{} can't be cancelled since the Loyalty Points earned has been redeemed. First cancel the {} No {},Kazanılan Sadakat Puanları kullanıldığından {} iptal edilemez. Önce {} Hayır {} 'ı iptal edin,
+{} can't be cancelled since the Loyalty Points earned has been redeemed. First cancel the {} No {},Kazanılan Bağlılık Puanları kullanıldığından {} iptal edilemez. Önce {} Hayır {} &#39;ı iptal edin,
 already exists,zaten var,
 POS Closing Entry {} against {} between selected period,Seçilen dönem arasında {} karşısında POS Kapanış Girişi {},
 POS Invoice is {},POS Faturası {},
@@ -10001,7 +9812,7 @@
 Row #{}: {},Kürek çekmek #{}: {},
 Invalid POS Invoices,Geçersiz POS Faturaları,
 Please add the account to root level Company - {},Lütfen hesabı kök düzeyindeki Şirkete ekleyin - {},
-"While creating account for Child Company {0}, parent account {1} not found. Please create the parent account in corresponding COA","Alt Şirket {0} için hesap oluşturulurken, {1} ebeveyn hesabı bulunamadı. Lütfen ilgili COA'da üst hesabı oluşturun",
+"While creating account for Child Company {0}, parent account {1} not found. Please create the parent account in corresponding COA","Alt Şirket {0} için hesap oluşturulurken, {1} ebeveyn hesabı bulunamadı. Lütfen ilgili COA&#39;da üst hesabı oluşturun",
 Account Not Found,Hesap bulunamadı,
 "While creating account for Child Company {0}, parent account {1} found as a ledger account.","Alt Şirket {0} için hesap oluşturulurken, {1} ana hesap bir genel muhasebe hesabı olarak bulundu.",
 Please convert the parent account in corresponding child company to a group account.,Lütfen ilgili alt şirketteki ana hesabı bir grup hesabına dönüştürün.,
@@ -10010,13 +9821,13 @@
 "If you {0} {1} quantities of the item {2}, the scheme {3} will be applied on the item.","{0} {1} Öğenin miktarları {2} ise, şema {3} öğeye uygulanacaktır.",
 "If you {0} {1} worth item {2}, the scheme {3} will be applied on the item.","{0} {1} değerinde öğe {2} iseniz, şema {3} öğeye uygulanacaktır.",
 "As the field {0} is enabled, the field {1} is mandatory.","{0} alanı etkinleştirildiğinde, {1} alanı zorunludur.",
-"As the field {0} is enabled, the value of the field {1} should be more than 1.","{0} alanı etkinleştirildiğinde, {1} alanının değeri 1'den fazla olmalıdır.",
+"As the field {0} is enabled, the value of the field {1} should be more than 1.","{0} alanı etkinleştirildiğinde, {1} alanının değeri 1&#39;den fazla olmalıdır.",
 Cannot deliver Serial No {0} of item {1} as it is reserved to fullfill Sales Order {2},Satış Siparişini tamamlamak için ayrıldığından {1} öğenin Seri Numarası {0} teslim edilemiyor {2},
 "Sales Order {0} has reservation for the item {1}, you can only deliver reserved {1} against {0}.","Satış Siparişi {0}, {1} öğesi için rezervasyona sahip, yalnızca {0} karşılığında {1} ayrılmış olarak teslim edebilirsiniz.",
 {0} Serial No {1} cannot be delivered,{0} Seri No {1} teslim edilemiyor,
 Row {0}: Subcontracted Item is mandatory for the raw material {1},"Satır {0}: Alt Sözleşmeli Öğe, hammadde {1} için zorunludur",
 "As there are sufficient raw materials, Material Request is not required for Warehouse {0}.","Yeterli hammadde olduğundan, Depo {0} için Malzeme Talebi gerekli değildir.",
-" If you still want to proceed, please enable {0}.","Hala devam etmek istiyorsanız, lütfen {0} 'yi etkinleştirin.",
+" If you still want to proceed, please enable {0}.","Hala devam etmek istiyorsanız, lütfen {0} &#39;yi etkinleştirin.",
 The item referenced by {0} - {1} is already invoiced,{0} - {1} tarafından referans verilen öğe zaten faturalanmış,
 Therapy Session overlaps with {0},"Terapi Oturumu, {0} ile çakışıyor",
 Therapy Sessions Overlapping,Çakışan Terapi Seansları,
@@ -10024,6 +9835,6 @@
 "Item Code, warehouse, quantity are required on row {0}","{0}. Satırda Öğe Kodu, depo, miktar gerekli",
 Get Items from Material Requests against this Supplier,Bu Tedarikçiye Karşı Malzeme Taleplerinden Ürün Alın,
 Enable European Access,Avrupa Erişimini Etkinleştir,
-Creating Purchase Order ...,Satınalma Siparişi Oluşturuluyor ...,
-"Select a Supplier from the Default Suppliers of the items below. On selection, a Purchase Order will be made against items belonging to the selected Supplier only.","Aşağıdaki öğelerin Varsayılan Tedarikçilerinden bir Tedarikçi seçin. Seçim üzerine, yalnızca seçilen Tedarikçiye ait ürünler için bir Satınalma Siparişi verilecektir.",
+Creating Purchase Order ...,Satın Alma Siparişi Oluşturuluyor ...,
+"Select a Supplier from the Default Suppliers of the items below. On selection, a Purchase Order will be made against items belonging to the selected Supplier only.","Aşağıdaki öğelerin Varsayılan Tedarikçilerinden bir Tedarikçi seçin. Seçim üzerine, yalnızca seçilen Tedarikçiye ait ürünler için bir Satın Alma Siparişi verilecektir.",
 Row #{}: You must select {} serial numbers for item {}.,Satır # {}: {} öğesi için {} seri numaralarını seçmelisiniz.,
diff --git a/pyproject.toml b/pyproject.toml
index 1b342a5..1c93eed 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -10,8 +10,8 @@
 dependencies = [
     # Core dependencies
     "pycountry~=20.7.3",
-    "python-stdnum~=1.16",
     "Unidecode~=1.2.0",
+    "barcodenumber~=0.5.0",
 
     # integration dependencies
     "gocardless-pro~=1.22.0",
